Repository: google-deepmind/deepmind-research Branch: master Commit: f5de0ede8430 Files: 734 Total size: 43.8 MB Directory structure: gitextract_l2_0ktdc/ ├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE ├── PrediNet/ │ ├── PrediNet.ipynb │ ├── README.md │ ├── mini_3task_col_patts_hexos.npz │ ├── mini_3task_col_patts_pentos.npz │ ├── mini_3task_col_patts_stripes.npz │ ├── mini_between_hexos.npz │ ├── mini_between_pentos.npz │ └── mini_between_stripes.npz ├── README.md ├── __init__.py ├── adversarial_robustness/ │ ├── README.md │ ├── iclrw2021data/ │ │ └── README.md │ ├── iclrw2021doing/ │ │ └── README.md │ ├── jax/ │ │ ├── attacks.py │ │ ├── datasets.py │ │ ├── eval.py │ │ ├── experiment.py │ │ ├── experiment_test.py │ │ ├── model_zoo.py │ │ ├── train.py │ │ └── utils.py │ ├── pytorch/ │ │ ├── README.md │ │ ├── eval.py │ │ └── model_zoo.py │ ├── requirements.txt │ └── run.sh ├── affordances_theory/ │ ├── AffordancesInContinuousEnvironment.ipynb │ ├── AffordancesInDiscreteEnvironment.ipynb │ ├── README.md │ └── requirements.txt ├── alphafold_casp13/ │ ├── README.md │ ├── asa_output.py │ ├── config_dict.py │ ├── contacts.py │ ├── contacts_dataset.py │ ├── contacts_experiment.py │ ├── contacts_network.py │ ├── distogram_io.py │ ├── ensemble_contact_maps.py │ ├── parsers.py │ ├── paste_contact_maps.py │ ├── requirements.txt │ ├── run_eval.sh │ ├── secstruct.py │ ├── test_domains.txt │ ├── train_domains.txt │ ├── two_dim_convnet.py │ └── two_dim_resnet.py ├── avae/ │ ├── README.md │ ├── checkpointer.py │ ├── data_iterators.py │ ├── decoders.py │ ├── encoders.py │ ├── kl.py │ ├── requirements.txt │ ├── run.sh │ ├── train.py │ ├── train_main.py │ ├── types.py │ └── vae.py ├── bigbigan/ │ └── README.md ├── box_arrangement/ │ ├── README.md │ ├── __init__.py │ ├── dmlab_assets.py │ ├── explore.py │ ├── predicate_task.py │ ├── predicate_task_test.py │ ├── predicates.py │ ├── setup.py │ └── task_examples.py ├── byol/ │ ├── README.md │ ├── byol_experiment.py │ ├── configs/ │ │ ├── __init__.py │ │ ├── byol.py │ │ └── eval.py │ ├── eval_experiment.py │ ├── main_loop.py │ ├── main_loop_test.py │ ├── requirements.txt │ ├── setup.py │ └── utils/ │ ├── __init__.py │ ├── augmentations.py │ ├── checkpointing.py │ ├── dataset.py │ ├── helpers.py │ ├── networks.py │ ├── optimizers.py │ └── schedules.py ├── cadl/ │ ├── README.md │ ├── common.proto │ ├── constraints.proto │ ├── download_dataset.sh │ ├── entities.proto │ └── example.proto ├── catch_carry/ │ ├── README.md │ ├── __init__.py │ ├── arm_opener.py │ ├── ball_toss.py │ ├── explore.py │ ├── mocap_data.h5 │ ├── mocap_data.py │ ├── props.py │ ├── setup.py │ ├── task_examples.py │ ├── trajectories.py │ └── warehouse.py ├── causal_reasoning/ │ ├── Causal_Reasoning_in_Probability_Trees.ipynb │ └── README.md ├── cmtouch/ │ ├── CMTouch_Dataset_Visulization.ipynb │ ├── README.md │ └── download_datasets.sh ├── continual_learning/ │ ├── README.md │ └── encoders_and_ensembles.ipynb ├── counterfactual_fairness/ │ ├── README.md │ ├── adult.py │ ├── adult_pscf.py │ ├── adult_pscf_config.py │ ├── causal_network.py │ ├── download_dataset.sh │ ├── requirements.txt │ ├── run_adult_pscf.sh │ ├── utils.py │ └── variational.py ├── cs_gan/ │ ├── README.md │ ├── cs.py │ ├── file_utils.py │ ├── gan.py │ ├── image_metrics.py │ ├── main.py │ ├── main_cs.py │ ├── main_ode.py │ ├── nets.py │ ├── requirements.txt │ ├── run.sh │ ├── run_ode.sh │ ├── tests/ │ │ └── gan_test.py │ └── utils.py ├── curl/ │ ├── README.md │ ├── layers.py │ ├── model.py │ ├── requirements.txt │ ├── train_main.py │ ├── train_sup.py │ ├── train_unsup.py │ ├── training.py │ ├── unit_test.py │ └── utils.py ├── density_functional_approximation_dm21/ │ ├── .bazelrc │ ├── .bazelversion │ ├── BUILD.bazel │ ├── README.md │ ├── WORKSPACE.bazel │ ├── cc/ │ │ ├── dm21_aot_compiled_example.cc │ │ ├── dm21_aot_compiled_example.h │ │ └── run_dm21_aot_compiled_example.cc │ ├── density_functional_approximation_dm21/ │ │ ├── __init__.py │ │ ├── checkpoints/ │ │ │ ├── DM21/ │ │ │ │ ├── saved_model.pb │ │ │ │ ├── smart_module.pb │ │ │ │ ├── tfhub_module.pb │ │ │ │ └── variables/ │ │ │ │ ├── variables.data-00000-of-00001 │ │ │ │ └── variables.index │ │ │ ├── DM21m/ │ │ │ │ ├── saved_model.pb │ │ │ │ ├── smart_module.pb │ │ │ │ ├── tfhub_module.pb │ │ │ │ └── variables/ │ │ │ │ ├── variables.data-00000-of-00001 │ │ │ │ └── variables.index │ │ │ ├── DM21mc/ │ │ │ │ ├── saved_model.pb │ │ │ │ ├── smart_module.pb │ │ │ │ ├── tfhub_module.pb │ │ │ │ └── variables/ │ │ │ │ ├── variables.data-00000-of-00001 │ │ │ │ └── variables.index │ │ │ └── DM21mu/ │ │ │ ├── saved_model.pb │ │ │ ├── smart_module.pb │ │ │ ├── tfhub_module.pb │ │ │ └── variables/ │ │ │ ├── variables.data-00000-of-00001 │ │ │ └── variables.index │ │ ├── compute_hfx_density.py │ │ ├── compute_hfx_density_test.py │ │ ├── export_saved_model.py │ │ ├── neural_numint.py │ │ └── neural_numint_test.py │ ├── external/ │ │ └── tf_bazel.patch │ ├── requirements.txt │ ├── requirements_aot_compilation.txt │ ├── run.sh │ └── setup.py ├── enformer/ │ ├── README.md │ ├── attention_module.py │ ├── enformer-training.ipynb │ ├── enformer-usage.ipynb │ ├── enformer.py │ ├── enformer_test.py │ └── requirements.txt ├── ensemble_loss_landscape/ │ ├── README.md │ └── cifar10_medium_cnn_experiments.ipynb ├── functional_regularisation_for_continual_learning/ │ ├── README.md │ └── frcl.ipynb ├── fusion_tcv/ │ ├── README.md │ ├── agent.py │ ├── combiners.py │ ├── combiners_test.py │ ├── environment.py │ ├── experiments.py │ ├── experiments_test.py │ ├── fge_octave.py │ ├── fge_state.py │ ├── named_array.py │ ├── named_array_test.py │ ├── noise.py │ ├── param_variation.py │ ├── ref_gen.py │ ├── references.py │ ├── references_main.py │ ├── requirements.txt │ ├── rewards.py │ ├── rewards_used.py │ ├── run_loop.py │ ├── shape.py │ ├── shapes_known.py │ ├── targets.py │ ├── tcv_common.py │ ├── terminations.py │ ├── trajectory.py │ ├── transforms.py │ └── transforms_test.py ├── galaxy_mergers/ │ ├── README.md │ ├── antennae_helpers.py │ ├── config.py │ ├── evaluator.py │ ├── helpers.py │ ├── interpretability_helpers.py │ ├── losses.py │ ├── main.py │ ├── model.py │ ├── preprocessing.py │ └── requirements.txt ├── gated_linear_networks/ │ ├── README.md │ ├── base.py │ ├── bernoulli.py │ ├── bernoulli_test.py │ ├── colabs/ │ │ ├── README.md │ │ └── dendritic_gated_network.ipynb │ ├── examples/ │ │ ├── bernoulli_mnist.py │ │ ├── utils.py │ │ └── utils_test.py │ ├── gaussian.py │ ├── gaussian_test.py │ ├── requirements.txt │ └── run.sh ├── geomancer/ │ ├── README.md │ ├── data_writer.py │ ├── geomancer.py │ ├── geomancer_test.py │ ├── run.sh │ ├── setup.py │ └── train.py ├── glassy_dynamics/ │ ├── README.md │ ├── apply_binary.py │ ├── checkpoints/ │ │ ├── t044_s09.ckpt.data-00000-of-00001 │ │ ├── t044_s09.ckpt.index │ │ └── t044_s09.ckpt.meta │ ├── graph_model.py │ ├── graph_model_test.py │ ├── requirements.txt │ ├── testdata/ │ │ ├── test_large.pickle │ │ └── test_small.pickle │ ├── train.py │ ├── train_binary.py │ ├── train_test.py │ └── train_using_jax.py ├── graph_matching_networks/ │ ├── README.md │ ├── graph_matching_networks.ipynb │ └── requirements.txt ├── hierarchical_probabilistic_unet/ │ ├── HPU_Net.ipynb │ ├── README.md │ ├── geco_utils.py │ ├── model.py │ ├── model_test.py │ ├── run.sh │ ├── setup.py │ └── unet_utils.py ├── hierarchical_transformer_memory/ │ ├── README.md │ ├── hierarchical_attention/ │ │ ├── htm_attention.py │ │ └── htm_attention_test.py │ ├── pycolab_ballet/ │ │ ├── ballet_environment.py │ │ ├── ballet_environment_core.py │ │ └── ballet_environment_test.py │ └── requirements.txt ├── himo/ │ ├── README.md │ └── himo_example.ipynb ├── iodine/ │ ├── Eval.ipynb │ ├── README.md │ ├── configurations.py │ ├── download_checkpoints.sh │ ├── main.py │ ├── modules/ │ │ ├── __init__.py │ │ ├── data.py │ │ ├── decoder.py │ │ ├── distributions.py │ │ ├── factor_eval.py │ │ ├── iodine.py │ │ ├── networks.py │ │ ├── plotting.py │ │ ├── refinement.py │ │ └── utils.py │ ├── requirements.txt │ ├── run.sh │ └── test_data/ │ └── tetrominoes_mini.tfrecords ├── kfac_ferminet_alpha/ │ ├── README.md │ ├── __init__.py │ ├── curvature_blocks.py │ ├── distributions.py │ ├── estimator.py │ ├── example.py │ ├── layers_and_loss_tags.py │ ├── loss_functions.py │ ├── optimizer.py │ ├── requirements.txt │ ├── run.sh │ ├── setup.py │ ├── tag_graph_matcher.py │ ├── tests/ │ │ ├── common.py │ │ ├── graph_matcher_test.py │ │ └── tracer_test.py │ ├── tracer.py │ └── utils.py ├── learned_free_energy_estimation/ │ └── README.md ├── learning_to_simulate/ │ ├── README.md │ ├── connectivity_utils.py │ ├── download_dataset.sh │ ├── graph_network.py │ ├── learned_simulator.py │ ├── model_demo.py │ ├── noise_utils.py │ ├── reading_utils.py │ ├── render_rollout.py │ ├── requirements.txt │ ├── run.sh │ └── train.py ├── memo/ │ ├── README.md │ └── load_memo_data.ipynb ├── meshgraphnets/ │ ├── README.md │ ├── cfd_eval.py │ ├── cfd_model.py │ ├── cloth_eval.py │ ├── cloth_model.py │ ├── common.py │ ├── core_model.py │ ├── dataset.py │ ├── download_dataset.sh │ ├── normalization.py │ ├── plot_cfd.py │ ├── plot_cloth.py │ ├── requirements.txt │ ├── run.sh │ └── run_model.py ├── mmv/ │ ├── README.md │ ├── config.py │ ├── eval_ucf101.py │ ├── models/ │ │ ├── mm_embeddings.py │ │ ├── normalization.py │ │ ├── resnet.py │ │ ├── s3d.py │ │ ├── s3d_test.py │ │ ├── tsm_resnet.py │ │ ├── tsm_resnet_test.py │ │ ├── tsm_utils.py │ │ ├── tsm_utils_test.py │ │ └── types.py │ ├── requirements.txt │ └── utils/ │ ├── checkpoint.py │ └── ucf101_dataset.py ├── neural_mip_solving/ │ └── README.md ├── nfnets/ │ ├── README.md │ ├── agc_optax.py │ ├── autoaugment.py │ ├── base.py │ ├── dataset.py │ ├── experiment.py │ ├── experiment_nf_regnets.py │ ├── experiment_nfnets.py │ ├── fixup_resnet.py │ ├── nf_regnet.py │ ├── nf_resnet.py │ ├── nfnet.py │ ├── nfnet_demo_colab.ipynb │ ├── optim.py │ ├── requirements.txt │ ├── resnet.py │ ├── run.sh │ ├── skipinit_resnet.py │ ├── test.py │ └── utils.py ├── noisy_label/ │ ├── README.md │ └── noisy_label_datasets_and_rater_features.ipynb ├── nowcasting/ │ ├── Open_sourced_dataset_and_model_snapshot_for_precipitation_nowcasting.ipynb │ └── README.md ├── object_attention_for_reasoning/ │ ├── README.md │ ├── model.py │ ├── requirements.txt │ ├── run_model.py │ └── transformer.py ├── ode_gan/ │ ├── README.md │ └── odegan_mog16.ipynb ├── ogb_lsc/ │ ├── README.md │ ├── mag/ │ │ ├── README.md │ │ ├── batching_utils.py │ │ ├── config.py │ │ ├── csr_builder.py │ │ ├── data_utils.py │ │ ├── datasets.py │ │ ├── download_mag.py │ │ ├── ensemble_predictions.py │ │ ├── experiment.py │ │ ├── generate_validation_splits.py │ │ ├── losses.py │ │ ├── models.py │ │ ├── neighbor_builder.py │ │ ├── organize_data.sh │ │ ├── pca_builder.py │ │ ├── requirements.txt │ │ ├── run_preprocessing.sh │ │ ├── run_pretrained_eval.sh │ │ ├── run_training.sh │ │ ├── schedules.py │ │ ├── split_and_save_indices.py │ │ └── sub_sampler.py │ └── pcq/ │ ├── README.md │ ├── batching_utils.py │ ├── config.py │ ├── conformer_utils.py │ ├── dataset_utils.py │ ├── datasets.py │ ├── download_pcq.py │ ├── ensemble_predictions.py │ ├── experiment.py │ ├── generate_conformer_features.py │ ├── generate_validation_splits.py │ ├── model.py │ ├── requirements.txt │ ├── run_preprocessing.sh │ ├── run_pretrained_eval.sh │ └── run_training.sh ├── option_keyboard/ │ ├── README.md │ ├── auto_reset_environment.py │ ├── configs.py │ ├── dqn_agent.py │ ├── environment_wrappers.py │ ├── experiment.py │ ├── gpe_gpi_experiments/ │ │ ├── eval_keyboard_fig5.py │ │ ├── generate_figures.ipynb │ │ ├── regressed_agent.py │ │ ├── run_dqn_fig4b.py │ │ ├── run_dqn_fig5.py │ │ ├── run_regressed_w_fig4b.py │ │ ├── run_regressed_w_fig4c.py │ │ ├── run_regressed_w_with_phi_fig4c.py │ │ ├── run_true_w_fig4.py │ │ ├── run_true_w_fig6.py │ │ ├── train_keyboard.py │ │ ├── train_keyboard_with_phi.py │ │ └── train_phi_model.py │ ├── keyboard_agent.py │ ├── keyboard_utils.py │ ├── requirements.txt │ ├── run.sh │ ├── run_dqn.py │ ├── run_dqn_test.py │ ├── run_ok.py │ ├── run_ok_test.py │ ├── scavenger.py │ └── smart_module.py ├── perceiver/ │ ├── README.md │ ├── bytes_tokenizer.py │ ├── colabs/ │ │ ├── imagenet_classification.ipynb │ │ ├── masked_language_modelling.ipynb │ │ ├── optical_flow.ipynb │ │ └── video_autoencoding.ipynb │ ├── io_processors.py │ ├── io_processors_test.py │ ├── perceiver.py │ ├── position_encoding.py │ ├── requirements.txt │ └── train/ │ ├── autoaugment.py │ ├── dataset.py │ ├── experiment.py │ ├── launch_local.sh │ └── utils.py ├── physics_inspired_models/ │ ├── README.md │ ├── __init__.py │ ├── eval_metric.py │ ├── integrators.py │ ├── jaxline_configs.py │ ├── jaxline_train.py │ ├── launch_all.sh │ ├── launch_local.sh │ ├── metrics.py │ ├── models/ │ │ ├── __init__.py │ │ ├── autoregressive.py │ │ ├── base.py │ │ ├── common.py │ │ ├── deterministic_vae.py │ │ ├── dynamics.py │ │ └── networks.py │ ├── requirements.txt │ ├── setup.py │ └── utils.py ├── physics_planning_games/ │ ├── README.md │ ├── board_games/ │ │ ├── __init__.py │ │ ├── _internal/ │ │ │ ├── arenas.py │ │ │ ├── boards.py │ │ │ ├── observations.py │ │ │ ├── pieces.py │ │ │ ├── pieces_test.py │ │ │ ├── registry.py │ │ │ └── tags.py │ │ ├── board_games_test.py │ │ ├── go.py │ │ ├── go_logic.py │ │ ├── go_logic_test.py │ │ ├── jaco_arm_board_game.py │ │ ├── logic_base.py │ │ ├── tic_tac_toe.py │ │ ├── tic_tac_toe_logic.py │ │ └── tic_tac_toe_logic_test.py │ ├── explore.py │ ├── mujoban/ │ │ ├── __init__.py │ │ ├── boxoban.py │ │ ├── mujoban.py │ │ ├── mujoban_level.py │ │ ├── mujoban_level_test.py │ │ ├── mujoban_pad.py │ │ ├── mujoban_test.py │ │ └── props.py │ └── requirements.txt ├── pitfalls_static_language_models/ │ └── README.md ├── polygen/ │ ├── README.md │ ├── data_utils.py │ ├── meshes/ │ │ ├── cone.obj │ │ ├── cube.obj │ │ ├── cylinder.obj │ │ └── icosphere.obj │ ├── model_test.py │ ├── modules.py │ ├── run.sh │ ├── sample-pretrained.ipynb │ ├── setup.py │ └── training.ipynb ├── powerpropagation/ │ ├── README.md │ └── powerpropagation.ipynb ├── rapid_task_solving/ │ ├── README.md │ ├── memory_planning_game.py │ ├── one_shot_streetlearn.py │ └── requirements.txt ├── regal/ │ └── README.md ├── rl_unplugged/ │ ├── README.md │ ├── atari.py │ ├── atari_dqn.ipynb │ ├── atari_example.py │ ├── bsuite.ipynb │ ├── dm_control_suite.py │ ├── dm_control_suite_crr.ipynb │ ├── dm_control_suite_d4pg.ipynb │ ├── dm_control_suite_example.py │ ├── dmlab_r2d2.ipynb │ ├── networks.py │ ├── requirements.txt │ ├── rwrl.py │ ├── rwrl_d4pg.ipynb │ └── rwrl_example.py ├── satore/ │ ├── Clause.rkt │ ├── README.md │ ├── clause-format.rkt │ ├── clause.rkt │ ├── examples/ │ │ ├── binary30.p │ │ └── socrates.p │ ├── info.rkt │ ├── interact.rkt │ ├── json-output.rkt │ ├── log.rkt │ ├── main.rkt │ ├── misc.rkt │ ├── rewrite-tree.rkt │ ├── saturation.rkt │ ├── scribblings/ │ │ └── satore.scrbl │ ├── tests/ │ │ ├── Clause.rkt │ │ ├── clause.rkt │ │ ├── confluence.rkt │ │ ├── interact.rkt │ │ ├── misc.rkt │ │ ├── rewrite-tree.rkt │ │ ├── saturation.rkt │ │ ├── stress-test1.rkt │ │ ├── trie.rkt │ │ ├── unification-tree.rkt │ │ └── unification.rkt │ ├── tptp.rkt │ ├── trie.rkt │ ├── unification-tree.rkt │ └── unification.rkt ├── scratchgan/ │ ├── README.md │ ├── __init__.py │ ├── discriminator_nets.py │ ├── eval_metrics.py │ ├── experiment.py │ ├── generators.py │ ├── losses.py │ ├── reader.py │ ├── requirements.txt │ ├── run.sh │ └── utils.py ├── side_effects_penalties/ │ ├── README.md │ ├── __init__.py │ ├── agent.py │ ├── agent_with_penalties.py │ ├── file_loading.py │ ├── plot_results.ipynb │ ├── requirements.txt │ ├── results_summary.py │ ├── run_experiment.py │ ├── side_effects_penalty.py │ ├── side_effects_penalty_test.py │ └── training.py ├── sketchy/ │ ├── README.md │ ├── __init__.py │ ├── dataset_example.py │ ├── download.sh │ ├── example_data.tfrecords │ ├── extract.sh │ ├── metadata_schema.py │ ├── requirements.txt │ ├── reward_example.py │ ├── run.sh │ └── sketchy.py ├── synthetic_returns/ │ ├── README.md │ ├── requirements.txt │ └── synthetic_returns.py ├── tandem_dqn/ │ ├── README.md │ ├── agent.py │ ├── atari_data.py │ ├── gym_atari.py │ ├── losses.py │ ├── losses_test.py │ ├── networks.py │ ├── parts.py │ ├── processors.py │ ├── replay.py │ ├── requirements.txt │ ├── run.sh │ └── run_tandem.py ├── transporter/ │ ├── README.md │ ├── requirements.txt │ ├── run.sh │ ├── transporter.py │ ├── transporter_example.ipynb │ └── transporter_test.py ├── tvt/ │ ├── README.md │ ├── batch_env.py │ ├── dmlab/ │ │ ├── README.md │ │ ├── active_visual_match.lua │ │ ├── image_utils.lua │ │ ├── key_to_door.lua │ │ ├── key_to_door_bluekey.lua │ │ ├── key_to_door_factory.lua │ │ ├── key_to_door_to_match.lua │ │ ├── latent_information_acquisition.lua │ │ ├── latent_information_acquisition_factory.lua │ │ ├── passive_visual_match.lua │ │ ├── two_keys_to_choose_factory.lua │ │ ├── two_negative_keys.lua │ │ └── visual_match_factory.lua │ ├── losses.py │ ├── main.py │ ├── memory.py │ ├── nest_utils.py │ ├── pycolab/ │ │ ├── README.md │ │ ├── active_visual_match.py │ │ ├── common.py │ │ ├── env.py │ │ ├── game.py │ │ ├── human_player.py │ │ ├── key_to_door.py │ │ └── objects.py │ ├── requirements.txt │ ├── rma.py │ ├── run.sh │ └── tvt_rewards.py ├── unrestricted_advx/ │ ├── README.md │ ├── install_dependencies.sh │ ├── main.py │ ├── requirements.txt │ └── run.sh ├── unsupervised_adversarial_training/ │ ├── README.md │ ├── quick_eval_cifar.py │ ├── requirements.txt │ ├── run.sh │ ├── save_example_images.py │ └── tiny_200K_idxs.txt ├── visr/ │ ├── README.md │ └── VISR_ICLR2020.ipynb └── wikigraphs/ ├── README.md ├── main.py ├── requirements.txt ├── scripts/ │ ├── build_vocab.py │ ├── compute_blue_score.py │ ├── download.sh │ ├── freebase_preprocess.py │ └── visualize_graph.py ├── setup.py ├── updaters.py ├── utils.py └── wikigraphs/ ├── data/ │ ├── __init__.py │ ├── dataset.py │ ├── io_tools.py │ ├── paired_dataset.py │ ├── paired_dataset_test.py │ ├── tokenizers.py │ ├── tokenizers_test.py │ ├── tools.py │ ├── tools_test.py │ ├── wikitext.py │ └── wikitext_test.py └── model/ ├── __init__.py ├── embedding.py ├── graph_net.py ├── graph_net_test.py ├── sampler.py ├── sampler_test.py ├── transformer.py ├── transformer_block.py └── transformer_test.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .travis.yml ================================================ sudo: required dist: trusty language: python git: depth: 10 quiet: true python: - "3.6" env: matrix: - PROJECT="adversarial_robustness" # - PROJECT="cs_gan" # TODO(b/184845450): Fix and re-enable - PROJECT="gated_linear_networks" - PROJECT="geomancer" - PROJECT="hierarchical_probabilistic_unet" - PROJECT="iodine" - PROJECT="kfac_ferminet_alpha" - PROJECT="learning_to_simulate" - PROJECT="nfnets" - PROJECT="option_keyboard" # - PROJECT="polygen" # TODO(b/184847339): Fix and re-enable # - PROJECT="scratchgan" # TODO(b/184856293): Fix and enable - PROJECT="sketchy" - PROJECT="tandem_dqn" - PROJECT="transporter" - PROJECT="tvt" # - PROJECT="unrestricted_advx" # TODO(b/184862249): Fix and enable - PROJECT="unsupervised_adversarial_training" - PROJECT="meshgraphnets" before_script: - pip install --upgrade pip - pip install --upgrade virtualenv - pip install --upgrade wheel script: - ./$PROJECT/run.sh ================================================ FILE: CONTRIBUTING.md ================================================ # How to Contribute # Pull Requests Please send in fixes or feature additions through Pull Requests. ## Contributor License Agreement Contributions to this project must be accompanied by a Contributor License Agreement. You (or your employer) retain the copyright to your contribution, this simply gives us permission to use and redistribute your contributions as part of the project. Head over to to see your current agreements on file or to sign a new one. You generally only need to submit a CLA once, so if you've already submitted one (even if it was for a different project), you probably don't need to do it again. ## Code reviews All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more information on using pull requests. ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: PrediNet/PrediNet.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KDiJzbb8KFvP" }, "source": [ "Copyright 2019 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "OgbZIk-6eFRA" }, "source": [ "# The PrediNet architecture and experiment code\n", "\n", "This is the core code used for the results presented in the paper\n", "[\"An Explicitly Relational Neural Network Architecture\"](https://arxiv.org/abs/1905.10307).\n", "\n", "If this is the first time running the colab, run the cell below to install\n", "TensorFlow 2.0 and Sonnet 2.0. You might be asked to re-start the session." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "arE0dFJJjCYe" }, "outputs": [], "source": [ "!pip install \"tensorflow-gpu\u003e=2.0.0rc0\" --pre\n", "!pip install \"dm-sonnet\u003e=2.0.0b0\" --pre" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "1shymGSjLG88" }, "source": [ "## Implementing the PrediNet model\n", "\n", "Let's first import the necessary dependencies: TensorFlow, numpy, matplotlib,\n", "and files for uploading our datasets." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "_0k8XnhjQ8Ym" }, "outputs": [], "source": [ "from __future__ import absolute_import\n", "from __future__ import division\n", "from __future__ import print_function\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import sonnet as snt\n", "import tensorflow as tf\n", "from google.colab import files" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "cEH2-TNUPeCD" }, "source": [ "## Importing the training, validation and testing datasets\n", "\n", "We now load smaller versions of the datasets, provided in this repository. Make\n", "sure you download all dataset files for the target task:\n", "\n", "* `mini_3task_col_patts_pentos.npz`\n", "* `mini_3task_col_patts_hexos.npz`\n", "* `mini_3task_col_patts_stripes.npz`,\n", "\n", "as well for the pre-training task:\n", "\n", "* `mini_between_pentos.npz`\n", "* `mini_between_hexos.npz`\n", "* `mini_between_stripes.npz`\n", "\n", "from the repository to your local machine. You can select all six files for\n", "uploading using `files.upload()`.\n", "\n", "The files for the pentominoes datasets contain only 50,000 out of the 250,000\n", "sample images and will be used here as the training set. The files for the\n", "hexominoes and stripes datasets contain 5,000 samples and will be our held-out\n", "sets. We use a downsampled version of the full datasets to avoid memory issues\n", "when loading and running our experiments in Colab, but the full datasets can be\n", "found\n", "[here](https://console.cloud.google.com/storage/browser/relations-game-datasets)." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "kBpGpBW6uUFo" }, "outputs": [], "source": [ "uploaded = files.upload()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "1DfGQyOxWOQ5" }, "source": [ "## Dataset parameters\n", "\n", "Now that the dataset files have been uploaded, we need to set some global\n", "parameters:\n", "\n", "* **`RES`** - a scalar denoting the resolution of the images contained in the\n", " dataset. All the datasets provided have a resolution of 36 x 36 x 3.\n", "* **`NUM_CLASSES`** - a scalar denoting the number of classes, ie: the size of\n", " the label for the tasks. All the datasets provided have 2 classes\n", " (indicating True or False), with the exception of the `colour_and_or_shape`\n", " datasets which have 4 classes.\n", "* **`NUM_TASKS`** - a scalar denoting the number of tasks contained in each of\n", " the datasets. This can take a value between 1 and 5. Having a higher than\n", " required number of tasks will not lead to an error, so it is recommended to\n", " keep it to 5, which is the maximum number of tasks considered in any of the\n", " datasets.\n", "\n", "Let's also define our task, training set, validation set and test set names:\n", "\n", "* **`TASKS`** - a string denoting the name of the tasks on which the network\n", " will be trained. Here, this will be `'3task_col_patts'`, in which each image\n", " contains a column of objects conforming to one of three possible patterns.\n", " Recognising each of the 3 possible patterns is a separate task.\n", "* **`PRE_TASKS`** - a string denoting the name of the pre-training tasks on\n", " which the network will be pre-trained. Here, this will be `'between'`, in\n", " which the (single) task is to determine whether the image contains three\n", " objects in a line comprising two identical objects either side of a third.\n", "* **`TRAINING_SET_NAME`** - a string denoting the name of the training set.\n", " Here we will use pentominoes (`'pentos'`) for training.\n", "* **`VALIDATION_SET_NAME`** - a string denoting the name of the validation\n", " set. Here we will use hexominoes (`'hexos'`) for validation.\n", "* **`TEST_SET_NAME`** - a string denoting the name of the test set. Here we\n", " will use striped squares (`'stripes'`) for testing.\n", "\n", "Using the above tasks and datasets we will be able to produce figures that match\n", "those in Figure 4 of the paper. You could, of course, train, validate and test\n", "on any of the full datasets." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "4aOWvqSnWOpj" }, "outputs": [], "source": [ "RESOLUTION = 36\n", "NUM_CLASSES = 2\n", "NUM_TASKS = 5\n", "TASKS = '3task_col_patts'\n", "PRE_TASKS = 'between'\n", "TRAINING_SET_NAME = 'pentos'\n", "VALIDATION_SET_NAME = 'hexos'\n", "TEST_SET_NAME = 'stripes'" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "VJLifnKZYoij" }, "source": [ "## Retrieving a dataset and get a batch\n", "\n", "We now need to define functions for loading a dataset and retrieving batches\n", "from it, using the task and set names." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "rZbx9mPAQiDQ" }, "outputs": [], "source": [ "def preprocess_dataset(images, labels, tasks):\n", " \"\"\"Preprocesses a batch from the dataset.\n", "\n", " Args:\n", " images: An image of integer values in the range [0-255].\n", " labels: a numpy array of size (batch_size, 1). Contains an integer from 0\n", " to (NUM_CLASSES - 1) denoting the class of each image.\n", " tasks: a numpy array of size (batch_size, 1). Contains an integer from 0\n", " to (NUM_TASKS - 1) denoting the task from which each sample was drawn\n", " from.\n", "\n", " Returns:\n", " images: a tf.Tensor of size (batch_size, RESOLUTION, RESOLUTION, 3).\n", " Contains the normalised images.\n", " labels: a numpy array of size (batch_size, 1). Contains an integer from\n", " 0 to (NUM_CLASSES - 1) denoting the class of each image.\n", " labels_1hot: a tf.Tensor of size (batch_size, NUM_CLASSES). Encodes the\n", " label for each sample into a 1-hot vector.\n", " tasks: a numpy array of size (batch_size, 1). Contains an integer from 0 to\n", " (NUM_TASKS - 1) denoting the task from which each sample was drawn from.\n", " tasks_1hot: a tf.Tensor of size (batch_size, NUM_TASKS). Encodes the\n", " task for each sample into a 1-hot vector.\n", " \"\"\"\n", "\n", " images = tf.divide(tf.cast(images, tf.float32), 256.0)\n", " labels_1hot = tf.one_hot(tf.cast(tf.squeeze(labels), tf.int32), NUM_CLASSES)\n", " tasks_1hot = tf.one_hot(tf.cast(tf.squeeze(tasks), tf.int32), NUM_TASKS)\n", "\n", " return (images, labels, labels_1hot, tasks, tasks_1hot)\n", "\n", "\n", "def get_dataset(task_name, set_name, batch_size):\n", " \"\"\"Given a task and set name loads and creates a dataset iterator.\n", "\n", " Args:\n", " task_name: a string. The name of the task.\n", " set_name: a string. One of 'pentos', 'hexos', 'stripes'\n", " batch_size: a scalar (int). The required number of samples in each batch.\n", "\n", " Returns:\n", " dataset: a tf.Dataset for the multitask dataset, with preprocessing.\n", " \"\"\"\n", " loader = np.load('mini_{}_{}.npz'.format(task_name, set_name), 'rb')\n", " images = loader['images']\n", " labels = loader['labels']\n", " tasks = loader['tasks']\n", "\n", " # Create at tf.Dataset from the numpy arrays.\n", " dataset = tf.data.Dataset.from_tensor_slices((images, labels, tasks))\n", " # Create a dataset with infinite iterations, a buffer of 1000 elements from\n", " # which to draw samples, and specify the batch size.\n", " dataset = dataset.repeat(-1).shuffle(1000).batch(batch_size)\n", "\n", " return dataset.map(preprocess_dataset)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "VqG6DEUXS7h1" }, "source": [ "## Visualising the images\n", "\n", "Now we define a couple of useful functions for visualising the images from the\n", "datasets." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "xP6IDyWVu4fa" }, "outputs": [], "source": [ "def show_image(image):\n", " \"\"\"Plots an image from the dataset with the appropriate formating.\n", "\n", " Args:\n", " image: a numpy array or tf.Tensor of size (RESOLUTION, RESOLUTION, 3) from\n", " the dataset.\n", " \"\"\"\n", " # Plot the image\n", " plt.imshow(image, interpolation='nearest')\n", " # Make the plot look nice\n", " plt.xticks([])\n", " plt.yticks([])\n", " plt.grid(False)\n", " ax = plt.gca()\n", " ax.spines['bottom'].set_color('0.5')\n", " ax.spines['top'].set_color('0.5')\n", " ax.spines['left'].set_color('0.5')\n", " ax.spines['right'].set_color('0.5')\n", "\n", "\n", "def visualise_dataset(dataset):\n", " \"\"\"Plots and prints a 3 x 3 grid of sample images from the dataset.\n", "\n", " Args:\n", " dataset: a tf.Iterator object. Used to draw batches of data for\n", " visualisation.\n", " \"\"\"\n", " # Retrieve a batch from the dataset iterator\n", " images, labels, _, tasks, _ = next(dataset)\n", "\n", " # Plot it\n", " plt.figure(figsize=(8, 8))\n", " for i in range(9):\n", " image = images[i, :, :, :]\n", " label = labels[i][0]\n", " task = tasks[i][0]\n", " plt.subplot(3, 3, i + 1)\n", " show_image(image)\n", " if label:\n", " plt.title('Task id: {0}. Label: True'.format(task))\n", " else:\n", " plt.title('Task id: {0}. Label: False'.format(task))\n", "\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "yFaoe8vAT-J4" }, "source": [ "And let's use them to visualise the datasets we have loaded. You can play around\n", "by changing the dataset or task." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "yWYPK1OPUF2A" }, "outputs": [], "source": [ "visualise_dataset(iter(get_dataset(TASKS, TRAINING_SET_NAME, 10)))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "1kA5N2DfZD3b" }, "source": [ "## Model configurations\n", "\n", "Here we define some global parameters.\n", "\n", "### Pre-processing convolutional layer\n", "\n", "* **`FILTER_SIZE`** - a scalar (int). The size of the filter convolution of\n", " the pre-processing convolutional layer.\n", "* **`STRIDE`** - a scalar (int). The stride of the convolutional layer.\n", "* **`NUM_CHANNELS`** - a scalar (int). The number of output channels of the\n", " pre-processing convolutional layer.\n", "* **`CONV_OUT_SIZE`** - a scalar (int). The resolution of the output of the\n", " pre-processing convolutional layer. i.e. the output of that layer will be of\n", " size (CONV_OUT_SIZE, CONV_OUT_SIZE, NUM_CHANNELS).\n", "\n", "### PrediNet\n", "\n", "* **`HEADS_P`** - a scalar (int). The number of heads of the PrediNet.\n", "* **`RELATIONS_P`** - a scalar (int). The size of the relations vector that\n", " each of the PrediNet heads produces.\n", "* **`CENTRAL_OUTPUT_SIZE`** - a scalar (int). The output size of the central\n", " PrediNet module. It is the combined size of all heads." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "gdgh9j_Xppsj" }, "outputs": [], "source": [ "# Pre-processing convolutional layer parameters\n", "FILTER_SIZE = 12\n", "STRIDE = 6\n", "NUM_CHANNELS = 32\n", "CONV_OUT_SIZE = int((RESOLUTION - FILTER_SIZE) / STRIDE + 1)\n", "\n", "# PrediNet module parameters\n", "HEADS_P = 32\n", "RELATIONS_P = 16\n", "CENTRAL_OUTPUT_SIZE = HEADS_P * (RELATIONS_P + 4)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ZIjWJCsfs0xI" }, "source": [ "## Predinet model\n", "\n", "We now need to define the PrediNet model, which is broken down into three\n", "modules: 1. The input module composed of a single convolutional layer 2. The\n", "central module composed of the PrediNet 3. The output module composed of a two\n", "layer MLP\n", "\n", "The model receives an image from the dataset and a 1-hot encoding of the task\n", "id. The input module processes the image to produce a vector of features for\n", "each of the patches in the input image. The central PrediNet module receives\n", "these feature vectors and produces a key for each of them. Then, each of the\n", "PrediNet heads produces two queries that match two of the keys (or mixtures of\n", "them). A vector of relations is produced by each head using its corresponding\n", "pair of selected feature vectors. The relations produced by all heads are then\n", "put together in a long vector, to which the 1-hot task id is appended. This is\n", "then passed through the output module to produce a classification indicating\n", "whether, or not, the objects in the image conform to the particular high-level\n", "relation defined by the task id. For more details about the network architecture\n", "and the tasks, see the [PrediNet paper](https://arxiv.org/abs/1905.10307)." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "NmPnVBlJghXi" }, "outputs": [], "source": [ "class PrediNet4MultiTask(snt.Module):\n", " \"\"\"PrediNet model for supervised learning.\"\"\"\n", "\n", " def __init__(self,\n", " resolution,\n", " conv_out_size,\n", " filter_size,\n", " stride,\n", " channels,\n", " relations,\n", " heads,\n", " key_size,\n", " output_hidden_size,\n", " num_classes,\n", " num_tasks,\n", " name='PrediNet'):\n", " \"\"\"Initialise the PrediNet model.\n", "\n", " Args:\n", " resolution: a scalar (int). Resolution of raw images.\n", " conv_out_size: a scalar (int). Downsampled image resolution obtained at\n", " the output of the convolutional layer.\n", " filter_size: a scalar (int). Filter size for the convnet.\n", " stride: a scalar (int). Stride size for the convnet.\n", " channels: a scalar (int). Number of channels of the convnet.\n", " relations: a scalar (int). Number of relations computed by each head.\n", " heads: a scalar (int). Number of PrediNet heads.\n", " key_size: a scalar (int). Size of the keys.\n", " output_hidden_size: a scalar (int). Size of hidden layer in output MLP.\n", " num_classes: a scalar (int). Number of classes in the output label.\n", " num_tasks: a scalar (int). Max number of possible tasks.\n", " name: a str. The name of the model.\n", " \"\"\"\n", " super(PrediNet4MultiTask, self).__init__(name=name)\n", " self.model_desc = name\n", " self._resolution = resolution\n", " self._conv_out_size = conv_out_size\n", " self._filter_size = filter_size\n", " self._stride = stride\n", " self._channels = channels\n", " self._relations = relations\n", " self._heads = heads\n", " self._key_size = key_size\n", " self._output_hidden_size = output_hidden_size\n", " self._num_classes = num_classes\n", "\n", " self._weight_initializer = snt.initializers.TruncatedNormal(\n", " mean=0.0, stddev=0.1)\n", " self._bias_initializer = snt.initializers.Constant(0.1)\n", "\n", " # Feature co-ordinate matrix\n", " cols = tf.constant([[[x / float(self._conv_out_size)]\n", " for x in range(self._conv_out_size)]\n", " for _ in range(self._conv_out_size)])\n", " rows = tf.transpose(cols, [1, 0, 2])\n", " # Append feature co-ordinates\n", " self._locs = tf.reshape(\n", " tf.concat([cols, rows], 2),\n", " [self._conv_out_size * self._conv_out_size, 2])\n", "\n", " # Define all model components\n", " self.input_module = snt.Conv2D(\n", " output_channels=self._channels,\n", " kernel_shape=self._filter_size,\n", " stride=self._stride,\n", " padding='VALID',\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.get_keys = snt.Linear(\n", " output_size=self._key_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.get_query1 = snt.Linear(\n", " output_size=self._heads * self._key_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.get_query2 = snt.Linear(\n", " output_size=self._heads * self._key_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.embed_entities = snt.Linear(\n", " output_size=self._relations,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.output_hidden = snt.Linear(\n", " output_size=self._output_hidden_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output = snt.Linear(\n", " output_size=self._num_classes,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", "\n", " def _reinitialise_weight(self, submodule):\n", " \"\"\"Re-initialise a weight variable.\"\"\"\n", " submodule.w.assign(submodule.w_init(submodule.w.shape, submodule.w.dtype))\n", "\n", " def _reinitialise_bias(self, submodule):\n", " \"\"\"Re-initialise a bias variable.\"\"\"\n", " submodule.b.assign(submodule.b_init(submodule.b.shape, submodule.b.dtype))\n", "\n", " def reinitialise_input_module(self):\n", " \"\"\"Re-initialise the weights of the input convnet.\"\"\"\n", " self._reinitialise_weight(self.input_module)\n", " self._reinitialise_bias(self.input_module)\n", "\n", " def reinitialise_central_module(self):\n", " \"\"\"Re-initialise the weights of the central PrediNet module.\"\"\"\n", " self._reinitialise_weight(self.get_keys)\n", " self._reinitialise_weight(self.get_query1)\n", " self._reinitialise_weight(self.get_query2)\n", " self._reinitialise_weight(self.embed_entities)\n", "\n", " def reinitialise_output_module(self):\n", " \"\"\"Re-initialise the weights of the output MLP.\"\"\"\n", " self._reinitialise_weight(self.output_hidden)\n", " self._reinitialise_weight(self.output)\n", " self._reinitialise_bias(self.output_hidden)\n", " self._reinitialise_bias(self.output)\n", "\n", " def __call__(self, x, tasks, batch_size):\n", " \"\"\"Applies model to image x yielding a label.\n", "\n", " Args:\n", " x: tensor. Input images of size (batch_size, RESOLUTION, RESOLUTION, 3).\n", " tasks: tensor. List of task sizes of size (batch_size, NUM_TASKS).\n", " batch_size: scalar (int). Batch size.\n", "\n", " Returns:\n", " output: tensor. Output of the model of size (batch_size, NUM_CLASSES).\n", " \"\"\"\n", " features = tf.nn.relu(self.input_module(x))\n", " features = tf.reshape(features, [batch_size, -1, self._channels])\n", "\n", " # Append location\n", " locs = tf.tile(tf.expand_dims(self._locs, 0), [batch_size, 1, 1])\n", " features_locs = tf.concat([features, locs], 2)\n", " # (batch_size, conv_out_size*conv_out_size, channels+2)\n", "\n", " features_flat = snt.Flatten()(features_locs)\n", " # (batch_size, conv_out_size*conv_out_size*channels+2)\n", "\n", " # Keys\n", " keys = snt.BatchApply(self.get_keys)(features_locs)\n", " # (batch_size, conv_out_size*conv_out_size, key_size)\n", "\n", " keys = tf.tile(tf.expand_dims(keys, 1), [1, self._heads, 1, 1])\n", " # (batch_size, heads, conv_out_size*conv_out_size, key_size)\n", "\n", " # Queries\n", " query1 = self.get_query1(features_flat)\n", " # (batch_size, heads*key_size)\n", " query1 = tf.reshape(query1, [batch_size, self._heads, self._key_size])\n", " # (batch_size, heads, key_size)\n", " query1 = tf.expand_dims(query1, 2)\n", " # (batch_size, heads, 1, key_size)\n", "\n", " query2 = self.get_query2(features_flat)\n", " # (batch_size, heads*key_size)\n", " query2 = tf.reshape(query2, [batch_size, self._heads, self._key_size])\n", " # (batch_size, heads, key_size)\n", " query2 = tf.expand_dims(query2, 2)\n", " # (batch_size, heads, 1, key_size)\n", "\n", " # Attention weights\n", " keys_t = tf.transpose(keys, perm=[0, 1, 3, 2])\n", " # (batch_size, heads, key_size, conv_out_size*conv_out_size)\n", " att1 = tf.nn.softmax(tf.matmul(query1, keys_t))\n", " att2 = tf.nn.softmax(tf.matmul(query2, keys_t))\n", " # (batch_size, heads, 1, conv_out_size*conv_out_size)\n", "\n", " # Reshape features\n", " features_tiled = tf.tile(\n", " tf.expand_dims(features_locs, 1), [1, self._heads, 1, 1])\n", " # (batch_size, heads, conv_out_size*conv_out_size, channels+2)\n", "\n", " # Compute a pair of features using attention weights\n", " feature1 = tf.squeeze(tf.matmul(att1, features_tiled))\n", " feature2 = tf.squeeze(tf.matmul(att2, features_tiled))\n", " # (batch_size, heads, (channels+2))\n", "\n", " # Spatial embedding\n", " embedding1 = snt.BatchApply(self.embed_entities)(feature1)\n", " embedding2 = snt.BatchApply(self.embed_entities)(feature2)\n", " # (batch_size, heads, relations)\n", "\n", " # Comparator\n", " dx = tf.subtract(embedding1, embedding2)\n", " # (batch_size, heads, relations)\n", "\n", " # Positions\n", " pos1 = tf.slice(feature1, [0, 0, self._channels], [-1, -1, -1])\n", " pos2 = tf.slice(feature2, [0, 0, self._channels], [-1, -1, -1])\n", " # (batch_size, heads, 2)\n", "\n", " # Collect relations and concatenate positions\n", " relations = tf.concat([dx, pos1, pos2], 2)\n", " # (batch_size, heads, relations+4)\n", " relations = tf.reshape(relations,\n", " [batch_size, self._heads * (self._relations + 4)])\n", " # (batch_size, heads*(relations+4))\n", "\n", " # Append task id\n", " relations_plus = tf.concat([relations, tasks], 1)\n", "\n", " # Apply output network\n", " hidden_activations = tf.nn.relu(self.output_hidden(relations_plus))\n", " output = self.output(hidden_activations)\n", "\n", " return output" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-fxRUx6qBM6m" }, "source": [ "## Baselines\n", "\n", "If you wish to also train the other baselines, you can run the following code\n", "cell, which will set the required parameters and define the baseline model\n", "classes." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "yBIu3-zIBy2f" }, "outputs": [], "source": [ "# Baseline parameters\n", "\n", "# 2-layer MLP baseline\n", "# Fully connected hidden layer size\n", "CENTRAL_HIDDEN_SIZE = 1024\n", "\n", "# Relation net\n", "# Relation net MLP layer 1 size\n", "RN_HIDDEN_SIZE = 256\n", "\n", "# Self-attention net\n", "# Self-attention net number of heads - 32 will match those of PrediNet.\n", "HEADS_SA = 32\n", "# The required size of the Values produced by the model (per head), such that\n", "# the self-attention output size equals that of the PrediNet.\n", "VALUE_SIZE = int(CENTRAL_OUTPUT_SIZE / HEADS_SA)\n", "\n", "\n", "# And below you can find the function definition.\n", "class ConvNetMLP1L(snt.Module):\n", " \"\"\"Convnet + Single layer baseline model for supervised learning.\n", "\n", " Input net = convnet\n", " Central net = Single linear layer\n", " Output net = 2-layer MLP\n", " \"\"\"\n", "\n", " def __init__(self,\n", " resolution,\n", " conv_out_size,\n", " filter_size,\n", " stride,\n", " channels,\n", " central_output_size,\n", " output_hidden_size,\n", " num_classes,\n", " num_tasks,\n", " name='ConvNetMLP1L'):\n", " \"\"\"Initialise the convnet/MLP model.\n", "\n", " Args:\n", " resolution: scalar. Resolution of raw images.\n", " conv_out_size: scalar. Downsampled resolution of the images.\n", " filter_size: scalar. Filter size for the convnet.\n", " stride: scalar. Stride size for the convnet.\n", " channels: scalar. Number of channels of the convnet.\n", " central_output_size: scalar. Output size of central MLP.\n", " output_hidden_size: a scalar (int). Size of hidden layer in output MLP.\n", " num_classes: scalar. Number of classes in the output label.\n", " num_tasks: scalar. Max number of possible tasks.\n", " name: a str. The name of the model.\n", " \"\"\"\n", " super(ConvNetMLP1L, self).__init__(name=name)\n", " self.model_desc = '1-layer baseline'\n", " self._resolution = resolution\n", " self._conv_out_size = conv_out_size\n", " self._filter_size = filter_size\n", " self._stride = stride\n", " self._channels = channels\n", " self._central_output_size = central_output_size\n", " self._output_hidden_size = output_hidden_size\n", " self._num_classes = num_classes\n", "\n", " self._weight_initializer = snt.initializers.TruncatedNormal(\n", " mean=0.0, stddev=0.1)\n", " self._bias_initializer = snt.initializers.Constant(0.1)\n", "\n", " # Feature co-ordinate matrix\n", " cols = tf.constant([[[x / float(self._conv_out_size)]\n", " for x in range(self._conv_out_size)]\n", " for _ in range(self._conv_out_size)])\n", " rows = tf.transpose(cols, [1, 0, 2])\n", " # Append feature co-ordinates\n", " self._locs = tf.reshape(\n", " tf.concat([cols, rows], 2),\n", " [self._conv_out_size * self._conv_out_size, 2])\n", "\n", " # Define all model components\n", " self.input_module = snt.Conv2D(\n", " output_channels=self._channels,\n", " kernel_shape=self._filter_size,\n", " stride=self._stride,\n", " padding='VALID',\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.central_hidden = snt.Linear(\n", " output_size=self._central_output_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output_hidden = snt.Linear(\n", " output_size=self._output_hidden_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output = snt.Linear(\n", " output_size=self._num_classes,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", "\n", " def _reinitialise_weight(self, submodule):\n", " \"\"\"Re-initialise a weight variable.\"\"\"\n", " submodule.w.assign(submodule.w_init(submodule.w.shape, submodule.w.dtype))\n", "\n", " def _reinitialise_bias(self, submodule):\n", " \"\"\"Re-initialise a bias variable.\"\"\"\n", " submodule.b.assign(submodule.b_init(submodule.b.shape, submodule.b.dtype))\n", "\n", " def reinitialise_input_module(self):\n", " \"\"\"Re-initialise the weights of the input convnet.\"\"\"\n", " self._reinitialise_weight(self.input_module)\n", " self._reinitialise_bias(self.input_module)\n", "\n", " def reinitialise_central_module(self):\n", " \"\"\"Re-initialise the weights of the central hidden layer.\"\"\"\n", " self._reinitialise_weight(self.central_hidden)\n", " self._reinitialise_bias(self.central_hidden)\n", "\n", " def reinitialise_output_module(self):\n", " \"\"\"Re-initialise the weights of the output MLP.\"\"\"\n", " self._reinitialise_weight(self.output_hidden)\n", " self._reinitialise_weight(self.output)\n", " self._reinitialise_bias(self.output_hidden)\n", " self._reinitialise_bias(self.output)\n", "\n", " def __call__(self, x, tasks, batch_size):\n", " \"\"\"Applies model to image x yielding a label.\n", "\n", " Args:\n", " x: tensor. Input image.\n", " tasks: tensor. List of task sizes of length batch_size.\n", " batch_size: scalar. Batch size.\n", "\n", " Returns:\n", " output: tensor. Output of the model.\n", " \"\"\"\n", " features = tf.nn.relu(self.input_module(x))\n", " features = tf.reshape(features, [batch_size, -1, self._channels])\n", "\n", " # Append location\n", " locs = tf.tile(tf.expand_dims(self._locs, 0), [batch_size, 1, 1])\n", " features_locs = tf.concat([features, locs], 2)\n", " # (batch_size, conv_out_size*conv_out_size, channels+2)\n", "\n", " features_flat = snt.Flatten()(features_locs)\n", " # (batch_size, conv_out_size*conv_out_size*(channels+2))\n", "\n", " # Fully connected layers\n", " central_activations = tf.nn.relu(self.central_hidden(features_flat))\n", " # (batch_size, central_output_size)\n", "\n", " # Append task id\n", " central_output = tf.concat([central_activations, tasks], 1)\n", "\n", " # Apply output network\n", " hidden_activations = tf.nn.relu(self.output_hidden(central_output))\n", " output = self.output(hidden_activations)\n", "\n", " return output\n", "\n", "\n", "class ConvNetMLP2L(snt.Module):\n", " \"\"\"Convnet/MLP baseline model for supervised learning.\n", "\n", " Input net = convnet\n", " Central net = 2-layer MLP\n", " Output net = 2-layer MLP\n", " \"\"\"\n", "\n", " def __init__(self,\n", " resolution,\n", " conv_out_size,\n", " filter_size,\n", " stride,\n", " channels,\n", " central_hidden_size,\n", " central_output_size,\n", " output_hidden_size,\n", " num_classes,\n", " num_tasks,\n", " name='MLP2'):\n", " \"\"\"Initialise the convnet/MLP model.\n", "\n", " Args:\n", " resolution: scalar. Resolution of raw images.\n", " conv_out_size: scalar. Downsampled resolution of the images.\n", " filter_size: scalar. Filter size for the convnet.\n", " stride: scalar. Stride size for the convnet.\n", " channels: scalar. Number of channels of the convnet.\n", " central_hidden_size: scalar. Hidden units size of central MLP.\n", " central_output_size: scalar. Output size of central MLP.\n", " output_hidden_size: a scalar (int). Size of hidden layer in output MLP.\n", " num_classes: scalar. Number of classes in the output label.\n", " num_tasks: scalar. Max number of possible tasks.\n", " name: a str. The name of the model.\n", " \"\"\"\n", " super(ConvNetMLP2L, self).__init__(name=name)\n", " self.model_desc = '2-layer MLP baseline'\n", " self._resolution = resolution\n", " self._conv_out_size = conv_out_size\n", " self._filter_size = filter_size\n", " self._stride = stride\n", " self._channels = channels\n", " self._central_hidden_size = central_hidden_size\n", " self._central_output_size = central_output_size\n", " self._output_hidden_size = output_hidden_size\n", " self._num_classes = num_classes\n", "\n", " self._weight_initializer = snt.initializers.TruncatedNormal(\n", " mean=0.0, stddev=0.1)\n", " self._bias_initializer = snt.initializers.Constant(0.1)\n", "\n", " # Feature co-ordinate matrix\n", " cols = tf.constant([[[x / float(self._conv_out_size)]\n", " for x in range(self._conv_out_size)]\n", " for _ in range(self._conv_out_size)])\n", " rows = tf.transpose(cols, [1, 0, 2])\n", " # Append feature co-ordinates\n", " self._locs = tf.reshape(\n", " tf.concat([cols, rows], 2),\n", " [self._conv_out_size * self._conv_out_size, 2])\n", "\n", " # Define all model components\n", " self.input_module = snt.Conv2D(\n", " output_channels=self._channels,\n", " kernel_shape=self._filter_size,\n", " stride=self._stride,\n", " padding='VALID',\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.central_hidden = snt.Linear(\n", " output_size=self._central_hidden_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.central_output = snt.Linear(\n", " output_size=self._central_output_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output_hidden = snt.Linear(\n", " output_size=self._output_hidden_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output = snt.Linear(\n", " output_size=self._num_classes,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", "\n", " def _reinitialise_weight(self, submodule):\n", " \"\"\"Re-initialise a weight variable.\"\"\"\n", " submodule.w.assign(submodule.w_init(submodule.w.shape, submodule.w.dtype))\n", "\n", " def _reinitialise_bias(self, submodule):\n", " \"\"\"Re-initialise a bias variable.\"\"\"\n", " submodule.b.assign(submodule.b_init(submodule.b.shape, submodule.b.dtype))\n", "\n", " def reinitialise_input_module(self):\n", " \"\"\"Re-initialise the weights of the input convnet.\"\"\"\n", " self._reinitialise_weight(self.input_module)\n", " self._reinitialise_bias(self.input_module)\n", "\n", " def reinitialise_central_module(self):\n", " \"\"\"Re-initialise the weights of the central layers.\"\"\"\n", " self._reinitialise_weight(self.central_hidden)\n", " self._reinitialise_bias(self.central_hidden)\n", " self._reinitialise_weight(self.central_output)\n", " self._reinitialise_bias(self.central_output)\n", "\n", " def reinitialise_output_module(self):\n", " \"\"\"Re-initialise the weights of the output MLP.\"\"\"\n", " self._reinitialise_weight(self.output_hidden)\n", " self._reinitialise_weight(self.output)\n", " self._reinitialise_bias(self.output_hidden)\n", " self._reinitialise_bias(self.output)\n", "\n", " def __call__(self, x, tasks, batch_size):\n", " \"\"\"Applies model to image x yielding a label.\n", "\n", " Args:\n", " x: tensor. Input image.\n", " tasks: tensor. List of task sizes of length batch_size.\n", " batch_size: scalar. Batch size.\n", "\n", " Returns:\n", " output: tensor. Output of the model.\n", " \"\"\"\n", " features = tf.nn.relu(self.input_module(x))\n", " features = tf.reshape(features, [batch_size, -1, self._channels])\n", "\n", " # Append location\n", " locs = tf.tile(tf.expand_dims(self._locs, 0), [batch_size, 1, 1])\n", " features_locs = tf.concat([features, locs], 2)\n", " # (batch_size, conv_out_size*conv_out_size, channels+2)\n", "\n", " features_flat = snt.Flatten()(features_locs)\n", " # (batch_size, conv_out_size*conv_out_size*(channels+2))\n", "\n", " # Fully connected layers\n", " central_activations = tf.nn.relu(self.central_hidden(features_flat))\n", " # (batch_size, central_hidden_size)\n", " central_out_activations = tf.nn.relu(\n", " self.central_output(central_activations))\n", " # (batch_size, central_output_size)\n", "\n", " # Append task id\n", " central_out_locs = tf.concat([central_out_activations, tasks], 1)\n", "\n", " # Apply output network\n", " hidden_activations = tf.nn.relu(self.output_hidden(central_out_locs))\n", " output = self.output(hidden_activations)\n", "\n", " return output\n", "\n", "\n", "class RelationNet(snt.Module):\n", " \"\"\"Relation net baseline model for supervised learning.\n", "\n", " Input net = convnet\n", " Central net = relation net\n", " Output net = 2-layer MLP\n", "\n", " Relation network taken from: Santoro, A., Raposo, D., Barrett,\n", " D. G., Malinowski, M., Pascanu, R., Battaglia, P., \u0026 Lillicrap, T.\n", " (2017). A simple neural network module for relational reasoning.\n", " In Advances in neural information processing systems (pp. 4967-4976).\n", " http://papers.nips.cc/paper/7082-a-simple-neural-network-module-for-relational-reasoning\n", " \"\"\"\n", "\n", " def __init__(self,\n", " resolution,\n", " conv_out_size,\n", " filter_size,\n", " stride,\n", " channels,\n", " central_hidden_size,\n", " central_output_size,\n", " output_hidden_size,\n", " num_classes,\n", " num_tasks,\n", " name='RelationNet'):\n", " \"\"\"Initialise the relation net model.\n", "\n", " Args:\n", " resolution: scalar. Resolution of raw images.\n", " conv_out_size: scalar. Downsampled resolution of the images.\n", " filter_size: scalar. Filter size for the convnet.\n", " stride: scalar. Stride size for the convnet.\n", " channels: scalar. Number of channels of the convnet.\n", " central_hidden_size: scalar. Hidden units size of Relation Net module.\n", " central_output_size: scalar. Output size of Relation Net module.\n", " output_hidden_size: a scalar (int). Size of hidden layer in output MLP.\n", " num_classes: scalar. Number of classes in the output label.\n", " num_tasks: scalar. Max number of possible tasks.\n", " name: a str. The name of the model.\n", " \"\"\"\n", " super(RelationNet, self).__init__(name=name)\n", " self.model_desc = 'Relation net baseline'\n", " self._resolution = resolution\n", " self._conv_out_size = conv_out_size\n", " self._filter_size = filter_size\n", " self._stride = stride\n", " self._channels = channels\n", " self._central_hidden_size = central_hidden_size\n", " self._central_output_size = central_output_size\n", " self._output_hidden_size = output_hidden_size\n", " self._num_classes = num_classes\n", "\n", " self._weight_initializer = snt.initializers.TruncatedNormal(\n", " mean=0.0, stddev=0.1)\n", " self._bias_initializer = snt.initializers.Constant(0.1)\n", "\n", " # Feature co-ordinate matrix\n", " cols = tf.constant([[[x / float(self._conv_out_size)]\n", " for x in range(self._conv_out_size)]\n", " for _ in range(self._conv_out_size)])\n", " rows = tf.transpose(cols, [1, 0, 2])\n", " # Append feature co-ordinates\n", " self._locs = tf.reshape(\n", " tf.concat([cols, rows], 2),\n", " [self._conv_out_size * self._conv_out_size, 2])\n", "\n", " # Define all model components\n", " self.input_module = snt.Conv2D(\n", " output_channels=self._channels,\n", " kernel_shape=self._filter_size,\n", " stride=self._stride,\n", " padding='VALID',\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.central_hidden = snt.Linear(\n", " output_size=self._central_hidden_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.central_output = snt.Linear(\n", " output_size=self._central_output_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.output_hidden = snt.Linear(\n", " output_size=self._output_hidden_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output = snt.Linear(\n", " output_size=self._num_classes,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", "\n", " def _reinitialise_weight(self, submodule):\n", " \"\"\"Re-initialise a weight variable.\"\"\"\n", " submodule.w.assign(submodule.w_init(submodule.w.shape, submodule.w.dtype))\n", "\n", " def _reinitialise_bias(self, submodule):\n", " \"\"\"Re-initialise a bias variable.\"\"\"\n", " submodule.b.assign(submodule.b_init(submodule.b.shape, submodule.b.dtype))\n", "\n", " def reinitialise_input_module(self):\n", " \"\"\"Re-initialise the weights of the input convnet.\"\"\"\n", " self._reinitialise_weight(self.input_module)\n", " self._reinitialise_bias(self.input_module)\n", "\n", " def reinitialise_central_module(self):\n", " \"\"\"Re-initialise the weights of the central layers.\"\"\"\n", " self._reinitialise_weight(self.central_hidden)\n", " self._reinitialise_weight(self.central_output)\n", "\n", " def reinitialise_output_module(self):\n", " \"\"\"Re-initialise the weights of the output MLP.\"\"\"\n", " self._reinitialise_weight(self.output_hidden)\n", " self._reinitialise_weight(self.output)\n", " self._reinitialise_bias(self.output_hidden)\n", " self._reinitialise_bias(self.output)\n", "\n", " def __call__(self, x, tasks, batch_size):\n", " \"\"\"Applies model to image x yielding a label.\n", "\n", " Args:\n", " x: tensor. Input image.\n", " tasks: tensor. List of task sizes of length batch_size.\n", " batch_size: scalar. Batch size.\n", "\n", " Returns:\n", " output: tensor. Output of the model.\n", " \"\"\"\n", " features = tf.nn.relu(self.input_module(x))\n", " features = tf.reshape(features, [batch_size, -1, self._channels])\n", "\n", " # Append location\n", " locs = tf.tile(tf.expand_dims(self._locs, 0), [batch_size, 1, 1])\n", " features_locs = tf.concat([features, locs], 2)\n", " # (batch_size, conv_out_size*conv_out_size, channels+2)\n", "\n", " features_flat = tf.reshape(\n", " features_locs,\n", " [batch_size, (self._conv_out_size**2), self._channels + 2])\n", " # (batch_size, conv_out_size*conv_out_size, (channels+2))\n", "\n", " # Compute all possible pairs of features\n", " num_features = self._conv_out_size * self._conv_out_size\n", " indexes = tf.range(num_features)\n", " receiver_indexes = tf.tile(indexes, [num_features])\n", " sender_indexes = tf.reshape(\n", " tf.transpose(\n", " tf.reshape(receiver_indexes, [num_features, num_features])), [-1])\n", " receiver_objects = tf.gather(features_flat, receiver_indexes, axis=1)\n", " sender_objects = tf.gather(features_flat, sender_indexes, axis=1)\n", " object_pairs = tf.concat([sender_objects, receiver_objects], -1)\n", " # (batch_size, (conv_out_size*conv_out_size)^2, (channels+2)*2)\n", "\n", " # Compute \"relations\"\n", " central_activations = tf.nn.relu(\n", " snt.BatchApply(self.central_hidden)(object_pairs))\n", " # (batch_size, (conv_out_size*conv_out_size)^2, central_hidden_size)\n", " central_out_activations = tf.nn.relu(\n", " snt.BatchApply(self.central_output)(central_activations))\n", " # (batch_size, (conv_out_size*conv_out_size)^2, central_output_size)\n", "\n", " # Aggregate relations\n", " central_out_mean = tf.reduce_mean(central_out_activations, 1)\n", " # (batch_size, central_output_size)\n", "\n", " # Append task id\n", " central_out_locs = tf.concat([central_out_mean, tasks], 1)\n", "\n", " # Apply output network\n", " hidden_activations = tf.nn.relu(self.output_hidden(central_out_locs))\n", " output = self.output(hidden_activations)\n", "\n", " return output\n", "\n", "\n", "class CombineValues(snt.Module):\n", " \"\"\"Custom module for computing tensor products in SelfAttentionNet.\"\"\"\n", "\n", " def __init__(self, heads, w_init=None):\n", " \"\"\"Initialise the CombineValues module.\n", "\n", " Args:\n", " heads: scalar. Number of heads over which to combine the values.\n", " w_init: an initializer. A sonnet snt.initializers.\n", " \"\"\"\n", " super(CombineValues, self).__init__(name='CombineValues')\n", " self._heads = heads\n", " self.w_init = w_init\n", "\n", " @snt.once\n", " def _initialize(self, inputs):\n", " num_features = inputs.shape[2]\n", " if self.w_init is None:\n", " self.w_init = snt.initializers.TruncatedNormal(mean=0.0, stddev=0.1)\n", " self.w = tf.Variable(\n", " self.w_init([self._heads, 1, num_features], inputs.dtype), name='w')\n", "\n", " def __call__(self, inputs):\n", " self._initialize(inputs)\n", " return tf.einsum('bhrv,har-\u003ebhav', inputs, self.w)\n", "\n", "\n", "class SelfAttentionNet(snt.Module):\n", " \"\"\"Self-attention network model for supervised learning.\n", "\n", " Input net = convnet\n", " Central net = self-attention module\n", " Output net = 2-layer MLP\n", " \"\"\"\n", "\n", " def __init__(self,\n", " resolution,\n", " conv_out_size,\n", " filter_size,\n", " stride,\n", " channels,\n", " heads,\n", " key_size,\n", " value_size,\n", " output_hidden_size,\n", " num_classes,\n", " num_tasks,\n", " name='SelfAttention'):\n", " \"\"\"Initialise the self-attention net model.\n", "\n", " Args:\n", " resolution: scalar. Resolution of raw images.\n", " conv_out_size: scalar. Downsampled resolution of the images.\n", " filter_size: scalar. Filter size for the convnet.\n", " stride: scalar. Stride size for the convnet.\n", " channels: scalar. Number of channels of the convnet.\n", " heads: scalar. Number of self-attention net heads.\n", " key_size: scalar. Size of the keys.\n", " value_size: scalar. Size of values in self-attention module.\n", " output_hidden_size: a scalar (int). Size of hidden layer in output MLP.\n", " num_classes: scalar. Number of classes in the output label.\n", " num_tasks: scalar. Max number of possible tasks.\n", " name: a str. The name of the model.\n", " \"\"\"\n", " super(SelfAttentionNet, self).__init__(name=name)\n", " self.model_desc = 'Self-attention net baseline'\n", " self._resolution = resolution\n", " self._conv_out_size = conv_out_size\n", " self._filter_size = filter_size\n", " self._stride = stride\n", " self._channels = channels\n", " self._heads = heads\n", " self._key_size = key_size\n", " self._value_size = value_size\n", " self._output_hidden_size = output_hidden_size\n", " self._num_classes = num_classes\n", "\n", " self._weight_initializer = snt.initializers.TruncatedNormal(\n", " mean=0.0, stddev=0.1)\n", " self._bias_initializer = snt.initializers.Constant(0.1)\n", "\n", " # Feature co-ordinate matrix\n", " cols = tf.constant([[[x / float(self._conv_out_size)]\n", " for x in range(self._conv_out_size)]\n", " for _ in range(self._conv_out_size)])\n", " rows = tf.transpose(cols, [1, 0, 2])\n", " # Append feature co-ordinates\n", " self._locs = tf.reshape(\n", " tf.concat([cols, rows], 2),\n", " [self._conv_out_size * self._conv_out_size, 2])\n", "\n", " # Define all model components\n", " self.input_module = snt.Conv2D(\n", " output_channels=self._channels,\n", " kernel_shape=self._filter_size,\n", " stride=self._stride,\n", " padding='VALID',\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.get_keys = snt.Linear(\n", " output_size=self._heads * self._key_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.get_queries = snt.Linear(\n", " output_size=self._heads * self._key_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.get_values = snt.Linear(\n", " output_size=self._heads * self._value_size,\n", " with_bias=False,\n", " w_init=self._weight_initializer)\n", " self.central_output = CombineValues(\n", " heads=self._heads, w_init=self._weight_initializer)\n", " self.output_hidden = snt.Linear(\n", " output_size=self._output_hidden_size,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", " self.output = snt.Linear(\n", " output_size=self._num_classes,\n", " w_init=self._weight_initializer,\n", " b_init=self._bias_initializer)\n", "\n", " def _reinitialise_weight(self, submodule):\n", " \"\"\"Re-initialise a weight variable.\"\"\"\n", " submodule.w.assign(submodule.w_init(submodule.w.shape, submodule.w.dtype))\n", "\n", " def _reinitialise_bias(self, submodule):\n", " \"\"\"Re-initialise a bias variable.\"\"\"\n", " submodule.b.assign(submodule.b_init(submodule.b.shape, submodule.b.dtype))\n", "\n", " def reinitialise_input_module(self):\n", " \"\"\"Re-initialise the weights of the input convnet.\"\"\"\n", " self._reinitialise_weight(self.input_module)\n", " self._reinitialise_bias(self.input_module)\n", "\n", " def reinitialise_central_module(self):\n", " \"\"\"Re-initialise the weights of the central PrediNet module.\"\"\"\n", " self._reinitialise_weight(self.get_keys)\n", " self._reinitialise_weight(self.get_queries)\n", " self._reinitialise_weight(self.get_values)\n", " self._reinitialise_weight(self.central_output)\n", "\n", " def reinitialise_output_module(self):\n", " \"\"\"Re-initialise the weights of the output MLP.\"\"\"\n", " self._reinitialise_weight(self.output_hidden)\n", " self._reinitialise_weight(self.output)\n", " self._reinitialise_bias(self.output_hidden)\n", " self._reinitialise_bias(self.output)\n", "\n", " def __call__(self, x, tasks, batch_size):\n", " \"\"\"Applies model to image x yielding a label.\n", "\n", " Args:\n", " x: tensor. Input images of size (batch_size, RESOLUTION, RESOLUTION, 3).\n", " tasks: tensor. List of task sizes of size (batch_size, NUM_TASKS).\n", " batch_size: scalar (int). Batch size.\n", "\n", " Returns:\n", " output: tensor. Output of the model of size (batch_size, NUM_CLASSES).\n", " \"\"\"\n", " features = tf.nn.relu(self.input_module(x))\n", " features = tf.reshape(features, [batch_size, -1, self._channels])\n", "\n", " # Append location\n", " locs = tf.tile(tf.expand_dims(self._locs, 0), [batch_size, 1, 1])\n", " features_locs = tf.concat([features, locs], 2)\n", " # (batch_size, conv_out_size*conv_out_size, channels+2)\n", "\n", " # Keys\n", " keys = snt.BatchApply(self.get_keys)(features_locs)\n", " #(batch_size, conv_out_size*conv_out_size, heads*key_size)\n", " keys = tf.reshape(keys, [\n", " batch_size, self._conv_out_size * self._conv_out_size, self._heads,\n", " self._key_size\n", " ])\n", " #(batch_size, conv_out_size*conv_out_size, heads, key_size)\n", "\n", " # Queries\n", " queries = snt.BatchApply(self.get_queries)(features_locs)\n", " #(batch_size, conv_out_size*conv_out_size, heads*key_size)\n", " queries = tf.reshape(queries, [\n", " batch_size, self._conv_out_size * self._conv_out_size, self._heads,\n", " self._key_size\n", " ])\n", " #(batch_size, conv_out_size*conv_out_size, heads, key_size)\n", "\n", " # Values\n", " values = snt.BatchApply(self.get_values)(features_locs)\n", " #(batch_size, conv_out_size*conv_out_size, heads*value_size)\n", " values = tf.reshape(values, [\n", " batch_size, self._conv_out_size * self._conv_out_size, self._heads,\n", " self._value_size\n", " ])\n", " #(batch_size, conv_out_size*conv_out_size, heads, values_size)\n", "\n", " # Attention weights\n", " queries_t = tf.transpose(queries, perm=[0, 2, 1, 3])\n", " # (batch_size, heads, conv_out_size*conv_out_size, key_size)\n", " keys_t = tf.transpose(keys, perm=[0, 2, 3, 1])\n", " # (batch_size, heads, key_size, conv_out_size*conv_out_size)\n", " att = tf.nn.softmax(tf.matmul(queries_t, keys_t))\n", " # (batch_size, heads, conv_out_size^2, conv_out_size^2)\n", "\n", " # Apply attention weights to values\n", " values_t = tf.transpose(values, perm=[0, 2, 1, 3])\n", " # (batch_size, heads, conv_out_size*conv_out_size, value_size)\n", " values_out = tf.matmul(att, values_t)\n", " # (batch_size, heads, conv_out_size*conv_out_size, value_size)\n", "\n", " # Compute self-attention head output\n", " central_out = snt.Flatten()(tf.squeeze(self.central_output(values_out)))\n", " # (batch_size, heads*value_size)\n", "\n", " # Append task id\n", " central_out_plus = tf.concat([central_out, tasks], 1)\n", "\n", " # Apply output network\n", " hidden_activations = tf.nn.relu(self.output_hidden(central_out_plus))\n", " output = self.output(hidden_activations)\n", "\n", " return output" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "F-Xv4cwLs5NC" }, "source": [ "## Training\n", "\n", "We now define functions for calculating the accuracy, loss, and gradients of our\n", "model, as well as the training function. The training function takes a model and\n", "a task name, draws batches from the training set (pentos) to train, and from the\n", "validation set (hexos) to report progress periodically. The model is trained\n", "with a learning rate of `0.01` using the `GradientDescentOptimizer`." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "OXAgc6k_RQXf" }, "outputs": [], "source": [ "def accuracy(y, y_labels):\n", " \"\"\"Returns the average accuracy between model predictions and labels.\n", "\n", " Args:\n", " y: a tensor (batch_size, NUM_CLASSES) containing the model predictions.\n", " y_labels: a tensor of size (batch_size, NUM_CLASSES) containing 1-hot\n", " embeddings of the labels.\n", " \"\"\"\n", " correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_labels, 1))\n", "\n", " return tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", "\n", "\n", "def loss(y, y_labels):\n", " \"\"\"Returns the cross entropy loss between the predictions and the labels.\n", "\n", " Args:\n", " y: a tensor (batch_size, NUM_CLASSES) containing the model predictions.\n", " y_labels: a tensor of size (batch_size, NUM_CLASSES) containing 1-hot\n", " embeddings of the labels.\n", "\n", " Returns:\n", " cross_entropy: A tensor containing the average cross entropy between the\n", " predictions and the model.\n", " \"\"\"\n", "\n", " cross_entropy = tf.reduce_mean(\n", " tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_labels))\n", " return cross_entropy\n", "\n", "\n", "def grad(model, x, tasks, y_labels, batch_size, variable_list):\n", " \"\"\"Compute the gradients of the loss wirht respect the the model parameters.\n", "\n", " Args:\n", " model: An instance of the model being trained.\n", " x: tensor. Input images of size (batch_size, RESOLUTION, RESOLUTION, 3).\n", " tasks: tensor. List of task sizes of size (batch_size, NUM_TASKS).\n", " y_labels: a tensor of size (batch_size, NUM_CLASSES) containing 1-hot\n", " embeddings of the labels.\n", " batch_size: scalar (int). The number of samples in the batch.\n", " variable_list: list. Contains all the variables to be updated.\n", "\n", " Returns:\n", " A list of Tensors containing the gradients for each of the variables in the\n", " variable_list with respect to the loss.\n", " \"\"\"\n", "\n", " with tf.GradientTape() as tape:\n", " y = model(x=x, tasks=tasks, batch_size=batch_size)\n", " loss_value = loss(y, y_labels)\n", " return tape.gradient(loss_value, variable_list)\n", "\n", "\n", "def train_model(model, task_name, variable_list, epsilon=0.01):\n", " \"\"\"Trains the given model on the given dataset.\n", "\n", " Args:\n", " model: An instance of the model to be trained.\n", " task_name: string. The name of the task to train on.\n", " variable_list: list. Contains all the variables to be updated.\n", " epsilon: float. The early stopping threshold.\n", "\n", " Returns:\n", " A tuple containing the trained model and a list of accuracies during\n", " training.\n", " \"\"\"\n", "\n", " print('Training {0} on {1}\\n'.format(model.model_desc, TRAINING_SET_NAME))\n", "\n", " train_iterations = 100000\n", " train_batch_size = 10\n", " valid_batch_size = 250\n", "\n", " training_set = get_dataset(task_name, TRAINING_SET_NAME, train_batch_size)\n", " valid_set = iter(\n", " get_dataset(task_name, VALIDATION_SET_NAME, valid_batch_size))\n", "\n", " valid_data = next(valid_set)\n", " x_valid = valid_data[0]\n", " y_valid_labels = valid_data[2]\n", " tasks_valid = valid_data[4]\n", "\n", " optimizer = snt.optimizers.SGD(learning_rate=0.01)\n", "\n", " # Initial accuracy for reference.\n", " y_valid = model(x_valid, tasks_valid, valid_batch_size)\n", " acc = accuracy(y_valid, y_valid_labels)\n", " accuracies = [acc]\n", " print('Accuracy for batch 0 {:.3f}\\n'.format(acc))\n", "\n", " converged = False\n", " for train_iter, train_data in enumerate(training_set.take(train_iterations)):\n", "\n", " if not converged:\n", " x_train = train_data[0]\n", " y_train_labels = train_data[2]\n", " tasks_train = train_data[4]\n", " grads = grad(model, x_train, tasks_train, y_train_labels,\n", " train_batch_size, variable_list)\n", " optimizer.apply(grads, variable_list)\n", "\n", " # Compute accuracy\n", " if (train_iter + 1) % 500 == 0:\n", " valid_data = next(valid_set)\n", " x_valid = valid_data[0]\n", " y_valid_labels = valid_data[2]\n", " tasks_valid = valid_data[4]\n", " y_valid = model(x_valid, tasks_valid, valid_batch_size)\n", " acc = accuracy(y_valid, y_valid_labels)\n", " accuracies.append(acc)\n", " converged = (1 - acc) \u003c epsilon\n", "\n", " if (train_iter + 1) % 20000 == 0:\n", " if not converged:\n", " print('Accuracy for batch {0} {1:.3f}\\n'.format(train_iter + 1, acc))\n", "\n", " return (model, accuracies)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "jNV52vCl4yLI" }, "source": [ "## Testing\n", "\n", "Here we define a function that will test the accuracy of the trained model on a\n", "given task, using the test set (stripes)." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "xKUcjusr3Icn" }, "outputs": [], "source": [ "def test_model(model, task_name):\n", " \"\"\"Tests the given (trained) model on the given dataset and prints accuracy.\n", "\n", " Args:\n", " model: An instance of the trained model.\n", " task_name: string. The name of the task to train on.\n", " \"\"\"\n", "\n", " print('Testing {0} on {1}'.format(model.model_desc, TEST_SET_NAME))\n", "\n", " batch_size = 250\n", "\n", " test_set = iter(get_dataset(task_name, TEST_SET_NAME, batch_size))\n", " test_data = next(test_set)\n", "\n", " x_test = test_data[0]\n", " y_test_labels = test_data[2]\n", " tasks_test = test_data[4]\n", "\n", " y_test = model(x_test, tasks_test, batch_size)\n", "\n", " test_accuracy = accuracy(y_test, y_test_labels)\n", " print('Accuracy for test set {:.3f}\\n'.format(test_accuracy))\n", "\n", " # Show first 10 samples\n", " plt.subplots(figsize=(20, 5))\n", "\n", " for i in range(10):\n", " image = x_test[i]\n", " label = tf.argmax(y_test[i])\n", " task = tf.argmax(tasks_test[i])\n", "\n", " plt.subplot(1, 10, i + 1)\n", " show_image(image)\n", " plt.title('Task {0} label {1}'.format(task, label))\n", "\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_bH32LrP4_fF" }, "source": [ "## The Multi-task experiment\n", "\n", "Now that all the necesary functions for running the experiment have been\n", "defined, we will create our experiment. In order to assess the benefits of\n", "pre-training, we will be conducting a four-stage experiment. These four stages\n", "are:\n", "\n", "1. Train model A on target tasks from scratch\n", "2. Pre-train a new model B on pre-training tasks\n", "3. Retrain model B on target tasks with input and central network weights\n", " frozen, and output weights randomised\n", "4. Retrain on target tasks with input weights only frozen, and central and\n", " output weights randomised\n", "\n", "What we expect to see is that during the third stage, the model can utilise the\n", "representations learned from the pre-training task, and train on the original\n", "task using fewer samples than when trained on the original task from scratch." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "Vao9Qxcy-4P3" }, "outputs": [], "source": [ "def multitask_experiment(model_name, tasks, pre_tasks):\n", " \"\"\"Carries out a four-stage experiment to assess benefits of pre-training.\n", "\n", " Args:\n", " model_name: string. Indicates which model is to be evaluated.\n", " tasks: string. The name of the target task(s) dataset.\n", " pre_tasks: string. The name of the pre-training tasks dataset.\n", "\n", " Returns:\n", " model. The final trained model.\n", " [accs1, accs2, accs3, accs4]. Lists of accuracies during training\n", " for each of the four stages of the experiment.\n", " \"\"\"\n", "\n", " print('\\n *** Starting experiment with {} model \\n'.format(model_name))\n", " print('Target task(s): {}'.format(tasks))\n", " print('Curriculum task(s): {} \\n'.format(pre_tasks))\n", "\n", " # 1. Train on target task(s) without pre-training\n", " print('\\nTARGET TASK(S) WITHOUT PRE-TRAINING\\n')\n", "\n", " if model_name == 'ConvNetMLP1L':\n", " model = ConvNetMLP1L(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " central_output_size=CENTRAL_OUTPUT_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'ConvNetMLP2L':\n", " model = ConvNetMLP2L(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " central_hidden_size=CENTRAL_HIDDEN_SIZE,\n", " central_output_size=CENTRAL_OUTPUT_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'RelationNet':\n", " model = RelationNet(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " central_hidden_size=RN_HIDDEN_SIZE,\n", " central_output_size=CENTRAL_OUTPUT_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'SelfAttentionNet':\n", " model = SelfAttentionNet(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " heads=HEADS_SA,\n", " key_size=16,\n", " value_size=VALUE_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'PrediNet':\n", " model = PrediNet4MultiTask(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " relations=RELATIONS_P,\n", " heads=HEADS_P,\n", " key_size=16,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " else:\n", " raise ValueError('Model {0} not recognised'.format(model_name))\n", " # Connect model\n", " _ = model(\n", " tf.zeros([10, RESOLUTION, RESOLUTION, 3]), tf.zeros([10, NUM_TASKS]), 10)\n", " variable_list = model.trainable_variables\n", " (model, accs1) = train_model(model, tasks, variable_list, epsilon=0.01)\n", " test_model(model, tasks)\n", "\n", " # 2. Pre-train on multi-task curriculum\n", " print('PRE-TRAINING CURRICULUM TASKS\\n')\n", "\n", " if model_name == 'ConvNetMLP1L':\n", " model = ConvNetMLP1L(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " central_output_size=CENTRAL_OUTPUT_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'ConvNetMLP2L':\n", " model = ConvNetMLP2L(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " central_hidden_size=CENTRAL_HIDDEN_SIZE,\n", " central_output_size=CENTRAL_OUTPUT_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'RelationNet':\n", " model = RelationNet(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " central_hidden_size=RN_HIDDEN_SIZE,\n", " central_output_size=CENTRAL_OUTPUT_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'SelfAttentionNet':\n", " model = SelfAttentionNet(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " heads=HEADS_SA,\n", " key_size=16,\n", " value_size=VALUE_SIZE,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " elif model_name == 'PrediNet':\n", " model = PrediNet4MultiTask(\n", " resolution=RESOLUTION,\n", " conv_out_size=CONV_OUT_SIZE,\n", " filter_size=FILTER_SIZE,\n", " stride=STRIDE,\n", " channels=NUM_CHANNELS,\n", " relations=RELATIONS_P,\n", " heads=HEADS_P,\n", " key_size=16,\n", " output_hidden_size=8,\n", " num_classes=NUM_CLASSES,\n", " num_tasks=NUM_TASKS)\n", " else:\n", " raise ValueError('Model {0} not recognised'.format(model_name))\n", " # Connect model\n", " _ = model(\n", " tf.zeros([10, RESOLUTION, RESOLUTION, 3]), tf.zeros([10, NUM_TASKS]), 10)\n", " variable_list = model.trainable_variables\n", " (model, accs2) = train_model(model, pre_tasks, variable_list, epsilon=0.01)\n", " test_model(model, pre_tasks)\n", "\n", " # Freeze some weights and reset others\n", " print('Freezing weights\\n')\n", " variable_list = [] # freeze all weights\n", "\n", " # 3. Unfreeze output network weights and retrain on target task(s)\n", " print('TARGET TASK(S) AFTER PRE-TRAINING, INPUT \u0026 CENTRAL NETS FROZEN\\n')\n", " # Reset output network weights\n", " model.reinitialise_output_module()\n", " # Unfreeze output network weights\n", " variable_list = variable_list + [\n", " model.output_hidden.w, model.output_hidden.b, model.output.w,\n", " model.output.b\n", " ]\n", " # Retrain model\n", " (model, accs3) = train_model(model, tasks, variable_list, epsilon=0.01)\n", " test_model(model, tasks)\n", "\n", " # 4. Unfreeze central network weights and retrain again\n", " print('TARGET TASK(S) AFTER PRE-TRAINING, INPUT NET ONLY FROZEN\\n')\n", " # Reset output network weights\n", " model.reinitialise_output_module()\n", " # Reset central network weights\n", " model.reinitialise_central_module()\n", " # Unfreeze central network weights\n", " if model_name == 'ConvNetMLP1L':\n", " variable_list = variable_list + [\n", " model.central_hidden.w, model.central_hidden.b\n", " ]\n", " elif model_name == 'ConvNetMLP2L':\n", " variable_list = variable_list + [\n", " model.central_hidden.w, model.central_hidden.b, model.central_output.w,\n", " model.central_output.b\n", " ]\n", " elif model_name == 'RelationNet':\n", " variable_list = variable_list + [\n", " model.central_hidden.w, model.central_output.w\n", " ]\n", " elif model_name == 'SelfAttentionNet':\n", " variable_list = variable_list + [\n", " model.get_keys.w, model.get_queries.w, model.get_values.w,\n", " model.central_output.w\n", " ]\n", " elif model_name == 'PrediNet':\n", " variable_list = variable_list + [\n", " model.get_keys.w, model.get_query1.w, model.get_query2.w,\n", " model.embed_entities.w\n", " ]\n", " else:\n", " raise ValueError('Model {0} not recognised'.format(model_name))\n", " # Retrain model\n", " (model, accs4) = train_model(model, tasks, variable_list, epsilon=0.01)\n", " test_model(model, tasks)\n", "\n", " return (model, [accs1, accs2, accs3, accs4])\n", "\n", "\n", "def plot_multitask_accuracies(model, accuracies):\n", " \"\"\"Plots the accuracies from the experiments.\n", "\n", " Args:\n", " model: An instance of the trained model.\n", " accuracies: The list of accuracies returned by the experiment.\n", " \"\"\"\n", "\n", " ipdp = 500 # iterations per data point\n", "\n", " # Plot everything\n", " plt.plot(np.arange(len(accuracies[0])) * ipdp, accuracies[0])\n", " plt.plot(np.arange(len(accuracies[1])) * ipdp, accuracies[1])\n", " plt.plot(np.arange(len(accuracies[2])) * ipdp, accuracies[2])\n", " plt.plot(np.arange(len(accuracies[3])) * ipdp, accuracies[3])\n", "\n", " # Add title, lables\n", " plt.title('{} with multi-task pre-training'.format(model.model_desc))\n", " plt.xlabel('Batches')\n", " plt.ylabel('Accuracy')\n", " plt.ylim((0.4, 1.0))\n", " plt.legend([\n", " 'No pre-training', 'Curriculum tasks', 'Input \u0026 central net pre-trained',\n", " 'Input net only pre-trained'\n", " ],\n", " loc='best')\n", " plt.grid(False)\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "1xsRmDRhNcCv" }, "source": [ "## Running the experiment\n", "\n", "You can run the experiment with one of the following model names:\n", "\n", "1. **`'PrediNet'`** - Central module is the PrediNet.\n", "2. **`'ConvNetMLP1L'`** (baseline). Central module is a single fully-connected\n", " layer.\n", "3. **`'ConvNetMLP2L'`** (baseline). Central module is two fully-connected\n", " layers.\n", "4. **`'RelationNet'`** (baseline). Central module is a relation net\n", " [Santoro et al](http://papers.nips.cc/paper/7082-a-simple-neural-network-module-for-relational-reasoning).\n", "5. **`'SelfAttentionNet'`** (baseline). Central module is a self-attention\n", " network with the same number of heads as the PrediNet.\n", "\n", "For each name, the appropriate central module will be invoked. The input and\n", "output modules are the same for all of them." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "xRAkQBaiKP-J" }, "outputs": [], "source": [ "(trained_model, acc_list) = multitask_experiment('PrediNet', TASKS, PRE_TASKS)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LK4lXxZduWCI" }, "source": [ "And finally let's print the learning curves. If the green curve increase above\n", "chance much earlier than the blue one, there is evidence that the pre-training\n", "task has led to the network learning reusable representations of the input." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 621 }, "colab_type": "code", "executionInfo": { "elapsed": 995, "status": "ok", "timestamp": 1566473797728, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "UhiN-CP80dIm", "outputId": "0538e0ef-98d6-4d08-abbf-beb3d2ce9eff" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAJcCAYAAABXOLh8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXeYG+X1th+11UpaabW9F6/7rg02\ntmENNgZCDDZgwBgSQgmBYEicYBL4hYAhEFowhMBHCDWEQEIJGIMpNhADLgEb997L9t606v374+id\nGXVpi3cx731de2kljUbTNPPMOc97jszv9/vB4XA4HA6Hwxky5EO9ABwOh8PhcDjfd7gg43A4HA6H\nwxliuCDjcDgcDofDGWK4IONwOBwOh8MZYrgg43A4HA6HwxliuCDjcDgcDofDGWK4IONwvmPU1NRA\nJpPB4/EAAObMmYPXXnttiJcqnFtvvRUPPfRQ1PcfeOABXHvttSdwiURuuOEG3HvvvVHff/TRR/Hz\nn/980JcjdF+eDMTb732dlsM52eGCjMMZBMrLy6HRaJCWloa8vDz87Gc/g8ViGZTvWrVqFX76058C\nAP75z39CJpPhiSeeCJqmuLgYa9asiTuvgRQIL7zwAu677z4AwJo1a1BcXNzveQ4GkZbtnnvuwd//\n/veonznnnHNivv9dpby8HKtXr+7XPKT7fSCn5XBOdrgg43AGiY8++ggWiwXbtm3D5s2b8fDDD4dN\n4/f74fP5BvR7MzMzsXTpUvT29g7ofDnfLbxe74DP82SK5HE4ww0uyDicQaaoqAhz5szBnj17AFB0\nZcmSJTjrrLOg1Wpx7NgxmEwm3HTTTSgoKEBRURHuvfde4YLq9Xpx5513Ijs7GxUVFfjkk0+C5h8a\nrRk/fjymT5+Op556KuLy+Hw+PPbYYxg5ciSysrJw1VVXoaurCwBw9tlnAwCMRiPS0tKwYcOGoM86\nHA5oNBp0dHQAAB5++GEolUpB/N177724/fbbAYhpQavVijlz5qCpqQlpaWlIS0tDU1MTAMDlcuH6\n66+HXq9HVVUVtmzZEnU7ymQyPPfccxg9ejT0ej3uu+8+HD16FNOnT4fBYMBVV10Fl8sFgCKFM2bM\nCPv8kSNHgl6Ltmyx0qlLlizB+vXr8atf/QppaWn41a9+BQBYvHgxSkpKYDAYMGXKFKxfv174zKZN\nmzB16lQYDAbk5eXht7/9bcR5v/feeygvLxeOFSkskvfoo48iOzsb5eXleOONN4T3b7jhBvziF7/A\n3LlzodPp8NVXX8HpdOLOO+9EaWkp8vLycOutt8Jut0f87uuuuw51dXW45JJLkJaWhscff1yImL7y\nyisoLS3FeeedBwC48sorkZ+fj/T0dJx99tnYu3dv0HKwdDBb5ieffBK5ubkoKCjAq6++2qdpOzs7\ncckll8BgMGDatGm49957w/Yxh/NdhgsyDmeQqa+vx8qVKzF58mThtX/961946aWXYDabUVZWhp/+\n9KdQKpU4cuQItm/fjs8//1wQWS+//DI+/vhjbN++HVu2bMGyZcvifudDDz2Ep556ShBaUp555hl8\n8MEHWLt2LZqampCRkYFFixYBANatWwcA6OnpgcViwfTp04M+m5qaimnTpmHt2rXC9GVlZfj666+F\n57NmzQr6jE6nw6pVq1BYWAiLxQKLxYLCwkIAwIcffogf//jH6Onpwbx58wRxE41PP/0UW7duxcaN\nG/H4449j4cKFeOONN1BfX489e/bgrbfeirttEl22aDzyyCOYOXMmnn32WVgsFjz77LMAgGnTpmHH\njh3o6urCT37yE1x55ZVwOBwASKwtXrwYvb29OHr0KK666qqw+b766qu46667sHr1akyYMCHid7e0\ntKCjowONjY147bXXsHDhQhw8eFB4/80338SSJUtgNpsxY8YM3HXXXTh06BB27NiBI0eOoLGxEQ8+\n+GDEef/rX/9CaWmpENn93e9+J7y3du1a7N+/H5999hkA8i0ePnwYbW1tOO2003DNNddE3V4tLS0w\nmUxobGzEK6+8gkWLFqG7uzvpaRctWgSdToeWlha89tprw9I3yeH0By7IOJxB4rLLLoPRaMSMGTMw\na9Ys3HPPPcJ7N9xwA6qqqqBUKtHV1YVVq1bh6aefhk6nQ25uLn7zm9/g7bffBgC88847uP3221FS\nUoLMzEzcfffdcb970qRJmD17NpYuXRr23osvvohHHnkExcXFUKvVeOCBB7Bs2bKE01GzZs3C2rVr\n4fF4sGvXLtx2221Yu3YtHA4HNm/ejJkzZya4hYAZM2Zg7ty5UCgUuO6667Bz586Y0991110wGAyo\nqqrChAkTMHv2bFRUVCA9PR1z5szB9u3bE/7ugebaa69FVlYWlEol7rjjDjidTkEsqVQqHDlyBB0d\n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\nzJkz2b9/P+np6UyZMoXf/e53fq9lMpk4fvw4AB06dKh1XC+//DIffvghOp2OMWPGMHfuXA4fPswj\njzzCuXPnCA0N5b333qNbt25MnTqVyMhIsrKyOH36NC+//DITJ06sNp6YmBi++uorbDYbpaWlrFq1\nivHjx1NQUIDdbmf27NmMHz++xjHl5uYyZswYhg4dypYtW2jbti0rV67EYrEEHFt+fj6rVq1i06ZN\nzJ49m88++4xOnTpp55s6dSohISHs3buXM2fO8Je//IVx48axaNEiv3GuX7+eV155hb///e+Ul5cz\nYcIEnnvuuWpje+edd9Dr9SxZsoQ333yT+fPnExsby65du+jXrx+TJk1ixowZWK1WLBYLCxcuJDU1\nlY0bN/Lqq6/y5ZdfMmvWLH7++Wd++uknfv75Z2bMmKFlz5YsWcIbb7xBRUUFgwYN4u2330av17Nw\n4ULmzJlDUlISXbt29dtjNBgkIBNCCHFV2LVrF3v37qVNmzZcd911bN68maFDhwLufSm3b9/OBx98\nwIwZM/jyyy9rPM/cuXO1D/ZAOnXqxNy5c+nbty/jxo2r8Txff/01X3zxBdu2bSM0NFTb2Hv69Om8\n8847dOnShW3btvHwww+zfv16AE6dOsV3333HgQMHyMzMZOLEidXGs2jRIrZu3cru3buJjY3F4XCw\nYsUKIiMjOX/+PIMHDyYzM7PW/XEPHTrExx9/zHvvvccdd9zBZ599xuTJk2scW2Zmpl/wWlVubi6b\nNm3i8OHDDB8+nB9//BHAb5xr1qzh0KFDbN++HVVVyczM5JtvvuGGG27QzpOSksKDDz5IeHg4jz/+\nOADz58/n4MGDrF27Fr1ez4ULF/jmm28wGAysXbuWp59+ms8++6zamA4cOMCGDRsoLi4mNTWVhx56\niB9//JFly5axefNmjEYjDz/8MB999BEjR47kz3/+M9nZ2URFRTF8+PAGb7dVEwnIhBBCNLq6ZrIa\n08CBA0lOdtdlpqenk5ubqwVkd911l/bfqhmv+ti5cyerV69m165djBo1itjYWIYMGUKnTp04fPiw\nXxC0du1a7rvvPkJDQwGIjY2lpKSELVu2cPvtt2vHlZeXa1//6le/QqfT0aNHD86cOVPjOEaOHEls\nrLtljqqqPP3003zzzTfodDpOnDjBmTNnaN26dY3P79ChA+np6QD079+f3Nzci46tNnfccQc6nY4u\n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\n/y22FwAAAABJRU5ErkJggg==\n", "text/plain": [ "\u003cFigure size 1000x1000 with 1 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 10))\n", "plot_multitask_accuracies(trained_model, acc_list)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "PrediNet.ipynb", "provenance": [ { "file_id": "1n337yrEPEHP96Otf9JVq2TVunb6y8Bph", "timestamp": 1560424278071 }, { "file_id": "1kwSIRpWIrMqzlkrXT6oyZPvtOmSvgJEU", "timestamp": 1559065222853 }, { "file_id": "1vlbYwWbJXfwrHOSpSNNVZ7l4BNP1w4uA", "timestamp": 1553869581767 }, { "file_id": "1kTHl60edotmMJa6WtxJKDJaFn1G8eaJX", "timestamp": 1549406943984 }, { "file_id": "1p8XzSnh89yV5PJnYvDQdUcjrGqvdzFH6", "timestamp": 1548458764481 }, { "file_id": "1NBrElIZ01K3z4SeKIDH8LL3Ta4Z05p1d", "timestamp": 1548411560658 }, { "file_id": "19gXeyf9a_UVnqs3HvKHkgDJW3CbEjPVd", "timestamp": 1547752992099 }, { "file_id": "1Vfv-2v-j0kWYdlBpTeF70cHGWNAz0kVU", "timestamp": 1547586988844 }, { "file_id": "139B5ivXZUuEtA5zVgAgW4ciQFHbwpWqp", "timestamp": 1547225320474 } ], "version": "0.3.2" }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: PrediNet/README.md ================================================ # The PrediNet Architecture and Relations Game Datasets This repository contains a notebook implementation of the PrediNet architecture, as well as the baselines and sample datasets. The code was written by Murray Shanahan, Marta Garnelo and Kyriacos Nikiforou. The `PrediNet.ipynb` notebook includes an overview of the PrediNet architecture and the code to reproduce the *multi-task experiment* presented in the paper [*An Explicitly Relational Neural Network Architecture*](https://arxiv.org/pdf/1905.10307.pdf). Additional details of the model and experiments can be found in the paper. Six `.npz` files contain downsampled versions of the datasets required to train and evaluate the various models on the multi-task experiment. The training set (`*_pentos.npz`), containing pentominoes, is a NPZ NumPy archive with the following fields: * `images`: (50000 x 36 x 36, 3) Images in RGB. * `labels`: (50000 x 2) Labels for the images. * `tasks`: (50000 x 1) Task ids that denote which relation must hold between the objects in the images. Two additional `.npz` files are provided for each task, one with hexominoes (`*_hexos.npz`) and one with striped squares (`*_stripes.npz`). These can be used for testing. The full Relations Game datasets composed of 250,000 samples for pentominoes - and 50,000 samples for hexominoes and stripes - can be found [here](https://console.cloud.google.com/storage/browser/relations-game-datasets) ## Running the experiments The easiest way to run the code is using the publicly available [Colab](https://colab.research.google.com) kernel. You can run simply by clicking on [PrediNet Notebook](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/PrediNet/PrediNet.ipynb) Colaboratory is a free Jupyter notebook environment provided by Google that requires no setup and runs entirely in the cloud. You will need the following dependencies to run the code, with instructions on how to install them. The code was tested with the versions shown in brackets * TensorFlow 2 (2.0.0-rc0 with gpu support) - not installed You can install TensorFlow 2.0 beta version by running the following command in Colab: ``` !pip install "tensorflow-gpu>=2.0.0rc0" --pre ``` * Sonnet 2 (2.0.0b0) - not installed You can install Sonnet 2 by running the following comment in Colab. ``` !pip install "dm-sonnet>=2.0.0b0" --pre ``` Alternatively, you can open the `.ipynb` files using [Jupyter notebook](http://jupyter.org/install.html). If you do this you will also have to set up a local kernel that includes the libraries above. ## Citing Predicate Networks If you use this code in your work, please cite us as follows: Shanahan, M., Nikiforou, K., Creswell, A., Kaplanis, C., Barrett, D., & Garnelo, M. (2019). *An Explicitly Relational Neural Network Architecture*. arXiv preprint arXiv:1905.10307. ## Contact If you have any feedback, or would like to get in touch with us, you can reach out to us at mshanahan@google.com and knikiforou@google.com. ## Disclaimer This is not an officially supported Google product. ================================================ FILE: README.md ================================================ # DeepMind Research This repository contains implementations and illustrative code to accompany DeepMind publications. Along with publishing papers to accompany research conducted at DeepMind, we release open-source [environments](https://deepmind.com/research/open-source/open-source-environments/), [data sets](https://deepmind.com/research/open-source/open-source-datasets/), and [code](https://deepmind.com/research/open-source/open-source-code/) to enable the broader research community to engage with our work and build upon it, with the ultimate goal of accelerating scientific progress to benefit society. For example, you can build on our implementations of the [Deep Q-Network](https://github.com/deepmind/dqn) or [Differential Neural Computer](https://github.com/deepmind/dnc), or experiment in the same environments we use for our research, such as [DeepMind Lab](https://github.com/deepmind/lab) or [StarCraft II](https://github.com/deepmind/pysc2). If you enjoy building tools, environments, software libraries, and other infrastructure of the kind listed below, you can view open positions to work in related areas on our [careers page](https://deepmind.com/careers/). For a full list of our publications, please see https://deepmind.com/research/publications/ ## Projects * [Magnetic control of tokamak plasmas through deep reinforcement learning](fusion_tcv), Nature 2022 * [Pushing the Frontiers of Density Functionals by Solving the Fractional Electron Problem](density_functional_approximation_dm21), Science 2021 * [Mind the Gap: Assessing Temporal Generalization in Neural Language Models](pitfalls_static_language_models), NeurIPS 2021 * [The Difficulty of Passive Learning in Deep Reinforcement Learning](tandem_dqn), NeurIPS 2021 * [Skilful precipitation nowcasting using deep generative models of radar](nowcasting), Nature 2021 * [Compute-Aided Design as Language](cadl) * [Encoders and ensembles for continual learning](continual_learning) * [Towards mental time travel: a hierarchical memory for reinforcement learning agents](hierarchical_transformer_memory) * [Perceiver IO: A General Architecture for Structured Inputs & Outputs](perceiver) * [Solving Mixed Integer Programs Using Neural Networks](neural_mip_solving) * [A Realistic Simulation Framework for Learning with Label Noise](noisy_label) * [Rapid Task-Solving in Novel Environments](rapid_task_solving), ICLR 2021 * [WikiGraphs: A Wikipedia - Knowledge Graph Paired Dataset](wikigraphs), TextGraphs 2021 * [Behavior Priors for Efficient Reinforcement Learning](box_arrangement) * [Learning Mesh-Based Simulation with Graph Networks](meshgraphnets), ICLR 2021 * [Open Graph Benchmark - Large-Scale Challenge (OGB-LSC)](ogb_lsc) * [Synthetic Returns for Long-Term Credit Assignment](synthetic_returns) * [A Deep Learning Approach for Characterizing Major Galaxy Mergers](galaxy_mergers) * [Better, Faster Fermionic Neural Networks](kfac_ferminet_alpha) (KFAC implementation) * [Object-based attention for spatio-temporal reasoning](object_attention_for_reasoning) * [Effective gene expression prediction from sequence by integrating long-range interactions](enformer) * [Satore: First-order logic saturation with atom rewriting](satore) * [Characterizing signal propagation to close the performance gap in unnormalized ResNets](nfnets), ICLR 2021 * [Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples](adversarial_robustness) * [Learning rich touch representations through cross-modal self-supervision](cmtouch), CoRL 2020 * [Functional Regularisation for Continual Learning](functional_regularisation_for_continual_learning), ICLR 2020 * [The Autoencoding Variational Autoencoder](avae), NeurIPS 2020 * [Self-Supervised MultiModal Versatile Networks](mmv), NeurIPS 2020 * [ODE-GAN: Training GANs by Solving Ordinary Differential Equations](ode_gan), NeurIPS 2020 * [Algorithms for Causal Reasoning in Probability Trees](causal_reasoning) * [Gated Linear Networks](gated_linear_networks), NeurIPS 2020 * [Value-driven Hindsight Modelling](himo), NeurIPS 2020 * [Targeted free energy estimation via learned mappings](learned_free_energy_estimation), Journal of Chemical Physics 2020 * [Learning to Simulate Complex Physics with Graph Networks](learning_to_simulate), ICML 2020 * [Physically Embedded Planning Problems](physics_planning_games) * [PolyGen: PolyGen: An Autoregressive Generative Model of 3D Meshes](polygen), ICML 2020 * [Bootstrap Your Own Latent](byol) * [Catch & Carry: Reusable Neural Controllers for Vision-Guided Whole-Body Tasks](catch_carry), SIGGRAPH 2020 * [MEMO: A Deep Network For Flexible Combination Of Episodic Memories](memo), ICLR 2020 * [RL Unplugged: Benchmarks for Offline Reinforcement Learning](rl_unplugged) * [Disentangling by Subspace Diffusion (GEOMANCER)](geomancer), NeurIPS 2020 * [What can I do here? A theory of affordances in reinforcement learning](affordances_theory), ICML 2020 * [Scaling data-driven robotics with reward sketching and batch reinforcement learning](sketchy), RSS 2020 * [Path-Specific Counterfactual Fairness](counterfactual_fairness), AAAI 2019 * [The Option Keyboard: Combining Skills in Reinforcement Learning](option_keyboard), NeurIPS 2019 * [VISR - Fast Task Inference with Variational Intrinsic Successor Features](visr), ICLR 2020 * [Unveiling the predictive power of static structure in glassy systems](glassy_dynamics), Nature Physics 2020 * [Multi-Object Representation Learning with Iterative Variational Inference (IODINE)](iodine) * [AlphaFold CASP13](alphafold_casp13), Nature 2020 * [Unrestricted Adversarial Challenge](unrestricted_advx) * [Hierarchical Probabilistic U-Net (HPU-Net)](hierarchical_probabilistic_unet) * [Training Language GANs from Scratch](scratchgan), NeurIPS 2019 * [Temporal Value Transport](tvt), Nature Communications 2019 * [Continual Unsupervised Representation Learning (CURL)](curl), NeurIPS 2019 * [Unsupervised Learning of Object Keypoints (Transporter)](transporter), NeurIPS 2019 * [BigBiGAN](bigbigan), NeurIPS 2019 * [Deep Compressed Sensing](cs_gan), ICML 2019 * [Side Effects Penalties](side_effects_penalties) * [PrediNet Architecture and Relations Game Datasets](PrediNet) * [Unsupervised Adversarial Training](unsupervised_adversarial_training), NeurIPS 2019 * [Graph Matching Networks for Learning the Similarity of Graph Structured Objects](graph_matching_networks), ICML 2019 * [REGAL: Transfer Learning for Fast Optimization of Computation Graphs](regal) * [Deep Ensembles: A Loss Landscape Perspective](ensemble_loss_landscape) * [Powerpropagation](powerpropagation) * [Physics Inspired Models](physics_inspired_models) ## Disclaimer *This is not an official Google product.* ================================================ FILE: __init__.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: adversarial_robustness/README.md ================================================ # Adversarial Robustness This repository contains the code needed to evaluate models trained in [Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples](https://arxiv.org/abs/2010.03593) (Gowal et al., 2020), in [Fixing Data Augmentation to Improve Adversarial Robustness](https://arxiv.org/abs/2103.01946) (Rebuffi et al., 2021) and in [Improving Robustness using Generated Data](https://arxiv.org/abs/2110.09468) (Gowal et al., 2021). ## Contents We have released our top-performing models in two formats compatible with [JAX](https://github.com/google/jax) and [PyTorch](https://pytorch.org/). This repository also contains our model definitions. ## Running the code ### Downloading a model Download a model from links listed in the following table. Clean and robust accuracies are measured on the full test set. The robust accuracy is measured using [AutoAttack](https://github.com/fra31/auto-attack). The following table contains the models from **Gowal et al., 2020**. | dataset | norm | radius | architecture | extra data | clean | robust | link | |---|:---:|:---:|:---:|:---:|---:|---:|:---:| | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✓ | 91.10% | 65.88% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_with.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_with.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-28-10 | ✓ | 89.48% | 62.80% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_with.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_with.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 85.29% | 57.20% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_without.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_without.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-34-20 | ✗ | 85.64% | 56.86% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn34-20_without.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn34-20_without.pt) | CIFAR-10 | ℓ2 | 128 / 255 | WRN-70-16 | ✓ | 94.74% | 80.53% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_with.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_with.pt) | CIFAR-10 | ℓ2 | 128 / 255 | WRN-70-16 | ✗ | 90.90% | 74.50% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_without.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_without.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-70-16 | ✓ | 69.15% | 36.88% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_with.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_with.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 60.86% | 30.03% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_without.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_without.pt) | MNIST | ℓ | 0.3 | WRN-28-10 | ✗ | 99.26% | 96.34% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/mnist_linf_wrn28-10_without.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/mnist_linf_wrn28-10_without.pt) The following table contains the models from **Rebuffi et al., 2021**. | dataset | norm | radius | architecture | extra data | clean | robust | link | |---|:---:|:---:|:---:|:---:|---:|---:|:---:| | CIFAR-10 | ℓ | 8 / 255 | WRN-106-16 | ✗ | 88.50% | 64.64% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn106-16_cutmix_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn106-16_cutmix_ddpm_v2.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 88.54% | 64.25% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix_ddpm_v2.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-28-10 | ✗ | 87.33% | 60.75% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_cutmix_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_cutmix_ddpm_v2.pt) | CIFAR-10 | ℓ | 8 / 255 | ResNet-18 | ✗ | 83.53% | 56.66% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_resnet18_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_resnet18_ddpm.pt) | CIFAR-10 | ℓ2 | 128 / 255 | WRN-70-16 | ✗ | 92.41% | 80.42% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_cutmix_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_cutmix_ddpm_v2.pt) | CIFAR-10 | ℓ2 | 128 / 255 | WRN-28-10 | ✗ | 91.79% | 78.80% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn28-10_cutmix_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn28-10_cutmix_ddpm_v2.pt) | CIFAR-10 | ℓ2 | 128 / 255 | ResNet-18 | ✗ | 90.33% | 75.86% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_resnet18_cutmix_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_resnet18_cutmix_ddpm.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 63.56% | 34.64% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_cutmix_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_cutmix_ddpm.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-28-10 | ✗ | 62.41% | 32.06% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn28-10_cutmix_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn28-10_cutmix_ddpm.pt) | CIFAR-100 | ℓ | 8 / 255 | ResNet-18 | ✗ | 56.87% | 28.50% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_resnet18_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_resnet18_ddpm.pt) The following table contains additional models from **Gowal et al., 2021**. | dataset | norm | radius | architecture | extra data | clean | robust | link | |---|:---:|:---:|:---:|:---:|---:|---:|:---:| | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 88.74% | 66.11% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix_ddpm_100m.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix_ddpm_100m.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 87.50% | 63.44% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_ddpm_100m.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_ddpm_100m.pt) | CIFAR-10 | ℓ | 8 / 255 | ResNet-18 | ✗ | 87.35% | 58.63% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_resnet18_ddpm_100m.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_resnet18_ddpm_100m.pt) ### Installing The following has been tested using Python 3.9.2. Using `run.sh` will create and activate a virtualenv, install all necessary dependencies and run a test program to ensure that you can import all the modules. ``` # Run from the parent directory. sh adversarial_robustness/run.sh ``` To run the provided code, use this virtualenv: ``` source /tmp/adversarial_robustness_venv/bin/activate ``` You may want to edit `requirements.txt` before running `run.sh` if GPU support is needed (e.g., use `jaxline==0.1.67+cuda111`). See JAX's installation [instructions](https://github.com/google/jax#installation) for more details. ### Using pre-trained models Once downloaded, a model can be evaluated by running the `eval.py` script in either the `jax` or `pytorch` folders. E.g.: ``` cd jax python3 eval.py \ --ckpt=${PATH_TO_CHECKPOINT} --depth=70 --width=16 --dataset=cifar10 ``` These models are also directly available within [RobustBench](https://github.com/RobustBench/robustbench#model-zoo-quick-tour)'s model zoo. ### Training your own model We also provide a training pipeline that reproduces results from both publications. This pipeline uses [Jaxline](https://github.com/deepmind/jaxline) and is written using [JAX](https://github.com/google/jax) and [Haiku](https://github.com/deepmind/dm-haiku). To train a model, modify the configuration in the `get_config()` function of `jax/experiment.py` and issue the following command from within the virtualenv created above: ``` cd jax python3 train.py --config=experiment.py ``` The training pipeline can run with multiple worker machines and multiple devices (either GPU or TPU). See [Jaxline](https://github.com/deepmind/jaxline) for more details. We do not provide a PyTorch implementation of our training pipeline. However, you may find one on GitHub, e.g., [adversarial_robustness_pytorch](https://github.com/imrahulr/adversarial_robustness_pytorch) (by Rahul Rade). ## Datasets ### Extracted dataset Gowal et al. (2020) use samples extracted from [TinyImages-80M](https://groups.csail.mit.edu/vision/TinyImages/). Unfortunately, since then, the official TinyImages-80M dataset has been withdrawn (due to the presence of offensive images). As such, we cannot provide a download link to our extrated data until we have manually verified that all extracted images are not offensive. If you want to reproduce our setup, consider the generated datasets below. We are also happy to help, so feel free to reach out to Sven Gowal directly. ### Generated datasets Rebuffi et al. (2021) and Gowal et al. (2021) use samples generated by a Denoising Diffusion Probabilistic Model [(DDPM; Ho et al., 2020)](https://arxiv.org/abs/2006.11239) to improve robustness. The DDPM is solely trained on the original training data and does not use additional external data. The following table links to datasets of 1M **generated** samples for CIFAR-10, CIFAR-100 and SVHN. | dataset | model | size | link | |---|---|:---:|:---:| | CIFAR-10 | DDPM | 1M | [npz](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_ddpm.npz) | | CIFAR-100 | DDPM | 1M | [npz](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_ddpm.npz) | | SVHN | DDPM | 1M | [npz](https://storage.googleapis.com/dm-adversarial-robustness/svhn_ddpm.npz) | To load each dataset, use NumPy. E.g.: ``` npzfile = np.load('cifar10_ddpm.npz') images = npzfile['image'] labels = npzfile['label'] ``` ## Citing this work If you use this code (or any derived code), data or these models in your work, please cite the relevant accompanying paper: ``` @article{gowal2020uncovering, title={Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples}, author={Gowal, Sven and Qin, Chongli and Uesato, Jonathan and Mann, Timothy and Kohli, Pushmeet}, journal={arXiv preprint arXiv:2010.03593}, year={2020}, url={https://arxiv.org/pdf/2010.03593} } ``` and/or ``` @article{rebuffi2021fixing, title={Fixing Data Augmentation to Improve Adversarial Robustness}, author={Rebuffi, Sylvestre-Alvise and Gowal, Sven and Calian, Dan A. and Stimberg, Florian and Wiles, Olivia and Mann, Timothy}, journal={arXiv preprint arXiv:2103.01946}, year={2021}, url={https://arxiv.org/pdf/2103.01946} } ``` and/or ``` @article{gowal2021generated, title={Improving Robustness using Generated Data}, author={Gowal, Sven and Rebuffi, Sylvestre-Alvise and Wiles, Olivia and Stimberg, Florian and Calian, Dan A. and Mann, Timothy}, journal={arXiv preprint arXiv:2110.09468}, year={2021}, url={https://arxiv.org/pdf/2110.09468} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: adversarial_robustness/iclrw2021data/README.md ================================================ # Adversarial Robustness This repository contains the code needed to evaluate models trained in [Data Augmentation Can Improve Robustness](https://storage.googleapis.com/dm-adversarial-robustness/rebuffi2021data.pdf) which has been accepted at [ICLR 2021 Security and Safety in Machine Learning Systems Workshop](https://aisecure-workshop.github.io/aml-iclr2021/). ## Contents We have released our top-performing models in two formats compatible with [JAX](https://github.com/google/jax) and [PyTorch](https://pytorch.org/). This repository also contains our model definitions. ## Running the example code ### Downloading a model Download a model from links listed in the following table. Clean and robust accuracies are measured on the full test set. The robust accuracy is measured using [AutoAttack](https://github.com/fra31/auto-attack). | dataset | norm | radius | architecture | extra data | clean | robust | link | |---|:---:|:---:|:---:|:---:|---:|---:|:---:| | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✓ | 92.23% | 66.58% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix_external.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix_external.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 87.25% | 60.07% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_cutmix.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-28-10 | ✗ | 86.09% | 57.61% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_cutmix.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_cutmix.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 65.76% | 32.43% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_cutmix.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_cutmix.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-28-10 | ✗ | 62.97% | 29.80% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn28-10_cutmix.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn28-10_cutmix.pt) ### Using the model Once downloaded, a model can be evaluated (clean accuracy) by running the `eval.py` script in either the `jax` or `pytorch` folders. E.g.: ``` cd jax python3 eval.py \ --ckpt=${PATH_TO_CHECKPOINT} --depth=70 --width=16 --dataset=cifar10 ``` ## Citing this work If you use this code or these models in your work, please cite the complete version which combines data augmentation with generated samples: ``` @article{rebuffi2021fixing, title={Fixing Data Augmentation to Improve Adversarial Robustness}, author={Rebuffi, Sylvestre-Alvise and Gowal, Sven and Calian, Dan A. and Stimberg, Florian and Wiles, Olivia and Mann, Timothy}, journal={arXiv preprint arXiv:2103.01946}, year={2021}, url={https://arxiv.org/pdf/2103.01946} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: adversarial_robustness/iclrw2021doing/README.md ================================================ # Adversarial Robustness This repository contains the code needed to evaluate models trained in [Doing More with Less: Improving Robustness using Generated Data](https://storage.googleapis.com/dm-adversarial-robustness/gowal2021doing.pdf) which has been accepted at [ICLR 2021 Security and Safety in Machine Learning Systems Workshop](https://aisecure-workshop.github.io/aml-iclr2021/). ## Contents We have released our top-performing models in two formats compatible with [JAX](https://github.com/google/jax) and [PyTorch](https://pytorch.org/). This repository also contains our model definitions. ## Running the example code ### Downloading a model Download a model from links listed in the following table. Clean and robust accuracies are measured on the full test set. The robust accuracy is measured using [AutoAttack](https://github.com/fra31/auto-attack). | dataset | norm | radius | architecture | extra data | clean | robust | link | |---|:---:|:---:|:---:|:---:|---:|---:|:---:| | CIFAR-10 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 86.94% | 63.62% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_ddpm_v2.pt) | CIFAR-10 | ℓ | 8 / 255 | WRN-28-10 | ✗ | 85.97% | 60.73% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_ddpm_v2.pt) | CIFAR-10 | ℓ2 | 8 / 255 | WRN-70-16 | ✗ | 90.83% | 78.39% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn70-16_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn70-16_ddpm_v2.pt) | CIFAR-10 | ℓ2 | 8 / 255 | WRN-28-10 | ✗ | 90.24% | 77.44% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_linf_wrn28-10_ddpm_v2.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_l2_wrn28-10_ddpm_v2.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-70-16 | ✗ | 60.46% | 33.49% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn70-16_ddpm.pt) | CIFAR-100 | ℓ | 8 / 255 | WRN-28-10 | ✗ | 59.18% | 30.81% | [jax](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn28-10_ddpm.npy), [pt](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_linf_wrn28-10_ddpm.pt) ### Using the model Once downloaded, a model can be evaluated (clean accuracy) by running the `eval.py` script in either the `jax` or `pytorch` folders. E.g.: ``` cd jax python3 eval.py \ --ckpt=${PATH_TO_CHECKPOINT} --depth=70 --width=16 --dataset=cifar10 ``` ## Generated datasets This work uses samples generated by a Denoising Diffusion Probabilistic Model [(DDPM; Ho et al., 2020)](https://arxiv.org/abs/2006.11239) to improve robustness. The DDPM is solely trained on the original training data and does not use additional external data. The following table links to datasets of 1M **generated** samples for CIFAR-10, CIFAR-100 and SVHN. | dataset | model | size | link | |---|---|:---:|:---:| | CIFAR-10 | DDPM | 1M | [npz](https://storage.googleapis.com/dm-adversarial-robustness/cifar10_ddpm.npz) | | CIFAR-100 | DDPM | 1M | [npz](https://storage.googleapis.com/dm-adversarial-robustness/cifar100_ddpm.npz) | | SVHN | DDPM | 1M | [npz](https://storage.googleapis.com/dm-adversarial-robustness/svhn_ddpm.npz) | To load each dataset, use NumPy. E.g.: ``` npzfile = np.load('cifar10_ddpm.npz') images = npzfile['image'] labels = npzfile['label'] ``` ## Citing this work If you use this code or these models in your work, please cite the complete version which combines data augmentation with generated samples: ``` @article{rebuffi2021fixing, title={Fixing Data Augmentation to Improve Adversarial Robustness}, author={Rebuffi, Sylvestre-Alvise and Gowal, Sven and Calian, Dan A. and Stimberg, Florian and Wiles, Olivia and Mann, Timothy}, journal={arXiv preprint arXiv:2103.01946}, year={2021}, url={https://arxiv.org/pdf/2103.01946} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: adversarial_robustness/jax/attacks.py ================================================ # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Adversarial attacks. This file contains all the code necessary to create untargeted adversarial attacks in JAX (within an l-infinity ball). For example, to create an untargeted FGSM attack (with a single step), one can do the following: ``` import attacks epsilon = 8/255 # Perturbation radius for inputs between 0 and 1. fgsm_attack = attacks.UntargetedAttack( attacks.PGD( attacks.IteratedFGSM(epsilon), num_steps=1, initialize_fn=attacks.linf_initialize_fn(epsilon), project_fn=attacks.linf_project_fn(epsilon, bounds=(0., 1.))), loss_fn=attacks.untargeted_cross_entropy) ``` Just as elegantly, one can specify an adversarial attack on KL-divergence to a target distribution (using 10 steps with Adam and a piecewise constant step schedule): ``` kl_attack_with_adam = attacks.UntargetedAttack( attacks.PGD( attacks.Adam(optax.piecewise_constant_schedule( init_value=.1, boundaries_and_scales={5: .1})), num_steps=10, initialize_fn=attacks.linf_initialize_fn(epsilon), project_fn=attacks.linf_project_fn(epsilon, bounds=(0., 1.))), loss_fn=attacks.untargeted_kl_divergence) ``` The attack instances can be used later on to build adversarial examples: ``` my_model = ... # Model. We assume that 'my_model(.)' returns logits. clean_images, image_labels = ... # Batch of images and associated labels. rng = jax.random.PRNGKey(0) # A random generator state. adversarial_images = fgsm_attack(my_model, rng, clean_images, image_labels) ``` See `experiment.py` or `eval.py` for more examples. This file contains the following components: * Losses: * untargeted_cross_entropy: minimizes the likelihood of the label class. * untargeted_kl_divergence: maximizes the KL-divergence of the predictions with a target distribution. * untargeted_margin: maximizes the margin loss (distance from the highest non-true logits to the label class logit) * Step optimizers: * SGD: Stochastic Gradient Descent. * IteratedFGSM: Also called BIM (see https://arxiv.org/pdf/1607.02533). * Adam: See https://arxiv.org/pdf/1412.6980. * Initialization and projection functions: * linf_initialize_fn: Initialize function for l-infinity attacks. * linf_project_fn: Projection function for l-infinity attacks. * Projected Gradient Descent (PGD): * PGD: Runs Projected Gradient Descent using the specified optimizer, initialization and projection functions for a given number of steps. * Untargeted attack: * UntargetedAttack: Combines PGD and a specific loss function to find adversarial examples. """ import functools import inspect from typing import Callable, Optional, Tuple, Union import chex import haiku as hk import jax import jax.numpy as jnp import optax ModelFn = Callable[[chex.Array], chex.Array] LossFn = Callable[[chex.Array], chex.Array] ClassificationLossFn = Callable[[chex.Array, chex.Array], chex.Array] OptimizeFn = Callable[[LossFn, chex.PRNGKey, chex.Array], chex.Array] NormalizeFn = Callable[[chex.Array], chex.Array] InitializeFn = Callable[[chex.PRNGKey, chex.Array], chex.Array] ProjectFn = Callable[[chex.Array, chex.Array], chex.Array] def untargeted_cross_entropy(logits: chex.Array, labels: chex.Array) -> chex.Array: """Maximize the cross-entropy of the true class (make it less likely).""" num_classes = logits.shape[-1] log_probs = jax.nn.log_softmax(logits) return jnp.sum( hk.one_hot(labels, num_classes).astype(logits.dtype) * log_probs, axis=-1) def untargeted_kl_divergence(logits: chex.Array, label_probs: chex.Array) -> chex.Array: """Maximize the KL divergence between logits and label distribution.""" # We are explicitly maximizing the cross-entropy, as this is equivalent to # maximizing the KL divergence (when `label_probs` does not depend # on the values that produce `logits`). log_probs = jax.nn.log_softmax(logits) return jnp.sum(label_probs * log_probs, axis=-1) def untargeted_margin(logits: chex.Array, labels: chex.Array) -> chex.Array: """Make the highest non-correct logits higher than the true class logits.""" batch_size = logits.shape[0] num_classes = logits.shape[-1] label_logits = logits[jnp.arange(batch_size), labels] logit_mask = hk.one_hot(labels, num_classes).astype(logits.dtype) highest_logits = jnp.max(logits - 1e8 * logit_mask, axis=-1) return label_logits - highest_logits class UntargetedAttack: """Performs an untargeted attack.""" def __init__(self, optimize_fn: OptimizeFn, loss_fn: ClassificationLossFn = untargeted_cross_entropy): """Creates an untargeted attack. Args: optimize_fn: An `Optimizer` instance or any callable that takes a loss function and an initial input and outputs a new input that minimizes the loss function. loss_fn: `loss_fn` is a surrogate loss. Its goal should be make the true class less likely than any other class. Typical options for `loss_fn` are `untargeted_cross_entropy` or `untargeted_margin`. """ self._optimize_fn = optimize_fn self._loss_fn = loss_fn def __call__(self, logits_fn: ModelFn, rng: chex.PRNGKey, inputs: chex.Array, labels: chex.Array) -> chex.Array: """Returns adversarial inputs.""" def _loss_fn(x): return self._loss_fn(logits_fn(x), labels) return self._optimize_fn(_loss_fn, rng, inputs) # Convenience functions to detect the type of inputs required by the loss. def expects_labels(self): return 'labels' in inspect.getfullargspec(self._loss_fn).args def expects_probabilities(self): return 'label_probs' in inspect.getfullargspec(self._loss_fn).args class StepOptimizer: """Makes a single gradient step that minimizes a loss function.""" def __init__(self, gradient_transformation: optax.GradientTransformation): self._gradient_transformation = gradient_transformation def init(self, loss_fn: LossFn, x: chex.Array) -> optax.OptState: self._loss_fn = loss_fn return self._gradient_transformation.init(x) def minimize( self, x: chex.Array, state: optax.OptState) -> Tuple[chex.Array, chex.Array, optax.OptState]: """Performs a single minimization step.""" g, loss = gradients_fn(self._loss_fn, x) if g is None: raise ValueError('loss_fn does not depend on input.') updates, state = self._gradient_transformation.update(g, state, x) return optax.apply_updates(x, updates), loss, state class SGD(StepOptimizer): """Vanilla gradient descent optimizer.""" def __init__(self, learning_rate_fn: Union[float, int, optax.Schedule], normalize_fn: Optional[NormalizeFn] = None): # Accept schedules, as well as scalar values. if isinstance(learning_rate_fn, (float, int)): lr = float(learning_rate_fn) learning_rate_fn = lambda _: lr # Normalization. def update_fn(updates, state, params=None): del params updates = jax.tree_map(normalize_fn or (lambda x: x), updates) return updates, state gradient_transformation = optax.chain( optax.GradientTransformation(lambda _: optax.EmptyState(), update_fn), optax.scale_by_schedule(learning_rate_fn), optax.scale(-1.)) super(SGD, self).__init__(gradient_transformation) class IteratedFGSM(SGD): """L-infinity normalized steps.""" def __init__(self, learning_rate_fn: Union[float, int, optax.Schedule]): super(IteratedFGSM, self).__init__(learning_rate_fn, jnp.sign) class Adam(StepOptimizer): """The Adam optimizer defined in https://arxiv.org/abs/1412.6980.""" def __init__( self, learning_rate_fn: Union[float, int, optax.Schedule], normalize_fn: Optional[NormalizeFn] = None, beta1: float = .9, beta2: float = .999, epsilon: float = 1e-9): # Accept schedules, as well as scalar values. if isinstance(learning_rate_fn, (float, int)): lr = float(learning_rate_fn) learning_rate_fn = lambda _: lr # Normalization. def update_fn(updates, state, params=None): del params updates = jax.tree_map(normalize_fn or (lambda x: x), updates) return updates, state gradient_transformation = optax.chain( optax.GradientTransformation(lambda _: optax.EmptyState(), update_fn), optax.scale_by_adam(b1=beta1, b2=beta2, eps=epsilon), optax.scale_by_schedule(learning_rate_fn), optax.scale(-1.)) super(Adam, self).__init__(gradient_transformation) class PGD: """Runs Project Gradient Descent (see https://arxiv.org/pdf/1706.06083).""" def __init__(self, optimizer: StepOptimizer, num_steps: int, initialize_fn: Optional[InitializeFn] = None, project_fn: Optional[ProjectFn] = None): self._optimizer = optimizer if initialize_fn is None: initialize_fn = lambda rng, x: x self._initialize_fn = initialize_fn if project_fn is None: project_fn = lambda x, origin_x: x self._project_fn = project_fn self._num_steps = num_steps def __call__(self, loss_fn: LossFn, rng: chex.PRNGKey, x: chex.Array) -> chex.Array: def _optimize(rng, x): """Optimizes loss_fn when keep_best is False.""" def body_fn(_, inputs): opt_state, current_x = inputs current_x, _, opt_state = self._optimizer.minimize(current_x, opt_state) current_x = self._project_fn(current_x, x) return opt_state, current_x opt_state = self._optimizer.init(loss_fn, x) current_x = self._project_fn(self._initialize_fn(rng, x), x) _, current_x = jax.lax.fori_loop(0, self._num_steps, body_fn, (opt_state, current_x)) return current_x return jax.lax.stop_gradient(_optimize(rng, x)) def linf_project_fn(epsilon: float, bounds: Tuple[float, float]) -> ProjectFn: def project_fn(x, origin_x): dx = jnp.clip(x - origin_x, -epsilon, epsilon) return jnp.clip(origin_x + dx, bounds[0], bounds[1]) return project_fn def linf_initialize_fn(epsilon: float) -> InitializeFn: def initialize_fn(rng, x): return x + jax.random.uniform(rng, x.shape, minval=-epsilon, maxval=epsilon).astype(x.dtype) return initialize_fn def gradients_fn(loss_fn: LossFn, x: chex.Array) -> Tuple[chex.Array, chex.Array]: """Returns the analytical gradient as computed by `jax.grad`.""" @functools.partial(jax.grad, has_aux=True) def grad_reduced_loss_fn(x): loss = loss_fn(x) return jnp.sum(loss), loss return grad_reduced_loss_fn(x) ================================================ FILE: adversarial_robustness/jax/datasets.py ================================================ # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Datasets.""" from typing import Sequence import chex import jax import jax.numpy as jnp import numpy as np import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds _CIFAR10_MEAN = (0.4914, 0.4822, 0.4465) _CIFAR10_STD = (0.2471, 0.2435, 0.2616) _CIFAR100_MEAN = (0.5071, 0.4865, 0.4409) _CIFAR100_STD = (0.2673, 0.2564, 0.2762) _DATA_URL = 'https://storage.googleapis.com/dm-adversarial-robustness/' _ALLOWED_FILES = ('cifar10_ddpm.npz',) _WEBPAGE = ('https://github.com/deepmind/deepmind-research/tree/master/' 'adversarial_robustness') def cifar10_preprocess(mode: str = 'train'): """Preprocessing functions for CIFAR-10.""" def _preprocess_fn_train(example): """Preprocessing of CIFAR-10 images for training.""" image = example['image'] image = tf.image.convert_image_dtype(image, dtype=tf.float32) image = _random_jitter(image, pad=4, crop=32) image = tf.image.random_flip_left_right(image) label = tf.cast(example['label'], tf.int32) return {'image': image, 'label': label} def _preprocess_fn_test(example): """Preprocessing of CIFAR-10 images for testing.""" image = example['image'] image = tf.image.convert_image_dtype(image, dtype=tf.float32) label = tf.cast(example['label'], tf.int32) return {'image': image, 'label': label} return _preprocess_fn_train if mode == 'train' else _preprocess_fn_test def cifar10_normalize(image: chex.Array) -> chex.Array: means = jnp.array(_CIFAR10_MEAN, dtype=image.dtype) stds = jnp.array(_CIFAR10_STD, dtype=image.dtype) return (image - means) / stds def mnist_normalize(image: chex.Array) -> chex.Array: image = jnp.pad(image, ((0, 0), (2, 2), (2, 2), (0, 0)), 'constant', constant_values=0) return (image - .5) * 2. def cifar100_normalize(image: chex.Array) -> chex.Array: means = jnp.array(_CIFAR100_MEAN, dtype=image.dtype) stds = jnp.array(_CIFAR100_STD, dtype=image.dtype) return (image - means) / stds def load_cifar10(batch_sizes: Sequence[int], subset: str = 'train', is_training: bool = True, drop_remainder: bool = True, repeat: int = 1) -> tf.data.Dataset: """Loads CIFAR-10.""" if subset == 'train': ds = tfds.load(name='cifar10', split=tfds.Split.TRAIN) # In Gowal et al. (https://arxiv.org/abs/2010.03593) and Rebuffi et al. # (https://arxiv.org/abs/2103.01946), we also keep a separate validation # subset for early stopping and would run: ds = ds.skip(1_024). elif subset == 'test': ds = tfds.load(name='cifar10', split=tfds.Split.TEST) else: raise ValueError('Unknown subset: "{}"'.format(subset)) ds = ds.cache() if is_training: ds = ds.repeat() ds = ds.shuffle(buffer_size=50_000, seed=0) ds = _repeat_batch(batch_sizes, ds, repeat=repeat) ds = ds.map(cifar10_preprocess('train' if is_training else 'test'), num_parallel_calls=tf.data.AUTOTUNE) for batch_size in reversed(batch_sizes): ds = ds.batch(batch_size, drop_remainder=drop_remainder) return ds.prefetch(tf.data.AUTOTUNE) def load_extra(batch_sizes: Sequence[int], path_npz: str, is_training: bool = True, drop_remainder: bool = True) -> tf.data.Dataset: """Loads extra data from a given path.""" if not tf.io.gfile.exists(path_npz): if path_npz in _ALLOWED_FILES: path_npz = tf.keras.utils.get_file(path_npz, _DATA_URL + path_npz) else: raise ValueError(f'Extra data not found ({path_npz}). See {_WEBPAGE} for ' 'more details.') with tf.io.gfile.GFile(path_npz, 'rb') as fp: npzfile = np.load(fp) data = {'image': npzfile['image'], 'label': npzfile['label']} with tf.device('/device:cpu:0'): # Prevent allocation to happen on GPU. ds = tf.data.Dataset.from_tensor_slices(data) ds = ds.cache() if is_training: ds = ds.repeat() ds = ds.shuffle(buffer_size=50_000, seed=jax.host_id()) ds = ds.map(cifar10_preprocess('train' if is_training else 'test'), num_parallel_calls=tf.data.AUTOTUNE) for batch_size in reversed(batch_sizes): ds = ds.batch(batch_size, drop_remainder=drop_remainder) return ds.prefetch(tf.data.AUTOTUNE) def load_dummy_data(batch_sizes: Sequence[int], is_training: bool = True, **unused_kwargs) -> tf.data.Dataset: """Loads fictive data (use this function when testing).""" ds = tf.data.Dataset.from_tensor_slices({ 'image': np.zeros((1, 32, 32, 3), np.float32), 'label': np.zeros((1,), np.int32), }) ds = ds.repeat() if not is_training: total_batch_size = np.prod(batch_sizes) ds = ds.take(total_batch_size) ds = ds.map(cifar10_preprocess('train' if is_training else 'test'), num_parallel_calls=tf.data.AUTOTUNE) for batch_size in reversed(batch_sizes): ds = ds.batch(batch_size, drop_remainder=True) return ds.prefetch(tf.data.AUTOTUNE) def _random_jitter(image: tf.Tensor, pad: int, crop: int) -> tf.Tensor: shape = image.shape.as_list() image = tf.pad(image, [[pad, pad], [pad, pad], [0, 0]]) image = tf.image.random_crop(image, size=[crop, crop, shape[2]]) return image def _repeat_batch(batch_sizes: Sequence[int], ds: tf.data.Dataset, repeat: int = 1) -> tf.data.Dataset: """Tiles the inner most batch dimension.""" if repeat <= 1: return ds if batch_sizes[-1] % repeat != 0: raise ValueError(f'The last element of `batch_sizes` ({batch_sizes}) must ' f'be divisible by `repeat` ({repeat}).') # Perform regular batching with reduced number of elements. for i, batch_size in enumerate(reversed(batch_sizes)): ds = ds.batch(batch_size // repeat if i == 0 else batch_size, drop_remainder=True) # Repeat batch. fn = lambda x: tf.repeat(x, repeats=repeat, axis=len(batch_sizes) - 1) def repeat_inner_batch(example): return jax.tree_map(fn, example) ds = ds.map(repeat_inner_batch, num_parallel_calls=tf.data.AUTOTUNE) # Unbatch. for _ in batch_sizes: ds = ds.unbatch() return ds ================================================ FILE: adversarial_robustness/jax/eval.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Evaluates a JAX checkpoint on CIFAR-10/100 or MNIST.""" import functools from absl import app from absl import flags import haiku as hk import numpy as np import optax import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds import tqdm from adversarial_robustness.jax import attacks from adversarial_robustness.jax import datasets from adversarial_robustness.jax import model_zoo _CKPT = flags.DEFINE_string( 'ckpt', None, 'Path to checkpoint.') _DATASET = flags.DEFINE_enum( 'dataset', 'cifar10', ['cifar10', 'cifar100', 'mnist'], 'Dataset on which the checkpoint is evaluated.') _WIDTH = flags.DEFINE_integer( 'width', 16, 'Width of WideResNet.') _DEPTH = flags.DEFINE_integer( 'depth', 70, 'Depth of WideResNet.') _BATCH_SIZE = flags.DEFINE_integer( 'batch_size', 100, 'Batch size.') _NUM_BATCHES = flags.DEFINE_integer( 'num_batches', 0, 'Number of batches to evaluate (zero means the whole dataset).') def main(unused_argv): print(f'Loading "{_CKPT.value}"') print(f'Using a WideResNet with depth {_DEPTH.value} and width ' f'{_WIDTH.value}.') # Create dataset. if _DATASET.value == 'mnist': _, data_test = tf.keras.datasets.mnist.load_data() normalize_fn = datasets.mnist_normalize elif _DATASET.value == 'cifar10': _, data_test = tf.keras.datasets.cifar10.load_data() normalize_fn = datasets.cifar10_normalize else: assert _DATASET.value == 'cifar100' _, data_test = tf.keras.datasets.cifar100.load_data() normalize_fn = datasets.cifar100_normalize # Create model. @hk.transform_with_state def model_fn(x, is_training=False): model = model_zoo.WideResNet( num_classes=10, depth=_DEPTH.value, width=_WIDTH.value, activation='swish') return model(normalize_fn(x), is_training=is_training) # Build dataset. images, labels = data_test samples = (images.astype(np.float32) / 255., np.squeeze(labels, axis=-1).astype(np.int64)) data = tf.data.Dataset.from_tensor_slices(samples).batch(_BATCH_SIZE.value) test_loader = tfds.as_numpy(data) # Load model parameters. rng_seq = hk.PRNGSequence(0) if _CKPT.value == 'dummy': for images, _ in test_loader: break params, state = model_fn.init(next(rng_seq), images, is_training=True) # Reset iterator. test_loader = tfds.as_numpy(data) else: params, state = np.load(_CKPT.value, allow_pickle=True) # Create adversarial attack. We run a PGD-40 attack with margin loss. epsilon = 8 / 255 eval_attack = attacks.UntargetedAttack( attacks.PGD( attacks.Adam(learning_rate_fn=optax.piecewise_constant_schedule( init_value=.1, boundaries_and_scales={20: .1, 30: .01})), num_steps=40, initialize_fn=attacks.linf_initialize_fn(epsilon), project_fn=attacks.linf_project_fn(epsilon, bounds=(0., 1.))), loss_fn=attacks.untargeted_margin) def logits_fn(x, rng): return model_fn.apply(params, state, rng, x)[0] # Evaluation. correct = 0 adv_correct = 0 total = 0 batch_count = 0 total_batches = min((10_000 - 1) // _BATCH_SIZE.value + 1, _NUM_BATCHES.value) for images, labels in tqdm.tqdm(test_loader, total=total_batches): rng = next(rng_seq) loop_logits_fn = functools.partial(logits_fn, rng=rng) # Clean examples. outputs = loop_logits_fn(images) correct += (np.argmax(outputs, 1) == labels).sum().item() # Adversarial examples. adv_images = eval_attack(loop_logits_fn, next(rng_seq), images, labels) outputs = loop_logits_fn(adv_images) predicted = np.argmax(outputs, 1) adv_correct += (predicted == labels).sum().item() total += labels.shape[0] batch_count += 1 if _NUM_BATCHES.value > 0 and batch_count >= _NUM_BATCHES.value: break print(f'Accuracy on the {total} test images: {100 * correct / total:.2f}%') print(f'Robust accuracy: {100 * adv_correct / total:.2f}%') if __name__ == '__main__': flags.mark_flag_as_required('ckpt') try: tf.config.set_visible_devices([], 'GPU') # Prevent TF from using the GPU. except tf.errors.NotFoundError: pass app.run(main) ================================================ FILE: adversarial_robustness/jax/experiment.py ================================================ # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """JAXline experiment to perform robust adversarial training.""" import functools import os from typing import Callable, Optional, Tuple from absl import flags from absl import logging import chex import haiku as hk import jax import jax.numpy as jnp from jaxline import base_config from jaxline import experiment from jaxline import utils as jl_utils from ml_collections import config_dict import numpy as np import optax import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds from adversarial_robustness.jax import attacks from adversarial_robustness.jax import datasets from adversarial_robustness.jax import model_zoo from adversarial_robustness.jax import utils FLAGS = flags.FLAGS def get_config(): """Return config object for training.""" config = base_config.get_base_config() # Batch size, training steps and data. num_classes = 10 num_epochs = 400 # Gowal et al. (2020) and Rebuffi et al. (2021) use 1024 as batch size. # Reducing this batch size may require further adjustments to the batch # normalization decay or the learning rate. If you have to use a batch size # of 256, reduce the number of emulated workers to 1 (it should match the # results of using a batch size of 1024 with 4 workers). train_batch_size = 1024 def steps_from_epochs(n): return max(int(n * 50_000 / train_batch_size), 1) num_steps = steps_from_epochs(num_epochs) test_batch_size = train_batch_size # Specify the path to the downloaded data. You can download data from # https://github.com/deepmind/deepmind-research/tree/master/adversarial_robustness. # If the path is set to "cifar10_ddpm.npz" and is not found in the current # directory, the corresponding data will be downloaded. extra_npz = 'cifar10_ddpm.npz' # Can be `None`. # Learning rate. learning_rate = .1 * max(train_batch_size / 256, 1.) learning_rate_warmup = steps_from_epochs(10) use_cosine_schedule = True if use_cosine_schedule: learning_rate_fn = utils.get_cosine_schedule(learning_rate, num_steps, learning_rate_warmup) else: learning_rate_fn = utils.get_step_schedule(learning_rate, num_steps, learning_rate_warmup) # Model definition. model_ctor = model_zoo.WideResNet model_kwargs = dict( num_classes=num_classes, depth=28, width=10, activation='swish') # Attack used during training (can be None). epsilon = 8 / 255 train_attack = attacks.UntargetedAttack( attacks.PGD( attacks.Adam(optax.piecewise_constant_schedule( init_value=.1, boundaries_and_scales={5: .1})), num_steps=10, initialize_fn=attacks.linf_initialize_fn(epsilon), project_fn=attacks.linf_project_fn(epsilon, bounds=(0., 1.))), loss_fn=attacks.untargeted_kl_divergence) # Attack used during evaluation (can be None). eval_attack = attacks.UntargetedAttack( attacks.PGD( attacks.Adam(learning_rate_fn=optax.piecewise_constant_schedule( init_value=.1, boundaries_and_scales={20: .1, 30: .01})), num_steps=40, initialize_fn=attacks.linf_initialize_fn(epsilon), project_fn=attacks.linf_project_fn(epsilon, bounds=(0., 1.))), loss_fn=attacks.untargeted_margin) config.experiment_kwargs = config_dict.ConfigDict(dict(config=dict( epsilon=epsilon, num_classes=num_classes, # Results from various publications use 4 worker machines, which results # in slight differences when using less worker machines. To compensate for # such discrepancies, we emulate these additional workers. Set to zero, # when using more than 4 workers. emulated_workers=4, dry_run=False, save_final_checkpoint_as_npy=True, model=dict( constructor=model_ctor, kwargs=model_kwargs), training=dict( batch_size=train_batch_size, learning_rate=learning_rate_fn, weight_decay=5e-4, swa_decay=.995, use_cutmix=False, supervised_batch_ratio=.3 if extra_npz is not None else 1., extra_data_path=extra_npz, extra_label_smoothing=.1, attack=train_attack), evaluation=dict( # If `interval` is positive, synchronously evaluate at regular # intervals. Setting it to zero will not evaluate while training, # unless `--jaxline_mode` is set to `train_eval_multithreaded`, which # asynchronously evaluates checkpoints. interval=steps_from_epochs(40), batch_size=test_batch_size, attack=eval_attack), ))) config.checkpoint_dir = '/tmp/jaxline/robust' config.train_checkpoint_all_hosts = False config.training_steps = num_steps config.interval_type = 'steps' config.log_train_data_interval = steps_from_epochs(.5) config.log_tensors_interval = steps_from_epochs(.5) config.save_checkpoint_interval = steps_from_epochs(40) config.eval_specific_checkpoint_dir = '' return config class Experiment(experiment.AbstractExperiment): """CIFAR-10 experiment.""" CHECKPOINT_ATTRS = { '_params': 'params', '_avg_params': 'avg_params', '_opt_state': 'opt_state', '_state': 'state', } def __init__(self, mode, config, init_rng): super().__init__(mode=mode) self.config = config self._params = None # Network weights. self._avg_params = None # Averaged network weights. self._state = None # Network state (e.g., batch statistics). self._opt_state = None # Optimizer state. # Build model. self.model = hk.transform_with_state(self._get_model()) if mode == 'train': self._initialize_training(init_rng) if self.config.evaluation.interval > 0: self._last_evaluation_scalars = {} self._initialize_evaluation() elif mode == 'eval': self._initialize_evaluation() elif mode == 'train_eval_multithreaded': self._initialize_training(init_rng) self._initialize_evaluation() else: raise ValueError(f'Unknown mode: "{mode}"') # _ _ # | |_ _ __ __ _(_)_ __ # | __| '__/ _` | | '_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step(self, global_step, rng, *unused_args, **unused_kwargs): # Get next inputs. supervised_inputs = next(self.supervised_train_input) if self.extra_train_input is None: extra_inputs = None else: extra_inputs = next(self.extra_train_input) # Perform step. (self._params, self._avg_params, self._state, self._opt_state, scalars) = self.train_fn( params=self._params, avg_params=self._avg_params, state=self._state, opt_state=self._opt_state, global_step=global_step, supervised_inputs=supervised_inputs, extra_inputs=extra_inputs, rng=rng) scalars = jl_utils.get_first(scalars) # Save final checkpoint. if self.config.save_final_checkpoint_as_npy and not self.config.dry_run: global_step_value = jl_utils.get_first(global_step) if global_step_value == FLAGS.config.get('training_steps', 1) - 1: f_np = lambda x: np.array(jax.device_get(jl_utils.get_first(x))) np_params = jax.tree_map(f_np, self._avg_params or self._params) np_state = jax.tree_map(f_np, self._state) path_npy = os.path.join(FLAGS.config.checkpoint_dir, 'checkpoint.npy') with tf.io.gfile.GFile(path_npy, 'wb') as fp: np.save(fp, (np_params, np_state)) logging.info('Saved final checkpoint at %s', path_npy) # Run synchronous evaluation. if self.config.evaluation.interval <= 0: return scalars global_step_value = jl_utils.get_first(global_step) if (global_step_value % self.config.evaluation.interval != 0 and global_step_value != FLAGS.config.get('training_steps', 1) - 1): return _merge_eval_scalars(scalars, self._last_evaluation_scalars) logging.info('Running synchronous evaluation...') eval_scalars = self.evaluate(global_step, rng) f_list = lambda x: x.tolist() if isinstance(x, jnp.ndarray) else x self._last_evaluation_scalars = jax.tree_map(f_list, eval_scalars) logging.info('(eval) global_step: %d, %s', global_step_value, self._last_evaluation_scalars) return _merge_eval_scalars(scalars, self._last_evaluation_scalars) def _train_fn(self, params, avg_params, state, opt_state, global_step, supervised_inputs, extra_inputs, rng): scalars = {} images, labels, target_probs = self.concatenate(supervised_inputs, extra_inputs) # Apply CutMix. if self.config.training.use_cutmix: aug_rng, rng = jax.random.split(rng) images, target_probs = utils.cutmix(aug_rng, images, target_probs, split=self._repeat_batch) # Perform adversarial attack. if self.config.training.attack is None: adv_images = None grad_fn = jax.grad(self._cross_entropy_loss_fn, has_aux=True) else: attack = self.config.training.attack attack_rng, rng = jax.random.split(rng) def logits_fn(x): x = self.normalize_fn(x) return self.model.apply(params, state, rng, x, is_training=False, test_local_stats=True)[0] if attack.expects_labels(): if self.config.training.use_cutmix: raise ValueError('Use `untargeted_kl_divergence` when using CutMix.') target_labels = labels else: assert attack.expects_probabilities() if self.config.training.use_cutmix: # When using CutMix, regress the attack away from mixed labels. target_labels = target_probs else: target_labels = jax.nn.softmax(logits_fn(images)) adv_images = attack(logits_fn, attack_rng, images, target_labels) grad_fn = jax.grad(self._trades_loss_fn, has_aux=True) # Compute loss and gradients. scaled_grads, (state, loss_scalars) = grad_fn( params, state, images, adv_images, labels, target_probs, rng) grads = jax.lax.psum(scaled_grads, axis_name='i') scalars.update(loss_scalars) updates, opt_state = self.optimizer.update(grads, opt_state, params) params = optax.apply_updates(params, updates) # Stochastic weight averaging. if self.config.training.swa_decay > 0: avg_params = utils.ema_update(global_step, avg_params, params, decay_rate=self.config.training.swa_decay) learning_rate = self.config.training.learning_rate(global_step) scalars['learning_rate'] = learning_rate scalars = jax.lax.pmean(scalars, axis_name='i') return params, avg_params, state, opt_state, scalars def _cross_entropy_loss_fn(self, params, state, images, adv_images, labels, target_probs, rng): scalars = {} images = self.normalize_fn(images) logits, state = self.model.apply( params, state, rng, images, is_training=True) loss = jnp.mean(utils.cross_entropy(logits, target_probs)) loss += self.config.training.weight_decay * utils.weight_decay(params) if not self.config.training.use_cutmix: scalars['top_1_acc'] = utils.accuracy(logits, labels) scalars['train_loss'] = loss scaled_loss = loss / jax.device_count() return scaled_loss, (state, scalars) def _trades_loss_fn(self, params, state, images, adv_images, labels, target_probs, rng, beta=6.): """Calculates TRADES loss (https://arxiv.org/pdf/1901.08573).""" scalars = {} def apply_fn(x, **norm_kwargs): x = self.normalize_fn(x) return self.model.apply(params, state, rng, x, **norm_kwargs) # Clean images. clean_logits, _ = apply_fn(images, is_training=False, test_local_stats=True) if not self.config.training.use_cutmix: scalars['top_1_acc'] = utils.accuracy(clean_logits, labels) # Adversarial images. Update BN stats with adversarial images. adv_logits, state = apply_fn(adv_images, is_training=True) if not self.config.training.use_cutmix: scalars['top_1_adv_acc'] = utils.accuracy(adv_logits, labels) # Compute loss. clean_loss = jnp.mean(utils.cross_entropy(clean_logits, target_probs)) adv_loss = jnp.mean(utils.kl_divergence(adv_logits, clean_logits)) reg_loss = self.config.training.weight_decay * utils.weight_decay(params) loss = clean_loss + beta * adv_loss + reg_loss scalars['train_loss'] = loss scaled_loss = loss / jax.device_count() return scaled_loss, (state, scalars) # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step, rng, *unused_args, **unused_kwargs): scalars = self.eval_epoch(self._params, self._state, rng) if self._avg_params: avg_scalars = self.eval_epoch(self._avg_params or self._params, self._state, rng) for k, v in avg_scalars.items(): scalars[k + '_swa'] = v return scalars def eval_epoch(self, params, state, rng): host_id = jax.host_id() num_samples = 0 batch_axis = 1 summed_scalars = None # Converting to numpy here allows us to reset the generator. eval_input = tfds.as_numpy(self.eval_input) for all_inputs in eval_input: # The inputs are send to multiple workers. inputs = jax.tree_map(lambda x: x[host_id], all_inputs) num_samples += jax.device_count() * inputs['image'].shape[batch_axis] scalars = jl_utils.get_first(self.eval_fn(params, state, inputs, rng)) # Accumulate the sum of scalars for each step. scalars = jax.tree_map(lambda x: jnp.sum(x, axis=0), scalars) if summed_scalars is None: summed_scalars = scalars else: summed_scalars = jax.tree_map(jnp.add, summed_scalars, scalars) mean_scalars = jax.tree_map(lambda x: x / num_samples, summed_scalars) return mean_scalars def _eval_fn(self, params, state, inputs, rng): images = inputs['image'] labels = inputs['label'] attack_rng, rng = jax.random.split(rng) def logits_fn(x): x = self.normalize_fn(x) return self.model.apply(params, state, rng, x, is_training=False, test_local_stats=False)[0] # Clean accuracy. logits = logits_fn(images) predicted_label = jnp.argmax(logits, axis=-1) correct = jnp.equal(predicted_label, labels).astype(jnp.float32) scalars = {'top_1_acc': correct} # Adversarial accuracy. if self.config.evaluation.attack is not None: attack = self.config.evaluation.attack assert attack.expects_labels() adv_images = attack(logits_fn, attack_rng, images, labels) adv_logits = logits_fn(adv_images) predicted_label = jnp.argmax(adv_logits, axis=-1) correct = jnp.equal(predicted_label, labels).astype(jnp.float32) scalars['top_1_adv_acc'] = correct # Returned values will be summed and finally divided by num_samples. return jax.lax.psum(scalars, axis_name='i') def _initialize_training(self, rng): # Initialize inputs. if self.config.emulated_workers > 0: per_device_workers, ragged = divmod(self.config.emulated_workers, jax.host_count()) if ragged: raise ValueError('Number of emulated workers must be divisible by the ' 'number of physical workers `jax.host_count()`.') self._repeat_batch = per_device_workers else: self._repeat_batch = 1 self.supervised_train_input = jl_utils.py_prefetch( self._supervised_train_dataset) if self.config.training.extra_data_path is None: self.extra_train_input = None else: self.extra_train_input = jl_utils.py_prefetch( self._extra_train_dataset) self.normalize_fn = datasets.cifar10_normalize # Optimizer. self.optimizer = utils.sgd_momentum(self.config.training.learning_rate, momentum=.9, nesterov=True) # Initialize parameters. if self._params is None: logging.info('Initializing parameters randomly rather than restoring ' 'from checkpoint.') # Create inputs to initialize the network state. images, _, _ = jax.pmap(self.concatenate)( next(self.supervised_train_input), next(self.extra_train_input) if self.extra_train_input is not None else None) images = jax.pmap(self.normalize_fn)(images) # Initialize weights and biases. init_net = jax.pmap( lambda *a: self.model.init(*a, is_training=True), axis_name='i') init_rng = jl_utils.bcast_local_devices(rng) self._params, self._state = init_net(init_rng, images) # Setup weight averaging. if self.config.training.swa_decay > 0: self._avg_params = self._params else: self._avg_params = None # Initialize optimizer state. init_opt = jax.pmap(self.optimizer.init, axis_name='i') self._opt_state = init_opt(self._params) # Initialize step function. self.train_fn = jax.pmap(self._train_fn, axis_name='i', donate_argnums=(0, 1, 2, 3)) def _initialize_evaluation(self): load_fn = (datasets.load_dummy_data if self.config.dry_run else datasets.load_cifar10) self.eval_input = _dataset( functools.partial(load_fn, subset='test'), is_training=False, total_batch_size=self.config.evaluation.batch_size) self.normalize_fn = datasets.cifar10_normalize self.eval_fn = jax.pmap(self._eval_fn, axis_name='i') def _supervised_train_dataset(self) -> tfds.typing.Tree[np.ndarray]: """Creates the training dataset.""" load_fn = (datasets.load_dummy_data if self.config.dry_run else datasets.load_cifar10) load_fn = functools.partial(load_fn, subset='train', repeat=self._repeat_batch) ds = _dataset(load_fn, is_training=True, repeat=self._repeat_batch, total_batch_size=self.config.training.batch_size, ratio=self.config.training.supervised_batch_ratio) return tfds.as_numpy(ds) def _extra_train_dataset(self) -> tfds.typing.Tree[np.ndarray]: """Creates the training dataset.""" load_extra_fn = (self.config.training.get('load_extra_fn', None) or datasets.load_extra) load_fn = datasets.load_dummy_data if self.config.dry_run else load_extra_fn load_fn = functools.partial( load_fn, path_npz=self.config.training.extra_data_path) ds = _dataset( load_fn, is_training=True, repeat=self._repeat_batch, total_batch_size=self.config.training.batch_size, one_minus_ratio=self.config.training.supervised_batch_ratio) return tfds.as_numpy(ds) def _get_model(self) -> Callable[..., chex.Array]: config = self.config.model def forward_fn(inputs, **norm_kwargs): model_instance = config.constructor(**config.kwargs.to_dict()) return model_instance(inputs, **norm_kwargs) return forward_fn def concatenate( self, supervised_inputs: chex.ArrayTree, extra_inputs: chex.ArrayTree ) -> Tuple[chex.Array, chex.Array, chex.Array]: """Concatenate inputs.""" num_classes = self.config.num_classes supervised_images = supervised_inputs['image'] supervised_labels = supervised_inputs['label'] if extra_inputs is None: images = supervised_images labels = supervised_labels target_probs = hk.one_hot(labels, num_classes) else: extra_images = extra_inputs['image'] images = jnp.concatenate([supervised_images, extra_images], axis=0) extra_labels = extra_inputs['label'] labels = jnp.concatenate([supervised_labels, extra_labels], axis=0) supervised_one_hot_labels = hk.one_hot(supervised_labels, num_classes) extra_one_hot_labels = hk.one_hot(extra_labels, num_classes) if self.config.training.extra_label_smoothing > 0: pos = 1. - self.config.training.extra_label_smoothing neg = self.config.training.extra_label_smoothing / num_classes extra_one_hot_labels = pos * extra_one_hot_labels + neg target_probs = jnp.concatenate( [supervised_one_hot_labels, extra_one_hot_labels], axis=0) return images, labels, target_probs def _dataset(load_fn, is_training: bool, total_batch_size: int, ratio: Optional[float] = None, one_minus_ratio: Optional[float] = None, repeat: int = 1) -> tf.data.Dataset: """Creates a dataset.""" num_devices = jax.device_count() per_device_batch_size, ragged = divmod(total_batch_size, num_devices) if ragged: raise ValueError( f'Global batch size {total_batch_size} must be divisible by the ' f'total number of devices {num_devices}') if repeat > 1: if per_device_batch_size % repeat: raise ValueError( f'Per device batch size {per_device_batch_size} must be divisible ' f'by the number of repeated batches {repeat}') per_device_batch_size //= repeat if ratio is None and one_minus_ratio is None: pass # Use full batch size. elif one_minus_ratio is None: per_device_batch_size = max( 1, min(round(per_device_batch_size * ratio), per_device_batch_size - 1)) elif ratio is None: batch_size = max(1, min(round(per_device_batch_size * one_minus_ratio), per_device_batch_size - 1)) per_device_batch_size = per_device_batch_size - batch_size else: raise ValueError('Only one of `ratio` or `one_minus_ratio` must be ' 'specified') if repeat > 1: per_device_batch_size *= repeat # When testing, we need to batch data across all devices (not just local # devices). num_local_devices = jax.local_device_count() if is_training: batch_sizes = [num_local_devices, per_device_batch_size] else: num_hosts = jax.host_count() assert num_hosts * num_local_devices == num_devices batch_sizes = [num_hosts, num_local_devices, per_device_batch_size] return load_fn(batch_sizes, is_training=is_training) def _merge_eval_scalars(a, b): if b is None: return a for k, v in b.items(): a['eval_' + k] = v return a ================================================ FILE: adversarial_robustness/jax/experiment_test.py ================================================ # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Quick script to test that experiment can import and run.""" from absl import app import jax import jax.numpy as jnp from jaxline import utils as jl_utils from adversarial_robustness.jax import experiment @jl_utils.disable_pmap_jit def test_experiment(unused_argv): """Tests the main experiment.""" config = experiment.get_config() exp_config = config.experiment_kwargs.config exp_config.dry_run = True exp_config.emulated_workers = 0 exp_config.training.batch_size = 2 exp_config.evaluation.batch_size = 2 exp_config.model.kwargs.depth = 10 exp_config.model.kwargs.width = 1 xp = experiment.Experiment('train', exp_config, jax.random.PRNGKey(0)) bcast = jax.pmap(lambda x: x) global_step = bcast(jnp.zeros(jax.local_device_count())) rng = bcast(jnp.stack([jax.random.PRNGKey(0)] * jax.local_device_count())) print('Taking a single experiment step for test purposes!') result = xp.step(global_step, rng) print(f'Step successfully taken, resulting metrics are {result}') if __name__ == '__main__': app.run(test_experiment) ================================================ FILE: adversarial_robustness/jax/model_zoo.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """WideResNet implementation in JAX using Haiku.""" from typing import Any, Dict, Optional import chex import haiku as hk import jax import jax.numpy as jnp class _WideResNetBlock(hk.Module): """Block of a WideResNet.""" def __init__(self, num_filters, stride=1, projection_shortcut=False, activation=jax.nn.relu, norm_args=None, name=None): super().__init__(name=name) num_bottleneck_layers = 1 self._activation = activation if norm_args is None: norm_args = { 'create_offset': False, 'create_scale': True, 'decay_rate': .99, } self._bn_modules = [] self._conv_modules = [] for i in range(num_bottleneck_layers + 1): s = stride if i == 0 else 1 self._bn_modules.append(hk.BatchNorm( name='batchnorm_{}'.format(i), **norm_args)) self._conv_modules.append(hk.Conv2D( output_channels=num_filters, padding='SAME', kernel_shape=(3, 3), stride=s, with_bias=False, name='conv_{}'.format(i))) # pytype: disable=not-callable if projection_shortcut: self._shortcut = hk.Conv2D( output_channels=num_filters, kernel_shape=(1, 1), stride=stride, with_bias=False, name='shortcut') # pytype: disable=not-callable else: self._shortcut = None def __call__(self, inputs, **norm_kwargs): x = inputs orig_x = inputs for i, (bn, conv) in enumerate(zip(self._bn_modules, self._conv_modules)): x = bn(x, **norm_kwargs) x = self._activation(x) if self._shortcut is not None and i == 0: orig_x = x x = conv(x) if self._shortcut is not None: shortcut_x = self._shortcut(orig_x) x += shortcut_x else: x += orig_x return x class WideResNet(hk.Module): """WideResNet designed for CIFAR-10.""" def __init__(self, num_classes: int = 10, depth: int = 28, width: int = 10, activation: str = 'relu', norm_args: Optional[Dict[str, Any]] = None, name: Optional[str] = None): super(WideResNet, self).__init__(name=name) if (depth - 4) % 6 != 0: raise ValueError('depth should be 6n+4.') self._activation = getattr(jax.nn, activation) if norm_args is None: norm_args = { 'create_offset': True, 'create_scale': True, 'decay_rate': .99, } self._conv = hk.Conv2D( output_channels=16, kernel_shape=(3, 3), stride=1, with_bias=False, name='init_conv') # pytype: disable=not-callable self._bn = hk.BatchNorm( name='batchnorm', **norm_args) self._linear = hk.Linear( num_classes, w_init=jnp.zeros, name='logits') blocks_per_layer = (depth - 4) // 6 filter_sizes = [width * n for n in [16, 32, 64]] self._blocks = [] for layer_num, filter_size in enumerate(filter_sizes): blocks_of_layer = [] for i in range(blocks_per_layer): stride = 2 if (layer_num != 0 and i == 0) else 1 projection_shortcut = (i == 0) blocks_of_layer.append(_WideResNetBlock( num_filters=filter_size, stride=stride, projection_shortcut=projection_shortcut, activation=self._activation, norm_args=norm_args, name='resnet_lay_{}_block_{}'.format(layer_num, i))) self._blocks.append(blocks_of_layer) def __call__(self, inputs: chex.Array, **norm_kwargs) -> chex.Array: net = inputs net = self._conv(net) # Blocks. for blocks_of_layer in self._blocks: for block in blocks_of_layer: net = block(net, **norm_kwargs) net = self._bn(net, **norm_kwargs) net = self._activation(net) net = jnp.mean(net, axis=[1, 2]) return self._linear(net) ================================================ FILE: adversarial_robustness/jax/train.py ================================================ # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Runs a JAXline experiment to perform robust adversarial training.""" import functools from absl import app from absl import flags from jaxline import platform import tensorflow.compat.v2 as tf from adversarial_robustness.jax import experiment if __name__ == '__main__': flags.mark_flag_as_required('config') try: tf.config.set_visible_devices([], 'GPU') # Prevent TF from using the GPU. except tf.errors.NotFoundError: pass app.run(functools.partial(platform.main, experiment.Experiment)) ================================================ FILE: adversarial_robustness/jax/utils.py ================================================ # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Helper functions.""" import re from typing import Optional, Sequence, Tuple import chex import einops import haiku as hk import jax import jax.numpy as jnp import optax def get_cosine_schedule( max_learning_rate: float, total_steps: int, warmup_steps: int = 0) -> optax.Schedule: """Builds a cosine decay schedule with initial warm-up.""" if total_steps < warmup_steps: return optax.linear_schedule(init_value=0., end_value=max_learning_rate, transition_steps=warmup_steps) return optax.join_schedules([ optax.linear_schedule(init_value=0., end_value=max_learning_rate, transition_steps=warmup_steps), optax.cosine_decay_schedule(init_value=max_learning_rate, decay_steps=total_steps - warmup_steps), ], [warmup_steps]) def get_step_schedule( max_learning_rate: float, total_steps: int, warmup_steps: int = 0) -> optax.Schedule: """Builds a step schedule with initial warm-up.""" if total_steps < warmup_steps: return optax.linear_schedule(init_value=0., end_value=max_learning_rate, transition_steps=warmup_steps) return optax.join_schedules([ optax.linear_schedule(init_value=0., end_value=max_learning_rate, transition_steps=warmup_steps), optax.piecewise_constant_schedule( init_value=max_learning_rate, boundaries_and_scales={total_steps * 2 // 3: .1}), ], [warmup_steps]) def sgd_momentum(learning_rate_fn: optax.Schedule, momentum: float = 0., nesterov: bool = False) -> optax.GradientTransformation: return optax.chain( optax.trace(decay=momentum, nesterov=nesterov), optax.scale_by_schedule(learning_rate_fn), optax.scale(-1.)) def cross_entropy(logits: chex.Array, labels: chex.Array) -> chex.Array: return -jnp.sum(labels * jax.nn.log_softmax(logits), axis=-1) def kl_divergence(q_logits: chex.Array, p_logits: chex.Array) -> chex.Array: """Compute the KL divergence.""" p_probs = jax.nn.softmax(p_logits) return cross_entropy(q_logits, p_probs) - cross_entropy(p_logits, p_probs) def accuracy(logits: chex.Array, labels: chex.Array) -> chex.Array: predicted_label = jnp.argmax(logits, axis=-1) correct = jnp.equal(predicted_label, labels).astype(jnp.float32) return jnp.sum(correct, axis=0) / logits.shape[0] def weight_decay(params: hk.Params, regex_match: Optional[Sequence[str]] = None, regex_ignore: Optional[Sequence[str]] = None) -> chex.Array: """Computes the L2 regularization loss.""" if regex_match is None: regex_match = ('.*w$', '.*b$') if regex_ignore is None: regex_ignore = ('.*batchnorm.*',) l2_norm = 0. for mod_name, mod_params in params.items(): for param_name, param in mod_params.items(): name = '/'.join([mod_name, param_name]) if (regex_match and all(not re.match(regex, name) for regex in regex_match)): continue if (regex_ignore and any(re.match(regex, name) for regex in regex_ignore)): continue l2_norm += jnp.sum(jnp.square(param)) return .5 * l2_norm # pytype: disable=bad-return-type # numpy-scalars def ema_update(step: chex.Array, avg_params: chex.ArrayTree, new_params: chex.ArrayTree, decay_rate: float = 0.99, warmup_steps: int = 0, dynamic_decay: bool = True) -> chex.ArrayTree: """Applies an exponential moving average.""" factor = (step >= warmup_steps).astype(jnp.float32) # pytype: disable=attribute-error # numpy-scalars if dynamic_decay: # Uses TF-style EMA. delta = step - warmup_steps decay = jnp.minimum(decay_rate, (1. + delta) / (10. + delta)) else: decay = decay_rate decay *= factor def _weighted_average(p1, p2): d = decay.astype(p1.dtype) return (1 - d) * p1 + d * p2 return jax.tree_map(_weighted_average, new_params, avg_params) def cutmix(rng: chex.PRNGKey, images: chex.Array, labels: chex.Array, alpha: float = 1., beta: float = 1., split: int = 1) -> Tuple[chex.Array, chex.Array]: """Composing two images by inserting a patch into another image.""" batch_size, height, width, _ = images.shape split_batch_size = batch_size // split if split > 1 else batch_size # Masking bounding box. box_rng, lam_rng, rng = jax.random.split(rng, num=3) lam = jax.random.beta(lam_rng, a=alpha, b=beta, shape=()) cut_rat = jnp.sqrt(1. - lam) cut_w = jnp.array(width * cut_rat, dtype=jnp.int32) cut_h = jnp.array(height * cut_rat, dtype=jnp.int32) box_coords = _random_box(box_rng, height, width, cut_h, cut_w) # Adjust lambda. lam = 1. - (box_coords[2] * box_coords[3] / (height * width)) idx = jax.random.permutation(rng, split_batch_size) def _cutmix(x, y): images_a = x images_b = x[idx, :, :, :] y = lam * y + (1. - lam) * y[idx, :] x = _compose_two_images(images_a, images_b, box_coords) return x, y if split <= 1: return _cutmix(images, labels) # Apply CutMix separately on each sub-batch. This reverses the effect of # `repeat` in datasets. images = einops.rearrange(images, '(b1 b2) ... -> b1 b2 ...', b2=split) labels = einops.rearrange(labels, '(b1 b2) ... -> b1 b2 ...', b2=split) images, labels = jax.vmap(_cutmix, in_axes=1, out_axes=1)(images, labels) images = einops.rearrange(images, 'b1 b2 ... -> (b1 b2) ...', b2=split) labels = einops.rearrange(labels, 'b1 b2 ... -> (b1 b2) ...', b2=split) return images, labels def _random_box(rng: chex.PRNGKey, height: chex.Numeric, width: chex.Numeric, cut_h: chex.Array, cut_w: chex.Array) -> chex.Array: """Sample a random box of shape [cut_h, cut_w].""" height_rng, width_rng = jax.random.split(rng) i = jax.random.randint( height_rng, shape=(), minval=0, maxval=height, dtype=jnp.int32) j = jax.random.randint( width_rng, shape=(), minval=0, maxval=width, dtype=jnp.int32) bby1 = jnp.clip(i - cut_h // 2, 0, height) bbx1 = jnp.clip(j - cut_w // 2, 0, width) h = jnp.clip(i + cut_h // 2, 0, height) - bby1 w = jnp.clip(j + cut_w // 2, 0, width) - bbx1 return jnp.array([bby1, bbx1, h, w]) def _compose_two_images(images: chex.Array, image_permutation: chex.Array, bbox: chex.Array) -> chex.Array: """Inserting the second minibatch into the first at the target locations.""" def _single_compose_two_images(image1, image2): height, width, _ = image1.shape mask = _window_mask(bbox, (height, width)) return image1 * (1. - mask) + image2 * mask return jax.vmap(_single_compose_two_images)(images, image_permutation) def _window_mask(destination_box: chex.Array, size: Tuple[int, int]) -> jnp.ndarray: """Mask a part of the image.""" height_offset, width_offset, h, w = destination_box h_range = jnp.reshape(jnp.arange(size[0]), [size[0], 1, 1]) w_range = jnp.reshape(jnp.arange(size[1]), [1, size[1], 1]) return jnp.logical_and( jnp.logical_and(height_offset <= h_range, h_range < height_offset + h), jnp.logical_and(width_offset <= w_range, w_range < width_offset + w)).astype(jnp.float32) ================================================ FILE: adversarial_robustness/pytorch/README.md ================================================ # PyTorch evaluation We provide PyTorch evaluation code for convenience. If you developed a version of our training pipeline for PyTorch, please let us know as we will link it from here. Here are known PyTorch implementations of our training pipeline: * https://github.com/imrahulr/adversarial_robustness_pytorch (by Rahul Rade) Here are few consideration when reproducing our training pipeline in PyTorch. As opposed to the [RST](https://github.com/yaircarmon/semisup-adv) code (provided by Carmon et al.): * We set the batch normalization decay to 0.99 (instead of 0.9). * We do not apply weight decay (l2 regularization) to the batch normalization scale and offset * We use Haiku's default initialization for all layers (except the last, which is initialized with zeros). * The PGD attack used during training uniformly initializes the initial solution over the l-p norm ball. * We run the attack over the local batch statistics (rather than the evaluation statistics). * We update batch normalization statistics from adversarial examples only ( rather than both clean and adversarial examples). * We use 10 epochs warm-up to our learning schedule. ================================================ FILE: adversarial_robustness/pytorch/eval.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Evaluates a PyTorch checkpoint on CIFAR-10/100 or MNIST.""" from absl import app from absl import flags import torch from torch.utils import data from torchvision import datasets from torchvision import transforms import tqdm from adversarial_robustness.pytorch import model_zoo _CKPT = flags.DEFINE_string( 'ckpt', None, 'Path to checkpoint.') _DATASET = flags.DEFINE_enum( 'dataset', 'cifar10', ['cifar10', 'cifar100', 'mnist'], 'Dataset on which the checkpoint is evaluated.') _WIDTH = flags.DEFINE_integer( 'width', 16, 'Width of WideResNet (if set to zero uses a PreActResNet).') _DEPTH = flags.DEFINE_integer( 'depth', 70, 'Depth of WideResNet or PreActResNet.') _USE_CUDA = flags.DEFINE_boolean( 'use_cuda', True, 'Whether to use CUDA.') _BATCH_SIZE = flags.DEFINE_integer( 'batch_size', 100, 'Batch size.') _NUM_BATCHES = flags.DEFINE_integer( 'num_batches', 0, 'Number of batches to evaluate (zero means the whole dataset).') def main(unused_argv): print(f'Loading "{_CKPT.value}"') # Create model and dataset. if _WIDTH.value == 0: print(f'Using a PreActResNet with depth {_DEPTH.value}.') model_ctor = model_zoo.PreActResNet else: print(f'Using a WideResNet with depth {_DEPTH.value} and width ' f'{_WIDTH.value}.') model_ctor = model_zoo.WideResNet if _DATASET.value == 'mnist': model = model_ctor( num_classes=10, depth=_DEPTH.value, width=_WIDTH.value, activation_fn=model_zoo.Swish, mean=.5, std=.5, padding=2, num_input_channels=1) dataset_fn = datasets.MNIST elif _DATASET.value == 'cifar10': model = model_ctor( num_classes=10, depth=_DEPTH.value, width=_WIDTH.value, activation_fn=model_zoo.Swish, mean=model_zoo.CIFAR10_MEAN, std=model_zoo.CIFAR10_STD) dataset_fn = datasets.CIFAR10 else: assert _DATASET.value == 'cifar100' model = model_ctor( num_classes=100, depth=_DEPTH.value, width=_WIDTH.value, activation_fn=model_zoo.Swish, mean=model_zoo.CIFAR100_MEAN, std=model_zoo.CIFAR100_STD) dataset_fn = datasets.CIFAR100 # Load model. if _CKPT.value != 'dummy': params = torch.load(_CKPT.value) model.load_state_dict(params) if _USE_CUDA.value: model.cuda() model.eval() print('Successfully loaded.') # Load dataset. transform_chain = transforms.Compose([transforms.ToTensor()]) ds = dataset_fn(root='/tmp/data', train=False, transform=transform_chain, download=True) test_loader = data.DataLoader(ds, batch_size=_BATCH_SIZE.value, shuffle=False, num_workers=0) # Evaluation. correct = 0 total = 0 batch_count = 0 total_batches = min((10_000 - 1) // _BATCH_SIZE.value + 1, _NUM_BATCHES.value) with torch.no_grad(): for images, labels in tqdm.tqdm(test_loader, total=total_batches): outputs = model(images) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() batch_count += 1 if _NUM_BATCHES.value > 0 and batch_count >= _NUM_BATCHES.value: break print(f'Accuracy on the {total} test images: {100 * correct / total:.2f}%') if __name__ == '__main__': flags.mark_flag_as_required('ckpt') app.run(main) ================================================ FILE: adversarial_robustness/pytorch/model_zoo.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """WideResNet and PreActResNet implementations in PyTorch.""" from typing import Tuple, Union import torch import torch.nn as nn import torch.nn.functional as F CIFAR10_MEAN = (0.4914, 0.4822, 0.4465) CIFAR10_STD = (0.2471, 0.2435, 0.2616) CIFAR100_MEAN = (0.5071, 0.4865, 0.4409) CIFAR100_STD = (0.2673, 0.2564, 0.2762) class _Swish(torch.autograd.Function): """Custom implementation of swish.""" @staticmethod def forward(ctx, i): result = i * torch.sigmoid(i) ctx.save_for_backward(i) return result @staticmethod def backward(ctx, grad_output): i = ctx.saved_variables[0] sigmoid_i = torch.sigmoid(i) return grad_output * (sigmoid_i * (1 + i * (1 - sigmoid_i))) class Swish(nn.Module): """Module using custom implementation.""" def forward(self, input_tensor): return _Swish.apply(input_tensor) class _Block(nn.Module): """WideResNet Block.""" def __init__(self, in_planes, out_planes, stride, activation_fn=nn.ReLU): super().__init__() self.batchnorm_0 = nn.BatchNorm2d(in_planes) self.relu_0 = activation_fn() # We manually pad to obtain the same effect as `SAME` (necessary when # `stride` is different than 1). self.conv_0 = nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, padding=0, bias=False) self.batchnorm_1 = nn.BatchNorm2d(out_planes) self.relu_1 = activation_fn() self.conv_1 = nn.Conv2d(out_planes, out_planes, kernel_size=3, stride=1, padding=1, bias=False) self.has_shortcut = in_planes != out_planes if self.has_shortcut: self.shortcut = nn.Conv2d(in_planes, out_planes, kernel_size=1, stride=stride, padding=0, bias=False) else: self.shortcut = None self._stride = stride def forward(self, x): if self.has_shortcut: x = self.relu_0(self.batchnorm_0(x)) else: out = self.relu_0(self.batchnorm_0(x)) v = x if self.has_shortcut else out if self._stride == 1: v = F.pad(v, (1, 1, 1, 1)) elif self._stride == 2: v = F.pad(v, (0, 1, 0, 1)) else: raise ValueError('Unsupported `stride`.') out = self.conv_0(v) out = self.relu_1(self.batchnorm_1(out)) out = self.conv_1(out) out = torch.add(self.shortcut(x) if self.has_shortcut else x, out) return out class _BlockGroup(nn.Module): """WideResNet block group.""" def __init__(self, num_blocks, in_planes, out_planes, stride, activation_fn=nn.ReLU): super().__init__() block = [] for i in range(num_blocks): block.append( _Block(i == 0 and in_planes or out_planes, out_planes, i == 0 and stride or 1, activation_fn=activation_fn)) self.block = nn.Sequential(*block) def forward(self, x): return self.block(x) class WideResNet(nn.Module): """WideResNet.""" def __init__(self, num_classes: int = 10, depth: int = 28, width: int = 10, activation_fn: nn.Module = nn.ReLU, mean: Union[Tuple[float, ...], float] = CIFAR10_MEAN, std: Union[Tuple[float, ...], float] = CIFAR10_STD, padding: int = 0, num_input_channels: int = 3): super().__init__() self.mean = torch.tensor(mean).view(num_input_channels, 1, 1) self.std = torch.tensor(std).view(num_input_channels, 1, 1) self.mean_cuda = None self.std_cuda = None self.padding = padding num_channels = [16, 16 * width, 32 * width, 64 * width] assert (depth - 4) % 6 == 0 num_blocks = (depth - 4) // 6 self.init_conv = nn.Conv2d(num_input_channels, num_channels[0], kernel_size=3, stride=1, padding=1, bias=False) self.layer = nn.Sequential( _BlockGroup(num_blocks, num_channels[0], num_channels[1], 1, activation_fn=activation_fn), _BlockGroup(num_blocks, num_channels[1], num_channels[2], 2, activation_fn=activation_fn), _BlockGroup(num_blocks, num_channels[2], num_channels[3], 2, activation_fn=activation_fn)) self.batchnorm = nn.BatchNorm2d(num_channels[3]) self.relu = activation_fn() self.logits = nn.Linear(num_channels[3], num_classes) self.num_channels = num_channels[3] def forward(self, x): if self.padding > 0: x = F.pad(x, (self.padding,) * 4) if x.is_cuda: if self.mean_cuda is None: self.mean_cuda = self.mean.cuda() self.std_cuda = self.std.cuda() out = (x - self.mean_cuda) / self.std_cuda else: out = (x - self.mean) / self.std out = self.init_conv(out) out = self.layer(out) out = self.relu(self.batchnorm(out)) out = F.avg_pool2d(out, 8) out = out.view(-1, self.num_channels) return self.logits(out) class _PreActBlock(nn.Module): """Pre-activation ResNet Block.""" def __init__(self, in_planes, out_planes, stride, activation_fn=nn.ReLU): super().__init__() self._stride = stride self.batchnorm_0 = nn.BatchNorm2d(in_planes) self.relu_0 = activation_fn() # We manually pad to obtain the same effect as `SAME` (necessary when # `stride` is different than 1). self.conv_2d_1 = nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, padding=0, bias=False) self.batchnorm_1 = nn.BatchNorm2d(out_planes) self.relu_1 = activation_fn() self.conv_2d_2 = nn.Conv2d(out_planes, out_planes, kernel_size=3, stride=1, padding=1, bias=False) self.has_shortcut = stride != 1 or in_planes != out_planes if self.has_shortcut: self.shortcut = nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, padding=0, bias=False) def _pad(self, x): if self._stride == 1: x = F.pad(x, (1, 1, 1, 1)) elif self._stride == 2: x = F.pad(x, (0, 1, 0, 1)) else: raise ValueError('Unsupported `stride`.') return x def forward(self, x): out = self.relu_0(self.batchnorm_0(x)) shortcut = self.shortcut(self._pad(x)) if self.has_shortcut else x out = self.conv_2d_1(self._pad(out)) out = self.conv_2d_2(self.relu_1(self.batchnorm_1(out))) return out + shortcut class PreActResNet(nn.Module): """Pre-activation ResNet.""" def __init__(self, num_classes: int = 10, depth: int = 18, width: int = 0, # Used to make the constructor consistent. activation_fn: nn.Module = nn.ReLU, mean: Union[Tuple[float, ...], float] = CIFAR10_MEAN, std: Union[Tuple[float, ...], float] = CIFAR10_STD, padding: int = 0, num_input_channels: int = 3): super().__init__() if width != 0: raise ValueError('Unsupported `width`.') self.mean = torch.tensor(mean).view(num_input_channels, 1, 1) self.std = torch.tensor(std).view(num_input_channels, 1, 1) self.mean_cuda = None self.std_cuda = None self.padding = padding self.conv_2d = nn.Conv2d(num_input_channels, 64, kernel_size=3, stride=1, padding=1, bias=False) if depth == 18: num_blocks = (2, 2, 2, 2) elif depth == 34: num_blocks = (3, 4, 6, 3) else: raise ValueError('Unsupported `depth`.') self.layer_0 = self._make_layer(64, 64, num_blocks[0], 1, activation_fn) self.layer_1 = self._make_layer(64, 128, num_blocks[1], 2, activation_fn) self.layer_2 = self._make_layer(128, 256, num_blocks[2], 2, activation_fn) self.layer_3 = self._make_layer(256, 512, num_blocks[3], 2, activation_fn) self.batchnorm = nn.BatchNorm2d(512) self.relu = activation_fn() self.logits = nn.Linear(512, num_classes) def _make_layer(self, in_planes, out_planes, num_blocks, stride, activation_fn): layers = [] for i, stride in enumerate([stride] + [1] * (num_blocks - 1)): layers.append( _PreActBlock(i == 0 and in_planes or out_planes, out_planes, stride, activation_fn)) return nn.Sequential(*layers) def forward(self, x): if self.padding > 0: x = F.pad(x, (self.padding,) * 4) if x.is_cuda: if self.mean_cuda is None: self.mean_cuda = self.mean.cuda() self.std_cuda = self.std.cuda() out = (x - self.mean_cuda) / self.std_cuda else: out = (x - self.mean) / self.std out = self.conv_2d(out) out = self.layer_0(out) out = self.layer_1(out) out = self.layer_2(out) out = self.layer_3(out) out = self.relu(self.batchnorm(out)) out = F.avg_pool2d(out, 4) out = out.view(out.size(0), -1) return self.logits(out) ================================================ FILE: adversarial_robustness/requirements.txt ================================================ # Direct dependencies. absl-py==0.12.0 chex==0.0.7 dm-haiku==0.0.4 einops==0.3.0 jax==0.2.16 jaxlib==0.1.68 jaxline==0.0.3 ml-collections==0.1.0 numpy==1.19.5 optax==0.0.8 tensorflow==2.5.0 tensorflow-datasets==4.3.0 torch==1.9.0 torchvision==0.10.0 tqdm==4.61.1 # Transitive dependencies. astunparse==1.6.3 attrs==21.2.0 cachetools==4.2.2 certifi==2021.5.30 chardet==4.0.0 contextlib2==21.6.0 dill==0.3.4 dm-tree==0.1.6 flatbuffers==1.12 future==0.18.2 gast==0.4.0 google-auth==1.32.0 google-auth-oauthlib==0.4.4 google-pasta==0.2.0 googleapis-common-protos==1.53.0 grpcio==1.34.1 h5py==3.1.0 idna==2.10 keras-nightly==2.5.0.dev2021032900 Keras-Preprocessing==1.1.2 Markdown==3.3.4 oauthlib==3.1.1 opt-einsum==3.3.0 Pillow==8.2.0 pkg-resources==0.0.0 promise==2.3 protobuf==3.17.3 pyasn1==0.4.8 pyasn1-modules==0.2.8 PyYAML==5.4.1 requests==2.25.1 requests-oauthlib==1.3.0 rsa==4.7.2 scipy==1.7.0 six==1.15.0 tabulate==0.8.9 tensorboard==2.5.0 tensorboard-data-server==0.6.1 tensorboard-plugin-wit==1.8.0 tensorflow-estimator==2.5.0 tensorflow-metadata==1.1.0 termcolor==1.1.0 toolz==0.11.1 typing-extensions==3.7.4.3 urllib3==1.26.6 Werkzeug==2.0.1 wrapt==1.12.1 ================================================ FILE: adversarial_robustness/run.sh ================================================ #!/bin/sh # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -euf -o pipefail # Stop at failure. python3 -m venv /tmp/adversarial_robustness_venv source /tmp/adversarial_robustness_venv/bin/activate pip install -U pip pip install -r adversarial_robustness/requirements.txt python3 -m adversarial_robustness.jax.eval \ --ckpt=dummy \ --dataset=cifar10 \ --width=1 \ --depth=10 \ --batch_size=1 \ --num_batches=1 python3 -m adversarial_robustness.pytorch.eval \ --ckpt=dummy \ --dataset=cifar10 \ --width=1 \ --depth=10 \ --batch_size=1 \ --num_batches=1 \ --nouse_cuda # We disable pmap/jit to avoid compilation during testing. Since the # test only runs a single step, it would not benefit from such a compilation # anyways. python3 -m adversarial_robustness.jax.experiment_test \ --jaxline_disable_pmap_jit=True ================================================ FILE: affordances_theory/AffordancesInContinuousEnvironment.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ya9j9pyzkyBZ" }, "source": [ "Copyright 2020 The \"What Can I do Here? A Theory of Affordances In Reinforcement Learning\" Authors. All rights reserved.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "id": "LbWb35G9UHLO", "outputId": "280cac1e-76e0-4960-a271-24d351f249bc" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%tensorflow_version 2.x\n", "%pylab inline\n", "\n", "# System imports\n", "import copy\n", "import dataclasses\n", "import enum\n", "import itertools\n", "import numpy as np\n", "import operator\n", "import random\n", "import time\n", "from typing import Optional, List, Tuple, Any, Dict, Union, Callable\n", "\n", "\n", "# Library imports.\n", "from google.colab import files\n", "from matplotlib import colors\n", "import matplotlib.animation as animation\n", "import matplotlib.pylab as plt\n", "import tensorflow as tf\n", "\n", "import tensorflow_probability as tfp" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "UZV6OS_BUklD" }, "source": [ "# Environment Specification" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "Mz4KtBOVUpOV" }, "outputs": [], "source": [ "#@title Point Class\n", "@dataclasses.dataclass(order=True, frozen=True)\n", "class Point:\n", " \"\"\"A class representing a point in 2D space.\n", "\n", " Comes with some convenience functions.\n", " \"\"\"\n", " x: float\n", " y: float\n", "\n", " def sum(self):\n", " return self.x + self.y\n", "\n", " def l2norm(self):\n", " \"\"\"Computes the L2 norm of the point.\"\"\"\n", " return np.sqrt(self.x * self.x + self.y * self.y)\n", "\n", " def __add__(self, other: 'Point'):\n", " return Point(self.x + other.x, self.y + other.y)\n", "\n", " def __sub__(self, other: 'Point'):\n", " return Point(self.x - other.x, self.y - other.y)\n", "\n", " def normal_sample_around(self, scale: float):\n", " \"\"\"Samples a point around the current point based on some noise.\"\"\"\n", " new_coords = np.random.normal(dataclasses.astuple(self), scale)\n", " new_coords = new_coords.astype(np.float32)\n", " return Point(*new_coords)\n", "\n", " def is_close_to(self, other: 'Point', diff: float = 1e-4):\n", " \"\"\"Determines if one point is close to another.\"\"\"\n", " point_diff = self - other\n", " if abs(point_diff.x) \u003c diff and abs(point_diff.y) \u003c diff:\n", " return True\n", " else:\n", " return False\n", "\n", "# Test the points.\n", "z1 = Point(0.4, 0.1)\n", "assert z1.is_close_to(z1)\n", "assert z1.is_close_to(Point(0.5, 0.0), 1.0)\n", "assert not z1.is_close_to(Point(5.0, 0.0), 1.0)\n", "z2 = Point(0.1, 0.1)\n", "z3 = z1 - z2\n", "assert isinstance(z3, Point)\n", "assert z3.is_close_to(Point(0.3, 0.0))\n", "assert isinstance(z3.normal_sample_around(0.1), Point)\n", "\n", "class Force(Point):\n", " pass\n", "\n", "\n", "# # Intersection code.\n", "# See Sedgewick, Robert, and Kevin Wayne. Algorithms. , 2011.\n", "# Chapter 6.1 on Geometric Primitives\n", "# https://algs4.cs.princeton.edu/91primitives/\n", "def _check_counter_clockwise(a: Point, b: Point, c: Point):\n", " \"\"\"Checks if 3 points are counter clockwise to each other.\"\"\"\n", " slope_AB_numerator = (b.y - a.y)\n", " slope_AB_denominator = (b.x - a.x)\n", " slope_AC_numerator = (c.y - a.y)\n", " slope_AC_denominator = (c.x - a.x)\n", " return (slope_AC_numerator * slope_AB_denominator \u003e= \\\n", " slope_AB_numerator * slope_AC_denominator)\n", "\n", "def intersect(segment_1: Tuple[Point, Point], segment_2: Tuple[Point, Point]):\n", " \"\"\"Checks if two line segments intersect.\"\"\"\n", " a, b = segment_1\n", " c, d = segment_2\n", "\n", " # Checking if there is an intersection is equivalent to:\n", " # Exactly one counter clockwise path to D (from A or B) via C.\n", " AC_ccw_CD = _check_counter_clockwise(a, c, d)\n", " BC_ccw_CD = _check_counter_clockwise(b, c, d)\n", " toD_via_C = AC_ccw_CD != BC_ccw_CD\n", "\n", " # AND\n", " # Exactly one counterclockwise path from A (to C or D) via B.\n", " AB_ccw_BC = _check_counter_clockwise(a, b, c)\n", " AB_ccw_BD = _check_counter_clockwise(a, b, d)\n", "\n", " fromA_via_B = AB_ccw_BC != AB_ccw_BD\n", "\n", " return toD_via_C and fromA_via_B\n", "\n", "# Some simple tests to ensure everything is working.\n", "assert not intersect((Point(1, 0), Point(1, 1)), (Point(0,0), Point(0, 1))), \\\n", " 'Parallel lines detected as intersecting.'\n", "assert not intersect((Point(0, 0), Point(1, 0)), (Point(0,1), Point(1, 1))), \\\n", " 'Parallel lines detected as intersecting.'\n", "assert intersect((Point(3, 5), Point(1, 1)), (Point(2, 2), Point(0, 1))), \\\n", " 'Lines that intersect not detected.'\n", "assert not intersect((Point(0, 0), Point(2, 2)), (Point(3, 3), Point(5, 1))), \\\n", " 'Lines that do not intersect detected as intersecting'\n", "assert intersect((Point(0, .5), Point(0, -.5)), (Point(.5, 0), Point(-.5, 0.))), \\\n", " 'Lines that intersect not detected.'" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "IaC8khoBVZ2a" }, "outputs": [], "source": [ "#@title ContinuousWorld environment.\n", "\n", "class ContinuousWorld(object):\n", " r\"\"\"The ContinuousWorld Environment.\n", "\n", " An agent can be anywhere in the grid. The agent provides Forces to move. When\n", " the agent provides a force, it is applied and the final position is jittered.\n", "\n", " When the agent is reset, its location is drawn from a global start position\n", " given by `drift_between`. This start position is non-stationary and drifts\n", " toward the target start position as the environment resets with the speed\n", " `drift_speed`.\n", "\n", " For example the start position is (0., 0.). After reseting once, the start\n", " positon might drift toward (0.5, 0.5). After resetting again it may drift\n", " again to (0., 0.). This happens smoothly according to the drifting speed.\n", "\n", " Walls can be specified in this environment. Detection works by checking if the\n", " agents action forces it to go in a direction which collides with a wall.\n", " \"\"\"\n", "\n", " def __init__(\n", " self,\n", " size: float,\n", " wall_pairs: Optional[List[Tuple[Point, Point]]] = None,\n", " drift_between: Optional[List[Tuple[Point, Point]]] = None,\n", " movement_noise: float = 0.1,\n", " seed: int = 1,\n", " drift_speed: float = 0.5,\n", " reset_noise: Optional[float] = None,\n", " max_episode_length: int = 10,\n", " max_action_force: float = 0.5,\n", " verbose_reset: bool = False\n", " ):\n", " \"\"\"Initializes the Continuous World Environment.\n", "\n", " Args:\n", " size: The size of the world.\n", " wall_pairs: A list of tuple of points representing the start and end\n", " positions of the wall.\n", " drift_between: A list of tuple of points representing how the starting\n", " distrubiton should change. If None, it will drift between the four\n", " corners of the room.\n", " movement_noise: The noise around each position after movement.\n", " seed: The seed for the random number generator.\n", " drift_speed: How quickly to move in the drift direction.\n", " reset_noise: The noise around the reset position. Defaults to\n", " movement_noise if not specified.\n", " max_episode_length: The maximum length of the episode before resetting.\n", " max_action_force: If using random_step() this will be the maximum random\n", " force applied in the x and y direction.\n", " verbose_reset: Prints out every time the global starting position is\n", " reset.\n", " \"\"\"\n", " self._size = size\n", " self._wall_pairs = wall_pairs or []\n", " self._verbose_reset = verbose_reset\n", "\n", " # Points to drift the start position between.\n", " if drift_between is None:\n", " self._drift_between = (\n", " Point((1/4) * size, (1/4) * size),\n", " Point((1/4) * size, (3/4) * size),\n", " Point((3/4) * size, (1/4) * size),\n", " Point((3/4) * size, (3/4) * size),\n", " )\n", " else:\n", " self._drift_between = drift_between\n", "\n", " self._noise = movement_noise\n", " self._reset_noise = reset_noise or movement_noise\n", " self._rng = np.random.RandomState(seed)\n", " random.seed(seed)\n", "\n", " # The current and target starting positions.\n", " # Internal to this class mu is used to refer to mean \"start position\".\n", " # Therefore mu = current start position and end_mu is the target start\n", " # position.\n", " self._mu, self._end_mu = random.sample(self._drift_between, 2)\n", " # The speed at which we will move toward the target position.\n", " self._drift_speed = drift_speed\n", " self.update_agent_position()\n", " self._decide_new_target_mu()\n", " self._max_episode_length = max_episode_length\n", " self._current_episode_length = 0\n", " self._terminated = True\n", " self._max_action_force = max_action_force\n", " self._recent_mu_updated = False\n", "\n", " def _decide_new_target_mu(self):\n", " \"\"\"Decide a new target direction to move toward.\"\"\"\n", " # The direction should be toward the \"target ending mu.\"\n", " (new_end_mu,) = random.sample(self._drift_between, 1)\n", " while new_end_mu == self._end_mu:\n", " (new_end_mu,) = random.sample(self._drift_between, 1)\n", "\n", " self._end_mu = new_end_mu\n", " self._decide_drift_direction()\n", " if self._verbose_reset:\n", " print(f'Target mu has been updated to: {self._end_mu}')\n", " self._recent_mu_updated = True\n", "\n", " def _decide_drift_direction(self):\n", " \"\"\"Decide the drifting direction to move in.\"\"\"\n", " direction = self._end_mu - self._mu\n", " l2 = direction.l2norm()\n", " drift_direction = Point(direction.x / l2, direction.y / l2)\n", " self._drift_direction = Point(\n", " drift_direction.x * self._drift_speed,\n", " drift_direction.y * self._drift_speed\n", " )\n", "\n", " def _should_update_target_mu(self) -\u003e bool:\n", " \"\"\"Decide if the drift direction should change.\"\"\"\n", " # Condition 1: We are past the edge of the environment.\n", " if self._past_edge(self._mu.x)[0] or self._past_edge(self._mu.y)[0]:\n", " return True\n", "\n", " # Condition 2: Check if the current mu is close to the end mu.\n", " return self._mu.is_close_to(self._end_mu, self._drift_speed)\n", "\n", " def update_current_start_position(self):\n", " \"\"\"Update the current mu to drift toward mu_end. Change mu_end if needed.\"\"\"\n", " if self._should_update_target_mu():\n", " self._decide_new_target_mu()\n", " self._decide_drift_direction()\n", " proposed_mu = self._mu + self._drift_direction\n", " self._mu = self._wrap_coordinate(proposed_mu)\n", "\n", " def _past_edge(self, x: float) -\u003e Tuple[bool, float]:\n", " \"\"\"Checks if coordinate is beyond the edges.\"\"\"\n", " if x \u003e= self._size:\n", " return True, self._size\n", " elif x \u003c= 0.0:\n", " return True, 0.0\n", " else:\n", " return False, x\n", "\n", " def _wrap_coordinate(self, point: Point) -\u003e Point:\n", " \"\"\"Wraps coordinates that are beyond edges.\"\"\"\n", " wrapped_coordinates = map(self._past_edge, dataclasses.astuple(point))\n", " return Point(*map(operator.itemgetter(1), wrapped_coordinates))\n", "\n", " def update_agent_position(self):\n", " self._current_position = self._wrap_coordinate(\n", " self._mu.normal_sample_around(self._noise))\n", "\n", " def set_agent_position(self, new_position: Point):\n", " self._current_position = self._wrap_coordinate(new_position)\n", "\n", " def reset(self) -\u003e Tuple[float, float]:\n", " \"\"\"Reset the current position of the agent and move the global mu.\"\"\"\n", " self.update_current_start_position()\n", " self.update_agent_position()\n", " self._current_episode_length = 0\n", " self._terminated = False\n", " return self._current_position\n", "\n", " def get_random_force(self) -\u003e Force:\n", " return Force(*self._rng.uniform(\n", " -self._max_action_force, self._max_action_force, 2))\n", "\n", " def random_step(self):\n", " random_action = self.get_random_force()\n", " to_be_returned = self.step(random_action)\n", " to_be_returned[-1]['action_taken'] = random_action\n", " return to_be_returned\n", "\n", " @property\n", " def agent_position(self):\n", " return dataclasses.astuple(self._current_position)\n", "\n", " @property\n", " def start_position(self):\n", " return dataclasses.astuple(self._mu)\n", "\n", " @property\n", " def size(self):\n", " return self._size\n", "\n", " @property\n", " def walls(self):\n", " return self._wall_pairs\n", "\n", " def _check_goes_through_wall(self, start: Point, end: Point):\n", " if not self._wall_pairs: return False\n", "\n", " for pair in self._wall_pairs:\n", " if intersect((start, end), pair):\n", " return True\n", " return False\n", "\n", " def step(\n", " self,\n", " action: Force\n", " ) -\u003e Tuple[Tuple[float, float], Optional[float], bool, Dict[str, Any]]:\n", " \"\"\"Does a step in the environment using the action.\n", "\n", " Args:\n", " action: Force applied by the agent.\n", "\n", " Returns:\n", " Agent position: A tuple of two floats.\n", " The reward.\n", " An indicator if the episode terminated.\n", " A dictionary containing any information about the step.\n", " \"\"\"\n", " if self._terminated:\n", " raise ValueError('Episode is over. Please reset the environment.')\n", " perturbed_action = action.normal_sample_around(self._noise)\n", "\n", " proposed_position = self._wrap_coordinate(\n", " self._current_position + perturbed_action)\n", "\n", " goes_through_wall = self._check_goes_through_wall(\n", " self._current_position, proposed_position)\n", "\n", " if not goes_through_wall:\n", " self._current_position = proposed_position\n", "\n", " self._current_episode_length += 1\n", "\n", " if self._current_episode_length \u003e self._max_episode_length:\n", " self._terminated = True\n", "\n", " recent_mu_updated = self._recent_mu_updated\n", " self._recent_mu_updated = False\n", " return (\n", " self._current_position,\n", " None,\n", " self._terminated,\n", " {\n", " 'goes_through_wall': goes_through_wall,\n", " 'proposed_position': proposed_position,\n", " 'recent_start_position_updated': recent_mu_updated\n", " }\n", " )" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "O43gq5h_YS2I" }, "outputs": [], "source": [ "#@title Visualization suite.\n", "\n", "def visualize_environment(\n", " world,\n", " ax,\n", " scaling=1.0,\n", " agent_color='r',\n", " agent_size=0.2,\n", " start_color='g',\n", " draw_agent=True,\n", " draw_start_mu=True,\n", " draw_target_mu=True,\n", " draw_walls=True,\n", " write_text=True):\n", " \"\"\"Visualize the continuous grid world.\n", "\n", " The agent will be drawn as a circle. The start and target\n", " locations will be drawn by a cross. Walls will be drawn in\n", " black.\n", "\n", " Args:\n", " world: The continuous gridworld to visualize.\n", " ax: The matplotlib axes to draw the gridworld.\n", " scaling: Scale the plot by this factor.\n", " agent_color: Color of the agent.\n", " agent_size: Size of the agent in the world.\n", " start_color: Color of the start marker.\n", " draw_agent: Boolean that controls drawing agent.\n", " draw_start_mu: Boolean that controls drawing starting position.\n", " draw_target_mu: Boolean that controls drawing ending position.\n", " draw_walls: Boolean that controls drawing walls.\n", " write_text: Boolean to write text for each component being drawn.\n", " \"\"\"\n", " scaled_size = scaling * world.size\n", "\n", " # Draw the outer walls.\n", " ax.hlines(0, 0, scaled_size)\n", " ax.hlines(scaled_size, 0, scaled_size)\n", " ax.vlines(scaled_size, 0, scaled_size)\n", " ax.vlines(0, 0, scaled_size)\n", "\n", " for wall_pair in world.walls:\n", " ax.plot(\n", " [p.x * scaling for p in wall_pair],\n", " [p.y * scaling for p in wall_pair],\n", " color='k')\n", "\n", " if draw_start_mu:\n", " # Draw the position of the start dist.\n", " x, y = [p * scaling for p in world.mu_start_position]\n", " ax.scatter([x], [y], marker='x', c=start_color)\n", " if write_text: ax.text(x, y, 'Starting position.')\n", "\n", " if draw_target_mu:\n", " # Draw the target position.\n", " x, y = [p * scaling for p in dataclasses.astuple(world._end_mu)]\n", " ax.scatter([x], [y], marker='x', c='k')\n", " if write_text: ax.text(x, y,'Target position.')\n", "\n", " if draw_agent:\n", " # Draw the position of the agent as a circle.\n", " x, y = [scaling * p for p in world.agent_position]\n", " agent_circle = plt.Circle((x, y), agent_size, color=agent_color)\n", " ax.add_artist(agent_circle)\n", " if write_text: ax.text(x, y, 'Agent position.')\n", "\n", " return ax\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "eSfUwRtoY_aN" }, "source": [ "# Affordance specification" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "IVTYi4YVZAfR" }, "outputs": [], "source": [ "#@title Intent detection and plotting code.\n", "\n", "IntentName = enum.IntEnum(\n", " 'IntentName', 'delta_pos_x delta_neg_x delta_pos_y delta_neg_y')\n", "\n", "class IntentStatus(enum.IntEnum):\n", " complete = 1\n", " incomplete = 0\n", "\n", "@dataclasses.dataclass(eq=False)\n", "class Intent:\n", " name: 'IntentName'\n", " status: 'IntentStatus'\n", "\n", "\n", "PointOrFloatTuple = Union[Point, Tuple[float, float]]\n", "\n", "def _get_intent_completed(\n", " s_t: PointOrFloatTuple,\n", " a_t: Force,\n", " s_tp1: PointOrFloatTuple,\n", " intent_name: IntentName,\n", " threshold: float = 0.0):\n", " r\"\"\"Determines if the intent was completed in the transition.\n", "\n", " The available intents are based on significant movement on the x-y plane:\n", "\n", " Intent is 1 if:\n", " `s_tp1.{{x,y}} - s_t.{{x,y}} {{\u003e,\u003c}} threshold`\n", " else: 0.\n", "\n", " Args:\n", " s_t: The current position of the agent.\n", " a_t: The force for the action.\n", " s_tp1: The position after executing action of the agent.\n", " intent_name: The intent that needs to be detected.\n", " threshold: The significance threshold for the intent to be detected.\n", " \"\"\"\n", " if not isinstance(s_t, Point):\n", " s_t = Point(*s_t)\n", " if not isinstance(s_tp1, Point):\n", " s_tp1 = Point(*s_tp1)\n", " IntentName(intent_name) # Check if valid intent_name.\n", "\n", " diff = s_tp1 - s_t # Find the positional difference.\n", "\n", " if intent_name == IntentName.delta_pos_x:\n", " if diff.x \u003e threshold:\n", " return IntentStatus.complete\n", " if intent_name == IntentName.delta_pos_y:\n", " if diff.y \u003e threshold:\n", " return IntentStatus.complete\n", " if intent_name == IntentName.delta_neg_x:\n", " if diff.x \u003c -threshold:\n", " return IntentStatus.complete\n", " if intent_name == IntentName.delta_neg_y:\n", " if diff.y \u003c -threshold:\n", " return IntentStatus.complete\n", "\n", " return IntentStatus.incomplete\n", "\n", "# Some simple test cases.\n", "assert not _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.0), IntentName.delta_neg_y)\n", "assert not _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.0), IntentName.delta_pos_y)\n", "assert _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.0), IntentName.delta_pos_x)\n", "assert not _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.0), IntentName.delta_neg_x)\n", "assert _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.5), IntentName.delta_pos_x)\n", "assert _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.5), IntentName.delta_pos_y)\n", "assert not _get_intent_completed(\n", " Point(0, 0), None, Point(0.5, 0.5), IntentName.delta_pos_y, 0.6)\n", "assert not _get_intent_completed(\n", " Point(0, 0), None, Point(-0.5, -0.5), IntentName.delta_neg_x, 0.6)\n" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "OtWqqse4Zutx" }, "outputs": [], "source": [ "#@title Data Collection code\n", "def get_transitions(\n", " world: ContinuousWorld,\n", " max_num_transitions: int = 500,\n", " max_trajectory_length: Optional[int] = None,\n", " policy: Optional[Callable[[np.ndarray], int]] = None,\n", " intent_threshold: float = 0.0):\n", " \"\"\"Samples transitions from an environment.\n", "\n", " Args:\n", " world: The environment to collect trajectories from.\n", " max_num_transitions: The total number of transitions to sample.\n", " max_trajectory_length: The maximum length of the trajectory. If None\n", " trajectories will naturally reset during episode end.\n", " policy: The data collection policy. If None is given a random policy\n", " is used. The policy must take a single argument, the one hot\n", " representation of the state. If using a tensorflow function make sure to\n", " handle batching within the policy itself.\n", " intent_threshold: The threshold to use for the intent.\n", "\n", " Returns:\n", " The transitions collected from the environment:\n", " This is a 4-tuple containing the batch of state, action, state' and intent\n", " target.\n", " Human Readable transitions:\n", " A set containing the unique transitions in the batch and if the intent was\n", " completed.\n", " Infos:\n", " A list containing the info dicts sampled during the batch.\n", " \"\"\"\n", " max_trajectory_length = max_trajectory_length or float('inf')\n", " trajectory = []\n", " s_t = world.reset()\n", " trajectory_length = 0\n", " human_readable = set()\n", " if policy is None:\n", " def policy(_):\n", " return world.get_random_force()\n", "\n", " infos = []\n", "\n", " for _ in range(max_num_transitions):\n", " action = policy(s_t)\n", " s_tp1, _, done, info = world.step(action)\n", " infos.append(info)\n", " reward = 0\n", "\n", " all_intents = []\n", " intent_status_only = []\n", " for intent_name in IntentName:\n", " intent_status = _get_intent_completed(\n", " s_t, action, s_tp1, intent_name, intent_threshold)\n", " all_intents.append((intent_name, intent_status))\n", " intent_status_only.append(intent_status)\n", "\n", " # Human readable vesion:\n", " human_readable.add((s_t, action, s_tp1, tuple(all_intents)))\n", "\n", " # Prepare things for tensorflow:\n", " s_t_tf = tf.constant(dataclasses.astuple(s_t), dtype=tf.float32)\n", " s_tp1_tf = tf.constant(dataclasses.astuple(s_tp1), dtype=tf.float32)\n", " a_t_tf = tf.constant(dataclasses.astuple(action), dtype=tf.float32)\n", " intent_statuses_tf = tf.constant(intent_status_only)\n", " trajectory.append((s_t_tf, a_t_tf, s_tp1_tf, reward, intent_statuses_tf))\n", "\n", " trajectory_length += 1\n", " if done or trajectory_length \u003e max_trajectory_length:\n", " s_t = world.reset()\n", " trajectory_length = 0\n", " else:\n", " s_t = s_tp1\n", "\n", " batch = list(map(tf.stack, zip(*trajectory)))\n", " return batch, human_readable, infos\n", "\n", "# Integration test.\n", "world = ContinuousWorld(\n", " size=2,\n", " drift_speed=0.1,\n", " max_action_force=2.0,\n", " max_episode_length=100)\n", "data, _, _ = get_transitions(world, max_num_transitions=2)\n", "assert data is not None" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "bvYwGLyubcpa" }, "outputs": [], "source": [ "#@title Probabilistic transition model\n", "\n", "hidden_nodes = 32\n", "input_size = 2\n", "\n", "class TransitionModel(tf.keras.Model):\n", " def __init__(self, hidden_nodes, output_size):\n", " super().__init__()\n", " self._net1 = tf.keras.layers.Dense(\n", " hidden_nodes, activation=tf.keras.activations.relu)\n", " self._net2 = tf.keras.layers.Dense(\n", " hidden_nodes, activation=tf.keras.activations.relu)\n", " # Multiply by 2 for means and variances.\n", " self._output = tf.keras.layers.Dense(2*output_size)\n", "\n", " def __call__(self, st, at):\n", " net_inputs = tf.concat((st, at), axis=1)\n", " means_logstd = self._output(self._net2(self._net1(net_inputs)))\n", " means, logstd = tf.split(means_logstd, 2, axis=1)\n", " std = tf.exp(logstd)\n", " return tfp.distributions.Normal(loc=means, scale=std)\n" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "5S6uqTVAdoKD" }, "outputs": [], "source": [ "#@title Training algorithm.\n", "\n", "MACHINE_EPSILON = np.finfo(float).eps.item()\n", "\n", "def train_networks(\n", " world: ContinuousWorld,\n", " model_network: Optional[tf.keras.Model] = None,\n", " model_optimizer: Optional[tf.keras.optimizers.Optimizer] = None,\n", " affordance_network: Optional[tf.keras.Model] = None,\n", " affordance_optimizer: Optional[tf.keras.optimizers.Optimizer] = None,\n", " use_affordance_to_mask_model: bool = False,\n", " affordance_mask_threshold: float = 0.9,\n", " num_train_steps: int =10,\n", " fresh_data: bool = True,\n", " max_num_transitions: int = 1,\n", " max_trajectory_length: Optional[int] = None,\n", " optimize_performance: bool = False,\n", " intent_threshold: float = 1.0,\n", " debug: bool = False,\n", " print_losses: bool = False,\n", " print_every: int = 10):\n", " \"\"\"Trains an affordance network.\n", "\n", " Args:\n", " world: The gridworld to collect training data from.\n", " model_network: The network for the transition model.\n", " model_optimizer: The optimizer for the transition model.\n", " affordance_network: The affordance network.\n", " affordance_optimizer: The optimizer for the affordance network.\n", " use_affordance_to_mask_model: Uses affordances to mask the losses of the\n", " transition model.\n", " affordance_mask_threshold: The threshold at which the mask should be\n", " applied.\n", " num_train_steps: The total number of training steps.\n", " fresh_data: Collect fresh data before every training step.\n", " max_num_transitions: The number of rollout trajectories per training step.\n", " max_trajectory_length: The maximum length of each trajectory. If None then\n", " there is no artifically truncated trajectory length.\n", " optimizer_performance: Use `tf.function` to speed up training steps.\n", " intent_threshold: The threshold to consider as a signficant completion of\n", " the intent.\n", " debug: Debug mode prints out the human readable transitions and disables\n", " tf.function.\n", " print_losses: Prints out the losses during training.\n", " print_every: Indicates how often things should be printed out.\n", " \"\"\"\n", " all_aff_losses = []\n", " all_model_losses = []\n", "\n", " # Error checking to make sure the correct combinations of model/affordance\n", " # nets and optimizers are given or none at all.\n", " if (affordance_network is None) != (affordance_optimizer is None):\n", " raise ValueError('Both affordance network and optimizer have to be given.')\n", " else:\n", " use_affordances = affordance_network is not None\n", "\n", " if (model_network is None) != (model_optimizer is None):\n", " raise ValueError('Both model network and optimizer have to be given.')\n", " else:\n", " use_model = model_network is not None\n", "\n", " # At least one of affordance network or model network must be specified.\n", " if model_network is None and (\n", " (model_network is None) == (affordance_network is None)):\n", " raise ValueError(\n", " 'This code does not do anything without models or affordances.')\n", "\n", " # Check if both are specified if use_affordance_to_mask_model is True.\n", " if use_affordance_to_mask_model and (\n", " model_network is None and affordance_network is None):\n", " raise ValueError(\n", " 'Cannot use_affordance_to_mask model if affordance and model networks'\n", " ' are not given!')\n", "\n", " # User friendly print outs indicate what is happening.\n", " print(\n", " f'Using model? {use_model}. Using affordances? {use_affordances}. Using'\n", " f' affordances to mask model? {use_affordance_to_mask_model}.')\n", "\n", " def _train_step_affordances(trajectory):\n", " \"\"\"Train affordance network.\"\"\"\n", " # Note: Please make sure you understand the shapes here before editing to\n", " # prevent accidental broadcast.\n", " with tf.GradientTape() as tape:\n", " s_t, a_t, _, _, intent_target = trajectory\n", " concat_input = tf.concat((s_t, a_t), axis=1)\n", " preds = affordance_network(concat_input)\n", "\n", " intent_target = tf.reshape(intent_target, (-1, 1))\n", " unshaped_preds = preds\n", " preds = tf.reshape(preds, (-1, 1))\n", "\n", " loss = tf.keras.losses.binary_crossentropy(intent_target, preds)\n", " total_loss = tf.reduce_mean(loss)\n", " grads = tape.gradient(total_loss, affordance_network.trainable_variables)\n", " affordance_optimizer.apply_gradients(\n", " zip(grads, affordance_network.trainable_variables))\n", "\n", " return total_loss, unshaped_preds\n", "\n", " def _train_step_model(trajectory, affordances):\n", " \"\"\"Train model network.\"\"\"\n", " with tf.GradientTape() as tape:\n", " s_t, a_t, s_tp1, _, _ = trajectory\n", " transition_model = model_network(s_t, a_t)\n", " log_prob = tf.reduce_sum(transition_model.log_prob(s_tp1), -1)\n", " num_examples = s_t.shape[0]\n", "\n", " if use_affordance_to_mask_model:\n", " # Check if at least one intent is affordable.\n", " masks_per_intent = tf.math.greater_equal(\n", " affordances, affordance_mask_threshold)\n", " masks_per_transition = tf.reduce_any(masks_per_intent, 1)\n", " # Explicit reshape to prevent accidental broadcasting.\n", " batch_size = len(s_t)\n", " log_prob = tf.reshape(log_prob, (batch_size, 1))\n", " masks_per_transition = tf.reshape(masks_per_transition, (batch_size, 1))\n", " log_prob = log_prob * tf.cast(masks_per_transition, dtype=tf.float32)\n", " # num_examples changes if there is masking so take that into account:\n", " num_examples = tf.reduce_sum(\n", " tf.cast(masks_per_transition, dtype=tf.float32))\n", " num_examples = tf.math.maximum(num_examples, tf.constant(1.0))\n", "\n", " # Negate log_prob here because we want to maximize this via minimization.\n", " total_loss = -tf.reduce_sum(log_prob) / num_examples\n", " grads = tape.gradient(total_loss, model_network.trainable_variables)\n", " model_optimizer.apply_gradients(\n", " zip(grads, model_network.trainable_variables))\n", "\n", " return total_loss\n", "\n", " # Optimize performance using tf.function.\n", " if optimize_performance and not debug:\n", " _train_step_affordances = tf.function(_train_step_affordances)\n", " _train_step_model = tf.function(_train_step_model)\n", " print('Training step has been optimized.')\n", "\n", " initial_data_collected = False\n", " infos = []\n", " for i in range(num_train_steps):\n", " # Step 1: Collect data.\n", " if not initial_data_collected or fresh_data:\n", " initial_data_collected = True\n", " running_time = time.time()\n", " trajectories, unique_transitions, infos_i = get_transitions(\n", " world,\n", " max_num_transitions=max_num_transitions,\n", " max_trajectory_length=max_trajectory_length,\n", " intent_threshold=intent_threshold)\n", " collection_running_time = time.time() - running_time\n", " if debug: print('unique_transitions:', unique_transitions)\n", " running_time = time.time()\n", "\n", " # Check if the start state was updated:\n", " infos.append(\n", " any([info['recent_start_position_updated'] for info in infos_i]))\n", "\n", " # Step 2: Train affordance model.\n", " if use_affordances:\n", " aff_loss, affordance_predictions = _train_step_affordances(trajectories)\n", " aff_loss = aff_loss.numpy().item()\n", " else:\n", " affordance_predictions = tf.constant(0.0) # Basically a none.\n", " aff_loss = None\n", " all_aff_losses.append(aff_loss)\n", "\n", " # Step 3: Train transition model and mask predictions if necessary.\n", " if use_model:\n", " model_loss = _train_step_model(trajectories, affordance_predictions)\n", " model_loss = model_loss.numpy().item()\n", " else:\n", " model_loss = None\n", " all_model_losses.append(model_loss)\n", "\n", " if debug or print_losses:\n", " if i % print_every == 0:\n", " train_loop_time = time.time() - running_time\n", " print(f'i: {i}, aff_loss: {aff_loss}, model_loss: {model_loss}, '\n", " f'collection_loop_time: {collection_running_time:.2f}, '\n", " f'train_loop_time: {train_loop_time:.2f}')\n", "\n", " return all_model_losses, all_aff_losses, infos" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "6hXi7Iy0b50_" }, "source": [ "# Plotting utilities" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "gMNIsCLEb3Ie" }, "outputs": [], "source": [ "#@title Learning curve smoothing\n", "# From https://github.com/google-research/policy-learning-landscape/blob/master/analysis_tools/data_processing.py#L82\n", "\n", "DEFAULT_SMOOTHING_WEIGHT = 0.9\n", "def apply_linear_smoothing(data, smoothing_weight=DEFAULT_SMOOTHING_WEIGHT):\n", " \"\"\"Smooth curves using a exponential linear weight.\n", "\n", " This smoothing algorithm is the same as the one used in tensorboard.\n", "\n", " Args:\n", " data: The sequence or list containing the data to smooth.\n", " smoothing_weight: A float representing the weight to place on the moving\n", " average.\n", "\n", " Returns:\n", " A list containing the smoothed data.\n", " \"\"\"\n", " if len(data) == 0: # pylint: disable=g-explicit-length-test\n", " raise ValueError('No data to smooth.') \n", " if smoothing_weight \u003c= 0:\n", " return data\n", " last = data[0]\n", " smooth_data = []\n", " for x in data:\n", " if not np.isfinite(last):\n", " smooth_data.append(x)\n", " else:\n", " smooth_data.append(last * smoothing_weight + (1 - smoothing_weight) * x)\n", " last = smooth_data[-1]\n", " return smooth_data\n" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "T5cvk1XUb-M0" }, "outputs": [], "source": [ "#@title Intent plotting code.\n", "\n", "def plot_intents(\n", " world: ContinuousWorld,\n", " affordance_predictions: np.ndarray,\n", " eval_action: Tuple[float, float],\n", " num_world_ticks: int = 3,\n", " intent_collection: IntentName = IntentName,\n", " subplot_configuration: Tuple[int, int] = (2, 2),\n", " figsize: Tuple[int, int] = (5, 5)):\n", " \"\"\"Plots the intents as a heatmap.\n", "\n", " Given the predictions from the affordance network, we plot a heatmap for each\n", " intent indicating how likely the `eval_action` can be used to complete it.\n", "\n", " Args:\n", " world: The gridworld to use.\n", " affordance_predictions: Predictions from the affordance classifier. The last\n", " dimension should be of the same len as intent_collection.\n", " eval_action: The eval action being used (For plotting the title).\n", " num_world_ticks: The number of ticks on the axes of the world.\n", " subplot_configuration: The arrangement of the subplots on the plot.\n", " figsize: The size of the matplotlib figure.\n", " \"\"\"\n", " fig = plt.figure(figsize=figsize)\n", "\n", " # Since we are predicting probabilities, normalize between 0 and 1.\n", " norm = mpl.colors.Normalize(vmin=0.0, vmax=1.0)\n", "\n", " # The colorbar axes.\n", " cax = fig.add_axes([1.0, 0.1, 0.075, 0.8])\n", "\n", " for intent in intent_collection:\n", " ax = fig.add_subplot(*subplot_configuration, intent)\n", " afford_sliced = affordance_predictions[:, :, intent-1]\n", " afford_sliced = np.transpose(afford_sliced)\n", " ax_ = ax.imshow(afford_sliced, origin='lower')\n", "\n", " # This code will handle num_world_ticks=0 gracefully.\n", " ax.set_xticks(np.linspace(0, afford_sliced.shape[0], num_world_ticks))\n", " ax.set_yticks(np.linspace(0, afford_sliced.shape[0], num_world_ticks))\n", " ax.set_xticklabels(\n", " np.linspace(0, world.size, num_world_ticks), fontsize='x-small')\n", " ax.set_yticklabels(\n", " np.linspace(0, world.size, num_world_ticks), fontsize='x-small')\n", "\n", " ax.set_xlabel('x')\n", " ax.set_ylabel('y', rotation=0)\n", " plt.title('Intent: {}'.format(intent.__repr__()[-10:-2]))\n", " ax_.set_norm(norm)\n", " if intent == len(intent_collection):\n", " plt.colorbar(ax_, cax)\n", " cax.set_ylabel('Probability of intent completion')\n", "\n", " plt.suptitle('Evaluating Action: {}'.format(eval_action))\n", " plt.tight_layout(rect=[0, 0.03, 1, 0.95])" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "pHarhdiSdixz" }, "source": [ "# Main Experiment (Training)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "Zq9TXAyDfaP_" }, "outputs": [], "source": [ "# Storing the losses and models in a global list.\n", "all_losses_global = []\n", "all_models_global = []\n", "all_affordance_global = []" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "id": "OP50CV_YdkLi", "outputId": "58a4677b-5dcf-4015-d795-2e7a4b9384fc" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Experiments that will be run: [False, True]\n", "Resetting seed to 0.\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "Using model? True. Using affordances? False. Using affordances to mask model? False.\n", "Training step has been optimized.\n", "Target mu has been updated to: Point(x=1.5, y=1.5)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:107: RuntimeWarning: invalid value encountered in double_scalars\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "i: 0, aff_loss: None, model_loss: 3.079850912094116, collection_loop_time: 0.20, train_loop_time: 0.28\n", "i: 1000, aff_loss: None, model_loss: -1.3993345499038696, collection_loop_time: 0.17, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "i: 2000, aff_loss: None, model_loss: -1.4746335744857788, collection_loop_time: 0.17, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=1.5, y=1.5)\n", "i: 3000, aff_loss: None, model_loss: -1.926070213317871, collection_loop_time: 0.29, train_loop_time: 0.00\n", "i: 4000, aff_loss: None, model_loss: -2.129803419113159, collection_loop_time: 0.17, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "i: 5000, aff_loss: None, model_loss: -2.212693452835083, collection_loop_time: 0.18, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=1.5, y=1.5)\n", "i: 6000, aff_loss: None, model_loss: -2.104724168777466, collection_loop_time: 0.18, train_loop_time: 0.00\n", "i: 7000, aff_loss: None, model_loss: -2.153459310531616, collection_loop_time: 0.19, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "Resetting seed to 0.\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "Using model? True. Using affordances? True. Using affordances to mask model? True.\n", "Training step has been optimized.\n", "Target mu has been updated to: Point(x=1.5, y=1.5)\n", "i: 0, aff_loss: 0.7048008441925049, model_loss: 3.4398090839385986, collection_loop_time: 0.17, train_loop_time: 0.66\n", "i: 1000, aff_loss: 0.19042730331420898, model_loss: -1.7565302848815918, collection_loop_time: 0.19, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "i: 2000, aff_loss: 0.23882852494716644, model_loss: -1.7699742317199707, collection_loop_time: 0.18, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=1.5, y=1.5)\n", "i: 3000, aff_loss: 0.207383394241333, model_loss: -1.983075737953186, collection_loop_time: 0.17, train_loop_time: 0.00\n", "i: 4000, aff_loss: 0.1946447789669037, model_loss: -2.051856517791748, collection_loop_time: 0.19, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n", "i: 5000, aff_loss: 0.21516098082065582, model_loss: -1.9648913145065308, collection_loop_time: 0.17, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=1.5, y=1.5)\n", "i: 6000, aff_loss: 0.20555077493190765, model_loss: -1.8827911615371704, collection_loop_time: 0.18, train_loop_time: 0.00\n", "i: 7000, aff_loss: 0.17789226770401, model_loss: -2.0646157264709473, collection_loop_time: 0.28, train_loop_time: 0.00\n", "Target mu has been updated to: Point(x=0.5, y=0.5)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 360x360 with 1 Axes\u003e" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 360x360 with 1 Axes\u003e" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Train affordance and transition model.\n", "# Trains num_repeats affordance and model networks.\n", "#@markdown Experiments to run.\n", "run_model = True #@param {type:\"boolean\"}\n", "run_model_with_affordances = True #@param {type:\"boolean\"}\n", "num_repeats = 1#@param {type:\"integer\"}\n", "\n", "#@markdown Training arguments\n", "# use_affordance_to_mask_model = True #@param {type:\"boolean\"}\n", "optimize_performance = True #@param {type:\"boolean\"}\n", "model_learning_rate = 1e-2 #@param {type:\"number\"}\n", "affordance_learning_rate = 1e-1 #@param {type:\"number\"}\n", "max_num_transitions = 1000 #@param {type:\"integer\"}\n", "num_train_steps = 8000 #@param {type:\"integer\"}\n", "affordance_mask_threshold = 0.5 #@param {type:\"number\"}\n", "seed = 0 #@param {type:\"integer\"}\n", "intent_threshold = 0.05 #@param {type:\"number\"}\n", "\n", "#@markdown Environment arguments\n", "drift_speed = 0.001 #@param {type:\"number\"}\n", "max_action_force = 0.5 #@param {type:\"number\"}\n", "movement_noise = 0.1 #@param {type:\"number\"}\n", "max_episode_length = 100000 #@param {type:\"integer\"}\n", "\n", "input_size = 2\n", "action_size = 2\n", "intent_size = len(IntentName)\n", "hidden_nodes = 32\n", "world_size = 2\n", "\n", "affordance_mask_params = []\n", "if run_model:\n", " affordance_mask_params.append(False)\n", "if run_model_with_affordances:\n", " affordance_mask_params.append(True)\n", "\n", "print(f'Experiments that will be run: {affordance_mask_params}')\n", "\n", "for repeat_number in range(num_repeats):\n", " all_losses = {}\n", " model_networks = {}\n", " affordance_networks = {}\n", " new_seed = seed + repeat_number\n", " for use_affordance_to_mask_model in affordance_mask_params:\n", " print(f'Resetting seed to {new_seed}.')\n", " np.random.seed(new_seed)\n", " random.seed(new_seed)\n", " tf.random.set_seed(new_seed)\n", "\n", " affordance_network = tf.keras.Sequential([\n", " tf.keras.layers.Dense(\n", " hidden_nodes, activation=tf.keras.activations.relu),\n", " tf.keras.layers.Dense(\n", " hidden_nodes, activation=tf.keras.activations.relu),\n", " tf.keras.layers.Dense(\n", " intent_size, activation=tf.keras.activations.sigmoid),\n", " ])\n", "\n", " affordance_sgd = tf.keras.optimizers.Adam(\n", " learning_rate=affordance_learning_rate)\n", " model_sgd = tf.keras.optimizers.Adam(learning_rate=model_learning_rate)\n", " model_network = TransitionModel(hidden_nodes, input_size)\n", "\n", " # Store models for later use.\n", " model_networks[use_affordance_to_mask_model] = model_network\n", " affordance_networks[use_affordance_to_mask_model] = affordance_network\n", "\n", " world = ContinuousWorld(\n", " size=world_size,\n", " # Slow drift speed to make the transition from L -\u003e R slow.\n", " drift_speed=drift_speed,\n", " drift_between=(\n", " # Drift between the two sides around the wall.\n", " Point((1 / 4) * world_size, (1 / 4) * world_size),\n", " Point((3 / 4) * world_size, (3 / 4) * world_size),\n", " ),\n", " max_action_force=max_action_force,\n", " max_episode_length=max_episode_length,\n", " movement_noise=movement_noise,\n", " wall_pairs=[\n", " (Point(1.0, 0.0), Point(1.0, 2.0)),\n", " ],\n", " verbose_reset=True)\n", "\n", " fig = plt.figure(figsize=(5, 5))\n", " ax = fig.add_subplot(1, 1, 1)\n", "\n", " visualize_environment(\n", " world, ax, scaling=1.0, draw_start_mu=False, draw_target_mu=False)\n", "\n", " def _use_affordance_or_none(model):\n", " if use_affordance_to_mask_model:\n", " return model\n", " else:\n", " return None\n", "\n", " model_loss, aff_loss, infos = train_networks(\n", " world,\n", " model_network=model_network,\n", " model_optimizer=model_sgd,\n", " affordance_network=_use_affordance_or_none(affordance_network),\n", " affordance_optimizer=_use_affordance_or_none(affordance_sgd),\n", " print_losses=True,\n", " fresh_data=True,\n", " affordance_mask_threshold=affordance_mask_threshold,\n", " use_affordance_to_mask_model=use_affordance_to_mask_model,\n", " max_num_transitions=max_num_transitions,\n", " max_trajectory_length=None,\n", " optimize_performance=optimize_performance,\n", " num_train_steps=num_train_steps,\n", " intent_threshold=intent_threshold,\n", " print_every=1000)\n", "\n", " all_losses[use_affordance_to_mask_model] = (model_loss, aff_loss, infos)\n", "\n", " all_models_global.append(model_networks)\n", " all_affordance_global.append(affordance_networks)\n", " all_losses_global.append(all_losses)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "90KLuKumiRcB" }, "outputs": [], "source": [ "#@title Save weights\n", "\n", "for seed, model_networks in enumerate(all_models_global):\n", " model_networks[True].save_weights(\n", " f'./affordances/seed_{seed}_model_networks_True/keras.weights')\n", " model_networks[False].save_weights(\n", " f'./affordances/seed_{seed}_model_networks_False/keras.weights')\n", "for seed, affordance_networks in enumerate(all_models_global):\n", " affordance_networks[True].save_weights(\n", " f'./affordances/seed_{seed}_affordance_networks_true/keras.weights')\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "g1iO3h6Ffucu" }, "source": [ "# Visualizations\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "OQtxS_ovhJxt" }, "source": [ "## Learning curves" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "06NPUpXDfyFf" }, "outputs": [], "source": [ "#@title Code to collect results from a list of lists into a single array.\n", "def _collect_results(\n", " all_losses_g,\n", " using_affordances,\n", " save_to_disk=False,\n", " smooth_weight=0.99,\n", " skip_first=10):\n", " \"\"\"Collects results from the list of losses.\"\"\"\n", " smoothed_curves = []\n", " for seed, trace in enumerate(all_losses_g):\n", " if save_to_disk:\n", " np.save(f'./affordances/curve_seed_{seed}_{using_affordances}.npy',\n", " np.array(trace[using_affordances][0]))\n", " # Smooth the curves for plotting.\n", " smoothed_curves.append(\n", " apply_linear_smoothing(\n", " trace[using_affordances][0][skip_first:], smooth_weight))\n", " all_curves_stacked = np.stack(smoothed_curves)\n", " mean_curve = np.mean(all_curves_stacked, 0)\n", " std_curve = np.std(all_curves_stacked, 0)\n", " return mean_curve, std_curve" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "R4elUiamgc-I" }, "outputs": [], "source": [ "#@title Plot averaged learning curves.\n", "\n", "mean_curve_aff, std_curve_aff = _collect_results(\n", " all_losses_global, True)\n", "mean_curve_normal, std_curve_normal = _collect_results(\n", " all_losses_global, False)\n", "colors = ['r', 'k']\n", "plt.plot(\n", " mean_curve_aff, color=colors[0], linewidth=4, label='With Affordance')\n", "plt.plot(\n", " mean_curve_normal, color=colors[1], linewidth=4, label='without Affordance')\n", "\n", "plt.fill_between(\n", " range(len(mean_curve_aff)),\n", " mean_curve_aff+std_curve_aff,\n", " mean_curve_aff-std_curve_aff,\n", " alpha=0.25,\n", " color=colors[0])\n", "\n", "\n", "plt.fill_between(\n", " range(len(mean_curve_normal)),\n", " mean_curve_normal+std_curve_normal/np.sqrt(num_repeats),\n", " mean_curve_normal-std_curve_normal/np.sqrt(num_repeats),\n", " alpha=0.25,\n", " color=colors[1])\n", "\n", "plt.ylim([-2.2, -1.2])\n", "plt.xticks(fontsize=15)\n", "plt.yticks(fontsize=15)\n", "plt.xticks([0, 2500, 5000, 7500],[0, 2500, 5000, 7500], fontsize=15)\n", "plt.legend(fontsize=15)\n", "plt.xlabel('Updates', fontsize=20)\n", "plt.ylabel(r'$-\\log \\hat{P}(s^\\prime|s,a)$',fontsize=20)\n", "plt.tight_layout()\n", "plt.savefig('./affordances/model_learning_avg_plot.pdf')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "OSAm0ukchLqr" }, "source": [ "## Intent heatmap plots" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 399 }, "colab_type": "code", "id": "1NeTHiZkhXKj", "outputId": "2428756a-8685-4312-f3f3-1bf4be01188b" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:56: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 360x360 with 5 Axes\u003e" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Evaluating action and plotting intent heatmaps.\n", "#@markdown What is the action?\n", "action_x_dir = 0.2 #@param {type:\"number\"}\n", "action_y_dir = 0.2 #@param {type:\"number\"}\n", "network_seed = 0 #@param {type:\"integer\"}\n", "\n", "# Cover the x-y grid.\n", "xs = np.linspace(0, world.size)\n", "ys = np.linspace(0, world.size)\n", "xy_coords = tf.constant(list(itertools.product(xs, ys)), dtype=tf.float32)\n", "\n", "eval_action = [action_x_dir, action_y_dir]\n", "fixed_action = tf.constant([eval_action], dtype=tf.float32)\n", "fixed_action = tf.repeat(fixed_action, 2500, axis=0)\n", "\n", "concat_matrix = tf.concat((xy_coords, fixed_action), axis=1)\n", "affordance_network = all_affordance_global[network_seed][True]\n", "afford_predictions = affordance_network(concat_matrix)\n", "affordance_predictions = tf.reshape(\n", " afford_predictions,\n", " (len(xs), len(ys), intent_size)).numpy()\n", "\n", "plot_intents(world, affordance_predictions, eval_action)\n", "\n", "plt.savefig(\n", " f'intent_eval_FX{action_x_dir}_FY{action_y_dir}.pdf', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mOK_e3oqhrjI" }, "source": [ "## Model Predictions" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "61Gb_tXKh3je" }, "outputs": [], "source": [ "#@title Round annotation plotting code.\n", "ROUND_BOX = dict(boxstyle='round', facecolor='wheat', alpha=1.0)\n", "\n", "def add_annotation(\n", " ax,\n", " start: Tuple[float, float],\n", " end: Tuple[float, float],\n", " connectionstyle, text):\n", " x1, y1 = start\n", " x2, y2 = end\n", "\n", " # ax.plot([x1, x2], [y1, y2], \".\")\n", " ax.annotate(\n", " \"\",\n", " xy=(x1, y1),\n", " xycoords='data',\n", " xytext=(x2 + 0.25, y2),\n", " textcoords='data',\n", " size=30.0,\n", " arrowprops=dict(arrowstyle=\"-\u003e\", color=\"0.0\",\n", " shrinkA=5, shrinkB=5,\n", " patchA=None, patchB=None,\n", " connectionstyle=connectionstyle,),)\n", "\n", " ax.text(*end, text, size=15,\n", " #transform=ax.transAxes,\n", " ha=\"left\", va=\"top\", bbox=ROUND_BOX)\n", "\n", "connection_styles = [\n", " \"arc3,rad=-0.3\",\n", " \"arc3,rad=0.3\",\n", " \"arc3,rad=0.0\",\n", " \"arc3,rad=0.5\",\n", " \"arc3,rad=-0.5\"\n", "]" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "both", "colab": { "base_uri": "https://localhost:8080/", "height": 689 }, "colab_type": "code", "id": "ILHEEbHShwCb", "outputId": "9bac0134-d9d1-46da-9283-975ede52250e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Figures show the predicted position of the transition distribution.\n", "Gray circle shows what would have been predicted but was masked by affordance model. \n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 360x360 with 1 Axes\u003e" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 360x360 with 1 Axes\u003e" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Plotting Model predictions.\n", "\n", "#@markdown Use affordance based model?\n", "affordance_mask_threshold = 0.5 #@param {type:\"number\"}\n", "network_seed = 0 #@param {type:\"integer\"}\n", "\n", "#@markdown What is the action?\n", "action_x_dir = +0.5 #@param {type:\"number\"}\n", "action_y_dir = 0.0 #@param {type:\"number\"}\n", "\n", "#@markdown Where is the agent?\n", "agent_x = 0.75 #@param {type:\"number\"}\n", "agent_y = 1.0 #@param {type:\"number\"}\n", "\n", "action = tf.constant([[action_x_dir, action_y_dir]])\n", "pos = tf.constant([[agent_x, agent_y]])\n", "\n", "affordance_networks = all_affordance_global[network_seed]\n", "model_networks = all_models_global[network_seed]\n", "\n", "scale_scale = 2.0\n", "\n", "for i, use_affordance_to_mask_model in enumerate([False, True]):\n", " fig = plt.figure(figsize=(5, 5))\n", " ax = fig.add_subplot(1, 1, 1)\n", " transition_dist = model_networks[use_affordance_to_mask_model](pos, action)\n", " transition_loc = tuple(transition_dist.loc[0].numpy())\n", " transition_scale = tuple(transition_dist.scale[0].numpy() * scale_scale)\n", "\n", " if use_affordance_to_mask_model:\n", " aff_network = affordance_networks[use_affordance_to_mask_model]\n", " AF = aff_network(tf.concat([pos, action], axis=1))\n", " intents_completable = (AF \u003e affordance_mask_threshold)[0].numpy()\n", "\n", " visualize_environment(\n", " world,\n", " ax,\n", " scaling=1.0,\n", " draw_start_mu=False,\n", " draw_target_mu=False,\n", " draw_agent=False,\n", " agent_size=0.1,\n", " write_text=False)\n", " ax.scatter([agent_x], [agent_y], s=150.0, c='green', marker='x')\n", " ax.arrow(agent_x, agent_y, action_x_dir, action_y_dir, head_width=0.05)\n", "\n", " if use_affordance_to_mask_model and not np.any(intents_completable):\n", " color = 'gray'\n", " alpha = 0.25\n", " ellipse_text = '(Masked) '\n", " else:\n", " color = None\n", " alpha = 0.7\n", " ellipse_text = ''\n", "\n", " elipse = mpl.patches.Ellipse(\n", " transition_loc, *transition_scale, alpha=alpha, color=color)\n", " ax.add_artist(elipse)\n", "\n", " if use_affordance_to_mask_model:\n", " string_built = ' Intent classificaiton\\n'\n", " for a in list(zip(IntentName, intents_completable)):\n", " string_built += ' ' + str(a[0])[-5:] + ':' + str(a[1])\n", " string_built += '\\n'\n", " ax.text(\n", " 0,\n", " 0,\n", " string_built,\n", " )\n", "\n", " ax.set_xticks([0.0, 1.0, 2.0])\n", " ax.set_xticklabels([0, 1.0, 2.0])\n", "\n", " ax.set_yticks([0.0, 1.0, 2.0])\n", " ax.set_yticklabels([0, 1.0, 2.0])\n", "\n", " if use_affordance_to_mask_model:\n", " title = 'Using affordances'\n", " else:\n", " title = 'Without affordances'\n", " ax.set_title(title)\n", " ax.legend([elipse], [ellipse_text + 'Predicted transition'])\n", " file_name = (f'./empirical_demo{movement_noise}_P{agent_x}_{agent_y}_'\n", " f'F{action_x_dir}_{action_x_dir}.pdf')\n", " fig.savefig(file_name)\n", "\n", "print(\n", " 'Figures show the predicted position of the transition distribution.'\n", " '\\nGray circle shows what would have been predicted but was masked by '\n", " 'affordance model. ')" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "5GHbTbNClfL-" }, "outputs": [], "source": [ "" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "AffordancesInContinuousEnvironment.ipynb", "provenance": [ { "file_id": "1W86NFSHwhnx-UEmAY_mhJJzUxPXY3JC4", "timestamp": 1591715576521 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: affordances_theory/AffordancesInDiscreteEnvironment.ipynb ================================================ { "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "AffordancesInDiscreteEnvironment.ipynb", "provenance": [], "collapsed_sections": [], "toc_visible": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "AXY3q8CdsGAR", "colab_type": "text" }, "source": [ "Copyright 2020 The \"What Can I do Here? A Theory of Affordances In Reinforcement Learning\" Authors. All rights reserved.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "code", "metadata": { "id": "lJB5fq1g81z2", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 343 }, "outputId": "83ca2438-9624-4a09-c936-3457a1b1ab9c" }, "source": [ "#@title Click to Install and import libraries.\n", "# Please follow the instructions in the README for dependencies installation.\n", "!git clone https://github.com/kkhetarpal/emdp.git\n", "%cd emdp/\n", "!pip install -e .\n", "!pip install matplotlib==3.0.2\n", "\n", "#@title General Imports\n", "%tensorflow_version 2.x\n", "from collections import defaultdict\n", "import enum\n", "import functools\n", "import os\n", "import random\n", "import sys\n", "import time\n", "from datetime import datetime\n", "\n", "import emdp\n", "from emdp import actions\n", "from emdp.gridworld import GridWorldPlotter\n", "from emdp.gridworld import build_simple_grid\n", "from emdp.gridworld.builder_tools import TransitionMatrixBuilder\n", "from emdp.gridworld.env import GridWorldMDP\n", "from emdp.gridworld.helper_utilities import get_state_after_executing_action\n", "from emdp.gridworld.helper_utilities import check_can_take_action\n", "from emdp.gridworld.helper_utilities import get_possible_actions\n", "from emdp.gridworld.helper_utilities import get_state_after_executing_action\n", "from emdp.gridworld.txt_utilities import get_char_matrix\n", "from emdp.gridworld.txt_utilities import build_gridworld_from_char_matrix\n", "from emdp.examples.simple import build_four_rooms_example\n", "from emdp.utils import convert_int_rep_to_onehot, convert_onehot_to_int\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import matplotlib.animation as animation\n", "import numpy as np\n", "from numpy.linalg import inv\n", "\n", "import seaborn as sns\n", "import tensorflow as tf\n", "\n", "color_ls = [[102, 120, 173],\n", " [118, 167, 125], \n", " [198, 113, 113], \n", " [230, 169, 132],\n", " [169, 193, 213],\n", " [192, 197, 182],\n", " [210, 180, 226]]\n", "colors = [[shade / 255.0 for shade in rgb] for rgb in color_ls]\n", "markers = ['o', 's', 'D', '^', '*', 'x', 'p', '+', 'v','|']\n", "\n", "DEFAULT_ARROW_COLOR = '#a65628'" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "fatal: destination path 'emdp' already exists and is not an empty directory.\n", "/content/emdp\n", "Obtaining file:///content/emdp\n", "Requirement already satisfied: numpy>=1.9.1 in /usr/local/lib/python3.6/dist-packages (from emdp==0.0.4) (1.18.5)\n", "Installing collected packages: emdp\n", " Found existing installation: emdp 0.0.4\n", " Can't uninstall 'emdp'. No files were found to uninstall.\n", " Running setup.py develop for emdp\n", "Successfully installed emdp\n", "Requirement already satisfied: matplotlib==3.0.2 in /usr/local/lib/python3.6/dist-packages (3.0.2)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib==3.0.2) (0.10.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib==3.0.2) (1.2.0)\n", "Requirement already satisfied: numpy>=1.10.0 in /usr/local/lib/python3.6/dist-packages (from matplotlib==3.0.2) (1.18.5)\n", "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib==3.0.2) (2.8.1)\n", "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib==3.0.2) (2.4.7)\n", "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from cycler>=0.10->matplotlib==3.0.2) (1.12.0)\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n", " import pandas.util.testing as tm\n" ], "name": "stderr" } ] }, { "cell_type": "markdown", "metadata": { "id": "gDpLK58xElDQ", "colab_type": "text" }, "source": [ "# Helper functions" ] }, { "cell_type": "code", "metadata": { "id": "Y6_lV_vUIhs3", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Plotting and verifying matrices.\n", "def plot_environment(\n", " mdp, ax, wall_locs=None, plot_grid=False,\n", " grid_kwargs=None,\n", " wall_color=(0, 0, 0, 1), # R, G, B, alpha\n", " ):\n", " \"\"\"Function to plot emdp environment\n", "\n", " Args:\n", " mdp: The MDP to use.\n", " ax: The axes to plot this on.\n", " wall_locs: Locations of the walls for plotting them in a different color.\n", " plot_grid: Boolean indicating if the overlay grid should be plotted.\n", " grid_kwargs: Grid keyword argrument specification.\n", " wall_color: RGB color of the walls.\n", "\n", " Returns:\n", " ax: The axes of the final plot.\n", " imshow_ax: The final plot.\n", " \"\"\"\n", " grid_kwargs = grid_kwargs or {}\n", "\n", " # Plot states with white background.\n", " state_background = np.ones((mdp.size, mdp.size))\n", "\n", " # Walls appear in a different color.\n", " wall_img = np.ones((mdp.size, mdp.size, 4))\n", " if wall_locs is not None:\n", " for state in wall_locs:\n", " y_coord = state[0]\n", " x_coord = state[1]\n", " wall_img[y_coord, x_coord, :] = np.array(wall_color)\n", "\n", " # Render the heatmap and overlay the walls.\n", " imshow_ax = ax.imshow(state_background, interpolation=None)\n", " imshow_ax = ax.imshow(wall_img, interpolation=None)\n", " ax.grid(False)\n", " \n", " # Switch on flag if you want to plot grid \n", " if plot_grid:\n", " for i in range(mdp.size + 1):\n", " ax.plot(\n", " np.arange(mdp.size + 1) - 0.5,\n", " np.ones(mdp.size + 1) * i - 0.5,\n", " **grid_kwargs)\n", "\n", " for i in range(mdp.size + 1):\n", " ax.plot(\n", " np.ones(mdp.size + 1) * i - 0.5,\n", " np.arange(mdp.size + 1) - 0.5,\n", " **grid_kwargs)\n", " ax.set_xlabel('x')\n", " ax.set_ylabel('y')\n", "\n", " return ax, imshow_ax\n", "\n", "\n", "def get_current_state_integer(state_):\n", " return np.argmax(state_, axis=0)\n", "\n", "\n", "def get_stateid(x, y, size):\n", " \"\"\"Converts an (x, y) coordinate into the state id.\"\"\"\n", " return size * x + y\n", "\n", "\n", "def _is_absorbing(state_int, mdp_size):\n", " \"\"\"Checks if the state_int is an absorbing state\"\"\"\n", " return state_int == mdp_size * mdp_size\n", "\n", "\n", "def _checking_P(P):\n", " \"\"\"Checks if the P matrix is valid.\"\"\"\n", " assert np.all(P <= 1.0) and np.all(P >= 0.0)\n", " assert not np.allclose(P, 1.0)\n", " assert not np.allclose(P, 0.0)\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "I9SJJN8aTuKL", "colab_type": "text" }, "source": [ "## Grid World Environment" ] }, { "cell_type": "code", "metadata": { "id": "bmdjTf1-Dd4a", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 332 }, "outputId": "8df6e3ee-a090-4a96-8f42-96e31bdfeed5" }, "source": [ "#@title Create the one room example.\n", "_ONE_ROOM_TXT = \"\"\"#############\n", "# #\n", "# g #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# ####### #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "#############\"\"\".split('\\n')\n", "\n", "\n", "def build_one_room_example(gamma=0.99, seed=2017, p_success=1.0):\n", " char_matrix = get_char_matrix(_ONE_ROOM_TXT)\n", " return build_gridworld_from_char_matrix(\n", " char_matrix, p_success=p_success, seed=seed, gamma=gamma)\n", "\n", "\n", "mdp, mdp_wall_locs = build_one_room_example()\n", "\n", "gwp = GridWorldPlotter.from_mdp(mdp)\n", "\n", "fig = plt.figure(figsize=(10, 4))\n", "ax = fig.add_subplot(121)\n", "\n", "plot_environment(mdp, ax, wall_locs=mdp_wall_locs, plot_grid=True, \n", " grid_kwargs={'color':(220 / 255, 220 / 255, 220 / 255, 0.8)})\n" ], "execution_count": 48, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(,\n", " )" ] }, "metadata": { "tags": [] }, "execution_count": 48 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "zui4ITyyAjFY", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "# @title Functions for building transition matrices and affordance grids.\n", "\n", "def build_simple_grid_stochastic_states(\n", " size=5, terminal_states=[], p_success=1):\n", " \"\"\"\n", " Builds a simple grid where an agent can move LEFT, RIGHT, UP or DOWN\n", " and actions success with probability p_success.\n", " A terminal state is added if len(terminal_states) > 0 and will return matrix\n", " of size (|S|+1)x|A|x(|S|+1). Moving into walls does nothing.\n", "\n", " Note that this is a function modified from emdp package to customise mdp\n", " transitions.\n", "\n", " Args:\n", " size: size of the grid world\n", " terminal_state: the location of terminal states: a list of (x, y) tuples\n", " p_success: the probabilty that an action will be successful.\n", "\n", " Returns:\n", " P: transition matrix of size (|S|+1)x|A|x(|S|+1).\n", " \"\"\"\n", " n_actions = 4\n", " p_fail = 1 - p_success\n", "\n", " n_states = size * size\n", " # The number of entries in the state vector corresponding to grid itself.\n", " grid_states = n_states\n", " # Add an entry to state vector for terminal state.\n", " if len(terminal_states) > 0:\n", " n_states += 1\n", " terminal_states = list(\n", " map(lambda tupl: int(size * tupl[0] + tupl[1]), terminal_states))\n", "\n", " # this helper function creates the state transition list for\n", " # taking an action in a state\n", " def create_state_list_for_action(state_idx, action, p_success):\n", " p_success = p_success\n", " p_fail = 1 - p_success\n", " transition_probs = np.zeros(n_states)\n", " if state_idx in terminal_states:\n", " # no matter what action you take you should go to the absorbing state\n", " transition_probs[-1] = 1\n", " elif state_idx == n_states - 1 and len(terminal_states) > 0:\n", " # absorbing state, you should just transition back here whatever action you take.\n", " transition_probs[-1] = 1\n", "\n", " elif action in [actions.LEFT, actions.RIGHT, actions.UP, actions.DOWN]:\n", " # valid action, now see if we can actually execute this action\n", " # in this state:\n", " # TODO: distinguish between capability of slipping and taking wrong action vs failing to execute action.\n", " if check_can_take_action(action, state_idx, size):\n", " # yes we can\n", " possible_actions = get_possible_actions(state_idx, size)\n", " if action in possible_actions:\n", " transition_probs[get_state_after_executing_action(\n", " action, state_idx, size)] = p_success\n", " possible_actions.remove(action)\n", " for other_action in possible_actions:\n", " transition_probs[get_state_after_executing_action(\n", " other_action, state_idx, size)] = p_fail / len(possible_actions)\n", "\n", " else:\n", " possible_actions = get_possible_actions(state_idx, size)\n", " transition_probs[\n", " state_idx] = p_success # cant take action, stay in same place\n", " for other_action in possible_actions:\n", " transition_probs[get_state_after_executing_action(\n", " other_action, state_idx, size)] = p_fail / len(possible_actions)\n", "\n", " else:\n", " raise InvalidActionError(\n", " 'Invalid action {} in the 2D gridworld'.format(action))\n", " return transition_probs\n", "\n", " P = np.zeros((n_states, n_actions, n_states))\n", " for s in range(n_states):\n", " for a in range(n_actions):\n", " # MDP states are considered stochastic such that the probability\n", " # of success of a s,a pair is different for diff states,\n", " # in particular between the range of [0.1, 1.0]\n", " p_success = random.uniform(0.10, 1.0)\n", " P[s, a, :] = create_state_list_for_action(s, a, p_success)\n", "\n", " return P\n", "\n", "def _unit_test_P(P):\n", " assert np.allclose(P.sum(axis=2), 1), 'P matrix is not stochastic!'\n", "\n", "\n", "def build_affordance_grid(\n", " affordances, size=13, p_success=1.0, terminal_states=()):\n", " \"\"\"Builds a backbone for intent induced mdp transition matrix\n", "\n", " Args:\n", " affordances: AF of shape |S| * |A|\n", " size: The grid size of the mdp.\n", " p_success: The probability of success for a transition.\n", " mdp: Environment specified as mdp.\n", " terminal_states: List of terminal states.\n", "\n", " Returns:\n", " Returns model dynamics array of shape |S| x |A| x |S|\n", " \"\"\"\n", " p_fail = 1 - p_success\n", "\n", " n_states = size * size\n", " grid_states = n_states # the number of entries of the state vector\n", " # corresponding to the grid itself.\n", " if len(terminal_states) > 0:\n", " n_states += 1 # add an entry to state vector for terminal state\n", " terminal_states = list(\n", " map(lambda tupl: int(size * tupl[0] + tupl[1]), terminal_states))\n", "\n", " def create_state_list_for_action(state_idx, action):\n", " transition_probs = np.zeros(n_states)\n", " if state_idx in terminal_states:\n", " # no matter what action you take you should go to the absorbing state\n", " transition_probs[-1] = 1\n", " elif state_idx == n_states - 1 and len(terminal_states) > 0:\n", " # absorbing state, you should just transition back here whatever action you take.\n", " transition_probs[-1] = 1\n", "\n", " elif action in [actions.LEFT, actions.RIGHT, actions.UP, actions.DOWN]:\n", " # valid action, now see if we can actually execute this action\n", " # in this state:\n", " if check_can_take_action(action, state_idx, size):\n", " # yes we can\n", " possible_actions = get_possible_actions(state_idx, size)\n", " if action in possible_actions:\n", " transition_probs[get_state_after_executing_action(\n", " action, state_idx, size)] = p_success\n", " possible_actions.remove(action)\n", " for other_action in possible_actions:\n", " transition_probs[get_state_after_executing_action(\n", " other_action, state_idx, size)] = p_fail / len(possible_actions)\n", "\n", " else:\n", " possible_actions = get_possible_actions(state_idx, size)\n", " transition_probs[\n", " state_idx] = p_success # cant take action, stay in same place\n", " for other_action in possible_actions:\n", " transition_probs[get_state_after_executing_action(\n", " other_action, state_idx, size)] = p_fail / len(possible_actions)\n", " else:\n", " raise InvalidActionError(\n", " 'Invalid action {} in the 2D gridworld'.format(action))\n", " return transition_probs\n", "\n", " n_states = size * size\n", " n_actions = 4\n", " if len(terminal_states) > 0:\n", " n_states += 1 # add an entry to state vector for terminal state\n", "\n", " P = np.zeros((n_states, n_actions, n_states))\n", " for s in range(n_states):\n", " for a in range(n_actions):\n", " if affordances[s, a] != 0.:\n", " P[s, a, :] = create_state_list_for_action(s, a)\n", " else:\n", " P[s, a, s] = 1.0\n", " return P\n", "\n", "\n", "def _construct_dynamics(mdp, affordances, size, p_success=1.0, wall_locs=None):\n", " \"\"\"\n", " Function to construct transition dynamics P\n", " Args:\n", " mdp: The mdp.\n", " affordances: The wall locations of the mdp.\n", " size: The grid size of the mdp.\n", " p_success: Probability of success.\n", " wall_locs: The location of the walls in the mdp.\n", "\n", " Returns:\n", " P: initialized transition matrix of shape |S| x |A| x |S|\n", " \"\"\"\n", "\n", " if wall_locs is None:\n", " raise ValueError('Please give me wall locations.')\n", "\n", " grid_size = mdp.size\n", "\n", " assert len(mdp.terminal_states) == 1, 'Only one terminal state supported.'\n", " goal_loc = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(mdp.terminal_states[0], mdp.state_space))\n", " # Attempt to make the desired gridworld.\n", " reward_spec = {(goal_loc[0], goal_loc[1]): +1}\n", "\n", " tmb = TransitionMatrixBuilder(grid_size, has_terminal_state=True)\n", "\n", " # For the purposes of constructing the dynamics matrix\n", " # and to match the way the library deals with MDPs, we set the\n", " # walls to have affordable actions.\n", " # affordances = affordances.copy()\n", " # affordances[wall_locs, :] = 1\n", " terminal_states = reward_spec.keys()\n", " basic_affordance_grid = build_affordance_grid(\n", " affordances,\n", " size=mdp.size,\n", " p_success=p_success,\n", " terminal_states=terminal_states)\n", "\n", " tmb._P = basic_affordance_grid\n", " for (r, c) in wall_locs:\n", " tmb.add_wall_at((r, c))\n", " P = tmb.P\n", " _unit_test_P(P)\n", " _checking_P(P)\n", " return P\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "cT39F8t1VHLQ", "colab_type": "text" }, "source": [ "## Affordances" ] }, { "cell_type": "code", "metadata": { "id": "A4sm9YlzrSP3", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Function to compute intent completion.\n", "def _get_intent_completed(\n", " mdp, state, action, statet,\n", " threshold=0.0,\n", " intent_name='collection',\n", " P_AF=None):\n", " \"\"\"Determines if a transition completed an intent.\n", "\n", " Args:\n", " mdp: The MDP to evaluate the intent on.\n", " state: The one hot representation of the current state\n", " action: The integer representation of the action (currently unused).\n", " statet: The state after taking the action.\n", " threshold: The threshold to select actions with\n", " intent_name: The name of the intent to calculate. Three intents are\n", " currently supported \"collection\", \"up\" and \"left\". Collection is the union\n", " over all intents.\n", " P_AF: A probability transition matrix for the affordances.\n", "\n", " Returns:\n", " An integer that represents if the intent is completed.\n", " \"\"\"\n", " x_t, y_t = mdp.unflatten_state(state)\n", " x_tp1, y_tp1 = mdp.unflatten_state(statet)\n", "\n", " delta_x = x_t - x_tp1\n", " delta_y = y_t - y_tp1\n", "\n", " state_int = convert_onehot_to_int(state)\n", " next_state_int = convert_onehot_to_int(statet)\n", "\n", " # Select affordable actions based on the threshold.\n", " # Default value is True for default threshold=0.0\n", " prob_gt_threshold = True\n", " if P_AF is not None:\n", " prob_of_going_there = P_AF[state_int, action, next_state_int]\n", " else:\n", " prob_of_going_there = mdp.P[state_int, action, next_state_int]\n", " prob_gt_threshold = prob_of_going_there >= threshold\n", "\n", " if intent_name == 'collection':\n", " # If the agent has moved in any direction return a 1.0.\n", " if (int(delta_x) or int(delta_y)) and prob_gt_threshold:\n", " return 1.0\n", " else:\n", " return 0.0\n", " elif intent_name == 'up':\n", " if not(_is_absorbing(next_state_int, mdp.size)):\n", " if (x_tp1 < x_t) and prob_gt_threshold:\n", " return 1.0\n", " else:\n", " return 0.0\n", " else:\n", " if action==actions.UP:\n", " return 1.0\n", " else:\n", " return 0.0\n", " elif intent_name == 'left':\n", " if not(_is_absorbing(next_state_int, mdp.size)):\n", " if (y_tp1 < y_t) and prob_gt_threshold:\n", " return 1.0\n", " else:\n", " return 0.0\n", " else:\n", " if action==actions.LEFT:\n", " return 1.0\n", " else:\n", " return 0.0\n", " else:\n", " print(\"Not a valid Intent, See _get_intent_completed\")" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab_type": "code", "id": "nCjcsWdWTJmp", "cellView": "form", "colab": {} }, "source": [ "#@title Function to compute the affordances from an intent completion function.\n", "def _compute_affordances(\n", " mdp, n_states, n_actions, intent_name,\n", " threshold, mdp_wall_locs):\n", " '''\n", " Args:\n", " n_states: number of states in mdp\n", " n_actions: number of actions in mdp \n", " intent_name: name of the intent collection, up, etc.\n", " threshold: float value between 0-1\n", " mdp_wall_locs: list of mdp wall locations\n", "\n", " Returns:\n", " Affordances in the form of a |S| * |A| array. The array has entries of\n", " 1.0 or 0.0 based on the intent I_a(s') is true or not respectively.\n", " '''\n", " affordances = np.zeros((n_states, n_actions))\n", " for s in range(n_states):\n", " x_t, y_t = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(s, mdp.state_space))\n", " if (x_t, y_t) in mdp_wall_locs:\n", " # You're in a wall nothing is affordable.\n", " continue\n", " for a in range(n_actions):\n", " if not(_is_absorbing(s, mdp.size)):\n", " s_next = get_state_after_executing_action(a, s, mdp.size)\n", " x, y = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(s_next, mdp.state_space))\n", " if (x,y) in mdp_wall_locs:\n", " s_next = s\n", " intent = _get_intent_completed(\n", " mdp, state=convert_int_rep_to_onehot(s, mdp.state_space),\n", " action=a, statet=convert_int_rep_to_onehot(\n", " s_next, mdp.state_space),\n", " threshold=threshold, intent_name=intent_name)\n", " affordances[s, a] = intent\n", "\n", " # Hard code terminal states to be affordable since all actions are possible.\n", " if s in mdp.terminal_states:\n", " affordances[s, :] = 1.0\n", " # Hard code absorbing state to be affordable (Environmental quirk).\n", " affordances[-1, :] = 1.0\n", " return affordances" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "kUZ6lanOJcTV", "colab_type": "text" }, "source": [ "## Value Iteration and Policy Evaluation algorithms" ] }, { "cell_type": "code", "metadata": { "id": "E5delmlK9xFf", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Code for value iteration.\n", "# We build this function on the following base code:\n", "# https://github.com/andrecianflone/policy_value_iteration\n", "def value_iteration(\n", " r, p, theta=0.0001, gamma=0.99, max_iteration=100,\n", " AF=None, seed=None, min_mask_value=-10, mdp_wall_locs=None):\n", " \"\"\"Value iteration computes value & policy for a reward and transiton matrix.\n", "\n", " Args:\n", " r: Rewards, array of shape |S| x |A|.\n", " p: State transition probabilities, array of shape |S| x |A| x |S|.\n", " theta: Stop if the change in value fn is less than this value.\n", " gamma: Discount factor.\n", " max_iteration: Maximum number of iterations to run VI.\n", " AF: Affordances of shape |S| x |A|.\n", " seed: Seed value for randomness.\n", " min_mask_value: An optional check for values to not be negative.\n", " mdp_wall_locs: Wall locations in the mdp.\n", "\n", " Returns:\n", " pi: Policy, |S| x |A|.\n", " v: State values, |S|.\n", " it: Number of iterations.\n", " seconds: Planning time in seconds.\n", " v_log: Log of value functions from init to convergence.\n", " \"\"\"\n", " if AF is not None:\n", " AF = AF.copy()\n", " assert mdp_wall_locs is not None, 'If AF is given, wall locs must also be given.'\n", " if seed is not None:\n", " np.random.seed(seed)\n", " random.seed(seed)\n", " t1 = datetime.now()\n", " n_states, n_actions = p.shape[:2]\n", " v = np.zeros(n_states)\n", " v_log = np.zeros((max_iteration + 1, n_states))\n", "\n", " if mdp_wall_locs:\n", " wall_states_idx = list(\n", " map(convert_onehot_to_int, map(mdp.flatten_state, mdp_wall_locs)))\n", "\n", " # Mask out walls to be zero. But uncovered states should be -inf.\n", " if AF is not None:\n", " # Accounting for emdp environment behaviour.\n", " AF[wall_states_idx] = 1\n", " mask = np.logical_not(AF).astype(np.float32)\n", " for it in range(max_iteration+1):\n", " q = r + gamma * np.einsum('ijk, k->ij', p, v)\n", " minimum_v = np.min(q)\n", "\n", " if AF is not None:\n", " q = AF * q + mask * minimum_v\n", " \n", " v_new = np.max(q, axis=1)\n", " if np.all(np.absolute(v-v_new) < theta):\n", " v = v_new\n", " v_log[it, :] = v\n", " v_iters = v_log[:it, :]\n", " break\n", " v = v_new\n", " v_log[it, :] = v\n", " v_iters = v_log[:it, :]\n", "\n", " # Greedy policy extraction.\n", " q_values = r + gamma * np.einsum('ijk, k->ij', p, v_new)\n", " if AF is not None:\n", " q_values = q_values * AF + mask * minimum_v\n", "\n", " # Use \"random\" argmax with stochastic tie-breaking:\n", " rargmax = lambda arr: np.random.choice(np.flatnonzero(arr))\n", " best_actions = np.apply_along_axis(\n", " rargmax, 1, np.isclose(q_values, q_values.max(-1, keepdims=True)))\n", " pi = np.eye(r.shape[1])[best_actions]\n", " assert pi.shape == r.shape\n", " \n", " t2 = datetime.now()\n", " seconds = (t2 - t1).total_seconds()\n", " return pi, v, it+1, seconds, v_log" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "72u1xS4tKM7R", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Code for policy evaluation.\n", "\n", "def _policy_evaluation_exact(pi, r, p, gamma=0.99):\n", " \"\"\"\n", " Evaluate policy by taking the inverse\n", " Args:\n", " pi: Policy, array of shape |S| x |A|.\n", " r: Rewards, array of shape |S| x |A|.\n", " p: State transition probabilities, array of shape |S| x |A| x |S|.\n", " Return:\n", " v: 1D array with updated state values\n", " \"\"\"\n", " # Rewards according to policy: Hadamard product and row-wise sum\n", " r_pi = np.einsum('ij,ij->i', pi, r)\n", "\n", " # Policy-weighted transitions:\n", " # multiply p by pi by broadcasting pi, then sum second axis\n", " # result is an array of shape |S| x |S|\n", " p_pi = np.einsum('ijk, ij->ik', p, pi)\n", " v = np.dot(inv((np.eye(p_pi.shape[0]) - gamma*p_pi)), r_pi)\n", " return v" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "xVH35aHyLfj9", "colab_type": "text" }, "source": [ "#Sec 6.1 Experiment 1: Planning with Intents\n", "Evaluating the impact of intents and affordances on planning. $||V^{\\pi^{*}_{I}}_{M} - V^{\\pi^{*}}_{M}||_{n}$" ] }, { "cell_type": "code", "metadata": { "id": "LG2pxLBcSqC2", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 329 }, "outputId": "6af0376f-9a4d-4488-bd61-cdd0850ee95e" }, "source": [ "#@title Evaluate policy obtained from MDP M vs I in original MDP M\n", "#------------------------------------------------------------------------#\n", "# 1. Compute optimal value function and optimal policy in I \n", "# 2. Policy Evaluation in MDP M\n", "# 3. Report planning time in M vs I \n", "# 4. Report L2 value loss \n", "#------------------------------------------------------------------------#\n", "\n", "p_success_probs = [1.0, 0.75, 0.50, 0.40, 0.30, 0.25]\n", "thresholds = [0, 0.15, 0.25, 0.35, 0.45, 0.65, 0.75, 1.0]\n", "max_iterations = 10000\n", "\n", "# Initialize empty arrays to store results.\n", "valuefn_I = np.zeros(\n", " (len(p_success_probs), len(thresholds), max_iterations+1, mdp.state_space))\n", "v_pi_star_I_M_thresholds = np.zeros(\n", " (len(p_success_probs), len(thresholds), mdp.state_space))\n", "V_star_I_plan_time = np.zeros((len(p_success_probs), len(thresholds)))\n", "V_star_M_plan_time = np.zeros(len(p_success_probs))\n", "v_pi_star_M_M = np.zeros((len(p_success_probs), mdp.state_space))\n", "\n", "# Stores the ratio of |AF|/(|S| x |A|)\n", "AF_SA_size_ratio = np.zeros((len(p_success_probs), len(thresholds)))\n", "\n", "# Iterate over the thresholds and success probs to create data for the plot.\n", "for idx_p, p_success in enumerate(p_success_probs):\n", " for ind, k in enumerate(thresholds):\n", " # Create an mdp with a success prob of p_success\n", " mdp, mdp_wall_locs = build_one_room_example(p_success=p_success)\n", "\n", " # |S| x |A| size in base MDP M.\n", " state_action_space = mdp.state_space * mdp.action_space\n", "\n", " # Compute affordance matrix.\n", " AF = _compute_affordances(\n", " mdp=mdp,\n", " n_states=mdp.state_space,\n", " n_actions=mdp.action_space,\n", " intent_name=\"collection\",\n", " threshold=k,\n", " mdp_wall_locs=mdp_wall_locs)\n", " \n", " # |S| x |A| size in intended MDP M_I\n", " AF_size = np.count_nonzero(AF)\n", " AF_SA_size_ratio[idx_p, ind] = AF_size/state_action_space\n", " \n", " #construct P_I with a determinsitic probability\n", " P_affordances = _construct_dynamics(\n", " mdp, affordances=AF, size=mdp.size, p_success=1.0,\n", " wall_locs=mdp_wall_locs)\n", "\n", " _checking_P(P_affordances)\n", "\n", " try:\n", " # Compute optimal value function in MDP I with affordances\n", " (policy_star_I, V_star_I, _,\n", " V_star_I_seconds, V_star_I_iters) = value_iteration(\n", " mdp.R, P_affordances, max_iteration=max_iterations,\n", " AF=AF, mdp_wall_locs=mdp_wall_locs)\n", " except RuntimeError:\n", " print(f'No affordances found for threshold={k}, p_success={p_success}.')\n", " continue\n", " \n", " V_star_I_plan_time[idx_p, ind] = V_star_I_seconds\n", " \n", " # Evaluate the optimal policies from MDP I in the original mdp M.\n", " v_pi_star_I_M_thresholds[idx_p, ind, :] = _policy_evaluation_exact(\n", " pi=policy_star_I, \n", " r=mdp.R, p=mdp.P, \n", " gamma=mdp.gamma)\n", " \n", " # Compute optimal value function in original mdp.P\n", " V_star_M = np.zeros(mdp.state_space)\n", " (policy_star_M, V_star_M, _,\n", " V_star_M_seconds, V_star_M_iters) = value_iteration(\n", " mdp.R, mdp.P, max_iteration=max_iterations)\n", "\n", " V_star_M_plan_time[idx_p] = V_star_M_seconds\n", "\n", " # Evaluate the optimal policies in M in the original environment M \n", " v_pi_star_M_M[idx_p] = _policy_evaluation_exact(\n", " pi=policy_star_M, \n", " r=mdp.R, \n", " p=mdp.P, \n", " gamma=mdp.gamma)\n", "\n", "# Compute the absolute error wrto the ground mdp.\n", "value_loss_to_plot = np.zeros((len(p_success_probs), len(thresholds)))\n", "for p_id in range(len(p_success_probs)):\n", " for _thresh in range(len(thresholds)):\n", " value_loss_to_plot[p_id, _thresh] = np.linalg.norm(\n", " abs(v_pi_star_M_M[p_id, :] - \n", " v_pi_star_I_M_thresholds[p_id, _thresh, :])\n", " )\n", "\n", "fig, ax = plt.subplots()\n", "x_axis = np.linspace(0, 1, len(thresholds))\n", "for i in range(value_loss_to_plot.shape[0]):\n", " ax.plot(\n", " x_axis, value_loss_to_plot[i, :], color=colors[i],\n", " label='p={}'.format(p_success_probs[i]), linewidth=3.00,\n", " marker=markers[i], markersize=14)\n", "\n", "ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.19),\n", " fancybox=True, shadow=True, ncol=7,\n", " facecolor='w', fontsize=10)\n", "ax.set_xlabel(\"Threshold $\\kappa$\", fontsize=18)\n", "ax.set_ylabel(\"$ ||V^{\\pi^{*}_{I}}_M - V^{*}_M||_2$\", fontsize=18) \n", "plt.title(\"Planning with Intents\")\n", "matplotlib.rc('axes', edgecolor='black')\n", "plt.show()" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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6SbeeOONiPSlMtG23ZtvvsmNN96IiDBp0iSampqor68PWn7nzp0cOXKEr33ta7GUb4toDdlDJMacqPZMJp2iZA8xiJbj3XYnT55k0aJFLFy4sFs67fL+1v2srNrW6VF/vHP3XP3xli5l3t+6P6LrxLvdzj77bACcTidtbW2elGrCCGTMsTLkeLZdnz59mDZtGgA5OTlMmDCB2touA6mjwvbwwP/54z/G5ILVe451OdezP/tekNLuY6qreeGFF7j00ku59dZbWbp0KXV1daxd2/WW0zlz5nRKJYSioaGBc845h+xsqxmKi4upq6uzWRP7PLzin+N2rifn/DRk+Wjarq6ujqFDh3q3e9plyJAhAa+xYsUKZs+e3ekD/Yc//IGqqirKysp4+umnO50vFqy/776YncvV3s62X/7S+3ryokVBy8a7PW+55RaysrK45pprWLhwYcy/JOtXPhH5Qa4OWndvonX3ppDFhnz/kZD749l2jz76KPfffz99+vSJoGL2WVm1LWwZ/565QD11B4+f7HKu7085P+R54/2emz59Ohs3buRb3/qWN0CJJe/9dVX4QsAnn20M+ToQl3/1WyH3J+L7r6mpibfeeou7777bu607339pMWZ/6NChXHrppQDccMMNLF68OKMi2niSiLZbsWIFL7/8svf1d77zHebOnUtubi7PPvssN910E2vWrInpNZNFPNvzlVdeoaioiJaWFq655hpefvllbrzxxpicOxWIV9t9/PHH7N69m6effpp9+/Z1+3ypRrw/w6tXr+b06dNcf/31rFmzhm9+85sxO3eyiXfbOZ1O5s6dy1133cXIkdbtWt39/ksLU/aPFkSEe++9t9uR8oABA2hqasLpdJKdnU1tbS1FRUUx0ZwqRNN2RUVFHDhwwLs9VLts2bIFp9PJxIkTvdsGDPgi5TRv3jweeihz7q2OZ3t6tuXl5XHdddexcePGjDLleLXd+vXr+fDDDxk+fDhOp5MjR44wdepU3n333bjUI9HE+zMM0Lt3b2bNmsWbb76ZUaYc77a7/fbbKS0t9Q5yhe5//9k2Zf8U86LnqqjecyyiiwGMGlnAffOnRHTM/v37Wb9+PZMnT+bVV1/lsssu4/7774/42v6ICNOmTeP1119nzpw5vPTSS8yaNavb5/XHP8XcnXR2uHS1P9G0XUVFBc888wxz5szhgw8+ID8/P2jq5ne/+x1z587ttK2+vt5bvrKykvLy8og028GTYu5unzKAo1cvRtucUCRe7el0OmlqaqKgoID29nbefvttrrjiiqjrFIxgKebmTato3bvliwFegXBk0WfEOPInzojq2vFquwULFngH4+zbt49vf/vbMTfkUCnmhhOneO/Tv+PscHXZl53lYOrYYfTPOyvqa8er3U6ePElLSwtDhgzB6XTypz/9KS7jQsKlmP37kGM5yCue338LFy6kubm5y+jq7n7/RT3Q68opZeTmRBZo5+ZkM/3yURFfa9SoUSxZsoTy8nIaGxtDjsD0cOjQIYqLi1m0aBGPP/44xcXFnDhxAoCZM2dy8OBBAJ588kkWLVpESUkJDQ0N3HbbbRHrS2WiabuZM2cycuRISkpKmD9/PkuXLvXuGzduXKeyK1eu7GLKixcvZsyYMVx00UUsXryY5cuXx6QugcgvLWX0vHk4QgzoC0Ukhgzxa88zZ84wffp0xo4dy7hx4ygqKmL+/PlR1SlSuoy4DkY3R2LH+72YLBpPnup0T3KWz+yFxhiOt5wKdJht4tVun3/+ORUVFd733KBBg7jjjju6pTVSAhlwJPcxhyNebVdbW8sTTzzBtm3bmDBhQqdbn7r7/Rdu7mvjm5b0xeUyPPLUX2hsPmXrtigR6J/fh8cfnB7RlJueX75bt261fUyqk6hIORPbLhjRRMyRGnKmtqetKNlDlNFyprYdwPrttRw4egKHQ+jdK5vx5xWyefdhTrc5cRnDuQPPZlJ5cVTnzuR2CxcRdzdiTvW227RpE4899tgLwD9XVlYe9GyPOlJ2OIR7br2M3rnZhBsgKgK9c7O5+9ZLdQ5sJS5EGjFHasiZiu0o2UOS71tORY63nEKAogF5zLj4PIoKzmbGxefxDwPyEKChm5FyJmLHcGMZMacTUZsyQOHAPH78g2n0yz8raCo7Nyeb/vl9+PEPplE4MC/iawwfPjxlf+mkOj2t7ewac7SGnIntGfC+5HBEcd9yJradh7yzcrm4bAiTy4vJzrK+UrOzHHz1/GIuLhtC3lm5UZ87E9stkgi4O8acrm3X7dHXhQPzeOLBGWzfdYTV71Wz50AjTmcH2dlZjBzaj+mXj6K8ZJBGyD707d036lWilNB4jDlYKlsj5M60NdTZj5I9uDpoa4jNRAmZwJQLzw26b8TgfowY3C+BalKflpPNEaWkPcbccrI5o+a/DkY4UzYulyvkohRgpbLHlBUypqwwdsoyGF1+Mb4EM2Y15K4MvDK+U6Aqij/RLL/YL39ARhmyy+UKumBJSLd1OBw7Dh061OFydR3qryipjH8qWw1ZUZRUwOVyUV9f7zp9+nTAe4pDRsoul+vK+vr6NQcPHixN9JyoihILHFOm4NqwAcekSew6cQI2hZ4qUlEUJZ4YYzh9+vTxl1566ffAWUCnSdND3hIFUFFRIcBVwDVAYtb1UhRFUZTMxgEsr6ysrPLdGNaUwWvMg4Gz46NNURRFUXoMBmiqrKzsspaxLVNWFEVRFCX+dOs+ZUVRFEVRYoeasqIoiqKkCGrKiqIoipIi/DcDCH5gMg1xgwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "wWgD4QVJoNR3", "colab_type": "text" }, "source": [ "# Sec 6.2 Experiment 2: Planning time with & w/o Affordances" ] }, { "cell_type": "code", "metadata": { "id": "WlY_AIqwGiqf", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Utility to create One-room and Pachinko Environments\n", "\n", "# One-Room gridsize_dict\n", "ONE_ROOM_DIFF_GRIDSIZES = {\n", " 7: \"\"\"#######\n", "# #\n", "# g #\n", "# # #\n", "# ### #\n", "#s #\n", "#######\"\"\".split('\\n'),\n", " 9: \"\"\"#########\n", "# #\n", "# g #\n", "# #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "#########\"\"\".split('\\n'),\n", " 13: \"\"\"#############\n", "# #\n", "# g #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# ####### #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "#############\"\"\".split('\\n'),\n", " 15: \"\"\"###############\n", "# #\n", "# g #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "###############\"\"\".split('\\n'),\n", " 17: \"\"\"#################\n", "# #\n", "# g #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# ########### #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "#################\"\"\".split('\\n'),\n", " 19: \"\"\"###################\n", "# #\n", "# g #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# ############# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "###################\"\"\".split('\\n'),\n", " 25: \"\"\"#########################\n", "# #\n", "# g #\n", "# #\n", "# #\n", "# #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# # #\n", "# ################# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "# #\n", "#s #\n", "#########################\"\"\".split('\\n')\n", "}\n", "\n", "def build_one_room_gridsize(gamma=0.99, seed=2017,p_success=1.0, grid_size=13):\n", " _ONE_ROOM_TXT = ONE_ROOM_DIFF_GRIDSIZES[grid_size]\n", " char_matrix = get_char_matrix(_ONE_ROOM_TXT)\n", " return build_gridworld_from_char_matrix(\n", " char_matrix, p_success=p_success, seed=seed, gamma=gamma)\n", "\n", "\n", "# pachinko_gridsize_dict\n", "PACHINKO_DIFF_GRIDSIZES = {\n", " 7: \"\"\"#######\n", "# #\n", "# # # #\n", "# g #\n", "# # # #\n", "# s #\n", "#######\"\"\".split('\\n'),\n", " 9: \"\"\"#########\n", "# #\n", "# # # # #\n", "# g #\n", "# # # # #\n", "# #\n", "# # # # #\n", "# s #\n", "#########\"\"\".split('\\n'),\n", " 13: \"\"\"#############\n", "# #\n", "# # # # # # #\n", "# g #\n", "# # # # # # #\n", "# #\n", "# # # # # # #\n", "# #\n", "# # # # # # #\n", "# #\n", "# # # # # # #\n", "# s #\n", "#############\"\"\".split('\\n'),\n", " 15: \"\"\"###############\n", "# #\n", "# # # # # # # #\n", "# g #\n", "# # # # # # # #\n", "# #\n", "# # # # # # # #\n", "# #\n", "# # # # # # # #\n", "# #\n", "# # # # # # # #\n", "# #\n", "# # # # # # # #\n", "# s #\n", "###############\"\"\".split('\\n'),\n", " 17: \"\"\"#################\n", "# #\n", "# # # # # # # # #\n", "# g #\n", "# # # # # # # # #\n", "# #\n", "# # # # # # # # #\n", "# #\n", "# # # # # # # # #\n", "# #\n", "# # # # # # # # #\n", "# #\n", "# # # # # # # # #\n", "# #\n", "# # # # # # # # #\n", "# s #\n", "#################\"\"\".split('\\n'),\n", " 19: \"\"\"###################\n", "# #\n", "# # # # # # # # # #\n", "# g #\n", "# # # # # # # # # #\n", "# #\n", "# # # # # # # # # #\n", "# #\n", "# # # # # # # # # #\n", "# #\n", "# # # # # # # # # #\n", "# #\n", "# # # # # # # # # #\n", "# #\n", "# # # # # # # # # #\n", "# #\n", "# # # # # # # # # #\n", "# s #\n", "###################\"\"\".split('\\n'),\n", " 25: \"\"\"#########################\n", "# #\n", "# # # # # # # # # # # # #\n", "# g #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# #\n", "# # # # # # # # # # # # #\n", "# s #\n", "#########################\"\"\".split('\\n')\n", "}\n", "\n", "def build_pachinko_gridsize(gamma=0.99, seed=2017,p_success=1.0, grid_size=13):\n", " _PACHINKO_ROOMS_TXT = PACHINKO_DIFF_GRIDSIZES[grid_size]\n", " char_matrix = get_char_matrix(_PACHINKO_ROOMS_TXT)\n", " return build_gridworld_from_char_matrix(\n", " char_matrix, p_success=p_success, seed=seed, gamma=gamma)\n", "\n" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "VYFvBmjloZ85", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 245 }, "outputId": "bad5093c-0733-4244-89d8-57dfa6d87cd5" }, "source": [ "#@title Planning Time with Increasing Grid Size: One-Room\n", "#------------------------------------------------------------------------#\n", "# 1. MDP's will have p_success 0.5\n", "# 2. Choose a threshold of 0.5 for AF computation\n", "# 3. For different factors in range(factors):\n", "# Compute V_star_M, V_star_M_I\n", "# Planning time for each\n", "# Return V_star_M, V_star_M_I plan times\n", "# 4. Multiple runs to account for randomness\n", "#------------------------------------------------------------------------#\n", "\n", "seed = 10000 \n", "p_success = 0.5\n", "threshold = 0.5\n", "max_iterations = 10000\n", "nruns = 10\n", "grid_sizes = [7, 9, 13, 15, 17, 19, 25] \n", "\n", "V_star_I_plan_time = np.zeros((len(grid_sizes), nruns))\n", "V_star_M_plan_time = np.zeros((len(grid_sizes), nruns))\n", "\n", "# Run VI for MDP M\n", "for size_idx, size_val in enumerate(grid_sizes):\n", " for run_id in range(nruns):\n", " # Create an mdp with grid size size_val, fixed p\n", " _mdp, _mdp_walls = build_one_room_gridsize(\n", " grid_size=size_val, p_success=p_success)\n", "\n", " # Compute V* in original _mdp.P\n", " (policy_star_M, V_star_M, _,\n", " V_star_M_seconds, V_star_M_iters) = value_iteration(\n", " _mdp.R, _mdp.P, max_iteration=max_iterations, \n", " seed=seed+run_id)\n", " \n", " V_star_M_plan_time[size_idx, run_id] = V_star_M_seconds\n", "\n", " # Compute Affordances AF based on intent I\n", " _AF = _compute_affordances(mdp=_mdp,\n", " n_states=_mdp.state_space,\n", " n_actions=_mdp.action_space,\n", " intent_name=\"collection\",\n", " threshold=threshold,\n", " mdp_wall_locs=_mdp_walls)\n", "\n", " #construct P_I with a determinsitic probability\n", " _P_affordances = _construct_dynamics(_mdp,\n", " affordances=_AF,\n", " size=_mdp.size,\n", " p_success=1.0,\n", " wall_locs=_mdp_walls)\n", " _checking_P(_P_affordances)\n", "\n", " # Compute V*_I in mdp M_I with AF\n", " (policy_star_I, V_star_I, _,\n", " V_star_I_seconds, V_star_I_iters) = value_iteration(\n", " _mdp.R, _P_affordances, max_iteration=max_iterations,\n", " seed=seed+run_id)\n", " \n", " V_star_I_plan_time[size_idx, run_id] = V_star_I_seconds\n", "\n", "V_star_I_plan_time_avg = np.mean(V_star_I_plan_time, axis=1)\n", "V_star_I_plan_time_std = np.std(V_star_I_plan_time, axis=1)\n", "V_star_I_plan_time_CI = V_star_I_plan_time_std/np.sqrt(nruns)\n", "\n", "\n", "V_star_M_plan_time_avg = np.mean(V_star_M_plan_time, axis=1)\n", "V_star_M_plan_time_std = np.std(V_star_M_plan_time, axis=1)\n", "V_star_M_plan_time_CI = V_star_M_plan_time_std/np.sqrt(nruns) \n", "\n", "#@title Plot Planning Time: TwoRooms\n", "fig = plt.figure(figsize=(4,3.5))\n", "ax1 = fig.add_subplot(1,1,1)\n", "# sns.set_context(\"paper\")\n", "sns.set_style('white')\n", "sns.set_context(\"paper\", font_scale=1.85)\n", "\n", "fig.patch.set_facecolor('1.0')\n", "\n", "plt.grid(False)\n", "x_axis = grid_sizes\n", "xi = list(range(len(x_axis)))\n", "\n", "ax1.plot(xi, V_star_I_plan_time_avg, color = colors[1], label = '$V^{*}_{M_I}$', \n", " linewidth=4.00, marker=markers[1], markersize=10)\n", "ax1.fill_between(xi, V_star_I_plan_time_avg-V_star_I_plan_time_CI,\n", " V_star_I_plan_time_avg+V_star_I_plan_time_CI,\n", " facecolor=colors[1], edgecolor=colors[1], alpha=0.5)\n", "\n", "ax1.plot(xi, V_star_M_plan_time_avg, color = colors[3], label = '$V^{*}_{M}$',\n", " linewidth=4.00, marker=markers[3], markersize=10)\n", "ax1.fill_between(xi, V_star_M_plan_time_avg-V_star_M_plan_time_CI,\n", " V_star_M_plan_time_avg+V_star_M_plan_time_CI,\n", " facecolor=colors[3], edgecolor=colors[3], alpha=0.5)\n", "\n", "ax1.legend(loc='upper left', bbox_to_anchor=(0.05, 0.9),\n", " fancybox=True, shadow=True, ncol=1,\n", " facecolor='w', fontsize=15)\n", "ax1.set_xlabel(\"Grid size\", fontsize=16)\n", "ax1.set_ylabel(\"Planning Time\\n(seconds)\", fontsize=16) \n", "xticks_pos = [0, 3, 6]\n", "ax1.set_xticks(xticks_pos)\n", "ax1.set_xticklabels([grid_sizes[i] for i in xticks_pos])\n", "fig.tight_layout()\n", "\n", "plt.show()\n" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "CyIEYxUubTNw", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 245 }, "outputId": "e68a7f32-bc80-4d00-9a45-25e6bc673fa9" }, "source": [ "#@title Planning Time with Increasing Grid Size: Pachinko\n", "#------------------------------------------------------------------------#\n", "# 1. MDP's will have p_success 0.5\n", "# 2. Choose a threshold of 0.5 for AF computation\n", "# 3. For different factors in range(factors):\n", "# Compute V_star_M, V_star_M_I\n", "# Planning time for each\n", "# Return V_star_M, V_star_M_I plan times\n", "#------------------------------------------------------------------------#\n", "\n", "seed = 10000\n", "p_success = 0.5\n", "threshold = 0.5\n", "max_iterations = 20000\n", "grid_sizes = [7, 9, 13, 15, 17, 19, 25] \n", "nruns = 10\n", "\n", "outer_dir = os.path.dirname('/content/')\n", "dir_name = \"planning_valueloss\"\n", "dir_name = os.path.join(outer_dir, dir_name)\n", "if not os.path.exists(dir_name):\n", " os.makedirs(dir_name)\n", "\n", "V_star_I_plan_time = np.zeros((len(grid_sizes), nruns))\n", "V_star_M_plan_time = np.zeros((len(grid_sizes), nruns))\n", "\n", "\n", "# Run VI for MDP M\n", "for size_idx, size_val in enumerate(grid_sizes):\n", " for run_id in range(nruns):\n", " # Create an mdp with grid size size_val, fixed p\n", " _mdp, _mdp_walls = build_pachinko_gridsize(\n", " grid_size=size_val, p_success=p_success)\n", "\n", " # Compute V* in original _mdp.P\n", " (policy_star_M, V_star_M, _,\n", " V_star_M_seconds, V_star_M_iters) = value_iteration(\n", " _mdp.R, _mdp.P, max_iteration=max_iterations,\n", " seed=seed+run_id)\n", " \n", " V_star_M_plan_time[size_idx, run_id] = V_star_M_seconds\n", "\n", " # Compute Affordances AF based on intent I\n", " _AF = _compute_affordances(mdp=_mdp,\n", " n_states=_mdp.state_space,\n", " n_actions=_mdp.action_space,\n", " intent_name=\"collection\",\n", " threshold=threshold,\n", " mdp_wall_locs=_mdp_walls)\n", " \n", " \n", " #construct P_I with a determinsitic probability\n", " _P_affordances = _construct_dynamics(_mdp,\n", " affordances=_AF,\n", " size=_mdp.size,\n", " p_success=1.0,\n", " wall_locs=_mdp_walls)\n", " _checking_P(_P_affordances)\n", "\n", " # Compute V*_I in mdp M_I with AF\n", " (policy_star_I, V_star_I, _,\n", " V_star_I_seconds, V_star_I_iters) = value_iteration(\n", " _mdp.R, _P_affordances, max_iteration=max_iterations,\n", " seed=seed+run_id)\n", " \n", " V_star_I_plan_time[size_idx, run_id] = V_star_I_seconds\n", "\n", "\n", "V_star_I_plan_time_avg = np.mean(V_star_I_plan_time, axis=1)\n", "V_star_I_plan_time_std = np.std(V_star_I_plan_time, axis=1)\n", "V_star_I_plan_time_CI = V_star_I_plan_time_std/np.sqrt(nruns)\n", "\n", "\n", "V_star_M_plan_time_avg = np.mean(V_star_M_plan_time, axis=1)\n", "V_star_M_plan_time_std = np.std(V_star_M_plan_time, axis=1)\n", "V_star_M_plan_time_CI = V_star_M_plan_time_std/np.sqrt(nruns) \n", "\n", "\n", "#@title Plot Planning Time: Pachinko\n", "fig = plt.figure(figsize=(4,3.5))\n", "ax1 = fig.add_subplot(1,1,1)\n", "sns.set_style('white')\n", "sns.set_context(\"paper\", font_scale=1.85)\n", "fig.patch.set_facecolor('1.0')\n", "plt.grid(False)\n", "x_axis = grid_sizes\n", "xi = list(range(len(x_axis)))\n", "\n", "ax1.plot(xi, V_star_I_plan_time_avg, color = colors[1], label = '$V^{*}_{M_I}$', \n", " linewidth=4.00, marker=markers[1], markersize=10)\n", "ax1.fill_between(xi, V_star_I_plan_time_avg-V_star_I_plan_time_CI,\n", " V_star_I_plan_time_avg+V_star_I_plan_time_CI,\n", " facecolor=colors[1], edgecolor=colors[1], alpha=0.5)\n", "\n", "ax1.plot(xi, V_star_M_plan_time_avg, color = colors[3], label = '$V^{*}_{M}$',\n", " linewidth=4.00, marker=markers[3], markersize=10)\n", "ax1.fill_between(xi, V_star_M_plan_time_avg-V_star_M_plan_time_CI,\n", " V_star_M_plan_time_avg+V_star_M_plan_time_CI,\n", " facecolor=colors[3], edgecolor=colors[3], alpha=0.5)\n", "\n", "ax1.legend(loc='upper left', bbox_to_anchor=(0.05, 0.9),\n", " fancybox=True, shadow=True, ncol=1,\n", " facecolor='w', fontsize=15)\n", "ax1.set_xlabel(\"Grid size\", fontsize=16)\n", "ax1.set_ylabel(\"Planning Time\\n(seconds)\", fontsize=16) \n", "xticks_pos = [0, 3, 6]\n", "ax1.set_xticks(xticks_pos)\n", "ax1.set_xticklabels([grid_sizes[i] for i in xticks_pos])\n", "fig.tight_layout()\n", "\n", "plt.show()" ], "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "r05HA2UWhKz6", "colab_type": "text" }, "source": [ "# Sec 6.3 Experiment 3: Planning Loss Bound\n", "$\\Big|\\Big|V^*_M - V^{\\pi^{*}_{\\hat{M}_{{{\\mathcal{A} \\mathcal{F}}_{\\cal I}}}}}_M \\Big|\\Big|_{\\infty}$" ] }, { "cell_type": "markdown", "metadata": { "id": "SAxhAKT3emQW", "colab_type": "text" }, "source": [ "## Model Learning" ] }, { "cell_type": "markdown", "metadata": { "id": "CZQ7dOYZfJZD", "colab_type": "text" }, "source": [ "To learn the model from the experience-data, we consider the count based approach:\n", "\n", "Transition Dynamics computation $\\hat{P_{\\cal I}}(s' \\mid s,a) = \\frac{1}{n} \\sum \\text{COUNT}(s,a, s')$\n" ] }, { "cell_type": "code", "metadata": { "id": "fa0XlSG4co_v", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Helper functions to collect data and create transition matrices.\n", "class Actions(enum.IntEnum):\n", " LEFT = actions.LEFT\n", " RIGHT = actions.RIGHT\n", " UP = actions.UP\n", " DOWN = actions.DOWN\n", " \n", "def get_randomized_state(mdp):\n", " \"\"\"Generates a random state and sets mdp current state to that.\"\"\"\n", " state_id = np.random.randint(0, mdp.state_space-1)\n", " x, y = mdp.unflatten_state(convert_int_rep_to_onehot(state_id, mdp.state_space))\n", " while (x,y) in mdp_wall_locs:\n", " state_id = np.random.randint(0, mdp.state_space-1)\n", " x, y = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(state_id, mdp.state_space))\n", " mdp.set_current_state_to((x,y))\n", " state_onehot = mdp.current_state\n", " return state_onehot\n", "\n", "def get_trajectories_transitions(\n", " mdp, num_trajectories=500, max_trajectory_length=50, policy=None,\n", " intent_name='collection', random_starts=False, seed=None):\n", " \"\"\"Takes transitions samples from an environment.\n", "\n", " Args:\n", " mdp: The MDP to evaluate the intent on.\n", " num_trajectories: The total number of trajectories to sample.\n", " max_trajectory_length: The maximum length of the trajectory.\n", " policy: The policy to sample using. If none is given a random policy\n", " is used. The policy must take a single argument, the one hot\n", " representation of the state. \n", " intent_name: Name of the intent to be considered\n", " random_starts: Data collection including random starts\n", " seed: seed for randomness \n", " Returns:\n", " The trajectories collected from the environment:\n", " This is a 4-tuple containing the batch of state, action, state' \n", " and reward\n", " Human Readable transitions:\n", " A set containing the unique transitions in the trajectory batch.\n", " \"\"\"\n", " if seed is not None:\n", " np.random.seed(seed)\n", " random.seed(seed)\n", " print(f'seed set to {seed}')\n", "\n", " trajectory = []\n", " if random_starts:\n", " s_t = get_randomized_state(mdp)\n", " else:\n", " s_t = mdp.reset()\n", " trajectory_length = 0\n", " human_readable = set()\n", " if policy is None:\n", " def policy(_):\n", " return np.random.randint(mdp.action_space)\n", "\n", " for _ in range(num_trajectories):\n", " action = policy(s_t)\n", " s_tp1, reward, done, _ = mdp.step(action)\n", " state_int = get_current_state_integer(s_t)\n", " intent = _get_intent_completed(\n", " mdp, s_t, action, s_tp1, intent_name=intent_name)\n", "\n", " # Human readable vesion:\n", " human_readable.add((\n", " mdp.unflatten_state(s_t),\n", " Actions(action),\n", " mdp.unflatten_state(s_tp1),\n", " reward))\n", "\n", " trajectory.append((\n", " convert_onehot_to_int(s_t), action,\n", " convert_onehot_to_int(s_tp1), reward)\n", " )\n", " trajectory_length += 1\n", " if done or trajectory_length > max_trajectory_length:\n", " if random_starts:\n", " s_t = get_randomized_state(mdp)\n", " else:\n", " s_t = mdp.reset()\n", " else:\n", " s_t = s_tp1\n", "\n", " return trajectory, human_readable\n", "\n", "def get_stochastic_states_P(mdp, wall_locs):\n", " \"\"\"\n", " Function to initialize P with non-uniform probability\n", " of transitioning to the neighborhood states.\n", " Introduces stochasticity in actions.\n", "\n", " Args:\n", " mdp: The mdp to get the affordances from.\n", " wall_locs: The wall locations of the mdp.\n", "\n", " Returns:\n", " P: initialized transition matrix\n", " \"\"\"\n", " grid_size = mdp.size\n", "\n", " assert len(mdp.terminal_states) == 1, 'only one terminal state supported.'\n", " goal_loc = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(\n", " mdp.terminal_states[0], mdp.state_space))\n", "\n", " # Attempt to make the desired gridworld.\n", " reward_spec = {(goal_loc[0], goal_loc[1]): +1}\n", "\n", " tmb = TransitionMatrixBuilder(grid_size, has_terminal_state=True)\n", " terminal_state = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(mdp.terminal_states, mdp.state_space))\n", " stochastic_P = build_simple_grid_stochastic_states(\n", " size=grid_size,\n", " terminal_states=[terminal_state])\n", " tmb._P = stochastic_P\n", " for (r, c) in wall_locs:\n", " tmb.add_wall_at((r, c))\n", " P = tmb.P\n", " _unit_test_P(P)\n", " _checking_P(P)\n", " return P\n", "\n", "def get_uniform_phat(mdp, wall_locs):\n", " \"\"\"\n", " Function to initialize P with uniform probability\n", " of transitioning to the neighborhood states\n", "\n", " Args:\n", " mdp: The to get a uniform starting state for.\n", " wall_locs: The locations of the walls.\n", "\n", " Returns:\n", " P: initialized transition matrix\n", " \"\"\"\n", " grid_size = mdp.size\n", "\n", " assert len(mdp.terminal_states) == 1, 'only one terminal state supported.'\n", " goal_loc = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(\n", " mdp.terminal_states[0], mdp.state_space))\n", " # Attempt to make the desired gridworld.\n", " reward_spec = {(goal_loc[0], goal_loc[1]): +1}\n", "\n", " tmb = TransitionMatrixBuilder(grid_size, has_terminal_state=True)\n", " terminal_state_idx = mdp.unflatten_state(\n", " convert_int_rep_to_onehot(mdp.terminal_states, mdp.state_space))\n", " uniform_P = build_simple_grid(\n", " size=grid_size, \n", " terminal_states=[terminal_state_idx],\n", " p_success=0.25)\n", " tmb._P = uniform_P\n", " for (r, c) in wall_locs:\n", " tmb.add_wall_at((r, c))\n", " P = tmb.P\n", " _unit_test_P(P)\n", " _checking_P(P)\n", " return P\n", "\n" ], "execution_count": 35, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "9NV8NBmVeoj1", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Function: Code to learn a count based model from data.\n", "\n", "def learn_model_from_data(\n", " mdp, mdp_wall_locs,\n", " num_trajectories=50, \n", " max_trajectory_length=10,\n", " random_starts=False,\n", " affordances=None,\n", " policy=None,\n", " seed=None,\n", " trajectories=None):\n", " \"\"\"Learns a transition dynamics from sampled data.\n", "\n", " Args:\n", " mdp: The MDP to sample from.\n", " mdp_wall_locs: The wall locations in that mdp.\n", " num_trajectories: The total number of trajectories to sample.\n", " max_trajectory_length: The maximum length of the trajectory.\n", " random_starts: rollouts are performed with random starting state.\n", " affordances: The affordances of shape |S| * |A|\n", " policy: The policy to sample using. If none is given a random policy\n", " is used. The policy must take a single argument, the one hot\n", " representation of the state. \n", " seed: seed for randomness in any sampling used.\n", " passing_data: set True if previously collected data is being passed\n", " trajectories: tf trajectories from previously collected data\n", " Returns:\n", " The transition model P_hat\n", " \"\"\"\n", " if seed is not None:\n", " np.random.seed(seed)\n", " random.seed(seed)\n", "\n", " Mhat = np.zeros((mdp.state_space, mdp.action_space, mdp.state_space))\n", " Phat = np.zeros((mdp.state_space, mdp.action_space, mdp.state_space))\n", "\n", " if trajectories is None:\n", " trajectories, _ = get_trajectories_transitions(\n", " mdp=mdp, num_trajectories=num_trajectories,\n", " max_trajectory_length=max_trajectory_length,\n", " random_starts=random_starts)\n", " else:\n", " trajectories = trajectories\n", "\n", " for (s,a,s_dash, r) in trajectories:\n", " Mhat[s,a,s_dash] += 1\n", "\n", " # Use get_random_phat instead of a naive initialization to take into account\n", " # the wall locations and the fact that we cannot transition into walls.\n", " Phat_init_uniform = get_uniform_phat(mdp, mdp_wall_locs)\n", " \n", " for (s, a, s_dash, r) in trajectories:\n", " if affordances is None or affordances[s,a] !=0:\n", " Phat[s,a,s_dash] = Mhat[s,a,s_dash]/np.sum(Mhat[s,a,:])\n", "\n", " # Copy over \"initialized uniform state transition\" here.\n", " # i.e. if you have never seen a transition (s, a), \n", " # P (s,a, s') = 1/4 (except walls)\n", " P_visited_mask = np.sum(Phat, 2) == 0\n", " for s in range(mdp.state_space):\n", " for a in range(mdp.action_space):\n", " if P_visited_mask[s, a]:\n", " if affordances is None or affordances[s,a] >= 0.0:\n", " Phat[s, a] = Phat_init_uniform[s, a]\n", "\n", " return Phat" ], "execution_count": 36, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "fv5ilraeV7gD", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Planning Value Loss Evaluation\n", "#------------------------------------------------------------------------#\n", "# 1. Computationally build affordances\n", "# 2. Learn a model for those affordances from the data experience\n", "# 3. Compute optimal value function and optimal policy in M_M and M_hat_I_M\n", "# 4. Policy Evaluation in MDP M \n", "# 5. Compare loss for different number of samples \n", "# 6. Hypothesis: the planning value loss shrinks with more and more data\n", "# for low data regime, there would be an intermediate value of |AF_I| which\n", "# yields the optimal planning value loss.\n", "#------------------------------------------------------------------------#\n", "\n", "n_trajectories = [250, 400, 500, 750, 2000, 10000]\n", "thresholds = [0.0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.9, 1.0]\n", "\n", "p_success = 0.70 #@param {type:\"slider\", min:0, max:1, step:0.1}\n", "max_iterations = 10000 #@param {type:\"integer\"}\n", "max_trajectory_length = 10#@param {type:\"integer\"}\n", "seed = 10000 #@param {type:\"integer\"}\n", "nruns = 10\n", "\n", "v_pi_star_Mhat_I_M_thresh_nsamples = np.zeros(\n", " (nruns, len(n_trajectories), len(thresholds), mdp.state_space))\n", "\n", "# Create an mdp M\n", "mdp, mdp_wall_locs = build_pachinko_gridsize(grid_size=19)\n", "\n", "mdp.P = get_stochastic_states_P(mdp, mdp_wall_locs)\n", "\n", "AF_sizes = np.zeros((len(thresholds)))\n", "\n", "for n_traj_idx, n_traj_val in enumerate(n_trajectories):\n", " for ind, k in enumerate(thresholds):\n", " for run_id in range(nruns):\n", " # ------------Step 1: Compute Affordances ------------\n", " # Compute Affordances AF based on intent I\n", " AF = _compute_affordances(mdp=mdp,\n", " n_states=mdp.state_space,\n", " n_actions=mdp.action_space,\n", " intent_name=\"collection\",\n", " threshold=k,\n", " mdp_wall_locs=mdp_wall_locs)\n", " \n", " \n", " # ------------Step 2: Learn a Model for AF ------------\n", " # Learn P_hat_I from data: M_hat_I - Model with AF\n", " Phat_I = learn_model_from_data(\n", " mdp, mdp_wall_locs,\n", " num_trajectories=n_traj_val,\n", " max_trajectory_length=max_trajectory_length,\n", " random_starts=True,\n", " affordances=AF,\n", " policy=None,\n", " seed=seed+run_id)\n", "\n", " # ------------Step 3: Value Iteration------------ \n", " # Value iteration - pi*M_hat_I\n", " (policy_star_Mhat_I, V_star_Mhat_I, _, \n", " V_star_Mhat_I_seconds, V_star_Mhat_I_iters) = value_iteration(\n", " mdp.R, Phat_I, max_iteration=max_iterations, seed=seed+run_id,\n", " AF=AF, mdp_wall_locs=mdp_wall_locs)\n", "\n", " # # ------------Step 3: Policy Evaluation------------\n", " # pi*M_hat_I evaluated in M\n", " v_pi_star_Mhat_I_M_thresh_nsamples[run_id, n_traj_idx, ind, :] = _policy_evaluation_exact(pi=policy_star_Mhat_I,\n", " r=mdp.R,\n", " p=mdp.P,\n", " gamma=mdp.gamma)\n", "\n", " AF_sizes[ind] = np.count_nonzero(AF) \n", " \n", "(policy_star_M, V_star_M, _, \n", "V_star_M_seconds, V_star_M_iters) = value_iteration(mdp.R,\n", " mdp.P,\n", " max_iteration=max_iterations,\n", " seed=seed) \n", "# pi*M evaluated in M\n", "v_pi_star_M_M = _policy_evaluation_exact(pi=policy_star_M,\n", " r=mdp.R,\n", " p=mdp.P,\n", " gamma=mdp.gamma)\n", "\n", "value_loss_to_plot = np.zeros((len(n_trajectories), len(thresholds)))\n", "value_loss_to_plot_std = np.zeros((len(n_trajectories), len(thresholds)))\n", "value_loss_to_plot_CI = np.zeros((len(n_trajectories), len(thresholds)))\n", "for n_id in range(len(n_trajectories)):\n", " for _thresh in range(len(thresholds)):\n", " value_loss_raw_values = [] \n", " for run_id in range(nruns):\n", " sliced_result = v_pi_star_Mhat_I_M_thresh_nsamples[run_id, n_id, _thresh, :]\n", " value_loss_raw_values.append(np.linalg.norm(\n", " abs(v_pi_star_M_M - sliced_result)))\n", " value_loss_to_plot[n_id, _thresh] = np.mean(value_loss_raw_values)\n", " value_loss_to_plot_std[n_id, _thresh] = np.std(value_loss_raw_values)\n", " value_loss_to_plot_CI[n_id, _thresh] = value_loss_to_plot_std[n_id, _thresh]/np.sqrt(nruns)" ], "execution_count": 38, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "OwWVblmnYqv0", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 333 }, "outputId": "d2bf4025-a399-479f-ae64-764fc2c3b645" }, "source": [ "#@title Plotting Planning Value Loss Evaluation\n", "\n", "fig, ax1 = plt.subplots()\n", "x_axis = thresholds\n", "for i in range(value_loss_to_plot.shape[0]):\n", " plt.plot(x_axis, value_loss_to_plot[i, :], color = colors[i], label = 'n={}'.format(int(n_trajectories[i]/max_trajectory_length)),\n", " linewidth = 3.00, marker=markers[i], markersize=10)\n", " plt.fill_between(x_axis, value_loss_to_plot[i, :]-value_loss_to_plot_CI[i,:],\n", " value_loss_to_plot[i, :]+value_loss_to_plot_CI[i,:],\n", " facecolor=colors[i], edgecolor=colors[i], alpha=0.25)\n", "\n", "ax1.set_xticks([0, 0.25, 0.5, 0.75, 1.0])\n", "ax1.legend(loc='upper center', bbox_to_anchor=(0.5, -0.19),\n", " fancybox=True, shadow=True, ncol=7,\n", " facecolor='w', fontsize=10)\n", "ax1.set_xlabel(\"Threshold ($k$)\", fontsize=16)\n", "ax1.set_ylabel(\"$||V^*_M - V^{\\pi^{*}_{\\hat{M}_{{{\\mathcal{A} \\mathcal{F}}_{\\cal I}}}}}_M ||_2$\", fontsize=18) \n", "plt.title(\"Model Learning: Value Loss Analysis\")\n", "matplotlib.rc('axes', edgecolor='black')\n", "plt.show()" ], "execution_count": 39, "outputs": [ { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAE8CAYAAAD36gn/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsvXmcVNWZ//8+d6u9qveFpgFZujEiy4iAiChuo4NB3BKcxGWMk0lG49cYMxnzMyZGs05MonEyYxJNjDHBRBuMRtAghlFx17iLyNo0NL3Xvtzl/P6o7uouuoFGlla479erXrfq3HPvOffcqvrc5znnPEdIKSUuLi4uLi4uhxxlpCvg4uLi4uJypOKKsIuLi4uLywjhirCLi4uLi8sI4Yqwi4uLi4vLCOGKsIuLi4uLywjhirCLi4uLi8sI4YrwYcgll1zCqaee+qGPP/XUU7nkkksOYI0++hyJ1wzwk5/8hMbGRlpbW0e6Ki4fgkNx/+bPn8/ll19+0M5/pOOK8AHmhRdeoLGxkcbGRm677bYh8/z9738v5PnOd75ziGt44Oi71t/85jcjXZXDEsuymDdvHvPnz8dxnN3mW7t2LY2NjXz3u989hLU7cFx//fU0NjaSTCZHuiofiq997Ws0Nja6QuXyoXBF+CDh8Xh4+OGHh/zzbGpqwuPxjECtXHbHypUrufvuu0e6GkVomsaiRYvYuXMnzz777G7zPfTQQwBccMEFh6pqLr0kEgkef/xxxowZw/PPP09LS8tIV+mAs2rVKn75y1+OdDUOW1wRPkicdtppQ/55ZrNZVqxYwemnnz5CNTu8yeVy5HK5fT7OMAwMwzgINdo/+oR12bJlQ+5PJBKsWrWKY445hsbGxkNZNRdgxYoVpNNpbrvtNjRN2+19+jhjGAa6ro90NQ5bXBE+SEybNo3x48cP+lGuWrWKWCzGeeedN+RxlmXxi1/8grPPPpspU6YwZ84crr32WjZv3jwobzQa5cYbb2T27NlMnz6dSy65hLfeemu3dXr99df5whe+wKxZs5gyZQoLFy7kvvvu41BELo1Go/zgBz/gtNNOY8qUKZx44ol8/etfp729vSjfzp07+f73v8+iRYuYOXMmU6dOZdGiRfz+978fdM6f/exnNDY2sm7dOm699VbmzZvH1KlT2bBhA9u2baOxsZGf/exnPPnkk5x33nkce+yxnHzyyfzv//7voHMN1Sfc2NjIf/7nf/LKK69w8cUXM23aNObOnct3v/tdTNMcdI7HH3+cRYsWceyxx3LKKadw5513FlzFTU1NRXm3bt3Khg0b9tpuEyZMYNq0aaxatYp4PD5o/2OPPUYmkymygltbW/nud7/LokWLOO6445g6dSrnnnsuDzzwwF7LA7j44os544wzBqX3XcvDDz9clJ7JZLjzzjs566yzmDJlCrNnz+baa69l69atwypvX1i5ciWf+tSnmD59OjNmzOCSSy7hueeeG5Rv1apVXHzxxcyaNYtp06Zx6qmn8uUvf5m2trZCnvfee4+rrrqKefPmMWXKFObNm8cVV1zByy+/POz6NDU1MWPGDKZOncqCBQtYtmzZkL+nvjbdsWMH11xzDccddxwzZszgS1/60qDfwP7cv1tvvZWjjz6a7du3D9r3xhtv0NjYyJ133llI+9Of/sT5559fqM+ZZ57Jf/7nf5LJZAp5huoTHk77ugwPbaQrcDhz3nnnceeddxKPxwmFQkD+Rzt9+nSOOuqoIY+5/vrrWbFiBSeddBKf+cxnaG1t5f777+fZZ5/lj3/8Y+E40zT53Oc+x5tvvsl5553H1KlTeffdd/mXf/kXSkpKBp139erVXHPNNUyYMIErr7ySYDDI888/z6233sq2bdu44YYbDlo7xGIxlixZQltbGxdddBFHHXUULS0t3H///bz44os0NTURDocBWLduHX/9618588wzqa+vJ5vN8vjjj3PzzTfT09PDv//7vw86/1e/+lWCwSBXXnklUkoikUihG2DNmjU88MADLFmyhAsvvJBHHnmEn/zkJ9TU1LB48eK91v3dd9/lqquu4sILL2TRokU89dRT3HvvvUQiEa666qpCvscee4zrrruOsWPH8qUvfQlFUVi+fDmrV68e8ryXX345LS0trFu3bq91OP/88/nmN7/JX/7yF5YsWVK0r6mpCcMwOOecc4rq/NRTT3H66adTX19PJpPh8ccf56abbiIajfL5z39+r2UOl1wux+WXX84777zDeeedx+WXX05HRwd/+MMf+NSnPkVTUxOjRo06IGX99re/5Tvf+Q4NDQ1cffXVWJbFgw8+yBVXXMFPfvITzjrrLCD/sHD11Vczc+ZMrr76anw+Hzt27ODpp5+mra2Nqqoq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QQghhExG1B1NCCGElAkFYUIIIaRMKAgTQgghZUJBmBBCCCkTCsKEEEJImVAQJoQQQsqEgjAhhBBSJhSER6ivrw933303Fi9ejGOOOQaXXXYZ3nrrrUN67IYNG3DRRRfhqKOOwpIlS/DDH/4QmUxm0HkdHR341re+hUWLFuHYY4/Ftddeiy1bthT6RymJ0bxe8XgcDz/8MC6//HJ88pOfxHHHHYeLLroIv//978E5zzt33bp1aGpqGvR18sknF/PHKprRvr+uvPLKIV+H+++/f9C527Ztw1e/+lUce+yxWLhwIW6++Wa0tbUV48cpidG8Zrt37x7y9cp9PfbYY9a5E+k91t7ejpUrV+Kyyy7DMcccg6amJjQ3Nx/y4yfjZ1ix0YpZIyCEwI033oiWlhZ897vfRXV1NZ5++mlcc801WLt2LebPnz/sY//+97/j61//Os4991x85zvfwc6dO3Hfffehra0NDz74oHVeOp3GVVddBSEE/vu//xsulwuPPvoorrjiCvzhD39AbW1tKX7Ughjt67V3714888wzuOCCC3D99dfD4XDgtddew3/8x3+gubkZt99++6DH3H///aivr7du22y2ov1cxTKW9xcAzJo1C6tWrco7VlNTk3e7q6sLV1xxBaZOnYoHHngAuq7jJz/5CZYtW4bnn38eHo+n4D9XMY32NauursZvf/vbQcd//etf45VXXsHpp58+6L6J8B7buXMnXnrpJRx55JFYtGgR3njjjUN+7GT8DCsJQQ7Zq6++KhobG8WGDRusY5lMRpxxxhniuuuuO+BjL7zwQnHJJZcIzrl17NlnnxWNjY3i3XfftY499dRToqmpSTQ3N1vHent7xfHHHy/uueeewv0wJTDa1yuRSIhkMjno+G233Sbmz58v+vr6rGO///3vRWNjo9i8eXNhG18GY3l/XXHFFeLCCy886DVWrVolPvGJT4ju7m7r2I4dO8TcuXPFY489NvrGl8lYXrP9GYYhlixZIi6++OK84xPpPcYYs74f6c81GT/DSoG6o0fg1VdfRTAYxKc+9SnrmN1ux9lnn42///3vSCaTQz6ura0NmzZtwnnnnQdJkqzj55xzDmw2G/7v//4v7xrz58/HnDlzrGOBQACf+cxn8Oc//7kIP1XxjPb1crvdcLlcg44vWLAAhmFg3759RWtzOY329RrpNZYsWYJw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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "t3lzaMwFLi4D", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Helper function to plot affordance arrows.\n", "\n", "def plot_affordances_camera_ready(\n", " nstates, nactions, affordances, mdp, mdp_wall_locs, ax=None,\n", " headwidth=2.7, linewidths=1, scale=1.9, headlength=2,\n", " wall_color=(0, 0, 0, 1), grid_kwargs=None, figsize=(14, 8)):\n", " \"\"\"\n", " Plots the environment with walls.\n", " Args:\n", " nstates: Number of state in the mdp\n", " nactions: Number of actions in the mdp\n", " affordances: Affordances of shape |S| * |A|\n", " mdp: The mdp to plot\n", " mdp_wall_locs:Locations of the walls for plotting them in a different color\n", " ax: The axes to plot this on\n", " headwidth: quiver arguments for arrows\n", " linewidths: quiver arguments for arrows\n", " scale: quiver arguments for arrows\n", " headlength: quiver arguments for arrows\n", " wall_color: RGB color of the walls\n", " grid_kwargs: grid argrument specification.\n", " figsize: Dimensions of the figure.\n", "\n", " Returns:\n", " Visualization of the environment\n", " \"\"\"\n", " grid_kwargs = grid_kwargs or {}\n", " if ax is None:\n", " fig = plt.figure(figsize=figsize)\n", " ax = fig.add_subplot(111)\n", " plot_environment(\n", " mdp, ax,\n", " wall_locs=mdp_wall_locs,\n", " plot_grid=True,\n", " grid_kwargs=grid_kwargs,\n", " wall_color=wall_color)\n", " action_symbols = []\n", " for s in range(nstates):\n", " for a in range(nactions):\n", " one_hot_state = convert_int_rep_to_onehot(s, nstates)\n", " y_pos, x_pos = mdp.unflatten_state(one_hot_state)\n", " if (y_pos, x_pos) not in mdp_wall_locs:\n", " if affordances[s, a] == 1.0:\n", " left_arrow = (-0.8, 0)\n", " right_arrow = (0.8, 0)\n", " up_arrow = (0, -0.8)\n", " down_arrow = (0, 0.8)\n", " if a == actions.LEFT: # Left\n", " ax.quiver(\n", " x_pos,y_pos,*left_arrow, color=DEFAULT_ARROW_COLOR, alpha=1.0,\n", " angles='xy', scale_units='xy', scale=scale,\n", " headwidth=headwidth, linewidths=linewidths,\n", " headlength=headlength) #L\n", " if a == actions.RIGHT: #Right\n", " ax.quiver(\n", " x_pos,y_pos,*right_arrow, color=DEFAULT_ARROW_COLOR, alpha=1.0,\n", " angles='xy', scale_units='xy', scale=scale,\n", " headwidth=headwidth, linewidths=linewidths,\n", " headlength=headlength) #R\n", " if a == actions.UP: #Up\n", " ax.quiver(\n", " x_pos,y_pos,*up_arrow, color=DEFAULT_ARROW_COLOR, alpha=1.0,\n", " angles='xy', scale_units='xy', scale=scale,\n", " headwidth=headwidth, linewidths=linewidths,\n", " headlength=headlength) #U\n", " if a == actions.DOWN: #Down\n", " ax.quiver(\n", " x_pos,y_pos,*down_arrow,color=DEFAULT_ARROW_COLOR, alpha=1.0,\n", " angles='xy', scale_units='xy', scale=scale,\n", " headwidth=headwidth, linewidths=linewidths,\n", " headlength=headlength) #D\n", "\n", " return ax\n" ], "execution_count": 40, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "0bM1DormLHHr", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 390 }, "outputId": "7e2c289a-03bc-4602-e066-373e317d2d8d" }, "source": [ "#@title Plot affordances computed from transition matrix.\n", "intent_name = 'collection' #@param [\"collection\", \"up\", \"left\"]\n", "world_name = 'pachinko' #@param [\"pachinko\", \"one_room\", \"four_room\"]\n", "grid_size = 7#@param {type:'integer'}\n", "headwidth = 5#@param {type:'number'}\n", "\n", "if world_name == 'one_room':\n", " mdp, mdp_wall_locs = build_one_room_gridsize(grid_size=grid_size)\n", "elif world_name == 'pachinko':\n", " mdp, mdp_wall_locs = build_pachinko_gridsize(grid_size=grid_size)\n", "elif world_name == 'four_room':\n", " mdp, mdp_wall_locs = build_four_rooms_example()\n", "else:\n", " raise ValueError('Unknown environment!')\n", "\n", "AF = _compute_affordances(\n", " mdp,\n", " mdp.state_space,\n", " mdp.action_space,\n", " intent_name=intent_name,\n", " threshold=0.0,\n", " mdp_wall_locs=mdp_wall_locs)\n", "\n", "if intent_name == 'up':\n", " AF[mdp.terminal_states[0], :] = 0\n", " AF[mdp.terminal_states[0], actions.LEFT] = 1\n", "\n", "plot_affordances_camera_ready(\n", " mdp.state_space, \n", " mdp.action_space, \n", " affordances=AF, mdp=mdp,\n", " mdp_wall_locs=mdp_wall_locs,\n", " linewidths=0,\n", " headwidth=headwidth,\n", " headlength=4,\n", " wall_color=(220, 220, 220, 0.5),\n", " figsize=(5,5),\n", " grid_kwargs={'color':(220 / 255, 220 / 255, 220 / 255, 0.8)}\n", " )\n", "plt.axis('off')\n", "plt.tight_layout()" ], "execution_count": 43, "outputs": [ { "output_type": "stream", "text": [ "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" ], "name": "stderr" }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "HbXIGuRCX35O", "colab_type": "text" }, "source": [ "# Sec 7.1 Learn Affordances" ] }, { "cell_type": "code", "metadata": { "id": "K3p1iqV8waWh", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Helper function to collect data from environment.\n", "class Intent(enum.IntEnum):\n", " completed = 1.0\n", " incomplete = 0.0\n", "\n", "def get_trajectories(\n", " mdp, num_rollouts=500, max_trajectory_length=50, policy=None,\n", " intent_name='collection', random_starts=False, seed=None):\n", " \"\"\"Takes trajectory samples from an environment.\n", "\n", " Args:\n", " mdp: The MDP to evaluate the intent on.\n", " num_rollouts: The total number of trajectories to sample.\n", " max_trajectory_length: The maximum length of the trajectory.\n", " policy: The policy to sample using. If none is given a random policy\n", " is used. The policy must take a single argument, the one hot\n", " representation of the state. If using a tensorflow function make sure to\n", " handle batching within the policy itself.\n", " intent_name: The name of the intent to evalaute.\n", " random_starts: randomly sampled start state per rollout\n", " seed: set a specific seed\n", "\n", " Returns:\n", " The trajectories collected from the environment:\n", " This is a 4-tuple containing the batch of state, action, state' and intent\n", " target.\n", " Human Readable transitions:\n", " A set containing the unique transitions in the trajectory batch and if the\n", " intent was completed.\n", " \"\"\"\n", " if seed is not None:\n", " np.random.seed(seed)\n", " random.seed(seed)\n", " mdp.set_seed(seed)\n", "\n", " trajectory = []\n", " if random_starts:\n", " s_t = get_randomized_state(mdp)\n", " else:\n", " s_t = mdp.reset()\n", " trajectory_length = 0\n", " human_readable = set()\n", " if policy is None:\n", " def policy(_):\n", " return np.random.randint(mdp.action_space)\n", "\n", " for _ in range(num_rollouts):\n", " action = policy(s_t)\n", " s_tp1, reward, done, _ = mdp.step(action)\n", " state_int = get_current_state_integer(s_t)\n", " intent = _get_intent_completed(\n", " mdp, s_t, action, s_tp1, intent_name=intent_name)\n", "\n", " # Human readable vesion:\n", " human_readable.add((\n", " mdp.unflatten_state(s_t),\n", " Actions(action),\n", " mdp.unflatten_state(s_tp1),\n", " Intent(intent)))\n", "\n", " # Prepare things for tensorflow:\n", " s_tf = tf.constant(s_t.astype(np.float32))\n", " s_tp1_tf = tf.constant(s_tp1.astype(np.float32))\n", " a_tf = tf.one_hot(action, mdp.action_space)\n", " # The mask will only consider the action that was actually taken.\n", " mask_tf = tf.cast(a_tf, tf.float32)\n", " # Computing targets\n", " if intent > 0.0:\n", " # if a completed the intent I_a(s')\n", " targets = tf.one_hot(action, mdp.action_space)\n", " else:\n", " # vector of zeros if action a completed no intent.\n", " targets = tf.zeros_like(a_tf)\n", "\n", " trajectory.append((\n", " s_tf, a_tf, s_tp1_tf, targets)\n", " )\n", " trajectory_length += 1\n", " if done or trajectory_length > max_trajectory_length:\n", " if random_starts:\n", " s_t = get_randomized_state(mdp)\n", " else:\n", " s_t = mdp.reset()\n", " else:\n", " s_t = s_tp1\n", "\n", " trajectory = list(map(tf.stack, zip(*trajectory)))\n", " \n", " return trajectory, human_readable" ], "execution_count": 44, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "4GMq1t77eigL", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Function: Populate Learned Affordances\n", "def get_learned_affordances(mdp, affordnet, classification_threshold=0.55):\n", " '''Gets the learned affordances from the environment.\n", " Args:\n", " mdp: The mdp to get the affordances from.\n", " affordnet: The affordance network.\n", " classification_threshold: accuracy of the classifier\n", "\n", " Returns:\n", " affordances in the form of a |S| * |A|\n", " '''\n", " n_states, n_actions = mdp.state_space, mdp.action_space\n", " affordances = np.zeros((n_states, n_actions))\n", " for s in range(n_states):\n", " action_prob_predictions = affordnet(tf.eye(n_states))[s]\n", " actions_affordable = tf.where(\n", " tf.greater_equal(\n", " action_prob_predictions, tf.constant(classification_threshold)))[:,-1]\n", " for ind, a in enumerate(actions_affordable.numpy()):\n", " affordances[s,a] = 1.0\n", " return affordances" ], "execution_count": 45, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "t789yH3IkGjR", "colab_type": "code", "cellView": "form", "colab": {} }, "source": [ "#@title Function: Affordance training code.\n", "def train_afford_net(\n", " mdp, network, optimizer,\n", " intent_name='collection',\n", " num_train_steps=10,\n", " fresh_data=True,\n", " num_rollouts=1,\n", " max_trajectory_length=100,\n", " optimize_performance=False,\n", " debug=False,\n", " print_losses=False,\n", " random_starts=False,\n", " passing_data=False,\n", " trajectories=None,\n", " unique_transitions=None):\n", " \"\"\"Trains an affordance network.\n", "\n", " Args:\n", " mdp: The mdp to collect training data from.\n", " network: The affordance network.\n", " optimizer: The optimizer to use for training.\n", " intent_name: The name of the intent to train affordances for.\n", " num_train_steps: The total number of training steps.\n", " fresh_data: Use fresh data at every before completing a training step.\n", " num_rollouts: The number of rollout trajectories per training step.\n", " max_trajectory_length: The maximum length of each trajectory\n", " optimizer_performance: Use tf.function to speed up training. (Right now\n", " there are no apparent speed benefits of this function...?)\n", " debug: Debug mode prints out the human readable transitions.\n", " print_losses: Prints out the losses at every training step.\n", " random_starts: randomly sampled start state per rollout\n", " passing_data: set True if previously collected data is being passed\n", " trajectories: tf trajectories from previously collected data\n", " unique_transitions: tf unique_transitions from previously collected data\n", " \"\"\" \n", "\n", " def _train_step(trajectory):\n", " with tf.GradientTape() as tape:\n", " s_t, a_t, s_tp1, intent_target = trajectory\n", " preds = network(s_t)\n", " mask = tf.cast(a_t, tf.float32)\n", "\n", " intent_target = tf.reshape(intent_target, (-1, 1))\n", " preds = tf.reshape(preds, (-1, 1))\n", " mask = tf.reshape(mask, (-1,))\n", "\n", " loss = tf.keras.losses.binary_crossentropy(intent_target, preds)\n", " masked_loss = (loss * mask)\n", "\n", " total_loss = tf.reduce_sum(masked_loss) / tf.reduce_sum(1-mask)\n", " grads = tape.gradient(total_loss, network.trainable_variables)\n", " optimizer.apply_gradients(zip(grads, network.trainable_variables))\n", "\n", " return total_loss\n", "\n", " if optimize_performance and not debug:\n", " print('Training step has been optimized.')\n", " _train_step = tf.function(_train_step)\n", "\n", " initial_data_collected = False\n", " for i in range(num_train_steps):\n", " if not initial_data_collected or fresh_data:\n", " initial_data_collected = True\n", " running_time = time.time()\n", " if not passing_data:\n", " trajectories, unique_transitions = get_trajectories(\n", " mdp, num_rollouts=num_rollouts,\n", " max_trajectory_length=max_trajectory_length,\n", " intent_name=intent_name,\n", " random_starts=random_starts)\n", " else:\n", " trajectories = trajectories\n", " unique_transitions = unique_transitions\n", " collection_running_time = time.time() - running_time\n", " if debug: print('unique_transitions:', unique_transitions)\n", " running_time = time.time()\n", " loss = _train_step(trajectories)\n", " if debug or print_losses: \n", " print(\n", " 'loss:', loss.numpy().item(),\n", " 'collection_loop_time', collection_running_time,\n", " 'train_loop_time', time.time() - running_time)\n" ], "execution_count": 46, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "bNMt4bEJKFJz", "colab_type": "code", "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 407 }, "outputId": "873aedbb-2205-4261-e513-b64a69753349" }, "source": [ "intent_name = 'collection' #@param {type:'string'}\n", "world_name = 'pachinko' #@param {type:'string'}\n", "grid_size = 9#@param {type:'integer'}\n", "headwidth = 5#@param {type:'number'}\n", "classification_threshold = 0.95#@param {type:'number'}\n", "num_transitions = 2000#@param {type:'number'}\n", "max_trajectory_length = 10#@param {type:'number'}\n", "\n", "if world_name == 'one_room':\n", " mdp, mdp_wall_locs = build_one_room_gridsize(grid_size=grid_size)\n", "elif world_name == 'pachinko':\n", " mdp, mdp_wall_locs = build_pachinko_gridsize(grid_size=grid_size)\n", "elif world_name == 'four_room':\n", " mdp, mdp_wall_locs = build_four_rooms_example()\n", "\n", "\n", "network = tf.keras.layers.Dense(\n", " mdp.action_space,\n", " activation=tf.keras.activations.sigmoid)\n", "\n", "sgd = tf.keras.optimizers.Adam(learning_rate=0.1)\n", "\n", "train_afford_net(\n", " mdp, \n", " network,\n", " sgd,\n", " intent_name=intent_name,\n", " num_train_steps=5000,\n", " num_rollouts=num_transitions,\n", " fresh_data=False,\n", " max_trajectory_length=max_trajectory_length,\n", " debug=False,\n", " print_losses=False,\n", " optimize_performance=True,\n", " random_starts=True)\n", "\n", "AF_learned = get_learned_affordances(\n", " mdp,\n", " affordnet=network, \n", " classification_threshold=0.95)\n", "\n", "plot_affordances_camera_ready(\n", " mdp.state_space, \n", " mdp.action_space, \n", " affordances=AF_learned, mdp=mdp,\n", " mdp_wall_locs=mdp_wall_locs,\n", " linewidths=0,\n", " headwidth=headwidth,\n", " headlength=4,\n", " wall_color=(220,220,220,0.5),\n", " figsize=(5,5),\n", " grid_kwargs={'color':(220/255,220/255,220/255,0.8)}\n", " )\n", "plt.axis('off')\n", "plt.tight_layout()" ], "execution_count": 47, "outputs": [ { "output_type": "stream", "text": [ "Training step has been optimized.\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" ], "name": "stderr" }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [] } } ] } ] } ================================================ FILE: affordances_theory/README.md ================================================ # Code for "What can I do here? A theory of affordances in reinforcement Learning. This repository contains code that accompanies the paper "What can I do here? A theory of affordances in reinforcement learning". The iPython notebook AffordancesInDiscreteEnvironment.ipynb covers the experiments in Section 6 and Learning affordances in discrete environments. The iPython notebook AffordancesInContinuousEnvironment.ipynb covers the experiments in Section 7. ================================================ FILE: affordances_theory/requirements.txt ================================================ tensorflow==2.1.0 tensorflow_probability=0.7.0 matplotlib==3.1.2 numpy==1.17.5 ================================================ FILE: alphafold_casp13/README.md ================================================ # AlphaFold 1 This package provides an implementation of the contact prediction network used in AlphaFold 1, associated model weights and CASP13 dataset as used for CASP13 (2018) and published in Nature. **This is completely different code from that used in AlphaFold 2 which was used in CASP14 (2020). You can find AlphaFold 2 at https://github.com/deepmind/alphafold.** Any publication that discloses findings arising from using this source code must cite *Improved protein structure prediction using potentials from deep learning* by Andrew W. Senior, Richard Evans, John Jumper, James Kirkpatrick, Laurent Sifre, Tim Green, Chongli Qin, Augustin Žídek, Alexander W. R. Nelson, Alex Bridgland, Hugo Penedones, Stig Petersen, Karen Simonyan, Steve Crossan, Pushmeet Kohli, David T. Jones, David Silver, Koray Kavukcuoglu, Demis Hassabis. The paper abstract can be found on Nature's site [10.1038/s41586-019-1923-7](https://www.nature.com/articles/s41586-019-1923-7) and the full text can be accessed directly at https://rdcu.be/b0mtx. ## Setup **This code can't be used to predict structure of an arbitrary protein sequence. It can be used to predict structure only on the CASP13 dataset (links below).** The feature generation code is tightly coupled to our internal infrastructure as well as external tools, hence we are unable to open-source it. We give guide as to the features used for those accustomed to computing them below. See also [issue #18](https://github.com/deepmind/deepmind-research/issues/28) for more details. This code works on Linux, we don't support other operating systems. ### Dependencies * Python 3.6+. * [Abseil 0.8.0](https://github.com/abseil/abseil-py) * [Numpy 1.16](https://numpy.org) * [Six 1.12](https://pypi.org/project/six/) * [Setuptools 41.0.0](https://setuptools.readthedocs.io/en/latest/) * [Sonnet 1.35](https://github.com/deepmind/sonnet) * [TensorFlow 1.14](https://tensorflow.org). Not compatible with TensorFlow 2.0+. * [TensorFlow Probability 0.7.0](https://www.tensorflow.org/probability) You can set up Python virtual environment (you might need to install the `python3-venv` package first) with all needed dependencies inside the forked `deepmind_research` repository using: ```shell python3 -m venv alphafold_venv source alphafold_venv/bin/activate pip install wheel pip install -r alphafold_casp13/requirements.txt ``` Alternatively, you can just use the `run_eval.sh` script provided which will run these commands for you. See the section on running the system below for more details. ## Data While the code is licensed under the Apache 2.0 License, the AlphaFold weights and data are made available for non-commercial use only under the terms of the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license. You can find details at: https://creativecommons.org/licenses/by-nc/4.0/legalcode You can download the data from: * http://bit.ly/alphafold-casp13-data-license: The data license file. * http://bit.ly/alphafold-casp13-data: The dataset to reproduce AlphaFold's CASP13 results. * http://bit.ly/alphafold-casp13-weights: The model checkpoints. ### Input data The dataset to reproduce AlphaFold's CASP13 results can be downloaded from http://bit.ly/alphafold-casp13-data. The dataset is in a single zip file called `casp13_data.zip` which has about **43.5 GB**. The zip file contains 1 directory for each CASP13 target and a `LICENSE.txt` file. Each target directory contains the following files: 1. `TARGET.tfrec` file. This is a [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord) file with serialized tf.train.Example protocol buffers that contain the features needed to run the model. 1. `contacts/TARGET.pickle` file(s) with the predicted distogram. These pickles were pickled using Python 2, so to unpickle them in Python 3 you will need to set the `encoding='latin1'` optional argument for `pickle.load()`. 1. `contacts/TARGET.rr` file(s) with the contact map derived from the predicted distogram. The RR format is described on the [CASP website](http://predictioncenter.org/casp13/index.cgi?page=format#RR). Note that for **T0999** the target was manually split based on hits in HHSearch into 5 sub-targets, hence there are 5 distograms (`contacts/T0999s{1,2,3,4,5}.pickle`) and 5 RR files (`contacts/T0999s{1,2,3,4,5}.rr`). The `contacts/` folder is not needed to run the model, these files are included only for convenience so that you don't need to run the inference for CASP13 targets to get the contact map. ### Model checkpoints The model checkpoints can be downloaded from http://bit.ly/alphafold-casp13-weights. The model checkpoints are in a zip file called `alphafold_casp13_weights.zip` which has about **210 MB**. The zip file contains: 1. A directory `873731`. This contains the weights for the distogram model. 1. A directory `916425`. This contains the weights for the background distogram model. 1. A directory `941521`. This contains the weights for the torsion model. 1. `LICENSE.txt`. The model checkpoints have a non-commercial license which is defined in this file. Each directory with model weights contains a number of different model configurations. Each model has a config file and associated weights. There is only one torsion model. Each model directory also contains a stats file that is used for feature normalization specific to that model. ## Distogram prediction ### Running the system You can use the `run_eval.sh` script to run the entire Distogram prediction system. There are a few steps you need to start with: 1. Download the input data as described above. Unpack the data in the directory with the code. 1. Download the model checkpoints as described above. Unpack the data. 1. In `run_eval.sh` set the following: * `DISTOGRAM_MODEL` to the path to the directory with the distogram model. * `BACKGROUND_MODEL` to the path to the directory with the background model. * `TORSION_MODEL` to the path to the directory with the torsion model. * `TARGET` to the name of the target. * `TARGET_PATH` to the path to the directory with the target input data. * `OUTPUT_DIR` is by default set to a new directory with a timestamp within your home directory. Then run `alphafold_casp13/run_eval.sh` from the `deepmind_research` parent directory (you will get errors if you try running `run_eval.sh` directly from the `alphafold_casp13` directory). The contact prediction works in the following way: 1. 4 replicas (by *replica* we mean a configuration file describing the network architecture and a snapshot with the network weights), each with slightly different model configuration, are launched to predict the distogram. 1. 4 replicas, each with slightly different model configuration are launched to predict the background distogram. 1. 1 replica is launched to predict the torsions. 1. The predictions from the different replicas are averaged together using `ensemble_contact_maps.py`. 1. The predictions for the 64 × 64, 128 × 128 and 256 × 256 distogram crops are pasted together using `paste_contact_maps.py`. When running `run_eval.sh` the output has the following directory structure: * **distogram/**: Contains 4 subfolders, one for each replica. Each of these contain the predicted ASA, secondary structure and a pickle file with the distogram for each crop (see below for more details). It also contains an `ensemble` directory with the ensembled distograms. * **background_distogram/**: Contains 4 subfolders, one for each replica. Each of these contain a pickle file with the background distogram for each crop. It also contains an `ensemble` directory with the ensembled background distograms. * **torsion/**: Contains 1 subfolder as there was only a single replica. This folder contains contains the predicted ASA, secondary structure, backbone torsions and a pickle file with the distogram for each crop. It also contains an `ensemble` directory, which contains a copy of the predicted output as there is only a single replica in this case. * **pasted/**: Contains distograms obtained from the ensembled distograms by pasting. An RR contact map file is computed from this pasted distogram. **This is the final distogram that was used in the subsequent AlphaFold folding pipeline in CASP13.** ### Distogram output format The distogram is a Python pickle file with a dictionary containing the following fields: * `min_range`: The minimum range in Angstroms to consider in distograms. * `max_range`: The range in Angstroms to consider in distograms, see `num_bins` below for clarification. The upper end of the distogram is `min_range + max_range`. * `num_bins`: The number of bins in the distance histogram being predicted. We divide the interval from `min_range` to `min_range + max_range` into this many bins. The distograms were trained so that distances lower than `min_range` were counted in the lowest bin and distances higher than `min_range + max_range` were added to the final bin. The `num_bins - 1` boundaries between bins are thus `np.linspace(0, max_range, num_bins + 1, endpoint=True)[1:-1] + min_range`. * `sequence`: The target sequence of amino acids of length `L`. * `target`: The name of the target. * `domain`: The name of the target including the domain name. * `probs`: The distogram as a Numpy array of shape `[L, L, num_bins]`. ## Data splits We used a version of [PDB](https://www.rcsb.org/) downloaded on 2018-03-15. The train/test split can be found in the `train_domains.txt` and `test_domains.txt` files in this repository. The split is based on the [CATH 2018-03-16](https://www.cathdb.info/) database. ## Features There is currently no plan to open source the feature generation code as it is tightly coupled to our internal infrastructure as well as external tools which we cannot open source. Some features are needed only as placeholders to construct the model. These can be set to all zeros when running the inference. Such features are marked in the table below as not needed and you can just fill them with zeros when running inference. The table below provides an overview of the features we used to make it possible to reconstruct our feature generation code. Some features that require more thorough explanation are explained in the section below the table. Note that `NR` stands for number of residues, i.e. the length of the amino acid sequence: | Name | Needed | TF DType | Shape | Description | |-----------------------------------|:------:|----------|-----------------|------------------------------------------------------------------------------------------------------------------------------| | `aatype` | ✔️ | float32 | `(NR, 21)` | One hot encoding of amino acid types. The mapping is `ARNDCQEGHILKMFPSTWYVX -> range(21)`. See below. | | `alpha_mask` | ❌ | int64 | `(NR, 1)` | Mask for `alpha_positions`. | | `alpha_positions` | ❌ | float32 | `(NR, 3)` | `(x, y, z)` Carbon Alpha coordinates. | | `beta_mask` | ❌ | int64 | `(NR, 1)` | Mask for `beta_positions`. | | `beta_positions` | ❌ | float32 | `(NR, 3)` | `(x, y, z)` Carbon Beta coordinates. | | `between_segment_residues` | ❌ | int64 | `(NR, 1)` | The number of between segment residues (BSR) at the next position. E.g. `ABCXXD` (`XX` is BSR) would be `[0,0,2,0]`. | | `chain_name` | ❌ | string | `(1)` | The chain name. E.g. 'A', 'B', ... | | `deletion_probability` | ✔️ | float32 | `(NR, 1)` | The fraction of sequences that had a deletion at this position. See below. | | `domain_name` | ❌ | string | `(1)` | The domain name. | | `gap_matrix` | ✔️ | float32 | `(NR, NR, 1)` | Covariation signal from the gapped states, this gives an indication of the variance induced due to gapped states. See below. | | `hhblits_profile` | ❌ | float32 | `(NR, 22)` | A profile (probability distribution over amino acid types) computed using HHBlits MSA. Encoding: 20 amino acids + 'X' + '-'. | | `hmm_profile` | ✔️ | float32 | `(NR, 30)` | The HHBlits HHM profile (from the `-ohhm` HHBlits output file). Asterisks in the output are replaced by 0.0. See below. | | `key` | ❌ | string | `(1)` | The unique id of the protein. | | `mutual_information` | ❌ | float32 | `(NR, NR, 1)` | The average product corrected mutual information. See https://doi.org/10.1093/bioinformatics/btm604. | | `non_gapped_profile` | ✔️ | float32 | `(NR, 21)` | A profile from amino acids only (discounting gaps). See below. | | `num_alignments` | ✔️ | int64 | `(NR, 1)` | The number of HHBlits multiple sequence alignments. Has to be repeated `NR` times. See below. | | `num_effective_alignments` | ❌ | float32 | `(1)` | The number of effective alignments (neff at 62 % sequence similarity). | | `phi_angles` | ❌ | float32 | `(NR, 1)` | The phi angles. | | `phi_mask` | ❌ | int64 | `(NR, 1)` | Mask for `phi_angles`. | | `profile` | ❌ | float32 | `(NR, 21)` | A profile (probability distribution over amino acid types) computed using PSI-BLAST. Equivalent to the output of ChkParse. | | `profile_with_prior` | ✔️ | float32 | `(NR, 22)` | A profile computed using HHBlits which takes into account priors and Blosum matrix. See equation 5 in https://doi.org/10.1093/nar/25.17.3389. | | `profile_with_prior_without_gaps` | ✔️ | float32 | `(NR, 21)` | Same as `profile_with_prior` but without gaps included. | | `pseudo_bias` | ✔️ | float32 | `(NR, 22)` | The bias computed in the MSA pseudolikelihood computation. | | `pseudo_frob` | ✔️ | float32 | `(NR, NR, 1)` | Frobenius norm of `pseudolikelihood` (gaps not included). Similar to the output of CCMPred. | | `pseudolikelihood` | ✔️ | float32 | `(NR, NR, 484)` | The weights computed in the MSA pseudolikelihood computation. | | `psi_angles` | ❌ | float32 | `(NR, 1)` | The psi angles. | | `psi_mask` | ❌ | int64 | `(NR, 1)` | Mask for `psi_angles`. | | `residue_index` | ✔️ | int64 | `(NR, 1)` | Index of each residue giong from 0 to `NR - 1`. See below. | | `resolution` | ❌ | float32 | `(1)` | The protein structure resolution. | | `reweighted_profile` | ✔️ | float32 | `(NR, 22)` | Profile where sequences are reweighted to weight rarer sequences higher. See below. | | `sec_structure` | ❌ | int64 | `(NR, 8)` | Secondary structure generated by DSSP and one-hot encoded by the mapping `-HETSGBI -> range(8)`. | | `sec_structure_mask` | ❌ | int64 | `(NR, 1)` | Mask for `sec_structure_mask`. | | `seq_length` | ✔️ | int64 | `(NR, 1)` | The length of the amino acid sequence. Has to be repeated `NR` times. See below. | | `sequence` | ✔️ | string | `(1)` | The amino acid sequence (1-letter amino acid encoding). See below. | | `solv_surf` | ❌ | float32 | `(NR, 1)` | Relative solvent accessible area computed using DSSP and then normalized by amino acid maximum accessibility. | | `solv_surf_mask` | ❌ | int64 | `(NR, 1)` | Mask for `solv_surf`. | | `superfamily` | ❌ | string | `(1)` | The superfamily CATH code. | ### More details on needed features #### `aatype` One hot encoding of amino acid types. The following code converts an amino acid string into the one-hot encoding: ```python def sequence_to_onehot(sequence): """Maps the given sequence into a one-hot encoded matrix.""" mapping = {aa: i for i, aa in enumerate('ARNDCQEGHILKMFPSTWYVX')} num_entries = max(mapping.values()) + 1 one_hot_arr = np.zeros((len(sequence), num_entries), dtype=np.int32) for aa_index, aa_type in enumerate(sequence): aa_id = mapping[aa_type] one_hot_arr[aa_index, aa_id] = 1 return one_hot_arr ``` #### `deletion_probability` The fraction of sequences that had an insert state (denoted by a lowercase letter in the A3M format) at this position. We used the following code to compute it from the HHBlits MSA in the A3M format: ```python deletion_matrix = [] for msa_sequence in hhblits_a3m_sequences: deletion_vec = [] deletion_count = 0 for j in msa_sequence: if j.islower(): deletion_count += 1 else: deletion_vec.append(deletion_count) deletion_count = 0 deletion_matrix.append(deletion_vec) deletion_matrix = np.array(deletion_matrix) deletion_matrix[deletion_matrix != 0] = 1.0 deletion_probability = deletion_matrix.sum(axis=0) / len(deletion_matrix) ``` #### `gap_matrix` Covariation signal from the gapped states, this gives an indication of the variance induced due to gapped states. Example: ``` MSA = A A C D B D F J G B M A - - C D B D F J G B M A A A C D B - - J G B M A gap_count = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]] gap_matrix = np.matmul(gap_count.T, gap_count) ``` #### `hmm_profile` The HHBlits HHM profile (from the `-ohhm` HHBlits output file). Asterisks in the output are replaced by 0.0. The following code parses the HHM file: ```python def extract_hmm_profile(hhm_file, sequence, asterisks_replace=0.0): """Extracts information from the hmm file and replaces asterisks.""" profile_part = hhm_file.split('#')[-1] profile_part = profile_part.split('\n') whole_profile = [i.split() for i in profile_part] # This part strips away the header and the footer. whole_profile = whole_profile[5:-2] gap_profile = np.zeros((len(sequence), 10)) aa_profile = np.zeros((len(sequence), 20)) count_aa = 0 count_gap = 0 for line_values in whole_profile: if len(line_values) == 23: # The first and the last values in line_values are metadata, skip them. for j, t in enumerate(line_values[2:-1]): aa_profile[count_aa, j] = ( 2**(-float(t) / 1000.0) if t != '*' else asterisks_replace) count_aa += 1 elif len(line_values) == 10: for j, t in enumerate(line_values): if j <= 6: gap_profile[count_gap, j] = ( 2**(-float(t) / 1000.0) if t != '*' else asterisks_replace) else: # Neff_M, Neff_I, and Neff_D are given in units of 0.001. gap_profile[count_gap, j] = float(t) / 1000.0 count_gap += 1 elif not line_values: pass else: raise ValueError('Wrong length of line %s hhm file. Expected 0, 10 or 23' 'got %d'%(line_values, len(line_values))) hmm_profile = np.hstack([aa_profile, gap_profile]) assert len(hmm_profile) == len(sequence) return hmm_profile ``` #### `non_gapped_profile` A profile from amino acids only (discounting gaps). ```python def non_gapped_profile(amino_acids): """Computes a profile from only amino acids and discounting gaps.""" profile = np.zeros(21) for aa in amino_acids: if aa != 21: # Ignore gaps. profile[aa] += 1. return profile / np.sum(profile) ``` #### `num_alignments` The number of HHBlits multiple sequence alignments. Has to be repeated `NR` times. For example, if there are 10 alignments for a sequence of length 8, then `num_alignments = [[10], [10], [10], [10], [10], [10], [10], [10]]`. #### `pseudo_frob` This feature collapses the 484 channels of pseudolikelihood into one by taking the Frobenius norm of the 484 channels and then subtracting the Average Product Correction of the computed Frobenius norm. The Frobenius norm does not take into account the 22nd gap state. #### `pseudolikelihood` Parameters of a Potts Model coupling the amino acid types of particular residues estimated by pseudolikelihood. See https://doi.org/10.1103/PhysRevE.87.012707 for more details. #### `residue_index` Index of each residue giong from 0 to `NR - 1`. For example, the sequence `AACR` has `residue_index = [[0], [1], [2], [3]]`. #### `reweighted_profile` Profile where sequences are reweighted to weight rarer sequences higher. The sequence weights are calculated like this: ```python def sequence_weights(sequence_matrix): """Compute sequence reweighting to weight rarer sequences higher.""" num_rows, num_res = sequence_matrix.shape cutoff = 0.62 * num_res weights = np.ones(num_rows, dtype=np.float32) for i in range(num_rows): for j in range(i + 1, num_rows): similarity = (sequence_matrix[i] == sequence_matrix[j]).sum() if similarity > cutoff: weights[i] += 1 weights[j] += 1 return 1.0 / weights ``` #### `seq_length` The length of the amino acid sequence. Has to be repeated `NR` times. For example, the sequence `AACR` would have `seq_length = [[4], [4], [4], [4]]`. #### `sequence` The amino acid sequence (1-letter amino acid encoding). For example, a protein with Alanine, Lysine, Arginine has `sequence = 'AKR'`. # Disclaimer This is not an official Google product. ================================================ FILE: alphafold_casp13/asa_output.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Class for predicting Accessible Surface Area.""" import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import class ASAOutputLayer(object): """An output layer to predict Accessible Surface Area.""" def __init__(self, name='asa'): self.name = name def compute_asa_output(self, activations): """Just compute the logits and outputs given activations.""" asa_logits = tf.contrib.layers.linear( activations, 1, weights_initializer=tf.random_uniform_initializer(-0.01, 0.01), scope='ASALogits') self.asa_output = tf.nn.relu(asa_logits, name='ASA_output_relu') return asa_logits ================================================ FILE: alphafold_casp13/config_dict.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities for storing configuration flags.""" import json class ConfigDict(dict): """Configuration dictionary with convenient dot element access.""" def __init__(self, *args, **kwargs): super(ConfigDict, self).__init__(*args, **kwargs) for arg in args: if isinstance(arg, dict): for key, value in arg.items(): self._add(key, value) for key, value in kwargs.items(): self._add(key, value) def _add(self, key, value): if isinstance(value, dict): self[key] = ConfigDict(value) else: self[key] = value def __getattr__(self, attr): try: return self[attr] except KeyError as e: raise AttributeError(e) def __setattr__(self, key, value): self.__setitem__(key, value) def __setitem__(self, key, value): super(ConfigDict, self).__setitem__(key, value) self.__dict__.update({key: value}) def __delattr__(self, item): self.__delitem__(item) def __delitem__(self, key): super(ConfigDict, self).__delitem__(key) del self.__dict__[key] def to_json(self): return json.dumps(self) @classmethod def from_json(cls, json_string): return cls(json.loads(json_string)) ================================================ FILE: alphafold_casp13/contacts.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Code to run distogram inference.""" import collections import os import time from absl import app from absl import flags from absl import logging import numpy as np import six import sonnet as snt import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import from alphafold_casp13 import config_dict from alphafold_casp13 import contacts_experiment from alphafold_casp13 import distogram_io from alphafold_casp13 import secstruct flags.DEFINE_string('config_path', None, 'Path of the JSON config file.') flags.DEFINE_string('checkpoint_path', None, 'Checkpoint path for evaluation.') flags.DEFINE_boolean('cpu', False, 'Force onto CPU.') flags.DEFINE_string('output_path', None, 'Base path where all output files will be saved to.') flags.DEFINE_string('eval_sstable', None, 'Path of the SSTable to read the input tf.Examples from.') flags.DEFINE_string('stats_file', None, 'Path of the statistics file to use for normalization.') FLAGS = flags.FLAGS # A named tuple to store the outputs of a single prediction run. Prediction = collections.namedtuple( 'Prediction', [ 'single_message', # A debugging message. 'num_crops_local', # The number of crops used to make this prediction. 'sequence', # The amino acid sequence. 'filebase', # The chain name. All output files will use this name. 'softmax_probs', # Softmax of the distogram. 'ss', # Secondary structure prediction. 'asa', # ASA prediction. 'torsions', # Torsion prediction. ]) def evaluate(crop_size_x, crop_size_y, feature_normalization, checkpoint_path, normalization_exclusion, eval_config, network_config): """Main evaluation loop.""" experiment = contacts_experiment.Contacts( tfrecord=eval_config.eval_sstable, stats_file=eval_config.stats_file, network_config=network_config, crop_size_x=crop_size_x, crop_size_y=crop_size_y, feature_normalization=feature_normalization, normalization_exclusion=normalization_exclusion) checkpoint = snt.get_saver(experiment.model, collections=[ tf.GraphKeys.GLOBAL_VARIABLES, tf.GraphKeys.MOVING_AVERAGE_VARIABLES]) with tf.train.SingularMonitoredSession(hooks=[]) as sess: logging.info('Restoring from checkpoint %s', checkpoint_path) checkpoint.restore(sess, checkpoint_path) logging.info('Writing output to %s', eval_config.output_path) eval_begin_time = time.time() _run_evaluation(sess=sess, experiment=experiment, eval_config=eval_config, output_dir=eval_config.output_path, min_range=network_config.min_range, max_range=network_config.max_range, num_bins=network_config.num_bins, torsion_bins=network_config.torsion_bins) logging.info('Finished eval %.1fs', (time.time() - eval_begin_time)) def _run_evaluation( sess, experiment, eval_config, output_dir, min_range, max_range, num_bins, torsion_bins): """Evaluate a contact map by aggregating crops. Args: sess: A tf.train.Session. experiment: An experiment class. eval_config: A config dict of eval parameters. output_dir: Directory to save the predictions to. min_range: The minimum range in Angstroms to consider in distograms. max_range: The maximum range in Angstroms to consider in distograms, see num_bins below for clarification. num_bins: The number of bins in the distance histogram being predicted. We divide the min_range--(min_range + max_range) Angstrom range into this many bins. torsion_bins: The number of bins the torsion angles are discretised into. """ tf.io.gfile.makedirs(os.path.join(output_dir, 'pickle_files')) logging.info('Eval config is %s\nnum_bins: %d', eval_config, num_bins) num_examples = 0 num_crops = 0 start_all_time = time.time() # Either do the whole test set, or up to a specified limit. max_examples = experiment.num_eval_examples if eval_config.max_num_examples > 0: max_examples = min(max_examples, eval_config.max_num_examples) while num_examples < max_examples: one_prediction = compute_one_prediction( num_examples, experiment, sess, eval_config, num_bins, torsion_bins) single_message = one_prediction.single_message num_crops_local = one_prediction.num_crops_local sequence = one_prediction.sequence filebase = one_prediction.filebase softmax_probs = one_prediction.softmax_probs ss = one_prediction.ss asa = one_prediction.asa torsions = one_prediction.torsions num_examples += 1 num_crops += num_crops_local # Save the output files. filename = os.path.join(output_dir, 'pickle_files', '%s.pickle' % filebase) distogram_io.save_distance_histogram( filename, softmax_probs, filebase, sequence, min_range=min_range, max_range=max_range, num_bins=num_bins) if experiment.model.torsion_multiplier > 0: torsions_dir = os.path.join(output_dir, 'torsions') tf.io.gfile.makedirs(torsions_dir) distogram_io.save_torsions(torsions_dir, filebase, sequence, torsions) if experiment.model.secstruct_multiplier > 0: ss_dir = os.path.join(output_dir, 'secstruct') tf.io.gfile.makedirs(ss_dir) secstruct.save_secstructs(ss_dir, filebase, None, sequence, ss) if experiment.model.asa_multiplier > 0: asa_dir = os.path.join(output_dir, 'asa') tf.io.gfile.makedirs(asa_dir) secstruct.save_secstructs(asa_dir, filebase, None, sequence, np.expand_dims(asa, 1), label='Deepmind 2D ASA') time_spent = time.time() - start_all_time logging.info( 'Evaluate %d examples, %d crops %.1f crops/ex. ' 'Took %.1fs, %.3f s/example %.3f crops/s\n%s', num_examples, num_crops, num_crops / float(num_examples), time_spent, time_spent / num_examples, num_crops / time_spent, single_message) logging.info('Tested on %d', num_examples) def compute_one_prediction( num_examples, experiment, sess, eval_config, num_bins, torsion_bins): """Find the contact map for a single domain.""" num_crops_local = 0 debug_steps = 0 start = time.time() output_fetches = {'probs': experiment.eval_probs} output_fetches['softmax_probs'] = experiment.eval_probs_softmax # Add the auxiliary outputs if present. experiment.model.update_crop_fetches(output_fetches) # Get data. batch = experiment.get_one_example(sess) length = batch['sequence_lengths'][0] batch_size = batch['sequence_lengths'].shape[0] domain = batch['domain_name'][0][0].decode('utf-8') chain = batch['chain_name'][0][0].decode('utf-8') filebase = domain or chain sequence = six.ensure_str(batch['sequences'][0][0]) logging.info('SepWorking on %d %s %s %d', num_examples, domain, chain, length) inputs_1d = batch['inputs_1d'] if 'residue_index' in batch: logging.info('Getting residue_index from features') residue_index = np.squeeze( batch['residue_index'], axis=2).astype(np.int32) else: logging.info('Generating residue_index') residue_index = np.tile(np.expand_dims( np.arange(length, dtype=np.int32), 0), [batch_size, 1]) assert batch_size == 1 num_examples += batch_size # Crops. prob_accum = np.zeros((length, length, 2)) ss_accum = np.zeros((length, 8)) torsions_accum = np.zeros((length, torsion_bins**2)) asa_accum = np.zeros((length,)) weights_1d_accum = np.zeros((length,)) softmax_prob_accum = np.zeros((length, length, num_bins), dtype=np.float32) crop_size_x = experiment.crop_size_x crop_step_x = crop_size_x // eval_config.crop_shingle_x crop_size_y = experiment.crop_size_y crop_step_y = crop_size_y // eval_config.crop_shingle_y prob_weights = 1 if eval_config.pyramid_weights > 0: sx = np.expand_dims(np.linspace(1.0 / crop_size_x, 1, crop_size_x), 1) sy = np.expand_dims(np.linspace(1.0 / crop_size_y, 1, crop_size_y), 0) prob_weights = np.minimum(np.minimum(sx, np.flipud(sx)), np.minimum(sy, np.fliplr(sy))) prob_weights /= np.max(prob_weights) prob_weights = np.minimum(prob_weights, eval_config.pyramid_weights) logging.log_first_n(logging.INFO, 'Crop: %dx%d step %d,%d pyr %.2f', debug_steps, crop_size_x, crop_size_y, crop_step_x, crop_step_y, eval_config.pyramid_weights) # Accumulate all crops, starting and ending half off the square. for i in range(-crop_size_x // 2, length - crop_size_x // 2, crop_step_x): for j in range(-crop_size_y // 2, length - crop_size_y // 2, crop_step_y): # The ideal crop. patch = compute_one_patch( sess, experiment, output_fetches, inputs_1d, residue_index, prob_weights, batch, length, i, j, crop_size_x, crop_size_y) # Assemble the crops into a final complete prediction. ic = max(0, i) jc = max(0, j) ic_to = ic + patch['prob'].shape[1] jc_to = jc + patch['prob'].shape[0] prob_accum[jc:jc_to, ic:ic_to, 0] += patch['prob'] * patch['weight'] prob_accum[jc:jc_to, ic:ic_to, 1] += patch['weight'] softmax_prob_accum[jc:jc_to, ic:ic_to, :] += ( patch['softmax'] * np.expand_dims(patch['weight'], 2)) weights_1d_accum[jc:jc_to] += 1 weights_1d_accum[ic:ic_to] += 1 if 'asa_x' in patch: asa_accum[ic:ic + patch['asa_x'].shape[0]] += np.squeeze( patch['asa_x'], axis=1) asa_accum[jc:jc + patch['asa_y'].shape[0]] += np.squeeze( patch['asa_y'], axis=1) if 'ss_x' in patch: ss_accum[ic:ic + patch['ss_x'].shape[0]] += patch['ss_x'] ss_accum[jc:jc + patch['ss_y'].shape[0]] += patch['ss_y'] if 'torsions_x' in patch: torsions_accum[ ic:ic + patch['torsions_x'].shape[0]] += patch['torsions_x'] torsions_accum[ jc:jc + patch['torsions_y'].shape[0]] += patch['torsions_y'] num_crops_local += 1 single_message = ( 'Constructed %s len %d from %d chunks [%d, %d x %d, %d] ' 'in %5.1fs' % ( filebase, length, num_crops_local, crop_size_x, crop_step_x, crop_size_y, crop_step_y, time.time() - start)) logging.info(single_message) logging.info('prob_accum[:, :, 1]: %s', prob_accum[:, :, 1]) assert (prob_accum[:, :, 1] > 0.0).all() probs = prob_accum[:, :, 0] / prob_accum[:, :, 1] softmax_probs = softmax_prob_accum[:, :, :] / prob_accum[:, :, 1:2] asa_accum /= weights_1d_accum ss_accum /= np.expand_dims(weights_1d_accum, 1) torsions_accum /= np.expand_dims(weights_1d_accum, 1) # The probs are symmetrical. probs = (probs + probs.transpose()) / 2 if num_bins > 1: softmax_probs = (softmax_probs + np.transpose( softmax_probs, axes=[1, 0, 2])) / 2 return Prediction( single_message=single_message, num_crops_local=num_crops_local, sequence=sequence, filebase=filebase, softmax_probs=softmax_probs, ss=ss_accum, asa=asa_accum, torsions=torsions_accum) def compute_one_patch(sess, experiment, output_fetches, inputs_1d, residue_index, prob_weights, batch, length, i, j, crop_size_x, crop_size_y): """Compute the output predictions for a single crop.""" # Note that these are allowed to go off the end of the protein. end_x = i + crop_size_x end_y = j + crop_size_y crop_limits = np.array([[i, end_x, j, end_y]], dtype=np.int32) ic = max(0, i) jc = max(0, j) end_x_cropped = min(length, end_x) end_y_cropped = min(length, end_y) prepad_x = max(0, -i) prepad_y = max(0, -j) postpad_x = end_x - end_x_cropped postpad_y = end_y - end_y_cropped # Precrop the 2D features: inputs_2d = np.pad(batch['inputs_2d'][ :, jc:end_y, ic:end_x, :], [[0, 0], [prepad_y, postpad_y], [prepad_x, postpad_x], [0, 0]], mode='constant') assert inputs_2d.shape[1] == crop_size_y assert inputs_2d.shape[2] == crop_size_x # Generate the corresponding crop, but it might be truncated. cxx = batch['inputs_2d'][:, ic:end_x, ic:end_x, :] cyy = batch['inputs_2d'][:, jc:end_y, jc:end_y, :] if cxx.shape[1] < inputs_2d.shape[1]: cxx = np.pad(cxx, [[0, 0], [prepad_x, max(0, i + crop_size_y - length)], [prepad_x, postpad_x], [0, 0]], mode='constant') assert cxx.shape[1] == crop_size_y assert cxx.shape[2] == crop_size_x if cyy.shape[2] < inputs_2d.shape[2]: cyy = np.pad(cyy, [[0, 0], [prepad_y, postpad_y], [prepad_y, max(0, j + crop_size_x - length)], [0, 0]], mode='constant') assert cyy.shape[1] == crop_size_y assert cyy.shape[2] == crop_size_x inputs_2d = np.concatenate([inputs_2d, cxx, cyy], 3) output_results = sess.run(output_fetches, feed_dict={ experiment.inputs_1d_placeholder: inputs_1d, experiment.residue_index_placeholder: residue_index, experiment.inputs_2d_placeholder: inputs_2d, experiment.crop_placeholder: crop_limits, }) # Crop out the "live" region of the probs. prob_patch = output_results['probs'][ 0, prepad_y:crop_size_y - postpad_y, prepad_x:crop_size_x - postpad_x] weight_patch = prob_weights[prepad_y:crop_size_y - postpad_y, prepad_x:crop_size_x - postpad_x] patch = {'prob': prob_patch, 'weight': weight_patch} if 'softmax_probs' in output_results: patch['softmax'] = output_results['softmax_probs'][ 0, prepad_y:crop_size_y - postpad_y, prepad_x:crop_size_x - postpad_x] if 'secstruct_probs' in output_results: patch['ss_x'] = output_results['secstruct_probs'][ 0, prepad_x:crop_size_x - postpad_x] patch['ss_y'] = output_results['secstruct_probs'][ 0, crop_size_x + prepad_y:crop_size_x + crop_size_y - postpad_y] if 'torsion_probs' in output_results: patch['torsions_x'] = output_results['torsion_probs'][ 0, prepad_x:crop_size_x - postpad_x] patch['torsions_y'] = output_results['torsion_probs'][ 0, crop_size_x + prepad_y:crop_size_x + crop_size_y - postpad_y] if 'asa_output' in output_results: patch['asa_x'] = output_results['asa_output'][ 0, prepad_x:crop_size_x - postpad_x] patch['asa_y'] = output_results['asa_output'][ 0, crop_size_x + prepad_y:crop_size_x + crop_size_y - postpad_y] return patch def main(argv): del argv # Unused. logging.info('Loading a JSON config from: %s', FLAGS.config_path) with tf.io.gfile.GFile(FLAGS.config_path, 'r') as f: config = config_dict.ConfigDict.from_json(f.read()) # Redefine the relevant output fields. if FLAGS.eval_sstable: config.eval_config.eval_sstable = FLAGS.eval_sstable if FLAGS.stats_file: config.eval_config.stats_file = FLAGS.stats_file if FLAGS.output_path: config.eval_config.output_path = FLAGS.output_path with tf.device('/cpu:0' if FLAGS.cpu else None): evaluate(checkpoint_path=FLAGS.checkpoint_path, **config) if __name__ == '__main__': app.run(main) ================================================ FILE: alphafold_casp13/contacts_dataset.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """TF wrapper for protein tf.Example datasets.""" import collections import enum import json import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import _ProteinDescription = collections.namedtuple( '_ProteinDescription', ( 'sequence_lengths', 'key', 'sequences', 'inputs_1d', 'inputs_2d', 'inputs_2d_diagonal', 'crops', 'scalars', 'targets')) class FeatureType(enum.Enum): ZERO_DIM = 0 # Shape [x] ONE_DIM = 1 # Shape [num_res, x] TWO_DIM = 2 # Shape [num_res, num_res, x] # Placeholder values that will be replaced with their true value at runtime. NUM_RES = 'num residues placeholder' # Sizes of the protein features. NUM_RES is allowed as a placeholder to be # replaced with the number of residues. FEATURES = { 'aatype': (tf.float32, [NUM_RES, 21]), 'alpha_mask': (tf.int64, [NUM_RES, 1]), 'alpha_positions': (tf.float32, [NUM_RES, 3]), 'beta_mask': (tf.int64, [NUM_RES, 1]), 'beta_positions': (tf.float32, [NUM_RES, 3]), 'between_segment_residues': (tf.int64, [NUM_RES, 1]), 'chain_name': (tf.string, [1]), 'deletion_probability': (tf.float32, [NUM_RES, 1]), 'domain_name': (tf.string, [1]), 'gap_matrix': (tf.float32, [NUM_RES, NUM_RES, 1]), 'hhblits_profile': (tf.float32, [NUM_RES, 22]), 'hmm_profile': (tf.float32, [NUM_RES, 30]), 'key': (tf.string, [1]), 'mutual_information': (tf.float32, [NUM_RES, NUM_RES, 1]), 'non_gapped_profile': (tf.float32, [NUM_RES, 21]), 'num_alignments': (tf.int64, [NUM_RES, 1]), 'num_effective_alignments': (tf.float32, [1]), 'phi_angles': (tf.float32, [NUM_RES, 1]), 'phi_mask': (tf.int64, [NUM_RES, 1]), 'profile': (tf.float32, [NUM_RES, 21]), 'profile_with_prior': (tf.float32, [NUM_RES, 22]), 'profile_with_prior_without_gaps': (tf.float32, [NUM_RES, 21]), 'pseudo_bias': (tf.float32, [NUM_RES, 22]), 'pseudo_frob': (tf.float32, [NUM_RES, NUM_RES, 1]), 'pseudolikelihood': (tf.float32, [NUM_RES, NUM_RES, 484]), 'psi_angles': (tf.float32, [NUM_RES, 1]), 'psi_mask': (tf.int64, [NUM_RES, 1]), 'residue_index': (tf.int64, [NUM_RES, 1]), 'resolution': (tf.float32, [1]), 'reweighted_profile': (tf.float32, [NUM_RES, 22]), 'sec_structure': (tf.int64, [NUM_RES, 8]), 'sec_structure_mask': (tf.int64, [NUM_RES, 1]), 'seq_length': (tf.int64, [NUM_RES, 1]), 'sequence': (tf.string, [1]), 'solv_surf': (tf.float32, [NUM_RES, 1]), 'solv_surf_mask': (tf.int64, [NUM_RES, 1]), 'superfamily': (tf.string, [1]), } FEATURE_TYPES = {k: v[0] for k, v in FEATURES.items()} FEATURE_SIZES = {k: v[1] for k, v in FEATURES.items()} def shape(feature_name, num_residues, features=None): """Get the shape for the given feature name. Args: feature_name: String identifier for the feature. If the feature name ends with "_unnormalized", theis suffix is stripped off. num_residues: The number of residues in the current domain - some elements of the shape can be dynamic and will be replaced by this value. features: A feature_name to (tf_dtype, shape) lookup; defaults to FEATURES. Returns: List of ints representation the tensor size. """ features = features or FEATURES if feature_name.endswith('_unnormalized'): feature_name = feature_name[:-13] unused_dtype, raw_sizes = features[feature_name] replacements = {NUM_RES: num_residues} sizes = [replacements.get(dimension, dimension) for dimension in raw_sizes] return sizes def dim(feature_name): """Determine the type of feature. Args: feature_name: String identifier for the feature to lookup. If the feature name ends with "_unnormalized", theis suffix is stripped off. Returns: A FeatureType enum describing whether the feature is of size num_res or num_res * num_res. Raises: ValueError: If the feature is of an unknown type. """ if feature_name.endswith('_unnormalized'): feature_name = feature_name[:-13] num_dims = len(FEATURE_SIZES[feature_name]) if num_dims == 1: return FeatureType.ZERO_DIM elif num_dims == 2 and FEATURE_SIZES[feature_name][0] == NUM_RES: return FeatureType.ONE_DIM elif num_dims == 3 and FEATURE_SIZES[feature_name][0] == NUM_RES: return FeatureType.TWO_DIM else: raise ValueError('Expect feature sizes to be 2 or 3, got %i' % len(FEATURE_SIZES[feature_name])) def _concat_or_zeros(tensor_list, axis, tensor_shape, name): """Concatenates the tensors if given, otherwise returns a tensor of zeros.""" if tensor_list: return tf.concat(tensor_list, axis=axis, name=name) return tf.zeros(tensor_shape, name=name + '_zeros') def parse_tfexample(raw_data, features): """Read a single TF Example proto and return a subset of its features. Args: raw_data: A serialized tf.Example proto. features: A dictionary of features, mapping string feature names to a tuple (dtype, shape). This dictionary should be a subset of protein_features.FEATURES (or the dictionary itself for all features). Returns: A dictionary of features mapping feature names to features. Only the given features are returned, all other ones are filtered out. """ feature_map = { k: tf.io.FixedLenSequenceFeature(shape=(), dtype=v[0], allow_missing=True) for k, v in features.items() } parsed_features = tf.io.parse_single_example(raw_data, feature_map) # Find out what is the number of sequences and the number of alignments. num_residues = tf.cast(parsed_features['seq_length'][0], dtype=tf.int32) # Reshape the tensors according to the sequence length and num alignments. for k, v in parsed_features.items(): new_shape = shape(feature_name=k, num_residues=num_residues) # Make sure the feature we are reshaping is not empty. assert_non_empty = tf.assert_greater( tf.size(v), 0, name='assert_%s_non_empty' % k, message='The feature %s is not set in the tf.Example. Either do not ' 'request the feature or use a tf.Example that has the feature set.' % k) with tf.control_dependencies([assert_non_empty]): parsed_features[k] = tf.reshape(v, new_shape, name='reshape_%s' % k) return parsed_features def create_tf_dataset(tf_record_filename, features): """Creates an instance of tf.data.Dataset backed by a protein dataset SSTable. Args: tf_record_filename: A string with filename of the TFRecord file. features: A list of strings of feature names to be returned in the dataset. Returns: A tf.data.Dataset object. Its items are dictionaries from feature names to feature values. """ # Make sure these features are always read. required_features = ['aatype', 'sequence', 'seq_length'] features = list(set(features) | set(required_features)) features = {name: FEATURES[name] for name in features} tf_dataset = tf.data.TFRecordDataset(filenames=[tf_record_filename]) tf_dataset = tf_dataset.map(lambda raw: parse_tfexample(raw, features)) return tf_dataset def normalize_from_stats_file( features, stats_file_path, feature_normalization, copy_unnormalized=None): """Normalizes the features set in the feature_normalization by the norm stats. Args: features: A dictionary mapping feature names to feature tensors. stats_file_path: A string with the path of the statistics JSON file. feature_normalization: A dictionary specifying the normalization type for each input feature. Acceptable values are 'std' and 'none'. If not specified default to 'none'. Any extra features that are not present in features will be ignored. copy_unnormalized: A list of features whose unnormalized copy should be added. For any feature F in this list a feature F + "_unnormalized" will be added in the output dictionary containing the unnormalized feature. This is useful if you have a feature you want to have both in desired_features (normalized) and also in desired_targets (unnormalized). See convert_to_legacy_proteins_dataset_format for more details. Returns: A dictionary mapping features names to feature tensors. The ones that were specified in feature_normalization will be normalized. Raises: ValueError: If an unknown normalization mode is used. """ with tf.io.gfile.GFile(stats_file_path, 'r') as f: norm_stats = json.loads(f.read()) if not copy_unnormalized: copy_unnormalized = [] # We need this unnormalized in convert_to_legacy_proteins_dataset_format. copy_unnormalized.append('num_alignments') for feature in copy_unnormalized: if feature in features: features[feature + '_unnormalized'] = features[feature] range_epsilon = 1e-12 for key, value in features.items(): if key not in feature_normalization or feature_normalization[key] == 'none': pass elif feature_normalization[key] == 'std': value = tf.cast(value, dtype=tf.float32) train_mean = tf.cast(norm_stats['mean'][key], dtype=tf.float32) train_range = tf.sqrt(tf.cast(norm_stats['var'][key], dtype=tf.float32)) value -= train_mean value = tf.where( train_range > range_epsilon, value / train_range, value) features[key] = value else: raise ValueError('Unknown normalization mode %s for feature %s.' % (feature_normalization[key], key)) return features def convert_to_legacy_proteins_dataset_format( features, desired_features, desired_scalars, desired_targets): """Converts the output of tf.Dataset to the legacy format. Args: features: A dictionary mapping feature names to feature tensors. desired_features: A list with the names of the desired features. These will be filtered out of features and returned in one of the inputs_1d or inputs_2d. The features concatenated in `inputs_1d`, `inputs_2d` will be concatenated in the same order as they were given in `desired_features`. desired_scalars: A list naming the desired scalars. These will be filtered out of features and returned in scalars. If features contain an unnormalized version of a desired scalar, it will be used. desired_targets: A list naming the desired targets. These will be filtered out of features and returned in targets. If features contain an unnormalized version of a desired target, it will be used. Returns: A _ProteinDescription namedtuple consisting of: sequence_length: A scalar int32 tensor with the sequence length. key: A string tensor with the sequence key or empty if not set features. sequences: A string tensor with the protein sequence. inputs_1d: All 1D features in a single tensor of shape [num_res, 1d_channels]. inputs_2d: All 2D features in a single tensor of shape [num_res, num_res, 2d_channels]. inputs_2d_diagonal: All 2D diagonal features in a single tensor of shape [num_res, num_res, 2d_diagonal_channels]. If no diagonal features found in features, the tensor will be set to inputs_2d. crops: A int32 tensor with the crop poisitions. If not set in features, it will be set to [0, num_res, 0, num_res]. scalars: All requested scalar tensors in a list. targets: All requested target tensors in a list. Raises: ValueError: If the feature size is invalid. """ tensors_1d = [] tensors_2d = [] tensors_2d_diagonal = [] for key in desired_features: # Determine if the feature is 1D or 2D. feature_dim = dim(key) if feature_dim == FeatureType.ONE_DIM: tensors_1d.append(tf.cast(features[key], dtype=tf.float32)) elif feature_dim == FeatureType.TWO_DIM: if key not in features: if not(key + '_cropped' in features and key + '_diagonal' in features): raise ValueError( 'The 2D feature %s is not in the features dictionary and neither ' 'are its cropped and diagonal versions.' % key) else: tensors_2d.append( tf.cast(features[key + '_cropped'], dtype=tf.float32)) tensors_2d_diagonal.append( tf.cast(features[key + '_diagonal'], dtype=tf.float32)) else: tensors_2d.append(tf.cast(features[key], dtype=tf.float32)) else: raise ValueError('Unexpected FeatureType returned: %s' % str(feature_dim)) # Determine num_res from the sequence as seq_length was possibly normalized. num_res = tf.strings.length(features['sequence'])[0] # Concatenate feature tensors into a single tensor inputs_1d = _concat_or_zeros( tensors_1d, axis=1, tensor_shape=[num_res, 0], name='inputs_1d_concat') inputs_2d = _concat_or_zeros( tensors_2d, axis=2, tensor_shape=[num_res, num_res, 0], name='inputs_2d_concat') if tensors_2d_diagonal: # The legacy dataset outputs the two diagonal crops stacked # A1, B1, C1, A2, B2, C2. So convert the A1, A2, B1, B2, C1, C2 format. diagonal_crops1 = [t[:, :, :(t.shape[2] // 2)] for t in tensors_2d_diagonal] diagonal_crops2 = [t[:, :, (t.shape[2] // 2):] for t in tensors_2d_diagonal] inputs_2d_diagonal = tf.concat(diagonal_crops1 + diagonal_crops2, axis=2) else: inputs_2d_diagonal = inputs_2d sequence = features['sequence'] sequence_key = features.get('key', tf.constant(['']))[0] if 'crops' in features: crops = features['crops'] else: crops = tf.stack([0, tf.shape(sequence)[0], 0, tf.shape(sequence)[0]]) scalar_tensors = [] for key in desired_scalars: scalar_tensors.append(features.get(key + '_unnormalized', features[key])) target_tensors = [] for key in desired_targets: target_tensors.append(features.get(key + '_unnormalized', features[key])) scalar_class = collections.namedtuple('_ScalarClass', desired_scalars) target_class = collections.namedtuple('_TargetClass', desired_targets) return _ProteinDescription( sequence_lengths=num_res, key=sequence_key, sequences=sequence, inputs_1d=inputs_1d, inputs_2d=inputs_2d, inputs_2d_diagonal=inputs_2d_diagonal, crops=crops, scalars=scalar_class(*scalar_tensors), targets=target_class(*target_tensors)) ================================================ FILE: alphafold_casp13/contacts_experiment.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Contact prediction convnet experiment example.""" from absl import logging import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import from alphafold_casp13 import contacts_dataset from alphafold_casp13 import contacts_network def _int_ph(shape, name): return tf.placeholder( dtype=tf.int32, shape=shape, name=('%s_placeholder' % name)) def _float_ph(shape, name): return tf.placeholder( dtype=tf.float32, shape=shape, name=('%s_placeholder' % name)) class Contacts(object): """Contact prediction experiment.""" def __init__( self, tfrecord, stats_file, network_config, crop_size_x, crop_size_y, feature_normalization, normalization_exclusion): """Builds the TensorFlow graph.""" self.network_config = network_config self.crop_size_x = crop_size_x self.crop_size_y = crop_size_y self._feature_normalization = feature_normalization self._normalization_exclusion = normalization_exclusion self._model = contacts_network.ContactsNet(**network_config) self._features = network_config.features self._scalars = network_config.scalars self._targets = network_config.targets # Add extra targets we need. required_targets = ['domain_name', 'resolution', 'chain_name'] if self.model.torsion_multiplier > 0: required_targets.extend([ 'phi_angles', 'phi_mask', 'psi_angles', 'psi_mask']) if self.model.secstruct_multiplier > 0: required_targets.extend(['sec_structure', 'sec_structure_mask']) if self.model.asa_multiplier > 0: required_targets.extend(['solv_surf', 'solv_surf_mask']) extra_targets = [t for t in required_targets if t not in self._targets] if extra_targets: targets = list(self._targets) targets.extend(extra_targets) self._targets = tuple(targets) logging.info('Targets %s %s extra %s', type(self._targets), self._targets, extra_targets) logging.info('Evaluating on %s, stats: %s', tfrecord, stats_file) self._build_evaluation_graph(tfrecord=tfrecord, stats_file=stats_file) @property def model(self): return self._model def _get_feature_normalization(self, features): return {key: self._feature_normalization for key in features if key not in list(self._normalization_exclusion)} def _build_evaluation_graph(self, tfrecord, stats_file): """Constructs the graph in pieces so it can be fed.""" with tf.name_scope('competitionsep'): # Construct the dataset and mapping ops. dataset = contacts_dataset.create_tf_dataset( tf_record_filename=tfrecord, features=tuple(self._features) + tuple( self._scalars) + tuple(self._targets)) def normalize(data): return contacts_dataset.normalize_from_stats_file( features=data, stats_file_path=stats_file, feature_normalization=self._get_feature_normalization( self._features), copy_unnormalized=list(set(self._features) & set(self._targets))) def convert_to_legacy(features): return contacts_dataset.convert_to_legacy_proteins_dataset_format( features, self._features, self._scalars, self._targets) dataset = dataset.map(normalize) dataset = dataset.map(convert_to_legacy) dataset = dataset.batch(1) # Get a batch of tensors in the legacy ProteinsDataset format. iterator = tf.data.make_one_shot_iterator(dataset) self._input_batch = iterator.get_next() self.num_eval_examples = sum( 1 for _ in tf.python_io.tf_record_iterator(tfrecord)) logging.info('Eval batch:\n%s', self._input_batch) feature_dim_1d = self._input_batch.inputs_1d.shape.as_list()[-1] feature_dim_2d = self._input_batch.inputs_2d.shape.as_list()[-1] feature_dim_2d *= 3 # The diagonals will be stacked before feeding. # Now placeholders for the graph to compute the outputs for one crop. self.inputs_1d_placeholder = _float_ph( shape=[None, None, feature_dim_1d], name='inputs_1d') self.residue_index_placeholder = _int_ph( shape=[None, None], name='residue_index') self.inputs_2d_placeholder = _float_ph( shape=[None, None, None, feature_dim_2d], name='inputs_2d') # 4 ints: x_start, x_end, y_start, y_end. self.crop_placeholder = _int_ph(shape=[None, 4], name='crop') # Finally placeholders for the graph to score the complete contact map. self.probs_placeholder = _float_ph(shape=[None, None, None], name='probs') self.softmax_probs_placeholder = _float_ph( shape=[None, None, None, self.network_config.num_bins], name='softmax_probs') self.cb_placeholder = _float_ph(shape=[None, None, 3], name='cb') self.cb_mask_placeholder = _float_ph(shape=[None, None], name='cb_mask') self.lengths_placeholder = _int_ph(shape=[None], name='lengths') if self.model.secstruct_multiplier > 0: self.sec_structure_placeholder = _float_ph( shape=[None, None, 8], name='sec_structure') self.sec_structure_logits_placeholder = _float_ph( shape=[None, None, 8], name='sec_structure_logits') self.sec_structure_mask_placeholder = _float_ph( shape=[None, None, 1], name='sec_structure_mask') if self.model.asa_multiplier > 0: self.solv_surf_placeholder = _float_ph( shape=[None, None, 1], name='solv_surf') self.solv_surf_logits_placeholder = _float_ph( shape=[None, None, 1], name='solv_surf_logits') self.solv_surf_mask_placeholder = _float_ph( shape=[None, None, 1], name='solv_surf_mask') if self.model.torsion_multiplier > 0: self.torsions_truth_placeholder = _float_ph( shape=[None, None, 2], name='torsions_truth') self.torsions_mask_placeholder = _float_ph( shape=[None, None, 1], name='torsions_mask') self.torsion_logits_placeholder = _float_ph( shape=[None, None, self.network_config.torsion_bins ** 2], name='torsion_logits') # Build a dict to pass all the placeholders into build. placeholders = { 'inputs_1d_placeholder': self.inputs_1d_placeholder, 'residue_index_placeholder': self.residue_index_placeholder, 'inputs_2d_placeholder': self.inputs_2d_placeholder, 'crop_placeholder': self.crop_placeholder, 'probs_placeholder': self.probs_placeholder, 'softmax_probs_placeholder': self.softmax_probs_placeholder, 'cb_placeholder': self.cb_placeholder, 'cb_mask_placeholder': self.cb_mask_placeholder, 'lengths_placeholder': self.lengths_placeholder, } if self.model.secstruct_multiplier > 0: placeholders.update({ 'sec_structure': self.sec_structure_placeholder, 'sec_structure_logits_placeholder': self.sec_structure_logits_placeholder, 'sec_structure_mask': self.sec_structure_mask_placeholder,}) if self.model.asa_multiplier > 0: placeholders.update({ 'solv_surf': self.solv_surf_placeholder, 'solv_surf_logits_placeholder': self.solv_surf_logits_placeholder, 'solv_surf_mask': self.solv_surf_mask_placeholder,}) if self.model.torsion_multiplier > 0: placeholders.update({ 'torsions_truth': self.torsions_truth_placeholder, 'torsion_logits_placeholder': self.torsion_logits_placeholder, 'torsions_truth_mask': self.torsions_mask_placeholder,}) activations = self._model( crop_size_x=self.crop_size_x, crop_size_y=self.crop_size_y, placeholders=placeholders) self.eval_probs_softmax = tf.nn.softmax( activations[:, :, :, :self.network_config.num_bins]) self.eval_probs = tf.reduce_sum( self.eval_probs_softmax[:, :, :, :self._model.quant_threshold()], axis=3) def get_one_example(self, sess): """Pull one example off the queue so we can feed it for evaluation.""" request_dict = { 'inputs_1d': self._input_batch.inputs_1d, 'inputs_2d': self._input_batch.inputs_2d, 'sequence_lengths': self._input_batch.sequence_lengths, 'beta_positions': self._input_batch.targets.beta_positions, 'beta_mask': self._input_batch.targets.beta_mask, 'domain_name': self._input_batch.targets.domain_name, 'chain_name': self._input_batch.targets.chain_name, 'sequences': self._input_batch.sequences, } if hasattr(self._input_batch.targets, 'residue_index'): request_dict.update( {'residue_index': self._input_batch.targets.residue_index}) if hasattr(self._input_batch.targets, 'phi_angles'): request_dict.update( {'phi_angles': self._input_batch.targets.phi_angles, 'psi_angles': self._input_batch.targets.psi_angles, 'phi_mask': self._input_batch.targets.phi_mask, 'psi_mask': self._input_batch.targets.psi_mask}) if hasattr(self._input_batch.targets, 'sec_structure'): request_dict.update( {'sec_structure': self._input_batch.targets.sec_structure, 'sec_structure_mask': self._input_batch.targets.sec_structure_mask,}) if hasattr(self._input_batch.targets, 'solv_surf'): request_dict.update( {'solv_surf': self._input_batch.targets.solv_surf, 'solv_surf_mask': self._input_batch.targets.solv_surf_mask,}) if hasattr(self._input_batch.targets, 'alpha_positions'): request_dict.update( {'alpha_positions': self._input_batch.targets.alpha_positions, 'alpha_mask': self._input_batch.targets.alpha_mask,}) batch = sess.run(request_dict) return batch ================================================ FILE: alphafold_casp13/contacts_network.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Network for predicting C-beta contacts.""" from absl import logging import sonnet import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import from alphafold_casp13 import asa_output from alphafold_casp13 import secstruct from alphafold_casp13 import two_dim_convnet from alphafold_casp13 import two_dim_resnet def call_on_tuple(f): """Unpacks a tuple input parameter into arguments for a function f. Mimics tuple unpacking in lambdas, which existed in Python 2 but has been removed in Python 3. Args: f: A function taking multiple arguments. Returns: A function equivalent to f accepting a tuple, which is then unpacked. """ return lambda args: f(*args) class ContactsNet(sonnet.AbstractModule): """A network to go from sequence to distance histograms.""" def __init__(self, binary_code_bits, data_format, distance_multiplier, features, features_forward, max_range, min_range, num_bins, reshape_layer, resolution_noise_scale, scalars, targets, network_2d_deep, torsion_bins=None, skip_connect=0, position_specific_bias_size=0, filters_1d=(), collapsed_batch_norm=False, is_ca_feature=False, asa_multiplier=0.0, secstruct_multiplier=0.0, torsion_multiplier=0.0, name='contacts_net'): """Construct position prediction network.""" super(ContactsNet, self).__init__(name=name) self._filters_1d = filters_1d self._collapsed_batch_norm = collapsed_batch_norm self._is_ca_feature = is_ca_feature self._binary_code_bits = binary_code_bits self._data_format = data_format self._distance_multiplier = distance_multiplier self._features = features self._features_forward = features_forward self._max_range = max_range self._min_range = min_range self._num_bins = num_bins self._position_specific_bias_size = position_specific_bias_size self._reshape_layer = reshape_layer self._resolution_noise_scale = resolution_noise_scale self._scalars = scalars self._torsion_bins = torsion_bins self._skip_connect = skip_connect self._targets = targets self._network_2d_deep = network_2d_deep self.asa_multiplier = asa_multiplier self.secstruct_multiplier = secstruct_multiplier self.torsion_multiplier = torsion_multiplier with self._enter_variable_scope(): if self.secstruct_multiplier > 0: self._secstruct = secstruct.Secstruct() if self.asa_multiplier > 0: self._asa = asa_output.ASAOutputLayer() if self._position_specific_bias_size: self._position_specific_bias = tf.get_variable( 'position_specific_bias', [self._position_specific_bias_size, self._num_bins or 1], initializer=tf.zeros_initializer()) def quant_threshold(self, threshold=8.0): """Find the bin that is 8A+: we sum mass below this bin gives contact prob. Args: threshold: The distance threshold. Returns: Index of bin. """ # Note that this misuses the max_range as the range. return int( (threshold - self._min_range) * self._num_bins / float(self._max_range)) def _build(self, crop_size_x=0, crop_size_y=0, placeholders=None): """Puts the network into the graph. Args: crop_size_x: Crop a chunk out in one dimension. 0 means no cropping. crop_size_y: Crop a chunk out in one dimension. 0 means no cropping. placeholders: A dict containing the placeholders needed. Returns: A Tensor with logits of size [batch_size, num_residues, 3]. """ crop_placeholder = placeholders['crop_placeholder'] inputs_1d = placeholders['inputs_1d_placeholder'] if self._is_ca_feature and 'aatype' in self._features: logging.info('Collapsing aatype to is_ca_feature %s', inputs_1d.shape.as_list()[-1]) assert inputs_1d.shape.as_list()[-1] <= 21 + ( 1 if 'seq_length' in self._features else 0) inputs_1d = inputs_1d[:, :, 7:8] logits = self.compute_outputs( inputs_1d=inputs_1d, residue_index=placeholders['residue_index_placeholder'], inputs_2d=placeholders['inputs_2d_placeholder'], crop_x=crop_placeholder[:, 0:2], crop_y=crop_placeholder[:, 2:4], use_on_the_fly_stats=True, crop_size_x=crop_size_x, crop_size_y=crop_size_y, data_format='NHWC', # Force NHWC for evals. ) return logits def compute_outputs(self, inputs_1d, residue_index, inputs_2d, crop_x, crop_y, use_on_the_fly_stats, crop_size_x, crop_size_y, data_format='NHWC'): """Given the inputs for a block, compute the network outputs.""" hidden_1d = inputs_1d hidden_1d_list = [hidden_1d] if len(hidden_1d_list) != 1: hidden_1d = tf.concat(hidden_1d_list, 2) output_dimension = self._num_bins or 1 if self._distance_multiplier > 0: output_dimension += 1 logits, activations = self._build_2d_embedding( hidden_1d=hidden_1d, residue_index=residue_index, inputs_2d=inputs_2d, output_dimension=output_dimension, use_on_the_fly_stats=use_on_the_fly_stats, crop_x=crop_x, crop_y=crop_y, crop_size_x=crop_size_x, crop_size_y=crop_size_y, data_format=data_format) logits = tf.debugging.check_numerics( logits, 'NaN in resnet activations', name='resnet_activations') if (self.secstruct_multiplier > 0 or self.asa_multiplier > 0 or self.torsion_multiplier > 0): # Make a 1d embedding by reducing the 2D activations. # We do this in the x direction and the y direction separately. collapse_dim = 1 join_dim = -1 embedding_1d = tf.concat( # First targets are crop_x (axis 2) which we must reduce on axis 1 [tf.concat([tf.reduce_max(activations, axis=collapse_dim), tf.reduce_mean(activations, axis=collapse_dim)], axis=join_dim), # Next targets are crop_y (axis 1) which we must reduce on axis 2 tf.concat([tf.reduce_max(activations, axis=collapse_dim+1), tf.reduce_mean(activations, axis=collapse_dim+1)], axis=join_dim)], axis=collapse_dim) # Join the two crops together. if self._collapsed_batch_norm: embedding_1d = tf.contrib.layers.batch_norm( embedding_1d, is_training=use_on_the_fly_stats, fused=True, decay=0.999, scope='collapsed_batch_norm', data_format='NHWC') for i, nfil in enumerate(self._filters_1d): embedding_1d = tf.contrib.layers.fully_connected( embedding_1d, num_outputs=nfil, normalizer_fn=( tf.contrib.layers.batch_norm if self._collapsed_batch_norm else None), normalizer_params={'is_training': use_on_the_fly_stats, 'updates_collections': None}, scope='collapsed_embed_%d' % i) if self.torsion_multiplier > 0: self.torsion_logits = tf.contrib.layers.fully_connected( embedding_1d, num_outputs=self._torsion_bins * self._torsion_bins, activation_fn=None, scope='torsion_logits') self.torsion_output = tf.nn.softmax(self.torsion_logits) if self.secstruct_multiplier > 0: self._secstruct.make_layer_new(embedding_1d) if self.asa_multiplier > 0: self.asa_logits = self._asa.compute_asa_output(embedding_1d) return logits @staticmethod def _concatenate_2d(hidden_1d, residue_index, hidden_2d, crop_x, crop_y, binary_code_bits, crop_size_x, crop_size_y): # Form the pairwise expansion of the 1D embedding # And the residue offsets and (one) absolute position. with tf.name_scope('Features2D'): range_scale = 100.0 # Crude normalization factor. n = tf.shape(hidden_1d)[1] # pylint: disable=g-long-lambda hidden_1d_cropped_y = tf.map_fn( call_on_tuple(lambda c, h: tf.pad( h[tf.maximum(0, c[0]):c[1]], [[tf.maximum(0, -c[0]), tf.maximum(0, crop_size_y -(n - c[0]))], [0, 0]])), elems=(crop_y, hidden_1d), dtype=tf.float32, back_prop=True) range_n_y = tf.map_fn( call_on_tuple(lambda ri, c: tf.pad( ri[tf.maximum(0, c[0]):c[1]], [[tf.maximum(0, -c[0]), tf.maximum(0, crop_size_y -(n - c[0]))]])), elems=(residue_index, crop_y), dtype=tf.int32, back_prop=False) hidden_1d_cropped_x = tf.map_fn( call_on_tuple(lambda c, h: tf.pad( h[tf.maximum(0, c[0]):c[1]], [[tf.maximum(0, -c[0]), tf.maximum(0, crop_size_x -(n - c[0]))], [0, 0]])), elems=(crop_x, hidden_1d), dtype=tf.float32, back_prop=True) range_n_x = tf.map_fn( call_on_tuple(lambda ri, c: tf.pad( ri[tf.maximum(0, c[0]):c[1]], [[tf.maximum(0, -c[0]), tf.maximum(0, crop_size_x -(n - c[0]))]])), elems=(residue_index, crop_x), dtype=tf.int32, back_prop=False) # pylint: enable=g-long-lambda n_x = crop_size_x n_y = crop_size_y offset = (tf.expand_dims(tf.cast(range_n_x, tf.float32), 1) - tf.expand_dims(tf.cast(range_n_y, tf.float32), 2)) / range_scale position_features = [ tf.tile( tf.reshape( (tf.cast(range_n_y, tf.float32) - range_scale) / range_scale, [-1, n_y, 1, 1]), [1, 1, n_x, 1], name='TileRange'), tf.tile( tf.reshape(offset, [-1, n_y, n_x, 1]), [1, 1, 1, 1], name='TileOffset') ] channels = 2 if binary_code_bits: # Binary coding of position. exp_range_n_y = tf.expand_dims(range_n_y, 2) bin_y = tf.stop_gradient( tf.concat([tf.math.floormod(exp_range_n_y // (1 << i), 2) for i in range(binary_code_bits)], 2)) exp_range_n_x = tf.expand_dims(range_n_x, 2) bin_x = tf.stop_gradient( tf.concat([tf.math.floormod(exp_range_n_x // (1 << i), 2) for i in range(binary_code_bits)], 2)) position_features += [ tf.tile( tf.expand_dims(tf.cast(bin_y, tf.float32), 2), [1, 1, n_x, 1], name='TileBinRangey'), tf.tile( tf.expand_dims(tf.cast(bin_x, tf.float32), 1), [1, n_y, 1, 1], name='TileBinRangex') ] channels += 2 * binary_code_bits augmentation_features = position_features + [ tf.tile(tf.expand_dims(hidden_1d_cropped_x, 1), [1, n_y, 1, 1], name='Tile1Dx'), tf.tile(tf.expand_dims(hidden_1d_cropped_y, 2), [1, 1, n_x, 1], name='Tile1Dy')] channels += 2 * hidden_1d.shape.as_list()[-1] channels += hidden_2d.shape.as_list()[-1] hidden_2d = tf.concat( [hidden_2d] + augmentation_features, 3, name='Stack2Dfeatures') logging.info('2d stacked features are depth %d %s', channels, hidden_2d) hidden_2d.set_shape([None, None, None, channels]) return hidden_2d def _build_2d_embedding(self, hidden_1d, residue_index, inputs_2d, output_dimension, use_on_the_fly_stats, crop_x, crop_y, crop_size_x, crop_size_y, data_format): """Returns NHWC logits and NHWC preactivations.""" logging.info('2d %s %s', inputs_2d, data_format) # Stack with diagonal has already happened. inputs_2d_cropped = inputs_2d features_forward = None hidden_2d = inputs_2d_cropped hidden_2d = self._concatenate_2d( hidden_1d, residue_index, hidden_2d, crop_x, crop_y, self._binary_code_bits, crop_size_x, crop_size_y) config_2d_deep = self._network_2d_deep num_features = hidden_2d.shape.as_list()[3] if data_format == 'NCHW': logging.info('NCHW shape deep pre %s', hidden_2d) hidden_2d = tf.transpose(hidden_2d, perm=[0, 3, 1, 2]) hidden_2d.set_shape([None, num_features, None, None]) logging.info('NCHW shape deep post %s', hidden_2d) layers_forward = None if config_2d_deep.extra_blocks: # Optionally put some extra double-size blocks at the beginning. with tf.variable_scope('Deep2DExtra'): hidden_2d = two_dim_resnet.make_two_dim_resnet( input_node=hidden_2d, num_residues=None, # Unused num_features=num_features, num_predictions=2 * config_2d_deep.num_filters, num_channels=2 * config_2d_deep.num_filters, num_layers=config_2d_deep.extra_blocks * config_2d_deep.num_layers_per_block, filter_size=3, batch_norm=config_2d_deep.use_batch_norm, is_training=use_on_the_fly_stats, fancy=True, final_non_linearity=True, atrou_rates=[1, 2, 4, 8], data_format=data_format, dropout_keep_prob=1.0 ) num_features = 2 * config_2d_deep.num_filters if self._skip_connect: layers_forward = hidden_2d if features_forward is not None: hidden_2d = tf.concat([hidden_2d, features_forward], 1 if data_format == 'NCHW' else 3) with tf.variable_scope('Deep2D'): logging.info('2d hidden shape is %s', str(hidden_2d.shape.as_list())) contact_pre_logits = two_dim_resnet.make_two_dim_resnet( input_node=hidden_2d, num_residues=None, # Unused num_features=num_features, num_predictions=(config_2d_deep.num_filters if self._reshape_layer else output_dimension), num_channels=config_2d_deep.num_filters, num_layers=config_2d_deep.num_blocks * config_2d_deep.num_layers_per_block, filter_size=3, batch_norm=config_2d_deep.use_batch_norm, is_training=use_on_the_fly_stats, fancy=True, final_non_linearity=self._reshape_layer, atrou_rates=[1, 2, 4, 8], data_format=data_format, dropout_keep_prob=1.0 ) contact_logits = self._output_from_pre_logits( contact_pre_logits, features_forward, layers_forward, output_dimension, data_format, crop_x, crop_y, use_on_the_fly_stats) if data_format == 'NCHW': contact_pre_logits = tf.transpose(contact_pre_logits, perm=[0, 2, 3, 1]) # Both of these will be NHWC return contact_logits, contact_pre_logits def _output_from_pre_logits(self, contact_pre_logits, features_forward, layers_forward, output_dimension, data_format, crop_x, crop_y, use_on_the_fly_stats): """Given pre-logits, compute the final distogram/contact activations.""" config_2d_deep = self._network_2d_deep if self._reshape_layer: in_channels = config_2d_deep.num_filters concat_features = [contact_pre_logits] if features_forward is not None: concat_features.append(features_forward) in_channels += self._features_forward if layers_forward is not None: concat_features.append(layers_forward) in_channels += 2 * config_2d_deep.num_filters if len(concat_features) > 1: contact_pre_logits = tf.concat(concat_features, 1 if data_format == 'NCHW' else 3) contact_logits = two_dim_convnet.make_conv_layer( contact_pre_logits, in_channels=in_channels, out_channels=output_dimension, layer_name='output_reshape_1x1h', filter_size=1, filter_size_2=1, non_linearity=False, batch_norm=config_2d_deep.use_batch_norm, is_training=use_on_the_fly_stats, data_format=data_format) else: contact_logits = contact_pre_logits if data_format == 'NCHW': contact_logits = tf.transpose(contact_logits, perm=[0, 2, 3, 1]) if self._position_specific_bias_size: # Make 2D pos-specific biases: NHWC. biases = build_crops_biases( self._position_specific_bias_size, self._position_specific_bias, crop_x, crop_y, back_prop=True) contact_logits += biases # Will be NHWC. return contact_logits def update_crop_fetches(self, fetches): """Add auxiliary outputs for a crop to the fetches.""" if self.secstruct_multiplier > 0: fetches['secstruct_probs'] = self._secstruct.get_q8_probs() if self.asa_multiplier > 0: fetches['asa_output'] = self._asa.asa_output if self.torsion_multiplier > 0: fetches['torsion_probs'] = self.torsion_output def build_crops_biases(bias_size, raw_biases, crop_x, crop_y, back_prop): """Take the offset-specific biases and reshape them to match current crops. Args: bias_size: how many bias variables we're storing. raw_biases: the bias variable crop_x: B x 2 array of start/end for the batch crop_y: B x 2 array of start/end for the batch back_prop: whether to backprop through the map_fn. Returns: Reshaped biases. """ # First pad the biases with a copy of the final value to the maximum length. max_off_diag = tf.reduce_max( tf.maximum(tf.abs(crop_x[:, 1] - crop_y[:, 0]), tf.abs(crop_y[:, 1] - crop_x[:, 0]))) padded_bias_size = tf.maximum(bias_size, max_off_diag) biases = tf.concat( [raw_biases, tf.tile(raw_biases[-1:, :], [padded_bias_size - bias_size, 1])], axis=0) # Now prepend a mirror image (excluding 0th elt) for below-diagonal. biases = tf.concat([tf.reverse(biases[1:, :], axis=[0]), biases], axis=0) # Which diagonal of the full matrix each crop starts on (top left): start_diag = crop_x[:, 0:1] - crop_y[:, 0:1] # B x 1 crop_size_x = tf.reduce_max(crop_x[:, 1] - crop_x[:, 0]) crop_size_y = tf.reduce_max(crop_y[:, 1] - crop_y[:, 0]) # Relative offset of each row within a crop: # (off-diagonal decreases as y increases) increment = tf.expand_dims(-tf.range(0, crop_size_y), 0) # 1 x crop_size_y # Index of diagonal of first element of each row, flattened. row_offsets = tf.reshape(start_diag + increment, [-1]) # B*crop_size_y logging.info('row_offsets %s', row_offsets) # Make it relative to the start of the biases array. (0-th diagonal is in # the middle at position padded_bias_size - 1) row_offsets += padded_bias_size - 1 # Map_fn to build the individual rows. # B*cropsizey x cropsizex x num_bins cropped_biases = tf.map_fn(lambda i: biases[i:i+crop_size_x, :], elems=row_offsets, dtype=tf.float32, back_prop=back_prop) logging.info('cropped_biases %s', cropped_biases) return tf.reshape( cropped_biases, [-1, crop_size_y, crop_size_x, tf.shape(raw_biases)[-1]]) ================================================ FILE: alphafold_casp13/distogram_io.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Write contact map predictions to a tf.io.gfile. Either write a binary contact map as an RR format text file, or a histogram prediction as a pickle of a dict containing a numpy array. """ import os import numpy as np import six.moves.cPickle as pickle import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import RR_FORMAT = """PFRMAT RR TARGET {} AUTHOR DM-ORIGAMI-TEAM METHOD {} MODEL 1 {} """ def save_rr_file(filename, probs, domain, sequence, method='dm-contacts-resnet'): """Save a contact probability matrix as an RR file.""" assert len(sequence) == probs.shape[0] assert len(sequence) == probs.shape[1] with tf.io.gfile.GFile(filename, 'w') as f: f.write(RR_FORMAT.format(domain, method, sequence)) for i in range(probs.shape[0]): for j in range(i + 1, probs.shape[1]): f.write('{:d} {:d} {:d} {:d} {:f}\n'.format( i + 1, j + 1, 0, 8, probs[j, i])) f.write('END\n') def save_torsions(torsions_dir, filebase, sequence, torsions_probs): """Save Torsions to a file as pickle of a dict.""" filename = os.path.join(torsions_dir, filebase + '.torsions') t_dict = dict(probs=torsions_probs, sequence=sequence) with tf.io.gfile.GFile(filename, 'w') as fh: pickle.dump(t_dict, fh, protocol=2) def save_distance_histogram( filename, probs, domain, sequence, min_range, max_range, num_bins): """Save a distance histogram prediction matrix as a pickle file.""" dh_dict = { 'min_range': min_range, 'max_range': max_range, 'num_bins': num_bins, 'domain': domain, 'sequence': sequence, 'probs': probs.astype(np.float32)} save_distance_histogram_from_dict(filename, dh_dict) def save_distance_histogram_from_dict(filename, dh_dict): """Save a distance histogram prediction matrix as a pickle file.""" fields = ['min_range', 'max_range', 'num_bins', 'domain', 'sequence', 'probs'] missing_fields = [f for f in fields if f not in dh_dict] assert not missing_fields, 'Fields {} missing from dictionary'.format( missing_fields) assert len(dh_dict['sequence']) == dh_dict['probs'].shape[0] assert len(dh_dict['sequence']) == dh_dict['probs'].shape[1] assert dh_dict['num_bins'] == dh_dict['probs'].shape[2] assert dh_dict['min_range'] >= 0.0 assert dh_dict['max_range'] > 0.0 with tf.io.gfile.GFile(filename, 'wb') as fw: pickle.dump(dh_dict, fw, protocol=2) def contact_map_from_distogram(distogram_dict): """Split the boundary bin.""" num_bins = distogram_dict['probs'].shape[-1] bin_size_angstrom = distogram_dict['max_range'] / num_bins threshold_cts = (8.0 - distogram_dict['min_range']) / bin_size_angstrom threshold_bin = int(threshold_cts) # Round down pred_contacts = np.sum(distogram_dict['probs'][:, :, :threshold_bin], axis=-1) if threshold_bin < threshold_cts: # Add on the fraction of the boundary bin. pred_contacts += distogram_dict['probs'][:, :, threshold_bin] * ( threshold_cts - threshold_bin) return pred_contacts ================================================ FILE: alphafold_casp13/ensemble_contact_maps.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Form a weighted average of several distograms. Can also/instead form a weighted average of a set of distance histogram pickle files, so long as they have identical hyperparameters. """ import os from absl import app from absl import flags from absl import logging import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import from alphafold_casp13 import distogram_io from alphafold_casp13 import parsers flags.DEFINE_list( 'pickle_dirs', [], 'Comma separated list of directories with pickle files to ensemble.') flags.DEFINE_list( 'weights', [], 'Comma separated list of weights for the pickle files from different dirs.') flags.DEFINE_string( 'output_dir', None, 'Directory where to save results of the evaluation.') FLAGS = flags.FLAGS def ensemble_distance_histograms(pickle_dirs, weights, output_dir): """Find all the contact maps in the first dir, then ensemble across dirs.""" if len(pickle_dirs) <= 1: logging.warning('Pointless to ensemble %d pickle_dirs %s', len(pickle_dirs), pickle_dirs) # Carry on if there's one dir, otherwise do nothing. if not pickle_dirs: return tf.io.gfile.makedirs(output_dir) one_dir_pickle_files = tf.io.gfile.glob( os.path.join(pickle_dirs[0], '*.pickle')) assert one_dir_pickle_files, pickle_dirs[0] original_files = len(one_dir_pickle_files) logging.info('Found %d files %d in first of %d dirs', original_files, len(one_dir_pickle_files), len(pickle_dirs)) targets = [os.path.splitext(os.path.basename(f))[0] for f in one_dir_pickle_files] skipped = 0 wrote = 0 for t in targets: dump_file = os.path.join(output_dir, t + '.pickle') pickle_files = [os.path.join(pickle_dir, t + '.pickle') for pickle_dir in pickle_dirs] _, new_dict = ensemble_one_distance_histogram(pickle_files, weights) if new_dict is not None: wrote += 1 distogram_io.save_distance_histogram_from_dict(dump_file, new_dict) msg = 'Distograms Wrote %s %d / %d Skipped %d %s' % ( t, wrote, len(one_dir_pickle_files), skipped, dump_file) logging.info(msg) def ensemble_one_distance_histogram(pickle_files, weights): """Average the given pickle_files and dump.""" dicts = [] sequence = None max_dim = None for picklefile in pickle_files: if not tf.io.gfile.exists(picklefile): logging.warning('missing %s', picklefile) break logging.info('loading pickle file %s', picklefile) distance_histogram_dict = parsers.parse_distance_histogram_dict(picklefile) if sequence is None: sequence = distance_histogram_dict['sequence'] else: assert sequence == distance_histogram_dict['sequence'], '%s vs %s' % ( sequence, distance_histogram_dict['sequence']) dicts.append(distance_histogram_dict) assert dicts[-1]['probs'].shape[0] == dicts[-1]['probs'].shape[1], ( '%d vs %d' % (dicts[-1]['probs'].shape[0], dicts[-1]['probs'].shape[1])) assert (dicts[0]['probs'].shape[0:2] == dicts[-1]['probs'].shape[0:2] ), ('%d vs %d' % (dicts[0]['probs'].shape, dicts[-1]['probs'].shape)) if max_dim is None or max_dim < dicts[-1]['probs'].shape[2]: max_dim = dicts[-1]['probs'].shape[2] if len(dicts) != len(pickle_files): logging.warning('length mismatch\n%s\nVS\n%s', dicts, pickle_files) return sequence, None ensemble_hist = ( sum(w * c['probs'] for w, c in zip(weights, dicts)) / sum(weights)) new_dict = dict(dicts[0]) new_dict['probs'] = ensemble_hist return sequence, new_dict def main(argv): del argv # Unused. num_dirs = len(FLAGS.pickle_dirs) if FLAGS.weights: assert len(FLAGS.weights) == num_dirs, ( 'Supply as many weights as pickle_dirs, or no weights') weights = [float(w) for w in FLAGS.weights] else: weights = [1.0 for w in range(num_dirs)] ensemble_distance_histograms( pickle_dirs=FLAGS.pickle_dirs, weights=weights, output_dir=FLAGS.output_dir) if __name__ == '__main__': app.run(main) ================================================ FILE: alphafold_casp13/parsers.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Parsers for various standard biology or AlphaFold-specific formats.""" import pickle import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import def distance_histogram_dict(f): """Parses distance histogram dict pickle. Distance histograms are stored as pickles of dicts. Write one of these with contacts/write_rr_file.write_pickle_file() Args: f: File-like handle to distance histogram dict pickle. Returns: Dict with fields: probs: (an L x L x num_bins) histogram. num_bins: number of bins for each residue pair min_range: left hand edge of the distance histogram max_range: the extent of the histogram NOT the right hand edge. """ contact_dict = pickle.load(f, encoding='latin1') num_res = len(contact_dict['sequence']) if not all(key in contact_dict.keys() for key in ['probs', 'num_bins', 'min_range', 'max_range']): raise ValueError('The pickled contact dict doesn\'t contain all required ' 'keys: probs, num_bins, min_range, max_range but %s.' % contact_dict.keys()) if contact_dict['probs'].ndim != 3: raise ValueError( 'Probs is not rank 3 but %d' % contact_dict['probs'].ndim) if contact_dict['num_bins'] != contact_dict['probs'].shape[2]: raise ValueError( 'The probs shape doesn\'t match num_bins in the third dimension. ' 'Expected %d got %d.' % (contact_dict['num_bins'], contact_dict['probs'].shape[2])) if contact_dict['probs'].shape[:2] != (num_res, num_res): raise ValueError( 'The first two probs dims (%i, %i) aren\'t equal to len(sequence) %i' % (contact_dict['probs'].shape[0], contact_dict['probs'].shape[1], num_res)) return contact_dict def parse_distance_histogram_dict(filepath): """Parses distance histogram piclkle from filepath.""" with tf.io.gfile.GFile(filepath, 'rb') as f: return distance_histogram_dict(f) ================================================ FILE: alphafold_casp13/paste_contact_maps.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Combines predictions by pasting.""" import os from absl import app from absl import flags from absl import logging import numpy as np import six import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import from alphafold_casp13 import distogram_io from alphafold_casp13 import parsers flags.DEFINE_string("pickle_input_dir", None, "Directory to read pickle distance histogram files from.") flags.DEFINE_string("output_dir", None, "Directory to write chain RR files to.") flags.DEFINE_string("tfrecord_path", "", "If provided, construct the average weighted by number of " "alignments.") flags.DEFINE_string("crop_sizes", "64,128,256", "The crop sizes to use.") flags.DEFINE_integer("crop_step", 32, "The step size for cropping.") FLAGS = flags.FLAGS def generate_domains(target, sequence, crop_sizes, crop_step): """Take fasta files and generate a domain definition for data generation.""" logging.info("Generating crop domains for target %s", target) windows = [int(x) for x in crop_sizes.split(",")] num_residues = len(sequence) domains = [] domains.append({"name": target, "description": (1, num_residues)}) for window in windows: starts = list(range(0, num_residues - window, crop_step)) # Append a last crop to ensure we get all the way to the end of the # sequence, even when num_residues - window is not divisible by crop_step. if num_residues >= window: starts += [num_residues - window] for start in starts: name = "%s-l%i_s%i" % (target, window, start) domains.append({"name": name, "description": (start + 1, start + window)}) return domains def get_weights(path): """Fetch all the weights from a TFRecord.""" if not path: return {} logging.info("Getting weights from %s", path) weights = {} record_iterator = tf.python_io.tf_record_iterator(path=path) for serialized_tfexample in record_iterator: example = tf.train.Example() example.ParseFromString(serialized_tfexample) domain_name = six.ensure_str( example.features.feature["domain_name"].bytes_list.value[0]) weights[domain_name] = float( example.features.feature["num_alignments"].int64_list.value[0]) logging.info("Weight %s: %d", domain_name, weights[domain_name]) logging.info("Loaded %d weights", len(weights)) return weights def paste_distance_histograms( input_dir, output_dir, weights, crop_sizes, crop_step): """Paste together distograms for given domains of given targets and write. Domains distance histograms are 'pasted', meaning they are substituted directly into the contact map. The order is determined by the order in the domain definition file. Args: input_dir: String, path to directory containing chain and domain-level distogram files. output_dir: String, path to directory to write out chain-level distrogram files. weights: A dictionary with weights. crop_sizes: The crop sizes. crop_step: The step size for cropping. Raises: ValueError: if histogram parameters don't match. """ tf.io.gfile.makedirs(output_dir) targets = tf.io.gfile.glob(os.path.join(input_dir, "*.pickle")) targets = [os.path.splitext(os.path.basename(t))[0] for t in targets] targets = set([t.split("-")[0] for t in targets]) logging.info("Pasting distance histograms for %d targets", len(targets)) for target in sorted(targets): logging.info("%s as chain", target) chain_pickle_path = os.path.join(input_dir, "%s.pickle" % target) distance_histogram_dict = parsers.parse_distance_histogram_dict( chain_pickle_path) combined_cmap = np.array(distance_histogram_dict["probs"]) # Make the counter map 1-deep but still rank 3. counter_map = np.ones_like(combined_cmap[:, :, 0:1]) sequence = distance_histogram_dict["sequence"] target_domains = generate_domains( target=target, sequence=sequence, crop_sizes=crop_sizes, crop_step=crop_step) # Paste in each domain. for domain in sorted(target_domains, key=lambda x: x["name"]): if domain["name"] == target: logging.info("Skipping %s as domain", target) continue if "," in domain["description"]: logging.info("Skipping multisegment domain %s", domain["name"]) continue crop_start, crop_end = domain["description"] domain_pickle_path = os.path.join(input_dir, "%s.pickle" % domain["name"]) weight = weights.get(domain["name"], 1e9) logging.info("Pasting %s: %d-%d. weight: %f", domain_pickle_path, crop_start, crop_end, weight) domain_distance_histogram_dict = parsers.parse_distance_histogram_dict( domain_pickle_path) for field in ["num_bins", "min_range", "max_range"]: if domain_distance_histogram_dict[field] != distance_histogram_dict[ field]: raise ValueError("Field {} does not match {} {}".format( field, domain_distance_histogram_dict[field], distance_histogram_dict[field])) weight_matrix_size = crop_end - crop_start + 1 weight_matrix = np.ones( (weight_matrix_size, weight_matrix_size), dtype=np.float32) * weight combined_cmap[crop_start - 1:crop_end, crop_start - 1:crop_end, :] += ( domain_distance_histogram_dict["probs"] * np.expand_dims(weight_matrix, 2)) counter_map[crop_start - 1:crop_end, crop_start - 1:crop_end, 0] += weight_matrix # Broadcast across the histogram bins. combined_cmap /= counter_map # Write out full-chain cmap for folding. output_chain_pickle_path = os.path.join(output_dir, "{}.pickle".format(target)) logging.info("Writing to %s", output_chain_pickle_path) distance_histogram_dict["probs"] = combined_cmap distance_histogram_dict["target"] = target # Save the distogram pickle file. distogram_io.save_distance_histogram_from_dict( output_chain_pickle_path, distance_histogram_dict) # Compute the contact map and save it as an RR file. contact_probs = distogram_io.contact_map_from_distogram( distance_histogram_dict) rr_path = os.path.join(output_dir, "%s.rr" % target) distogram_io.save_rr_file( filename=rr_path, probs=contact_probs, domain=target, sequence=distance_histogram_dict["sequence"]) def main(argv): del argv # Unused. flags.mark_flag_as_required("pickle_input_dir") weights = get_weights(FLAGS.tfrecord_path) paste_distance_histograms( FLAGS.pickle_input_dir, FLAGS.output_dir, weights, FLAGS.crop_sizes, FLAGS.crop_step) if __name__ == "__main__": app.run(main) ================================================ FILE: alphafold_casp13/requirements.txt ================================================ setuptools==41.0.0 absl-py==0.8.1 numpy==1.16 six==1.12 dm-sonnet==1.35 tensorflow==1.14 tensorflow-probability==0.7.0 ================================================ FILE: alphafold_casp13/run_eval.sh ================================================ #!/bin/bash # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e # We assume the script is being run from the deepmind_research parent directory. DISTOGRAM_MODEL="alphafold_casp13/873731" # Path to the directory with the distogram model. BACKGROUND_MODEL="alphafold_casp13/916425" # Path to the directory with the background model. TORSION_MODEL="alphafold_casp13/941521" # Path to the directory with the torsion model. TARGET="T1019s2" # The name of the target. TARGET_PATH="alphafold_casp13/${TARGET}" # Path to the directory with the target input data. # Set up the virtual environment and install dependencies. python3 -m venv alphafold_venv source alphafold_venv/bin/activate pip install wheel pip install -r alphafold_casp13/requirements.txt # Create the output directory. OUTPUT_DIR="${HOME}/contacts_${TARGET}_$(date +%Y_%m_%d_%H_%M_%S)" mkdir -p "${OUTPUT_DIR}" echo "Saving output to ${OUTPUT_DIR}/" # Run contact prediction over 4 replicas. for replica in 0 1 2 3; do echo "Launching all models for replica ${replica}" # Run the distogram model. python3 -m alphafold_casp13.contacts \ --logtostderr \ --cpu=true \ --config_path="${DISTOGRAM_MODEL}/${replica}/config.json" \ --checkpoint_path="${DISTOGRAM_MODEL}/${replica}/tf_graph_data/tf_graph_data.ckpt" \ --output_path="${OUTPUT_DIR}/distogram/${replica}" \ --eval_sstable="${TARGET_PATH}/${TARGET}.tfrec" \ --stats_file="${DISTOGRAM_MODEL}/stats_train_s35.json" & # Run the background model. python3 -m alphafold_casp13.contacts \ --logtostderr \ --cpu=true \ --config_path="${BACKGROUND_MODEL}/${replica}/config.json" \ --checkpoint_path="${BACKGROUND_MODEL}/${replica}/tf_graph_data/tf_graph_data.ckpt" \ --output_path="${OUTPUT_DIR}/background_distogram/${replica}" \ --eval_sstable="${TARGET_PATH}/${TARGET}.tfrec" \ --stats_file="${BACKGROUND_MODEL}/stats_train_s35.json" & done # Run the torsion model, but only 1 replica. python3 -m alphafold_casp13.contacts \ --logtostderr \ --cpu=true \ --config_path="${TORSION_MODEL}/0/config.json" \ --checkpoint_path="${TORSION_MODEL}/0/tf_graph_data/tf_graph_data.ckpt" \ --output_path="${OUTPUT_DIR}/torsion/0" \ --eval_sstable="${TARGET_PATH}/${TARGET}.tfrec" \ --stats_file="${TORSION_MODEL}/stats_train_s35.json" & echo "All models running, waiting for them to complete" wait echo "Ensembling all replica outputs" # Run the ensembling jobs for distograms, background distograms. for output_dir in "${OUTPUT_DIR}/distogram" "${OUTPUT_DIR}/background_distogram"; do pickle_dirs="${output_dir}/0/pickle_files/,${output_dir}/1/pickle_files/,${output_dir}/2/pickle_files/,${output_dir}/3/pickle_files/" # Ensemble distograms. python3 -m alphafold_casp13.ensemble_contact_maps \ --logtostderr \ --pickle_dirs="${pickle_dirs}" \ --output_dir="${output_dir}/ensemble/" done # Only ensemble single replica distogram for torsions. python3 -m alphafold_casp13.ensemble_contact_maps \ --logtostderr \ --pickle_dirs="${OUTPUT_DIR}/torsion/0/pickle_files/" \ --output_dir="${OUTPUT_DIR}/torsion/ensemble/" echo "Pasting contact maps" python3 -m alphafold_casp13.paste_contact_maps \ --logtostderr \ --pickle_input_dir="${OUTPUT_DIR}/distogram/ensemble/" \ --output_dir="${OUTPUT_DIR}/pasted/" \ --tfrecord_path="${TARGET_PATH}/${TARGET}.tfrec" echo "Done" ================================================ FILE: alphafold_casp13/secstruct.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Layer for modelling and scoring secondary structure.""" import os from absl import logging import numpy as np import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import # 8-class classes (Q8) SECONDARY_STRUCTURES = '-HETSGBI' # Equivalence classes for 3-class (Q3) from Li & Yu 2016. # See http://www.cmbi.ru.nl/dssp.html for letter explanations. Q3_MAP = ['-TSGIB', 'H', 'E'] def make_q3_matrices(): """Generate mapping matrices for secstruct Q8:Q3 equivalence classes.""" dimension = len(SECONDARY_STRUCTURES) q3_map_matrix = np.zeros((dimension, len(Q3_MAP))) q3_lookup = np.zeros((dimension,), dtype=np.int32) for i, eclass in enumerate(Q3_MAP): # equivalence classes for m in eclass: # Members of the class. ss_type = SECONDARY_STRUCTURES.index(m) q3_map_matrix[ss_type, i] = 1.0 q3_lookup[ss_type] = i return q3_map_matrix, q3_lookup class Secstruct(object): """Make a layer that computes hierarchical secstruct.""" # Build static, shared structures: q3_map_matrix, q3_lookup = make_q3_matrices() static_dimension = len(SECONDARY_STRUCTURES) def __init__(self, name='secstruct'): self.name = name self._dimension = Secstruct.static_dimension def make_layer_new(self, activations): """Make the layer.""" with tf.variable_scope(self.name, reuse=tf.AUTO_REUSE): logging.info('Creating secstruct %s', activations) self.logits = tf.contrib.layers.linear(activations, self._dimension) self.ss_q8_probs = tf.nn.softmax(self.logits) self.ss_q3_probs = tf.matmul( self.ss_q8_probs, tf.constant(self.q3_map_matrix, dtype=tf.float32)) def get_q8_probs(self): return self.ss_q8_probs def save_secstructs(dump_dir_path, name, index, sequence, probs, label='Deepmind secstruct'): """Write secstruct prob distributions to an ss2 file. Can be overloaded to write out asa values too. Args: dump_dir_path: directory where to write files. name: name of domain index: index number of multiple samples. (or None for no index) sequence: string of L residue labels probs: L x D matrix of probabilities. L is length of sequence, D is probability dimension (usually 3). label: A label for the file. """ filename = os.path.join(dump_dir_path, '%s.ss2' % name) if index is not None: filename = os.path.join(dump_dir_path, '%s_%04d.ss2' % (name, index)) with tf.io.gfile.GFile(filename, 'w') as gf: logging.info('Saving secstruct to %s', filename) gf.write('# %s CLASSES [%s] %s sample %s\n\n' % ( label, ''.join(SECONDARY_STRUCTURES[:probs.shape[1]]), name, index)) for l in range(probs.shape[0]): ss = SECONDARY_STRUCTURES[np.argmax(probs[l, :])] gf.write('%4d %1s %1s %s\n' % (l + 1, sequence[l], ss, ''.join( [('%6.3f' % p) for p in probs[l, :]]))) ================================================ FILE: alphafold_casp13/test_domains.txt ================================================ 3r75A02 4f03B02 2kssA01 2fmlB03 2o7sA02 2bmoA01 2cjzA00 4cbeA00 1u78A02 5ccbA01 4hcjA00 3c1dA03 5fo5A00 2x9oA00 1vq8P02 4fuoA01 1pp8O00 2vosA02 4q5fA02 4htgA03 3aafA00 1el6A02 3duzA03 2v0oB00 3zm1A00 3sk9A00 1s8nA02 3vurA02 1v3fA00 3by6C01 2yv7A02 3q7eA02 1ucrB00 4n6qA00 3n40F01 3abhA01 1yo5C00 1t6sA01 3rgoA00 4ljxA00 4acoA01 5g5eA02 4r8hB02 3bjaA00 2cn4A01 3h20A01 4ak1A01 1ouwA00 4g7nA02 4b7lA01 2nnuA01 6escA05 2iv2X03 4hojA02 1ik7A00 4lq4A01 2htjA01 2ju0B00 5it3A00 2keyA00 3g9gA00 3s2wG00 4aumB03 2xvcA00 3r4kB01 2o0yC01 3mczA01 2nyxB01 3b4vD01 1x8pA00 1eaqB00 4cjxA02 1lkoA01 4pvkA02 3bddD00 4atmA00 4n6rB00 2g3rA02 2wqgA00 3nr7A00 4rs8A00 1bbyA00 2efeA02 1azoA00 3d79A01 2icgA00 1s3jA02 3nrvB00 5j8eA00 3apaA00 3vvmA02 3bv8A00 4mlvA03 3m8eA00 3lapA01 2wq4A01 2m8eA00 3u62A01 2qbyB03 2m45A00 3pvtA00 1gpwD00 3bwgB01 2m13A00 2ls0101 1iqoA00 6az6A01 4oggC02 3o8qA01 3gw6D02 16vpA00 1lf7A00 2v89A01 3ttyA02 2fxaA00 3kq0A00 3ubkB02 2ee7A01 2kw7A00 2c3nA02 1d3yA01 2lw7A01 3agcB00 1ifcA00 3hwcA03 2h6bA02 1g4iA00 4om7A00 3c1dB01 1vq8P01 3d54D00 4aihF00 1bkrA00 1larB01 4djaA02 1opcA00 5x07F00 2b9wA03 2od5A00 4ad9A02 1ev7B02 1mswD01 2vj4A01 4f7zA02 2vxdA00 2b1xA01 2rbgA00 4pitA00 2o6yA02 1ksqA00 2cjaA01 4a0pA02 3c57B00 2ia2C01 3eyyA01 4pxoA02 1r7jA00 2dt8A01 2ojhA00 1t3gB00 4htpA00 1pdnC02 2pg0A03 5hvqC02 4e4rA01 1vmiA01 4xrfA00 3h1dA01 4hl4A01 2vzbB00 2pn1A01 3a9qE00 3bpvA00 2hpuA02 3teqB00 2kjzA01 4lmyA01 3fx3B02 4rl1A02 4boeA00 4p5pA00 2b49A00 1zbhA01 1mc2A00 2qq9A01 3zc0D00 2l02A00 4e8hA02 3lszA02 2e6xB00 2hqrA02 3gudA00 3tgnB02 2cxyA00 3zuiA00 2qrvD02 3vsmA02 1i4jA00 2fdoA00 5tp4A02 2pvqA02 3htuA00 3ay8A02 4gqbA03 4wohA01 4r6rA00 2fsiB04 3qaoA00 2zhgA00 2xqoA00 3terA00 1hciA01 2va0A00 1f2eA02 2zbkA01 3m0fB02 2g8sB00 3v8jA01 4lzpA00 3d2qD00 1bhdA00 2vpzA04 3cm3A00 2fr2A00 5hdkC00 4agsA02 6em3Y00 3hugA00 3h92A00 1dceA02 2or0A03 4pxdA02 1lvaA03 2pmuC00 3mwmA01 4mv4A01 3fprA00 2y3cA00 2pagA00 5c8eG01 2ip2A01 4cvkA03 4uhvA02 2cqkA00 3mq0A01 3k6mD01 3e5zA00 3b0pA02 5h5lB02 3fvqA03 2qvoA00 2qe8A00 2n01B00 4mnuB00 3jw4A00 3hhdA04 3vpbA01 1vk5A00 5xyiE02 6az1E02 4k05A02 2dulA02 1j5yA01 4if4A02 1qdlB00 2fexA00 3tgxB00 3t0yA02 2i8bB00 4u63A02 3mq1A01 5jpoD02 2itbB00 4d2mA00 4g6qA01 1go3F01 3b73B00 2c2jA00 2h09A01 5e1wA00 3m9vA03 1wh2A01 3m8eB00 1r8eA02 3ecrB03 4pqhA02 2c2uA00 2rbdA01 5d4sB00 1wchA00 2jngA00 1oyiA00 4mziA00 3k69A00 3r1fE02 2obpA00 3lppA01 2kd1A00 5hgwA00 2a6hF02 3snfA00 1v2aA02 1k3yA02 3oqgB00 4aohA00 1xeqB00 2i1yA00 1i27A00 2hqtK00 3qhqA02 3lbxB02 3o2pE00 3buxB01 5aipB00 2fphX01 5kzwA01 3dv8A02 2a7oA00 4iwyA01 2r3sB01 3ebkB00 1mz9A00 5ilbA02 2r7kA01 4fzqA00 1y60A00 3lmmB05 4c08A02 6em3M01 3echA01 3l09A01 1cf7A00 4xvxA03 2w25A01 3kfwX01 4ivfA02 4hw0C00 1ej6D02 2odvA02 4kdxA02 3boqA00 3a5zF01 1rt8A01 3sreA00 1c3kA00 3lp8A01 3fzvB01 3i71B00 2wa7A01 1c3cA02 2kvuA00 2os0A00 1mzbA01 5cecA02 4c5cA01 4gyiA01 3duzA04 3ibtA02 3fvzA00 3bhnA00 1xvsA00 2eshA00 4jzyA02 5mgwA02 3m1gA02 4f3fC00 2gxgA00 2kj8A00 3majA02 3cbuA02 3to7A03 2rk3A00 2pfbB00 4h63H04 3sxyA01 3p8bB02 3kyzA00 4wr4A02 4i1oD02 5hs7B00 5cvvB01 4ac7B00 1gpmA01 3ic8A02 4g9yA00 5f07A02 1ya5T01 2ia1B02 4dzoA02 1vq8R00 2hj0A02 4v33A01 4arcA05 2v9vA02 3v4gA01 2o3fA00 5b4jA00 3ak8F00 5dukB00 2d87A01 2p8tA01 1vjxA00 2kiwA01 5jskA02 2omdA00 4a5uB00 1tbxB00 3e6cC02 3ei4B01 4fw1A02 1xmbA02 1in4A02 1c9vA00 1jigA00 3t5xA02 2hnlA02 2b9wA02 4lqcB00 3bnjA02 2rb7A02 3d37A02 4dr8D00 3k5iD01 4iw9A02 6el8A00 4nyqA00 4nhjB00 1p15A00 2o0yB01 1xjhA00 4zxgA02 4kyqA00 4ck4A00 3pltA00 4nlcA02 3cj8B02 5dm7R00 3eetA01 1ejgA00 1y0uA00 3einA02 5cwtA00 1fseB00 3k2zB01 4ou0A00 2qqyA00 2p5zX02 5lrrF02 5xyiK00 2mh2A00 4ercA00 4fzsA00 1i9gA01 3cx5E01 4rayA01 1pchA00 3ez0C00 1kwgA02 1t8sA01 4jmfA00 4x9xA01 1e6bA02 3dptB01 5a89A00 5dzsA01 4w8hA00 3ll2A00 2odvA01 3gw2A00 4p79A00 4uzsB02 1oheA02 3o6uA00 2gauA02 4hyeA02 4qqwA01 5jhmA01 3l2pA01 4gcvC00 4j2fA02 2q8kA02 3s6xC01 3ml1A03 3nqoB00 2fq3A00 1jkvA01 3pqkA00 4ea9A01 2hoxA01 1w4tA02 2v9vA01 1irxA03 2xv4S03 1d8bA00 5dqvA02 1p3dA03 1w5sA03 3o65A02 3pfeA02 2j5dA01 5eehB01 3it4B01 1yf2A02 1mw9X02 2zahA02 3l0mA02 3drwA02 3cuqA02 3gxhA00 2v9bA00 2irfG00 3cuqB03 4o7hB02 3gz5B02 4cvrA00 1l3lA02 3keyA01 3g73A00 4lr4A02 1vkzA01 3c8tA02 4hi7B02 2vooB01 2lm9A00 2m1bA00 1pp9E01 3ebwA01 1xezA02 1m7lA00 2c5zA00 3ngxA02 1rt8A03 5uejA02 4a6dA01 4esjA02 3dr2A00 4r0sA00 3p4tA03 4g10A02 3jamZ00 2konA00 3e3vA01 4nyhA00 2vpzA03 2ipcA04 2pvpA01 3i4pA01 1fm0E00 1z6oM00 1sh5A01 1biaA01 2rt6A00 1ul4A01 1fpqA02 5fwaA02 2d89A01 3ir4A02 1yyvB00 2felE00 4zbdA02 1npeA00 4wd3A01 1o5zA02 5dcmA00 1qmoE01 2nraC02 1pfiA00 4r24B00 3aw8A01 4pxeA02 1sy7A03 1knzA01 3l4rA00 3h4sA02 3owaA03 2xstA00 2qlzB01 3byqA00 1v74A00 2xubA04 2ga1A02 4k2eB00 2hraA02 2zogA02 4exjA02 2zuvA03 2esnA01 2gtiA01 3ljdA00 3er6A00 2g6zA00 1i7qB00 2pbiA01 3gp4B00 3edvB01 1edzA02 4glwA01 2yo3A04 1kt6A00 1vq8T00 4wlsA00 2cuyA02 2dk5A01 4fasA01 1hciA04 2ot3A02 4o6uA00 4etrB00 5t3wA00 3p9cA01 5uagF02 3ei3B01 3fseA01 3sk1C01 1s29A00 1sfxB00 1u3eM02 2yjkC00 4ymyA00 1wi9A01 2o5cB02 2xxlA01 2rn7A01 4cdgA04 3jygA00 5ahoA02 4nb5B01 4nkbA01 3ccdA00 3go5A04 4m3oA00 2rqpA00 1l0oC00 1zarA01 5f64A02 2l5pA00 3qweA00 3iylU02 3owaB04 3gk7A01 4dylA01 2jozA01 4zyeA02 4tvvC00 3dfgA02 3pwzA01 3lbxB01 2f2eA01 2li6A00 4gnkE00 2dlbA00 5tjjA01 5x12A01 1jgsA00 1u0sA00 2sttA00 2z3yA01 4nx8B00 3f81A00 3bt3A01 2d29A03 3qhbA00 3lk7A03 2x3lA03 2fp8B00 2a3vB01 1gqvA00 2fa5A00 4o92A02 1n57A00 2vzcB00 2cvdA02 2fbhA00 3m1cA04 2hgcA00 5e33A02 4aukA01 1o8vA00 3unoE00 2p7sA00 1sx5B00 2riqA02 3d5pA00 1miuA04 3vpdA01 3bt5A00 3keoA01 1stzA01 4nswB01 4r42A01 3r5xA01 4l9bA02 2co5A00 2bh1A01 4fzbC02 5gvyA00 3d06A00 4gy7A03 3wnzA01 5k3hB04 3bk3C00 2wyhB01 2pn6A01 3kbgA03 5ck3C00 2w86A02 4bvxB02 2cg4A01 2looA02 2h1yA02 1hkqA00 3swoA03 4iylA01 4m37A02 2ia0A01 4x28A03 4bwsF00 2rhfA00 1i4dA00 2zbdA01 1b9mB01 3fiqA00 3jyoA01 3k4iC02 2ofqA01 3vsmA03 4c6rA00 1uebA01 1k90B03 2qjzA00 3dfgA01 1mkmB01 1ua4A02 1xo0A01 3vfzB00 2llzA01 3elkB00 1q1hA00 2o62A02 4j3vA01 3wd6A02 1jhfA02 1sfuA00 1ufmA00 2lonA01 3lxzB02 2zkoA00 3sovA01 2hoqA02 1c6vX00 3ramA02 3sqiA02 1pueF00 4jedA02 1repC01 1avgI00 3cniA00 2du5B01 3ispA01 2qlzA03 3qu3B01 2zo4A02 1bjaA00 1dp7P00 5i47A01 4rgxB00 5ffxD00 3tedA01 2vdjA01 3ar4A01 3l3bA00 4i2oA02 3ziwA02 4x6gB01 1ocyA02 4ytlA02 2fytA02 2gsqA02 4kf9A02 2d4cB00 4esbA00 2w7aB00 1j6uA03 1c4zA01 4i98C01 3rjpA00 4akxB01 1x6oA01 1z6tA04 2efkA01 1lr1A00 1ut7B01 2vrnA00 1fzpD00 3m1eA00 2hzrA00 2c2xA02 4mhgA01 3gvaA00 4irnA03 1khiA01 2qjxA00 3hn7A03 4wu3A01 3bxjA01 4wpeA00 3iq1B00 3qavA02 2e1mB02 3d37A03 1q08A00 1oe8A02 3fdeB01 5k2mA01 1l8dA00 2fnoA02 1p4xA01 4u9hS02 1cruA00 2rkhA01 2ix5A03 4mtdD01 4jbbA02 5mteA00 3f7cA00 2fmyA02 1qftB00 1h67A00 4nzvA02 3bz6A02 3fxqB01 3e3vA03 1fp2A01 2hcmA01 1tnsA00 1ev7A01 2yvlA01 2y5pA00 1cunA01 3fvcA05 3nk4B01 4m9cA01 4c4aA04 4eg0A01 2hztC00 1k7wA02 5bpdD01 2di3A01 2kj9A00 3m6zA02 1epaA00 4ijaA01 2wgpA00 3u9gA01 3l09A02 1m6nA04 4f0bA02 3c7jA01 4fu0A01 1lehA01 3cjnA00 3x0dA02 1r0uA00 4acoA02 2p7vB00 3ax6A01 3safA02 1kafA00 2oxoA00 4rm7A03 3pvhA00 1qo0D02 1m1gB03 5jtwA06 3lupA01 2jrtA01 3wocA00 1hw1A01 2i87B01 2h6oA03 4admC02 1ussA00 3ehmA03 3ii2A00 3lfkD00 2e70A00 4qytA00 1rt8A04 2ycdA02 1kgsA02 4l5jB01 1t4wA00 2e1fA01 3qphA01 1xezA04 1fnnB03 2ex2A02 4q5nA02 5fgmA00 3vcxA01 3votA01 1ptfA00 1g8lA02 4oj5A02 3ig5A04 4tq2A00 2lkpA00 1ulyA01 4adiB04 2yu3A01 1t6sB02 4jg5A02 2g7zA01 1s6lA01 4hw6A02 2rdpA00 3sqnB01 3e6mA00 1tjoB00 3phhA01 2p5kA00 4txiA03 2mlgA00 2v1xA03 1p2xA00 5gtqA00 1vlgA00 3fb2A01 2igsA00 2q0oA02 3op1B02 3ezuA01 3if8B02 2v6kA02 1fc3B00 1ov9B00 3l00A02 4u7bA02 3o22A00 5j4uA02 3ct9A02 3cazB00 3dasA00 3dkmA00 2nlkA02 1peqA03 5wvoC02 1u5tB02 1y2oA00 3dytA02 3akmA00 4xgiA02 4m32A01 4az1B00 1yu0A03 2gp4A03 2xubA01 3mw9A02 4esfA00 3f5dA00 4uf1A00 5xoyB02 2clbA01 2h6oA02 3graA00 5h80A01 1wymA01 4em2A00 4fczA00 3liuA02 1qbjC00 1a4iA02 3u1dB00 3d7jA00 1ro2A03 2dbbB01 3g27A01 1z9hA03 3bf0A02 3ttvA03 4co8A00 3ztaA00 1u0jA01 2gumB05 2ci8A01 2jbrA03 2vheA01 1p2fA02 3vg7A00 3kffA00 5m43A00 3oghB00 3lt7C00 2ffjB03 1o1yA00 1v4rA01 2kkpA00 4jerA00 1vh6A01 1gm5A01 5bx1A00 1oahA02 4l0yB00 2qfaC00 3emuA00 1ub9A00 1vjvA02 1d8jA00 1r2jA03 3k3vA00 1w79A02 1k0oB02 1on2A01 2kptA00 4es8B01 3saoB01 1o54A01 3r0rA00 3qg5D02 4q48A03 2dk8A01 1afoA00 1qgpA00 3gzxA01 2z3qA00 4cxfA02 5j09A00 4g7nA01 2j4dA02 1w07A04 2p63A01 3bnwB00 2wg7A00 2dj6B00 3rhtA00 5gouG00 2outA01 4gf0A02 5anpA00 2e0iA02 3cymA02 3i3lA02 3ok8A00 2qenA03 4nleA01 5j3bA01 2ztbA02 3fseB02 1o57A01 4o5vA01 1vzyA02 4iikA00 4k2hD00 4lruA00 3lwbA01 2memA00 4dk1C01 3c8eA02 2qwwC00 1dzkA00 2e2fA00 4tkbA00 1pocA00 1zs3A00 2gscE00 2x3dF01 1or7B02 5lewA03 4mamA01 3d1lA02 4mudC00 3w6jE02 4e5vB00 2vclA00 5i47B03 4ytlA01 1f1mA00 3neuA01 4qupA01 3jrnA00 2d1hB00 1yg2A01 2nxuA01 2hivA01 4ivnA01 4hz4A02 1poiB00 1owaA02 3mjfA01 1ldjA06 5an9F02 3bvfA00 5c0yA02 1b7yB06 5trdA02 3r0aA00 3ucsA00 2z1qB04 1fy2A00 2fjcB00 4d3pA00 1v66A00 2lmzA00 1xeoA00 1u9cA00 2l5qA02 5tkwA01 4awxB00 2d86A01 2ww2A04 4fcyB05 4mf5A02 3vpdA03 3lysD00 5oomT00 2nnnC00 2qbyA03 2x5oA03 2qf9A01 1gxqA00 1z01A01 4b4uA02 5j93A00 4mvkA00 3bj6B00 4e70A01 4a0pA01 3eo5A01 3ww9A00 1q7hA01 5hjfA00 3hjhA02 3topA01 5nzxA02 1xkiA00 3kyaA02 3tx8A02 3gb0A02 5d9vA02 3l2cA00 2hc1A00 3fm3A02 1s1dA00 3d9xA03 2c2nA02 3ethA01 5dblA00 2pwyA01 1jbwA02 2ib0A01 3sbmA02 2fh5A01 2gk3A00 3tqtB01 2uxwA04 1lm8V01 2i5eA02 3dfgA03 4p72A06 4jrfA02 4wcgA00 1uzkA02 2glfA02 5u56A02 3fo3A03 2ia2D01 2pjpA02 4wfvA00 2q9rA01 5hdwA00 2ns0A00 3aosA00 4ri6A02 1vl2A03 3amrA00 3lapD01 2a61B00 2g9wA01 3f6oB00 5d7uA00 3co6C00 5jscA03 5hbsA00 3dkwG02 4es7A00 4o3mA04 4hz2A02 3uowB01 3itwB01 2k4xA01 2pg4A00 1v5eA04 2fftA01 2zkzC00 2j16B00 4nqiD00 2z99A01 4n0vA02 1debB00 3e97A02 5j41A02 2wteA02 3k1lA01 3p7nA02 4a8eA01 2vdfA00 3tnlA01 4kfcB02 6az1a00 3tu3B01 2v79A00 1p6rA00 1z70X00 5jrcA00 4lwoB02 1repC02 2vbuA01 4o5mC03 1j30A00 4eo7A01 1poiA01 1a0pA01 4perB00 2oh3A01 3pe0A01 4ki9A00 1xr4B01 4uhtA00 3hh2D01 2d74B01 1x9nA01 4ejoA00 5deqB02 3dplC03 4s04A02 2e1nA00 2a6hF03 3cuqB02 2ptrA02 3ff5A00 2g7bA00 2ek5B00 1v3yA00 3l7wA00 1pjxA00 4bl0B00 3nyiA01 4ixaB00 2isyA01 1s35A02 4emeD02 5d6eA02 3fpnB00 6az1E03 3e8tA00 1ka8A00 3kloA02 3pdiD03 3hruB01 5t5xA02 3fpnA00 2fnaA03 1u3dA02 4agsB04 1xsvA00 5gudA02 2j58A04 2prvB00 2cttA01 3cqnB00 2fcjC00 1vraB01 4o3mA03 1q7fB00 4cdnB02 2vglS00 1nfvA00 2b25A01 1iznB03 5jgfA02 1qwdB00 3q18A02 1y2mC02 2fmlA01 3cdhA00 3kwoA00 3l7nA00 1nb0A00 2nuiA00 3aa0B01 1nnvA01 3en0C00 1l9xA00 4tvrA02 2cz2A02 1k78I00 1zhxA03 3mmjA02 3mgkB00 1ku9B01 3ifeA02 3f8mA01 4b8xB00 3oopA01 2lclA00 2x46A00 2gigB00 3im9A02 3w3sA01 5xdcA03 2m1xA00 2ga1A01 1lwbA00 2mc3A00 3kwlA04 4c4aA02 3ajqA00 4cgyA02 4cy9A00 2r0bA00 5gqtA01 1wyrA00 1jeqA05 4kibA01 2rfqC03 3edpA01 3w6kC00 1a04A02 3broD00 1np7A02 2heoA00 1wthD03 4e4tB01 3k6mC02 2ltjA00 6az1N00 3h1nA02 2pspA02 2kobA01 3pn3A00 1nktA04 2g7uA01 3u04A00 4mq0A02 4xfjA03 1ijqA01 4ntkA00 5xm5A00 1u2mB00 2pokA02 1apjA00 3b02A02 3cddB03 5t17A00 2ve8D01 3kp7A00 1ywfA00 2uxwA01 2fzfA01 2elhA01 3tzyA02 3hrpA02 5cqgA02 3m6nC02 1hqoA02 1hciA02 1t0fA02 3iwfB00 5i41B00 2nynA02 2ahuA02 4eqqA02 4uu3B00 2a5yC03 2q5wE00 4g0iA02 2b0lC00 3io1A02 3b5iA02 3zl8A03 4dimA01 4q5qA02 5cyvA00 2pybA00 4dbgB01 5dd8A00 1ldjA07 5mc7A00 1wfxA01 4nkbB02 3axsA02 2ma3A00 3qp6A02 1k90C03 1z05A01 3vmaA03 1t0bA00 2jbyA00 1rz4A02 5h9nA00 4m9sB04 5ih3D02 1w5rA02 3ihsA00 5ed4A02 3efeC00 5trdA01 3eyiB00 2e7zA03 3pdiA02 2l48A00 1wruA02 1u2wD00 2zcwA02 1nltA02 4gpvA02 4fzbA02 4d0pA02 1kqfA03 2kkvA01 4kt5C00 2k4jA00 1wruA03 3e3vA02 2gyqA00 4pzjA00 5dvwA00 1svbA01 3kfwX03 3tqeA02 4p55B00 2spcA00 3l4eA00 2l0jA00 1oywA03 2ethA00 2yykA03 4oa3A00 1o7fA02 4nqwA02 1vhqB00 3pfoA02 2cm2A00 5sy4A00 1cf7B00 5l87A00 2ipqX01 3fijC00 1t98A01 1td6A03 3jtgA01 3ihuA01 2mqdA00 3tduD00 1hstA00 1z67A00 1yt3A03 2kr6A01 4c6sA00 2c46B00 5ffdA00 3jqoB00 1j9iA00 2r85A01 5ggeA00 1u5pA01 4btfA01 3pptA00 2p0aA01 1ho8A02 1xd7A00 5an9H00 2q12A00 2ff4A01 2g64A00 2yv9B02 1lfwA02 4fx0A00 5erqA02 4yiiA00 1dnpA02 4cfsA02 4gudB00 2b8iA00 2ghsA00 1rp3B02 3vatA02 3zgxC00 2pjpA01 2oasA01 2p84A02 1i4uB00 4bhbA02 1yuzB01 4oo2A02 3oipA01 6blbA03 3f8bA00 2e12A00 1nrjA00 3kbgA02 1u2mA00 1r1tA00 3zm6A03 1dy5A00 5iceA01 2ckfC01 2hoeA01 2yrnA01 3s4lA00 1h5wB02 4iwkA00 3mb5A01 3v0dA01 3ulqB00 3f6vA00 1g8kA03 1g4wR02 1sg2B00 2ox7A02 1jadA00 1w78A02 1tw9F02 1zzwA00 3cneA00 2de6A01 2xigA01 5d90B00 2gwrA02 3rpfA00 4n9jA02 2cx0A01 1wqjB01 2cf7A00 4bvxA02 2oqgC00 4tv7D01 4xijA01 4m98A01 3d2nA00 4mmoA02 4asnA00 1p4wA00 1wudA00 2ckkA02 3pvtB00 2fwvA00 4gd3Q02 3lkmA02 3ub2A00 2q2eA01 2wa7A02 4yt2A02 2kj5A00 4cydB02 2xubA02 3tqnA01 2xrnB01 2d1lA00 3gwzA01 1u8vB03 3g3zA02 4yaaA00 1u5tB01 1e8cB03 2r7dA01 2vxzA01 1lvaA04 2ikdA00 4x28C03 3u2rA00 1vprA02 3wtsC00 4cybD00 2zj2A03 2rldA00 1npyA01 4guzA02 1gsaA01 2x4hA00 4nn5B01 5xxuK00 4abxC01 3hrzA06 5bvrA01 3df8A00 4yifF00 1bm9A00 3rbtA02 3c18A03 2kc5A01 2ds5A00 1w4mA00 5cvrA02 4gggA00 4kh7B02 4kmfA00 2f1lA01 3ha4B00 2ymaA00 2ijlB00 1mdcA00 5dmhB02 1oheA01 4pcqA01 2oc5A01 1kjqA01 2f46A00 4ewtA02 4rkkA02 3t8rA00 1musA01 4bxuA00 2rhsD06 4gciA02 3dp7B01 5mpoC00 4hf0B00 2j91C02 2ddhA03 1lfwA03 4llfD02 3szpA01 4iiwA01 1i7dA02 5dymA00 3jysA03 2z1dB01 3r0qA02 2i76B02 2rq5A00 1vprA03 2q4zA02 3vepH00 5k8pA02 1sd4A01 5g3mA00 3cymA03 4a0zA01 2c0gA02 3g5kA00 4dw1A02 1vq8A02 5fhiA02 2w7tA00 1p4xA02 2hq4A00 3uulA00 2rdcA00 4dthA02 4qbuA03 1c1dA01 2nv0A00 3r8yA01 2hk9C01 2oc3A00 1y0kA00 4lerA03 3bz6A01 4innA00 2wanA01 1xgsA02 1xmkA00 2o62A01 1s35A01 2ahuA01 5x8tT00 2ra6C00 3gpvA00 1cg2A02 3d5lA03 3oyyA01 4c12A03 2lsoA00 3mkhA03 2xqyA03 3hl1B01 1je8E00 2jtvA00 2khqA01 2zdhA01 3f8mB01 3zxcB00 4ueyA00 2rjbD00 1a9xB02 2n93A00 2khvA01 3lsoA01 2ysrA00 3lx3A00 4j6eA01 1uunA02 4reoA01 2fswA00 2f7vA02 1eu1A02 2rrfA00 2vz4A00 2p9bA02 2kvdA02 2g8lA03 2x5hA00 2p4wA01 1tj7A02 4ptsB02 5v8zC00 3unvA02 4k28A01 3lypA02 1yguA02 1gkmA02 3noqA00 1rt8A02 6az1T02 1wpuA00 1nm2A01 2cfmA01 3n0aA01 1cunA02 2w82A02 3ckcA03 2dg1C00 4qdiA03 3m3pA00 1lkeA00 5eriA00 1nhyA02 1wl8A00 1r8iA00 4wiqA02 4jqfA02 1ig6A00 4ge1C00 2e1mC01 2p4oA01 2qfaB00 5cehA02 2vglM01 2pspA01 2nraC01 3drxB03 3zmdA00 1g8kC01 1j27A00 3f31A00 1rx0A03 1mrzB02 3hugE00 1vl2B03 1fpzC00 4zdjA02 2htsA00 2jz7A00 4b09B02 2va0B00 3cuqA03 4g6dA00 2kw6A00 2bv6A00 3wg9B01 4hr3A03 3vrpA01 3nqiA02 1r6tA01 2kdsA01 5forA00 1jvnA01 2xovA00 4oddB00 1yt3A02 3q6kA00 4pxyA00 3ke2B00 2pq8A03 1bkbA01 5kvrA00 2ikeA00 2jvwA01 4q7aC02 2yjeM00 1k78A01 1ydxA02 5gjvE00 3q4oA00 2dyiA01 2yg2B00 1xriA00 2c4jA02 3nivC02 2fokA02 1jmuB02 3k9tA03 2kuyA00 4hlyA00 2hnhA03 3pe0A02 1lddA00 1quuA02 3la7B02 3hlkA01 1aoaA02 2b0jA02 4qqdA02 4q2cA01 2abwA00 1ia9A02 3nrwA00 1z6oA00 3hh0A01 1ft9A02 3r2qA02 4wpcA00 2xjaD03 3hsrA00 2hr3D02 1hsjB03 2i6jA00 3olmA01 2p5vA01 ================================================ FILE: alphafold_casp13/train_domains.txt ================================================ 1bxyA00 3r5xD02 1ib8A02 1xzzA00 4it7A00 2zpaA02 2hv2A01 2uxwA02 4n5mA00 2jbaA00 2ymsA00 4c2lA00 4wwoA01 2jvoA00 1wluA00 2haxA02 3aowA01 4u3vA00 3ilhA00 2oyhE01 2lcqA01 4ap5A02 3exnA00 2fl7A00 3zq4C03 2yjgA02 1n93X02 2ou5A00 4aibA01 3tl8F00 1ntyA02 1lssA00 1qxyA00 2g3bA00 1vs0A03 4neuB00 6em3O01 5c11A00 3pu6A00 5kvgH02 2j42A01 2dgbA00 2hsjD00 5ljlA00 3h09A04 1vefA01 2xdhA00 3fbgA01 3c8vA02 3vs8H00 3caiA01 3rotA01 2ld7A00 2d4aD01 5aqmD00 5mp0D00 3lo7B01 3lkeB00 6b6uB01 4me2A00 3c3mA00 3h74A00 4oonA02 3bl4A02 2ztdA03 4euoA02 4dv8A01 2nx4C00 4yy8A02 4jp6A00 1eg2A00 3slkA01 2g81I00 4b8vA03 4ofzA03 3i45A02 2d9qB01 3rbyA02 2hoqA01 2q6kA02 4feyA02 2lvlA01 4b6hA00 5am2A02 1lvkA04 2ztuB00 3g7sB02 4usaA03 2j3tD01 1xdnA01 1wxxA01 3fgeA01 2qkdA03 1u0tB01 2qb7A01 3m4pA01 4c91A04 1kcmA00 3hrzC01 4fx5A03 3e0jC01 2bolA03 2f4eB00 4ms4A01 1vi6C01 2b1eA03 2bi7A01 1zzgA01 3rfqC00 1so2A00 3gnfB06 4uwjA02 2mf9A00 4up0A00 3u49D00 3k1rB00 2w5vA00 3etvA02 3ufcX01 3arxA01 4kyoD00 2icwG02 3bkbA01 4wuyA03 3tszA03 1x0gA00 4b7cA01 3mviA00 2jwaA00 4qhqA02 1tsjA00 1yukB01 3kz9D00 1l7mA02 2jgpA03 5bqnA02 3odtA00 4hnoA00 3h46O01 3r89A00 3c96A02 3jslA02 2eboA00 2gumC03 3hphB01 2r5wB02 5bxrA02 5hxgB00 2zhjA01 1r6xA01 1xszA02 3co8A01 3shqA02 2q8aA03 3usbB00 1xq8A00 1dl5A02 4qjvB00 3d2fA05 1q6zA02 3cvoA00 2hhiA02 3bjbD00 2fd6U03 1m6bB04 3fvvA01 3k1hA00 1sz9C00 4a2aA02 5by5A00 2xikA01 2o0rA02 1oi0A00 4j6eA02 5cclA01 3lgiA02 1oiaA00 3h5tA03 1ccwB02 3zukA02 3vpsB02 4a3zA00 2h5gB01 3gveA00 2c4bA00 3ho7A01 2yzrC00 1kw4A00 1pvmA00 3jb9L00 1m2kA02 2rsoA00 3d9yA00 2v9tA00 3k7dA01 4m7oA01 2fvyA02 4iupA02 3fk9A00 3tdgA01 2rsvA00 2d73A01 2wnpF01 1svbA04 2w2jA00 1z3iX03 3ha9A00 4mndA02 3rtxA02 2vchA01 1r30A00 1ic8A01 4ww8D00 4g9mB00 3aekB04 4jquB00 1y56A01 3jr7A01 5a3vA02 2lckA00 1qfhA01 1vi4A00 3w4rA01 2lwpA00 3kzgA01 5iqaA01 3wvsA00 1nj8A03 3aupD02 3bghB01 2iw5B00 3h8uA00 1n1cB02 1l5aA01 5eokA01 1pcxA02 2bdrA00 2bujB01 4behA01 1w36D02 1jxzC02 1pjqA02 2qwvA00 1t3kA00 4u85A01 2xyqA00 3f9mA02 5h80B03 3jtpA00 5okaA00 1lfdA00 4uhoA01 1mmdA06 1yozA00 1u84A00 3tefA02 3h0uB00 1xs0A00 4oxxA00 1tuhA00 4igbB02 1ym5A01 1weqA00 3dv8A01 5aoxE00 4k29B00 3o6wA01 4l4hA03 1kxlA00 1tkeA03 1k20A02 3rhgA00 3sbtB02 1pugB00 3upuA01 3crnA00 2dirA01 4ft4B01 3pguA00 1wwmA00 4airB01 1jy5A00 4m8dA00 3qx3B03 1ezjA01 4v1xA02 3nynA02 3akeA00 1z0sA01 2lxfA00 2j6bA00 1vq8W01 3df6B00 5e9nA02 4xotA03 2pn6A02 1t7vA01 1j6uA02 3ozbA00 1t5oA02 1lciA02 3rhzA01 4f42A00 3kxeC01 2nxpB00 1vf6C00 4gn2A00 1exzB00 4uxuA00 1n3kA00 5e16A00 1bd8A00 1nfpA00 4ckkB02 3nkhA00 2bhwA01 3qnmA02 1hwtD02 1c8uA02 5mf6A01 2o5nB01 3jqwC00 4nekA02 5l3sB02 5an9G00 1j9jA00 2q8pA02 1hqsA00 1d2mA02 2vqeK00 3ch4B00 1zccA00 3zwcA03 4bqnA02 1bymA00 3f70A02 3szaA01 1rqgA02 1wlgA02 3venA03 2i3dB00 2a1sA02 3t4nA01 3of4A00 4pqgA03 4lupA00 4yecA01 3hxlA04 3qavA01 2jjqA03 2zgyA02 3bleA00 3nuhB03 1m9oA00 2wagA00 4fh0A00 2vjvA00 2xcbA00 4mzaA00 1sl6A00 2xnxM00 4xgiA03 5ktmA01 4oagB02 3oz2A02 3pidA02 1gm5A03 1ceuA00 2oayA01 1hyhC02 4fixA01 3gw6F01 2h88A03 4d79A00 2vm1C01 1h8uB00 2eh3A02 3ssoA01 4aa9A01 3whpA01 5jybA02 3pv7A02 1vpaA00 3pmqA02 3czgA01 1yu0A02 1t9hA03 4ihmA00 4dz1A02 1w85I00 4cd5A00 4fzlA02 3gdcA02 4bhrA00 2ae0X01 3uw3B01 2c0cA02 1v9dA01 1gp6A00 2jk1A00 5lxfA00 5jxgA02 1ibyA00 5dt9A03 3rlfG01 2i33B00 4p0tB00 4rngC00 1x3kA01 2c78A01 3fg2P03 1y8qB01 2fzlA02 1ogoX02 2rjlA01 2i49A01 3aqlA02 3ktbA00 1a8oA00 1vfrA00 1rkuA01 3twyA00 3kjjB00 2wz8A00 1xqiA00 2dmkA01 2f09A00 5d22B00 1cd9D01 5aunB01 3ll3B01 1chcA00 4h63H01 1n7zA02 1r2jA01 5flmH01 3b9fI02 4hzuS00 3x1lB02 1ci9A00 1vomA04 6az1c00 1qf8A01 4egwA01 1uj8A00 3m0zD00 2qiyA00 4cbbA02 4wjvD00 4ewfA00 2fywA02 3u7iA00 3hhpA01 2z14A00 4ag7A01 2essA01 3g7gH00 1yyhB00 3ci0J02 1vqsA00 5e8vA02 2pbeA01 2rprA00 2gw6A01 5cxbA02 2ww2A03 2ka6B00 3h96C00 1m0wA04 5mu9A02 3fidA00 2kmsA02 2zbkB03 2biiA02 1lqaA00 1yt5A02 3vxmE01 3s1tA01 4ilvB00 1cgmE00 3u8vA00 2v76B00 2gs8A01 4y60C00 3arxA02 2jxwA00 3dh1B00 4f9cA02 2mjkA00 5nt7B00 2lopA00 1e4uA00 3l1wA00 2p65A00 2je6B01 1pl4A02 3c6xA00 5dltA02 2pqcA02 5e68A00 3frrA00 4at7B02 4a15A03 1peaA01 3fnbA01 4s1vB01 3cc1B01 3b0zB00 4gw9B03 3v5uA01 1wgoA01 3iwgA01 4rudA00 4flaC00 2kigA00 4k89A01 2hdwA02 1x38A02 4pqhA01 2v7kA01 1jvrA00 3f5oA00 4tw1B00 5k2lA00 5tpkA01 2pjsA01 1fl0A00 4l6wA02 1bazC00 4gr5C01 1u5uA00 4kikB02 1r3hA01 1fjeB01 2gmlA02 1vb3A03 3hssA00 1vknA01 2q9oA01 2p01A02 4i3mA00 4r36A02 1ybxA00 3bzcA04 5efzC00 2xdpA01 5ailB00 5dudC02 2al6A03 3bulA04 4i6vA02 1w3dA00 3ni7A00 1dnlA00 3opfB01 4gnxA00 3i33A04 2o57A02 5b5eE00 4xi1B00 3in6A02 4r6uA03 2vrqA02 2lsmA00 3l09A03 2hvrA03 3khkB01 1wxvA01 3i8nB00 5a9tA01 2g0qA02 3vzbB02 5f28C00 3gi1B01 3o1iD02 2gtjA01 4ep8C01 2bkwA01 3lssA02 5p9iA02 4bofA02 2d5mA00 4z6mA02 1r6uB02 3c2qA01 1ny8A00 3pl5A01 3vgiA00 3tvjB02 2x8gA01 3czqC00 3sqzA01 4pw8D01 3thaB00 2c4fT00 3e9kA01 4eskC00 1urqB00 1sxjE01 1xdpA03 1apyB00 2dm0A01 2fsqA00 1vecA00 3c7tA01 1zy9A02 3kojB00 1oyxA01 1zc1A02 3mvuA00 1fx7B03 3outA02 2rfrA00 4pj2C00 2o71A00 2y1bA00 2ghjA01 1d0qA00 1dciA02 4ecfA01 1uheA00 1gzsB00 4wveA00 4nmwA00 3bwvA02 3qvsA01 4e6fA00 4losA02 4dqaA02 3rwbA00 5oswA05 3kdeC01 4ar9A01 4g55A00 1zu0A03 3elfA00 3mp7A00 2qsfX01 3qc5X01 2pqrC00 4kc0A01 2zxdA01 1lqlA02 2wf7A01 4ejqB01 3u5vA01 1xtzA02 2h6eA02 4cbpB02 3lw6A00 2oa5A01 2ownA00 2r01A01 4mcjG00 5du9B02 3dteA01 3ltoA01 2vrbA02 1ztcA00 2lq3A01 2akoA00 2wdqA04 2zp1A02 2n50A00 2arrA02 2fxqA01 4p9iA00 3s35X00 3kb1A01 5wqjA01 2dp9A01 3hzbC00 4u36A00 1t94B04 2qvwC06 4krgA02 3bjqJ00 3hhfA02 5ufhA02 3fghA00 1o50A00 3me5A02 3lvfP01 3nrkA02 1xaiA02 3nqpA00 2oiwA00 5hsxB00 2yhcA00 2nnuA02 3r1iB00 2gtvX00 1snyA00 1yrlB01 1txkA01 3vpgA02 4aazA00 4kkzC02 2okxA03 5u9cC02 4jylA02 3q1cA01 2k2qB00 4yivA01 2hhjB00 3pj0A02 2yg9A02 3zytA00 2fsrA00 2heuA02 2gjlA00 3p6iA00 3h7jA01 2qv7A01 3dxyA00 2w3qA01 5mj3A02 3a57A00 1wn1A01 4litA02 1uuqA00 4xbmA01 3euhC02 3kspA00 2olsA02 4ii1A02 2ougA00 4ylkA01 2hiyB01 2hkeB01 3f6cA00 2p0wA02 2v3sA00 4bwpA03 1v1hA02 1lfpA03 2egmA00 5o5jR00 2wiiC03 1o0sA02 3a09A02 2r40D00 1wgvA00 4wl0A01 2b5dX02 1unnC00 2lqiB00 4u8uN01 5le5B00 5fhkA00 4aylA00 1x54A02 3eh2B04 3ciaA03 3cjxA01 2jrrA01 2m2kA00 4je5C00 1ov3A02 3moiA01 2v8hA01 4m5sA00 5teeA01 3uimA01 2ymvA02 4otdA02 2xz0D00 1w96A03 3a32A01 3ec8A00 3kf6B00 2hzaA01 2pyfA02 4j6fA02 4nwbA01 1ybfA00 2jhpA02 2kjrA01 2m89A00 2ichB02 3h79A00 3nv0A00 4aybF01 3mi0F00 2ecfA01 2cyeC00 2fm9A00 1nnlB02 3pduA02 1dn0D02 1vp2A00 2clyC01 2icsA01 2h62C00 2p2sA01 1rjmA02 4rwhA00 3dbyL00 3p26B02 3ugfB02 3hwcA01 3l0zC00 1vhoA02 5cegD00 2lkzA01 3lhsA01 1vq8V00 2bryA01 2hkuB00 1qu3A05 3rbtD01 2pkdA00 1vj7B01 3svtA00 3w6gA02 4iupB01 4idhA01 2yuxA01 3fedA03 1tk7A02 2ynmD02 5ix8A01 3rheA00 4c5eC02 3lpzA01 4by2B00 2m80A00 1cg5A00 3b5mA01 4po5B00 1k2eA00 1nm2A02 4qrvA00 3f6kA03 3me4B02 3khtA00 3r62A02 3phuA02 1vhkC02 2le1A00 1sefA02 3c9pA00 2xzlA03 1m22A00 3dcdA00 3igmA00 3g1wA01 1rxtC01 3tfoB00 5kvcA00 3oq3B02 1r61A00 1vbiA01 3q0hB00 4a6rB02 1p9gA00 2i39B00 3smjA00 2oafB00 3evzA01 2d1sA01 2eplX01 4lg9A00 4ndoB00 2mhkA02 2iojA00 1h59B00 5n4tA00 2xi8A00 2ra1A03 4kd6A00 4uhbA00 4n0vA01 2c81A01 1nzyA01 2i8dA01 4c1nA01 4mhxA01 4jd9G00 5w3xD01 4hh2A02 3oggA02 3adjA00 5fbkB01 2zzeA05 2pfcA00 3rysB00 3h78B01 1miwA04 1ylxA00 5e6zC01 3v96A01 2kuqA00 4l0mA00 5a1iA03 4rk0A02 2qsdA01 3zhiA00 3i8bA02 3smvA02 5b1aM00 5gmdA01 2ppxA00 4m02A02 5tr9A01 1l1qA00 1eptA00 3lvyE01 5dm6100 1hn0A02 2hr2A00 2vwxA01 1x74A05 2mrlA00 4apxB02 2e29A01 4eaeA00 3nphB00 2plrA00 5d1vA00 5b66H01 2qp2A02 1o4uA01 4bb7B00 3esuF02 1o70A01 4k7rA02 1h5wB03 4a64C03 4nwyC00 4k12A00 2onfA01 1xkpB00 3m71A00 2fb5A01 1iabA00 4zevA02 5mtvA02 2px0A01 4eoyB00 3gmsA01 2q1fA04 4jx0A01 5jnmA01 2q3xA00 4mdbA00 4rjwA00 4p7oB00 3uiyA00 1y7pB02 5vi4A00 4jemA00 1nsjA00 3c4rA00 4bhdA01 3kyfA02 4fytA03 2ez2A02 3m3hA00 3gygC02 2b30A02 3stjA01 4dncD00 1svbA02 3kydB02 1mspB00 5b08A00 4w1tC02 3bexA01 3cddF01 2hq9B00 2wdqD00 3qfwA01 5ntdC01 3uogA01 4gj4B00 2kk4A00 3h41A02 5m5eB02 3gwaA02 4mb8D00 3fjsC00 5e10A01 3ni8A00 2j05A00 1mkkB00 2zxrA04 4jcmA01 1rlhA02 3tvrA00 2kk8A01 4avrA00 5hy0A01 3lcrB00 1s14B00 1sgwA00 1i5pA01 1g8kA01 4qf3A00 3d0kB00 2a6qA01 4xybA01 4dqwA02 3kevA02 2xvoB00 1jyhA00 4rm4A00 1rc6A00 4hi8A00 2k5hA01 2p10C01 1thxA00 1tr8A01 3nzeA00 4hvmD02 2p3hA00 3d3bJ00 2kiqA00 4z2zB00 4zohA01 2z9vA01 6bogA02 2xusA00 3wqbA02 1eakA01 3u52E01 5b66j00 3k9oA02 1dl6A00 2awnD01 3zqsA01 2pa2A00 1jeyA04 4hkuB00 1dlfH00 5macE01 2cunA01 4oelA02 2yiuC01 4egjD02 4zbdA01 1qe0A02 1lj8A01 4frwA02 3sd2A01 2bbrA02 2hlcA01 5b2lA02 2v8fA00 3isxA01 1tqyA01 2owaA01 2digA00 3p9zA01 4jvtA02 4hwvB00 3iu0A00 2q1sA02 3s5oA00 4m9pA02 4ag1A02 3hi7B02 5fpoA01 3n7zB03 3mzfA01 3p3yA01 5fi3A01 1m4uA02 5c5cA02 3bwhA01 1kxpD03 2k4vA00 3g7dA01 3f5vA00 2cveA02 4dyeA01 2bmxA00 1gheA00 3l00A01 2lseA00 2pgnA03 3e8pA00 3urzA00 2hyxA01 5f9fA02 3dmeA02 1rj8A00 2qecA00 5m3bB01 3milB00 1weeA00 2aehA03 1kl9A01 4dooA01 1g9rA00 2rkcA00 2bbeA00 4f14A00 5buvB00 3h6eB01 3lstA02 4jdmC02 2ztgA01 5uv2A01 1cb8A02 3nngA00 2ieeA02 4uybA02 5tprA02 4my0A02 3seiB02 4c81A00 3cqjA00 5phlA00 1zx5A01 3mcbA00 1cvjH02 4b2oA00 5jicA02 2h0aA01 3bwuC02 1zl0B02 2otmA00 3k01A02 1wp1B01 3ry3A02 1a6jB00 4g68A02 3t69A01 3edvA02 3h4tA02 4irnA02 3tmoA01 3luuA00 2bl0A00 5br4A02 2cx0A02 3lafA01 3anwB00 4hz2A01 3bjsA02 3hsiA02 4zg6A04 2cunA02 2l9fA00 1n73D00 4ua8A02 1s8nA01 4wcjA00 3hn2B01 5afwA01 1ridA03 4a94C00 4mouA01 2qzsA01 1vlmA00 1ve2A01 2zgyA01 4hh5A00 3nhmA00 4oi4C01 3ialA01 2gpeD01 4gs5A02 3bc8A03 6bvcA00 1cwvA03 4zy9A00 1oc7A00 3t66A01 3dzmB00 3o7aA00 2hzgA02 2vimA00 4rm7A01 3og6A00 2ddzE00 4nphA01 1l8qA03 1wohA00 3rmrB01 1w4sA00 4py6C00 2do8A01 4knuA01 3biqA02 2z4uA01 1nklA00 4u2mA01 4fwvA02 1qhdA01 4yiwB01 3udcA03 3i2vA00 2mq8A00 4g65B02 2dwuA02 2durB01 2y1vA01 3e1tA02 1xocA01 2vtfA03 4qclA05 3tfzB00 1qcsA01 2i4lB02 2rioA02 5c3pD00 3qwzA02 3a8tA01 4yznA02 2cuaB00 1a0iA02 3ix0B01 1ug7A00 2cwqA00 4es6A02 5bmnA03 2zt5A03 3gaaB00 4es8B02 1x19A01 3r4rA02 1xp8A02 3bo7A00 4di9A00 5aigA00 1srqC02 5lomA02 1veeA00 4h8aA01 4twgC00 2qjvA01 2qkwB02 2p13A00 4ofqA02 4hz9B00 5ng9A01 2y8dA02 1wruA01 2rijA03 2zzvA00 4pfyA03 1nkpD00 2kyuA00 2al3A00 3c6mC01 2etvA02 1vq8Z00 5cu7A00 3u5nA01 2q35A02 2oqoA00 3d9aL01 3sumB00 2f20B00 2kskA00 1c4kA03 2xtcA00 3mx3A01 3dlqR01 5cm7A02 2heuB01 3fi7A01 5jg7B00 1wdnA01 1pp9T00 2dibA01 3cu5B00 1ro2A02 1tvsA00 3hj3A01 3ga8A00 4tr6A01 2ijrA01 4muvA00 1dfaA03 2r3sA03 4tq1A01 2m7oA00 3c8vA01 2cklB01 3kihD00 2dreA00 1hymA00 1l3iA00 3ovgA00 1m4uA01 4iv9A03 3tu1A00 2wzoA01 1gaxA02 2gxfA00 4hy4B00 1v32A00 3b21A00 4l3aA03 3hn5A01 3c7mA00 2gy5A02 5u7aA00 2c4eA00 4bkyA00 2cgqA00 1jfiA00 3ry0A00 3h1nB01 1o4tA00 1e1hB01 1wd3A02 1hj8A02 4e3qA02 2q1fA01 4b8cD03 3lccA00 5fvjA00 4mewA01 4l8nA03 2po3A02 5y9qA00 2rf4C01 3a2vC02 1rfhA01 1wlfA01 2acmB00 2pmaA01 3kqxL01 3so5B00 3qj4A02 3nx3A01 1f97A02 2f4mB00 3kalA03 4n30A00 3vwnX01 1b25A02 1up6E02 2fjrA01 3fjyA02 1ttnA01 4gnrA01 2v3uA02 1yueA03 3i9xA00 1vq8X00 4hfxC00 2ovsA00 4i3fA00 1uurA04 4mzyA01 3smzA01 1o6vA02 3qslA02 2gukA00 3w1zD00 3thrA02 1n7oA03 2j6lA01 4b21A02 2v8pA02 3hh2D04 3ba1A01 1u57A00 2a9uA01 3gd6A01 4iqnC00 3zn6A02 3hc7A01 1zpvB00 1vkyB02 2m4mA00 1r6dA01 4isbA01 1g1cA00 4pchB00 1pycA00 2jz8A00 4x9tA02 2grgA01 2z3zA01 2bc0A03 2gsvB00 1zelA01 1zb9A01 3r1xB01 5agrA00 1whsB02 5kazA00 3a7fA01 3wh1A02 1e9gB00 1zdnA00 4iysA00 1qf8A02 4ywjA01 2oizH00 4ip8A00 3m7gA01 1moeA02 3g7uA02 3ozqA02 2qryA02 3k0wA01 3sqnB04 1rmgA00 3ceyB02 2egaA00 2i5eA01 2cr7A01 3ezyA01 2obdA01 4xk2B00 1jp4A01 4ckbA01 3l5oA02 2p4zA00 4j2gA00 4hamA02 5is2A02 5m3oA01 2asuB01 2gf6A00 3frhA01 2l1qA00 4zsiB00 5jbxA02 4igvA00 4kkuA02 3ec4B00 2azeB00 3gzrB00 5kw6A02 4u72A01 2gwgA00 4u5wA00 1khtB00 1zauA01 4eadA03 1wy5A02 2xqyA02 1v0wA02 4je1B00 1fcjA01 3tlaA02 2kaaA00 3fbzA01 4bjmC00 3m2wA02 1r0vA02 1mdyA00 4lg3A02 1wueB01 3floB00 1dt9A03 2i87A03 5ji2E02 3s1sA01 2d29A01 2oxgA00 4euyA00 2v33A00 4bzaA02 4plzA02 4zrmA01 2pq8A01 1ohhG00 4fvmA08 1v5vA03 3omlA01 1whtA00 3qkxB00 5dx6B03 3uogA02 2ltrA00 1jthA00 1gvpA00 1ej0A00 3itqA01 1cwvA02 3nzbX00 1zr6A03 3ie7A00 2mpkA00 2r9qC01 2lxeA01 1mzpA02 3bd2A00 5f7cA02 3ufiA02 1lnsA02 3rjoA02 3q31A00 2jx2A00 5m33B00 4yt2A01 3i9v400 3sjaC00 4hg0A01 2iqcA00 2yuwA01 2fpnA01 2cdcA01 5dp2A01 4eyeA01 1eigA00 2w02B01 1lwuB03 2my5A00 2rkvA01 2vqeM02 1pl5A00 3ntkB01 3lqmA01 3g16B00 4kqcA02 2g2cA00 4h3tA02 1dkgB02 1vyiA00 2qihA00 5femA03 5a04A01 1sr8A03 2ww4A02 4l0rB00 3tc5A01 3kc2A02 2h1cA00 3f9xD00 1ez3A00 1vrbD01 4dq5B00 4u7tD00 5d5pC01 3fx7A00 3aslA00 2nn5A00 3pt3B00 1gpjA02 2y4yA00 1oq1B00 1zcjA03 4rs6A01 4o1hA00 3bf0C03 1t3qC02 2z8fB02 2bh1A02 6bk7A02 2e0gA00 1u7gA00 1nu4A00 1qgkB00 2bjiA01 4j8lA01 5jajA03 1eg5B01 4mx6A00 2rk5A00 3vm9A01 2ja2A03 2mp1A00 1bg6A02 4gxbA03 1qsmD00 1hfeS00 2zhjA02 2h92A00 2fvyA01 5ls7D00 1t0fC00 3ksrA01 3o7bA00 5a2qG02 2ww8A05 4jhmA02 3fcgB00 2wlrA02 3m7kA00 1tzyE00 4uobA02 3fn9C04 4ehsA00 4zkpA01 1vq8E02 2c1iA03 1wfxA02 3ll7A02 4x2pA01 4gewA01 1tbnA00 2qh5B00 1vbkA02 3ix1A02 3kzwA01 3l2bA02 5y3cA00 3nl6B01 2ig3A00 2hueC00 4klkA00 2bq4A00 2mygA00 4q53B00 3wndA01 1vkeB00 1hnjA02 2gg2A00 3ifuA02 1pyyA01 2wzpP02 1rlwA00 4lg8A00 1zldA00 2pvuA02 2ozlB01 4tm5A01 1nltA01 1oh4A00 5dcpA01 3hz6A01 4hguA00 1mwqA00 3sgzB00 5ghuA02 4g84A02 3uejA01 4c3sA01 3cnxA00 2qfaA00 5er9B01 4n5uA00 5i2mA01 5eidA00 1u6zA02 2cs4A00 1f0cA01 4aklA02 3zhoA00 2hlyA00 4e21A01 3sfvB01 1kg2A02 1ex7A02 1tvcA01 3ij3A01 4p8bA00 4iqzD02 1ofcX03 1okcA00 3e48A01 3m7gA02 4bvqA01 1jr1B00 5hqtA02 4wesC01 1sknP00 4cbuA01 2ck3G01 1p9hA00 4giwB00 2zs0C00 2xu9A01 1qgvA00 2g30A01 2ex5A00 1uhvA01 4j0xA00 2g5dA01 4uexA00 2f4nB02 4qiwK00 2wtzC01 3varA01 2z4iA01 4rnaA02 3t5gA00 5kloA01 2la6A01 3k8wA01 3g7qA02 3vouB00 2roqA01 2h8gA00 3s64A00 3e56A00 1ukxA00 4evuB00 1gkrB02 1oo0A00 1rajA01 1eziA00 6emlV03 3gp6A00 2drmA00 3t6kA00 3e54A00 3gd0A02 2nxvA01 4koaA01 4hudA01 2knoA01 3d6jA02 4jdpA01 4w78F00 4wzxA01 2f0cA02 2w4sA00 2b9cB00 2hhpA03 3amnA00 3ejjX03 2xe4A01 2a4xA00 5jeaF00 2oqrA01 1u6tA00 3r5gA00 4dt0A01 1q5kA01 1pqzA01 3oc7A02 4pprA00 5tv2A01 2b82A00 3ws7A01 4horA01 4ljsA01 3on0C02 1ci4A00 3mbkA01 4hutA00 5bv8A00 2dq0A01 2x3aA01 1gdtB02 3g20A01 3slgF01 3busB00 1qveB00 5c7hA00 4dunA02 1b63A02 4oelB00 2qyvA01 4gdoA00 5lu5A00 3fmgA01 4esqA00 2je6I02 2fldA00 2e6nA00 3q87B00 1wy1B00 2p3nA02 1xjuA00 1wubA00 4r2fA02 3zibC00 2kxeA00 1dfmB00 4ybmA02 4eqaC00 4go6B01 2a38B01 1v9mA02 2ot9A01 4s1wA01 2j0wA04 3tuoC00 1ss4B00 3u88M00 2ihr103 3ggnB00 2lx7A00 4b1yB02 4ft4A03 5j39A02 2dbyA03 3euaA02 1k3xA02 2fnjB00 3pbtA02 1qhuA01 2jwyA01 3kg2A05 3h7hB00 1fo0B00 5jeaG01 3ip1A02 1wddA02 4w78G00 4qdgA01 2wtuB04 1avoB00 1mkzA00 2ip2A02 3sd4A00 5ctbB03 1ik9B02 4c5eA04 3ivfA01 2npnA01 2x5fA01 2z98A00 1i58A00 3ngqA00 2hszA01 3h8gA01 2v78A00 1sw5A01 4h05A02 1z47A02 1gqeA03 4h03A01 1jmxA03 1ok3A01 2lrdA00 1ne2B00 4i2uA00 1hyeA02 5iz3B02 1xlyA00 2oemB02 3t9wA02 5ctaA00 3nwjA00 1ogaE01 3brvC00 1rw1A00 4gelA00 3a52A02 5xtck00 4of8A02 3lheA00 4uv7A02 3f1yA00 3ismC02 5vxzC00 3merA00 3rq1D01 3b42A00 4xloA01 1ow6A01 4h4nA00 5u3fB01 1rjtA00 3myxA02 1oy5A02 3g2bA00 3ot9A02 1a0iA01 2dn6A00 2xi9A03 3f8uB02 3owqA00 3ezqB00 5aejB00 1tuwA00 2nn4A00 3bigA02 1vclA01 4nzdB02 4i1oF01 5cdvA01 4n6kA00 5d4nC00 1rp3G02 2qkdA01 4oonA03 4jedA01 1k8rB00 5t3uB00 4u8uM02 3b7fA00 2dhkA01 3t5aA00 3eshA01 3pkvA00 2z9iC01 2qn4A00 4ghnA03 3mxnA01 4hzrA01 4tveA01 3ze3A00 3r6aB00 4qiiA02 3aqtA00 4ewcA03 2f42A02 5y32B02 3eeyA00 4a0gC02 2vn6A00 1svdM00 5eq7A01 4rpfA02 2gksB01 2dymC01 2p11A02 3owcB00 4rpoA01 2b7nA01 3gkuC02 3lybC00 4kemA01 1ibxA00 4fvdA01 3zkqD00 4a02A00 2jjuA01 2qdfA02 3dpjF00 5sy8O00 4xxpA00 2l0rA00 2im9A03 1yuaA02 3b4sA02 4dv8A03 1ly2A02 3jy6A01 2yunA00 1w5fA02 2gqtA03 2fp4B01 1u3oA01 2mr7A00 2m3aA00 3a8gB02 4g7xA00 4q25A01 5hyvA01 2yhxA01 3kvpC00 5fgzA02 2a4kB01 3lteD00 2flbT00 1tfsA00 5b0hA00 2ckwA04 4n91A00 5cm6A01 2ffgA00 4htfA00 3prnA00 4k3bA02 3kloA01 3h3aA04 3gqxB00 4hchA01 1lkiA00 1ogdA01 3q5zA02 1w55A01 2h4pA02 1n7kA00 2w53B00 4a9aA02 5j8yD00 3m7nA03 3au4A02 2odeB01 4x1fA00 4y8dA02 2a8yA00 4mspA01 3f1tB00 3kf8B00 4g54A02 4rd4A03 4l6gA00 4v2bA00 1r9lA01 4m6wA02 2w9xA02 1sezA02 2kc6A01 5mmiY00 4ggcA00 4lo6B01 2h84A02 3cmgA01 3pzfA02 4jhnA00 4gczA03 3eyaA03 2gnoA01 1hdlA00 2mh3A00 3w1sC00 2hzmA02 3nxbA00 1j98A00 2f23A01 3kxeA00 3kv1A00 1winA01 3sllA02 2g5gX02 5xgrA01 4p78C00 1tgrA00 1zd1B00 6em3S01 2jmpA01 1rxqD00 4gafB02 2og5A00 8abpA01 5lpeB02 2wv3A01 4lj0A00 2rijA01 2vpaA00 3ozqA01 1v9vA01 1x54A01 5teeA02 2np9A01 4jq9A03 2bw0A02 3lczA00 1wb9A03 1r6vA01 1wocC00 2hx1A02 2mhkA01 2l2tA01 1orrC00 3k7yA02 4naoA00 4psuA00 3zj1A00 4grfA00 4gxzD00 1kaeA01 3pxgA04 3ce2A01 1zwtA00 1dbqA01 3ke3A02 3hr4E00 2fc6A00 3mdyA01 4fcaA04 4h0pA01 4dexB00 1u07B00 3h99A03 2b26C01 5fm5M00 1icrA00 2o14A01 4ohyA01 3w0lB03 2zuvA01 3v8xA01 4pw8F02 4nurA01 1oy5B01 4adnA01 1tedA02 3tdwA01 2imsA00 1rjaA00 4w4kB00 4ecfA02 3i84B00 3w1yB00 3l76A01 3hxkA00 4uhvA01 2rafB01 2kq8A01 3e11A00 4wecC00 2cw5C01 2weiA01 3ehcB00 1dbqA02 1a17A00 1wmzA00 1jofA00 3vpsB01 3pdgA00 3ga4A00 3l5kA01 2m67A00 2hfsA01 2p22D00 3zdbA01 3rufA01 3nehA00 2vh1B02 5trbA00 2e31A01 1kqfB03 2asbA02 2ag4A00 1vq8I00 2qpvA00 3lm4A01 4ja7A01 5tqjA00 2r7eA02 2nxwA03 1m8oB00 3olcX03 5dgjA01 1a6zA01 2cwpA00 3weeA02 1f5nA01 3mlfB00 1ka1A01 1lrzA01 1nezH00 3km3B00 3efbC00 1t46A01 3h04A00 1cqxA02 3htvA02 1l1jA01 3zxkA02 3o4oC01 2lkmA01 3rqsB01 3zxnA00 2eqkA01 1u5mA01 1o0sA04 4ag4A02 3m07A01 2im9A02 4glxA04 4iqhA00 1rlmA01 2as0A01 4tpsD00 4a9iB00 2dzjA00 4qpmB02 2ntxA01 6b9xE00 3ndcA01 3ajeA02 2nq2A00 4u9rA01 4z47A00 3oxhA02 3vr4A03 2vdrB02 4jwoA02 2bhvA02 5gvrA00 3t2cA02 1qx8A00 4m4pA05 2v62A01 2z51A01 2zt5A02 2ob9A00 4oavD03 4uqvF02 2hzmG01 4ccaA02 1extA01 3r2uA02 3ub1D02 2mpcA00 4dadA01 1x91A00 3fj1A02 4jb3A02 4dllB02 3witA00 3h7oA02 3swhA01 3nqhA02 3oigA00 2crmA01 1x4dA00 1v5uA00 3nybA02 3ghgJ01 1je6A02 4r52A01 4b4oG00 3nbmA00 3qftA01 4kvxA00 4i1aA00 4h08A00 1x13B01 2cvcA04 4ry8A01 5nczA03 3dexH00 2yevC00 4e9kA00 2ktmA00 2fbqA00 6aqgA01 1ry6A00 2z7fI00 1z1vA00 3c1mA01 2j6lA02 4f9zA01 5y9aA00 5w93A00 1dxsA00 1xfdA01 4esyB00 4akmB00 4i8iA00 3n06B02 4eekA01 2o3sA02 4cy8A03 3u3pA01 2mouA00 2jjqA02 1iupA00 3mxoB00 1nq7A00 5eayC00 3shoA00 2vkpB00 5i34A02 3nbiA02 3py9A02 3p7iA02 4rgyA00 4l1jB00 3enpA00 1xteA00 4jdeA01 2cjgA02 2w91A02 1iqqA00 2g3rA01 2hn1A01 1n91A00 2ac3A01 3tw8A02 4cs9A00 1p0hA00 5c86A02 5ej8A03 1n7dA01 2qxyA00 2eljA01 4ab5A02 3fi7A02 3kh8A02 1wghA01 3oe7Q00 2l49B01 1jssA00 3c8wA01 4qqgG00 2qr6A02 4qe6A00 4jf7A01 3e3mA01 4a2vA00 4mx8C01 3urrA00 4e8uA00 5bwjD02 3q6dA01 1k8kA03 5fc9A00 4lrjA02 1ulyA02 2gsoA01 3od1A01 2hqxA01 3idbB01 2y7bA00 5dvhA00 1sx3A01 5a74A00 1r6dA02 4h51A01 1o5lA00 1jl0A00 3ne5B04 1kx3G00 3p26A03 1nwwA00 3gg8C03 1n1tA02 3zq6C00 1rwhA02 3x27A01 3pc6A00 4rpoA02 2otnB01 4czgA02 1l0wA02 1kilE00 1obbB00 3w6wB01 5aeaA00 1p3cA02 1faaA00 2zs0A00 3rdkB00 3nuaA01 1l5jA04 1zylA02 4trtA01 2ppyA01 4qlaB00 3tufB00 2elcA01 4kzkA02 4gyoB01 2cqhA00 1x8bA02 1wiaA01 2cw1A00 4ijjA00 2zu6F01 5ehrB02 4n06A01 4n3sA03 1xvxA02 3f8uD03 1i6aA01 1ztmA01 3aj3A00 3k9aA00 4p3fA00 4ekuA01 4uabB00 4ry9A02 2m4lA00 3cnhA01 2dzlA00 1ka1A02 2wbmA03 3ui3A02 3upsA00 4h6cB00 4k3dH01 3anuA01 4zevB01 4bxmB00 4ktbA00 1tmxB00 4mamB03 4e9sA03 4uwjA01 2q04F00 2dsyD00 4kmaA02 3nviA01 2ecnA01 4o8aA01 2p31A00 4tzmB00 4yfbC03 4jw0A00 3iuwB00 4qvgA02 4kfuA00 3etuA01 1s0aA01 2qa4G01 3h4jA03 3b79A00 3ghdA00 2dscA00 4i0kA02 2mdaA00 1yi9A01 3g8qA02 2dgmC03 5vs7A00 3lubA01 3ce8A00 1tk7A01 3qsjA00 4i1aB02 4reoA02 1qu9A00 1yrrA01 3zvqA00 3nhiA02 1kvnA00 2gj2A00 3opyB01 1wysA00 3al2A01 3es6B00 4hvcB02 3bhwA00 3ozoA02 1u0mA01 3dgbA02 3fnbA02 1iujA00 1woqA01 4mo4A01 3tlxA00 1w4tA01 3a44C02 5ao2B02 3me3C01 2l6lA02 3pvsB01 1ohtA00 2z86D01 2rgyA01 4dlqA02 1q2zA00 2cr5A01 3p4lA02 2oltB00 2guhB00 1ncnA00 3qq2B00 4b6gA00 2egzC00 1cq3A00 2qtfA01 1hx8A01 1k28D01 3r0nA00 2e1mB01 3thdA03 5uptA02 3du1X00 5erqA03 5a1iA01 3t7kA02 2lepA00 1vkmA00 5kinC00 5y5qC00 5fktA02 4gkfA00 4fgmA02 3f8tA03 3fcnA00 1thzA03 3kjxD01 3cjeA00 2ys4A01 4jf7B01 3gedA00 4bhxB00 2b99C00 3ohrA02 1ou5A01 2dy1A02 5lxxA02 2zadA02 2gleA00 5j92B00 3vorA00 2np3A00 1aipE02 4xc5B00 1abaA00 1hdfA00 1jg8A02 3a21B01 1y1uA01 4plgB02 2kluA00 2d5wA01 2e5jA01 4g3hC00 5vxzA01 4i0uA03 2pa7A00 5ka5A00 5cjjB00 2al6A02 4iibA01 4nsmA00 1n00A01 1rm6A01 4dvyP03 2ba0A01 5nb4A00 1neuA00 4lukA00 1ujnA02 2xtsA02 1yg9A01 2oyoA02 4cgkA01 4f67A02 1bjtA03 3thtA02 3fkeA02 3vthA03 5cnoB01 1mjnA00 3uqzB00 2otoA00 4mjgA00 5c8wB00 4jzcA02 3w1gA03 3ba3B00 3jxoA00 4j3cA02 5fh7A00 1m15A01 3pm9A04 1hkfA00 2h3hA01 5am2A01 5dm6U00 3tztA00 4qb6A00 1rwuA00 3n53A00 5ve2I00 3g2eB00 3b0xA02 4mijA00 2xqnT01 3pfbA00 5x5mA00 5evkA00 3gtyX02 2bfdB01 1u9yA02 4mv7A03 4rweA02 2zwiA01 3b46A02 1mu5A02 1zejA01 4pxdA01 2jheA01 2ux9C00 4miyA01 3hinA02 2qyuA01 1u60A00 3n75A02 1tuzA00 1xl7A01 3tlxC01 2ztsA00 4rnyA03 2v26A05 4m0wA02 1fsuA01 4wuiA00 3l4gB04 1k4iA00 2ysaA00 3thgA00 2j8gA02 4njhA00 1vq3B00 2gnnB00 2c0wA00 3l1nA01 4rwxC01 4ww7B00 3lvlA01 3b2vA04 4bu0A02 3rixA00 1twuA00 4hfvA02 5e3iA01 3mmgA02 3aibB01 4pdoA01 1te0A02 3k7yA01 3fd4A00 5fs8A03 3vskA01 2xu3A00 3s98A01 3k8kA04 3hksA02 2vkwA02 2yfaB01 2d4zA00 1xszA01 2sn3A00 6em3f00 2ix5A01 3hs3A01 3ty5B01 4jiuA00 2itaA01 1jr2A02 1zoiA00 1p3cA01 2fefA02 5gmkn00 2xqyA01 3fvcA03 2oayA02 2rmfA00 3utnX01 2o8lA01 1upsB01 1twfF00 3lhqB00 2q03B00 2nlyA00 5w38A02 2od0A00 4xloA03 2q5cA01 3kp1A03 1g8kA04 1vqtA00 1u2zA02 4pfrA00 4id8A00 1rjhA00 2heyT02 1okgA03 2rauA00 1ebfA01 3hwjB00 2c5sA01 2nyvA02 1io7A00 4m6rA00 4ns4A00 4f01A02 4rxuA01 1cwvA05 4qu6A01 5t3oA02 3b2vA01 1w8sE00 2dw4A03 4xqaA00 3hufA02 4k3lB03 4qxbB00 2vvfA02 2cm5A00 4i2oA01 1nt2A01 5jeaD00 3gwcA02 2cy3A00 2nwhA00 4mb7A02 1fasA00 4p10A01 4gicA01 2psoB02 3o27B00 4uf7E00 2ckkA01 3w54B00 1nnfA01 5iz4A00 3ml1A02 1cixA00 3icxA02 4jbdA02 1rz3A00 5dedF02 1qyiA01 3sghA00 3u26A01 2a2mA00 3kjyA01 1thtA00 5tdeB01 4b1yB03 5c33A00 4egdA00 1jlxA02 3d2fA03 2z9vA02 2kj1A00 3fgaD00 4ff5A00 2d6yA00 4finB01 4dt5A00 1wleA02 3zyiA02 3clwA02 1zl8B00 2bskB00 2hcfA02 3wuyA00 1in4A01 3da0A01 1iugA01 2xi9A02 4lrjA01 3cjlA00 4gzcA00 1o20A01 1z9iA01 5b3pA00 3swxA02 1hkyA00 3su6A02 2wqkA00 4nofB00 4cymD00 1nt2B01 4xkyA00 2x3eA02 3lqkA00 3d0wD00 5d84A01 5cenA01 2w3qA02 3goxA01 1khcA02 3ufxB02 1vqqA02 1pbjA00 3mw8A02 2zv2A01 3wvtA02 5e3sA02 3es1A02 3oajA02 3idwA00 1nkzB00 3ktzA01 3gbyA00 2cduA03 4j42B00 4fe9A01 2qn6B00 3oepA04 3ddhA02 3lzdA02 3bnkA00 3tm0A02 5ik4A02 2gqcA01 1rvkA02 1f0kA02 4l4jA02 1jvwA00 3c8yA02 3c18A01 4eewB00 3m0mD00 4gafB01 2x4lA02 1gkrB01 2lotA00 2fgtA03 1t0hA00 2zbvA02 4pgzA01 3gywA02 4gdnC00 3lf2A01 2bnmA02 2wqmA01 4bjtA02 4c4aA01 1s9rA01 1ezgA00 4tqrA03 5c8gB00 4d8oA03 4m0mA04 4y0hA02 4ivnA02 1wyzA01 5cl8A00 3kalB05 4da5A01 3q1xA01 3wcyA04 3e2qA01 4od9B00 3eduA00 3k2zA02 2d2eA00 2v8iA03 2it9A00 2o2gA00 2ns6A00 3ojmB02 3g5jA00 3qt2A01 2kzfA00 2x3lB02 4aukA02 3ey5A01 4e9lA01 1rxwA01 1nz8A00 2fauA01 2ehfA00 1yrtA03 1usmA00 4ag6A02 2woyA01 1l9bM01 2ddmB00 4mb7A01 2i9xA00 5i8cA01 4rcjA01 3s0xA02 5is2A01 1iv0A00 2c9jD00 3w20B00 1uj6A02 4r6hA02 4f7zA03 3u31A02 1hm9A01 1hztA00 3ewlB00 5lohA02 4wihA02 3fhnA05 3tdnA00 1o6wA01 4u7oA01 2w6kA00 2qv0A00 3lnpA01 2xepB02 3ba1A02 1o63A02 2pbiA03 2gqtA01 4utuA00 3n5bB02 4yypA00 2c4jA01 4el6A00 5le5a00 2jsnA00 2i9iA00 3kvnA02 1wkrA01 4dq6A01 2b68A01 2kivA01 2dx1A01 2ox7A01 2oocB00 4kkdB04 5e0yA00 2csxA03 2v5yA04 3r6oA02 3nvoB02 5ippC01 3govB02 4drbD00 1xm7A00 1o98A01 5kn8A01 2l03A00 3tnlA02 2nxcA02 3pr6A00 1f53A00 1tolA02 1c8bA00 2grjA00 4ohcC00 4z3xA01 3ukmA01 3oh8A01 2qqiA02 2ds4A01 1n1tA01 1dleB02 3ckmA01 2m72A00 2e8gA02 1hu3A00 3pe6A00 1x3sA00 1txgA02 4dhxB00 2xbuA00 2bonA01 1utaA00 2l2dA00 1mw7A01 4prkA01 3sxxD02 5g4kA00 5kztA01 4bvaB01 4n67A00 4zeoH02 3imlD03 3tlfA02 1z2nX02 2hyvA04 3c3dA02 3bnjA01 4o38B02 2qw5A00 3dhaA01 3kkfA00 2mb9A00 1xruA02 3mdqA02 3knwB00 2d2sA02 4b3fX03 2ltsA00 2j4bB00 2wscH01 4hj1C03 2oyoA01 5dwsC01 2axqA03 1vhkB00 2ffhA03 2x9aA00 1tejB00 1so7A00 4b4hA00 5lciA00 3pjpB01 4gymB00 1i5pA02 4eadA02 4kbqD00 4dy0B01 1nu0A00 3neqA00 4wzzA01 1on2A02 1h4aX02 2cz4A00 2uz1A01 4gx0B05 1pe4A00 1v63A00 1r4vA00 5by7A02 5cb7A00 5o75A00 1nf2A02 2kc7A00 1sumB01 1y1lA00 4gkpB00 2daxA01 1i6uA01 5k4xA00 4lg1B00 1nyrB02 2bicA01 3ke6A02 1zunB01 5a71A00 1jxcA00 4jvsA01 4ap9A01 4zciA02 5bn3A04 2y8nB02 2ogiB00 1di2A00 2rkhA02 2lknA00 4ikhA01 2dc4A00 1tc1B00 3emxA00 3mvsA02 3mcaA02 3kuzB00 1pe9A00 2bgkA00 3mlgA00 2zyzB02 1khvA04 2r44A02 4i0wA00 2jpfA01 3p04A00 4hfqA02 5cxfC02 4ypoA01 1rgxA01 3sjrB00 4rk0D01 3wliA01 2ec8A01 1jfbA00 3wz2B00 1olgA00 3rk6A00 2u1aA00 4jwoA01 4lgdD02 4efaE02 5xzgA01 3q9dA03 2ap1A02 4q97A00 1rr8C04 3bb7A02 3a1kA01 4exrA01 2ntxA02 2ahmH02 3x34A00 1v30A00 1eu1A03 1rfeA01 2hmaA03 3js8A02 1oaqL00 2gw1A02 2ln7A00 5bxdE00 1vioA03 4eebA01 2bhyA03 6b9uB00 2ht1A01 5g38A00 3d6iA00 1wqaA01 4m8aA00 1vclA02 3r72A00 3it5G00 4fybA00 1vioA02 4pr3A00 4otpA02 3u65A00 2lrrA00 4az6A02 1e8cA02 4qbuA02 3ktoA00 2qsfA02 3d6wB01 5bv3D02 3s79A00 3zilA00 4fyyB01 3rbsA01 4mfkA02 5jj2A00 3mpkA01 2kkeA00 2eenA00 2k3oA00 4d8oA02 1m9sA03 3jqqC01 3dwlE00 5uagE00 3vk6A01 4n9f302 3isaB00 4c9rD00 5uqmA03 1y3jA00 2ohwA00 3cq5A02 2fqxA02 2oemA01 3wcoA02 1wfeA00 1wdkA01 3c6cA00 1z7mC00 5o95A02 2qgvA00 1zmbA01 3vvhC02 3hn3A02 3mmyA00 5oswA03 2hz8A00 5h68A00 5l4qB00 5cgqB02 5ajgA01 1i42A00 1ybkA00 5an9B01 3eytB00 4bjsC00 5ibqA02 4lgqA00 3g64A02 3r5dA02 3l4gB01 3bblA01 5idjA01 3dfrA00 2bcmA00 5ee2A00 4mxnB00 3i9v201 3kq5A01 5eo9B01 2im8A00 4cllA01 3myxB01 1wzaA02 3i38K01 4xijA02 3orgA02 4zohA02 3abqB03 2lw6A00 2rhqB04 3uljB00 3e3xA02 3laaA00 1ro2A01 3piuA01 5hkoA02 2ljmA01 3h6xB00 4aimA04 4twkB00 4if4A01 3swhA02 3nsxA03 3pbtA03 5xxuG02 4cpdC01 3l0fA00 3mfqA02 3uknC02 3gzxB00 3r2uB01 3g79A01 4zi5A00 3i3vB01 3b2eF00 5afdA00 2nxwA02 4ifdI02 3lmcA00 3sluA02 5m06A01 4asmB00 1v0aA01 1g8mB02 4gucA00 1t9hA01 3htmA02 3oooA00 3if4A01 1uoyA01 2gqtA02 3lq1A02 3ru6B00 1hw7A02 2lo0A00 2kxsA00 4a9zD00 3htxD03 3e7jA03 4q0cA01 3o4oC02 2napA02 4u9uA01 3vv5A02 3zx4A01 3up3A00 2oy9A01 4r9fA02 2l2lA00 2a2cA02 3ttyA01 4p82A00 3qjgA00 3k59A02 4hzsA02 3clkB01 1zmeC01 3f5lA00 3u9qA00 3ecsE01 4l1nA00 4g9eA00 4ne2B00 3cryA00 5ehaA00 4wczA02 4c1bA02 4irxA02 5mc1A01 3kebB00 4mldA00 4e79C03 2p6wA00 1usyD00 1yb3A00 2oi2A02 3bs1A00 1v3vA01 3qkaA02 2bayE00 3htkC01 2covG00 2j8pA00 3cuzA02 5j1gB00 1r0kC03 2xetB00 2p4vA01 3qhaA01 2wssW01 3qbrX00 2oktA02 5le5I00 1op1A00 1wcv100 2wa2A00 3op9A02 5ucdA02 2x2zD03 1wehA00 3of5B00 2vebA00 4x8yB00 3kh5A01 2vfrA03 3d8uB01 1a35A04 1i36A02 3rfiA00 4fr4E01 2amhA00 4nboA00 1txdA02 2lvfA00 2qvgA00 4oztE00 5kprA02 3fsdA00 1ycsB02 4e1sA00 2wcoA03 1jjoC01 4bvaA02 4gx0B04 4qpkB02 3w0oA02 4hj1A01 2hewF00 4jb7A01 1alyA00 1sazA02 2lw1A00 4i8oA03 2dgdA01 3l4qC00 3e9kA02 4ogrL00 1knzA02 2leqA00 4bxfA01 3eo8A00 3tfgA00 3keoB02 1vj0A02 2kqpA00 1q0vA00 1pfzB01 2hxoA02 3d3zA00 2j43A01 3g7lA00 3vykA00 1musA02 4obxA00 2q3zA03 1f5tA02 2x5oA02 4qedA00 2z6rB01 1ri0A01 3p51A00 1vpcA00 4qpwA00 5ci5B02 1ei7A00 3o8jA02 3l2pA04 3wmqA00 4gmkA02 2kkxA00 3n3aC00 4u8uO01 2v1oB00 2xlgA00 1o0sA03 2q97T00 2fkcA01 3b46A01 5d8vA00 4p09A00 4cdjB00 3u9jA00 3l9jC00 2gu1A03 5jbxB01 2g3aA02 3gldA01 1gsoA03 3ep0A00 1sf9A02 3kk7A01 5gtuA00 4e2xA04 2wstA00 2fipA00 2rovA00 1bdoA00 2aefA03 3qfwB02 1w7dA00 1nd6A00 4nuuA02 3hoaA00 3lx4A02 2w02B06 4xrwA01 4a4kA01 2ynkA00 3ku7B00 1fvrA01 3llpB04 5jzeA00 4limA00 1x0vA02 3fbqA01 4lsoA00 1t9hA02 1h8eG02 3gmgA00 1r94A00 1l1oF01 3ijdA00 2wxyC02 4b41A00 1f2dA02 1r89A03 3l48A01 1y88A01 2xb4A00 3griA02 1y9bB02 1xb2B01 4jf8A00 4rpcA00 4n1lA00 4jleA00 4y97D00 3l5aA00 1pm6A00 2i45D00 4lrtA01 1fzcB03 2yn3B03 2aucB01 2p5vA02 2vqrA01 1uadC00 1n26A01 1yrkA00 2m5zA00 1z8hA00 4n7wA00 2inbA00 3oamA00 2kywA00 3k2oA01 4izeA00 3s28A04 2p3yA04 4id0A01 2p8bA02 3mkvA02 4i9fA02 4nozB01 2yq2A01 2panA02 2dfkC02 2e4uA03 4bzaA03 5dl5A00 2b6cA01 1cnt200 5fu6C00 3cexA00 2zsjA01 1hxiA00 4dx8D00 3amlA02 3ue2A01 4gfxA00 1yt8A01 2a9iA00 4uw9A02 2j8aA01 4kcaA03 3lxrF00 3ognA01 3oeqA01 3i0wA02 1ckmA03 3ubtA01 5dn6I00 3pdkA02 4ktpA01 2rqrA00 5aboA02 1icfI00 4dk2A02 1ecfA01 2y4rA01 1c3yA00 5tleD00 1fmcA00 2cc0A00 3oxnB02 1tvfA02 3rrkA01 3tp4B02 4w66B00 3netB02 1mhwC00 4xvvA00 3tadC03 4s2xA00 2cs1A00 1mbaA00 1dpjA02 2v7fA00 1mdoA02 2y5dA01 3rh9A01 5u23A02 2nn6F00 2w15A00 3ubyA00 4ag6D01 6bhdA01 2qnlA00 4cd8A00 3tcqA02 2j5gK00 3ctzA03 2conA00 4pysA02 2f93B00 2no7B00 1rcwB00 3q3eA03 4jg9A00 3sjnA02 4b8nB00 1qgeD00 2qcuA02 1ylmA00 4dyvA00 4iwxA02 3tsnA00 4xqmA00 5fglA00 4uzgA02 4g26A01 2p2dD01 3v2lA00 3cp2A02 4ioiE00 2f8lA02 3lpwA01 5umnB00 3ze3B00 5a2fA01 3sxnA01 2nv4A00 2xu9A02 3wodG00 3if2A00 1pugC00 5jryA01 2o1sB03 2lvgA00 3fwzA00 6bphA00 3sxpB02 4id9A01 3twlA02 4m4zA01 4nbmA00 2byvE05 1nubA01 3eetB02 4gevA00 4fppA02 3p42A03 3wfiA01 3m9wA01 3exqA01 2py5A06 3kotA02 2arzA02 4pkdB02 2yzqA02 2pa8D01 3p2eA00 4hxfB02 1w2qA01 3nvwC05 4kn7X01 2o0qA00 3lopA01 4ue7H02 4eysA02 3lvjC00 4wnnD00 4n73A00 4bizA02 4kh7B01 1h54A03 3hv2A00 3iauB01 1ntvA00 1eo0A00 5v01B00 4c5cA03 2pk3A01 4ov4A01 1vpbA01 3hl6A01 1psyA01 3ehrB01 5g5gA02 3n71A01 5f5eA00 1cr5A01 4eisA00 2jdcA00 4w4oC02 1u34A00 1o0xA00 4cvnA00 2ayzA00 3s99A02 2cc6A00 4y8wA00 3i9v104 3rnjA00 1n62B02 3u1nC02 1tueD00 3h63A00 3zypA00 3mqgA02 2xzlA05 3gt7A00 2w7yA01 3draA00 2glzA00 4kyzA00 1oh0B00 3o1lB01 1jmxA02 2wbfX00 3offA00 5uc6A00 3w1zC00 3cwqA00 3vtiA03 2wp8A00 4a8jB00 2zgdA00 2zejA01 3mw8A01 1o98A02 3luyA03 1grjA02 3wdhA02 5ci5A01 2brxA00 2ql8A00 2b61A01 1r5bA03 4ad8A01 4lviA01 2xmxA01 3oyoA00 1qamA02 5olpA00 5gi7A00 5d8hC01 3thxB03 2cu2A00 1p1hB02 3c3kA02 4lj1A00 2w8tA01 4kdiD00 1ig3A01 4c0eA02 4qyiA00 3q1nA00 3ndnA02 3pdiA01 4fz2A01 2xfrA00 4feiA00 4z0mB02 3bc1A00 5d0iB00 2imuA00 1amuA01 1o70A02 1vljA02 2dfjA00 5dikA00 4dloB01 4g4sP00 2jaeA02 3ktwB00 3tejA00 1oacA02 3moyA02 2ywkA01 2dnnA01 4hzpA00 4lflB00 3sggA02 1v8cA02 5g4iA02 2vk8A02 2lu1A00 4ogqB01 1bikA00 1tgoA05 2zxiA03 1rzhM02 3s6lD00 2ecsA00 4bbyA06 4ca1B02 2fvgA02 2ziuA02 5kiqA02 3h5lA01 3guyA00 3dwdA00 5c40B00 4tjvA00 1cpqA00 1z85B02 2ibdA02 1iomA02 1wncB00 2d5vA01 2yi9A02 2xhsA00 1jhjA00 2hyjA02 2pljA01 2v82A00 3sukA00 2arhA01 1wp9B03 1yc0I00 2xliA02 5lb7B00 4uuwA03 2erxA00 3qszA00 1n71B00 3qk7A01 2hszA02 4dckA02 1sqeA00 2j0wA03 2hpgC00 3quvB02 1umzB00 1pv5A00 2kogA00 1c0pA02 4l68A01 4h10B00 5k2iA00 3k40A03 2lrtA00 3pveA00 2y2pA01 4k25A01 1q1uA00 2w9xB01 2b69A01 5c3uA02 3k9gA00 4m9dA02 2rfbA00 5hc0A00 4co3A00 2gk9C02 4d6wA03 4cbpA01 3rq9A00 3ls1A00 3es4A00 2ichA01 2obdA02 5fydB00 2bfwA01 3ejvA00 1go4H00 2bl9A00 2qa1A03 3bbjA00 2yn5A01 3kptA03 4kjzB04 3cawA02 4f23A02 1l6xA01 4yqyB00 3q8gA01 2eo6A01 2vldA02 1dc1A02 3t8bB00 4uskA01 4p1nC00 2mev400 4ohxA03 5c8zA00 1xq1A00 1jb0L00 5oswA06 4fx5A01 3g02B00 1sfeA01 1ehxA00 2k5gA01 4extC00 3qdpA00 2kdoA03 2ftyA01 4w4tB00 3gydA00 4fxxB01 2c1zA01 3c2gA02 3h6eA03 2ckiA00 3eoiA00 3fotA02 1k1xB01 3nqzA02 2n7eA00 1xeaA01 2l0bA00 3kjxA03 3smvA01 3pqhA01 1xv5A01 1s9cC01 2ylmA03 2ip6A00 2rcyA01 4mv2A00 4h3wA02 3o8mA03 1gtvA00 3ay5A02 3m4wC01 1pn2C01 3up9A02 3fanA02 2frgP00 4ojdH01 3ir9B02 4q8gA00 2v5oA02 2hekA01 1nkzA00 4tkdD00 3eqcA01 5vehB01 1sddB02 6em3i00 3kuvB00 1a59A02 2o5uA00 2mgwA00 2qjyC01 4agrB00 4joxA00 1vlyA03 2zetC00 2b06A00 4j32B00 1l2pA00 4gv1A02 2pndA00 5jskB00 2y44A00 3pg1A02 2endA00 3abgA02 4xpkA00 1ji1A01 4rkrD02 3nbzC00 4g3jA00 1pdoA00 3fpcA01 1tvgA00 4xuoA00 2yhgA02 4rkrB01 3ipcA01 1owlA03 1rffA01 3f6tA01 1jsuC00 3cvgA01 4yzeB00 3b9oA00 2pxxA00 1vhnA01 2v6eA03 2av4A00 5hmaA02 1jwwA00 2ve7C02 1xqoA01 2fm8B00 3cyjA02 3hj6A01 4k2pD01 3h7uA00 2hdzA00 2hhcA01 1uf3A00 5o1qA00 3nvsA02 2o01L01 4rx6D00 4ohfA03 1zkpA00 4mgeA00 5xyib00 3a07B00 1sgmA00 2qpxA00 2qmlA00 2yboA02 3nwrA01 2kt7A01 4b15A00 4e75C03 2fywC01 3gvxA02 2n17A00 4jbbA01 2vb1A00 4xpxA00 2vf7A02 4aysA01 1vq8H00 1blxA01 4u1cA01 3bmxA02 3dssA00 4i05A00 3mcsA00 2dn7A00 2xciC01 4l8iB00 3c6aA00 1k04A01 3qwlA03 4f6cB00 2dsjA01 3abgB03 3zitB00 1s3eA03 3daoB01 3ml4A02 1m2xA00 2yicA04 3hjcA01 2pn0A01 1qkkA00 2p67A03 4cr6A00 3zqoB00 5acsA00 2amlA02 3os4A00 5c05A01 5u47A03 2j9uB00 1ykwA02 2x12A01 5ly3A02 3tg9A00 4fl4F02 2euiA01 2kw3A00 5egnA00 1q25A01 2dk6A01 4itxA01 4glxA07 3llpB01 1xg7B01 3bgaA05 4k0dA00 2m4hA00 3fk8A00 2vqeL00 4zeyA00 4ej6A02 2wzpR02 5a6wB00 4bizE01 2z67A00 3vmnA01 3g5oC00 3te6A01 4ntwB00 4gytA00 2kx7A00 3knvA00 1tkiA02 1na3A00 3hyqA00 2yfoA01 4p6qA03 3pl2A01 3wfiB02 1c1dA02 4osnA00 2osrA00 3k1rA01 3p2tA02 4dcmA01 4wedA01 3isqA01 4usaA02 2b4lA01 3ougA00 2yweA04 4oj5A01 3d3kA00 2yyhA00 5jhmA02 2o3jB01 1g5cA00 3a1cA02 2wyhB06 4na1B02 3hidA02 3d31C00 1ap8A00 1fpoA01 3dorA03 3fhrA01 1inpA02 1g0dA03 3f4lA01 4a4zA03 4f4eA02 1ty0B01 5bsrA01 1v5pA01 3rjvA02 2d2rA00 3huuD01 3p42D01 5xtcj00 1lj8A02 2bc4B01 3rghA01 1wgdA00 4fvgA00 2nn6I01 4og1A01 3a2bA01 5gxeA01 4n6aA01 4a1kA01 4lvqA01 4k3lB02 1h6gA02 5kvfL01 2b3yA02 2nvnA00 3na2D00 2erwA00 3js8A01 2cg4A02 2sicI00 1oqyA03 3um7A02 1l3lA01 3zbgA00 4izbB02 2h7aA01 2gz4A00 2qgoA00 4fglA00 2bdvA00 5a2bA01 1xezA01 4b7hA03 3pmsA01 1f20A03 1o94A02 3u1lA02 1k6yA01 2hngA00 3v31A00 2hg7A00 3tklB02 4b1zM01 4gh5B00 5k31C00 1gyxA01 1tqgA00 1u7lA03 4h41B00 5k9gA00 1twfC01 2plgA01 3wfsC01 4dhiB02 3purA01 2y8tD01 3my2A00 2h1rA02 5xlyB00 1o17A01 3d3mA00 1nyuD00 3em1A00 4w6zA01 1iipA02 2cxkA00 4gnfA00 1bu8A01 5h9cA00 3luaA00 4y88A00 5my5A02 5x7kB00 3t0pA02 2r39A00 4pssA00 3pc3A02 2ae6A00 4aeeA03 2xr1A02 3rq1A02 2pcsA00 2xi5A00 2r0xA00 1w53A00 2r4fA03 3lxyA00 2keaA00 3dnhA02 2z5bB01 2cphA01 5k7fA02 3kg0A00 1yrxC01 1e3mB03 1owxA00 3n27C00 3ghgC01 4gy7A04 3r4qA01 5i2mA03 4jhcB00 1ridA01 5m5eC01 3un7B02 3hf5D01 3l4cA00 3rlfF01 1eajB00 4qq1C03 4wedA02 2y1nA04 2ch0A01 1fc6A03 2dk4A00 2guzB00 5bq5B00 4m2mA01 2wzkA02 1fqiA01 1y8aA03 4rdlA02 3hbkA00 1juhA01 3igfA02 3g79A02 5i47B02 3e61B01 1jetA02 1gz0F01 4ma9A00 1s2oA02 4z7aA03 1cg2A01 3lazA01 4uobA01 5ahkA02 2yq2A02 4hizA01 4mnrA02 4bwjA02 3o4zA02 6b10B00 2w1nA02 2l6lA01 1xv2C01 2w5qA02 3qflA00 1e2kA00 1nvpB00 4i3yA01 3t47A00 1w0pA02 3rvaA01 3rq4A02 1x93A01 1tjlA00 1fnfA03 2kfdA00 3l0qA02 4yheA00 2hzgB01 2rh2A00 4lp8A02 2jl1A01 3nkdB01 5x3pA00 4as2A02 2v3bB00 2xhiA03 1tkiA01 3oseA00 4gqbB00 4iefA00 5hftD00 4l9uA00 2wanA02 2hr7B02 2rilA00 1y8qD02 3h14A00 1vjuB00 1es5A00 3b4nA02 2ffsA00 1xe1A00 5nqbA02 3otnA00 2qo3A03 3tg0A00 5icwB00 1te4A01 1ckmA02 5c15A00 4wcwA01 1n1fA00 3bxwA02 4ldgA00 4wz8B02 4iknA02 1l4sA01 4i9fB01 4a5sB01 1yr1A00 4bgoA00 3waeA02 2p5zX01 3l82B00 5e6tA02 1zx5A02 3gmsA02 2ectA00 4a6dA02 2e7zA02 4mz7A01 3fo3A02 1q35A01 2im5A00 3duwA00 5gjaA00 3c5eA01 4qrhB01 2x65A00 3d8bA01 3ttcA03 2o6kB00 4hacA02 1ohuA00 2kr7A02 3zeuB02 4jbgA02 4l6hA02 1j0hA02 4r9nA00 3e96A00 2y1vA04 5opfA00 2ewtA00 5x0wF00 3r5tA02 4ofgA00 3l7yA02 3og2A04 4eswA02 1g8aA01 2g31A01 4m68A01 3behA01 1m8lA01 4q3kB00 4o8mD00 1m62A00 1euvA02 2h0uA00 4dunA01 4gb0A00 3da1A03 2mcqA01 5k1sB00 4n4uB00 5fpzA00 4n8nC00 4py5A01 3gkrA02 2lp6A00 1m1fB00 2xi9B01 4bjqA00 2fdrA02 5ucvA00 1o04A01 1ex2A00 2ya1A03 4gxxE01 1jb0F00 3iacC01 2bh1X00 4j4zA00 3gjuA01 3htnB00 3zssA01 1hruA00 4p72A03 2w5qA01 3v10A02 4dpoB00 2ydyA00 1kkoA01 4gs7C02 2o7sA03 3lweA00 1jb0K00 5dicA00 5mybA02 3eliA00 3ku3A02 2lmkA00 3l0wB02 1miuA05 5x7fA00 4g3fA02 4gc1A03 4txwA00 2c71A00 5eghA02 3nvsA01 1yt8A02 1qhdA02 3n0rA02 2o0rB01 2gy5A04 3rnyA01 1dvkA00 3qc1A02 2vhaA01 3mr0A02 4hl9A00 2f1kC02 4ifdI01 3eupB00 5hnoA00 3hl8A02 4hc5D00 1yzhB00 2elcA02 2a2aA02 3hwuA00 2ooaA00 5cdvA02 2y0oA00 2eklA01 4zwvA02 4esuA01 1rzhL01 2rt9A00 4ntlA02 2o2kA02 1dusA00 4wx4A00 5exeA02 2vvmA02 2q74A02 3dxqB02 5hlaA01 6az1C01 1wxaA00 4jcsA01 4x2oA00 2e8yA01 3seoB02 1y7pB01 4oogC01 3nzlA00 3v6gA00 2vk8A01 4f87B00 3f1zI00 4eq6B00 3d7iB00 1i8dC02 3c5xC00 3bpzA02 2efrB00 1izmA00 4q7gA00 3c8uA00 4tqgA00 1xfdA02 2jxpA01 3v0rA01 2lnuA01 1nm8A02 3fn1B00 3pvzA02 3fv9C01 1uebA03 4iw7A01 3pplA02 1l2mA00 2d42A01 2imrA01 3sxxA01 3v4dB00 2m7aA00 3s63A00 3bg2A01 4uyiA00 2vecA01 5df6A01 1aggA00 2hg6A00 2p90A01 2pvpA02 2hwgA01 5c2vB00 3zihB00 3iwcC00 1eerA00 4cgrB00 2o7iA02 3hrzA01 2o0mA00 4pyrA02 3psmA00 2ortA01 1whvA00 4ckbA02 3bvoA02 2iuwA00 3meuB02 2lu2A00 1hxmA01 1pfsA00 3pqiA02 2y9wA00 1d0dA00 1lghB00 3do6A03 5wm1A05 1qsaA02 3ho6B00 3mb2F00 2qzsA02 3mggA02 1tuoA02 1r5tA00 2wfpA01 2qsiA02 3hn7A01 2nx2A00 4xqcA01 3nrnA02 1yjrA00 3fleA00 1nd9A00 2ee2A01 3kbrA02 1gxyA00 3a99A02 3okxB00 2qorA01 1k1yB02 2pwjA00 1whsB01 1w27A03 2zw3A00 4mlzA02 4lq4A02 3rv1B02 4wpgA02 4n01A02 4ysiA00 3vajB01 3k3pB03 1zd9A00 5ix8A02 4afkA00 5gl2B00 4werA02 3vm9A02 2id5D02 2d0bA01 4qtcA01 3ljuX01 4bxiA00 3v46A00 2edyA00 1q8bA00 5amvA00 3ftbA01 1hgvA00 2p3yA02 3c8lB00 3ipcA02 1js8B02 2fqmA01 3iuyA00 1w0nA00 3fduF00 4aidA02 3ljuX03 3pjvD02 4j3vA02 2fwmX00 6ensA00 3ungC04 3l46B01 3q26A00 3vu9B00 4c5sC03 3ieyA02 5dp2A02 1it2A00 2k54A00 3cskA03 3w5xA00 4maaA02 4q2lA00 2dkzA01 2qsjB00 2hjeA02 4za3A01 3im9A01 3fd3A02 2w9mA04 1vpqA00 2xglA00 4y9wA02 2eqpA00 3ro6C01 2fji101 2ayhA00 1w9pA01 3czpA02 3imfC00 3gw6A03 3s6xC03 1wfwA00 1dz3A00 4ow8A02 4ch0S00 1qg8A00 1a92A00 2q7aA00 1o7zA00 4relA02 3rpzA00 2liyA00 1cksB00 1ecaA00 2vscA01 2auaA02 1e0cA02 1c5eA00 2rloA00 3agnA00 3g9kS01 3mf7A00 1wkvA02 2efvA00 1yx4A01 4fqjA02 5bnzA03 1pdkB00 5kkrB02 2debA03 1vquA01 2bo9B01 3nvwC01 4annA00 2zshB00 4jykA02 2zxxD00 3jtxB01 2ob3A00 4cvuA02 2v9lA00 1o4wA00 2c60A01 2cudA00 1dqnA00 1ju2A02 2bwqA00 3foaB01 2f9sB00 3tm0A01 5c5cA01 5eq7A02 3fgrA02 2dpmA02 4gcjA01 3nnbA01 5lmaA01 2yy3A00 5idmA00 3qwmA00 2ebfX02 1vd6A00 1v05A00 5jscA02 4xa4A02 3r44A01 4nxyA00 2i15A01 3a5yA00 2olcA02 3qxcA00 1e1hB02 4lvqA02 3kl7A00 3d8cA02 3kcgI01 3udcA01 2ejqB00 4yi7A02 4aslA00 1x4oA00 4ls9A01 4hadA01 2iw1A02 1l5aA03 3hhtA00 2q4zA01 3ijtB00 3n05A03 2wyrA01 2afdA00 2djqA00 1u3zA00 3qexA04 4qtuB00 2h4oA00 1mkfA01 2cvcA02 1lxmA04 3uifA02 1f7uA02 5c98B02 3dcyA00 4pwqA01 3lagB00 5cclA03 1itvA00 3f6kA02 4x83A02 4qjvA03 4jneA01 4rg8A04 1dzfA02 3p09A00 2xhgA02 2okcB01 3s04A02 2ew8B00 2kkrA01 1xk7A01 1xk5A01 4yl4A00 2p62A02 2r60A02 2l93A01 2c61A00 3qguA01 2hfqA00 2gk4B00 1zr6A01 4hs1A00 3na8B00 3kn6A01 1h54B01 4n3gA02 3o3uN03 2rhkD00 3ju7A00 2f48A03 4n9fe00 4wpgA01 5imaA00 3eypA02 1y55X00 5fa8A00 4kkrA01 2xdbA00 2hfsA02 5hdiA00 3gagA00 3we0A03 1x1mA00 1ohfC01 2j9wB00 4tx5B00 2orwB01 2fztA00 3dzoA02 4nj9H02 2pjyC00 3m6aA02 1zxqA02 3ckdA02 1y4cA03 3frnA01 4hscX03 3otdA00 1koeA00 1avyA00 4w4mH00 1s2gB00 1xovA02 3umcD02 4n6jA00 3r0uB02 3vl9B00 1vqqA01 2omzB00 3r8jA00 4d02A01 2wnhA00 5y4fB00 1bg6A01 2h0bC00 1xk7A02 3mcpA02 3pm6A00 2sakA00 2p2vA00 4btfA02 3nb0B02 1gkpA01 2m7zA00 3he0B00 3vvmA01 3ho1A03 1dbhA01 1i7dA01 1sg1X01 3e0gA03 2vliB00 3alxC02 1hl6C00 4ah6A01 4cxpA00 4pbhA00 4cgyA01 4cvhA01 5a9gA02 4twlA00 4qreA03 4c16A03 4j6oA00 1j99A00 1wilA00 1uvjA03 1l7dA02 4on1A02 1l5jA05 4m4pA03 4p0pB02 2obnA02 2cpyA01 1wthD04 1i7nA03 5m8hF01 1lshB00 3fvcA01 3anoA00 4uapA00 1tocR02 4ywrA00 3sk3A02 5wjpA01 4im9C00 1vzyA01 1zcdA00 1p6qA00 2nt4A00 2ynmC01 2govA01 1o9pA00 2fsjA01 2jbvA02 2w51A02 4bn4A02 2q2eB04 3vivA00 5gz3A01 2jenA00 2b69A02 2vugA01 2ck3A01 4nmyA02 5iszD02 3olcX02 4ru1A01 2jz6A01 3hp7A01 1nh2D02 1q60A00 2x5rA01 2c55A01 4d3tA02 3qyfA01 2dy1A01 3lpmA01 3qyzA01 3gz1A00 2khiA00 4gywC01 3n2bD01 1f46B00 2nugA02 3plwA00 3ar4A02 2eq5B01 3pg5A00 4o5fA01 2ifuD00 4r1hA02 3htvA01 3gn3A00 2qsvA02 3mdnD00 3l2oB01 4ab5B01 1wvqC00 2guzA00 2vk8A03 3wnoA03 3uo9C01 1ws6A00 5p9vA00 4kroA04 2psbA00 1rh9A00 1floA01 4efpA02 2vqeP00 1vl6B02 3wewA00 3iraA00 4dsdA00 1fjcA00 2nruA02 3ivtA02 2j8hA01 4x3kA00 2pbzA03 1qazA00 1uwwB00 2wjvD02 2fsfB03 4ypjA02 1elvA02 2krbA00 3i6dA03 3gr0D01 3bwxA00 3njtA01 1rm6D04 2csvA00 5dzzA02 4z88A00 1avwB00 3wecA00 3e3xA01 3vtiA06 4i50F03 1ymtA00 1nlsA00 3lssA01 3h78A02 3e1uA00 1pq1A00 2nteA02 1p94A00 4oxwA00 4v08A00 5ob5A00 1rw2A00 1atiB01 1cipA01 1zkcB02 2v7kA02 3ollA00 1ygyB03 5vogA00 2l57A00 2qu8A00 3otiA01 2gxqA00 3rrsA01 3jwnE00 5kbmA00 4luaA00 7ahlF01 2b5eA02 3dcfA02 4nfnA02 4d8mA03 2xauA04 4gsxA03 2bklA01 4i8hA02 3dd7C00 2asuB02 4hz9A00 2kg5A01 3ihtA00 1stuA00 3zzoA00 2xykB00 4cpdA02 4g3fA01 4zbwA01 2a9dA01 5kbpA05 3v5wG00 1qq5A02 3lcnB00 1rxtC02 5iwhA00 1b33N01 2k9hA00 3rmhA00 3gygC01 1nmpA01 3vkwA03 1ktkF02 3v6iX00 1uzbA01 1g5hB02 3pc7A00 3rr6A01 3mc6A02 1ybiA02 4dhiB01 4usaA05 1ni5A02 3pjaJ01 3df7A01 4cc9B00 2gysA02 2bl8B00 3dlsB01 2csuA03 4cngA00 5jmuA00 3sxlA02 3ighX01 1cl8A00 4u9rA02 2c78A03 2o6lB00 5u23D01 2dhoA00 1s0iA02 4mt4A00 3vppB00 2yxyA01 4x9mA02 3tp9A02 5tz5A00 4v1xB01 4kf8B00 3hpyA01 4j15A01 4qpnA00 4kqpA02 2aeuA02 5hvqC01 4pz7A01 3hz7A00 2k5dA01 4fzmA01 2rcnA01 3us3A02 5eh1A01 1nh1A01 4fqnC00 3okpA01 3ii9B01 2lzlA00 4i92A02 2v1qA00 5ja4D00 1l5jA02 2r8qA00 5d1iA00 3ivfA02 1n1cA01 4zo2A00 3fhtB01 4zdjA01 2jmbA00 2e45A01 2onsA01 4oo4A00 4p17A02 4pkfB00 2qyfB00 3cijA02 3t30C00 1cukA02 2xqhA03 2kq9A00 2vr3B02 1uunA01 4bryA00 3kl4A03 3iqtA01 1mdbA01 3tlxC02 1up9A00 4nbuA00 1oflA00 3be6A01 3fkaB00 1hbkA00 4eadA01 2gumA02 3ir3A00 4w4lA00 3zzyB00 2hlzA00 1kf6A03 4uavA01 1skvA00 1n7oA02 3ctgA00 1m5yC02 4zcnA00 4hfvA01 4jgxA00 5jenA02 2a1sC02 3p3cA01 2xp1A02 4k2jB00 1pn0A03 2l5oA00 2y8eB00 3qp3A00 3f8uB01 3bh1A03 2py6A01 4bwcA02 4i9oA00 1wyuA02 2eebA00 5k3wA01 2jobA00 1txqB00 4qtcA02 2efjA02 1t3jA00 1gmnB01 3vwaA02 2dbsA00 1mg7A02 3mmlE02 5ezqA02 4me3A03 1pffA01 2qruA00 3ruiA00 3nqbA01 2pt7G01 3sqfA00 3hdxA00 1uwvA03 3fotA01 5g4iB01 4r5rA00 2zibA00 2p3yA01 3bf4A01 2nzcB00 4pwyA00 3ht1A00 4q4gX00 1ygyA01 3g13B00 4usaA06 5tf5A03 4c5kD00 2e0nB02 2exuA02 4h7lB00 2dfvA01 1td4A00 5u4hA02 2wnvD00 5cbeF00 5ii8A00 1x5mA01 4c48C00 1g8kA02 2h1vA02 2zbxA00 2ffjA01 1k8kA04 1nxhA00 4nc6A02 4xpzA02 2c1cA00 2id0A02 1ogaD01 3e0gA05 3o1nA00 3td3D00 4uqtA00 1vpkA02 3zh5A00 3q6bA01 3u0jA00 1n0zA00 3v3kD00 4aybA06 2i10B02 3apqA02 1rk6A03 2ctoA01 3dtnA01 3ofkA00 1miwA01 2l1sA00 3b7cA00 1oi2A01 1xuvA00 2okuA00 3hj6A02 3fg1A03 3iv4A00 4i4tA02 3gu3A01 1ryp100 4gakA00 1x9fC00 3d7lA00 1cd3B00 3b0dC00 3l8aA01 5n6yA01 3rpeB00 2ddxA00 2ijaA00 2qh9A00 2qrvA01 2ci9B00 1c1kA02 3ce7A00 2dbbA02 2kswA01 3f7wA03 3v6cB00 3fvcA02 3o63A00 4gl8A03 3powA01 3rfxA01 1lvkA05 2fbnA00 4ef1A02 2nnwA01 3h8vB00 3rc1A01 5u78C00 1y0bB01 2yv7A01 2qy0D02 1wkaA00 1jkeA00 3qwgB00 5nonB00 2zdiC00 3gqvA01 2uvoA04 2e8eA00 3b34A05 3jvgA01 2yxlA01 3kd4A01 1udxA03 3qzmA00 3qdkB01 4pdxA03 3i4uA01 5cxwA00 4hcwA01 1uurA02 2btqB02 1u8vA02 3ipfA01 4m0mA03 4l9mA01 1hfeL02 5a62A00 2vouA02 1bihA04 4js8A01 3if8A03 3sm3A00 2ec1A00 1knyA01 2aplA02 2wy4A00 1jyeA01 5j62B00 1txkB02 3to7A01 5k9bA00 3rloA02 4xjvA00 3hq1A02 4ywoA03 2dtcA00 4zc3A00 3wv4A00 1floC02 1lvkA03 3clhA02 5fi3A02 5jjiE01 4nnaA01 1g41A02 1hqkA00 2pziA04 5dmyA05 3c9zA02 2a6cA00 3zdoB00 2wz9A00 3nvwC03 4tzcD00 2hjhB01 4zyaB00 3tqtA02 3aoxA01 2jynA01 2khjA00 4psrA01 3gzbA00 4hhaB01 2vqeQ00 2gkmA00 4r33A00 2griA01 1cydA00 3dtyA01 1t0fA01 3ga1A00 5jq1A00 2gfhA02 4jx2A01 2prrA01 2dkxA00 1z2zA03 3hfiA00 3tn4A00 1o5uA00 1vj7B02 3ehgA00 2d1yA00 3qxyA01 5bxoB00 2jifA01 1qqhA00 2gf2A02 3uf6B00 1n7dA06 3ik4B01 2bh8B01 3qa8H03 3nhvC01 1svfC00 1r12A02 2gumB03 5uukA00 3zwfA00 4hhjA01 1rfyB00 2l80A01 3qx3A02 2mpvA00 3nhqC03 2jvaA00 2ig8A00 4nooB00 1j2oA00 2y27A02 2hh8A00 1sjqA00 4nn5B02 4uhqA00 3b9fL00 2bnuB02 1rh6A00 3io5A00 3oymA02 1yq2A05 3rrwB01 5a0yB02 4bh6L00 3c4bA02 2rg8A00 4d7sA02 2phnA01 3k40A01 2pkaA00 3zeuA01 3zqjE04 3tjoA01 1toaA02 1l3wA03 1x3lA01 4xcvA02 1ytlA00 4iymC01 3mkrA00 2gd9A01 2zodA02 1o9gA01 2qnuA00 3fh3A00 1lucB00 1ileA03 3do5A01 2fg9A01 2q35A01 4qnsA00 3qpbF00 2ynmC03 3iylB02 3g2fA01 2acvA02 3db2A01 3f1xA01 2b9kA00 3zciA00 3nddA02 3loyA01 2uuuB02 4zpjA02 5dgqA01 2f9wA01 4faoC00 3e61A02 5aiuA00 3f6aA00 3bfpA02 2carB00 2zosB01 3tk2A00 1un8A02 1vchD00 3t7zA00 1lu4A00 1z41A00 4r7yA01 1eluA02 3fncB00 2p06B00 3p1tA02 3hi7B01 3svkA01 4npjB02 2rdgA02 3cvjC00 4iv9A02 3w6sC00 2gqfA03 3pidA03 2rblA02 1d7mA00 4k4kB01 2w59A01 3gbwA00 3mcaA01 3eayA02 1z5zA02 2i6dA02 4f02A01 3peyA02 2m9uA00 3h0dA01 1ok0A00 1z82A01 2qsfA03 3gniB02 2oo4A02 3k8wA02 4r75A01 5m72A00 3i1aA03 5hfiA00 2xzzA00 3zrhA01 4x84A02 2v94B00 4cykA00 2wdcA01 4qfeB01 5kutA00 4w8pA02 2j0wA02 1zzvA01 2gkeA01 2zi0B00 3hn3A03 3holA03 3kyjB00 2p3yA03 3be4A00 2cs3A01 3p9zA02 4jpbW02 4bc3A01 1kg2A01 3odhA00 2luwA00 4dcuA02 3isyA00 3qu5A02 5fzoA01 4jbeA02 1fj2A00 1o22A00 3hgfB00 4kxvA02 3e7rL01 1hh8A00 3e0hA00 2pcqA00 2gfgA00 2ly8A00 2vpzB02 1rutX01 4jcsA02 3mdmA00 1sddB03 1akoA00 1ml9A00 1divA02 1sjwA00 1r5lA01 2p1oB01 1lw7A02 3lyhB00 1lbvA02 2dgmA02 3eayA01 2pkeA02 1ds1A00 2wr8A02 4xtvA01 2r51A02 1oahA01 2ju5A01 4xs5C00 2qsxA01 4pzvA01 4cujA02 3mmlF01 5wl1A01 2h62B00 4jzjC03 3d2mA02 3kkeD02 4hheA02 3pqsA02 4x3aA00 4euoA01 3jtnB00 4bsxA00 2fa8B00 3purA02 4yc5A00 1qr6A01 1imvA02 1nvpC00 1hzhH01 2j63A00 1bctA00 3jy6D02 4pnlA00 5jntA00 3ce2A02 3hnrA00 4h63Q02 1fr3A00 1w79A01 2ge3A00 1jm7A00 2qf4A01 1vryA00 1fnfA01 1g25A00 4b43A03 4j0cA00 1el6A03 1x7dB01 2qtsF01 4pabA04 4e6uA02 3rvyA02 3iq2A00 5jd6A00 1a62A01 3mjkA00 1oz9A00 4oydB00 3ju4A04 3pk0D00 2kxyA01 4dglB02 3rm5B02 5gy7A01 2r9fA02 3mgbA01 4ezbA02 3pycA00 2lhfA00 3hutA01 3i06A00 1k3sA00 5b5lA00 1nhwA00 1l3kA01 3u1wA01 1f35A00 3it8D01 1iv8A04 4o38A01 5c79A00 5lndB00 2huhA01 4g50A01 1kqfA04 5h5zA02 4nnoA01 1mscA00 2gmwA00 5kj4A01 1oeyL00 3kihC01 4xq7A01 3frnA03 2i1pA00 3fstA00 4tkzA00 4dohB02 3glkA04 1a2pA00 2hafA02 3l49A01 1o59A01 4gyiA02 2re7A00 5jgiA00 4wbjA00 1uxyA02 3k4zA01 5gudE02 1hy9A00 1o69A02 4xo9A02 3askA01 4hr3A02 1vs3A02 3bexA02 3wdqA00 2kvaA01 3frmA00 3mu6A01 4ygmB00 1oryB00 4bt2A02 3snxA00 3no3A00 2jnaA01 1zvuA03 4ognA01 4idcA02 1sauA02 4kt6B00 1auoA00 4ne3B01 1weoA00 1jnrB01 2rslA00 1wqkA00 4wmeB03 1f1eA00 2jbmA02 4aq4A02 3bp6B02 3fhnA04 2wjnL02 1kp8A02 2hbpA00 2e0qA00 3u4tB00 1t1jA00 2e5wA01 2r3aA00 1dhkB00 2yilA02 5gjhA00 3tqnB02 1hwtC01 4joqA02 3fw2A00 2o0bA01 2geeA02 4mi0A00 1j09A03 2vrsA02 4py2A03 3vldA01 1jc4A00 5xxuI03 4mupB00 2arhA02 3i08B01 1lj5A01 1gmxA00 3iacA02 3pnwO00 4gnrA02 1hyhA01 2vpnA00 3k8rA01 2qkhA00 3ztgA00 2ov6A01 3a1yA00 3f1lB00 3gkuA03 3h31A00 3e8lC00 1h70A00 2imfA00 3ghmA01 5d8nA01 3fd9B02 2axqA01 5n17A01 3t5vA00 3f02A01 2xf7A00 4biuE01 3agdB02 3hy3A00 2li8A00 2mraA00 3hutA02 4oi4A03 1tdpA00 2o5vA01 2wtmA00 1i9gA02 4ix8A02 1ybtB00 1jlxA01 3rmuA00 3nz2A00 2h5cA02 1u3eM01 4q7eA00 1kmdA00 4qtpB00 2yc4C00 2reeA00 2rfvA01 5jeaB00 4g59C01 2f2hA02 2bc4D02 4gkbA00 4yl8A03 1wf6A01 4wd3A02 2y8kA01 4io2A01 5pagB02 4rndD00 2lrjA00 4kjdB00 4n04A00 2i06A02 3ewbX00 4aqoA00 4jgiA01 3lv9A00 4mnnA00 3nrhA00 1spxA00 4bk0A01 2oo8X01 2h21C01 3nuqA02 2x3hA00 3b77A01 6bweB00 4p6qA02 3zvlA02 4jimA03 4upkA02 2cwyA00 2kyzA00 4qflA02 4az3A00 3juwA00 1jmoA02 3wsfA02 5veiA00 3dtgA01 1ffyA02 4a2lF02 3ulpD00 3kdfA00 2a6zA00 2yqyA00 5h5oA00 1fm2B02 1wlyA02 2qrdA00 4qc6A00 2o8gI00 3v7bA00 3zo9A01 3a99A01 5ulcX00 2oebA00 4mb1A01 3vrdB03 3mczA02 2nn6G01 2gzqA00 1r89A01 3i2dA02 1pn5A00 5w3rA00 3lhxA00 5gutA04 4qc8A00 3rc3A01 1rp0A01 3o2eA00 2vo9A01 4m0mA02 2o8bA04 2omlA01 2orwB02 3fdwA00 3k9cB01 1ix2A00 5jn0A00 4n5cD06 4ccsA01 1bcpF00 3o83A00 2rspA00 4trtA03 4b8cD02 2v2fF00 3n3mB00 1v39A00 2v3mB00 2vhlA02 2npbA00 3tixB03 2ke9A00 1tukA00 2gf3A02 4powA02 3k3sH01 2bmoB00 2qtlA02 1ltsA00 1osyB00 3rppA01 2nrjA01 4rv5A02 3jami00 3qwxX01 1q7zA01 4lhxE00 5jouA03 4jz5A00 2cw8A03 3necA00 1a8dA02 5czfD00 3ajvA01 3j26N01 2rorA00 4qgsA02 1u97A00 2blnA02 2xggB00 2cdcA02 5jryA02 2j3tC00 2e8nA00 1a9xB01 5vn4B00 3wucB00 1o57B02 3a06B01 3luyA02 4c72A02 3pg0A00 3hklA00 4houB00 2as0A03 5b1aE00 4gl8A01 4xr9B02 3qekB01 4z4dA03 3ikmC01 3k6oA02 3dxeA00 1neiA00 3facA00 4a64A01 3qtaB00 2q2eB02 2wweA01 4chgA00 4tm7A00 3lmmC04 4m51A02 2byoA00 2oarA02 1xl7A02 1lt7B00 4iyjA00 5oswA04 3r9bA00 5fifC02 2hyvA02 1m9sA04 6blgA01 3qufA02 2gi3A02 4q7fA01 3bq9A01 4d2iA02 3uhmA01 2ehoA00 2zsjA02 2m5vA00 4cvnG00 1llaA01 5hfjC00 3gwjA02 4aybF02 3op7A02 4pkyE00 1g7sA03 3ezjA03 2hq6A00 2ok2A03 1w2wA00 5oomb00 3r27A01 2i7rA00 4iqbA00 3otgA02 1h03P02 2yxhA00 1vcaA01 3ljlA00 3oaaa01 1txdA01 3b2yA00 3aofA00 1ukvY00 4w8kA01 3s5bB00 2yimA02 4w88B00 2aydA01 4il3A02 1pkoA00 3kttB02 3l4nA00 4o89A02 5tbxB00 2kr7A01 4klxA00 3b4qA00 2oktA01 4zu2A01 1hf9A00 1w32A00 2ebyB00 4xboB02 3i9wA00 3hczA00 2krsA01 1ta3A00 4csrA00 4m66B00 1ggpA01 3hx3A02 2fiaB00 5ty6L01 4q6rB01 4n13A02 3vajB02 1z2qA00 1tgsI00 3rrsA03 2uy1B00 1ax8A00 3robA00 1sfnA00 2odxA00 3tqvA01 2qrrA00 3gnfB03 3oeeY02 2ekkA00 5c5uB00 2ookA00 1tafA00 1zodA02 3s6jA01 1yovC01 2c4xA02 3p0wC02 1ghpA00 4cfiA01 3oizA00 2bb0A01 1q25A02 3deoA01 3ibwA00 3gg2A02 2essA02 2a7yA00 3s6mA00 2x5fA02 4yzrA00 2dafA01 4bxfA02 3tj9A02 1lkvX02 2ov0A00 2yqzA02 4qfvA02 1oi7A01 1ux5A01 1cb8A01 3in6A01 1q5yB00 2retA00 2hdiB00 1zgkA00 3eevB00 2dr1A01 3zyqA01 2hafA01 5gmdA02 3ddvB01 4jb7A02 3b5nK00 2zy4A02 1z63A03 2gf5A01 4au2D01 4ze1A01 3utnX02 1cczA02 1d1nA00 4fc7D00 4j82A01 1q7eA02 5uggA02 4faoc00 2l92A01 5tdeA01 2gzsA00 3ldaA01 2vk9A04 3i7jA00 1aipE03 5cbeE00 2f5tX02 5rubA01 4u2hH02 2r1iA01 3ll7A01 4xgqA00 3f9mA01 4f0zA00 4dgjA02 1x1iA01 2qmaA01 3e8oB00 2dtxA00 2nsmA01 3vokA00 3oymA04 3ns6A00 4mcoA00 2pkeA01 4jk8B01 2bx2L02 4wkaA01 5eljA00 3anwA01 2qytA02 2amfA01 3ppeA01 4dq6A02 5jhxA04 1yfqA00 2ikbB00 4izdB02 2i1oA01 3vr6A01 2b8tB02 3fgrA01 1ukkA00 3ls9A02 3mstA00 2bh7A01 3s9kA01 2hxrB00 1e9rD01 2e85B00 3r1fQ00 2zu9B00 5lomA01 3ej9B00 4kxfB02 2e26A03 4zdsB00 2r1jL00 1y9qA02 3pg7A01 4fflA02 4hczA00 3pf2A01 3eb7A02 1mdaH00 1kngA00 3px8X01 2hc9A02 5eiqA01 3ckmA02 4fojA00 2qhqB00 5xexE01 3hrsA02 4g9sB00 2w83C00 4a1nA02 4kqpA01 3gf3A01 3dwoX00 2xgtB01 5a67A00 4glxA05 1vk4A00 2v31A01 2cmrA00 1u0tA01 3gylB02 2hlcA02 2w8nA02 2vngA00 5c9gA01 3bt4A00 4aybG00 1jetA03 2d5wA03 4atoA00 1v3wA00 4gosA00 2fs1A00 4axpA01 5fmgH00 4omfA00 1ig0A02 1t4oA00 1lpbA00 4e15B00 4an8A02 1rl6A01 2optA02 2r8oB03 4rz0A00 3nnfA00 2lcuA01 1cttA01 3m4yA01 3i3fB00 3gk7A02 5fkyA02 3egnA02 2xolB00 1deuB00 3fgqA02 4esnA00 5l2pA00 1f0kA01 1pzlA00 1ohgA02 2oo2A00 1ft9A01 5jixA00 2qztB00 1kdgA02 1vliA02 5b66U01 4lx3A00 3d9rB00 4r85A01 3mogC02 3eabG00 3o3uN02 3ip1A01 2nutA02 1n7vA03 3rnlA00 1d7cA00 3zg9B02 1upqA00 4de9A02 3qvlA00 4wfoA02 1vcfB00 4e98C00 1pbyA03 4l9oA00 2looA01 3fblA00 3q6oA01 3l9vC00 2k1mA00 4qfuE01 1mswD02 2nxfA01 3q7aA00 2hjhA02 1ef8B01 4hbzA00 3qv2A02 4do4A01 4chjA00 2g0cA00 4c2m400 2rdqA00 5khqA00 3eodA00 5m0yB01 5c2zA01 4qjvA01 3ungC01 5dj7A02 3iu5A00 4glkA00 5n0mA01 4jn7A01 3kvtA00 4o9dA00 5c1iA00 4pg7A01 5o99A00 3cngA01 1l7aA00 2c5jA00 3k9vA00 3uceA00 1h9eA00 1kx5A00 5diiA01 1gakA00 2py5A05 1xu6A00 2zf9B00 2ra1A04 4fqpA03 1c4zA03 4lrqA00 3ml4C01 2wm3A01 5pxlB02 2wadA04 3u6pA01 2nzxA02 1httA01 1f0lA03 2ckzC01 2zctA01 2m4vA00 2w40A01 1oc2A02 3zghA00 3pdyB00 3o3mB02 1pz4A00 5al9A01 4jehA01 1vjnA00 5of3A00 3p8aA01 1bprA00 3vthA01 2v1mA00 3ir4A01 2d7cC00 1fc6A01 1ukfA00 1b0uA00 4l0cA00 4iufA00 6blgA02 2fwrA02 3mtqB00 2hqbA02 3nynA01 1sv0D00 4e2xA01 2hdoA01 3lk7A02 5gaeI00 1ut9A01 5u56A01 4xw3A00 2i9dA00 5v00B01 1a5tA02 3wqoA00 4aaaA01 2zsgA01 3u0oA02 4giuA01 1ycdB00 2rl8A00 2r2dA00 3ifrA01 2a2fX02 3g0tA01 2vqrA02 3qx1A00 2b7kA00 3mybA01 1mkiA01 1x53A01 1jfxA00 5domA00 3pv7A01 4aflB00 3laxA00 1gdjA00 1vomA05 3l9wB02 1o7dA01 3zkcA00 4qbbA00 4ofzA01 3d98A02 5ejwA00 5hdmA01 1yvuA02 2wz1B00 5u47A04 1iv8A03 1vi0A02 4nv5B01 2jzkA00 3v77A00 1qdmA01 3asiA01 1u08A02 3mkcA01 3bbaA00 1al0B00 1dj7B00 3popA02 1q5zA00 4i5qA01 2de0X03 2oj5D00 2v4iA00 1nijA01 1zv1A00 5i0uA00 5tz6B02 4az9B00 1j0pA00 1g3iW02 4nh4A01 4yubB01 3ip4C01 4ltyB01 2ozzA02 4gqzD00 2gsmB02 2oy7A02 3e3mA02 3c8yA01 2if4A02 5b1aD00 3gv4A00 3n0xA01 4kd5A02 2c8mB00 4jniU01 3k5wA01 5uzgA00 1cyxA00 1hz6B00 3pkzG00 4oh1A02 1y0pA01 1iz0A02 2ic2A00 5j9cA00 1z47A03 1q16B01 1xezA03 2de3A02 4bloG01 1xmbA01 5fokB01 3e0xA00 1aozA02 1gvcA00 3pevB00 3og2A01 1nr0A02 5mlnA00 3rkgA02 3rqwA02 4b2rA02 2gd5B00 2p1jB02 3eqcA02 2w2xC00 1xy7B00 2gskA02 4oaqA02 4epsA02 1cg5B00 2pohF01 3guwA00 3g8rB02 1hn3A01 1gaxA05 3wt0A02 2qlcA00 5lxvA01 2jhpA03 1m1jA00 1zr6A04 3g7nB00 2vgnB01 1ykhB00 2h09A02 5jd5B00 3imkA00 1sxlA00 1f3zA00 4m1gA00 3i65A00 3vpaB00 2jd3A01 1f3mA00 4rnlD00 4e01A02 1sj8A02 4ilkA01 3katA00 4ntwA01 2w1jA00 5tt0B00 3obyA01 5akrA02 2aegA01 3sp1A02 4kpkA00 4gs5A01 1nwbA00 3etvA01 5c5oA02 2lqvA00 5b69A00 1kskA01 2ymmA02 1e0aB00 4mdwA00 4xs9A02 2wjsA02 1jyeA02 3khiA02 4eo1A00 3rqiA01 3fkcA00 4s3jB02 1i1rB00 2b78A03 4cgxA00 4hdoA01 4x9eA01 2l6jA00 2bonA02 4je0A02 4x30A02 3ff4A00 4gwgA01 5dmmA00 2hayC00 3enhC01 2zo4A01 4ap5A01 1xu1A00 1wznA01 3qq8A01 3agxA01 3r9qB02 1p7lA01 3oheA00 1wfnA01 3fhdA01 5uiyA00 4s0uC00 4m1uA01 1sqsA00 5a1nA00 2c35A00 2vtfA02 4eirA00 2doaA00 4x28A01 3f5fA02 1mtpA02 3zvlA01 3u1kA02 2awiA01 2yudA01 1vq8B01 4cblA02 1r0vA01 1ynpB01 1q72H02 1zpuA03 4bk8A00 4lk4A02 3lfuA02 3ph9A00 3vu1A01 3rc3A04 3n3fA01 4czlA03 2mvtA00 2n3zA00 1cfbA01 2b4qB00 4x83A04 4r7yA04 4yudA01 2yhaA01 3u7qA03 2y23A01 3n2oA03 2jkbA01 1mqsA03 4h79A00 1lkxA02 4hcsA00 2bm0A03 2b6cB02 3e7jA01 1g6uA00 4ajyV01 4k35A02 2vj4A03 3vg8C00 2oztA02 1qu3A04 2uytA01 2wviA00 5l4lA00 4l7aA00 3epuB01 2q2fA00 4rw0A00 2rreA00 2wzqA02 2wp8J01 3girA02 2icuB00 1fmkA02 2gr7A00 4ae5C00 2j8mB00 2f4iA02 3fwnA03 3gfsC00 2bs2A03 3atsA02 5ig0A00 2ypvA02 2cb9A02 1xb4B01 1vraB02 1hh2P01 2vf7A03 4by6B00 1fd9A02 3bxjA02 1w5qB00 5wedA00 2h3oA00 4z0oA00 3ju8A01 2b9vA02 5tkwA02 2zy4C01 1nthA00 1r6wA01 2ef7A00 2hczX01 4e4tA03 2d8sA00 4hvkA02 5ck3F00 3vn5A01 1rsoB00 2xhvB02 3mgjA00 2x5cA01 3bcwA01 4a0sC01 4qobA00 5aykA03 2diiA01 1xhnA01 2hqyA02 2odeD01 1peaA02 3qfgB00 4athA00 4alzA02 1tm9A00 4bbjA03 4ix1A00 1pzxB01 1xp4C02 1eerB02 4k3bA06 3ghgB01 2xjpA01 3vlnA01 3iv0A00 1t0pB00 3d40A00 3r0sA01 1wisA01 3vqiA01 5ghgA01 1jrmA00 4hnlA02 5da5c00 5ix3A00 3vpdA02 1tqhA00 2qfcA00 3sc7X02 3l6iA00 5nsaA00 3vvfA01 3hr6A02 5fljA00 3gyrA02 1uw4B00 3udfA01 5tseA00 5mmiU01 2b3yA01 3mfrA01 4dhxA00 3mcxA03 3qthB00 2d28C02 2dk7A00 1uaaA02 1ciiA01 2o26U02 3rsiB02 4evwA00 4hdeA00 3tmgA02 3cecA00 4kikA01 3k5oB04 4u8uO02 3ehfB01 4ekxA00 5gaeG01 2rasA01 4z7fB00 5njjB00 1jfiB00 1vyhC01 4cq1B01 2q0yA01 1yarO01 4udtA01 4p04A01 5uj0A00 4am6A03 5fewA00 3ermB00 2kxqA02 5icuA00 1yx6A01 4q1vA01 2jxdA00 1a5tA01 3m4iA02 2g0tB01 2r2aA00 4ebbA01 4fuqA02 2wzpR03 1y3tA02 2yykA01 3azoA02 4wiwD01 4nawA00 4m8iA02 3mk7C01 4kvgB01 3l41A01 3sk1A02 2m47A00 2rioA03 3g3kA02 4ympA00 5eswB00 1elkA00 3kxwA02 2jbmD01 3lwjA00 1dq3A02 3n75A04 3rd4B00 2yurA00 4kliA01 3s8kB00 1xrsB01 2c4nA02 2bm5B00 1a04A01 4ld6A00 4lbaA01 3qwnA02 3pvlA01 3zssA03 3tq6B02 2gysA01 3hn7A02 1mw9X01 1nkrA01 1u6mA00 4xslC00 1eljA01 2jubA02 3bmvA04 1hskA03 3smdA00 4jo7A00 3a35A01 3qexA01 3bigA01 4cgyA03 2jiiA01 2ymoA02 1zpuA02 3lv0A01 4my5D01 3hhlC00 1qkrB00 2xq0A04 2gt1A01 4ifdK01 3ilmB00 4l3fA02 3or1A04 2r19A00 1gpjA03 3pc3A03 3t9yA00 4jklA02 3p1vA01 2kgsA01 3e4wA02 1kl9A02 2e7cA01 3cqbB01 1vkzA02 3if8B01 2qq4I00 2qltA02 3kluA01 5a5wA00 3reaB00 1xrdA01 4r1qB01 4jn2B01 3tsaA02 4fkmA02 3dkaB01 4usoA00 5afyH01 1a7sA01 4zwnB00 4ex6A02 1yj7D02 4jqiL02 1rhfA02 4bl6D00 3cbnA00 1tljB00 4h2gA01 3er9B03 3qxbA00 1wcwA01 1r45A00 3ce6B01 2hr3B03 2askA00 4aybA05 5ecuA00 5udzA02 3i8oA01 4ogqC03 4bgjA00 2ho4B01 1lmiA00 4ianA01 3njcA00 2b5xA00 1d02B00 1jjdA00 4g1iB01 2mntA00 1b3qA01 4uskA02 5h2gA02 1d6gA00 4isbB02 3ur8A00 3cwzB02 3fmtE01 2nykA02 4zieA00 2dznA00 1y10B02 2a0bA00 1hdhA01 3fv6A00 5i0qB02 3dpuB03 2halA01 1ursA02 3breB01 1lxjA00 2etdA00 2phpB00 2vfrA04 3cp0A00 2eiyB01 4eweA01 1vrmA02 3p8kA00 4jehA03 5etrA00 2r18A02 2rhqB03 2kcnA00 5aqcB00 4jxhA01 2cwsA00 1g5gA03 3j27A05 1dj0A02 3qwuA03 3d0jA00 2v9rA02 2jsxA01 3mazA00 5m1pB00 1r77B00 2ostD00 2cjgA01 3b55A03 4a37A02 2leaA01 1yt8A04 4lq3A04 5lypA00 3ct6A00 2c78A02 3d1pA00 2gauA01 2o98P00 4elnA00 3cx5C00 4kx7A03 2vp7A00 2uz5A01 3llpB02 1je0C00 3llcA00 3ky7A02 3h6nA00 1sy7A02 3rfzB01 2ygoA01 1uqwA03 2jwkA00 3cihA02 2o01N01 1v1hF01 1i9zA00 3utoB01 2l4vA00 4r6yA01 4phzB00 1p3y100 2e9xD02 3sqrA03 4ql3A00 4maxA00 4ccgY00 1nqjB00 3slgC02 1gyoA00 2f02B00 2ltkA01 4aruA02 4eyyQ02 2ah5A01 2lsbA00 1tz0B00 1agjA01 4ablA00 4g7xB00 3i9yA00 3kdgA02 2pp6A02 2jh3A01 3hrdA02 1d4bA00 4xxfA00 1vgjA00 3f95B00 1jvbA02 1wkbA02 3o3mB01 2np5D00 4zzxA02 3wnzA03 4ly4A00 3bjsA01 1y9qA01 1eq9A01 5ls3B00 3rvaA02 3ziuA01 4wjmA00 2dbnA00 1kfwA02 1zzmA00 1wfuA01 2okxA02 2od4B01 4p7aA02 1v4pA02 3fcmA00 2o55A00 2xgsB01 2e1bA02 4ltnA00 2gy5A01 1c96A02 2ot3A01 3uwcA02 4dzhA02 2hmhA00 2pq6A01 4kamA01 3cl3A02 3cc2Z00 4u2vA02 2ww8A03 2yexA01 1vr8A00 1twyA01 3bjeA01 3bk5A00 2rfmA00 2qtcA02 4n7rA02 3hh7A00 3on7B00 1n8zC04 2lteA00 4df0A00 2pr9A02 3tn2A00 3n7zA02 2zwsA02 3ci0K01 3e15A00 4ux5A00 5ksdA04 2i0kA04 4tsfI00 4hluD00 3hr4C01 5x8fA01 3zssA02 4oloB00 1uujB00 5ic7A00 2gj8D00 1m1eB01 1vyrA00 4lirB01 2jubA01 3o8bA04 3nraA02 2xioA00 4ipaD01 2b0vA00 1r1hA01 4e6kG00 4hesA00 4fvmA04 2xdjF00 1srzA00 3na5A03 2wurA00 2yn3D03 2cvdA01 1av1A00 2gttJ02 4j8dD00 3l81A01 4pp8A00 3qvpA02 3cssA00 1oizA02 1ewfA01 3nuaA02 3ikhA00 1n26A03 3kv0A01 1tyjA00 3egcA01 1w2tA02 3eslA02 4b5oA00 5v07Z01 1k0iA02 4hi7B01 2aafB01 3m21F00 2wtkC02 2etvA01 3n29B01 2o06B01 4ladB00 3slkA02 1o7fA03 1ujpA00 1m0wB05 3en8A01 4am6A01 6bk0A01 1ze3D00 3f9tA01 5hoqC00 4nkrE00 2hjjA00 1zx8A01 5tz6A01 2woyA02 2eo4A00 3mkyP00 1jgtB01 4oo3A01 4qtoA02 3ezxA01 3cr3A00 1fg7A02 3i6tB01 4wk7A00 4xvxB02 3oocA01 4eo3A02 2je6A01 6az1F01 1nh8A02 2c2nA01 3wxmB03 3rcoB00 3e0gA01 1oz2A03 4qgpB00 2mn3A00 2bwnA02 2yz0A00 4maiA00 2opiB00 4m37A01 1k1vA00 3r8eA02 2f8xM00 2o8qA00 1y62A00 3go5A02 2re3A01 1cpyA01 2vgoC01 2f1fA02 2remB00 4zgnB00 2o0bA02 2gj4A01 4gvbA00 2d00A02 4cj0A01 4ehuA01 3crmA01 2kksA00 1t2wA00 2k75A01 5y9eE00 1wthA02 4r60A01 2cxiA01 2qi9C00 1l3wA05 1ojqA00 1t62B00 3s28A02 3l4gB02 3q7rA00 2yf0A01 1n62C03 1f0xA03 1zvaA00 1gkpB02 4edhB00 1dkiA02 1y43B00 4me7E00 4hvkA01 5tnxA02 1sixA00 2hpwA00 4nk2A01 4jgjA01 3hlzB01 2xzeB00 3fspA03 5ug9A02 1txnA00 3ca8A01 4mqbB00 1nctA00 5thqA00 4oi9A03 4xemA01 5bxrA03 3im1A02 1t3uA02 5um2A01 4lk5A00 1hpiA00 5ntwA00 1va6A01 2q4aA00 3c4zA02 1enfA01 3n5aA00 6aorA01 5hbpA00 4f1vA02 4gf3A00 3c3pA00 3pmtA00 4nxtA01 1gcyA01 2oezA01 3md3A01 4lubB02 2kz0A01 3orjA01 2yd6A02 4y9tA01 2o0aA00 1a73A00 1e5rB01 2wjeA00 2e52B01 3dfzA02 4zavA00 2w2gB01 4kt3B00 5cx7E00 3lh2U00 3v6oA02 3o14A00 3mk6B01 3ovkA00 5uofA01 2r3sA02 4zkdA01 4pakA00 3zpyB00 3eh1A03 3ie4A00 3tl2A01 1qbzA00 3ep6B01 2ff4A02 2mp8A00 4afxA02 3s9dD02 4pytA01 3ssmC02 3wnoA01 2rdmA00 2ka3A00 2hfnA01 3n01A00 1a41A02 3pl0B00 2lyiA01 5fyfA00 2ayiA01 3proC02 3t5tA02 4aurA01 1p1mA02 2x5nA01 3h7iA02 3bpzA01 4fpwB00 2f4iA01 4ni6A00 3optA01 3rfwA01 2m88A01 4lusB01 3u7rA00 3nwrA02 3vuqB00 4efoA00 4jbgA01 1nhwC00 1z5bB03 1zmbA02 2qcvA01 3llhB00 2kw3C00 4kt0F00 3fw3B00 2qo3A01 4mnkA02 2w5eA01 4ga6A04 1gdhA01 1e5wA04 1f32A01 4huzA01 5oomU00 3vldA02 4e4uA02 2jchA01 2re3B03 4aciA00 4nf1D00 3vubA00 2hw6A02 2r2oA00 4x6gE03 2c1iA02 4ofzA02 2ov9B01 3wo4C02 4u9bA00 4mo1A00 5f7vA00 2opwA00 1o7iB00 3d8uB02 2r7eA04 6b9xB00 2d7lA01 3s8pA02 4dk0A02 2eq5A02 4q0jA03 3htyA00 3omlA02 1kvdB00 3nutC01 1vz0A01 5c54G00 4mp8A01 1r4xA02 4pavB00 5tnxA01 2c5uA02 2d9uA00 4qr9A00 3neuA02 1r53A00 3l5kA02 3gx8A01 1sbqA00 4ci8A01 4nutA00 2zgiA01 3bd1B00 1wwiA00 3m1gA01 3m62B00 3o44A03 2x0dA02 2rflH00 1j0tA00 3kyeB00 3qwuA02 5h9fJ00 3bzcA03 3db7A00 4kxqA02 2v0cA04 3o60A00 2h8eA00 2bs2C00 4e9oX00 1z00B00 3lnnB01 5ajiB02 2pliA00 4i59A03 2ppiA01 2rc8A02 1nr0A01 3nrsA01 2g7sA00 2qpqA01 3q0iA01 4wydA01 1g3pA01 1ss6A01 2ortA03 1wfjA01 4j80A02 3e0eA00 2p5zX03 2pn1A02 5k87A01 3c07B00 3kflA03 4zpcA03 4edgA01 1tzvA00 2cviA01 2hd0A01 5b66O02 3f7wA01 2o36A01 3t3lA00 1yz7A01 4pbqA00 5ihwA02 3brdA01 4jrnA02 1avvA00 4yhbA01 2wb7A03 3sy8A01 3bqzA02 3igfA01 2ztjA02 3e03A00 3n7zA01 1ee8A01 3u2gA01 3rm3A00 1k8kE00 4dllA01 2pf4E01 4kfzA01 3bhdB00 2g7jA00 3ju4A02 4x83A03 4h8aB01 4ew6A01 1n13B00 3v5wA03 2mbeA00 4gbuA00 2xxlA02 1sngA01 2yvkA01 4c4oB01 1esjA00 2e73A01 2w61A01 2db2A01 1n62E01 3lufB02 2dh2A01 1sg5A01 1dq3A04 3l9fA02 2y4tA02 3ksmA01 4j8zA02 4htgA02 1phkA01 3axjA01 3hc1A00 2bj3D02 1us5A01 2wscN00 5jhtA00 4qg5B01 3aoeC03 4xr9B01 2xgmA01 3k4hB01 2csyA01 4iggA01 1paqA00 3n9uI00 2yilA01 2p9mB00 4kgqC01 1h3oA00 1agjA02 4dzbB01 3eesA00 2qsfX02 3n0wA02 4io2A02 4qclA01 3hh2D03 1q38A00 2ck3A03 4chiA01 4dddA01 3tm4A02 2oaaB01 3f02B02 2uuyB01 2pgeA02 6bq9A02 4gi5A00 5hiwA00 3d5lA01 5bn1A00 4icgD00 1ttzA00 4hdrD01 2hv2C02 2jwpA00 2yzkA00 4tmvA01 2q5fA02 3im1A01 4oxpA01 5ig6A00 3ks9B02 4jf1B01 4qitB00 1evuA01 4iapA01 1mqsA01 1ryiA02 3m6uB02 3ajvD01 1bmbA00 3aq1B01 5emiA00 4rjzA01 1d8wC00 4u0wA02 4c1lA00 2v9pA01 3iagC02 4dsfA04 4mikA00 1uz5A01 4q4lA02 3h0dA02 2kxoA01 3dl3E00 1e25A00 5lqdD01 5a0yA01 4bbyA05 1m2dA00 3p24C02 2id6A02 2d59A00 2cq7A00 2lw3A00 1m2tB02 4n0rA02 3bosB01 3qjoA03 1ypqA00 5efqA02 1nm7A00 3pvlA03 5b5ee00 4qroG00 3s6eB00 3s2kC00 4kmcA00 1wvgA01 4w5wA01 5x56B00 1z4eA00 1nv8A02 4m2aA02 3bdwA00 5cqgA03 2c40A00 1jg7A02 4jzuA00 1uwyA02 4kgqD02 3t4rA00 4tv7A02 3h09B02 1cs1A02 3tt2A00 2wnyA00 3bfmA01 3fpcA02 1qs1A02 3oy2A01 4rnaA03 4kliA02 3daqA00 4yz9A03 2i00A02 5guaA00 3o4fC01 1l8rB00 1n97A00 2wqrA02 2fu2A00 2g0qA01 3dl2A01 4h7wA00 4iusA00 2f6eA00 3ouzA03 4d8oA04 5hqjA02 4afiB00 3fddA03 1wmdA02 5mblA00 5f1sA01 3fhnA03 4qboA00 1wmgA00 3wj1A00 5l3sA02 2bghA01 2bl7A00 2ihr101 4x83D01 4pfyB01 4r9kA00 1wfyA01 3t5qG03 1edxA00 2ox1A00 3s6n201 4d57A02 3mwcA02 4cs4A01 3cxgA00 1to3A00 5kfzA03 2jdaB00 5hd6F00 4qicA02 3gr5A02 4xxiA00 4wz9A02 3wirA03 2xwsA00 3hftA00 3p34A02 3wmvB00 3kmhA00 2qryA01 2g2sA00 5crwA02 4pagA01 5kh0A02 3mswA00 3or1B03 1b5pA02 1e40A01 2nujA01 4xpmB00 3sl7A00 2yxnA02 2gwnA02 3a9zA03 1pjrA01 3oxnA01 4dm5A00 3bfoA00 4gqbA02 4ogqB02 2xu7A00 4uv6A01 1bvp103 3bgaA04 1xfsA00 5tinA02 1c4oA03 3cf6E01 3mpxA02 1jjgA00 1u0lA01 5i99A01 4ci9A00 1kxpD05 2y8yA02 3bxuA00 1s5aB00 2g1pB01 4hacB01 2o26U03 3sxmA00 3nrkA01 4bs9A05 1m9zA00 3v4cB01 3hzpA00 3uwpA02 2x9zA01 1u9lB00 3mjfA04 2km1A00 2rqmA01 3tlkB02 1dcsA00 3di5A00 4yn3A02 3t6oA00 4clcA00 1o75A03 3d8dA00 3pvlA05 3rrvC00 5n81A00 4kiaA00 5hbfA01 3t0oA00 2au5A00 2je8B05 2gzaA01 1zbtA01 1mugA00 3mujA01 1wi5A01 4mxwS00 5od6A00 2iboA00 4g2pA00 4omfB02 2b3fC02 3hp7A02 3t2lA02 2bsfA01 3klqA01 2osxA02 3memA02 2rjzA02 4u7mA03 2xxpA01 4driB00 1jzoA02 5dzsB02 1x1iA03 2qckA01 3nd1A02 2kmwA01 2yxlA02 2q0tB01 2f48A01 3zkjA02 4hy1A01 3n7lA02 2hf9A00 4ehiA01 3kptB01 1yueA02 3madA01 1g3kA00 3bh1A01 1musA03 1vimC00 3e74B02 4njmA02 4ix3A02 4aj5100 2ia0B02 3tb6A01 1uvjA02 3q7xA00 5c82A00 4dloB02 2hiyA02 2in3A01 5ilgB00 1q79A01 4ga2A00 4ojdH03 4ziyA01 3g9vA02 3zqkA00 3u7qA01 1uhrA00 3zizA00 1zbsA03 3l8hA00 1fmjA00 1yrbA01 3zieD00 5an9A02 3hyiA01 2o9uX00 4xnhB00 1sg6A02 4s17C02 2n7zA00 1rzhH01 1jyoE00 1nexA00 4khbD02 1hyeA01 3iusB00 4kbmB02 2z3xA00 3i1aA01 4lg3A01 1z0nA00 2rqyA01 2cfbA01 4rlzA01 3m1xA00 1ym0A02 3m1mA03 4mjdA00 2e28A03 4dz4A00 2hldH01 4nleA02 3hrzB01 1d2pA02 4joqA01 5decC01 4g1iA03 3hrzA04 4nsxA01 2lvnC00 2ad6B00 4heiB00 1vbkA01 4rg6A03 3aabB00 4by6D02 3q7cA01 1nu5A01 1or4B00 4h5iB00 4rweA01 3c3yA00 3ihvA03 3hjhA01 1h2uA01 1i7dA04 3wnzA04 3erbA01 5e2cA00 1e8yA02 3dg6A01 2k6wA01 5c1eA00 4al8C00 2bmbA01 5iqnA00 4rnaA01 3lvqE03 4lv5B02 3nclA02 2q6fB03 3df7A02 3i7mA00 4liqE05 4iy7A01 4al0A00 1uj2A00 1z9lA00 4f7zA05 2fcwA00 4fvmA07 3fz0D00 4zi8B01 1dtdB00 4i90A00 4ag5D01 4cc2A00 2x3mA00 2p9xA00 3shsA02 2l60A00 3grzB00 2e3nA00 2xy1A01 4m0nA01 5o6tA00 1c8iA01 3orkA01 3i0pA01 2oxgD00 1hn0A01 4issA03 3m8uA01 4xdaA00 3w57A00 1wvoA00 1yqbA01 2wh6A00 2gpiA00 3hx9B00 2oodA02 1o7jA02 4lr2A02 1fc4A02 4alzA01 3lvqE02 2g8lA02 1p7hL01 3dupA02 5aebA00 2hyxA02 1ahoA00 3b7xA00 3bg1B01 4i69A00 5imsA02 3sdbA01 3kolA01 6az1C02 2gdqA02 3ontA00 3f67A00 5ftwA02 2i6eA01 4ei7A02 1yzbA01 5b2lA01 3mjgX02 2ozgA02 2f6kA00 2wk1A00 1z05A03 3onmA01 1sc6A01 3bjkC00 2p5tA00 3ottB03 5cemA01 2ozlB02 4p9fA02 2qg7B01 4a7kA02 2zjrG00 2js9A00 4cbbA01 1kyiS02 1eyvB00 3fhhA01 1cjcA01 1j9bA00 3dbgA00 1wglA00 4glsC00 2p5zX04 3hg9A02 2aegA03 5f9eA01 2zwaA02 4pf4A01 3ep1A00 3d7rA00 3x30A00 1cczA01 2y43A00 2plnA00 4p78A00 1rgxA02 5eyaF00 2rbcA00 4cs4A02 2q9kA00 2f9iD00 1ajoA00 1nqeA01 2xk0A00 1zczA01 1dc7A00 4o5aA02 1szqA02 5sxwA01 1yeyD02 4l9hA00 1qwrA02 4ymuD00 3liyA00 1jg1A00 2g3aA01 5hp5A01 5epfA00 1gu9C00 1nkgA01 2pq0A02 3hsiA01 3m1rB01 4ejnA01 4fbwA01 4ovjA02 4rojA01 1vq8P03 2yd6A01 4p02B05 3eh2A03 2ga8A00 2kn8A00 3wdcA00 1hyuA02 6b9xC00 2x41A03 1q0qA01 1pcxA03 3repA02 3mmgA01 2f5jB00 1vb3A02 4chdA00 3ottA01 1pz7A00 4oxiA02 4bguA01 1ypfA00 2m7bA00 3x01A02 2ja9A01 3dupB01 5iklF01 2c31A02 2m76A00 3tc2B00 2wyhA07 4eclA01 2yn0A00 2l6cA00 2iu1A00 3lfrA02 2l5aA00 4g78A00 2hhpA02 1e50B00 1vf6A00 2nn6C00 1i1rA01 3sg0A01 3mm5B01 4yrbA00 4kxqA01 4ld1A00 1dgsA02 3f0hA01 1kqfB01 3ik5A00 3nyqA02 1c44A00 4jmpA00 2k60A01 1gqyB02 3cp7A01 4bwcA01 1tzfA00 4jzaA03 3k2wE01 3e0rB01 3og9A00 2a3nA02 2e3fA00 3l0qA01 4acfA01 2zfdB00 4oq1A01 5nhmB00 5eo9A00 3ntvA00 3ff9A00 3lsoB02 1f60B00 2h7tA01 3ievA01 4pwuC00 1a79A02 4zb7A00 3o8bA03 3qexA03 3t97B00 3hsuA01 4eqmA01 5mx9A00 4i5jA01 1sddB01 3djdB02 2nytD00 3shsA03 2gupA02 1fnnA02 3phhA02 2eqmA01 3craB01 4le5A01 2ch5B02 2zbtA00 2eodA00 1vlyA02 4wt7B02 3hlzA02 3pvlA04 4edgA03 1l4dB00 2d93A00 1bh9B00 2jcbB00 2x9xA03 2dc0A00 1j34B00 2c9aA02 1qe3A00 2ck3D03 2hxtA01 1k4tA04 4nq0A00 5noiA02 1a1tA00 5l09B00 5kszA03 1zarA03 2gq1A01 1omiA02 3we5A00 3pfeA01 4guaA02 3fbiD00 4c97A02 4fnxA01 3iagC01 4jnhA02 1w4vA00 4myzC00 1yb1B01 4kliA03 5nthA01 3o8mA02 1ezwA00 3o2uA01 1gxlA01 3f2iF00 4wuyA01 2viuA02 3luyA01 3c8eB01 2j8zA01 2lh0A00 3mgdB00 4e9xA02 1ithA00 2p58C00 2je8A01 2qe9B01 3wnzA02 4egeA01 3hwrA01 1faqA00 4bj6B01 2v57A00 5ahnA00 4l4uA01 5dmyB03 2ob0C01 1nm3A02 2qdlA01 1ijyA00 2pgdA03 4hsqA01 4qhfA00 2l1tA00 2e0zA01 2lrmA00 2bt9C01 2fr5A00 1qf9A00 2cg7A01 1azsB00 5kvyA01 4hv0C00 4cvkA01 4ncdA02 4gczB02 4knkA00 3v7eA00 5v4dB00 3c5eA02 2yyzA03 3eauA00 1n0uA03 2m01A00 4k3zA00 1eijA00 2hdiA02 4f8xA00 1xfjA00 3eh1A02 5f2kB01 3g3zA03 3ezqA00 2zhnA00 2r6fA04 2wnpF02 4netB00 2rm8A00 5wjpA02 1sauA01 4x3lA01 3tgnA03 4f7kA03 1wdkB03 3n93B04 3rk1B02 3p8cD02 3ugoA00 3dp7A03 4mrtC00 2lvaA02 4dxkA02 2htdB00 1p1mA01 2evvB00 3n40P01 4py9A01 2an1D01 2x98A02 2fckA00 5hm6A00 2bykD00 3d36B01 4cu5A00 5buwA00 2xb3A00 2f62A00 1q25A03 1v7rA00 4bvxA01 1jocA01 3c1aA01 5csrC00 4rd4A02 1m0wA02 4lnsA00 2vvwA00 4yfkA03 1o13A00 5ko9A00 2ar5A00 3cz8A01 1a7jA00 4u3yA01 3d2fA02 4gbjC02 1h8eH00 3as5A01 5gylA01 3op7A01 2hntC00 3g9qA02 3dxlA01 2i5iA00 2d5bA02 4gb7A00 1lo7A00 4kdwA00 4irzA01 2wy3B00 4evxA00 1ygtA01 3egqA00 5an3D00 1yy3A02 1g41A01 1h34A00 3l7tA01 2fwgA00 2ccqA00 2hkvA01 2yx1A03 1q0qA03 2f6mC00 4u32X00 1u5tA01 4efvA00 3h90A01 4lniJ01 1mqsA04 3ww3A00 2fz4A01 2hqlA01 2yqzA01 1wiwA02 2d8dB00 2h98A02 4pp0B01 2mbgA02 2d3dA00 1p99A01 3ctlA00 1g3qA00 4h7yA00 4g0mA00 4ombA02 3djmD00 3cfuA00 3q1xA02 3b64A00 1josA00 4wi1B02 3g0mA00 5cmlA00 2zyoA01 5t3eB02 2dm3A00 2gmqA00 2rgnB02 3twlA01 2ob1A00 3brsA01 3hx3A01 2e2oA02 2k6pA00 2cb1A01 4wz3B02 4gvoA01 3qvmB00 3k1lA02 2l5qA01 2x8kA02 3kp1A01 1x4uA01 2rfqA02 4aaaA02 3lr5A00 4x57D00 3g2sB00 3jqoA01 3u2aA00 5wbyC01 4l5tB01 3lszA01 3h8zA02 4rg6A02 1qwrB01 4fxgB01 2dziA00 1iarB01 4e1oA03 4k3bA04 2l0yA00 4madA02 2r55A00 4dveC00 5ivyA00 4yl8A02 2ckxA00 4evyA00 3dytA01 3lmbA01 2l2qA00 2vfrA05 2x1lC02 3v5uA02 2if7D01 2aamA00 2l9jA00 4clqA02 2zhjA03 4xwwB01 3gfaA00 4fgwA01 3txnA00 1zkiA00 5ep9C00 2vxpA00 1srqD01 4p98A02 1iamA01 4o5vA03 2hoxA03 3igmB00 4y6wA00 2lt3A01 4x1bA03 2yicD03 2aujD03 6ao7A00 3nk7B01 2x8kA03 1zu0A02 4rljA00 2gsqA01 5f29B00 2d40B00 1nvpD02 4nzdB01 3igrA00 3qorD00 1xhcA03 1m7bA00 2b0cA01 3v2uA01 2rdkA00 3ihuA02 2mqcA00 4qkdA00 4f5lA01 1wvvB02 3axjB02 3ju8A02 1hnjA01 4ezcB00 3zs6A03 4uzgA01 3eudA00 1ecsA00 4apvA00 5y32B03 4oujA01 3sw0X01 3qijB03 3qsgA02 4ry1A02 1oisA01 2mc5A00 1pc3A02 4y2mA00 3lftA01 2dclA00 3h7jA02 2mj0A00 1u6pA00 2x4kA00 5k8cA02 3hdjA01 4gm6A00 2c81A02 3rt2A00 3rqtA02 4b7hA02 2pulB01 4eacC01 2hwyA00 5osiK00 2oztA01 4le6D00 3rpdA00 1g8pA01 3qk8B01 2cw8A02 3bs4A00 1ixkA01 4r8xC00 3bn7A00 4alzA03 1ufyA00 1o7dE00 3frhA02 4un2B00 3c4zA03 3dmyA01 1edgA00 3so6A00 4nrjA01 2yvrA00 5oaqA00 4ca1A01 1vpuA00 4jcwA01 2hkxB00 4mtuA00 2lm0A01 2jhnA02 2qsaA00 4kdrA00 1xdwA01 3d01E00 3f59D00 3kaeA00 3o8eB01 3qq5A01 3eurA00 3jc6301 3do6A01 2a26B01 1fsuA02 3zsuA00 3eeqB03 3tbgB00 4wk0A00 1vmhA00 5uh0A01 2oqrA02 1plsA00 3cnhB02 1fzdA01 3k9dA01 3kw0A00 3ij6A00 1sg4A01 2arkA00 4r4xA03 4oycB00 2wltA02 1yphC00 4mj2A01 2imrA02 3weoA02 3g98A00 2ii8D00 1u02A01 4v1gA00 4gyiA03 4dd5A02 3w77A00 1wyuB01 4deqA02 3hqxA00 1xocA02 3ry4A02 4a57A02 4edpA02 3on5B02 3nreA00 1b67A00 3jr1A02 3kw2B02 1z21A00 3ujcA00 3rmqA01 4g92C00 1jeyB01 2l6oA01 3gf5A01 3jxgA00 1s5dA00 4uuwA01 1n7dA02 1zy8K00 3zdqA01 2fx5A00 4dwrC00 5ajiB01 3oeeP02 5yayA00 5cecB00 2h5cA01 1jhnA01 4ae8D00 4ltyA02 1vq8A01 3hj3D02 4h9nA00 1n62C01 4aa9A02 4qmdA00 5tcmA00 3gnaA00 4bxsA02 3g7rA00 2yd9A03 3u50C02 4r1sB00 5m49A02 5hjsA00 4pzaB00 1z2iA03 2g82A01 4ax2A01 1l9lA00 1eq2A01 4k9zA00 4j7rB01 4zkaA01 5udhA02 4z8aA00 5le5J00 4w98A00 3ga3A00 1k1fD00 1ve2B02 2w2kA01 2kknA00 2z2mD01 4dvzA02 4yzzA02 3d03A02 4jnuA00 4j1oA02 3mwbB03 3h6pC00 1wywB00 1hssA00 2bf6A02 3raoB00 1x1qB02 1t6nA00 3swoB01 3fceA02 4fo5A00 3ayhB01 4ccdA03 3beeA00 3hdeC00 4bqqB02 3ocuA00 1v25A02 2p0sB01 1q8cA00 2o7gB00 5cqgA04 2nyiA01 2p84A01 5l6gA02 2hdoA02 1xw3A01 4hy3D01 4wepA01 1toaA01 5kb6A01 4iv6B01 3kz3A00 4p1eA00 4tquM01 7odcA01 1tpmA00 1vloA04 3lqmA02 5jh8A02 4f7uP00 1xdpA02 4wxtA00 5d95B01 4rg1A02 4lsdF00 1rf8B01 4ogqD01 1rp5A01 3go2A01 2xigA02 5l10A00 5ibkB00 1svmA01 2fnoA01 1eljA02 2g37A01 1vhxB00 3getA02 3d2lC01 3gt0A01 1pavA00 3c3wA01 4hh3C01 4wp9A00 3gfuA01 2x2uA02 2d9rA00 4pawB00 2fh5B00 2fgyA01 3h6pA00 3qhaB02 4ycbA00 3bbzA00 4eryA00 5ts9B00 3qwuA01 1xkpC00 2vbkA00 2h6fA00 4hujA00 2a6aA02 1i6aA02 2pqvB00 4q9bA00 2ww8A02 2joxA00 1p9oA00 2j42A03 1qynD00 5kvpA00 1ooeA00 2lr4A00 2y2mA02 4kamC02 1wwjA00 1tlyA00 3lmoA00 3dmnA00 4ixoA01 2j58A02 1x74A02 5vf5A02 3m4aA02 4mqdA00 3a6mB01 2yzyA00 3bcvA00 1sy6A01 1nogA00 2o20B01 5iaiA02 3ghgB02 2a19C01 1svjA00 3m9zA00 3pu5A02 3typB00 1v8hA00 4i4tF01 2n2qA00 1ursB01 2pgfA00 2bbsB00 2cfmA02 1lvbA01 2p11A01 3tqeA01 2ymsB00 4kv7A01 1vavA00 2axcA02 3kzqA00 2pk3A02 2qs7A00 1evlA01 1h29D03 3pcvA00 1ldjA05 2kktA00 3hjhA03 4wvmB04 5uctB00 1sddA01 2y28B00 3um7A03 4kl0A00 4inwA00 4p02B01 5grqA00 2nqwA00 4iheA00 3f52A00 3ju1B00 1zjjA02 1j8kA00 3v97B04 3ii6X03 1i3cA00 3ft7B00 3mc6A01 2y9uA00 2cg5B00 4q9wA00 4gi2B01 4lrvC00 2pziB02 4dw8A02 1l1lA03 1tdqB00 3qyeA03 5y4zA02 4r84A02 4w82A01 4i9qA05 3eh1A04 4x28C01 1qqgA01 1h3fA02 4ys4A02 1u6lA01 3qooA00 2yvaA00 3n9gH02 3fw9A01 2vokA00 3exmA01 3bdiA00 4xdxA00 5gv0A00 2gviA01 3ooxA00 2w5aA01 5grmA02 3h6jA02 6az1S00 3louA02 2cdpA00 4jp2A00 1vkpB00 3ga2A00 1xe0C00 2xmjA00 4wvrB00 2xtlA04 5eesA01 3owaA01 5kc8A01 1l2hA00 3i57A02 2iybE00 2g3vA00 1b12A02 1gudA01 2w43A01 1x47A01 3hrnA00 3kl1B00 3wg3A00 2nogA01 1knmA00 3tndB01 256bA00 2k5jA01 5l77A02 3ottB02 3bu2A02 3n5lA03 4yonA01 5bq8A00 3aagA01 5jxzA00 4z7eA02 2kvtA00 2olvB02 4ac9C04 2qdeA02 2f4pA00 3cg3A01 1j09A02 4ns0A00 3dclA01 1ufiC01 2mj6A00 1afwA01 2jfzB01 4wnfA00 3fpzA01 1kutB01 2o4cA03 3rkrA00 2wyhA05 4u68A00 3gohA02 1y1pA01 2oa2A01 4cocC00 3h6qA00 1m2tB01 4oanB00 4dmvA01 3ikwA01 4y6lA01 4ll1C02 1am7A00 2or0B01 3d2wA00 1mhwA00 2qvwA04 4pvkA03 2jhfA01 4imrB00 4bkwA02 1v1hD00 2q83B01 2ragA00 1ly2A01 5in3A02 3b34A04 3jr7A02 3anpB00 2flzB00 4qu7A00 1kdjA00 4jisA00 3hctA00 1qzrA02 1fyhB02 3s5tA01 1oaiA00 3ndaA02 4muqA02 2nyvA01 2qrjA02 1eluA01 4l74A02 1yhnB00 2cxhA01 3a3cA03 3mcaB03 3mfdA02 1qzyA01 5ag8A01 5is2A03 1hn0A03 2j9oD01 5o85D00 3id6A02 2hxvA02 4lldB00 2ocgA00 1ywkC00 4b7oA01 2z6iA00 2we8A02 2nw8B00 3hz6A02 3m7nA02 1y9kA01 4rlzA02 4h1zF01 4h2dA00 4r4xA02 4dohE02 1lu9A01 3au4A01 3colB00 1xr0B01 1mk0A00 1w2wB00 5mj6A03 1bgcA00 4nzuL02 4hcwA02 2x0qA01 3wfwA00 4fkzA01 4dkwA00 1p3qQ00 2m9nA00 1tbaA00 3zbqA00 4oebA00 3fe3A03 1hxhA00 4eycB00 4x5wB02 2anuA00 1pjqA01 2o7aA00 3iwgA02 5idvA01 2gqqA02 4dnjA00 3nnrA00 2nxcA03 4fa8A01 3bpkA01 2xn6A01 1tp6A00 5dkaA00 2eu9A02 1zw8A01 2e7vA01 3ijmA00 4lb8A02 3sbtB01 5n40A01 4fr9A00 4wsfA00 2x44D01 1wibA00 5ue1A00 3bkhA02 2c0gA01 1tu5B02 3cb7A00 3lp8A04 4wp2F00 2joqA01 2k1gA00 1gxeA00 4kpoB00 3a9sA01 1keaA01 3gm8A05 2xdjB00 4zm4D01 3lftB02 3fokA00 3iprA00 5twtA02 1vsrA00 3fd9A01 4gioA00 1ceoA00 1wuuB01 3fx3B01 3omtA00 1oxxK03 4pl9A00 2k37A00 3pbkA02 1t07A00 1h3fA03 3thxB04 2opcA00 3zleA03 4n0pA00 3hxlA03 3hkoA01 4r1vA01 1z6tA02 3zm6A01 2p19A01 3ld2B00 3uenA02 2e1vA02 1x4zA01 3vueA02 4a56A00 1qu6A02 2j5yA00 3p86A02 5m5zA02 1ui6A00 2dmwA01 3thdA01 1yu0A01 1amuA04 2llwA00 2pf5D00 5vzaA03 2m0oA00 1jnyA01 2w7zA00 4f4oC02 1pf5A00 3ju3A00 4cayA00 2yzvA00 2o30A00 5jouA02 3fpfA00 5jeaE00 2a8xA03 2uzyB03 1wgfA01 4mccA02 3gcmA02 3tc8A00 2lc3A00 1ewrB02 4bn4A01 3crvA02 4xvhA02 3egvA02 1mdbA03 4igkA01 4p02B03 5loqA02 2dt6A01 2qaiA00 4yrdA02 4j0eA01 5ihbA02 3qitB00 1e7uA04 3comB01 3q34C00 4bq6F00 5m5zA01 3dktA01 4le3C00 2vj4A02 2qguA01 5dmyA02 3g5cA01 1nrwA02 3wsfB01 2nxoA02 2hp0A02 3l7vA00 1nnhA00 3bjdA01 1ucsA00 2xv9A00 1mkfA02 2i6dA01 2xbkA00 2y2mA03 4hscX04 3ar4A03 3a9iA01 4qpkA01 3vfiA00 4k15B00 3w0tA00 3ea0A00 3ma2C00 2mdrA00 2wujA00 1mj5A00 2ljyA00 1chmA02 1ybyA02 5ktnA02 2fyfA02 4iloA00 3fn5B00 2owpA00 4incB00 2g7lA00 2a7kE02 5t9gB03 3hr0A02 2pr1A00 2kanA01 2piaA01 3grzA01 4errB00 1h2vZ00 3nymA00 4uhcA00 2reoA01 3bb5A00 2g5rA00 3zgjA02 3ghfA00 2arpF02 3ssuA00 1vplA00 3eb2A00 2a4aA00 3dluA00 2kjyA00 2gjvA00 2janA03 1f0lB02 1i7wB00 1or7B01 5tvoB00 5kvbA01 1b37A02 4ijrA00 4p56A00 1q67A01 3lzdA03 2al6B01 4xgwB00 2e71A00 2wqfA00 3ka7A02 1y2mA03 3k50A03 4qqhA00 3fymA00 3mvgA01 2ppqA02 4ri1C00 4iauA02 3p2hA00 2hj1A00 2erfA00 2vlaA01 1um8A01 4rlqA03 1jdpA01 5ti1A01 3f6gA01 3ccyA02 3r5tA01 2bnxA02 4ymhD00 3hzrA02 3ci9A00 2bezC00 1ibvB00 3dp7A02 4f0jA00 5c17A00 5c5zA00 3pvlA02 1xkgA00 3qsgA01 3hy5A01 2yvwA02 3kasA03 3oa6A01 5dwzF02 2b67A00 4gicA02 3afhA02 4bk7A00 3dfzB01 3g43E00 4r78A01 5cm2Z00 2odpA02 3m0fA01 2jmkA00 2atzA00 5m5eB01 2fcoA00 3bt7A01 3afgA03 2aalA00 2hc5A01 2rsdA00 2dbjA01 2ql3A02 2j43A02 4itqA00 1mgtA01 1bvyF00 4k81A01 2vlaA02 1rl1A00 4mp8A02 3giaA00 1yhpA01 4mk6A00 3loiA01 2yhgA01 3ux3A01 4ohnA02 2xmzA00 3giwA00 1p22A01 4ovdA03 2dsjA03 1zpwX00 3cw2C02 4euuA02 3immA00 3mtwA01 1sxrA00 4qgrA02 1gqiA03 1cjwA00 5njiA00 1wz2A04 4b3hA03 4uuwB02 1wvtA00 2l42A00 2v9xJ01 1zodA01 2cr4A01 1f2lA00 2vunA01 4g1iA02 6az1Y00 2egvA02 3c9hA02 3emiA00 3mqdA02 4q82A00 3s44A01 3ispB02 5i4cA00 3l81A02 3u83A03 3kbtA00 1gjjA00 1tocR01 1gxlA02 3of7A00 3eleA02 2dkuA01 3h1qA02 2q2eB05 1z9fA00 2i51B00 5aovA02 3ulhA00 3vw4A02 1uhzA00 4ac1X01 5oswA02 2go8A01 3eu9C00 3cwvA02 1wvkA00 2kieA00 3rsnA00 3u50C01 2xc1A01 2xjyA02 1gz0B02 3gv3A00 3csxA00 2rg4A01 3dsqA01 1zuwB01 3b8xA01 2dtjA02 5um2A02 3alfA02 1z0kB00 3tvyA02 3r5zA00 1maiA00 4g6iC02 4xxhA02 4umoA00 2ggoA01 3go2A02 4exjB01 3gycA00 1iarB02 2gbbA00 1di6A00 2qm0B01 4a11B00 5ko4A00 4j29A00 1uwkA02 1j3wC00 4fo0A03 3lb5B00 5dqpB00 3me8B00 5cclA05 4crhA00 3i07B01 2rsqA00 4uzzB00 3w9kA00 3ziuB01 3ip3A01 2qsvA01 1n00A04 5ah2B03 3vc5A01 4mveA00 2xheA04 4rv5A01 4mdvB03 2gpjA01 3pbkB01 3f4sA01 3zzhC00 3qcpA01 3lfhA00 3sgwA00 3me5A03 3fs8A01 4wutA02 1oqvA00 4lqzA00 3wxmB02 2qbuA01 2i50A00 2wcyA01 2rsmA00 1pb7A01 1su3A02 4hylB00 2nncA00 5v0zA00 3bypA00 2qytA01 5gpiB02 3hnyM00 1gkpB01 3zscA00 2zx2A02 2g7oA00 4devD01 1zkrB00 4pwwA00 3hunA01 5do6A00 1xtmA00 1xkyA00 2z0mA01 4upaA02 1n5uA01 3qv0A00 2cxiA03 2db7A01 3jumA01 3sdeA01 3dxpA02 2aa4A02 2a90A02 2mcmA00 3prbA02 1pwtA00 2wtbA03 4jzaA02 1eysH01 1ei5A02 4ac9C03 1yx0A00 1yt5A01 4heoA00 3ptaA05 4emoC00 4ub9A01 1w8oA02 4owfA00 1mf7A00 2i74A00 3kloD00 3h1qB01 4ub9A02 3zx1A03 3wy1A01 3zzpA00 3ef8A00 5d84A02 1r26A00 3thxA02 2rhqB01 3warA01 1cxyA00 2icsA02 5lc9A00 2bnmA01 5lvoA02 3mr7A00 2hujA00 3t4nC01 2fnuB02 2yo0A01 1odfA00 5uuiA00 2driA01 2bk8A00 3da5A00 5urpA00 5e4bA00 2feaA01 4kqiA02 2dtjB01 2k6aA00 2zovA00 2yu4A00 2y27B01 3pwxA01 4inoA02 4ds7E00 3zrtD01 1foeA01 5lw3A00 4lanB00 1ur1A00 4hsaF02 5jo9A00 3vliA01 1g2bA00 4makB00 2ca5A00 1gnlA02 3rkoG00 4ba9A00 2rpbA00 2qm1B01 4icwA00 3ipjA01 4q6jB00 2m85A00 3t9kA02 5dclA00 2ctrA00 2mzjA00 3b5nA00 1p9cA01 3onrJ00 1na0A00 4jndA01 1xkrA00 2jiwA03 4zu4C00 3huuC02 2kngA01 2v5oA05 4gdxB00 2vqeR00 1h98A00 1gqgC02 2y7eB00 1z57A01 1jcuA00 1mixA02 2iayA00 2hjeA01 1kblA03 4d8bA00 5tl8A00 3sqiA01 3d19B00 2d7vB00 2pblA01 4ouhC00 4qflA01 3mpzA00 2r0lA02 1re3B01 3pfyA02 4a6rA01 2fiqB01 3ff1B02 5in3A01 2pocB01 1wkcA00 4atyA00 1d4tA00 4p4mA02 5b1rA00 1yz7A02 4at7B01 4upiA01 3nbcA00 2x9zA02 2kyrA00 3ub1A01 2pd1A01 2iazA00 4xi0A00 1q0rA00 2kwaA00 3dmgA02 3whrA02 4devA02 1wfkA01 4gipD03 2yt4A03 4lqxA00 4irnA01 3lb6D02 5aunA01 3i10A00 4o92A01 1ox3A00 5j80A00 3n9yC00 16pkA01 1potA02 3gdhA00 4bwnA00 2xrbA01 2w9hA00 4p4mA03 1b07A00 3mzkB03 1udkA00 1jqgA01 3on2A00 3khnB00 4lk4A03 1o12A01 2ep8A01 4xjwA03 3e2dA04 3fgyA00 5hiaA00 4h22A00 3ecfA00 4x5wB01 1puoB00 2b4jC00 1ug6A00 2qntA01 2ia1A01 4jr7A02 1o8rA00 1my5A00 1fzcB01 1ej5A00 2ii0A01 3v9rA00 2gwmA00 4r75A02 3gw7A00 2k6xA00 3nyqA01 3twoA02 2jgpA01 3e0gA04 2krhA00 2p1aB01 2fiwA00 4gb5A00 3lo8A01 2mutA00 1nsxA00 1h6wA02 3oosA01 1p7hL02 4fxkC02 3e4oA01 2yyoA00 4g29A00 1lqsL01 3clqA02 4r9fA01 1lwuC03 4yycA00 1jmoA01 1e2tA01 2vqeE01 3mnfA00 3phxB00 3h7fA01 2hrzA02 4jj0B00 2pn2A00 2np9B02 6eimB01 1dkxA02 2ym9D00 4zoyA00 4mr0B00 4l6wA01 2n3lA00 1ok3A02 3teuA00 3irbA01 3hphD01 2mhgA00 4wywA03 2hboA01 1xaoA02 1b8wA00 3ghyA02 3q63F00 1of5B00 3rq4A01 1q5dA00 5flmI02 2re3A02 4ac9C01 2qi9A00 1zjkA01 4fr4A02 3hsaD00 2l17A00 2vo1B00 2wcjA00 2q01A02 2z3tA00 3md9A01 2jxbA00 3mw9A03 3pmoA03 4ed9A02 2zaiA02 2dj0A01 2ec4A00 2ke3A01 4kzpB00 3dfeA00 3pr9A00 1v0dA01 2vxbA02 3ovpB00 3rrsA02 1xu9C00 5buqA02 4ehiB02 4ebjA01 5v3nA00 3r9tC02 1v61A00 5h3gA00 5b1nA00 2x4dA01 3mz1B01 2m2bA00 2cuhA01 4x28A02 2bjiB02 3h20A04 3bbdA00 4wz0A00 2okcA02 3k1zA01 3k59A07 5ekcF01 1edzA01 4kn8A02 5lp0A00 1vk3A04 3igsB00 4kwaB00 1h4gB00 1a6bB00 4lflA00 2pptA01 1ub4C00 3x2mA00 3qa8A01 4bgcA00 4c1uA02 1wdeA02 3hk4A00 4epsA01 1k0rA01 4aruA01 3vxbA01 3i2kA01 2i5hA01 1g8lA03 2jv7A00 3zriA01 2mysA03 2kvzA00 4eukA00 2ztbA01 1yqsA00 3n1eA02 1wqaA02 3sqsA01 2dvzA02 4p13A01 5kxhA01 1twfC02 3fmbA01 3a6rA00 3fanA01 2yxmA00 4d6vA01 1cyoA00 2yt6A01 1f32A02 2omlA02 4wz9A04 4tq1A02 3p0bA01 4lr3A01 4i1sB00 1jb0C00 1ppjD01 2rc5B01 2q2eB01 4n65B00 2mdtA00 1twfL00 3vejB00 4y1sA00 2asbA01 5ktbA01 3hj6A03 3rioA01 2iv2X04 4hspA00 1jdwA00 3oeiE02 3tbkA03 1qhhD01 3cxjA00 4x7rA01 4g5eA02 1f9zA00 3rufA02 5f47B00 4r9iA01 3cghA00 4gs3A00 2qv5A01 2i7hA00 1dgnA00 5w2cA01 3viqA00 4uz0A00 1u96A01 2mkcA00 3jtxB02 4m7xA01 4b56B02 2k0mA00 4b6dB00 6b46I00 2rffA00 1x7oA02 1wq6A00 3nvxB00 2mhdA00 4im0A02 1mw5A01 3eleC01 3r4dA02 2v9kA03 2uuvB01 2gf4A00 1r0vA03 4tq1A03 3mwyW03 1avoA00 5jhxA02 1r62A00 2vqaC01 2ekfA01 3q2wA05 3umcA01 5e9nA01 1qnaA02 1ngmJ00 2qfeA00 1vr9A02 2kd3A00 3ic4A00 3fi9A01 4eqsA03 3l39A01 2zb4A01 1xrbA02 2eihA01 1n45A00 3dm5B03 1twyD02 2x9qB00 3dohA01 2vi7C00 4jocA00 3r6oA01 2efjA01 5v89A02 1y56A04 2v0xA01 4fvcE00 3sy6B01 1cr5B02 3s57A00 3h5qA03 1reqB01 2gagB02 5iw9B00 6bo0A00 2a19A02 2pgwA02 2m5jA00 1y81A00 2vseA02 1wevA01 1zc3B00 4mo7A02 4whsA00 3omyA00 4rk6B02 3p7iA03 1knvB00 1wj3A01 3fhkA02 1wyuB02 3pmeA01 2z4dA00 2oarE02 2kzrA00 2zwaA01 2wnsA00 3uafA00 4dnnB00 3ic7A02 4msxA01 2w0tA00 4uopA01 2e87A02 1yuaA01 5xw3A01 4fqeA00 4hatA00 2v5yA05 3lxqA02 3c8fA00 2py6A03 3s9zA02 4jd2B01 1udlA00 2yykA02 1vr7A00 5f0jB02 3wfjH01 2ihyA00 2kgjA00 2gw5A02 2z3gB00 2q1sA01 4dx9q00 2p1mA00 2gm5D00 3f13B00 1qpoA01 2uzxB02 1ii5A02 4fflA01 3zgzA04 4behB01 1w59A01 3weeB02 4mxwR02 1t77A02 2w3sA03 3phsA02 5kloA02 3k53A02 1lfkA00 4zr8B00 3m8nD01 2pgcC01 1nzaA00 4g75A01 3ohuC01 3q69A00 3tzlA02 2j73A00 3e35A02 1s70B01 1wh6A01 2rvfA00 3zwcA01 3pfgA01 1uekA02 3k85A00 2cpgB00 3d9jB00 4gwmA02 3n08B00 3uguA01 2ppqA01 1gk8I00 3hluA00 2hoxA02 2b7eA00 2nxwA01 1klxA00 2cfoA02 4ousA00 3e0gA02 5ixgB00 3pi7A02 5tabA00 4i1lA00 3qbmB00 3l0xB01 2jbrA01 2xdqB03 3lqcA00 2blfA01 2ewcB00 1i7wD00 1jhgA00 3tx8A01 2fd6U01 3hlkB02 2qywA00 2hbwA01 4l2iA02 3p06A00 5jajA01 2c3nA01 3l4bC01 3bzcA05 2v3aA03 1tvxA00 5kj4C02 3akoA00 1eokA00 1m3sB00 1ye9A03 2e2oA01 2p7oA00 4l8pA00 4nb5B02 4tkpB00 4rxtA02 2hsiB02 2j48A00 4pg7A03 2h7zA00 4oq1A03 2zj8A02 3vmvA00 1g6hA00 2pujA00 1b22A00 2glfA01 2vf8B05 4clqA01 2ynmD04 2x4jA01 3mcxA02 3rw6B01 2yo2A02 1jy2S00 5ul6A00 4jmuA00 1ckmA01 3wi7A00 2yjlA00 1b4fG00 2vszA01 4udtB01 2p9bA04 1vlaA01 1lurA00 5avdA01 1nnfA02 3oz6A01 6b0gE00 2aq6A00 2bkaA00 1yn3A00 4e3yA00 3fcyA00 2qpqA02 3grdA00 6az1g01 1rypI00 1goiA01 4j9tA00 4i6mA01 5le5H00 4dnhA01 1z6tA05 4pfyA02 6eqnB02 1h97A00 1cfrA00 3pt1A02 3lqwA00 3rrrG01 1yw5A01 4x9kA00 3hduA00 2cs0A01 4czxA00 2m9vA00 3hpaA02 4msxA02 3r3sA00 3w7tA02 1y5iC01 3q8gA02 3eqzB00 1qcxA00 4b8vA01 3av0A01 1pkyC03 1b5fB00 2gb3A01 3d2lA02 3ggmA00 3wnvA01 1rkxB02 3n6rA04 3u64A00 4q5eC00 4j25F00 3ocrB00 4mtdA02 2xkiA00 1efdN01 1sr2A00 3rcmA00 3i5xA01 3ci0I00 2ck3D01 4kqcA01 1vk1A01 3me0B00 1seiA01 4dg8A01 1z6mA01 3ayjA02 1w99A02 2b0jA01 4fo0A01 2joiA00 4l63A00 2kkhA01 2no2A00 4z0gA00 1ksiA01 2v0cA03 3b0gA01 5mb2B01 3fkqA02 4wj3C01 3h3aA03 1br2A04 4zosB00 5tzmA00 1x3zA04 2wb0X01 4rh8C00 1qsaA01 1j5yA02 3sokB00 5jy1A00 5ksdA01 1ow1A00 4w6zA02 4ad9A01 1md8A03 3pidA01 5jx5A00 4qt4A00 1unqA00 4nocD00 3u28C00 1jiwI00 2nr7A00 2wmmA02 5tpkA02 2w45A01 2dmbA00 2znhB01 4rriA01 2vuvA00 4oaqA01 3cnyA00 3w6bB00 3i3wA01 1odzA00 2ja4A00 2kbnA00 4ccjA02 1wmiA00 1iyuA00 3dh0B00 2mz0A00 4wepA02 3aonB00 1p49A03 4fvdA02 3iqlA00 3rd7A00 3mkhA01 3ultA00 1x4rA01 1kj6A00 4dndA00 3k6jA02 3nwzC00 5a2qw00 3e49A00 4jp0A01 1wvfA02 1qubA01 1mg1A03 2e50P01 2hv2A03 2q83A02 3bwnD01 1pu6A01 2ux0A00 1fn9A01 2hi4A00 4dxbA03 2if2A00 5cayG01 1oizB01 1y93A00 3al9A01 2ervA00 2km6A00 2l9nA01 4lgdB02 1p22A02 3udfA03 2k8sA00 3ckyA02 2fb9A02 2p9rA00 1hyoA02 3gqhA01 2halA02 4kemA02 2la7A01 2f37A00 2c9wA01 2rdeB01 4nxiA00 1pjaA00 3ervA00 2kpyA01 1vybA00 4pcaB00 4yleA01 5fgoD00 3dr4A02 1pujA02 2axwA01 4zglD00 1wh0A01 3hm6X01 3uguA02 3louB01 2v5fA00 2z3qD01 3v4gA02 4ga6A03 4g2nA01 3cpxB01 2oh1C00 3mwbA02 4rhwE00 3a1cB01 3majA01 3kewB02 3suuA01 1qnaA01 5j1nA02 2vsdA00 3hrxA02 1x0tA02 2l6eA00 4k05A01 3fz2E00 5t57A01 1qg3A02 3k0yA02 1wjtA00 3sf4D00 4e4uA01 3agdA01 3uesA02 1rm6A03 5lewA01 1gtmA02 2e6iA00 4lswA01 3n0uA02 1q7eA01 2h88A04 3qkbA00 3nekB01 1x9pA01 3cbwA00 3gaxA00 4evqA02 4kddA02 1i07A00 1vcvA00 5c98A01 2co8A00 5dawA00 5le5Q00 2e26A01 1tk5A04 4ehuA02 5ifpA03 1rhxA00 3f6tA03 1zpsA01 4bf2A02 4oc9A01 2v6eA02 3vk8A01 1tu5A01 1w6kA01 3ddeB00 5pg1A00 3pnxB00 5c67E00 2arrA01 3h4cA02 3venA02 1l2lA01 2gfiA02 2yt0A01 1cqzA01 3vbcA00 4gysA02 2r25B00 3d4eA02 3fdhA01 3mmyB00 2dflA01 1b9xC02 1fw8A01 1kn6A00 2wf7A02 2ph0B00 4hzdB01 3g0tA03 4m20A00 4exrA02 4it4A02 3eujB00 1m8nB00 1a91A00 1aapA00 3u5wA00 2dlxA01 3bf5A02 4tkrA00 3kd3A02 2v4hB00 2wzpP04 4yfeA02 3e13X02 4xrtA01 3s81D01 4ay0A01 2yh5A00 3lo3A00 2otdA01 2kooA00 4bluB00 1keaA02 4ki3I00 4e61B00 3sebA01 2nutA03 2nswA00 3qxzA02 4rzyA01 2wpvE00 1wwzA00 3kd4A03 1gz2A00 4n03A01 4pbxA06 3sk7A00 3g15B01 1x19A02 4ovnF02 2l0dA00 3ndcA02 4jdoA01 1h2bA02 3c0wA01 4djaA03 3rgcB01 4n72B00 1z7kB00 2j9lF01 5kvsB01 3okyB01 3l0iA02 3t64A01 2bh9A01 1tulA00 3vv1A00 3gpgA00 3h3eA00 4exnB00 3cngC02 4r9xA00 4h89A00 1foeC02 3nkqA01 5jowA02 5eeqA00 1cfzA00 4mzyA02 4xcfH01 5a95A00 4am6A02 3uykA01 4zo4A00 3jzlA02 4dimA03 3hdgA00 2eo2A00 3tqtA03 1n2mC00 1u5dA00 4umgA00 1lmlA01 1lkoA02 2cjtC00 4lmyA02 4m8mA02 2qjpB02 4y85A02 4fdyA01 1z2uA00 2h3qA01 3tl4X02 4ragA02 2lmlA00 1l7bA00 3rf3A02 2uy6C01 1k8kC00 5hmaA01 4l8kA01 4ay0B02 3ptaA04 3a6sA00 4b2rA01 2a0uB01 1l6pA00 4l1fA01 3cjhI00 1wfoA01 3tadD01 1t82B00 6bcbA00 2djaA00 4r1vA02 1pieA02 2dltA00 5hweA02 3cmgA02 1b7yB05 2plcA00 3q6sA00 1werA01 5fl3A01 2vriA00 3pmcA00 4h2wC00 4a7wA00 5ekdA02 4kopD00 2pn1A03 3lw9A00 2h8nA00 4zk1C00 3zx7A01 4hh4C01 2nx9A01 3dzzA01 5g0aA02 2pjuC01 3td9A02 3dteA02 5aysC00 4bhqA00 4lleA00 5je8B02 2vdwB02 4bjaA00 4fmkA02 4zpxA01 2xeuA00 4l11A02 1pjqA03 2yj6B01 1fxkC00 3emrA00 1q2hA00 4dywA00 4x36A02 4me9B00 2ccyA00 1eqnC03 4bbyB04 2wzvA01 2z0qA01 3oh3A02 2cs8A01 1fftC00 3fvvA02 2gcuA01 4g2aA01 2j3xA02 5xc5A00 4y7uA00 1yukA02 2qmaA03 3fjoA01 2va8A03 3hl8A04 3cf6E04 1elvA01 4ounA00 3qx3A04 1wa9B03 3pm9A02 4onrA00 2lioA00 3fh1A00 3q0bX00 3vo3A02 2o3bB00 1x9bA00 3okpA02 5ot0A01 1v5sA00 4avaA01 3vywA01 4oevA01 2o2xA01 1jyaB00 3cmgA03 2di3B02 2zfyA01 1o75A01 1bquA01 3c5cB00 1yq2A02 3c48A01 4bpyA00 3u7uA04 5u9nB00 2vunA02 3upuA02 2lgqA00 2jgsB00 4huqS00 4wfqA00 4umvA02 5hk7B00 4g2kC00 1i2uA00 2z0rC00 3etnB00 1ep3B01 3uuwA01 3h5tA02 2i2xB01 5jrjA01 1hh2P02 3lm2A02 3u02A02 3m33A00 4maqB00 5uofA02 3gykB00 4hpmD00 2hf1A01 1vj0B01 2h7oA02 4durB01 4hy1A02 4z2oA00 1ciyA01 4kigA02 2v17L01 1hfeL01 1bcpD00 3r8qA03 5i7iA00 4p6bB00 4bx9C00 2h2tB01 3pucA00 1rliD00 4xjwA02 3ujhB01 4w7wA00 3fgqA01 1m32A01 1s5jA03 3gnnA01 5dxfA02 1h4uA00 4bjjB00 2c3gA00 2ek1A00 1kjqB03 2yhxA02 3rnsA01 4i84A00 3crkD00 3vx8A02 2f5xA02 3w0kA00 1fiwA02 1n6zA00 1uddA00 3a21A03 1wu2A01 1ug1A00 1td6A01 5jscA01 3c8dA01 2jn9A01 1rssA00 1b8xA03 3s6jE02 2fulB00 1imlA00 5f5nA00 2o3jA03 3i96A00 4m9pA01 1pjzA00 2d3o100 1fsgA00 3ic5A00 3bm7A00 1vkwA01 3iiiA03 5hk3B00 5faaA00 2hjsA01 2c0cA01 3cslA01 2de3A01 5cvdB00 5fkbA02 3imiC00 3hphH00 1o9aA01 3ksrA02 1mpgA02 5my5A01 3pgvA02 2yi9A01 4kvgB02 2cnqA02 5nulA00 3wxyA02 2w25A02 5cgmB01 4pkwA02 4kt7A00 4dgjA01 4jkzA00 2hfkA00 2o5hA00 1c3gA02 2p10B02 2kdtA00 4jdfA02 5e8sA02 3tvjA01 3c9zA01 1rynA00 2v03A02 4fxdA04 5ahkA03 2a2kA00 3go6A00 2kcpA01 1q7lB01 2k88A00 3ju4A03 1ly1A00 2oxlA00 1zswA02 4exkA01 1z0pA00 3u61A02 3towA00 4dteA02 4zxbE06 4ccdA01 4b0zA00 1tkvA00 2d9wA01 6az1U00 2f9wA02 5esrA00 2p0nA00 3sfvB02 2keoA00 2j5aA00 3b0zA00 3dgbA01 3uf7A00 5ktbB01 2nyiA02 4l9mA04 4kq9A02 2q7bA00 5dcyB00 1l3wA04 6em3O02 3hi0A02 2p08B00 3hx8A00 1jjoA00 4dkkA02 2wp7A00 3lofD00 5tdeA03 1rg8A00 1a6sA00 4at7A01 2zi0A00 2ysmA00 3ucjA00 5f1sA02 3hg7A02 3cueC00 3m1mA02 5ls7B00 2gaiA03 2bjnB00 2rioA01 4j7aA00 1b79B00 1v9mA01 3bgwA01 3ol4A02 1jfuA00 4htgA01 5y4zA01 3widA02 1ygyA04 1tqyB02 4n0hA00 1gprA00 3udcA02 2l3fA00 2qlzA02 3pfqA01 3f75P00 2e5yA01 1k4tA01 1kolA02 3nrxA00 1w96C01 1ztmA03 1va0B02 2nscA01 4nx1A00 3pshA01 1npyA02 5e62A01 3oidC00 2o1sA02 3kkzB00 3wuhA02 1k0wA00 2hy5A00 1y4wA02 5mdtA00 1zunB03 3mcpA01 1df0A02 3onpA00 3lnnA01 2mhyA00 3cdjA02 2vgaA00 1fkmA02 3npiB00 1a0rP02 3kwkA00 4f4sB00 1mpxA03 5f4wA00 3fixA00 1ugiD00 2b5wA02 2zopA00 3cgxA00 4z7xB00 1wmaA00 3cjsB00 2f7lA03 3g7kA01 4ht4A00 1hyoA01 4w8iB01 3nz3A00 3ju4A01 3o0fA01 5mozA00 3g48B00 2w3sB02 5achA00 4di1A02 1y56B02 2e2dC02 4dcaA02 1xhmB00 5szcA00 3qfeB00 2a5hA01 3lbeB00 3tjmA01 3kdfB00 3wgcB02 3gywA01 2a9gA02 4rt5A00 3zcoA00 1aozA01 2d8aA02 2ql3A01 2cukA01 5ve3A02 4gx0A01 2xdqA03 5icqA01 3fo3A01 3vpzA01 2x0qA04 2gjhA00 3rloA01 2vnuD04 3gmxA00 3k4oA00 4lqkA00 4fd4A00 2ej8B00 1kz7C02 2b3hA00 1pbyB00 4l05A00 4n0tA04 4impA02 3h4qA00 1e5dA01 1pbuA00 2v0nA02 2oq1A02 3h4tA01 3u7qB02 5gpgA00 4gv2A02 1nmoA02 3sdeA02 1e59A00 1iq8A04 3hufB03 1q4tA00 3f7eA00 3p6lA00 1ejfA00 3qufA01 3mb2B00 4oopB00 4gqwA00 4qd6B00 5uejB01 1kkhA01 3doeB00 2gb4B00 1xs5A01 3ltoA02 2tpsB00 4hg5C00 4i5pA02 1bvsF03 2rh0A01 4y0fA00 2q14C01 4efaC00 4wqmA02 1ob8A00 2qhlD00 2q78F00 3pohA02 5e95B00 4aukA03 4f80A02 1urhA02 2uwnA03 4zraA00 4pl7B01 4cc0A01 3erbA03 3i6sA03 3orkA02 3clqB01 1v33A01 4qasA00 2k1aA00 4wkyA02 2p9uB01 5dwzC01 2ra4A00 2cx7A00 2jwhA00 3d48P00 1sfcH00 2pjzA00 1cd9B02 1bvp101 2e0nA01 4gi3C00 3zvrA02 3ocmB00 4r6kA01 2heyR01 1xppD00 5oomI00 2e8bA00 5hk8A00 1l5hA02 5a3fC03 1e3mA01 3d1lB01 4yl8A01 1vkhA00 3bxwA01 2bkfA01 3aluA00 2la4A00 3vtxA00 3fwcB00 4qbnA00 2ipxA01 2k7vB01 3hlxA00 2w3sB01 3iiqA01 3f9tA02 4aogA00 2yx5A00 2yinA03 5thkA00 3h6rA00 3fd5A02 2fphX02 2jn4A00 1zm8A00 3kzgA02 3iayA07 4pu7A00 1oqjA00 4yj6A00 4q0jA02 2wm5A00 3oblA00 1te7A00 1cukA01 1yn8A00 1g55A02 3ubfA03 2a33A00 4ei0A01 2v1xA02 1xm5C00 3m6mD00 2a1vA00 4epcA02 5vqfD01 2m6mA00 4wz9A03 3qzbA00 1xdiA03 3h75A01 4fwiB00 1stzA03 5b2dA00 3t7vA00 1rx0C01 1bd3A00 5vzaA04 1zyoA01 3bpsA02 1gvzA01 2vobB02 1wb9A04 3m8jA00 3kzxA02 3rfaA02 3qvqA00 3i9v102 1ayeA01 3hdtA00 1dd9A01 4bqdB00 5vnxA02 4nc6A01 4p9tA01 4tyzA00 1y3iA01 3jc6C00 2l8eA00 5epoA00 5x8fB02 1hypA00 2pttB00 3khiA01 3zdoD00 2qr4A02 4kqkB01 3vemA00 4ojmX02 3e82B01 2qmaA02 4hkhA00 2b4vA03 2f2uB01 2qdjA03 1tq5A02 1j6rA00 2hi0A02 2f01B00 3aa0B02 3e10A00 1ornA02 2ju1A00 2if6B00 2l5gB00 1uu2B01 3u0hA00 5tdrA00 4hikA00 4k5sA03 4p2iA00 4yt3A00 3w5hA01 2x5yA00 4e6xB00 3crcA01 1tedB01 2b1eA01 5m4yA00 3c26A00 3eafA02 1z3iX01 2gffA00 2bkoA02 3t7yA00 5g05P01 3zjxB01 2b4aA00 3n7sA00 2v1rA00 2vvpC00 1p91B00 4d4rB01 3chvA00 3lkdB01 2gt1A02 1ou8A00 3zmrA01 2hqvA00 4bbyA03 3awuA00 3ec3A01 4ubtD00 3uitA01 1whwA01 1o7fA01 2hy5B00 1or0B01 3ftbA02 2r44A03 1tzkC01 3bc9A01 2oodA01 2pn0A02 4y0hA01 3w7tA04 3bqwA02 2cwoA01 3fcsB06 3obyA02 3s8mA00 2ee3A00 2d0oA05 2rjzA01 2odiA02 2wm3A02 4mboA02 4hkgA00 3qy1A00 3seiA01 2xziA00 3tewA04 5tsqA00 3lhrB00 4ae2C01 4y96A00 3zeuB01 2yogA00 3sq7A01 1v37A00 1y64B01 1b5eA00 2e6rA00 3iekA01 5jp0A03 2pjdA02 1byrA00 3ed5A01 3wttB00 3e1eC00 2djpA00 2parB00 3u21A00 2lciA00 3u6gA00 1s4cC00 3zdbA02 4l44A01 1o04A02 4czuA01 1p4tA00 2opjA01 1e0gA00 5fagA01 4pabA02 5h9fB00 4qdcA02 1im2A02 4n59A02 2cy2A00 2bh8A02 2d8yA01 3ijlA01 2v84A02 2pz9A00 3dmyA02 3rr1B02 4mf5A01 4jzzA01 3f7pE02 4ohfA01 5ce6A02 3lnnA03 3vqtD02 4j8qA02 3k5pA02 2g8yB01 2b81C00 3wyeB00 2ehbD00 3besR01 3ckdA03 1p2fA01 2hy7A02 3iegA00 3wa2X01 4u6uA00 4f3lB01 1o20A02 2rfqB01 3rqwA01 2qbuA02 4g31A02 3hugJ00 1jkgB00 1yx5A02 1rzsA00 4dylA02 4bwpB01 4kv9A00 5a0yA02 4p0fA02 1wzlA01 1dk8A01 2kz6A01 3pyfA02 4c00A04 4pevA01 4a6qA00 4r3nA01 4nckB01 5cr4A00 2aa4A01 2pw9A01 1sznA01 2dsjA02 4lubB01 1wkvA01 1k38A00 3d6wB02 1k8kB01 3qu5B01 1ixrB03 2jllA03 1iqzA00 4r01A00 1x4tA01 4mj0D00 3hupA00 1jdpB02 3nf1A00 2o34B00 4mdyA02 3bt3A02 4l7gA01 1yg0A00 3thxB01 3kzpA00 3wvoC02 1tbfA00 2i2cA01 4bgpA02 1uscA00 1q42A00 4i4tE01 4c12A01 4k84A00 5hj9A00 5d9xA01 4j39A01 2qibB00 1ktgA00 3nsxA02 4oqpA00 3ly7A02 1kg1A02 4i71A00 4rjzA02 4a3pA02 3uorB01 4qdiA02 5eruA04 4lb0A02 4c5cA02 2pozA02 2xhgA01 1i0vA00 1q0pA00 4fvmA05 2pw9C02 2o5aA01 1n4kA01 2nwbA02 4ko8A03 3tefA01 3nekA02 2hthB00 4e84B00 3kz5E00 4l0fA00 1sk7A00 4f2eA00 3pqcB00 1w8oA03 3tq5A01 4j8cA00 2o9xA02 4noiA01 4ac7A00 3qyjA00 1v57A02 4xxuA01 4itbA01 3mwxA00 2grvA02 4e3eA00 3b82A03 1nkgA02 3n75A03 4g1tA03 2rijA02 2dx0B01 2w7nA00 4evfA02 1i4nA00 2a5yC01 2k5iA02 1wxqA02 1r2qA00 3pe0A03 3eivD00 3ma5A00 2dgyA02 5cw2A00 4ykiA02 2xxpA02 1kgcD01 5wseB00 4oelA01 3lnbA00 3id9B00 5jbdA03 3ulkA01 1f8yA00 3it8D02 2hfvA01 2hd3A00 4da2A02 1o5hA00 4zdtC00 5j7dC00 5idqB00 2x1fA00 1cb8A03 3rtlB00 4by6C00 3fo5B00 2xzlA04 5dxfB01 4yqdA01 4bsjA02 2lxiA00 1rq0A01 2ewfA03 1k8bA00 2xj7B03 2i4kA00 2oizA01 3ou5A02 1r79A01 4o8sA02 3v0dA02 4m9pA03 5e6zA02 4efaG00 4we6A01 2fiyA00 2znhA02 5jphB00 1uebA02 4kksA03 2pytA00 2id4A02 1b3qA04 1hcdA00 4ncbA05 1r0mA02 4dh2A00 4bzyA02 4e0gA01 1nnxA00 3it3B00 1hxvA00 2g84A01 1xovA01 4c47A01 4pxeA01 4ftxB01 1aroP02 3ks3A00 1yg9A02 3v9fA01 3moyA01 3hv8A00 5i4nA02 5ybwA01 1ajkB00 2cmgA02 5gxdA01 3vygE00 4wv4B00 3bpqA00 4ml7B01 1vg0A03 4aqlA02 5hv6B01 3dalA00 2qgqA02 4ag1A01 5h9iA00 1twfI01 4p3hA00 4z65A00 2ozzA01 3l4gC04 3k3qA00 5vm2A01 3bdeB00 3if5A02 4r2xD00 1h2bB01 3mxnB00 1vfyA00 2kt8A00 4pyrA01 3g3sA02 5b23A00 3b82A05 3g68A01 3rg9A00 3f4sA02 4fekB00 3tw0D01 3besR02 1x74A01 3b34A03 2cruA01 2ps2A02 4bmhA00 3cp7B02 2yf2E00 3laeA00 1jr7A00 4jh2A01 2fdbN00 1fcqA00 4izhA02 1ghhA00 2hdlA00 3vaaA00 1c1yB00 2zrrA00 3hulA02 2freA00 2fxuA01 1e1oA01 2akaB00 3cd8A01 2w2kA02 4litA01 2jbwB01 4v3lC00 3a9lA00 4qvaA02 2blnA01 2bhvD01 4lj9A01 4cgvB00 4i6xA00 1pj3A02 2o57D00 1ne5A00 4y9tA02 2eduA01 4zblA00 1cs6A01 4qgoA00 2ywwA01 3e5dA00 5l19A00 1c4kA04 5jc8C00 3rklA00 4zxbE05 1ya0A01 4ix8A01 1x5xA00 2cxxA00 2damA00 2g7rA00 2nq3A00 4uhoA02 1lbuA02 5m3oA02 2e1vA01 4gvbB00 4p02B04 1x4lA00 3tk8B01 1n7vA02 2nrlA00 3zleI01 1irqA00 3hm4A00 3rjaA02 4cq4B00 1lbaA00 2pd2A00 5tgnA00 2u2fA00 2w1kA00 3d3rB00 3i33A01 3rykA00 4u19A01 1q02A00 3m1tA00 2jjqA01 4w8bA00 4hdrA01 3r4iA02 2zixA01 3kjhA00 3n0xA02 3k7iB00 2ycfA01 3i09A01 2grcA00 2e4mC00 1jyoA00 1b5fC00 3pf0A00 2lmeA00 1d7kB01 3nklB00 1ekeB02 4a5xA00 1wcnA01 5y32B01 5xyiU00 2dnxA00 5c5aA00 2bhuA01 3ktdD02 2ma6A00 2hldQ02 3rlfF04 4b6xA00 4ofxA01 2oryA00 2gysA03 1zn6A00 4qtbB01 5wtzA01 3jymA01 5i9jA00 1w0mA00 3v5cB02 3ubfA02 4dx8J01 1ryaA00 5cq2A02 3cb3A02 4qdnA00 4dzhA01 1n26A02 2j7uA04 3gf8A01 2gvhB02 4yzoC00 4lbhA00 1wyzB02 1f45B00 4qyoB00 1ouvA00 1th8B00 2lfuA02 4g54A01 4kp1A02 2i6hA01 2chgA01 1vpyA00 1z23A00 4n2pA00 2katA00 2hf0A00 2luhB00 1s6dA01 1t6cA01 3lkkB00 2pcjA00 1p9rA02 3ry3A01 1ovmA02 4joiC00 3p1aA01 1h5qA00 4i4tC03 4b62A00 1ru4A00 3zjaA01 4lowA00 3fawA02 3ckyD01 2ol5A00 4k2pA02 1r0mA01 2rkvA02 2m3kA00 1z8gA01 4e6uA01 1m6yA01 3bf7A00 3hr7B00 5dldA02 5lzhA00 4bfcA00 3k0bA02 3lcmA00 2g3qA00 2eplX02 2o7rA00 3q2iA01 1vl4A01 3teoA01 1vl7A00 3cjyA00 3hdoA01 3rssA01 3v7iA01 2ca5B00 1nznA00 2kk7A00 1x6gA00 3nk6B02 2lyxA00 3rgzA02 5dm6Q00 3by4A00 4dgwB02 1ys1X00 4ynxB00 3pfnC02 2r8rA00 1mynA00 1vq8M00 2hytA00 2o8nA00 3zpgA02 3mkvA01 3bzbB00 3al5B01 4z3tB01 1gmjD00 3d31A02 1fs0G02 2zj2A04 2gcgA02 1iurA01 5vctA00 2cc3A00 4puhA00 4n6cB00 4h6zA02 4ollA02 3cwzB01 1fs0G01 2wskA01 1vhtA00 1w4rA01 3lzdA01 3htmA01 4jwxA02 3hzhB00 2q0oA01 3t6pA01 2gmhA02 3kasA01 1od3A00 2wa0A02 3nhiA01 4b4yA00 3pdiH04 3zymA02 2qi2A03 4ozxA00 1sgoA01 1tuvA00 3rp8A02 1wwyA00 4go6A00 1yhfA01 3c9fA01 1hs7A00 3agkA03 3eo7A01 2dq5A01 4e1pA00 3bg2A02 1h6hA00 5deqA01 4c3sA02 5nioA02 2bcqA01 3eulB00 3uemA01 1i36A01 1efdN02 3r1kA02 2idaA01 4necC01 4f15J02 4fw9A01 3bf5A01 3hshE00 2q5cA02 1y0gA00 3i7dA00 2iy5A00 3b8lA01 3qqnA00 1ac5A00 2h3gX02 1jb3A00 1ddwA00 3hh0B02 4xltA00 3ip4A00 1ws8A00 3ejbB01 4i93A01 2zuvA02 3h90A02 3tadC02 2bsyA01 2jxgA01 1yp2A02 3pjxA02 2g5cA01 3wu4A01 4lpvA00 3l3fX01 3tc3B00 1lrzA02 1mtyG01 3ne5B01 1euvA01 2fyfA01 2jmiA00 2dmvA01 3rd5A00 4haeA00 3a6mA02 3l9wA01 2kk9A00 2eapA01 2lpmA00 2qltA01 1mabG00 1a4iB01 2avnA00 2h5nC00 2i6hA02 2x51A06 1k8kA02 2zqmA00 2hy5C00 2gbjB00 3dr3A01 3u0bA01 1yarH00 5an4A01 1j6uA01 5f6lB00 2psoB01 6az1F02 5enqC02 1u2zA01 1xtaA02 1jz7A04 3iijA00 4d86A01 3a4lB01 4nacA00 3qy7A00 2x6qA02 1ghjA00 4q6kA01 4lh9A00 4o2tA00 5on8A02 3n89A01 3kewA01 2i0mA02 4mruB00 3i83A02 2e9xA01 2gfhA01 3hh1A00 4j1qA00 2pfiB01 1x1oA01 1kvdA00 3ufiA01 3r4cA02 2gv5C00 3bc9A02 5xmvA01 1qusA01 5ex8A00 2vqeI00 2cw8A04 4hatB00 2e62A01 1jsxA00 2fo1D00 3vcxA02 5x9vA01 3fhnA02 4indA02 1tqzA01 2pokA01 4jk8A02 3vkiA02 4wpyA01 3kt7A01 5e0jA02 1ys7A01 2ywqC00 2f4wB00 2pjrA03 5drbA01 4wkrA02 3zfpA02 3b85A00 1zbsA02 3bp3A00 3qauA03 3qq6A00 2pqmB01 4k3fA01 3vqtB03 4cmhA01 4e4rA02 2rjoA01 5xxlB03 2edmA00 3fhrA02 3rp9A01 3t7aA01 2js2A00 6amgA00 3fdqA01 4kgdA03 2qgqB01 4aqlA01 5mb2B03 5hdmA02 3ne5B03 2lf2A00 2dajA00 1swvA02 1p32B00 5dcfA01 1zxfA00 1y8eB04 1p9bA02 4bduA02 3defA00 5c94A00 3dnfA02 1pv8B00 3oh8A02 1cc8A00 2bopA00 3vrcA00 1kf6D00 2jvlA01 2om6A01 3fp5A00 5gm0A01 1mk4A00 2bi0A01 1hj0A00 1vbvA00 5dj1A01 2vxbA01 3wajA02 2rngA02 2ge9A00 4ihqB01 1sq4A01 3nybB00 3rlfF03 4ej6A01 3d59A00 3vthA04 4ccwA00 2nptA01 2x41A02 5xd7A02 4dcmA02 1tf5A02 1t6eX01 1op4A01 4lzlA00 3fdoA00 3q87A00 1vp7D00 2j3sB01 3g8qA01 1ixcA03 4ry2A02 4y86B00 2o8pA00 2wiiC01 2z5yA02 3i00A00 2ybyA01 2yb1A02 2jh3A02 2p4wA02 1pm3A00 3cesA03 1knrA03 5hqaA02 3cw3A00 1zboA02 2fl4A01 2ftrA00 5tpvB00 3eb8B01 2g36A02 2i02A00 3d1gA01 1nxmA00 3gziA00 2ku3A00 2wvxA01 5lw5A00 3k6rA02 3ci3A01 1fiuA00 1m55A00 3mudA02 2uzxB01 1go3E02 5culB00 1g6xA00 3hs3A02 4dt4A01 3c38A02 3lp8A03 4rj2A00 3f5bA00 1nnlA01 4wfoA04 3d33B00 3fkdA02 1hfiA00 2l0cA00 1p1hB01 1w7cA02 2uvpA00 4f03A01 2e9hA02 1fzcA00 1m93A00 3f8tA02 1wc2A00 3tpqM02 4ri6A01 4b0hB00 1jidA00 1vlaD02 2r3bA01 1s1gA00 2j7aC00 2ypaB00 3fbqA02 4eyeA02 1y7rA00 4pneA00 3gpiA00 4k36B00 2zyzC00 1fxlA02 2cszA00 3vlaA02 2jxnA01 2crlA01 5wy2A00 5cdzA02 1xkoB00 3bb6C00 1vhsA00 3g7kB02 1bihA02 5ekiC00 1whrA00 5o2vA00 1yf3A02 4x5wA01 1evlA02 3m2pB00 4f2lA00 2bkrA00 3mwcA01 5fr6A00 1inpA03 2kinA00 4wj7D00 1u69C00 2go7A02 6bogA08 1s05A00 1n62B04 3guuA01 1ddgA01 4en2C00 2fe1A00 2kqrA01 1yleA02 2xr1A01 2olgA02 4zvaA00 2grrB00 1ei5A03 5epeA00 3gb0A01 2fomA01 3cuzA01 1jb7A03 1piiA01 2qflA02 4gxtA01 3n6xA02 3r6uA02 2x7xA01 3u1cA00 4rifB01 1kblA06 3bsoA02 3ntkA02 3o6pA00 4x2rA00 4kh8A02 3p9vA00 3wctD00 1ihgA02 3lvmB01 4j4hA02 4p5nA00 1wj7A01 5dl8A00 3hhdA03 2h1yB01 4j8lA02 1zuoB00 5i86A00 1werA02 1o6lA02 5kp7B00 3lzkB00 1ib8A01 3d30A01 4ic9A00 1zruC01 3mwbA01 4a5sA02 3gixA00 6eqsA02 3ctpA02 3qilB00 3wxmF01 2jswA00 2m0nA00 2petA01 3fojA00 3dewA02 2x7rB00 5cxxB00 2eqaA01 4yarA02 1vl2D02 2yztA00 5i5mA02 3qpaA00 3cq2A00 5xfoA02 1yj7B01 1t94A01 2hkeA02 2l16A00 1ji7A00 2hi6A00 4qwoB00 2a5lB00 4e69A00 1kmiZ02 1wp9A01 2aebB00 1dl5A01 5tirB02 3ig4A01 2hykA00 4aj5H00 6az1V01 4egvD01 2md0A00 1wduB00 1oxjA01 2zouB00 2e7zA04 2k2dA00 5le5F00 1atxA00 4zjuA00 4rfsS00 2cg9X01 2vmhA00 4k12B00 5gxeA02 3ksmA02 2nn6A01 4bkwA03 2ahmE01 4z9cA00 3vcfA00 3znuA00 3f9uA00 2xrcC04 4cq1A02 3ieeA02 4cgsB00 4ur7D00 4fgmA01 1jykA00 5oomL00 2ganA01 3pe7A00 5ej8A02 2bhvB02 3l86A00 2v8iA02 3o8mA01 3vpbB03 3k6qA01 3pdfA02 3fsyB01 2z2mD02 2epbA00 1kthA00 4i5pA01 2wscG00 1e0fI01 4k35A03 1woqA02 3vh8G01 3imhA00 2a2nA00 5e75A00 3m65A02 3kn6A02 4s12A02 3icuA01 4nzrM03 3plnA03 5ng0A00 1v47A01 3wvtA01 1cs6A02 3iwcB00 4xvwL00 3bjdA02 5ti8A01 3khwA02 3hymL00 4dh4A00 4ytbA01 5cyxA02 1tujA00 1wm3A00 2btoB02 3ksxA02 2q87C00 1jndA02 2pbdA02 3crjC00 3aehA00 5agiA00 3kr3D00 4nplA00 3bs7A00 4i0kA01 4zhvB00 4itaA02 2iqtA00 1f3vB00 1xtpA01 2i4rB00 1zc1A01 5svyA00 4bfaA01 3s0yB00 2okaA00 3kgrA00 4dlqA01 4dccA01 3v7qA00 3utoA04 5cflA02 4g4sO01 5ab4A00 3pm9A01 2ex2A01 2coaA01 5le5U00 2ciuA00 3oqbA01 2k0sA00 1x8bA01 3vmaA02 3axbA02 4czwA01 2jvfA00 1xerA00 3kkgA00 3ip4B03 1uarA01 3qfmA00 4ak1A04 3ddmA01 3ffhB02 2qtsA03 1ohpA00 5v07Z02 1rqpA02 1up7A01 4ckbA03 2o01J01 2x6rB01 3awmA00 4ildA03 2imlA02 5v6rA02 2vseA04 1uapA00 3skvA01 3rfaA01 3kttB03 1m4iB00 3iu6A00 2xw7A00 4l8kA02 3og2A02 5uttA00 4rzfA00 3g8dA02 1vq8K00 1tzbA01 3sigA00 1d4vA03 2m1mA00 3llkA01 4at7A02 4jvtA01 5o5jQ00 1q9cA01 1jb0D00 5ffgA02 3kb5A00 2vl7A01 4r8zA00 3hm0A00 3tzgA00 1kf6C00 4lfhG02 3bhqA00 4zm3B01 4pxvC00 2iabA01 3frqB00 3d36B02 1vffA00 2r8bA00 2gdzA00 3kqgD01 3vnrA02 4k17A02 3qzrA02 4gywA01 4l6xA03 2oblA02 4e5sA02 3zuaA01 1qsaA03 2wcrB00 3jzyA00 3zvzB00 3a1sA02 4f0wA00 3gueB01 2kldA01 1pswA02 3gw6A01 4bvxB01 3eucA01 5gzkA00 4fxtG01 1q6zA03 1z3xA01 2zt5A01 2uurA00 3gvzA00 3ruvA01 5hweA01 1kv3A01 1pzwA00 2ld7B00 3uifA01 4wkzB00 5ik2E01 3s21A01 2lstA00 2vgeA00 2x49A03 1x4xA00 3ds4B00 3sbmA01 1y3tA01 2vrwB01 5unaE00 3irzA03 4hn9A02 5b57D00 4ic7E00 3rjrB02 1v0lA00 1uptF00 3k8pC01 2wzkA03 5lpgA00 2e1mC02 4fe3A02 1vyxA00 2fsfB02 5swuA00 3da7E00 2dlaA02 2ba2A00 4xotA02 5b66C02 4mtlA00 2vf7B03 1nz0D00 5a1iA02 3htrB00 2m6oA00 3tmmA01 3m7nA01 3retB00 4d0qA00 3us3A01 2yb5F01 5xb0A02 3fqmA02 4dx9Q00 3gwcB03 4esjA01 3oksA01 2pnrC01 4wesB02 2nutA01 4dohB01 1v1cA00 3aw5A02 5le5M00 1inpA01 3nwnA00 2zyqA01 2copA00 1qwjB00 1hcyA02 2x0jA02 4nurA02 5vhtA00 4zgsA01 2vhjA01 4dzzA00 4l4qB01 3i5qA02 3putB00 4ex6A01 4lerA01 3drxA02 5epbA00 1tzpB00 2e5rA00 3hr6A01 4fd5A00 2r6zB02 2nspA00 2e5fA02 3vb0A02 1q8kA03 1w3fA02 2qcpX01 3wwnA00 2daiA00 2muoA00 2o1sC01 3tjeF01 2kucA00 1azsA00 4hw6A01 3cxbA02 3nqbA02 2f69A01 2v62A02 4hymB00 3idvA01 4jyjB00 3vgzC00 2ychA02 4nnoA02 4dp9X00 2bbhA01 1osdA00 2xjyA01 2q0zX01 4pwtC00 3gkrA01 4b0eD00 2wb9A01 4qhqA01 2zp9H00 3oe3C00 3ep6A00 2g6gA02 5fm5P00 3dkqA02 1uu1B01 3rpmA02 5b66h01 4c2vD00 1hw1A02 3asuB01 3eucA02 1dlwA00 1g29103 3gxqA00 4nesA01 2d4rA00 3cs5A00 5uklA05 3vthA02 3kptA02 4qdgA02 4zboC00 4mvtB01 4jw2A00 4nzjA01 6blkC00 1tu9A00 4j1oA01 3zbdA00 3hbcA00 2hwjE01 4a82A01 4m70B00 1bf6A00 3g3zA01 2ac3A02 4w8oB00 2p4bB02 3ctzA02 1cdcA00 3iq0A00 5e1qA02 1ev0A00 3p1xA00 4ncbA01 1pkhB00 3g7sB01 3dydA01 4a27A02 3cx5F00 1wa3D00 1hc7A03 1ydgA00 3dttA00 2grvC03 3a1kA02 2aynA00 1vytB02 5y4eA00 4iirA01 1y0yA01 1u6zA04 4ksyA01 2kpnA01 1wpbG01 4jixB00 1wu9A00 4iabB00 2h8lA01 2j3wF00 2dy0B00 4puxA00 3ilxA01 1sfkA00 3pwzA02 2prbA00 4j6fA01 4hwiB02 2oikA00 4ye0A00 2uz1B03 3rkoF01 1neqA00 4j5rA00 2akzB02 2ln8A00 2pmsC00 2crjA00 1f7uA03 3cetB02 1t5oA01 3lc0A01 2d4pA00 1pinA01 2lu7A00 1uqwA02 1tfzA02 4af8A00 4qrlA00 5xnsC00 4oj8B00 2fueA01 2w9rA00 3o70A00 2i1oA02 2hx1A01 1v8pF00 2xt2A00 1r3jC00 1oi7A02 1earA02 3v76A02 2yevA02 3hdlA02 2wdtA01 3on4D00 3viuA04 1mhmA00 3ebrA00 5u95B01 2l7kA00 1lmlA04 2js4A01 3f1sB03 1ypxA00 4jpbW01 4q4hA01 1l1oC02 3dxqA01 2g80A02 3n40P04 1zk5A00 2oycA01 5kckA00 4whiA00 4lloC00 4qs8A01 5hoeA00 3cwxA00 1fzdA02 1avcA07 3v7iA02 3w6wB02 3e4bD01 2p17A00 2ntkB00 1zjcA01 3iqwB00 2f57B01 4fx5A02 2rowA01 4afhE00 4x2uA05 3l49A02 2pajA01 5lxrA00 2wp0D00 2bnlC00 1s9iA02 1ps9A01 1y7wA01 3tebB00 4i3gA01 2xseA00 3tutA02 4a4zA01 3p3qB00 2nluA01 3urgA01 4jivD00 5a86A00 2v4bA02 4hsaC01 1uctA01 2hueB00 2o01401 3tioB00 2hdwA01 3c5hA00 1fxjA02 2cnzA00 3zl8A01 2p97A00 2vsyA01 3hzaA01 2yxxA01 4gmuA03 3nb0A03 3cjdA00 3nznA00 3c7aA02 4aybA04 2j2jA00 5k3xB01 2q1fA03 2fk5A00 2jmsA01 3tqlA01 3k6tB00 4lgtA01 2ivnA02 4xb1A01 2f8mA02 2miuA00 2gk6A02 1uajA02 2odpA01 3gj0A00 1e91A00 5ljwA02 3d32B00 2kouA00 4rk4A02 2rjiA00 1xszA03 4jejA00 5eyfA02 2wczB00 4rg1A01 2ewfA02 3dmcA00 2cazF00 4hwuA00 2wiiC02 3v97A02 3l4jA05 5efqA01 2acfD00 2fvvA00 2qbyB02 3k6xA01 2a1xA00 2r6fA02 2vn8A02 1bkbA02 3njnA00 1bihA03 3mprB00 4m5bA00 4izxA00 1o8xA00 2yrvA01 2b9hA01 2oeeB00 4p2vF00 1eg3A01 4ry1A01 3ed3A01 3bulA01 2gomA00 2n5hA00 4rj0A02 5b21A00 1ry9A00 1b3qB03 4fuvA00 1k1eD00 2zj8A03 3dmlA00 1l9mA04 3a98A01 1lv7A01 5f33A03 2b0oG01 4hteA02 1ufzA01 4igiA00 3b8xA02 2d4uB00 1rmdA01 1khvA05 3n75A01 2ipiA02 2o01D01 2p0oA01 1jmxB00 2yzsA01 3m89A00 2wuqB00 2qvsB02 2b4nA00 4a8xA00 1dr9A02 3l6bA01 1a3qA01 1y5hA00 2oplB01 1j5wB02 2l55A00 1z45A02 5itsC00 2z5bB02 4c2uA02 4nzuH02 1lqlC01 2p0tA02 4p32B00 2ha8B01 4l22A01 5ai0A03 2wy3A00 3qjoA02 3o38B01 2bhuA02 3ss7X02 3g4nA01 1vkrA00 2zhyB01 4eweA02 4azsA01 5umhA00 3lk7A01 5jawA01 4gu4A01 1ix9A02 1vjvA01 3kl9A02 4wkzA01 3g6eU00 1omoA01 2obbA00 3rpwA01 4qysB01 4zi9A03 3hxlA05 1oywA01 2d8cA01 3io3A01 3fldA01 1wggA01 4lunU00 1uxdA00 2pv3A01 3k5iA02 2b5iD01 2ya0A02 4ihqB04 5fbkB02 3no7A00 1ffyA03 3us3A03 3u61A03 1tucA00 2z0jH00 4yo7A01 1o4sA02 1oacA04 1qvrC01 3gzaA01 4f0hB00 4neoA00 139lA00 2wjsA03 3d82A00 4pf4A02 2wzkA01 2v5yA03 1a1xA00 2iuyA01 4dn2A00 5evcA02 3hq1B04 1wpiA00 2hhzA00 3cisH00 3l43C00 4brcA02 3eyyA02 5azpA02 4iioA00 3slrA01 4lfhD02 3d4oA02 5wl1A02 3nfgP00 2nutC00 1jdqA00 1xovA03 2pw8I00 4dcaA01 2g43B01 5a4eC00 5cybA00 4in9A00 1jsgA00 1v77A00 5k3hA01 3gf5B07 4j2kB00 3h7mA02 1n0eA00 2yb1A01 3h5tA01 3tcsA02 1gl2B00 5tx7A01 3zeuA02 4l8jA01 1gpzA02 3cz1A00 1n0uA04 3ktsC00 1dowA00 3epuA00 4cu4A01 3quaA00 1vq8B02 1rwjA00 2f1fA01 2cujA01 2hsgA01 3ntlA01 1jbeA00 3vglA02 5tnwA00 7a3hA00 1rtqA00 4od4A01 1vkcA01 2v3zA02 5kefA00 4ncbA02 4im7A02 1oaaA00 1je5A00 5jszC00 3l4gB03 2xqxA00 3s13B01 3h1dA02 1kkhA02 2gnoA02 3oosA02 5c5rD00 1jflA02 4icvA00 2iu8C01 3lnlB02 5dm2A00 2ko2A00 5aykA06 1uekA01 1uxoA00 3cpxA02 3evyA00 1ytzT00 4c65A02 2iksA01 4qw2B02 4ml1A02 3l8dA00 3bs5B00 3tovA01 3te8A00 1zboA01 3l8wA00 3vqtA01 3peyA01 3jamI03 1d5tA02 3vaxA02 2czvC01 2qzgA01 2vx8D00 2h5gB02 1konA01 3un1C00 4huqB00 3v6iA02 3l2pA03 2pe4A00 3ro6A02 1wspA00 1d5rA02 4ag1C00 2yrbA01 4rdrA01 3u1wA02 1mppA01 1i52A00 1rttA00 2q8nA01 3lx4A01 1xknA00 5ahkA01 2zixB01 2l6uA00 1r55A00 3b5oA00 4z02B01 5bu9A00 3do6A02 3h7mA01 2qm8A03 3wj7A00 1s6yA02 5malA00 3s95A02 3r2qA01 4zn6A03 4w6yA00 4p2fA00 3qy9B01 5t6jB00 1zuyA00 2vs7D02 4as2A01 4fxiA00 2bwfA00 2p0kA01 5b1aC01 4lqsB00 1pa4A00 1r9lA02 2o20A02 3kmiA00 3hcnA02 2pgcA02 4gmuA01 1j0wB00 3k3fA00 4g6vA00 2fbeD00 3p8dA00 4a0sA02 4hwhE00 1vf5B01 3rriA00 2eyyA02 3p4xB02 3n79A02 2yzqA01 3cvpA00 3floA02 3hrdB01 5gmsA00 4bmdA02 3egeA00 5a0lA02 2jtfA00 5tp4B01 5k8pD01 3r2tA02 2epjA01 4c1bB01 3dohA02 1q0uB00 4p6qA01 4dolA01 3sxpA01 2waaA02 4bzaA01 1twfI02 2rikA02 3cg4A00 2o3aB00 2gacB00 4toiA01 2l5tA00 3lhoA01 1uz5A04 4meeA00 4mobA01 1y02A01 2d00A01 3fnrA01 2xtlA02 2rbkA01 1u7zA00 5lqdA02 3fzvD02 1vioA01 1v33A02 1lngA00 2q30A01 5tinA01 4qxdB02 1ln1A00 4begB00 2ldiA00 1am9B00 4i0wB02 1erdA00 4e5nC01 1xwhA00 4nbiB00 1u5kA01 2xotA02 2erlA00 3kc2A01 2ipiA01 1vq8U00 4rd4A01 2v3zA01 4y8eA00 4pgnA00 4jutE00 4bqyA00 1zq1A01 4lxhA00 5u1mA00 1envA00 1k5oA00 2gnpA00 4e3xA02 2f76X00 5jw8A00 4ee9A00 4tquN00 1z5zB01 2x4lA01 2qdfA03 2q01A01 4itxA02 3npfA02 3tovA02 1mppA02 2pk8A00 5hmmA01 4ob7A00 2fe7B00 5dzoA00 4bmnD00 3teeA02 1vkeE00 2y8nB01 5fiiB00 4m1qA01 2a50C00 3c2bA02 2p39A00 2ivdA02 3rkxA02 3vtiA01 2kvcA01 2h84A01 1fpoC02 2m3xB01 2hhgA00 4mlaB01 3pxpA01 4xymC03 3b81A00 2bnuA02 3sojB00 4mbyH00 2rdgA01 1o75A04 5llbA00 5ituB02 4c4aA03 3e18A01 1wn9A00 4nsvA02 3ghyA01 2kn1A00 2ja2A02 4dz1A01 2ouxA02 4dxkA01 1qk9A00 1gmuA01 3d4rB02 4kgdA02 5kwnA00 2h32A00 1ri5A00 3stoA02 4ggtB00 4wfoA03 2rdxA02 2et6A02 2xdqB01 3go5A01 3iquA00 3fajA00 1f9vA00 4qyrA02 3aonA00 5vyqA01 1jbjA01 4kh8A01 3n8bB00 2x7kA00 4r8hA01 2nvoA01 1rdrA01 4wbyA01 2rjnA00 1wvfA01 5figA00 1eu3A01 2jexA02 4fd9A00 3qdkA02 3fayA00 3cmnA01 2vl6A02 3rhbA00 2kk6A00 4pl0A02 4pioB01 4h0fA02 2gwnA01 2qb7B02 1e8uA00 3v8dB00 3ov5A00 3n3yC00 3irsA00 1xviB01 4oiyA01 1ua7A01 1ny1A00 3eg5B01 3gwiA00 2auvA00 3tboA00 1j6oA00 2vtfA01 1wi1A01 2ze3A02 5hsgA02 4j3rA00 4jc0A03 2dyoA02 2dzmA01 3akoD00 3jsjC00 1ltsC00 4o6rA01 3n50B02 3jvdA02 4qrnB00 5jtwA04 2fz0A00 4om8A01 4jyaR00 5c5jA03 3nynA05 3o2iA00 1t6gC00 1aa0A00 3sztA01 5k3xA02 1vjtA01 3iv6A02 1r8nA00 4ccjA01 2czlA02 2kpqA01 4f7oA00 1to2I00 2heqA01 3o0zB00 1pq4A01 3uxfA02 4q27A00 3of6E00 2gfuA00 3rt3B01 3hbvP01 1swyA00 3tj8A02 3oymA01 4a4aA01 2q88A02 4decA00 1vykA00 2ozbE02 1xgkA01 1k3xA01 4hvyA00 3gf3A03 3lgdA00 2lqlA02 1bvp102 2of7A02 3tewA02 3kzwA02 3hjlA03 2v84A01 3ksxA03 2ea7C02 2ebzA01 2x24A03 1pq7A02 3pnaA01 2lwxA00 5h2gB01 1j1eF00 4krgA01 4zdoB00 1kq3A02 2mfiA00 2qkoA00 2yweA02 4f27A02 3jamS01 3wp8A02 3lhiA00 2l9bB00 1w8iA00 3qouA01 4fymF00 3nvwA02 3rw7A01 5fsvA00 3b4wA02 2e63A00 2cnqA01 2xnjA01 1g6eA00 4xpzA03 3qy3A00 4lvuA00 3e1sA03 2qwzA01 4kvmA02 2vd3A01 3fbuA00 4j37A01 3pfoA01 1btnA00 2r2zA00 3bl9B03 2ihtA03 4b8eB00 3wwcA00 2wg5F02 4jpnA00 4q5eA01 1vpkA03 4gt8A00 2yg5A03 4m7gA01 4opmA00 2fd5A02 4culB01 5eo4A01 3nzpB04 5x8rr00 4l7gA02 1s12A00 2o8bB04 1pq4A02 2lq4p01 3q6aB00 2qn5B01 4a2lB01 4kwyA00 3cu2A00 5hv6A02 3qelD01 3wxyA01 4oseB00 1ujyA00 4oi3A00 4i59A02 1dekA01 5jviE01 1yqgA02 4ms4B01 4i9xC02 3lfuA03 2hs5A02 3w0fA02 1k3kA00 2hwnB00 2qj8A00 1h7sA01 3jr1A01 3a2qA00 1ichA00 3uh0A02 4lhsA02 4werA01 3zx1A02 3sl1A00 2vugA05 4odpA00 1iojA00 4ii2A03 4od9A00 3mz2A00 1vk1A02 2g5cB02 2vsmA00 1zc6A02 1irxA02 3evpA00 2i24N00 4i8oA02 3a9sA03 1vq8L01 4ddpA00 4nobA00 5ck4A00 2mhjA00 4i6mA03 1qh5A00 2hwjA02 2nw2A01 2d1sA02 4hz4A01 1i8nA00 2ggsA02 1i60A00 4n49A00 5evhA00 2vveA01 1g66A00 3fxdB00 1witA00 1wxpA01 3snkA00 2js3A01 3gbnL02 1y0mA00 3kp8A00 4r5zA01 2fsxA00 2acvA01 1va9A00 4n7rB01 5jybA01 4o6xB00 1wotA00 1vclA03 1t9fA00 3lgiB01 3g0oA01 2e0zA03 4azsA02 4l8hB00 4i2zA01 4fk9A00 5nj2A00 3rx6A00 3kosA01 1nqzA00 3mybB02 3ivpD01 2cspA01 4lftB00 3e57A00 1rsoA01 1uwvA01 2jfzA02 2z72A00 1jy2N00 3fvwB00 3oc9A00 5m0nA00 1sumB02 1n12A00 2disA01 1aroP05 1wzoA01 1tllA01 1ypzF01 2kutA01 3i38I02 4irfB00 4pxhB00 2a5yB01 1rm6A05 4p3wC01 4agkA01 1lucA00 2k6sA00 2hoeA02 2oc6A01 4eagA01 1j3aA00 3rl5A00 2iafA00 5cqxA00 3m5rD00 3zc4A01 5hrjA00 4yucA01 5vacA00 2r5sA01 4e6zA01 3nbxX01 2z8uB02 4fa8B02 4ccsA02 2vqeN00 2jzjA01 1nxuB03 1lb6A00 4bemJ00 5a6mA02 1weuA00 2q0zX03 4ploB01 2faoA01 1dm9A00 3dnpA01 2ccvA00 4prxA02 4wz8C01 3vwcA00 2mcaA00 5tb7B00 2uxwA03 2hn1A02 1tazA00 4e1jD02 3zjbA00 4bolA02 3sz7A00 3phtA01 4iuwA02 2o8bB01 4qfeK02 2wuhA00 1grjA01 1y89A00 3cxkA00 5ej8A01 3dc7A00 3hcjA01 3jyzA00 2i7cA01 1ii5A01 1f7dA00 3fawA01 1j8uA00 2jq3A00 4fl3A03 3t3pB02 2m4gA00 4ln6A01 3n72A00 3i5rA00 2y7pA01 3cu3A00 5ir2A00 1r5sA01 2pf4G01 4qqrB00 4ok4A01 3vnrA01 2cq8A01 4j9fA00 2sliA01 4wiaC00 2fsdA00 2wxfA04 1j3mA00 4mloA02 4rwzA00 2cxnA02 1hq0A00 2dgyA01 3lluA00 1x3lA02 3uc9A00 3eusB00 3rmrC01 4a7kA03 1gknA02 2xepB01 2f1rA00 1pbyC00 1z56B00 3swxB01 3lmzA00 2e11A00 3c7aA01 4ycaB01 3bmxA01 4lfhG01 4y9wA01 2hw2A00 5dllA05 2yziB00 3kxyT00 4ak8A00 4pn6A00 3zljB01 4okoA00 3tlaA01 3u26A02 3lr2A01 1v25A01 5ttbA00 1wpnA00 3m20A00 2zixB02 3h95A02 4a64A02 3s1xA00 1eu8A01 1olzA01 2r16A00 2j8gA03 4g6vB00 3h1tA03 4g41A00 1xhbA02 3nbxX03 3zi1A02 3sybA00 3a8yD00 5d5hA03 4u8fB00 3kfaA01 3axgK00 4aq1A03 4fk5A02 4jnfA01 5h7eA00 4ioyX02 5kprA03 4finB02 1o17D02 1fp2A02 3tl4X01 2lkyA00 4k7cA01 2a6hA01 1eu1A01 3e2oA01 1vcsA00 1npiA00 2pw9D03 2vqxA01 5jipA01 3g1pA00 2apoB00 4ewtA01 3fxaA00 2fstX01 4hr6B01 4izbB01 2hx5A00 3hi0A01 2c95A00 1whiA00 3abgB01 2anvA00 2absA01 2vt1B00 2z0fA02 2uuqA00 4olsA00 1itxA02 4dk2A01 4bv1A00 3tm4A01 4ihqA02 3lrtA02 3lmaB00 1s9rA02 3l0wA00 3myvA02 2pcrA02 4pagA03 3ip0A00 3dtnA02 2ynmD03 1mdbA02 4f0bA01 1upsA02 1g2nA00 1lo6A02 3lwaA01 2f6mD00 5aozA00 2opeA00 5cclA04 2fjrB02 1k6kA00 3mopA00 2kmxA00 1xiwA00 1u0tA02 4u5pA00 2jo7A00 2oyqD05 2ehzA01 3p26A01 2dt9A02 5sv2A00 1zgzA00 4mi8B00 3sdeA03 4rsvA00 2db8A00 2g6tA01 2it1A02 5il3A02 3m70A01 3irbA02 3iwtA00 5tu0A01 1uzbA02 1zbdB00 3letA00 2r2qA00 3m1hD00 3pxvB00 3p0fA00 3n2oC01 2eabB01 4ntlA01 3uc3A01 1nynA00 4jcqa00 5amhA00 2voaA00 4r27B00 1gttA01 1lu9A02 3h87D01 1z01A03 4jf3A00 4bfiB01 4i16A00 2awnC03 3k6yA01 3r12A00 1iynA02 1xubA02 1akpA00 1fi8C00 3pt8A00 1x4sA00 5dvbD00 1qhqA00 3ragB00 2w3pA02 4h6qA00 1pieA01 3ftdA02 4yqaA02 5exeA01 3l6aA01 4cguB00 1xdnA02 3wndA02 1shuX00 2o01G01 1pwaA00 1i12D00 1f1sA03 5kp7A02 3fkjA01 5tzdB00 5aq0B00 2agkA00 4dkjA01 1j0aA02 3i33A02 3ayhA00 4ohjB01 1uiiA00 2xswB00 3s9xA00 1gveB00 2ykoA01 4yg0A00 4he6A00 2gnxA02 2rtxA00 5ftzA00 1lnsA04 3ddtA00 4l4yA00 2vqeD02 4iykA01 2bbrA01 1yd0A00 1szhA02 4iknA01 2hu9A02 3vxgA00 2z2nA00 1b9mB02 2ivyA01 1ug3A02 4aq1A05 1cx1A00 2ilrA00 4a0tA02 3md9A02 5awwY00 2xauA02 2fzlA01 3zrpA01 1u6zA01 3oj0A00 4c2mC01 4qlxB00 4azcB02 4f0qA02 4gqmA00 3b8bA02 4rpfC01 2xsaA01 4w7zA00 4kboA01 3o9zA01 5sznA05 4eozB01 2ve7C01 4qv2A02 4wbtA02 1ye8A00 3o6qD01 1y0hB00 4phtY02 4zqbB01 2f51A00 4b3fX01 3bqkA02 5ftgA01 1h3lB00 3d2uA02 4pcqA02 2iz6A00 2imqX00 4rlqA01 2w31A00 2douB01 1v5mA00 2dkhA03 5u69A00 3bedA00 2qycA00 2z0mA02 2k8oA00 4qrbA03 2o6xA00 4kq9A01 1z2nX01 1mnmA01 5jpoD01 3vhlA02 4lq6A00 1szhA01 2o2cA02 1eslA00 1wc1C00 4m7tA00 2dl4A00 2btoA03 1dbwB00 4y7dA00 1zxjA01 1s9uA00 4ns5A02 5vf5A01 2d2sA01 4hyzA00 4mlmA00 4o95A01 4i1sA02 4hqzA00 1r6vA04 2gi3A01 5ecdA00 2a0mA00 3x0jA00 2p5xB00 2rvjA01 3s95A01 2fnuA01 1vl0A02 4tlqB00 1r6wA02 3cewA01 1u9yA01 1j7xA01 1h80B00 4a42A00 2jmoA01 1xyzA00 1dkgA01 1jmxA04 1ko7A02 4fdiA02 1yeyD01 1q35A02 3llpA03 2iw0A01 1eptB00 3kgzA00 1nd4A01 3fi8A01 1kza100 3d2mA01 3fdjA02 3k9tA02 3l9aX01 1h9fA00 3vvyD00 4h9nC00 5ib9A01 2lpeA01 4e5sC01 3basB00 4pp8D00 4d6gA03 3q46A00 3aekB02 2ajrA02 1nf2A01 3og2A03 3triA01 4mptA02 3ibpA01 3h6gA01 4y99C01 4nkpC00 1q6oB00 2vptA00 4mj2B03 4rugB00 4unfA02 3uq8A01 5cmyA00 2j5uA03 4i86A00 2yutA00 3zqoA00 3r96B00 4gimC00 3dfuA01 3eunA00 2p6rA03 3tqmC00 4p47A00 3rofA00 3jamY00 3zmrB02 1pn0A02 4h4aA00 3g3sA01 2rdiA04 2je6I01 5flmC01 1nr3A00 3tj4A01 1sqhA02 4ft4A02 2atpD00 2efxF00 2mysA06 4k2mA02 3p2mA00 4kbxA01 4z8lB00 4nj6B00 4x9tA01 3a98A02 1rkqA01 4p48A02 1a7cA02 4fe9A02 1xxlA00 3h9pB00 5hgjA00 1fgyA00 3zjxA02 2hiqA00 3tdgA02 3ws7A02 2fo1E00 1kz1C00 1ynbA00 4k8lA02 5colA01 1booA00 1np6B01 2pq8A02 2px0A02 3ubdA01 3aamA00 3ebeB00 1nlwD00 2lqlA01 1n40A00 3thiA01 1i24A02 2eyzA03 4l9aA00 3alnC02 3sqlB02 3kxrA01 5b1aC02 3g5cA02 3bb0A02 5d3xB00 1inlD01 3c2qA02 3fzqB01 3ua3A02 3edgA00 1p1jB01 2ii2A01 2jysA00 2w3zA00 2hinA00 3gk7A03 3aqoA02 1k77A00 3ddcB00 4jcyA00 5ajoA01 2kkmA01 4yleA02 1f3yA00 3nytA02 1zl0B01 4abnA01 4oqvA00 5uznA00 4ns1C00 2vq3A00 4glxA06 5vi4F03 1ji0A00 3aqqA00 1fdoA05 4j7qA00 1v72A01 3qhyB00 2x8xX02 2itmB02 3ubgB01 4hstB01 6apeA01 6eqsD01 2ce7C03 4k17B01 1s4kA00 2qmxA01 2ynaA01 1g2oA00 3nojA01 2pgnA01 2wb7A02 1tv8B00 4crgA01 1u0kA02 5kkuD00 2wojC00 2pa8D02 3ighX02 1xt8A02 3lwcA00 1pbyA02 3mkqA03 2r6aB02 3kb2A00 4zocA03 1fx3B00 1bf5A04 3lo7A01 2dstA00 3ljkA01 2p9iB01 2z0bE00 1th8A00 1x61A00 2p8jA00 2rkyC02 1q4rA00 3bw6A00 2oqkA00 1s3lA00 2l2oA00 1cjxA01 4ihqB03 4c6eA00 3hebA00 3t5sA00 2b5aA00 4g6dB02 2yufA00 1f94A00 2pyyB01 3fkqA01 3mkaZ00 4mobA02 1k9oI01 1axiB01 3uebF00 1id1A00 4otkA00 3ceyA03 3sl2A00 3uv1A00 2ahmA00 2g5xA01 3e20H01 2bolB02 1mx3A02 2f41B00 2xg5A02 2j45A02 2f4qA01 1y8cA02 2d5wA02 3ii6X01 4ryaA02 5d55A00 1jh6A00 3nxpA02 3gr5A01 2yt4A02 3p3cA02 2b1eA04 5bqsA02 2imjD01 1ei9A00 1jeyA01 1f00I03 3vsvA01 1qm9A01 3aw5A03 4b6wA00 3gn4A00 1m5q102 1v85A00 3uorB02 1nc7A00 4c0gB00 1u58A02 5dm6E01 1yk3B00 5l73A00 3s83A00 1zklA00 5tflB02 1oxjA02 4e5nA02 2l7xA00 5eehC03 3qijA01 2dqbB00 3bnvD00 2qeeA02 5k2xA00 5wpwB01 3s9dD01 3ow8C00 3dwbA02 2gslF00 2qzbA00 2w2sA00 5cfjA00 2x8sA02 2i6lA01 2ltlA00 2gx8A02 3tewA03 1u00A02 4gpkF02 3hieB01 3hynA00 2n7yA00 2fj6A01 2hdmA00 2kcqA00 2ypsA00 5t9cE00 2cqvA00 4zylB00 4qt6A00 3cygA01 4qhpA05 3pg6A00 3qf2A00 2hraB01 3j27B00 1x1fA00 2of5H00 1ky9B01 3m9vA01 3onqC01 3crvA01 3p01A02 2vqeD01 3mfiA04 3k2oA02 1go3E01 2gsoA02 1h7eA00 3sbtA02 3dlcA00 3oa5B02 1m6yA02 1ympA00 4kmrA01 2r75101 2r9qA02 1y6dA00 2hfnB02 1bf2A01 2qeaB00 3ljsA00 3cc8A00 3b43A02 4s1tA02 1tdqA01 2okxA01 5eyfB01 3ldzA00 5le5E00 2v0eA00 1g8pA02 3drzA00 2hc9A01 2p8bA01 4cyiE01 5mkvD01 3b7kC02 2mn4A00 4fb7A00 3es1A01 2z2uA00 2xn6A02 3gwzA02 2ondA00 3g23A02 1s7mA02 2m1sA01 2wtpA00 5viuA01 1ha8A00 1s7zA01 4bsjA01 2p32A00 5jnmA02 3dxoB00 4wjwA00 2py6A02 3seeA00 3c9iA02 4odjA03 2lhjA01 1qfjA01 1gccA00 4m88A02 6bogA07 2wbtA01 3essA00 5o60c00 2d3yA00 4j7zF00 2xknB01 3in6B00 2zb4A02 4agsA03 3e0rB02 3k9iA01 2d48A00 1nkiA00 1tuoA03 1r8oB01 5jfwA01 3dqpA00 3um7A01 4e9jB01 5kbzB00 3mhsB00 3fl2A00 4gl8A02 3g46A00 5tdeB02 4exkA03 3k8pC02 1whyA01 1vk3A01 2y7pA02 2ajuH02 4i4tB03 1uzmB00 2r85A03 1f00I01 3i6eA02 5dmjA02 4a1iA02 1gm5A04 1r7lA00 3vk5B00 4hstA02 1ekjA00 3mx7A00 1zy9A03 1br2A03 4e40A00 3bilA02 3fgtA01 2ppnA00 2gllF00 1sfsA00 4kcfA02 2hp0A01 2w0rA00 3rrxA02 3fr7A01 1vprA01 2oucA00 4l6hA01 5i0cA00 1rv9A00 3lygA00 1dekA02 1ixcA02 4hppA02 3lcyA01 2cibA00 4fdaA00 2gaiA04 4o6mB02 4gfiA02 3iteB01 4bopB00 1lstA02 4i66A00 1jeyB03 1rwrA00 2if7B02 4o8kB02 2eplX03 1sg1X02 5d1pA02 3ot2A00 4wiwA02 1v74B00 3gohA01 3jtmA02 3lmlA02 4z67A00 3zzsA00 6b8sA00 3pfnD01 2o35A00 2vknA00 3e19B01 3exiA00 1gk9B01 2vqeC01 1dg3A02 1x7vA00 2bo1A00 3uc4A01 1zbmA01 2qtcA01 1g60B00 1s5uE00 3idsA01 2q8gA02 5tcsD00 5jviE02 1p9rA01 5lfzA00 2fd6U02 3fgvA00 2k0rA00 2yguC00 2oyzA00 2ls6A00 1qubA03 4ijaB02 2zyrA02 1mdbA04 2gncA00 5gm2K01 1dxyA02 1uglA00 4idcA01 3ruvA02 2ktyA01 2q6kA01 1iuqA02 2d5bA03 3abqD01 2ou3A01 1mqvA00 1gu3A00 2wqpA02 1hczA02 1wcwA02 1kbeA00 4je3B00 4lv5A01 5wj7A02 1rz1A00 3i2zA00 4h63Q01 3phsA01 3i8sB02 3dxiA00 2x1dA02 2vozA02 3hn0A01 1kf6B02 5x7vF02 4ki8A02 2debA01 1uf9A00 2jyeA01 2a9dA02 2g40A00 2chrA02 2f8aB00 3rkgA01 5ur6A00 3k2wB02 2izrA02 3i8bA01 5u4hA01 5cuwA00 3fndA01 2jfnA01 4a8jA00 2q86A01 4hvtA01 5w8qA01 5yobA00 3td7A02 1mjuL01 4lmpA02 2uxtA03 4h33A00 2l3lA01 3bn3B01 2b5uA03 2o9sA00 2ozaA03 2pbiA02 3htxA01 3l1nA02 4n01A01 1cs6A03 2d69A02 4dg9A03 3wb9A01 1yadB00 2dyuA01 3wmgA01 1o6dA00 3ibxD00 4lhpF00 3cmgA04 4nbpA00 2wlrA03 1k2xB00 2f6iC00 2i00A03 3jvdB01 1wleA01 3l3sB02 1qmeA01 2j4mA02 3mwzA00 3m4rA01 1mkyA03 3gnnB02 1kvkA01 4dmgA01 5h02A02 3d8lA00 2re2A00 4o9bC00 1u8sA02 2h8pD00 2czlA01 2gutA00 1h30A01 2a5zA00 3g7qA01 2gqrA01 3n2eA00 3u3wA02 3lxzA01 1jndA01 3hg7A01 2z8xA01 1gcqC00 5khaB01 1sw6A00 4d73B00 1pmiA03 3u7qB04 3u9wA03 1ym5A02 4nsvA01 3bpjB00 2ww8A01 2in3A02 2qs8A01 1klpA00 4cogA00 4h3vA01 3k7uC00 3mqlA04 1v72A02 3h8qA00 1z72A00 4k3bA03 2p38A01 1qb2A00 2oieD00 2ruhA00 5xaoA02 3iekA02 3exvA00 5oom800 2rhcA00 4boqA00 2r41D00 4fbnA01 3mjgX03 1cseI00 2xgfA01 4a0zB00 4zdnA02 4r7kA00 2iw3A03 4nogA01 5c4vF00 4f3xA02 2atrA00 2c1lA02 2bfdA00 3cnlA02 5y1fA00 3cjsA00 2oyaA00 2bw0A01 2zigA00 2k3iA01 4i8oA04 5hrbA02 4jdnC00 3o65E01 5a0yB01 3zpmA00 3o3mD03 3qwxX02 3ifeA01 2r6uA01 2dm9A00 2advC01 3hi0A03 4ljrA00 3kgwB01 4jwxA01 2i9uA01 1wteA02 3k8uA01 5vamA02 4bjjA00 3or1A01 4pqqA00 3b40A02 4xnhC00 2w07B01 4leuA00 3dmyA03 4gjzA00 3lb9A00 4rqrA00 2r8wA00 2bc4C01 4db5A00 1dg6A00 5d4z401 1qsdA00 3e0jA02 3w4sA00 3r2cA00 4rvuA01 2egtA01 3bdwB00 2de6A02 3qdhA01 4xpzA01 2htfA00 4lpsA00 5u00D00 1vq2A00 3h2tA01 2jokA01 3ugcA01 5o15B00 3n40P03 3oyyA02 3gg7A00 2b7vA00 4nnqC01 1ufiD01 1i7dA03 4cj0B00 5le5D00 1wlfA02 2x7jA03 1mw7A03 4yucA02 2qv2A01 4zohA04 3vqjA00 3fxqA03 3fiwA02 2dgvA01 4gmkA01 2jgbA01 3tiiB02 4lwoE01 5wqjA02 1ra0A01 1i24A01 3vr4B04 3glkA01 1hekA00 3fndA02 3zdsA02 1e8cA01 2xwxA03 3ghjA00 2oqqA00 4yrdA01 4gniA03 1ncwH02 1x1oA02 2qjwA00 4g6xA00 2l95A00 1wgsA00 3hrxA01 1um9A00 3u97A00 1bm8A00 4g65A04 3kkeB01 3jzjA01 3bkwB00 5m4vA00 2zztA00 1jqoA03 3b0xA03 1iknD00 2w5eA02 2jy5A00 3c1yA01 2j8hA02 2vq2A00 1edqA01 1mv8A01 4jdpA02 1db3A02 4ha4A00 1sqgA03 3qi7A03 2id3A02 2bcqA04 4w8qA00 4c2mK00 2j1vA00 3na7A00 1no1A00 1ikpA01 5hg8A01 1zhxA04 2aznA00 3dwlG00 3fs8A02 3zc4F02 3hiaA00 2cvhA01 2kd2A01 3gw6B01 3uoeA01 3azjG00 3qouA03 4driA00 1jalA03 4i14A02 3biqA01 4ogdA01 1v5vA02 3n98A02 3ayhB02 4gkwA00 4a63B01 2q7sA00 3ahpA00 1ez0A02 3adgA00 3e2oA02 2ouwB00 3mzlB01 1rutX02 1id0A00 5hobD00 1h3zA00 4hfiA02 2dwkA00 5m17A00 1v89A00 3uanB00 3kmlA00 2lx9A00 3s8sA00 4mfiA00 4eogA01 1sdoA00 3f0cA02 4jvwD00 4ks7A01 1gl4B00 4pytA02 5itwA00 4e3xA01 3vhxH00 1wzaA01 3td9A01 3e48B02 3owrB00 2eigA00 4jn7A02 4ebbA02 3fmcA02 4dmgA03 3hmsA00 4l8jA02 3qg2A02 1m32A02 2qzqA00 2pr7A00 4qxbA01 3or5A00 4zmhA02 4ay9D00 4lixA01 1hdoA00 3rbzA01 1gy6A00 3kkiA01 1sc6A03 1sjdB01 3nbiA01 1vdwA01 4pmhA00 3g4nA03 2ogfA00 1n2dC00 1x4pA00 5jj6B01 5i9eA03 2i5hA02 5d7wA02 3zx1A01 4jhmA01 2c5aA02 3g8kA00 3c6wC00 5a35A00 3oa3A00 2yyzA02 3d5kA02 2k9qA02 3eyaA02 2xwlB00 2vg9A00 1t11A03 1hlqA00 4llgM00 5fq4A00 2zyoA02 5c50B00 2olvA03 2x0dA01 3mmzC00 4us5C00 1no5B00 5dmhB01 2z10A00 2r15A01 3sb1A01 3jrvA00 3k6hA01 3iiiA01 3f0hA02 3mmkA01 3ehmA01 2wusS00 3fn2A00 2z1dA02 4rctA01 3mtwA02 4a4jA00 2xgrA00 5e3iA02 3fppA02 2mqjA00 1kaeA02 1zyoA02 1jvnA02 4hl4A02 3o4oC03 2f4mA02 1f5yA01 3ouxB00 2fji102 2xcmC00 4rleA01 3up8A00 2ksfA00 2o3iA01 4uf0A03 1eteA00 3kpbA00 4ja2A00 4uoiC00 5jgfA01 2pusA02 3e58B01 2iwxA00 2yqpA00 2a50B00 3zxaC02 3d0fA01 1s1nA00 1ctfA00 1gsaA02 4rxuA02 2zq5A00 5tuxA02 2r47A01 2ixsA02 4ce8A00 5uy7A00 1xkwA01 3ahcA01 3pvvA00 3aj1B01 2qm1A02 3feoB01 3t6pA02 4jr6B00 1oeyA00 3iisM00 3shpA00 3ftdA01 2g1uA00 4fibA02 3h1tA02 3ej7C00 4fdyA02 3s24A03 3kwuA00 1qhtA01 4phzA03 3tm8B00 3gdzB00 1jd5A00 4blqA00 4i4oA00 4fyuA00 3tj8A01 4hwbA00 3c8dB02 3mw4A00 1gh9A00 2e1mA05 2oznA00 3nmrA02 1qw9A02 4r2yC00 3v7jA01 4hepA01 3jc6D01 3hz4A00 1nnwB00 4bmdA01 4wsiA02 1j5xA01 1eayD00 4bt2A01 2b5gA00 2l76A00 2qmuC00 2an1C02 3wndA03 3lasA00 3alnB01 3vusA00 3gwcD01 4gqoA02 3kasA02 1gsaA03 2rinA01 3gniB01 3ec6A00 4yrbF00 3ljcA02 4g9fD01 3go5A03 4n8gD00 2qr3A00 2xanA01 2y0mB00 1c41A00 4onlA00 2gq0B01 2di0A01 4db3A01 2hnaA00 2qq8A01 3cimA00 3bwwA01 1dmuA00 2cdqA03 2klqA00 3rv0B03 2mx8A01 2v26A04 4c0oC01 3u9wA02 2v8qB00 4csrB00 4zohA03 3hrzC03 4dg8A02 1tiqA00 5drfA00 3q49B00 5b66u01 2bo9B02 4cswA02 1zeeA01 1j5sA01 3vepC00 3lz8A01 3t66A02 1whzA00 3a9zA02 2h0aA02 4ozuA01 3ko8A01 1r4gA00 3tjrA00 3jqyC00 3k6jA01 2os5A00 3e1sA01 2qrlA01 5b66c02 3ewiB00 4h3wA01 2bapA02 3vvvA00 2xzlA02 4ba0A02 2uzyB04 5ifzA00 2g8yA03 4ga6A02 4extA00 1bcpB01 2phcB01 1uufA01 2ahoB01 1jg7A01 1qtoA00 4b4sA01 2bsyA02 2ocaA03 3s4kA00 3girA04 4iciA00 4a8jF00 1n4cA01 4a6hA00 1t33A02 1q32B02 1qqrB00 3coqA00 4gqbA01 1mn8D00 1wv9A00 5czdB00 4dppA00 5tf5A02 2mdiA00 3gtyX01 1ny4A00 5jeaH01 5d94A00 2b3fA01 3iveA01 3k4uE01 4jm1A00 5ldqA00 4dovA00 3kbbA01 1zk4A00 5b6kA00 2gmyD00 4ds2B00 3ed5A02 4epcA01 2wj9B00 3eaaA00 5a2gA00 4lc3A02 4v33A02 2iaiA02 3c24A02 2wpfA03 3h1tA01 3gm5A00 2eisA00 3nkuA00 2e1mA01 4g84A01 1pj5A05 5chtB00 5k68A00 2lf0A01 3vmkA00 1hlbA00 2wzbA02 5ws7A00 2x7qA02 3qr0A03 2iyvA00 3g89B00 3ct9B01 4bspA00 5lnnA00 5lhjA02 1zr6A02 4xfkA01 4htlA01 2v03A01 2ohhA02 3beuA02 2fhqA00 4bfiB02 3n90A00 4wf2A02 4kxwA03 2i3fA00 2g30A02 3tvaA00 4dbgB02 4p1zA00 2zadA01 4v0bA00 4bx8A03 2kloA00 2h9gS00 2oa9B02 2vvyA01 2o38A01 2cofA00 1y1uA02 5b7yA00 4yfeA01 4aqnA02 4illA02 2qedA00 3g0tA02 3thtA01 1m2tA01 1lghA00 2ebqA00 2r6aC02 2pjdA01 2ahrA02 2xd3A02 3ek3A01 1x51A01 2ereA00 3r8eA01 4rl1A01 4ysxC00 1o7jA01 2grvA01 3oo8A01 2oxcA00 4tkoB01 2ogjA01 1pvgA01 2pgwA01 1r8gB00 1yhtA00 4igdA01 2xvtC00 5jipA02 2qddA02 4jbeB01 4mkiB00 2f1vA00 2kjqA01 1onwA01 4exbB00 4ec6A00 3f44A00 3bl9B02 2zw5A02 4ry9A01 2v2gD02 2obxA00 3aj4A00 3eyaH01 4ebgA00 5j41A01 3peaF00 2ig6A00 4q5eA02 4apmA03 3egoA01 3fi8A02 3s40B02 4qflA03 3m5bA00 2rikA03 1cjxB02 1xi3A00 3t8kB00 2o1qA01 1f60A03 3n3uA00 4tn5A00 3lfuA01 1uh6A00 2rb8A00 1wddA01 3hrgA02 1yrtA02 4cn9A01 1wmhB00 1bg1A01 2wjwA01 4owyA00 4m0wA01 3ondA01 2ix7C00 3scyA00 2a02A01 3keaA00 1v76A00 3wx4A00 3gbvA01 3mlpA02 4bgbA02 2yz8A01 2g6yB00 5cdzA01 1wosA02 2ll0A00 4ab7H02 2bkmA00 3qxzA01 2nmlA00 4lk4A01 4mzcA00 5vxfA02 3khkA02 2imhA01 2dpyB00 5p9iA01 4ruwA01 3gf8A02 4w5zA00 2jc5A00 3r9tB01 3e4bA00 1i94M02 2ic6A00 5k26B00 4f3qA03 2kp7A01 4ch7A02 1nh2B00 5fvkA00 5cu1A00 4gdxA02 1qtwA00 4i7wA00 2lgxA00 1nu7D02 3hi9D00 3a1yG02 3c0tA00 5vg3A02 2r6aA01 1rqgA04 4hwgA01 2xvyA01 1ugkA00 1eazA00 5fg6A00 3o79B00 1wkbA03 4bfrB02 4kp4A02 2iidA01 4ms8C01 2eyuA00 1g8eB00 2pz1A01 3i4tA02 3gzaA02 2istA01 3wajA04 2z6rA02 1m93B02 2bs2B02 5nrgS02 1f3vA00 6az1d00 2ovrB01 3aj1A01 5mj3A01 1zt3A00 1wkyA02 2wuiA00 3vtfA02 2k5nA00 1y1uA04 2k87A00 4brcA01 3tr3B00 1u04A03 1zjjB01 3m84A02 3kgwA02 3rojA02 3n5nX01 3v93F01 2j6aA00 1lbvA01 3nvoA01 1z7cA00 2bw2A02 2q8vB00 4a14A00 4s1pA00 1juhA02 3eeqA01 1iv8A01 3gm8A03 4lfuA01 2c2qA01 5ciyA02 3me4B01 2w56B00 4qa9A00 1t0iA00 1dquA02 4omfG02 3ombA02 3q91D00 1ymhE00 4e5yD02 5b71E00 3fruA01 2wqrB01 4iqfA02 1tvmA01 2gmhA03 4urfA00 1t8hA00 5d6eA01 3mwfA02 3vxvA00 3efzB00 5pxlB01 2aklA02 3npfA03 2mzrA00 4gywA05 3o6qC01 4m02A01 5bowA00 4zcdB02 5gy7A02 4aqzA00 3vxcA02 2vh7A00 3gfzB02 5b4wA00 4h2wA00 3bg1B03 2bolA01 1n7sD00 3d31A03 4pbpA00 1sqjB02 5aogA01 5xtbF00 5tnvA00 1iy9A02 4oe7A00 4rzyA02 4bucA02 1wkrA02 4v2xA01 2k0lA00 3rstA02 3f62A00 4aq1A01 3kkdA00 5d7wA01 4ushA00 1z6mA02 2qikA02 3id6A01 1yvwA00 3f4aA00 3sdoB00 4mxtA00 3sx6A00 4qq4A00 4hstB03 2dzrA00 4lp8A01 5axoA00 4ru1A02 1lk5A01 3pnnA00 4oqjA01 1d7qA00 1o4yA00 1lkkA00 2hvwA00 1jmmA01 5c04A00 2yukA00 4o32C00 3st6C00 4ofyD02 4wfeA00 1xv2D02 1n00A02 2b3yA05 3mggB01 3gpuA02 3i2tA04 4e2bA00 2vhaA02 3osxA00 3t8yB00 2qsxB02 5joqA01 4phqC00 3e58A02 3s6pD01 1vdyA00 1tbrR01 2jekA00 2n1aB00 3i6iA02 1xfkA00 1jeyA02 1okgA02 2q09A01 4ii2A04 1al3A01 3js6A01 3tb6B02 2zqkC00 1nlqE00 1g7sA04 4fm3A00 4hgzA02 2rkqA00 4xttA00 3goeA00 4q7qB00 1moqA02 3s0aA00 1v2yA00 1yphE00 3ke7B00 1rmjA01 3tvmE02 3qg5A02 1odmA00 3fmyA00 4lvpA00 3ufeB01 3kvhA00 1jmkC02 5lznA00 1kzfA00 4gvfA00 2w5fB01 3stoA01 2xj4A00 4jc8A01 7fd1A00 3abqA02 2f69A02 5bqpD00 5j3bA02 2w2uA00 3vpzA02 3knuD02 2abqA00 3euaF01 5cr9A01 3cs3A01 5tevB02 3l9bA00 1ei5A01 1zsyA01 2llgA00 3wp4A00 1q1rA03 5escA00 2lkiA00 1w23A02 3jv1A00 2w9jB00 1wimA00 1jbiA00 3sqdA02 1p49A02 1kf6A04 1yhpA02 3soyA00 2q2gB02 4j0eA02 4jf5A00 1fp0A00 1bg5A03 2c2aA02 1s28A00 4hceA00 1o0sA01 4f54A00 3lqbA00 3kzxA01 2nbsA00 2vhhA00 2ivnA01 4gx0B03 4u77A00 3asdA00 3axjB01 2nuhA00 4rckB00 2hciB00 5in4B01 3bh7B02 4hasA00 4idoA02 1x5aA01 1n62B03 3isxA02 4wftB00 1mv8A03 3i1iB01 2ogwA01 3kdrA03 4wczC01 2hwtA00 1lc0A01 4kypA00 2lnaA00 3d1bB00 2qdfA01 4iq4E03 3a0oA02 4m85C00 1gq8A00 2e30B01 5k9fA00 3mtjA01 1i1qA00 1zczA02 5jqyA02 2pfdA03 2y8kA02 3upuA03 1tr8A02 1xakA00 1cfbA02 3csqA02 2k60A02 2ei0A02 3he1A00 3ctrA00 3k67A00 2a9sB00 1lr5B00 2ij2B00 1p5dX01 5e56A00 2fitA00 3khpD01 2qjcA00 1m1hA02 4k1pE00 2odaA00 2yfaA02 1hx6A01 5lrrA01 1yc9A01 3tw5A02 3ec3A02 4mjsX00 1yqtA01 2obeB02 3u5nA02 2xhfB00 3ecmA00 2w1tA01 3pl5A02 2kkwA01 2qq9A03 2v25A02 3oc8A00 4dcuA03 2za4B00 1cz3B00 3bvoB01 3aa0A02 4k2mB01 3brqB02 2eg4A01 3rqtA01 1914A00 1j8bA00 2j3wC00 4bmvI00 4bx8B02 4di1B01 3dnhB01 4fe3A01 4d7pA00 1z84A02 3szvA01 5eynA00 2h8lA02 1jx7A00 4e9jA02 1nuiA01 3g6mA02 3geeA03 2w72A00 5daeA00 4i5tB00 4hkaA02 1h7cA00 1ceeB00 4xghA03 4n7rC01 4cemA00 2ychA01 2jliA00 3oa5A01 2fhpA00 2e6oA00 1texA00 4mdcD01 3rotA02 3cveB00 2w4lD00 4kmdA02 4q3oA00 3obwA02 2xexA05 1lzlA00 2kqaA00 3vx8A01 4n5hX00 1x7oA01 1cxzB00 3hh2C02 1e6cA00 3ljuX02 3b0pA01 3ifuA01 3dnsA00 2og4A01 1ztdA00 1z2iA01 3fxhA00 3b48F00 1p6oA00 4u83C01 1ewfA02 3rkvA00 2zg6A02 3esuF01 4cvuA03 2h7bA01 5e6sC01 2qq8A03 4wnqA01 2o3oA02 3fz4A00 1t6uD00 1oo0B00 3eccA01 5wq3B01 1u0jA02 3g0hA01 4dn9B00 3g5oA01 2qa7A00 1aqzA00 1d66B01 4nl9B01 5lzkA00 3k5iA03 3pqaB01 4hkmA01 4u5hA00 3sg8A02 1ow4A00 4xcgA02 1a8lA02 2vqeB02 2xnqA00 5o8wA02 2qudA00 3s3xB01 4nn5A00 5eoxB03 1dfxA00 4blpB00 5mu3B00 2zg6B01 4lhsA01 2kzvA01 3lodA00 1jmkC01 4zz1A00 1v71A02 3uibA01 4gyvE00 1vpkA01 4es1A00 3gf3A02 3zheC01 1hg8A00 1httA02 4fdxB00 4kc3B01 1czjA00 2tgiA00 3oqiB00 3pa6A00 3cwrB00 2lg7A00 2l7rA00 4moaA01 3kf3A02 4djaA04 1sqhA01 3e2dA02 1iyjB03 2b5dX01 2ofyA01 2pjuA02 4lctB00 5dleA00 3v5wA01 3sjlE00 3vseA01 1g0dA01 3mcxA01 3uemA02 3cnbA00 1q7hA02 2p45B00 1x9xA00 2wanA04 5hmlA02 3fvqA02 2p26A02 4nnqA02 3zj0A00 3mb8A00 3gg2A01 4gl6A01 1pzqA01 1mh5B02 4j80A03 2rmsB00 1n2sA02 1vcdA01 1xg7A02 5k91B00 1iloA00 3i9sA00 3i5tB01 5cvmA00 1xg0C00 1ij5A01 1uwcA00 3lsoA03 2lfvA00 2b9lA03 3dsmA00 2ojwE01 5my8A01 1sf9A01 3bn0A00 2o7tA00 2wsdA03 2h5xA03 4mpoB00 1pgjA03 1z0sA02 1uzcA00 3h3hB00 2z7bA00 2o4cA01 2ba3A01 4xhyA00 4qm9A00 3k59A01 2r9rB03 4nn7C02 2mmbA00 5chxA02 2gysB04 3b6hA00 3i9v202 1ofcX01 3girA03 3b7bB00 4kujA01 2nr4A02 2czqA00 3jtzA00 4f3vB01 2nr4A01 4b3xA02 5oomq00 3sonA00 4jphB00 2ykzA00 5agvA01 1us7B02 4qhzA00 1imvA01 2pkhB01 1szqA01 1jz8A05 2xciA02 1amuA02 1yt8A03 4gl6A02 1wpoB00 3r1kA03 1wr2A01 4ycaA02 3gyrA01 5hubA00 4h2uD00 3fzqB02 3eyxA00 4i4cB00 1xbiA00 1wdeA01 2qrdB01 4gc3A00 3tk8C02 2lg4A00 3htkB00 1yo7A00 3qtgA03 2j58A03 3votB02 1or7C00 2fiuA00 4hlbA00 4evqA01 3fdrA00 3a0yB00 4w9zA00 3fcdB00 2qifA00 1u6eA01 2pifA01 1m2kA01 4k5bC00 2gl5A01 2ixaA01 1iqvA00 5ibkE00 2iu8C03 4kddA01 3lafA03 1ug3A01 5tgfD00 5i7wA02 4c9bB00 2fwrA03 3ripA02 3rccN00 4qfwA00 1f3rB02 3wbiA04 1x49A01 4fxvA00 2k49A00 5flmE01 1g8xA06 3nrgA00 2qq8A02 4hh0A02 3f6gA02 4p02A03 3v9fA03 2yvpA00 3b59A01 4n40A01 4czgA01 5fooF00 4i62A02 4nl4H03 3gyrA03 5b22A01 3fewX02 2fkbA00 5wu6A01 5fcrA02 4yv7A02 3grcA00 3osjA01 3obhA00 4bjyA02 3wyfE00 1w66A01 4e12A01 4bu0A01 2yk0A03 3a4rA00 2qdrA01 4e6rA00 4qtaA02 2v7bA01 1ncwH01 5e6sB02 3u61C01 4hdrB02 3dodB01 3jv3A01 1s99A01 1xgkA02 2pfuA01 1ulvA03 2jbrA02 2lrsA00 2ksnA01 1f39A00 4by6A01 3nv9A02 3gz7B00 1zs9A02 1nf1A01 3h99A02 5eo9B02 4i6mA02 4yb6A03 3lhhA01 2w1vA00 1yvcA00 2r1bA00 4p0gA01 6az1L00 1r8jB01 1dipA01 1xiuB00 1becA02 4hu8A02 3ppbA00 2x2zB03 4ilkA02 3ledA02 2ns9A01 1pfjA00 2vooA02 3r8qA02 3ehuA03 3i45A01 2ixsA01 1otrA00 5lhmA00 4hxyA00 3a35A02 3fr7B02 3qe5A01 4rg9B04 4yhxA01 1ep3A00 3w0fA01 4ii2A01 3godD01 3bamA00 5iz3A01 6az1E01 4cp8E00 2iciA02 5v1yB00 4g3oA00 1ui0A00 1rykA00 4n18A01 4fhrA00 4q9cA00 4ycsA00 2rc3C00 2bghA02 4hynB00 2gfnA00 4cihA00 3hakA00 1odhA02 2cjaA02 2yimA01 1i7nA01 2c4kA01 3zr5A02 1ybhA02 2nrhB02 3ou2A00 5m3qA00 1nv8B01 2codA01 3ahcA03 2lfeA00 2i7vA02 3pd7A00 3hrzA05 5u95B03 3t57A02 2b0aA00 4g22B01 3e7kA00 2hjnA00 3dliA00 2d96A01 5ax2A00 5c9fA00 3euoA02 1wiwA01 3fbgA02 1j34A00 4wkaA02 1q15A01 1vk6A02 3f40A00 3euhA02 3ei3B02 3eo4D00 2b7uA01 2d1sA04 3htaD00 4pq0A02 3r3pB00 2r0yA01 4po2A02 1rtm100 3e8vA00 4eekA02 3h8gA02 1wwuA01 1et9A01 3htkC02 2mj7A00 5n9cA00 3dddA01 4lgvA01 3ge6A00 3mahA02 4fzvA02 2m2jA00 3ed3B02 3d5nA00 2kctA01 3hf7A00 3wp0A00 2fueA02 3ckkA01 2w3xC00 1sdwA02 3lq6A01 4dw4B00 4ga4A02 1nkgA03 2l8tB01 4c08A01 1w0dA00 3qzrA01 1wsrA02 3hzhA00 4yjqA01 4rzkA00 5bt9D00 3wh1A01 2kcwA00 2dk1A00 3no4B00 3d3bA00 4gwmB03 3e8sA00 1qexA02 3kjxA02 4zxgA01 3so1E00 5an9B02 2gnxA01 3c7xA00 3gxvB00 2c9kA01 4emeA01 2aprA02 1dkiC01 4x9rA01 1mowA01 4rncA00 2a90A01 5dldA01 1a2oA01 4obiA00 3v75A01 3po3S02 2bbkH00 4r0mA02 3hhwK02 3h0nA00 3g2mA02 2l7aA00 1h4aX01 1wu7A03 2ve3B00 1pu1A00 3eipA00 3myuA01 5ayvA01 3pe8A00 3tqlA02 1njrA00 4cymA00 4o8hA00 5joeA00 3f7sA00 4c2mC02 5de3A00 3ph0C00 2gviA02 3gw6A04 5kngB00 4aq4A01 4ysxD00 3rkoA00 3aj1A02 1shxA00 2pmlX01 3bl4A01 1rk4A01 1yxeA01 2ms3A00 4xurA00 5bw0F00 4c5wA02 3bkxA00 3cucA00 4ww1A01 2vsyA02 3b6eA00 3gk6A00 3hcnA01 2mkzA01 4c8yA01 3ccfA00 5g05P02 2ffwA00 1xwmA00 5ia8B00 4kgqA00 1lqsL02 1r89A02 3racA00 2esnA02 4cc0B02 4impA01 3c4mA03 3s98A03 3h8zA01 2k4nA00 1b9oA00 3n0uC01 4feuF01 1n7hB01 1h6wA01 4evfA03 2efeA01 1sbxA00 4jbmA02 3a7rA01 5t3yA00 2zjrA01 5dx6B01 3nb2A02 3fwyA00 4i0nA00 1ox0A02 3oy2A02 2id0A04 3gz8C01 2zexA00 4clfA02 1zcjA04 5c0yA01 3delB01 3warA02 2rgoB03 2dleA01 5d78A00 1v7wA02 3m2tB01 3ccgA00 5e4wC02 5afbA01 3op8A00 2g7gA00 3ub0A01 1vpdA01 2dnrA00 4jdmA01 4hdhA01 3i3vA02 3czpB01 5uazA00 4eguA00 5t5qB00 3lhnB00 4eihA00 3dskB00 5v5hA00 4l57A01 2vs7A02 3euaA03 3pfyA01 3fjyA01 5ijtC00 1k92A02 1b9hA02 5fmgG00 1yg9A03 2gu1A02 2q18X02 3gqcA03 3v7nA02 3clqA03 2j8gA01 2qpwA01 5wrkA01 2fcwB01 5bncA02 3ffhA01 3silA00 4bg7A00 3p3yA03 4rekA02 1auuA00 3wqlA01 3v1aA00 3hdoA02 2h1eA02 2p2eA00 3na6A00 2p12A01 2w79A00 4qi3A00 4jjhA00 4impA03 3p1tA01 4m00A01 1eb6A00 4oltB01 4owwB00 2y9yA01 1l6rA02 3i2nA00 5ktnA03 4aeeA04 4q69B00 3p0uA00 4m0wA03 4pf6A00 2mu2A00 4ypoA02 1x6bA01 4i42C01 1s70B02 3ed4C01 4nesA02 1v84A00 2oerA00 4apoB00 1vkfB00 4hdoA02 1w1wA00 1g5bB00 3k0zA00 2wskA02 3p4tA02 2xppA00 1kobA01 3bb9B00 3rpwA02 2g3mA02 4ay9B00 2qyaA01 4dtgK00 3p73A01 3ioxA02 5x40A00 1fzcC03 1ae9A00 4cvqA02 5cs2A00 1x43A01 1muwA00 3gh1A02 3rhzA02 2c7hA00 4a2nB00 2om6A02 1lc5A01 2i9fB00 5krdB00 4e2xA02 5c7qB00 3l5iA03 3h5qA01 3l4fC00 1ur4A00 4r7yA03 2uyoA00 4udsA00 1u7iA01 5ayvA02 2p61A00 4nzrM02 1mpgA03 3i4jB02 1g86A00 3qleA00 1cw5A00 3i9v700 1bb9A00 4iirA02 2vk9A03 3m6wA01 2ysgA01 1eerC01 5t4nB03 1vq8100 4z0tA00 2qlpA01 3bf0C01 1njkA00 1z6aA01 4bj1A02 5exvC00 4bubB01 2rk0A01 5l37C00 4zgmA00 1jf8A00 2lw9A00 2v05A01 4citA00 3wutG00 2o01200 5erxA03 5febA00 3nrrB01 2nr5E00 1un2A00 1l0nK00 3d22A00 3k17A01 2xtmA00 4hmsA00 4zi3C00 3x2fB01 3rqbB00 1z7aC00 3hhsB02 1xmxA02 1g61A00 4l82A00 2vldA01 3cedA00 4x8qA02 5lhfB00 1ny9A00 1t6aA02 3mjgX01 3pjyB00 4an3A01 1c4zA02 4uucA00 2mumA00 2olsA03 3ly1D01 3qoqD00 3ajdA02 1t0jB00 3thxA03 5bz3A00 2v05A02 1gxrA00 3im6A00 2cz9A02 2genA00 3pl9A00 3jyoA02 3lf5A00 3vsmA01 1sr4A00 4k4kA02 2ed7A00 3tdwA02 1qrvA00 1k9aA01 3pzlB00 2nrtA02 1k2i101 3ufcX02 1imtA00 4ky9P00 4le5A02 3bs0A00 2aepL01 4v24B01 3rwxA02 4nqwB00 5hkoA01 5decA02 1w99A01 3mbhA00 1sqgA01 3kmuA01 2au3A02 4r9iA02 4gouA03 1iq8A03 1j4aD01 1vfiA00 4cu9A00 2zkmX04 3c48B02 3tu3B03 2ghjB01 1sjyA00 2hnuA00 3peiA01 2c31A01 2f68X02 1y4mA00 5ewiH01 4aayA02 4qloA00 1btkA00 4bj8K00 2pgeA01 2e7mA01 1wt6B00 3ulrB00 1zu0A01 3r6fA00 2xfdA00 3n06B01 3u4kA00 3bvpB00 2kjzA02 3q45A01 2ynqA00 4k89A02 1vloA02 1fg7A01 3obwA01 1h0hB01 3ct8A00 3ix1A01 4nhxA01 2rb7A01 3uo3A02 3ax2A00 1h6fA00 4az3B00 3gw4A00 2vqcA00 1w8uA00 5eghB01 1o6wA02 3p3eA02 2g5dA03 4hvzA01 1wb9A02 2d6fA01 3piuA02 3qdlA00 4ol9A01 2jbwA02 4qamB00 2de6A03 4h8wC02 3mkqB00 3i4jB01 4h40A02 3huhA01 1xi9B01 2e8pA01 4es6A01 3gg9A01 1nulA00 1fltX00 3fzvA03 2f4lA01 2qjvA02 4n13A01 1j77A00 3bkrA00 2zskA01 4o8yB00 4xduA00 1z0wA00 2yhxA03 4ikgA00 1y8qC00 3ch0A00 1uelB00 2r8eA00 5eiqA02 2h6oA01 3rnvA00 4evfA01 3c7jA02 2p0lA00 3swoA02 2giyB00 1z45A01 3gg2C03 4glaC00 4hpnA02 4cfsA01 2edkA00 2wtkC01 3h7oB01 1zd0A01 3i4hX01 2a40B00 1i8dA01 4pz0A01 3om0A02 3d02A01 5ibqA01 3h4xA00 2zueA03 2qjgA00 5eccA00 2np3B02 3jybA00 3h41A03 3qbyB00 3lq9A00 3gdvC01 3fe3A02 3futA02 2iuyA02 1u6fA00 2yxoB00 1v65A00 1hxmB01 1q7lA00 5b66o02 1cvrA01 3drwB01 1enfA02 1va6B02 3k05B02 1okgA01 1l0qA02 4xwxA00 4fe7A02 1jy2O00 4heaA00 1w3bB00 3gnlB02 2zc0A01 2mf4A01 2a2lC00 1ep3B03 1bdsA00 1djxA03 1rtwB00 3gnfB04 1j8eA00 2ylnA01 2kdiA00 2fdnA00 1xd3C00 4rxmA01 1n9wA01 2v3gA00 3pp2A00 2vrwB03 1rp3A01 2qvwA03 2zxiD02 3qp1A00 1fviA01 2ynzC02 3bdvA00 4k73A02 2ebuA01 2ogkD00 4ghjB00 5jrhB01 4h5gA02 3e6cC01 4r8qA01 1te5A00 3oetD03 4jb1A03 3cebA01 1x6oA02 4jklA01 1wr8A02 1tkjA00 3hfqA00 3dwcB00 5o9fA02 1sh1A00 1vqqA03 1lfpA02 2qr4A01 4ms4B02 2q8kA01 3ifrB02 1evyA01 5d01A01 3dxrB00 3errA01 1iktA00 2dm4A01 2aiqA02 2ab5B02 3b5eB00 1vqrB00 1sxjA01 4ew5B00 4lplA00 2r4gA02 3nvqA03 4ptsA01 3ziyA01 3b8bA01 4jotA01 5g0tC00 3p02A02 2mm4A00 1xqoA02 1q9jB02 5ifiC02 2ko6A00 1f8dA00 4gvqA02 5kbwB00 4a15A01 2fgtA02 3k96A01 4y5tB00 3juuA00 3dzaD01 2rd9B01 4d05B01 1xm3B00 5w8qA02 4nfnA01 3hdvB00 4r8oA00 2nliB00 2dv6A01 3v97B01 3vmnA02 4mptA01 2kerA00 3wqcA01 4rm7A02 3sqlB01 5vfbA01 4qhpA04 3n9yB00 1io1A01 3duzA02 1bhuA00 3d2yA01 3t4lA02 4fu0A02 3bzsA00 4f4oC01 2op5B01 3b08B00 3qnmA01 2k85A00 2qs9A00 1uklC00 3ia1B00 5n7qA02 1tigA00 2proC01 1nytA02 2cxiA02 3dcmX00 2qguA02 1pyiA01 2o16B00 3sscA00 4gipA00 3f8kA00 4fqjA01 3zheD01 3brkX02 3qyfA03 4wuvA00 5d18A00 1i0rA00 3gl3D00 3b4uA00 1sy7A01 3c3vA02 2r6jA01 2vswA00 4jgbB00 4cvuA01 2b9lA01 2xp1A01 3cx5I00 1k5cA00 2w39A00 2x8xX01 1mr7C00 4lpqA01 2h9aA02 1xo0A02 4wxmB00 2nn6I02 3kbrA01 3payB02 1s4nB00 2kivA02 2ztgA04 1vrbA02 3njdA00 1uf2C02 3lmlB01 1n0qB00 4k3dI01 3p4eA02 4a2aA04 4b6uA00 5wxhA00 1wf1A01 1y0yA02 4rv9A02 3gv0A01 4wwhA01 4cgyA04 5rubA02 1xttB00 1t9iA00 3o6cA00 3gocA00 2q1zB02 2bpa100 2xw9A01 1mbmA01 2dkjA02 2jepB00 3s9dA00 1rypL00 1pjuA02 3js6A02 3tmaA02 3te6A02 2hjmA01 4c23B02 5l9sB01 3cerC01 5j7mA00 2o3oB01 5dnyA02 2xvyA02 1jb7A02 3e8mA00 2qvhA02 1xmcB03 3bwsA01 3zigA00 4weeA01 1j7xA02 4m0nA02 1y5oA00 3edoA00 3oajA01 4fe7A01 3fo8D02 2y1hB00 2i38A02 4ofdB02 1zkdA02 4twcA01 2fxoB00 4qi8A00 5xjnA00 3thfA00 3o6qA02 3lp5A00 1bquA02 3jx9A00 3fcsA03 4dxtA00 4yzzA01 3dnpA02 2dmfA00 2rbbA00 1o59A02 3csvA02 1g8mA04 2geeA01 2jaqA00 1hq1A00 2bz1A00 3lkdA02 3cnuA00 5m04A01 4o6kA00 2vugA04 3d3aA03 4x00A00 4dgfA00 2fokB01 4gv8D00 4jaqA01 4ob0B01 1znbB00 4yorB00 2ap3A00 3m5qA02 4ahcA05 4hwtA02 1o3xA00 5ghlA00 1om2A00 2kesA00 5nceA00 4c0eB01 3i33A03 3w15A01 4i6kA00 4u19B02 3g68A02 4p02B02 1vq8200 1nkdA00 2o7iA01 4dz6A00 1e6uA02 1krlA00 4eziA02 3kcgI02 2w72B00 5eokA02 4xchA00 3c8iA00 4c16A04 2x4iA00 2rdeA02 1zj8A02 1byiA00 3kwrB00 4q8kA00 4efiA00 5eb9A00 1d2zA00 4id9B02 2z69B00 3jsbA01 1u6zA03 2dg8D00 3hr8A02 1nowA02 4i6yA02 4nzcA01 1fp1D02 5vccA00 3qouA02 3c12A02 2yicC02 2qdeA01 2cbzA00 3dd6A01 2qu7A01 3whrB01 2dryA00 5cr9A02 2gefA02 1tuoA01 1vheA02 2e26A02 4flbA00 3rc3A02 3l0iA01 4u2nB02 5ae0A00 2ih2A01 2z8lA02 3vdpA04 2qgyA02 3mlfE00 1jz7A02 5jffA00 2c5lC01 4ylmX00 2wwxB00 3x17A01 2vqeM01 2o36A03 5jawC02 5hsqA03 3ma5D00 4fytA02 4a0gD01 1v6pA00 2o8bB02 4bouA00 3mixA01 2hsnA02 2ozhA01 3h5jA00 1b0bA00 1h8gA00 1wv8A00 2khkA00 2cfmA03 1mw9X03 1sqgA02 4wciC00 3vskA03 3u9lA00 1bunB00 3vvcA01 2rugA00 5jr2C00 4dbgA00 2bivC02 5iyzB03 3ibyD02 1ka2A00 3lewA01 3cxbA03 5knhI00 1jtvA00 4dapA02 1ywyA00 1y8cA01 4j7hA02 2wsdA02 1sbzD00 1ldjA01 3bp6A00 1ixmA01 4h27A01 1zmeC02 3bz5A02 4yoeA02 5mu9A01 3le2A01 5x6bJ01 2kmaA02 2e9xG00 2aibA00 5jioA02 2i2oA00 2y78A00 4negA02 2je8A02 4oc8A02 1wvhA00 1vf7A03 2hxvA01 3p0wA01 3mdpA00 4npsA02 3pjvD01 2dchX01 1z56C01 3oo8A02 5e9nA03 1ng2A01 5jtwA01 3mq2A00 3g5tA00 2hw0A00 4gywA03 4xymA02 3oouA02 1nigA00 2kinB01 4bk0A02 4bhuA00 2krrA01 3rtkA01 4pv6A00 3on3B00 2hhcA02 3mcaB01 1j83A00 4z1xA02 2jx4A01 1serA01 3sqzA02 3kk8A02 1s55A00 1vbfA00 3l0oA01 1iukA00 2qtfA03 1uqwA01 1nn3A00 2hepA00 3jq1B01 3zn3A00 3vwaA01 4ifdK02 1vhzA01 4bt9A02 2mr9A00 3k63A01 3tutA01 1w36D01 3en9A03 1ixhA02 3u4gA00 4pxwB00 3i5xA02 2xr6A00 3amuA02 2yo3A03 1epuA03 2gqwA03 2pjhA00 4dm7A01 3lx7A01 2htiA00 4y1lC00 4jqrA00 3egcD02 5j4uA01 3d85C00 1ofwA02 5isvA00 1gnlA01 5jodA02 3jwgA00 1kzyC02 3t0yA01 1r8eA01 3kk4A01 1rk6A01 4ndhB00 2lzrA00 1f0xA01 4aezI01 1dp4C02 3sh4A00 1cmxA00 1ji1A02 3n0rA01 3frnA02 3hq1B02 1xmxA03 5xapA02 1y0nA00 2bo4A01 5i8tA00 2xr1B04 2wjrA00 4z9mB02 3c3jA01 4nzvA01 1wyuB03 3cxnB00 2o14A02 5e1vB00 3f0dA00 4isdA01 4hziB00 1sflB00 2nwrA00 1y07B01 1jmtA00 4p5eA00 2y0tA00 1ca1A01 4jhtA00 3nqnA00 2yu0A00 3czcA00 3lqnA00 2ihxA00 3vupA00 1mwwB00 2qmiA02 1hufA00 2zcmA00 4lo6A00 1u7lA02 3pj0A01 3r15A00 4kikA03 3pzgA00 3tadB01 2prsA02 2ihtA02 2xs2A00 2x1dA01 1lfwA01 5dn6G02 1x4eA00 2e9xB01 1ddbA00 4usaA07 1sefA01 4hhxA00 2p0gB00 5khtA00 2ln3A00 4f88102 3nvwK01 2z0tB00 2dgxA01 4jtmA00 2x1wO01 2x4gA00 3mtrA01 3ndhA00 3t8jA00 4bpzA00 3wjpA02 2j0aA00 5ee0A03 1uvgA01 2f5tX01 1wtjB01 4iibA02 3hztA01 4h7pA01 4bx8A01 1kblA01 4p7tB00 6em3G00 2lboA00 4c76A00 4zf7B00 3czbA02 1d2fA02 4aeeA01 1p99A02 2wnfA00 3fzxA00 4a20A00 2i49A02 4kv2A00 1bi7B00 2h88D00 4r1bA01 1senA00 1u9pA00 6ay2B00 2z16A02 1jmuB01 3bb8A01 1miuA03 3c4nA02 4n0rA01 4i6rA00 1jv1B01 2h41A00 2e87A01 5i4zA00 3r2gA00 1txgA01 4da2A01 2jxuA00 2xuvB00 2nszA00 3ui2A03 2ra1A05 2y8dA01 4eglA02 2w2gA02 3rf9A03 2wyoA04 3fhvA00 3ojaB03 4h63H02 2j4xA01 4n0dA01 2p0yA00 1enwA00 1y14A01 2h8pC00 2qf4A02 3e2lD02 4h8eA00 3gkeA02 3p73A02 2vseA03 5maoA00 4p2yA03 3s0xA01 1wjjA01 4atiB00 4bzpA00 1q6zA01 4jfcA02 1t2dA01 3weeA03 1jjfA00 3sluB01 1xauA00 4f3nA00 4itjB01 2jfkA02 4abyD00 2pmlX02 2yq3A03 2vcnA01 2ly1A01 2bsjB00 2ei9A00 4duiA00 1zv8G00 4q7zA02 5cgqA00 3hulB01 1otjA00 1zhxA02 2h36X00 1jw9B00 2ifcA02 5erqA01 5kecD02 3vhxF00 3fp3A01 2zfzD00 3dkxA02 2yhwA02 2k5qA00 1x7dA02 5jrjA02 4kx7A04 2wadA01 3llvA00 2i9wA00 4bq2D01 3d37B01 2wy7Q00 3wwxA00 3k25A00 1mbyA00 2g7cB01 3thoB03 3wknF00 3gvxB01 1x3xA00 5o33B00 2g9zB01 1zpsA02 2jtqA00 3cwcB01 3h49B00 4ecnA01 3m9lA02 3c0iA02 2cvcA01 3tv0A00 2ej7A01 4rz4A00 4hdoA03 3m66A00 3cvzC01 2ck3A02 5b7gA00 3s6xC02 4h27A02 1is1A01 1z4rA00 2htaA00 3g8yA00 4beuA01 3bp8C00 4r03A00 3ir1B01 3fhgA01 1ahsA00 3t9oB00 5bu5A01 1lq9A00 2vpzA05 3wmm000 2j98A01 3bqxA00 2pp6A01 2m35A00 3vasA01 3keyA02 3cihA01 1ffvB04 5g6rB02 2raeA02 2ht1A02 2ii7H00 4uopA02 1qvrC04 2gk6A01 1p90A00 3u1kC01 1v6tA00 2j0wA01 1eexG02 4hktA01 1tgxA00 2obeA04 1devB00 3abiA01 4jduA00 3bxjB03 1rl6A02 4bh5A00 2r76A00 2arpF01 4kv7A02 1bolA00 1ewqB05 2yugA00 3ajdA01 2d8mA01 3e2iA02 1vytA01 4bpfA00 3atsA01 1rl2A01 1ynfA00 4wgkA02 2x2uA01 5hwrA00 3h9xA00 3v4vB01 3ctzA01 2kwbA00 4ae4A00 4mpgB01 1ehyA00 2wvfA01 4g38A01 5usfA03 1z6tA03 4w4kA00 2wv3A02 3ly0A00 2xpwA02 5fmgN00 5freA00 1zbsA01 4fzlA01 1g5aA03 3mgbB00 3i2kA03 2hrvA01 4zl8A00 3m3iB01 5nusA00 3ry4A01 2c4nA01 3ej7H00 3v6iA01 3k9rC00 3hn0A02 3vygD00 1wd5A01 4nvsA00 3e2vB00 4cyiB03 3holA04 3pp9B00 4jj9C00 4yvdA01 1e2wA02 2dbyA01 1ii7B02 3ky8A01 3p8nA02 1vkuA00 2ejwA01 5bseA01 1q40D00 2r4iA00 3imiB02 4hljA01 1wr8A01 2gruA02 4r3aA02 2ylnA02 2frxA02 4wsjB01 2dgtA01 4ktpB02 1tt5B02 2kgwA00 3mgxB00 2ch5A01 1ts9A00 2btqA01 3eazA00 3p5nA00 5jn5B01 2hi0A01 4uuuA00 2o26U01 1mo9A03 5k3qA00 2uy2A00 3dlqR02 2vf1A04 3c2uB02 4mchA00 5cb1A02 1s3sH00 4bc3A02 3u7zA00 3abqB01 3slrA02 2z51A02 3fppA03 5cg8A00 1rlhA01 4inkA01 5iipD00 3lm3A01 3f3kA00 2fibA01 2aeuA01 2jisB02 4f3lA01 1sd4A02 2olvA01 1xnfA00 3cerA02 2gf4B00 3cuqB01 3l4gC03 2ghvC01 3x3mA01 2ymsD00 4flwA03 1ta8A01 2vn8A01 5u8uA03 4rk5A01 2xjpA02 3oi8A01 2k9yA00 3ayvD00 4npcA00 2kn0A00 3f14A00 2z0uA00 3usyA01 4mtnA01 1qgnG01 2xrcC03 4iwbA00 2pefA01 2jlnA00 3gopA01 3ffrA01 3hsyA02 2ob5A00 3q5yA01 4lksA00 3fm0A00 3fqmA01 3t38A02 2vqeE02 2xtsA01 3madA02 2v1yA00 1y9bB01 1sczA00 2e6fA02 4bkjA01 2r9yA02 2outA02 3ck1A00 2qklB00 4x0jA00 4m1qA02 2l69A00 3cygA02 4awdB00 2q3zA04 2it2B00 3bb7A01 5j90A00 4ap9A02 2f5zK00 3iplB01 5c5dA00 1rwhA01 4cyfA01 2r6iA01 1u6eA02 3zrpA02 5jk7F00 3islA02 4e9sA02 3cg0A00 3cinA01 3tuiD01 2hbvB00 3piwA00 2vapA02 2l9sA00 4it6B00 3t49A00 1rffB02 2prxA00 3s28A03 2qsbA00 4jjjA02 4gafB03 3bxwA03 4z7eA01 3b0xA01 3etcA01 1zyiA00 2p6vA00 3vyxA00 4dguA02 3o1iC01 1wvfA04 1h72C02 5wqoB00 1vb5B02 5ep2A01 2mzsA00 4ybnB00 3eh2A02 2doeA00 4dzgA00 1ye9A02 3k4iA01 2g5dA02 1zemA00 2yhoE00 4b60A02 3o4xE01 2qffA00 1wcuA00 5tvoA00 3mbdA00 3brvB00 1wtjA03 2lfhA00 4i07A00 2oojB00 1ek9A00 3flhB00 3rwxA01 3wadA02 2guwC02 4m83A01 3x0uB01 3mdqA01 3swfC00 5c5oA01 3trgA00 1aoeA00 2hv8D00 3k8aB00 5k87B02 4ehcA00 4fchA01 3wirA01 1jz7A03 3gf6A00 2o1cA00 3fp9A02 3tacB03 4hu2A01 5u9cA01 3ktnA00 6bogA05 1kkoA02 2gviA03 2vrwB02 3gjxB00 5b6cA02 2oq1A01 3im1A03 3p32A03 4a29A00 4r6yA02 3b34A02 3k8kA03 2k5fA01 5azpB01 2kz9A00 2lxrA00 5o9mA00 3bguA01 2xvsA00 4lw2A01 4er8A00 2iepA01 2pq7A00 1umuB00 1gzhB01 2npsD00 3tsoC00 2d9yA00 2p1pA00 2xljA02 2f6rA00 3gm8A04 4evfA04 1t8kA00 1um0A00 2j23A00 2x53S02 3vk0B00 2xqhA01 1zlhB01 1hykA00 2iqjB00 2hxiB02 5jxtD00 2yicA01 3n2lF00 1h6wA03 1fhgA00 3rl0h00 5hnmC00 3pddA02 1bzkA00 3qfcA01 3zf8A00 4x90A01 4f4oC03 3ixlA00 3mopK00 1darA05 3otgA01 3zqsA02 2w5aA02 2ggoA02 1mzwA00 4wk0B02 2hs1A00 2pmrA00 1c4kA01 4cidA01 3uqcD02 4pzkA00 5g3yA00 2o4aA00 4ernA00 1v95A01 3hfwA00 1bxoA01 4g6tA00 3lydA01 3ulbA01 2c0dA00 4im0A04 2i7uA00 4z0zA00 3g23A01 5kbpA01 5enqA04 2nycA00 5ojjF00 2kvlA00 2vqgA00 1kmvA00 2knaA01 2xodA00 5tmaA02 4i3yA02 5e4eC02 3mzfA02 5g2uA00 4ydrA01 2q7dB02 1q9uA00 2w42B01 3rqzC00 1dd9A03 2je8A04 4gd3R02 3qguA02 5a9uA01 3ialA02 2q9uA02 3hisA01 1vloA03 2fmpA04 2xheB01 1jegA00 1wjkA01 2lfuA01 3q91B00 4h0cA00 2qebA00 1rifA02 4q28A00 4rlcA00 4gn3N00 3hnoA01 4isvA01 2cr8A01 4mhlA00 3mcbB00 2z1nA00 1wthD02 1wmtA00 4a1fB00 4doiA01 1qs0A00 2z3zA02 1bg1A02 4bj0A00 3rtxA01 5lxxA01 2d0oA04 3kwlA03 1rm6A02 2dvjA01 1sj1A00 2mfqA00 2ywiB00 4kd5A01 4fvaC00 2egjA00 4ak1A03 5m49A01 2ekgB01 3v48A00 3ezjG01 4ao9A01 1vq8E01 3l8kA03 2fsjA02 3prbA01 1ah7A00 2qq5A00 1s1fA00 1wfpA00 3p8cF01 3qwbA01 5di3B00 5a0dB01 1uw4A00 1oedA00 2hbaA00 3n91A02 2zyrA01 3ux4A00 1vemA01 2v1nA01 1waaC00 4ua3A00 3rrwA02 3mz1B02 2zatA00 3d1nP00 1w7cA03 4guzA01 4hzdA02 3cwnA00 2le0A00 3kawB00 2ofkA00 2yeqA02 1ng7A00 4b93B00 1ub0A00 2pv7A02 2rd5A00 5xgtA00 3fdbA02 6blqA02 1pyfA00 2qzuA01 3mxnA02 4n0tA02 5itmA00 2ogjA02 3akjA01 2jc2A01 3kyqA02 4lesA00 4wesB04 4ht1T00 3lltA01 1hcnB00 1tzbA02 1y6xA00 3bmvA03 3zj2A00 3t1oA00 3ephA01 1z8uC00 3c3dA01 3duzA05 2welA03 4gd3A00 5e33A03 1srqA01 1z84B01 4oy4A02 5ksdA02 3dsbA01 1te2A02 3h7hA01 3vpbA02 3hoiA00 3cqlA01 2ksgA01 1nslA00 2yv5A03 4gkhB01 3fgxA00 2rgqB00 2e7pC00 4urpA00 4fm9A05 1ihuA02 1nkqA00 4ybaA00 5itaA01 1dj0A01 3sqnA03 2r31A02 1q8fA00 3ptyA02 1uxtA01 1ko7B01 1nj1A03 5th6B00 3cuqC01 6em3S02 3hqiA02 5u95B02 4zohA05 2q6qA00 2wkbD01 1nzeA00 5hw4A02 1cidA01 1qwyA01 3efaA00 1vmbA00 3hhdA01 4ha7B00 2vp4D00 3a8gB01 3osvC01 3oc7A01 1n9pA00 4fazA00 2nqcA00 3fkrA00 3zgxA02 2ywmA01 4e0pA02 3kwlA02 3kqiA00 1sr8A02 1e2tA02 3bj5A00 4h05B01 2n7dA00 2vnuD01 4n82B00 3qldB01 3i5pA03 1m5yA01 5i3sB01 2ictA01 2xc8A00 3euhD01 4ypcA00 2nz7B00 3i3wA02 2abyA00 2ifxA01 2kelA00 1uirA02 3rrcA01 2gl5A02 1xffA00 1l1sA00 1ku1A02 4gc5A02 3ialA03 3mabA00 4e8dA02 1mmaA04 2ho1B00 4lpqA02 2fnaA01 3w15B00 1xl3C00 2af5A01 1x66A01 2fxmB00 1urvA00 2z1cA00 1mw7A02 1g5gA01 1n13E00 4kh3A00 3sy8C02 5hi4B00 5lszA00 3h95A01 3vtaB03 4ezeB00 5ovoA00 5bpbA00 1zmaA00 3er7B00 2k9kA00 4uiqB00 3t5vF01 2l8oA00 6elmA00 1wouA00 2w91A01 1bifA02 5ezqA01 4r81C00 3oiiB01 4knuA02 4hpnA01 3mogA03 5ljmA00 2pfzA00 3ondA02 3dkrA00 2d0iA01 3o8qA02 3py9A03 3tnyA02 1vpdA02 4aefA03 3c4sA00 1j8iA00 1s2oA01 4hfiA01 2biiA01 3dfuA02 4r16A01 4qnnA00 5i7wB01 1pu6A02 4hdjA00 2qt1A00 4wndA00 5tf2A00 6bogA04 2k0zA00 3lkbA02 5d38A00 4wovA01 4zoxA00 4mlzA01 2eo1A00 4bhbA01 2g0bH01 1svmA02 1h44A01 2jj7B02 4k7bA00 4lrtB01 2jgpA02 4d8mA02 3bzwF00 2kwyA00 3ptaA03 4wjqA00 3cyjA01 3wkyA02 4z3xA03 2zw5A01 1xi7A00 2lefA00 4loxA02 1o9gA02 2xwxA02 1u7nA00 3k6yA02 3fmeA02 2zvbA02 2vl7A03 3op9A01 4au8B02 2zj8A01 4q11A00 4x28C02 4af1A02 4rz3A00 2iw3A05 5c4yA00 4pf3A00 2cb4A00 2mjnA02 3uitA02 3ruvA03 3gv0A02 5v8sA01 4dhgD01 4dnxA01 4wbxC01 4oltA02 3d9xA01 3ethA03 3tfmA02 2rhqB05 4ecgA00 1b7yB01 3ej9E00 2w5fA02 3jvaB02 1o0lA00 4hy3A02 3v33A00 3or1C01 3p8bB01 5whuC00 1u8xX02 4ofaA00 2xgjB01 3pvzD01 4n77A00 3tvjB01 2w02B02 1qhxA00 1ip9A00 3voqA00 3hnxA00 2iw3A04 2dg7A00 2di7A01 3aowA02 3v9fA02 1us5A02 1pc3A01 4nzuL01 4zdfB00 3tjyA00 4qglA00 2cr6A01 3puqA01 2xy2A02 2y6xA00 3eeqA02 1ltlA01 2daqA00 4dvcA00 3fflA00 5uj6A01 1y9zA02 4lqeA00 1fo5A00 5f42A02 2w16B01 1zh8A01 2hy7A01 3exzA00 4c98A02 4oevA02 1xneA00 1krhA02 4yk8B00 2duyA00 3oq3B01 3cqzH00 4d2kB00 2hzcA00 3rsbB00 1juvA00 5vfbA03 4uzsB01 3rsjB02 4bxoA02 5w83A00 2nocA01 4nc6A03 3tfmA01 2fe3A02 1x9nA02 4i3gA02 3jz3B01 5gipA01 2bujA02 4zs9A02 3iuoA00 2ltnA00 4rqaA00 1gr0A01 2uytA02 2izxB00 3kh8B01 4h7nA01 1z0xA02 4f06A02 3esiA00 5toqA02 2e67A00 3eozB01 3vlaA01 2w8xB00 3obiA01 1trlA00 2petA02 4r9oC00 2e6fA01 4d70A00 3n9xA02 1fc4A01 1vk8A00 4murA00 4en2A02 4e72A02 3l6uA01 3e8xA00 3qwlA01 2ojwA02 3ljwA00 1tkeA02 4aycA02 2qnkA00 4x84B01 2nqlA02 4uf7B00 2a3lA02 2xuaA00 4i3gA04 2y5dB02 2e44A01 3styB00 2il5A00 4djbA00 3i5qA01 3ll3B02 4wy8B00 2zf8A02 4pliA00 5g0aA01 1ygmA01 2gujA01 1yb5A01 2kxjA00 2icyA01 5j8qA01 3irpX02 2flhB00 2l3nA00 4bbqA01 4ps6A00 4aumA02 2k35A00 4f3mA00 4kvfA01 5xztJ00 3hn3D01 1qwgA00 4wnoA02 5te1A01 3fi9A02 2i6eA02 4e21B02 2qu7A02 1nstA00 4d9bC01 1gmiA00 1orfA02 3c0wA02 1vomA01 1mswD04 3dvoA00 2ditA01 3n0aA02 2qziA00 2i5fA00 3bwsA02 1g5hA01 2x32A00 4jhyA00 1mtzA00 1se8A02 3bu3A01 3rjvA01 1wn2A00 3gnjA00 5xymT00 1su1A00 3nywD00 2hxsA00 3madA03 4hi6C00 3oc4B03 1r73A00 1m1hA01 4ap2B03 4xomB00 2jkhA01 2llvA00 3o7wA00 3qw3A01 1s5jA05 5h66A00 3i08A02 3ol0B00 2dt7B01 1xv5A02 3fdjA01 3qraA00 1we6A00 3rj2X00 3tbiA00 1wrdA00 2pvuA01 2iw1A01 5isuA03 5jzjA01 1mb3A00 4dziB00 4fbcA01 2dknB00 3veaA01 1hulA00 4lr2A01 2ktaA01 5itqA01 3hr6A03 1milA00 2apcA01 5lxeA00 2p35A01 1ht6A01 2h6dA01 1vajA01 3s6fA00 3agkA02 4pswA03 1tviA00 1wihA00 3ushB00 5aqbA01 1zi7A02 2v6kA01 1tdjA03 3qi7A02 3ojaA03 3hbmA02 3ihjA01 1ybeB01 2qyzA01 4xdeA01 3l6bA02 2qlwA01 3gcgB00 1uelA00 4hjhA02 4jb3A01 4hvzA02 4gieA00 2p5mA00 1xodB00 3p0bA02 2waoA02 3i4fC00 2zzjA00 4hseA02 3is5F02 3h0oA00 3gasB02 3ekgA02 4dx8K01 4kkrA02 3lvuB00 4za1C00 3pf2A02 5lwxA02 4he8D00 2qtcA03 4wwhA02 3o0fA02 3cafA01 1yiiA01 2greF02 2yw3E00 1of5A00 1yuzA02 4b4dA01 5nzxA01 2g7cB03 3tu3B02 1sffA01 2p38A02 2ys8A00 2jahA00 5bq1A00 3mduA01 1f15B00 5vg3A01 1fi2A00 1x6vA02 3iv6A01 1y6zA01 2cirA00 4lvfB02 4hjhB01 4l9dA00 1gmuA02 2vqeJ00 1g1tA01 2zxiA04 4my5A02 3b59A02 2a1jB01 5t5iD00 3nzzB00 3tcmA02 2eb4D00 3dbxA02 2a7lA00 5drbA02 4q6bA02 3nvwB02 5ldgA00 1gvfB00 4jpsB02 4g9qA00 3bqyA02 3w1oA00 4etnA00 4aefA01 4esxB01 5t5lA00 2xg7C00 1zlhB02 4la2A00 2himB02 4sgbI00 2gu1A01 5i7pA02 4binA01 2hf2B02 3razA00 3nb2A04 3ptaA01 1u14A00 3o5qA00 2dsxA00 4ze8A02 1jkxA00 4cvuA05 3o0dA00 1qjpA00 5c8qB01 2kncB00 5m29A02 3bchA01 1w5rA01 3wwhA01 4id2A00 3lcyA02 4mvfA01 4buhA02 5le5b00 4gvoA02 3u12A00 5d1mB01 4mo4A02 2d37A00 1ehiA02 5tkzA00 2wjsA01 3a9zA01 1mkeA00 3px4A04 1n62A02 1yb5A02 1xdyG00 3mzlB02 3pgvB01 4a0gC03 2fp1B00 3ntuA01 4v0hD00 4goqA00 3ckcA02 5kshB01 3wurA00 3oxhA01 4u04B01 5xdcB01 1u5kA02 3cp3A00 3hvyA01 1h0hB02 5wceA03 4ljyA02 2f23A02 2l14B00 1l1eB00 1weyA00 2zejB02 3rr6A02 2ghaA01 4okcA01 3qqaA02 4q66D02 4fd7A00 3qneA01 4pkcC00 3pplB01 2bcqA03 4eo0A00 4ryaA01 3cmbA00 3og6B02 2xquA01 4u1eI00 4rvcA00 4qiwA04 3mvcB00 1w5sA02 1x6iA00 1b4rA00 3stqF00 2ox9C00 2ozvA01 2xsgB01 5lvoA01 3da8B00 4mouC02 1mkcA00 3ttcA04 2x7qA01 3kyfA01 4i5sA01 4wtxA00 3i6vA02 4m55E00 2odfB01 1pswA01 3ooqA02 2z43B01 3mp6A05 1w1wE00 1w70A00 1rsgA02 2p8vA00 4k8lA01 2j3sA03 5t1dB00 2e1mA04 1dgwY01 2r85A02 2r7dA03 1x7fA02 3u4yA00 3kyjA00 5b8iA00 4muoA02 3ggdA00 2cz9A01 2r75102 4narA01 3egrA00 3op4B00 1wyxA00 5ik4A01 4layA02 5tj3A01 2krxA01 2vk2A01 4lo6B03 2mlbA00 1pj5A02 2a1jA00 3f1sB02 3ehhA01 3stbC00 2iimA00 1qq5A01 4yuvA01 2jxtA01 4bucA01 4jx0A02 1v9sD00 5m04A02 1griA01 3kxkB01 1exbE00 2i71A01 2wj5A01 1yc9A02 2g0wB00 3obeB00 4nufA02 1v1aA00 2x5oA01 1rhcA00 1n00A03 2o3gA00 1h72C01 3bc8A01 3fovA00 3luiC00 2ze6A01 1iooA00 1aohB00 3aekB03 2zayA00 3cswC01 3i9v103 3tszA02 5b1aI00 1dj8A00 1h9mA02 4j6cA00 2pstX00 4m4pA04 4o9kA00 2pm9A01 4ywaA00 1ewqA02 2ozjA00 3h2gA01 3ce9A02 1xsfA00 4wkgA02 3lq6A02 1n7sB00 4kvfA02 4zs9A01 5cgqB01 4u7aA00 1k8kG00 1wyyB00 4egcB00 3t5oA03 4bszB00 5ji7A00 4is2A00 1vziA01 2xdpA02 3mizA01 1y2kA00 2hlsA01 4k3cA01 1kqfB02 1dbhA02 5enqB05 2oznB01 1k1aA00 1pujA01 4hyeA01 3ezjA02 3cf6E02 2fg1A00 1vziA02 3m7aA01 4pswA02 2hcnA03 3l4gM00 3fzyA00 3ke3A01 2dc1A01 1zcjA02 4hn9A01 1n02A00 3au4A04 2i4aA00 1fobA00 3v2uC02 1uuyA00 3pftA00 1pgjA02 4r6uA02 3a2zA00 5c8qB02 3r2vA02 4pklA00 2pv4A00 3getA01 3jv3A02 1tf5A03 3o4hA02 4mb0A00 2k3qA00 1nt2B02 1c8cA00 4afmA00 5tjgE00 2wi8A01 2dplA02 1js8A01 2jw5A00 3vibA00 1ve4A02 5h8wA04 2fs2B00 3kgyA00 2yv9A01 5gutA01 5jk6B00 1vq8W02 2inuA00 5a3lA00 2ebbA00 3zyyX03 4v0kB00 3ii7A00 3ekgA01 1evsA00 2dybA02 3cm1C00 1y14D01 2f1nA00 3edpA02 3od1A02 1yqgA01 3sy7A01 2yv4A00 3dy0A02 2ri7A02 4gx0A02 1rkuA02 3i4oA00 3k2tA01 5wm1A01 1q44A00 4gzuA02 3gekA00 3byvA01 3wgxB00 1ux6A02 2wlrA01 4fe9A03 3ecsD02 2o1eB01 4bllA01 5b22B02 3ldvA00 4b4lA02 3agxA02 1ksiA02 4zemA02 3tytA02 1ecfA02 4pw0A00 1rk6A02 4joiA00 1uarA02 4oo1I01 3lhlA00 3pmiA01 1e9rA02 5aykA05 5uptA01 3ledA01 1ss3A00 3fy6D01 2yx1A01 1b93B00 3uv5A01 3vp7A00 4w9rB01 1lmlA03 3zgjA01 3thxB05 3krbA00 3l12B00 3n70A00 1gs5A00 5f6eA00 4nmyA01 3netB01 2bgoA00 3fzgA00 4yarA03 1wv4B00 4lr4A01 2hq7B00 2qswA00 3l56B02 3cl3A01 2mgvA00 4gniA02 3jrpA01 2gttC01 1ucdA00 3un6A01 5h66B00 1vheA01 4qftA00 4n0tA03 3deoA02 3eqtA00 2jh1A01 3c0fB00 1tplA01 4mocA02 2ju4A00 4qb3A01 5ds2A00 3gu3A02 3gn5B01 1hxrB00 3iteB02 3it4A00 5if3B00 3dd9D01 3s5jA02 1gk9B03 1yjdC00 3ajvC02 3w1bA02 3m9wA02 3d4eA01 2ww8A04 2hmaA02 4bs9A04 3id7A00 4ewcA01 1io2A02 1qv9A01 2x3gA00 5gudA03 1pxvA00 2gboA00 1rkqA02 3lrtB01 2xllA02 3ajcA01 5ao9A00 3m9qB00 4y0cB00 1pfxL01 5gutA02 3ea6A01 2q7dB01 4gbmA00 2ieqA00 1p1tA00 2nsqA00 2wkkA00 5ktaA00 3ilsA00 5bv3D01 2fqxA01 2o1bA01 5i9eA02 5bpdA02 3ehdA00 4aybC02 3dxlA02 2a2cA03 3d9xA02 3mtvA02 4zbwA02 4bfgA01 3a5pA00 1knwA01 1wgpA01 4fvyA01 1uxtA02 3kbqB00 2zcwA01 1o9iA02 4nn3A00 4ivaA02 1sluA00 1tq1A00 1sqjB01 3kifD00 1d2fB01 4pj2A00 2juoA00 1c4kA02 1iq4A00 3k0bA01 2wyoA03 2vk2A02 4q7kA00 3l2pA02 1d2nA01 4nt9A00 1uvjA04 3n2qA02 3ajxA00 1kx5B00 3eixA02 2qazD00 5g4dA01 4ml9A00 4f67A01 2rc8A01 4l1dC00 2dkaA01 4wksC01 2okmA00 2lvwA00 2mqaA00 1qwyA02 1vjqA00 1jfwA00 3sebA02 2x1qA00 4xcvA01 2dawA01 2a6qB00 2gc5A01 2cy5A00 4h8wC01 4c4oA02 2c0zA01 3q64A00 1n9wB02 2gs9A01 3bzyB00 4mitG00 1c4oA01 2qgmA02 3m7pA01 5cnxA01 3sjnA01 1vq8S00 5erxA01 2ebmA00 3egoA02 3c1qA00 2pzhA00 5f4cA00 1wy6A00 4g22A02 2gumB01 5o45A00 1knxE02 4nyzA03 3kxaA01 2oqzA00 1rd5A00 1i17A00 1c96A01 4wreA00 5lx6A00 2wntA02 2mkhA02 3u3wA01 2oap101 1zqwA03 3t3wB00 2df7A02 1wz9A01 5jenA01 5agvA02 2bzyA00 2fgcA03 1avyB00 5k98B00 3s24F02 2rq6A02 3loyA02 3bl9A02 1s7mA03 2yqgA00 5f0xA03 1n7xA01 3efgA00 3r1vA00 4n2kA03 5w8oA00 1u0mA02 4izaB00 2hcjB01 2bzvA00 4n7rC02 1b4pA01 1t3bA01 3q8dA02 2azeC00 3u83A02 2nt0A01 3ooqF01 3lnnB03 4rr2B00 1y88A02 1nxiA00 3mvkD01 3ot9A01 3llmA01 3c6kA01 1gjzA00 4rg8A02 3a09A01 4inzA00 4v03A00 1s3eA02 2fp4B03 3v8hC00 4ajyC00 5kukA02 1wkqB00 1amlA00 1htwA00 3pjpA02 1vjhA00 4z9fA00 1e2wA01 3bgaA01 3rznA01 3h36A00 1mjfB02 2gmlA01 4ro9C01 1h03P01 4im8A02 3islA01 2w50B00 3venA01 1iw4A00 2w9mB01 3ro3A00 1nscA00 2dyjA00 1b9mA03 2yg5A02 5coyA00 1r3eA02 1xebA00 3hjlA01 2o4cA02 4iscA00 4xxuA02 1m93B01 4dzdA01 3nytA01 2zvfA02 4mozD00 1dqgA00 2pgsA02 3f3bA00 3k7dA02 2xkrA00 4nhoA01 2o57A01 3f7xA00 4aumA01 5ciyA01 3r6uA01 1us0A00 3fvqA01 5u47A01 3maeA00 2b1xB00 1vb5A01 2xauA03 2iutA02 3bgaA02 4o6vA00 2c2aA01 2vf9A00 2dceA01 1kqfC00 1v70A00 1a8lA01 5bp3B00 2ychA03 2wqrA03 4apmA01 4ze8A03 1x3zA01 1gmeA00 2q9uB01 2jgqA00 4gzuB03 4dlqA03 4fakA00 3p0cA00 3kg7C00 3ihjA03 1y74A00 2fh0A00 3lbmC00 1z3eB00 3kf8A00 2q0xA01 3m8oH02 2ajrA01 4q9nA00 4eziA01 3u02A01 2v4dE01 5jozA02 4rlqB04 3zd7A02 5ljwB01 4wk0B03 3ia7A01 3w9sB00 5bncB01 3ekiA01 4fdbA00 5kxjA03 4w4oC03 4ohxA02 1y66A00 1l8qA01 4g12A02 6bogA01 1tqyB01 3akhA02 2jfnA02 3eviA00 3einA01 1g55A01 5o2dA00 2vseA05 2apjD00 5o9fC01 2ozeA00 4nurA03 2q7xA00 3c4aA02 2z4iB01 3o12A00 2aj6A00 2vbfA02 1ydlA00 3u62A02 4hsqA02 2qhoD00 1et9A02 1v4pC01 4qqdB01 4jrfA03 2kckA00 3it4D02 1nf1A02 3t7lA00 2r15A02 2h1iA00 3hl1A02 1nr4C00 2yk4A01 4f02D02 5xyig01 3f42A00 5i2mA02 2q24A00 3lo3a00 4o7qA00 4g2tA01 5dm6J01 3k1zA02 1pucA00 1e19A00 4eunA00 4p98A01 2imlA01 1v43A03 2r5uC00 2a6tB01 3ddmA02 2w02B04 2kt9A01 2b1lA00 2ytyA00 3mtsA00 3uueA00 2puzA02 2d9oA00 3rc3A03 4b46A02 2wpvB01 5i29A00 3qatA01 2nvaA01 2yweA05 3zudA00 2fj8A01 2q7rC00 2avdA00 3sz3A02 4eo3A01 2x7xA03 1lk3A00 2yucA01 3jtmA01 4e2gC00 3m9qA02 2zihC00 3ilkA02 2bdtA00 5bj4A01 3buxB03 2q2tA03 3no8A00 2cjsC01 3n5mB01 2fpeA00 1nrjB00 2diuA01 2lbwA00 2r7aA02 3kgkB00 3clkA02 4m1bA00 3lxqA01 3ijlA02 3tahA02 2o8rB02 4wbyA02 3ckcA01 4pyhA02 3dplC02 4bpmA00 2j76E00 3e9nA00 2o8lA02 1k3rA01 3nrtB00 1gm5A05 4xloA02 3iupA01 3l0gB01 1sgvA02 3hjlA02 1lamA01 4x5mA00 2g7hA01 3njaA02 3q3eA02 1wu9B00 3cbfA01 1me8A00 1urqA00 4u8uN02 4ghnA01 3ebyA00 3caoA00 5c5oA03 3e6pL02 1vlpD00 5nt7A00 3n6zA01 2uzgA00 5gjoB01 3ss7X01 1mxgA01 4ynmB00 2mswA00 1ub1A00 3vliA02 4cyiA02 1rcqA01 2rp4A00 1bi6H00 4iaoA01 2ddhA02 4iilA02 3o2rA00 2kt2A00 3d9aH02 4g6iB01 2ew0A00 3b1fA01 4fchA02 1kjqB02 3mkhA02 2x8nA01 1fd3A00 2jhnA03 4ffuD00 2kjgA00 2ggrA00 2gwcB00 2pnlA00 3c4bA01 3apsA00 1ed1A00 1wz2A05 2gtiA02 3oryA02 5h6kA00 1r4xA01 4i6jB01 4qqtA01 3mc3A00 3d7nA00 4r3lA00 3bq5A01 4ua6A00 3pukA01 2pv7A01 2dadA00 1ia9A01 1twfK00 1zbpA01 1cjaA01 3eh0A03 4lgdC01 3r0uA01 4iylA02 2boyF00 5e44A01 1w0pA03 3zyyX04 4mxwD00 4e9xB01 3s6dA00 1ov3A01 4dwdA02 5oom100 3dkqA01 4jcqA00 5jx2A02 2b97A00 3a2eA00 3dcpA00 1kmiZ01 1bkpA00 4g4gA00 3tzyA01 3qhqB01 1fn9A02 2ecuA00 4pdcE00 3rnmF00 2qcuA03 1f0xB02 3q9dB01 5ktkA00 1xawA01 3ucgA00 4ydzA00 4iqzB01 1yx5A01 1u8sA01 2fb0A00 1pbgA00 1ns5B00 3rbsA02 3fhwA00 3nfqB02 5ijwA01 3dboB00 4l4eA00 1khiA02 2g1pA02 4emtA01 5ehmA02 1i1wA00 2j4xA02 3utmB01 2iswB00 1kl7A01 1pxzA00 4i1dC01 2bpsA00 5jajA02 3n71A03 3fdbA01 2qmwA02 3bwgC02 3bd1A00 4nsxA02 2dnzA01 1e7lA02 1edqA03 2a6sB00 4rhaA00 1r29A00 5xtfA00 1jkgA00 4hojA01 1vg0A02 4aw7A02 1ogaD02 1t77A01 2e55A00 3ii1A02 3ct5A00 2exrA01 3pfgA02 4puiB01 4ruvA00 4rmoA00 1z2zA02 1h6gA01 4x3lA02 2jdjA00 3by6A02 1sxeA00 4e4yA00 3rf9B01 1vb3A01 1fyhB01 1x2iA00 3eofB00 3kciA00 5ch8A00 2yi9A05 1tq5A01 3flvA00 2r9iA00 2hrzA01 3i9v600 4ohnA01 4x8qA01 1m15A02 3ez9A02 1yf3A01 1uxyA03 3ifqC00 1ro5A01 3pnzC00 5oobJ00 3p9aF00 2ckwA02 4dkcB00 2zzeA03 3cb2A03 3e9fA00 1tafB00 2x7iA02 4iyaA00 4pfiA00 2rinA02 1l8nA02 4unuA00 3l6dA01 1xhbA01 1df0A03 2uvfA01 2j4mA01 5u4qB00 4ak1A02 3e4vA01 2pt7A02 2ebfX01 2f1cX00 2lnvA01 1vf1A01 5iyzD02 2nrhB01 4o6yB00 1jqlB00 4jdmA02 1v2dA01 1xkzC00 2z6oA00 2vfxD00 3gazA01 3gazA02 2ia7A00 5co1B02 4m1aA00 1xjvA02 3ly1A02 3p5jB02 4pdpB02 3gd7C01 3rfwA02 1wpbB02 4pvkA01 2a15A00 4kc5B01 2aq5A01 2e3lA00 3hhyA01 2awiF02 3e38B01 2p09A00 1fjrA02 1oisA02 2dy1A03 2calA00 2ozgA01 4a4zA02 3ciaA04 1p5dX03 1ti5A00 2kdxA00 1kyfA02 2eggA02 5fcdA00 2knjA00 3qw9B00 3qr8A02 2enyA00 2opkB01 3s2rA01 4ptsB01 3cqcB02 2wsuB02 4gc8B00 4cqbA02 2o0tA01 5dc4A00 2l8kA00 3douA00 3ehrA02 3g1jA00 2w0gA00 4af3D01 1t71A00 1jmuB04 5gotA00 2l25A00 2quyF00 1n0uA05 2nrkA00 2zktB01 2rt3A00 2z6vA00 1j20A02 1pd3A00 4ybmA01 3hkoA02 2eklA02 2p90A02 2furB00 4xwwA03 4f98A00 4x2cA00 4jniU02 5jtwB02 1x32A00 4hn9A03 2ph7A01 3uswA02 2cxaA02 1uynX00 2xrbA04 1no4B00 2dhzA01 5torB01 3b0xA04 1w61A01 5ksdA03 2yevB02 2ybyA02 3qvoA00 4wesB01 1ccwB01 4ammA00 1smoB00 4nhbA00 2pc1A00 2ddfA00 3e99A00 2wiyA00 5x8rm02 3d9aH01 2fgxA00 1yllC02 4zk8A00 4njmA01 3pu5A01 1cttA02 2gh9A02 4yz0A00 2n59A00 4fu0A03 1f2uA00 3oonA00 5fxdA01 2l1aA00 1mntA00 4r7vA00 4k8gA01 5fu6E00 1kolA01 3qr8A01 4usaA04 2zb9A02 4emiA03 3vmaA01 2qmxA02 2darA01 1n0uA01 4h18A00 2azwA00 1eggA00 3hwrA02 4mnoA00 3d2eA06 4r1kB00 2ebeA00 3kztA00 5ly3A01 2zcxA00 4yapA01 5cecA01 2uzzA02 1ollA01 2b8mA00 4zi6A01 4s12B01 3natA01 3e05B00 3nkgA00 4mybA00 4aidB02 2c5aA01 1q8dA00 1mcpH02 3rv1A01 1yd9B00 3avrA02 1jg5A00 5fjqA00 3vnnA00 3nraA01 4z3gA00 2iv2X02 4f06A01 3bmzA00 2dnlA01 3ktdC01 3erpA01 4zznA01 2bjdA00 4g5aA00 4ogdA02 2cocA01 3f7lA00 1jb0E00 4gv5A00 2eg4A02 2oseA00 5xd7A01 3djlA03 2gu9A01 4bqnB01 2y1sA00 3icsA03 3wg9A02 4k2nA02 2btqB03 3erwC00 2wzpR01 3ve9A00 4zv9A00 3brkX01 4yj4A00 1r2jA02 4zzfA02 2p62A01 2vh1A01 4nqwA01 2eqbC00 2ygqA02 1wosA03 4yqzB00 2v7qJ00 4f85A00 2qwoB00 1kx5D00 4d0nB01 4zpjA01 2bykA00 3oaaA01 2crqA01 3jamf00 1b8tA02 3ogzA01 1a0aA00 2loqA01 1qr9A00 2ft0A00 3gonA01 1owwA00 1zatA02 3g3tA00 3dpuA01 1i1nA00 3qexA06 3tktA00 1v5rA00 1poiA02 2m38A00 2od6C00 1cb6A04 3vtoQ02 5er6C00 2oo4A01 3snoA01 1iv3A00 3rlgA00 3p9yA01 2v9kA04 4khbC00 2q07A01 1xrtB01 4o4vA00 3gmfA01 2bm8B02 2zw2A00 1w07A01 2j5bA02 2pv1A00 4d3tA01 2dvmA01 4aw4A03 2vxgA02 4yuyB02 2dskA00 2dyqA00 2f7aA01 4jrrB00 2geyB00 3lufB01 2d4gA00 4u13A00 2i5gA00 2e7yB00 3tklB01 3ceuA00 2epiB00 3cwvA01 3e7qA00 5dzeA00 3p1aA02 3guvA00 4bfgA02 2rj2A00 5bpkA02 4nheB01 2mcfA00 2bu3B00 2qyuA03 5vi4E03 5ctmA00 3k17A02 3b77C02 3rgfA01 5lauA00 2ynmC02 5f82B00 5aarA00 3gonA02 3oufB00 3fxqB02 2driA02 3dgpB00 3u4vA00 2o3iA02 2f3xA00 4g65A03 4r0kA01 1xruA01 4ii2A06 5in4A02 5fbfA00 3igzB01 1omoA02 4c12A02 3po1B00 4cydB01 2kafA00 2i46A00 1pl8A02 3o69A00 3pqaA02 2itmA01 4p9tA02 2d1pB00 1k0hA00 4lypB00 3enuA00 1o69A01 3viiA00 4f9cA01 1uixB00 1kw3B01 3onmA02 4ovxA00 4ohjA02 2i00C01 2ot2A02 4g2aA02 1g8fA03 3hpxA01 6bk0A02 3lovA02 2w02B07 1v7zA00 1zxtA01 4dkjA02 3fynA00 2vf1A01 1x9nA03 1gqeA01 2yb6A00 1h7dA00 1xubA01 2ljpA00 2zpaA01 3k1sB00 4hjhA03 3bk7A01 2vigA01 3g9rA00 5da5C00 1a0iA03 2v8pA01 1oxxK02 4rlyA00 4g2nA02 3eslA01 1a3wA03 2z7eC00 3m6jA01 1se0A00 4h59A02 2xryA03 1jcnA00 1zoqC00 4jvcA00 2ezvA01 1s7iA00 4u7iA00 4fo0A04 4rljB00 5bzaB01 5jdjA00 3u1xA00 3cioA00 3nfwA00 4iw9B01 4ncdA01 3s6pG00 2c6uA00 3db5A00 4wihA01 1cscA02 3a9bA00 3vutA01 1vr9A01 4mj7A00 1z45A03 2qmiA01 1i4wA01 1pp9J00 1dc1A01 3c7fA01 1g2rA00 1mvlA00 2wtgA00 1vd4A00 4iauA01 3u23A00 3ulkA02 5tkyA05 3tuiA00 4zgwB00 3dz1A00 5bnzA02 1qz9A01 2ej9A01 1ft5A00 4jqpA00 4eq3A01 4emyA01 4r4mA00 4hp8A00 4jysB00 1q33A02 3kxpA00 1qklA00 4go6B02 5dnyA03 3wa8B00 2gs5A01 4rajA00 5d79A03 1k66A00 4zocA02 1r69A00 2lcqA02 3sj5A00 4mz2A00 3mduA02 5cdkA00 4mmoA01 3ua4A01 4dciD00 5d8iA02 5cm0B01 4u9cA02 1qqp400 2xczA00 2fb6A00 2l3oA00 3tmpA01 3cvgC01 2qa4I01 5fuhD00 4e0qA00 2vd8A01 2arfA00 2q8nA02 2l81A00 3v8bC00 2hwwB00 5axmB00 3b8fB00 2dt4A00 2cqaA01 4xqcA02 5m6nA00 4ascA00 2e4tA02 4f4hB01 1pjrA02 1r0rI00 4bwpB02 4lqqA01 2jm4A00 1pgxA00 5aq8A01 1es9A00 2qupA00 5jiwA00 1xqaA01 5xnlh01 1qs1A01 2no4A02 4ihqA01 4xcbD00 5wkpH01 2qy6A01 2du7B03 3u2uA00 4k8yA02 3qijA02 3fzeA00 1uwvA02 4c2vA02 4ij5A00 3i99A01 1c96A03 1wmhA00 2b5wA01 2bogX00 5tk8A00 1ik3A02 3wkyB01 2vg1A00 1l8nA03 2pptA02 2raaA00 2llmA00 3ctvA00 1g29102 1zkcB01 3pivA00 2l22A01 2h1eB01 3u3pA02 3ic8A01 4ar9A02 4ydsA00 3fm2A00 2wlgB00 2j8zA02 1xqbA02 2wdtC02 2iu4A02 5wrtB00 3iavA01 1ef1C01 2z4iB02 2lrqA00 4ud4A02 3kh5A02 4ix9D00 3cvgA02 4fwgA03 1gxuA00 4oavB02 2wqlA00 2rfiB00 3rfzB03 4fzbC01 1wmkA03 4gm2A00 2ck3H01 2ou6A00 3v7nA01 3caiA02 1t50A00 3tmgB01 4mllB00 1lt3A00 4q75A02 3tviA01 1hskA02 3v09A06 3kmaA00 2yveB00 2wr8A01 4pteB02 4k7rA01 1wdyA00 3erbA02 2cpcA01 3q6bA02 3gemD00 4ejsA00 3pubA01 2c9wA02 3o4xE02 4mgqA01 2ixeD01 2k0nA00 1qy9A02 3m0dC00 3a9sA02 1kaeA03 4ekjA01 2hsnA01 3qa8A02 2oz4A03 3u4fA01 3g0kA00 2vfrA02 5axgA02 3zo9A02 4y4qA00 2rooA00 2ptfA01 4htlA02 1vcaA02 1miwA03 1d4oA00 3tw8A01 4r16A02 2a6hA02 3wwlA00 3psgA01 2o1kA00 3aeiA00 3k1wA01 2f40A00 2h88B02 1tnrA00 4p22A01 2w91A03 3lyyA00 4jhrB00 3pdiB02 2ra9A01 2olnA02 3thmF00 2xw6A00 3hd7B00 4h0oA02 2b3rA00 4idoA01 3kwdA00 5wcmA00 1pc6A00 1bpvA00 3m0rA00 3vayA02 2eqnA01 3g7dA04 3pshA02 4h3kB02 2nsfA01 4iz6B03 5c5rA00 5xnlH01 3mu7A00 1by1A00 5gizA01 3hk0B02 1mqsA02 2dy7A00 2r60A01 4fcjA00 1snnA00 2oyhA00 1ex0A03 3mjfA02 4a4aA03 5gs7A01 4whsD00 3e21A00 2in5A00 3juiA00 1k7cA00 5teaB00 2wyhB02 1jmuB03 2j49A00 1gu7A02 3nxhA00 2fboJ02 4mjeA01 4lnpA00 2g2qB01 1c9kB00 2d0oA03 3r7aB00 3vbaA00 4ry8C02 3u3zA02 5l0nA00 3goaA01 4mpsA00 2yj6A02 4a5zB00 3dmgA01 3dx5A00 2r0cA03 1c96A04 1zarA02 2w4eA00 2qzuA02 1a7sA02 1x60A01 1pmhX00 3ejxD01 2vf8B04 2kwzA00 3ctpA01 2lf0A02 1zp6A00 2jeeA00 2k7qA02 3l0oB02 2chcC00 5f2kB02 1z9bA01 1yq2A04 3craA02 3g85A02 3hnwA00 4i9fA03 3dm8A00 3v76A03 5ew0A00 2fq4A02 3mhxB00 3ohsX01 1gklA00 4ng0B00 5dxxA00 2ewlA00 3rh7A02 4rnyA02 3nv1A00 2lm4A01 3ffrA02 1evyA02 3vskA02 1djuB01 2d1gA02 2e7gA01 5xw3A02 4egxD01 1sh8B00 4wzsB00 2n1kA00 4udqA02 3vywA02 3aczA02 1vphB00 3g8rA01 3u9rB02 3kd6A00 2ikkA00 2yreA01 4bbrM00 2lhrA00 4noiA02 2ayxA01 4n78D01 2vrsA03 2xheA02 3wgtA02 3mgmA00 4cbvC02 3m1aJ00 1cwxA00 1cr2A00 4g1lA01 2ivwA01 4qptA01 2idoB00 3p01B01 1ufhA00 2p57A00 4pdyA02 2rjdA02 5i99A03 3ozyA01 4jxjA02 1tfzA01 1imjA00 4xxhA01 3oq3B03 5hyvA03 2qcxA00 1zymA01 4i2xE03 2irpA00 2lqjA00 2kxgA00 3io1A01 4pirA01 4b7yD00 3pm9A05 2a3jA00 1vq8Q00 4jzjD02 4c24A00 3ny5B01 3pqiA01 3r6dA00 3p2nB01 1mu5A01 1qd5A00 5vi4C02 1wf9A00 3p3oA00 3vbiA01 2rqcA00 1nuwA02 4j6rG01 4b8vA02 2wylC00 4cuaA00 1p16B02 5xh2A00 3utmA02 4d02A02 2nq2D00 1wigA00 3zpjA00 4gbjC01 2uxtA01 2ch9A01 2ccwA00 2rrkA00 3u8zD02 4ay7A00 4kg0A01 4l4qA03 2rblA01 4cu7A02 1nu7D01 2b9eA02 3fljA00 1vmjA00 1vdwA02 3lulA01 5izbA00 5mifA00 3ha2A00 4euuA01 1hn6A00 2ba0A02 5aoyA00 3blzA00 4bi3A01 2au3A04 3sg8A01 1qupA01 2zcaB00 5kmyA00 4q6bA01 1f0lA01 3ddjA02 1lmmA01 1jovA00 2b0cA02 1npsA00 4kn8A01 3dxrA00 4nk6A00 1dt9A02 1kyqB01 3k5wA02 4fevA02 2v6eA01 3lb6C01 2f5gA00 3mzoB00 3k7pA00 3gwoA00 3oq4E00 1narA00 3ttcA02 2lvaA01 2bcoA02 3blnA00 4q63A00 5wlfA00 2zptX00 3onqA03 4e4tB02 2mp2B00 1x5oA01 3vopC00 2ztbA03 2b1eA02 3sg0A02 3cxbB00 4l57A02 2vgnB02 3h5iA00 4j5xD00 3mzwA04 1je3A01 5kwiA00 4hvwA00 2qr4A03 1qzfA02 3olzB02 3m1uA01 3l5iA01 4h0oA01 2ey4D00 4ivkA00 3obyA03 4wlhA02 4bbyA02 3pasA00 2yt4A01 3qayA00 4ecnA02 1wh3A01 2b0hA01 2zaiC03 1z6nA00 3b9wA00 4nt1D00 1z1sA00 5xdcA02 2jzvA00 2y0nC00 2lksA00 2zxpA02 3g91A00 3liuA01 3qbvB02 2vkjA00 5m7uB01 2pqrA01 3fppA01 1k7bA00 4xfwA00 3w0eA00 2fgsA01 2ljkA01 1zu2A00 2dgdA02 1x74A03 4xr8H02 4dddA02 1b89A00 3vi6A00 1vf7A02 1s68A01 1te2A01 3ab8A00 1uhvA02 2hx0A01 3ocoA00 5kdoB00 2mamA00 2lnhC00 4jylA01 3eo6A00 1zi8A00 2daeA00 4wilB00 3ozyA02 4w9rA02 4ak2A01 2bw8A00 2gs8A02 3k4uA02 1extA02 2fp7B02 2kjiA00 4bndA02 4lnwA00 4nc2A00 3cb2B01 3dkzA00 1gotG00 3jsyA01 4pmoA00 3ihjA02 1ew4A00 1pcxA04 3bniB00 4zciA03 4f7zA04 4grhA00 2dulA01 1jm7B00 3tglA00 2qvwB05 2dngA00 3r2pA02 4rdzB00 3dk9A03 3i47A01 4dxfA02 5jlaA00 4irzA02 1chmA01 5groA00 5c6kB00 1whxA00 4hetA02 2a7kH02 4lclA00 1ornA01 2e5fA01 4tt3G02 1k99A00 3o0lB00 1vctA01 3r9vA00 1x5eA01 3irhD01 2m1hA00 1khcA01 2r6vA01 1wgtA04 4r80A00 2i7tA01 3wgtA01 2v6vA00 1t72A01 1ultA02 3ig5A02 2hqyA01 3cp7A03 4fs8A02 3hi2B00 3abzA03 2vwiD01 2mphA01 4gywA02 4eq9A01 1bcpA00 2oggA01 4hljA02 3dlqI00 2klnA00 4lw4D00 2d1cA01 2xwvA00 4yyfA00 2a5hA02 3h7aA00 1tj1A02 3qoqC00 2jhfA02 4bbkA00 5dufA00 4b0fB00 2auwA01 3a0rA02 3aihB01 4x6gE02 4qxfC00 3me0A01 1pguB02 2yhwA01 2qkdA04 2lqrA00 4locA03 4luqC00 3h2bB00 3nv0B00 4oi4A02 3d03A01 5lxtF03 3r2tA01 5kfzA04 2jjnA00 3g12B00 2zcuA02 3bwvA01 3kf6A00 5oomJ02 3kw3B01 1ehsA00 2vo8A00 1oohA00 3h52A01 2y8gB00 2g0tA02 2nwuB01 2pr9A01 2vqxA02 3cetB01 4ewgA01 4oi9A04 4n9wA02 4i4tB01 2trcP01 3qdhA02 2xvmA00 2e50B02 3tloA02 3ossC00 1otgA00 3d00A01 4gfiC01 4e38C00 1dynA00 2fkjA02 3fhmB00 4ldvA03 1g12A00 1wz6A01 4jxhA02 4ylkA02 4x2pA02 2ajaA00 4bs9A02 2no4B01 2d1sA03 4ykcA00 5jn5A02 3wcnA01 2b9vA01 3eziA00 5xkuA00 3aiiA02 5dnoA00 1yrrA02 1yb2A00 4s1wB02 5hfkA01 1f4sP00 3cegA00 3aaaC00 2rs7A01 6az1M00 4i6nA00 4lejA02 2hsiA01 1ixhA01 3abqB02 4m82A00 2hazA00 4fhdA01 3froA01 5i0qB01 2xskA00 3outA01 5i8fA00 5d66A00 3rm5B01 3wisA00 3gpkA00 3cjpA00 3tdnB00 4y9iA00 3kltB00 4pz7A02 4lmpA01 2yv5A01 3onqA01 5he9A00 3lw3B00 2x06A01 2r2cB00 4zi8A02 2kw8A00 3ednA01 3cueB00 1af7A02 1wbhB00 2qkwB01 5eokA04 4n40A02 2wvqA00 4oq1A02 2h00B00 3kwsA00 2zfuA01 4xvxA01 4chmB00 2bi0A02 4m5xA02 2jbvA04 3rmiA00 5jhxB03 2oqmB01 4hfkB00 2k6gA00 3jz7A02 4xkbA02 1k3iA02 1r89A04 4g0xA00 2a6pA00 1lqtA01 1mtpA01 3r3eA01 5uf2A01 1kw3B02 1kq6A00 4a8sC04 2a2cA01 1zsqA01 3kk8A01 3aiaA00 1usuB00 1x4gA00 4pswB00 2q1zD01 2p5gB01 2b9eA01 2zf8A01 3nr5A00 2zj8A04 2mhrA00 2waaA01 4jf1B02 2bngC00 3zx3A02 2p7nA00 2mjfA00 1fviA03 2f3jA02 1g9pA00 2pmiA01 3sucA02 2c6qG00 3fwbB00 4memA02 4jc0A02 2yt5A00 2ycfA02 2f21A01 3cjmA00 3mydA01 2lg1A02 5uq6A00 3hm2A00 3p4lA01 2hirA00 4ef0A01 1vdrA00 3r4vA01 1q1fA00 4nv0A02 1oi2A02 3ucqA01 3e29B00 2gtrA02 4w7sA02 3bt7A02 2yz2B00 1tu3J00 2wd6A00 2kpmA01 4inkA02 3jamG02 2i5vO02 2j5vA02 1hp8A00 4kk7A01 2ar0A01 2e9xD01 4yn3A03 2yexA02 1faoA00 1atgA02 1m0wA03 2qg7D02 5u3aA01 3n3eB00 2auwB02 3mi6A01 3l4gC02 3iagC03 3lafA02 2olrA01 2cwdC00 2vsoF01 2ac1A02 3jrtA00 5tuxA01 4f55A02 2pcrC01 2l35A00 3d3sA00 1bf2A02 2vpzA02 2hbwA02 2xomA00 4immA00 4il6X00 4okiA00 4ja8B00 1bxoA02 2ffuA02 5kc8A02 3s1sA02 2rikA01 2z5dB00 4hl2A00 5ijaA00 5hciC00 2j8kA01 2odiA01 5gutA03 3h5nD02 1eq2D02 3uuxB01 2pbyB02 1jg8A01 2f7vA01 5xtbA04 2m6xB00 2w1sA00 4xa8A01 3nb0D01 3qelD02 1a76A02 4dloA03 3nvwL04 1xutA01 3cs3A02 5b3kA00 3c1yA02 4nrhB00 1rktA02 1rduA00 4e57A01 4ywkA01 3equA01 3d9aL02 2e9xB02 4eiuA01 3dhuA01 2vycA04 2xexA04 1q5qH00 3ia4A00 4uasA02 4k8wA00 4h0pB02 5wriB00 2zuxA01 4ovjA01 1u7iA02 1ztpA01 4i3vA01 5tmaA03 2ylmA02 4espA00 1uyvB02 5ks8A00 1vmaA02 5ajiB03 2k5lA00 2hjiA00 2zteA01 1c0pA01 1svvA01 3i57A01 4e5xG00 3k9tA01 3o0mB00 4lc3A01 4j44A00 1lqvB00 2gdqA01 4ao8A00 2rbkA02 3oanA00 3g0oA02 1h5wB01 3afmB00 3vk6A02 3qt2B03 5cofA00 4ag6A01 2pziA01 1n8vB00 3orhD00 4kt3A00 1t6eX02 4n1yB00 2w7yA02 4u4eA00 1v92A00 4iaoC01 1f0xA04 2wbnA00 5t1iA00 3hzsA00 3ln6A01 3pgzA00 4yi7A01 3ga7A00 4ijnB01 3ks6A00 4uoyA01 4ywkB02 1hz4A00 4oy3A00 3ljnA00 2j66A01 2w9mB03 3c9hA01 2hmtA00 4relA01 1kxpD02 5inwA02 3fj1A01 4odkA00 2rrnA01 3kb6A01 2qjyB02 2k4mA00 2m71A00 4oh1A01 1ydyA00 3cx5H00 2ennA01 3u07A02 2dfuA01 3brbA01 3o4hA01 4hbqA01 3g85A01 1k9oI02 3himA00 3proC01 3olcX01 2cmgA01 1htrP00 3q2oA03 4d05B02 1hm9A02 2wadB03 4pscA00 1n9gA01 1wgnA00 2etsA00 4cs9B02 4d3dB02 2cg7A02 3pg7A02 4o8sA01 3lkmA01 2jaeA03 5o5jD02 4kisA01 5hr5A01 1j93A00 3l5oA01 3ucsC00 3f3qA00 3nc3B00 2cpxA01 3eblA00 5a0lA01 3kvnA01 1e3mB04 3s6n202 1iq0A02 3gnlA01 1h7vA00 3fceA01 1jetA01 1p9kA00 3vb0A01 2fi1A02 4ckkC03 1np7B03 3hxsA01 4jg4A00 3pu2B00 1euhA02 4ib2A01 2ii2A03 3kkiA02 3ldtA00 3ez2A01 1qcsA02 2jveA00 4dohE01 3rcnA02 3krnA00 3t7kA01 3hz8A00 1vdiA00 1gvnA00 2fazA00 2izvA00 3b5iB01 1ojhA00 3bdkA00 2yinA01 3mpxA01 3vk8A02 2nqtA01 1i4wA02 2a5hA03 1iuqA01 1k4nA00 4ofkB00 2c5qF00 3cj1A01 5kzzA00 3lz8B02 2wdqA03 1c17M00 3q39B02 2nyzE00 5bv2Q01 5lslA00 1jr2A01 5jabA00 4h83F01 3orjA02 5bn3A02 1sshA00 2r5fA00 4inaA01 4mhvA00 1cz4A01 2xcjA00 2wn9D00 2djwA01 1bteA00 4a9cA00 1yo6F00 3jyyA01 4kq7A02 1s7mB01 4mkxA01 4esrB00 1itxA01 2fl4A02 2cumA00 3k4gB00 3py9A04 2wcyA02 4f01B01 3u31A01 3h2sA00 4h5sB00 4s3jA03 3bo5A00 2asbA03 4mj2B02 5ncsA02 2f2gA00 4z5hA00 3r5xD03 1kxpD04 3k1yA00 1dypA00 3b1nA00 3iylB03 3b5nD00 4jneA03 3crvA03 3a98B01 3lqvA01 2qikA01 3l32A00 2xu8A00 1qo0D01 3fxtA00 4uejA01 1t6cA02 3v5cA01 1bx7A00 1gvzA02 4c3iG02 3fybB00 2e2rA00 2d69B01 3v3lB00 2qa9E02 1wx1A01 1x65A01 4of6A00 1s68A02 2mb7A00 4rt1A00 3d5vA01 5a6sA02 1oxxK01 4gxwB00 2d0oA01 2lxpC00 3hq1A01 4ipiA01 1vpmB00 3uamC00 5h3xA01 4lziA02 2wsdA01 4lqbA00 3h35C00 1nhlA00 3pmsA02 2jpnA00 2x7aA00 4likA00 4m7oA02 3hhfA01 1dkyB02 1uj0A00 4rshA00 3qh6A00 6ao9A00 1gd8A00 4izzB03 2etxA01 4kc5C03 3m6iA02 4q20A01 3iiiA02 1qexA03 1x9zA02 1hf2A01 3jvnA00 4oj6C03 2ec7A00 4mduA02 3bruB00 4j1vA00 3adoA02 2f4lA03 5my8A02 5ebgA00 2znhA03 1p0kA00 3veaA02 1p1xB00 2z86D02 2n3hA00 4y99B00 5k8bA02 1byfA00 1sxjH01 4bxoB02 5hj5A00 3l4jA02 5szvA00 4wi1A03 6az1b00 2dbhA01 4a2bA03 5l9iB01 2h3gX01 2rjoA02 4wy4D00 5bpxA00 3szhC00 3obqA00 1xvxA01 3ojaB02 2k1oA00 1qxnA00 2xmeF00 2pefA02 3g7vA02 4hdtA00 3n4dH00 3tnfB01 1r9wA00 3zykB02 4ph1A00 5teoB00 1qh4A01 4r2fA01 5mlc900 5u0iB00 3smzA02 3cxlA01 4uu4A00 3fo8D03 3r8yA02 4pj1100 2epdA00 2x8xX03 3lcvB01 2k5eA00 2gu3A01 5swcD00 1mvfD00 2dkjA01 2ed6A01 3tixB02 3onqA02 2zeqA00 2avtB01 2wyoD02 5hklB00 3cxlA02 4bqqA01 4jwvA01 2a3nA01 2zvfA01 3hlsB00 2q7tA02 2mhcA00 3kpeA00 3o44A01 1n7oA01 2jq5A00 2k3dA00 5on8A01 3a04A02 1e0tA03 2jzcA00 3c8vA04 3pz6D00 4fqgA01 2fi0A00 2pw9D02 4i17A00 3i7tA00 5c2mA00 3kkcA01 1of9A00 2bdqA00 2ftyD02 2fhzA00 3n28A01 1s4uX00 3gwqB01 3hmzA00 2r9yA01 1d2mA01 1xp4A01 4dk0A01 2qtqB00 3stpA02 1wzdA00 3lmmC03 5d1rB00 2f9zC00 4k3xA02 3flpA00 1gkxA01 4d74A00 2pt7C01 3wo4C03 4f7kA01 2j5uB01 2y2zA02 1bvsA02 3nx6A00 4mi2B01 2ihuA01 4kgdA01 2m5rA00 5fwaA01 2micA00 1h7sA02 1lrzA03 2hhfA01 3pviA00 3kh1A00 2b7oA01 1v9mA03 1wicA01 1ezjA02 4b93A00 3mqgC01 3h1dA03 4j4hA01 5u89B00 5oomk00 1beaA00 3zylA01 1px5A01 3gm8A02 1brtA00 2i52B00 4jbdA01 2y1eA03 4bguA02 2oi8A00 5kxhA02 3wwvA00 4w8iA01 4owkE00 1aolA00 4ga6A01 4mrsA01 1v8qA00 1x64A01 5e8sA01 4trtA02 3hl6A02 2je8A03 1ky9A01 4ftdA01 3g8zA00 5tshE01 3gqvA02 4k7jA01 6bhdA03 3edfA01 1p9yA00 4uejA02 4q5qB00 2e5lB01 4xaaA00 2f8lA01 1kohA01 2vf7A01 4me3A01 3nj2A00 3ezsA01 3wuzA00 2yrlA01 3a72A00 2cpiA01 2lklA01 3besL00 4oleC00 2a79B02 2x5dD02 2p0wA03 2yrrA02 1qp8A01 2j92A02 2z5wA00 2qv7A02 2w43A02 4muoA01 5ltrA00 2wn3A01 3rfwA03 4ue8A00 2vf1A02 2ci1A00 3rgfA02 2id0A01 4hgnB00 2mbyA00 1wjxA00 1y44A00 1xe7A00 2if5A00 4k02A00 1edtA00 3lm4A02 5l2lF00 1vccA00 2rkkA01 1k8qA00 2h30A00 3b0dB00 3ku3A01 5bmnA02 4xuwA00 1z54A00 3i1aA02 4m16A00 4zldA00 1ukuA00 2mn5A00 4x33A00 4wy4A00 2hahA00 4nn5C02 2f9aA01 4aefA02 1sfkH00 1bsmA02 2lorA00 3gjyA00 2dpwA00 1sqwA01 3rgcA02 4z04A00 5eoxB02 2dchX02 5uj6A03 4iilA01 4zmyA02 1mx3A01 1c9oA00 2n04A00 2bvfA03 1qfoC00 3if8B03 3u1kA03 2qy1A00 2cqmA01 3lfrB01 1v4aA02 4tmxB02 1sekA02 1o1zA00 4qusB00 1e5xB01 2i9sA00 1ik3A03 1nxuA01 1jusA02 2me8A00 3hhyA02 4ic6C01 3d02A02 2kgtA00 2gsbA01 3fdiB00 1h2tC03 4c65B01 3r5dA01 3bilA01 3tacB01 5e0nX00 2w0mA00 2p4hX00 5nkfA02 3agtA00 4e12A02 1cqmA00 1kxpD01 2uv4A00 1litA00 3hjcA02 4qm6A00 1g5aA01 2mx2A00 2xevB00 4jkmA02 1gl2D00 1ylqA00 4wtwA00 3n7sD00 3mtjA03 2zfuA02 2q13A02 3qreA00 3qt2A02 4ckkB01 3wsxA03 1lqlA01 3qw4B02 2a35A00 1gweA00 3d4oB01 2qhpA00 2igtA01 5eksA02 3q3qA01 1hi9A02 2j4jF00 4a4aA04 2aefA01 2qdlA02 1l4aA00 1w9zA01 4pqxA02 3nggB00 5inbA00 1q1aA01 4pswA01 5fo8C02 1i5nD00 2vklA00 5cklA00 2f3nA00 2zueA01 3ls9A01 4m1xD00 5ifiB02 1fjkA00 3ed4A02 4fx9A03 1oywA02 4zrmB02 2vpvA00 4n03A02 1ym3A00 3hkmB00 2nxnB02 1qwoA01 3ld9A00 3w06A00 1f97A01 5dviA01 1r5bA02 3f7qA01 2fy7A00 2wxfA02 3i2kA02 3pi7A01 4b3hA02 3kzhB00 3r87A00 2vzyC00 2o1xD03 1z94B00 3qtgA02 1y9wA01 3gqhA02 4i3gA03 2g6fX00 1gqpA00 3butA00 4a2qA02 3lb2A00 1xdwA02 1t11A02 4krtB03 4x1oA00 2ynaA02 2nvwB01 1l7mB01 1jb7A01 4g9sA00 2q18X01 5cqeB01 3fd3A01 4lw8A01 2qzcA00 4z6mA01 1gmlA00 3ld7A00 4tl9F00 2qolA01 4f0fA01 3i3wA03 3brqB01 2f9fA00 1uirA01 3ze3E00 3tghA00 4v2oB00 1x6aA01 4lw8A02 2mztA00 4gq1A00 3rr1A01 4n6oB00 5du9A01 1sseB00 3isrA02 3njtA03 3olqA00 1v2bB00 3nk4A02 3fssA02 2f5xA01 3iibA01 3umoA00 5xymC01 5sxoA02 3a74A01 2ii3A01 2nn6E00 3l22A00 4ksaA01 3adrB00 1kv4A00 3ig2B00 1zczA03 3fl7A05 3cwcA02 1wwcA00 4ombA01 4do7A00 1xq6A00 2wbrA00 3zedA04 4elsC02 5brkA00 3qs2A00 3f51C00 3flbA00 4kgiC01 1lnsA03 3mb5A02 2fi1A01 2avuB00 4co6D00 3f08A00 2e28A04 2l3bA00 3fuyA00 3k2jA00 1atzB00 2wpwC00 4cdpA02 1n62B05 1tu7A01 3claA00 2fshB01 2yc3A00 3jq0A00 4l8jA03 3ohmB04 3w3sA02 2kj6A01 3wx7A02 2zwrB00 5dj1A02 4iihB04 1vhuA00 3cb2A02 2hntE00 4gekA00 2qmwA03 3m9lA01 2cvcA03 4q3lB00 3amlA01 4twjA02 2odkA00 2olmA00 1e52A00 4cayB00 1fhoA00 2k4pA00 1pm4A00 1tt8A00 4oy7E00 3iayA01 1m1sA00 2l4eA00 3km5A00 4f9zA02 4i62A01 2jz5A00 3ombA01 5h8iB00 1lbuA01 1wbaA00 5imsB03 4hr3A01 3tdqB00 3a27A00 3nm7B00 3rnkB00 5fo8B01 4my0C01 3hd7E00 4mdyA01 3t6pA03 5nqbA01 4wydA02 1f6bB00 1pqhB00 4r78A02 2c52A00 3cj8B01 3jvoA00 5mj3C00 1bkjA00 2yyyA01 3mpcA00 1ou5A02 2divA01 3doaA02 2j8bA00 5dinA00 3eo7A02 2izrA01 4ku0D00 2hr7A02 2r6jA02 4tuuA01 3s93A00 1s4dE02 2c1lA01 2olgA01 2l1lB00 4a4yA01 5kwrA00 2ymkA01 1qd1B02 1vhoA01 5mtvA01 1isiA02 4k9qA03 3csvA01 1k5nA01 3nftA00 4mncA00 4y85C01 4uwhA02 4ne3A00 3aqlA01 1vc1A00 4hi8B00 4mtxD00 4rxtA01 3mvpA02 4hbeA00 4q20A02 3eg5B03 3jszA01 4msoB02 2zpaA03 1sxjH02 5cemA02 2ah5A02 2zvbA01 2o1uB01 3c19A02 4yaeA00 5i8gA02 1ks9A01 2w87A00 2ddhA01 4e0aA00 1jo6A00 5jciA03 4p3gD00 4pmxA00 1k12A00 2rdyA01 2ly1A03 4kkuC01 3dqgC00 4lk5C01 1swvA01 3cr8A01 2k9jB00 5tv2A02 4ljsA02 4q7aA01 4pq0A01 2ajeA00 3vr0A00 2gfpA00 3q0iA02 1d2zB00 2czrA01 4xbaB00 2ld6A00 4ygbA00 2gn0B01 5fktB01 3fsgA00 3jamF00 1sedA00 3qexA05 3ztvA01 2a4vA01 2mm0A00 2uz1A02 4nohA02 1oksA00 3fmcC01 1tx9A00 4n0tA01 1or5A00 4zd6C00 2lpeA02 2oi2A01 2gksB03 3rwaA00 1yc5A02 3bbbC00 5x5hA01 2yrrA01 5kbpA03 3kdqA00 2pa8D03 2mheA00 1k3eB02 3bzmA00 1z3iX02 4e9sA01 2v5cA03 4p4hA01 6b1zA02 4lxqB00 1tfeA02 3qr3A00 1qexA01 1kwmA01 3pdiB01 3f1sA01 3d8cA01 5uklG00 4ijaA03 1zavA01 5avdA02 2vxnA00 2oaiA00 5a4aA00 4iymA02 3b4nA01 4wx0B00 2pqcA01 4ol9A02 1wm1A00 4ae2B02 5fxdA04 2yxdA00 2w3pA01 3oiyB01 1tzyC00 3evtA01 2rihA00 3ejjX02 4dezA03 3s98A02 4g2tA02 3n5bB01 3dzvA00 1ty0A02 5x4bA00 2nrqA00 2c92A00 3glaA00 3s5rB00 1nw1A01 4igdA03 5a0yC00 4j0wA00 1o5zA01 2fcwB02 3skxA02 1gaxA04 1te0A01 3mi0200 5i9eC01 1qmbB00 4g2eA00 1w96A02 2qtdA00 4aw7A03 3vz9B00 2l9uA00 2cryA01 3lm2A01 2pfxA01 3mv2B00 1w6sB00 1w0pA01 4lf0A00 1pfzA02 4cv7A00 1sva400 5jp1A00 3a32A02 3fw9A03 3l4aA00 3knbB00 2z5eA00 3i2dA01 2xg5B01 4b6iA00 3h5xA04 2x1wD00 5mb2B02 3c64A00 3a5fA00 5g1sG00 5dg2B00 5n92A00 1sbyA00 4c0aA01 2va8A04 1v57A03 1feuA02 5bseA02 1gp0A00 1pguB01 5aykA04 3p3yA02 2esnA03 5tk4A00 5oomP00 4xvhA01 1af7A01 4jdcA01 3v5rA03 2yevA03 2cpmA00 4e8dA03 2kisA00 3fniA00 1jeyB02 2g8lB01 3hhiA00 5a9tA02 3asaA01 5c3fA01 5vzaA02 5i5mA01 2lmjA00 3oyxA02 2q73C00 3rpcA00 1z1nX03 2q9oA02 2pqxA00 3e38A02 3bpqD00 1ft8E00 1miuA02 1khdA01 5kjpA02 3r64A01 3mjgB00 4kxvA01 1h0zA00 2yjnB00 2x8kC01 3b84A00 2ji7A03 3n2oA04 2nwiB00 3pb6X00 1px5A02 2ip1A02 5jeaC00 4qysA02 2j07A03 2bnxB02 1q6hA01 4x1jA00 5ut3A01 2c9oB02 3zxqB00 4e74A00 3caxA01 3dbxA01 3e1sA02 4z3tA02 2py5A03 3ihmA02 4e6zA02 2v3cC03 2waoA01 1vemA02 1qysA00 4crgA02 1x7fA01 1ocsA00 3mhsC01 4k61B00 3ku7A00 1sesA01 1ybzA00 5bylA02 1ryqA00 3dxpA01 4qp5A00 4psrA03 2ztdA02 4gc5A01 3r3tA00 2d0nA00 3bhoA01 2e6jA00 3rc3A05 3ty4B00 2rknA00 2h88C01 4uw9A01 1lr0A00 1ohfA03 2cksB00 1ixlA00 3bm1A00 1ufnA00 5noiA01 3e39A00 4dixA01 1b8tA01 3uq8A03 1lc5A02 3b0tA00 2wbmA01 3u3zA01 2wfpA02 2hyvA03 3weeA01 4eqbA01 2y8tA03 1dw9A01 4tr3A00 2ysjA00 4ak2A02 3fegA02 3c6fA02 1aukA02 2o8bA01 3hmcA00 3tacB02 3md7A00 4bboA00 2fc9A00 3l7iA02 4u7mA02 4w64B00 3beyD00 2xidA04 3kg2B01 5hvzB00 5tfqA00 2wa0A01 4of0A02 4dghA00 2akzA01 3by5A00 3zxfB00 2bcoB01 2q02A00 1i94M01 1zq1A02 2r25A00 4a2bA01 4qjiB00 3dorA01 1pj5A04 2qcvA02 2rn8A00 5czcB01 4g6qA02 1yzfA00 4c1wA00 3gbvA02 4cfpA02 3l6dA02 2hhiA01 1xx7A00 1k7jA00 4a0tA01 1vqqB04 5fvnA00 2pf4F02 2yxlA03 3nycA02 2cdqA02 2y9mA00 1ryoA01 3upvA00 4exkA02 1wmxA00 3e97A01 4u4iA00 3aalA00 2bd0A01 3cggA00 4x54A00 3dgtA00 2lqgA00 2x5xA00 2q1fA02 4uqwB00 1c01A00 1qr4A01 5ce6A01 4c5wA01 3gybA02 2wyqA00 3ea6A02 2p8iC00 3g2oA01 4kxfL01 2yleA00 4ehiA02 3ramA01 3mmkA02 4b43A01 3ocjA00 3s3lA01 5ubgA01 3t5tA01 2w82A01 2vvgA00 3mw9A01 5ie9A00 6az1Z00 3ppeA02 5dviA02 4rflA02 1yb0B00 4adiA02 3pw3D00 1xpjA00 1y6kR01 3abzA01 5dx6B02 3lc0A02 4ei7B01 2n8xA00 4obvA02 3ksxA01 4uqxA01 2gu3A02 4crwB00 5aulA00 4rwuA00 5a86B00 2qe7G01 5cyxA03 2zv2A02 1nh2C00 1xjvA01 4r6kA02 2nsaA00 5inwA01 2zycA01 3h3lC00 2af7D00 2xhcA01 2lpbA00 1zk8B02 3k9dA02 5d1pA03 4douA02 3ziyA02 4gcnA00 3ohrA01 1aocA00 1wu3I00 1v86A00 1ji6A02 1axiB02 5aphA00 5k8sB00 4yliE00 5v8sA02 2dgwA01 3cg6B00 1d4vA02 4ikbB00 1cy5A00 5iplA01 3igzB02 1kqfA02 4gvqA01 3delB02 2lndA00 2ra9A02 2koeA00 4xylB02 1uz3B00 5eehA02 5b1aF00 3jysA01 2ewhA01 3rvcA00 3kbgA01 1ng2A02 4lvnP00 1bjtA01 3sbfA01 4ayaA00 4bi3A02 2qksA01 1kwgA01 5jqnA00 1zhxA01 4m51A01 2py5A02 1egwB01 4gnxB00 3na5A01 3mmpA01 2i3tD01 2kyyA00 3h25A02 2yq1C00 1j3bB01 1v9fA02 3ksvA01 2zs0D00 4obmA00 3v4cA02 1m56C01 1y8aA01 1vrmA01 2i15A02 3alfA01 1tifA00 2o36A02 3fgnD00 3mszB00 5muaB01 2rfaA00 2wawA00 3tj4A02 4g65A01 4eqvA02 3dtdD00 3nb2A01 1ykgA00 1e5kA00 1xqbA01 1lq7A00 1xmtA00 4jxqA00 2ghtA00 2xhiA02 3uzuA02 1wqjI00 3rayA00 1srvA00 5u56C01 4u2xD00 1eq9A02 2q62G01 3qk8B02 1ra0A02 3hjgA00 5x3yA00 3lmmA01 3pduA01 1o2dA02 2d73A02 2icyB02 1vbwA00 1tz1A00 4ixjA02 4ga4A01 2cqnA00 4pbdA00 2ordA01 4fmrB01 4q9aA00 3tlfD01 1v96A00 3ttvA02 1i2mB00 3o8eD02 3uxfA01 5cphA00 3ahcA02 4dpzX00 2yh9B00 1ngmB00 1mtyG02 2v5oA03 2l73A00 3fhlA01 3jc6201 1nwmX00 2qq6A02 2wolA01 2bw2A01 3r0sA02 5feyA00 4zwvA01 2yvqA00 3hnmA00 3ar4A04 4ob0B02 2fctB00 1o63A01 2o7iA03 3ivrA00 1rcuA00 3pvcA03 3og2A05 3ey6A00 3nzpB03 3gzkA01 2l9pA00 1atiB02 1lm0A00 2p0tA01 1r3fA02 2h1vA01 2wnvB00 3c5vA00 1wfmA00 3ux3A02 2ahmG01 4rk6A01 3vwnX02 1sazA01 2ltmA00 3nuhB02 1fguB01 3hpyA02 1r12A01 2bv2A00 2is9A02 1x0pE02 2dvkA00 2zo6A00 2rh3A00 2a7kB01 3eerA02 4hr6A00 1xt8A01 4fcaA03 4e45B01 1jznA00 4qmaA02 2rqvA01 2qyuA02 4r60A02 3h3iA00 4xfkA02 4jz6A01 4nimA00 2x43S00 5by7A01 2aj0A00 2p14A00 4xdiA00 1euwA00 1vl1A00 2mdfA00 4h83A02 3gq8A01 3v7nA03 3zfiA00 1wu7A02 2lgnA00 4nzgA00 3sd7A01 3om0A01 4zyeA01 2ox6D00 2lc0A00 5g1lA01 2porA00 1yx1A00 3vc5A02 2ee6A00 3i4kA02 1qp8A02 2lmcB00 1xiwB00 1qz9A02 3os7A00 3co5A00 3szyA01 3kcnB00 3sx2H00 3w07A00 2wn3A02 4i4kA00 3kzvA00 4ktyB04 4axhA03 2bsqE01 1jayA00 2w8mA00 2cxcA02 3oxpA00 1ve5C02 4nkgB00 4ua8A01 1jqeA00 3fhnA01 3py9A01 2b3yA03 2qzjA00 3feyA02 1p5qA02 3k40A02 3la7A01 1of8A00 3mwmA02 5d1pA01 1escA00 2kkuA00 5imsB01 3n12A00 2yfoA02 3bg3B03 5kawA00 2e5vA03 3zgzD04 2z0qA02 3eq2A02 4inoA01 1o94A01 2zgcA02 1jcdB00 4cdpA01 2e5aA01 1ve3A00 3gffA00 1z7mF01 2wi8A02 3hgtA00 2y6uA01 3f8xB00 3gwyB00 2qgyB01 1rozB00 3ne5C02 3zccA00 5b8dA00 2j6pA00 2nptB01 3ncvA02 3rl0H00 1rylA00 4xcxA00 6b7tA00 1l5jA03 1vlyA01 2zfyA02 3wxfA00 1tdqA02 2ymmB01 2zm5B01 2pimA00 3e0zB00 2x4dA02 2wdqC00 1zghA01 4z9hB00 2arzA01 4u1rB03 1xipA00 2va1B00 4ykiA01 1pzxA02 3cq5A01 2qtwB02 3k3wB03 3iruA02 4kp3C00 1y6kR02 3pijA02 2vy1A00 1n3lA02 2q88A01 3mqmA00 4kbfA02 2oycA02 1g4aE02 4a1gB00 1z5hA02 5i7lA00 3sd7A02 4f4eA01 3wa2X02 3dnjA00 2m5yA01 3ihxC01 5b1aL00 1onwB02 3hdcA01 3n4jA00 3ufbA01 4jqtA01 4gpkB01 1wxqA01 2pl2A00 3tqhA01 1t1vA00 3dc4A00 4uxdA00 1m1qA00 1k90A02 1fcyA00 2l22A02 3zm6A02 1pg6A00 3vy8X00 5hqpD01 3ideA02 4c1uA01 3gidB02 3omlA03 1ihkA00 3rlbA00 4fc3E00 3judA00 4xfeA00 2r6aC01 4ateA00 1zxxA01 4f25A00 3rlfA02 2pm9A02 2xrwA02 3alrB00 4e3zB00 3n5mA02 1eiwA00 1lwjA01 3bs9A00 2jh1A02 3kbbA02 3l6gA01 2wfbA00 4qblB00 3hd5A01 3behB02 1e3mB05 2lnhA00 2qmqA00 3ckfA01 1b0xA00 2virC01 3h09A03 3u9wA04 2iutA01 2gr8A00 3kt7A02 2f6uA00 3do9A01 4nogA02 3mmjB01 3ufeA02 5dltA03 4ci8A02 1zc6B01 1yoaA00 2z5bA00 2zy4B01 3n2wD00 3d2yA02 2knrA00 4ffcA02 4yzwA01 1o7dD01 2dpmA01 3mwbA04 1n0rA00 5ls0B00 3f2zA00 1dpgA01 2pngA01 2p0wA01 3cf6E03 3iuzA00 4ccvA00 2zs0B00 1x7iA00 1g44C04 4ualA02 4b46A01 3bcyA00 4f52C02 1q1lA00 5hwaA02 4tndA01 1cpyA02 1yudA01 5bmnA01 3uqcB01 4go7X01 3h51A00 1cz4A02 1h4vB02 4p02A02 2ii2A04 5lwxA03 1l0sA00 4jvuA00 3fhmA00 3mj6A01 3rjuA00 1srrC00 3c7lB01 5e5bA01 3t4xA00 4wy4C00 1jeyA03 1g8lA04 3kizA02 4wkgC01 2ffmA00 4od8D00 4x7rA03 2y7sA01 5v5nA02 2ykgA01 1dyqA01 5j3tA00 2xdgA01 2i5vO01 5vd6A00 1d66A00 2iu5B00 4q5wA02 3bg3A05 3c6fA01 4agkA02 1y12C00 1zghA02 2m3xB02 2r7hB00 4anoA00 5xzgA02 4gx8B00 2oezB02 3d2uE01 4ogqA00 4ii2B00 2hnfA00 2b3zA02 1cs6A04 3korB00 3l2bA01 4o5qA01 3qslA01 4pfoA02 1rzhM01 2k29A00 6eixA01 2fukA00 3ewoA00 2gpyB00 3whjA00 3emfB00 2odmA00 3szyA02 2qlvB01 3kd3A01 3zpeA00 2roqA02 3s5tA02 1v38A00 1f2uB00 4huzA02 3hl8A03 4u04A02 3p9nA00 3h5lA02 3crdA00 4q1tB01 1imhC02 2cwzA00 2b5iD02 3g0eA01 3tewA01 1wmsA00 1gpjA01 2ztdA01 1agrH01 3n2tA00 5taoA02 3ufbA02 4i2xE02 2vqeC02 2gasA02 1e3oC01 5tqiA00 2vnfC00 4ox6A00 4nv0A01 2uwqA00 2levA00 4fwwA01 4bd9B02 3au7A02 2g2sB00 1sz2B01 2obnD01 5enfA00 3wo4B01 1al3A02 5m9dA00 3qqmA01 2a74A02 4g6hA00 1uu1A02 4yo7A02 3a74A02 1c7kA00 5k8jB00 3k7mX02 3r75B01 2qsiA01 4ffhA02 3bemB00 1vs0A01 2clqA01 3vc8B00 4eqbA02 4issA02 3zoqC00 2yfuA00 3ofgB00 2gj4A02 3c1yA03 2a5yB03 4gnxC03 3lucA01 1xouA00 3p5mA02 4qndA00 1jniA00 5kvfE00 1h29B04 2l37A00 2jopA00 3nqjA00 4p0fA01 3wx7A01 2x9gD00 3mudA01 1igdA00 5b66b02 1hp1A01 2k52A00 2gb3A02 4mowC00 1nlfA00 4liqE04 4fdwA01 4c26A00 1igqB00 3nctB00 3vurA01 5aoxA00 4c7rA02 4nn5C01 3osnA03 1wyuA01 2zu0D00 3pc3A01 4q6kA02 1jf3A00 1vl5C00 5w0kA01 5wm1A04 2b4vA02 2yxtA00 5dm6V00 3csxB00 4nhxA02 2oqbA00 2wteA01 3l3sC02 2xy1A02 2gowA01 1j5uA01 2dnaA00 3ix7A00 1vkwA02 3bidA01 4o0kA00 4aybP00 1yx1B01 3rgaA01 4o3vA00 2hljA01 1xt5A00 2b4lA02 1pgyA00 3smzA03 1rrzA00 4ev6A03 4cndA01 4q68A02 4d9kC01 3fbkA00 3av3A00 3mh7A02 4zysA01 3mvsA01 3pzjB00 3t5qG01 3cl3E00 5a2fA02 2f91A02 2lrcA00 4bb9A02 4au2B02 1ryoA02 2ozbB01 1jerA00 3mt0A00 4hfmA02 3nzpA04 5fmgK00 2pgnA02 2v14A00 4eq3A02 2wraA00 1ezxC00 1jb0J00 4ei6A01 3zpxA02 2qf0B02 5e1qB01 1wk1A01 2x49A01 2i76A01 1qojA00 2oz8A02 4j5tA01 1zceA00 4eozB02 2mqkA00 1kjnA00 3vrpA03 2w18A00 5nnpA01 1wraA01 5xktA00 3mfiA03 3l41A02 4fk7A00 3cjkB00 4jaqA02 1m40A00 2gwfC00 2o01300 3obwA03 4hppA01 3drfA02 2v6eA04 2g1dA00 3eb7C01 1uwkB01 3b4wA01 4b3hB01 3vkwA02 4toiA02 2jr1A01 1w1oA02 2x7mA01 2ny4A00 3v0sA00 4h8qA00 3l60A01 1osnC00 3c6kB03 3pgbA03 3kezA02 3urgA02 5hx0A00 1jnrA03 4i6pA00 3f5rA00 2olrA03 4czxB00 1kfdA02 3eafA01 3cqcA00 1u2hA00 4q0cA02 2ckzA01 1hzmA00 5hqtA01 3gybA01 3nuiA01 2jp7A00 1q3lA00 4f7kA02 2gkeA02 1wkoA00 3vkwA01 5civA00 4l9bA01 2m3eA00 3lsjA02 2db6A01 4nmkA02 4k28A02 2xmoA01 4zlxA00 2ef8B00 4xrwA02 3wmm100 1wy2A01 3vylA00 3kanA00 2kdpA00 4v15A01 4azsA03 3tloA01 2uvfB02 2i4iA01 3f1bA00 3h9mA00 3u7qA02 4jdzA03 4rmmA00 2f22A00 3r6nA01 2vyoA00 1u7lA01 1w1hD00 4ixoA02 1txjA00 4jd0A00 3le2A02 2afbB00 1iybA00 4kbqA00 2zjtB01 5brhB01 1hn0A04 3fegA01 4h1xA01 3ljbA00 5flmL00 5bupA00 4wqoD00 3cokA02 2wolA02 2yxwB03 3lrqB00 4avsA00 4l8jA04 1k85A00 3osvA02 3l8aA02 4jfhE01 4xymA01 4nj5A02 1culC01 3prbA03 2qkdA02 2bn8A00 1wndA01 5im0B00 4l3nA02 3iohA00 1yx3A01 1kgdA01 4hg2B01 4aybA07 4iumA00 2kslA00 3bg2A03 4egwA02 4cl2A02 3mahA01 4k90A02 4pe3A00 4bbyB01 1okiA02 3cx2A00 3gs9A01 1n7sA00 1ldjA03 2posA00 1v0uA01 4k8kB00 5j3uA01 1yw4B00 4k3wB02 4k1oA00 1zunB02 4dgwB01 1nqkA00 4d6gA01 5f9eB01 4p5mB01 5x5jA00 4fkmA01 3qivA00 3f2eA00 1ytqA01 3d6jA01 2nteA01 3ktcA00 2f1kA01 4dapA01 2bk9A00 4q4hB01 3zm8A02 1a62A02 2c4iA01 3jxvA01 4z48A00 5hxbA01 2p0oA02 5xymC03 3ib6C00 5cbgA00 2iwrA00 3is3A00 1useA00 3qb8A00 3itwA02 5le5P00 3vyyB00 2oyyA00 1omzB00 4opfA00 1mwyA00 4npjB01 4u98A02 1e6uA01 4b1mA00 3rf3B01 1njgA01 5mgwA01 4p5oB00 4a15A02 3apqB01 3ujzA03 3edfA02 3bwzA00 3bb8A02 2y1eA01 1nhyA01 3hhsB01 1xs8A01 1skzA01 2j58A01 3wy7D01 5d91A02 3pm2A00 5u47A02 1jhsA00 3ebtA00 5vi4B02 3fkjA02 4gdzA00 5oaqL01 2v1uA02 2bv1B01 3ff1B01 1dzfA01 2qeuB00 1k5nB00 4iqjM02 3qksA02 4g26A02 5jmfA01 2e7jA02 1s5lh00 2napA04 3pf6B00 3lh5A01 4a57A01 3ocfB03 4h63F02 3ds8A00 3fp7J00 2qv6A01 1xdpA04 3p1vA02 3bqpA00 1s5lH00 4fvmA01 3dn7B00 1pyvA00 3b02A01 4l3aA05 3i83A01 4rk2A00 1tg0A00 3g36B00 4my0A03 2ekjA00 2a6aA01 3lloA00 4o2zA01 3hrzB02 3qkyA00 3s2eA01 4n6fA00 2q07A02 4m68A02 2i7gB00 4qqbX01 2fmmE00 2m4nA00 4m55F00 1wx8A00 5ng9A02 6bq9A03 3ivfA03 2rfvA02 1pp9H00 1qypA00 1ve1A01 3zidB00 2hl7A00 2p7iA00 3skvA02 3dkpA00 1y71A00 2rhmC00 4i5sB03 2c9aA01 5b74B00 2q1wC00 3er9B01 1kobA02 3ewmA00 2fhzB00 3e23A00 3zheB02 3js8A04 1yloA01 3e35A01 4fkbA00 4fhrB02 5jtwA05 1a3aC00 4ix3A01 3b1fA02 1amuA03 1xg5B00 4p72A05 5tpmB00 4r70B03 2c2iA00 2y9mB00 3ldcA00 4dokA01 3d7aA01 2nlvA00 1v4aA01 5wmfE00 2kheA00 3gd6A02 1j5xA02 5c68A00 4jglA00 4fqdA01 4kgmA00 1yllA01 2vzpB00 4n68A00 3gg9A02 1x9tA02 4q8rA01 4nomA02 2o7sA01 3ck2A00 1v2xA00 1rjjA00 2k50A01 3r7wA01 2lkgA00 3g8qB03 1yoxC00 5h34A00 2ehpA00 3es5A02 4y0aA00 1wk0A01 4qxaB00 5tuuA00 4h6zA01 1fi8D00 2byeA01 1zkhA00 3q8dA01 1pftA00 3v3tA01 1vq8300 1v8dC00 4d3tA03 3cw9A03 1k0eB00 2r2jA03 1kmoA01 4dplA01 4ct3A00 4g1gA02 3mpiA01 1qv9A02 5irqD00 4cvuA04 1aukA01 5xogM00 3nppA00 3tlqA00 3mdfA00 3ndoA00 4ccdA02 4uypA01 2bfdB02 3zfwB00 1nlwE00 3n4iB01 2bn4B03 4k00A00 4gniA01 3pl2A02 1dkgD02 2x5pA00 4cdoC00 3u6xS00 3eifA05 4zj9A00 4m7rA00 3lmeC00 3djhA00 4kr6A01 2g3wA00 2cj4A00 3db0B00 4ofyD03 4az6A01 2vecA02 4gt9A00 1wloA00 1vp8A00 4lttA00 4s1hA00 3wydA00 3bwuF00 4zotA00 2vpzB01 2fhdA01 2pz1A03 4nv4A00 1e0bA00 3hrdB02 2mw4A00 2hoeA03 1xocA03 3wihA00 2yzuA00 4kq7A01 2dr1A02 2k4zA01 2bl2A00 2dyiA02 2mgzA00 1p4cA00 3hcsA02 5ap1A02 3gk5A00 1t1hA00 3nvqA01 2octA00 3l7hB00 3e0sA00 1yvuA03 2pgsA03 4xabA00 2ebyA01 4n7qA02 3n79A01 2yzjA01 5aovA01 1vq8D00 2crzA00 3gv1A00 4wbtA01 3tr0A01 1luzA00 3pmoA01 3ikbA00 1m6bA04 1wkvA03 3p4tA01 2j6vA00 3shgA00 4f1jA00 1d2oA01 3pstA01 4q1iA00 2yvsA01 2ctqA01 1zzaA00 2y24A02 1io1A02 4d7sA01 2jkhA02 2yxzA02 1jz7A01 1fxrA00 4izzB02 1sqwA02 2cxcA01 2nlrA00 4jzjC01 4aybK00 3tu3A00 1zd8A00 4oevA03 5kayB00 3odgA00 4qniA02 1eg3A02 3i6cA00 2ii2A02 4oxiA01 2z00A01 2wdcA02 1j5wB01 2eqgA01 2p9bA03 1cmbA00 4x89A00 1vh5A00 3gdwB00 3s5jA01 3b5mC02 3i7aA00 3n77A00 4pofA03 5jazA01 1yocA00 3nwoA00 4jl5A00 3szaA02 4airA02 2corA00 1yrvA00 3c8vC03 4q34A00 1r1hA02 3ko8A02 5uaxA01 3pe5A00 4j37A02 2c9oA01 1piiA02 2vu9A01 1w94A00 4rv7D00 5t8uB01 4c0fC00 1cidA02 3q9oA01 2ktsA01 5ofkA00 2hc8A00 2oz8A01 1th0B00 1xmxA01 3f8tA01 2mkyA00 4fypB00 4o7hA01 5mnjG00 1p0sL01 3hmuB01 2p9bA01 1z05A02 2awnC02 2cy8A01 2y7lA02 1c7sA04 4lyaA01 2oibA01 4dccA02 1hxnA00 4gxbA02 2dhaA00 1yxmC00 5w56B01 5lz6A00 3wf7A01 4lmiB00 3g1wA02 4q5tA01 4x5pA00 3ednA02 3jtwA00 5k97A02 2hd0A02 4gxbA01 2p6pA02 1k7kA00 2pt5B00 2ycdA01 3q10D02 4r7rA00 1svvB02 5hsgA01 2hzmH00 1hw7A01 1u8vA01 4aeeA02 5vzaA01 1t5jA00 1x6zA00 1is3A00 3qc0A00 2hihB00 4j8eA00 4ggjA00 1p3dA01 2q0oC00 4p0gA02 2e8oA01 4kzsA03 1yq5A00 1mznA00 4mb4A03 4r6hA01 5jzxD02 3t7aA02 2o0jA02 4at5A01 3r0vA00 4zhbA00 3axjA02 2es9A00 1nh8A03 4m88A01 3opyA01 3l4jA03 2qwtA00 1e0cA01 2vhlB01 5dwdB00 1p1lA00 4wpkA00 5chlB00 2vszB02 3mcrA00 4nzcA02 1u5lA00 4h14A00 1bxkA02 3ff2A00 1sb2A00 2iahA02 3p3yA04 5mj3A03 3tmaA01 1w4rA02 3a11B01 2ghjB02 5it6A00 1k5nA02 4c2mV02 1zkeA00 3b40A01 2vchA02 1gh2A00 2uwiA01 2wqtA00 1l3kA02 2osoA00 2x98A01 3e1sA04 3kxrA02 3rfyA02 2z8fA01 4ze8A01 5hrbA01 4gmqA00 1f6kC00 1l9nA03 2eucA00 3c3kB01 2gbwB00 4oijA00 2hlrA00 4ed9A01 2v7sA00 2pw0B02 1ibtC00 3aj6A02 5gzaA00 3uv9A00 4xbrA01 3cw9A01 4cqbA01 3gruA01 4od4A02 3bc8A02 3ltiA01 5brhA02 5eq0A00 1hyuA04 4du5B00 2fhtA00 4po5A00 2frxB01 2b9dA01 1zs4C00 2vl7A02 2rk9B00 5dajD00 3f0nB02 3f7wA02 4besA02 4r0mB01 3b7hA00 2o2oA00 3aptA00 2kewA00 5g5gC03 3vglA01 3gwaA01 3t4nB01 3kttB01 3hbzA01 1mh1A00 1qdmC02 5gjiA00 4mxmA00 2wbqA00 4lihA02 2l89A00 3h4oA00 3futA01 4e79B01 3m6zA03 2dvmB02 2j5iA01 1tbuB00 2vfrA01 4qb5D00 1t7sA00 3vytA00 4eysA01 2qggA02 5bo7B00 4jpbB00 3i08A01 1yqhB00 1pb7A02 3kg4A00 1ozhA03 1dxyA01 1ro7C00 3l7iA01 2kl5A00 1bheA00 3lopA02 1wazA00 3qhoA00 5bovB00 3h20A02 3ny7A00 4dd5A01 1h4xA00 3czxA00 2fpnA02 2ls5A00 4s3oC00 4i9xA00 4u0cA02 3ziwA01 3wjtA00 2ke7A00 3feuA00 4axoB00 1qamA01 2miqA00 2vanA01 2b78A01 2xtyB00 3tqsA02 4irxA01 5hsfA00 1knxA01 5hyvA02 3na5A02 4ztkA00 2iiiA00 2aneA00 1v6eA01 3waeB01 3mjkX00 3me5A01 2e8mA01 4pabA05 1wyhA00 1jvaB02 1qfhA02 1ufoA00 3ivvA01 4uhvA04 3w3aH00 3cz5C00 2k6lA00 2wzpP03 4zi9A01 2v2gA01 1abvA00 3hdjA02 3bjrA00 5b7hB01 1ejeA00 3gqcC04 1xtiA02 3njtA02 2budA00 3cypB00 1h6uA01 2wyoC01 5ejdA00 4n7qA03 2yweA01 4n9wA01 2vdwG00 2gzaB02 4ozwA00 6b6lA05 4jgwA01 1dj7A00 4hbqA02 1wu7A01 1m7gC00 3fedA01 3bxpB00 4emnA00 1orqC01 2bf6A01 3maoA00 1iq6B00 2dxqA00 2qq6B01 3qekA02 4tpoA00 3gg8C01 4c0nA00 4cfrQ00 3ewwA00 3h38A02 3l5iA02 3oisB00 2g0iA00 3bzcA02 4he7A00 4k45A00 2qa9E01 1sg7A00 2c9oB01 3wdhA01 4horA02 3clqA04 1s3jB03 3ossD00 2c7wA00 3h7iA01 1rhfA01 5nckA01 1g0sA00 2pnwA01 3umgA02 1jx6A01 3un6A02 3oepA02 1u8xX01 4hvmB01 1yreC00 1e5rB02 2dduA03 1cs3A00 4i8hA01 3n4hA00 1b7yB02 2apoA03 2j3xA01 2r6fA03 1g5aA02 3gneB00 3iupA02 4dt4A02 2x3lA01 2zubB01 3s8pB01 3kljA03 4id3A00 4mtmA01 4wnoA01 5t5xA03 3vlmB02 2h88C02 1t0yA00 2xgjA05 3daoB02 2higA02 4ldaB00 5b31G00 4h5sA00 1fx2A00 2ywmA02 4uv7A04 2j5uA02 2k9pA00 4i6vA01 3v6oB01 1po5A00 3al2A02 3gi7A00 4hwiB01 1kg1A01 2az4A01 4tquS02 3todA01 2lakA00 3ghmA03 5crwA01 3be6A02 2f66F00 2x55A00 2y3mB01 1ng6A02 2x2sC00 4uf4A01 1nh8A01 3khqA00 2kpjA01 3le4A00 1pvtA00 1noxA00 2okxA04 3clmA00 2ooeA01 2wtzA02 3w3aG00 3dktA02 1c7sA03 1j02A00 1tu1A00 5nj9D01 3icxA01 2l09A01 4cujA01 2lnmA00 4d9iA02 3sylA01 3u0vA00 1pzsA00 1mj4A00 4ca9A00 2cw6D00 2pt7G02 3w5sA02 3n10A00 3e6qA00 2adzA01 2zdsB00 3hsyA01 1ssqD02 4ek4A02 2f2lA00 4kctA01 4h59A01 4s2rP02 5ccbA02 4bkxA01 4mb1A02 1elwA00 3uenA01 1vq8A03 2xrcA02 3k4tB00 4arcA04 3r3qA00 2y3mA02 2xz2A00 1wk8B00 1aluA00 2odlA00 2w9dL01 3zx7A02 1wznA02 3feyB00 2mjfB00 3l9cA00 2hivA02 3mn8B02 2wbmA02 3ilvA01 1u7pD00 3dclA03 1ohfA01 3sqbB00 4k0nA01 4tviA01 4q25A02 2ifgA02 1bg1A04 1atgA01 3grnA00 2cvzA02 4fqgA02 4fqgB03 2iidA03 3lecA02 5i45A00 4l68A02 3gnfB02 1dq3A03 1mqkL00 1xksA00 3fduA02 3ig9B00 2zogA01 1z9hA01 4aghA00 3gfuA02 3zl8A02 1ztmA04 2xgjB04 3bhpA00 1i1jB00 2pkaB00 4iajC00 1c7nA01 3b1bA01 2dnoA00 2ku7A00 3nb2A03 3n6yA01 4gouA02 3bjvA00 4coqB00 3al5A02 1e0tA01 3vp9B00 5umfC00 1wf3A02 3vueA01 3ck6E01 3ug9A01 2mmpA00 5j4lA00 3m1dA00 1jp4A02 1tfiA00 1hnrA00 5iyzF02 1q9jB01 4fp5D00 4d9bA02 2o8bB03 4e5yC01 1ifyA00 1r0dB00 4l4hA02 4h3uA00 3icjA03 1h2eA00 1wwrA00 3a7iA02 5bq0A01 5hwaA01 1r6tB02 3l2hA01 5hawA00 4g68A01 4erdA00 4zbgA00 3okyA02 3d8pB00 3c9aA02 5ib0A00 2k8qA00 4l4qA02 3adoA01 4n9fE00 3zi1A01 2k14A00 1t4aA00 3u9rB01 2lhtA01 3anwA02 2ds2D01 1l1lA02 4kdsA01 4uwmA00 2lriC00 3seoA01 2qqzA01 3m6aA01 2q7wA02 2po3A01 1wpxB00 3p7iA01 1n81A00 4damC00 4n2kA02 2w8tA02 3fruA02 1jmcA02 3kopF01 2ibgA02 3qhpA00 3mzkB01 2gagC02 1j0hA03 3ndaA01 2w8nA01 1u89A00 4hscX02 3gldA02 2aegA02 3e59B02 3ug9A03 2k5cA00 1tteA02 1ofuX00 2ggsA01 3og4B01 3iduB00 3dclA02 2mezA00 3qnfA04 4c2vB01 1uxzA00 1whqA01 5cw6A00 4m70I00 5cy0A00 1t6oA00 3t5oA04 4b89A00 4nzrM01 1s3rA02 1my7A00 1zq1C03 2p1jA02 2ww5A02 5ey8G02 3oy1A01 1l8yA00 3n28A02 1w3iA00 1vs0A02 5d01B02 3gv5D04 1uohA00 1t17A00 3md1A00 4l69A02 2wssA01 4kzsA01 3fedA02 1e5dA02 2fgqX00 2yvsA02 1bcpB02 3skjF00 4gniA04 2qezE03 3f43A01 1ps9A02 3sy6A02 4p49A01 1oltA02 1z7bA02 3noiA00 5b66B02 4k8gA02 1dcfA00 2kwpA00 1naqB00 3ho7A02 5dl7A00 2kdoA02 4g08A02 2e9hA01 1b0nA00 3ks7B01 1rp3H01 2enmA00 5ib9A02 4g08A01 3uo3A01 5fveA02 4nswA02 3s2eA02 2o9xA01 4amgB01 1yqtA02 3a8xB01 4eijB00 4p29B02 3qmjA00 4ylqT02 3cdlB02 2j3lA01 4peoB00 2wmfA03 2rsxA00 2pxgA01 2yyvB00 3cbqA00 4fqdB02 4c1hA00 2wscK00 1sz7A00 4eozB03 2pttA00 2kvsA00 3pp5A01 2r7fA03 3hdpA00 2qk4B02 1nypA00 4mnrA01 3wh2A00 4yslA00 2l0zA00 4rayA02 2xr1A03 2lqoA00 3sk2A00 1uf5A00 3gr3A00 4eq9A02 5le5A00 4mydA00 2pl3A00 3hrgA01 3otxB01 1rpuB00 1hdhA02 1iv8A02 4unfA01 2iyfB02 2gagD00 2yweA03 2jovA01 3b0xA05 2o2cC01 3ejjX01 1sq4A02 3lkbA01 2eq9C00 4fn7B00 3e2dA01 5iaiA01 1ykwA01 2vvfA01 3vqiD03 2dyoA03 1xo8A00 3g9xA00 2vw8A00 1seqH02 2aiqA01 3a0oB01 3s6pA03 3knbA00 3tgnA01 1ro3A00 2ejaA00 3dteA03 4x5wA02 1g31A00 4ea9A02 2nsfA02 1vr4C00 2w7qB00 4eldB00 2amlB01 4itjB02 3gruA02 4lgcA00 4zflD00 1ej8A00 3aekB01 3i09A02 5t3eB01 4l5tB02 3jruA01 4hvcA01 5fs6A03 3ungC02 1uouA03 2it1A03 5uidA01 1t7pA02 4fnvA01 4loxA01 3bl9A01 4gf0A01 2j3mA02 4fxqA01 2bycB00 1wxtA00 4umlA00 2c0nA00 1okiA01 4edpA01 1l6rA01 4mv4A03 4n2kA01 1c8uA01 2x4fB01 4ivvA00 1vz0C02 3vajA02 3dplC01 2b5eA04 3a43B02 3i0zA02 5cllB00 1jx6A02 1w36D03 4zf5B00 3slgF02 2k4dA01 3x0dA03 1y14D02 3lffA01 1guiA00 3e07A00 5bykA00 2pg0A01 3if8A02 4j9cA00 4yyuA00 4ml2A00 2wnwA02 1h6yA00 1olzA03 1v87A01 1viaA00 1wp9A02 3lvmA01 3i44A01 2f9iC00 3cnvA01 4uijA00 3w5jA00 4tktA02 3b5nJ00 2mysA04 3cw9A02 3mhsA01 1yi8A02 2okqB00 1jx4A04 3k12D00 2kr5A01 3d2fA01 2bwnB01 2eciA01 1ri6A00 1j2zA02 1fmkA03 1zylA01 3ubtA02 4p52A02 2lwlA00 3mkoA00 5tdeA02 4rhmA00 3mkcA02 1eu1A04 3nstA01 4fedA02 3oqvA00 4omjA00 4m8kA00 2i7xA01 3hj4A02 1ow0A01 4fasA02 4kruA00 1zg2A00 3pluA00 2ibpA02 2kumA01 1qz5A01 2vwaA00 5f44C01 1w23A01 2r0yA02 4yvoA00 1cukA03 3l77A00 3rh0B00 1rwhA03 5dafA00 1wlyA01 1olrA00 4xaxB02 1k3rA02 2xepA03 2wfwA01 3q15B00 3v9rB00 2ebdA02 1aozA03 5eliA00 5braA02 5ay7B00 1ynsA01 1d5tA03 3shsA01 1ef8A02 5reqB03 5nzoA00 5dxhB00 3e13X01 4j87A00 2b9sA02 4ii1A01 1qzgA00 1tc5C00 2x5dA01 3s40A01 3ndnA01 4gdiA00 4om8A02 4d6gA02 3eifA02 1khyD00 4lldA00 2panA03 2pziB03 1r5lA03 4o2hA00 4fsdA01 5dhvN00 3r6nA02 3ntlA02 3n9gH01 1szwA02 1xouB00 3vx0A01 3i4pA02 3up6A02 4jeaA00 4uulA02 1pk1B00 4dguA01 3ehhB01 3zh9B01 2e2eA01 2jvuA00 2engA00 3m6nB01 2hqbA01 3gy9A00 2puyB00 2o23A00 2ystA01 4rhsA00 2e6qA00 5tmaA01 1e3pA02 5b6cA01 3nr1A00 2fa1A00 3k6eA00 3woeB00 4ylqT01 4rg9B01 3fjuB00 2f8xK00 3dmbA00 3h6jA01 3pmoA02 1puzA00 3mfdA01 1bcoA02 3u4zA00 3uidA00 3bf2A00 2kbzA00 3hhdA05 4c89C00 5d9oA01 2xqqC00 3qc4B01 4trkA00 3c6kA02 2fpoC00 2gedA00 3qk7C02 3s99A01 4gyoA02 3cjwA00 2fcrA00 3i9fB00 1kyqA02 4j9zB00 4o9lA00 3dzzA02 4pt1B00 2k13X00 4bwrA00 5vnxA01 3c8mA01 3n1fD00 5eh1A02 4m9cA02 1vjlA00 1ml8A01 4d8mA01 4ihzA00 1qqeA00 5kh0A03 2ph5A01 3nl6C02 1inlC02 5kp7A01 4xt6A00 4h15A00 1sr4C00 5i3sC02 5h5zB00 2adlA01 2c3vB00 3be3A00 2m4eA00 3k7cA00 3ic9A04 3zyqA02 2kfjA00 2wxyC01 5e4gA00 2j59M02 1gl2C00 2vycA03 3dkxA01 3a4cA00 4gwgA02 3sl9G00 1b6gA00 4pdyA01 2dxuA01 2fprB00 4jquA00 2cyaA02 4bndB01 2k6vA00 4rexA00 1j0hA01 2greA01 3cnrB00 2f07B00 2basB01 2o2kA01 2wmoA01 2w9yA00 3smtA01 4krpA03 4qa8A00 5c3kA00 3ix3A00 4ie5A01 5b7wA01 1l0qA01 4u2mA02 4bwxA02 3dr4C01 5cenA02 3cjhB00 2xtcB00 2n8kA00 1uaiA00 3dxsX00 3c9uA02 3no6A00 1qksA02 3zheA02 3slzA00 1ibxB00 4egvA02 2avpA00 2a14A00 2y8yA01 3ua0A00 2v8qA01 2znrA00 4nn2B00 4kkiA02 4igkA02 3ltlA01 3w7tA01 5e10A02 4ie5A02 1svmA03 3c85A00 1wqaA03 3uzuA01 2jlpB00 3h2yA01 4xaeB00 1eu3A02 3ullB00 1fmbA00 2wg6D00 3mqdA01 1co4A00 3nheA00 4qy7A01 4hhvA00 1yixA00 3vgpA00 5c4mA00 1iamA02 3g21A00 3hhpA02 5ff5B02 3kfaA02 4jy5L01 5fifE01 5j7cD00 5u1hC00 1dqcA00 4dgwC00 1vmgA00 4uwwA00 3l6uA02 2d7iA02 4locA02 6az1Q00 1r44A00 4wiqA01 1euhA01 2bgiA01 2i7xA02 3deeA01 2khxA00 3thiA02 5h3hB00 3bpnC01 4wxjB01 2r5oA01 3kxaA02 4eu0A02 3g14B00 4bgpA01 5kjzA00 3k6iA00 4axvA00 2qgmA03 1ihuA01 1taqA01 4iuwA01 2v72A00 1d5yB03 1f08B00 3gs9A02 1lf6A01 4gqoA01 1ii7A01 1r5mA00 2wvfA02 3rxzA00 1h3oB00 4rgdA00 2aqeA00 2fb5A02 2fo3A00 4iuyA00 3t2lA01 3p8cD01 5gqoB00 4jrnA01 2qi2A02 2ddrA00 2nxoD01 4jmqA02 4n4gA01 2f0cB01 2qm8A02 1a8dA01 3dghA03 2vycA01 2qipA00 4dwsC01 2yysA00 3q2oA02 2qq9A02 3kh0A00 3vwbA00 3thxB02 1g3pA02 4bb9A01 4pc9A00 1bgwA03 3hg9A01 5mf6A02 3mayB00 3l2dB01 3ggyA00 1x9yA01 4trpH01 3hm7B01 2gaxA00 2we5A00 2rqyA02 1ivzA00 4ofyD01 3mpkA02 3gwrB00 3ib7A00 2bhgA01 4cqiA00 2fjlA00 2hd9A00 5w95B00 1jliA00 2rhsD02 1v7mV00 5frdA00 2qniA01 1borA00 3h75A02 3buuB00 4cczA01 1gvnD00 1wdjA00 3rf0A00 3o8oA03 3c0kA01 4xr8F01 3iibA02 4qdjA00 5a5hH00 1rpyB00 3dg3A02 2h7oA01 3ddjA01 1ox0A01 3cp8D03 2q7fA00 2og9A01 3uesB01 4qxdA01 4mtnA02 2d9dA00 1bihA01 1c0wC03 4z49A02 2iskA01 2junA00 4if8B01 2laiA00 2j59N00 2puzA01 3cawA01 5xxlA01 2j8iA01 5cnwA01 2yy5A02 4didB01 5gzcA00 2dn8A01 2pveA00 4mlsA00 3plnA02 2iksB02 4c69X00 3shqA01 1u9iA02 2ovbA02 5bn3A03 1s99A02 1yrtA01 4wksC03 2xexA03 2mi5A00 3ucxA00 3t9wA01 5cxoB00 2jryA00 2vugA02 4iw7A02 5jv4A00 3ck6C02 4qq6A00 1t4yA01 3o48A01 5oomK00 1vzsA01 2vf7B01 2o6pA00 3nurA00 4n75B00 4ph8A00 1ng5B00 4cgkA02 2rhsC00 4fleA00 2n99A00 1h1lD03 4xxbB00 3en9A04 3ne8A00 1ltmA02 4h4dA02 3n2zB02 4j8sA00 3wfvA00 3wa1A01 2ab5A01 2pihA00 1x79B00 3t90A00 2xmoA02 4fo0A02 1ve4A01 4aw2A01 1kfiA03 1mfaH01 1g8mA01 2qm4D01 2bnkA00 1bh9A00 4rl3A00 1qlwA00 2hjqA02 3l84A03 4gipD02 6em3h02 4m2mA02 2i79D00 3zm8A01 2yvtA00 4pz0A02 3kxyJ00 3hvnA02 4gmvA01 2n3oA00 1cp2A00 5jn5A03 2p4gA00 5jlvC00 3qv2A01 3kfvA01 3nmrA01 4c72A01 1gnyA00 2lezA00 2dmoA00 4h7pA02 2x7jA02 1ujcA00 4o5aA01 5afwA02 2ymyB00 5tifA00 4mbrA02 2ozgA03 1v2zA00 1z5hA03 5jrtA00 4fyqA04 1gz6A02 1o54A02 3gdcB01 4n02A00 3tekA00 5je8B01 1ct9A01 1g8aA02 3c6mD01 2z26B00 5j07A00 2nugA01 3hhwK01 2lznA00 1vf7F01 4maaA01 2ae0X02 2g50F03 3fmtB00 3mpoA02 1iicA01 2qiwA02 1lnqA01 1i3oF00 3fkdA01 4g09A03 2xmxA02 4og1A02 4qu2A00 4oneC00 2qc7A01 2bw4A01 4o6mA01 2aklA01 3nswA00 3cgbA03 3vprA02 5i34A03 3ligA02 3gasA01 2hjqA01 1wmiB00 4abxA02 2plwA00 1l5xA00 3ngwA00 3brsA02 2kq5A00 2pqgB01 3g7uA01 5i40A00 1dcqA02 2g9oA00 2bkxA00 4fxeA00 3r41A00 4e72A01 3k1wA02 2zuqA00 4mymA00 5xpcA00 5hheA00 2oulA00 2fozA00 1yloE02 2cfxA02 4k90A01 4kncA02 2rh0A02 1aqcB00 2x29A00 3tjeL01 2xedC00 5a0yA03 4eg0A03 5tchA00 1dgwA00 3pxpB02 2o1bA02 5jazA03 2avwD01 1k3iA01 3wczA00 3rrkA03 1zx3A01 4nn1A00 4u3qB00 1m65A00 3hrpA01 4hu4A00 5iucA00 3dpuA02 4yz9A01 1z3eA00 1njhA00 3ejkA00 1b63A01 3wdnA00 3qiiA00 1ucuA01 2bc4A02 1wd3A01 3lw7A00 1wjrA00 2wu9B00 2rp5A00 3hp0A00 1qu3A03 5elnA01 1y7jA00 2ed9A01 3wj2B00 3czbA01 3ge3C00 4txrA00 1i1gA02 3ci0J01 3fz5B00 2o5fA00 4dwdA01 1lniA00 3onjA00 2hcfA01 2q2bA00 3ttcA01 2hb0A01 3nrlA00 2cayB00 5dm6300 5cqgA05 1idpA00 4wokA02 1dciA01 1zxuA00 4jccA01 5dmyA01 5hqpD02 4mewA02 3otiA02 2vobB03 4xwuA00 3ui4A00 1zuuA00 2fgyA03 1pnbB00 5jbdA02 3f4mA00 2n9bA00 5wwwA01 2m20A00 5jrbA01 3rtyB01 3ihvA01 4gc0A01 3g5oA02 3kbhE00 4b9gA00 4n9xA01 2o6fA00 1r6vA02 3r4yA01 3dwgC00 2da4A01 2nt0A02 4em6A03 2culA00 2xs1A03 3dlkB03 4novA00 2qgsB01 3icsA02 1cipA02 2llkA01 2qr6A01 3lnmD02 2edvA00 2nn6G03 3fq4B01 3n89A02 2lqxA00 1q1rA01 2r1fA01 3ogiB00 3wjpA01 4e2uA00 3mh7A04 4njcA00 3hufA01 3gwlA00 5ml3B00 3g9kD02 2w3cA02 4psrA02 2vveA02 4tpsA00 1c3cA03 4llsA00 2obeA03 3hx4A01 2p26A04 1dx5I01 4qmhA00 2zm5A02 4jxyA00 1h12A00 1vsgA01 4ritB01 3ol2B02 3iwaA02 1w98B01 3qd6R02 4q4w400 4aieA03 3e4pA03 2xubA05 3k3wA02 1kyqA03 2idbA03 3hhsB03 3hcyA00 1zzpA00 3krmA00 3c9uA01 3df7A03 5w3mA00 3vtnA01 2ganA02 2q37A00 5eowA00 2vtwA00 1r3fA01 5v7qL01 3mzlB03 2blfB01 3amiA01 1ebdA02 1sznA02 5b1aH00 1vhkA01 2fefA01 1dw0A00 1h99A01 1wzaA03 1qv0A00 3u1jB01 3k3dA00 2vn6B00 4hteA01 3ephA02 3v3tA02 3no0A00 3lifB01 3wdoA01 2ciwA00 4o65A00 1f6vA00 2qjlA00 2ws9100 3hidA01 3qwlA02 4udxX02 3vkeA00 3r9mA00 2qv8B00 4hh3C02 1pmiA02 4rl6B02 3rmqA02 1etxA00 3fiuA00 3m9bB01 1xviA02 1c4qA00 5c0pA00 2qtsA02 3p32A01 2m86A00 1bu8A02 4qosA02 2jwgA00 2cxnA03 2opsB02 3zq5A01 4aqtA02 1wurA02 2k2sB00 1xdiA02 4hc7A02 1ykhA00 1tezA01 2z80B00 1h3iA01 2kb3A01 1wlzA01 1dofA03 4grvA01 3trcA00 3cx5A02 1mnnA00 4tmpC00 3rqiA02 2j1dG01 3od5A00 2ebjA00 4xhvA00 2lr2A00 2y24A01 4eneB00 2awnD02 2kinB02 1stzA02 3nfkA00 2jj7B01 1nziA01 2kr1A00 3by9B01 2ouxA01 2g0dA00 4c92C00 3c4nA01 3l6xA01 3ilxA02 2kicA00 3cvvA01 3adyA00 3ukgA02 1tkeA01 3r4zA00 5dm6S01 1jusD01 5dm6L01 3wfdC00 3ksvA02 2i44B00 3q0yC00 1yx7A00 2bkyX00 2wkdA00 2r31A01 2b9wA01 4yosA02 3uepA00 2yo3A02 2dkhA02 3a2kA01 2qngA01 1szbA02 5jn5B04 4o1rA00 4e01A01 3r7fA01 3cjiB00 1eqgA01 1dd9A02 4g3vA00 4bjuA03 3kp1A04 2eprA01 3cf0A02 2qz4A02 1im2A03 3zh9B03 3dd9D02 4nmxA01 4l07A00 3v9wB00 1x6dA01 2eq6A02 4xsqB00 2yt8A00 1plqA00 1krlB00 4hn7A00 1kdgA01 4fwdA02 4zn0A01 2w96A01 1ccvA00 4kwdA00 4m77A00 1w8aA00 3dk9A01 3vdzA01 2m74A01 3lsjA01 3fiaA00 4yp6A00 1g3gA00 2v8iA01 4f0aB02 5cclA02 2qqmA01 3f1iH00 1zk8A01 4ftbC00 2waqQ00 3s8fB01 2wjnC02 1jhnA02 5hl8C00 2lcjA00 1y0pA02 5dqvB01 1qzmA00 1cxcA00 4ngdA02 3wasA00 3goxA02 5tj3A02 3df7A04 4hc9A01 2cu3B00 5jskA01 3gqcC01 2xryA01 2hr7A01 4n0kA00 3vrdA02 3njaB01 2scpA00 1eg3A03 5gjoA02 3egnA01 3dddA02 3nqhA01 2l6qA00 2mkgA00 1ud9A00 1qw9A01 5glkA00 3a01E00 5f68A00 1q4gA01 1d5yA02 3cpkA00 3layJ00 1nxuB02 3i3lA01 5m3nA03 2yeqA01 4arnA00 3s5wA00 3bulA02 1f00I02 5fmnA00 3or1A02 2r9zA02 4fprB00 1l6lS00 1wmwB00 4l3tB04 3wkgA00 3d36C01 1y9zB01 2b78A02 4g6tB00 3lomA00 3loqA02 1wurA01 3vrhA00 4beuA02 3vypB01 3pu9A00 1s6lA02 1b9lA00 1k9cA00 1fqjB02 2eaqA00 2y9yA04 1dfuP00 1emnA01 3nufB00 4fxkC01 4c92F00 3eyeA00 4m3lD00 3t3pB01 3k59A06 1xkuA00 5agdA00 2jc2A02 4wqmA01 2gu0A01 3n05A02 1nk3P00 1kb2B00 3k59A05 5g08A02 1uzkA01 2fokA03 3r84A00 5j98B00 1nw9B00 3c9aA01 1za7A00 1zu1A02 2c7nA01 5dn7A00 3ihmA03 2w0iA00 3p3vB00 2lvhA00 3fefA00 3ucqA04 4tqrA02 3v69B00 3ebbA00 3c4aA01 3v64C01 2p26A03 1z85A01 2jn6A01 2ykoA03 2fpqA00 4l4uA03 1vdkB03 2w2nE00 4l5gA01 3zucA00 4nbqB04 5fmuC01 4oveA01 2mjmA00 4bs9A01 1zylA03 2ekdA00 1sg6A01 3qfsA03 2r4gA01 3e4cB00 1ep3B02 2vouB01 3ih5A00 1efuB03 4h3vB02 2pd0D01 4g2uA00 1u04A04 2bouA01 3zn4A00 2vhjA02 2iylD01 4i2lC00 3fdsC01 3i5cA01 1b8iA00 3ctdA02 4x9cD00 1nbuA00 4on1A01 4jdxF00 1vibA00 2cobA01 3hrzA03 3dlbA04 4f6mA01 2bs2A02 2ygwA02 2y26A01 3ka7A01 4wyuA02 4n6xA00 2yubA01 2d0oA02 3r7fA02 1t6lA00 4dgkA01 4bjtA01 1zq1C02 2qveA01 1ut9A02 4h7uA01 2pieA01 2z1dA03 1twfJ00 3rhaA00 4bdxA00 4l3aA02 2h6fB00 4aibA02 2z1eA01 1fs0E02 5haxA01 1korB01 1ciyA02 1iv6A00 3cwfA00 1o97D01 1xioA00 2fclA00 2x8jB01 4k2xB02 3hagA02 2x0qA02 1im3D00 3hgmA00 3f1pB01 1wzlA04 4eefH00 4ol8B01 5i7zA00 1xo5B00 3lifA02 4g1qA03 4uypB00 3hb7A00 1y56A02 3wb9A02 3glvA00 3hhwA00 1dceA03 2ctfA00 4l3rA00 4wqkA00 4kefA00 4dwlA00 3nlcA02 1vkkA00 2wt9A00 3bywB00 4uwxA00 3zhnA00 2h9eC01 3t41B01 3h5xA03 4za3A02 1zubA00 1y42X01 3e04A03 4jwqC00 4ksnD00 2k4rA00 2he2B00 1jm1A00 2h9aB01 2h88A01 4aq1A04 4z24A01 2xlkB00 2zbkA02 2iruA02 4f0zB00 5cd2A00 3lm3A02 3q1pA01 1g3jC00 4gf2A02 3pv2A03 1i6uB02 4xrmA00 2ke4A00 1llmC01 5jouA05 1x6mA00 3ztvA02 2nnrA00 3fdsD00 3i4wA00 3pufL00 2q9vA00 1np8A00 5eqtA02 1zbtA02 4wywA02 1fm2B03 5c8cB00 1w99A03 2ja2A01 4r84A01 4phjA00 4gt6A00 1gcyA02 1stmA00 5fxdA03 1g3nC02 3isnD02 4rbnA01 3afhA04 4ygaA04 3wajA03 3axbA01 2hhpA01 3ffvA00 2gqwA02 3pimB00 5ircB00 4hroB00 1y9bA00 4hscX01 1tt5B03 3nkzA00 1t1gA00 4zveA00 2c43A01 1jekA00 3t4lB01 4xosA00 1pjrA04 3vpyA00 2ykfA02 1k92A03 2hu9A01 2b9sA03 4f7uE00 4q14A00 1k61A00 1we8A01 1z1bA01 4zzzA01 4n7bA01 1tj7A03 1uaaA04 3hrzC02 3u60E02 5apsA00 3bgeA01 2fomB01 3q2bA00 2ixaA02 1ht6A02 4q68A01 5fgpA00 2dkoA00 4dshB00 3mqqB00 2e56A00 3ligA01 4kjmB01 1a1hA01 4lrtC02 4hktA02 5wm1A02 1ds9A00 1h2cA00 2ip1A01 3oa2C02 1dmzA00 4wvaB00 3doaA03 2y5cA00 3rlsB00 2rm4A01 3amiA02 2elkA00 1khxA00 5iqlA00 2mknA00 3ibzA01 4jndA02 3vwoA02 1s7eA02 3a7rA02 3mn2A00 5jolA00 2qsfA04 2rklF00 1fo8A02 1ct5A00 3ig5A03 5bmoC00 4g1qA05 4admA03 1rr7A02 4zpcA02 1iyrA00 1sigA00 4m8rA01 3u61A01 1hlvA02 3cpgA00 2v3aA02 1iz5A00 1m5q101 2h29A00 4fhdA02 3nf2A00 3dk9A02 2yadD00 4hs2A00 4x9jA00 4i9qA04 4f7uB00 3mqzA00 5ui5I04 1iq8A01 4q6vA00 5e3sA01 3lzqA00 4m5dB02 4fnqA03 2cw8A01 4uelA02 2d92A00 2cveA01 1qd1A01 1wthA01 2j7nA02 1lv7A02 3stjA03 2o5gA00 1mknA00 1whlA00 1ic8A02 5g5gB02 3ajmB02 2wlvA00 4g59C02 4yhbA02 3iqcA00 4q37A00 2a06B01 3uk3D01 3nbxX04 3jc2200 5bnzA01 4hstB02 1eiaA01 3q4hD00 2nwtA00 2qkvA00 3lzwA01 1j24A00 4o4oA00 1v4eA00 4u9cA01 3kdrA02 3k1tA02 2b0rB00 3mtjA02 1kloA02 5b6qA00 2xkjE01 2wskA03 3afhA05 2lv2A00 5ippB02 4qpiC00 1i7hC00 3i2tA03 1l3pA00 2g3mF01 1jfjA02 2az4A02 3zx6A00 4i1kA00 2j3lA03 3fg1A02 2l04A00 4jykA01 3mxjA01 4ociA02 1oe9B01 4dplA02 1zj8A04 2ezvA02 2absA02 2debA02 2ffhA01 4a4aA02 3v42A02 1mg7A01 3q2uA00 1u7vB00 2r2iA02 3bs6B00 1jlcB04 2m2fA00 1q2lA02 3ug9A02 2wfxB02 3sxxA03 4jzeL00 2fmaA00 3zbhA00 2ggzA00 3vseB02 2w96A02 1wy9A00 2h80A01 3mq0B02 4g1vA03 1gqiA01 1ujsA00 5gnaA00 1x8yA00 1r6jA00 4nuaA00 4pkhG00 1rh7B01 4h40A01 4mzdA00 2d46A00 3a0oA03 1w0tA00 2qorA02 4rcwA00 3tdsE00 3hvwA00 2zktA02 4udxX03 3oakA01 3s4yA00 2f9hA00 2bcxA01 2a8eA00 1zr9A00 2q14H02 2jvzA02 4ou7A00 1p4qA00 5eufB01 1v9fA01 3cqxC00 4k22B01 1tx4A00 1wdcC02 3sdgA01 1x3zA03 1aduB02 3l8kA01 4bfaA02 3vsfC01 1m0dA00 2ivfC00 4qi1A00 1y6zA02 4dixA02 2dohX00 1sfpA00 3lfjB00 4jonC00 2ph7A02 1xhcA02 3tbiB02 1yg2A02 1v9nA02 5y7wB00 5eksB01 4nirB00 4tr6A02 4emkA00 3fylA00 2ha9B00 1jr3D02 4jokA00 2j80B00 3c8tA01 5eroA00 2i2xB02 4yokA02 3o53A00 3b8mC01 3gmfA02 4b9fA00 4lwlA00 3lidA03 3covA02 3bonA00 3girA01 1nziB02 1ulvA04 3ixsE00 2dwyB00 3favA00 2basA03 2riqA01 3bz5A01 3oiqA02 1gxmB00 5c5sB00 1iqpA03 5wgiA00 5jouA04 4muqA01 1q8iA03 4fkeA01 2p8eA00 1mp1A00 2oj5B01 1y6uA01 1mjhB00 1fdrA02 5dthD01 1i71A00 4jp0A03 2kjxA01 2o2cA03 2xe4A02 3dyjA01 4mjkA00 4qrbA02 4e6nB00 3d89A00 3ag6A02 5xn6D00 3qvaA00 4pysA01 3nohA00 2y4qA00 4acvB00 4amuA02 1nycA00 2d68A00 4hstA01 4c7oD01 3qexA02 2igpA00 1ikpA02 2xz9B00 3qqmA02 2hzdA00 4x9mA01 4ia6A02 4rduA01 1b69A00 2j82A00 4zh5A00 2kfnA01 3r45C00 3h4rA00 5a6mA01 2qk1A01 2ksdA00 1rkiA01 3hx1B00 5gudB01 1rp0A02 4j27A02 2ra1A01 5b1aJ00 1tizA00 3sjlA01 1le8B00 1ct9B02 3esmA00 1q57G01 1exrA02 4m1uA02 1rwxA00 3mr0A01 5m7oA03 3bofA02 2q82A00 5cz1A00 4o1sA00 3ii6X02 3lidA01 3t33A00 4qpgA00 3lidA02 4alyB00 3i9v101 2ljwA00 1x2mA01 1ujnA01 2dlaA01 5hzlB01 4lhfA00 4up3A01 2j7qA00 3eh1A01 3m4xA03 4illB01 2pjwH00 1aq5A00 4up3A02 4a8tA01 3lo8A02 3llkA02 4dkkA01 4uv7A01 2yfvC00 4kxfP04 4py5A02 3nuqA01 4px7A00 1oacA03 2anrA02 1dgwX00 3fc7A00 3lovA03 3gw6A02 2auaA01 3a8rA01 2pwaA00 2qacA01 4dyqA01 3jz0A02 1xeaA02 1xkpA01 3ljkA03 2cw9A00 5e50A01 3irpX01 5fkyB01 3g33B01 3rcnA01 2rf4B01 4ip2A03 2xv5A00 1o7dC01 4m4xA00 1uhtA00 1ifpA00 2yijA00 2pd8B00 1vk3A02 1hqz800 5c39A00 3dssB00 3fanA03 3e18A02 2uwiA02 1ya9A00 4l3tA03 3qvpA01 1j0hA04 1sxjB03 4jn9A01 1y56B01 4f3lA03 4pqxA01 5k08A00 3mmhA00 2r4fD01 2ahxA01 1jnrA01 1v9cA00 1wgwA00 5nx5B00 3zojA00 1qqp200 3pqhA02 4fcyB02 1zcjA01 4eahA00 3on9A00 5o9jA00 2r4fA02 3kw3A02 1s5jA02 4c92G00 4u1rA04 3hq1B03 4aw7A01 2czsA01 4i5sA02 5mxcA00 2ii0A02 2p5oA04 3vbhD00 3syyA00 4c8qA00 3oduB01 1vqzA02 1oruA00 1sezA01 2wyhB04 3g4nA02 1zh8A02 2qxfA01 4eicA00 2yiuB01 3dh3A02 2z6dA00 3asiA02 3e3xA03 4l2iA01 5hqhA00 4ydeB00 2d1cA02 2lv7A00 4o5qA02 5y1zA01 4mb4A04 2fnaA02 1b77A00 2lz0A00 4l7mA00 3a1jB00 2p28B04 3mi8D02 4kcaA02 4ihqB05 1b2pA00 3kdrA01 2p3fN00 1g8kB00 2zkmX01 2dmqA01 2c9lZ00 4d0eA01 2kq1A01 3mgnA00 2ja2A04 2f2hA01 3uk3D02 2hpsA00 3dgpA00 4reyA01 2uv1A00 4u1rA02 3bp1A02 1xf1A01 4wkzA02 1ufgA00 2ehgA00 2i04A00 2ifgA01 2pjwV00 1hy5B00 2wwwC01 4bjzA01 3hpkB00 3c1aA02 1ku9A02 1r6xA02 1i5pA03 4ktwA00 1u02A02 2gx5C00 3jx8D00 3k1rA02 3gwjA03 4ghnA02 1ji1A03 4wh5A00 1jq4A00 2basA02 2ejwA02 4iarA01 1zhsA01 4qmfB01 2kv8A00 2hw4A01 4aj5S00 4dq9B00 2qcuB01 3webA00 5e9aB03 3s44A02 2f4mA01 2pmiB00 4fvmA02 1bbgA00 5fagB02 5d5pA02 2edpA01 3i0wA01 3q98A01 2ghfA01 4c2mD01 4jc0A01 3c8zA02 1xc5A01 2l0fB01 3p8aA02 3r0hG01 4fz4A00 1hwmA02 3kajA01 2jo1A00 1vk3A03 1q1vA00 1ojlA03 1dnpA01 5u8uA02 1z4hA01 3pmmA00 4c1sA00 3c8cB01 2ch7B00 4i2zA03 5tprA01 4g2sA00 4uqfG01 3ic9A02 2e5vA01 2vpzC00 1exrA01 5djtA00 1m56D00 1d3yB02 2mdgA00 3ic9C01 1obhA01 4b6mB00 3p91A00 2jrbA00 4ntdA02 3o5cC01 1utgA00 2lt4A00 3f8dB01 2qsdB02 1gs9A00 5bs8B00 2xcqA01 1y2mD01 4aybN00 4mq3A00 2q1kA00 3obvF03 2drpA02 1vmaA01 3un9A01 2yjgA01 4l9mA03 2i2lA01 3iwaA01 2f48A02 1mswD03 2vvmB01 2l6hA00 1rl0A02 2np3B01 2lsnA00 4jmqB01 1hxdA03 1ueqA00 2e10A02 1jkfA03 3m4aA03 2ygwA01 2lycA00 4lrzE02 5fkbA01 2ncoA00 3khfA00 1zhcA00 1q15D02 4rv1D00 2x78A00 4b4cA02 4hytD01 2jbvB01 1n67A01 3w1eA01 2vrsC01 3v97A03 1cwvA04 3tpfA02 3h99A01 3focA01 1y9lA00 1sj7C00 2l6mA00 4ejrA00 3htkA00 4lxrA02 3tulC00 5kxjA02 4opwB00 2jr3A00 3b9pA02 3mfiA02 4adzA00 1peqA02 3encA00 4tkcA00 3nt1A02 3wkmB01 4mx8A02 2kaeA00 2zk9X00 1c9bA02 3ot4A00 3ic3A01 1nlxA00 4cfrA00 3h8lA02 1zatA01 1pfkA02 2jyaA00 1xdtR00 5eo8A00 1ldfA00 4xotA01 2eayB02 1mzkA00 2gn4A02 3mk7B01 2wl8C00 5cbzA00 3zxaC01 3jsyA02 3kujA01 5nn4A02 4yn3A01 5vhgA00 1sziA02 3zyiA01 2opgA00 4h61A00 1y8aA02 3e6dB00 1mpgA01 4dqlA02 1gk9A02 3axaA00 3k94A00 3vmnA03 3j4uH00 4d53A00 1vbkA03 4a4kA02 4dezA01 3fkeA01 5lltA00 5gq9A05 4dnxA02 3e1tA01 1lgpA00 2v6zM00 2qbyB01 2g3mA03 4hh2C04 3cinA02 4jjjA01 2wbtB02 2m7lA01 5jysA00 3h9wA00 4mi7A00 1yqeA02 4g3nA00 3dnfA03 3c8cB02 3vj8A00 1odhA01 2d42A02 1vmoA00 3rwnB00 3byiD00 4yzgA00 4zgyB00 2ivxB01 3m7pA03 2wq7A01 1sr8A01 5gmke00 1ug2A01 1zcbA02 3d1nL02 2jtxA01 5hweA03 4eeiA03 3zdrA01 2o90A00 5lweA00 3t6gC00 2k2wA00 4hrvB00 2yyyA02 1fc6A02 1cvrA02 2ca6A00 4ldvA02 4xt1A00 5br4B01 2bt6B00 3go9A02 1dt9A01 3pf7B00 4uu5A00 3pehA02 3a9fA01 2qqkA01 1gk4C00 2hf5A00 2hxiA01 1y96D00 2kp6A00 2lo3A01 4wdcA00 1l8qA02 4apxB01 2w2rA00 2gsmB01 3hvaA00 2r1fA03 1jl5A00 1lw7A01 2vpzA01 3if4A02 2b4wA00 3po8A00 5dk5A01 1sxjD03 4b9cA00 2o4tA00 1hr6B02 2x3nA02 5hpfA00 5tr9A02 2pmvB00 2ehwA00 2p1jA01 3hrdC02 2oolB02 3e7lA00 4rdbA01 3bijB00 4qmgC01 1rocA00 1exeA00 3cf4A02 3oloA00 5u8uD01 3djeA01 2ivdB01 1bl0A01 1wp5A00 1io1A03 3mfxB00 3kuqA00 3ndzE00 4g6zA01 4perA00 1regX00 2v8tA01 3dghA01 3cr8B02 3f1pA00 2qqpA03 6b6uA02 2mkvA00 3tzlA01 4nzjA03 3hagA01 1c9bA01 1r71A01 4jqfA01 3b8iC00 1o6aB00 5einA02 2cfqA01 2jhnA01 2cxaA01 4qmfD02 4ah6A03 4cn5B00 4xxlA00 4m9vC00 4ldsA00 3lp1B04 3noyB02 3swfA00 1irxA05 2jafA00 3hj4A01 3gd8A00 1za0A00 4ja3A03 2xotB01 3dmeA01 3hnpE01 2x48A00 2l4dA00 3u7uK00 3h09A01 1wktA00 1f7uA01 3m1cB01 4r5qA00 3oc4B01 2lpfA01 2z0lA00 3tr9D00 3cbyB00 3n2oA02 4aaiA01 3kstA00 3gzhA01 3uc2A00 3gkuC01 2anrA01 3ns4A00 2qtsA04 5a5cB00 3lk5A00 1lf6A02 5jo7A02 5dm7C00 4mo0A00 3lzwA02 5x6vG00 4udgB00 3gehA02 3by8A00 4lebA01 1x58A01 3lwzB00 3cp5A00 5gpiB01 1xfiA02 4xl1A03 4eieA00 4c91A03 5cm7B01 3mw6B00 1o6vB01 4rflA01 1jnrA02 2bvbA00 2isbA00 2mobA00 3e6pL01 3c8mA02 1n8yC01 3e4gA00 2apoA01 4fb9A02 4mn7A00 3moiA02 1ma1A01 4v2kA02 2h7gX02 1t3oA01 3hveB02 3qc7A02 1jogA00 2f2cA02 1nafA01 3covA01 2aujD01 3ls8B01 1jswB03 4gxtA02 5hj1A00 2rsiA03 4qozC00 5bvaA00 5gpiF01 2fgeA02 3lqsA02 1tfeA01 2o8iA00 2jh3A04 2qqpD00 1hcyA03 3vavH00 3ef6A02 3ee4A00 1rktA01 2a3dA00 3k32B00 4phzA02 5io9A00 4hoiB00 2ov7A01 3napC00 4r4kA00 4m9rB00 2j9lA02 1pcxA01 3cymA01 4pn0C00 4q4w300 4cpgA00 2r01A02 4eqsA02 3nybA01 4ja3A02 3oa8A02 4kqdB00 1qtqA01 5cfcA00 2z66A00 3jvtB01 4qcjA01 3kq4B04 3chxC00 2sqcA01 3qx3A01 2lvvA00 2i9cA01 3f79E00 1ignB02 2fe0A01 2bzbA00 3w5hA02 1sdiA00 2ww2A02 2zxrA01 4k7jA02 1jkwA02 4hqnA01 3k29A00 3kwlA01 1f5qB02 2etjA00 1t3qC03 1lwjA03 1fecA02 1s67L00 4i2zA02 4iykA02 1ci6B00 1xb2B02 1w33A00 1nowA01 4yx1A00 2jx0A00 3vwaA03 3lqyA00 4i6oA00 4cknD00 2wgnB01 1k3eB01 2hmaA01 1bd0A01 4cj0A02 3nowA02 1yvuA04 2gy5A03 5t69A01 2cfoA05 3o2tA00 3kheA02 5gmkm00 3ltjA00 5osnA00 2wgoA00 3kroD00 4usaA01 3nixB00 2inwA01 1tvcA02 3eh2C01 3cx5A01 3cirA02 3pmrA00 3ab4E02 5sx5N00 4pvaA00 1sxjE02 2xdoD00 4kp1A01 3bm3A00 3op1A01 1oyzA00 5oomW00 1vk9A00 3cmyA00 1wolA00 4dh2D00 2e0iA01 1fm2A00 2qv6B02 2hgsA01 4a8tA02 2zp1A01 2df7J01 3ge3B00 4i0wB01 1kb0A02 1x0cA01 1go3F02 1llmD02 5heeA00 4c46A00 2nqtA02 2wshB00 2ixtA00 3djbA01 2l1nA00 4mspB02 4mxmB01 2pyxA01 3oqpA00 3k62A00 4a91A01 3u9tA04 2kebA00 1khvA03 1y8tA03 3up6A01 1k4zA00 1sxjD02 4omfG01 4epzA00 5o95D01 3pl8A02 2qiwA01 3avrA01 3pvsA02 3chtA00 1vkyB01 1wv3A01 5dz2A00 2giaA00 3vsvA02 1ywmA01 3mhsC02 4qhrA02 3ephA03 1zp2A01 1gdtB03 4a9aC01 1t3yA00 1kwgA03 4idiB00 4r6fA00 4d2cA00 3kepB00 2yvyA01 4q2qA00 1t3cA00 1pbwB00 1el6A01 3tixA02 1jfkA02 3gqqF00 5vpcA00 2yfoA03 2xijA02 2ey4A01 5e62B00 4d3xA00 1ijqA02 5hy0D03 3wkyB03 3kheA01 3e0jB00 5j60B02 2bc0A01 2kmuA00 3wraA01 3puaA02 1c7sA02 4l6rA02 1ywmA02 1gvhA03 3ayjA01 2zxeB02 4q62A00 4p1mB01 5ftjA06 4i6mC00 4b8cD01 2mbgA01 3q2qA00 4pibJ00 4hiaA00 1yuiA00 1hr7C02 2oznB02 5cqgA01 4h3sA03 4qxeA01 3cnqP00 2vxgA01 3c9aC00 3pvcA02 4gw9A02 2mgyA01 3o7iA00 1zhvA00 4uhvA03 3a8tA02 4l2iB00 2id5D01 1ysqA00 4xeaA02 4kbmB01 3tnuA00 2wnoA01 3whkA02 3ng7X01 2pm7C00 1dd3A01 5hodA00 3vm7A02 4rocA01 3canA00 2ijqB00 3t5oA01 4bgbB01 3ip3A02 2x49A04 2bw3A01 4k92A00 2wssT00 4j5tA02 2gefA01 3fdjA03 4wnyA00 1q5nA01 1hx2A00 1sraA00 1nxcA00 1g6gB00 4aqsA01 1ydxA03 5f1mA00 3rsiB01 5ilnB02 4hkjD00 1o67C00 4nzqA01 4z6mA03 3n54B01 1qauA00 3u1kB04 3gwmA00 1ux6A01 2yu5A00 1t4bA02 3agkA01 3sovA02 4b7hA01 1bgwA02 4irvA00 1sxjC03 5jzgA00 1wrkA00 3k92A01 3ozoA01 4i6jB02 2wzpP01 5aurA00 4u8uM01 2jneA00 4aivA00 1bcoA01 1z2zA01 4gw9A01 2lyyA00 2qgmA01 1gk9B02 5dnlA01 1iieA00 4rcaB00 5gmki00 4f3lB02 2ynyC00 1rifA01 1rj9A01 1s3eA01 4h4dA01 1x9mA01 2i88A00 1nupB00 2bkyA00 2dkrA00 3p0yA00 1bf2A03 4f9cB02 3sc7X01 3hurA02 3a21A02 3nghA00 1orsC00 1orjB00 2o0yB02 5jxgA01 5jbnA00 4ckmB00 4kx7A01 4l0nJ00 2ielA00 1djxB01 3cu9A00 2ws9201 2g3mA04 4b21A01 4fgmA03 3lulB02 2ayaA00 5c5jA01 5visB00 4cruB00 3k50A01 5a7vB00 2wb6A00 4p27A00 1r6bX05 1p1jA02 2zpaA04 1d8hA00 3oymA03 3geeA02 3eefA00 2fh1A01 4chiA02 3o7vX00 3he5A00 2giaB00 4exoA00 1snlA00 1i8oA00 2hknA00 3c18A02 3kvwA01 3hn5A02 2z30B00 3eapD00 3o7qA01 3fg1A01 3jb9l00 2gf3A01 4r9pA00 1jnmA00 2zaiA04 4h6xA00 2k4qA00 2jikB00 2r4hC01 3f1iS00 1olzA02 3sb1A02 3dffA00 3d3oA00 4pwaD00 4o4fA00 1w2yA00 4j3cB01 2f06A00 3l4gC01 1o94A03 1m6nA05 4b4dA02 1i5jA00 3l3uA00 4l9mA02 2lraA00 4k08A00 3c3rA00 4amuA01 1kn7A00 2wc7A02 3e2dA03 4wf7A03 2fe5A00 2i0zA01 2qqpA01 2fd5A01 5csmA00 3nzmA00 3d3qB02 2gytA01 4edgA02 5hyhA00 4c68A00 3dghA02 3mm5A03 4ol8B02 5ip4E00 4fp4A00 4hytB01 4x1hA00 1wh1A01 1h99A02 4uw2A03 1kzqA02 4pzvA02 4n06A02 5aooC00 3fmgA02 1o9yC00 2j4oA00 5b4wE02 2x8aA02 4fwwA02 4u4vA02 2bl5A00 2pnqA00 4hu8A01 4jwhA00 1hi9A01 1ni5A01 4y5jA00 1wjpA01 1onfA02 3cloC01 4e29B00 4hq1A02 4tzhA00 3q13A01 2l9qA00 5t1xD00 2e9fA01 4onsB00 1js1X02 3dt5A00 4lfgA00 2olnA01 4g1qA01 3t38A01 1g5gA02 4eqpA00 1hbwA00 4h3sA02 2ao9I01 1feuA01 1tf6A02 2dmpA01 3fg8A00 4lvnA00 2ih2A02 1knwA02 3renA00 3bc1B00 1kfiA04 1vigA00 1vdkA01 1qtxA02 2v1uA01 3orgA01 3w1eA03 3ul4B00 5a1mA00 1m5zA00 4wwuH01 2e4tA01 5kb6A02 4gc1A01 2azjA00 1b4uA00 3luqB00 4qqsB00 3virC00 2r18A01 4ba0A01 2k9xA00 1uaxA00 4lijC00 2wnwA01 5dhdA00 1gppA00 3h3aA02 2l9dA00 3g80A00 2mf3A00 5b1aK00 1iq8A02 3mj0A00 2q2kA00 5gz3A02 1dszA00 1wgxA00 3zrgA00 2dydA00 3pkoB00 4aanA02 3drxC01 5ldaB00 1wkbA01 1wdcC01 3iujA02 1hwtC02 2ijeS00 2igiB00 5avuB01 3k6qA02 4etxA01 2mctA00 3dtyB02 3rguC00 2drpA01 2da1A01 2ebfX04 3ewkA01 2nwaA01 3bb0A01 3d4rB01 1af6A00 4e27B00 1wh5A00 4gfcB00 2f5yA00 2qjoA01 4dhdA00 1vg0A01 3tw8A03 4c2mS01 1topA02 6em3Q00 3ajwA00 4mn5A00 2e1mA03 1aorA03 4yy8A01 2nogB02 5h3jA01 3dhuA02 2j4dA01 1n93X01 1kwfA00 4mc3A00 3loqA01 2eabA02 3d1cA02 2p8tA02 2ijqA00 3sxuA00 3uh8A00 4hxiA02 4lrlB02 4jccA02 3b8oA01 4ic1D00 3pesA00 5expA02 3oovA00 4kg7A00 2rsiA02 1qnxA00 1x6vB03 5a04A02 3ostA00 4f8bA00 1m1zA02 4csdB00 3r79B00 4mx2A01 2r2iA01 3f6uL01 2wb0X02 5gaeP00 3zdmA00 1ntcA00 2dxaA00 2dgjA01 3rpfC00 2yggA00 3u7qB03 4rft000 2iqiB00 1wwlB00 4b1bA00 1rsgB01 4wqmA03 3m92A01 3w5sA01 1m0wA01 3bh7B01 3msuA02 3s84A01 1ix9A01 3pquA01 1v6zA01 4gehA00 3n40P02 2r78C00 3cwwA03 2xtzB02 2de0X01 3e4pA02 2kvvA00 1kv9A02 1qtnB00 3v5wA02 3qtgA01 1wy0A00 1nepA00 2pg3A00 2ijrA02 2ek0A00 3rx9A00 2h21A02 1ixmB02 4ls9B02 3buxB02 3imoC00 3n2bB02 4ol8B03 3ckdA01 1cxqA00 3hzqA00 3tg2A00 1zxxA02 4omhB00 2ixmA02 4kw3A00 4lgvD02 1ignA01 4zmhA01 4e04B01 5bxrA01 5k7fB01 4gamD00 1w2lA00 4ks9A01 4pniA01 1vk0A00 2vlgC00 1junA00 1miwA02 3uonA01 1ydxA01 3r4kA02 3i18A00 1ileA01 4dczA00 3ipiA00 2zauA01 3pmiA02 3nlcA01 4is1C00 2kcaA00 4a3pA01 3q3qA02 3cwwA02 3qd7X00 2vkcA00 1n4kA02 3mjqA00 3ezuA02 3ty1A00 3db2B02 4ffhA01 2zodB01 2ipqX02 2vnuD02 1uewA00 3dd4A00 4xbvB00 3bc9A03 1xzpA02 3kdgB01 4mvfA03 1k0iA01 3giuA00 1qr0A02 4y2fA00 1ho8A01 1lqtB02 4ixjA01 1h1oA02 4nohA01 2yevB01 4wk0B01 4ip2A02 2yp9A01 4q2nD00 1ps9A03 5j39A01 1gd2F00 4u63A01 4uzsA03 2eqxA01 1rzhH02 3p1gA00 4fxkB01 1w1oA03 1rqgA01 2ylbC00 3u27A02 2jmwA01 2qx2A00 4dckA01 3js8A03 3d8bB02 4mh8A04 1li5B01 1fakL01 2joeA01 1dqaD01 1qjtA00 4nreA01 2ocyA00 4iv9A01 1nf3C00 4ftfA00 3or1B02 4zquA00 1h32A02 2qpzA00 4xwwA02 3iveA02 4z8jA00 2xn2A03 4udxX01 3eehA00 3wa2X03 3vrdB01 3fwbA01 4npdA00 1ncsA00 4kzsA02 2kx2A00 1p35C00 2iw3B01 3mk7A00 3p24A01 4dqaA01 3di2A00 3nt8A01 3gv5B01 3aqbA00 2vs0A00 1o97C00 4hb1A00 3napB00 4u06A00 4ygbB00 2w4yA00 1xg0B00 5ekaA00 2ka6A00 4f7uG00 3go9A01 4n1iA00 1htmD00 3kp1E02 3wqbA01 4b2fA00 1y0pA03 1y4wA01 3ceiA01 3kq4B01 2rqxA00 1eexB00 2xt9B01 2ja9A02 2jnsA01 1zlpA00 1dq3A01 2l6oA02 2jh3A03 1x3cA00 2gagC01 3gmiA02 1ycyA00 4phzG00 5dmdA00 4nleA03 1c75A00 2zndA00 2ctjA00 2adrA02 4fxeC00 4tpjA00 2fneA00 1hzfA00 2f2hA03 1nijA02 2opvA00 1mkmA02 4zoqM00 1x0tA01 5ermB00 2m0rA00 5x8t300 2yzsA02 2i8dA02 3nisA01 2kgyA00 2ptrB03 3k8zA01 1zymA02 3ihgA02 2ef0A01 3v1vA00 3eaqA02 4r5dA02 3mfiA01 3hi7A03 2wxfA05 1dw9A02 3u2gA02 2xs6A00 3nxaB00 2clyB00 4xb6F00 4v1sA00 4l5eA00 5jb9E00 3pblB01 1zybA01 1nbaB00 5gxxA02 2ahfA00 2zxrA03 3b0gA03 3zx4A02 2w0nA00 2wanA05 1j5pA02 3k7xA00 3h4cA01 3m1cA01 2q5xA00 4il7A00 1kxuA01 1vajA02 2doqD00 3hskA02 4ijdA02 2gruA01 3fxdC00 2ndpA00 5fy1A02 3c9aA03 3dpuA03 2g8yA02 3uuwB02 4h0aA00 2dnfA01 2wxfA01 3mfnB00 2lj8A00 4mbqC00 2kw4A00 1ml4A01 3zo9B03 3fhlA02 1yo8A03 5lf2A03 4x9xA02 1l2gA00 3ek4A01 5wm1A03 3c2uA01 3qj4A01 1k7wA03 2ja2A05 1e7uA03 1js1Y01 1ky9B04 4du6B02 2tbvA00 3elbA02 1cqxA03 4wk5A00 3nrfA00 5fwsA01 4v3iA00 1l0wA03 1v8cA01 2ywwB02 3rw6A02 4opxA01 2xsbA02 4tviA02 2olrA02 3bpuA00 2hosB00 1eaiC00 4at0A02 4u7lA02 3nsxA01 1vsgA02 2jpeA00 3bgyA00 2ra1A02 2oarC01 3a2kA02 2wpgA04 3nmzA00 2mabA00 4f1vA01 3qfsA02 3m91A00 4ndcB00 4lwsB00 5xopA00 2jroA01 2as0A02 3m97X00 3vsjD00 2iumA00 2l9bA00 4d1eA04 2ygoA02 2hgaA01 1z2iA02 2z3vA00 3txsC01 5hwvA00 2b34A00 2vxzA02 3ve5A03 3ktzA02 2d7eA01 3d55C02 1k8uA00 3k11A00 2hh2A00 3d8kD00 4g1qA04 3t97C00 1ayoA00 3bh4A03 1so9A00 2jilA00 4hadB02 1t23A00 1vq8O00 1oaoD05 2egoB00 4h63K00 4gofA00 3hxlA02 5wb7E00 2i53A01 3lyxB00 2d73A03 1r5lA02 1xdiA01 3ikwA02 2d56A00 3k9xC01 2v7qI00 3jr7A03 3hvzA00 3d34B01 2k57A00 1t60D00 4xeaA01 2cg8C01 3k7aM01 2weuA00 1y96A00 2dkhA01 2bl0B01 2w82A03 3wnoB04 3tz6A02 1ll8A00 2chnB04 3ioyA02 3osgA01 2g9wB02 4gpvB01 3napA00 3hc7A02 4om9A01 1a02F00 3oz2A01 3sjmA00 4ic6B03 2w42B02 5j7xA01 1dh3A00 3uxjA01 2x3nA01 5bmnA04 4a9aA01 3e3rA02 3qqaA01 1r75A00 3fhkA01 5b42A00 1li5A02 4l80D00 2mhhA00 1m45A02 2yxbA00 2e8yA04 3b33A00 2qjtB01 1moxD00 3mjoA00 2i53A02 4wriA00 1a87A01 2nykA01 3kycB03 2vsgA01 1vjfA00 4g1eA04 3q9tA02 3oljA00 2c8sA00 2jksA02 2czrA02 4npxA00 3eojA00 3irvA01 3mnmA00 1qhlA00 1k04A02 5bs1A00 1cshA01 5osnD00 1cjaA02 4g92A00 2y30B01 2qgaB03 2j5bA01 1jr8A00 1nirA01 3g7mA00 3a1jC00 4v2dA00 1kq1H00 2lvsA02 3sy1A00 2a2bA00 1t3uB01 2lr8A00 3zdmB00 1zj8A03 4ew6A02 1em9B00 3aa0A01 3iayA06 4lmoA00 4g0aA01 3k6sH04 3a7oB00 2a66A00 1p68A00 1kmtA00 1m45A01 4q65A00 1r76A00 3n1eA01 2ce0A00 3by9A02 4hi4A00 2m1cA00 5klaA00 2db0B00 1dpgA02 3gdiA01 4oifA03 2obeA01 2ofcA00 2hjsA02 4wfaS01 1sezA03 3px8X02 5t5dA00 2j7jA01 3sduA03 2w48B01 2jvnA00 2jmzA01 4aefA04 2fhdA02 5kszA02 4bwiB01 3aaiA00 5jelA00 3di2C00 3k66A01 1q16B03 4au1A00 4hkrA00 2f2pA02 4s39A02 3pohA01 3nvwB03 1ou0B00 3wrbB02 4ar9A03 4u7bA01 3ioxA01 2dmnA00 1wv3A02 4zpxA02 1lfbA00 1kzqA01 2pbeA02 5oomg00 2z73B01 4n5xA02 2vlaA03 3m7oA00 1ftrA01 2qtfA02 3wiwA00 4okvE00 1j72A01 5eesA02 3tviE02 2e5yA02 2f4lA02 1qlsA00 3tt9A00 3ibjA01 2bezF00 1ye9A01 1d1rA00 2wdcA03 3fwkA00 1fftB01 3kb9A00 1pulA00 4l69A01 3k6rA01 4b3fX02 1psrA00 2zblB00 1mbmB03 4ojuC00 4z4dA02 4gehB00 2okxA05 2yskA00 4i0xK00 4lsbA02 2y38A01 3i9v900 1wveC00 1q77A00 3c8zA01 5mk2B00 2e0zA02 1ddlA00 1opoA02 5bz1A00 1wjvA01 4j7rB03 2lceA01 4lusA02 4lj9A02 5mjvB00 2zjsE00 1rm6B02 1wdcB02 3okgA02 1k4tA03 1vhnA02 3o8oB04 1ji6A03 3tufA00 4l3tA02 3k7dA03 1lj2A00 2c43A02 3bh4A02 2e42A00 4fidA02 1eg3A04 1g3nC01 3sdbA02 4cc0B03 2j32A00 4ba0A03 1lrvA00 4e18B00 3purA03 1zroA02 2f2bA00 2p2uA01 2k9sA00 4nzfD02 3jb8A00 1irxA04 2otaA00 2iy9A00 4h09B00 1c1kA01 4mt2A00 1g2cB00 1hw8A01 1hp1A02 2rc5A02 4q4w100 3oa8B00 1zrxA00 2pvbA00 1kblA02 4kjzA04 2wnxA00 2hsbA00 5nioA01 4dmiA02 1owaA01 1hjrA00 3l4yA02 1aiwA00 3p8nA01 2xtsB01 1gxcA00 2egdB00 5e1qA03 3a7mA01 4v02C00 4f6mA03 1qqp100 2w61A03 2gmhA01 3v76A01 3qtyB01 1jl1A00 4fxdA05 2a4hA01 4m4pA02 1um8A02 2dh2A02 3zn6A01 1pyoC00 3bo6B01 4cycB00 3b9qA01 2g2bA01 2dlkA01 4aybA09 3co8A02 2ivxB02 3wkmA02 1np7B01 3fg2P02 3icyA00 3li9A02 1p9aG00 2cqqA01 4ay9X00 2gagB01 4aybA08 3d1cA01 3k65A00 3e0yA00 4hd1A00 1jqjC02 2a06A02 4n1vA00 3fetA00 3kxtA00 1iq0A01 3nmdA00 4xgoA00 3dnfB01 2a2fX01 4ep4A00 3aoeD01 1m06G00 4fzxC00 1t6aA01 2chgA02 2e6mA00 5fmoL00 3u3lC00 3wadA01 4pk9A00 1bboA02 3w7tA03 2b5uA02 1llaA02 3k13A00 2nllA00 1wu4A01 4ljiB00 2vhkA00 2iwoA00 3h8lA01 1goiB03 2gnoA03 5i0fB04 1fl2A02 4mbsA00 5ihwA01 3i3wA04 1xhhA00 4nwbA02 5b66Z00 1yo8A01 3e9tB00 1zjaA03 2pyqA00 2r0qC02 1w5sA01 5jpnB04 3besR03 5m9oA01 2qv2A02 1ogqA00 1bgfA00 3cq9A00 1uurA03 2dduA02 2rpiA00 3m2tA02 5fo8B03 1x9zA01 3ccyA01 1g5aA04 2dsmA00 3b8pC00 3a54A01 4l9yD00 4gr6B00 1ztmA02 3fg9C01 1ds6B00 4wnkA01 1lvkA01 3cu4A00 5ky2B00 3u28B01 3c96A01 4f4hA02 1xm9A01 3b76A00 3npdA00 3ic9A03 1bpoA02 3mw6C00 3nt1A01 1g1tA02 3h4sE00 3l0aA00 1pzxA03 1jbaA01 1w9rA00 3qwnD01 5l77A01 4xb3A03 3r07C00 1zvpD00 2d0bA02 5oc1A02 3favD00 2z5yA03 1yduA01 1ibrD00 1ygcL00 4ayoA00 2b3yA04 2be4A03 2x51A07 2m9aA03 2o8mB01 2napA01 2axqA02 4mh6A00 1oaoC01 4uusE00 3eh1A05 1lc0A02 3qz6A00 1k7wA01 1mg4A00 4krwA00 3n8hA02 2xfaA00 2yrtA00 2o99B00 2bmbA02 4c3xA01 4k73A01 4n6hA02 4n0rA03 2yhaA02 2fgeA04 3rk1B01 4b6eB01 2zgiD02 2ctdA00 2id3A01 2qg8A00 1z5hA01 1ryiA01 1xzpB00 4jykB01 3s84A02 2arcA00 2v5cA01 2yngB03 3x01B01 4b8tA00 2qkbA00 3cx5D01 4uwhA01 3u3gA00 2ze7A02 3kraC00 3x1lB03 5m2pA00 2q22A00 2c52B00 5kytA01 2o3lB00 1ksiA03 3nwsA02 5a2bA02 3r1xA02 3abqA01 2x49A02 3hhdA02 4hrsA00 2jfkD01 2j91A01 2is9A01 5jemA00 1gksA00 1ml4A02 3nqzA01 2r0cA01 3o10C00 1ga6A00 3qdrB00 3g06A01 2pusA05 1a1hA03 2z4vA00 2rngA01 3etzB00 4dnyA00 2inpL00 4mboA01 1yycA01 4hp9A00 3zxkA01 1ux5A03 4e04A02 3fd5B01 4fs7A00 3m4wE01 3rfeA00 3zpnC00 2np2A00 3osgA02 1h3fB01 5iztB00 1sg4C02 4abmA00 5ipyA01 4i5jA02 3q9oA02 3qyeB01 3vjfA00 4r6gA00 3h11A00 2e8gA01 3vv3A00 4gf4A00 3fgrB00 5cxmA00 3k50A02 2zdjA00 3aqoA01 1oqcA00 1k25B01 3n6rA03 3zygB01 3o5aA01 4mzjA02 1t3qB02 1xwvA00 3d3yA01 3hu5A00 2vh3A00 3pv2A02 2d28C01 1kloA01 2lzfA00 2b3wA00 5niiB01 4kc5D02 1uhsA01 3wcoA01 1nphA01 5tgtA02 1b25A03 3v67A01 1x3aA00 4wqdA01 1q5nA03 1w2tA01 2bklA02 2m7lA02 2goyA00 5nn4A05 1h32A01 4hp4B00 4lzkC00 1mxgA02 2zxdA02 1d2nA02 3ci0K02 1pw4A02 2nrrA00 3nycA01 1zunA01 5k3wB02 2e3hA00 3ggeA00 3kioC01 1j09A05 2wnkA02 1qksA01 1m70A02 3c8gD00 2c3aA00 3onhA01 3bdlA01 1a9nC00 2xwtC00 4knfC00 4ch7A01 2luyA01 1wjpA03 2cjjA00 1nyrB01 2yuhA01 1ryjA00 5t1xA00 1wjpA02 3e4wA01 4u9hS01 5bukB00 1wteB01 5ui5I01 3edyA02 3q5wA00 1r21A00 4hwmA00 4lgtA02 2fyuF00 4akfA01 2wjvD01 1aepA00 5gmkg00 1rwzA00 2wadA02 5fr1B00 4fvmA06 5u3aA02 1q74B00 5fs8A02 2eabB03 1b34B00 3v4yB01 4w8pA01 2fupA00 2rtsA00 4zurA00 2lxwA00 3cc1A02 2ijd101 2cteA01 4wksA00 3mlqG00 1mgqF00 3vw7A01 1ij5A02 3s28A01 3fgaB00 3ak2A01 3rvyA01 1j2rA00 1b7tA02 1ihjB00 2pr5B00 3ug3D01 1aisB01 1xeeA01 3dzaA02 3dbaA00 3jqqD02 2cfqA02 2xrnA02 1r8uA00 1h54A02 4kl5B00 5koxA01 2crgA00 3soeA00 2iaiA01 4aanA01 4fcyA01 1jlcB03 3mklA00 2py5A04 2b4vA01 5luvA00 1c07A00 3ilvA02 2hgkA01 4mloA01 1wmdA01 2qtlA01 2q3gA00 3pm9A03 2haiA03 1nzjA02 1v4aA03 4h5bA00 1j7qA00 4oq8A00 2xu6A00 4ksaC02 4iofB01 4dl8A00 3ay5A01 1e29A00 3fssA01 2ze0A03 3dshA01 2v9tB00 3hjcA03 3goxA03 4qdcA01 3kd4A02 1gaiA00 3lp1B03 2g7zA02 1iioA00 3fbyA01 2izwC00 2l3xA00 1x7aL02 1tuoA04 1wxxA02 1xn8A00 2m4iA01 3u27A01 1pov100 2q9bB01 1pj5A03 5x6vF00 1ufbA00 4uv3E01 2cyjA00 3s6sB00 3ib5A00 2v0pB00 4he8F02 1yu5X00 3jamj00 1nyaA00 2g5xA02 3uaqB01 2haxA01 4tv5A00 2dcfA01 1fjrA01 2pjuD03 4be3A00 5aeiB00 3sb4A01 4griA05 4m95A02 1y9iA00 1mtyD00 2w7vA00 3gceA00 1n4qB00 3afoA01 4i6yB01 2fqqA01 4bx8A04 3mk7C03 4obuA01 1r3eA01 3wy2A03 4j05A00 3e7jA02 3i5pA02 4ph2A00 4u9uA02 1chdA00 1c3pA00 2raeA01 4wanG00 4m75F00 3fauB00 1k40A00 2r6zA01 2vlcA02 3iv1A00 2im9A01 3bqyA01 4fxtA02 2yxnA01 1nc5A00 3hxlA01 3bqwA01 5ewpA00 3fnrA02 3cx5B02 3o5yB00 4hjhA04 2i1sA00 3al9A02 4tndA02 1yf2A01 1l8nA01 3eoqB02 4h2gA02 3n29A02 4ne3B02 3ddlB00 2a67B00 1gvdA00 1zw0C00 3whpA02 2d9hA00 5jmfA02 1r6bX03 4ociA01 3lrkA02 4hpmA00 3gfzB01 2o5vA02 3sqnA02 3pijA01 5jcpA01 4eiyA01 5e6zA03 2rrlA01 1ppjI00 3weoA04 4l3tA01 3vgfA03 2xdwA02 2an7A00 2yciX00 3t1iA02 4hyjA00 4qgsA01 2y2wD01 1wlmA01 1s2wA00 2piaA03 1tozA02 4opcA00 4at0A01 2yf4F00 4doiA02 5izaA00 3hdiA02 1j2jB00 1gjwA02 2l97A01 4rekA01 3p4gD00 1u7kA00 4jpqB00 5m10A01 2i2lB02 3bwtA00 5axgA03 2qvaA02 2vqeT00 1g4yR01 1n9rB00 1x5rA01 1ea9C04 4qclA03 4f3lA02 2ivdA03 3lfuA04 2bs2B01 1l6jA05 1zgwA01 5o5jT00 1e7lA01 3k21A02 3cx5B01 2osaA00 3hzrA01 4mixA00 4bg5B00 1u5eA01 4ejqA02 3p02A01 4ezgA00 2v66B00 2j91A03 2zmfA00 4ygcH00 1oznA00 3q20B00 3lnyA00 1aooA00 5koxA02 1na6A01 2idbC03 2qg1A00 3u52D00 1gk6A00 3lpcA00 2ov9A02 4iypA01 3elsA00 3lmmA02 1bl0A02 2jnfA01 5oomF00 2fh1B03 1slqE02 2m2eA00 3eeaA00 3k6sD05 1hhnA00 1ykdB02 1nbwB00 2nydA02 2bw3B01 3a04A01 4iuhA00 3iugB00 3sb4A02 3qz4A00 3vdpA03 2aplA01 3na5A04 4a1xB01 2pofA00 2q00B00 2k9qA01 3do8A00 4k6nA02 3tjzB00 3gd0A01 1pufA00 3bdlA02 2yuyA00 5ek0C01 3pnrB00 1gk9A01 2oyrA01 3g5sA01 2pw6A00 2z4uA02 4fdwA02 3ix0A02 5cgzA00 1sxjA03 3jyuB01 4pq8A00 3bzcA01 3fcsB04 2jfrA00 2o8sA01 3edfA03 3sjlA02 1g2hA00 2ibpA01 2jksA01 3c1mA02 2ct1A01 4rzlA00 4g6uA01 4wksC02 1r8uB00 1rr7A01 3kw2A01 5lcyA00 2wg3D02 4h7uA02 1c7sA01 4u7lA01 1pzrA00 2p64A00 3cjiA00 2a1iA01 2a25A01 1w9eA01 3nhqA02 3suuA02 3vdpA01 5tytA00 1zkdA03 3o0gD00 4dzoB01 4xlzA00 4u4vA01 3a2kA03 3qxlA00 3op6A00 1s5jA04 1sziA01 3qvsA02 2l31A00 1l5pA00 3e20B01 3gmiA01 4k7zA01 2ks1B01 4b60A01 3zg9A00 3isrA01 3bqoA00 2bmoA02 4indA01 1harA02 4usrA00 3a4mA02 2pljA02 5ttjB01 1h8pA01 5b1aB01 2nwfA00 3suzA02 4le7A01 3narA00 3pm8B02 2w3cA01 2o5nA02 3dtgA02 4tx8A01 3ajiB00 4jgpA02 3kizA01 2phnA02 1y8qD03 1m4jA00 3zbeA00 3opcA01 2az0B00 1dx5I02 1nwzA00 2dbyA02 1ofcX04 4ipuB00 1s0pA01 4q0yA00 3mk7C02 4bwvA00 3d3yA02 5i32A00 4xb1A02 4miyA02 3k2nA00 1d2tA00 2iw3A02 4mcwB01 2m74A02 4e2vA00 4r2zA00 4p3aA00 2eefA01 3nowA01 3zqxA00 2h88B01 3npkA00 2jg0A00 1p1eA00 1ot6A00 3ttyA03 1h6uA02 2gfqA02 4q4w200 3shgB00 1qqp300 3uoeA02 5ftjA04 4kjmA02 2jqqA00 1p5dX04 1k92A01 2mpnA00 2jaxA01 1yt3A01 3zqiA01 2b7uA02 2xssA00 4l3uA00 3su0A01 1ggzA01 4jr9A00 1cf4B00 3r84J00 4j20A00 3msxB00 3l4yA04 3rkxA03 1ng6A01 3zssA04 1zp2A02 1ydwA02 4de9A01 3iabB01 3acxA00 2e19A01 3pv2D01 4g38A02 4qpiB00 4jbzA03 3djlA02 4bxoB01 3clwC01 2o2tB00 4dokA02 3uiaA00 2r4jB04 1d4uA00 1kblA05 3topA05 4ndlB00 4iynA03 3n54B03 4pe0A00 4krdB00 2dt8A02 2rccA01 1aisB02 2oy7A03 1dx5I03 1e8rA00 1reqB02 4bkxA02 4aeeA05 3h05B00 4ebrA00 5t6jA00 1knyA02 4aq1A02 3akbA00 3nyiA02 3l7zF03 1pd0A05 3u61D03 4wz9A01 3q2iA02 4ntqA00 2pifA02 4c7gA01 4wxpA03 2k31A00 3gkeA01 3f0cA01 1kwaA00 4f27A01 2beqD00 2brfA00 1vjkA00 4pydF00 2l10A00 1tc3C00 1dgfA01 4fcgA00 2a1uA01 2fgeA03 5oomm00 5bnzA04 1jggA00 4wfoA01 4ko8B04 5f67B00 2jpiA00 4qhsA02 3c97A01 4ybrA00 2bouA03 2fd6A01 2vsvB00 3kevA01 3zr5A01 3vdpA02 1kgdA02 1iufA01 2yadB00 5cqfA00 3k2yA00 2vjwA00 3rlfF02 3i0pA02 5dfyA00 2i71A02 1ftrA02 1b72A00 5ep2A02 4fibB01 4bwdB00 1pufB00 1tuaA01 1pnkA02 4l9eA00 2lfpA01 1vq8N00 3nl9A00 4gc1A02 2kzyA00 4fbwA02 2pmyA00 1dd4D01 3rc2A02 1um1A00 1pp0B00 4lmxC00 1j8mF01 3aiiA03 2oq2D00 4npfX01 4fx9B01 4m9fA00 3gqcA02 1zud400 1te0A03 3pojB00 4v15A02 3bc9A04 3ieyB00 3m86A00 2gkpA00 2gb7D00 4hb9A01 4kkiA01 3qmlD00 4w97A01 3c0dA00 3p1yA01 3l8kA02 4r2lA00 4ok4A02 1io0A00 1pgvA00 4fnvA02 2hpuA01 2wbuA03 3petA00 1yyqB00 2ya0A03 4je0B01 2x0kA01 2mv2A00 4ifaA01 4e7sA01 1bplA01 3thrA01 4k5sA02 2mh4A00 3rb5A02 4e54B01 4ebjA02 5uswA00 3ke6B01 1qakA01 2hz7A04 2r9gA02 2bouA02 4jwjA00 1gciA00 1nhpA02 5hb6B00 3zurA01 3ge3A00 3tvkA00 3tc1B00 4sbvC00 3u28A02 4g79A00 1lslA02 4hjiA00 2d0oB00 4dezA02 1khvA01 3opyI00 2hekA02 1m70A01 4b86B00 4a54A00 3g67A00 1ci6A00 1i2tA00 2zpmA00 1lpvA00 4b9iA00 1wdvA00 1s6cA00 2iwqA00 1vr6D01 3kxlA02 2xocA01 1yi8B01 2kzbA00 1ohgA01 1q2lA03 1ekeB01 3tcqA01 4q7fA02 1ng0C00 3qk9B00 2c5sA02 5g1aA00 4m7cB00 2p35A02 1d3bB00 3w6vA00 4xfjB01 5jouA01 2rvhA00 1wtjA02 1kblA04 2qt5A01 1wqaA04 2be4A02 1uurA01 5lfnD00 3qllA00 2kseA00 5xs2B01 3a02A00 4bs9A03 2z0xA00 2xrhA00 2olsA04 4ud4A01 1ygsA00 4ywoA02 1wa9A02 1ig0A01 3qipA05 2p51A00 3v9oA00 3aljA02 3bgeA02 3oqbH02 2i13A01 4ywjA02 2i5uA00 2wt7B00 4hnmA00 2qgaB01 4m52A02 4u12A00 4ghbA00 1i16A00 5i1uA00 4gwbA00 3cgbA01 2jspA01 3opxA02 4pfoA01 4wsgA04 2r7gA02 4uwhA03 3b4sB01 4glqA00 2zc2A00 1bhaA00 5gmkl00 3ctwB00 1pw4A01 2lvsA01 3oouA01 4lscA00 2qtrA00 2bpoA02 2q7vA01 3ctdB02 4k3jB02 5tjjB02 3lsgA01 3kfwX02 4j3vA04 1v9dB00 4hg2A02 4gznC01 1kyfA01 4fyyB02 4a8pF01 1rz4A01 3oceA03 1uv7A00 4k17B03 1whmA01 1f20A02 1qu3A01 1z9hA02 4atgA00 5b0nA00 2r7gA01 5dc8A00 4kk7A03 1sxjA02 2h9aA01 5b02B01 3kznA02 4i0xL00 3cx5G00 4k22A02 5kxjA01 4roqA00 3h5nA01 3ohsX02 1heiA03 4htuA00 4ks9B02 1tltA02 2cshA01 3brjC00 1k3eA01 2o1zA01 5dwyA00 2jaeA01 1wh7A01 3ungC03 3cf6E05 4jzxA00 1tygB00 2ff4A03 4qmgA02 4il1B01 2kb9A00 2da5A00 3wqcA02 2wasB00 2jugA01 2vrdA00 2g5gX01 4mhcA01 3dqyA00 2o6sA00 3lhkC02 4g1qB01 5dm6200 3btvA02 1o7dC02 4lrzE01 3r90A00 3c5wA00 1g4uS01 3cx8B00 4oh7A02 3muuC01 2cduA01 5l7oB00 2ee8A01 3p5jA01 4rlqA02 5m7yA01 1pyoB00 4mb1A03 5l3qA01 2mfzA01 2yqrA01 4lcbA02 4mloA03 4o1eB00 3l4yA05 1x4qA01 2cjqA03 2qo3A02 2sasA00 2iq1A00 5kfzA02 1vq8L02 2yh6D00 3v2yA01 2gu0A02 4aqsA02 3hbmA01 3e98B00 1iv8A05 2hb0B02 2vsgA02 1lwcA05 1wlnA00 2zxyA00 5jciA01 4ia6B01 5lm4A00 2cyaA01 3licA01 5an9A03 4mvcB00 2higB03 4f0qD01 3eoqA01 3kl2I00 1jr3C02 1f5qB01 1oaoC03 1ebfA02 4ywzB00 1n7vA01 4py9A02 3qikA01 2piaA02 3qyyA00 1f86A00 4y4nA00 5kvsA02 4qbdB02 2rq7A02 3citA00 1favA00 4n4nB00 2gm3A00 5ffiE00 4e6nA02 5xbfB00 4jioB01 1wljA00 3dloD00 1yo8A02 2xapA02 4eiuA02 2kddA00 2v4xA00 4zcrA00 4s39A01 4y9hA00 3ohmB02 1m2tA02 3kp1E01 3nqiA01 3dcfA01 3oa8A01 5hsqA02 4hrgB00 3rkoB02 4jgyA00 1d2mA03 1y1aA01 2exrA03 4eojB02 4yfuA01 1xf1A03 3aj7A03 3we0A01 3gdiB02 4lixA02 2z1kA02 1qasA01 2i9aC02 4j19B01 2kz4A00 1fvgA00 2kbiA01 2pbiA04 4a0eA00 1nykA00 4ktpA03 6bogA06 3u0cA00 2o0tA02 5e37A01 3u66A00 3v53E00 3ab1A02 1mgpA02 1mijA00 3zxyA00 3p0hB01 1j09A04 1yr2A02 3sm4A00 4lwsA00 2hczX02 2nvaC02 3do9C02 3v5nD02 3ikoC02 2ra8A02 2yu1A02 1njgA02 2f42A01 3qi7A01 2vc8A00 4yhjB01 1k8kD02 4ba0A04 2a06B02 1xdpA01 2z0wA00 2gahA02 4frfA00 2y39A00 2od1A00 1pp9A01 3lmlA03 5loqC01 4fk1A02 4indA03 4hc9A02 2qtlA03 3tduA01 4gywC04 2cfoA04 1np6A02 4wp6A00 3tixB01 4bcuA00 3bh1A02 3crmA02 5eeaB00 3licA02 5szdB00 3g2mB01 2jheA02 4d0eA03 3okyB02 2q58B00 2bl0B02 2ogpA00 1aztB02 2i7aA00 2ve7A02 3odcA00 4gczA02 2mw8A00 3oc2A01 4j32A00 4c7nB00 5m1eA02 4tqrA01 1e1hA00 2yo2A03 2guiA00 3qwoC00 1sxjC02 1gaxA01 3m6wA03 4fzvA01 3zy7A00 1m5iA00 1mtyB00 4a69D00 3aljA01 3pn7E01 3ox6A02 3o94B00 4bmjA00 3oc4A02 4gvcA00 1tf6D01 2oarB00 4tpvA00 4e57A02 1pn0A01 3h5cB01 3e70C01 4q52B00 1ubdC01 3ekiA02 3w0oA01 3mvgB02 3cf2A06 3p5bL01 1h2sA00 4nc7A00 4wm8A00 2q5wD00 2qm4D02 4dvgB00 3px4A03 4j33B00 3pqsA01 3u52B00 4g3kA00 3o7qA02 3vrdB02 2opsB03 2f2hA04 1vexA00 3uv0B00 1zzkA00 4qbdB01 1c3cA01 4fk1A01 2jdiH02 2j5iA02 1s1tA02 1h6tA01 1qqfA00 2e52A02 3e3rB01 3k1uA00 3s46A02 4nhaA02 3r4iA01 4lixA03 1bsmA01 5fafA00 3idfA00 2wfpA03 1efvB00 3klyD00 4e0iA01 3u28A01 3tnjA01 4p6vF01 3fd9A03 2qndA02 2dlqA02 2uwmA01 3mseB00 2whxA01 4du6E01 4gz8B02 1am2A00 2nutA05 1ljoA00 3cqcB01 3bosA02 5ilqA01 3ujhA03 2veaA02 2bb6A01 1b9wA01 2iidA02 3mk7B02 1yiqA02 3uoaB02 3m19A00 3oqcA02 1hlvA01 2y3vD00 2igtA02 3mp7B00 5ekwA01 5ic0A03 4qtrC00 2rciA00 1y8xB00 1l5jA01 1n1iC02 1q57G02 2iv2X01 2xdaA00 4f5cF00 3bwhA02 2ej4A01 2dpfA00 5lqfB01 2uw1B00 2zosA02 1qw2A00 1zb1A00 3cwwA01 4ipeB04 1mo9A01 1d5tA01 4qrhA02 2v9kA01 1p5vB00 2advC02 5gljC00 1zkgA01 1sxjE03 4dw1A01 2p2sA02 3k93A00 4okeA00 2m8gX00 1d06A00 4v0sB00 2fq4A01 1sgjA00 4xtlA00 5h0pA00 4g38A03 5kfnA01 4iq0A02 3fbiC00 1t94A03 1abrA02 2c9kA03 1f7cA00 1fnnA01 1a6cA02 2xs1A02 1fecB01 3u1uA01 2qkwA00 3k8kA01 2astB00 1oh1A00 1xb2B03 1o2dA01 1gr0A02 1lmjA00 2iewB00 4od6A00 4n5xA01 3godB02 3okgA01 1gntA04 3awuB01 5b66z00 3wfdB00 4dmiD01 3vtiA07 4khnB04 2qndB01 2jaxA02 3iayA03 2x5kP02 2p3wB01 2a01A02 2wbsA00 1vm9A00 2dplA01 3akjA02 1a5tA03 2fp3A01 2yorA00 4dxwB01 4m1hB00 3p0iB02 2wx3A00 3zr8X00 4zacA03 4m7dA00 4kqeA03 1w0hA00 4jgwB02 2w4fA00 5m0yB02 3l8iA01 3snpA01 2egvA01 1ua7A02 4nbgE00 2rpcA03 3smtA02 5a8cA00 3sdbA03 4bxoA01 1i2kA02 4tm5A02 5l0vB00 3ly7A01 5noaA00 4c3xB02 5hn9C00 4ggfA00 3fcsD04 4im6A00 5fs8A01 1f8vC00 1b9wA02 4phzA01 4ntcA02 3rfsA00 4fhoB00 5e37A02 5tgzA01 3qxyA02 5o0xA02 2ia2A02 4a37A01 3p5jB01 2fb7A00 4wf2A03 5f3mA00 3he5B00 4q0hA02 2z84A00 4ew7A00 3s6pA02 4nwvA01 3tfiA00 4nx9A02 1k25D01 3we9A00 1dmlA00 3w9eC00 4qmaA01 1gqeA02 4b1zM02 5gmzA00 4fcaA01 4ktyA02 4gkgA00 2y26A02 2dpkA01 2qtwB01 1h1oA01 1nrzA00 1mnmC00 3r2pA01 4fcaA02 2yg9B01 3gaeA00 1yzvA00 3fcsA04 1ofcX02 3cswA02 3ce9A01 4w8kA02 3bdlA03 1xk4D00 4c9yA00 3qipA02 4gznC02 2zwiB02 4l8nA01 2qy9A01 4r3nA02 1gkmA01 3tz1A00 1jqjD03 1u53A00 2gv8A02 3bsuA00 3u61C02 3hdiA01 3t92A00 4a53A01 1szwA01 5b2nA00 1widA00 4ebaG00 4h63Q04 3grfA02 3aiiA01 3uwpA01 4hfsA00 4cy8A01 1mv8A02 2xsdC02 4dooA02 4dmgA02 2g1eA00 1vq8B03 3ub8A00 1t6t200 1nl1A00 1qx2A00 1dvoA00 1jnrB02 3hr0A01 3kd9A02 1y1xB00 2ifcA01 2a2pA01 3draB00 1oaoC02 1n62A01 3hl4B00 4cckA03 2yg5A01 3n4pC00 2yx1A02 3exaA03 4jcwA02 3vn0B00 4bxfA03 3qyfA02 2yxxA02 1xeuA01 2zahC01 4f6mA02 2m83A00 4ntcA01 3tbdA02 2ziwB01 2kbsA00 3nksA00 2c9oB03 4jpzB01 3rkqA00 4ackB00 3bfmA02 1wxqA03 4yi8A01 3mhvA00 2e5aA02 3kl6B00 2e3uA02 1au7A02 1lmlA02 1fexA00 2bkiD01 3ogiC00 4qiqA00 4do4A02 2e7zA01 3sykA02 5dgrB02 2v9yA01 3cwzB03 3p0hB02 2xguA00 2e3iA00 3rnrB00 1w7cA01 2v3aA01 3dsoA00 1sc3B00 4m7dI00 4kseB03 1rieA00 3od8F00 5iu1B00 3rbyA01 3mlqH00 1kskA02 3mvpA01 3k9xC02 2nutA04 4bvnA00 1e57B00 1i8fE00 4ntdA01 2f33A01 1ij5A03 1pj5A01 4griA04 1colA00 2gzvA01 2cu7A01 4adyA02 4wxaA00 1fi6A00 3okqA00 4ffbC00 1jr3D03 3c2bA01 3k21A01 4ymeA00 3ajfD00 3qrlA00 4g1qA02 2jbvA03 2w3sA05 4i8oA01 1o75A02 1cozA00 5h3jA02 1x9dA00 4qclA02 1ta9B01 4m78G00 3dyjA02 2f68X01 1jmvA00 3lovA01 2ks9A00 3gefA00 3fw6A01 2vqpA01 5do8B03 1h32B00 1he1A00 4yi8A02 4i6mD00 1i6kA01 3he4B00 3v10A01 4eqsA01 2gliA01 2pqgB02 3d30A02 1iapA00 1rcqA02 3askA02 1gu2A00 3mtvA01 3a5vA02 4djaA01 3cgbA02 2qvwD02 3k6oA01 2q0lA01 3d00A02 3viuA03 3w1eA02 3oeeI00 3rfzB04 4k51B00 4cnmA00 1yacA00 4yn3B00 4bt9A01 3q12B02 2b1yA00 1x9mA03 3k6sD04 3c19A01 2be4A01 5h3xA03 4hh3A01 2gd7B00 2vovA00 3snoA02 1u7bA00 1vddB01 5ahwC00 4i0xG00 4f7uC00 3vhtB02 3d9sA00 1o7dB00 4qreA01 3n6xA03 4h4dA03 1d3bC00 5k7fA01 1c8nC00 2h3lB00 1ncxA01 2gliA04 1koyA00 2w3gA00 1pmmC01 1llnA02 1gff200 2x8sA01 3iwvB00 3ut4A00 2ovjA00 1y1aA02 2je6I03 3wdhA04 2ok5A02 1w6kA02 3oioA00 2xszD02 3kljA02 4jrfA01 1ccwA00 2gh8A01 3rrsA04 1qhhC00 3pggA00 1fp3A00 2i9aB01 1y1uA03 1f7lA00 1gu4A00 4jgiB02 3v8eA00 3cwiA00 2zutA04 3ivlA00 3o5nG00 2cs7A00 3gwqA02 1ojjA00 2qvkA00 1u5kA03 3aq0G00 4zy7A00 3h3mA00 2vlqA00 1nwqA00 2of3A00 1u8bA01 1qa4A00 2uuzB00 5b1aG00 1csbA01 2yusA01 1n7eA00 2yxzD01 1s2xA00 1xlqA00 1mh3A03 3vsjA00 3ge3E00 2jzaA01 4dolA02 4udqA01 2vp8B00 4k7zA02 2qsfA01 3kksB00 3zh9B02 1yelA00 4cp6A00 1aqsA00 4a9aA03 5tr4A02 4m44B00 3b34A01 2l3uA00 1krhA03 4wfoA05 3kv5D03 3obfA00 4gc0A02 2m5sA00 1n62C02 2yy5A01 4kt6A01 2zyrB03 2v3iA00 2j7jA03 1r0oB00 4qq1C01 2ywlA01 4aqrD00 2v3cC01 2qsrA01 3vw4A01 3w42A00 3mhvC00 1oaoC04 5y77B01 2zfdA00 1v5vA01 1surA00 4hq1A01 2o9gA00 3lyuA01 3ihmA01 1ig3A02 2wjnC01 2ys9A00 1fipA00 1oygA01 2hr7B01 2qa1A02 3lyrA00 4xekA00 4xwjA00 1q2lA04 1x6fA00 2ykfA01 1xqrA00 3qrxA02 5xs2B02 1qfjA02 1nh2D01 4u9nA00 4en6B02 3ci0K03 2bz6L00 2z1pA01 3u9wA01 4iguA00 3cebA02 3memA01 2i10A01 3cwwA04 3sjsA01 4gvpA01 4mn0A00 4eclA02 1ju2A01 4jgpA01 1xg4D00 3gs3A00 1hr6A01 1v5dA01 1jv2B03 3nauA00 3effK02 3lyeA00 4iejA00 3ukvC01 2j66A02 3sxuB00 1qhtA02 4d90A02 5vpeB00 3kinB00 4emhA00 4mzgB00 3qvpA03 2ynzC01 5vqfB01 2ltpA00 1yspA00 1u3dA01 4fe7A03 4f7uF00 3i2mX00 1uzkA03 5kszA01 3dorA02 3hbxA01 4gh9A01 4oh7A01 4csqA00 1hf2C02 3lfvB02 1in4A03 3eh2A05 3hfoB00 1qxfA00 3r4rA01 2r44A01 3ol4B01 1td6A02 2gm2A01 2fh1A02 3abiB02 2yy0B00 5lt5A01 5e1yA00 4h9dB00 3amkA03 5twbA01 3al8B02 2pwwA00 3bjnA00 4h8aA02 4tmaJ00 1hx6A02 3cjiC00 3oyzA01 3q4hC00 2opoC00 2vwsA00 2omkB00 5k8cA01 4aycA01 2wxuA02 4a0tA03 1hehC00 2vrqA01 4pelA02 2ri9A00 2bgwB01 4c2uA04 3vcaA02 1njgB01 2hr3A01 1eq1A00 4f55A01 3rrkA02 3a0sA00 1r6vA03 1sf8G00 2gloA00 1irxA01 1ihmB01 3ieeA01 4z4dA04 5c05B02 4lizA00 3gwnA00 1rmdA02 2ckwA03 3m07A04 2gj3A00 3eb7A03 1kqpA00 2z4sA02 1zu4A01 1t1uA01 2pjqA01 2hr7B03 4g3aB00 2jv8A00 3g39A00 4fmrA02 3rg0A03 4oqjA02 4r3aB01 2xfvA00 3wryA01 1ddgA02 1kbhA00 3va4A00 4fvmA03 2o70B00 4k35A04 2sqcA02 3rrrG02 2mekA00 1at0A00 3gt5A00 5flwA00 4ii2A05 6b0sC00 4fb5A02 1ohnA00 2l7nA00 4gklA02 2xtzA02 4xgiA01 5eufA02 3wpuA01 5e8dA00 3msuA01 4lrtB02 2ihdA02 3ivpC02 3ziyA03 2fi9A00 5l0rB00 1jb7B00 4zgfA00 4gmuA02 3aqbB00 4jg5A01 5ool200 4mg4C00 2y4rA02 1b37A01 4k5yA01 1mxrA00 4gouA01 3fewX01 4jioB02 1vm0A00 1zavA02 2kl1A01 2nzwA01 5i8gA03 2dkoB00 4gw9C04 3ntdA01 4uafB00 3weoA03 2ra2B00 3ttgA00 2jzxA02 1kcfB00 3cjrB02 3nbkD00 3ejbB02 2py5A01 3f4lA02 1s3jB01 4o06A00 3s5zA02 1r71A02 2lwyA00 3sfjA00 4oj5C04 1guxB00 1tj7A01 4bv4R00 1vm6A02 3li9A01 3c9qA00 3jszA03 4adiA01 1a41A01 3hnoD02 5jtwA03 1v9dC02 7odcA02 5l6wC00 1hcrA00 3q98A02 1xngA01 2wnkA01 2ae8B01 1jv1B02 4ha6A01 3zyyX01 3zt9A00 2h56B01 3e9vA00 2qybA00 2d5vA02 5gp9A01 4e2xA03 1k8kD01 2wmmA01 5fiwC00 2eh3A01 3dewA01 2ra8A01 1j20A01 3o6xA02 3kk7A03 1a6cA01 1v9xA00 1wwpA00 1owfB00 2w6aB00 2jqjA01 3g74C00 2rczA01 3afgB01 2e2aA00 5lt5A02 3pjxA01 4bwiB02 2nynA01 3gwbA02 3zqcA02 3lywA00 2icwG01 1upkA01 4narA02 1zu1A01 3e82E02 1ls1A01 3nvwB01 4b9wA01 1i82A00 4zzxA01 1wd5A02 1wzzA00 3ptyA01 2c34A00 1rsgA01 4ce7B00 4mu3A02 1a0sP00 1v7wA03 2vncB03 2gq0B02 3k0yA01 4cidA03 3p4uA00 2wcbA00 1wg6A01 3ku3B00 4o59O02 3k30A03 1tf6A03 3wozB00 2clyA00 1w6kA03 3wi3B00 1iufA02 2jrmA00 3id1A00 3ft1C00 3bmvA02 3gqsB00 4eojD01 3mtkA00 3v42A01 4r70B02 4ibnA01 1f2nC00 1n3lA01 2wb4B01 2a1rB01 5l44A01 1hfeL03 5t69A02 1d66B02 2lfcA00 4ha6A02 3ca8A02 5a8iA00 1suuA00 2bhzA04 4bz4B00 1xtaA01 3evnA02 3gzkA02 2a1kA00 3m03B00 2p67A01 5ibwA00 4jj7A00 4fgqB00 3m7pA02 5fmoS00 3ue6C00 5lxuA00 1mo9A02 5cr5A02 1doiA00 4ka7A01 5jciA02 4hr1A00 5ax0A00 1dmgA00 4okmD00 4h4rA01 3wguB00 4urgA00 4ntqB00 3kljA01 1rfsA00 2knqA01 3t69A02 1u8bA02 3ir9A01 3lg3B00 1gv2A02 1gp8A00 3dadA00 3nvqA02 1b9rA00 2wbuA01 2xqhA02 3a1pB00 4koaA02 1vq8C00 2qk2A01 1krhA01 2bs2A04 2iihA00 3itfA00 5a0jA00 5j60A01 1l5aA02 1p7nA00 1uasA02 3a1gA00 3anuA02 3bczA00 4durB06 3tedA02 3nkeA00 4nqfA00 2wr1C01 2i06A01 2fyuI00 4jvhA00 3c02A00 4h17A00 3bwlB00 1owfA00 4g0aB02 3ugfA01 1na6B02 2cduA02 2gfqB01 1yf2A03 3myuB02 4eetB00 2osxA01 1n7zA01 3a1jA00 2l32A00 4h31A01 4xpcA01 3s3tA00 3vx0A02 2wdsA00 3bg3A04 1g33A00 1k94A00 2fiqA02 4a1rC00 5j71A01 3gwbA01 1c52A00 2qfpA01 2eiyB02 4ix7A00 1qr0A01 4kwtA02 2fbaA00 3pm8B01 3by7E00 3vn5A02 3hisA02 3mxqC00 3mhdD02 1wvfA03 1jo0A00 3c9fA02 1izcA00 3b0gA02 4bwjA01 2r0cA02 3n91A01 2ej9A02 3fb9B00 3m0aA00 4dqyC03 3mcwA00 1wi4A01 3cs1A01 4g1mA04 2qdjA02 1qu7A00 2feaA02 1k8kF00 4zcdB01 2nabA01 1w2dB00 3uoaB01 5svvD00 1seiA02 1uw0A01 1yumA00 2o6yC01 3u0oA01 3ajmA01 3p42A02 2y3nB00 4pabA03 5mfiB00 1h8pA02 1wy5A01 2gv8A01 3b8eB00 1rknA00 3vx7B00 3f1sB01 2ab1A00 4wxwA00 5b7wA02 1bg1A03 6b4oA02 3vrdA01 4mkzA02 1gnlA03 4zw9A00 3cs1A02 4olnA00 1kq3A01 3woeA00 4hteA03 4g80T00 4c92A00 2c36A00 2jisA01 4q2pA00 2isnB00 4aqsA03 4wwmA00 4qbuA01 3ojaA02 3cxbA01 3kdjB00 1u5hA00 1vk6A01 5fb8C00 1xg8A00 3wcqA00 2jx5A00 4u6dA00 4jadA01 4oeoA00 3ewkA03 2a01C01 3g2oB01 2gpjA02 2cwoA02 1dtjA00 4a24A00 2kdcA00 4jq9A02 3gqcD02 4djgB00 2hyjA01 3ntnA02 1yukB02 1dofA02 1v9kA00 2w1rA00 1nqlB00 1z2nX03 4bfoA00 3deeA02 3i0wA03 2qkpD00 3c5nA00 1kptA00 2ct9A00 2kvpA00 5ipyA02 4cbuG00 4h4kA01 1dk8A02 2c1iA01 2optB01 3i6dA01 3wryA02 4pabA01 3kqgA01 2lg1A01 3t91B00 2ixdA00 3a03A00 1v5iB00 3gozA01 3rdeA02 2aaoB00 3bk6A02 3i5pA01 3njaA01 ================================================ FILE: alphafold_casp13/two_dim_convnet.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Two dimensional convolutional neural net layers.""" from absl import logging import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import def weight_variable(shape, stddev=0.01): """Returns the weight variable.""" logging.vlog(1, 'weight init for shape %s', str(shape)) return tf.get_variable( 'w', shape, initializer=tf.random_normal_initializer(stddev=stddev)) def bias_variable(shape): return tf.get_variable( 'b', shape, initializer=tf.zeros_initializer()) def conv2d(x, w, atrou_rate=1, data_format='NHWC'): if atrou_rate > 1: return tf.nn.convolution( x, w, dilation_rate=[atrou_rate] * 2, padding='SAME', data_format=data_format) else: return tf.nn.conv2d( x, w, strides=[1, 1, 1, 1], padding='SAME', data_format=data_format) def make_conv_sep2d_layer(input_node, in_channels, channel_multiplier, out_channels, layer_name, filter_size, filter_size_2=None, batch_norm=False, is_training=True, atrou_rate=1, data_format='NHWC', stddev=0.01): """Use separable convolutions.""" if filter_size_2 is None: filter_size_2 = filter_size logging.vlog(1, 'layer %s in %d out %d chan mult %d', layer_name, in_channels, out_channels, channel_multiplier) with tf.variable_scope(layer_name): with tf.variable_scope('depthwise'): w_depthwise = weight_variable( [filter_size, filter_size_2, in_channels, channel_multiplier], stddev=stddev) with tf.variable_scope('pointwise'): w_pointwise = weight_variable( [1, 1, in_channels * channel_multiplier, out_channels], stddev=stddev) h_conv = tf.nn.separable_conv2d( input_node, w_depthwise, w_pointwise, padding='SAME', strides=[1, 1, 1, 1], rate=[atrou_rate, atrou_rate], data_format=data_format) if batch_norm: h_conv = batch_norm_layer( h_conv, layer_name=layer_name, is_training=is_training, data_format=data_format) else: b_conv = bias_variable([out_channels]) h_conv = tf.nn.bias_add(h_conv, b_conv, data_format=data_format) return h_conv def batch_norm_layer(h_conv, layer_name, is_training=True, data_format='NCHW'): """Batch norm layer.""" logging.vlog(1, 'batch norm for layer %s', layer_name) return tf.contrib.layers.batch_norm( h_conv, is_training=is_training, fused=True, decay=0.999, scope=layer_name, data_format=data_format) def make_conv_layer(input_node, in_channels, out_channels, layer_name, filter_size, filter_size_2=None, non_linearity=True, batch_norm=False, is_training=True, atrou_rate=1, data_format='NHWC', stddev=0.01): """Creates a convolution layer.""" if filter_size_2 is None: filter_size_2 = filter_size logging.vlog( 1, 'layer %s in %d out %d', layer_name, in_channels, out_channels) with tf.variable_scope(layer_name): w_conv = weight_variable( [filter_size, filter_size_2, in_channels, out_channels], stddev=stddev) h_conv = conv2d( input_node, w_conv, atrou_rate=atrou_rate, data_format=data_format) if batch_norm: h_conv = batch_norm_layer( h_conv, layer_name=layer_name, is_training=is_training, data_format=data_format) else: b_conv = bias_variable([out_channels]) h_conv = tf.nn.bias_add(h_conv, b_conv, data_format=data_format) if non_linearity: h_conv = tf.nn.elu(h_conv) return h_conv ================================================ FILE: alphafold_casp13/two_dim_resnet.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """2D Resnet.""" from absl import logging import tensorflow as tf # pylint: disable=g-explicit-tensorflow-version-import from alphafold_casp13 import two_dim_convnet def make_sep_res_layer( input_node, in_channels, out_channels, layer_name, filter_size, filter_size_2=None, batch_norm=False, is_training=True, divide_channels_by=2, atrou_rate=1, channel_multiplier=0, data_format='NHWC', stddev=0.01, dropout_keep_prob=1.0): """A separable resnet block.""" with tf.name_scope(layer_name): input_times_almost_1 = input_node h_conv = input_times_almost_1 if batch_norm: h_conv = two_dim_convnet.batch_norm_layer( h_conv, layer_name=layer_name, is_training=is_training, data_format=data_format) h_conv = tf.nn.elu(h_conv) if filter_size_2 is None: filter_size_2 = filter_size # 1x1 with half size h_conv = two_dim_convnet.make_conv_layer( h_conv, in_channels=in_channels, out_channels=in_channels / divide_channels_by, layer_name=layer_name + '_1x1h', filter_size=1, filter_size_2=1, non_linearity=True, batch_norm=batch_norm, is_training=is_training, data_format=data_format, stddev=stddev) # 3x3 with half size if channel_multiplier == 0: h_conv = two_dim_convnet.make_conv_layer( h_conv, in_channels=in_channels / divide_channels_by, out_channels=in_channels / divide_channels_by, layer_name=layer_name + '_%dx%dh' % (filter_size, filter_size_2), filter_size=filter_size, filter_size_2=filter_size_2, non_linearity=True, batch_norm=batch_norm, is_training=is_training, atrou_rate=atrou_rate, data_format=data_format, stddev=stddev) else: # We use separable convolution for 3x3 h_conv = two_dim_convnet.make_conv_sep2d_layer( h_conv, in_channels=in_channels / divide_channels_by, channel_multiplier=channel_multiplier, out_channels=in_channels / divide_channels_by, layer_name=layer_name + '_sep%dx%dh' % (filter_size, filter_size_2), filter_size=filter_size, filter_size_2=filter_size_2, batch_norm=batch_norm, is_training=is_training, atrou_rate=atrou_rate, data_format=data_format, stddev=stddev) # 1x1 back to normal size without relu h_conv = two_dim_convnet.make_conv_layer( h_conv, in_channels=in_channels / divide_channels_by, out_channels=out_channels, layer_name=layer_name + '_1x1', filter_size=1, filter_size_2=1, non_linearity=False, batch_norm=False, is_training=is_training, data_format=data_format, stddev=stddev) if dropout_keep_prob < 1.0: logging.info('dropout keep prob %f', dropout_keep_prob) h_conv = tf.nn.dropout(h_conv, keep_prob=dropout_keep_prob) return h_conv + input_times_almost_1 def make_two_dim_resnet( input_node, num_residues=50, num_features=40, num_predictions=1, num_channels=32, num_layers=2, filter_size=3, filter_size_2=None, final_non_linearity=False, name_prefix='', fancy=True, batch_norm=False, is_training=False, atrou_rates=None, channel_multiplier=0, divide_channels_by=2, resize_features_with_1x1=False, data_format='NHWC', stddev=0.01, dropout_keep_prob=1.0): """Two dim resnet towers.""" del num_residues # Unused. if atrou_rates is None: atrou_rates = [1] if not fancy: raise ValueError('non fancy deprecated') logging.info('atrou rates %s', atrou_rates) logging.info('name prefix %s', name_prefix) x_image = input_node previous_layer = x_image non_linearity = True for i_layer in range(num_layers): in_channels = num_channels out_channels = num_channels curr_atrou_rate = atrou_rates[i_layer % len(atrou_rates)] if i_layer == 0: in_channels = num_features if i_layer == num_layers - 1: out_channels = num_predictions non_linearity = final_non_linearity if i_layer == 0 or i_layer == num_layers - 1: layer_name = name_prefix + 'conv%d' % (i_layer + 1) initial_filter_size = filter_size if resize_features_with_1x1: initial_filter_size = 1 previous_layer = two_dim_convnet.make_conv_layer( input_node=previous_layer, in_channels=in_channels, out_channels=out_channels, layer_name=layer_name, filter_size=initial_filter_size, filter_size_2=filter_size_2, non_linearity=non_linearity, atrou_rate=curr_atrou_rate, data_format=data_format, stddev=stddev) else: layer_name = name_prefix + 'res%d' % (i_layer + 1) previous_layer = make_sep_res_layer( input_node=previous_layer, in_channels=in_channels, out_channels=out_channels, layer_name=layer_name, filter_size=filter_size, filter_size_2=filter_size_2, batch_norm=batch_norm, is_training=is_training, atrou_rate=curr_atrou_rate, channel_multiplier=channel_multiplier, divide_channels_by=divide_channels_by, data_format=data_format, stddev=stddev, dropout_keep_prob=dropout_keep_prob) y = previous_layer return y ================================================ FILE: avae/README.md ================================================ # The Autoencoding Variational Autoencoder This is the code for the models in NeurIPS Submission [AVAE](https://papers.nips.cc/paper/2020/file/ac10ff1941c540cd87c107330996f4f6-Paper.pdf) Folder contains code to train AVAE model in JAX, and we will be uploading evaluation setup soon. Code files in the folder - checkpointer.py: Checkpointing abstraction - data_iterators.py: Datasets to be used - decoders.py: VAE decoder network architectures - encoders.py: VAE encoder network architectures - kl.py: KL computation between 2 gaussians - train.py: Function to train given ELBO, network and data - train_main.py: Main file to train AVAE - vae.py: VAE model defining various ELBOs ## Setup To set up a Python3 virtual environment with the required dependencies, run: ```shell python -m venv avae_env source avae_env/bin/activate pip install --upgrade pip pip install -r avae/requirements.txt ``` ## Running AVAE training Following command will run AVAE training for ColorMnist dataset using MLP network architectures. ```shell python -m avae.train_main \ --dataset='color_mnist' \ --latent_dim=64 \ --checkpoint_dir='/tmp/avae_checkpoints' \ --checkpoint_filename='color_mnist_mlp_avae' \ --rho=0.975 \ --encoder='color_mnist_mlp_encoder' \ --decoder='color_mnist_mlp_decoder' ``` ## References ### Citing our work If you use that code for your research, please consider citing our paper: ```bibtex @article{cemgil2020autoencoding, title={The Autoencoding Variational Autoencoder}, author={Cemgil, Taylan and Ghaisas, Sumedh and Dvijotham, Krishnamurthy and Gowal, Sven and Kohli, Pushmeet}, journal={Advances in Neural Information Processing Systems}, volume={33}, year={2020} } ``` ================================================ FILE: avae/checkpointer.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Checkpointing functionality.""" import os from typing import Any, Mapping, Optional from absl import logging import dill import jax import jax.numpy as jnp class Checkpointer: """A checkpoint saving and loading class.""" def __init__(self, checkpoint_dir: str, filename: str): """Class initializer. Args: checkpoint_dir: Checkpoint directory. filename: Filename of checkpoint in checkpoint directory. """ self._checkpoint_dir = checkpoint_dir if not os.path.isdir(self._checkpoint_dir): os.mkdir(self._checkpoint_dir) self._checkpoint_path = os.path.join(self._checkpoint_dir, filename) def save_checkpoint( self, experiment_state: Mapping[str, jnp.ndarray], opt_state: Mapping[str, jnp.ndarray], step: int, extra_checkpoint_info: Optional[Mapping[str, Any]] = None) -> None: """Save checkpoint with experiment state and step information. Args: experiment_state: Experiment params to be stored. opt_state: Optimizer state to be stored. step: Training iteration step. extra_checkpoint_info: Extra information to be stored. """ if jax.host_id() != 0: return checkpoint_data = dict( experiment_state=jax.tree_map(jax.device_get, experiment_state), opt_state=jax.tree_map(jax.device_get, opt_state), step=step) if extra_checkpoint_info is not None: for key in extra_checkpoint_info: checkpoint_data[key] = extra_checkpoint_info[key] with open(self._checkpoint_path, 'wb') as checkpoint_file: dill.dump(checkpoint_data, checkpoint_file, protocol=2) def load_checkpoint( self) -> Optional[Mapping[str, Mapping[str, jnp.ndarray]]]: """Load and return checkpoint data. Returns: Loaded checkpoint if it exists else returns None. """ if os.path.exists(self._checkpoint_path): with open(self._checkpoint_path, 'rb') as checkpoint_file: checkpoint_data = dill.load(checkpoint_file) logging.info('Loading checkpoint from %s, saved at step %d', self._checkpoint_path, checkpoint_data['step']) return checkpoint_data else: logging.warning('No pre-saved checkpoint found at %s', self._checkpoint_path) return None ================================================ FILE: avae/data_iterators.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Dataset iterators Mnist, ColorMnist.""" import enum import jax.numpy as jnp import numpy as np import tensorflow as tf import tensorflow_datasets as tfds from avae import types class Dataset(enum.Enum): color_mnist = enum.auto() class MnistDataIterator(object): """Mnist data iterator class. Data is obtained as dataclass, types.LabelledData. """ def __init__(self, subset: str, batch_size: int): """Class initializer. Args: subset: Subset of dataset. batch_size: Batch size of the returned dataset iterator. """ datasets = tfds.load('mnist') train_dataset = datasets[subset] def _map_fun(x): return {'data': tf.cast(x['image'], tf.float32) / 255.0, 'label': x['label']} train_dataset = train_dataset.map(_map_fun) train_dataset = train_dataset.batch(batch_size, drop_remainder=True).repeat() self._iterator = iter(tfds.as_numpy(train_dataset)) self._batch_size = batch_size def __iter__(self): return self def __next__(self) -> types.LabelledData: return types.LabelledData(**next(self._iterator)) class ColorMnistDataIterator(MnistDataIterator): """Color Mnist data iterator. Each ColorMnist image is of shape (28, 28, 3). ColorMnist digit can have 7 different colors by permution of RGB channels (turning on and off RGB channels, except for all channels off permutation). Data is obtained as dataclass, util_dataclasses.LabelledData. """ def __next__(self) -> types.LabelledData: mnist_batch = next(self._iterator) mnist_image = mnist_batch['data'] # Colors are supported by turning off and on RGB channels. # Thus possible colors are # [black (excluded), red, green, yellow, blue, magenta, cyan, white] # color_id takes value from [1,8) color_id = np.random.randint(7, size=self._batch_size) + 1 red_channel_bool = np.mod(color_id, 2) red_channel_bool = jnp.reshape(red_channel_bool, [-1, 1, 1, 1]) blue_channel_bool = np.floor_divide(color_id, 4) blue_channel_bool = jnp.reshape(blue_channel_bool, [-1, 1, 1, 1]) green_channel_bool = np.mod(np.floor_divide(color_id, 2), 2) green_channel_bool = jnp.reshape(green_channel_bool, [-1, 1, 1, 1]) color_mnist_image = jnp.stack([ jnp.multiply(red_channel_bool, mnist_image), jnp.multiply(blue_channel_bool, mnist_image), jnp.multiply(green_channel_bool, mnist_image)], axis=3) color_mnist_image = jnp.reshape(color_mnist_image, [-1, 28, 28, 3]) # Color id takes value [1, 8) # Although to make classification code easier `color` label attached to data # takes value in [0, 7) (by subtracting 1 from color id) return types.LabelledData( data=color_mnist_image, label=mnist_batch['label']) ================================================ FILE: avae/decoders.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Decoder architectures to be used with VAE.""" import abc import haiku as hk import jax import jax.numpy as jnp import numpy as np class DecoderBase(hk.Module): """Base class for decoder network classes.""" def __init__(self, obs_var: float): """Class initializer. Args: obs_var: oversation variance of the dataset. """ super().__init__() self._obs_var = obs_var @abc.abstractmethod def __call__(self, z: jnp.ndarray) -> jnp.ndarray: """Reconstruct from a given latent sample. Args: z: latent samples of shape (batch_size, latent_dim) Returns: Reconstruction with shape (batch_size, ...). """ def data_fidelity( self, input_data: jnp.ndarray, recons: jnp.ndarray, ) -> jnp.ndarray: """Compute Data fidelity (recons loss) for given input and recons. Args: input_data: Input batch of shape (batch_size, ...). recons: Reconstruction of the input data. An array with the same shape as `input_data.data`. Returns: Computed data fidelity term across batch of data. An array of shape `(batch_size,)`. """ error = (input_data - recons).reshape(input_data.shape[0], -1) return -0.5 * jnp.sum(jnp.square(error), axis=1) / self._obs_var class ColorMnistMLPDecoder(DecoderBase): """MLP decoder for Color Mnist.""" _hidden_units = (200, 200, 200, 200) _image_dims = (28, 28, 3) # Dimensions of a single MNIST image. def __call__(self, z: jnp.ndarray) -> jnp.ndarray: """Reconstruct with given latent sample. Args: z: latent samples of shape (batch_size, latent_dim) Returns: Reconstructions data of shape (batch_size, 28, 28, 3). """ out = z for units in self._hidden_units: out = hk.Linear(units)(out) out = jax.nn.relu(out) out = hk.Linear(np.product(self._image_dims))(out) out = jax.nn.sigmoid(out) return jnp.reshape(out, (-1,) + self._image_dims) ================================================ FILE: avae/encoders.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Encoder architectures to be used with VAE.""" import abc from typing import Generic, TypeVar import haiku as hk import jax import jax.numpy as jnp from avae import types _Params = TypeVar('_Params') class EncoderBase(hk.Module, Generic[_Params]): """Abstract class for encoder architectures.""" def __init__(self, latent_dim: int): """Class initializer. Args: latent_dim: Latent dimensions of the model. """ super().__init__() self._latent_dim = latent_dim @abc.abstractmethod def __call__(self, input_data: jnp.ndarray) -> _Params: """Return posterior distribution over latents. Args: input_data: Input batch of shape (batch_size, ...). Returns: Parameters of the posterior distribution over the latents. """ @abc.abstractmethod def sample(self, posterior: _Params, key: jnp.ndarray) -> jnp.ndarray: """Sample from the given posterior distribution. Args: posterior: Parameters of posterior distribution over the latents. key: Random number generator key. Returns: Sample from the posterior distribution over latents, shape[batch_size, latent_dim] """ class ColorMnistMLPEncoder(EncoderBase[types.NormalParams]): """MLP encoder for ColorMnist.""" _hidden_units = (200, 200, 200, 200) def __call__( self, input_data: jnp.ndarray) -> types.NormalParams: """Return posterior distribution over latents. Args: input_data: Input batch of shape (batch_size, ...). Returns: Posterior distribution over the latents. """ out = hk.Flatten()(input_data) for units in self._hidden_units: out = hk.Linear(units)(out) out = jax.nn.relu(out) out = hk.Linear(2 * self._latent_dim)(out) return _normal_params_from_logits(out) def sample( self, posterior: types.NormalParams, key: jnp.ndarray, ) -> jnp.ndarray: """Sample from the given normal posterior (mean, var) distribution. Args: posterior: Posterior over the latents. key: Random number generator key. Returns: Sample from the posterior distribution over latents, shape[batch_size, latent_dim] """ eps = jax.random.normal( key, shape=(posterior.mean.shape[0], self._latent_dim)) return posterior.mean + eps * posterior.variance def _normal_params_from_logits( logits: jnp.ndarray) -> types.NormalParams: """Construct mean and variance of normal distribution from given logits.""" mean, log_variance = jnp.split(logits, 2, axis=1) variance = jnp.exp(log_variance) return types.NormalParams(mean=mean, variance=variance) ================================================ FILE: avae/kl.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Various KL implementations in JAX.""" import jax.numpy as jnp def kl_p_with_uniform_normal(mean: jnp.ndarray, variance: jnp.ndarray) -> jnp.ndarray: r"""KL between p_dist with uniform normal prior. Args: mean: Mean of the gaussian distribution, shape (latent_dims,) variance: Variance of the gaussian distribution, shape (latent_dims,) Returns: KL divergence KL(P||N(0, 1)) shape () """ if len(variance.shape) == 2: # If `variance` is a full covariance matrix variance_trace = jnp.trace(variance) _, ldet1 = jnp.linalg.slogdet(variance) else: variance_trace = jnp.sum(variance) ldet1 = jnp.sum(jnp.log(variance)) mean_contribution = jnp.sum(jnp.square(mean)) res = -ldet1 res += variance_trace + mean_contribution - mean.shape[0] return res * 0.5 ================================================ FILE: avae/requirements.txt ================================================ absl-py>0.9 dill==0.3.2 dm-haiku jax optax tensorflow tensorflow_datasets ================================================ FILE: avae/run.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. python -m venv avae_env source avae_env/bin/activate pip install --upgrade pip pip install -r avae/requirements.txt # Start training AVAE model. python -m avae.train_main \ --dataset='color_mnist' \ --latent_dim=64 \ --checkpoint_dir='/tmp/avae_checkpoints' \ --checkpoint_filename='color_mnist_mlp_avae' \ --rho=0.975 \ --encoder=color_mnist_mlp_encoder \ --decoder=color_mnist_mlp_decoder \ --iterations=1 ================================================ FILE: avae/train.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """VAE style training.""" from typing import Any, Callable, Iterator, Sequence, Mapping, Tuple, Optional import haiku as hk import jax import jax.numpy as jnp import optax from avae import checkpointer from avae import types def train( train_data_iterator: Iterator[types.LabelledData], test_data_iterator: Iterator[types.LabelledData], elbo_fun: hk.Transformed, learning_rate: float, checkpoint_dir: str, checkpoint_filename: str, checkpoint_every: int, test_every: int, iterations: int, rng_seed: int, test_functions: Optional[Sequence[Callable[[Mapping[str, jnp.ndarray]], Tuple[str, float]]]] = None, extra_checkpoint_info: Optional[Mapping[str, Any]] = None): """Train VAE with given data iterator and elbo definition. Args: train_data_iterator: Iterator of batched training data. test_data_iterator: Iterator of batched testing data. elbo_fun: Haiku transfomed function returning elbo. learning_rate: Learning rate to be used with optimizer. checkpoint_dir: Path of the checkpoint directory. checkpoint_filename: Filename of the checkpoint. checkpoint_every: Checkpoint every N iterations. test_every: Test and log results every N iterations. iterations: Number of training iterations to perform. rng_seed: Seed for random number generator. test_functions: Test function iterable, each function takes test data and outputs extra info to print at test and log time. extra_checkpoint_info: Extra info to put inside saved checkpoint. """ rng_seq = hk.PRNGSequence(jax.random.PRNGKey(rng_seed)) opt_init, opt_update = optax.chain( # Set the parameters of Adam. Note the learning_rate is not here. optax.scale_by_adam(b1=0.9, b2=0.999, eps=1e-8), # Put a minus sign to *minimise* the loss. optax.scale(-learning_rate)) @jax.jit def loss(params, key, data): elbo_outputs = elbo_fun.apply(params, key, data) return -jnp.mean(elbo_outputs.elbo) @jax.jit def loss_test(params, key, data): elbo_output = elbo_fun.apply(params, key, data) return (-jnp.mean(elbo_output.elbo), jnp.mean(elbo_output.data_fidelity), jnp.mean(elbo_output.kl)) @jax.jit def update_step(params, key, data, opt_state): grads = jax.grad(loss, has_aux=False)(params, key, data) updates, opt_state = opt_update(grads, opt_state, params) params = optax.apply_updates(params, updates) return params, opt_state exp_checkpointer = checkpointer.Checkpointer( checkpoint_dir, checkpoint_filename) experiment_data = exp_checkpointer.load_checkpoint() if experiment_data is not None: start = experiment_data['step'] params = experiment_data['experiment_state'] opt_state = experiment_data['opt_state'] else: start = 0 params = elbo_fun.init( next(rng_seq), next(train_data_iterator).data) opt_state = opt_init(params) for step in range(start, iterations, 1): if step % test_every == 0: test_loss, ll, kl = loss_test(params, next(rng_seq), next(test_data_iterator).data) output_message = (f'Step {step} elbo {-test_loss:0.2f} LL {ll:0.2f} ' f'KL {kl:0.2f}') if test_functions: for test_function in test_functions: name, test_output = test_function(params) output_message += f' {name}: {test_output:0.2f}' print(output_message) params, opt_state = update_step(params, next(rng_seq), next(train_data_iterator).data, opt_state) if step % checkpoint_every == 0: exp_checkpointer.save_checkpoint( params, opt_state, step, extra_checkpoint_info) ================================================ FILE: avae/train_main.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Main file for training VAE/AVAE.""" import enum from absl import app from absl import flags import haiku as hk from avae import data_iterators from avae import decoders from avae import encoders from avae import train from avae import vae class Model(enum.Enum): vae = enum.auto() avae = enum.auto() class EncoderArch(enum.Enum): color_mnist_mlp_encoder = 'ColorMnistMLPEncoder' class DecoderArch(enum.Enum): color_mnist_mlp_decoder = 'ColorMnistMLPDecoder' _DATASET = flags.DEFINE_enum_class( 'dataset', data_iterators.Dataset.color_mnist, data_iterators.Dataset, 'Dataset to train on') _LATENT_DIM = flags.DEFINE_integer('latent_dim', 32, 'Number of latent dimensions.') _TRAIN_BATCH_SIZE = flags.DEFINE_integer('train_batch_size', 64, 'Train batch size.') _TEST_BATCH_SIZE = flags.DEFINE_integer('test_batch_size', 64, 'Testing batch size.') _TEST_EVERY = flags.DEFINE_integer('test_every', 1000, 'Test every N iterations.') _ITERATIONS = flags.DEFINE_integer('iterations', 102000, 'Number of training iterations.') _OBS_VAR = flags.DEFINE_float('obs_var', 0.5, 'Observation variance of the data. (Default 0.5)') _MODEL = flags.DEFINE_enum_class('model', Model.avae, Model, 'Model used for training.') _RHO = flags.DEFINE_float('rho', 0.8, 'Rho parameter used with AVAE or SE.') _LEARNING_RATE = flags.DEFINE_float('learning_rate', 1e-4, 'Learning rate.') _RNG_SEED = flags.DEFINE_integer('rng_seed', 0, 'Seed for random number generator.') _CHECKPOINT_DIR = flags.DEFINE_string('checkpoint_dir', '/tmp/', 'Directory for checkpointing.') _CHECKPOINT_FILENAME = flags.DEFINE_string( 'checkpoint_filename', 'color_mnist_avae_mlp', 'Checkpoint filename.') _CHECKPOINT_EVERY = flags.DEFINE_integer( 'checkpoint_every', 1000, 'Checkpoint every N steps.') _ENCODER = flags.DEFINE_enum_class( 'encoder', EncoderArch.color_mnist_mlp_encoder, EncoderArch, 'Encoder class name.') _DECODER = flags.DEFINE_enum_class( 'decoder', DecoderArch.color_mnist_mlp_decoder, DecoderArch, 'Decoder class name.') def main(_): if _DATASET.value is data_iterators.Dataset.color_mnist: train_data_iterator = iter( data_iterators.ColorMnistDataIterator('train', _TRAIN_BATCH_SIZE.value)) test_data_iterator = iter( data_iterators.ColorMnistDataIterator('test', _TEST_BATCH_SIZE.value)) def _elbo_fun(input_data): if _ENCODER.value is EncoderArch.color_mnist_mlp_encoder: encoder = encoders.ColorMnistMLPEncoder(_LATENT_DIM.value) if _DECODER.value is DecoderArch.color_mnist_mlp_decoder: decoder = decoders.ColorMnistMLPDecoder(_OBS_VAR.value) vae_obj = vae.VAE(encoder, decoder, _RHO.value) if _MODEL.value is Model.vae: return vae_obj.vae_elbo(input_data, hk.next_rng_key()) else: return vae_obj.avae_elbo(input_data, hk.next_rng_key()) elbo_fun = hk.transform(_elbo_fun) extra_checkpoint_info = { 'dataset': _DATASET.value.name, 'encoder': _ENCODER.value.name, 'decoder': _DECODER.value.name, 'obs_var': _OBS_VAR.value, 'rho': _RHO.value, 'latent_dim': _LATENT_DIM.value, } train.train( train_data_iterator=train_data_iterator, test_data_iterator=test_data_iterator, elbo_fun=elbo_fun, learning_rate=_LEARNING_RATE.value, checkpoint_dir=_CHECKPOINT_DIR.value, checkpoint_filename=_CHECKPOINT_FILENAME.value, checkpoint_every=_CHECKPOINT_EVERY.value, test_every=_TEST_EVERY.value, iterations=_ITERATIONS.value, rng_seed=_RNG_SEED.value, extra_checkpoint_info=extra_checkpoint_info) if __name__ == '__main__': app.run(main) ================================================ FILE: avae/types.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Useful dataclasses types used across the code.""" from typing import Optional import dataclasses import jax.numpy as jnp import numpy as np @dataclasses.dataclass(frozen=True) class ELBOOutputs: elbo: jnp.ndarray data_fidelity: jnp.ndarray kl: jnp.ndarray @dataclasses.dataclass(frozen=True) class LabelledData: """A batch of labelled examples. Attributes: data: Array of shape (batch_size, ...). label: Array of shape (batch_size, ...). """ data: np.ndarray label: Optional[np.ndarray] @dataclasses.dataclass(frozen=True) class NormalParams: """Parameters of a normal distribution. Attributes: mean: Array of shape (batch_size, latent_dim). variance: Array of shape (batch_size, latent_dim). """ mean: jnp.ndarray variance: jnp.ndarray ================================================ FILE: avae/vae.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Standard VAE class.""" from typing import Optional import jax import jax.numpy as jnp from avae import decoders from avae import encoders from avae import kl from avae import types class VAE: """VAE class. This class defines the ELBO used in training VAE models. It also adds function for forward passing data through VAE. """ def __init__(self, encoder: encoders.EncoderBase, decoder: decoders.DecoderBase, rho: Optional[float] = None): """Class initializer. Args: encoder: Encoder network architecture. decoder: Decoder network architecture. rho: Rho parameter used in AVAE training. """ self._encoder = encoder self._decoder = decoder self._rho = rho def vae_elbo( self, input_data: jnp.ndarray, key: jnp.ndarray) -> types.ELBOOutputs: """ELBO for training VAE. Args: input_data: Input batch of shape (batch_size, ...). key: Key for random number generator. Returns: Computed VAE Elbo as type util_dataclasses.ELBOOutputs """ posterior = self._encoder(input_data) samples = self._encoder.sample(posterior, key) kls = jax.vmap(kl.kl_p_with_uniform_normal, [0])( posterior.mean, posterior.variance) recons = self._decoder(samples) data_fidelity = self._decoder.data_fidelity(input_data, recons) elbo = data_fidelity - kls return types.ELBOOutputs(elbo, data_fidelity, kls) def avae_elbo( self, input_data: jnp.ndarray, key: jnp.ndarray) -> types.ELBOOutputs: """ELBO for training AVAE model. Args: input_data: Input batch of shape (batch_size, ...). key: Key for random number generator. Returns: Computed AVAE Elbo in nested tuple (Elbo, (data_fidelity, KL)). All arrays have batch dimension intact. """ aux_images = jax.lax.stop_gradient(self(input_data, key)) posterior = self._encoder(input_data) samples = self._encoder.sample(posterior, key) kls = jax.vmap(kl.kl_p_with_uniform_normal, [0, 0])( posterior.mean, posterior.variance) recons = self._decoder(samples) data_fidelity = self._decoder.data_fidelity(input_data, recons) elbo = data_fidelity - kls aux_posterior = self._encoder(aux_images) latent_mean = posterior.mean latent_var = posterior.variance aux_latent_mean = aux_posterior.mean aux_latent_var = aux_posterior.variance latent_dim = latent_mean.shape[1] def _reduce(x): return jnp.mean(jnp.sum(x, axis=1)) # Computation of . expected_log_conditional = ( aux_latent_var + jnp.square(self._rho) * latent_var + jnp.square(aux_latent_mean - self._rho * latent_mean)) expected_log_conditional = _reduce(expected_log_conditional) expected_log_conditional /= 2.0 * (1.0 - jnp.square(self._rho)) expected_log_conditional = (latent_dim * jnp.log(1.0 / (2 * jnp.pi)) - expected_log_conditional) elbo += expected_log_conditional # Entropy of Z_aux elbo += _reduce(0.5 * jnp.log(2 * jnp.pi * jnp.e * aux_latent_var)) return types.ELBOOutputs(elbo, data_fidelity, kls) def __call__( self, input_data: jnp.ndarray, key: jnp.ndarray) -> jnp.ndarray: """Reconstruction of the input data. Args: input_data: Input batch of shape (batch_size, ...). key: Key for random number generator. Returns: Reconstruction of the input data as jnp.ndarray of shape [batch_dim, observation_dims]. """ posterior = self._encoder(input_data) samples = self._encoder.sample(posterior, key) recons = self._decoder(samples) return recons ================================================ FILE: bigbigan/README.md ================================================ # Pretrained BigBiGAN models We have released pretrained BigBiGAN models used for unsupervised image generation and representation learning, as described in our July 2019 tech report, ["Large Scale Adversarial Representation Learning"](https://arxiv.org/abs/1907.02544) [1]. The pretrained models are available for use via [TF Hub](https://tfhub.dev/s?publisher=deepmind&q=bigbigan). The release includes two BigBiGAN models with different encoder architectures: * Small encoder (ResNet-50): [https://tfhub.dev/deepmind/bigbigan-resnet50/1](https://tfhub.dev/deepmind/bigbigan-resnet50/1) * Large encoder (RevNet-50 x4): [https://tfhub.dev/deepmind/bigbigan-revnet50x4/1](https://tfhub.dev/deepmind/bigbigan-revnet50x4/1) See the TF Hub pages linked above for documentation and example usage of each module. ## Demo (Colab) A Google Colab-based demo with example usage of the model functionality and sample visualization is available [here](//colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/bigbigan_with_tf_hub.ipynb). ## Example use The snippet below demonstrates the use of the released TF Hub modules for image generation/reconstruction and encoder feature computation. (The [Colab demo](//colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/bigbigan_with_tf_hub.ipynb) includes more extensive documentation and visualizations.) ```python # Load BigBiGAN module. module = hub.Module('https://tfhub.dev/deepmind/bigbigan-resnet50/1') # small encoder # module = hub.Module('https://tfhub.dev/deepmind/bigbigan-revnet50x4/1') # large encoder # Sample a batch of 8 random latent vectors (z) from the Gaussian prior. Then # call the generator on the latent samples to generate a batch of images with # shape [8, 128, 128, 3] and range [-1, 1]. z = tf.random.normal([8, 120]) # latent samples gen_samples = module(z, signature='generate') # Given a batch of 256x256 RGB images in range [-1, 1], call the encoder to # compute predicted latents z and other features (e.g. for use in downstream # recognition tasks). images = tf.placeholder(tf.float32, shape=[None, 256, 256, 3]) features = module(images, signature='encode', as_dict=True) # Get the predicted latent sample `z_sample` from the dict of features. # Other available features include `avepool_feat` and `bn_crelu_feat`, used in # the representation learning results. z_sample = features['z_sample'] # shape [?, 120] # Compute reconstructions of the input `images` by passing the encoder's output # `z_sample` back through the generator. Note that raw generator outputs are # half the resolution of encoder inputs (128x128). To get upsampled generator # outputs matching the encoder input resolution (256x256), instead use: # recons = module(z_sample, signature='generate', as_dict=True)['upsampled'] recons = module(z_sample, signature='generate') # shape [?, 128, 128, 3] ``` ## References [1] Jeff Donahue and Karen Simonyan. [Large Scale Adversarial Representation Learning](https://arxiv.org/abs/1907.02544). *arxiv:1907.02544*, 2019. ================================================ FILE: box_arrangement/README.md ================================================ # Predicate tasks. This package contains tasks associated with "Behavior Priors for Efficient Reiforcement Learning" (https://arxiv.org/abs/2010.14274), "Exploiting Hierarchy for Learning and Transfer in KL-Regularized RL" (https://arxiv.org/abs/2010.14274) and "Information asymmetry in KL-regularized RL" (https://arxiv.org/abs/1905.01240). This is research code, and has dependencies on more stable code that is available as part of [`dm_control`], in particular upon components in [`dm_control.locomotion`] and [`dm_control.manipulation`]. To get access to preconfigured python environments for the tasks, see the `task_examples.py` file. To use the MuJoCo interactive viewer (from dm_control) to load the environments, see `explore.py`.

## Installation instructions 1. Download [MuJoCo Pro](https://mujoco.org/) and extract the zip archive as `~/.mujoco/mujoco200_$PLATFORM` where `$PLATFORM` is one of `linux`, `macos`, or `win64`. 2. Ensure that a valid MuJoCo license key file is located at `~/.mujoco/mjkey.txt`. 3. Clone the `deepmind-research` repository: ```shell git clone https://github.com/deepmind/deepmind-research.git cd deepmind-research ``` 4. Create and activate a Python virtual environment: ```shell python3 -m virtualenv box_arrangement source box_arrangement/bin/activate ``` 5. Install the package: ```shell pip install ./box_arrangement ``` ## Quickstart To instantiate and step through the go to one of K targets task: ```python from box_arrangement import task_examples import numpy as np # Build an example environment. env = task_examples.go_to_k_targets() # Get the `action_spec` describing the control inputs. action_spec = env.action_spec() # Step through the environment for one episode with random actions. time_step = env.reset() while not time_step.last(): action = np.random.uniform(action_spec.minimum, action_spec.maximum, size=action_spec.shape) time_step = env.step(action) print("reward = {}, discount = {}, observations = {}.".format( time_step.reward, time_step.discount, time_step.observation)) ``` The above code snippet can also be used for other tasks by replacing `go_to_k_targets` with one of (`move_box`, `move_box_or_gtt` and `move_box_and_gtt`). ## Visualization [`dm_control.viewer`] can be used to visualize and interact with the environment. We provide the `explore.py` script specifically for this. If you followed our installation instructions above, this can be launched for the go to one of K targets task via: ```shell python3 -m box_arrangement.explore --task='go_to_target' ``` ## Citation If you use the code or data in this package, please cite: ``` @misc{tirumala2020behavior, title={Behavior Priors for Efficient Reinforcement Learning}, author={Dhruva Tirumala and Alexandre Galashov and Hyeonwoo Noh and Leonard Hasenclever and Razvan Pascanu and Jonathan Schwarz and Guillaume Desjardins and Wojciech Marian Czarnecki and Arun Ahuja and Yee Whye Teh and Nicolas Heess}, year={2020}, eprint={2010.14274}, archivePrefix={arXiv}, primaryClass={cs.AI} } ``` [`dm_control`]: https://github.com/deepmind/dm_control [`dm_control.locomotion`]: https://github.com/deepmind/dm_control/tree/master/dm_control/locomotion [`dm_control.manipulation`]: https://github.com/deepmind/dm_control/tree/master/dm_control/manipulation [`dm_control.viewer`]: https://github.com/deepmind/dm_control/tree/master/dm_control/viewer ================================================ FILE: box_arrangement/__init__.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: box_arrangement/dmlab_assets.py ================================================ # Copyright 2018 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """DeepMind Lab textures.""" from dm_control import composer from dm_control import mjcf from labmaze import assets as labmaze_assets class SkyBox(composer.Entity): """Represents a texture asset for the sky box.""" def _build(self, style): labmaze_textures = labmaze_assets.get_sky_texture_paths(style) self._mjcf_root = mjcf.RootElement(model='dmlab_' + style) self._texture = self._mjcf_root.asset.add( 'texture', type='skybox', name='texture', fileleft=labmaze_textures.left, fileright=labmaze_textures.right, fileup=labmaze_textures.up, filedown=labmaze_textures.down, filefront=labmaze_textures.front, fileback=labmaze_textures.back) @property def mjcf_model(self): return self._mjcf_root @property def texture(self): return self._texture class WallTextures(composer.Entity): """Represents wall texture assets.""" def _build(self, style): labmaze_textures = labmaze_assets.get_wall_texture_paths(style) self._mjcf_root = mjcf.RootElement(model='dmlab_' + style) self._textures = [] for texture_name, texture_path in labmaze_textures.items(): self._textures.append(self._mjcf_root.asset.add( 'texture', type='2d', name=texture_name, file=texture_path.format(texture_name))) @property def mjcf_model(self): return self._mjcf_root @property def textures(self): return self._textures class FloorTextures(composer.Entity): """Represents floor texture assets.""" def _build(self, style): labmaze_textures = labmaze_assets.get_floor_texture_paths(style) self._mjcf_root = mjcf.RootElement(model='dmlab_' + style) self._textures = [] for texture_name, texture_path in labmaze_textures.items(): self._textures.append(self._mjcf_root.asset.add( 'texture', type='2d', name=texture_name, file=texture_path.format(texture_name))) @property def mjcf_model(self): return self._mjcf_root @property def textures(self): return self._textures ================================================ FILE: box_arrangement/explore.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Simple script to launch viewer with an example environment.""" from absl import app from absl import flags from dm_control import viewer from box_arrangement import task_examples FLAGS = flags.FLAGS flags.DEFINE_enum('task', 'go_to_target', [ 'go_to_target', 'move_box', 'move_box_or_go_to_target', 'move_box_and_go_to_target' ], 'The task to visualize.') TASKS = { 'go_to_target': task_examples.go_to_k_targets, 'move_box': task_examples.move_box, 'move_box_or_go_to_target': task_examples.move_box_or_gtt, 'move_box_and_go_to_target': task_examples.move_box_and_gtt, } def main(unused_argv): viewer.launch(environment_loader=TASKS[FLAGS.task]) if __name__ == '__main__': app.run(main) ================================================ FILE: box_arrangement/predicate_task.py ================================================ # Copyright 2018 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A task where different `Predicate`s need to be solved. In each episode a spiking reward is given for each `Predicate` solved with an extra reward bonus added when all of the predicates are solved. On each episode the number of predicates are sampled randomly. This provides a common interface to specify distributions over tasks ranging in difficulty levels but with common components. Each `Predicate` involves some manipulation of the walker, props and targets which thus allows for rich configurations of tasks to be defined. """ import colorsys import functools from dm_control import composer from dm_control.composer.observation import observable from dm_env import specs import numpy as np _FLOOR_GAP_CHAR = '#' _AMBIENT_HEADLIGHT = 0.8 _HSV_SATURATION = 0.5 _HSV_ACTIVATED_SATURATION = 0.75 _HSV_VALUE = 1.0 _PROP_SIZE = 0.5 _MAX_ITERATIONS = 1000 def _generate_target_permutation(num_targets, random_state): targets = list(range(num_targets)) random_state.shuffle(targets) return targets class PredicateTask(composer.Task): """Requires objects to be moved onto targets.""" def __init__(self, walker, maze_arena, predicates, props=None, targets=None, max_num_predicates=1, randomize_num_predicates=False, predicate_prob=None, reward_scale=1.0, terminating_reward_bonus=5.0, regenerate_predicates=False, physics_timestep=0.001, control_timestep=0.025, alive_threshold=-0.5): """Initializes a task with multiple sub-components(predicates) to be solved. This task essentially contains different flavors of go to target. The task contains a walker, props and target positions. To solve the entire task, the walker would need to solve a certain number of 'predicates' or sub-tasks. For instance, the task could contain 2 predicates for the walker going to a target position and the walker moving a box to a target position. In such a case, there is an implicit ordering of the way the walker needs to solve things to achieve the net task. Args: walker: A `Walker` instance. maze_arena: An `Entity` that defines a maze-like arena. predicates: A list of `Predicate` instances for ths task. props: An optional list of `manipulation.prop` instances for the task. These are used to generate observables for the task. targets: An optional list of `locomotion.prop` instances for the task. These are used to generate observables for the task. max_num_predicates: The maximum number of predicates to use in each episode of the task. randomize_num_predicates: A `bool` flag indicating whether the number of `valid` predicates should be randomized for each task. If set to `True`, then on each episode, between 1 and `num_predicates` are chosen as valid predicates and `predicate.invalid_observation_value` is output for the remaining slots in the observation. predicate_prob: An optional `list` containing the probabilities for each of the `predicates`. If not `None`, must have the same length as `predicates. reward_scale: `float` to scale the reward. terminating_reward_bonus: A bonus added to the reward when all predicates have been solved. regenerate_predicates: A `bool` flag indicating which when set, spawns a new set of predicates when the previous set is successful instead of terminating. physics_timestep: The time step of the physics simulation. control_timestep: Should be an integer multiple of the physics time step. alive_threshold: Aliveness in [-1., 0.]. Raises: ValueError: If `num_props` is greater than `num_targets` or if `num_predicates` is greater than `num_targets`. """ if max_num_predicates > len(predicates): raise ValueError('Not enough predicates for task. The maximum number of ' 'predicates can be ' '{} but only {} predicates provided.'.format( max_num_predicates, len(predicates))) self._arena = maze_arena self._walker = walker self._reward_scale = reward_scale self._alive_threshold = alive_threshold self._terminating_reward_bonus = terminating_reward_bonus self._arena.mjcf_model.visual.headlight.ambient = [_AMBIENT_HEADLIGHT] * 3 maze_arena.text_maze_regenerated_hook = self._regenerate_positions self._max_num_predicates = max_num_predicates self._predicates = predicates self._predicate_prob = predicate_prob self._randomize_num_predicates = randomize_num_predicates self._active_predicates = [] self._regen_predicates = regenerate_predicates self._reward = 0 # Targets. self._targets = targets for target in targets: self._arena.attach(target) if props is None: props = [] # Props. self._props = props # M Props + 1 Walker and we choose 'N' predicates as the task. for prop in props: prop.geom.rgba = [0, 0, 0, 1] # Will be randomized for each episode. self._arena.add_free_entity(prop) # Create walkers and corresponding observables. walker.create_root_joints(self._arena.attach(walker)) self._create_per_walker_observables(walker) self._generate_target_permutation = None maze_arena.text_maze_regenerated_hook = self._regenerate_positions # Set time steps. self.set_timesteps( physics_timestep=physics_timestep, control_timestep=control_timestep) def _create_per_walker_observables(self, walker): # Enable proprioceptive observables. for obs in (walker.observables.proprioception + walker.observables.kinematic_sensors + [walker.observables.position, walker.observables.orientation]): obs.enabled = True xpos_origin_callable = lambda phys: phys.bind(walker.root_body).xpos # Egocentric prop positions. # For each prop, we add the positions for the 8 corners using the sites. for prop_id, prop in enumerate(self._props): def _prop_callable(physics, prop=prop): return [physics.bind(s).xpos for s in prop.corner_sites] if len(self._props) > 1: observable_name = 'prop_{}_position'.format(prop_id) else: observable_name = 'prop_position' walker.observables.add_egocentric_vector( observable_name, observable.Generic(_prop_callable), origin_callable=xpos_origin_callable) # Egocentric target positions. def _target_callable(physics): target_list = [] for target in self._targets: target_list.append(target.site_pos(physics)) return np.array(target_list) walker.observables.add_egocentric_vector( 'target_positions', observable.Generic(_target_callable), origin_callable=xpos_origin_callable) # Whether targets are activated. def _predicate_activated_callable(physics): predicate_activated_list = np.full(self._max_num_predicates, True) for i, predicate in enumerate(self._active_predicates): predicate_activated_list[i] = predicate.is_active(physics) return predicate_activated_list walker.observables.add_observable( 'predicates_activated', observable.Generic(_predicate_activated_callable)) self._observables = self._walker.observables.as_dict() # Predicate observables. for pred_idx in range(self._max_num_predicates): def _predicate_callable(_, pred_idx=pred_idx): """Callable for the predicate observation.""" if pred_idx in range(len(self._active_predicates)): predicate = self._active_predicates[pred_idx] return predicate.observation_value else: # Use any predicates inactive observation to fill the rest. predicate = self._predicates[0] return predicate.inactive_observation_value predicate_name = 'predicate_{}'.format(pred_idx) self._observables[predicate_name] = observable.Generic( _predicate_callable) self._observables[predicate_name].enabled = True @property def observables(self): return self._observables @property def name(self): return 'predicate_task' @property def root_entity(self): return self._arena def _regenerate_positions(self): target_permutation = self._generate_target_permutation( len(self._arena.target_positions)) num_permutations = len(self._props) + len(self._targets) target_permutation = target_permutation[:num_permutations] if len(self._props) + len(self._targets) > len( self._arena.target_positions): raise RuntimeError( 'The generated maze does not contain enough target positions ' 'for the requested number of props ({}) and targets ({}): got {}.' .format( len(self._props), len(self._targets), len(self._arena.target_positions))) self._prop_positions = [] for i in range(len(self._props)): self._prop_positions.append( self._arena.target_positions[target_permutation[i]]) self._target_positions = [] for i in range(len(self._targets)): idx = i + len(self._props) self._target_positions.append( self._arena.target_positions[target_permutation[idx]]) def initialize_episode_mjcf(self, random_state): self._generate_target_permutation = functools.partial( _generate_target_permutation, random_state=random_state) self._arena.regenerate() # Set random colors for the props and targets. self._set_random_colors(random_state) self._set_active_predicates(random_state) def _set_active_predicates(self, random_state): # Reinitialize predicates to set any properties they want. iteration = 0 valid_set_found = False while not valid_set_found and iteration < _MAX_ITERATIONS: for predicate in self._predicates: predicate.reinitialize(random_state) if self._randomize_num_predicates and self._max_num_predicates > 1: num_predicates = random_state.choice( list(range(1, self._max_num_predicates + 1)), size=1)[0] else: num_predicates = self._max_num_predicates valid_set_found = self._choose_random_predicates(random_state, num_predicates) iteration += 1 if not valid_set_found: raise ValueError( 'Could not find set of active predicates with ' 'unique objects are after {} iterations.'.format(_MAX_ITERATIONS)) for predicate in self._active_predicates: predicate.activate_predicate() def _choose_random_predicates(self, random_state, num_predicates): self._active_predicates = random_state.choice( self._predicates, replace=False, size=num_predicates, p=self._predicate_prob) objects_in_common = self._active_predicates[0].objects_in_use for predicate in self._active_predicates[1:]: new_objects = predicate.objects_in_use if objects_in_common.intersection(new_objects): return False objects_in_common.union(new_objects) return True def _set_random_colors(self, random_state): hue0 = random_state.uniform() hues = [(hue0 + i / len(self._targets)) % 1.0 for i in range(len(self._targets))] rgbs = [ colorsys.hsv_to_rgb(hue, _HSV_SATURATION, _HSV_VALUE) for hue in hues ] activated_rgbs = [ colorsys.hsv_to_rgb(hue, _HSV_ACTIVATED_SATURATION, _HSV_VALUE) for hue in hues ] # There are fewer props than targets. # Pick as far apart colors for each prop as possible. if self._props: targets_per_prop = len(self._targets) // len(self._props) else: targets_per_prop = len(self._targets) for prop_id in range(len(self._props)): # The first few targets have to match the props' color. rgb_id = prop_id * targets_per_prop self._props[prop_id].geom.rgba[:3] = rgbs[rgb_id] self._targets[prop_id].set_colors(rgbs[rgb_id], activated_rgbs[rgb_id]) # Assign colors not used by any prop to decoy targets. for decoy_target_offset in range(targets_per_prop - 1): target_id = len( self._props) + prop_id * targets_per_prop + decoy_target_offset rgb_id = prop_id * targets_per_prop + decoy_target_offset self._targets[target_id].set_colors(rgbs[rgb_id], rgbs[rgb_id]) # Remainder loop for targets. for target_id in range(targets_per_prop * len(self._props), len(self._targets)): self._targets[target_id].set_colors(rgbs[target_id], rgbs[target_id]) def initialize_episode(self, physics, random_state): self._first_step = True self._was_active = [False] * len(self._active_predicates) walker = self._walker spawn_indices = random_state.permutation(len(self._arena.spawn_positions)) spawn_index = spawn_indices[0] walker.reinitialize_pose(physics, random_state) spawn_position = self._arena.spawn_positions[spawn_index] spawn_rotation = random_state.uniform(-np.pi, np.pi) spawn_quat = np.array( [np.cos(spawn_rotation / 2), 0, 0, np.sin(spawn_rotation / 2)]) walker.shift_pose( physics, [spawn_position[0], spawn_position[1], 0.0], spawn_quat, rotate_velocity=True) for prop, prop_xy_position in zip(self._props, self._prop_positions): # Position at the middle of a maze cell. prop_position = np.array( [prop_xy_position[0], prop_xy_position[1], prop.geom.size[2]]) # Randomly rotate the prop around the z-axis. prop_rotation = random_state.uniform(-np.pi, np.pi) prop_quat = np.array( [np.cos(prop_rotation / 2), 0, 0, np.sin(prop_rotation / 2)]) # Taking into account the prop's orientation, first calculate how much we # can displace the prop from the center of a maze cell without any part of # it sticking out of the cell. x, y, _ = prop.geom.size cos = np.cos(prop_rotation) sin = np.sin(prop_rotation) x_max = max([np.abs(x * cos - y * sin), np.abs(x * cos + y * sin)]) y_max = max([np.abs(y * cos + x * sin), np.abs(y * cos - x * sin)]) prop_max_displacement = self._arena.xy_scale / 2 - np.array( [x_max, y_max]) assert np.all(prop_max_displacement >= 0) prop_max_displacement *= 0.99 # Safety factor. # Then randomly displace the prop from the center of the maze cell. prop_position[:2] += prop_max_displacement * random_state.uniform( -1, 1, 2) # Commit the prop's final pose. prop.set_pose(physics, position=prop_position, quaternion=prop_quat) for target, target_position in zip(self._targets, self._target_positions): target_position[2] = _PROP_SIZE target.set_position(physics, target_position) def before_step(self, physics, actions, random_state): if isinstance(actions, list): actions = np.concatenate(actions) super(PredicateTask, self).before_step(physics, actions, random_state) if self._first_step: self._first_step = False else: self._was_active = [ predicate.is_active(physics) for predicate in self._active_predicates ] def after_step(self, physics, random_state): if self._all_predicates_satisfied() and self._regen_predicates: self._set_random_colors(random_state) self._set_active_predicates(random_state) super(PredicateTask, self).after_step(physics, random_state) def get_reward(self, physics): reward = 0.0 for predicate, was_active in zip(self._active_predicates, self._was_active): if predicate.is_active(physics) and not was_active: reward += 1.0 elif was_active and not predicate.is_active(physics): reward -= 1.0 if self._all_predicates_satisfied(): reward += self._terminating_reward_bonus self._reward = reward return reward * self._reward_scale def _all_predicates_satisfied(self): return sum(self._was_active) == len(self._active_predicates) def should_terminate_episode(self, physics): return ((self._all_predicates_satisfied() and not self._regen_predicates) or self._walker.aliveness(physics) < self._alive_threshold) def get_discount(self, physics): if self.should_terminate_episode(physics): return 0.0 return 1.0 def get_reward_spec(self): return specs.Array(shape=[], dtype=np.float32) def get_discount_spec(self): return specs.Array(shape=[], dtype=np.float32) ================================================ FILE: box_arrangement/predicate_task_test.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for box_arrangement.predicate_task.""" from absl.testing import absltest from dm_control import composer from dm_control.entities import props from dm_control.locomotion import arenas from dm_control.locomotion import walkers import numpy as np from box_arrangement import predicate_task from box_arrangement import predicates _EGOCENTRIC_OBSERVABLES = [ "walker/body_height", "walker/end_effectors_pos", "walker/joints_pos", "walker/joints_vel", "walker/sensors_accelerometer", "walker/sensors_gyro", "walker/sensors_velocimeter", "walker/world_zaxis", ] class PredicateTaskTest(absltest.TestCase): def _setup_basic_gtt_task(self, num_targets=1, reward_scale=1.0): walker = walkers.Ant() text_maze = arenas.padded_room.PaddedRoom( room_size=8, num_objects=2, pad_with_walls=True) maze_arena = arenas.MazeWithTargets(maze=text_maze) targets = [] for _ in range(num_targets): targets.append( props.PositionDetector( pos=[0, 0, 0.5], size=[0.5, 0.5, 0.5], inverted=False, visible=True)) test_predicates = [predicates.MoveWalkerToRandomTarget(walker, targets)] self._task = predicate_task.PredicateTask( walker=walker, maze_arena=maze_arena, predicates=test_predicates, targets=targets, randomize_num_predicates=False, reward_scale=reward_scale, terminating_reward_bonus=2.0, ) random_state = np.random.RandomState(12345) self._env = composer.Environment(self._task, random_state=random_state) self._walker = walker self._targets = targets def test_observables(self): self._setup_basic_gtt_task() timestep = self._env.reset() self.assertIn("predicate_0", timestep.observation) self.assertIn("walker/target_positions", timestep.observation) for observable in _EGOCENTRIC_OBSERVABLES: self.assertIn(observable, timestep.observation) def test_termination_and_discount(self): self._setup_basic_gtt_task() self._env.reset() target_pos = (0, 0, 0.5) # Initialize the walker away from the target. self._walker.set_pose( self._env.physics, position=(-2, 0, 0.0), quaternion=(1, 0, 0, 0)) self._targets[0].set_position( self._env.physics, target_pos) self._env.physics.forward() zero_action = np.zeros_like(self._env.physics.data.ctrl) for _ in range(10): timestep = self._env.step(zero_action) self.assertEqual(timestep.discount, 1.0) self.assertEqual(timestep.reward, 0.0) walker_pos = (0, 0, 0.0) self._walker.set_pose( self._env.physics, position=walker_pos) self._env.physics.forward() # For a single predicate, first the reward is +1.0 for activating the # predicate timestep = self._env.step(zero_action) self.assertEqual(timestep.discount, 1.0) self.assertEqual(timestep.reward, 1.0) # If the predicate is active and *remains* active, the discount gets to 0.0 # and the terminating reward bonus is given. timestep = self._env.step(zero_action) self.assertEqual(timestep.discount, 0.0) self.assertEqual(timestep.reward, 2.0) # Make sure this is a termination step. self.assertTrue(timestep.last()) def test_reward_scaling(self): self._setup_basic_gtt_task(reward_scale=10.0) self._env.reset() zero_action = np.zeros_like(self._env.physics.data.ctrl) target_pos = (0, 0, 0.5) walker_pos = (0, 0, 0.0) self._targets[0].set_position(self._env.physics, target_pos) self._walker.set_pose(self._env.physics, position=walker_pos) self._env.physics.forward() # For a single predicate, first the reward is +1.0 for activating the # predicate timestep = self._env.step(zero_action) self.assertEqual(timestep.discount, 1.0) self.assertEqual(timestep.reward, 10.0) # If the predicate is active and *remains* active, the discount gets to 0.0 # and the terminating reward bonus is given. timestep = self._env.step(zero_action) self.assertEqual(timestep.discount, 0.0) self.assertEqual(timestep.reward, 20.0) # Make sure this is a termination step. self.assertTrue(timestep.last()) def test_too_few_predicates_raises_exception(self): walker = walkers.Ant() num_targets = 1 text_maze = arenas.padded_room.PaddedRoom( room_size=8, num_objects=2, pad_with_walls=True) maze_arena = arenas.MazeWithTargets(maze=text_maze) targets = [] for _ in range(num_targets): targets.append( props.PositionDetector( pos=[0, 0, 0.5], size=[0.5, 0.5, 0.5], inverted=False, visible=True)) test_predicates = [] with self.assertRaisesWithLiteralMatch( ValueError, "Not enough predicates for task." " The maximum number of " "predicates can be " "1 but only 0 predicates provided."): predicate_task.PredicateTask( walker=walker, maze_arena=maze_arena, predicates=test_predicates, targets=targets, randomize_num_predicates=False, reward_scale=1.0, terminating_reward_bonus=2.0, ) def test_error_too_few_targets(self): walker = walkers.Ant() num_targets = 5 text_maze = arenas.padded_room.PaddedRoom( room_size=8, num_objects=2, pad_with_walls=True) maze_arena = arenas.MazeWithTargets(maze=text_maze) targets = [] for _ in range(num_targets): targets.append( props.PositionDetector( pos=[0, 0, 0.5], size=[0.5, 0.5, 0.5], inverted=False, visible=True)) test_predicates = [predicates.MoveWalkerToRandomTarget(walker, targets)] task = predicate_task.PredicateTask( walker=walker, maze_arena=maze_arena, predicates=test_predicates, targets=targets, randomize_num_predicates=False, reward_scale=1.0, terminating_reward_bonus=2.0, ) random_state = np.random.RandomState(12345) env = composer.Environment(task, random_state=random_state) with self.assertRaisesWithLiteralMatch( RuntimeError, "The generated maze does not contain enough target " "positions for the requested number of props (0) and targets (5): " "got 2." ): env.reset() def test_error_if_no_predicates_found(self): walker = walkers.Ant() num_targets = 2 text_maze = arenas.padded_room.PaddedRoom( room_size=8, num_objects=6, pad_with_walls=True) maze_arena = arenas.MazeWithTargets(maze=text_maze) targets = [] for _ in range(num_targets): targets.append( props.PositionDetector( pos=[0, 0, 0.5], size=[0.5, 0.5, 0.5], inverted=False, visible=True)) # Moving the walker to two targets is not possible since the walker is a # shared object in use. test_predicates = [predicates.MoveWalkerToTarget(walker, targets[0]), predicates.MoveWalkerToTarget(walker, targets[1])] task = predicate_task.PredicateTask( walker=walker, maze_arena=maze_arena, predicates=test_predicates, targets=targets[1:], randomize_num_predicates=False, max_num_predicates=2, reward_scale=1.0, terminating_reward_bonus=2.0, ) random_state = np.random.RandomState(12345) env = composer.Environment(task, random_state=random_state) with self.assertRaisesWithLiteralMatch( ValueError, "Could not find set of active predicates" " with unique objects are after 1000 iterations."): env.reset() # However moving to one of the two targets is fine. walker = walkers.Ant() num_targets = 2 text_maze = arenas.padded_room.PaddedRoom( room_size=8, num_objects=6, pad_with_walls=True) maze_arena = arenas.MazeWithTargets(maze=text_maze) targets = [] for _ in range(num_targets): targets.append( props.PositionDetector( pos=[0, 0, 0.5], size=[0.5, 0.5, 0.5], inverted=False, visible=True)) test_predicates = [predicates.MoveWalkerToTarget(walker, targets[0]), predicates.MoveWalkerToTarget(walker, targets[1])] task = predicate_task.PredicateTask( walker=walker, maze_arena=maze_arena, predicates=test_predicates, targets=targets[1:], randomize_num_predicates=False, max_num_predicates=1, reward_scale=1.0, terminating_reward_bonus=2.0, ) random_state = np.random.RandomState(12345) env = composer.Environment(task, random_state=random_state) env.reset() if __name__ == "__main__": absltest.main() ================================================ FILE: box_arrangement/predicates.py ================================================ # Copyright 2018 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Defines some `predicates` for the predicate_task.""" import abc import colorsys import numpy as np HSV_SATURATION = 0.5 HSV_ACTIVATED_SATURATION = 0.75 HSV_VALUE = 1.0 WALKER_GOAL_RGBA = [0, 0, 0] WALKER_GOAL_PRESSED_RGBA = [128, 128, 128] INACTIVE_OBSERVATION_VALUE = [-1] * 5 # Define globals for the special encoding. MOVABLE_TYPES = {'walker': 0, 'box': 1} TARGET_TYPES = {'box': 0, 'target': 1} PREDICATE_TYPES = {'on': 0, 'close_to': 1, 'far_from': 2} class BasePredicate(object, metaclass=abc.ABCMeta): """Base class for all predicates.""" def __init__(self, walker): self._walker = walker @abc.abstractmethod def reinitialize(self, random_state): """Reinitializes a new, potentially random, predicate state. The reinitialize method should reset to a new predicate state which could update the `objects_in_use` by the `Predicate`. This method could be called multiple times before a finally binding predicate set has been found. Therefore no changes to the model that are not reversible should be made here (setting colors etc). Any changes affecting the Mujoco model should instead be made in the `activate_predicate` method call. Args: random_state: An instance of `np.RandomState` which may be seeded to ensure a deterministic environment. """ pass @abc.abstractmethod def activate_predicate(self): """Activates the current predicate configuration. Any changes that are non-reversible like setting object properties or affinities *must* only be done in this method. At this point, the `predicate_task` logic has confirmed that a valid predicate configuration has been found. """ pass @property def objects_in_use(self): """Returns the `set` of objects used for this episode.""" return set() @abc.abstractproperty def observation_value(self): """Returns a `dict` to be used as the predicate observable.""" pass @abc.abstractmethod def is_active(self, physics): """Boolean method indicating whether the predicate has been activated. If `True`, it implies the condition for the predicate has been satisfied and the walker can be rewarded. Args: physics: An instance of `control.Physics`. """ pass @property def inactive_observation_value(self): """observation_value indicating a `Predicate` is inactive. The `PredicateTask` randomly samples the number of active predicates to be used on each episode. For a consistent `observation_spec`, the predicates that are not active need a special observation_value that cannot be used anywhere else. Returns: A special value indicating that the predicate is inactive and is not used by any other predicate in the task. """ return INACTIVE_OBSERVATION_VALUE class MoveWalkerToTarget(BasePredicate): """Predicate to move a walker to a specific target.""" def __init__(self, walker, target, target_index=0): """Predicate to move a walker or box to a target. Args: walker: An locomotion `Walker` instance to use for this predicate. target: `locomotion.prop` instance containing an `activated` property. target_index: An 'int' argument to add to the observable to indicate the index of the target. """ super(MoveWalkerToTarget, self).__init__(walker) self._target = target self._target_id = target_index def reinitialize(self, random_state): self._target.deregister_entities() def activate_predicate(self): self._target.register_entities(self._walker) self._target.set_colors(WALKER_GOAL_RGBA, WALKER_GOAL_PRESSED_RGBA) @property def objects_in_use(self): return set([self._walker, self._target]) @property def observation_value(self): return np.array([ MOVABLE_TYPES['walker'], 0, TARGET_TYPES['target'], self._target_id, PREDICATE_TYPES['close_to'] ]) def is_active(self, physics): return self._target.activated class MoveWalkerToRandomTarget(BasePredicate): """Predicate to move a walker to a random target.""" def __init__(self, walker, targets=None): """Predicate to move a walker or box to a target. Args: walker: An locomotion `Walker` instance to use for this predicate. targets: An optional list of `locomotion.prop` instances each of which contains an `activated` property. """ super(MoveWalkerToRandomTarget, self).__init__(walker) self._targets = targets self._target_to_move_to = None def reinitialize(self, random_state): if self._target_to_move_to is not None: self._target_to_move_to.deregister_entities() self._target_to_move_to = random_state.choice(self._targets) self._target_idx = self._targets.index(self._target_to_move_to) def activate_predicate(self): self._target_to_move_to.register_entities(self._walker) self._target_to_move_to.set_colors(WALKER_GOAL_RGBA, WALKER_GOAL_PRESSED_RGBA) @property def objects_in_use(self): return set([self._walker, self._target_to_move_to]) @property def observation_value(self): return np.array([ MOVABLE_TYPES['walker'], 0, TARGET_TYPES['target'], self._target_idx, PREDICATE_TYPES['close_to'] ]) def is_active(self, physics): return self._target_to_move_to.activated class MoveWalkerToBox(BasePredicate): """Predicate to move a walker to a specific box.""" def __init__(self, walker, box, box_index=0, detection_region=None): """Predicate to move a walker to a specific box. Args: walker: An locomotion `Walker` instance to use for this predicate. box: A `manipulation.prop` instance to move. box_index: An integer index to use for the observable to identify the `box`. detection_region: A 2-tuple indicating the tolerances in x and y for the walker to be deemed `close_to` the box. If `None`, contact based detection is used. """ super(MoveWalkerToBox, self).__init__(walker) self._box = box self._detection_region = detection_region self._box_index = box_index self._walker_geoms = None def reinitialize(self, random_state): if self._walker_geoms is None: # pylint: disable=protected-access self._walker_geoms = set(self._walker._mjcf_root.find_all('geom')) def activate_predicate(self): self._box.geom.rgba[:3] = WALKER_GOAL_RGBA @property def objects_in_use(self): return set([self._walker, self._box]) @property def observation_value(self): return np.array([ MOVABLE_TYPES['walker'], 0, TARGET_TYPES['box'], self._box_index, PREDICATE_TYPES['close_to'] ]) def is_active(self, physics): if self._detection_region is None: return self._is_walker_contacting_box(physics) else: return np.all( np.abs( physics.bind(self._walker.root_body).xpos - physics.bind(self._box.geom).xpos)[:2] < self._detection_region) def _is_walker_contacting_box(self, physics): walker_geom_ids = [ physics.bind(geom).element_id for geom in self._walker_geoms ] for contact in physics.data.contact: contact_geoms = set([contact.geom1, contact.geom2]) if (physics.bind(self._box.geom).element_id in contact_geoms and contact_geoms.intersection(walker_geom_ids)): return True return False class MoveBoxToBox(BasePredicate): """Predicate to move a walker to a specific box.""" def __init__(self, walker, first_box, second_box, first_box_index=0, second_box_index=1, detection_region=None): """Predicate to move a walker to a specific box. Args: walker: An locomotion `Walker` instance to use for this predicate. first_box: A `manipulation.prop` instance to move. second_box: A `manipulation.prop` instance to move. first_box_index: An integer index to use for the observable to identify the `box`. second_box_index: An integer index to use for the observable to identify the `box`. detection_region: A 2-tuple indicating the tolerances in x and y for the walker to be deemed `close_to` the box. If `None`, contact based detection is used. """ super(MoveBoxToBox, self).__init__(walker) self._first_box = first_box self._second_box = second_box self._detection_region = detection_region self._first_box_index = first_box_index self._second_box_index = second_box_index self._walker_geoms = None def reinitialize(self, random_state): if self._walker_geoms is None: # pylint: disable=protected-access self._walker_geoms = set(self._walker._mjcf_root.find_all('geom')) def activate_predicate(self): self._first_box.geom.rgba[:3] = WALKER_GOAL_RGBA @property def objects_in_use(self): return set([self._first_box, self._second_box]) @property def observation_value(self): return np.array([ MOVABLE_TYPES['box'], self._first_box_index, TARGET_TYPES['box'], self._second_box_index, PREDICATE_TYPES['close_to'] ]) def is_active(self, physics): if self._detection_region is None: return self._are_boxes_in_contact(physics) else: return np.all( np.abs( physics.bind(self._first_box.geom).xpos - physics.bind(self._second_box.geom).xpos)[:2] < self._detection_region) def _are_boxes_in_contact(self, physics): for contact in physics.data.contact: contact_geoms = set([contact.geom1, contact.geom2]) if (physics.bind(self._first_box.geom).element_id in contact_geoms and physics.bind(self._second_box.geom).element_id in contact_geoms): return True return False class MoveBoxToTarget(BasePredicate): """Predicate to move a walker to a specific target.""" def __init__(self, walker, box, target, box_index=0, target_index=0): """Predicate to move a walker or box to a target. Args: walker: An locomotion `Walker` instance to use for this predicate. box: A `manipulation.prop` to move to the target. target: `locomotion.prop` instance containing an `activated` property. box_index: An 'int' argument to add to the observable to indicate the index of the box. target_index: An 'int' argument to add to the observable to indicate the index of the target. """ super(MoveBoxToTarget, self).__init__(walker) self._box = box self._target = target self._box_id = box_index self._target_id = target_index self._original_box_size = np.copy(box.geom.size) self._rgb = None self._activated_rgb = None def reinitialize(self, random_state): self._target.deregister_entities() self._get_box_properties(random_state) def _get_box_properties(self, random_state): hue0 = random_state.uniform() hue = (hue0 + self._target_id) % 1.0 self._rgb = colorsys.hsv_to_rgb(hue, HSV_SATURATION, HSV_VALUE) self._activated_rgb = colorsys.hsv_to_rgb(hue, HSV_ACTIVATED_SATURATION, HSV_VALUE) def activate_predicate(self): self._target.set_colors(self._rgb, self._activated_rgb) self._box.geom.rgba[:3] = self._rgb self._target.register_entities(self._box) @property def objects_in_use(self): return set([self._box, self._target]) @property def observation_value(self): return np.array([ MOVABLE_TYPES['box'], self._box_id, TARGET_TYPES['target'], self._target_id, PREDICATE_TYPES['close_to'] ]) def is_active(self, physics): return self._target.activated class MoveBoxToRandomTarget(BasePredicate): """Predicate to move a walker to a random target.""" def __init__(self, walker, box, box_index=0, targets=None): """Predicate to move a walker or box to a target. Args: walker: An locomotion `Walker` instance to use for this predicate. box: A `manipulation.prop` to move to the target. box_index: An optional 'int' argument to add to the observable to indicate the index of the box. targets: An optional list of `locomotion.prop` instances each of which contains an `activated` property. """ super(MoveBoxToRandomTarget, self).__init__(walker) self._targets = targets self._box_to_move = box self._box_index = box_index self._target_to_move_to = None self._original_box_size = np.copy(box.geom.size) self._rgb = None self._activated_rgb = None def reinitialize(self, random_state): if self._target_to_move_to is not None: self._target_to_move_to.deregister_entities() self._target_to_move_to = random_state.choice(self._targets) self._target_idx = self._targets.index(self._target_to_move_to) self._get_box_properties(random_state) def _get_box_properties(self, random_state): hue0 = random_state.uniform() hue = (hue0 + (self._target_idx / len(self._targets))) % 1.0 self._rgb = colorsys.hsv_to_rgb(hue, HSV_SATURATION, HSV_VALUE) self._activated_rgb = colorsys.hsv_to_rgb(hue, HSV_ACTIVATED_SATURATION, HSV_VALUE) def activate_predicate(self): self._target_to_move_to.set_colors(self._rgb, self._activated_rgb) self._box_to_move.geom.rgba[:3] = self._rgb self._target_to_move_to.register_entities(self._box_to_move) @property def objects_in_use(self): return set([self._box_to_move, self._target_to_move_to]) @property def observation_value(self): return np.array([ MOVABLE_TYPES['box'], self._box_index, TARGET_TYPES['target'], self._target_idx, PREDICATE_TYPES['close_to'] ]) def is_active(self, physics): return self._target_to_move_to.activated ================================================ FILE: box_arrangement/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from setuptools import find_packages from setuptools import setup REQUIRED_PACKAGES = ['absl-py', 'dm_control', 'numpy', 'dm_env'] setup( name='box_arrangement', version='0.1', description=('Sparse reward tasks involving moving and pushing boxes to' ' targets.'), url='https://github.com/deepmind/deepmind-research/box_arrangement', author='DeepMind', author_email='dhruvat@google.com', # Contained modules and scripts. packages=find_packages(), install_requires=REQUIRED_PACKAGES, platforms=['any'], license='Apache 2.0', ) ================================================ FILE: box_arrangement/task_examples.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Example tasks used in publications.""" from dm_control import composer from dm_control.entities import props from dm_control.locomotion import arenas as locomotion_arenas from dm_control.locomotion import walkers from dm_control.manipulation import props as manipulation_props from box_arrangement import dmlab_assets from box_arrangement import predicates as predicates_module from box_arrangement.predicate_task import PredicateTask DEFAULT_TIME_LIMIT = 20.0 DEFAULT_CONTROL_TIMESTEP = 0.05 MIN_ROOM_SIZE = 3 def _make_predicate_task(n_boxes, n_targets, include_gtt_predicates, include_move_box_predicates, max_num_predicates, control_timestep, time_limit): """Auxiliary function to construct different predicates tasks.""" walker = walkers.Ant() skybox = dmlab_assets.SkyBox(style='sky_03') wall = dmlab_assets.WallTextures(style='style_03') floor = dmlab_assets.FloorTextures(style='style_03') # Make room size become bigger once the number of objects become larger. num_objects = n_boxes + n_targets room_size = max(MIN_ROOM_SIZE, num_objects) text_maze = locomotion_arenas.padded_room.PaddedRoom( room_size=room_size, num_objects=num_objects, pad_with_walls=True) arena = locomotion_arenas.MazeWithTargets( maze=text_maze, skybox_texture=skybox, wall_textures=wall, floor_textures=floor) boxes = [] for _ in range(n_boxes): boxes.append( manipulation_props.BoxWithSites(mass=1.5, half_lengths=[0.5, 0.5, 0.5])) targets = [] for _ in range(n_targets): targets.append( props.PositionDetector( pos=[0, 0, 0.5], size=[0.5, 0.5, 0.5], inverted=False, visible=True)) predicates = [] if include_gtt_predicates: predicates.append( predicates_module.MoveWalkerToRandomTarget( walker=walker, targets=targets)) if include_move_box_predicates: for box_idx in range(len(boxes)): predicates.append( predicates_module.MoveBoxToRandomTarget( walker=walker, box=boxes[box_idx], box_index=box_idx, targets=targets)) task = PredicateTask( walker=walker, maze_arena=arena, predicates=predicates, props=boxes, targets=targets, max_num_predicates=max_num_predicates, randomize_num_predicates=False, reward_scale=10., regenerate_predicates=False, physics_timestep=0.005, control_timestep=control_timestep) env = composer.Environment(task=task, time_limit=time_limit) return env def go_to_k_targets(n_targets=3, time_limit=DEFAULT_TIME_LIMIT, control_timestep=DEFAULT_CONTROL_TIMESTEP): """Loads `go_to_k_targets` task.""" return _make_predicate_task( n_boxes=0, n_targets=n_targets, include_gtt_predicates=True, include_move_box_predicates=False, max_num_predicates=1, control_timestep=control_timestep, time_limit=time_limit) def move_box(n_targets=3, time_limit=DEFAULT_TIME_LIMIT, control_timestep=DEFAULT_CONTROL_TIMESTEP): """Loads `move_box` task.""" return _make_predicate_task( n_boxes=1, n_targets=n_targets, include_gtt_predicates=False, include_move_box_predicates=True, max_num_predicates=1, control_timestep=control_timestep, time_limit=time_limit) def move_box_or_gtt(n_targets=3, time_limit=DEFAULT_TIME_LIMIT, control_timestep=DEFAULT_CONTROL_TIMESTEP): """Loads `move_box_or_gtt` task.""" return _make_predicate_task( n_boxes=1, n_targets=n_targets, include_gtt_predicates=True, include_move_box_predicates=True, max_num_predicates=1, control_timestep=control_timestep, time_limit=time_limit) def move_box_and_gtt(n_targets=3, time_limit=DEFAULT_TIME_LIMIT, control_timestep=DEFAULT_CONTROL_TIMESTEP): """Loads `move_box_or_gtt` task.""" return _make_predicate_task( n_boxes=1, n_targets=n_targets, include_gtt_predicates=True, include_move_box_predicates=True, max_num_predicates=2, control_timestep=control_timestep, time_limit=time_limit) ================================================ FILE: byol/README.md ================================================ # Bootstrap Your Own Latent This is the implementation of the pre-training and linear evaluation pipeline of BYOL - https://arxiv.org/abs/2006.07733. Using this implementation should achieve a top-1 accuracy on Imagenet between 74.0% and 74.5% after about 8h of training using 512 Cloud TPU v3. The main pretraining module is `byol_experiment.py`. By default it uses BYOL to pretrain a Resnet-50 on Imagenet. In parallel, we train a classifier on top of the representation to assess its performance during training. This classifier does not back-propagate any gradient to the ResNet-50. The evaluation module is `eval_experiment.py`. It evaluates the performance of the representation learnt by BYOL (using a given checkpoint). ## Setup To set up a Python virtual environment with the required dependencies, run: ```shell python3 -m venv byol_env source byol_env/bin/activate pip install --upgrade pip pip install -r byol/requirements.txt ``` The code uses `tensorflow_datasets` to load the Imagenet dataset. Manual download may be required; see https://www.tensorflow.org/datasets/catalog/imagenet2012 for details. ## Running a short pre-training locally To run a short (40 epochs) pre-training experiment on a local machine, use: ```shell mkdir /tmp/byol_checkpoints python -m byol.main_loop \ --experiment_mode='pretrain' \ --worker_mode='train' \ --checkpoint_root='/tmp/byol_checkpoints' \ --pretrain_epochs=40 ``` ## Full pipeline and presets The various parts of the pipeline can be run using: ```shell python -m byol.main_loop \ --experiment_mode=<'pretrain' or 'linear-eval'> \ --worker_mode=<'train' or 'eval'> \ --checkpoint_root= \ --pretrain_epochs=<40, 100, 300 or 1000> ``` ### Pretraining Setting `--experiment_mode=pretrain` will configure the main loop for pretraining; we provide presets for 40, 100, 300 and 1000 epochs. Use `--worker_mode=train` for a training job, which will regularly save checkpoints under `/pretrain.pkl`. To monitor the progress of the pretraining, you can run a second worker (using `--worker_mode=eval`) with the same `checkpoint_root` setting. This worker will regularly load the checkpoint and evaluate the performance of a linear classifier (trained by the pretraining `train` worker) on the `TEST` set. Note that the default settings are set for large-scale training on Cloud TPUs, with a total batch size of 4096. To avoid the need to re-run the full experiment, we provide the following pre-trained checkpoints: - [ResNet-50 1x](https://storage.googleapis.com/deepmind-byol/checkpoints/pretrain_res50x1.pkl) (570 MB): should evaluate to ~74.4% top-1 accuracy. - [ResNet-200 2x](https://storage.googleapis.com/deepmind-byol/checkpoints/pretrain_res200x2.pkl) (4.6GB): should evaluate to ~79.6% top-1 accuracy. ### Linear evaluation Setting `--experiment_mode=linear-eval` will configure the main loop for linear evaluation; we provide presets for 80 epochs. Use `--worker_mode=train` for a training job, which will load the encoder weights from an existing checkpoint (form a pretrain experiment) located at `/pretrain.pkl`, and train a linear classifier on top of this encoder. The weights from the linear classifier trained in the pretraining phase will be discarded. The training job will regularly save checkpoints under `/linear-eval.pkl`. You can run a second worker (using `--worker_mode=eval`) with the same `checkpoint_root` setting to regularly load the checkpoint and evaluate the performance of the classifier (trained by the linear-eval `train` worker) on the test set. Note that the above will run a simplified version of the linear evaluation pipeline described in the paper, with a single value of the base learning rate and without using a validation set. To fully reproduce the results from the paper, one should run 5 instances of the linear-eval `train` worker (using only the `TRAIN` subset, and each using a different `checkpoint_root`), run the `eval` worker (using only the `VALID` subset) for each checkpoint, then run a final `eval` worker on the `TEST` set. ### Note on batch normalization We found that using [Goyal et al.'s](https://arxiv.org/abs/1706.02677) initialization for the batch-normalization (i.e., initializing the scaling coefficient gamma to 0 in the last batchnorm of each residual block) led to more stable training, but slightly harms BYOL's performance for very large networks (e.g., `ResNet-50 (3x)`, `ResNet-200 (2x)`). We didn't observe any change in performance for smaller networks (`ResNet-50 (1x)` and `(2x)`). Results in the paper were obtained *without* this modified initialization, i.e. using Haiku's default of $\gamma = 1$. To fully reproduce, please remove the `scale_init` argument in Haiku's ResNet [BlockV1](https://github.com/deepmind/dm-haiku/blob/0673817149470d19d4c03de4a45e6409f214b61d/haiku/_src/nets/resnet.py#L99). ## Running on GCP Notice: we currently do not recommend running the full experiment on public Cloud TPUs. We provide an alternative small-scale GPU setup in the next section. The experiments from the paper were run on Google's internal infrastructure. Unfortunately, training JAX models on publicly available Cloud TPUs is currently in its early stages; in particular, we found the learning to be heavily bottlenecked by the data loading pipeline, resulting in a significantly slower training. We will update the code and instructions below once the limitation is addressed. To train the model on TPU using Google Compute Engine, please follow the instructions at https://cloud.google.com/tpu/docs/imagenet-setup to first download and preprocess the ImageNet dataset and upload it to a Cloud Storage Bucket. From a GCE VM, you can check that `tensorflow_datasets` can correctly load the dataset by running: ```python import tensorflow_datasets as tfds tfds.load('imagenet2012', data_dir='gs://') ``` To learn how to use JAX with Cloud TPUs, please follow the instructions here: https://github.com/google/jax/tree/master/cloud_tpu_colabs. ## Setup for fast iteration In order to make reproduction easier, it is possible to change the training setup to use the smaller [imagenette](https://github.com/fastai/imagenette) dataset (9469 training images with 10 classes). The following setup and hyperparameters can be used on a machine with a single V100 GPU: - in `utils/dataset.py`: - update `Split.num_examples` with the figures from [tfds](https://www.tensorflow.org/datasets/catalog/imagenette) (with `Split.VALID: 0`) - use `imagenette/160px-v2` in the call to `tfds.load` - use 128x128 px images (_i.e._, replace all instances of `224` by `128`) - it doesn't seem necessary to change the color normalization (make sure to not replace the value `0.224` by mistake in the previous step). - in `configs/byol.py`, use: - `num_classes`: `10` - `network_config.encoder`: `ResNet18` - `optimizer_config.weight_decay`: `1e-6` - `lr_schedule_config.base_learning_rate`: `2.0` - `evaluation_config.batch_size`: `25` - other parameters unchanged. You can then run: ```shell mkdir /tmp/byol_checkpoints python -m byol.main_loop \ --experiment_mode='pretrain' \ --worker_mode='train' \ --checkpoint_root='/tmp/byol_checkpoints' \ --batch_size=256 \ --pretrain_epochs=1000 ``` With these settings, BYOL should achieve ~92.3% top-1 accuracy (for the *online* classifier) in roughly 4 hours. Note that the above parameters were not finely tuned and may not be optimal. ## Additional checkpoints Alongside with the pretrained ResNet-50 and ResNet-200 2x, we provide the following checkpoints from our ablation study. They all correspond to a ResNet-50 1x pre-trained over 300 epochs and were randomly selected within the three seeds; file size is roughly 640MB each. - [Baseline](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_baseline.pkl) - Smaller batch sizes (figure 3a): - [Batch size 2048](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_batchsize_2048.pkl) - [Batch size 1024](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_batchsize_1024.pkl) - [Batch size 512](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_batchsize_512.pkl) - [Batch size 256](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_batchsize_256.pkl) - [Batch size 128](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_batchsize_128.pkl) - [Batch size 64](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_batchsize_64.pkl) - Ablation on transformations (figure 3b): - [Remove grayscale](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_no_grayscale.pkl) - [Remove color](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_no_color.pkl) - [Crop and blur only](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_crop_and_blur_only.pkl) - [Crop only](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_crop_only.pkl) - (from Table 18) [Crop and color only](https://storage.googleapis.com/deepmind-byol/checkpoints/ablations/res50x1_crop_and_color_only.pkl) ## License While the code is licensed under the Apache 2.0 License, the checkpoints weights are made available for non-commercial use only under the terms of the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license. You can find details at: https://creativecommons.org/licenses/by-nc/4.0/legalcode. ================================================ FILE: byol/byol_experiment.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """BYOL pre-training implementation. Use this experiment to pre-train a self-supervised representation. """ import functools from typing import Any, Generator, Mapping, NamedTuple, Text, Tuple, Union from absl import logging from acme.jax import utils as acme_utils import haiku as hk import jax import jax.numpy as jnp import numpy as np import optax from byol.utils import augmentations from byol.utils import checkpointing from byol.utils import dataset from byol.utils import helpers from byol.utils import networks from byol.utils import optimizers from byol.utils import schedules # Type declarations. LogsDict = Mapping[Text, jnp.ndarray] class _ByolExperimentState(NamedTuple): """Byol's model and optimization parameters and state.""" online_params: hk.Params target_params: hk.Params online_state: hk.State target_state: hk.State opt_state: optimizers.LarsState class ByolExperiment: """Byol's training and evaluation component definition.""" def __init__( self, random_seed: int, num_classes: int, batch_size: int, max_steps: int, enable_double_transpose: bool, base_target_ema: float, network_config: Mapping[Text, Any], optimizer_config: Mapping[Text, Any], lr_schedule_config: Mapping[Text, Any], evaluation_config: Mapping[Text, Any], checkpointing_config: Mapping[Text, Any]): """Constructs the experiment. Args: random_seed: the random seed to use when initializing network weights. num_classes: the number of classes; used for the online evaluation. batch_size: the total batch size; should be a multiple of the number of available accelerators. max_steps: the number of training steps; used for the lr/target network ema schedules. enable_double_transpose: see dataset.py; only has effect on TPU. base_target_ema: the initial value for the ema decay rate of the target network. network_config: the configuration for the network. optimizer_config: the configuration for the optimizer. lr_schedule_config: the configuration for the learning rate schedule. evaluation_config: the evaluation configuration. checkpointing_config: the configuration for checkpointing. """ self._random_seed = random_seed self._enable_double_transpose = enable_double_transpose self._num_classes = num_classes self._lr_schedule_config = lr_schedule_config self._batch_size = batch_size self._max_steps = max_steps self._base_target_ema = base_target_ema self._optimizer_config = optimizer_config self._evaluation_config = evaluation_config # Checkpointed experiment state. self._byol_state = None # Input pipelines. self._train_input = None self._eval_input = None # build the transformed ops forward_fn = functools.partial(self._forward, **network_config) self.forward = hk.without_apply_rng(hk.transform_with_state(forward_fn)) # training can handle multiple devices, thus the pmap self.update_pmap = jax.pmap(self._update_fn, axis_name='i') # evaluation can only handle single device self.eval_batch_jit = jax.jit(self._eval_batch) self._checkpointer = checkpointing.Checkpointer(**checkpointing_config) def _forward( self, inputs: dataset.Batch, projector_hidden_size: int, projector_output_size: int, predictor_hidden_size: int, encoder_class: Text, encoder_config: Mapping[Text, Any], bn_config: Mapping[Text, Any], is_training: bool, ) -> Mapping[Text, jnp.ndarray]: """Forward application of byol's architecture. Args: inputs: A batch of data, i.e. a dictionary, with either two keys, (`images` and `labels`) or three keys (`view1`, `view2`, `labels`). projector_hidden_size: hidden size of the projector MLP. projector_output_size: output size of the projector and predictor MLPs. predictor_hidden_size: hidden size of the predictor MLP. encoder_class: type of the encoder (should match a class in utils/networks). encoder_config: passed to the encoder constructor. bn_config: passed to the hk.BatchNorm constructors. is_training: Training or evaluating the model? When True, inputs must contain keys `view1` and `view2`. When False, inputs must contain key `images`. Returns: All outputs of the model, i.e. a dictionary with projection, prediction and logits keys, for either the two views, or the image. """ encoder = getattr(networks, encoder_class) net = encoder( num_classes=None, # Don't build the final linear layer bn_config=bn_config, **encoder_config) projector = networks.MLP( name='projector', hidden_size=projector_hidden_size, output_size=projector_output_size, bn_config=bn_config) predictor = networks.MLP( name='predictor', hidden_size=predictor_hidden_size, output_size=projector_output_size, bn_config=bn_config) classifier = hk.Linear( output_size=self._num_classes, name='classifier') def apply_once_fn(images: jnp.ndarray, suffix: Text = ''): images = dataset.normalize_images(images) embedding = net(images, is_training=is_training) proj_out = projector(embedding, is_training) pred_out = predictor(proj_out, is_training) # Note the stop_gradient: label information is not leaked into the # main network. classif_out = classifier(jax.lax.stop_gradient(embedding)) outputs = {} outputs['projection' + suffix] = proj_out outputs['prediction' + suffix] = pred_out outputs['logits' + suffix] = classif_out return outputs if is_training: outputs_view1 = apply_once_fn(inputs['view1'], '_view1') # pytype: disable=wrong-arg-types # jax-ndarray outputs_view2 = apply_once_fn(inputs['view2'], '_view2') # pytype: disable=wrong-arg-types # jax-ndarray return {**outputs_view1, **outputs_view2} else: return apply_once_fn(inputs['images'], '') # pytype: disable=wrong-arg-types # jax-ndarray def _optimizer(self, learning_rate: float) -> optax.GradientTransformation: """Build optimizer from config.""" return optimizers.lars( learning_rate, weight_decay_filter=optimizers.exclude_bias_and_norm, lars_adaptation_filter=optimizers.exclude_bias_and_norm, **self._optimizer_config) def loss_fn( self, online_params: hk.Params, target_params: hk.Params, online_state: hk.State, target_state: hk.Params, rng: jnp.ndarray, inputs: dataset.Batch, ) -> Tuple[jnp.ndarray, Tuple[Mapping[Text, hk.State], LogsDict]]: """Compute BYOL's loss function. Args: online_params: parameters of the online network (the loss is later differentiated with respect to the online parameters). target_params: parameters of the target network. online_state: internal state of online network. target_state: internal state of target network. rng: random number generator state. inputs: inputs, containing two batches of crops from the same images, view1 and view2 and labels Returns: BYOL's loss, a mapping containing the online and target networks updated states after processing inputs, and various logs. """ if self._should_transpose_images(): inputs = dataset.transpose_images(inputs) inputs = augmentations.postprocess(inputs, rng) labels = inputs['labels'] online_network_out, online_state = self.forward.apply( params=online_params, state=online_state, inputs=inputs, is_training=True) target_network_out, target_state = self.forward.apply( params=target_params, state=target_state, inputs=inputs, is_training=True) # Representation loss # The stop_gradient is not necessary as we explicitly take the gradient with # respect to online parameters only in `optax.apply_updates`. We leave it to # indicate that gradients are not backpropagated through the target network. repr_loss = helpers.regression_loss( online_network_out['prediction_view1'], jax.lax.stop_gradient(target_network_out['projection_view2'])) repr_loss = repr_loss + helpers.regression_loss( online_network_out['prediction_view2'], jax.lax.stop_gradient(target_network_out['projection_view1'])) repr_loss = jnp.mean(repr_loss) # Classification loss (with gradient flows stopped from flowing into the # ResNet). This is used to provide an evaluation of the representation # quality during training. classif_loss = helpers.softmax_cross_entropy( logits=online_network_out['logits_view1'], labels=jax.nn.one_hot(labels, self._num_classes)) top1_correct = helpers.topk_accuracy( online_network_out['logits_view1'], inputs['labels'], topk=1, ) top5_correct = helpers.topk_accuracy( online_network_out['logits_view1'], inputs['labels'], topk=5, ) top1_acc = jnp.mean(top1_correct) top5_acc = jnp.mean(top5_correct) classif_loss = jnp.mean(classif_loss) loss = repr_loss + classif_loss logs = dict( loss=loss, repr_loss=repr_loss, classif_loss=classif_loss, top1_accuracy=top1_acc, top5_accuracy=top5_acc, ) return loss, (dict(online_state=online_state, target_state=target_state), logs) def _should_transpose_images(self): """Should we transpose images (saves host-to-device time on TPUs).""" return (self._enable_double_transpose and jax.local_devices()[0].platform == 'tpu') def _update_fn( self, byol_state: _ByolExperimentState, global_step: jnp.ndarray, rng: jnp.ndarray, inputs: dataset.Batch, ) -> Tuple[_ByolExperimentState, LogsDict]: """Update online and target parameters. Args: byol_state: current BYOL state. global_step: current training step. rng: current random number generator inputs: inputs, containing two batches of crops from the same images, view1 and view2 and labels Returns: Tuple containing the updated Byol state after processing the inputs, and various logs. """ online_params = byol_state.online_params target_params = byol_state.target_params online_state = byol_state.online_state target_state = byol_state.target_state opt_state = byol_state.opt_state # update online network grad_fn = jax.grad(self.loss_fn, argnums=0, has_aux=True) grads, (net_states, logs) = grad_fn(online_params, target_params, online_state, target_state, rng, inputs) # cross-device grad and logs reductions grads = jax.tree_map(lambda v: jax.lax.pmean(v, axis_name='i'), grads) logs = jax.tree_map(lambda x: jax.lax.pmean(x, axis_name='i'), logs) learning_rate = schedules.learning_schedule( global_step, batch_size=self._batch_size, total_steps=self._max_steps, **self._lr_schedule_config) updates, opt_state = self._optimizer(learning_rate).update( grads, opt_state, online_params) online_params = optax.apply_updates(online_params, updates) # update target network tau = schedules.target_ema( global_step, base_ema=self._base_target_ema, max_steps=self._max_steps) target_params = jax.tree_map(lambda x, y: x + (1 - tau) * (y - x), target_params, online_params) logs['tau'] = tau logs['learning_rate'] = learning_rate return _ByolExperimentState( online_params=online_params, target_params=target_params, online_state=net_states['online_state'], target_state=net_states['target_state'], opt_state=opt_state), logs def _make_initial_state( self, rng: jnp.ndarray, dummy_input: dataset.Batch, ) -> _ByolExperimentState: """BYOL's _ByolExperimentState initialization. Args: rng: random number generator used to initialize parameters. If working in a multi device setup, this need to be a ShardedArray. dummy_input: a dummy image, used to compute intermediate outputs shapes. Returns: Initial Byol state. """ rng_online, rng_target = jax.random.split(rng) if self._should_transpose_images(): dummy_input = dataset.transpose_images(dummy_input) # Online and target parameters are initialized using different rngs, # in our experiments we did not notice a significant different with using # the same rng for both. online_params, online_state = self.forward.init( rng_online, dummy_input, is_training=True, ) target_params, target_state = self.forward.init( rng_target, dummy_input, is_training=True, ) opt_state = self._optimizer(0).init(online_params) return _ByolExperimentState( online_params=online_params, target_params=target_params, opt_state=opt_state, online_state=online_state, target_state=target_state, ) def step(self, *, global_step: jnp.ndarray, rng: jnp.ndarray) -> Mapping[Text, np.ndarray]: """Performs a single training step.""" if self._train_input is None: self._initialize_train() inputs = next(self._train_input) self._byol_state, scalars = self.update_pmap( self._byol_state, global_step=global_step, rng=rng, inputs=inputs, ) return helpers.get_first(scalars) def save_checkpoint(self, step: int, rng: jnp.ndarray): self._checkpointer.maybe_save_checkpoint( self._byol_state, step=step, rng=rng, is_final=step >= self._max_steps) def load_checkpoint(self) -> Union[Tuple[int, jnp.ndarray], None]: checkpoint_data = self._checkpointer.maybe_load_checkpoint() if checkpoint_data is None: return None self._byol_state, step, rng = checkpoint_data return step, rng def _initialize_train(self): """Initialize train. This includes initializing the input pipeline and Byol's state. """ self._train_input = acme_utils.prefetch(self._build_train_input()) # Check we haven't already restored params if self._byol_state is None: logging.info( 'Initializing parameters rather than restoring from checkpoint.') # initialize Byol and setup optimizer state inputs = next(self._train_input) init_byol = jax.pmap(self._make_initial_state, axis_name='i') # Init uses the same RNG key on all hosts+devices to ensure everyone # computes the same initial state and parameters. init_rng = jax.random.PRNGKey(self._random_seed) init_rng = helpers.bcast_local_devices(init_rng) self._byol_state = init_byol(rng=init_rng, dummy_input=inputs) def _build_train_input(self) -> Generator[dataset.Batch, None, None]: """Loads the (infinitely looping) dataset iterator.""" num_devices = jax.device_count() global_batch_size = self._batch_size per_device_batch_size, ragged = divmod(global_batch_size, num_devices) if ragged: raise ValueError( f'Global batch size {global_batch_size} must be divisible by ' f'num devices {num_devices}') return dataset.load( dataset.Split.TRAIN_AND_VALID, preprocess_mode=dataset.PreprocessMode.PRETRAIN, transpose=self._should_transpose_images(), batch_dims=[jax.local_device_count(), per_device_batch_size]) def _eval_batch( self, params: hk.Params, state: hk.State, batch: dataset.Batch, ) -> Mapping[Text, jnp.ndarray]: """Evaluates a batch. Args: params: Parameters of the model to evaluate. Typically Byol's online parameters. state: State of the model to evaluate. Typically Byol's online state. batch: Batch of data to evaluate (must contain keys images and labels). Returns: Unreduced evaluation loss and top1 accuracy on the batch. """ if self._should_transpose_images(): batch = dataset.transpose_images(batch) outputs, _ = self.forward.apply(params, state, batch, is_training=False) logits = outputs['logits'] labels = hk.one_hot(batch['labels'], self._num_classes) loss = helpers.softmax_cross_entropy(logits, labels, reduction=None) top1_correct = helpers.topk_accuracy(logits, batch['labels'], topk=1) top5_correct = helpers.topk_accuracy(logits, batch['labels'], topk=5) # NOTE: Returned values will be summed and finally divided by num_samples. return { 'eval_loss': loss, 'top1_accuracy': top1_correct, 'top5_accuracy': top5_correct, } def _eval_epoch(self, subset: Text, batch_size: int): """Evaluates an epoch.""" num_samples = 0. summed_scalars = None params = helpers.get_first(self._byol_state.online_params) state = helpers.get_first(self._byol_state.online_state) split = dataset.Split.from_string(subset) dataset_iterator = dataset.load( split, preprocess_mode=dataset.PreprocessMode.EVAL, transpose=self._should_transpose_images(), batch_dims=[batch_size]) for inputs in dataset_iterator: num_samples += inputs['labels'].shape[0] scalars = self.eval_batch_jit(params, state, inputs) # Accumulate the sum of scalars for each step. scalars = jax.tree_map(lambda x: jnp.sum(x, axis=0), scalars) if summed_scalars is None: summed_scalars = scalars else: summed_scalars = jax.tree_map(jnp.add, summed_scalars, scalars) mean_scalars = jax.tree_map(lambda x: x / num_samples, summed_scalars) return mean_scalars def evaluate(self, global_step, **unused_args): """Thin wrapper around _eval_epoch.""" global_step = np.array(helpers.get_first(global_step)) scalars = jax.device_get(self._eval_epoch(**self._evaluation_config)) logging.info('[Step %d] Eval scalars: %s', global_step, scalars) return scalars ================================================ FILE: byol/configs/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: byol/configs/byol.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Config file for BYOL experiment.""" from byol.utils import dataset # Preset values for certain number of training epochs. _LR_PRESETS = {40: 0.45, 100: 0.45, 300: 0.3, 1000: 0.2} _WD_PRESETS = {40: 1e-6, 100: 1e-6, 300: 1e-6, 1000: 1.5e-6} _EMA_PRESETS = {40: 0.97, 100: 0.99, 300: 0.99, 1000: 0.996} def get_config(num_epochs: int, batch_size: int): """Return config object, containing all hyperparameters for training.""" train_images_per_epoch = dataset.Split.TRAIN_AND_VALID.num_examples assert num_epochs in [40, 100, 300, 1000] config = dict( random_seed=0, num_classes=1000, batch_size=batch_size, max_steps=num_epochs * train_images_per_epoch // batch_size, enable_double_transpose=True, base_target_ema=_EMA_PRESETS[num_epochs], network_config=dict( projector_hidden_size=4096, projector_output_size=256, predictor_hidden_size=4096, encoder_class='ResNet50', # Should match a class in utils/networks. encoder_config=dict( resnet_v2=False, width_multiplier=1), bn_config={ 'decay_rate': .9, 'eps': 1e-5, # Accumulate batchnorm statistics across devices. # This should be equal to the `axis_name` argument passed # to jax.pmap. 'cross_replica_axis': 'i', 'create_scale': True, 'create_offset': True, }), optimizer_config=dict( weight_decay=_WD_PRESETS[num_epochs], eta=1e-3, momentum=.9, ), lr_schedule_config=dict( base_learning_rate=_LR_PRESETS[num_epochs], warmup_steps=10 * train_images_per_epoch // batch_size, ), evaluation_config=dict( subset='test', batch_size=100, ), checkpointing_config=dict( use_checkpointing=True, checkpoint_dir='/tmp/byol', save_checkpoint_interval=300, filename='pretrain.pkl' ), ) return config ================================================ FILE: byol/configs/eval.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Config file for evaluation experiment.""" from typing import Text from byol.utils import dataset def get_config(checkpoint_to_evaluate: Text, batch_size: int): """Return config object for training.""" train_images_per_epoch = dataset.Split.TRAIN_AND_VALID.num_examples config = dict( random_seed=0, enable_double_transpose=True, max_steps=80 * train_images_per_epoch // batch_size, num_classes=1000, batch_size=batch_size, checkpoint_to_evaluate=checkpoint_to_evaluate, # If True, allows training without loading a checkpoint. allow_train_from_scratch=False, # Whether the backbone should be frozen (linear evaluation) or # trainable (fine-tuning). freeze_backbone=True, optimizer_config=dict( momentum=0.9, nesterov=True, ), lr_schedule_config=dict( base_learning_rate=0.2, warmup_steps=0, ), network_config=dict( # Should match the evaluated checkpoint encoder_class='ResNet50', # Should match a class in utils/networks. encoder_config=dict( resnet_v2=False, width_multiplier=1), bn_decay_rate=0.9, ), evaluation_config=dict( subset='test', batch_size=100, ), checkpointing_config=dict( use_checkpointing=True, checkpoint_dir='/tmp/byol', save_checkpoint_interval=300, filename='linear-eval.pkl' ), ) return config ================================================ FILE: byol/eval_experiment.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Linear evaluation or fine-tuning pipeline. Use this experiment to evaluate a checkpoint from byol_experiment. """ import functools from typing import Any, Generator, Mapping, NamedTuple, Optional, Text, Tuple, Union from absl import logging from acme.jax import utils as acme_utils import haiku as hk import jax import jax.numpy as jnp import numpy as np import optax from byol.utils import checkpointing from byol.utils import dataset from byol.utils import helpers from byol.utils import networks from byol.utils import schedules # Type declarations. OptState = Tuple[optax.TraceState, optax.ScaleByScheduleState, optax.ScaleState] LogsDict = Mapping[Text, jnp.ndarray] class _EvalExperimentState(NamedTuple): backbone_params: hk.Params classif_params: hk.Params backbone_state: hk.State backbone_opt_state: Union[None, OptState] classif_opt_state: OptState class EvalExperiment: """Linear evaluation experiment.""" def __init__( self, random_seed: int, num_classes: int, batch_size: int, max_steps: int, enable_double_transpose: bool, checkpoint_to_evaluate: Optional[Text], allow_train_from_scratch: bool, freeze_backbone: bool, network_config: Mapping[Text, Any], optimizer_config: Mapping[Text, Any], lr_schedule_config: Mapping[Text, Any], evaluation_config: Mapping[Text, Any], checkpointing_config: Mapping[Text, Any]): """Constructs the experiment. Args: random_seed: the random seed to use when initializing network weights. num_classes: the number of classes; used for the online evaluation. batch_size: the total batch size; should be a multiple of the number of available accelerators. max_steps: the number of training steps; used for the lr/target network ema schedules. enable_double_transpose: see dataset.py; only has effect on TPU. checkpoint_to_evaluate: the path to the checkpoint to evaluate. allow_train_from_scratch: whether to allow training without specifying a checkpoint to evaluate (training from scratch). freeze_backbone: whether the backbone resnet should remain frozen (linear evaluation) or be trainable (fine-tuning). network_config: the configuration for the network. optimizer_config: the configuration for the optimizer. lr_schedule_config: the configuration for the learning rate schedule. evaluation_config: the evaluation configuration. checkpointing_config: the configuration for checkpointing. """ self._random_seed = random_seed self._enable_double_transpose = enable_double_transpose self._num_classes = num_classes self._lr_schedule_config = lr_schedule_config self._batch_size = batch_size self._max_steps = max_steps self._checkpoint_to_evaluate = checkpoint_to_evaluate self._allow_train_from_scratch = allow_train_from_scratch self._freeze_backbone = freeze_backbone self._optimizer_config = optimizer_config self._evaluation_config = evaluation_config # Checkpointed experiment state. self._experiment_state = None # Input pipelines. self._train_input = None self._eval_input = None backbone_fn = functools.partial(self._backbone_fn, **network_config) self.forward_backbone = hk.without_apply_rng( hk.transform_with_state(backbone_fn)) self.forward_classif = hk.without_apply_rng(hk.transform(self._classif_fn)) self.update_pmap = jax.pmap(self._update_func, axis_name='i') self.eval_batch_jit = jax.jit(self._eval_batch) self._is_backbone_training = not self._freeze_backbone self._checkpointer = checkpointing.Checkpointer(**checkpointing_config) def _should_transpose_images(self): """Should we transpose images (saves host-to-device time on TPUs).""" return (self._enable_double_transpose and jax.local_devices()[0].platform == 'tpu') def _backbone_fn( self, inputs: dataset.Batch, encoder_class: Text, encoder_config: Mapping[Text, Any], bn_decay_rate: float, is_training: bool, ) -> jnp.ndarray: """Forward of the encoder (backbone).""" bn_config = {'decay_rate': bn_decay_rate} encoder = getattr(networks, encoder_class) model = encoder( None, bn_config=bn_config, **encoder_config) if self._should_transpose_images(): inputs = dataset.transpose_images(inputs) images = dataset.normalize_images(inputs['images']) return model(images, is_training=is_training) def _classif_fn( self, embeddings: jnp.ndarray, ) -> jnp.ndarray: classifier = hk.Linear(output_size=self._num_classes) return classifier(embeddings) # _ _ # | |_ _ __ __ _(_)_ __ # | __| '__/ _` | | '_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step(self, *, global_step: jnp.ndarray, rng: jnp.ndarray) -> Mapping[Text, np.ndarray]: """Performs a single training step.""" if self._train_input is None: self._initialize_train(rng) inputs = next(self._train_input) self._experiment_state, scalars = self.update_pmap( self._experiment_state, global_step, inputs) scalars = helpers.get_first(scalars) return scalars def save_checkpoint(self, step: int, rng: jnp.ndarray): self._checkpointer.maybe_save_checkpoint( self._experiment_state, step=step, rng=rng, is_final=step >= self._max_steps) def load_checkpoint(self) -> Union[Tuple[int, jnp.ndarray], None]: checkpoint_data = self._checkpointer.maybe_load_checkpoint() if checkpoint_data is None: return None self._experiment_state, step, rng = checkpoint_data return step, rng def _initialize_train(self, rng): """BYOL's _ExperimentState initialization. Args: rng: random number generator used to initialize parameters. If working in a multi device setup, this need to be a ShardedArray. dummy_input: a dummy image, used to compute intermediate outputs shapes. Returns: Initial EvalExperiment state. Raises: RuntimeError: invalid or empty checkpoint. """ self._train_input = acme_utils.prefetch(self._build_train_input()) # Check we haven't already restored params if self._experiment_state is None: inputs = next(self._train_input) if self._checkpoint_to_evaluate is not None: # Load params from checkpoint checkpoint_data = checkpointing.load_checkpoint( self._checkpoint_to_evaluate) if checkpoint_data is None: raise RuntimeError('Invalid checkpoint.') backbone_params = checkpoint_data['experiment_state'].online_params backbone_state = checkpoint_data['experiment_state'].online_state backbone_params = helpers.bcast_local_devices(backbone_params) backbone_state = helpers.bcast_local_devices(backbone_state) else: if not self._allow_train_from_scratch: raise ValueError( 'No checkpoint specified, but `allow_train_from_scratch` ' 'set to False') # Initialize with random parameters logging.info( 'No checkpoint specified, initializing the networks from scratch ' '(dry run mode)') backbone_params, backbone_state = jax.pmap( functools.partial(self.forward_backbone.init, is_training=True), axis_name='i')(rng=rng, inputs=inputs) init_experiment = jax.pmap(self._make_initial_state, axis_name='i') # Init uses the same RNG key on all hosts+devices to ensure everyone # computes the same initial state and parameters. init_rng = jax.random.PRNGKey(self._random_seed) init_rng = helpers.bcast_local_devices(init_rng) self._experiment_state = init_experiment( rng=init_rng, dummy_input=inputs, backbone_params=backbone_params, backbone_state=backbone_state) # Clear the backbone optimizer's state when the backbone is frozen. if self._freeze_backbone: self._experiment_state = _EvalExperimentState( backbone_params=self._experiment_state.backbone_params, classif_params=self._experiment_state.classif_params, backbone_state=self._experiment_state.backbone_state, backbone_opt_state=None, classif_opt_state=self._experiment_state.classif_opt_state, ) def _make_initial_state( self, rng: jnp.ndarray, dummy_input: dataset.Batch, backbone_params: hk.Params, backbone_state: hk.Params, ) -> _EvalExperimentState: """_EvalExperimentState initialization.""" # Initialize the backbone params # Always create the batchnorm weights (is_training=True), they will be # overwritten when loading the checkpoint. embeddings, _ = self.forward_backbone.apply( backbone_params, backbone_state, dummy_input, is_training=True) backbone_opt_state = self._optimizer(0.).init(backbone_params) # Initialize the classifier params and optimizer_state classif_params = self.forward_classif.init(rng, embeddings) classif_opt_state = self._optimizer(0.).init(classif_params) return _EvalExperimentState( # pytype: disable=wrong-arg-types # numpy-scalars backbone_params=backbone_params, classif_params=classif_params, backbone_state=backbone_state, backbone_opt_state=backbone_opt_state, classif_opt_state=classif_opt_state, ) def _build_train_input(self) -> Generator[dataset.Batch, None, None]: """See base class.""" num_devices = jax.device_count() global_batch_size = self._batch_size per_device_batch_size, ragged = divmod(global_batch_size, num_devices) if ragged: raise ValueError( f'Global batch size {global_batch_size} must be divisible by ' f'num devices {num_devices}') return dataset.load( dataset.Split.TRAIN_AND_VALID, preprocess_mode=dataset.PreprocessMode.LINEAR_TRAIN, transpose=self._should_transpose_images(), batch_dims=[jax.local_device_count(), per_device_batch_size]) def _optimizer(self, learning_rate: float): """Build optimizer from config.""" return optax.sgd(learning_rate, **self._optimizer_config) def _loss_fn( self, backbone_params: hk.Params, classif_params: hk.Params, backbone_state: hk.State, inputs: dataset.Batch, ) -> Tuple[jnp.ndarray, Tuple[jnp.ndarray, hk.State]]: """Compute the classification loss function. Args: backbone_params: parameters of the encoder network. classif_params: parameters of the linear classifier. backbone_state: internal state of encoder network. inputs: inputs, containing `images` and `labels`. Returns: The classification loss and various logs. """ embeddings, backbone_state = self.forward_backbone.apply( backbone_params, backbone_state, inputs, is_training=not self._freeze_backbone) logits = self.forward_classif.apply(classif_params, embeddings) labels = hk.one_hot(inputs['labels'], self._num_classes) loss = helpers.softmax_cross_entropy(logits, labels, reduction='mean') scaled_loss = loss / jax.device_count() return scaled_loss, (loss, backbone_state) def _update_func( self, experiment_state: _EvalExperimentState, global_step: jnp.ndarray, inputs: dataset.Batch, ) -> Tuple[_EvalExperimentState, LogsDict]: """Applies an update to parameters and returns new state.""" # This function computes the gradient of the first output of loss_fn and # passes through the other arguments unchanged. # Gradient of the first output of _loss_fn wrt the backbone (arg 0) and the # classifier parameters (arg 1). The auxiliary outputs are returned as-is. grad_loss_fn = jax.grad(self._loss_fn, has_aux=True, argnums=(0, 1)) grads, aux_outputs = grad_loss_fn( experiment_state.backbone_params, experiment_state.classif_params, experiment_state.backbone_state, inputs, ) backbone_grads, classifier_grads = grads train_loss, new_backbone_state = aux_outputs classifier_grads = jax.lax.psum(classifier_grads, axis_name='i') # Compute the decayed learning rate learning_rate = schedules.learning_schedule( global_step, batch_size=self._batch_size, total_steps=self._max_steps, **self._lr_schedule_config) # Compute and apply updates via our optimizer. classif_updates, new_classif_opt_state = \ self._optimizer(learning_rate).update( classifier_grads, experiment_state.classif_opt_state) new_classif_params = optax.apply_updates(experiment_state.classif_params, classif_updates) if self._freeze_backbone: del backbone_grads, new_backbone_state # Unused # The backbone is not updated. new_backbone_params = experiment_state.backbone_params new_backbone_opt_state = None new_backbone_state = experiment_state.backbone_state else: backbone_grads = jax.lax.psum(backbone_grads, axis_name='i') # Compute and apply updates via our optimizer. backbone_updates, new_backbone_opt_state = \ self._optimizer(learning_rate).update( backbone_grads, experiment_state.backbone_opt_state) new_backbone_params = optax.apply_updates( experiment_state.backbone_params, backbone_updates) experiment_state = _EvalExperimentState( # pytype: disable=wrong-arg-types # numpy-scalars new_backbone_params, new_classif_params, new_backbone_state, new_backbone_opt_state, new_classif_opt_state, ) # Scalars to log (note: we log the mean across all hosts/devices). scalars = {'train_loss': train_loss} scalars = jax.lax.pmean(scalars, axis_name='i') return experiment_state, scalars # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step, **unused_args): """See base class.""" global_step = np.array(helpers.get_first(global_step)) scalars = jax.device_get(self._eval_epoch(**self._evaluation_config)) logging.info('[Step %d] Eval scalars: %s', global_step, scalars) return scalars def _eval_batch( self, backbone_params: hk.Params, classif_params: hk.Params, backbone_state: hk.State, inputs: dataset.Batch, ) -> LogsDict: """Evaluates a batch.""" embeddings, backbone_state = self.forward_backbone.apply( backbone_params, backbone_state, inputs, is_training=False) logits = self.forward_classif.apply(classif_params, embeddings) labels = hk.one_hot(inputs['labels'], self._num_classes) loss = helpers.softmax_cross_entropy(logits, labels, reduction=None) top1_correct = helpers.topk_accuracy(logits, inputs['labels'], topk=1) # pytype: disable=wrong-arg-types # jax-ndarray top5_correct = helpers.topk_accuracy(logits, inputs['labels'], topk=5) # pytype: disable=wrong-arg-types # jax-ndarray # NOTE: Returned values will be summed and finally divided by num_samples. return { 'eval_loss': loss, 'top1_accuracy': top1_correct, 'top5_accuracy': top5_correct } def _eval_epoch(self, subset: Text, batch_size: int): """Evaluates an epoch.""" num_samples = 0. summed_scalars = None backbone_params = helpers.get_first(self._experiment_state.backbone_params) classif_params = helpers.get_first(self._experiment_state.classif_params) backbone_state = helpers.get_first(self._experiment_state.backbone_state) split = dataset.Split.from_string(subset) dataset_iterator = dataset.load( split, preprocess_mode=dataset.PreprocessMode.EVAL, transpose=self._should_transpose_images(), batch_dims=[batch_size]) for inputs in dataset_iterator: num_samples += inputs['labels'].shape[0] scalars = self.eval_batch_jit( backbone_params, classif_params, backbone_state, inputs, ) # Accumulate the sum of scalars for each step. scalars = jax.tree_map(lambda x: jnp.sum(x, axis=0), scalars) if summed_scalars is None: summed_scalars = scalars else: summed_scalars = jax.tree_map(jnp.add, summed_scalars, scalars) mean_scalars = jax.tree_map(lambda x: x / num_samples, summed_scalars) return mean_scalars ================================================ FILE: byol/main_loop.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training and evaluation loops for an experiment.""" import time from typing import Any, Mapping, Text, Type, Union from absl import app from absl import flags from absl import logging import jax import numpy as np from byol import byol_experiment from byol import eval_experiment from byol.configs import byol as byol_config from byol.configs import eval as eval_config flags.DEFINE_string('experiment_mode', 'pretrain', 'The experiment, pretrain or linear-eval') flags.DEFINE_string('worker_mode', 'train', 'The mode, train or eval') flags.DEFINE_string('worker_tpu_driver', '', 'The tpu driver to use') flags.DEFINE_integer('pretrain_epochs', 1000, 'Number of pre-training epochs') flags.DEFINE_integer('batch_size', 4096, 'Total batch size') flags.DEFINE_string('checkpoint_root', '/tmp/byol', 'The directory to save checkpoints to.') flags.DEFINE_integer('log_tensors_interval', 60, 'Log tensors every n seconds.') FLAGS = flags.FLAGS Experiment = Union[ Type[byol_experiment.ByolExperiment], Type[eval_experiment.EvalExperiment]] def train_loop(experiment_class: Experiment, config: Mapping[Text, Any]): """The main training loop. This loop periodically saves a checkpoint to be evaluated in the eval_loop. Args: experiment_class: the constructor for the experiment (either byol_experiment or eval_experiment). config: the experiment config. """ experiment = experiment_class(**config) rng = jax.random.PRNGKey(0) step = 0 host_id = jax.host_id() last_logging = time.time() if config['checkpointing_config']['use_checkpointing']: checkpoint_data = experiment.load_checkpoint() if checkpoint_data is None: step = 0 else: step, rng = checkpoint_data local_device_count = jax.local_device_count() while step < config['max_steps']: step_rng, rng = tuple(jax.random.split(rng)) # Broadcast the random seeds across the devices step_rng_device = jax.random.split(step_rng, num=jax.device_count()) step_rng_device = step_rng_device[ host_id * local_device_count:(host_id + 1) * local_device_count] step_device = np.broadcast_to(step, [local_device_count]) # Perform a training step and get scalars to log. scalars = experiment.step(global_step=step_device, rng=step_rng_device) # Checkpointing and logging. if config['checkpointing_config']['use_checkpointing']: experiment.save_checkpoint(step, rng) current_time = time.time() if current_time - last_logging > FLAGS.log_tensors_interval: logging.info('Step %d: %s', step, scalars) last_logging = current_time step += 1 logging.info('Saving final checkpoint') logging.info('Step %d: %s', step, scalars) experiment.save_checkpoint(step, rng) def eval_loop(experiment_class: Experiment, config: Mapping[Text, Any]): """The main evaluation loop. This loop periodically loads a checkpoint and evaluates its performance on the test set, by calling experiment.evaluate. Args: experiment_class: the constructor for the experiment (either byol_experiment or eval_experiment). config: the experiment config. """ experiment = experiment_class(**config) last_evaluated_step = -1 while True: checkpoint_data = experiment.load_checkpoint() if checkpoint_data is None: logging.info('No checkpoint found. Waiting for 10s.') time.sleep(10) continue step, _ = checkpoint_data if step <= last_evaluated_step: logging.info('Checkpoint at step %d already evaluated, waiting.', step) time.sleep(10) continue host_id = jax.host_id() local_device_count = jax.local_device_count() step_device = np.broadcast_to(step, [local_device_count]) scalars = experiment.evaluate(global_step=step_device) if host_id == 0: # Only perform logging in one host. logging.info('Evaluation at step %d: %s', step, scalars) last_evaluated_step = step if last_evaluated_step >= config['max_steps']: return def main(_): if FLAGS.worker_tpu_driver: jax.config.update('jax_xla_backend', 'tpu_driver') jax.config.update('jax_backend_target', FLAGS.worker_tpu_driver) logging.info('Backend: %s %r', FLAGS.worker_tpu_driver, jax.devices()) if FLAGS.experiment_mode == 'pretrain': experiment_class = byol_experiment.ByolExperiment config = byol_config.get_config(FLAGS.pretrain_epochs, FLAGS.batch_size) elif FLAGS.experiment_mode == 'linear-eval': experiment_class = eval_experiment.EvalExperiment config = eval_config.get_config(f'{FLAGS.checkpoint_root}/pretrain.pkl', FLAGS.batch_size) else: raise ValueError(f'Unknown experiment mode: {FLAGS.experiment_mode}') config['checkpointing_config']['checkpoint_dir'] = FLAGS.checkpoint_root # pytype: disable=unsupported-operands # dict-kwargs if FLAGS.worker_mode == 'train': train_loop(experiment_class, config) elif FLAGS.worker_mode == 'eval': eval_loop(experiment_class, config) if __name__ == '__main__': app.run(main) ================================================ FILE: byol/main_loop_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for BYOL's main training loop.""" from absl import flags from absl.testing import absltest import tensorflow_datasets as tfds from byol import byol_experiment from byol import eval_experiment from byol import main_loop from byol.configs import byol as byol_config from byol.configs import eval as eval_config FLAGS = flags.FLAGS class MainLoopTest(absltest.TestCase): def test_pretrain(self): config = byol_config.get_config(num_epochs=40, batch_size=4) temp_dir = self.create_tempdir().full_path # Override some config fields to make test lighter. config['network_config']['encoder_class'] = 'TinyResNet' config['network_config']['projector_hidden_size'] = 256 config['network_config']['predictor_hidden_size'] = 256 config['checkpointing_config']['checkpoint_dir'] = temp_dir config['evaluation_config']['batch_size'] = 16 config['max_steps'] = 16 with tfds.testing.mock_data(num_examples=64): experiment_class = byol_experiment.ByolExperiment main_loop.train_loop(experiment_class, config) main_loop.eval_loop(experiment_class, config) def test_linear_eval(self): config = eval_config.get_config(checkpoint_to_evaluate=None, batch_size=4) temp_dir = self.create_tempdir().full_path # Override some config fields to make test lighter. config['network_config']['encoder_class'] = 'TinyResNet' config['allow_train_from_scratch'] = True config['checkpointing_config']['checkpoint_dir'] = temp_dir config['evaluation_config']['batch_size'] = 16 config['max_steps'] = 16 with tfds.testing.mock_data(num_examples=64): experiment_class = eval_experiment.EvalExperiment main_loop.train_loop(experiment_class, config) main_loop.eval_loop(experiment_class, config) def test_pipeline(self): b_config = byol_config.get_config(num_epochs=40, batch_size=4) temp_dir = self.create_tempdir().full_path # Override some config fields to make test lighter. b_config['network_config']['encoder_class'] = 'TinyResNet' b_config['network_config']['projector_hidden_size'] = 256 b_config['network_config']['predictor_hidden_size'] = 256 b_config['checkpointing_config']['checkpoint_dir'] = temp_dir b_config['evaluation_config']['batch_size'] = 16 b_config['max_steps'] = 16 with tfds.testing.mock_data(num_examples=64): main_loop.train_loop(byol_experiment.ByolExperiment, b_config) e_config = eval_config.get_config( checkpoint_to_evaluate=f'{temp_dir}/pretrain.pkl', batch_size=4) # Override some config fields to make test lighter. e_config['network_config']['encoder_class'] = 'TinyResNet' e_config['allow_train_from_scratch'] = True e_config['checkpointing_config']['checkpoint_dir'] = temp_dir e_config['evaluation_config']['batch_size'] = 16 e_config['max_steps'] = 16 with tfds.testing.mock_data(num_examples=64): main_loop.train_loop(eval_experiment.EvalExperiment, e_config) if __name__ == '__main__': absltest.main() ================================================ FILE: byol/requirements.txt ================================================ dm-acme dm-haiku dm-tree jax jaxlib numpy>=1.16 optax tensorflow tensorflow_datasets ================================================ FILE: byol/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup BYOL for pip package.""" import setuptools setuptools.setup( name='byol', description='Bootstrap Your Own Latents', long_description=open('README.md').read(), author='DeepMind', author_email='no-reply@google.com', url='https://github.com/deepmind/deepmind-research/byol', install_requires=[ 'chex', 'dm-acme', 'dm-haiku', 'dm-tree', 'jax', 'jaxlib', 'numpy>=1.16', 'optax', 'tensorflow', 'tensorflow-datasets', ], package_dir={'byol': ''}, py_modules=[ 'byol.byol_experiment', 'byol.eval_experiment', 'byol.main_loop' ], packages=['byol.configs', 'byol.utils']) ================================================ FILE: byol/utils/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: byol/utils/augmentations.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Data preprocessing and augmentation.""" import functools from typing import Any, Mapping, Text import jax import jax.numpy as jnp # typing JaxBatch = Mapping[Text, jnp.ndarray] ConfigDict = Mapping[Text, Any] augment_config = dict( view1=dict( random_flip=True, # Random left/right flip color_transform=dict( apply_prob=1.0, # Range of jittering brightness=0.4, contrast=0.4, saturation=0.2, hue=0.1, # Probability of applying color jittering color_jitter_prob=0.8, # Probability of converting to grayscale to_grayscale_prob=0.2, # Shuffle the order of color transforms shuffle=True), gaussian_blur=dict( apply_prob=1.0, # Kernel size ~ image_size / blur_divider blur_divider=10., # Kernel distribution sigma_min=0.1, sigma_max=2.0), solarize=dict(apply_prob=0.0, threshold=0.5), ), view2=dict( random_flip=True, color_transform=dict( apply_prob=1.0, brightness=0.4, contrast=0.4, saturation=0.2, hue=0.1, color_jitter_prob=0.8, to_grayscale_prob=0.2, shuffle=True), gaussian_blur=dict( apply_prob=0.1, blur_divider=10., sigma_min=0.1, sigma_max=2.0), solarize=dict(apply_prob=0.2, threshold=0.5), )) def postprocess(inputs: JaxBatch, rng: jnp.ndarray): """Apply the image augmentations to crops in inputs (view1 and view2).""" def _postprocess_image( images: jnp.ndarray, rng: jnp.ndarray, presets: ConfigDict, ) -> JaxBatch: """Applies augmentations in post-processing. Args: images: an NHWC tensor (with C=3), with float values in [0, 1]. rng: a single PRNGKey. presets: a dict of presets for the augmentations. Returns: A batch of augmented images with shape NHWC, with keys view1, view2 and labels. """ flip_rng, color_rng, blur_rng, solarize_rng = jax.random.split(rng, 4) out = images if presets['random_flip']: out = random_flip(out, flip_rng) if presets['color_transform']['apply_prob'] > 0: out = color_transform(out, color_rng, **presets['color_transform']) if presets['gaussian_blur']['apply_prob'] > 0: out = gaussian_blur(out, blur_rng, **presets['gaussian_blur']) if presets['solarize']['apply_prob'] > 0: out = solarize(out, solarize_rng, **presets['solarize']) out = jnp.clip(out, 0., 1.) return jax.lax.stop_gradient(out) rng1, rng2 = jax.random.split(rng, num=2) view1 = _postprocess_image(inputs['view1'], rng1, augment_config['view1']) view2 = _postprocess_image(inputs['view2'], rng2, augment_config['view2']) return dict(view1=view1, view2=view2, labels=inputs['labels']) def _maybe_apply(apply_fn, inputs, rng, apply_prob): should_apply = jax.random.uniform(rng, shape=()) <= apply_prob return jax.lax.cond(should_apply, inputs, apply_fn, inputs, lambda x: x) def _depthwise_conv2d(inputs, kernel, strides, padding): """Computes a depthwise conv2d in Jax. Args: inputs: an NHWC tensor with N=1. kernel: a [H", W", 1, C] tensor. strides: a 2d tensor. padding: "SAME" or "VALID". Returns: The depthwise convolution of inputs with kernel, as [H, W, C]. """ return jax.lax.conv_general_dilated( inputs, kernel, strides, padding, feature_group_count=inputs.shape[-1], dimension_numbers=('NHWC', 'HWIO', 'NHWC')) def _gaussian_blur_single_image(image, kernel_size, padding, sigma): """Applies gaussian blur to a single image, given as NHWC with N=1.""" radius = int(kernel_size / 2) kernel_size_ = 2 * radius + 1 x = jnp.arange(-radius, radius + 1).astype(jnp.float32) blur_filter = jnp.exp(-x**2 / (2. * sigma**2)) blur_filter = blur_filter / jnp.sum(blur_filter) blur_v = jnp.reshape(blur_filter, [kernel_size_, 1, 1, 1]) blur_h = jnp.reshape(blur_filter, [1, kernel_size_, 1, 1]) num_channels = image.shape[-1] blur_h = jnp.tile(blur_h, [1, 1, 1, num_channels]) blur_v = jnp.tile(blur_v, [1, 1, 1, num_channels]) expand_batch_dim = len(image.shape) == 3 if expand_batch_dim: image = image[jnp.newaxis, ...] blurred = _depthwise_conv2d(image, blur_h, strides=[1, 1], padding=padding) blurred = _depthwise_conv2d(blurred, blur_v, strides=[1, 1], padding=padding) blurred = jnp.squeeze(blurred, axis=0) return blurred def _random_gaussian_blur(image, rng, kernel_size, padding, sigma_min, sigma_max, apply_prob): """Applies a random gaussian blur.""" apply_rng, transform_rng = jax.random.split(rng) def _apply(image): sigma_rng, = jax.random.split(transform_rng, 1) sigma = jax.random.uniform( sigma_rng, shape=(), minval=sigma_min, maxval=sigma_max, dtype=jnp.float32) return _gaussian_blur_single_image(image, kernel_size, padding, sigma) return _maybe_apply(_apply, image, apply_rng, apply_prob) def rgb_to_hsv(r, g, b): """Converts R, G, B values to H, S, V values. Reference TF implementation: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/adjust_saturation_op.cc Only input values between 0 and 1 are guaranteed to work properly, but this function complies with the TF implementation outside of this range. Args: r: A tensor representing the red color component as floats. g: A tensor representing the green color component as floats. b: A tensor representing the blue color component as floats. Returns: H, S, V values, each as tensors of shape [...] (same as the input without the last dimension). """ vv = jnp.maximum(jnp.maximum(r, g), b) range_ = vv - jnp.minimum(jnp.minimum(r, g), b) sat = jnp.where(vv > 0, range_ / vv, 0.) norm = jnp.where(range_ != 0, 1. / (6. * range_), 1e9) hr = norm * (g - b) hg = norm * (b - r) + 2. / 6. hb = norm * (r - g) + 4. / 6. hue = jnp.where(r == vv, hr, jnp.where(g == vv, hg, hb)) hue = hue * (range_ > 0) hue = hue + (hue < 0) return hue, sat, vv def hsv_to_rgb(h, s, v): """Converts H, S, V values to an R, G, B tuple. Reference TF implementation: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/adjust_saturation_op.cc Only input values between 0 and 1 are guaranteed to work properly, but this function complies with the TF implementation outside of this range. Args: h: A float tensor of arbitrary shape for the hue (0-1 values). s: A float tensor of the same shape for the saturation (0-1 values). v: A float tensor of the same shape for the value channel (0-1 values). Returns: An (r, g, b) tuple, each with the same dimension as the inputs. """ c = s * v m = v - c dh = (h % 1.) * 6. fmodu = dh % 2. x = c * (1 - jnp.abs(fmodu - 1)) hcat = jnp.floor(dh).astype(jnp.int32) rr = jnp.where( (hcat == 0) | (hcat == 5), c, jnp.where( (hcat == 1) | (hcat == 4), x, 0)) + m gg = jnp.where( (hcat == 1) | (hcat == 2), c, jnp.where( (hcat == 0) | (hcat == 3), x, 0)) + m bb = jnp.where( (hcat == 3) | (hcat == 4), c, jnp.where( (hcat == 2) | (hcat == 5), x, 0)) + m return rr, gg, bb def adjust_brightness(rgb_tuple, delta): return jax.tree_map(lambda x: x + delta, rgb_tuple) def adjust_contrast(image, factor): def _adjust_contrast_channel(channel): mean = jnp.mean(channel, axis=(-2, -1), keepdims=True) return factor * (channel - mean) + mean return jax.tree_map(_adjust_contrast_channel, image) def adjust_saturation(h, s, v, factor): return h, jnp.clip(s * factor, 0., 1.), v def adjust_hue(h, s, v, delta): # Note: this method exactly matches TF"s adjust_hue (combined with the hsv/rgb # conversions) when running on GPU. When running on CPU, the results will be # different if all RGB values for a pixel are outside of the [0, 1] range. return (h + delta) % 1.0, s, v def _random_brightness(rgb_tuple, rng, max_delta): delta = jax.random.uniform(rng, shape=(), minval=-max_delta, maxval=max_delta) return adjust_brightness(rgb_tuple, delta) def _random_contrast(rgb_tuple, rng, max_delta): factor = jax.random.uniform( rng, shape=(), minval=1 - max_delta, maxval=1 + max_delta) return adjust_contrast(rgb_tuple, factor) def _random_saturation(rgb_tuple, rng, max_delta): h, s, v = rgb_to_hsv(*rgb_tuple) factor = jax.random.uniform( rng, shape=(), minval=1 - max_delta, maxval=1 + max_delta) return hsv_to_rgb(*adjust_saturation(h, s, v, factor)) def _random_hue(rgb_tuple, rng, max_delta): h, s, v = rgb_to_hsv(*rgb_tuple) delta = jax.random.uniform(rng, shape=(), minval=-max_delta, maxval=max_delta) return hsv_to_rgb(*adjust_hue(h, s, v, delta)) def _to_grayscale(image): rgb_weights = jnp.array([0.2989, 0.5870, 0.1140]) grayscale = jnp.tensordot(image, rgb_weights, axes=(-1, -1))[..., jnp.newaxis] return jnp.tile(grayscale, (1, 1, 3)) # Back to 3 channels. def _color_transform_single_image(image, rng, brightness, contrast, saturation, hue, to_grayscale_prob, color_jitter_prob, apply_prob, shuffle): """Applies color jittering to a single image.""" apply_rng, transform_rng = jax.random.split(rng) perm_rng, b_rng, c_rng, s_rng, h_rng, cj_rng, gs_rng = jax.random.split( transform_rng, 7) # Whether the transform should be applied at all. should_apply = jax.random.uniform(apply_rng, shape=()) <= apply_prob # Whether to apply grayscale transform. should_apply_gs = jax.random.uniform(gs_rng, shape=()) <= to_grayscale_prob # Whether to apply color jittering. should_apply_color = jax.random.uniform(cj_rng, shape=()) <= color_jitter_prob # Decorator to conditionally apply fn based on an index. def _make_cond(fn, idx): def identity_fn(x, unused_rng, unused_param): return x def cond_fn(args, i): def clip(args): return jax.tree_map(lambda arg: jnp.clip(arg, 0., 1.), args) out = jax.lax.cond(should_apply & should_apply_color & (i == idx), args, lambda a: clip(fn(*a)), args, lambda a: identity_fn(*a)) return jax.lax.stop_gradient(out) return cond_fn random_brightness_cond = _make_cond(_random_brightness, idx=0) random_contrast_cond = _make_cond(_random_contrast, idx=1) random_saturation_cond = _make_cond(_random_saturation, idx=2) random_hue_cond = _make_cond(_random_hue, idx=3) def _color_jitter(x): rgb_tuple = tuple(jax.tree_map(jnp.squeeze, jnp.split(x, 3, axis=-1))) if shuffle: order = jax.random.permutation(perm_rng, jnp.arange(4, dtype=jnp.int32)) else: order = range(4) for idx in order: if brightness > 0: rgb_tuple = random_brightness_cond((rgb_tuple, b_rng, brightness), idx) if contrast > 0: rgb_tuple = random_contrast_cond((rgb_tuple, c_rng, contrast), idx) if saturation > 0: rgb_tuple = random_saturation_cond((rgb_tuple, s_rng, saturation), idx) if hue > 0: rgb_tuple = random_hue_cond((rgb_tuple, h_rng, hue), idx) return jnp.stack(rgb_tuple, axis=-1) out_apply = _color_jitter(image) out_apply = jax.lax.cond(should_apply & should_apply_gs, out_apply, _to_grayscale, out_apply, lambda x: x) return jnp.clip(out_apply, 0., 1.) def _random_flip_single_image(image, rng): _, flip_rng = jax.random.split(rng) should_flip_lr = jax.random.uniform(flip_rng, shape=()) <= 0.5 image = jax.lax.cond(should_flip_lr, image, jnp.fliplr, image, lambda x: x) return image def random_flip(images, rng): rngs = jax.random.split(rng, images.shape[0]) return jax.vmap(_random_flip_single_image)(images, rngs) def color_transform(images, rng, brightness=0.8, contrast=0.8, saturation=0.8, hue=0.2, color_jitter_prob=0.8, to_grayscale_prob=0.2, apply_prob=1.0, shuffle=True): """Applies color jittering and/or grayscaling to a batch of images. Args: images: an NHWC tensor, with C=3. rng: a single PRNGKey. brightness: the range of jitter on brightness. contrast: the range of jitter on contrast. saturation: the range of jitter on saturation. hue: the range of jitter on hue. color_jitter_prob: the probability of applying color jittering. to_grayscale_prob: the probability of converting the image to grayscale. apply_prob: the probability of applying the transform to a batch element. shuffle: whether to apply the transforms in a random order. Returns: A NHWC tensor of the transformed images. """ rngs = jax.random.split(rng, images.shape[0]) jitter_fn = functools.partial( _color_transform_single_image, brightness=brightness, contrast=contrast, saturation=saturation, hue=hue, color_jitter_prob=color_jitter_prob, to_grayscale_prob=to_grayscale_prob, apply_prob=apply_prob, shuffle=shuffle) return jax.vmap(jitter_fn)(images, rngs) def gaussian_blur(images, rng, blur_divider=10., sigma_min=0.1, sigma_max=2.0, apply_prob=1.0): """Applies gaussian blur to a batch of images. Args: images: an NHWC tensor, with C=3. rng: a single PRNGKey. blur_divider: the blurring kernel will have size H / blur_divider. sigma_min: the minimum value for sigma in the blurring kernel. sigma_max: the maximum value for sigma in the blurring kernel. apply_prob: the probability of applying the transform to a batch element. Returns: A NHWC tensor of the blurred images. """ rngs = jax.random.split(rng, images.shape[0]) kernel_size = images.shape[1] / blur_divider blur_fn = functools.partial( _random_gaussian_blur, kernel_size=kernel_size, padding='SAME', sigma_min=sigma_min, sigma_max=sigma_max, apply_prob=apply_prob) return jax.vmap(blur_fn)(images, rngs) def _solarize_single_image(image, rng, threshold, apply_prob): def _apply(image): return jnp.where(image < threshold, image, 1. - image) return _maybe_apply(_apply, image, rng, apply_prob) def solarize(images, rng, threshold=0.5, apply_prob=1.0): """Applies solarization. Args: images: an NHWC tensor (with C=3). rng: a single PRNGKey. threshold: the solarization threshold. apply_prob: the probability of applying the transform to a batch element. Returns: A NHWC tensor of the transformed images. """ rngs = jax.random.split(rng, images.shape[0]) solarize_fn = functools.partial( _solarize_single_image, threshold=threshold, apply_prob=apply_prob) return jax.vmap(solarize_fn)(images, rngs) ================================================ FILE: byol/utils/checkpointing.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Checkpoint saving and restoring utilities.""" import os import time from typing import Mapping, Text, Tuple, Union from absl import logging import dill import jax import jax.numpy as jnp from byol.utils import helpers class Checkpointer: """A checkpoint saving and loading class.""" def __init__( self, use_checkpointing: bool, checkpoint_dir: Text, save_checkpoint_interval: int, filename: Text): if (not use_checkpointing or checkpoint_dir is None or save_checkpoint_interval <= 0): self._checkpoint_enabled = False return self._checkpoint_enabled = True self._checkpoint_dir = checkpoint_dir os.makedirs(self._checkpoint_dir, exist_ok=True) self._filename = filename self._checkpoint_path = os.path.join(self._checkpoint_dir, filename) self._last_checkpoint_time = 0 self._checkpoint_every = save_checkpoint_interval def maybe_save_checkpoint( self, experiment_state: Mapping[Text, jnp.ndarray], step: int, rng: jnp.ndarray, is_final: bool): """Saves a checkpoint if enough time has passed since the previous one.""" current_time = time.time() if (not self._checkpoint_enabled or jax.host_id() != 0 or # Only checkpoint the first worker. (not is_final and current_time - self._last_checkpoint_time < self._checkpoint_every)): return checkpoint_data = dict( experiment_state=jax.tree_map( lambda x: jax.device_get(x[0]), experiment_state), step=step, rng=rng) with open(self._checkpoint_path + '_tmp', 'wb') as checkpoint_file: dill.dump(checkpoint_data, checkpoint_file, protocol=2) try: os.rename(self._checkpoint_path, self._checkpoint_path + '_old') remove_old = True except FileNotFoundError: remove_old = False # No previous checkpoint to remove os.rename(self._checkpoint_path + '_tmp', self._checkpoint_path) if remove_old: os.remove(self._checkpoint_path + '_old') self._last_checkpoint_time = current_time def maybe_load_checkpoint( self) -> Union[Tuple[Mapping[Text, jnp.ndarray], int, jnp.ndarray], None]: """Loads a checkpoint if any is found.""" checkpoint_data = load_checkpoint(self._checkpoint_path) if checkpoint_data is None: logging.info('No existing checkpoint found at %s', self._checkpoint_path) return None step = checkpoint_data['step'] rng = checkpoint_data['rng'] experiment_state = jax.tree_map( helpers.bcast_local_devices, checkpoint_data['experiment_state']) del checkpoint_data return experiment_state, step, rng def load_checkpoint(checkpoint_path): try: with open(checkpoint_path, 'rb') as checkpoint_file: checkpoint_data = dill.load(checkpoint_file) logging.info('Loading checkpoint from %s, saved at step %d', checkpoint_path, checkpoint_data['step']) return checkpoint_data except FileNotFoundError: return None ================================================ FILE: byol/utils/dataset.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ImageNet dataset with typical pre-processing.""" import enum from typing import Generator, Mapping, Optional, Sequence, Text, Tuple import jax import jax.numpy as jnp import numpy as np import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds Batch = Mapping[Text, np.ndarray] class Split(enum.Enum): """Imagenet dataset split.""" TRAIN = 1 TRAIN_AND_VALID = 2 VALID = 3 TEST = 4 @classmethod def from_string(cls, name: Text) -> 'Split': return { 'TRAIN': Split.TRAIN, 'TRAIN_AND_VALID': Split.TRAIN_AND_VALID, 'VALID': Split.VALID, 'VALIDATION': Split.VALID, 'TEST': Split.TEST }[name.upper()] @property def num_examples(self): return { Split.TRAIN_AND_VALID: 1281167, Split.TRAIN: 1271167, Split.VALID: 10000, Split.TEST: 50000 }[self] class PreprocessMode(enum.Enum): """Preprocessing modes for the dataset.""" PRETRAIN = 1 # Generates two augmented views (random crop + augmentations). LINEAR_TRAIN = 2 # Generates a single random crop. EVAL = 3 # Generates a single center crop. def normalize_images(images: jnp.ndarray) -> jnp.ndarray: """Normalize the image using ImageNet statistics.""" mean_rgb = (0.485, 0.456, 0.406) stddev_rgb = (0.229, 0.224, 0.225) normed_images = images - jnp.array(mean_rgb).reshape((1, 1, 1, 3)) normed_images = normed_images / jnp.array(stddev_rgb).reshape((1, 1, 1, 3)) return normed_images def load(split: Split, *, preprocess_mode: PreprocessMode, batch_dims: Sequence[int], transpose: bool = False, allow_caching: bool = False) -> Generator[Batch, None, None]: """Loads the given split of the dataset.""" start, end = _shard(split, jax.host_id(), jax.host_count()) total_batch_size = np.prod(batch_dims) tfds_split = tfds.core.ReadInstruction( _to_tfds_split(split), from_=start, to=end, unit='abs') ds = tfds.load( 'imagenet2012:5.*.*', split=tfds_split, decoders={'image': tfds.decode.SkipDecoding()}) options = tf.data.Options() options.experimental_threading.private_threadpool_size = 48 options.experimental_threading.max_intra_op_parallelism = 1 if preprocess_mode is not PreprocessMode.EVAL: options.experimental_deterministic = False if jax.host_count() > 1 and allow_caching: # Only cache if we are reading a subset of the dataset. ds = ds.cache() ds = ds.repeat() ds = ds.shuffle(buffer_size=10 * total_batch_size, seed=0) else: if split.num_examples % total_batch_size != 0: raise ValueError(f'Test/valid must be divisible by {total_batch_size}') ds = ds.with_options(options) def preprocess_pretrain(example): view1 = _preprocess_image(example['image'], mode=preprocess_mode) view2 = _preprocess_image(example['image'], mode=preprocess_mode) label = tf.cast(example['label'], tf.int32) return {'view1': view1, 'view2': view2, 'labels': label} def preprocess_linear_train(example): image = _preprocess_image(example['image'], mode=preprocess_mode) label = tf.cast(example['label'], tf.int32) return {'images': image, 'labels': label} def preprocess_eval(example): image = _preprocess_image(example['image'], mode=preprocess_mode) label = tf.cast(example['label'], tf.int32) return {'images': image, 'labels': label} if preprocess_mode is PreprocessMode.PRETRAIN: ds = ds.map( preprocess_pretrain, num_parallel_calls=tf.data.experimental.AUTOTUNE) elif preprocess_mode is PreprocessMode.LINEAR_TRAIN: ds = ds.map( preprocess_linear_train, num_parallel_calls=tf.data.experimental.AUTOTUNE) else: ds = ds.map( preprocess_eval, num_parallel_calls=tf.data.experimental.AUTOTUNE) def transpose_fn(batch): # We use the double-transpose-trick to improve performance for TPUs. Note # that this (typically) requires a matching HWCN->NHWC transpose in your # model code. The compiler cannot make this optimization for us since our # data pipeline and model are compiled separately. batch = dict(**batch) if preprocess_mode is PreprocessMode.PRETRAIN: batch['view1'] = tf.transpose(batch['view1'], (1, 2, 3, 0)) batch['view2'] = tf.transpose(batch['view2'], (1, 2, 3, 0)) else: batch['images'] = tf.transpose(batch['images'], (1, 2, 3, 0)) return batch for i, batch_size in enumerate(reversed(batch_dims)): ds = ds.batch(batch_size) if i == 0 and transpose: ds = ds.map(transpose_fn) # NHWC -> HWCN ds = ds.prefetch(tf.data.experimental.AUTOTUNE) yield from tfds.as_numpy(ds) def _to_tfds_split(split: Split) -> tfds.Split: """Returns the TFDS split appropriately sharded.""" # NOTE: Imagenet did not release labels for the test split used in the # competition, we consider the VALID split the TEST split and reserve # 10k images from TRAIN for VALID. if split in (Split.TRAIN, Split.TRAIN_AND_VALID, Split.VALID): return tfds.Split.TRAIN else: assert split == Split.TEST return tfds.Split.VALIDATION def _shard(split: Split, shard_index: int, num_shards: int) -> Tuple[int, int]: """Returns [start, end) for the given shard index.""" assert shard_index < num_shards arange = np.arange(split.num_examples) shard_range = np.array_split(arange, num_shards)[shard_index] start, end = shard_range[0], (shard_range[-1] + 1) if split == Split.TRAIN: # Note that our TRAIN=TFDS_TRAIN[10000:] and VALID=TFDS_TRAIN[:10000]. offset = Split.VALID.num_examples start += offset end += offset return start, end def _preprocess_image( image_bytes: tf.Tensor, mode: PreprocessMode, ) -> tf.Tensor: """Returns processed and resized images.""" if mode is PreprocessMode.PRETRAIN: image = _decode_and_random_crop(image_bytes) # Random horizontal flipping is optionally done in augmentations.preprocess. elif mode is PreprocessMode.LINEAR_TRAIN: image = _decode_and_random_crop(image_bytes) image = tf.image.random_flip_left_right(image) else: image = _decode_and_center_crop(image_bytes) # NOTE: Bicubic resize (1) casts uint8 to float32 and (2) resizes without # clamping overshoots. This means values returned will be outside the range # [0.0, 255.0] (e.g. we have observed outputs in the range [-51.1, 336.6]). assert image.dtype == tf.uint8 image = tf.image.resize(image, [224, 224], tf.image.ResizeMethod.BICUBIC) image = tf.clip_by_value(image / 255., 0., 1.) return image def _decode_and_random_crop(image_bytes: tf.Tensor) -> tf.Tensor: """Make a random crop of 224.""" img_size = tf.image.extract_jpeg_shape(image_bytes) area = tf.cast(img_size[1] * img_size[0], tf.float32) target_area = tf.random.uniform([], 0.08, 1.0, dtype=tf.float32) * area log_ratio = (tf.math.log(3 / 4), tf.math.log(4 / 3)) aspect_ratio = tf.math.exp( tf.random.uniform([], *log_ratio, dtype=tf.float32)) w = tf.cast(tf.round(tf.sqrt(target_area * aspect_ratio)), tf.int32) h = tf.cast(tf.round(tf.sqrt(target_area / aspect_ratio)), tf.int32) w = tf.minimum(w, img_size[1]) h = tf.minimum(h, img_size[0]) offset_w = tf.random.uniform((), minval=0, maxval=img_size[1] - w + 1, dtype=tf.int32) offset_h = tf.random.uniform((), minval=0, maxval=img_size[0] - h + 1, dtype=tf.int32) crop_window = tf.stack([offset_h, offset_w, h, w]) image = tf.io.decode_and_crop_jpeg(image_bytes, crop_window, channels=3) return image def transpose_images(batch: Batch): """Transpose images for TPU training..""" new_batch = dict(batch) # Avoid mutating in place. if 'images' in batch: new_batch['images'] = jnp.transpose(batch['images'], (3, 0, 1, 2)) else: new_batch['view1'] = jnp.transpose(batch['view1'], (3, 0, 1, 2)) new_batch['view2'] = jnp.transpose(batch['view2'], (3, 0, 1, 2)) return new_batch def _decode_and_center_crop( image_bytes: tf.Tensor, jpeg_shape: Optional[tf.Tensor] = None, ) -> tf.Tensor: """Crops to center of image with padding then scales.""" if jpeg_shape is None: jpeg_shape = tf.image.extract_jpeg_shape(image_bytes) image_height = jpeg_shape[0] image_width = jpeg_shape[1] padded_center_crop_size = tf.cast( ((224 / (224 + 32)) * tf.cast(tf.minimum(image_height, image_width), tf.float32)), tf.int32) offset_height = ((image_height - padded_center_crop_size) + 1) // 2 offset_width = ((image_width - padded_center_crop_size) + 1) // 2 crop_window = tf.stack([ offset_height, offset_width, padded_center_crop_size, padded_center_crop_size ]) image = tf.image.decode_and_crop_jpeg(image_bytes, crop_window, channels=3) return image ================================================ FILE: byol/utils/helpers.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utility functions.""" from typing import Optional, Text from absl import logging import jax import jax.numpy as jnp def topk_accuracy( logits: jnp.ndarray, labels: jnp.ndarray, topk: int, ignore_label_above: Optional[int] = None, ) -> jnp.ndarray: """Top-num_codes accuracy.""" assert len(labels.shape) == 1, 'topk expects 1d int labels.' assert len(logits.shape) == 2, 'topk expects 2d logits.' if ignore_label_above is not None: logits = logits[labels < ignore_label_above, :] labels = labels[labels < ignore_label_above] prds = jnp.argsort(logits, axis=1)[:, ::-1] prds = prds[:, :topk] total = jnp.any(prds == jnp.tile(labels[:, jnp.newaxis], [1, topk]), axis=1) return total def softmax_cross_entropy( logits: jnp.ndarray, labels: jnp.ndarray, reduction: Optional[Text] = 'mean', ) -> jnp.ndarray: """Computes softmax cross entropy given logits and one-hot class labels. Args: logits: Logit output values. labels: Ground truth one-hot-encoded labels. reduction: Type of reduction to apply to loss. Returns: Loss value. If `reduction` is `none`, this has the same shape as `labels`; otherwise, it is scalar. Raises: ValueError: If the type of `reduction` is unsupported. """ loss = -jnp.sum(labels * jax.nn.log_softmax(logits), axis=-1) if reduction == 'sum': return jnp.sum(loss) elif reduction == 'mean': return jnp.mean(loss) elif reduction == 'none' or reduction is None: return loss else: raise ValueError(f'Incorrect reduction mode {reduction}') def l2_normalize( x: jnp.ndarray, axis: Optional[int] = None, epsilon: float = 1e-12, ) -> jnp.ndarray: """l2 normalize a tensor on an axis with numerical stability.""" square_sum = jnp.sum(jnp.square(x), axis=axis, keepdims=True) x_inv_norm = jax.lax.rsqrt(jnp.maximum(square_sum, epsilon)) return x * x_inv_norm def l2_weight_regularizer(params): """Helper to do lasso on weights. Args: params: the entire param set. Returns: Scalar of the l2 norm of the weights. """ l2_norm = 0. for mod_name, mod_params in params.items(): if 'norm' not in mod_name: for param_k, param_v in mod_params.items(): if param_k != 'b' not in param_k: # Filter out biases l2_norm += jnp.sum(jnp.square(param_v)) else: logging.warning('Excluding %s/%s from optimizer weight decay!', mod_name, param_k) else: logging.warning('Excluding %s from optimizer weight decay!', mod_name) return 0.5 * l2_norm def regression_loss(x: jnp.ndarray, y: jnp.ndarray) -> jnp.ndarray: """Byol's regression loss. This is a simple cosine similarity.""" normed_x, normed_y = l2_normalize(x, axis=-1), l2_normalize(y, axis=-1) return jnp.sum((normed_x - normed_y)**2, axis=-1) def bcast_local_devices(value): """Broadcasts an object to all local devices.""" devices = jax.local_devices() def _replicate(x): """Replicate an object on each device.""" x = jnp.array(x) return jax.device_put_sharded(len(devices) * [x], devices) return jax.tree_util.tree_map(_replicate, value) def get_first(xs): """Gets values from the first device.""" return jax.tree_map(lambda x: x[0], xs) ================================================ FILE: byol/utils/networks.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Networks used in BYOL.""" from typing import Any, Mapping, Optional, Sequence, Text import haiku as hk import jax import jax.numpy as jnp class MLP(hk.Module): """One hidden layer perceptron, with normalization.""" def __init__( self, name: Text, hidden_size: int, output_size: int, bn_config: Mapping[Text, Any], ): super().__init__(name=name) self._hidden_size = hidden_size self._output_size = output_size self._bn_config = bn_config def __call__(self, inputs: jnp.ndarray, is_training: bool) -> jnp.ndarray: out = hk.Linear(output_size=self._hidden_size, with_bias=True)(inputs) out = hk.BatchNorm(**self._bn_config)(out, is_training=is_training) out = jax.nn.relu(out) out = hk.Linear(output_size=self._output_size, with_bias=False)(out) return out def check_length(length, value, name): if len(value) != length: raise ValueError(f'`{name}` must be of length 4 not {len(value)}') class ResNetTorso(hk.Module): """ResNet model.""" def __init__( self, blocks_per_group: Sequence[int], num_classes: Optional[int] = None, bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, bottleneck: bool = True, channels_per_group: Sequence[int] = (256, 512, 1024, 2048), use_projection: Sequence[bool] = (True, True, True, True), width_multiplier: int = 1, name: Optional[str] = None, ): """Constructs a ResNet model. Args: blocks_per_group: A sequence of length 4 that indicates the number of blocks created in each group. num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of three elements, `decay_rate`, `eps`, and `cross_replica_axis`, to be passed on to the `BatchNorm` layers. By default the `decay_rate` is `0.9` and `eps` is `1e-5`, and the axis is `None`. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. bottleneck: Whether the block should bottleneck or not. Defaults to True. channels_per_group: A sequence of length 4 that indicates the number of channels used for each block in each group. use_projection: A sequence of length 4 that indicates whether each residual block should use projection. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(name=name) self.resnet_v2 = resnet_v2 bn_config = dict(bn_config or {}) bn_config.setdefault('decay_rate', 0.9) bn_config.setdefault('eps', 1e-5) bn_config.setdefault('create_scale', True) bn_config.setdefault('create_offset', True) # Number of blocks in each group for ResNet. check_length(4, blocks_per_group, 'blocks_per_group') check_length(4, channels_per_group, 'channels_per_group') self.initial_conv = hk.Conv2D( output_channels=64 * width_multiplier, kernel_shape=7, stride=2, with_bias=False, padding='SAME', name='initial_conv') if not self.resnet_v2: self.initial_batchnorm = hk.BatchNorm(name='initial_batchnorm', **bn_config) self.block_groups = [] strides = (1, 2, 2, 2) for i in range(4): self.block_groups.append( hk.nets.ResNet.BlockGroup( channels=width_multiplier * channels_per_group[i], num_blocks=blocks_per_group[i], stride=strides[i], bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=bottleneck, use_projection=use_projection[i], name='block_group_%d' % (i))) if self.resnet_v2: self.final_batchnorm = hk.BatchNorm(name='final_batchnorm', **bn_config) self.logits = hk.Linear(num_classes, w_init=jnp.zeros, name='logits') def __call__(self, inputs, is_training, test_local_stats=False): out = inputs out = self.initial_conv(out) if not self.resnet_v2: out = self.initial_batchnorm(out, is_training, test_local_stats) out = jax.nn.relu(out) out = hk.max_pool(out, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') for block_group in self.block_groups: out = block_group(out, is_training, test_local_stats) if self.resnet_v2: out = self.final_batchnorm(out, is_training, test_local_stats) out = jax.nn.relu(out) out = jnp.mean(out, axis=[1, 2]) return out class TinyResNet(ResNetTorso): """Tiny resnet for local runs and tests.""" def __init__(self, num_classes: Optional[int] = None, bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(1, 1, 1, 1), channels_per_group=(8, 8, 8, 8), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=False, width_multiplier=width_multiplier, name=name) class ResNet18(ResNetTorso): """ResNet18.""" def __init__(self, num_classes: Optional[int] = None, bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(2, 2, 2, 2), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=False, channels_per_group=(64, 128, 256, 512), width_multiplier=width_multiplier, name=name) class ResNet34(ResNetTorso): """ResNet34.""" def __init__(self, num_classes: Optional[int], bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(3, 4, 6, 3), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=False, channels_per_group=(64, 128, 256, 512), width_multiplier=width_multiplier, name=name) class ResNet50(ResNetTorso): """ResNet50.""" def __init__(self, num_classes: Optional[int] = None, bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(3, 4, 6, 3), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=True, width_multiplier=width_multiplier, name=name) class ResNet101(ResNetTorso): """ResNet101.""" def __init__(self, num_classes: Optional[int], bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(3, 4, 23, 3), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=True, width_multiplier=width_multiplier, name=name) class ResNet152(ResNetTorso): """ResNet152.""" def __init__(self, num_classes: Optional[int], bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(3, 8, 36, 3), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=True, width_multiplier=width_multiplier, name=name) class ResNet200(ResNetTorso): """ResNet200.""" def __init__(self, num_classes: Optional[int], bn_config: Optional[Mapping[str, float]] = None, resnet_v2: bool = False, width_multiplier: int = 1, name: Optional[str] = None): """Constructs a ResNet model. Args: num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. width_multiplier: An integer multiplying the number of channels per group. name: Name of the module. """ super().__init__(blocks_per_group=(3, 24, 36, 3), num_classes=num_classes, bn_config=bn_config, resnet_v2=resnet_v2, bottleneck=True, width_multiplier=width_multiplier, name=name) ================================================ FILE: byol/utils/optimizers.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Implementation of LARS Optimizer with optax.""" from typing import Any, Callable, List, NamedTuple, Optional, Tuple import jax import jax.numpy as jnp import optax import tree as nest # A filter function takes a path and a value as input and outputs True for # variable to apply update and False not to apply the update FilterFn = Callable[[Tuple[Any], jnp.ndarray], jnp.ndarray] def exclude_bias_and_norm(path: Tuple[Any], val: jnp.ndarray) -> jnp.ndarray: """Filter to exclude biaises and normalizations weights.""" del val if path[-1] == "b" or "norm" in path[-2]: return False # pytype: disable=bad-return-type # jax-ndarray return True # pytype: disable=bad-return-type # jax-ndarray def _partial_update(updates: optax.Updates, new_updates: optax.Updates, params: optax.Params, filter_fn: Optional[FilterFn] = None) -> optax.Updates: """Returns new_update for params which filter_fn is True else updates.""" if filter_fn is None: return new_updates wrapped_filter_fn = lambda x, y: jnp.array(filter_fn(x, y)) params_to_filter = nest.map_structure_with_path(wrapped_filter_fn, params) def _update_fn(g: jnp.ndarray, t: jnp.ndarray, m: jnp.ndarray) -> jnp.ndarray: m = m.astype(g.dtype) return g * (1. - m) + t * m return jax.tree_map(_update_fn, updates, new_updates, params_to_filter) class ScaleByLarsState(NamedTuple): mu: jnp.ndarray def scale_by_lars( momentum: float = 0.9, eta: float = 0.001, filter_fn: Optional[FilterFn] = None) -> optax.GradientTransformation: """Rescales updates according to the LARS algorithm. Does not include weight decay. References: [You et al, 2017](https://arxiv.org/abs/1708.03888) Args: momentum: momentum coeficient. eta: LARS coefficient. filter_fn: an optional filter function. Returns: An (init_fn, update_fn) tuple. """ def init_fn(params: optax.Params) -> ScaleByLarsState: mu = jax.tree_map(jnp.zeros_like, params) # momentum return ScaleByLarsState(mu=mu) def update_fn(updates: optax.Updates, state: ScaleByLarsState, params: optax.Params) -> Tuple[optax.Updates, ScaleByLarsState]: def lars_adaptation( update: jnp.ndarray, param: jnp.ndarray, ) -> jnp.ndarray: param_norm = jnp.linalg.norm(param) update_norm = jnp.linalg.norm(update) return update * jnp.where( param_norm > 0., jnp.where(update_norm > 0, (eta * param_norm / update_norm), 1.0), 1.0) adapted_updates = jax.tree_map(lars_adaptation, updates, params) adapted_updates = _partial_update(updates, adapted_updates, params, filter_fn) mu = jax.tree_map(lambda g, t: momentum * g + t, state.mu, adapted_updates) return mu, ScaleByLarsState(mu=mu) return optax.GradientTransformation(init_fn, update_fn) class AddWeightDecayState(NamedTuple): """Stateless transformation.""" def add_weight_decay( weight_decay: float, filter_fn: Optional[FilterFn] = None) -> optax.GradientTransformation: """Adds a weight decay to the update. Args: weight_decay: weight_decay coeficient. filter_fn: an optional filter function. Returns: An (init_fn, update_fn) tuple. """ def init_fn(_) -> AddWeightDecayState: return AddWeightDecayState() def update_fn( updates: optax.Updates, state: AddWeightDecayState, params: optax.Params, ) -> Tuple[optax.Updates, AddWeightDecayState]: new_updates = jax.tree_map(lambda g, p: g + weight_decay * p, updates, params) new_updates = _partial_update(updates, new_updates, params, filter_fn) return new_updates, state return optax.GradientTransformation(init_fn, update_fn) # pytype: disable=wrong-arg-types # numpy-scalars LarsState = List # Type for the lars optimizer def lars( learning_rate: float, weight_decay: float = 0., momentum: float = 0.9, eta: float = 0.001, weight_decay_filter: Optional[FilterFn] = None, lars_adaptation_filter: Optional[FilterFn] = None, ) -> optax.GradientTransformation: """Creates lars optimizer with weight decay. References: [You et al, 2017](https://arxiv.org/abs/1708.03888) Args: learning_rate: learning rate coefficient. weight_decay: weight decay coefficient. momentum: momentum coefficient. eta: LARS coefficient. weight_decay_filter: optional filter function to only apply the weight decay on a subset of parameters. The filter function takes as input the parameter path (as a tuple) and its associated update, and return a True for params to apply the weight decay and False for params to not apply the weight decay. When weight_decay_filter is set to None, the weight decay is not applied to the bias, i.e. when the variable name is 'b', and the weight decay is not applied to nornalization params, i.e. the panultimate path contains 'norm'. lars_adaptation_filter: similar to weight decay filter but for lars adaptation Returns: An optax.GradientTransformation, i.e. a (init_fn, update_fn) tuple. """ if weight_decay_filter is None: weight_decay_filter = lambda *_: True if lars_adaptation_filter is None: lars_adaptation_filter = lambda *_: True return optax.chain( add_weight_decay( weight_decay=weight_decay, filter_fn=weight_decay_filter), scale_by_lars( momentum=momentum, eta=eta, filter_fn=lars_adaptation_filter), optax.scale(-learning_rate), ) ================================================ FILE: byol/utils/schedules.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Learning rate schedules.""" import jax.numpy as jnp def target_ema(global_step: jnp.ndarray, base_ema: float, max_steps: int) -> jnp.ndarray: decay = _cosine_decay(global_step, max_steps, 1.) return 1. - (1. - base_ema) * decay def learning_schedule(global_step: jnp.ndarray, batch_size: int, base_learning_rate: float, total_steps: int, warmup_steps: int) -> float: """Cosine learning rate scheduler.""" # Compute LR & Scaled LR scaled_lr = base_learning_rate * batch_size / 256. learning_rate = ( global_step.astype(jnp.float32) / int(warmup_steps) * scaled_lr if warmup_steps > 0 else scaled_lr) # Cosine schedule after warmup. return jnp.where( global_step < warmup_steps, learning_rate, _cosine_decay(global_step - warmup_steps, total_steps - warmup_steps, scaled_lr)) def _cosine_decay(global_step: jnp.ndarray, max_steps: int, initial_value: float) -> jnp.ndarray: """Simple implementation of cosine decay from TF1.""" global_step = jnp.minimum(global_step, max_steps) cosine_decay_value = 0.5 * (1 + jnp.cos(jnp.pi * global_step / max_steps)) decayed_learning_rate = initial_value * cosine_decay_value return decayed_learning_rate ================================================ FILE: cadl/README.md ================================================ # A dataset of CAD sketches

## Overview This repository contains the dataset used in ["Computer-Aided Design as Language"](https://arxiv.org/abs/2105.02769). We provide the following splits: * Training (`4,656,607` sketches) * Validation (`50,000` sketches) * Test (`50,000` sketches) ## Quickstart First, download the dataset files: ```shell bash download_dataset.sh ``` This will place the splits under `data` subfolder. In order to read the data, you will need [protocol buffer](https://developers.google.com/protocol-buffers) compiler and [Tensorflow](https://www.tensorflow.org/): ```shell apt install -y protobuf-compiler virtualenv --python=python3.6 "${ENV}" ${ENV}/bin/activate pip install tensorflow ``` Next, you need to compile `.proto` files that define the layout of entries in the dataset: ```shell protoc --python_out=. *.proto ``` Finally, you can use the generated classes to access the examples. The following `python` snippet reads and prints the first 5 elements from the training split: ```python import tensorflow as tf import example_pb2 dataset = tf.data.TFRecordDataset("data/train.tfrecord") for raw_record in dataset.take(5).as_numpy_iterator(): example = example_pb2.Example() example.ParseFromString(raw_record) print(example, "\n") ``` Please refer to `example.proto` for details on the data layout. ## Citation If you use this dataset in your research, please cite: ``` @article{ganin2021computer, title={Computer-aided design as language}, author={Ganin, Yaroslav and Bartunov, Sergey and Li, Yujia and Keller, Ethan and Saliceti, Stefano}, journal={arXiv preprint arXiv:2105.02769}, year={2021} } ``` ## License The code is licensed under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0). The dataset is licensed under a [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/). ## Disclaimer This is not an official Google product. ================================================ FILE: cadl/common.proto ================================================ // Copyright 2021 Deepmind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package deepmind.cad.protos; import "google/protobuf/descriptor.proto"; message NCFieldOptions { bool is_pointer = 1; uint32 at_least = 2; } extend google.protobuf.FieldOptions { NCFieldOptions nc_field_options = 50000; } ================================================ FILE: cadl/constraints.proto ================================================ // Copyright 2021 Deepmind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package deepmind.cad.protos; import "common.proto"; message FixConstraint { repeated uint32 entities = 1 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 1]; } message CoincidentConstraint { repeated uint32 entities = 1 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 2]; } message ConcentricConstraint { repeated uint32 entities = 1 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 2]; } message EqualConstraint { repeated uint32 entities = 1 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 2]; } message ParallelConstraint { repeated uint32 entities = 1 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 2]; } message TangentConstraint { uint32 first = 1 [(nc_field_options).is_pointer = true]; uint32 second = 2 [(nc_field_options).is_pointer = true]; } message PerpendicularConstraint { uint32 first = 1 [(nc_field_options).is_pointer = true]; uint32 second = 2 [(nc_field_options).is_pointer = true]; } message MirrorConstraint { uint32 mirror = 1 [(nc_field_options).is_pointer = true]; message MirroredPair { uint32 first = 1 [(nc_field_options).is_pointer = true]; uint32 second = 2 [(nc_field_options).is_pointer = true]; } repeated MirroredPair mirrored_pairs = 2 [(nc_field_options).at_least = 1]; } message DistanceConstraint { uint32 first = 1 [(nc_field_options).is_pointer = true]; uint32 second = 2 [(nc_field_options).is_pointer = true]; enum Direction { HORIZONTAL = 0; VERTICAL = 1; MINIMUM = 2; } Direction direction = 3; double length = 4; enum Alignment { ALIGNED = 0; ANTI_ALIGNED = 1; } enum HalfSpace { NOT_AVAILABLE = 0; LEFT = 1; RIGHT = 2; } message HalfSpaceParams { HalfSpace half_space_first = 1; HalfSpace half_space_second = 2; } oneof additional_params { Alignment alignment = 5; HalfSpaceParams half_space_params = 6; } } message LengthConstraint { uint32 entity = 1 [(nc_field_options).is_pointer = true]; double length = 2; } message DiameterConstraint { uint32 entity = 1 [(nc_field_options).is_pointer = true]; double length = 2; } message RadiusConstraint { uint32 entity = 1 [(nc_field_options).is_pointer = true]; double length = 2; } message AngleConstraint { uint32 first = 1 [(nc_field_options).is_pointer = true]; uint32 second = 2 [(nc_field_options).is_pointer = true]; double angle = 3; } message HorizontalConstraint { repeated uint32 entities = 1 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 1]; } message VerticalConstraint { repeated uint32 entities = 2 [(nc_field_options).is_pointer = true, (nc_field_options).at_least = 1]; } message MidpointConstraint { uint32 midpoint = 1 [(nc_field_options).is_pointer = true]; message Endpoints { uint32 first = 1 [(nc_field_options).is_pointer = true]; uint32 second = 2 [(nc_field_options).is_pointer = true]; } oneof additional_params { Endpoints endpoints = 2; uint32 entity = 3 [(nc_field_options).is_pointer = true]; } } ================================================ FILE: cadl/download_dataset.sh ================================================ #!/bin/bash # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e OUTPUT_DIR="data" BASE_URL="https://storage.googleapis.com/cadl/" mkdir -p ${OUTPUT_DIR} for file in train.tfrecord valid.tfrecord test.tfrecord do wget -O "${OUTPUT_DIR}/${file}" "${BASE_URL}${file}" done ================================================ FILE: cadl/entities.proto ================================================ // Copyright 2021 Deepmind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package deepmind.cad.protos; import "google/protobuf/empty.proto"; import "common.proto"; message Vector { double x = 1; double y = 2; } message PointEntity { bool is_construction = 1; Vector point = 2; } message LineEntity { bool is_construction = 1; Vector start = 2; Vector end = 3; } message CircleArcEntity { bool is_construction = 1; Vector center = 2; double radius = 3; message ArcParams { Vector direction = 1; bool is_clockwise = 2; double start_angle = 3; double end_angle = 4; } oneof additional_params { google.protobuf.Empty circle_params = 4; ArcParams arc_params = 5; } } message CircleArcEntityV2 { bool is_construction = 1; Vector center = 2; message CircleParams { double radius = 1; } message ArcParams { Vector start = 1; Vector end = 2; bool is_clockwise = 3; } oneof additional_params { CircleParams circle_params = 3; ArcParams arc_params = 4; } } message InterpolatedSplineEntity { bool is_construction = 1; bool is_periodic = 2; repeated Vector interpolation_points = 3 [(nc_field_options).at_least = 2]; Vector start_derivative = 4; Vector end_derivative = 5; message TrimmedParams { double start_phi = 1; double end_phi = 2; } oneof additional_params { google.protobuf.Empty untrimmed_params = 6; TrimmedParams trimmed_params = 7; } } ================================================ FILE: cadl/example.proto ================================================ // Copyright 2021 Deepmind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package deepmind.cad.protos; import "constraints.proto"; import "entities.proto"; message Entity { oneof kind { PointEntity point_entity = 1; LineEntity line_entity = 2; CircleArcEntityV2 circle_arc_entity = 3; InterpolatedSplineEntity interpolated_spline_entity = 4; } } message Constraint { oneof kind { FixConstraint fix_constraint = 1; CoincidentConstraint coincident_constraint = 2; ConcentricConstraint concentric_constraint = 3; EqualConstraint equal_constraint = 4; ParallelConstraint parallel_constraint = 5; TangentConstraint tangent_constraint = 6; PerpendicularConstraint perpendicular_constraint = 7; MirrorConstraint mirror_constraint = 8; DistanceConstraint distance_constraint = 9; LengthConstraint length_constraint = 10; DiameterConstraint diameter_constraint = 11; RadiusConstraint radius_constraint = 12; AngleConstraint angle_constraint = 13; HorizontalConstraint horizontal_constraint = 14; VerticalConstraint vertical_constraint = 15; MidpointConstraint midpoint_constraint = 16; } } message EntitySequence { repeated Entity entities = 1; } message ConstraintSequence { repeated Constraint constraints = 1; } message Example { EntitySequence entity_sequence = 1; ConstraintSequence constraint_sequence = 2; } ================================================ FILE: catch_carry/README.md ================================================ # Catch & Carry: Reusable Neural Controllers for Vision-Guided Whole-Body Tasks This package contains motion capture data and tasks associated with "Catch & Carry: Reusable Neural Controllers for Vision-Guided Whole-Body Tasks" (https://arxiv.org/abs/1911.06636), which was published at SIGGRAPH 2020. This is research code, and has dependencies on more stable code that is available as part of [`dm_control`], in particular upon components in [`dm_control.locomotion`]. To get access to preconfigured python environments for the "warehouse" and "ball toss" tasks, see the `task_examples.py` file. To use the MuJoCo interactive viewer (from dm_control) to load the environments, see `explore.py`.

## Installation instructions 1. Download [MuJoCo Pro](https://mujoco.org/) and extract the zip archive as `~/.mujoco/mujoco200_$PLATFORM` where `$PLATFORM` is one of `linux`, `macos`, or `win64`. 2. Ensure that a valid MuJoCo license key file is located at `~/.mujoco/mjkey.txt`. 3. Clone the `deepmind-research` repository: ```shell git clone https://github.com/deepmind/deepmind-research.git cd deepmind-research ``` 4. Create and activate a Python virtual environment: ```shell python3 -m virtualenv catch_carry source catch_carry/bin/activate ``` 5. Install the package: ```shell pip install ./catch_carry ``` ## Quickstart To instantiate and step through the warehouse task: ```python from catch_carry import task_examples import numpy as np # Build an example environment. env = task_examples.build_vision_warehouse() # Get the `action_spec` describing the control inputs. action_spec = env.action_spec() # Step through the environment for one episode with random actions. time_step = env.reset() while not time_step.last(): action = np.random.uniform(action_spec.minimum, action_spec.maximum, size=action_spec.shape) time_step = env.step(action) print("reward = {}, discount = {}, observations = {}.".format( time_step.reward, time_step.discount, time_step.observation)) ``` The above code snippet can also be used for the ball toss task by replacing `build_vision_warehouse` with `build_vision_toss`. ## Visualization [`dm_control.viewer`] can be used to visualize and interact with the environment. We provide the `explore.py` script specifically for this. If you followed our installation instructions above, this can be launched for the warehouse task via: ```shell python3 -m catch_carry.explore --task=warehouse ``` and for the ball toss task via: ```shell python3 -m catch_carry.explore --task=toss ``` ## Citation If you use the code or data in this package, please cite: ``` @article{merel2020catch, title = {Catch \& Carry: Reusable Neural Controllers for Vision-Guided Whole-Body Tasks}, author = {Merel, Josh and Tunyasuvunakool, Saran and Ahuja, Arun and Tassa, Yuval and Hasenclever, Leonard and Pham, Vu and Erez, Tom and Wayne, Greg and Heess, Nicolas}, journal = {ACM Trans. Graph.}, issue_date = {July 2020}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = {39}, number = {4}, articleno = {39}, numpages = {14}, issn = {0730-0301}, year = {2020}, month = jul, url = {https://doi.org/10.1145/3386569.3392474}, doi = {10.1145/3386569.3392474}, } ``` [`dm_control`]: https://github.com/deepmind/dm_control [`dm_control.locomotion`]: https://github.com/deepmind/dm_control/tree/master/dm_control/locomotion [`dm_control.viewer`]: https://github.com/deepmind/dm_control/tree/master/dm_control/viewer ================================================ FILE: catch_carry/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: catch_carry/arm_opener.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utility for opening arms until they are not in contact with a prop.""" import contextlib from dm_control.mujoco.wrapper import mjbindings import numpy as np _MAX_IK_ATTEMPTS = 100 _IK_MAX_CORRECTION_WEIGHT = 0.1 _JOINT_LIMIT_TOLERANCE = 1e-4 _GAP_TOLERANCE = 0.1 class _ArmPropContactRemover(object): """Helper class for removing contacts between an arm and a prop via IK.""" def __init__(self, physics, arm_root, prop, gap): arm_geoms = arm_root.find_all('geom') self._arm_geom_ids = set(physics.bind(arm_geoms).element_id) arm_joints = arm_root.find_all('joint') self._arm_joint_ids = list(physics.bind(arm_joints).element_id) self._arm_qpos_indices = physics.model.jnt_qposadr[self._arm_joint_ids] self._arm_dof_indices = physics.model.jnt_dofadr[self._arm_joint_ids] self._prop_geoms = prop.find_all('geom') self._prop_geom_ids = set(physics.bind(self._prop_geoms).element_id) self._arm_joint_min = np.full(len(self._arm_joint_ids), float('-inf'), dtype=physics.model.jnt_range.dtype) self._arm_joint_max = np.full(len(self._arm_joint_ids), float('inf'), dtype=physics.model.jnt_range.dtype) for i, joint_id in enumerate(self._arm_joint_ids): if physics.model.jnt_limited[joint_id]: self._arm_joint_min[i], self._arm_joint_max[i] = ( physics.model.jnt_range[joint_id]) self._gap = gap def _contact_pair_is_relevant(self, contact): set1 = self._arm_geom_ids set2 = self._prop_geom_ids return ((contact.geom1 in set1 and contact.geom2 in set2) or (contact.geom2 in set1 and contact.geom1 in set2)) def _forward_and_find_next_contact(self, physics): """Forwards the physics and finds the next contact to handle.""" physics.forward() next_contact = None for contact in physics.data.contact: if (self._contact_pair_is_relevant(contact) and (next_contact is None or contact.dist < next_contact.dist)): next_contact = contact return next_contact def _remove_contact_ik_iteration(self, physics, contact): """Performs one linearized IK iteration to remove the specified contact.""" if contact.geom1 in self._arm_geom_ids: sign = -1 geom_id = contact.geom1 else: sign = 1 geom_id = contact.geom2 body_id = physics.model.geom_bodyid[geom_id] normal = sign * contact.frame[:3] jac_dtype = physics.data.qpos.dtype jac = np.empty((6, physics.model.nv), dtype=jac_dtype) jac_pos, jac_rot = jac[:3], jac[3:] mjbindings.mjlib.mj_jacPointAxis( physics.model.ptr, physics.data.ptr, jac_pos, jac_rot, contact.pos + (contact.dist / 2) * normal, normal, body_id) # Calculate corrections w.r.t. all joints, disregarding joint limits. delta_xpos = normal * max(0, self._gap - contact.dist) jac_all_joints = jac_pos[:, self._arm_dof_indices] update_unfiltered = np.linalg.lstsq( jac_all_joints, delta_xpos, rcond=None)[0] # Filter out joints at limit that are corrected in the "wrong" direction. initial_qpos = np.array(physics.data.qpos[self._arm_qpos_indices]) min_filter = np.logical_and( initial_qpos - self._arm_joint_min < _JOINT_LIMIT_TOLERANCE, update_unfiltered < 0) max_filter = np.logical_and( self._arm_joint_max - initial_qpos < _JOINT_LIMIT_TOLERANCE, update_unfiltered > 0) active_joints = np.where( np.logical_not(np.logical_or(min_filter, max_filter)))[0] # Calculate corrections w.r.t. valid joints only. active_dof_indices = self._arm_dof_indices[active_joints] jac_joints = jac_pos[:, active_dof_indices] update_filtered = np.linalg.lstsq(jac_joints, delta_xpos, rcond=None)[0] update_nv = np.zeros(physics.model.nv, dtype=jac_dtype) update_nv[active_dof_indices] = update_filtered # Calculate maximum correction weight that does not violate joint limits. weights = np.full_like(update_filtered, _IK_MAX_CORRECTION_WEIGHT) active_initial_qpos = initial_qpos[active_joints] active_joint_min = self._arm_joint_min[active_joints] active_joint_max = self._arm_joint_max[active_joints] for i in range(len(weights)): proposed_update = update_filtered[i] if proposed_update > 0: max_allowed_update = active_joint_max[i] - active_initial_qpos[i] weights[i] = min(max_allowed_update / proposed_update, weights[i]) elif proposed_update < 0: min_allowed_update = active_joint_min[i] - active_initial_qpos[i] weights[i] = min(min_allowed_update / proposed_update, weights[i]) weight = min(weights) # Integrate the correction into `qpos`. mjbindings.mjlib.mj_integratePos( physics.model.ptr, physics.data.qpos, update_nv, weight) # "Paranoid" clip the modified joint `qpos` to within joint limits. active_qpos_indices = self._arm_qpos_indices[active_joints] physics.data.qpos[active_qpos_indices] = np.clip( physics.data.qpos[active_qpos_indices], active_joint_min, active_joint_max) @contextlib.contextmanager def _override_margins_and_gaps(self, physics): """Context manager that overrides geom margins and gaps to `self._gap`.""" prop_geom_bindings = physics.bind(self._prop_geoms) original_margins = np.array(prop_geom_bindings.margin) original_gaps = np.array(prop_geom_bindings.gap) prop_geom_bindings.margin = self._gap * (1 - _GAP_TOLERANCE) prop_geom_bindings.gap = self._gap * (1 - _GAP_TOLERANCE) yield prop_geom_bindings.margin = original_margins prop_geom_bindings.gap = original_gaps physics.forward() def remove_contacts(self, physics): with self._override_margins_and_gaps(physics): for _ in range(_MAX_IK_ATTEMPTS): contact = self._forward_and_find_next_contact(physics) if contact is None: return self._remove_contact_ik_iteration(physics, contact) contact = self._forward_and_find_next_contact(physics) if contact and contact.dist < 0: raise RuntimeError( 'Failed to remove contact with prop after {} iterations. ' 'Final contact distance is {}.'.format( _MAX_IK_ATTEMPTS, contact.dist)) def open_arms_for_prop(physics, left_arm_root, right_arm_root, prop, gap): """Opens left and right arms so as to leave a specified gap with the prop.""" left_arm_opener = _ArmPropContactRemover(physics, left_arm_root, prop, gap) left_arm_opener.remove_contacts(physics) right_arm_opener = _ArmPropContactRemover(physics, right_arm_root, prop, gap) right_arm_opener.remove_contacts(physics) ================================================ FILE: catch_carry/ball_toss.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A ball-tossing task.""" import collections from dm_control import composer from dm_control import mjcf from dm_control.composer import variation from dm_control.composer.observation import observable from dm_control.locomotion.arenas import floors from dm_control.locomotion.mocap import loader as mocap_loader import numpy as np from catch_carry import mocap_data from catch_carry import props from catch_carry import trajectories _PHYSICS_TIMESTEP = 0.005 _BUCKET_SIZE = (0.2, 0.2, 0.02) # Magnitude of the sparse reward. _SPARSE_REWARD = 1.0 class BallToss(composer.Task): """A task involving catching and throwing a ball.""" def __init__(self, walker, proto_modifier=None, negative_reward_on_failure_termination=True, priority_friction=False, bucket_offset=1., y_range=0.5, toss_delay=0.5, randomize_init=False, ): """Initialize ball tossing task. Args: walker: the walker to be used in this task. proto_modifier: function to modify trajectory proto. negative_reward_on_failure_termination: flag to provide negative reward as task fails. priority_friction: sets friction priority thereby making prop objects have higher friction. bucket_offset: distance in meters to push bucket (away from walker) y_range: range (uniformly sampled) of distance in meters the ball is thrown left/right of the walker. toss_delay: time in seconds to delay after catching before changing reward to encourage throwing the ball. randomize_init: flag to randomize initial pose. """ self._proto_modifier = proto_modifier self._negative_reward_on_failure_termination = ( negative_reward_on_failure_termination) self._priority_friction = priority_friction self._bucket_rewarded = False self._bucket_offset = bucket_offset self._y_range = y_range self._toss_delay = toss_delay self._randomize_init = randomize_init # load a clip to grab a ball prop and initializations loader = mocap_loader.HDF5TrajectoryLoader( mocap_data.H5_PATH, trajectories.WarehouseTrajectory) clip_number = 54 self._trajectory = loader.get_trajectory( mocap_data.IDENTIFIER_TEMPLATE.format(clip_number)) # create the floor arena self._arena = floors.Floor() self._walker = walker self._walker_geoms = tuple(self._walker.mjcf_model.find_all('geom')) self._feet_geoms = ( walker.mjcf_model.find('body', 'lfoot').find_all('geom') + walker.mjcf_model.find('body', 'rfoot').find_all('geom')) self._lhand_geoms = ( walker.mjcf_model.find('body', 'lhand').find_all('geom')) self._rhand_geoms = ( walker.mjcf_model.find('body', 'rhand').find_all('geom')) # resize the humanoid based on the motion capture data subject self._trajectory.configure_walkers([self._walker]) walker.create_root_joints(self._arena.attach(walker)) control_timestep = self._trajectory.dt self.set_timesteps(control_timestep, _PHYSICS_TIMESTEP) # build and attach the bucket to the arena self._bucket = props.Bucket(_BUCKET_SIZE) self._arena.attach(self._bucket) self._prop = self._trajectory.create_props( priority_friction=self._priority_friction)[0] self._arena.add_free_entity(self._prop) self._task_observables = collections.OrderedDict() # define feature based observations (agent may or may not use these) def ego_prop_xpos(physics): prop_xpos, _ = self._prop.get_pose(physics) walker_xpos = physics.bind(self._walker.root_body).xpos return self._walker.transform_vec_to_egocentric_frame( physics, prop_xpos - walker_xpos) self._task_observables['prop_{}/xpos'.format(0)] = ( observable.Generic(ego_prop_xpos)) def prop_zaxis(physics): prop_xmat = physics.bind( mjcf.get_attachment_frame(self._prop.mjcf_model)).xmat return prop_xmat[[2, 5, 8]] self._task_observables['prop_{}/zaxis'.format(0)] = ( observable.Generic(prop_zaxis)) def ego_bucket_xpos(physics): bucket_xpos, _ = self._bucket.get_pose(physics) walker_xpos = physics.bind(self._walker.root_body).xpos return self._walker.transform_vec_to_egocentric_frame( physics, bucket_xpos - walker_xpos) self._task_observables['bucket_{}/xpos'.format(0)] = ( observable.Generic(ego_bucket_xpos)) for obs in (self._walker.observables.proprioception + self._walker.observables.kinematic_sensors + self._walker.observables.dynamic_sensors + list(self._task_observables.values())): obs.enabled = True @property def root_entity(self): return self._arena @property def task_observables(self): return self._task_observables @property def name(self): return 'ball_toss' def initialize_episode_mjcf(self, random_state): self._reward = 0.0 self._discount = 1.0 self._should_terminate = False self._prop.detach() if self._proto_modifier: trajectory = self._trajectory.get_modified_trajectory( self._proto_modifier) self._prop = trajectory.create_props( priority_friction=self._priority_friction)[0] self._arena.add_free_entity(self._prop) # set the bucket position for this episode bucket_distance = 1.*random_state.rand()+self._bucket_offset mjcf.get_attachment_frame(self._bucket.mjcf_model).pos = [bucket_distance, 0, 0] def initialize_episode(self, physics, random_state): self._ground_geomid = physics.bind( self._arena.mjcf_model.worldbody.geom[0]).element_id self._feet_geomids = set(physics.bind(self._feet_geoms).element_id) self._lhand_geomids = set(physics.bind(self._lhand_geoms).element_id) self._rhand_geomids = set(physics.bind(self._rhand_geoms).element_id) self._walker_geomids = set(physics.bind(self._walker_geoms).element_id) self._bucket_rewarded = False if self._randomize_init: timestep_ind = random_state.randint( len(self._trajectory._proto.timesteps)) # pylint: disable=protected-access else: timestep_ind = 0 walker_init_timestep = self._trajectory._proto.timesteps[timestep_ind] # pylint: disable=protected-access prop_init_timestep = self._trajectory._proto.timesteps[0] # pylint: disable=protected-access self._walker.set_pose( physics, position=walker_init_timestep.walkers[0].position, quaternion=walker_init_timestep.walkers[0].quaternion) self._walker.set_velocity( physics, velocity=walker_init_timestep.walkers[0].velocity, angular_velocity=walker_init_timestep.walkers[0].angular_velocity) physics.bind(self._walker.mocap_joints).qpos = ( walker_init_timestep.walkers[0].joints) physics.bind(self._walker.mocap_joints).qvel = ( walker_init_timestep.walkers[0].joints_velocity) initial_prop_pos = np.copy(prop_init_timestep.props[0].position) initial_prop_pos[0] += 1. # move ball (from mocap) relative to origin initial_prop_pos[1] = 0 # align ball with walker along y-axis self._prop.set_pose( physics, position=initial_prop_pos, quaternion=prop_init_timestep.props[0].quaternion) # specify the distributions of ball velocity componentwise x_vel_mag = 4.5*random_state.rand()+1.5 # m/s x_dist = 3 # approximate initial distance from walker to ball self._t_dist = x_dist/x_vel_mag # target time at which to hit the humanoid z_offset = .4*random_state.rand()+.1 # height at which to hit person # compute velocity to satisfy desired projectile trajectory z_vel_mag = (4.9*(self._t_dist**2) + z_offset)/self._t_dist y_range = variation.evaluate(self._y_range, random_state=random_state) y_vel_mag = y_range*random_state.rand()-y_range/2 trans_vel = [-x_vel_mag, y_vel_mag, z_vel_mag] ang_vel = 1.5*random_state.rand(3)-0.75 self._prop.set_velocity( physics, velocity=trans_vel, angular_velocity=ang_vel) def after_step(self, physics, random_state): # First we check for failure termination (walker or ball touches ground). ground_failure = False for contact in physics.data.contact: if ((contact.geom1 == self._ground_geomid and contact.geom2 not in self._feet_geomids) or (contact.geom2 == self._ground_geomid and contact.geom1 not in self._feet_geomids)): ground_failure = True break contact_features = self._evaluate_contacts(physics) prop_lhand, prop_rhand, bucket_prop, bucket_walker, walker_prop = contact_features # or also fail if walker hits bucket if ground_failure or bucket_walker: if self._negative_reward_on_failure_termination: self._reward = -_SPARSE_REWARD else: self._reward = 0.0 self._should_terminate = True self._discount = 0.0 return self._reward = 0.0 # give reward if prop is in bucket (prop touching bottom surface of bucket) if bucket_prop: self._reward += _SPARSE_REWARD/10 # shaping reward for being closer to bucket if physics.data.time > (self._t_dist + self._toss_delay): bucket_xy = physics.bind(self._bucket.geom).xpos[0][:2] prop_xy = self._prop.get_pose(physics)[0][:2] xy_dist = np.sum(np.array(np.abs(bucket_xy - prop_xy))) self._reward += np.exp(-xy_dist/3.)*_SPARSE_REWARD/50 else: # bonus for hands touching ball if prop_lhand: self._reward += _SPARSE_REWARD/100 if prop_rhand: self._reward += _SPARSE_REWARD/100 # combined with penalty for other body parts touching the ball if walker_prop: self._reward -= _SPARSE_REWARD/100 def get_reward(self, physics): return self._reward def get_discount(self, physics): return self._discount def should_terminate_episode(self, physics): return self._should_terminate def _evaluate_contacts(self, physics): prop_elem_id = physics.bind(self._prop.geom).element_id bucket_bottom_elem_id = physics.bind(self._bucket.geom[0]).element_id bucket_any_elem_id = set(physics.bind(self._bucket.geom).element_id) prop_lhand_contact = False prop_rhand_contact = False bucket_prop_contact = False bucket_walker_contact = False walker_prop_contact = False for contact in physics.data.contact: has_prop = (contact.geom1 == prop_elem_id or contact.geom2 == prop_elem_id) has_bucket_bottom = (contact.geom1 == bucket_bottom_elem_id or contact.geom2 == bucket_bottom_elem_id) has_bucket_any = (contact.geom1 in bucket_any_elem_id or contact.geom2 in bucket_any_elem_id) has_lhand = (contact.geom1 in self._lhand_geomids or contact.geom2 in self._lhand_geomids) has_rhand = (contact.geom1 in self._rhand_geomids or contact.geom2 in self._rhand_geomids) has_walker = (contact.geom1 in self._walker_geomids or contact.geom2 in self._walker_geomids) if has_prop and has_bucket_bottom: bucket_prop_contact = True if has_walker and has_bucket_any: bucket_walker_contact = True if has_walker and has_prop: walker_prop_contact = True if has_prop and has_lhand: prop_lhand_contact = True if has_prop and has_rhand: prop_rhand_contact = True return (prop_lhand_contact, prop_rhand_contact, bucket_prop_contact, bucket_walker_contact, walker_prop_contact) ================================================ FILE: catch_carry/explore.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Simple script to launch viewer with an example environment.""" from absl import app from absl import flags from dm_control import viewer from catch_carry import task_examples FLAGS = flags.FLAGS flags.DEFINE_enum('task', 'warehouse', ['warehouse', 'toss'], 'The task to visualize.') TASKS = { 'warehouse': task_examples.build_vision_warehouse, 'toss': task_examples.build_vision_toss, } def main(unused_argv): viewer.launch(environment_loader=TASKS[FLAGS.task]) if __name__ == '__main__': app.run(main) ================================================ FILE: catch_carry/mocap_data.h5 ================================================ [File too large to display: 25.7 MB] ================================================ FILE: catch_carry/mocap_data.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Metadata for mocap clips that correspond to a walker carrying a prop.""" import collections import enum import os from dm_control.locomotion.mocap import loader as mocap_loader from catch_carry import trajectories H5_DIR = os.path.dirname(__file__) H5_PATH = os.path.join(H5_DIR, 'mocap_data.h5') IDENTIFIER_PREFIX = 'DeepMindCatchCarry' IDENTIFIER_TEMPLATE = IDENTIFIER_PREFIX + '-{:03d}' ClipInfo = collections.namedtuple( 'ClipInfo', ('clip_identifier', 'num_steps', 'dt', 'flags')) class Flag(enum.IntEnum): BOX = 1 << 0 BALL = 1 << 1 LIGHT_PROP = 1 << 2 HEAVY_PROP = 1 << 3 SMALL_PROP = 1 << 4 LARGE_PROP = 1 << 5 FLOOR_LEVEL = 1 << 6 MEDIUM_PEDESTAL = 1 << 7 HIGH_PEDESTAL = 1 << 8 _ALL_CLIPS = None def _get_clip_info(loader, clip_number, flags): clip = loader.get_trajectory(IDENTIFIER_TEMPLATE.format(clip_number)) return ClipInfo( clip_identifier=clip.identifier, num_steps=clip.num_steps, dt=clip.dt, flags=flags) def _get_all_clip_infos_if_necessary(): """Creates the global _ALL_CLIPS list if it has not already been created.""" global _ALL_CLIPS if _ALL_CLIPS is None: loader = mocap_loader.HDF5TrajectoryLoader( H5_PATH, trajectories.WarehouseTrajectory) clip_numbers = (1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53) clip_infos = [] for i, clip_number in enumerate(clip_numbers): flags = 0 if i in _FLOOR_LEVEL: flags |= Flag.FLOOR_LEVEL elif i in _MEDIUM_PEDESTAL: flags |= Flag.MEDIUM_PEDESTAL elif i in _HIGH_PEDESTAL: flags |= Flag.HIGH_PEDESTAL if i in _LIGHT_PROP: flags |= Flag.LIGHT_PROP elif i in _HEAVY_PROP: flags |= Flag.HEAVY_PROP if i in _SMALL_BOX: flags |= Flag.SMALL_PROP flags |= Flag.BOX elif i in _LARGE_BOX: flags |= Flag.LARGE_PROP flags |= Flag.BOX elif i in _SMALL_BALL: flags |= Flag.SMALL_PROP flags |= Flag.BALL elif i in _LARGE_BALL: flags |= Flag.LARGE_PROP flags |= Flag.BALL clip_infos.append(_get_clip_info(loader, clip_number, flags)) _ALL_CLIPS = tuple(clip_infos) def _assert_partitions_all_clips(*args): """Asserts that a given set of subcollections partitions ALL_CLIPS.""" sets = tuple(set(arg) for arg in args) # Check that the union of all the sets is ALL_CLIPS. union = set() for subset in sets: union = union | set(subset) assert union == set(range(48)) # Check that the sets are pairwise disjoint. for i in range(len(sets)): for j in range(i + 1, len(sets)): assert sets[i] & sets[j] == set() _FLOOR_LEVEL = tuple(range(0, 16)) _MEDIUM_PEDESTAL = tuple(range(16, 32)) _HIGH_PEDESTAL = tuple(range(32, 48)) _assert_partitions_all_clips(_FLOOR_LEVEL, _MEDIUM_PEDESTAL, _HIGH_PEDESTAL) _LIGHT_PROP = (0, 1, 2, 3, 8, 9, 12, 13, 16, 17, 18, 19, 24, 25, 26, 27, 34, 35, 38, 39, 42, 43, 46, 47) _HEAVY_PROP = (4, 5, 6, 7, 10, 11, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 44, 45) _assert_partitions_all_clips(_LIGHT_PROP, _HEAVY_PROP) _SMALL_BOX = (0, 1, 4, 5, 16, 17, 20, 21, 34, 35, 36, 37) _LARGE_BOX = (2, 3, 6, 7, 18, 19, 22, 23, 32, 33, 38, 39) _SMALL_BALL = (8, 9, 10, 11, 24, 25, 30, 31, 40, 41, 46, 47) _LARGE_BALL = (12, 13, 14, 15, 26, 27, 28, 29, 42, 43, 44, 45) _assert_partitions_all_clips(_SMALL_BOX, _LARGE_BOX, _SMALL_BALL, _LARGE_BALL) def all_clips(): _get_all_clip_infos_if_necessary() return _ALL_CLIPS def floor_level(): clips = all_clips() return tuple(clips[i] for i in _FLOOR_LEVEL) def medium_pedestal(): clips = all_clips() return tuple(clips[i] for i in _MEDIUM_PEDESTAL) def high_pedestal(): clips = all_clips() return tuple(clips[i] for i in _HIGH_PEDESTAL) def light_prop(): clips = all_clips() return tuple(clips[i] for i in _LIGHT_PROP) def heavy_prop(): clips = all_clips() return tuple(clips[i] for i in _HEAVY_PROP) def small_box(): clips = all_clips() return tuple(clips[i] for i in _SMALL_BOX) def large_box(): clips = all_clips() return tuple(clips[i] for i in _LARGE_BOX) def small_ball(): clips = all_clips() return tuple(clips[i] for i in _SMALL_BALL) def large_ball(): clips = all_clips() return tuple(clips[i] for i in _LARGE_BALL) ================================================ FILE: catch_carry/props.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A rectangular pedestal.""" from dm_control import composer from dm_control import mjcf class Pedestal(composer.Entity): """A rectangular pedestal.""" def _build(self, size=(.2, .3, .05), rgba=(0, .5, 0, 1), name='pedestal'): self._mjcf_root = mjcf.RootElement(model=name) self._geom = self._mjcf_root.worldbody.add( 'geom', type='box', size=size, name='geom', rgba=rgba) @property def mjcf_model(self): return self._mjcf_root @property def geom(self): return self._geom def after_compile(self, physics, unused_random_state): super(Pedestal, self).after_compile(physics, unused_random_state) self._body_geom_ids = set( physics.bind(geom).element_id for geom in self.mjcf_model.find_all('geom')) @property def body_geom_ids(self): return self._body_geom_ids class Bucket(composer.Entity): """A rectangular bucket.""" def _build(self, size=(.2, .3, .05), rgba=(0, .5, 0, 1), name='pedestal'): self._mjcf_root = mjcf.RootElement(model=name) self._geoms = [] self._geoms.append(self._mjcf_root.worldbody.add( 'geom', type='box', size=size, name='geom_bottom', rgba=rgba)) self._geoms.append(self._mjcf_root.worldbody.add( 'geom', type='box', size=(size[2], size[1], size[0]), name='geom_s1', rgba=rgba, pos=[size[0], 0, size[0]])) self._geoms.append(self._mjcf_root.worldbody.add( 'geom', type='box', size=(size[2], size[1], size[0]), name='geom_s2', rgba=rgba, pos=[-size[0], 0, size[0]])) self._geoms.append(self._mjcf_root.worldbody.add( 'geom', type='box', size=(size[0], size[2], size[0]), name='geom_s3', rgba=rgba, pos=[0, size[1], size[0]])) self._geoms.append(self._mjcf_root.worldbody.add( 'geom', type='box', size=(size[0], size[2], size[0]), name='geom_s4', rgba=rgba, pos=[0, -size[1], size[0]])) @property def mjcf_model(self): return self._mjcf_root @property def geom(self): return self._geoms def after_compile(self, physics, unused_random_state): super(Bucket, self).after_compile(physics, unused_random_state) self._body_geom_ids = set( physics.bind(geom).element_id for geom in self.mjcf_model.find_all('geom')) @property def body_geom_ids(self): return self._body_geom_ids ================================================ FILE: catch_carry/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from setuptools import find_packages from setuptools import setup REQUIRED_PACKAGES = ['absl-py', 'dm_control', 'numpy'] setup( name='catch_carry', version='0.1', description='Whole-body object manipulation tasks and motion capture data.', url='https://github.com/deepmind/deepmind-research/catch_carry', author='DeepMind', author_email='stunya@google.com', # Contained modules and scripts. packages=find_packages(), install_requires=REQUIRED_PACKAGES, platforms=['any'], license='Apache 2.0', ) ================================================ FILE: catch_carry/task_examples.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Functions that build representative tasks.""" from dm_control import composer from dm_control.composer.variation import distributions from dm_control.locomotion.mocap import loader as mocap_loader from dm_control.locomotion.walkers import cmu_humanoid from catch_carry import ball_toss from catch_carry import warehouse def build_vision_warehouse(random_state=None): """Build canonical 4-pedestal, 2-prop task.""" # Build a position-controlled CMU humanoid walker. walker = cmu_humanoid.CMUHumanoidPositionControlled( observable_options={'egocentric_camera': dict(enabled=True)}) # Build the task. size_distribution = distributions.Uniform(low=0.75, high=1.25) mass_distribution = distributions.Uniform(low=2, high=7) prop_resizer = mocap_loader.PropResizer(size_factor=size_distribution, mass=mass_distribution) task = warehouse.PhasedBoxCarry( walker=walker, num_props=2, num_pedestals=4, proto_modifier=prop_resizer, negative_reward_on_failure_termination=True) # return the environment return composer.Environment( time_limit=15, task=task, random_state=random_state, strip_singleton_obs_buffer_dim=True, max_reset_attempts=float('inf')) def build_vision_toss(random_state=None): """Build canonical ball tossing task.""" # Build a position-controlled CMU humanoid walker. walker = cmu_humanoid.CMUHumanoidPositionControlled( observable_options={'egocentric_camera': dict(enabled=True)}) # Build the task. size_distribution = distributions.Uniform(low=0.95, high=1.5) mass_distribution = distributions.Uniform(low=2, high=4) prop_resizer = mocap_loader.PropResizer(size_factor=size_distribution, mass=mass_distribution) task = ball_toss.BallToss( walker=walker, proto_modifier=prop_resizer, negative_reward_on_failure_termination=True, priority_friction=True, bucket_offset=3., y_range=0.5, toss_delay=1.5, randomize_init=True) # return the environment return composer.Environment( time_limit=6, task=task, random_state=random_state, strip_singleton_obs_buffer_dim=True, max_reset_attempts=float('inf')) ================================================ FILE: catch_carry/trajectories.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Mocap trajectory that assumes props start stationary on pedestals.""" import copy import enum import itertools from dm_control.locomotion.mocap import mocap_pb2 from dm_control.locomotion.mocap import trajectory from dm_control.utils import transformations import numpy as np _PEDESTAL_SIZE = (0.2, 0.2, 0.02) _MAX_SETTLE_STEPS = 100 @enum.unique class ClipSegment(enum.Enum): """Annotations for subsegments within a warehouse clips.""" # Clip segment corresponding to a walker approaching an object APPROACH = 1 # Clip segment corresponding to a walker picking up an object. PICKUP = 2 # Clip segment corresponding to the "first half" of the walker carrying an # object, beginning from the walker backing away from a pedestal with # object in hand. CARRY1 = 3 # Clip segment corresponding to the "second half" of the walker carrying an # object, ending in the walker approaching a pedestal the object in hand. CARRY2 = 4 # Clip segment corresponding to a walker putting down an object on a pedestal. PUTDOWN = 5 # Clip segment corresponding to a walker backing off after successfully # placing an object on a pedestal. BACKOFF = 6 def _get_rotated_bounding_box(size, quaternion): """Calculates the bounding box of a rotated 3D box. Args: size: An array of length 3 specifying the half-lengths of a box. quaternion: A unit quaternion specifying the box's orientation. Returns: An array of length 3 specifying the half-lengths of the bounding box of the rotated box. """ corners = ((size[0], size[1], size[2]), (size[0], size[1], -size[2]), (size[0], -size[1], size[2]), (-size[0], size[1], size[2])) rotated_corners = tuple( transformations.quat_rotate(quaternion, corner) for corner in corners) return np.amax(np.abs(rotated_corners), axis=0) def _get_prop_z_extent(prop_proto, quaternion): """Calculates the "z-extent" of the prop in given orientation. This is the distance from the centre of the prop to its lowest point in the world frame, taking into account the prop's orientation. Args: prop_proto: A `mocap_pb2.Prop` protocol buffer defining a prop. quaternion: A unit quaternion specifying the prop's orientation. Returns: the distance from the centre of the prop to its lowest point in the world frame in the specified orientation. """ if prop_proto.shape == mocap_pb2.Prop.BOX: return _get_rotated_bounding_box(prop_proto.size, quaternion)[2] elif prop_proto.shape == mocap_pb2.Prop.SPHERE: return prop_proto.size[0] else: raise NotImplementedError( 'Unsupported prop shape: {}'.format(prop_proto.shape)) class WarehouseTrajectory(trajectory.Trajectory): """Mocap trajectory that assumes props start stationary on pedestals.""" def infer_pedestal_positions(self, num_averaged_steps=30, ground_height_tolerance=0.1, proto_modifier=None): proto = self._proto if proto_modifier is not None: proto = copy.copy(proto) proto_modifier(proto) if not proto.props: return [] positions = [] for timestep in itertools.islice(proto.timesteps, num_averaged_steps): positions_for_timestep = [] for prop_proto, prop_timestep in zip(proto.props, timestep.props): z_extent = _get_prop_z_extent(prop_proto, prop_timestep.quaternion) positions_for_timestep.append([prop_timestep.position[0], prop_timestep.position[1], prop_timestep.position[2] - z_extent]) positions.append(positions_for_timestep) median_positions = np.median(positions, axis=0) median_positions[:, 2][median_positions[:, 2] < ground_height_tolerance] = 0 return median_positions def get_props_z_extent(self, physics): timestep = self._proto.timesteps[self._get_step_id(physics.time())] out = [] for prop_proto, prop_timestep in zip(self._proto.props, timestep.props): z_extent = _get_prop_z_extent(prop_proto, prop_timestep.quaternion) out.append(z_extent) return out class SinglePropCarrySegmentedTrajectory(WarehouseTrajectory): """A mocap trajectory class that automatically segments prop-carry clips. The algorithm implemented in the class only works if the trajectory consists of exactly one walker and one prop. The value of `pedestal_zone_distance` the exact nature of zone crossings are determined empirically from the DeepMindCatchCarry dataset, and are likely to not work well outside of this setting. """ def __init__(self, proto, start_time=None, end_time=None, pedestal_zone_distance=0.65, start_step=None, end_step=None, zero_out_velocities=True): super(SinglePropCarrySegmentedTrajectory, self).__init__( proto, start_time, end_time, start_step=start_step, end_step=end_step, zero_out_velocities=zero_out_velocities) self._pedestal_zone_distance = pedestal_zone_distance self._generate_segments() def _generate_segments(self): pedestal_position = self.infer_pedestal_positions()[0] # First we find the timesteps at which the walker cross the pedestal's # vicinity zone. This should happen exactly 4 times: enter it to pick up, # leave it, enter it again to put down, and leave it again. was_in_pedestal_zone = False crossings = [] for i, timestep in enumerate(self._proto.timesteps): pedestal_dist = np.linalg.norm( timestep.walkers[0].position[:2] - pedestal_position[:2]) if pedestal_dist > self._pedestal_zone_distance and was_in_pedestal_zone: crossings.append(i) was_in_pedestal_zone = False elif (pedestal_dist <= self._pedestal_zone_distance and not was_in_pedestal_zone): crossings.append(i) was_in_pedestal_zone = True if len(crossings) < 3: raise RuntimeError( 'Failed to segment the given trajectory: ' 'walker should cross the pedestal zone\'s boundary >= 3 times ' 'but got {}'.format(len(crossings))) elif len(crossings) == 3: crossings.append(len(self._proto.timesteps) - 1) elif len(crossings) > 4: crossings = [crossings[0], crossings[1], crossings[-2], crossings[-1]] # Identify the pick up event during the first in-zone interval. start_position = np.array(self._proto.timesteps[0].props[0].position) end_position = np.array(self._proto.timesteps[-1].props[0].position) pick_up_step = crossings[1] - 1 while pick_up_step > crossings[0]: prev_position = self._proto.timesteps[pick_up_step - 1].props[0].position if np.linalg.norm(start_position[2] - prev_position[2]) < 0.001: break pick_up_step -= 1 # Identify the put down event during the second in-zone interval. put_down_step = crossings[2] while put_down_step <= crossings[3]: next_position = self._proto.timesteps[put_down_step + 1].props[0].position if np.linalg.norm(end_position[2] - next_position[2]) < 0.001: break put_down_step += 1 carry_halfway_step = int((crossings[1] + crossings[2]) / 2) self._segment_intervals = { ClipSegment.APPROACH: (0, crossings[0]), ClipSegment.PICKUP: (crossings[0], pick_up_step), ClipSegment.CARRY1: (pick_up_step, carry_halfway_step), ClipSegment.CARRY2: (carry_halfway_step, crossings[2]), ClipSegment.PUTDOWN: (crossings[2], put_down_step), ClipSegment.BACKOFF: (put_down_step, len(self._proto.timesteps)) } def segment_interval(self, segment): start_step, end_step = self._segment_intervals[segment] return (start_step * self._proto.dt, (end_step - 1) * self._proto.dt) def get_random_timestep_in_segment(self, segment, random_step): return self._proto.timesteps[ random_step.randint(*self._segment_intervals[segment])] ================================================ FILE: catch_carry/warehouse.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A prop-carry task that transition between multiple phases.""" import collections import colorsys import enum from absl import logging from dm_control import composer from dm_control import mjcf from dm_control.composer.observation import observable from dm_control.locomotion.arenas import floors from dm_control.locomotion.mocap import loader as mocap_loader from dm_control.mujoco.wrapper import mjbindings import numpy as np from catch_carry import arm_opener from catch_carry import mocap_data from catch_carry import props from catch_carry import trajectories _PHYSICS_TIMESTEP = 0.005 # Maximum number of physics steps to run when settling props onto pedestals # during episode initialization. _MAX_SETTLE_STEPS = 1000 # Maximum velocity for prop to be considered settled. # Used during episode initialization only. _SETTLE_QVEL_TOL = 1e-5 # Magnitude of the sparse reward. _SPARSE_REWARD = 1.0 # Maximum distance for walkers to be considered to be "near" a pedestal/target. _TARGET_TOL = 0.65 # Defines how pedestals are placed around the arena. # Pedestals are placed at constant angle intervals around the arena's center. _BASE_PEDESTAL_DIST = 3 # Base distance from center. _PEDESTAL_DIST_DELTA = 0.5 # Maximum variation on the base distance. # Base hue-luminosity-saturation of the pedestal colors. # We rotate through the hue for each pedestal created in the environment. _BASE_PEDESTAL_H = 0.1 _BASE_PEDESTAL_L = 0.3 _BASE_PEDESTAL_S = 0.7 # Pedestal luminosity when active. _ACTIVATED_PEDESTAL_L = 0.8 _PEDESTAL_SIZE = (0.2, 0.2, 0.02) _SINGLE_PEDESTAL_COLOR = colorsys.hls_to_rgb(.3, .15, .35) + (1.0,) WALKER_PEDESTAL = 'walker_pedestal' WALKER_PROP = 'walker_prop' PROP_PEDESTAL = 'prop_pedestal' TARGET_STATE = 'target_state/' CURRENT_STATE = 'meta/current_state/' def _is_same_state(state_1, state_2): if state_1.keys() != state_2.keys(): return False for k in state_1: if not np.all(state_1[k] == state_2[k]): return False return True def _singleton_or_none(iterable): iterator = iter(iterable) try: return next(iterator) except StopIteration: return None def _generate_pedestal_colors(num_pedestals): """Function to get colors for pedestals.""" colors = [] for i in range(num_pedestals): h = _BASE_PEDESTAL_H + i / num_pedestals while h > 1: h -= 1 colors.append( colorsys.hls_to_rgb(h, _BASE_PEDESTAL_L, _BASE_PEDESTAL_S) + (1.0,)) return colors InitializationParameters = collections.namedtuple( 'InitializationParameters', ('clip_segment', 'prop_id', 'pedestal_id')) def _rotate_vector_by_quaternion(vec, quat): result = np.empty(3) mjbindings.mjlib.mju_rotVecQuat(result, np.asarray(vec), np.asarray(quat)) return result @enum.unique class WarehousePhase(enum.Enum): TERMINATED = 0 GOTOTARGET = 1 PICKUP = 2 CARRYTOTARGET = 3 PUTDOWN = 4 def _find_random_free_pedestal_id(target_state, random_state): free_pedestals = ( np.where(np.logical_not(np.any(target_state, axis=0)))[0]) return random_state.choice(free_pedestals) def _find_random_occupied_pedestal_id(target_state, random_state): occupied_pedestals = ( np.where(np.any(target_state, axis=0))[0]) return random_state.choice(occupied_pedestals) def one_hot(values, num_unique): return np.squeeze(np.eye(num_unique)[np.array(values).reshape(-1)]) class SinglePropFourPhases(object): """A phase manager that transitions between four phases for a single prop.""" def __init__(self, fixed_initialization_phase=None): self._phase = WarehousePhase.TERMINATED self._fixed_initialization_phase = fixed_initialization_phase def initialize_episode(self, target_state, random_state): """Randomly initializes an episode into one of the four phases.""" if self._fixed_initialization_phase is None: self._phase = random_state.choice([ WarehousePhase.GOTOTARGET, WarehousePhase.PICKUP, WarehousePhase.CARRYTOTARGET, WarehousePhase.PUTDOWN ]) else: self._phase = self._fixed_initialization_phase self._prop_id = random_state.randint(len(target_state[PROP_PEDESTAL])) self._pedestal_id = np.nonzero( target_state[PROP_PEDESTAL][self._prop_id])[0][0] pedestal_id_for_initialization = self._pedestal_id if self._phase == WarehousePhase.GOTOTARGET: clip_segment = trajectories.ClipSegment.APPROACH target_state[WALKER_PROP][:] = 0 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 elif self._phase == WarehousePhase.PICKUP: clip_segment = trajectories.ClipSegment.PICKUP target_state[WALKER_PROP][self._prop_id] = 1 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 # Set self._pedestal_id to the next pedestal after pickup is successful. self._pedestal_id = _find_random_free_pedestal_id( target_state[PROP_PEDESTAL], random_state) target_state[PROP_PEDESTAL][self._prop_id, :] = 0 elif self._phase == WarehousePhase.CARRYTOTARGET: clip_segment = random_state.choice([ trajectories.ClipSegment.CARRY1, trajectories.ClipSegment.CARRY2]) self._pedestal_id = _find_random_free_pedestal_id( target_state[PROP_PEDESTAL], random_state) if clip_segment == trajectories.ClipSegment.CARRY2: pedestal_id_for_initialization = self._pedestal_id target_state[WALKER_PROP][self._prop_id] = 1 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 target_state[PROP_PEDESTAL][self._prop_id, :] = 0 elif self._phase == WarehousePhase.PUTDOWN: clip_segment = trajectories.ClipSegment.PUTDOWN target_state[WALKER_PROP][:] = 0 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 return InitializationParameters( clip_segment, self._prop_id, pedestal_id_for_initialization) def on_success(self, target_state, random_state): """Transitions into the next phase upon success of current phase.""" if self._phase == WarehousePhase.GOTOTARGET: if self._prop_id is not None: self._phase = WarehousePhase.PICKUP # Set self._pedestal_id to the next pedestal after pickup is successful. self._pedestal_id = ( _find_random_free_pedestal_id( target_state[PROP_PEDESTAL], random_state)) target_state[WALKER_PROP][self._prop_id] = 1 target_state[PROP_PEDESTAL][self._prop_id, :] = 0 else: # If you go to an empty pedestal, go to pedestal with a prop. self._pedestal_id = ( _find_random_occupied_pedestal_id( target_state[PROP_PEDESTAL], random_state)) target_state[WALKER_PEDESTAL][:] = 0 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 self._prop_id = np.argwhere( target_state[PROP_PEDESTAL][:, self._pedestal_id])[0, 0] elif self._phase == WarehousePhase.PICKUP: self._phase = WarehousePhase.CARRYTOTARGET target_state[WALKER_PEDESTAL][:] = 0 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 elif self._phase == WarehousePhase.CARRYTOTARGET: self._phase = WarehousePhase.PUTDOWN target_state[WALKER_PROP][:] = 0 target_state[PROP_PEDESTAL][self._prop_id, self._pedestal_id] = 1 elif self._phase == WarehousePhase.PUTDOWN: self._phase = WarehousePhase.GOTOTARGET # Set self._pedestal_id to the next pedestal after putdown is successful. self._pedestal_id = ( _find_random_free_pedestal_id( target_state[PROP_PEDESTAL], random_state)) self._prop_id = None target_state[WALKER_PEDESTAL][:] = 0 target_state[WALKER_PEDESTAL][self._pedestal_id] = 1 return self._phase @property def phase(self): return self._phase @property def prop_id(self): return self._prop_id @property def pedestal_id(self): return self._pedestal_id class PhasedBoxCarry(composer.Task): """A prop-carry task that transitions between multiple phases.""" def __init__( self, walker, num_props, num_pedestals, proto_modifier=None, transition_class=SinglePropFourPhases, min_prop_gap=0.05, pedestal_height_range=(0.45, 0.75), log_transitions=False, negative_reward_on_failure_termination=True, use_single_pedestal_color=True, priority_friction=False, fixed_initialization_phase=None): """Initialize phased/instructed box-carrying ("warehouse") task. Args: walker: the walker to be used in this task. num_props: the number of props in the task scene. num_pedestals: the number of floating shelves (pedestals) in the task scene. proto_modifier: function to modify trajectory proto. transition_class: the object that handles the transition logic. min_prop_gap: arms are automatically opened to leave a gap around the prop to avoid problematic collisions upon initialization. pedestal_height_range: range of heights for the pedestal. log_transitions: logging/printing of transitions. negative_reward_on_failure_termination: boolean for whether to provide negative sparse rewards on failure termination. use_single_pedestal_color: boolean option for pedestals being the same color or different colors. priority_friction: sets friction priority thereby making prop objects have higher friction. fixed_initialization_phase: an instance of the `WarehousePhase` enum that specifies the phase in which to always initialize the task, or `None` if the initial task phase should be chosen randomly for each episode. """ self._num_props = num_props self._num_pedestals = num_pedestals self._proto_modifier = proto_modifier self._transition_manager = transition_class( fixed_initialization_phase=fixed_initialization_phase) self._min_prop_gap = min_prop_gap self._pedestal_height_range = pedestal_height_range self._log_transitions = log_transitions self._target_state = collections.OrderedDict([ (WALKER_PEDESTAL, np.zeros(num_pedestals)), (WALKER_PROP, np.zeros(num_props)), (PROP_PEDESTAL, np.zeros([num_props, num_pedestals])) ]) self._current_state = collections.OrderedDict([ (WALKER_PEDESTAL, np.zeros(num_pedestals)), (WALKER_PROP, np.zeros(num_props)), (PROP_PEDESTAL, np.zeros([num_props, num_pedestals])) ]) self._negative_reward_on_failure_termination = ( negative_reward_on_failure_termination) self._priority_friction = priority_friction clips = sorted( set(mocap_data.medium_pedestal()) & (set(mocap_data.small_box()) | set(mocap_data.large_box()))) loader = mocap_loader.HDF5TrajectoryLoader( mocap_data.H5_PATH, trajectories.SinglePropCarrySegmentedTrajectory) self._trajectories = [ loader.get_trajectory(clip.clip_identifier) for clip in clips] self._arena = floors.Floor() self._walker = walker self._feet_geoms = ( walker.mjcf_model.find('body', 'lfoot').find_all('geom') + walker.mjcf_model.find('body', 'rfoot').find_all('geom')) self._lhand_geoms = ( walker.mjcf_model.find('body', 'lhand').find_all('geom')) self._rhand_geoms = ( walker.mjcf_model.find('body', 'rhand').find_all('geom')) self._trajectories[0].configure_walkers([self._walker]) walker.create_root_joints(self._arena.attach(walker)) control_timestep = self._trajectories[0].dt for i, trajectory in enumerate(self._trajectories): if trajectory.dt != control_timestep: raise ValueError( 'Inconsistent control timestep: ' 'trajectories[{}].dt == {} but trajectories[0].dt == {}' .format(i, trajectory.dt, control_timestep)) self.set_timesteps(control_timestep, _PHYSICS_TIMESTEP) if use_single_pedestal_color: self._pedestal_colors = [_SINGLE_PEDESTAL_COLOR] * num_pedestals else: self._pedestal_colors = _generate_pedestal_colors(num_pedestals) self._pedestals = [props.Pedestal(_PEDESTAL_SIZE, rgba) for rgba in self._pedestal_colors] for pedestal in self._pedestals: self._arena.attach(pedestal) self._props = [ self._trajectories[0].create_props( priority_friction=self._priority_friction)[0] for _ in range(num_props) ] for prop in self._props: self._arena.add_free_entity(prop) self._task_observables = collections.OrderedDict() self._task_observables['target_phase'] = observable.Generic( lambda _: one_hot(self._transition_manager.phase.value, num_unique=5)) def ego_prop_xpos(physics): prop_id = self._focal_prop_id if prop_id is None: return np.zeros((3,)) prop = self._props[prop_id] prop_xpos, _ = prop.get_pose(physics) walker_xpos = physics.bind(self._walker.root_body).xpos return self._walker.transform_vec_to_egocentric_frame( physics, prop_xpos - walker_xpos) self._task_observables['target_prop/xpos'] = ( observable.Generic(ego_prop_xpos)) def prop_zaxis(physics): prop_id = self._focal_prop_id if prop_id is None: return np.zeros((3,)) prop = self._props[prop_id] prop_xmat = physics.bind( mjcf.get_attachment_frame(prop.mjcf_model)).xmat return prop_xmat[[2, 5, 8]] self._task_observables['target_prop/zaxis'] = ( observable.Generic(prop_zaxis)) def ego_pedestal_xpos(physics): pedestal_id = self._focal_pedestal_id if pedestal_id is None: return np.zeros((3,)) pedestal = self._pedestals[pedestal_id] pedestal_xpos, _ = pedestal.get_pose(physics) walker_xpos = physics.bind(self._walker.root_body).xpos return self._walker.transform_vec_to_egocentric_frame( physics, pedestal_xpos - walker_xpos) self._task_observables['target_pedestal/xpos'] = ( observable.Generic(ego_pedestal_xpos)) for obs in (self._walker.observables.proprioception + self._walker.observables.kinematic_sensors + self._walker.observables.dynamic_sensors + list(self._task_observables.values())): obs.enabled = True self._focal_prop_id = None self._focal_pedestal_id = None @property def root_entity(self): return self._arena @property def task_observables(self): return self._task_observables @property def name(self): return 'warehouse' def initialize_episode_mjcf(self, random_state): self._reward = 0.0 self._discount = 1.0 self._should_terminate = False self._before_step_success = False for target_value in self._target_state.values(): target_value[:] = 0 for pedestal_id, pedestal in enumerate(self._pedestals): angle = 2 * np.pi * pedestal_id / len(self._pedestals) dist = (_BASE_PEDESTAL_DIST + _PEDESTAL_DIST_DELTA * random_state.uniform(-1, 1)) height = random_state.uniform(*self._pedestal_height_range) pedestal_pos = [dist * np.cos(angle), dist * np.sin(angle), height - pedestal.geom.size[2]] mjcf.get_attachment_frame(pedestal.mjcf_model).pos = pedestal_pos for prop in self._props: prop.detach() self._props = [] self._trajectory_for_prop = [] for prop_id in range(self._num_props): trajectory = random_state.choice(self._trajectories) if self._proto_modifier: trajectory = trajectory.get_modified_trajectory( self._proto_modifier, random_state=random_state) prop = trajectory.create_props( priority_friction=self._priority_friction)[0] prop.mjcf_model.model = 'prop_{}'.format(prop_id) self._arena.add_free_entity(prop) self._props.append(prop) self._trajectory_for_prop.append(trajectory) def _settle_props(self, physics): prop_freejoints = [mjcf.get_attachment_frame(prop.mjcf_model).freejoint for prop in self._props] physics.bind(prop_freejoints).qvel = 0 physics.forward() for _ in range(_MAX_SETTLE_STEPS): self._update_current_state(physics) success = self._evaluate_target_state() stopped = max(abs(physics.bind(prop_freejoints).qvel)) < _SETTLE_QVEL_TOL if success and stopped: break else: physics.step() physics.data.time = 0 def initialize_episode(self, physics, random_state): self._ground_geomid = physics.bind( self._arena.mjcf_model.worldbody.geom[0]).element_id self._feet_geomids = set(physics.bind(self._feet_geoms).element_id) self._lhand_geomids = set(physics.bind(self._lhand_geoms).element_id) self._rhand_geomids = set(physics.bind(self._rhand_geoms).element_id) for prop_id in range(len(self._props)): pedestal_id = _find_random_free_pedestal_id( self._target_state[PROP_PEDESTAL], random_state) pedestal = self._pedestals[pedestal_id] self._target_state[PROP_PEDESTAL][prop_id, pedestal_id] = 1 for prop_id, prop in enumerate(self._props): trajectory = self._trajectory_for_prop[prop_id] pedestal_id = np.nonzero( self._target_state[PROP_PEDESTAL][prop_id])[0][0] pedestal = self._pedestals[pedestal_id] pedestal_pos, _ = pedestal.get_pose(physics) pedestal_delta = np.array( pedestal_pos - trajectory.infer_pedestal_positions()[0]) pedestal_delta[2] += pedestal.geom.size[2] prop_timestep = trajectory.get_timestep_data(0).props[0] prop_pos = prop_timestep.position + np.array(pedestal_delta) prop_quat = prop_timestep.quaternion prop_pos[:2] += random_state.uniform( -pedestal.geom.size[:2] / 2, pedestal.geom.size[:2] / 2) prop.set_pose(physics, prop_pos, prop_quat) self._settle_props(physics) init_params = self._transition_manager.initialize_episode( self._target_state, random_state) if self._log_transitions: logging.info(init_params) self._on_transition(physics) init_prop = self._props[init_params.prop_id] init_pedestal = self._pedestals[init_params.pedestal_id] self._init_prop_id = init_params.prop_id self._init_pedestal_id = init_params.pedestal_id init_trajectory = self._trajectory_for_prop[init_params.prop_id] init_timestep = init_trajectory.get_random_timestep_in_segment( init_params.clip_segment, random_state) trajectory_pedestal_pos = init_trajectory.infer_pedestal_positions()[0] init_pedestal_pos = np.array(init_pedestal.get_pose(physics)[0]) delta_pos = init_pedestal_pos - trajectory_pedestal_pos delta_pos[2] = 0 delta_angle = np.pi + np.arctan2(init_pedestal_pos[1], init_pedestal_pos[0]) delta_quat = (np.cos(delta_angle / 2), 0, 0, np.sin(delta_angle / 2)) trajectory_pedestal_to_walker = ( init_timestep.walkers[0].position - trajectory_pedestal_pos) rotated_pedestal_to_walker = _rotate_vector_by_quaternion( trajectory_pedestal_to_walker, delta_quat) self._walker.set_pose( physics, position=trajectory_pedestal_pos + rotated_pedestal_to_walker, quaternion=init_timestep.walkers[0].quaternion) self._walker.set_velocity( physics, velocity=init_timestep.walkers[0].velocity, angular_velocity=init_timestep.walkers[0].angular_velocity) self._walker.shift_pose( physics, position=delta_pos, quaternion=delta_quat, rotate_velocity=True) physics.bind(self._walker.mocap_joints).qpos = ( init_timestep.walkers[0].joints) physics.bind(self._walker.mocap_joints).qvel = ( init_timestep.walkers[0].joints_velocity) if init_params.clip_segment in (trajectories.ClipSegment.CARRY1, trajectories.ClipSegment.CARRY2, trajectories.ClipSegment.PUTDOWN): trajectory_pedestal_to_prop = ( init_timestep.props[0].position - trajectory_pedestal_pos) rotated_pedestal_to_prop = _rotate_vector_by_quaternion( trajectory_pedestal_to_prop, delta_quat) init_prop.set_pose( physics, position=trajectory_pedestal_pos + rotated_pedestal_to_prop, quaternion=init_timestep.props[0].quaternion) init_prop.set_velocity( physics, velocity=init_timestep.props[0].velocity, angular_velocity=init_timestep.props[0].angular_velocity) init_prop.shift_pose( physics, position=delta_pos, quaternion=delta_quat, rotate_velocity=True) # If we have moved the pedestal upwards during height initialization, # the prop may now be lodged inside it. We fix that here. if init_pedestal_pos[2] > trajectory_pedestal_pos[2]: init_prop_geomid = physics.bind(init_prop.geom).element_id init_pedestal_geomid = physics.bind(init_pedestal.geom).element_id disallowed_contact = sorted((init_prop_geomid, init_pedestal_geomid)) def has_disallowed_contact(): physics.forward() for contact in physics.data.contact: if sorted((contact.geom1, contact.geom2)) == disallowed_contact: return True return False while has_disallowed_contact(): init_prop.shift_pose(physics, (0, 0, 0.001)) self._move_arms_if_necessary(physics) self._update_current_state(physics) self._previous_step_success = self._evaluate_target_state() self._focal_prop_id = self._init_prop_id self._focal_pedestal_id = self._init_pedestal_id def _move_arms_if_necessary(self, physics): if self._min_prop_gap is not None: for entity in self._props + self._pedestals: try: arm_opener.open_arms_for_prop( physics, self._walker.left_arm_root, self._walker.right_arm_root, entity.mjcf_model, self._min_prop_gap) except RuntimeError as e: raise composer.EpisodeInitializationError(e) def after_step(self, physics, random_state): # First we check for failure termination. for contact in physics.data.contact: if ((contact.geom1 == self._ground_geomid and contact.geom2 not in self._feet_geomids) or (contact.geom2 == self._ground_geomid and contact.geom1 not in self._feet_geomids)): if self._negative_reward_on_failure_termination: self._reward = -_SPARSE_REWARD else: self._reward = 0.0 self._should_terminate = True self._discount = 0.0 return # Then check for normal reward and state transitions. self._update_current_state(physics) success = self._evaluate_target_state() if success and not self._previous_step_success: self._reward = _SPARSE_REWARD new_phase = ( self._transition_manager.on_success(self._target_state, random_state)) self._should_terminate = (new_phase == WarehousePhase.TERMINATED) self._on_transition(physics) self._previous_step_success = self._evaluate_target_state() else: self._reward = 0.0 def _on_transition(self, physics): self._focal_prop_id = self._transition_manager.prop_id self._focal_pedestal_id = self._transition_manager.pedestal_id if self._log_transitions: logging.info('target_state:\n%s', self._target_state) for pedestal_id, pedestal_active in enumerate( self._target_state[WALKER_PEDESTAL]): r, g, b, a = self._pedestal_colors[pedestal_id] if pedestal_active: h, _, s = colorsys.rgb_to_hls(r, g, b) r, g, b = colorsys.hls_to_rgb(h, _ACTIVATED_PEDESTAL_L, s) physics.bind(self._pedestals[pedestal_id].geom).rgba = (r, g, b, a) def get_reward(self, physics): return self._reward def get_discount(self, physics): return self._discount def should_terminate_episode(self, physics): return self._should_terminate def _update_current_state(self, physics): for current_state_value in self._current_state.values(): current_state_value[:] = 0 # Check if the walker is near each pedestal. walker_pos, _ = self._walker.get_pose(physics) for pedestal_id, pedestal in enumerate(self._pedestals): target_pos, _ = pedestal.get_pose(physics) walker_to_target_dist = np.linalg.norm(walker_pos[:2] - target_pos[:2]) if walker_to_target_dist <= _TARGET_TOL: self._current_state[WALKER_PEDESTAL][pedestal_id] = 1 prop_geomids = { physics.bind(prop.geom).element_id: prop_id for prop_id, prop in enumerate(self._props)} pedestal_geomids = { physics.bind(pedestal.geom).element_id: pedestal_id for pedestal_id, pedestal in enumerate(self._pedestals)} prop_pedestal_contact_counts = np.zeros( [self._num_props, self._num_pedestals]) prop_lhand_contact = [False] * self._num_props prop_rhand_contact = [False] * self._num_props for contact in physics.data.contact: prop_id = prop_geomids.get(contact.geom1, prop_geomids.get(contact.geom2)) pedestal_id = pedestal_geomids.get( contact.geom1, pedestal_geomids.get(contact.geom2)) has_lhand = (contact.geom1 in self._lhand_geomids or contact.geom2 in self._lhand_geomids) has_rhand = (contact.geom1 in self._rhand_geomids or contact.geom2 in self._rhand_geomids) if prop_id is not None and pedestal_id is not None: prop_pedestal_contact_counts[prop_id, pedestal_id] += 1 if prop_id is not None and has_lhand: prop_lhand_contact[prop_id] = True if prop_id is not None and has_rhand: prop_rhand_contact[prop_id] = True for prop_id in range(self._num_props): if prop_lhand_contact[prop_id] and prop_rhand_contact[prop_id]: self._current_state[WALKER_PROP][prop_id] = 1 pedestal_contact_counts = prop_pedestal_contact_counts[prop_id] for pedestal_id in range(self._num_pedestals): if pedestal_contact_counts[pedestal_id] >= 4: self._current_state[PROP_PEDESTAL][prop_id, pedestal_id] = 1 def _evaluate_target_state(self): return _is_same_state(self._current_state, self._target_state) ================================================ FILE: causal_reasoning/Causal_Reasoning_in_Probability_Trees.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "N1EHYIqxd80m" }, "source": [ "\u003e Copyright 2020 DeepMind Technologies Limited.\n", "\u003e\n", "\u003e Licensed under the Apache License, Version 2.0 (the \"License\");\n", "\u003e you may not use this file except in compliance with the License.\n", "\u003e \n", "\u003e You may obtain a copy of the License at\n", "\u003e https://www.apache.org/licenses/LICENSE-2.0\n", "\u003e \n", "\u003e Unless required by applicable law or agreed to in writing, software\n", "\u003e distributed under the License is distributed on an \"AS IS\" BASIS,\n", "\u003e WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "\u003e See the License for the specific language governing permissions and\n", "\u003e limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "qHP8zlWs1OUN" }, "source": [ "# **Tutorial: Causal Reasoning in Probability Trees**\n", "\n", "*By the AGI Safety Analysis Team @ DeepMind.*\n", "\n", "**Summary:** This is the companion tutorial for the paper [\"Algorithms\n", "for Causal Reasoning in Probability trees\"](https://arxiv.org/abs/2010.12237) by Genewein et al. (2020).\n", "\n", "Probability trees are one of the simplest models of causal\n", "generative processes.They possess clean semantics and are strictly more general\n", "than causal Bayesian networks, being able to e.g. represent causal relations\n", "that causal Bayesian networks can’t. Even so, they have received little\n", "attention from the AI and ML community.\n", "\n", "For instance, we can describe a scenario where the weather is the cause and the\n", "barometer reading the effect, or viceversa, depending on whether we're on Earth\n", "or on some alien planet with different physics:\n", "\n", "\u003cimg src=\"http://www.adaptiveagents.org/_media/wiki/probtrees.png\" alt=\"Probability Trees\" width=\"700\"/\u003e\n", "\n", "Causal dependencies like these are naturally represented as a tree.\n", "\n", "In this tutorial we present new algorithms for causal reasoning in discrete\n", "probability trees that cover the entire causal hierarchy (association,\n", "intervention, and counterfactuals), operating on arbitrary logical and causal\n", "events." ] }, { "cell_type": "markdown", "metadata": { "id": "XUQVMuc2_VlG" }, "source": [ "\n", "# Part I: Basics\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "P4cjtJaR_VlH" }, "source": [ "### Setup\n", "\n", "First we install the `graphviz` package:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JlbLG8sy_VlI" }, "outputs": [], "source": [ "!apt-get install graphviz\n", "!pip install graphviz" ] }, { "cell_type": "markdown", "metadata": { "id": "KxQFfJio_VlM" }, "source": [ "### Imports and data structures\n", "\n", "We import Numpy and Pyplot, and then we define the basic data structures for\n", "this tutorial." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "HFs6Q37E_VlM" }, "outputs": [], "source": [ "#@title Imports\n", "\n", "import numpy as np\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "yTTsE6f1_oIA" }, "outputs": [], "source": [ "#@title Data structures\n", "\n", "import graphviz\n", "import copy\n", "from random import random\n", "\n", "\n", "class MinCut:\n", " \"\"\"A representation of an event in a probability tree.\"\"\"\n", "\n", " def __init__(self, root, t=frozenset(), f=frozenset()):\n", " self._root = root\n", " self.t = t\n", " self.f = f\n", "\n", " def __str__(self):\n", "\n", " true_elements = ', '.join([str(id) for id in sorted(self.t)])\n", " false_elements = ', '.join([str(id) for id in sorted(self.f)])\n", " return '{true: {' + true_elements + '}, false: {' + false_elements + '}}'\n", "\n", " def __reptr__(self):\n", " return self.__str__()\n", "\n", " # Proposition\n", " def prop(root, statement):\n", " cond_lst = Node._parse_statements(statement)\n", "\n", " # Complain if more than one statement.\n", " if len(cond_lst) != 1:\n", " raise Exception('\\'prop\\' takes one and only one statement.')\n", " return None\n", "\n", " # Remove list envelope.\n", " cond = cond_lst[0]\n", "\n", " # Recurse.\n", " return MinCut._prop(root, root, cond)\n", "\n", " def _prop(root, node, cond):\n", " # Take var and val of condition.\n", " condvar, condval = cond\n", "\n", " # Search for variable.\n", " for var, val in node.assign:\n", " if condvar == var:\n", " if condval == val:\n", " return MinCut(root, frozenset([node.id]), frozenset())\n", " else:\n", " return MinCut(root, frozenset(), frozenset([node.id]))\n", "\n", " # If we reach a leaf node and the variable isn't resolved,\n", " # raise an exception.\n", " if not node.children:\n", " msg = 'Node ' + str(node.id) + ': ' \\\n", " + 'min-cut for condition \"' + condvar + ' = ' \\\n", " + condval + '\" is undefined.'\n", " raise Exception(msg)\n", "\n", " # Variable not found, recurse.\n", " t_set = frozenset()\n", " f_set = frozenset()\n", " for child in node.children:\n", " _, subnode = child\n", " subcut = MinCut._prop(root, subnode, cond)\n", " t_set = t_set.union(subcut.t)\n", " f_set = f_set.union(subcut.f)\n", "\n", " # Consolidate into node if children are either only true or false nodes.\n", " cut = MinCut(root, t_set, f_set)\n", " if not cut.f:\n", " cut.t = frozenset([node.id])\n", " elif not cut.t:\n", " cut.f = frozenset([node.id])\n", "\n", " return cut\n", "\n", " # Negation\n", " def neg(self):\n", " return MinCut(self._root, t=self.f, f=self.t)\n", "\n", " def __invert__(self):\n", " return self.neg()\n", "\n", " # Conjunction\n", " def conj(root, cut1, cut2):\n", " return MinCut._conj(root, root, cut1, cut2, False, False)\n", "\n", " def _conj(root, node, cut1, cut2, end1=False, end2=False):\n", " # Base case.\n", " if (node.id in cut1.f) or (node.id in cut2.f):\n", " return MinCut(root, frozenset(), frozenset([node.id]))\n", " if node.id in cut1.t:\n", " end1 = True\n", " if node.id in cut2.t:\n", " end2 = True\n", " if end1 and end2:\n", " return MinCut(root, frozenset([node.id]), frozenset())\n", "\n", " # Recurse.\n", " t_set = frozenset()\n", " f_set = frozenset()\n", " for _, subnode in node.children:\n", " subcut = MinCut._conj(root, subnode, cut1, cut2, end1, end2)\n", " t_set = t_set.union(subcut.t)\n", " f_set = f_set.union(subcut.f)\n", "\n", " # Consolidate into node if children are either only true or false nodes.\n", " cut = MinCut(root, t_set, f_set)\n", " if not cut.f:\n", " cut.t = frozenset([node.id])\n", " elif not cut.t:\n", " cut.f = frozenset([node.id])\n", " return cut\n", "\n", " def __and__(self, operand):\n", " return MinCut.conj(self._root, self, operand)\n", "\n", " # Disjunction\n", " def disj(root, cut1, cut2):\n", " return MinCut.neg(MinCut.conj(root, MinCut.neg(cut1), MinCut.neg(cut2)))\n", "\n", " def __or__(self, operand):\n", " return MinCut.disj(self._root, self, operand)\n", "\n", " # Causal dependence\n", " def precedes(root, cut_c, cut_e):\n", " return MinCut._precedes(root, root, cut_c, cut_e, False)\n", "\n", " def _precedes(root, node, cut_c, cut_e, found_c):\n", " # Base case.\n", " if not found_c:\n", " if (node.id in cut_e.t or node.id in cut_e.f or node.id in cut_c.f):\n", " return MinCut(root, frozenset(), frozenset([node.id]))\n", " if (node.id in cut_c.t):\n", " found_c = True\n", " if found_c:\n", " if (node.id in cut_e.t):\n", " return MinCut(root, frozenset([node.id]), frozenset())\n", " if (node.id in cut_e.f):\n", " return MinCut(root, frozenset(), frozenset([node.id]))\n", "\n", " # Recursion.\n", " t_set = frozenset()\n", " f_set = frozenset()\n", " for _, subnode in node.children:\n", " subcut = MinCut._precedes(root, subnode, cut_c, cut_e, found_c)\n", " t_set = t_set.union(subcut.t)\n", " f_set = f_set.union(subcut.f)\n", "\n", " # Consolidate into node if children are either only true or false nodes.\n", " cut = MinCut(root, t_set, f_set)\n", " if not cut.f:\n", " cut.t = frozenset([node.id])\n", " elif not cut.t:\n", " cut.f = frozenset([node.id])\n", " return cut\n", "\n", " def __lt__(self, operand):\n", " return MinCut.precedes(self._root, self, operand)\n", "\n", "\n", "class Critical:\n", " \"\"\"A representation of the critical set associated to an event.\"\"\"\n", "\n", " # Constructor\n", " def __init__(self, s=frozenset()):\n", " self.s = s\n", "\n", " def __str__(self):\n", " elements = ', '.join([str(id) for id in sorted(self.s)])\n", " return '{' + elements + '}'\n", "\n", " def __reptr__(self):\n", " return self.__str__()\n", "\n", " def critical(root, cut):\n", " _, crit = Critical._critical(root, cut)\n", " return crit\n", "\n", " def _critical(node, cut):\n", " # Base case.\n", " if node.id in cut.t:\n", " return (False, Critical(frozenset()))\n", " if node.id in cut.f:\n", " return (True, Critical(frozenset()))\n", " # Recurse.\n", " s = frozenset()\n", " for _, subnode in node.children:\n", " incut, subcrit = Critical._critical(subnode, cut)\n", " if incut:\n", " s = s.union(frozenset([node.id]))\n", " else:\n", " s = s.union(subcrit.s)\n", "\n", " return (False, Critical(s))\n", "\n", "\n", "class Node:\n", " \"\"\"A node in probability tree.\"\"\"\n", "\n", " # Constructor.\n", " def __init__(self, uid, statements, children=None):\n", " # Automatically assigned ID.\n", " self.id = uid\n", "\n", " # Assignments.\n", " if isinstance(statements, str):\n", " self.assign = Node._parse_statements(statements)\n", " else:\n", " self.assign = statements\n", "\n", " # Children.\n", " if children is None:\n", " self.children = []\n", " else:\n", " self.children = children\n", "\n", " # Parse statements.\n", " def _parse_statements(statements):\n", " statement_list = statements.split(',')\n", " pair_list = [x.split('=') for x in statement_list]\n", " assign = [(var.strip(), val.strip()) for var, val in pair_list]\n", " return assign\n", "\n", " # Sample.\n", " def sample(self):\n", " return self._sample(dict())\n", "\n", " def _sample(self, smp):\n", " # Add new assignments.\n", " newsmp = {var: val for var, val in self.assign}\n", " smp = dict(smp, **newsmp)\n", "\n", " # Base case.\n", " if not self.children:\n", " return smp\n", "\n", " # Recurse.\n", " rnum = random()\n", " for child in self.children:\n", " subprob, subnode = child\n", " rnum -= subprob\n", " if rnum \u003c= 0:\n", " return subnode._sample(smp)\n", "\n", " # Something went wrong: probabilities aren't normalized.\n", " msg = 'Node ' + str(self.id) + ': ' \\\n", " + 'probabilities of transitions do not add up to one.'\n", " raise Exception(msg)\n", "\n", " # Insert.\n", " def insert(self, prob, node):\n", " self.children.append((prob, node))\n", "\n", " # Compute probability of cut.\n", " def prob(self, cut):\n", " return self._prob(cut, 1.0)\n", "\n", " def _prob(self, cut, prob):\n", " # Base case.\n", " if self.id in cut.t:\n", " return prob\n", " if self.id in cut.f:\n", " return 0.0\n", "\n", " # Recurse.\n", " probsum = 0.0\n", " for child in self.children:\n", " subprob, subnode = child\n", " resprob = subnode._prob(cut, prob * subprob)\n", " probsum += resprob\n", "\n", " return probsum\n", "\n", " # Return a dictionary with all the random variables and their values.\n", " def rvs(self):\n", " sts = dict()\n", " return self._rvs(sts)\n", "\n", " def _rvs(self, sts):\n", " for var, val in self.assign:\n", " if not (var in sts):\n", " sts[var] = list()\n", " if not (val in sts[var]):\n", " sts[var].append(val)\n", "\n", " for _, subnode in self.children:\n", " sts = subnode._rvs(sts)\n", "\n", " return sts\n", "\n", " # Auxiliary function for computing the list of children.\n", " def _normalize_children(children, probsum, logsum):\n", " newchildren = None\n", " if probsum \u003e 0.0:\n", " newchildren = [\n", " (subprob / probsum, subnode) for _, subprob, subnode in children\n", " ]\n", " else:\n", " newchildren = [\n", " (sublog / logsum, subnode) for sublog, _, subnode in children\n", " ]\n", " return newchildren\n", "\n", " # Conditioning\n", " def see(self, cut):\n", " root = copy.deepcopy(self)\n", " root._see(cut, 1.0)\n", " return root\n", "\n", " def _see(self, cut, prob):\n", " # Base case.\n", " if self.id in cut.t:\n", " newnode = Node(self.id, self.assign)\n", " return (1.0, prob)\n", " if self.id in cut.f:\n", " newnode = Node(self.id, self.assign)\n", " return (0.0, 0.0)\n", "\n", " # Recurse.\n", " newchildren = []\n", " probsum = 0.0\n", " logsum = 0.0\n", " for subprob, subnode in self.children:\n", " reslog, resprob = subnode._see(cut, prob * subprob)\n", "\n", " newchildren.append((reslog, resprob, subnode))\n", " logsum += reslog\n", " probsum += resprob\n", "\n", " # Normalize.\n", " self.children = Node._normalize_children(newchildren, probsum, logsum)\n", "\n", " return (1.0, probsum)\n", "\n", " # Causal intervention\n", " def do(self, cut):\n", " root = copy.deepcopy(self)\n", " root._do(cut)\n", " return root\n", "\n", " def _do(self, cut):\n", " # Base case.\n", " if self.id in cut.t:\n", " return True\n", " if self.id in cut.f:\n", " return False\n", "\n", " # Recurse.\n", " newchildren = []\n", " probsum = 0.0\n", " logsum = 0.0\n", " for subprob, subnode in self.children:\n", " resdo = subnode._do(cut)\n", "\n", " if resdo:\n", " newchildren.append((1.0, subprob, subnode))\n", " probsum += subprob\n", " logsum += 1.0\n", " else:\n", " newchildren.append((0.0, 0.0, subnode))\n", "\n", " # Normalize.\n", " self.children = Node._normalize_children(newchildren, probsum, logsum)\n", "\n", " return (1.0, probsum)\n", "\n", " # Counterfactual/subjunctive conditional\n", " def cf(self, root_prem, cut_subj):\n", " root_prem_do = root_prem.do(cut_subj)\n", " root_subj = copy.deepcopy(self)\n", " root_subj._cf(root_prem_do, cut_subj)\n", " return root_subj\n", "\n", " def _cf(self, prem, cut):\n", " # Base case.\n", " if self.id in cut.t or self.id in cut.f:\n", " return \n", "\n", " # Recurse.\n", " children = []\n", " for child, child_prem in zip(self.children, prem.children):\n", " (_, subnode) = child\n", " (subprob, subnode_prem) = child_prem\n", " subnode._cf(subnode_prem, cut)\n", " children.append((subprob, subnode))\n", "\n", " # Update children.\n", " self.children = children\n", "\n", " return\n", "\n", " # Show probability tree.\n", " def show(self, show_id=False, show_prob=False, cut=None, crit=None):\n", " # Initialize Digraph.\n", " graph_attr = {\n", " 'bgcolor': 'White',\n", " 'rankdir': 'LR',\n", " 'nodesep': '0.1',\n", " 'ranksep': '0.3',\n", " 'sep': '0'\n", " }\n", " node_attr = {\n", " 'style': 'rounded',\n", " 'shape': 'box',\n", " 'height': '0.1',\n", " 'width': '0.5',\n", " 'fontsize': '10',\n", " 'margin': '0.1, 0.02'\n", " }\n", " edge_attr = {'fontsize': '10'}\n", " g = graphviz.Digraph(\n", " 'g',\n", " format='svg',\n", " graph_attr=graph_attr,\n", " node_attr=node_attr,\n", " edge_attr=edge_attr)\n", "\n", " # Recursion.\n", " return self._show(\n", " g, 1.0, show_id=show_id, show_prob=show_prob, cut=cut, crit=crit)\n", "\n", " def _show(self, g, prob, show_id=False, show_prob=False, cut=None, crit=None):\n", " # Create label.\n", " labels = [name + ' = ' + value for name, value in self.assign]\n", " node_label = '\\n'.join(labels)\n", " if show_id:\n", " node_label = str(self.id) + '\\n' + node_label\n", " if show_prob:\n", " node_label = node_label + '\\np = ' + '{0:.3g}'.format(prob)\n", "\n", " # Decorate node.\n", " attr = {'style': 'filled, rounded', 'fillcolor': 'WhiteSmoke'}\n", " if not (cut is None):\n", " if self.id in cut.t:\n", " attr = {'style': 'filled, rounded', 'fillcolor': 'AquaMarine'}\n", " elif self.id in cut.f:\n", " attr = {'style': 'filled, rounded', 'fillcolor': 'LightCoral'}\n", " if not (crit is None):\n", " if self.id in crit.s:\n", " attr = {'style': 'filled, rounded', 'fillcolor': 'Plum'}\n", " g.node(str(self.id), label=node_label, **attr)\n", "\n", " # Recurse.\n", " for child in self.children:\n", " subprob, subnode = child\n", " subnode._show(\n", " g,\n", " prob * subprob,\n", " show_id=show_id,\n", " show_prob=show_prob,\n", " cut=cut,\n", " crit=crit)\n", " g.edge(str(self.id), str(subnode.id), label='{0:.3g}'.format(subprob))\n", "\n", " return g\n", "\n", " def find(self, uid):\n", " if self.id == uid:\n", " return self\n", "\n", " for child in self.children:\n", " subprob, subnode = child\n", " found_node = subnode.find(uid)\n", " if found_node is not None:\n", " return found_node\n", "\n", " return None\n", "\n", "\n", "class PTree:\n", " \"\"\"A probability tree.\"\"\"\n", "\n", " def __init__(self):\n", " \"\"\"Create a probability tree.\"\"\"\n", " self._root = None\n", " self._count = 0\n", "\n", " def root(self, statements, children=None):\n", " \"\"\"Sets the root node.\n", "\n", " Parameters\n", " ----------\n", " statements : str\n", " A string containing a comma-separated list of statements of\n", " the form \"var = val\", such as \"X=1, Y=0\". These are the\n", " values resolved by the root node.\n", " children : list((float, Node)), (default: None)\n", " A list of (probability, child node) pairs. These are the root\n", " node's children and their transition probabilities.\n", "\n", " Returns\n", " -------\n", " Node\n", " the root node of the probability tree.\n", " \"\"\"\n", " self._count += 1\n", " self._root = Node(self._count, statements, children)\n", " return self._root\n", "\n", " def child(self, prob, statements, children=None):\n", " \"\"\"Create a child node and its transition probability.\n", "\n", " Parameters\n", " ----------\n", " prob : float\n", " The probability of the transition\n", " statements : str\n", " A string containing a comma-separated list of statements of\n", " the form \"var = val\", such as \"X=1, Y=0\". These are the\n", " values resolved by the child node.\n", " children : list((float, Node)), (default: None)\n", " A list of (probability, child node) pairs to be set as the\n", " children of the node.\n", "\n", " Returns\n", " -------\n", " Node\n", " the created node.\n", " \"\"\"\n", " self._count += 1\n", " return (prob, Node(self._count, statements, children))\n", "\n", " def get_root(self):\n", " \"\"\"Return the root node.\n", "\n", " Returns\n", " -------\n", " Node\n", " the root node of the probability tree.\n", " \"\"\"\n", " return self._root\n", "\n", " def show(self, show_id=False, show_prob=False, cut=None, crit=None):\n", " \"\"\"Returns a graph of the probability tree.\n", "\n", " Parameters\n", " ----------\n", " show_id: Bool (default: False)\n", " If true, display the unique id's.\n", " show_prob : Bool (default: False)\n", " If true, display the node probabilities.\n", " cut : MinCut (default: None)\n", " If a MinCut is given, then display it.\n", " crit : Critical (default: None)\n", " If a Critical set is given, then show it.\n", "\n", " Returns\n", " -------\n", " Node\n", " the created node.\n", " \"\"\"\n", " return self._root.show(\n", " show_id=show_id, show_prob=show_prob, cut=cut, crit=crit)\n", "\n", " def rvs(self):\n", " \"\"\"Return a dictionary with all the random variables and their values.\n", "\n", " Returns\n", " -------\n", " dict(str: list)\n", " A dictionary with all the random variables pointing at lists\n", " containing their possible values.\n", " \"\"\"\n", " return self._root.rvs()\n", "\n", " def rv(self, var):\n", " \"\"\"Return a probability distribution for a given random variable.\n", "\n", " Parameters\n", " ----------\n", " var: str\n", " A string containing the name of the random variable.\n", "\n", " Returns\n", " -------\n", " list((float, str))\n", " A list with pairs (prob, val), where prob and val are the\n", " probability\n", " and the value of the random variable.\n", " \"\"\"\n", " return [(self.prob(self.prop(var + ' = ' + val)), val)\n", " for val in self.rvs()[var]]\n", "\n", " def expect(self, var):\n", " \"\"\"Return the expected value of a random variable.\n", "\n", " Parameters\n", " ----------\n", " var: str\n", " A string containing the name of the random variable.\n", "\n", " Returns\n", " -------\n", " float\n", " The expected value of the random variable.\n", " \"\"\"\n", " e = 0.0\n", " for prob, val in self.rv(var):\n", " e += prob * float(val)\n", " return e\n", "\n", " def find(self, uid):\n", " \"\"\"Return a node with given unique identifier.\n", "\n", " Parameters\n", " ----------\n", " uid: int\n", " Identifier of the node to be returned.\n", "\n", " Returns\n", " -------\n", " Node or None\n", " Returns the node if found, otherwise None.\n", " \"\"\"\n", " return self._root.find(uid)\n", "\n", " def prop(self, statement):\n", " \"\"\"Returns min-cut of a statement.\n", "\n", " Parameters\n", " ----------\n", " statement: str\n", " A single statement of the form \"var = val\", such as \"X = 1\".\n", "\n", " Returns\n", " -------\n", " MinCut\n", " the min-cut of the event corresponding to the statement.\n", " \"\"\"\n", " return MinCut.prop(self._root, statement)\n", "\n", " def critical(self, cut):\n", " \"\"\"Returns critical set of a min-cut.\n", "\n", " Parameters\n", " ----------\n", " cut: MinCut\n", " A min-cuts.\n", "\n", " Returns\n", " -------\n", " Critical\n", " the critical set for the min-cut.\n", " \"\"\"\n", " return Critical.critical(self._root, cut)\n", "\n", " def sample(self):\n", " \"\"\"Sample a realization.\n", " \n", " Returns\n", " -------\n", " dict((str:str))\n", " A dictionary of bound random variables such as\n", "\n", " { 'X': '1', 'Y': '0' }.\n", " \"\"\"\n", " return self._root.sample()\n", "\n", " def prob(self, cut):\n", " \"\"\"Compute probability of a min-cut.\n", "\n", " Parameters\n", " ----------\n", " cut: MinCut\n", " A min-cut for an event.\n", "\n", " Returns\n", " -------\n", " float\n", " The probability of the event of the min-cut.\n", " \"\"\"\n", " return self._root.prob(cut)\n", "\n", " def see(self, cut):\n", " \"\"\"Return a probability tree conditioned on a cut.\n", "\n", " Parameters\n", " ----------\n", " cut: MinCut\n", " A min-cut for an event.\n", "\n", " Returns\n", " -------\n", " PTree\n", " A new probability tree.\n", " \"\"\"\n", " newptree = PTree()\n", " newptree._root = self._root.see(cut)\n", " return newptree\n", "\n", " def do(self, cut):\n", " \"\"\"Intervene on a cut.\n", "\n", " Parameters\n", " ----------\n", " cut: MinCut\n", " A min-cut for an event.\n", "\n", " Returns\n", " -------\n", " float\n", " A new probability tree.\n", " \"\"\"\n", " newptree = PTree()\n", " newptree._root = self._root.do(cut)\n", " return newptree\n", "\n", " def cf(self, tree_prem, cut_subj):\n", " \"\"\"Return a subjunctive conditional tree.\n", "\n", " Parameters\n", " ----------\n", " tree_prem: PTree\n", " A probality tree representing the premises for the subjunctive\n", " evaluation.\n", " This probability tree must have been obtained through operations on\n", " the\n", " base probability tree.\n", " cut_do: MinCut\n", " A min-cut for an event. This min-cut is the subjunctive condition of\n", " the\n", " counterfactual.\n", "\n", " Returns\n", " -------\n", " float\n", " A new probability tree.\n", " \"\"\"\n", " newptree = PTree()\n", " newptree._root = self._root.cf(tree_prem._root, cut_subj)\n", " return newptree\n", "\n", " def fromFunc(func, root_statement=None):\n", " \"\"\"Build a probability tree from a factory function.\n", "\n", " Building probability trees can be difficult, especially when we have\n", " to manually specify all its nodes. To simplify this, `fromFunc` allows\n", " building a probability tree using a factory function. A factory\n", " function is a function that:\n", "\n", " - receives a dictionary of bound random variables, such as\n", "\n", " { 'X': '1', 'Y': '0' }\n", "\n", " - and returns either `None` if a leaf has been reached, or a list\n", " of transitions and their statements, such as\n", "\n", " [(0.3, 'Z = 0'), (0.2, 'Z = 1'), (0.5, 'Z = 2')].\n", "\n", " Such a factory function contains all the necessary information for\n", " building a probability tree.\n", "\n", " The advantage of using a factory function is that we can exploit\n", " symmetries (such as conditional independencies) to code a much\n", " more compact description of the probability tree.\n", "\n", "\n", " Parameters\n", " ----------\n", " func: Function: dict((str: str)) -\u003e list((float, str))\n", " A probality tree factory function.\n", "\n", " root_statement: str (default: None)\n", " A string containing the statement (e.g. 'root = 0')\n", " for the root node. If `None`, 'Ω = 1' is used.\n", "\n", " Returns\n", " -------\n", " PTree\n", " A new probability tree.\n", " \"\"\"\n", " if not root_statement:\n", " root_statement = 'O = 1'\n", "\n", " tree = PTree()\n", " bvars = dict(Node._parse_statements(root_statement))\n", " tree.root(root_statement, tree._fromFunc(func, bvars))\n", " return tree\n", "\n", " def _fromFunc(self, func, bvars):\n", " \"\"\"Auxiliary method for PTree.fromFunc().\"\"\"\n", "\n", " transition_list = func(bvars)\n", " if not transition_list:\n", " return None\n", " children = []\n", " for prob, statement in transition_list:\n", " add_vars = dict(Node._parse_statements(statement))\n", " new_bvars = {**bvars, **add_vars}\n", " res = self._fromFunc(func, new_bvars)\n", " children.append(self.child(prob, statement, res))\n", " return children" ] }, { "cell_type": "markdown", "metadata": { "id": "lcEgcO7C_VlQ" }, "source": [ "## 1. Probability trees\n", "\n", "A **probability tree** is a representation of a random experiment or process.\n", "Starting from the **root node**, the process iteratively takes **random\n", "transitions** to **child nodes**, terminating at a **leaf node**. A path from\n", "the root node to a node is a **(partial) realization**, and a path from the root\n", "node to a leaf node is a **total realization**. Every node in the tree has one\n", "or more **statements** associated with it. When a realization reaches a node,\n", "the statements indicate which values are bound to random variables.\n", "\n", "Let's create our first probability tree. It shows a random variable $X$ where: -\n", "$X = 0$ with probability $0.5$; - $X = 1$ with probability $0.3$; - and $X = 2$\n", "with probability $0.2$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "IKiO-SgJ_VlQ" }, "outputs": [], "source": [ "# Creata a blank probability tree.\n", "pt = PTree()\n", "\n", "# Add a root node and the children.\n", "pt.root(\n", " 'O = 1',\n", " [pt.child(0.5, 'X = 1'),\n", " pt.child(0.3, 'X = 2'),\n", " pt.child(0.2, 'X = 3')])\n", "\n", "# Display it.\n", "display(pt.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "pU9B9TJf_VlV" }, "source": [ "We'll typically call the root node $O$, standing for \"**O**mega\" ($\\Omega$),\n", "which is a common name for the sample space in the literature.\n", "\n", "**Note:** This way of explicitly nesting nodes is the standard method for creating probability trees. We will learn a more concise, programatic method (that mimicks a probabilistic programming language) later in the tutorial.\n", "\n", "After creating a probability tree, we can ask it to return: \n", "- the list of random variables and their values using the method `rvs()`; \n", "- the probability distribution for a given random variable using \n", "`rv(varname)`; \n", "- the expected value of a *numerical* random variable with \n", "`expected(varname)`;\n", "- and obtain a random sample from the tree with `sample()`." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "a-MsyV_d_VlV" }, "outputs": [], "source": [ "rvs = pt.rvs()\n", "print('Random variables:', rvs)\n", "\n", "pdist = pt.rv('X')\n", "print('P(X) =', pdist)\n", "\n", "expect = pt.expect('X')\n", "print('E(X) =', expect)\n", "\n", "smp = pt.sample()\n", "print('Sample =', smp)" ] }, { "cell_type": "markdown", "metadata": { "id": "BscAftLn_VlZ" }, "source": [ "### Causal dependencies\n", "\n", "In a probability tree, a causal dependency $X \\rightarrow Y$ is expressed\n", "through a node $X$ having a descendent node $Y$. For instance, consider the next\n", "probability tree:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0DDBKwNs_Vla" }, "outputs": [], "source": [ "# Create a blank probability tree.\n", "pt = PTree()\n", "\n", "# Add a root node and the children.\n", "pt.root('O = 1', [\n", " pt.child(0.3, 'X = 0', [\n", " pt.child(0.2, 'Y = 0'),\n", " pt.child(0.8, 'Y = 1'),\n", " ]),\n", " pt.child(0.7, 'X = 1', [\n", " pt.child(0.8, 'Y = 0'),\n", " pt.child(0.2, 'Y = 1'),\n", " ]),\n", "])\n", "\n", "# Display it.\n", "display(pt.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "YenMXlr6_Vld" }, "source": [ "Here $Y$ is a descendant of $X$ and therefore $X \\rightarrow Y$. This means that\n", "we can affect the value of $Y$ by choosing $X$ but not viceversa. The exact\n", "semantics of this requires **interventions**, which we'll review later. Notice\n", "how the value of $X$ changes the distribution over $Y$: - $P(Y=1|X=0) \u003e\n", "P(Y=0|X=0)$, - $P(Y=1|X=1) \u003c P(Y=0|X=1)$.\n", "\n", "If we want to express that neither $X \\rightarrow Y$ nor $Y \\rightarrow X$ are\n", "the case, then we need to combine both random variables into the same nodes as\n", "follows:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Pot5uw-R_Vld" }, "outputs": [], "source": [ "# Creata a blank probability tree.\n", "pt = PTree()\n", "\n", "# Add a root node and the children.\n", "pt.root('O = 1', [\n", " pt.child(0.3 * 0.2, 'X = 0, Y = 0'),\n", " pt.child(0.3 * 0.8, 'X = 0, Y = 1'),\n", " pt.child(0.7 * 0.8, 'X = 1, Y = 0'),\n", " pt.child(0.7 * 0.2, 'X = 1, Y = 1')\n", "])\n", "\n", "# Display it.\n", "display(pt.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "t9ntPBZd_Vlk" }, "source": [ "### Another tree: drug testing\n", "\n", "Let's build another example. Here we have a drug testing situation:\n", "\n", "- A patient has a probability of being ill ($D = 1$).\n", "- If the patient takes the drug ($T = 1$) when she is ill, she will likely\n", " feel better ($R = 1$), otherwise she will likely feel worse ($R = 0$).\n", "- However, if she takes the drug when she is not ill, the situation is\n", " inverted: the drug might make her feel worse ($R = 0$).\n", "\n", "![Drug Testing CBN](http://www.adaptiveagents.org/_media/wiki/drug-testing.png)\n", "\n", "This tree can also be represented as the above causal Bayesian graph. This is\n", "always the case when the causal ordering of the random variables is the same, no\n", "matter which realization path is taken in the tree." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "AxK8DRP3_Vlk" }, "outputs": [], "source": [ "med = PTree()\n", "med.root('O = 1', [\n", " med.child(0.4, 'D = 0', [\n", " med.child(0.5, 'T = 0',\n", " [med.child(0.2, 'R = 0'),\n", " med.child(0.8, 'R = 1')]),\n", " med.child(0.5, 'T = 1',\n", " [med.child(0.8, 'R = 0'),\n", " med.child(0.2, 'R = 1')])\n", " ]),\n", " med.child(0.6, 'D = 1', [\n", " med.child(0.5, 'T = 0',\n", " [med.child(0.8, 'R = 0'),\n", " med.child(0.2, 'R = 1')]),\n", " med.child(0.5, 'T = 1',\n", " [med.child(0.2, 'R = 0'),\n", " med.child(0.8, 'R = 1')])\n", " ])\n", "])\n", "\n", "print('Random variables:', med.rvs())\n", "display(med.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "Fq63jb0u_Vln" }, "source": [ "### A tree that cannot be represented as a Bayesian graph: Weather-Barometer Worlds\n", "\n", "We can also build a tree where the different realization paths have different\n", "causal dependencies. For instance, imagine we have two possible worlds: - Our\n", "world ($A = 0$) where the weather ($W$) influences the barometer reading\n", "($B$); - An alien world ($A = 1$) where the barometer influences the weather.\n", "\n", "Such a situation with multiple causal dependencies cannot be captured in a\n", "single graphical model:\n", "\n", "![Weather-Barometer Worlds](http://www.adaptiveagents.org/_media/wiki/weather-barometer-worlds.png)" ] }, { "cell_type": "markdown", "metadata": { "id": "er74BN7n_Vlo" }, "source": [ "However, we can represent it using a probability tree:\n", "\n", "![Weather-Barometer Worlds Probability Tree](http://www.adaptiveagents.org/_media/wiki/wb_tree.png)" ] }, { "cell_type": "markdown", "metadata": { "id": "afVSi5xo_Vlo" }, "source": [ "### Exercise 1\n", "\n", "Now it's your turn to create a probability tree. Create the \"weather-barometer\n", "worlds\" probability tree and name it `wb`." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "bCeTXeTe7WDM" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "ehQ37yPg7Wil" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Q7W7exq4_Vlp" }, "outputs": [], "source": [ "# Create blank tree.\n", "wb = PTree()\n", "\n", "# Set the root node and its sub-nodes.\n", "wb.root('O = 1', [\n", " wb.child(0.5, 'A = 0', [\n", " wb.child(0.5, 'W = 0',\n", " [wb.child(0.75, 'B = 0'),\n", " wb.child(0.25, 'B = 1')]),\n", " wb.child(0.5, 'W = 1',\n", " [wb.child(0.25, 'B = 0'),\n", " wb.child(0.75, 'B = 1')])\n", " ]),\n", " wb.child(0.5, 'A = 1', [\n", " wb.child(0.5, 'B = 0',\n", " [wb.child(0.75, 'W = 0'),\n", " wb.child(0.25, 'W = 1')]),\n", " wb.child(0.5, 'B = 1',\n", " [wb.child(0.25, 'W = 0'),\n", " wb.child(0.75, 'W = 1')])\n", " ])\n", "])\n", "\n", "# Display it.\n", "display(wb.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "9TvtFpta_Vls" }, "source": [ "### Remember:\n", "\n", "- A node can contain more than one statement.\n", "- The tree doesn't have to be balanced.\n", "\n", "See the next example." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "e4RxAStn_Vls" }, "outputs": [], "source": [ "pt = PTree()\n", "pt.root('O = 1', [\n", " pt.child(0.2, 'X = 0, Y = 0'),\n", " pt.child(0.8, 'X = 1', [pt.child(0.3, 'Y = 1'),\n", " pt.child(0.7, 'Y = 2')])\n", "])\n", "\n", "display(pt.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "tZijtGvW_Vlw" }, "source": [ "### Displaying additional information\n", "\n", "We can display additional information about probability trees: \n", "- **Unique identifiers**: Each node has an automatically assigned \n", "unique identifier. Use `show_id = True` to display it. \n", "- **Probability**: Each node has a probability of being realized. \n", "Use `show_prob = True` to display this information." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "xZRlhlq__Vlw" }, "outputs": [], "source": [ "display(med.show(show_prob=True, show_id=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "CRsPVDcg_Vlz" }, "source": [ "### Exercise 2\n", "\n", "For the probability tree `wb`: \n", "- list all the random variables; \n", "- compute the probability distribution of the barometer ($B$); \n", "- display the probability tree with the unique ids and probabilities\n", "of every node." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qBqyFExK7eor" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "HHmLu4w_7e-S" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "cHoN3mQp_Vl0" }, "outputs": [], "source": [ "print(wb.rvs())\n", "print(wb.rv('B'))\n", "display(wb.show(show_id=True, show_prob=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "rqcodRJr_Vl3" }, "source": [ "## 2. Propositions and min-cuts\n", "\n", "We've seen that a probability tree is a simple way of representing all the\n", "possible realizations and their causal dependencies. We now investigate the\n", "possible **events** in a probability tree.\n", "\n", "An **event** is a collection of full realizations. We can **describe** events\n", "using propositions about random variables (e.g. $W = 0$, $B = 1$) and the\n", "logical connectives of negation, conjunction (AND), and disjunction (OR). The\n", "connectives allow us to state composite events, such as $\\neg(W = 1 \\wedge B =\n", "0)$. For instance, the event $B = 0$ is the set of all realizations, i.e. paths\n", "from the root to a leaf, that **pass through a node** with the statement $B=0$.\n", "\n", "We can **represent** events using cuts, and in particular, **min-cuts**. A\n", "**min-cut** is a minimal representation of an event in terms of the nodes of a\n", "probability tree. The min-cut of an event collects the smallest number of nodes\n", "in the probability tree that resolves whether an event has occurred or not. In\n", "other words, if a realization hits a node in the min-cut, then we know for sure\n", "whether the event has occurred or not. (In measure theory, a similar notion to\n", "min-cut would be the algebra that renders the event measurable.)\n", "\n", "Our implementation of min-cuts furthermore distinguishes between the nodes that\n", "render the event true from the nodes that render the event false.\n", "\n", "Let's start by constructing a min-cut for a setting of a random variable in our\n", "drug testing example. Verify that the min-cut is correct for the setting of the\n", "random variable." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "CmjmqUAW_Vl3" }, "outputs": [], "source": [ "# Build a cut for the proposition 'R = 1'.\n", "cut = med.prop('R=1')\n", "\n", "# The result is of type MinCut:\n", "print('Type of a cut:', type(cut))\n", "\n", "# Print the min-cut. Note that the elements in the\n", "# true and false sets refer to the ids of the prob tree.\n", "print('Min-cut for \"R = 1\":', cut)\n", "\n", "# Render the probability tree with a cut.\n", "display(med.show(cut=cut, show_id=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "9Bb9yBqP_Vl6" }, "source": [ "Let's do a min-cut for not taking the treatment ($T = 0$)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6-zNSWmL_Vl7" }, "outputs": [], "source": [ "# Build a cut for the proposition 'T = 0'.\n", "cut = med.prop('T=0')\n", "\n", "# Print the min-cut. Note that the elements in the\n", "# true and false sets refer to the ids of the prob tree.\n", "print('Min-cut for \"T = 0\":', cut)\n", "\n", "# Render the probability tree with a cut.\n", "display(med.show(cut=cut, show_id=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "IQxIGXeu_Vl-" }, "source": [ "We can build negative events too using the `~` unary operator. As an example,\n", "let's negate the previous event. Compare the two cuts. Notice that a negation\n", "simply inverts the nodes that are true and false." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "hMApKX3O_Vl_" }, "outputs": [], "source": [ "cut = ~med.prop('T = 0')\n", "print('Min-cut for \"T = 0\":', med.prop('T = 0'))\n", "print('Min-cut for \"not T = 0\":', ~med.prop('T = 0'))\n", "display(med.show(cut=cut, show_id=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "DGP5kr7K_VmC" }, "source": [ "Now let's build more complex events using conjunctions (`\u0026`) and disjunctions\n", "(`|`). Make sure these min-cuts make sense to you. Notice that the conjunction\n", "of two events pick out the earliest occurrence of false nodes and the last\n", "occurence of true nodes, whereas the disjunction does the opposite." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "vOrfMXyA_VmD" }, "outputs": [], "source": [ "# Recovery\n", "cut1 = med.prop('R=1')\n", "print('Cut for \"R = 1\":')\n", "display(med.show(cut=cut1))\n", "\n", "# Taking the treatment\n", "cut2 = med.prop('T=1')\n", "print('Cut for \"T=1\":')\n", "display(med.show(cut=cut2))\n", "\n", "# Conjunction: taking the treatment and recovery\n", "cut_and = cut1 \u0026 cut2\n", "print('Cut for \"T=1 and R=1\":')\n", "display(med.show(cut=cut_and))\n", "\n", "# Disjunction: taking the treatment or recovery\n", "cut_or = cut1 | cut2\n", "print('Cut for \"T=1 or R=1\":')\n", "display(med.show(cut=cut_or))" ] }, { "cell_type": "markdown", "metadata": { "id": "1AxBz2Ml_VmG" }, "source": [ "### The precedence relation\n", "\n", "In addition to the Boolean operators, we can also use a causal connective which\n", "cannot stated in logical terms: the **precedence relation** $\\prec$. This\n", "relation allows building min-cuts for events where one event $A$ precedes\n", "another event $B$, written $A \\prec B$, and thus requires the additional\n", "information provided by the probability tree's structure.\n", "\n", "Let's try one example. We want to build the min-cut where having the disease\n", "($D=1$) precedes feeling better ($R=1$), and vice-versa." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "2WvNpbQG_VmH" }, "outputs": [], "source": [ "# Disease and recovery min-cuts.\n", "cut1 = med.prop('D=1') \u003c med.prop('R=1')\n", "cut2 = med.prop('R=1') \u003c med.prop('D=1')\n", "\n", "# Display.\n", "print('Cut for D=1 \u003c R=1:')\n", "display(med.show(cut=cut1))\n", "\n", "print('Cut for R=1 \u003c D=1:')\n", "display(med.show(cut=cut2))" ] }, { "cell_type": "markdown", "metadata": { "id": "YbYnVRiM_VmJ" }, "source": [ "### Requirement: random variables must be measurable\n", "\n", "If we try to build a min-cut using a variable that is not measurable, then an\n", "exception is raised. For instance, the random variable $X$ below is not\n", "measurable within the probability tree, because the realization starting at the\n", "root and reaching the leaf $Y = 2$ never sets the value for $X$.\n", "\n", "Attempting to build a min-cut for an event involving $X$ will throw an error." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ujFLeAMN_VmK" }, "outputs": [], "source": [ "pt = PTree()\n", "pt.root('O = 1', [\n", " pt.child(0.1, 'X = 0, Y = 0'),\n", " pt.child(0.2, 'X = 1, Y = 1'),\n", " pt.child(0.7, 'Y = 2')\n", "])\n", "\n", "display(pt.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "zyP7gSPl_VmN" }, "source": [ "### Special case: probabilistic truth versus logical truth\n", "\n", "Let's have a look at one special case. Our definitions make a distinction\n", "between **logical** and **probabilistic truth**. This is best seen in the\n", "example below.\n", "\n", "In this example, we have a probability tree with three outcomes: $X = 1, 2$, and\n", "$3$. - $X = 1$ occurs with probability one. \n", "- Hence, probabilistically, the event $X=1$ is resolved at the level of the\n", "root node. \n", "- However, it isn't resolved at the logical level, since $X = 2$ or $X = 3$ \n", "can happen logically, although with probability zero.\n", "\n", "Distinguishing between logical truth and probabilistic truth is important for\n", "stating counterfactuals. This will become clearer later." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "8IXq-jVl_VmN" }, "outputs": [], "source": [ "# First we add all the nodes.\n", "pt = PTree()\n", "pt.root('O = 1',\n", " [pt.child(1, 'X = 1'),\n", " pt.child(0, 'X = 2'),\n", " pt.child(0, 'X = 3')])\n", "\n", "# Show the cut for 'X = 0'\n", "cut = pt.prop('X = 1')\n", "print('While the root node \"O=1\" does resolve the event \"X=1\"\\n' +\n", " 'probabilistically, it does not resolve the event logically.')\n", "display(pt.show(cut=cut))" ] }, { "cell_type": "markdown", "metadata": { "id": "K7OJKlcZ_VmQ" }, "source": [ "### Exercise 3\n", "\n", "For the `wb` probability tree, build the min-cuts for the following events:\n", "- the world is alien ($A = 1$); \n", "- the weather is sunny ($W = 1$); \n", "- the barometer goes down and the weather is sunny ($B = 0 \\wedge W = 1$); \n", "- the negation of \"barometer does not go down or weather is not sunny\", \n", "$\\neg(\\neg(B = 0) \\vee \\neg(W = 1))$.\n", "\n", "Display every min-cut. In particular, compare the last two. What do you observe?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "HlKSQi1l7rDJ" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "bD3LT8NV7rRV" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "3ttu0mlR_VmQ" }, "outputs": [], "source": [ "# Exercise.\n", "\n", "# A = 1.\n", "cut = wb.prop('A=1')\n", "print('Cut for \"A=1\":')\n", "display(wb.show(cut=cut))\n", "\n", "# W = 1.\n", "cut = wb.prop('W=1')\n", "print('Cut for \"W=1\":')\n", "display(wb.show(cut=cut))\n", "\n", "# B = 0 and W = 1.\n", "cut = wb.prop('B=0') \u0026 wb.prop('W=1')\n", "print('Cut for \"B=0 and W=1\":')\n", "display(wb.show(cut=cut))\n", "\n", "# not( not(B = 0) or not(W = 1) ).\n", "cut = ~(~wb.prop('B=0') | ~wb.prop('W=1'))\n", "print('Cut for \"not( not(B=0) or not(W=1) )\":')\n", "display(wb.show(cut=cut))" ] }, { "cell_type": "markdown", "metadata": { "id": "ehK-sadN_VmT" }, "source": [ "### Exercise 4\n", "\n", "For the `wb` probability tree, determine the min-cut for whenever the weather\n", "($W$) affects the value of the barometer ($B$). This min-cut should coincide\n", "with the min-cut for the event ($A=0$).\n", "\n", "Hint: enumerate all the 4 cases (values for $W$ and $B$) and combine them using\n", "disjunctions." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "rZe9JCMB7wo9" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "ZtQffc1P7wxk" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "bX6AxxDk_VmT" }, "outputs": [], "source": [ "# Build the min-cut.\n", "cut = (wb.prop('W=0') \u003c wb.prop('B=0')) \\\n", " | (wb.prop('W=0') \u003c wb.prop('B=1')) \\\n", " | (wb.prop('W=1') \u003c wb.prop('B=0')) \\\n", " | (wb.prop('W=1') \u003c wb.prop('B=1'))\n", "\n", "# Display.\n", "display(wb.show(cut=cut))" ] }, { "cell_type": "markdown", "metadata": { "id": "5PCmW5ol_VmX" }, "source": [ "## 3. Critical sets\n", "\n", "Min-cuts correspond to the smallest set of nodes where it becomes clear whether\n", "an event has occurred or not. Every min-cut has an associated **critical set**:\n", "the set of nodes that **determines** whether an event won't occur. Given an\n", "event, the associated **critical set** is defined as the set of parents of the\n", "event's false set in the min-cut.\n", "\n", "Together, a critical set and a min-cut form the set of **mechanisms** that\n", "determine the occurrence of the event.\n", "\n", "Let's have a look at a simple example. Here, the critical set is the singleton\n", "containing the root node. Critical sets are computed using the function\n", "`PTree.critical(cut)`, where `cut` is an event's min-cut. We can display the\n", "critical set by providing the optional argument `crit` to the `PTree.show()`\n", "function." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "9g2F9NKF_VmX" }, "outputs": [], "source": [ "# First we add all the nodes.\n", "pt = PTree()\n", "pt.root('O = 1',\n", " [pt.child(1, 'X = 1'),\n", " pt.child(0, 'X = 2'),\n", " pt.child(0, 'X = 3')])\n", "\n", "# Get the critical set for a min-cut.\n", "cut = pt.prop('X = 1')\n", "crit = pt.critical(cut)\n", "\n", "# Show the critical set.\n", "print('Min-cut for \"X=1\":', cut)\n", "print('Critical set for \"X=1\":', crit)\n", "display(pt.show(show_id=True, cut=cut, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "wE7voIju_Vma" }, "source": [ "Let's work out another example. Consider the following probability tree.\n", "\n", "![Min-Cuts and Critical Sets](http://www.adaptiveagents.org/_media/wiki/mincut-critical.png)\n", "\n", "Try to predict the min-cut and the critical set of the events $X=1$, $Y=1$, and\n", "$Y=0$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "4YvLDtzB_Vma" }, "outputs": [], "source": [ "pt = PTree()\n", "pt.root('O = 1', [\n", " pt.child(0.2, 'X = 0, Y = 0'),\n", " pt.child(0.8, 'X = 1', [pt.child(0.3, 'Y = 1'),\n", " pt.child(0.7, 'Y = 0')])\n", "])\n", "\n", "# Original tree.\n", "print('Original tree:')\n", "display(pt.show(show_id=True))\n", "\n", "# 'X=1'\n", "cut = pt.prop('X=1')\n", "crit = pt.critical(cut)\n", "print('Min-cut and critical set for \"X=1\":')\n", "display(pt.show(show_id=True, cut=cut, crit=crit))\n", "\n", "# 'Y=1'\n", "cut = pt.prop('Y=1')\n", "crit = pt.critical(cut)\n", "print('Min-cut and critical set for \"Y=1\":')\n", "display(pt.show(show_id=True, cut=cut, crit=crit))\n", "\n", "# 'Y=0'\n", "cut = pt.prop('Y=0')\n", "crit = pt.critical(cut)\n", "print('Min-cut and critical set for \"Y=0\":')\n", "display(pt.show(show_id=True, cut=cut, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "CtfxGITj_Vmd" }, "source": [ "### Exercise 5\n", "\n", "For the `wb` tree, compute and display the mechanisms (i.e. the min-cut and the\n", "critical set) for the following events: \n", "- the world is alien ($A = 1$); \n", "- the barometer goes down ($B = 0$); \n", "- the weather is sunny ($W = 1$); \n", "- the barometer goes down and weather is sunny ($B = 0 \\wedge W = 1$)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pw-AG0Ma76Al" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "-1fUlg1O76bp" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Wqkni_k4_Vmd" }, "outputs": [], "source": [ "# Exercise.\n", "\n", "# A = 1.\n", "cut = wb.prop('A=1')\n", "crit = wb.critical(cut)\n", "print('Mechanism for \"A=1\":')\n", "display(wb.show(cut=cut, crit=crit))\n", "\n", "# B = 0.\n", "cut = wb.prop('B=0')\n", "crit = wb.critical(cut)\n", "print('Mechanisms for \"B=0\":')\n", "display(wb.show(cut=cut, crit=crit))\n", "\n", "# W = 1.\n", "cut = wb.prop('W=1')\n", "crit = wb.critical(cut)\n", "print('Mechanisms for \"W=1\":')\n", "display(wb.show(cut=cut, crit=crit))\n", "\n", "# B = 0 and W = 1.\n", "cut = wb.prop('B=0') \u0026 wb.prop('W=1')\n", "crit = wb.critical(cut)\n", "print('Mechanisms for \"B=0 and W=1\":')\n", "display(wb.show(cut=cut, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "FPMH5CQ-_Vmg" }, "source": [ "We'll return later to critical sets, as they are important for determining the\n", "operations of conditioning and intervening on probability trees." ] }, { "cell_type": "markdown", "metadata": { "id": "9ggdcdjg_Vmg" }, "source": [ "## 4. Evaluating probabilities\n", "\n", "We can also evaluate probabilities of events. For instance, you may ask:\n", "\n", "- \"$P(R=1)$: What is the probability of recovery?\"\n", "- \"$P(R=0)$: What is the probability of not recovering?\"\n", "- \"$P(D=1)$: What is the probability of having the disease?\"\n", "- \"$P(D=1 \\wedge R=0)$: What is the probability of taking the drug and not\n", " recovering?\"\n", "- \"$P(D=1 \\vee R=0)$: What is the probability of taking the drug or not\n", " recovering?\"\n", "- \"$P(D=1 \\prec R=1)$: What is the probability of taking the drug preceding\n", " the recovery?\"\n", "\n", "To do so, we use the min-cut of the event.\n", "\n", "Let's have a look at some of them. Compare to the graph of the probability tree." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "lkH9LPzB_Vmh" }, "outputs": [], "source": [ "# Min-cuts for some events\n", "cut1 = med.prop('R=1')\n", "cut2 = med.prop('D=1')\n", "cut1_neg = ~cut1\n", "cut_and = cut2 \u0026 cut1_neg\n", "cut_or = cut2 | cut1_neg\n", "cut_prec = cut2 \u003c cut1\n", "\n", "print('P(R=1) =', med.prob(cut1))\n", "print('P(R=0) =', med.prob(cut1_neg))\n", "print('P(D=1) =', med.prob(cut2))\n", "print('P(D=1 and R=0) =', med.prob(cut_and))\n", "print('P(D=1 or R=0) =', med.prob(cut_or))\n", "print('P(D=1 precedes R=1) =', med.prob(cut_prec))\n", "\n", "display(med.show(show_prob=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "Bwc00gKT_Vmj" }, "source": [ "### Exercise 6\n", "\n", "For the `wb` tree, evaluate the probability of the following events: \n", "- the world is ours ($A = 0$) and the barometer goes down ($B = 0$); \n", "- it is not the case that the barometer goes down or the weather \n", "is sunny ($\\neg(B = 0 \\vee W = 1)$).\n", "\n", "Print the probabilities and display the probability trees." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "5NWdMrLW7_cj" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "NUy8SH-O7_jT" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "xTbTw3Ky_Vmk" }, "outputs": [], "source": [ "# Exercise.\n", "\n", "# A = 0 and B = 0\n", "cut = wb.prop('A=0') \u0026 wb.prop('B=0')\n", "print('P(A=0 and B=0) =', wb.prob(cut))\n", "display(wb.show(cut=cut))\n", "\n", "# not(B = 0 or W = 1)\n", "cut = ~(wb.prop('B=0') | wb.prop('W=1'))\n", "print('P(not(B=0 or W=1)) =', wb.prob(cut))\n", "display(wb.show(cut=cut))" ] }, { "cell_type": "markdown", "metadata": { "id": "6Y8wjMCi_Vmm" }, "source": [ "## 5. Conditioning\n", "\n", "We have learned how to represent events using min-cuts. Now we can use min-cuts\n", "to **condition** probability trees **on events**. Conditioning allows asking\n", "questions after making **observations**, such as:\n", "\n", "- \"$P(R=1|T=1)$: What is the probability of recovery given that a patient has\n", " taken the treatment?\"\n", "- \"$P(D=1|R=1)$: What is the probability of having had the disease given that\n", " a patient has recovered/felt better?\"\n", "\n", "### How to compute conditions\n", "\n", "Conditioning takes a probability tree and produces a new probability tree with\n", "modified transition probabilities. These are obtained by removing all the total\n", "realizations that are **incompatible with the condition**, and then\n", "renormalizing, as illustrated below.\n", "\n", "\u003cimg src=\"http://www.adaptiveagents.org/_media/wiki/see.png\" alt=\"Seeing\" width=\"700\"/\u003e\n", "\n", "In the example, we compute the result of seeing $Y= 1$. \n", "Conditioning on an event proceeds in two steps: \n", "- first, we remove the probability mass of the realizations\n", "passing through the false set of the event’s min-cut \n", "(hihglighted in dark, bottom row); \n", "- then we renormalize the probabilities. \n", "\n", "We can do this recursively by aggregating the original probabilities \n", "of the true set. The top row shows the result of conditioning a\n", "probability tree on the event $Y= 1$, which also highlights the modified\n", "transition probabilities in red. The bottom row shows the same \n", "operation in a probability mass diagram, which is a representation of a\n", "probability tree that emphasizes the probabilities." ] }, { "cell_type": "markdown", "metadata": { "id": "USe_1o89_Vmn" }, "source": [ "Let's have a look at the drug testing example. We will condition on $R=1$.\n", "Observe how the probabilities change." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-Is4k0IR_Vmn" }, "outputs": [], "source": [ "# Now we condition.\n", "cut = med.prop('R=1')\n", "med_see = med.see(cut)\n", "\n", "# Critical set.\n", "crit = med.critical(cut)\n", "\n", "# Compare probabilities of events.\n", "print('Before conditioning: P(R=1) =', med.prob(cut))\n", "print('After conditioning: P(R=1 | R=1) =', med_see.prob(cut))\n", "\n", "# Display both trees for comparison.\n", "print('\\nOriginal tree:')\n", "display(med.show(show_prob=True))\n", "\n", "print('Tree after conditioning on \"R=1\":')\n", "display(med_see.show(cut=cut, crit=crit, show_prob=True))" ] }, { "cell_type": "markdown", "metadata": { "id": "KF9E83_8_Vmq" }, "source": [ "We can condition on composite events too and evaluate the probability of events.\n", "\n", "Assume you observe that the drug was taken and a recovery is observed. Then, it\n", "is very likely that the patient had the disease." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "L_ULii7K_Vmq" }, "outputs": [], "source": [ "# Min-cuts.\n", "cut_r = med.prop('R=1')\n", "cut_tr = med.prop('T=1') \u0026 med.prop('R=1')\n", "cut_disease = med.prop('D=1')\n", "\n", "# Critical set.\n", "crit = med.critical(cut_tr)\n", "\n", "# Condition.\n", "med_see_r = med.see(cut_r)\n", "med_see_tr = med.see(cut_tr)\n", "\n", "# Now we evaluate the posterior probability of having a disease.\n", "print('P(D = 1) =', med.prob(cut_disease))\n", "print('P(D = 1 | R = 1) =', med_see_r.prob(cut_disease))\n", "print('P(D = 1 | T = 1, R = 1) =', med_see_tr.prob(cut_disease))\n", "\n", "# Display prob tree.\n", "print('\\nProbability tree after conditioning on \"T=1 and R=1\":')\n", "display(med_see_tr.show(cut=cut_tr, show_id=True, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "RVtd_Pov_Vmt" }, "source": [ "### Special case: conditioning on trivial events\n", "\n", "Let's have a look at a special case: conditioning on **trivial events**, namely\n", "the **sure event** and the **impossible event**.\n", "\n", "Observe that conditioning on trivial events does not change the probability\n", "tree." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "R9Zcg6lH_Vmt" }, "outputs": [], "source": [ "# Create a simple tree.\n", "pt = PTree()\n", "pt.root('O = 1', [\n", " pt.child(0.6, 'X = 0, Y = 0'),\n", " pt.child(0.6, 'X = 1', [pt.child(0.3, 'Y = 0'),\n", " pt.child(0.7, 'Y = 0')]),\n", "])\n", "\n", "# Show tree.\n", "print('Original tree:')\n", "display(pt.show())\n", "\n", "# Condition on Y = 0.\n", "cut = pt.prop('Y=0')\n", "pt_see_sure = pt.see(cut)\n", "print('Conditioning on \"Y = 0\":')\n", "display(pt_see_sure.show(cut=cut))\n", "\n", "# Condiiton on not Y = 0.\n", "neg_cut = ~cut\n", "pt_see_impossible = pt.see(neg_cut)\n", "print('Conditioning on \"not Y = 0\":')\n", "display(pt_see_impossible.show(cut=neg_cut))" ] }, { "cell_type": "markdown", "metadata": { "id": "RLijoy-__Vmy" }, "source": [ "### Special case: conditioning on an event with probability zero\n", "\n", "Let's return to our simple example with tree outcomes. Assume we're conditioning\n", "on an event with **probability zero**, which can happen **logically but not\n", "probabilistically**. Using the measure-theoretic definition of conditional\n", "probabilities, we are required to pick a so-called **version** of the\n", "conditional distribution. There are infinite choices.\n", "\n", "Here, we have settled on the following. If we condition on an event with\n", "probability zero, then we assign uniform probability over all the possible\n", "transitions. This is just one arbitrary way of solving this problem.\n", "\n", "See the example below." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "61sYhPTI_Vmz" }, "outputs": [], "source": [ "# Create a simple tree.\n", "pt = PTree()\n", "pt.root(\n", " 'O = 1',\n", " [pt.child(1.0, 'X = 1'),\n", " pt.child(0.0, 'X = 2'),\n", " pt.child(0.0, 'X = 3')])\n", "\n", "# Let's pick the negative event for our minimal prob tree.\n", "cut = ~pt.prop('X = 1')\n", "display(pt.show(cut=cut))\n", "\n", "pt_see = pt.see(cut)\n", "display(pt_see.show(cut=cut))" ] }, { "cell_type": "markdown", "metadata": { "id": "2fuYExoQ_Vm1" }, "source": [ "### Exercise 7\n", "\n", "For the `wb` tree, print the probability distribution of \n", "- the weather $W$ \n", "- and the barometer $B$.\n", "\n", "Do this for the following probability trees: \n", "- the original tree \n", "- the probability tree conditioned on it being an alien world ($\\theta = 1$) \n", "- the probability tree conditioned on the weather being sunny ($W = 1$).\n", "\n", "What do you observe? Does observing (conditioning) give you any additional\n", "information? If no, why? If yes, why is that?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "D3WqIjaK8FSA" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "13s9eGWF8FZA" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "mMryXm_d_Vm2" }, "outputs": [], "source": [ "# Exercise\n", "\n", "# No condition.\n", "print('P(W) =', wb.rv('W'))\n", "print('P(B) =', wb.rv('B'))\n", "\n", "# Condition on \"A = 1\"\n", "cut = wb.prop('A=1')\n", "print('P(W | A=1) =', wb.see(cut).rv('W'))\n", "print('P(B | A=1) =', wb.see(cut).rv('B'))\n", "\n", "# Condition on \"W = 1\"\n", "cut = wb.prop('W=1')\n", "print('P(W | W=1) =', wb.see(cut).rv('W'))\n", "print('P(B | W=1) =', wb.see(cut).rv('B'))" ] }, { "cell_type": "markdown", "metadata": { "id": "9Dmexb79_Vm4" }, "source": [ "## 6. Interventions\n", "\n", "Interventions are at the heart of causal reasoning.\n", "\n", "We have seen how to filter probability trees using observational data through\n", "the use of conditioning. Now we investigate how a probability tree transforms\n", "when it is intervened. An **intervention** is a change to the random process\n", "itself to make something happen, as opposed to a filtration. We can ask\n", "questions like:\n", "\n", "- \"$P(R=1|T \\leftarrow 1)$: What is the probability of recovery given that **I\n", " take the drug**?\"\n", "- \"$P(D=1|T \\leftarrow 1 \\wedge R=1)$: What is the probability of having the\n", " disease given **that I take the drug** and that I observe a recovery?\"\n", "\n", "Here, the notation $T \\leftarrow 1$ is a shorthand for the more common notation\n", "$\\mathrm{do}(T = 1)$.\n", "\n", "### How to compute interventions\n", "\n", "Interventions differ from conditioning in the following: \n", "- they change the transition probabilities **minimally**, \n", "so as to make a desired event happen; \n", "- they **do not filter** the total realizations of the probability tree; \n", "- they are **easier to execute** than conditions, because they only \n", "change the transition probabilities that leave the critical set, \n", "and they do not require the backward induction of probabilities. \n", "\n", "See the illustration below.\n", "\n", "\u003cimg src=\"http://www.adaptiveagents.org/_media/wiki/do.png\" alt=\"Doing\" width=\"700\"/\u003e\n", "\n", "Example intervention on $Y \\leftarrow 1$. An intervention proceeds in two steps:\n", "- first, it selects the partial realizations starting in a critical node \n", "and ending in a leaf that traverse the false set of the event’s min-cut; \n", "- then it removes their probability mass, renormalizing the probabilities\n", "from the transitions leaving the critical set. \n", "\n", "The top row shows the result of intervening a probability tree\n", "on $Y \\leftarrow 1$. The bottom row show the same procedure on \n", "the corresponding probability mass diagram.\n", "\n", "Let's start with a simple comparison to illustrate the difference." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "z4PLcgN5_Vm5" }, "outputs": [], "source": [ "pt = PTree()\n", "pt.root('O = 1', [\n", " pt.child(0.2, 'X = 0, Y = 0'),\n", " pt.child(0.8, 'X = 1', [pt.child(0.3, 'Y = 1'),\n", " pt.child(0.7, 'Y = 0')])\n", "])\n", "\n", "print('Original:')\n", "display(pt.show(show_prob=True))\n", "\n", "# 'Y=1'\n", "cut = pt.prop('Y = 1')\n", "crit = pt.critical(cut)\n", "pt_see = pt.see(cut)\n", "pt_do = pt.do(cut)\n", "print('Condition on \"Y=1\":')\n", "display(pt_see.show(cut=cut, crit=crit))\n", "print('Intervention on \"Y\u003c-1\":')\n", "display(pt_do.show(cut=cut, crit=crit))\n", "\n", "# 'Y=0'\n", "cut = pt.prop('Y = 0')\n", "crit = pt.critical(cut)\n", "pt_see = pt.see(cut)\n", "pt_do = pt.do(cut)\n", "print('Condition on \"Y = 0\":')\n", "display(pt_see.show(cut=cut, crit=crit))\n", "print('Intervention on \"Y \u003c- 0\":')\n", "display(pt_do.show(cut=cut, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "xJ-_TtAY_Vm7" }, "source": [ "Notice that the mechanisms for $Y=0$ and $Y=1$ are different. In general, a\n", "single random variable can have **multiple mechanism** for setting their\n", "individual values." ] }, { "cell_type": "markdown", "metadata": { "id": "LUvv_FNz_Vm8" }, "source": [ "Let's return to our drug testing example. We investigate the effect of taking\n", "the treatment, that is, by intervening on $T \\leftarrow 1$. How do the\n", "probabilities of: \n", "- having the disease ($D = 1$); \n", "- taking the treatment ($T = 1$); \n", "- and recovering ($R = 1$)\n", "\n", "change after taking the treatment ($T \\leftarrow 1$)?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6iFDVc7Z_Vm8" }, "outputs": [], "source": [ "# Min-Cuts.\n", "cut_dis = med.prop('D = 1')\n", "cut_arg = med.prop('R = 1')\n", "cut_do = med.prop('T = 1')\n", "\n", "# Critical set.\n", "crit_do = med.critical(cut_do)\n", "\n", "# Perform intervention.\n", "med_do = med.do(cut_do)\n", "\n", "# Display original tree.\n", "print('Original tree:')\n", "print('P(D = 1) =', med.prob(cut_dis))\n", "print('P(T = 1) =', med.prob(cut_do))\n", "print('P(R = 1) =', med.prob(cut_arg))\n", "display(med.show(cut=cut_do, show_prob=True, crit=crit_do))\n", "\n", "# Display tree after invervention.\n", "print('Tree after intervening on \"T \u003c- 1\":')\n", "print('P(D = 1 | T \u003c- 1) =', med_do.prob(cut_dis))\n", "print('P(T = 1 | T \u003c- 1) =', med_do.prob(cut_do))\n", "print('P(R = 1 | T \u003c- 1) =', med_do.prob(cut_arg))\n", "display(med_do.show(cut=cut_do, show_prob=True, crit=crit_do))" ] }, { "cell_type": "markdown", "metadata": { "id": "9auv9QLe_Vm_" }, "source": [ "In other words, for the example above, taking the treatment increases the\n", "chances of recovery. This is due to the base rates (i.e. the probability of\n", "having a disease). The base rates are not affected by the decision of taking the\n", "treatment." ] }, { "cell_type": "markdown", "metadata": { "id": "RXjEiNWa_VnA" }, "source": [ "### Special case: intervening on an event with probability zero\n", "\n", "Assume we're intervening on an event with **probability zero**. Recall that this\n", "is possible **logically**, but **not probabilistically**. How do we set the\n", "transition probabilities leaving the critical set? Here again we settle on\n", "assigning uniform probabilities over all the transitions affected by the\n", "intervention.\n", "\n", "See the example below." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "NUgHl3mT_VnA" }, "outputs": [], "source": [ "# Create a simple tree.\n", "pt = PTree()\n", "pt.root(\n", " 'O = 1',\n", " [pt.child(1.0, 'X = 1'),\n", " pt.child(0.0, 'X = 2'),\n", " pt.child(0.0, 'X = 3')])\n", "\n", "# Let's pick the negative event for our minimal prob tree.\n", "cut = ~pt.prop('X = 1')\n", "crit = pt.critical(cut)\n", "\n", "# Intervene.\n", "pt_do = pt.do(cut)\n", "\n", "# Show results.\n", "print('Before the intervention:')\n", "display(pt.show(cut=cut, crit=crit))\n", "print('After the invention on \"not X \u003c- 1\":')\n", "display(pt_do.show(cut=cut, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "qNqHBq19_VnD" }, "source": [ "### Exercise 8\n", "\n", "For the `wb` tree, print the probability distribution of \n", "- the weather $W$ \n", "- and the barometer $B$.\n", "\n", "Do this for the following probability trees: \n", "- the original tree \n", "- the probability tree resulting from enforcing it to being \n", "an alien world ($A \\leftarrow 1$) \n", "- the probability tree resulting from setting the weather to\n", "being sunny ($W \\leftarrow 1$).\n", "\n", "What do you observe? Compare these results with your previous exercise, where\n", "you conditioned on the same events. Why are the probabilities different when you\n", "condition and when you intervene? How is this related to the different causal\n", "dependencies in both worlds?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pgP-6OwU8LBq" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "9JFZjAra8LJd" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "8Fui2W_l_VnE" }, "outputs": [], "source": [ "# Exercise\n", "\n", "# No intervention.\n", "print('P(W) =', wb.rv('W'))\n", "print('P(B) =', wb.rv('B'))\n", "\n", "# Intervention on \"A \u003c- 1\"\n", "cut = wb.prop('A=1')\n", "print('P(W|A \u003c- 1) =', wb.do(cut).rv('W'))\n", "print('P(B|A \u003c- 1) =', wb.do(cut).rv('B'))\n", "\n", "# Condition on \"W \u003c- 1\"\n", "cut = wb.prop('W=1')\n", "print('P(W|W \u003c- 1) =', wb.do(cut).rv('W'))\n", "print('P(B|W \u003c- 1) =', wb.do(cut).rv('B'))" ] }, { "cell_type": "markdown", "metadata": { "id": "SCZyxF5l_VnG" }, "source": [ "### Exercise 9\n", "\n", "Next, evaluate the following probabilities:\n", "\n", "- What is the probability of being in our world ($A=0$), given that you\n", " observe a sunny weather ($W=1$) and the barometer going up ($B=1$)?\n", "- What is the probability of being in our world ($A=0$), given that you first\n", " observe a sunny weather ($W=1$) and then **you force** the barometer to go\n", " up ($B\\leftarrow 1$)?\n", "- What is the probability of being in our world ($A=0$), given that you first\n", " **force** the barometer to go up ($B\\leftarrow 1$) and then observe a sunny\n", " weather ($W=1$)?\n", "\n", "Answer the following questions:\n", "\n", "- Does conditioning give different results from intervening? If so, why?\n", "- When you mix conditions and interventions, does the order matter? If so,\n", " why?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "uB3igmF58OyH" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "k1vLg3F_8O7c" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "i2B5UhDT_VnJ" }, "outputs": [], "source": [ "# Exercise\n", "cutw = wb.prop('W=1')\n", "cutb = wb.prop('B=1')\n", "cuttheta = wb.prop('A=0')\n", "\n", "# Question 1\n", "print('P(A = 0 | W = 1 and B = 1) =', wb.see(cutw).see(cutb).prob(cuttheta))\n", "\n", "# Question 2\n", "print('P(A = 0 | W = 1 then B \u003c- 1) =', wb.see(cutw).do(cutb).prob(cuttheta))\n", "\n", "# Question 3\n", "print('P(A = 0 | B \u003c- 1 then W = 1) =', wb.do(cutb).see(cutw).prob(cuttheta))\n", "\n", "display(wb.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "3OMlUFKF_VnM" }, "source": [ "## 7. Counterfactuals\n", "\n", "Finally, we have counterfactuals. Counterfactuals are questions about how the\n", "experiment could have gone if something about it were different. For instance:\n", "\n", "- \"What is the probability of having the disease **had I not recovered**,\n", " given that I have recovered?\"\n", "- \"Given that I have taken the treatment and recovered, what is the\n", " probability of recovery **had I not taken the treatment**?\"\n", "\n", "These are tricky questions because they mix two moods:\n", "\n", "- **indicative statements** - things that have actually happened;\n", "- **subjunctive statements** - things that could have happened \n", "in an alternate reality/possible world.\n", "\n", "Because of this, counterfactuals spawn a new scope of random variables:\n", "\n", "\u003cimg src=\"http://www.adaptiveagents.org/_media/wiki/counterfactual.png\" alt=\"Counterfactual\" width=\"400\"/\u003e\n", "\n", "These two questions above are spelled as follows:\n", "\n", "- $P(D^\\ast=1|R=1)$, where $D^\\ast=D_{R \\leftarrow 0}$\n", "- $P(R^\\ast=1|T\\leftarrow 1; R=1)$, where $R^\\ast=R_{T\\leftarrow 0}$\n", "\n", "Here the random variables with an asterisk $D^\\ast, R^\\ast$ are copies of the\n", "original random variables $D, R$ that ocurr in an alternate reality. The\n", "notation $D_{T \\leftarrow 0}$ means that the random variable $D$ is in the new\n", "scope spawned by the intervention on $T\\leftarrow 0$.\n", "\n", "### Computing a counterfactual\n", "\n", "The next figure shows how to obtain a counterfactual:\n", "\n", "\u003cimg src=\"http://www.adaptiveagents.org/_media/wiki/cf.png\" alt=\"Computing a counterfactual\" width=\"700\"/\u003e\n", "\n", "The example shows a counterfactual probability tree generated by imposing $Y\n", "\\leftarrow 1$, given the factual premise $Z = 1$. Starting from a **reference\n", "probability tree** describing the original process, we first use the **factual premise** to derive a tree describing the current state of affairs and then modify it using the **counterfactual premise**. \n", "\n", "\n", "Then, we replace the nodes downstream of the counterfactual premise's min-cut with the nodes of the reference tree. The events downstream then span a new scope containing copies of the original random variables (marked with \"∗\"), ready to adopt new values. In other words, we restore the random variables downstream of the counterfactual intervention to their original state of uncertainty.\n", "\n", "In particular note that $Z^\\ast = 0$ can happen in our alternate \n", "reality, even though we know that $Z = 1$." ] }, { "cell_type": "markdown", "metadata": { "id": "4Xq_CBmU_VnM" }, "source": [ "Let's have a look at a minimal example." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "wgfuKqZr_VnN" }, "outputs": [], "source": [ "pt = PTree()\n", "pt.root('O = 1', [\n", " pt.child(0.25, 'X = 0', [\n", " pt.child(0.25, 'Y = 0',\n", " [pt.child(0.1, 'Z = 0'),\n", " pt.child(0.9, 'Z = 1')]),\n", " pt.child(0.75, 'Y = 1',\n", " [pt.child(0.2, 'Z = 0'),\n", " pt.child(0.8, 'Z = 1')]),\n", " ]),\n", " pt.child(0.75, 'X = 1',\n", " [pt.child(0.75, 'Y = 0, Z = 0'),\n", " pt.child(0.25, 'Y = 1, Z = 0')])\n", "])\n", "\n", "print('Original:')\n", "display(pt.show())\n", "\n", "# Condition on 'Y=0', do 'Y=1'\n", "cut_see = pt.prop('Y=0')\n", "cut_do = pt.prop('Y=1')\n", "\n", "# Critical set.\n", "crit = pt.critical(cut_do)\n", "\n", "# Evaluate conditional, intervention, and counterfactual.\n", "pt_see = pt.see(cut_see)\n", "pt_do = pt.do(cut_do)\n", "pt_cf = pt.cf(pt_see, cut_do)\n", "\n", "# Display results.\n", "print('Condition on \"Y = 0\":')\n", "display(pt_see.show(cut=cut_see, crit=crit))\n", "print('Intervention on \"Y \u003c- 1\":')\n", "display(pt_do.show(cut=cut_do, crit=crit))\n", "print('Counterfactual with premise \"Y = 0\" and subjunctive \"Y = 1\":')\n", "display(pt_cf.show(cut=cut_do, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "u6L7VDH9_VnP" }, "source": [ "Now we return to our drug testing example. Let's ask the two questions we asked\n", "before. We start with the question: \"What is the probability of having the\n", "disease **had I not recovered**, given that I have recovered?\", that is\n", "$$P(D^\\ast=1|R=1), \\qquad D^\\ast=D_{R \\leftarrow 0}.$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "1_dAJkjj_VnQ" }, "outputs": [], "source": [ "# Cuts.\n", "cut_disease = med.prop('D = 1')\n", "cut_recovery = med.prop('R = 1')\n", "cut_not_recovery = ~cut_recovery\n", "\n", "# Critical.\n", "crit = med.critical(cut_not_recovery)\n", "\n", "# Compute counterfactual:\n", "# - compute factual premise,\n", "# - use factual premise and subjunctive premise to compute counterfactual.\n", "med_factual_prem = med.see(cut_recovery)\n", "med_cf = med.cf(med_factual_prem, cut_not_recovery)\n", "\n", "print('Baseline:')\n", "print('P(D = 1) =', med.prob(cut_disease))\n", "display(med.show())\n", "print('Premise:')\n", "print('P(D = 1 | R = 1) =', med_factual_prem.prob(cut_disease))\n", "display(med_factual_prem.show())\n", "print('Counterfactual:')\n", "print('P(D* = 1 | R = 1) =', med_cf.prob(cut_disease), ', D* = D[R \u003c- 0]')\n", "display(med_cf.show(crit=crit, cut=cut_not_recovery))" ] }, { "cell_type": "markdown", "metadata": { "id": "eAPyY5O8_VnS" }, "source": [ "As we can see, the probability of the disease in the indicative and the\n", "counterfactual aren't different. This is because the recovery $R$ is independent\n", "of the disease $D$, and because the disease is upstream of the critical set.\n", "\n", "Let's have a look at the second question: $$P(R^\\ast=1|T\\leftarrow 1;\n", "R=1), \\qquad R^\\ast=R_{T\\leftarrow 0}$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Nm-h3YPh_VnS" }, "outputs": [], "source": [ "# Cuts.\n", "cut_treatment = med.prop('T = 1')\n", "cut_not_treatment = ~cut_treatment\n", "cut_recovery = med.prop('R = 1')\n", "\n", "# Critical.\n", "crit = med.critical(cut_not_treatment)\n", "\n", "# Compute counterfactual:\n", "# - compute factual premise,\n", "# - use factual premise and counterfactual premise to compute counterfactual.\n", "med_factual_prem = med.do(cut_treatment).see(cut_recovery)\n", "med_cf = med.cf(med_factual_prem, cut_not_treatment)\n", "\n", "# Display results.\n", "print('Baseline:')\n", "print('P(R = 1) =', med.prob(cut_recovery))\n", "display(med.show())\n", "\n", "print('Premise:')\n", "print('P(R = 1 | T \u003c- 1 and R = 1) =', med_factual_prem.prob(cut_recovery))\n", "display(med_factual_prem.show())\n", "\n", "print('Counterfactual:')\n", "print('P(R* = 1 | T \u003c- 1 and R = 1) =', med_cf.prob(cut_recovery),\n", " ', R* = R[T \u003c- 0]')\n", "display(med_cf.show(cut=cut_not_treatment, crit=crit))" ] }, { "cell_type": "markdown", "metadata": { "id": "bCsw7tTM_VnV" }, "source": [ "Hence, if I had not taken the treatment, then the probability of recovery would\n", "have been lower. Why is that? \n", "- In our premise, I have taken the treatment and\n", "then observed a recovery. \n", "- This implies that, most likely, I had the disease,\n", "since taking the treatment when I don't have the disease is risky and can lead\n", "to illness. \n", "- Thus, knowing that I probably have the disease, I know that, had I\n", "not taken the treatment, I would most likely not have recovered." ] }, { "cell_type": "markdown", "metadata": { "id": "B3DdaUXJ_VnV" }, "source": [ "### Exercise 10\n", "\n", "Consider the drug testing probability tree `med`.\n", "\n", "- Assume you take the drug ($T \\leftarrow 1$) and you feel bad afterwards\n", " ($R = 0$).\n", "- Given this information, what is the probability of recovery ($R = 1$) had\n", " you not taken the drug ($T = 0$)?\n", "\n", "Compute the **regret**, i.e. the difference: $$ \\mathbb{E}[ R^\\ast | T\n", "\\leftarrow 1; R = 0 ] - \\mathbb{E}[ R | T \\leftarrow 1; R = 0 ], $$ where\n", "$R^\\ast = R_{T \\leftarrow 0}$." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JAoYBJcn8gve" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "yxuqdgvA8g-J" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "23ziOdxr_VnV" }, "outputs": [], "source": [ "# Exercise\n", "\n", "med_prem = med.do(med.prop('T=1')).see(med.prop('R=0'))\n", "med_cf = med.cf(med_prem, med.prop('T=0'))\n", "\n", "print('P(R* = 1 | T \u003c- 1, R = 0) =', med_cf.prob(med.prop('R=1')))\n", "\n", "regret = med_cf.expect('R') - med_prem.expect('R')\n", "print('Regret = ', regret)\n", "\n", "display(med_prem.show(cut=med.prop('R=0')))" ] }, { "cell_type": "markdown", "metadata": { "id": "ioUtMVOs_VnX" }, "source": [ "### Exercise 11\n", "\n", "Take the probability tree `wb`. Evaluate the following counterfactuals:\n", "\n", "1. Assume that you set the world to ours ($A \\leftarrow 0$) and the weather to\n", " sunny ($W \\leftarrow 1$). What is the probability distribution of observing\n", " a high barometer value ($B = 1$) had you set the weather to rainy ($W\n", " \\leftarrow 0$)? Does the fact that you set the world and the weather affect\n", " the value of the counterfactual?\n", "\n", "2. Assume that you set the barometer to a high value ($B \\leftarrow 1$), and\n", " you observe that the weather is sunny ($W=1$). What is the probability of\n", " observing a sunny weather ($W=1$) had you set the barometer to a low value\n", " ($B=0$)?\n", "\n", "These are highly non-trivial questions. What do you observe? Do the results make\n", "sense to you?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6dh5MySa8j83" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "jWpZ0riB8kG3" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "KGzDgfzs_VnY" }, "outputs": [], "source": [ "# Question 1.\n", "wb_prem = wb.do(wb.prop('A=0')).do(wb.prop('W=1'))\n", "wb_cf = wb.cf(wb_prem, wb.prop('W=0'))\n", "print('P(B*| A \u003c- 0, W \u003c- 1) =', wb_cf.rv('B'), ' where B* = B[W \u003c- 0]')\n", "display(wb_cf.show(show_prob=True, cut=wb.prop('B=1')))\n", "\n", "# Question 2.\n", "wb_prem = wb.do(wb.prop('B=1')).see(wb.prop('W=1'))\n", "wb_cf = wb.cf(wb_prem, wb.prop('B=0'))\n", "print('P(W* | B \u003c- 1 then W \u003c- 1) =', wb_cf.rv('W'), ' where W* = W[B \u003c- 0]')\n", "display(wb_cf.show(show_prob=True, cut=wb.prop('W=1')))" ] }, { "cell_type": "markdown", "metadata": { "id": "ZB-JZdum16ZJ" }, "source": [ "# Part II: Examples" ] }, { "cell_type": "markdown", "metadata": { "id": "jw5OiWWC_Vna" }, "source": [ "## Construction of probability trees using factory functions\n", "\n", "Building probability trees can be difficult, especially when we have to manually\n", "specify all its nodes. \n", "\n", "To simplify this, we could design a function `factory(bvar)` which: \n", "- receives a dictionary `bvar` of bound random variables, such as \n", "`{ 'X': '1', 'Y': '0' }` \n", "- and returns a list of transitions and their statements, such as \n", "`[(0.3, 'Z = 0'), (0.2, 'Z = 1'), (0.5, 'Z = 2')].` If all relevant\n", "events have been defined already, return `None`.\n", "\n", "Such a function contains all the necessary information for building a\n", "probability tree. We call this a **probability tree factory**. We can pass a\n", "description function to the method `PTree.fromFunc()` to build a probability\n", "tree.\n", "\n", "The advantage of using this method is that we can exploit symmetries (e.g.\n", "conditional independencies) to code a much more compact description of the\n", "probability tree. Essentially, it is like specifying a probabilistic program.\n", "\n", "Let's experiment with this." ] }, { "cell_type": "markdown", "metadata": { "id": "ce_kzARO_Vna" }, "source": [ "## Burglar, Earthquake, Alarm\n", "\n", "Let's start with a classical example: a burglar alarm. The alarm gets \n", "triggered by a burglar breaking into our home. However, the alarm can \n", "also be set off by an earthquake. \n", "\n", "Let's define the factory function." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "94KpJKbm_Vnb" }, "outputs": [], "source": [ "def alarm(bvar):\n", " # Define the burglar and earthquake events.\n", " if 'Burglar' not in bvar:\n", " pb = 0.1 # Probability of burglar\n", " pe = 0.001 # Probability of earthquake\n", " return [((1 - pb) * (1 - pe), 'Burglar=0, Earthquake=0'),\n", " ((1 - pb) * pe, 'Burglar=0, Earthquake=1'),\n", " (pb * (1 - pe), 'Burglar=1, Earthquake=0'),\n", " (pb * pe, 'Burglar=1, Earthquake=1')]\n", "\n", " # Define the alarm event.\n", " if 'Alarm' not in bvar:\n", " if bvar['Burglar'] == '0' and bvar['Earthquake'] == '0':\n", " return [(0.999, 'Alarm=0'), (0.001, 'Alarm=1')]\n", " if bvar['Burglar'] == '0' and bvar['Earthquake'] == '1':\n", " return [(0.01, 'Alarm=0'), (0.99, 'Alarm=1')]\n", " if bvar['Burglar'] == '1' and bvar['Earthquake'] == '0':\n", " return [(0.1, 'Alarm=0'), (0.9, 'Alarm=1')]\n", " else:\n", " return [(0.001, 'Alarm=0'), (0.999, 'Alarm=1')]\n", "\n", " # All the events defined.\n", " return None" ] }, { "cell_type": "markdown", "metadata": { "id": "HYjrsERo_Vnd" }, "source": [ "Now, let's create the probability tree." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JOvj1N5X_Vnd" }, "outputs": [], "source": [ "# Create the probability tree.\n", "al = PTree.fromFunc(alarm, 'Root = 1')\n", "\n", "# Print all the random variables.\n", "print('Random variables:', al.rvs())\n", "print('\\nP(Alarm) =', al.rv('Alarm'))\n", "\n", "print('\\nOriginal probability tree:')\n", "display(al.show())\n", "\n", "print('\\nSome samples from the probability tree:')\n", "for k in range(5):\n", " print(al.sample())" ] }, { "cell_type": "markdown", "metadata": { "id": "z6PQk0Du_Vnh" }, "source": [ "Assume now you hear the alarm. Which explanation is more likely:\n", "did the earthquake or the burglar trigger the alarm?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "bG3qSQz7_Vni" }, "outputs": [], "source": [ "# Condition on the alarm going off.\n", "cut = al.prop('Alarm=1')\n", "crit = al.critical(cut)\n", "al_see = al.see(cut)\n", "\n", "# Compute probability distributions for earthquake and burglar.\n", "print('P(Earthquake = 1 | Alarm = 1) =', al_see.prob(al.prop('Earthquake=1')))\n", "print('P(Burglar = 1 | Alarm = 1) =', al_see.prob(al.prop('Burglar=1')))\n", "\n", "# Display the conditional probability tree.\n", "\n", "print('\\nConditional probability tree:')\n", "display(al_see.show(show_prob=True, cut=cut, crit=crit))\n", "\n", "print('\\nSome samples from the conditional probability tree:')\n", "for k in range(5):\n", " print(al_see.sample())" ] }, { "cell_type": "markdown", "metadata": { "id": "v8jmncNUF5kS" }, "source": [ "As we can see, it is far more likely that the burglar set off the alarm.\n", "\n", "If we now tamper with the alarm, setting it off, then what is the probability\n", "that there was a burglar or an earthquake?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pl3Ps_PAJB89" }, "outputs": [], "source": [ "# Intervene on the alarm going off.\n", "cut = al.prop('Alarm=1')\n", "crit = al.critical(cut)\n", "al_do = al.do(cut)\n", "\n", "# Compute probability distributions for earthquake and burglar.\n", "print('P(Earthquake = 1 | Alarm \u003c- 1) =', al_do.prob(al.prop('Earthquake=1')))\n", "print('P(Burglar = 1 | Alarm \u003c- 1) =', al_do.prob(al.prop('Burglar=1')))\n", "\n", "# Display the intervened probability tree.\n", "\n", "print('\\nIntervened probability tree:')\n", "display(al_do.show(show_prob=True, cut=cut, crit=crit))\n", "\n", "print('\\nSome samples from the intervened probability tree:')\n", "for k in range(5):\n", " print(al_do.sample())" ] }, { "cell_type": "markdown", "metadata": { "id": "xYUfpc-2KJ27" }, "source": [ "Now we observe that the probabilities of the burglar and earthquake\n", "events are exactly as the base rates - we have severed the\n", "causal dependencies connecting those events with the alarm." ] }, { "cell_type": "markdown", "metadata": { "id": "uZ5o4hHxnUw0" }, "source": [ "## Water Balloon Squad (a.k.a. Firing Squad)\n", "\n", "The following is a classical example used for illustrating counterfactual\n", "reasoning. There are two children (A and B) holding a water balloon, waiting\n", "for a signal from their friend (the \"captain\"). Upon the captain's signal,\n", "they both throw their water balloon at a single target simultaneously and\n", "accurately. The causal dependencies are as shown next:\n", "\n", "\u003cimg src=\"http://www.adaptiveagents.org/_media/wiki/waterballoon.png\" alt=\"Water Balloon Squad\" width=\"200\"/\u003e\n", "\n", "This situation can also be described using a probability tree constructed\n", "below. Note that in order to avoid problems due to conditioning on\n", "zero-probability transitions, we assign a tiny value (`eps`) to the\n", "nearly-impossible transitions.\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "QMvQGn9KclPU" }, "outputs": [], "source": [ "#@title Water Balloon Squad factory function.\n", "\n", "def waterballoon(bvar, eps=0.0001):\n", " # Root: defined.\n", " # Define the captain's signal.\n", " if 'Captain' not in bvar:\n", " if 'Captain' not in bvar:\n", " return [(0.5, 'Captain = hold'), (0.5, 'Captain = throw')]\n", "\n", " # Define the children's decisions.\n", " if 'A' not in bvar:\n", " if bvar['Captain'] == 'hold':\n", " return [((1-eps)*(1-eps), 'A = hold, B = hold'), (eps*(1-eps), 'A = hold, B = throw'), \n", " (eps*(1-eps), 'A = throw, B = hold'), (eps*eps, 'A = throw, B = throw')]\n", " else:\n", " return [(eps*eps, 'A = hold, B = hold'), (eps*(1-eps), 'A = hold, B = throw'), \n", " (eps*(1-eps), 'A = throw, B = hold'), ((1-eps)*(1-eps), 'A = throw, B = throw')]\n", "\n", " # Define target state.\n", " if 'Target' not in bvar:\n", " if bvar['A'] == 'throw' or bvar['B'] == 'throw':\n", " return [(eps, 'Target = dry'), (1-eps, 'Target = wet')]\n", " else:\n", " return [(1-eps, 'Target = dry'), (eps, 'Target = wet')]\n", "\n", " return None\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "lagYuHxMqeUM" }, "outputs": [], "source": [ "# Create and show the probability tree.\n", "wbs = PTree.fromFunc(waterballoon)\n", "wbs.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "9wgLrffyy40E" }, "source": [ "Let's start by definining some simple events we'll use next." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "USYCB9uNqmoT" }, "outputs": [], "source": [ "# First we define some simple events.\n", "cut_C = wbs.prop('Captain=throw')\n", "cut_A = wbs.prop('A=throw')\n", "cut_B = wbs.prop('B=throw')\n", "cut_T = wbs.prop('Target=wet')" ] }, { "cell_type": "markdown", "metadata": { "id": "OfgAR3u0zASo" }, "source": [ "Let's ask our first question. Assume A throws the water balloon.\n", "What is the probability of B having thrown the balloon too?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "_VcVSPg0vKz1" }, "outputs": [], "source": [ "# Condition on A throwing the water balloon.\n", "wbs_see = wbs.see(cut_A)\n", "\n", "# Print the probability of B throwing the water balloon.\n", "print('P(B = throw | A = throw) =', wbs_see.prob(cut_B))\n", "\n", "# Display the conditional probability tree.\n", "print('\\nConditional probability tree:')\n", "display(wbs_see.show(cut=cut_B))" ] }, { "cell_type": "markdown", "metadata": { "id": "IALdewe2zWVy" }, "source": [ "Notice how conditioning changed the transition probabilities, which then \n", "allow us to identify the pathways leading up to the event in which B throws\n", "the balloon. \n", "\n", "Assume now that A decides to act on their own and throws the balloon.\n", "What is the probability of B having thrown the balloon too?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "POlCBkHKvtcA" }, "outputs": [], "source": [ "# Intervene on having A throwing the water balloon.\n", "wbs_do = wbs.do(cut_A)\n", "\n", "# Print the probability of B throwing the water balloon.\n", "print('P(B = throw | do[A = throw]) =', wbs_do.prob(cut_B))\n", "\n", "# Display the conditional probability tree.\n", "print('\\nIntervened probability tree:')\n", "display(wbs_do.show(cut=cut_B))" ] }, { "cell_type": "markdown", "metadata": { "id": "okJ6csZNz-C7" }, "source": [ "Notice the difference between the two results above. If A acts on their own\n", "will, then this alters the conclusions we can draw.\n", "\n", "Let's ask a more complex question. **Assume A or B throw the balloon on their\n", "own will.** That is, we do not know precisely whether A acted by themself,\n", "B acted by themself, or both acted together. \n", "Intuitively, B (or A for that matter) is more likely to having thrown\n", "the water balloon in this situation than when they were waiting for\n", "the captain's signal. What is the probability?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "J5_6PRhtwET6" }, "outputs": [], "source": [ "# Intervene on having A throwing the water balloon.\n", "wbs_do = wbs.do(cut_A | cut_B)\n", "\n", "# Print the probability of B throwing the water balloon.\n", "print('P(B = throw | do[A = throw or B = throw]) =', wbs_do.prob(cut_B))\n", "\n", "# Display the conditional probability tree.\n", "print('\\nIntervened probability tree:')\n", "display(wbs_do.show(cut=cut_B))" ] }, { "cell_type": "markdown", "metadata": { "id": "U6AUPwU8wSoc" }, "source": [ "The above result shows that it is indeed more likely (%75) that B has \n", "thrown their balloon than when they were waiting for the signal (50%). \n", "\n", "Now we will ask counterfactual questions. Let's start with an easy one first. \n", "\n", "Assume you observe that the target is wet. Then, **had the captain not given\n", "the signal**, what is the probability that B would have thrown their water\n", "balloon at the target?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "wJPAuhj7sKq8" }, "outputs": [], "source": [ "# Condition on the target being wet.\n", "wbs_see = wbs.see(cut_T)\n", "\n", "# Compute counterfactual: given that the target is wet,\n", "# what is the probability of B throwing the water balloon\n", "# had the captain not given the signal?\n", "wbs_cf = wbs.cf(wbs_see, ~cut_C)\n", "print('P(B[C != throw] = throw | Target = wet) =', wbs_cf.prob(cut_B))\n", "display(wbs_cf.show(cut=cut_B))" ] }, { "cell_type": "markdown", "metadata": { "id": "0gifSRkYxDMA" }, "source": [ "The result shows that B would not have thrown the water balloon.\n", "This makes sense, as we assumed that B did not get the captain's signal.\n", "\n", "Now, assume again you observe that the target is wet. \n", "**Had A not thrown the water balloon, would B have thrown it?**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Qj03sMAexj4e" }, "outputs": [], "source": [ "# Condition on the target being wet.\n", "wbs_see = wbs.see(cut_T)\n", "\n", "# Compute counterfactual: given that the target is wet,\n", "# what is the probability of B throwing the water balloon\n", "# had A not done it?\n", "wbs_cf = wbs.cf(wbs_see, ~cut_A)\n", "print('P(B[A != throw] = throw | Target = wet) =', wbs_cf.prob(cut_B))\n", "display(wbs_cf.show(cut=cut_B))" ] }, { "cell_type": "markdown", "metadata": { "id": "Jl6rVmjcxqUY" }, "source": [ "As is shown above, the answer is yes. This is because from observing the wet\n", "target we can conclude that the captain has given the signal. \n", "Hence, had A not thrown the water balloon, B must have thrown it\n", "instead. You can verify the causal pathways by inspecting the tree." ] }, { "cell_type": "markdown", "metadata": { "id": "_UO1GC7T_Vnl" }, "source": [ "## Coin toss prediction\n", "\n", "Let's build another probability tree. This is a discrete approximation to a\n", "process having a continuous random variable: a **Beta-Bernoulli process**. \n", "This problem was first studied by Rev. Thomas Bayes (\"An Essay towards\n", "solving a Problem in the Doctrine of Chances\", 1763) .\n", "\n", "The story goes as follows. Someone picks a coin with an unknown bias and then throws it repeatedly. Our goal is to infer the next outcome based only on the observed outcomes (and not on the latent bias). The unknown bias is drawn\n", "uniformly from the interval [0, 1].\n", "\n", "Let's start by coding the factory function for the discretized Beta-Bernoulli\n", "process. Here we assume that the prior distribution over the bias is uniform,\n", "and discretized into `divtheta = 40` bins. Then `T = 5` coin tosses follow. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "X00sYFKB_Vnm" }, "outputs": [], "source": [ "#@title Beta-Bernoulli factory function.\n", "\n", "def betaBernoulli(bvar, divtheta=41, T=5):\n", " # Root: defined.\n", " # Define biases Bias=0, 1/divtheta, 2/divtheta, ... , 1\n", " if 'Bias' not in bvar:\n", " ptheta = 1.0 / divtheta\n", " biases = [(ptheta, 'Bias=' + str(theta))\n", " for theta in np.linspace(0.0, 1.0, divtheta, endpoint=True)]\n", " return biases\n", "\n", " # Biases: defined.\n", " # Now create Bernoulli observations X_1, X_2, ... , X_T,\n", " # where X_t=0 or X_t=1.\n", " t = 1\n", " for var in bvar:\n", " if '_' not in var:\n", " continue\n", " t += 1\n", " if t \u003c= T:\n", " theta = float(bvar['Bias'])\n", " varstr = 'X_' + str(t)\n", " return [(1 - theta, varstr + '=0'), (theta, varstr + '=1')]\n", "\n", " # All the events defined.\n", " return None" ] }, { "cell_type": "markdown", "metadata": { "id": "4e3ZM5Vl_Vnr" }, "source": [ "We now build the probability tree. Let's also print the \n", "random variables and get a few samples." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "zN3TzCnQHoz6" }, "outputs": [], "source": [ "# Create tree.\n", "bb = PTree.fromFunc(betaBernoulli)\n", "\n", "# Show random variables.\n", "print('Random variables:')\n", "print(bb.rvs())\n", "\n", "# Get sample.\n", "print('\\nSamples from the process:')\n", "for n in range(10):\n", " print(bb.sample())" ] }, { "cell_type": "markdown", "metadata": { "id": "R4yVyNboW84N" }, "source": [ "The tree itself is quite large (over 1000 nodes). \n", "Normally such trees are too large to\n", "display, for instance when `T` is large.\n", "\n", "Let's display it, just for fun." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "EvV6Gv4XaTxZ" }, "outputs": [], "source": [ "bb.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "JEuxhMkKHlUm" }, "source": [ "\n", "### Exercise \n", "\n", "Let's do some inference now.\n", "\n", "Assume you observe the first four toin cosses. They are\n", "```\n", "observations = ['X_1=1', 'X_2=1', 'X_3=0', 'X_4=1']\n", "```\n", "\n", "Answer the following questions:\n", "1. What is the prior distribution over the unknown bias?\n", "2. What is the probability of the next outcome being Heads (`X_5=1`)?\n", "3. Given the observations, what is the distribution over the\n", "latent bias?\n", "4. Rather than observing the four outcomes, assume instead\n", "that you enforce the outcomes. What is the probability of\n", "the next outcome being Heads?\n", "5. What is the distribution over the latent bias if you enforce\n", "the data?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "cwdfiRj-bNBR" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "7fTawNEfbNZ1" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "yPG6AbQo_Vnr" }, "outputs": [], "source": [ "# Prepare the cut forthe data.\n", "observations = ['X_1=1', 'X_2=1', 'X_3=0', 'X_4=1']\n", "cut_data = None\n", "for s in observations:\n", " if cut_data is None:\n", " cut_data = bb.prop(s)\n", " else:\n", " cut_data \u0026= bb.prop(s)\n", "\n", "# Prepare the cut for the query.\n", "cut_query = bb.prop('X_5=1')\n", "\n", "# Question 1\n", "bias = bb.rv('Bias')\n", "print('P(Bias) :\\n' + str(bias))\n", "\n", "# Question 2\n", "bb_cond = bb.see(cut_data)\n", "print('\\nP(X_5 = 1 | Data) = ' + str(bb_cond.prob(cut_query)))\n", "\n", "# Question 3\n", "bias_cond = bb_cond.rv('Bias')\n", "print('\\nP(Bias | Data) :\\n' + str(bias_cond))\n", "\n", "# Question 4\n", "bb_int = bb.do(cut_data)\n", "print('\\nP(X_5 = 1 | do(Data)) = ' + str(bb_int.prob(cut_query)))\n", "\n", "# Question 5\n", "bias_int = bb_int.rv('Bias')\n", "print('\\nP(Bias | do(Data)) :' + str(bias_int))\n", "\n", "# Display distribution over bias.\n", "print('\\nDistribution over biases for the three settings:')\n", "\n", "fig = plt.figure(figsize=(15, 5))\n", "\n", "# Show prior.\n", "plt.subplot(131)\n", "res = bb.rv('Bias')\n", "theta = np.array([theta for _, theta in res], dtype=np.float)\n", "prob = np.array([prob for prob, _ in res])\n", "plt.fill_between(theta, prob, 0)\n", "plt.title('P(Bias)')\n", "plt.ylim([-0.005, 0.1])\n", "plt.xlabel('Bias')\n", "\n", "# Show posterior after conditioning.\n", "plt.subplot(132)\n", "res = bb.see(cut).rv('Bias')\n", "theta = np.array([theta for _, theta in res], dtype=np.float)\n", "prob = np.array([prob for prob, _ in res])\n", "plt.fill_between(theta, prob, 0)\n", "plt.title('P(Bias|D)')\n", "plt.ylim([-0.005, 0.1])\n", "plt.xlabel('Bias')\n", "\n", "# Show posterior after intervening.\n", "plt.subplot(133)\n", "res = bb.do(cut).rv('Bias')\n", "theta = np.array([theta for _, theta in res], dtype=np.float)\n", "prob = np.array([prob for prob, _ in res])\n", "plt.fill_between(theta, prob, 0)\n", "plt.title('P(Bias|do(D))')\n", "plt.ylim([-0.005, 0.1])\n", "plt.xlabel('Bias')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "eoNn0c5rj5U1" }, "source": [ "## Who's in charge?\n", "\n", "In this problem we will look at causal induction. Alice and Bob play a game\n", "where both of them shout either 'chicken' or 'egg'.\n", "\n", "At the beginning of the game, one of them is chosen to be the leader, and\n", "the other, the follower. The follower will always attempt to match the\n", "leader: so if Alice is the leader and Bob the follower, and Alice\n", "shouts 'chicken', then Bob will attempt to shout 'chicken' too (with\n", "60% success rate).\n", "\n", "A typical game would look like this:\n", "\n", "- Round 1: Alice shouts 'egg', Bob shouts 'chicken'.\n", "- Round 2: Alice shouts 'chicken', Bob shouts 'chicken'.\n", "- Round 3: Alice shouts 'chicken', Bob shouts 'chicken'.\n", "- Round 4: Alice shouts 'egg', Bob shouts 'egg'.\n", "\n", "Note that you hear both of them shouting simultaneously.\n", "\n", "Our goal is to discover who's the leader. This is a **causal induction\n", "problem**, because we want to figure out whether:\n", "- hypothesis `Leader = Alice`: Alice $\\rightarrow$ Bob;\n", "- or hypothesis `Leader = Bob`: Bob $\\rightarrow$ Alice.\n", "\n", "Let's start by defining the factory function." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pRDAaQwW_zuF" }, "outputs": [], "source": [ "#@title Leader factory function.\n", "\n", "def leader(bvar, T=2):\n", " p = 0.75 # Probability of match.\n", "\n", " # Define leader.\n", " if 'Leader' not in bvar:\n", " return [(0.5, 'Leader=Alice'), (0.5, 'Leader=Bob')]\n", "\n", " # Now create the shouts.\n", "\n", " # Figure out the leader.\n", " if bvar['Leader'] == 'Alice':\n", " leader = 'Alice'\n", " follower = 'Bob'\n", " else:\n", " leader = 'Bob'\n", " follower = 'Alice'\n", "\n", " # Define random variables of shouts.\n", " for t in range(1, T+1):\n", " leader_str = leader + '_' + str(t)\n", " if leader_str not in bvar:\n", " return [(0.5, leader_str + '=chicken'), (0.5, leader_str + '=egg')]\n", "\n", " follower_str = follower + '_' + str(t)\n", " if follower_str not in bvar:\n", " if bvar[leader_str] == 'chicken':\n", " return [(p, follower_str + '=chicken'), (1-p, follower_str + '=egg')]\n", " else:\n", " return [(1-p, follower_str + '=chicken'), (p, follower_str + '=egg')]\n", "\n", " # We're done.\n", " return None\n", "\n", "# Create true environment.\n", "class ChickenEggGame:\n", "\n", " def __init__(self, T=2):\n", " self.T = T\n", " self.pt = PTree.fromFunc(lambda bvar:leader(bvar, T=T))\n", " smp = self.pt.sample()\n", " self.pt.do(self.pt.prop('Leader=' + smp['Leader']))\n", " self.time = 0\n", "\n", " def step(self, name, word):\n", " # Check whether parameters are okay.\n", " if name != 'Alice' and name != 'Bob':\n", " raise Exception('\"name\" has to be either \"Alice\" or \"Bob\".')\n", " if word != 'chicken' and word != 'egg':\n", " raise Exception('\"word\" has to be either \"chicken\" or \"egg\".')\n", " if self.time \u003e self.T -1:\n", " raise Exception('The game has only ' + str(self.T) + ' rounds.')\n", "\n", " # Enforce instruction.\n", " self.time = self.time + 1\n", " cut_do = self.pt.prop(name + '_' + str(self.time) + '=' + word)\n", " self.pt = self.pt.do(cut_do)\n", "\n", " # Produce next sample.\n", " smp = self.pt.sample()\n", " if name == 'Alice':\n", " varname = 'Bob_' + str(self.time)\n", " else:\n", " varname = 'Alice_' + str(self.time)\n", " response = smp[varname]\n", " cut_see = self.pt.prop(varname + '=' + response) \n", " self.pt = self.pt.see(cut_see)\n", "\n", " return varname + '=' + response\n", "\n", " def reveal(self):\n", " smp = self.pt.sample()\n", " return smp['Leader']" ] }, { "cell_type": "markdown", "metadata": { "id": "0IwyuPLrsE0v" }, "source": [ "The factory function is called `leader()`.\n", "\n", "Let's first have a look at how the probability tree would\n", "look like for `T = 2` rounds." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "gveaR8W2sSJv" }, "outputs": [], "source": [ "ld = PTree.fromFunc(lambda bvar: leader(bvar, T=2), root_statement='Root = 1')\n", "display(ld.show())" ] }, { "cell_type": "markdown", "metadata": { "id": "LU6ZQ0e1cUw3" }, "source": [ "Notice how the transition probabilities of `Alice_n, Bob_n`,\n", "`n = 1, 2`, are identical within the subtree rooted at \n", "`Leader = Alice`. The same is true for the transitions probabilities\n", "within the subtree rooted at `Leader = Bob`.\n" ] }, { "cell_type": "markdown", "metadata": { "id": "ZtXmvPbIsqBI" }, "source": [ "Now, let's create a new probability tree for a slightly longer game,\n", "namely `T = 5`. **This tree is too big to display** (over 2K nodes)\n", "but we can still sample from it." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "lekPv0r1Egti" }, "outputs": [], "source": [ "T = 5\n", "ld = PTree.fromFunc(lambda bvar: leader(bvar, T=T), root_statement='Root = 1')\n", "\n", "print('Samples from the probability tree:')\n", "for n in range(T):\n", " print(ld.sample())" ] }, { "cell_type": "markdown", "metadata": { "id": "dNdejpEjR6WI" }, "source": [ "Let's first figure out the joint distribution over Alice's and Bob's shouts\n", "in the first round (remember, rounds are i.i.d.) when Alice is the leader,\n", "and compare this to the situation when Bob is the leader.\n", "\n", "We can do this by setting `Leader` to whoever we want to be the leader,\n", "and then enumerate the joint probabilities over the combinations of\n", "shouts." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "X1lMShnYEqDz" }, "outputs": [], "source": [ "import itertools\n", "\n", "# Define cuts for both leaders.\n", "cut_leader_a = ld.prop('Leader = Alice')\n", "cut_leader_b = ld.prop('Leader = Bob')\n", "\n", "# The words they can say.\n", "words = ['chicken', 'egg']\n", "\n", "# Print the joint distribution over\n", "# shouts when Alice is the leader.\n", "print('Leader = Alice')\n", "for word_a, word_b in itertools.product(words, words):\n", " cut = ld.prop('Alice_1 = ' + word_a) \u0026 ld.prop('Bob_1 = ' + word_b)\n", " prob = ld.do(cut_leader_a).prob(cut)\n", " fmt = 'P( Alice_1 = {}, Bob_1 = {} | Leader \u003c- Alice) = {:.2f}'\n", " print(fmt.format(word_a, word_b, prob))\n", "\n", "# Print the joint distribution over\n", "# shouts when Bob is the leader.\n", "print('\\nLeader = Bob')\n", "for word_a, word_b in itertools.product(words, words):\n", " cut = ld.prop('Alice_1 = ' + word_a) \u0026 ld.prop('Bob_1 = ' + word_b)\n", " prob = ld.do(cut_leader_b).prob(cut)\n", " fmt = 'P( Alice_1 = {}, Bob_1 = {} | Leader \u003c- Bob) = {:.2f}'\n", " print(fmt.format(word_a, word_b, prob))" ] }, { "cell_type": "markdown", "metadata": { "id": "IxkzXrhDawc1" }, "source": [ "Looking at the joint probabilities, **we realize that they are identical**.\n", "This means that we cannot identify who's the leader by conditioning on\n", "our observations. Let's try this with the following observations:\n", "```\n", "obs = [\n", " 'Alice_1=chicken', 'Bob_1=egg', \n", " 'Alice_2=egg', 'Bob_2=egg', \n", " 'Alice_3=egg', 'Bob_3=egg'\n", " ]\n", "```\n", "\n", "We now compare the prior and posterior probabilities of Bob being the leader." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "skor-95PGNpa" }, "outputs": [], "source": [ "import functools \n", "\n", "obs = [\n", " 'Alice_1=chicken', 'Bob_1=egg', \n", " 'Alice_2=egg', 'Bob_2=egg', \n", " 'Alice_3=egg', 'Bob_3=egg'\n", " ]\n", "cuts_data = [ld.prop(data) for data in obs]\n", "cut_data = functools.reduce(lambda x, y: x \u0026 y, cuts_data)\n", "cut_query = ld.prop('Leader=Bob')\n", "\n", "prob_prior = ld.prob(cut_query)\n", "prob_post = ld.see(cut_data).prob(cut_query)\n", "print('Prior and posterior probabilities:')\n", "print('P( Leader = Bob ) = {:.2f}'.format(prob_prior))\n", "print('P( Leader = Bob | Data ) = {:.2f}'.format(prob_post))\n" ] }, { "cell_type": "markdown", "metadata": { "id": "dR2U7_0quNYm" }, "source": [ "As you can see, this doesn't work - we can't disentangle the two hypotheses\n", "just by looking at the data.\n", "\n", "Intuitively, we could figure out whether Alice or Bob is the leader by\n", "intervening the game - for instance, by instructing Bob to say what\n", "we want and observe Alice's reaction:\n", "- if Alice matches Bob many times, then she's probably the follower;\n", "- instead if Alice does not attempt to match Bob, then we can conclude \n", "that Alice is the leader.\n", "\n", "Crucially, we need to **interact** in order to collect the data. \n", "It's not enough to passively observe. For this, we'll use\n", "an implementation of the game (`ChickenEggGame`) that allows\n", "us to instruct either Alice or Bob to shout the word we want. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "f7rPh-f6UKWM" }, "outputs": [], "source": [ "T = 5\n", "game = ChickenEggGame(T=T)\n", "\n", "# Do T rounds.\n", "for n in range(T):\n", " reply = game.step('Alice', 'chicken')\n", " print(reply)\n", "\n", "# Reveal.\n", "print('The true leader is:' + game.reveal())" ] }, { "cell_type": "markdown", "metadata": { "id": "po_krgRljGmp" }, "source": [ "### Exercise\n", "\n", "Using `ChickenEggGame`, play `T=5` rounds giving an instruction.\n", "Use a copy of the probability tree `ld` to record the results,\n", "appropriately distinguishing between conditions and interventions.\n", "Finally, compute the posterior probability of Alice being the\n", "leader and compare with ground truth (using the `reveal` method).\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "5-5dNAcdk0Nz" }, "outputs": [], "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "z4icvktpk0v0" }, "source": [ "#### Solution" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "m9DZhCjcVn4-" }, "outputs": [], "source": [ "import copy\n", "\n", "T = 5\n", "game = ChickenEggGame(T=T)\n", "\n", "# Do T rounds.\n", "print('Game:')\n", "ldg = copy.deepcopy(ld)\n", "for t in range(1, T+1):\n", " reply = game.step('Alice', 'chicken')\n", " instruction = 'Alice_' + str(t) + '=chicken'\n", " ldg = ldg.do(ldg.prop(instruction))\n", " ldg = ldg.see(ldg.prop(reply))\n", " print(instruction + ', ' + reply)\n", "\n", "# Prediction.\n", "print('\\nPrediction:')\n", "cut_query = ldg.prop('Leader=Alice')\n", "prob_post = ldg.prob(cut_query)\n", "print('P(Leader = Alice | Data) = {:.5f}'.format(prob_post))\n", "\n", "# Reveal ground truth.\n", "print('\\nGround truth:')\n", "print('Leader = ' + game.reveal())" ] } ], "metadata": { "colab": { "collapsed_sections": [ "qHP8zlWs1OUN", "XUQVMuc2_VlG", "P4cjtJaR_VlH", "KxQFfJio_VlM", "lcEgcO7C_VlQ", "BscAftLn_VlZ", "t9ntPBZd_Vlk", "Fq63jb0u_Vln", "afVSi5xo_Vlo", "ehQ37yPg7Wil", "9TvtFpta_Vls", "tZijtGvW_Vlw", "CRsPVDcg_Vlz", "HHmLu4w_7e-S", "rqcodRJr_Vl3", "1AxBz2Ml_VmG", "YbYnVRiM_VmJ", "zyP7gSPl_VmN", "K7OJKlcZ_VmQ", "bD3LT8NV7rRV", "ehK-sadN_VmT", "ZtQffc1P7wxk", "5PCmW5ol_VmX", "CtfxGITj_Vmd", "-1fUlg1O76bp", "9ggdcdjg_Vmg", "Bwc00gKT_Vmj", "NUy8SH-O7_jT", "6Y8wjMCi_Vmm", "RVtd_Pov_Vmt", "RLijoy-__Vmy", "2fuYExoQ_Vm1", "13s9eGWF8FZA", "9Dmexb79_Vm4", "RXjEiNWa_VnA", "qNqHBq19_VnD", "9JFZjAra8LJd", "SCZyxF5l_VnG", "k1vLg3F_8O7c", "3OMlUFKF_VnM", "B3DdaUXJ_VnV", "yxuqdgvA8g-J", "ioUtMVOs_VnX", "jWpZ0riB8kG3", "ZB-JZdum16ZJ", "jw5OiWWC_Vna", "ce_kzARO_Vna", "uZ5o4hHxnUw0", "_UO1GC7T_Vnl", "JEuxhMkKHlUm", "7fTawNEfbNZ1", "eoNn0c5rj5U1", "po_krgRljGmp", "z4icvktpk0v0" ], "name": "Causality Tutorial.ipynb", "provenance": [ {} ] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: causal_reasoning/README.md ================================================ # Algorithms for Causal Reasoning in Probability Trees *By the AGI Safety Analysis Team @ DeepMind* Probability trees are one of the simplest models of causal generative processes. They possess clean semantics and are strictly more general than causal Bayesian networks, as they are able to e.g. represent causal relations that causal Bayesian networks cannot. Yet, they have received little attention from the AI and ML community. Here we present new algorithms for causal reasoning in discrete probability trees that cover the entire causal hierarchy (association, intervention, and counterfactuals), and operate on arbitrary propositional and causal events. Our work expands the domain of causal reasoning to a very general class of discrete stochastic processes. For details, see our paper [Algorithms for Causal Reasoning in Probability Trees](https://arxiv.org/abs/2010.12237). The accompanying colab is available here: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/causal_reasoning/Causal_Reasoning_in_Probability_Trees.ipynb) If you use the code here please cite this paper. > Tim Genewein*, Tom McGrath*, Grégoire Delétang*, Vladimir Mikulik*, Miljan Martic, Shane Legg, Pedro A. Ortega. [\[arXiv\]](https://arxiv.org/abs/2010.12237) ================================================ FILE: cmtouch/CMTouch_Dataset_Visulization.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "OYWMcJafmrfI" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "uUVnn8AOBJOy" }, "outputs": [], "source": [ "import tree\n", "import numpy as np\n", "from IPython import display\n", "import tensorflow.compat.v2 as tf\n", "from PIL import Image\n", "tf.enable_v2_behavior()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "vd4HZbkabm9R" }, "outputs": [], "source": [ "# Download Dataset\n", "!wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_val.tfrecords -q\n", "!wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_val.tfrecords -q " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "height": 81 }, "executionInfo": { "elapsed": 1307, "status": "ok", "timestamp": 1605647960110, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 0 }, "id": "aTghgnRyBNCr", "outputId": "f0cd2f48-774d-4be9-d181-00fb1bb709d7" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAABACAIAAAAF2FHpAACbgklEQVR4nOz9eZhdx3HgC8aSec65\ntxbsKOw7wU2iuO+USEqyZUnURq22Zavbbfd0z5uZfvN1j/sf//H8Zt7S3+v35r1ZeubrxW3Lbqtl\nU7ZkybIokZJIijuJjdiBAlBA7VWo7d57lsyImD/OrSIoETJBQoTdgyS/wq1Tt279TpzIzIjIyEh8\n8cUX4e9DM7Ol14h4BUneXrvKf2XbVf4r267yX9l2lf/Ktovx05WAeTsNL2hmhojMfKWhLqFd5b+y\n7Sr/lW1X+a9su8p/ZdvF+P/eTMAXNkQUkSNHjvzVX/3VlWZ5O+0q/5VtV/mvbLvKf2XbVf4r2y7k\nd1ca5q22C912RNy3b9/v/d7vEdEjjzxyBaneervKf2XbVf4r267yX9l2lf/KtovxO7xC8fQLY+Jv\n/VeccyGEAwcO/O7v/u6SL/+LwHsrMG/jV67yX652lf8q/ztpV/mv8r+Tdrn4r5gHfKmCY+YYo4gQ\n0b/4F/8CEYlIVX9BeH9ru8p/lf+dtKv8V/nfSbvK/18G/9+bEHSM0TlnZv/8n/9z772q1pH0K831\nVttV/ivbrvJf2XaV/8q2q/xXtl2M/++NBwwAIrJv374DBw7U7n9VVc5d5X+b7Sr/Vf530q7yX+V/\nJ+0qf81/xdaAL7UhonPuj/7oj+rXquqcq+2IK432ltpV/ivbrvJf2XaV/8q2q/xXtl2M/+/NNiQi\nCiHs378fAOq1d1X9e7QV7Cr/lW1X+a9su8p/ZdtV/ivbLsb/98YDBgBEXLFihfe+3W4DQJ7nVzAL\n7m20q/xXtl3lv7LtKv+VbVf5r2x7U/6/Nx6wmT322GMrVqwQkTRN64vLly+/olCX0K7yX9l2lf/K\ntqv8V7Zd5b+y7WL87m3sZ3rb7WLWys9hIKLazCGiv/zLv3TOOeeIqCiK5cuX13llvzDen25X+a/y\nv5N2lf8q/ztpV/n/y+P/OxGC/jkM9W7lgwcPfvvb3240GsycJEl9G3me53l+lf+dt6v8V7Zd5b+y\n7Sr/lW3//8z/rk7AF7MUfg5DvX3q93//92tboV64VtUQQlmWP/93L3u7yn+V/520q/xX+d9Ju8r/\nXx6/A/ipX373PPq/tdU39tWvfrXT6cBi8ljtzsNiSet3geJty+TvBv9Ptfpe3pLW/p3kv4R2lf/d\nbfZTevV3jd8uoMM36dNX+d/N9rcPRH+3+f/29lb4XSJOEdQUmFQVCBFMzYgsxpgkSYwRFl1pACCi\npTuPMWZZFkJwztXfJknyu7/7u1NTU/39/VVVmVme5xcC1UxmNjU11dPTk2VZHSVfwhWRT37yk0S0\nc+fOVatW9fT0FEVRVRUipmla1x4TEe99VVUAQGBLeEsfXtsaiFhPn0QkIjWegZpZ/Z4liQCgGnY/\nR7S+7JxTMwUEqwueGRGa1CZMVLBaFGb2rW99a2Fh4fHHH//4xz/++OOP33vvvbt27Zqent64ceN1\n113X6XSqqiIi731dkKy2gNI0JaLLwm+A0RABEVFNzQABnPf1e8G6asoEaKaqAAjsVdXMmJmIvva1\nr/X399d38eEPf9g5Nzs7m2XZRz/60fn5+RhjrTc1WP0IENF7/4vmR7W6r5opEgFo/acJsdZDNfTe\nH3jt0MTExMTExA+f/MGHPvQhVW21Wrt27brlllsWFhaKonDOpWkaY6wrwP2d5X/yie9/+MMfFpF2\nu71r1673ve99CwsLZVkyc5qm9e++m/xgVndPwy5/VEFAT77+HEIDsAMHDowOn5ubm//eD5687bbb\nli1b1mq1rr/++htuuKHdbocQiOjd1x9TUzCrx3pTuED+DoiJAcA0mumhQ4eGzw4tLLT+5vtP3Hrr\nrcuXL2+327t3737Pe97TarXKsiSiLMtEpO41tnii3JXiT8jDovxr/smJ8fGx8cef+GEt/3a7fc01\n19x6663tdrvT6aRpyszMLCJmFkKoh6Mrpz/Y/RGSqhw8fOTcuXMLCwvf++7f3HHHHcuXL5+fn7/2\n2mtvuummJflfEf3/Of3XORdjBGQAqPvv+Pj4D5/8wa233rpy5cpa/jfeeGM9f8UY+/v7a6oLx398\n8ZVXmZ2ZgOp3vv1XZgpmaHj0+PETJ0+22+3f+73fO3jwYD1s1fuumLlWvsHBwaNHj8YY63GcmWdn\nZy/0tRGxnr8vnIPr+19aP8fFqb3+yswhBDNrNBrnz5//8pe/vGPHjj179szOzvb29qZp+t73vvfs\n2bN/8Ad/sLCwEGP87t98r/7tpdKgCKimzjlTU9Pu5xsgISGpBjMgqs2Q+k+bGdSiQURCNpHusxRB\nt+QBk5oSsqoSUVQ5duzYd77znSNHjohIkiQhhCW7hoiuvfba7du3i8jIyEir1Vq7du0111yzYcOG\nejfY97///YmJCTO7TPymKkQIiIQooogAgKrKxEtmpmqszR0iUusaYo899tg3v/nNJQOofsQDAwOr\nVq3asmVLjHF8fHx2dnbDhg1Jktx9991lWe7bt++JJ56YnJwMIXzv8e//IvmNyGGXX1UVycCMGFWg\n3sx+5Ojxv/iLv9izd3+t0KZxzZo1zrnz589/+MMfVtVa/gMDA1mW3XnnnVVV7d279+8sP5isWrUq\nTdPR0dFf+ZVfQcSzZ8/meb569eqaP4TwLvN39QdVVRGttkRVjACR6MiRI4899tj+/fuzLFMFdm7Z\nsmVZlq1cuXLr1q1JkgwODnY6nYGBgSulPxfyE3blL1GZnaoeO3bsscceO3DgQJIkZsDO1/yrVq3a\nunUrEZ07d25ubm79+vW1/Muy3L9//+OPPz41NaWqv+D+e1F+jYbYlf83v/nNl19+Oc0y7xIk6u/v\n7+npGR0d/chHPqKqo6Oj8/Pzq1evXrZs2S233HKh/sQYr5z+KAIQ0eEjxx577LH9rx1MksTMGmmW\nZdmyZctGRkY+8pGPMPPQ0NDCwsJS/3339f9i/bee9Q4fOfatb33rlVf3JkmCiIS2atUq7/3atWs3\nb95sZqdOnSrLctOmTWvWrNm9e3cIYc+ePUvjv3v18P7/5X/+1w2fSFkmjhmREc1srlXULuu/+lf/\nKkkSERGReum4Hrhrk1ZElpzgsiyXL1++evXq6enp6enppal6afZtNBpLr+uJubZlasHVE3P9bZIk\nnU4ny7I/+7M/K8vSey8iv/d7v3fNNdeIyPr16w8fPvyd73ynnk4cc4yiIsQsMRIzI4sIIRJS9xmA\nmSo6WnK4TRUA1KzWAwBxzCpCJgA2eOLk0aOHPTOi+dQDchViXpQuTc0Qifbu3X/s2LGuNURUFMVS\ntEBVa7//+9//vpnNz8/fcccd//Sf/tOqqmrbYvny5c8///z4+Hhtjb5zfiZkqxywiiAiG5w8cfLo\n0aPOMSAnSYpI9aqDAnjne3p7lVynk//hH/5ho9Gon2M9B9fOyvz8/I4dOx5//HEiarfbzPzFL35x\nx44dAJDn+cqVK5999tka/hfM7xR9mqSEEEJZViWYOse9vX3AWVT98Y9/fOz4SQDozr5mzDw5Obly\n5cqPf/zjBw4cOHLkiHNOVT//+c9v27aNmTudzooVK/7u8hNNTEysXbv2kUceOXz48OHDh9M0DSE8\n+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\nX/z/P29eKu50F4yHAAAAAElFTkSuQmCC\n", "text/plain": [ "\u003cPIL.Image.Image image mode=RGB size=640x64 at 0x7F8F7FBAB0B8\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Read CMTouch Props\n", "\n", "record_file = 'cmtouch_touch_props_all_im64_val.tfrecords' #@param\n", "dataset = tf.data.TFRecordDataset(record_file)\n", "\n", "# Create a dictionary describing the features.\n", "feature_description = {\n", " 'sequence_length': tf.io.FixedLenFeature([], tf.int64),\n", " 'camera': tf.io.FixedLenFeature([], tf.string),\n", " 'camera/height': tf.io.FixedLenFeature([], tf.int64),\n", " 'camera/width': tf.io.FixedLenFeature([], tf.int64),\n", " 'camera/channel': tf.io.FixedLenFeature([], tf.int64),\n", " 'shadowhand_motor/joints_vel': tf.io.FixedLenFeature([], tf.string),\n", " 'shadowhand_motor/joints_vel/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'shadowhand_motor/joints_pos': tf.io.FixedLenFeature([], tf.string),\n", " 'shadowhand_motor/joints_pos/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'shadowhand_motor/spatial_touch': tf.io.FixedLenFeature([], tf.string),\n", " 'shadowhand_motor/spatial_touch/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'actions': tf.io.FixedLenFeature([], tf.string),\n", " 'actions/dim': tf.io.FixedLenFeature([], tf.int64),\n", "}\n", "\n", "\n", "def _parse_tf_example(example_proto):\n", " # Parse the input tf.train.Example proto using the dictionary above.\n", " example = tf.io.parse_single_example(example_proto, feature_description)\n", " data = {}\n", " for scalar_data_key, dtype in [\n", " ('shadowhand_motor/joints_vel', tf.float32),\n", " ('shadowhand_motor/joints_pos', tf.float32),\n", " ('shadowhand_motor/spatial_touch', tf.float32),\n", " ('actions', tf.float32),\n", " ]:\n", " data[scalar_data_key] = tf.reshape(\n", " tf.io.decode_raw(example[scalar_data_key], dtype),\n", " [-1, example[f'{scalar_data_key}/dim']])\n", "\n", " for image_data_key, dtype in [('camera', tf.uint8)]:\n", " data[image_data_key] = tf.reshape(\n", " tf.io.decode_raw(example[image_data_key], dtype), [\n", " -1, example[f'{image_data_key}/height'],\n", " example[f'{image_data_key}/width'],\n", " example[f'{image_data_key}/channel']\n", " ])\n", "\n", " return data\n", "\n", "\n", "parsed_dataset = dataset.map(_parse_tf_example)\n", "for data in parsed_dataset.take(1):\n", " display.display(\n", " Image.fromarray(np.concatenate(data['camera'].numpy()[::20], axis=1)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "height": 81 }, "executionInfo": { "elapsed": 577, "status": "ok", "timestamp": 1605647961015, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 0 }, "id": "K7S3Vr_R4j6h", "outputId": "66149fc1-5a45-454b-b225-ad32fcc45618" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "\u003cPIL.Image.Image image mode=RGB size=640x64 at 0x7F8F83E0F860\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Read CMTouch YCB\n", "\n", "record_file = 'cmtouch_touch_objects_ycb_all_im64_val.tfrecords' #@param \n", "dataset = tf.data.TFRecordDataset(record_file)\n", "\n", "# Create a dictionary describing the features.\n", "feature_description = {\n", " 'sequence_length': tf.io.FixedLenFeature([], tf.int64),\n", " 'camera': tf.io.FixedLenFeature([], tf.string),\n", " 'camera/height': tf.io.FixedLenFeature([], tf.int64),\n", " 'camera/width': tf.io.FixedLenFeature([], tf.int64),\n", " 'camera/channel': tf.io.FixedLenFeature([], tf.int64),\n", " 'object_id': tf.io.FixedLenFeature([], tf.string), # for both\n", " 'object_id/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'orientation_id': tf.io.FixedLenFeature([], tf.string), # only for ycb\n", " 'orientation_id/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'shadowhand_motor/joints_vel': tf.io.FixedLenFeature([], tf.string),\n", " 'shadowhand_motor/joints_vel/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'shadowhand_motor/joints_pos': tf.io.FixedLenFeature([], tf.string),\n", " 'shadowhand_motor/joints_pos/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'shadowhand_motor/spatial_touch': tf.io.FixedLenFeature([], tf.string),\n", " 'shadowhand_motor/spatial_touch/dim': tf.io.FixedLenFeature([], tf.int64),\n", " 'actions': tf.io.FixedLenFeature([], tf.string),\n", " 'actions/dim': tf.io.FixedLenFeature([], tf.int64),\n", "}\n", "\n", "\n", "def _parse_tf_example(example_proto):\n", " # Parse the input tf.train.Example proto using the dictionary above.\n", " example = tf.io.parse_single_example(example_proto, feature_description)\n", " data = {}\n", " for scalar_data_key, dtype in [\n", " ('object_id', tf.float32),\n", " ('orientation_id', tf.float32),\n", " ('shadowhand_motor/joints_vel', tf.float32),\n", " ('shadowhand_motor/joints_pos', tf.float32),\n", " ('shadowhand_motor/spatial_touch', tf.float32),\n", " ('actions', tf.float32),\n", " ]:\n", " data[scalar_data_key] = tf.reshape(\n", " tf.io.decode_raw(example[scalar_data_key], dtype),\n", " [-1, example[f'{scalar_data_key}/dim']])\n", "\n", " for image_data_key, dtype in [('camera', tf.uint8)]:\n", " data[image_data_key] = tf.reshape(\n", " tf.io.decode_raw(example[image_data_key], dtype), [\n", " -1, example[f'{image_data_key}/height'],\n", " example[f'{image_data_key}/width'],\n", " example[f'{image_data_key}/channel']\n", " ])\n", "\n", " return data\n", "\n", "\n", "parsed_dataset = dataset.map(_parse_tf_example)\n", "for data in parsed_dataset.take(1):\n", " display.display(\n", " Image.fromarray(np.concatenate(data['camera'].numpy()[::20], axis=1)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ETqLBi4PEInt" }, "outputs": [], "source": [ "" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//experimental/deepmind/yuxiangzhou/colab_kernels:mujoco", "kind": "private" }, "name": "CMTouch Dataset Visulization", "provenance": [ { "file_id": "1dYBnbGthSPI59OX8SxCoy-JDanaobOXt", "timestamp": 1603209355798 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: cmtouch/README.md ================================================ -------------------------------------------------------------------------------- # CMTouch Dataset This repository contains datasets for cross-modal representation learning, used in developing rich touch representations in "Learning rich touch representations through cross-modal self-supervision" [1]. The datasets we provide are: 1. CMTouch-Props 2. CMTouch-YCB The datasets consist of episodes collected by running a reinforcement learning agent on a simulated Shadow Dexterous Hand [2] interacting with different objects. From this interactions, observations from different sensory modalities are collected at each time step, including vision, proprioception (joint positions and velocities), touch, actions, object IDs. We used these data to learn rich touch representations using cross-modal self-supervision. ## Bibtex If you use one of these datasets in your work, please cite the reference paper as follows: ``` @InProceedings{zambelli20learning, author = "Zambelli, Martina and Aytar, Yusuf and Visin, Francesco and Zhou, Yuxiang and Hadsell, Raia", title = "Learning rich touch representations through cross-modal self-supervision", year = "2020", } ``` ## Descriptions ### Experimental setup We run experiments in simulation with MuJoCo [3] and we use the simulated Shadow Dexterous Hand [2], with five fingers and 24 degrees of freedom, actuated by 20 motors. In simulation, each fingertip has a spatial touch sensor attached with a spatial resolution of 4×4 and three channels: one for normal force and two for tangential forces. We simplify this by summing across the spatial dimensions, to obtain a single force vector for each fingertip representing one normal force and two tangential forces. The state consists of proprioception (joint positions and joint velocities) and touch. Visual inputs are collected with a 64×64 resolution and are only used for representation learning, but are not provided as observations to control the robot’s actions. The action space is 20-dimensional. We use velocity control and a control rate of 30 Hz. Each episode has 200 time steps, which correspond to about 6 seconds. The environment consists of the Shadow Hand, facing down, and interacting with different objects. These objects have different shapes, sizes and physical properties (e.g. rigid or soft). We develop two versions of the task, the first using simple props and the second using YCB objects. In both cases, objects are fixed to their frame of reference, while their position and orientation are randomized. ### CMTouch-Props This is a dataset based on simple geometric 3D shapes (referred to as "props"). Props are simple 3D shaped objects that include cubes, spheres, cylinders and ellipsoid of different sizes. We also generated the soft version of each prop, which can deform under the pressure of the touching fingers. Soft deformable objects are complex entities to simulate: they are defined through a composition of multiple bodies (capsules) that are tied together to form a shape, such as a cube or a sphere. The main characteristic of these objects is their elastic behaviour, that is they change shape when touched. The most difficult thing to simulate in this context is contacts, which grow exponentially with the increased number of colliding bodies. Forty-eight different objects are generated by sampling from 6 different sizes, 4 different shapes (i.e. sphere, cylinder, cube, ellipsoid), and they can either be rigid or soft. ![](https://i.imgur.com/Hps38z5.jpg) ### CMTouch-YCB This is a dataset based on YCB objects. The YCB objects dataset [4] consists of everyday objects with different shapes, sizes, textures, weight and rigidity. We chose a set of ten objects: cracker box, sugar box, mustard bottle, potted meat can, banana, pitcher base, bleach cleanser, mug, power drill, scissors. These are generated in simulation at their standard size, which is also proportionate to the default dimension of the simulated Shadow Hand. The pose of each object is randomly selected among a set of 60 different poses, where we vary the orientation of the object. These variations make the identification of each object more complex than the CMTouch-Props and require a higher generalization capability from the learning method applied. ![](https://i.imgur.com/Mf3KYbn.jpg) ## Download The datasets can be downloaded from [Google Cloud Storage](https://console.cloud.google.com/storage/browser/dm_cmtouch). Each dataset is a single [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord) file. On Linux, to download a particular dataset, use the web interface, or run `wget` with the appropriate filename as follows: ``` wget https://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_props_all_test.tfrecords wget https://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_props_all_train.tfrecords wget https://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_props_all_val.tfrecords wget https://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_ycb_all_test.tfrecords wget https://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_ycb_all_train.tfrecords wget https://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_ycb_all_val.tfrecords ``` ## Usage After downloading the dataset files, you can read them as `tf.data.Dataset` instances with the readers provided. The example below shows how to read the cmtouch-props dataset: ``` record_file = 'test.tfrecords' dataset = tf.data.TFRecordDataset(record_file) parsed_dataset = dataset.map(_parse_tf_example) ``` (a complete example is provided in the Colab). All dataset readers return the following set of observations: 'camera': tf.io.FixedLenFeature([], tf.string), 'camera/height': tf.io.FixedLenFeature([], tf.int64), 'camera/width': tf.io.FixedLenFeature([], tf.int64), 'camera/channel': tf.io.FixedLenFeature([], tf.int64), 'object_id': tf.io.FixedLenFeature([], tf.string), # for both 'object_id/dim': tf.io.FixedLenFeature([], tf.int64), 'orientation_id': tf.io.FixedLenFeature([], tf.string), # only for ycb 'orientation_id/dim': tf.io.FixedLenFeature([], tf.int64), 'shadowhand_motor/joints_vel': tf.io.FixedLenFeature([], tf.string), 'shadowhand_motor/joints_vel/dim': tf.io.FixedLenFeature([], tf.int64), 'shadowhand_motor/joints_pos': tf.io.FixedLenFeature([], tf.string), 'shadowhand_motor/joints_pos/dim': tf.io.FixedLenFeature([], tf.int64), 'shadowhand_motor/spatial_touch': tf.io.FixedLenFeature([], tf.string), 'shadowhand_motor/spatial_touch/dim': tf.io.FixedLenFeature([], tf.int64), 'actions' * 'camera': `Tensor` of shape [sequence_length, height, width, channels] and type uint8 * 'shadowhand_motor/spatial_touch': `Tensor` of shape [sequence_length, num_fingers x 3] and type float32 * 'shadowhand_motor/joints_pos': `Tensor` of shape [sequence_length, num_joint_positions] and type float32 * 'shadowhand_motor/joints_vel': `Tensor` of shape [sequence_length, num_joint_velocities] and type float32 * 'actions': `Tensor` of shape [sequence_length, num_actuated_joints] and type float32 * 'object_id': `Scalar` indicating an object identification number * 'orientation_id': `Scalar` indicating a YCB object pose identification number (CMTouch-YCB only) Few-shot evaluations can be made by creating subsets of data to train and evaluate the models. ## References [1] M. Zambelli, Y. Aytar, F. Visin, Y. Zhou, R. Hadsell. Learning rich touch representations through cross-modal self-supervision. Conference on Robot Learning (CoRL), 2020. [2] ShadowRobot, Shadow Dexterous Hand. https://www.shadowrobot.com/products/dexterous-hand/. [3] E. Todorov, T. Erez, and Y. Tassa. MuJoCo: A physics engine for model-based control. In Proceedings of the International Conference on Intelligent Robots and Systems (IROS), 2012. [4] B. Calli, A. Singh, J. Bruce, A. Walsman, K. Konolige, S. Srinivasa, P. Abbeel, and A. M. Dollar. Yale-cmu-berkeley dataset for robotic manipulation research. The International Journal of RoboticsResearch, 36(3):261–268, 2017. ## Disclaimers This is not an official Google product. ## Appendix and FAQ **Find this document incomplete?** Leave a comment! ================================================ FILE: cmtouch/download_datasets.sh ================================================ #!/bin/bash # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train10.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train100.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train1000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train250.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train30.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train50.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_train500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_all_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj0_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj1_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj2_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj3_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj4_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj5_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj6_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj7_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj8_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train1500.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train180.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train300.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train3000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train60.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train600.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_train6000.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_objects_ycb_obj9_im64_val.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train1200.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train144.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train240.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train2400.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train48.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train480.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_train4800.tfrecords wget http://storage.googleapis.com/dm_cmtouch/datasets/cmtouch_touch_props_all_im64_val.tfrecords ================================================ FILE: continual_learning/README.md ================================================ # Continual learning with pre-trained encoders and ensembles of classifiers [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/continual_learning/encoders_and_ensembles.ipynb) This repository contains a notebook implementation of a classifier ensemble memory model that mitigates catastrophic forgetting. The code was written by Murray Shanahan. The model comprises * a pre-trained encoder, trained on a different dataset from the target dataset, and * a memory with fixed randomised keys and k-nearest neighbour lookup, where * each memory location stores the parameters of a trainable local classifier, and * the ensemble's output is the mean output of the k selected classifiers weighted according to the distance of their keys from the encoded input The model is demonstrated on MNIST, where the encoder is pre-trained on Omniglot. The continual learning setting is * Task-free. The models doesn't know about task boundaries * Online. The dataset is ony seen once, and there are no epochs * Incremental class learning. Evaluation is always on 10-way classification The code accompanies the paper: Shanahan, M., Kaplanis, C. & Mitrovic, J. (2021). Encoders and Ensembles for Task-Free Continual Learning. ArXiv preprint: https://arxiv.org/abs/2105.13327 ## Running the experiments The easiest way to run the code is using the publicly available [Colab](https://colab.research.google.com) kernel. Colaboratory is a free Jupyter notebook environment provided by Google that requires no setup and runs entirely in the cloud. (A GPU runtime is needed to train in a reasonable time.) The notebook is self-contained, and will load all necessary libraries automatically if run in Colaboratory. Click "Run all" in the "Runtime" menu to train on 5-way split MNIST ("high data" setting), as described in the paper. Adjusting the "schedule_type" in the config will allow you to try out different benchmarks, such as a 10-way split. ## Contact If you have any feedback, or would like to get in touch regarding the code or the architecture, you can reach out to mshanahan@deepmind.com. ## Disclaimer This is not an officially supported Google product. ================================================ FILE: continual_learning/encoders_and_ensembles.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "hoKLQnrnS73m" }, "source": [ "Copyright 2021 DeepMind Technologies Limited.\n", "\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License.\n", "\n", "# Continual learning with pre-trained encoders and ensembles of classifiers\n", "\n", "Murray Shanahan\n", "\n", "July 2021\n", "\n", "A classifier ensemble memory model that mitigates catastrophic forgetting. The model comprises\n", "* a pre-trained encoder, trained on a different dataset from the target dataset, and\n", "* a memory with fixed randomised keys and k-nearest neighbour lookup, where\n", "* each memory location stores the parameters of a trainable local classifier, and\n", "* the ensemble's output is the mean output of the k selected classifiers weighted according to the distance of their keys from the encoded input\n", "\n", "The model is demonstrated on MNIST, where the encoder is pre-trained on Omniglot. The continual learning setting is\n", "* Task-free. The models doesn't know about task boundaries\n", "* Online. The dataset is ony seen once, and there are no epochs\n", "* Incremental class learning. Evaluation is always on 10-way classification\n", "\n", "This Colab accompanies the paper:\n", "\n", "Shanahan, M., Kaplanis, C. \u0026 Mitrovic, J. (2021). Encoders and Ensembles for Task-Free Continual Learning. ArXiv preprint: https://arxiv.org/abs/2105.13327" ] }, { "cell_type": "markdown", "metadata": { "id": "kfWWLMG6wN5J" }, "source": [ "# Preliminaries" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "thK1IH0gqT3V" }, "outputs": [], "source": [ "# Dependencies that may require pip installation\n", "\n", "!pip install dm-haiku\n", "!pip install optax\n", "!pip install dm-tree" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "LcMFWHXtSYWn" }, "outputs": [], "source": [ "# Imports\n", "\n", "import tensorflow.compat.v2 as tf\n", "tf.enable_v2_behavior()\n", "\n", "import jax\n", "import jax.numpy as jnp\n", "from jax import jit, grad, random\n", "import optax\n", "import haiku as hk\n", "import tree\n", "\n", "from matplotlib import pyplot as plt\n", "\n", "import tensorflow_datasets as tfds" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JYq-m_tSuc-M" }, "outputs": [], "source": [ "# Experiment parameters\n", "\n", "\n", "# MNIST config (high data) - for comparison with Lee, et al. (2020)\n", "\n", "config = {\n", " 'enc_size': 512, # size of latent encoding\n", " 'mem_size': 1024, # number of memory locations (classifiers)\n", " 'k': 32, # k nearest neighbour lookup parameter\n", " 'vub': 250, # upper bound for activation function - was 100\n", " 'res': 28, # resolution - 28 for MNIST \u0026 Omniglot\n", " 'col_dims': 1, # 3 for RGB, 1 for greyscale\n", " 'num_classes': 10, # number of classes\n", " 'pretrain_n_batches': 10000, # number of batches in pre-training\n", " 'pretrain_dataset': 'omniglot',\n", " 'main_dataset': 'mnist',\n", " 'batch_size': 60, # batch size for training main model\n", " 'learning_rate': 1e-4, # learning rate for training main model\n", " 'weight_decay': 1e-4, # optimiser weight decay\n", " 'init_scale': 0.1, # baseline classifier initialiser variance scaling\n", " 'log_every': 10, # interval for logging accuracies\n", " 'report_every': 500, # interval for reporting accuracies\n", " 'schedule_type': '5way_split', # training schedule (defining splits, etc)\n", " 'n_runs': 20, # number of runs on the schedule\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "a6JEJ1hYv-Um" }, "outputs": [], "source": [ "# Optimisers\n", "\n", "\n", "class NaiveOptimiser():\n", " \"\"\"Optimiser that discards magnitude of gradients and uses only their sign.\"\"\"\n", "\n", " def __init__(self, learning_rate, weight_decay):\n", " self.learning_rate = learning_rate\n", " self.weight_decay = weight_decay\n", " self.state = None\n", "\n", " def init(self, params):\n", " return None\n", "\n", " def update(self, grads, _, params=None):\n", " step_size = self.learning_rate\n", " weight_decay = self.weight_decay\n", " updates = jax.tree_map(lambda g: -jnp.sign(g), grads)\n", " updates = jax.tree_multimap(\n", " lambda g, p: g + weight_decay * p, updates, params)\n", " updates = jax.tree_map(lambda g: step_size * g, updates)\n", " return (updates, self.state)\n", "\n", "\n", "def make_encoder_optimiser():\n", " opt = optax.adam(learning_rate=0.001) # learning rate was 0.001\n", " return opt\n", "\n", "\n", "def make_ensemble_optimiser():\n", " opt = NaiveOptimiser(learning_rate=config['learning_rate'],\n", " weight_decay=config['weight_decay'])\n", " return opt" ] }, { "cell_type": "markdown", "metadata": { "id": "2yojukFKuJYr" }, "source": [ "# Datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "gKLDMf_-NDPC" }, "outputs": [], "source": [ "# Datasets: MNIST and Omniglot\n", "\n", "\n", "def get_dataset(dataset_name, train_or_test, batch_size, filter_labels=None):\n", " filter_fn = lambda batch: tf.reduce_any(tf.equal(batch['label'],\n", " filter_labels))\n", " dataset = tfds.load(dataset_name, split=train_or_test,\n", " as_supervised=False)\n", " if filter_labels is not None:\n", " dataset = dataset.filter(filter_fn)\n", " dataset = dataset.shuffle(buffer_size=10000)\n", " dataset = dataset.batch(batch_size)\n", " dataset = dataset.repeat()\n", " dataset = iter(dataset)\n", " return dataset\n", "\n", "\n", "def get_batch(dataset, dataset_name):\n", " batch = next(dataset)\n", " batch_size = batch['image'].shape[0]\n", " images = batch['image']\n", " if dataset_name == 'omniglot':\n", " images = tf.image.resize(images, [config['res'], config['res']])\n", " images = images[:, :, :, 0]\n", " images = tf.reshape(images, [batch_size, 28, 28, 1]) / 255\n", " if dataset_name == 'omniglot':\n", " images = 1 - images # raw Omniglot characters are white (1) on black (0)\n", " labels = batch['label']\n", " one_hots = tf.one_hot(batch['label'], config['num_classes'])\n", " return (images.numpy(), one_hots.numpy(), labels.numpy())" ] }, { "cell_type": "markdown", "metadata": { "id": "uEtOt26W9O36" }, "source": [ "# Plotting" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "HeUf0sJmT00v" }, "outputs": [], "source": [ "# Plotting accuracies\n", "\n", "\n", "def smooth(data, degree=2):\n", " \"\"\"Smooth out data for plotting.\"\"\"\n", " triangle = jnp.array(list(range(degree)) + [degree] +\n", " list(range(degree)[::-1])) + 1\n", " # Copy last data point 'degree' times\n", " data = jnp.append(data, jnp.array([data[-1] for _ in range(len(triangle))]))\n", " smoothed = [data[0]]\n", " for i in range(1, len(data) - len(triangle)):\n", " point = data[i:i + len(triangle)] * triangle\n", " smoothed.append(sum(point)/sum(triangle))\n", " return jnp.array(smoothed)\n", "\n", "\n", "def plot_x_accuracies(x_accuracies1, x_accuracies2, x_accuracies3, final=False):\n", " \"\"\"Plot experiment mean accuracies with error bounds.\"\"\"\n", "\n", " # Find means and stds\n", " x_accuracies1 = jnp.array(x_accuracies1, dtype=jnp.float64)\n", " x_accuracies2 = jnp.array(x_accuracies2, dtype=jnp.float64)\n", " x_accuracies3 = jnp.array(x_accuracies3, dtype=jnp.float64)\n", " c_vanilla_means = jnp.mean(x_accuracies1, axis=(0, 1))\n", " c_vanilla_stds = jnp.std(jnp.mean(x_accuracies1, axis=1), axis=0)\n", " c_tanh_means = jnp.mean(x_accuracies2, axis=(0, 1))\n", " c_tanh_stds = jnp.std(jnp.mean(x_accuracies2, axis=1), axis=0)\n", " e_means = jnp.mean(x_accuracies3, axis=(0, 1))\n", " e_stds = jnp.std(jnp.mean(x_accuracies3, axis=1), axis=0)\n", " final_c_vanilla_mean = c_vanilla_means[-1]\n", " final_c_vanilla_std = c_vanilla_stds[-1]\n", " final_c_tanh_mean = c_tanh_means[-1]\n", " final_c_tanh_std = c_tanh_stds[-1]\n", " final_e_mean = e_means[-1]\n", " final_e_std = e_stds[-1]\n", "\n", " # Smooth the data\n", " c_vanilla_means = smooth(c_vanilla_means)\n", " c_vanilla_stds = smooth(c_vanilla_stds)\n", " c_tanh_means = smooth(c_tanh_means)\n", " c_tanh_stds = smooth(c_tanh_stds)\n", " e_means = smooth(e_means)\n", " e_stds = smooth(e_stds)\n", "\n", " plt.figure(figsize=(8, 4))\n", "\n", " # Vanilla classifier accuracies\n", " ax = plt.plot(range(len(c_vanilla_means)), c_vanilla_means)\n", " colour = ax[-1].get_color()\n", " plt.fill_between(range(len(c_vanilla_means)),\n", " c_vanilla_means-c_vanilla_stds,\n", " c_vanilla_means+c_vanilla_stds,\n", " facecolor=colour, alpha=0.2)\n", " # Tanh classifier accuracies\n", " ax = plt.plot(range(len(c_tanh_means)), c_tanh_means)\n", " colour = ax[-1].get_color()\n", " plt.fill_between(range(len(c_tanh_means)),\n", " c_tanh_means-c_tanh_stds,\n", " c_tanh_means+c_tanh_stds,\n", " facecolor=colour, alpha=0.2)\n", " # Ensemble accuracies\n", " ax = plt.plot(range(len(e_means)), e_means)\n", " colour = ax[-1].get_color()\n", " plt.fill_between(range(len(e_means)),\n", " e_means-e_stds,\n", " e_means+e_stds,\n", " facecolor=colour, alpha=0.2)\n", "\n", " # Produce plots\n", " plt.ylim([0.0, 1.0])\n", " plt.xlabel('Batch x{}'.format(config['log_every']))\n", " plt.ylabel('Accuracy')\n", " plt.legend(['Vanilla classifier', 'Tanh classifier', 'Ensemble'])\n", " plt.show()\n", "\n", " # Report accuracies\n", " print('Vanilla classifier accuracy: {:.4f} \\u00b1 {:.4f}'.format(\n", " final_c_vanilla_mean, final_c_vanilla_std))\n", " print('Tanh classifier accuracy: {:.4f} \\u00b1 {:.4f}'.format(\n", " final_c_tanh_mean, final_c_tanh_std))\n", " print('Ensemble accuracy: {:.4f} \\u00b1 {:.4f}'.format(\n", " final_e_mean, final_e_std))\n", " print()" ] }, { "cell_type": "markdown", "metadata": { "id": "Qb3GLfh0waig" }, "source": [ "# Models and losses" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "2bdSRg6jLxIz" }, "outputs": [], "source": [ "# Autoencoder (for pretraining)\n", "\n", "\n", "class Autoencoder(hk.Module):\n", " \"\"\"Autoencoder module.\"\"\"\n", "\n", "\n", " def encode(self, image):\n", " cnn = hk.Sequential([\n", " hk.Conv2D(output_channels=16, kernel_shape=4, name='enc1'), jax.nn.relu,\n", " hk.Conv2D(output_channels=16, kernel_shape=4, name='enc2'), jax.nn.relu,\n", " hk.Flatten(),\n", " ])\n", " mlp1 = hk.Sequential([\n", " hk.Linear(128, name='enc3'), jax.nn.relu,\n", " hk.Linear(config['enc_size'], name='enc4'),\n", " ])\n", " mlp2 = hk.Sequential([\n", " hk.Linear(128, name='enc5'), jax.nn.relu,\n", " hk.Linear(config['enc_size'], name='enc6'),\n", " ])\n", " feats = cnn(image.reshape([-1, config['res'], config['res'],\n", " config['col_dims']]))\n", " enc_mean = jnp.tanh(mlp1(feats))\n", " enc_sd = jax.nn.relu(mlp2(feats))\n", " return (enc_mean, enc_sd)\n", "\n", "\n", " def decode(self, latent):\n", " dcnn = hk.Sequential(\n", " [hk.Linear(128, name='dec1'), jax.nn.relu,\n", " hk.Linear(config['res']*config['res']*16, name='dec2'), jax.nn.relu,\n", " hk.Reshape((config['res'], config['res'], 16)),\n", " hk.Conv2DTranspose(output_channels=16, kernel_shape=4, name='dec3'),\n", " jax.nn.relu,\n", " hk.Conv2DTranspose(output_channels=config['col_dims'],\n", " kernel_shape=4, name='dec4'),\n", " jax.nn.sigmoid])\n", " image = dcnn(latent).reshape([-1, config['res'], config['res'],\n", " config['col_dims']])\n", " return image\n", "\n", "\n", " def forward(self, rng, image):\n", " (enc_mean, enc_sd) = self.encode(image)\n", " # Sample\n", " (rng2, rng) = random.split(rng)\n", " eps = random.normal(rng2, jnp.shape(enc_mean))\n", " enc = enc_mean + enc_sd * eps\n", " image_dec = self.decode(enc)\n", " out = {\n", " 'enc_mean': enc_mean,\n", " 'enc_sd': enc_sd,\n", " 'image_dec': image_dec,\n", " }\n", " return out\n", "\n", "\n", "def encoder(rng, image):\n", " autoencoder = Autoencoder()\n", " out = autoencoder.forward(rng, image)\n", " return out" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Ao_JIdjYMLP_" }, "outputs": [], "source": [ "# Autoencoder loss (for pretraining)\n", "\n", "\n", "def kl_divergence(mean, sd):\n", " kl = -0.5 * (1.0 + jnp.log(sd**2) - mean**2 - sd**2)\n", " return kl\n", "\n", "\n", "def autoencoder_losses(enc_params, rng, images):\n", " encoder_net = hk.transform(encoder)\n", " (rng2, rng) = random.split(rng)\n", " autoencoder_out = encoder_net.apply(enc_params, rng, rng2, images)\n", " enc_means = autoencoder_out['enc_mean']\n", " enc_sds = autoencoder_out['enc_sd']\n", " image_decs = autoencoder_out['image_dec']\n", " # Decoder reconstruction loss\n", " decoder_loss = jnp.mean((images-image_decs)**2)\n", " # Decoder KL loss\n", " kld = kl_divergence(enc_means, enc_sds + 1e-10) # add epsilon to avoid sd=0\n", " kl_loss = jnp.mean(kld)\n", " # Total loss\n", " beta = 0.001 # weighting of KL term\n", " tot_loss = decoder_loss + beta * kl_loss\n", " losses = {\n", " 'tot_loss': tot_loss,\n", " 'decoder_loss': decoder_loss,\n", " 'kl_loss': kl_loss,\n", " }\n", " return losses\n", "\n", "\n", "def autoencoder_loss(enc_params, rng, images):\n", " losses = autoencoder_losses(enc_params, rng, images)\n", " return losses['tot_loss']" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "bawIEzugOiZG" }, "outputs": [], "source": [ "# Update autoencoder parameters\n", "\n", "@jit\n", "def update_autoencoder(enc_params, rng, opt_state, images):\n", " opt = make_encoder_optimiser()\n", " grads = grad(autoencoder_loss)(enc_params, rng, images)\n", " updates, opt_state = opt.update(grads, opt_state)\n", " new_params = optax.apply_updates(enc_params, updates)\n", " return new_params, opt_state" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "lKGZurl6fQBd" }, "outputs": [], "source": [ "# Ensemble memory (main model)\n", "\n", "\n", "def activation(values):\n", " \"\"\"Activation function for ensemble (scaled tanh).\"\"\"\n", " out = jnp.tanh(values / config['vub']) * config['vub']\n", " return out\n", "\n", "\n", "def l2_normalize(x, axis=None, epsilon=1e-12):\n", " \"\"\"l2 normalize a tensor on an axis with numerical stability.\"\"\"\n", " square_sum = jnp.sum(jnp.square(x), axis=axis, keepdims=True)\n", " x_inv_norm = jax.lax.rsqrt(jnp.maximum(square_sum, epsilon))\n", " return x * x_inv_norm\n", "\n", "\n", "class Memory(hk.Module):\n", " \"\"\"Memory module.\"\"\"\n", "\n", " def __init__(self, name=None):\n", " super().__init__(name)\n", " self.keys = hk.get_parameter('mem_keys', [config['mem_size'],\n", " config['enc_size']],\n", " init=hk.initializers.Constant(0))\n", " self.weights = hk.get_parameter('mem_weights', [config['mem_size'],\n", " config['enc_size'],\n", " config['num_classes']],\n", " init=hk.initializers.VarianceScaling())\n", " self.biases = hk.get_parameter('mem_biases', [config['mem_size'], 1,\n", " config['num_classes']],\n", " init=hk.initializers.Constant(0))\n", "\n", "\n", " def lookup(self, enc):\n", " \"\"\"k-nearest neighbour lookup in ensemble memory.\"\"\"\n", " enc = l2_normalize(enc, axis=1)\n", " keys = l2_normalize(self.keys, axis=1)\n", " sims = jnp.matmul(enc, jnp.transpose(keys)) # cosine similarities\n", " (k_sims, idx) = jax.lax.top_k(sims, config['k']) # k nearest neighbours\n", " # Keys\n", " k_keys = jnp.take(self.keys, idx, axis=0)\n", " mean_key = jnp.mean(k_keys, axis=1)\n", " # Values\n", " k_encs = jnp.expand_dims(enc, axis=(1, 2))\n", " k_encs = jnp.tile(k_encs, (1, config['k'], 1, 1))\n", " k_weights = jnp.take(self.weights, idx, axis=0)\n", " k_biases = jnp.take(self.biases, idx, axis=0)\n", " k_values = jnp.matmul(k_encs, k_weights) + k_biases\n", " k_values = jnp.squeeze(k_values)\n", " k_values = activation(k_values)\n", " # Mean of values weighted by key similarity\n", " k_sims2 = jax.lax.stop_gradient(jnp.expand_dims(k_sims, axis=2))\n", " mean_value = jnp.sum(k_values * k_sims2, axis=1) / jnp.sum(k_sims2, axis=1)\n", " return (mean_key, mean_value, k_sims, k_keys, k_values, idx)\n", "\n", "\n", "class EnsembleModel(hk.Module):\n", " \"\"\"Ensemble memory model.\"\"\"\n", "\n", "\n", " def __init__(self, name=None):\n", " super().__init__(name)\n", " self.memory = Memory()\n", "\n", "\n", " def enc_to_class_vanilla(self, enc_image):\n", " mlp = hk.Sequential([\n", " hk.Linear(config['num_classes'],\n", " w_init=hk.initializers.VarianceScaling(\n", " scale=config['init_scale']),\n", " name='classifier1'),\n", " jax.nn.log_softmax,\n", " ])\n", " pred = mlp(enc_image) # predicted class\n", " return pred\n", "\n", "\n", " def enc_to_class_tanh(self, enc_image):\n", " mlp = hk.Sequential([\n", " hk.Linear(config['num_classes'],\n", " w_init=hk.initializers.VarianceScaling(\n", " scale=config['init_scale']),\n", " name='classifier2'),\n", " ])\n", " pred = activation(mlp(enc_image)) # predicted class\n", " return pred\n", "\n", "\n", " def forward(self, enc_image):\n", " \"\"\"Memory lookup and classifier.\"\"\"\n", " (mean_key, mean_value,\n", " k_sims, k_keys, k_values, idx) = self.memory.lookup(enc_image)\n", " classifier_out_vanilla = self.enc_to_class_vanilla(enc_image)\n", " classifier_out_tanh = self.enc_to_class_tanh(enc_image)\n", " out = {\n", " 'classifier_out_vanilla': classifier_out_vanilla,\n", " 'classifier_out_tanh': classifier_out_tanh,\n", " 'k_sims': k_sims,\n", " 'k_keys': k_keys,\n", " 'k_values': k_values,\n", " 'mean_key': mean_key,\n", " 'mean_value': mean_value,\n", " 'idx': idx,\n", " }\n", " return out\n", "\n", "\n", "def model(enc_image):\n", " ensemble = EnsembleModel()\n", " out = ensemble.forward(enc_image)\n", " return out" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "sjFE4ml3gVwK" }, "outputs": [], "source": [ "# Loss and accuracy for ensemble memory (main model)\n", "\n", "\n", "def model_loss(params, rng, enc_images, one_hots, labels):\n", " model_net = hk.transform(model)\n", " model_out = model_net.apply(params, rng, enc_images)\n", " preds_vanilla = model_out['classifier_out_vanilla']\n", " preds_tanh = model_out['classifier_out_tanh']\n", " mean_values = model_out['mean_value']\n", " # Classifier losses\n", " classifier_loss_vanilla = -jnp.mean(jnp.sum(preds_vanilla * one_hots, axis=1))\n", " classifier_loss_tanh = -jnp.mean(jnp.sum(preds_tanh * one_hots, axis=1))\n", " # Memory loss\n", " memory_loss = -jnp.mean(jnp.sum(mean_values * one_hots, axis=1))\n", " # Total loss\n", " loss = classifier_loss_vanilla + classifier_loss_tanh + memory_loss\n", " return loss\n", "\n", "\n", "@jit\n", "def accuracy(params, rng, enc_images, labels):\n", " \"\"\"Accuracies for each type of model.\"\"\"\n", " model_net = hk.transform(model)\n", " model_out = model_net.apply(params, rng, enc_images)\n", " classifier_classes_van = jnp.argmax(model_out['classifier_out_vanilla'], axis=1)\n", " classifier_acc_van = jnp.mean(classifier_classes_van == labels)\n", " classifier_classes_tanh = jnp.argmax(model_out['classifier_out_tanh'], axis=1)\n", " classifier_acc_tanh = jnp.mean(classifier_classes_tanh == labels)\n", " ensemble_classes = jnp.argmax(model_out['mean_value'], axis=1)\n", " ensemble_acc = jnp.mean(ensemble_classes == labels)\n", " return (classifier_acc_van, classifier_acc_tanh, ensemble_acc)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "7HPlrc-OsZHf" }, "outputs": [], "source": [ "# Update ensemble memory parameters\n", "\n", "@jit\n", "def update_model(params, rng, opt_state,\n", " enc_images, one_hots, labels):\n", " opt = make_ensemble_optimiser()\n", " grads = grad(model_loss)(params, rng, enc_images, one_hots, labels)\n", " updates, opt_state = opt.update(grads, opt_state, params)\n", " new_params = optax.apply_updates(params, updates)\n", " return new_params, opt_state" ] }, { "cell_type": "markdown", "metadata": { "id": "l6XB2jDcESyS" }, "source": [ "# Training" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "bK8cobd9ctcg" }, "outputs": [], "source": [ "def get_encoder():\n", " encoder_net = hk.transform(encoder)\n", " return encoder_net\n", "\n", "\n", "def initialise_encoder(rng):\n", " \"\"\"Initialise internal encoder for pre-training.\"\"\"\n", " encoder_net = get_encoder()\n", " # Get dummy batch\n", " batch_size = 24\n", " train_set = get_dataset(config['pretrain_dataset'], 'train', batch_size)\n", " batch = get_batch(train_set, config['pretrain_dataset'])\n", " (images, _, _) = batch\n", " (rng2, rng) = random.split(rng)\n", " (rng3, rng) = random.split(rng)\n", " enc_params = encoder_net.init(rng2, rng3, images)\n", " return enc_params\n", "\n", "\n", "@jit\n", "def apply_encoder(enc_params, rng, images):\n", " encoder_net = get_encoder()\n", " (rng2, rng) = random.split(rng)\n", " encoder_out = encoder_net.apply(enc_params, rng, rng2, images)\n", " enc = encoder_out['enc_mean']\n", " return enc" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "NshNbe3gPA31" }, "outputs": [], "source": [ "# Autoencoder training\n", "\n", "\n", "def pretrain_encoder(rng, n_batches, filter_labels=None):\n", "\n", " print('Encoder pre-training on {}'.format(config['pretrain_dataset']))\n", " print()\n", " # Get train and test data\n", " train_batch_size = 48\n", " test_batch_size = 256\n", " train_set = get_dataset(config['pretrain_dataset'], 'train',\n", " train_batch_size, filter_labels=filter_labels)\n", " test_set = get_dataset(config['pretrain_dataset'], 'test',\n", " test_batch_size, filter_labels=filter_labels)\n", " test_batch = get_batch(test_set, config['pretrain_dataset'])\n", " # Train encoders until a good enough one is found\n", " success = False\n", " loss_threshold = 0.025\n", " while not success:\n", " # Initialise parameters\n", " (rng2, rng) = random.split(rng)\n", " enc_params = initialise_encoder(rng2)\n", " # Initialise optimiser\n", " opt = make_encoder_optimiser()\n", " opt_state = opt.init(enc_params)\n", " # Training\n", " for i in range(n_batches):\n", " batch = get_batch(train_set, config['pretrain_dataset'])\n", " (images, _, _) = batch\n", " (rng2, rng) = random.split(rng)\n", " (enc_params, opt_state) = update_autoencoder(enc_params, rng2,\n", " opt_state, images)\n", " (images, _, _) = test_batch\n", " (rng2, rng) = random.split(rng)\n", " losses = autoencoder_losses(enc_params, rng2, images)\n", " print('Batch {}'.format(i+1))\n", " print('Reconstruction loss {:.8f}'.format(losses['decoder_loss']))\n", " print('KL loss {:.4f}'.format(losses['kl_loss']))\n", " print()\n", " success = losses['decoder_loss'] \u003c loss_threshold\n", " if not success:\n", " print('Reconstruction loss too high - retraining')\n", " print()\n", " (rng2, rng) = random.split(rng)\n", "\n", " return enc_params" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "axY5rDzycJZP" }, "outputs": [], "source": [ "# Model testing with recording of accuracies\n", "\n", "\n", "def test_model(model_params, enc_params, test_labels, test_batches,\n", " accuracies, batch_number):\n", " rng = random.PRNGKey(42)\n", " for i in range(len(test_labels)):\n", " (images, _, labels) = test_batches[i]\n", " # Encode images\n", " (rng2, rng) = random.split(rng)\n", " enc_images = apply_encoder(enc_params, rng2, images)\n", " # Get accuracies\n", " (rng2, rng) = random.split(rng)\n", " (classifier_acc_vanilla,\n", " classifier_acc_tanh, ensemble_acc) = accuracy(model_params, rng2,\n", " enc_images, labels)\n", " accuracies['accuracies_vanilla'][i].append(classifier_acc_vanilla)\n", " accuracies['accuracies_tanh'][i].append(classifier_acc_tanh)\n", " accuracies['accuracies_ensemble'][i].append(ensemble_acc)\n", " return accuracies" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "LespFNYzv50c" }, "outputs": [], "source": [ "# Model training with pre-trained encoder\n", "\n", "\n", "def initialise_model(rng, enc_params):\n", " model_net = hk.transform(model)\n", " # Get dummy batch\n", " train_batch_size = 24\n", " train_set = get_dataset(config['main_dataset'], 'train', train_batch_size)\n", " batch = get_batch(train_set, config['main_dataset'])\n", " (images, _, _) = batch\n", " # Encode images\n", " (rng2, rng) = random.split(rng)\n", " enc_images = apply_encoder(enc_params, rng2, images)\n", " # Initialise the model\n", " (rng2, rng) = random.split(rng)\n", " model_params = model_net.init(rng2, enc_images)\n", " # Initialise memory keys according to encoding stats\n", " (rng2, rng) = random.split(rng)\n", " keys = jax.random.normal(rng2, [config['mem_size'], config['enc_size']])\n", " new_key_params = {'ensemble_model/~/memory': {'mem_keys': keys}}\n", " (old_key_params, rest_params) = hk.data_structures.partition(\n", " lambda m, n, p: (m == 'ensemble_model/~/memory' and\n", " n == 'mem_keys'), model_params)\n", " model_params = hk.data_structures.merge(new_key_params, rest_params)\n", " return model_params\n", "\n", "\n", "def train_model(model_params, enc_params, rng,\n", " label_set, test_labels, test_batch, accuracies, run,\n", " n_batches=0, tot_batches=0):\n", "\n", " # Get train and test data\n", " train_batch_size = config['batch_size']\n", " train_set = get_dataset(config['main_dataset'], 'train', train_batch_size,\n", " filter_labels=label_set)\n", " # Training\n", " for i in range(n_batches):\n", " # Re-initialise optimiser\n", " opt = make_ensemble_optimiser()\n", " opt_state = opt.init(model_params)\n", " tot_batches += 1\n", " batch = get_batch(train_set, config['main_dataset'])\n", " (images, one_hots, labels) = batch\n", " # Encode images\n", " (rng2, rng) = random.split(rng)\n", " enc_images = apply_encoder(enc_params, rng2, images)\n", " (rng2, rng) = random.split(rng)\n", " (model_params, opt_state) = update_model(model_params, rng2,\n", " opt_state, enc_images,\n", " one_hots, labels)\n", " # Log accuracies\n", " if tot_batches % config['log_every'] == 0:\n", " accuracies = test_model(model_params, enc_params, test_labels, test_batch,\n", " accuracies, tot_batches)\n", " return (model_params, accuracies, tot_batches)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "byXZrXQ0ctwK" }, "outputs": [], "source": [ "def train_with_schedule(model_params, enc_params, rng,\n", " schedule, test_labels, test_batch, run):\n", " \"\"\"Train the model with a given schedule of label sets (tasks).\"\"\"\n", "\n", " # Initial accuracy\n", " tot_batches = 0\n", " accuracies = {\n", " 'accuracies_vanilla': [[] for _ in range(len(test_labels))],\n", " 'accuracies_tanh': [[] for _ in range(len(test_labels))],\n", " 'accuracies_ensemble': [[] for _ in range(len(test_labels))]}\n", " accuracies = test_model(model_params, enc_params, test_labels, test_batch,\n", " accuracies, tot_batches)\n", " # Go through the schedule\n", " for ep_no in range(len(schedule)):\n", " episode = schedule[ep_no]\n", " label_set = episode['label_set']\n", " n_batches = episode['n_batches']\n", " (rng2, rng) = random.split(rng)\n", " (model_params, accuracies, tot_batches) = train_model(\n", " model_params, enc_params, rng2,\n", " label_set, test_labels, test_batch, accuracies, run,\n", " n_batches=n_batches, tot_batches=tot_batches)\n", "\n", " return (model_params, accuracies)" ] }, { "cell_type": "markdown", "metadata": { "id": "d7RFUpZjE3ua" }, "source": [ "# Schedules" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "t8gecZXnvRuD" }, "outputs": [], "source": [ "def gaussian(peak, width, x):\n", " out = jnp.exp(- ((x - peak)**2 / (2 * width**2)))\n", " return out\n", "\n", "\n", "def gaussian_schedule(rng):\n", " \"\"\"Returns a schedule where one task blends smoothly into the next.\"\"\"\n", "\n", " schedule_length = 1000 # schedule length in batches\n", " episode_length = 5 # episode length in batches\n", "\n", " # Each class label appears according to a Gaussian probability distribution\n", " # with peaks spread evenly over the schedule\n", " peak_every = schedule_length // config['num_classes']\n", " width = 50 # width of Gaussian\n", " peaks = range(peak_every // 2, schedule_length, peak_every)\n", "\n", " schedule = []\n", " labels = jnp.array(list(range(config['num_classes'])))\n", " labels = random.permutation(rng, labels) # labels in random order\n", "\n", " for ep_no in range(0, schedule_length // episode_length):\n", "\n", " lbls = []\n", " while lbls == []: # make sure lbls isn't empty\n", " for j in range(len(peaks)):\n", " peak = peaks[j]\n", " # Sample from a Gaussian with peak in the right place\n", " p = gaussian(peak, width, ep_no * episode_length)\n", " (rng2, rng) = jax.random.split(rng)\n", " add = jax.random.bernoulli(rng2, p=p)\n", " if add:\n", " lbls.append(int(labels[j]))\n", "\n", " episode = {'label_set': lbls, 'n_batches': episode_length}\n", " schedule.append(episode)\n", "\n", " return schedule" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "B2hXtb2YhxUZ" }, "outputs": [], "source": [ "def get_schedule(name, rng=None):\n", "\n", " # Full set of labels\n", " test_labels = [[x] for x in range(10)]\n", "\n", " if name == '1way_split':\n", " # 1-way split schedule (multi-task setting) (MNIST or CIFAR-10)\n", " schedule = [{'label_set': list(range(10)),\n", " 'n_batches': 1000}]\n", "\n", " elif name == '2way_split':\n", " # Random 2-way split schedule (MNIST or CIFAR-10)\n", " lbls = jnp.array(list(range(10)))\n", " lbls = random.permutation(rng, lbls)\n", " lbls = jnp.reshape(lbls, (2, 5))\n", " schedule = [{'label_set': lbl.tolist(), 'n_batches': 500} for lbl in lbls]\n", "\n", " elif name == '5way_split':\n", " # Random 5-way split schedule (MNIST or CIFAR-10)\n", " lbls = jnp.array(list(range(10)))\n", " lbls = random.permutation(rng, lbls)\n", " lbls = jnp.reshape(lbls, (5, 2))\n", " schedule = [{'label_set': lbl.tolist(), 'n_batches': 200} for lbl in lbls]\n", "\n", " elif name == '10way_split':\n", " # Random 10-way split schedule (MNIST or CIFAR-10)\n", " lbls = jnp.array(list(range(10)))\n", " lbls = random.permutation(rng, lbls)\n", " lbls = jnp.reshape(lbls, (10, 1))\n", " schedule = [{'label_set': lbl.tolist(), 'n_batches': 100} for lbl in lbls]\n", "\n", " elif name == 'gaussian_schedule':\n", " # Gaussian schedule\n", " schedule = gaussian_schedule(rng)\n", "\n", " else:\n", " print('Error: no such schedule')\n", " print()\n", "\n", " return (schedule, test_labels)" ] }, { "cell_type": "markdown", "metadata": { "id": "PVembGzr_-Tc" }, "source": [ "# Scripts" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Iocm19OgdiDJ" }, "outputs": [], "source": [ "# Training scripts\n", "\n", "\n", "def get_test_batches(test_labels):\n", " \"\"\"Split test batch up into label-wise batches according to 'test_labels'.\"\"\"\n", " batch_size = 10000 // len(test_labels)\n", " test_batches = []\n", " for labels in test_labels:\n", " dataset = get_dataset(config['main_dataset'], 'test', batch_size,\n", " filter_labels=labels)\n", " test_batch = get_batch(dataset, config['main_dataset'])\n", " test_batches.append(test_batch)\n", " return test_batches\n", "\n", "\n", "def main():\n", " \"\"\"Main script - multiple runs.\"\"\"\n", "\n", " print('STARTING EXPERIMENT')\n", " print()\n", " schedule_name = config['schedule_type']\n", " rng = random.PRNGKey(78)\n", " n_runs = config['n_runs']\n", " # Ensemble training\n", " x_accuracies1 = [] # vanilla classifier accuracies\n", " x_accuracies2 = [] # tanh classifier accuracies\n", " x_accuracies3 = [] # ensemble accuracies\n", " for run in range(n_runs):\n", " print('RUN {} of {}'.format(run+1, n_runs))\n", " print()\n", " # Encoder pretraining - new encoder every run\n", " (rng2, rng) = random.split(rng)\n", " enc_params = pretrain_encoder(rng2, n_batches=config['pretrain_n_batches'])\n", " # Get a schedule\n", " (rng2, rng) = random.split(rng)\n", " (schedule, test_labels) = get_schedule(schedule_name, rng2)\n", " # Get batches for testing\n", " test_batches = get_test_batches(test_labels)\n", " # Train the model\n", " (rng2, rng) = random.split(rng)\n", " model_params = initialise_model(rng2, enc_params)\n", " # Carry out schedule\n", " print('Ensemble training on {}'.format(config['main_dataset']))\n", " print()\n", " (rng2, rng) = random.split(rng)\n", " (model_params, accuracies) = train_with_schedule(model_params, enc_params,\n", " rng2, schedule,\n", " test_labels, test_batches,\n", " run)\n", " # Record the results\n", " x_accuracies1.append(accuracies['accuracies_vanilla'])\n", " x_accuracies2.append(accuracies['accuracies_tanh'])\n", " x_accuracies3.append(accuracies['accuracies_ensemble'])\n", " plot_x_accuracies(x_accuracies1, x_accuracies2, x_accuracies3)\n", " print('FINAL PLOT')\n", " print()\n", " plot_x_accuracies(x_accuracies1, x_accuracies2, x_accuracies3, final=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "arDSjo-nFFUO" }, "outputs": [], "source": [ "# Main script\n", "\n", "main()" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Encoders and ensembles open source.ipynb", "private_outputs": true, "provenance": [], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: counterfactual_fairness/README.md ================================================ # Path-Specific Counterfactual Fairness (AAAI 2019) Paper: [Path-Specific Counterfactual Fairness](https://ojs.aaai.org/index.php/AAAI/article/view/4777/4655) If you use the code here please cite this paper: @inproceedings{chiappa2019path, title={Path-specific counterfactual fairness}, author={Chiappa, Silvia}, booktitle={Proceedings of the AAAI Conference on Artificial Intelligence}, volume={33}, number={01}, pages={7801--7808}, year={2019} } ### Overview This release contains the path-specific counterfactual fairness method used in the paper, as well as utility functions for loading the *Adult* dataset. The following gives a brief overview of the contents, more detailed documentation is available within each file: * __causal_network.py__: Defines the `Node` class, instances of which can be combined into a directed graph. Associated with each node is a `distribution_module`, a haiku module which builds a tensorflow `Distribution` instance as a function of the node's parents. * __util.py__: Miscellaneous utility functions. * __variational.py__: Class for performing variational inference. The `Variational` haiku module is a general-purpose approximate posterior, using an MLP to map from arbitrary inputs to the parameters of a Gaussian distribution. * __adult.py__: Utility functions for the *Adult* dataset. * __adult_pscf.py__: Training and 'fair' prediction process (using path-specific counterfactual fairness) on the *Adult* dataset. * __adult_pscf_config.py__: Configuration file with default training parameters. ### Dataset The *Adult* dataset can be downloaded from [https://archive.ics.uci.edu/ml/datasets/adult](https://archive.ics.uci.edu/ml/datasets/adult). You may use the following command to download both necessary files to run the training script: `sh download_dataset.sh ${OUTPUT_DIR}` ### Experiments To download the dataset and run the main experiment reported in the paper, you may run: `sh run_adult_pscf.sh` ### Acknowledgements Credits to Thomas P. S. Gillam for the original TF1 implementation. ================================================ FILE: counterfactual_fairness/adult.py ================================================ # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Adult dataset. See https://archive.ics.uci.edu/ml/datasets/adult. """ import os from absl import logging import pandas as pd _COLUMNS = ('age', 'workclass', 'final-weight', 'education', 'education-num', 'marital-status', 'occupation', 'relationship', 'race', 'sex', 'capital-gain', 'capital-loss', 'hours-per-week', 'native-country', 'income') _CATEGORICAL_COLUMNS = ('workclass', 'education', 'marital-status', 'occupation', 'race', 'relationship', 'sex', 'native-country', 'income') def _read_data( name, data_path=''): with os.path.join(data_path, name) as data_file: data = pd.read_csv(data_file, header=None, index_col=False, names=_COLUMNS, skipinitialspace=True, na_values='?') for categorical in _CATEGORICAL_COLUMNS: data[categorical] = data[categorical].astype('category') return data def _combine_category_coding(df_1, df_2): """Combines the categories between dataframes df_1 and df_2. This is used to ensure that training and test data use the same category coding, so that the one-hot vectors representing the values are compatible between training and test data. Args: df_1: Pandas DataFrame. df_2: Pandas DataFrame. Must have the same columns as df_1. """ for column in df_1.columns: if df_1[column].dtype.name == 'category': categories_1 = set(df_1[column].cat.categories) categories_2 = set(df_2[column].cat.categories) categories = sorted(categories_1 | categories_2) df_1[column].cat.set_categories(categories, inplace=True) df_2[column].cat.set_categories(categories, inplace=True) def read_all_data(root_dir, remove_missing=True): """Return (train, test) dataframes, optionally removing incomplete rows.""" train_data = _read_data('adult.data', root_dir) test_data = _read_data('adult.test', root_dir) _combine_category_coding(train_data, test_data) if remove_missing: train_data = train_data.dropna() test_data = test_data.dropna() logging.info('Training data dtypes: %s', train_data.dtypes) return train_data, test_data ================================================ FILE: counterfactual_fairness/adult_pscf.py ================================================ # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Training script for causal model for Adult dataset, using PSCF.""" import functools import time from typing import Any, List, Mapping, NamedTuple, Sequence from absl import app from absl import flags from absl import logging import haiku as hk import jax import jax.numpy as jnp from ml_collections.config_flags import config_flags import numpy as np import optax import pandas as pd from sklearn import metrics import tensorflow as tf import tensorflow_datasets as tfds from tensorflow_probability.substrates import jax as tfp from counterfactual_fairness import adult from counterfactual_fairness import causal_network from counterfactual_fairness import utils from counterfactual_fairness import variational FLAGS = flags.FLAGS config_flags.DEFINE_config_file( 'config', 'adult_pscf_config.py', 'Training configuration.') LOG_EVERY = 100 # These are all aliases to callables which will return instances of # particular distribution modules, or a Node itself. This is used to make # subsequent code more legible. Node = causal_network.Node Gaussian = causal_network.Gaussian MLPMultinomial = causal_network.MLPMultinomial def build_input(train_data: pd.DataFrame, batch_size: int, training_steps: int, shuffle_size: int = 10000): """See base class.""" num_epochs = (training_steps // batch_size) + 1 ds = utils.get_dataset(train_data, batch_size, shuffle_size, num_epochs=num_epochs) ds = ds.prefetch(tf.data.AUTOTUNE) return iter(tfds.as_numpy(ds)) class CausalNetOutput(NamedTuple): q_hidden_obs: Sequence[tfp.distributions.Distribution] p_hidden: Sequence[tfp.distributions.Distribution] hidden_samples: Sequence[jnp.ndarray] log_p_obs_hidden: jnp.ndarray is_male: jnp.ndarray # indicates which elements of the batch correspond to # male individuals def build_causal_graph(train_data: pd.DataFrame, column_names: List[str], inputs: jnp.ndarray): """Build the causal graph of the model.""" make_multinomial = functools.partial( causal_network.MLPMultinomial.from_frame, hidden_shape=(100,)) make_gaussian = functools.partial( causal_network.Gaussian, hidden_shape=(100,)) # Construct the graphical model. Each random variable is represented by an # instance of the `Node` class, as discussed in that class's docstring. # The following nodes have no parents, and thus the distribution modules # will not be conditional on anything -- they simply represent priors. node_a = Node(MLPMultinomial.from_frame(train_data, 'sex')) node_c1 = Node(MLPMultinomial.from_frame(train_data, 'native-country')) node_c2 = Node(Gaussian('age', column_names.index('age'))) # These are all hidden nodes, that do not correspond to any actual data in # pandas dataframe loaded previously. We therefore are permitted to control # the dimensionality of these nodes as we wish (with the `dim` argument). # The distribution module here should be interpreted as saying that we are # imposing a multi-modal prior (a mixture of Gaussians) on each latent # variable. node_hm = Node(causal_network.GaussianMixture('hm', 10, dim=2), hidden=True) node_hl = Node(causal_network.GaussianMixture('hl', 10, dim=2), hidden=True) node_hr1 = Node( causal_network.GaussianMixture('hr1', 10, dim=2), hidden=True) node_hr2 = Node( causal_network.GaussianMixture('hr2', 10, dim=2), hidden=True) node_hr3 = Node( causal_network.GaussianMixture('hr3', 10, dim=2), hidden=True) # The rest of the graph is now constructed; the order of construction is # important, so we can inform each node of its parents. # Note that in the paper we simply have one node called "R", but here it is # separated into three separate `Node` instances. This is necessary since # each node can only represent a single quantity in the dataframe. node_m = Node( make_multinomial(train_data, 'marital-status'), [node_a, node_hm, node_c1, node_c2]) node_l = Node( make_gaussian('education-num', column_names.index('education-num')), [node_a, node_hl, node_c1, node_c2, node_m]) node_r1 = Node( make_multinomial(train_data, 'occupation'), [node_a, node_c1, node_c2, node_m, node_l]) node_r2 = Node( make_gaussian('hours-per-week', column_names.index('hours-per-week')), [node_a, node_c1, node_c2, node_m, node_l]) node_r3 = Node( make_multinomial(train_data, 'workclass'), [node_a, node_c1, node_c2, node_m, node_l]) node_y = Node( MLPMultinomial.from_frame(train_data, 'income'), [node_a, node_c1, node_c2, node_m, node_l, node_r1, node_r2, node_r3]) # We now construct several (self-explanatory) collections of nodes. These # will be used at various points later in the code, and serve to provide # greater semantic interpretability. observable_nodes = (node_a, node_c1, node_c2, node_l, node_m, node_r1, node_r2, node_r3, node_y) # The nodes on which each latent variable is conditionally dependent. # Note that Y is not in this list, since all of its dependencies are # included below, and further it does not depend directly on Hm. nodes_on_which_hm_depends = (node_a, node_c1, node_c2, node_m) nodes_on_which_hl_depends = (node_a, node_c1, node_c2, node_m, node_l) nodes_on_which_hr1_depends = (node_a, node_c1, node_c2, node_m, node_l, node_r1) nodes_on_which_hr2_depends = (node_a, node_c1, node_c2, node_m, node_l, node_r2) nodes_on_which_hr3_depends = (node_a, node_c1, node_c2, node_m, node_l, node_r3) hidden_nodes = (node_hm, node_hl, node_hr1, node_hr2, node_hr3) # Function to create the distribution needed for variational inference. This # is the same for each latent variable. def make_q_x_obs_module(node): """Make a Variational module for the given hidden variable.""" assert node.hidden return variational.Variational( common_layer_sizes=(20, 20), output_dim=node.dim) # For each latent variable, we first construct a Haiku module (using the # function above), and then connect it to the graph using the node's # value. As described in more detail in the documentation for `Node`, # these values represent actual observed data. Therefore we will later # be connecting these same modules to the graph in different ways in order # to perform fair inference. q_hm_obs_module = make_q_x_obs_module(node_hm) q_hl_obs_module = make_q_x_obs_module(node_hl) q_hr1_obs_module = make_q_x_obs_module(node_hr1) q_hr2_obs_module = make_q_x_obs_module(node_hr2) q_hr3_obs_module = make_q_x_obs_module(node_hr3) causal_network.populate(observable_nodes, inputs) q_hm_obs = q_hm_obs_module( *(node.observed_value for node in nodes_on_which_hm_depends)) q_hl_obs = q_hl_obs_module( *(node.observed_value for node in nodes_on_which_hl_depends)) q_hr1_obs = q_hr1_obs_module( *(node.observed_value for node in nodes_on_which_hr1_depends)) q_hr2_obs = q_hr2_obs_module( *(node.observed_value for node in nodes_on_which_hr2_depends)) q_hr3_obs = q_hr3_obs_module( *(node.observed_value for node in nodes_on_which_hr3_depends)) q_hidden_obs = (q_hm_obs, q_hl_obs, q_hr1_obs, q_hr2_obs, q_hr3_obs) return observable_nodes, hidden_nodes, q_hidden_obs def build_forward_fn(train_data: pd.DataFrame, column_names: List[str], likelihood_multiplier: float): """Create the model's forward pass.""" def forward_fn(inputs: jnp.ndarray) -> CausalNetOutput: """Forward pass.""" observable_nodes, hidden_nodes, q_hidden = build_causal_graph( train_data, column_names, inputs) (node_hm, node_hl, node_hr1, node_hr2, node_hr3) = hidden_nodes (node_a, _, _, _, _, _, _, _, node_y) = observable_nodes # Log-likelihood function. def log_p_obs_h(hm_value, hl_value, hr1_value, hr2_value, hr3_value): """Compute log P(A, C, M, L, R, Y | H).""" # In order to create distributions like P(M | H_m, A, C), we need # the value of H_m that we've been provided as an argument, rather than # the value stored on H_m (which, in fact, will never be populated # since H_m is unobserved). # For compactness, we first construct the complete list of replacements. node_to_replacement = { node_hm: hm_value, node_hl: hl_value, node_hr1: hr1_value, node_hr2: hr2_value, node_hr3: hr3_value, } def log_prob_for_node(node): """Given a node, compute it's log probability for the given latents.""" log_prob = jnp.squeeze( node.make_distribution(node_to_replacement).log_prob( node.observed_value)) return log_prob # We apply the likelihood multiplier to all likelihood terms except that # for Y, the target. This is then added on separately in the line below. sum_no_y = likelihood_multiplier * sum( log_prob_for_node(node) for node in observable_nodes if node is not node_y) return sum_no_y + log_prob_for_node(node_y) q_hidden_obs = tuple(q_hidden) p_hidden = tuple(node.distribution for node in hidden_nodes) rnd_key = hk.next_rng_key() hidden_samples = tuple( q_hidden.sample(seed=rnd_key) for q_hidden in q_hidden_obs) log_p_obs_hidden = log_p_obs_h(*hidden_samples) # We need to split our batch of data into male and female parts. is_male = jnp.equal(node_a.observed_value[:, 1], 1) return CausalNetOutput( q_hidden_obs=q_hidden_obs, p_hidden=p_hidden, hidden_samples=hidden_samples, log_p_obs_hidden=log_p_obs_hidden, is_male=is_male) def fair_inference_fn(inputs: jnp.ndarray, batch_size: int, num_prediction_samples: int): """Get the fair and unfair predictions for the given input.""" observable_nodes, hidden_nodes, q_hidden_obs = build_causal_graph( train_data, column_names, inputs) (node_hm, node_hl, node_hr1, node_hr2, node_hr3) = hidden_nodes (node_a, node_c1, node_c2, node_l, node_m, node_r1, node_r2, node_r3, node_y) = observable_nodes (q_hm_obs, q_hl_obs, q_hr1_obs, q_hr2_obs, q_hr3_obs) = q_hidden_obs rnd_key = hk.next_rng_key() # *** FAIR INFERENCE *** # To predict Y in a fair sense: # * Infer Hm given observations. # * Infer M using inferred Hm, baseline A, real C # * Infer L using inferred Hl, M, real A, C # * Infer Y using inferred M, baseline A, real C # This is done by numerical integration, i.e. draw samples from # p_fair(Y | A, C, M, L). a_all_male = jnp.concatenate( (jnp.zeros((batch_size, 1)), jnp.ones((batch_size, 1))), axis=1) # Here we take a num_samples per observation. This results to # an array of shape: # (num_samples, batch_size, hm_dim). # However, forward pass is easier by reshaping to: # (num_samples * batch_size, hm_dim). hm_dim = 2 def expanded_sample(distribution): return distribution.sample( num_prediction_samples, seed=rnd_key).reshape( (batch_size * num_prediction_samples, hm_dim)) hm_pred_sample = expanded_sample(q_hm_obs) hl_pred_sample = expanded_sample(q_hl_obs) hr1_pred_sample = expanded_sample(q_hr1_obs) hr2_pred_sample = expanded_sample(q_hr2_obs) hr3_pred_sample = expanded_sample(q_hr3_obs) # The values of the observed nodes need to be tiled to match the dims # of the above hidden samples. The `expand` function achieves this. def expand(observed_value): return jnp.tile(observed_value, (num_prediction_samples, 1)) expanded_a = expand(node_a.observed_value) expanded_a_baseline = expand(a_all_male) expanded_c1 = expand(node_c1.observed_value) expanded_c2 = expand(node_c2.observed_value) # For M, and all subsequent variables, we only generate one sample. This # is because we already have *many* samples from the latent variables, and # all we require is an independent sample from the distribution. m_pred_sample = node_m.make_distribution({ node_a: expanded_a_baseline, node_hm: hm_pred_sample, node_c1: expanded_c1, node_c2: expanded_c2}).sample(seed=rnd_key) l_pred_sample = node_l.make_distribution({ node_a: expanded_a, node_hl: hl_pred_sample, node_c1: expanded_c1, node_c2: expanded_c2, node_m: m_pred_sample}).sample(seed=rnd_key) r1_pred_sample = node_r1.make_distribution({ node_a: expanded_a, node_hr1: hr1_pred_sample, node_c1: expanded_c1, node_c2: expanded_c2, node_m: m_pred_sample, node_l: l_pred_sample}).sample(seed=rnd_key) r2_pred_sample = node_r2.make_distribution({ node_a: expanded_a, node_hr2: hr2_pred_sample, node_c1: expanded_c1, node_c2: expanded_c2, node_m: m_pred_sample, node_l: l_pred_sample}).sample(seed=rnd_key) r3_pred_sample = node_r3.make_distribution({ node_a: expanded_a, node_hr3: hr3_pred_sample, node_c1: expanded_c1, node_c2: expanded_c2, node_m: m_pred_sample, node_l: l_pred_sample}).sample(seed=rnd_key) # Finally, we sample from the distribution for Y. Like above, we only # draw one sample per element in the array. y_pred_sample = node_y.make_distribution({ node_a: expanded_a_baseline, # node_a: expanded_a, node_c1: expanded_c1, node_c2: expanded_c2, node_m: m_pred_sample, node_l: l_pred_sample, node_r1: r1_pred_sample, node_r2: r2_pred_sample, node_r3: r3_pred_sample}).sample(seed=rnd_key) # Reshape back to (num_samples, batch_size, y_dim), undoing the expanding # operation used for sampling. y_pred_sample = y_pred_sample.reshape( (num_prediction_samples, batch_size, -1)) # Now form an array of shape (batch_size, y_dim) by taking an expectation # over the sample dimension. This represents the probability that the # result is in each class. y_pred_expectation = jnp.mean(y_pred_sample, axis=0) # Find out the predicted y, for later use in a confusion matrix. predicted_class_y_fair = utils.multinomial_class(y_pred_expectation) # *** NAIVE INFERENCE *** predicted_class_y_unfair = utils.multinomial_class(node_y.distribution) return predicted_class_y_fair, predicted_class_y_unfair return forward_fn, fair_inference_fn def _loss_fn( forward_fn, beta: float, mmd_sample_size: int, constraint_multiplier: float, constraint_ratio: float, params: hk.Params, rng: jnp.ndarray, inputs: jnp.ndarray, ) -> jnp.ndarray: """Loss function definition.""" outputs = forward_fn(params, rng, inputs) loss = _loss_klqp(outputs, beta) # if (constraint_ratio * constraint_multiplier) > 0: constraint_loss = 0. # Create constraint penalty and add to overall loss term. for distribution in outputs.q_hidden_obs: constraint_loss += (constraint_ratio * constraint_multiplier * utils.mmd_loss(distribution, outputs.is_male, mmd_sample_size, rng)) # Optimisation - don't do the computation if the multiplier is set to zero. loss += constraint_loss return loss def _evaluate( fair_inference_fn, params: hk.Params, rng: jnp.ndarray, inputs: jnp.ndarray, batch_size: int, num_prediction_samples: int, ): """Perform evaluation of fair inference.""" output = fair_inference_fn(params, rng, inputs, batch_size, num_prediction_samples) return output def _loss_klqp(outputs: CausalNetOutput, beta: float) -> jnp.ndarray: """Compute the loss on data wrt params.""" expected_log_q_hidden_obs = sum( jnp.sum(q_hidden_obs.log_prob(hidden_sample), axis=1) for q_hidden_obs, hidden_sample in zip(outputs.q_hidden_obs, outputs.hidden_samples)) assert expected_log_q_hidden_obs.ndim == 1 # For log probabilities computed from distributions, we need to sum along # the last axis, which takes the product of distributions for # multi-dimensional hidden variables. log_p_hidden = sum( jnp.sum(p_hidden.log_prob(hidden_sample), axis=1) for p_hidden, hidden_sample in zip(outputs.p_hidden, outputs.hidden_samples)) assert outputs.log_p_obs_hidden.ndim == 1 kl_divergence = ( beta * (expected_log_q_hidden_obs - log_p_hidden) - outputs.log_p_obs_hidden) return jnp.mean(kl_divergence) class Updater: """A stateless abstraction around an init_fn/update_fn pair. This extracts some common boilerplate from the training loop. """ def __init__(self, net_init, loss_fn, eval_fn, optimizer: optax.GradientTransformation, constraint_turn_on_step): self._net_init = net_init self._loss_fn = loss_fn self._eval_fn = eval_fn self._opt = optimizer self._constraint_turn_on_step = constraint_turn_on_step @functools.partial(jax.jit, static_argnums=0) def init(self, init_rng, data): """Initializes state of the updater.""" params = self._net_init(init_rng, data) opt_state = self._opt.init(params) out = dict( step=np.array(0), rng=init_rng, opt_state=opt_state, params=params, ) return out @functools.partial(jax.jit, static_argnums=0) def update(self, state: Mapping[str, Any], data: jnp.ndarray): """Updates the state using some data and returns metrics.""" rng = state['rng'] params = state['params'] constraint_ratio = (state['step'] > self._constraint_turn_on_step).astype( float) loss, g = jax.value_and_grad(self._loss_fn, argnums=1)( constraint_ratio, params, rng, data) updates, opt_state = self._opt.update(g, state['opt_state']) params = optax.apply_updates(params, updates) new_state = { 'step': state['step'] + 1, 'rng': rng, 'opt_state': opt_state, 'params': params, } new_metrics = { 'step': state['step'], 'loss': loss, } return new_state, new_metrics @functools.partial(jax.jit, static_argnums=(0, 3, 4)) def evaluate(self, state: Mapping[str, Any], inputs: jnp.ndarray, batch_size: int, num_prediction_samples: int): """Evaluate fair inference.""" rng = state['rng'] params = state['params'] fair_pred, unfair_pred = self._eval_fn(params, rng, inputs, batch_size, num_prediction_samples) return fair_pred, unfair_pred def main(_): flags_config = FLAGS.config # Create the dataset. train_data, test_data = adult.read_all_data(FLAGS.dataset_dir) column_names = list(train_data.columns) train_input = build_input(train_data, flags_config.batch_size, flags_config.num_steps) # Set up the model, loss, and updater. forward_fn, fair_inference_fn = build_forward_fn( train_data, column_names, flags_config.likelihood_multiplier) forward_fn = hk.transform(forward_fn) fair_inference_fn = hk.transform(fair_inference_fn) loss_fn = functools.partial(_loss_fn, forward_fn.apply, flags_config.beta, flags_config.mmd_sample_size, flags_config.constraint_multiplier) eval_fn = functools.partial(_evaluate, fair_inference_fn.apply) optimizer = optax.adam(flags_config.learning_rate) updater = Updater(forward_fn.init, loss_fn, eval_fn, optimizer, flags_config.constraint_turn_on_step) # Initialize parameters. logging.info('Initializing parameters...') rng = jax.random.PRNGKey(42) train_data = next(train_input) state = updater.init(rng, train_data) # Training loop. logging.info('Starting train loop...') prev_time = time.time() for step in range(flags_config.num_steps): train_data = next(train_input) state, stats = updater.update(state, train_data) if step % LOG_EVERY == 0: steps_per_sec = LOG_EVERY / (time.time() - prev_time) prev_time = time.time() stats.update({'steps_per_sec': steps_per_sec}) logging.info({k: float(v) for k, v in stats.items()}) # Evaluate. logging.info('Starting evaluation...') test_input = build_input(test_data, flags_config.batch_size, training_steps=0, shuffle_size=0) predicted_test_y = [] corrected_test_y = [] while True: try: eval_data = next(test_input) # Now run the fair prediction; this projects the input to the latent space # and then performs sampling. predicted_class_y_fair, predicted_class_y_unfair = updater.evaluate( state, eval_data, flags_config.batch_size, flags_config.num_prediction_samples) predicted_test_y.append(predicted_class_y_unfair) corrected_test_y.append(predicted_class_y_fair) # logging.info('Completed evaluation step %d', step) except StopIteration: logging.info('Finished evaluation') break # Join together the predictions from each batch. test_y = np.concatenate(predicted_test_y, axis=0) tweaked_test_y = np.concatenate(corrected_test_y, axis=0) # Note the true values for computing accuracy and confusion matrices. y_true = test_data['income'].cat.codes # Make sure y_true is the same size y_true = y_true[:len(test_y)] test_accuracy = metrics.accuracy_score(y_true, test_y) tweaked_test_accuracy = metrics.accuracy_score( y_true, tweaked_test_y) # Print out accuracy and confusion matrices. logging.info('Accuracy (full model): %f', test_accuracy) logging.info('Confusion matrix:') logging.info(metrics.confusion_matrix(y_true, test_y)) logging.info('') logging.info('Accuracy (tweaked with baseline: Male): %f', tweaked_test_accuracy) logging.info('Confusion matrix:') logging.info(metrics.confusion_matrix(y_true, tweaked_test_y)) if __name__ == '__main__': app.run(main) ================================================ FILE: counterfactual_fairness/adult_pscf_config.py ================================================ # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Config for adult PSCF experiment.""" import ml_collections def get_config(): """Return the default configuration.""" config = ml_collections.ConfigDict() config.num_steps = 10000 # Number of training steps to perform. config.batch_size = 128 # Batch size. config.learning_rate = 0.01 # Learning rate # Number of samples to draw for prediction. config.num_prediction_samples = 500 # Batch size to use for prediction. Ideally as big as possible, but may need # to be reduced for memory reasons depending on the value of # `num_prediction_samples`. config.prediction_batch_size = 500 # Multiplier for the likelihood term in the loss config.likelihood_multiplier = 5. # Multiplier for the MMD constraint term in the loss config.constraint_multiplier = 0. # Scaling factor to use in KL term. config.beta = 1.0 # The number of samples we draw from each latent variable distribution. config.mmd_sample_size = 100 # Directory into which results should be placed. By default it is the empty # string, in which case no saving will occur. The directory specified will be # created if it does not exist. config.output_dir = '' # The index of the step at which to turn on the constraint multiplier. For # steps prior to this the multiplier will be zero. config.constraint_turn_on_step = 0 # The random seed for tensorflow that is applied to the graph iff the value is # non-negative. By default the seed is not constrained. config.seed = -1 # When doing fair inference, don't sample when given a sample for the baseline # gender. config.baseline_passthrough = False return config ================================================ FILE: counterfactual_fairness/causal_network.py ================================================ # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Construct DAGs representing causal graphs, and perform inference on them.""" import collections import haiku as hk import jax import jax.numpy as jnp import pandas as pd from tensorflow_probability.substrates import jax as tfp import tree class Node: """A node in a graphical model. Conceptually, this represents a random variable in a causal probabilistic model. It knows about its 'parents', i.e. other Nodes upon which this Node causally depends. The user is responsible for ensuring that any graph built with this class is acyclic. A node knows how to represent its probability density, conditional on the values of its parents. The node needs to have a 'name', corresponding to the series within the dataframe that should be used to populate it. """ def __init__(self, distribution_module, parents=(), hidden=False): """Initialise a `Node` instance. Args: distribution_module: An instance of `DistributionModule`, a Haiku module that is suitable for modelling the conditional distribution of this node given any parents. parents: `Iterable`, optional. A (potentially nested) collection of nodes which are direct ancestors of `self`. hidden: `bool`, optional. Whether this node is hidden. Hidden nodes are permitted to not have corresponding observations. """ parents = tree.flatten(parents) self._distribution_module = distribution_module self._column = distribution_module.column self._index = distribution_module.index self._hidden = hidden self._observed_value = None # When implementing the path-specific counterfactual fairness algorithm, # we need the concept of a distribution conditional on the 'corrected' # values of the parents. This is achieved via the 'node_to_replacement' # argument of make_distribution. # However, in order to work with the `fix_categorical` and `fix_continuous` # functions, we need to assign counterfactual values for parents at # evaluation time. self._parent_to_value = collections.OrderedDict( (parent, None) for parent in parents) # This is the conditional distribution using no replacements, i.e. it is # conditioned on the observed values of parents. self._distribution = None def __repr__(self): return 'Node<{}>'.format(self.name) @property def dim(self): """The dimensionality of this node.""" return self._distribution_module.dim @property def name(self): return self._column @property def hidden(self): return self._hidden @property def observed_value(self): return self._observed_value def find_ancestor(self, name): """Returns an ancestor node with the given name.""" if self.name == name: return self for parent in self.parents: found = parent.find_ancestor(name) if found is not None: return found @property def parents(self): return tuple(self._parent_to_value) @property def distribution_module(self): return self._distribution_module @property def distribution(self): self._distribution = self.make_distribution() return self._distribution def make_distribution(self, node_to_replacement=None): """Make a conditional distribution for this node | parents. By default we use values (representing 'real data') from the parent nodes as inputs to the distribution, however we can alternatively swap out any of these for arbitrary arrays by specifying `node_to_replacement`. Args: node_to_replacement: `None`, `dict: Node -> DeviceArray`. If specified, use the indicated array. Returns: `tfp.distributions.Distribution` """ cur_parent_to_value = self._parent_to_value self._parent_to_value = collections.OrderedDict( (parent, parent.observed_value) for parent in cur_parent_to_value.keys() ) if node_to_replacement is None: parent_values = self._parent_to_value.values() return self._distribution_module(*parent_values) args = [] for node, value in self._parent_to_value.items(): if node in node_to_replacement: replacement = node_to_replacement[node] args.append(replacement) else: args.append(value) return self._distribution_module(*args) def populate(self, data, node_to_replacement=None): """Given a dataframe, populate node data. If the Node does not have data present, this is taken to be a sign of a) An error if the node is not hidden. b) Fine if the node is hidden. In case a) an exception will be raised, and in case b) observed)v will not be mutated. Args: data: tf.data.Dataset node_to_replacement: None | dict(Node -> array). If not None, use the given ndarray data rather than extracting data from the frame. This is only considered when looking at the inputs to a distribution. Raises: RuntimeError: If `data` doesn't contain the necessary feature, and the node is not hidden. """ column = self._column hidden = self._hidden replacement = None if node_to_replacement is not None and self in node_to_replacement: replacement = node_to_replacement[self] if replacement is not None: # If a replacement is present, this takes priority over any other # consideration. self._observed_value = replacement return if self._index < 0: if not hidden: raise RuntimeError( 'Node {} is not hidden, and column {} is not in the frame.'.format( self, column)) # Nothing to do - there is no data, and the node is hidden. return # Produce the observed value for this node. self._observed_value = self._distribution_module.prepare_data(data) class DistributionModule(hk.Module): """Common base class for a Haiku module representing a distribution. This provides some additional functionality common to all modules that would be used as arguments to the `Node` class above. """ def __init__(self, column, index, dim): """Initialise a `DistributionModule` instance. Args: column: `string`. The name of the random variable to which this distribution corresponds, and should match the name of the series in the pandas dataframe. index: `int`. The index of the corresponding feature in the dataset. dim: `int`. The output dimensionality of the distribution. """ super().__init__(name=column.replace('-', '_')) self._column = column self._index = index self._dim = dim @property def dim(self): """The output dimensionality of this distribution.""" return self._dim @property def column(self): return self._column @property def index(self): return self._index def prepare_data(self, data): """Given a general tensor, return an ndarray if required. This method implements the functionality delegated from `Node._prepare_data`, and it is expected that subclasses will override the implementation appropriately. Args: data: A tf.data.Dataset. Returns: `np.ndarray` of appropriately converted values for this series. """ return data[:, [self._index]] def _package_args(self, args): """Concatenate args into a single tensor. Args: args: `List[DeviceArray]`, length > 0. Each array is of shape (batch_size, ?) or (batch_size,). The former will occur if looking at e.g. a one-hot encoded categorical variable, and the latter in the case of a continuous variable. Returns: `DeviceArray`, (batch_size, num_values). """ return jnp.concatenate(args, axis=1) class Gaussian(DistributionModule): """A Haiku module that maps some inputs into a normal distribution.""" def __init__(self, column, index, dim=1, hidden_shape=(), hidden_activation=jnp.tanh, scale=None): """Initialise a `Gaussian` instance with some dimensionality.""" super(Gaussian, self).__init__(column, index, dim) self._hidden_shape = tuple(hidden_shape) self._hidden_activation = hidden_activation self._scale = scale self._loc_net = hk.nets.MLP(self._hidden_shape + (self._dim,), activation=self._hidden_activation) def __call__(self, *args): if args: # There are arguments - these represent the variables on which we are # conditioning. We set the mean of the output distribution to be a # function of these values, parameterised with an MLP. concatenated_inputs = self._package_args(args) loc = self._loc_net(concatenated_inputs) else: # There are no arguments, so instead have a learnable location parameter. loc = hk.get_parameter('loc', shape=[self._dim], init=jnp.zeros) if self._scale is None: # The scale has not been explicitly specified, in which case it is left # to be single value, i.e. not a function of the conditioning set. log_var = hk.get_parameter('log_var', shape=[self._dim], init=jnp.ones) scale = jnp.sqrt(jnp.exp(log_var)) else: scale = jnp.float32(self._scale) return tfp.distributions.Normal(loc=loc, scale=scale) def prepare_data(self, data): # For continuous data, we ensure the data is of dtype float32, and # additionally that the resulant shape is (num_examples, 1) # Note that this implementation only works for dim=1, however this is # currently also enforced by the fact that pandas series cannot be # multidimensional. result = data[:, [self.index]].astype(jnp.float32) if len(result.shape) == 1: result = jnp.expand_dims(result, axis=1) return result class GaussianMixture(DistributionModule): """A Haiku module that maps some inputs into a mixture of normals.""" def __init__(self, column, num_components, dim=1): """Initialise a `GaussianMixture` instance with some dimensionality. Args: column: `string`. The name of the column. num_components: `int`. The number of gaussians in this mixture. dim: `int`. The dimensionality of the variable. """ super().__init__(column, -1, dim) self._num_components = num_components self._loc_net = hk.nets.MLP([self._dim]) self._categorical_logits_module = hk.nets.MLP([self._num_components]) def __call__(self, *args): # Define component Gaussians to be independent functions of args. locs = [] scales = [] for _ in range(self._num_components): loc = hk.get_parameter('loc', shape=[self._dim], init=jnp.zeros) log_var = hk.get_parameter('log_var', shape=[self._dim], init=jnp.ones) scale = jnp.sqrt(jnp.exp(log_var)) locs.extend(loc) scales.extend(scale) # Define the Categorical distribution which switches between these categorical_logits = hk.get_parameter('categorical_logits', shape=[self._num_components], init=jnp.zeros) # Enforce positivity in the logits categorical_logits = jax.nn.sigmoid(categorical_logits) # If we have a multidimensional node, then the normal distributions above # have a batch shape of (dim,). We want to select between these using the # categorical distribution, so tile the logits to match this shape expanded_logits = jnp.repeat(categorical_logits, self._dim) categorical = tfp.distributions.Categorical(logits=expanded_logits) return tfp.distributions.MixtureSameFamily( mixture_distribution=categorical, components_distribution=tfp.distributions.Normal( loc=locs, scale=scales)) class MLPMultinomial(DistributionModule): """A Haiku module that consists of an MLP + multinomial distribution.""" def __init__(self, column, index, dim, hidden_shape=(), hidden_activation=jnp.tanh): """Initialise an MLPMultinomial instance. Args: column: `string`. Name of the corresponding dataframe column. index: `int`. The index of the input data for this feature. dim: `int`. Number of categories. hidden_shape: `Iterable`, optional. Shape of hidden layers. hidden_activation: `Callable`, optional. Non-linearity for hidden layers. """ super(MLPMultinomial, self).__init__(column, index, dim) self._hidden_shape = tuple(hidden_shape) self._hidden_activation = hidden_activation self._logit_net = hk.nets.MLP(self._hidden_shape + (self.dim,), activation=self._hidden_activation) @classmethod def from_frame(cls, data, column, hidden_shape=()): """Create an MLPMultinomial instance from a pandas dataframe and column.""" # Helper method that uses the dataframe to work out how many categories # are in the given column. The dataframe is not used for any other purpose. if not isinstance(data[column].dtype, pd.api.types.CategoricalDtype): raise ValueError('{} is not categorical.'.format(column)) index = list(data.columns).index(column) num_categories = len(data[column].cat.categories) return cls(column, index, num_categories, hidden_shape) def __call__(self, *args): if args: concatenated_inputs = self._package_args(args) logits = self._logit_net(concatenated_inputs) else: logits = hk.get_parameter('b', shape=[self.dim], init=jnp.zeros) return tfp.distributions.Multinomial(logits=logits, total_count=1.0) def prepare_data(self, data): # For categorical data, we convert to a one-hot representation using the # pandas category 'codes'. These are integers, and will have a definite # ordering that is identical between runs. codes = data[:, self.index] codes = codes.astype(jnp.int32) return jnp.eye(self.dim)[codes] def populate(nodes, dataframe, node_to_replacement=None): """Populate observed values for nodes.""" for node in nodes: node.populate(dataframe, node_to_replacement=node_to_replacement) ================================================ FILE: counterfactual_fairness/download_dataset.sh ================================================ #!/bin/bash # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Usage: # sh download_dataset.sh ${OUTPUT_DIR} # Example: # sh download_dataset.sh uci_adult set -e OUTPUT_DIR="${1}" BASE_URL="https://archive.ics.uci.edu/ml/machine-learning-databases/adult/" mkdir -p ${OUTPUT_DIR} for file in adult.data adult.test do wget -O "${OUTPUT_DIR}/${file}" "${BASE_URL}${file}" done ================================================ FILE: counterfactual_fairness/requirements.txt ================================================ wheel absl-py>=0.12.0 dm-haiku>=0.0.4 optax>=0.0.8 ml_collections numpy>=1.16.4 tensorflow>=2.5.0 tensorflow-datasets>=4.3.0 tensorflow_probability pandas sklearn jaxlib>=0.1.67+cuda110 ================================================ FILE: counterfactual_fairness/run_adult_pscf.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ # Fail on any error. set -e # Display commands being run. set -x TMP_DIR=`mktemp -d` virtualenv --python=python3.6 "${TMP_DIR}/env" source "${TMP_DIR}/env/bin/activate" # Install dependencies. pip install --upgrade -r counterfactual_fairness/requirements.txt # Download minimal dataset DATA_DIR="${TMP_DIR}/adult" bash counterfactual_fairness/download_dataset.sh ${TMP_DIR} # Train for a few steps. python -m counterfactual_fairness.adult_pscf --config="counterfactual_fairness/adult_pscf_config.py" --dataset_dir=${DATA_DIR} --num_steps=10 # Clean up. rm -r ${TMP_DIR} echo "Test run complete." ================================================ FILE: counterfactual_fairness/utils.py ================================================ # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Common utilities.""" from typing import Optional, Union import jax from jax import random import jax.numpy as jnp import pandas as pd import tensorflow as tf from tensorflow_probability.substrates import jax as tfp tfd = tfp.distributions def get_dataset(dataset: pd.DataFrame, batch_size: int, shuffle_size: int = 10000, num_epochs: Optional[int] = None) -> tf.data.Dataset: """Makes a tf.Dataset with correct preprocessing.""" dataset_copy = dataset.copy() for column in dataset.columns: if dataset[column].dtype.name == 'category': dataset_copy.loc[:, column] = dataset[column].cat.codes ds = tf.data.Dataset.from_tensor_slices(dataset_copy.values) if shuffle_size > 0: ds = ds.shuffle(shuffle_size, reshuffle_each_iteration=True) ds = ds.repeat(num_epochs) return ds.batch(batch_size, drop_remainder=True) def multinomial_mode( distribution_or_probs: Union[tfd.Distribution, jax.Array] ) -> jax.Array: """Calculates the (one-hot) mode of a multinomial distribution. Args: distribution_or_probs: `tfp.distributions.Distribution` | List[tensors]. If the former, it is assumed that it has a `probs` property, and represents a distribution over categories. If the latter, these are taken to be the probabilities of categories directly. In either case, it is assumed that `probs` will be shape (batch_size, dim). Returns: `DeviceArray`, float32, (batch_size, dim). The mode of the distribution - this will be in one-hot form, but contain multiple non-zero entries in the event that more than one probability is joint-highest. """ if isinstance(distribution_or_probs, tfd.Distribution): probs = distribution_or_probs.probs_parameter() # pytype: disable=attribute-error # jax-devicearray else: probs = distribution_or_probs max_prob = jnp.max(probs, axis=1, keepdims=True) mode = jnp.int32(jnp.equal(probs, max_prob)) return jnp.float32(mode / jnp.sum(mode, axis=1, keepdims=True)) def multinomial_class( distribution_or_probs: Union[tfd.Distribution, jax.Array] ) -> jax.Array: """Computes the mode class of a multinomial distribution. Args: distribution_or_probs: `tfp.distributions.Distribution` | DeviceArray. As for `multinomial_mode`. Returns: `DeviceArray`, float32, (batch_size,). For each element in the batch, the index of the class with highest probability. """ if isinstance(distribution_or_probs, tfd.Distribution): return jnp.argmax(distribution_or_probs.logits_parameter(), axis=1) # pytype: disable=attribute-error # jax-devicearray return jnp.argmax(distribution_or_probs, axis=1) def multinomial_mode_ndarray(probs: jax.Array) -> jax.Array: """Calculates the (one-hot) mode from an ndarray of class probabilities. Equivalent to `multinomial_mode` above, but implemented for numpy ndarrays rather than Tensors. Args: probs: `DeviceArray`, (batch_size, dim). Probabilities for each class, for each element in a batch. Returns: `DeviceArray`, (batch_size, dim). """ max_prob = jnp.amax(probs, axis=1, keepdims=True) mode = jnp.equal(probs, max_prob).astype(jnp.int32) return (mode / jnp.sum(mode, axis=1, keepdims=True)).astype(jnp.float32) def multinomial_accuracy(distribution_or_probs: tfd.Distribution, data: jax.Array) -> jax.Array: """Compute the accuracy, averaged over a batch of data. Args: distribution_or_probs: `tfp.distributions.Distribution` | List[tensors]. As for functions above. data: `DeviceArray`. Reference data, of shape (batch_size, dim). Returns: `DeviceArray`, float32, (). Overall scalar accuracy. """ return jnp.mean( jnp.sum(multinomial_mode(distribution_or_probs) * data, axis=1)) def softmax_ndarray(logits: jax.Array) -> jax.Array: """Softmax function, implemented for numpy ndarrays.""" assert len(logits.shape) == 2 # Normalise for better stability. s = jnp.max(logits, axis=1, keepdims=True) e_x = jnp.exp(logits - s) return e_x / jnp.sum(e_x, axis=1, keepdims=True) def get_samples(distribution, num_samples, seed=None): """Given a batched distribution, compute samples and reshape along batch. That is, we have a distribution of shape (batch_size, ...), where each element of the tensor is independent. We then draw num_samples from each component, to give a tensor of shape: (num_samples, batch_size, ...) Args: distribution: `tfp.distributions.Distribution`. The distribution from which to sample. num_samples: `Integral` | `DeviceArray`, int32, (). The number of samples. seed: `Integral` | `None`. The seed that will be forwarded to the call to distribution.sample. Defaults to `None`. Returns: `DeviceArray`, float32, (batch_size * num_samples, ...). Samples for each element of the batch. """ # Obtain the sample from the distribution, which will be of shape # [num_samples] + batch_shape + event_shape. sample = distribution.sample(num_samples, seed=seed) sample = sample.reshape((-1, sample.shape[-1])) # Combine the first two dimensions through a reshape, so the result will # be of shape (num_samples * batch_size,) + shape_tail. return sample def mmd_loss(distribution: tfd.Distribution, is_a: jax.Array, num_samples: int, rng: jnp.ndarray, num_random_features: int = 50, gamma: float = 1.): """Given two distributions, compute the Maximum Mean Discrepancy (MMD). More exactly, this uses the 'FastMMD' approximation, a.k.a. 'Random Fourier Features'. See the description, for example, in sections 2.3.1 and 2.4 of https://arxiv.org/pdf/1511.00830.pdf. Args: distribution: Distribution whose `sample()` method will return a DeviceArray of shape (batch_size, dim). is_a: A boolean array indicating which elements of the batch correspond to class A (the remaining indices correspond to class B). num_samples: The number of samples to draw from `distribution`. rng: Random seed provided by the user. num_random_features: The number of random fourier features used in the expansion. gamma: The value of gamma in the Gaussian MMD kernel. Returns: `DeviceArray`, shape (). The scalar MMD value for samples taken from the given distributions. """ if distribution.event_shape == (): # pylint: disable=g-explicit-bool-comparison dim_x = distribution.batch_shape[1] else: dim_x, = distribution.event_shape # Obtain samples from the distribution, which will be of shape # [num_samples] + batch_shape + event_shape. samples = distribution.sample(num_samples, seed=rng) w = random.normal(rng, shape=((dim_x, num_random_features))) b = random.uniform(rng, shape=(num_random_features,), minval=0, maxval=2*jnp.pi) def features(x): """Compute the kitchen sink feature.""" # We need to contract last axis of x with first of W - do this with # tensordot. The result has shape: # (?, ?, num_random_features) return jnp.sqrt(2 / num_random_features) * jnp.cos( jnp.sqrt(2 / gamma) * jnp.tensordot(x, w, axes=1) + b) # Compute the expected values of the given features. # The first axis represents the samples from the distribution, # second axis represents the batch_size. # Each of these now has shape (num_random_features,) exp_features = features(samples) # Swap axes so that batch_size is the last dimension to be compatible # with is_a and is_b shape at the next step exp_features_reshaped = jnp.swapaxes(exp_features, 1, 2) # Current dimensions [num_samples, num_random_features, batch_size] exp_features_reshaped_a = jnp.where(is_a, exp_features_reshaped, 0) exp_features_reshaped_b = jnp.where(is_a, 0, exp_features_reshaped) exp_features_a = jnp.mean(exp_features_reshaped_a, axis=(0, 2)) exp_features_b = jnp.mean(exp_features_reshaped_b, axis=(0, 2)) assert exp_features_a.shape == (num_random_features,) difference = exp_features_a - exp_features_b # Compute the squared norm. Shape (). return jnp.tensordot(difference, difference, axes=1) def mmd_loss_exact(distribution_a, distribution_b, num_samples, gamma=1.): """Exact estimate of MMD.""" assert distribution_a.event_shape == distribution_b.event_shape assert distribution_a.batch_shape[1:] == distribution_b.batch_shape[1:] # shape (num_samples * batch_size_a, dim_x) samples_a = get_samples(distribution_a, num_samples) # shape (num_samples * batch_size_b, dim_x) samples_b = get_samples(distribution_b, num_samples) # Make matrices of shape # (size_b, size_a, dim_x) # where: # size_a = num_samples * batch_size_a # size_b = num_samples * batch_size_b size_a = samples_a.shape[0] size_b = samples_b.shape[0] x_a = jnp.expand_dims(samples_a, axis=0) x_a = jnp.tile(x_a, (size_b, 1, 1)) x_b = jnp.expand_dims(samples_b, axis=1) x_b = jnp.tile(x_b, (1, size_a, 1)) def kernel_mean(x, y): """Gaussian kernel mean.""" diff = x - y # Contract over dim_x. exponent = - jnp.einsum('ijk,ijk->ij', diff, diff) / gamma # This has shape (size_b, size_a). kernel_matrix = jnp.exp(exponent) # Shape (). return jnp.mean(kernel_matrix) # Equation 7 from arxiv 1511.00830 return ( kernel_mean(x_a, x_a) + kernel_mean(x_b, x_b) - 2 * kernel_mean(x_a, x_b)) def scalar_log_prob(distribution, val): """Compute the log_prob per batch entry. It is conceptually similar to: jnp.sum(distribution.log_prob(val), axis=1) However, classes like `tfp.distributions.Multinomial` have a log_prob which returns a tensor of shape (batch_size,), which will cause the above incantation to fail. In these cases we fall back to returning just: distribution.log_prob(val) Args: distribution: `tfp.distributions.Distribution` which implements log_prob. val: `DeviceArray`, (batch_size, dim). Returns: `DeviceArray`, (batch_size,). If the result of log_prob has a trailing dimension, we perform a reduce_sum over it. Raises: ValueError: If distribution.log_prob(val) has an unsupported shape. """ log_prob_val = distribution.log_prob(val) if len(log_prob_val.shape) == 1: return log_prob_val elif len(log_prob_val.shape) > 2: raise ValueError('log_prob_val has unexpected shape {}.'.format( log_prob_val.shape)) return jnp.sum(log_prob_val, axis=1) ================================================ FILE: counterfactual_fairness/variational.py ================================================ # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Functions and classes for performing variational inference.""" from typing import Callable, Iterable, Optional import haiku as hk import jax import jax.numpy as jnp from tensorflow_probability.substrates import jax as tfp tfd = tfp.distributions class Variational(hk.Module): """A module representing the variational distribution q(H | *O). H is assumed to be a continuous variable. """ def __init__(self, common_layer_sizes: Iterable[int], activation: Callable[[jax.Array], jax.Array] = jnp.tanh, output_dim: int = 1, name: Optional[str] = None): """Initialises a `Variational` instance. Args: common_layer_sizes: The number of hidden units in the shared dense network layers. activation: Nonlinearity function to apply to each of the common layers. output_dim: The dimensionality of `H`. name: A name to assign to the module instance. """ super().__init__(name=name) self._common_layer_sizes = common_layer_sizes self._activation = activation self._output_dim = output_dim self._linear_layers = [ hk.Linear(layer_size) for layer_size in self._common_layer_sizes ] self._mean_output = hk.Linear(self._output_dim) self._log_var_output = hk.Linear(self._output_dim) def __call__(self, *args) -> tfd.Distribution: """Create a distribution for q(H | *O). Args: *args: `List[DeviceArray]`. Corresponds to the values of whatever variables are in the conditional set *O. Returns: `tfp.distributions.NormalDistribution` instance. """ # Stack all inputs, ensuring that shapes are consistent and that they are # all of dtype float32. input_ = [hk.Flatten()(arg) for arg in args] input_ = jnp.concatenate(input_, axis=1) # Create a common set of layers, then final layer separates mean & log_var for layer in self._linear_layers: input_ = layer(input_) input_ = self._activation(input_) # input_ now represents a tensor of shape (batch_size, final_layer_size). # This is now put through two final layers, one for the computation of each # of the mean and standard deviation of the resultant distribution. mean = self._mean_output(input_) log_var = self._log_var_output(input_) std = jnp.sqrt(jnp.exp(log_var)) return tfd.Normal(mean, std) ================================================ FILE: cs_gan/README.md ================================================ # Deep Compressed Sensing This is the example code for the following ICML 2019 paper. If you use the code here please cite this paper. > Yan Wu, Mihaela Rosca, Timothy Lillicrap *Deep Compressed Sensing*. ICML 2019. [\[arXiv\]](https://arxiv.org/abs/1905.06723). ## Running the code The code contains: * the implementation of the compressed sensing algorithm (`cs.py`). * the implementation of the GAN algorithm (`gan.py`). * a main file (`main_cs.py`) to reproduce the Compressed Sensing results in the paper. * a main file (`main_gan.py`) to reproduce the GAN results in the paper (the improvement over the SN-GAN baseline via latent optimization). ================================================ FILE: cs_gan/cs.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """GAN modules.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import math import sonnet as snt import tensorflow.compat.v1 as tf from cs_gan import utils class CS(object): """Compressed Sensing Module.""" def __init__(self, metric_net, generator, num_z_iters, z_step_size, z_project_method): """Constructs the module. Args: metric_net: the measurement network. generator: The generator network. A sonnet module. For examples, see `nets.py`. num_z_iters: an integer, the number of latent optimisation steps. z_step_size: an integer, latent optimisation step size. z_project_method: the method for projecting latent after optimisation, a string from {'norm', 'clip'}. """ self._measure = metric_net self.generator = generator self.num_z_iters = num_z_iters self.z_project_method = z_project_method self._log_step_size_module = snt.TrainableVariable( [], initializers={'w': tf.constant_initializer(math.log(z_step_size))}) self.z_step_size = tf.exp(self._log_step_size_module()) def connect(self, data, generator_inputs): """Connects the components and returns the losses, outputs and debug ops. Args: data: a `tf.Tensor`: `[batch_size, ...]`. There are no constraints on the rank of this tensor, but it has to be compatible with the shapes expected by the discriminator. generator_inputs: a `tf.Tensor`: `[g_in_batch_size, ...]`. It does not have to have the same batch size as the `data` tensor. There are not constraints on the rank of this tensor, but it has to be compatible with the shapes the generator network supports as inputs. Returns: An `ModelOutputs` instance. """ samples, optimised_z = utils.optimise_and_sample( generator_inputs, self, data, is_training=True) optimisation_cost = utils.get_optimisation_cost(generator_inputs, optimised_z) debug_ops = {} initial_samples = self.generator(generator_inputs, is_training=True) generator_loss = tf.reduce_mean(self.gen_loss_fn(data, samples)) # compute the RIP loss # (\sqrt{F(x_1 - x_2)^2} - \sqrt{(x_1 - x_2)^2})^2 # as a triplet loss for 3 pairs of images. r1 = self._get_rip_loss(samples, initial_samples) r2 = self._get_rip_loss(samples, data) r3 = self._get_rip_loss(initial_samples, data) rip_loss = tf.reduce_mean((r1 + r2 + r3) / 3.0) total_loss = generator_loss + rip_loss optimization_components = self._build_optimization_components( generator_loss=total_loss) debug_ops['rip_loss'] = rip_loss debug_ops['recons_loss'] = tf.reduce_mean( tf.norm(snt.BatchFlatten()(samples) - snt.BatchFlatten()(data), axis=-1)) debug_ops['z_step_size'] = self.z_step_size debug_ops['opt_cost'] = optimisation_cost debug_ops['gen_loss'] = generator_loss return utils.ModelOutputs( optimization_components, debug_ops) def _get_rip_loss(self, img1, img2): r"""Compute the RIP loss from two images. The RIP loss: (\sqrt{F(x_1 - x_2)^2} - \sqrt{(x_1 - x_2)^2})^2 Args: img1: an image (x_1), 4D tensor of shape [batch_size, W, H, C]. img2: an other image (x_2), 4D tensor of shape [batch_size, W, H, C]. """ m1 = self._measure(img1) m2 = self._measure(img2) img_diff_norm = tf.norm(snt.BatchFlatten()(img1) - snt.BatchFlatten()(img2), axis=-1) m_diff_norm = tf.norm(m1 - m2, axis=-1) return tf.square(img_diff_norm - m_diff_norm) def _get_measurement_error(self, target_img, sample_img): """Compute the measurement error of sample images given the targets.""" m_targets = self._measure(target_img) m_samples = self._measure(sample_img) return tf.reduce_sum(tf.square(m_targets - m_samples), -1) def gen_loss_fn(self, data, samples): """Generator loss as latent optimisation's error function.""" return self._get_measurement_error(data, samples) def _build_optimization_components( self, generator_loss=None, discriminator_loss=None): """Create the optimization components for this module.""" metric_vars = _get_and_check_variables(self._measure) generator_vars = _get_and_check_variables(self.generator) step_vars = _get_and_check_variables(self._log_step_size_module) assert discriminator_loss is None optimization_components = utils.OptimizationComponent( generator_loss, generator_vars + metric_vars + step_vars) return optimization_components def _get_and_check_variables(module): module_variables = module.get_all_variables() if not module_variables: raise ValueError( 'Module {} has no variables! Variables needed for training.'.format( module.module_name)) # TensorFlow optimizers require lists to be passed in. return list(module_variables) ================================================ FILE: cs_gan/file_utils.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """File utilities.""" import math import os import numpy as np from PIL import Image class FileExporter(object): """File exporter utilities.""" def __init__(self, path, grid_height=None, zoom=1): """Constructor. Arguments: path: The directory to save data to. grid_height: How many data elements tall to make the grid, if appropriate. The width will be chosen based on height. If None, automatically determined. zoom: How much to zoom in each data element by, if appropriate. """ if not os.path.exists(path): os.makedirs(path) self._path = path self._zoom = zoom self._grid_height = grid_height def _reshape(self, data): """Reshape given data into image format.""" batch_size, height, width, n_channels = data.shape if self._grid_height: grid_height = self._grid_height else: grid_height = int(math.floor(math.sqrt(batch_size))) grid_width = int(math.ceil(batch_size/grid_height)) if n_channels == 1: data = np.tile(data, (1, 1, 1, 3)) n_channels = 3 if n_channels != 3: raise ValueError('Image batch must have either 1 or 3 channels, but ' 'was {}'.format(n_channels)) shape = (height * grid_height, width * grid_width, n_channels) buf = np.full(shape, 255, dtype=np.uint8) multiplier = 1 if data.dtype in (np.int32, np.int64) else 255 for k in range(batch_size): i = k // grid_width j = k % grid_width arr = data[k] x, y = i * height, j * width buf[x:x + height, y:y + width, :] = np.clip( multiplier * arr, 0, 255).astype(np.uint8) if self._zoom > 1: buf = buf.repeat(self._zoom, axis=0).repeat(self._zoom, axis=1) return buf def save(self, data, name): data = self._reshape(data) relative_name = '{}_last.png'.format(name) target_file = os.path.join(self._path, relative_name) img = Image.fromarray(data) img.save(target_file, format='PNG') ================================================ FILE: cs_gan/gan.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """GAN modules.""" import collections import math import sonnet as snt import tensorflow.compat.v1 as tf from cs_gan import utils class GAN(object): """Standard generative adversarial network setup. The aim of the generator is to generate samples which fool a discriminator. Does not make any assumptions about the discriminator and generator loss functions. Trained module components: * discriminator * generator For the standard GAN algorithm, generator_inputs is a vector of noise (either Gaussian or uniform). """ def __init__(self, discriminator, generator, num_z_iters=None, z_step_size=None, z_project_method=None, optimisation_cost_weight=None): """Constructs the module. Args: discriminator: The discriminator network. A sonnet module. See `nets.py`. generator: The generator network. A sonnet module. For examples, see `nets.py`. num_z_iters: an integer, the number of latent optimisation steps. z_step_size: an integer, latent optimisation step size. z_project_method: the method for projecting latent after optimisation, a string from {'norm', 'clip'}. optimisation_cost_weight: a float, how much to penalise the distance of z moved by latent optimisation. """ self._discriminator = discriminator self.generator = generator self.num_z_iters = num_z_iters self.z_project_method = z_project_method if z_step_size: self._log_step_size_module = snt.TrainableVariable( [], initializers={'w': tf.constant_initializer(math.log(z_step_size))}) self.z_step_size = tf.exp(self._log_step_size_module()) self._optimisation_cost_weight = optimisation_cost_weight def connect(self, data, generator_inputs): """Connects the components and returns the losses, outputs and debug ops. Args: data: a `tf.Tensor`: `[batch_size, ...]`. There are no constraints on the rank of this tensor, but it has to be compatible with the shapes expected by the discriminator. generator_inputs: a `tf.Tensor`: `[g_in_batch_size, ...]`. It does not have to have the same batch size as the `data` tensor. There are not constraints on the rank of this tensor, but it has to be compatible with the shapes the generator network supports as inputs. Returns: An `ModelOutputs` instance. """ samples, optimised_z = utils.optimise_and_sample( generator_inputs, self, data, is_training=True) optimisation_cost = utils.get_optimisation_cost(generator_inputs, optimised_z) # Pass in the labels to the discriminator in case we are using a # discriminator which makes use of labels. The labels can be None. disc_data_logits = self._discriminator(data) disc_sample_logits = self._discriminator(samples) disc_data_loss = utils.cross_entropy_loss( disc_data_logits, tf.ones(tf.shape(disc_data_logits[:, 0]), dtype=tf.int32)) disc_sample_loss = utils.cross_entropy_loss( disc_sample_logits, tf.zeros(tf.shape(disc_sample_logits[:, 0]), dtype=tf.int32)) disc_loss = disc_data_loss + disc_sample_loss generator_loss = utils.cross_entropy_loss( disc_sample_logits, tf.ones(tf.shape(disc_sample_logits[:, 0]), dtype=tf.int32)) optimization_components = self._build_optimization_components( discriminator_loss=disc_loss, generator_loss=generator_loss, optimisation_cost=optimisation_cost) debug_ops = {} debug_ops['disc_data_loss'] = disc_data_loss debug_ops['disc_sample_loss'] = disc_sample_loss debug_ops['disc_loss'] = disc_loss debug_ops['gen_loss'] = generator_loss debug_ops['opt_cost'] = optimisation_cost if hasattr(self, 'z_step_size'): debug_ops['z_step_size'] = self.z_step_size return utils.ModelOutputs( optimization_components, debug_ops) def gen_loss_fn(self, data, samples): """Generator loss as latent optimisation's error function.""" del data disc_sample_logits = self._discriminator(samples) generator_loss = utils.cross_entropy_loss( disc_sample_logits, tf.ones(tf.shape(disc_sample_logits[:, 0]), dtype=tf.int32)) return generator_loss def _build_optimization_components( self, generator_loss=None, discriminator_loss=None, optimisation_cost=None): """Create the optimization components for this module.""" discriminator_vars = _get_and_check_variables(self._discriminator) generator_vars = _get_and_check_variables(self.generator) if hasattr(self, '_log_step_size_module'): step_vars = _get_and_check_variables(self._log_step_size_module) generator_vars += step_vars optimization_components = collections.OrderedDict() optimization_components['disc'] = utils.OptimizationComponent( discriminator_loss, discriminator_vars) if self._optimisation_cost_weight: generator_loss += self._optimisation_cost_weight * optimisation_cost optimization_components['gen'] = utils.OptimizationComponent( generator_loss, generator_vars) return optimization_components def get_variables(self): disc_vars = _get_and_check_variables(self._discriminator) gen_vars = _get_and_check_variables(self.generator) return disc_vars, gen_vars def _get_and_check_variables(module): module_variables = module.get_all_variables() if not module_variables: raise ValueError( 'Module {} has no variables! Variables needed for training.'.format( module.module_name)) # TensorFlow optimizers require lists to be passed in. return list(module_variables) ================================================ FILE: cs_gan/image_metrics.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Compute image metrics: IS, FID.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import tensorflow_gan as tfgan def get_image_metrics_for_samples( real_images, generator, prior, data_processor, num_eval_samples): """Compute inception score and FID.""" max_classifier_batch = 10 num_batches = num_eval_samples // max_classifier_batch def sample_fn(arg): del arg samples = generator(prior.sample(max_classifier_batch)) # Samples must be in [-1, 1], as expected by TFGAN. # Resizing to appropriate size is done by TFGAN. return samples fake_outputs = tfgan.eval.sample_and_run_inception( sample_fn, sample_inputs=[1.0] * num_batches) # Dummy inputs. fake_logits = fake_outputs['logits'] inception_score = tfgan.eval.classifier_score_from_logits(fake_logits) real_outputs = tfgan.eval.run_inception( data_processor.preprocess(real_images), num_batches=num_batches) fid = tfgan.eval.frechet_classifier_distance_from_activations( real_outputs['pool_3'], fake_outputs['pool_3']) return { 'inception_score': inception_score, 'fid': fid} ================================================ FILE: cs_gan/main.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training script.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import os from absl import app from absl import flags from absl import logging import tensorflow.compat.v1 as tf from cs_gan import file_utils from cs_gan import gan from cs_gan import image_metrics from cs_gan import utils flags.DEFINE_integer( 'num_training_iterations', 200000, 'Number of training iterations.') flags.DEFINE_integer( 'batch_size', 64, 'Training batch size.') flags.DEFINE_integer( 'num_latents', 128, 'The number of latents') flags.DEFINE_integer( 'summary_every_step', 1000, 'The interval at which to log debug ops.') flags.DEFINE_integer( 'image_metrics_every_step', 2000, 'The interval at which to log (expensive) image metrics.') flags.DEFINE_integer( 'export_every', 10, 'The interval at which to export samples.') flags.DEFINE_integer( 'num_eval_samples', 10000, 'The number of samples used to evaluate FID/IS') flags.DEFINE_string( 'dataset', 'cifar', 'The dataset used for learning (cifar|mnist.') flags.DEFINE_float( 'optimisation_cost_weight', 3., 'weight for latent optimisation cost.') flags.DEFINE_integer( 'num_z_iters', 3, 'The number of latent optimisation steps.' 'It falls back to vanilla GAN when num_z_iters is set to 0.') flags.DEFINE_float( 'z_step_size', 0.01, 'Step size for latent optimisation.') flags.DEFINE_string( 'z_project_method', 'norm', 'The method to project z.') flags.DEFINE_string( 'output_dir', '/tmp/cs_gan/gan', 'Location where to save output files.') flags.DEFINE_float('disc_lr', 2e-4, 'Discriminator Learning rate.') flags.DEFINE_float('gen_lr', 2e-4, 'Generator Learning rate.') flags.DEFINE_bool( 'run_real_data_metrics', False, 'Whether or not to run image metrics on real data.') flags.DEFINE_bool( 'run_sample_metrics', True, 'Whether or not to run image metrics on samples.') FLAGS = flags.FLAGS # Log info level (for Hooks). tf.logging.set_verbosity(tf.logging.INFO) def main(argv): del argv utils.make_output_dir(FLAGS.output_dir) data_processor = utils.DataProcessor() images = utils.get_train_dataset(data_processor, FLAGS.dataset, FLAGS.batch_size) logging.info('Generator learning rate: %d', FLAGS.gen_lr) logging.info('Discriminator learning rate: %d', FLAGS.disc_lr) # Construct optimizers. disc_optimizer = tf.train.AdamOptimizer(FLAGS.disc_lr, beta1=0.5, beta2=0.999) gen_optimizer = tf.train.AdamOptimizer(FLAGS.gen_lr, beta1=0.5, beta2=0.999) # Create the networks and models. generator = utils.get_generator(FLAGS.dataset) metric_net = utils.get_metric_net(FLAGS.dataset) model = gan.GAN(metric_net, generator, FLAGS.num_z_iters, FLAGS.z_step_size, FLAGS.z_project_method, FLAGS.optimisation_cost_weight) prior = utils.make_prior(FLAGS.num_latents) generator_inputs = prior.sample(FLAGS.batch_size) model_output = model.connect(images, generator_inputs) optimization_components = model_output.optimization_components debug_ops = model_output.debug_ops samples = generator(generator_inputs, is_training=False) global_step = tf.train.get_or_create_global_step() # We pass the global step both to the disc and generator update ops. # This means that the global step will not be the same as the number of # iterations, but ensures that hooks which rely on global step work correctly. disc_update_op = disc_optimizer.minimize( optimization_components['disc'].loss, var_list=optimization_components['disc'].vars, global_step=global_step) gen_update_op = gen_optimizer.minimize( optimization_components['gen'].loss, var_list=optimization_components['gen'].vars, global_step=global_step) # Get data needed to compute FID. We also compute metrics on # real data as a sanity check and as a reference point. eval_real_data = utils.get_real_data_for_eval(FLAGS.num_eval_samples, FLAGS.dataset, split='train') def sample_fn(x): return utils.optimise_and_sample(x, module=model, data=None, is_training=False)[0] if FLAGS.run_sample_metrics: sample_metrics = image_metrics.get_image_metrics_for_samples( eval_real_data, sample_fn, prior, data_processor, num_eval_samples=FLAGS.num_eval_samples) else: sample_metrics = {} if FLAGS.run_real_data_metrics: data_metrics = image_metrics.get_image_metrics( eval_real_data, eval_real_data) else: data_metrics = {} sample_exporter = file_utils.FileExporter( os.path.join(FLAGS.output_dir, 'samples')) # Hooks. debug_ops['it'] = global_step # Abort training on Nans. nan_disc_hook = tf.train.NanTensorHook(optimization_components['disc'].loss) nan_gen_hook = tf.train.NanTensorHook(optimization_components['gen'].loss) # Step counter. step_conter_hook = tf.train.StepCounterHook() checkpoint_saver_hook = tf.train.CheckpointSaverHook( checkpoint_dir=utils.get_ckpt_dir(FLAGS.output_dir), save_secs=10 * 60) loss_summary_saver_hook = tf.train.SummarySaverHook( save_steps=FLAGS.summary_every_step, output_dir=os.path.join(FLAGS.output_dir, 'summaries'), summary_op=utils.get_summaries(debug_ops)) metrics_summary_saver_hook = tf.train.SummarySaverHook( save_steps=FLAGS.image_metrics_every_step, output_dir=os.path.join(FLAGS.output_dir, 'summaries'), summary_op=utils.get_summaries(sample_metrics)) hooks = [checkpoint_saver_hook, metrics_summary_saver_hook, nan_disc_hook, nan_gen_hook, step_conter_hook, loss_summary_saver_hook] # Start training. with tf.train.MonitoredSession(hooks=hooks) as sess: logging.info('starting training') for key, value in sess.run(data_metrics).items(): logging.info('%s: %d', key, value) for i in range(FLAGS.num_training_iterations): sess.run(disc_update_op) sess.run(gen_update_op) if i % FLAGS.export_every == 0: samples_np, data_np = sess.run([samples, images]) # Create an object which gets data and does the processing. data_np = data_processor.postprocess(data_np) samples_np = data_processor.postprocess(samples_np) sample_exporter.save(samples_np, 'samples') sample_exporter.save(data_np, 'data') if __name__ == '__main__': app.run(main) ================================================ FILE: cs_gan/main_cs.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training script.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import os from absl import app from absl import flags from absl import logging import tensorflow.compat.v1 as tf import tensorflow_probability as tfp from cs_gan import cs from cs_gan import file_utils from cs_gan import utils tfd = tfp.distributions flags.DEFINE_string( 'mode', 'recons', 'Model mode.') flags.DEFINE_integer( 'num_training_iterations', 10000000, 'Number of training iterations.') flags.DEFINE_integer( 'batch_size', 64, 'Training batch size.') flags.DEFINE_integer( 'num_measurements', 25, 'The number of measurements') flags.DEFINE_integer( 'num_latents', 100, 'The number of latents') flags.DEFINE_integer( 'num_z_iters', 3, 'The number of latent optimisation steps.') flags.DEFINE_float( 'z_step_size', 0.01, 'Step size for latent optimisation.') flags.DEFINE_string( 'z_project_method', 'norm', 'The method to project z.') flags.DEFINE_integer( 'summary_every_step', 1000, 'The interval at which to log debug ops.') flags.DEFINE_integer( 'export_every', 10, 'The interval at which to export samples.') flags.DEFINE_string( 'dataset', 'mnist', 'The dataset used for learning (cifar|mnist.') flags.DEFINE_float('learning_rate', 1e-4, 'Learning rate.') flags.DEFINE_string( 'output_dir', '/tmp/cs_gan/cs', 'Location where to save output files.') FLAGS = flags.FLAGS # Log info level (for Hooks). tf.logging.set_verbosity(tf.logging.INFO) def main(argv): del argv utils.make_output_dir(FLAGS.output_dir) data_processor = utils.DataProcessor() images = utils.get_train_dataset(data_processor, FLAGS.dataset, FLAGS.batch_size) logging.info('Learning rate: %d', FLAGS.learning_rate) # Construct optimizers. optimizer = tf.train.AdamOptimizer(FLAGS.learning_rate) # Create the networks and models. generator = utils.get_generator(FLAGS.dataset) metric_net = utils.get_metric_net(FLAGS.dataset, FLAGS.num_measurements) model = cs.CS(metric_net, generator, FLAGS.num_z_iters, FLAGS.z_step_size, FLAGS.z_project_method) prior = utils.make_prior(FLAGS.num_latents) generator_inputs = prior.sample(FLAGS.batch_size) model_output = model.connect(images, generator_inputs) optimization_components = model_output.optimization_components debug_ops = model_output.debug_ops reconstructions, _ = utils.optimise_and_sample( generator_inputs, model, images, is_training=False) global_step = tf.train.get_or_create_global_step() update_op = optimizer.minimize( optimization_components.loss, var_list=optimization_components.vars, global_step=global_step) sample_exporter = file_utils.FileExporter( os.path.join(FLAGS.output_dir, 'reconstructions')) # Hooks. debug_ops['it'] = global_step # Abort training on Nans. nan_hook = tf.train.NanTensorHook(optimization_components.loss) # Step counter. step_conter_hook = tf.train.StepCounterHook() checkpoint_saver_hook = tf.train.CheckpointSaverHook( checkpoint_dir=utils.get_ckpt_dir(FLAGS.output_dir), save_secs=10 * 60) loss_summary_saver_hook = tf.train.SummarySaverHook( save_steps=FLAGS.summary_every_step, output_dir=os.path.join(FLAGS.output_dir, 'summaries'), summary_op=utils.get_summaries(debug_ops)) hooks = [checkpoint_saver_hook, nan_hook, step_conter_hook, loss_summary_saver_hook] # Start training. with tf.train.MonitoredSession(hooks=hooks) as sess: logging.info('starting training') for i in range(FLAGS.num_training_iterations): sess.run(update_op) if i % FLAGS.export_every == 0: reconstructions_np, data_np = sess.run([reconstructions, images]) # Create an object which gets data and does the processing. data_np = data_processor.postprocess(data_np) reconstructions_np = data_processor.postprocess(reconstructions_np) sample_exporter.save(reconstructions_np, 'reconstructions') sample_exporter.save(data_np, 'data') if __name__ == '__main__': app.run(main) ================================================ FILE: cs_gan/main_ode.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training script.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import os from absl import app from absl import flags from absl import logging import tensorflow.compat.v1 as tf from cs_gan import file_utils from cs_gan import gan from cs_gan import image_metrics from cs_gan import utils flags.DEFINE_integer( 'num_training_iterations', 1200000, 'Number of training iterations.') flags.DEFINE_string( 'ode_mode', 'rk4', 'Integration method.') flags.DEFINE_integer( 'batch_size', 64, 'Training batch size.') flags.DEFINE_float( 'grad_reg_weight', 0.02, 'Step size for latent optimisation.') flags.DEFINE_string( 'opt_name', 'gd', 'Name of the optimiser (gd|adam).') flags.DEFINE_bool( 'schedule_lr', True, 'The method to project z.') flags.DEFINE_bool( 'reg_first_grad_only', True, 'Whether only to regularise the first grad.') flags.DEFINE_integer( 'num_latents', 128, 'The number of latents') flags.DEFINE_integer( 'summary_every_step', 1000, 'The interval at which to log debug ops.') flags.DEFINE_integer( 'image_metrics_every_step', 1000, 'The interval at which to log (expensive) image metrics.') flags.DEFINE_integer( 'export_every', 10, 'The interval at which to export samples.') # Use 50k to reproduce scores from the paper. Default to 10k here to avoid the # runtime error caused by too large graph with 50k samples on some machines. flags.DEFINE_integer( 'num_eval_samples', 10000, 'The number of samples used to evaluate FID/IS.') flags.DEFINE_string( 'dataset', 'cifar', 'The dataset used for learning (cifar|mnist).') flags.DEFINE_string( 'output_dir', '/tmp/ode_gan/gan', 'Location where to save output files.') flags.DEFINE_float('disc_lr', 4e-2, 'Discriminator Learning rate.') flags.DEFINE_float('gen_lr', 4e-2, 'Generator Learning rate.') flags.DEFINE_bool( 'run_real_data_metrics', False, 'Whether or not to run image metrics on real data.') flags.DEFINE_bool( 'run_sample_metrics', True, 'Whether or not to run image metrics on samples.') FLAGS = flags.FLAGS # Log info level (for Hooks). tf.logging.set_verbosity(tf.logging.INFO) def _copy_vars(v_list): """Copy variables in v_list.""" t_list = [] for v in v_list: t_list.append(tf.identity(v)) return t_list def _restore_vars(v_list, t_list): """Restore variables in v_list from t_list.""" ops = [] for v, t in zip(v_list, t_list): ops.append(v.assign(t)) return ops def _scale_vars(s, v_list): """Scale all variables in v_list by s.""" return [s * v for v in v_list] def _acc_grads(g_sum, g_w, g): """Accumulate gradients in g, weighted by g_w.""" return [g_sum_i + g_w * g_i for g_sum_i, g_i in zip(g_sum, g)] def _compute_reg_grads(gen_grads, disc_vars): """Compute gradients norm (this is an upper-bpund of the full-batch norm).""" gen_norm = tf.accumulate_n([tf.reduce_sum(u * u) for u in gen_grads]) disc_reg_grads = tf.gradients(gen_norm, disc_vars) return disc_reg_grads def run_model(prior, images, model, disc_reg_weight): """Run the model with new data and samples. Args: prior: the noise source as the generator input. images: images sampled from dataset. model: a GAN model defined in gan.py. disc_reg_weight: regularisation weight for discrmininator gradients. Returns: debug_ops: statistics from the model, see gan.py for more detials. disc_grads: discriminator gradients. gen_grads: generator gradients. """ generator_inputs = prior.sample(FLAGS.batch_size) model_output = model.connect(images, generator_inputs) optimization_components = model_output.optimization_components disc_grads = tf.gradients( optimization_components['disc'].loss, optimization_components['disc'].vars) gen_grads = tf.gradients( optimization_components['gen'].loss, optimization_components['gen'].vars) if disc_reg_weight > 0.0: reg_grads = _compute_reg_grads(gen_grads, optimization_components['disc'].vars) disc_grads = _acc_grads(disc_grads, disc_reg_weight, reg_grads) debug_ops = model_output.debug_ops return debug_ops, disc_grads, gen_grads def update_model(model, disc_grads, gen_grads, disc_opt, gen_opt, global_step, update_scale): """Update model with gradients.""" disc_vars, gen_vars = model.get_variables() with tf.control_dependencies(gen_grads + disc_grads): disc_update_op = disc_opt.apply_gradients( zip(_scale_vars(update_scale, disc_grads), disc_vars)) gen_update_op = gen_opt.apply_gradients( zip(_scale_vars(update_scale, gen_grads), gen_vars), global_step=global_step) update_op = tf.group([disc_update_op, gen_update_op]) return update_op def main(argv): del argv utils.make_output_dir(FLAGS.output_dir) data_processor = utils.DataProcessor() # Compute the batch-size multiplier if FLAGS.ode_mode == 'rk2': batch_mul = 2 elif FLAGS.ode_mode == 'rk4': batch_mul = 4 else: batch_mul = 1 images = utils.get_train_dataset(data_processor, FLAGS.dataset, int(FLAGS.batch_size * batch_mul)) image_splits = tf.split(images, batch_mul) logging.info('Generator learning rate: %d', FLAGS.gen_lr) logging.info('Discriminator learning rate: %d', FLAGS.disc_lr) global_step = tf.train.get_or_create_global_step() # Construct optimizers. if FLAGS.opt_name == 'adam': disc_opt = tf.train.AdamOptimizer(FLAGS.disc_lr, beta1=0.5, beta2=0.999) gen_opt = tf.train.AdamOptimizer(FLAGS.gen_lr, beta1=0.5, beta2=0.999) elif FLAGS.opt_name == 'gd': if FLAGS.schedule_lr: gd_disc_lr = tf.train.piecewise_constant( global_step, values=[FLAGS.disc_lr / 4., FLAGS.disc_lr, FLAGS.disc_lr / 2.], boundaries=[500, 400000]) gd_gen_lr = tf.train.piecewise_constant( global_step, values=[FLAGS.gen_lr / 4., FLAGS.gen_lr, FLAGS.gen_lr / 2.], boundaries=[500, 400000]) else: gd_disc_lr = FLAGS.disc_lr gd_gen_lr = FLAGS.gen_lr disc_opt = tf.train.GradientDescentOptimizer(gd_disc_lr) gen_opt = tf.train.GradientDescentOptimizer(gd_gen_lr) else: raise ValueError('Unknown ODE mode!') # Create the networks and models. generator = utils.get_generator(FLAGS.dataset) metric_net = utils.get_metric_net(FLAGS.dataset, use_sn=False) model = gan.GAN(metric_net, generator) prior = utils.make_prior(FLAGS.num_latents) # Setup ODE parameters. if FLAGS.ode_mode == 'rk2': ode_grad_weights = [0.5, 0.5] step_scale = [1.0] elif FLAGS.ode_mode == 'rk4': ode_grad_weights = [1. / 6., 1. / 3., 1. / 3., 1. / 6.] step_scale = [0.5, 0.5, 1.] elif FLAGS.ode_mode == 'euler': # Euler update ode_grad_weights = [1.0] step_scale = [] else: raise ValueError('Unknown ODE mode!') # Extra steps for RK updates. num_extra_steps = len(step_scale) if FLAGS.reg_first_grad_only: first_reg_weight = FLAGS.grad_reg_weight / ode_grad_weights[0] other_reg_weight = 0.0 else: first_reg_weight = FLAGS.grad_reg_weight other_reg_weight = FLAGS.grad_reg_weight debug_ops, disc_grads, gen_grads = run_model(prior, image_splits[0], model, first_reg_weight) disc_vars, gen_vars = model.get_variables() final_disc_grads = _scale_vars(ode_grad_weights[0], disc_grads) final_gen_grads = _scale_vars(ode_grad_weights[0], gen_grads) restore_ops = [] # Preparing for further RK steps. if num_extra_steps > 0: # copy the variables before they are changed by update_op saved_disc_vars = _copy_vars(disc_vars) saved_gen_vars = _copy_vars(gen_vars) # Enter RK loop. with tf.control_dependencies(saved_disc_vars + saved_gen_vars): step_deps = [] for i_step in range(num_extra_steps): with tf.control_dependencies(step_deps): # Compute gradient steps for intermediate updates. update_op = update_model( model, disc_grads, gen_grads, disc_opt, gen_opt, None, step_scale[i_step]) with tf.control_dependencies([update_op]): _, disc_grads, gen_grads = run_model( prior, image_splits[i_step + 1], model, other_reg_weight) # Accumlate gradients for final update. final_disc_grads = _acc_grads(final_disc_grads, ode_grad_weights[i_step + 1], disc_grads) final_gen_grads = _acc_grads(final_gen_grads, ode_grad_weights[i_step + 1], gen_grads) # Make new restore_op for each step. restore_ops = [] restore_ops += _restore_vars(disc_vars, saved_disc_vars) restore_ops += _restore_vars(gen_vars, saved_gen_vars) step_deps = restore_ops with tf.control_dependencies(restore_ops): update_op = update_model( model, final_disc_grads, final_gen_grads, disc_opt, gen_opt, global_step, 1.0) samples = generator(prior.sample(FLAGS.batch_size), is_training=False) # Get data needed to compute FID. We also compute metrics on # real data as a sanity check and as a reference point. eval_real_data = utils.get_real_data_for_eval(FLAGS.num_eval_samples, FLAGS.dataset, split='train') def sample_fn(x): return utils.optimise_and_sample(x, module=model, data=None, is_training=False)[0] if FLAGS.run_sample_metrics: sample_metrics = image_metrics.get_image_metrics_for_samples( eval_real_data, sample_fn, prior, data_processor, num_eval_samples=FLAGS.num_eval_samples) else: sample_metrics = {} if FLAGS.run_real_data_metrics: data_metrics = image_metrics.get_image_metrics( eval_real_data, eval_real_data) else: data_metrics = {} sample_exporter = file_utils.FileExporter( os.path.join(FLAGS.output_dir, 'samples')) # Hooks. debug_ops['it'] = global_step # Abort training on Nans. nan_disc_hook = tf.train.NanTensorHook(debug_ops['disc_loss']) nan_gen_hook = tf.train.NanTensorHook(debug_ops['gen_loss']) # Step counter. step_conter_hook = tf.train.StepCounterHook() checkpoint_saver_hook = tf.train.CheckpointSaverHook( checkpoint_dir=utils.get_ckpt_dir(FLAGS.output_dir), save_secs=10 * 60) loss_summary_saver_hook = tf.train.SummarySaverHook( save_steps=FLAGS.summary_every_step, output_dir=os.path.join(FLAGS.output_dir, 'summaries'), summary_op=utils.get_summaries(debug_ops)) metrics_summary_saver_hook = tf.train.SummarySaverHook( save_steps=FLAGS.image_metrics_every_step, output_dir=os.path.join(FLAGS.output_dir, 'summaries'), summary_op=utils.get_summaries(sample_metrics)) hooks = [checkpoint_saver_hook, metrics_summary_saver_hook, nan_disc_hook, nan_gen_hook, step_conter_hook, loss_summary_saver_hook] # Start training. with tf.train.MonitoredSession(hooks=hooks) as sess: logging.info('starting training') for key, value in sess.run(data_metrics).items(): logging.info('%s: %d', key, value) for i in range(FLAGS.num_training_iterations): sess.run(update_op) if i % FLAGS.export_every == 0: samples_np, data_np = sess.run([samples, image_splits[0]]) # Create an object which gets data and does the processing. data_np = data_processor.postprocess(data_np) samples_np = data_processor.postprocess(samples_np) sample_exporter.save(samples_np, 'samples') sample_exporter.save(data_np, 'data') if __name__ == '__main__': tf.enable_resource_variables() app.run(main) ================================================ FILE: cs_gan/nets.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Network utilities.""" import functools import re import numpy as np import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_gan as tfgan def _sn_custom_getter(): def name_filter(name): match = re.match(r'.*w(_.*)?$', name) return match is not None return tfgan.features.spectral_normalization_custom_getter( name_filter=name_filter) class ConvGenNet(snt.AbstractModule): """As in the SN paper.""" def __init__(self, name='conv_gen'): super(ConvGenNet, self).__init__(name=name) def _build(self, inputs, is_training): batch_size = inputs.get_shape().as_list()[0] first_shape = [4, 4, 512] norm_ctor = snt.BatchNormV2 norm_ctor_config = {'scale': True} up_tensor = snt.Linear(np.prod(first_shape))(inputs) first_tensor = tf.reshape(up_tensor, shape=[batch_size] + first_shape) net = snt.nets.ConvNet2DTranspose( output_channels=[256, 128, 64, 3], output_shapes=[(8, 8), (16, 16), (32, 32), (32, 32)], kernel_shapes=[(4, 4), (4, 4), (4, 4), (3, 3)], strides=[2, 2, 2, 1], normalization_ctor=norm_ctor, normalization_kwargs=norm_ctor_config, normalize_final=False, paddings=[snt.SAME], activate_final=False, activation=tf.nn.relu) output = net(first_tensor, is_training=is_training) return tf.nn.tanh(output) class ConvMetricNet(snt.AbstractModule): """Convolutional discriminator (metric) architecture.""" def __init__(self, num_outputs=2, use_sn=True, name='sn_metric'): super(ConvMetricNet, self).__init__(name=name) self._num_outputs = num_outputs self._use_sn = use_sn def _build(self, inputs): def build_net(): net = snt.nets.ConvNet2D( output_channels=[64, 64, 128, 128, 256, 256, 512], kernel_shapes=[ (3, 3), (4, 4), (3, 3), (4, 4), (3, 3), (4, 4), (3, 3)], strides=[1, 2, 1, 2, 1, 2, 1], paddings=[snt.SAME], activate_final=True, activation=functools.partial(tf.nn.leaky_relu, alpha=0.1)) linear = snt.Linear(self._num_outputs) output = linear(snt.BatchFlatten()(net(inputs))) return output if self._use_sn: with tf.variable_scope('', custom_getter=_sn_custom_getter()): output = build_net() else: output = build_net() return output class MLPGeneratorNet(snt.AbstractModule): """MNIST generator net.""" def __init__(self, name='mlp_generator'): super(MLPGeneratorNet, self).__init__(name=name) def _build(self, inputs, is_training=True): del is_training net = snt.nets.MLP([500, 500, 784], activation=tf.nn.leaky_relu) out = net(inputs) out = tf.nn.tanh(out) return snt.BatchReshape([28, 28, 1])(out) class MLPMetricNet(snt.AbstractModule): """Same as in Grover and Ermon, ICLR workshop 2017.""" def __init__(self, num_outputs=2, name='mlp_metric'): super(MLPMetricNet, self).__init__(name=name) self._layer_size = [500, 500, num_outputs] def _build(self, inputs): net = snt.nets.MLP(self._layer_size, activation=tf.nn.leaky_relu) output = net(snt.BatchFlatten()(inputs)) return output ================================================ FILE: cs_gan/requirements.txt ================================================ absl-py==0.7.1 dm-sonnet==1.34 numpy==1.16.4 Pillow tensorflow==1.15rc2 tensorflow-probability==0.7.0 tensorflow-gan==2.0.0 ================================================ FILE: cs_gan/run.sh ================================================ #!/bin/sh # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Install python3.5 which python3.5 if [ $? -eq 1 ]; then echo 'Installing python3.5' (cd /usr/src/ sudo wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz tar -xvzf Python-3.5.6.tgz sudo tar -xvzf Python-3.5.6.tgz cd Python-3.5.6 ./configure --enable-loadable-sqlite-extensions --enable-optimizations sudo make altinstall) fi # Fail on any error. set -e python3.5 -m venv cs_gan_venv echo 'Created venv' source cs_gan_venv/bin/activate echo 'Installing pip' curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3.5 get-pip.py pip==20.2.3 echo 'Getting requirements.' pip install -r cs_gan/requirements.txt echo 'Starting training...' python3.5 -m cs_gan.main_cs # Gan code. python3.5 -m cs_gan.main ================================================ FILE: cs_gan/run_ode.sh ================================================ #!/bin/sh # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Install python3.5 which python3.5 if [ $? -eq 1 ]; then echo 'Installing python3.5' (cd /usr/src/ sudo wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz tar -xvzf Python-3.5.6.tgz sudo tar -xvzf Python-3.5.6.tgz cd Python-3.5.6 ./configure --enable-loadable-sqlite-extensions --enable-optimizations sudo make altinstall) fi # Fail on any error. set -e python3.5 -m venv cs_gan_venv echo 'Created venv' source cs_gan_venv/bin/activate echo 'Installing pip' curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3.5 get-pip.py pip==20.2.3 echo 'Getting requirements.' pip install -r cs_gan/requirements.txt echo 'Starting training...' python3.5 -m cs_gan.main_ode ================================================ FILE: cs_gan/tests/gan_test.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import sonnet as snt import tensorflow.compat.v1 as tf from cs_gan import gan class DummyGenerator(snt.AbstractModule): def __init__(self): super(DummyGenerator, self).__init__(name='dummy_generator') def _build(self, inputs, is_training): return snt.Linear(10)(inputs) class GanTest(tf.test.TestCase): def testConnect(self): discriminator = snt.Linear(2) generator = DummyGenerator() model = gan.GAN( discriminator, generator, num_z_iters=0, z_step_size=0.1, z_project_method='none', optimisation_cost_weight=0.0) generator_inputs = tf.ones((16, 3), dtype=tf.float32) data = tf.ones((16, 10)) opt_compoments, _ = model.connect(data, generator_inputs) self.assertIn('disc', opt_compoments) self.assertIn('gen', opt_compoments) self.assertCountEqual( opt_compoments['disc'].vars, discriminator.get_variables()) self.assertCountEqual( opt_compoments['gen'].vars, generator.get_variables() + model._log_step_size_module.get_variables()) if __name__ == '__main__': tf.test.main() ================================================ FILE: cs_gan/utils.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tools for latent optimisation.""" import collections import os from absl import logging import numpy as np import tensorflow.compat.v1 as tf import tensorflow_probability as tfp from cs_gan import nets tfd = tfp.distributions class ModelOutputs( collections.namedtuple('AdversarialModelOutputs', ['optimization_components', 'debug_ops'])): """All the information produced by the adversarial module. Fields: * `optimization_components`: A dictionary. Each entry in this dictionary corresponds to a module to train using their own optimizer. The keys are names of the components, and the values are `common.OptimizationComponent` instances. The keys of this dict can be made keys of the configuration used by the main train loop, to define the configuration of the optimization details for each module. * `debug_ops`: A dictionary, from string to a scalar `tf.Tensor`. Quantities used for tracking training. """ class OptimizationComponent( collections.namedtuple('OptimizationComponent', ['loss', 'vars'])): """Information needed by the optimizer to train modules. Usage: `optimizer.minimize( opt_compoment.loss, var_list=opt_component.vars)` Fields: * `loss`: A `tf.Tensor` the loss of the module. * `vars`: A list of variables, the ones which will be used to minimize the loss. """ def cross_entropy_loss(logits, expected): """The cross entropy classification loss between logits and expected values. The loss proposed by the original GAN paper: https://arxiv.org/abs/1406.2661. Args: logits: a `tf.Tensor`, the model produced logits. expected: a `tf.Tensor`, the expected output. Returns: A scalar `tf.Tensor`, the average loss obtained on the given inputs. Raises: ValueError: if the logits do not have shape [batch_size, 2]. """ num_logits = logits.get_shape()[1] if num_logits != 2: raise ValueError(('Invalid number of logits for cross_entropy_loss! ' 'cross_entropy_loss supports only 2 output logits!')) return tf.reduce_mean( tf.nn.sparse_softmax_cross_entropy_with_logits( logits=logits, labels=expected)) def optimise_and_sample(init_z, module, data, is_training): """Optimising generator latent variables and sample.""" if module.num_z_iters is None or module.num_z_iters == 0: z_final = init_z else: init_loop_vars = (0, _project_z(init_z, module.z_project_method)) loop_cond = lambda i, _: i < module.num_z_iters def loop_body(i, z): loop_samples = module.generator(z, is_training) gen_loss = module.gen_loss_fn(data, loop_samples) z_grad = tf.gradients(gen_loss, z)[0] z -= module.z_step_size * z_grad z = _project_z(z, module.z_project_method) return i + 1, z # Use the following static loop for debugging # z = init_z # for _ in xrange(num_z_iters): # _, z = loop_body(0, z) # z_final = z _, z_final = tf.while_loop(loop_cond, loop_body, init_loop_vars) return module.generator(z_final, is_training), z_final def get_optimisation_cost(initial_z, optimised_z): optimisation_cost = tf.reduce_mean( tf.reduce_sum((optimised_z - initial_z)**2, -1)) return optimisation_cost def _project_z(z, project_method='clip'): """To be used for projected gradient descent over z.""" if project_method == 'norm': z_p = tf.nn.l2_normalize(z, axis=-1) elif project_method == 'clip': z_p = tf.clip_by_value(z, -1, 1) else: raise ValueError('Unknown project_method: {}'.format(project_method)) return z_p class DataProcessor(object): def preprocess(self, x): return x * 2 - 1 def postprocess(self, x): return (x + 1) / 2. def _get_np_data(data_processor, dataset, split='train'): """Get the dataset as numpy arrays.""" index = 0 if split == 'train' else 1 if dataset == 'mnist': # Construct the dataset. x, _ = tf.keras.datasets.mnist.load_data()[index] # Note: tf dataset is binary so we convert it to float. x = x.astype(np.float32) x = x / 255. x = x.reshape((-1, 28, 28, 1)) if dataset == 'cifar': x, _ = tf.keras.datasets.cifar10.load_data()[index] x = x.astype(np.float32) x = x / 255. if data_processor: # Normalize data if a processor is given. x = data_processor.preprocess(x) return x def make_output_dir(output_dir): logging.info('Creating output dir %s', output_dir) if not tf.gfile.IsDirectory(output_dir): tf.gfile.MakeDirs(output_dir) def get_ckpt_dir(output_dir): ckpt_dir = os.path.join(output_dir, 'ckpt') if not tf.gfile.IsDirectory(ckpt_dir): tf.gfile.MakeDirs(ckpt_dir) return ckpt_dir def get_real_data_for_eval(num_eval_samples, dataset, split='valid'): data = _get_np_data(data_processor=None, dataset=dataset, split=split) data = data[:num_eval_samples] return tf.constant(data) def get_summaries(ops): summaries = [] for name, op in ops.items(): # Ensure to log the value ops before writing them in the summary. # We do this instead of a hook to ensure IS/FID are never computed twice. print_op = tf.print(name, [op], output_stream=tf.logging.info) with tf.control_dependencies([print_op]): summary = tf.summary.scalar(name, op) summaries.append(summary) return summaries def get_train_dataset(data_processor, dataset, batch_size): """Creates the training data tensors.""" x_train = _get_np_data(data_processor, dataset, split='train') # Create the TF dataset. dataset = tf.data.Dataset.from_tensor_slices(x_train) # Shuffle and repeat the dataset for training. # This is required because we want to do multiple passes through the entire # dataset when training. dataset = dataset.shuffle(100000).repeat() # Batch the data and return the data batch. one_shot_iterator = dataset.batch(batch_size).make_one_shot_iterator() data_batch = one_shot_iterator.get_next() return data_batch def get_generator(dataset): if dataset == 'mnist': return nets.MLPGeneratorNet() if dataset == 'cifar': return nets.ConvGenNet() def get_metric_net(dataset, num_outputs=2, use_sn=True): if dataset == 'mnist': return nets.MLPMetricNet(num_outputs) if dataset == 'cifar': return nets.ConvMetricNet(num_outputs, use_sn) def make_prior(num_latents): # Zero mean, unit variance prior. prior_mean = tf.zeros(shape=(num_latents), dtype=tf.float32) prior_scale = tf.ones(shape=(num_latents), dtype=tf.float32) return tfd.Normal(loc=prior_mean, scale=prior_scale) ================================================ FILE: curl/README.md ================================================ # Continual Unsupervised Representation Learning (CURL) This repository contains code to accompany the NeurIPS 2019 submission on Continual Unsupervised Representation Learning (CURL). The experiments in the paper can be reproduced by running one of the three different training scripts: `train_sup.py`: to run the supervised continual learning benchmark `train_unsup.py`: to run the unsupervised i.i.d learning benchmark `train_main.py`: to run all other experiments in the paper (with details in the file on what to change) In each of these cases, the cluster accuracy / purity and k-NN error are logged to the terminal, and other quantities can be accessed from training.py (e.g. the confusion matrix can be found in `results['test_confusion']`). We recommend running these scripts in a Python [virtual environment](https://docs.python.org/3/tutorial/venv.html): (Assuming python3-dev is installed in your system) ```console python3 -m venv .curl_venv source .curl_venv/bin/activate pip install wheel pip install -r requirements.txt PYTHONPATH=`pwd`/..:$PYTHONPATH python3 train_main.py --dataset='mnist' Run `deactivate` to exit the virtual environment. ``` ================================================ FILE: curl/layers.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Custom layers for CURL.""" from absl import logging import sonnet as snt import tensorflow.compat.v1 as tf tfc = tf.compat.v1 class ResidualStack(snt.AbstractModule): """A stack of ResNet V2 blocks.""" def __init__(self, num_hiddens, num_residual_layers, num_residual_hiddens, filter_size=3, initializers=None, data_format='NHWC', activation=tf.nn.relu, name='residual_stack'): """Instantiate a ResidualStack.""" super(ResidualStack, self).__init__(name=name) self._num_hiddens = num_hiddens self._num_residual_layers = num_residual_layers self._num_residual_hiddens = num_residual_hiddens self._filter_size = filter_size self._initializers = initializers self._data_format = data_format self._activation = activation def _build(self, h): for i in range(self._num_residual_layers): h_i = self._activation(h) h_i = snt.Conv2D( output_channels=self._num_residual_hiddens, kernel_shape=(self._filter_size, self._filter_size), stride=(1, 1), initializers=self._initializers, data_format=self._data_format, name='res_nxn_%d' % i)( h_i) h_i = self._activation(h_i) h_i = snt.Conv2D( output_channels=self._num_hiddens, kernel_shape=(1, 1), stride=(1, 1), initializers=self._initializers, data_format=self._data_format, name='res_1x1_%d' % i)( h_i) h += h_i return self._activation(h) class SharedConvModule(snt.AbstractModule): """Convolutional decoder.""" def __init__(self, filters, kernel_size, activation, strides, name='shared_conv_encoder'): super(SharedConvModule, self).__init__(name=name) self._filters = filters self._kernel_size = kernel_size self._activation = activation self.strides = strides assert len(strides) == len(filters) - 1 self.conv_shapes = None def _build(self, x, is_training=True): with tf.control_dependencies([tfc.assert_rank(x, 4)]): self.conv_shapes = [x.shape.as_list()] # Needed by deconv module conv = x for i, (filter_i, stride_i) in enumerate(zip(self._filters, self.strides), 1): conv = tf.layers.Conv2D( filters=filter_i, kernel_size=self._kernel_size, padding='same', activation=self._activation, strides=stride_i, name='enc_conv_%d' % i)( conv) self.conv_shapes.append(conv.shape.as_list()) conv_flat = snt.BatchFlatten()(conv) enc_mlp = snt.nets.MLP( name='enc_mlp', output_sizes=[self._filters[-1]], activation=self._activation, activate_final=True) h = enc_mlp(conv_flat) logging.info('Shared conv module layer shapes:') logging.info('\n'.join([str(el) for el in self.conv_shapes])) logging.info(h.shape.as_list()) return h ================================================ FILE: curl/model.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Implementation of Continual Unsupervised Representation Learning model.""" from absl import logging import numpy as np import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_probability as tfp from curl import layers from curl import utils tfc = tf.compat.v1 # pylint: disable=g-long-lambda # pylint: disable=redefined-outer-name class SharedEncoder(snt.AbstractModule): """The shared encoder module, mapping input x to hiddens.""" def __init__(self, encoder_type, n_enc, enc_strides, name='shared_encoder'): """The shared encoder function, mapping input x to hiddens. Args: encoder_type: str, type of encoder, either 'conv' or 'multi' n_enc: list, number of hidden units per layer in the encoder enc_strides: list, stride in each layer (only for 'conv' encoder_type) name: str, module name used for tf scope. """ super(SharedEncoder, self).__init__(name=name) self._encoder_type = encoder_type if encoder_type == 'conv': self.shared_encoder = layers.SharedConvModule( filters=n_enc, strides=enc_strides, kernel_size=3, activation=tf.nn.relu) elif encoder_type == 'multi': self.shared_encoder = snt.nets.MLP( name='mlp_shared_encoder', output_sizes=n_enc, activation=tf.nn.relu, activate_final=True) else: raise ValueError('Unknown encoder_type {}'.format(encoder_type)) def _build(self, x, is_training): if self._encoder_type == 'multi': self.conv_shapes = None x = snt.BatchFlatten()(x) return self.shared_encoder(x) else: output = self.shared_encoder(x) self.conv_shapes = self.shared_encoder.conv_shapes return output def cluster_encoder_fn(hiddens, n_y_active, n_y, is_training=True): """The cluster encoder function, modelling q(y | x). Args: hiddens: The shared encoder activations, 2D `Tensor` of size `[B, ...]`. n_y_active: Tensor, the number of active components. n_y: int, number of maximum components allowed (used for tensor size) is_training: Boolean, whether to build the training graph or an evaluation graph. Returns: The distribution `q(y | x)`. """ del is_training # unused for now with tf.control_dependencies([tfc.assert_rank(hiddens, 2)]): lin = snt.Linear(n_y, name='mlp_cluster_encoder_final') logits = lin(hiddens) # Only use the first n_y_active components, and set the remaining to zero. if n_y > 1: probs = tf.nn.softmax(logits[:, :n_y_active]) logging.info('Cluster softmax active probs shape: %s', str(probs.shape)) paddings1 = tf.stack([tf.constant(0), tf.constant(0)], axis=0) paddings2 = tf.stack([tf.constant(0), n_y - n_y_active], axis=0) paddings = tf.stack([paddings1, paddings2], axis=1) probs = tf.pad(probs, paddings) + 0.0 * logits + 1e-12 else: probs = tf.ones_like(logits) logging.info('Cluster softmax probs shape: %s', str(probs.shape)) return tfp.distributions.OneHotCategorical(probs=probs) def latent_encoder_fn(hiddens, y, n_y, n_z, is_training=True): """The latent encoder function, modelling q(z | x, y). Args: hiddens: The shared encoder activations, 2D `Tensor` of size `[B, ...]`. y: Categorical cluster variable, `Tensor` of size `[B, n_y]`. n_y: int, number of dims of y. n_z: int, number of dims of z. is_training: Boolean, whether to build the training graph or an evaluation graph. Returns: The Gaussian distribution `q(z | x, y)`. """ del is_training # unused for now with tf.control_dependencies([tfc.assert_rank(hiddens, 2)]): # Logits for both mean and variance n_logits = 2 * n_z all_logits = [] for k in range(n_y): lin = snt.Linear(n_logits, name='mlp_latent_encoder_' + str(k)) all_logits.append(lin(hiddens)) # Sum over cluster components. all_logits = tf.stack(all_logits) # [n_y, B, n_logits] logits = tf.einsum('ij,jik->ik', y, all_logits) # Compute distribution from logits. return utils.generate_gaussian( logits=logits, sigma_nonlin='softplus', sigma_param='var') def data_decoder_fn(z, y, output_type, output_shape, decoder_type, n_dec, dec_up_strides, n_x, n_y, shared_encoder_conv_shapes=None, is_training=True, test_local_stats=True): """The data decoder function, modelling p(x | z). Args: z: Latent variables, `Tensor` of size `[B, n_z]`. y: Categorical cluster variable, `Tensor` of size `[B, n_y]`. output_type: str, output distribution ('bernoulli' or 'quantized_normal'). output_shape: list, shape of output (not including batch dimension). decoder_type: str, 'single', 'multi', or 'deconv'. n_dec: list, number of hidden units per layer in the decoder dec_up_strides: list, stride in each layer (only for 'deconv' decoder_type). n_x: int, number of dims of x. n_y: int, number of dims of y. shared_encoder_conv_shapes: the shapes of the activations of the intermediate layers of the encoder, is_training: Boolean, whether to build the training graph or an evaluation graph. test_local_stats: Boolean, whether to use the test batch statistics at test time for batch norm (default) or the moving averages. Returns: The Bernoulli distribution `p(x | z)`. """ if output_type == 'bernoulli': output_dist = lambda x: tfp.distributions.Bernoulli(logits=x) n_out_factor = 1 out_shape = list(output_shape) else: raise NotImplementedError if len(z.shape) != 2: raise NotImplementedError('The data decoder function expects `z` to be ' '2D, but its shape was %s instead.' % str(z.shape)) if len(y.shape) != 2: raise NotImplementedError('The data decoder function expects `y` to be ' '2D, but its shape was %s instead.' % str(y.shape)) # Upsample layer (deconvolutional, bilinear, ..). if decoder_type == 'deconv': # First, check that the encoder is convolutional too (needed for batchnorm) if shared_encoder_conv_shapes is None: raise ValueError('Shared encoder does not contain conv_shapes.') num_output_channels = output_shape[-1] conv_decoder = UpsampleModule( filters=n_dec, kernel_size=3, activation=tf.nn.relu, dec_up_strides=dec_up_strides, enc_conv_shapes=shared_encoder_conv_shapes, n_c=num_output_channels * n_out_factor, method=decoder_type) logits = conv_decoder( z, is_training=is_training, test_local_stats=test_local_stats) logits = tf.reshape(logits, [-1] + out_shape) # n_out_factor in last dim # Multiple MLP decoders, one for each component. elif decoder_type == 'multi': all_logits = [] for k in range(n_y): mlp_decoding = snt.nets.MLP( name='mlp_latent_decoder_' + str(k), output_sizes=n_dec + [n_x * n_out_factor], activation=tf.nn.relu, activate_final=False) logits = mlp_decoding(z) all_logits.append(logits) all_logits = tf.stack(all_logits) logits = tf.einsum('ij,jik->ik', y, all_logits) logits = tf.reshape(logits, [-1] + out_shape) # Back to 4D # Single (shared among components) MLP decoder. elif decoder_type == 'single': mlp_decoding = snt.nets.MLP( name='mlp_latent_decoder', output_sizes=n_dec + [n_x * n_out_factor], activation=tf.nn.relu, activate_final=False) logits = mlp_decoding(z) logits = tf.reshape(logits, [-1] + out_shape) # Back to 4D else: raise ValueError('Unknown decoder_type {}'.format(decoder_type)) return output_dist(logits) def latent_decoder_fn(y, n_z, is_training=True): """The latent decoder function, modelling p(z | y). Args: y: Categorical cluster variable, `Tensor` of size `[B, n_y]`. n_z: int, number of dims of z. is_training: Boolean, whether to build the training graph or an evaluation graph. Returns: The Gaussian distribution `p(z | y)`. """ del is_training # Unused for now. if len(y.shape) != 2: raise NotImplementedError('The latent decoder function expects `y` to be ' '2D, but its shape was %s instead.' % str(y.shape)) lin_mu = snt.Linear(n_z, name='latent_prior_mu') lin_sigma = snt.Linear(n_z, name='latent_prior_sigma') mu = lin_mu(y) sigma = lin_sigma(y) logits = tf.concat([mu, sigma], axis=1) return utils.generate_gaussian( logits=logits, sigma_nonlin='softplus', sigma_param='var') class Curl(object): """CURL model class.""" def __init__(self, prior, latent_decoder, data_decoder, shared_encoder, cluster_encoder, latent_encoder, n_y_active, kly_over_batch=False, is_training=True, name='curl'): self.scope_name = name self._shared_encoder = shared_encoder self._prior = prior self._latent_decoder = latent_decoder self._data_decoder = data_decoder self._cluster_encoder = cluster_encoder self._latent_encoder = latent_encoder self._n_y_active = n_y_active self._kly_over_batch = kly_over_batch self._is_training = is_training self._cache = {} def sample(self, sample_shape=(), y=None, mean=False): """Draws a sample from the learnt distribution p(x). Args: sample_shape: `int` or 0D `Tensor` giving the number of samples to return. If empty tuple (default value), 1 sample will be returned. y: Optional, the one hot label on which to condition the sample. mean: Boolean, if True the expected value of the output distribution is returned, otherwise samples from the output distribution. Returns: Sample tensor of shape `[B * N, ...]` where `B` is the batch size of the prior, `N` is the number of samples requested, and `...` represents the shape of the observations. Raises: ValueError: If both `sample_shape` and `n` are provided. ValueError: If `sample_shape` has rank > 0 or if `sample_shape` is an int that is < 1. """ with tf.name_scope('{}_sample'.format(self.scope_name)): if y is None: y = tf.to_float(self.compute_prior().sample(sample_shape)) if y.shape.ndims > 2: y = snt.MergeDims(start=0, size=y.shape.ndims - 1, name='merge_y')(y) z = self._latent_decoder(y, is_training=self._is_training) if mean: samples = self.predict(z.sample(), y).mean() else: samples = self.predict(z.sample(), y).sample() return samples def reconstruct(self, x, use_mode=True, use_mean=False): """Reconstructs the given observations. Args: x: Observed `Tensor`. use_mode: Boolean, if true, take the argmax over q(y|x) use_mean: Boolean, if true, use pixel-mean for reconstructions. Returns: The reconstructed samples x ~ p(x | y~q(y|x), z~q(z|x, y)). """ hiddens = self._shared_encoder(x, is_training=self._is_training) qy = self.infer_cluster(hiddens) y_sample = qy.mode() if use_mode else qy.sample() y_sample = tf.to_float(y_sample) qz = self.infer_latent(hiddens, y_sample) p = self.predict(qz.sample(), y_sample) if use_mean: return p.mean() else: return p.sample() def log_prob(self, x): """Redirects to log_prob_elbo with a warning.""" logging.warn('log_prob is actually a lower bound') return self.log_prob_elbo(x) def log_prob_elbo(self, x): """Returns evidence lower bound.""" log_p_x, kl_y, kl_z = self.log_prob_elbo_components(x)[:3] return log_p_x - kl_y - kl_z def log_prob_elbo_components(self, x, y=None, reduce_op=tf.reduce_sum): """Returns the components used in calculating the evidence lower bound. Args: x: Observed variables, `Tensor` of size `[B, I]` where `I` is the size of a flattened input. y: Optional labels, `Tensor` of size `[B, I]` where `I` is the size of a flattened input. reduce_op: The op to use for reducing across non-batch dimensions. Typically either `tf.reduce_sum` or `tf.reduce_mean`. Returns: `log p(x|y,z)` of shape `[B]` where `B` is the batch size. `KL[q(y|x) || p(y)]` of shape `[B]` where `B` is the batch size. `KL[q(z|x,y) || p(z|y)]` of shape `[B]` where `B` is the batch size. """ cache_key = (x,) # Checks if the output graph for this inputs has already been computed. if cache_key in self._cache: return self._cache[cache_key] with tf.name_scope('{}_log_prob_elbo'.format(self.scope_name)): hiddens = self._shared_encoder(x, is_training=self._is_training) # 1) Compute KL[q(y|x) || p(y)] from x, and keep distribution q_y around kl_y, q_y = self._kl_and_qy(hiddens) # [B], distribution # For the next two terms, we need to marginalise over all y. # First, construct every possible y indexing (as a one hot) and repeat it # for every element in the batch [n_y_active, B, n_y]. # Note that the onehot have dimension of all y, while only the codes # corresponding to active components are instantiated bs, n_y = q_y.probs.shape all_y = tf.tile( tf.expand_dims(tf.one_hot(tf.range(self._n_y_active), n_y), axis=1), multiples=[1, bs, 1]) # 2) Compute KL[q(z|x,y) || p(z|y)] (for all possible y), and keep z's # around [n_y, B] and [n_y, B, n_z] kl_z_all, z_all = tf.map_fn( fn=lambda y: self._kl_and_z(hiddens, y), elems=all_y, dtype=(tf.float32, tf.float32), name='elbo_components_z_map') kl_z_all = tf.transpose(kl_z_all, name='kl_z_all') # Now take the expectation over y (scale by q(y|x)) y_logits = q_y.logits[:, :self._n_y_active] # [B, n_y] y_probs = q_y.probs[:, :self._n_y_active] # [B, n_y] y_probs = y_probs / tf.reduce_sum(y_probs, axis=1, keepdims=True) kl_z = tf.reduce_sum(y_probs * kl_z_all, axis=1) # 3) Evaluate logp and recon, i.e., log and mean of p(x|z,[y]) # (conditioning on y only in the `multi` decoder_type case, when # train_supervised is True). Here we take the reconstruction from each # possible component y and take its log prob. [n_y, B, Ix, Iy, Iz] log_p_x_all = tf.map_fn( fn=lambda val: self.predict(val[0], val[1]).log_prob(x), elems=(z_all, all_y), dtype=tf.float32, name='elbo_components_logpx_map') # Sum log probs over all dimensions apart from the first two (n_y, B), # i.e., over I. Use einsum to construct higher order multiplication. log_p_x_all = snt.BatchFlatten(preserve_dims=2)(log_p_x_all) # [n_y,B,I] # Note, this is E_{q(y|x)} [ log p(x | z, y)], i.e., we scale log_p_x_all # by q(y|x). log_p_x = tf.einsum('ij,jik->ik', y_probs, log_p_x_all) # [B, I] # We may also use a supervised loss for some samples [B, n_y] if y is not None: self.y_label = tf.one_hot(y, n_y) else: self.y_label = tfc.placeholder( shape=[bs, n_y], dtype=tf.float32, name='y_label') # This is computing log p(x | z, y=true_y)], which is basically equivalent # to indexing into the correct element of `log_p_x_all`. log_p_x_sup = tf.einsum('ij,jik->ik', self.y_label[:, :self._n_y_active], log_p_x_all) # [B, I] kl_z_sup = tf.einsum('ij,ij->i', self.y_label[:, :self._n_y_active], kl_z_all) # [B] # -log q(y=y_true | x) kl_y_sup = tf.nn.sparse_softmax_cross_entropy_with_logits( # [B] labels=tf.argmax(self.y_label[:, :self._n_y_active], axis=1), logits=y_logits) # Reduce over all dimension except batch. dims_x = [k for k in range(1, log_p_x.shape.ndims)] log_p_x = reduce_op(log_p_x, dims_x, name='log_p_x') log_p_x_sup = reduce_op(log_p_x_sup, dims_x, name='log_p_x_sup') # Store values needed externally self.q_y = q_y self.log_p_x_all = tf.transpose( reduce_op( log_p_x_all, -1, # [B, n_y] name='log_p_x_all')) self.kl_z_all = kl_z_all self.y_probs = y_probs self._cache[cache_key] = (log_p_x, kl_y, kl_z, log_p_x_sup, kl_y_sup, kl_z_sup) return log_p_x, kl_y, kl_z, log_p_x_sup, kl_y_sup, kl_z_sup def _kl_and_qy(self, hiddens): """Returns analytical or sampled KL div and the distribution q(y | x). Args: hiddens: The shared encoder activations, 2D `Tensor` of size `[B, ...]`. Returns: Pair `(kl, y)`, where `kl` is the KL divergence (a `Tensor` with shape `[B]`, where `B` is the batch size), and `y` is a sample from the categorical encoding distribution. """ with tf.control_dependencies([tfc.assert_rank(hiddens, 2)]): q = self.infer_cluster(hiddens) # q(y|x) p = self.compute_prior() # p(y) try: # Take the average proportions over whole batch then repeat it in each row # before computing the KL if self._kly_over_batch: probs = tf.reduce_mean( q.probs, axis=0, keepdims=True) * tf.ones_like(q.probs) qmean = tfp.distributions.OneHotCategorical(probs=probs) kl = tfp.distributions.kl_divergence(qmean, p) else: kl = tfp.distributions.kl_divergence(q, p) except NotImplementedError: y = q.sample(name='y_sample') logging.warn('Using sampling KLD for y') log_p_y = p.log_prob(y, name='log_p_y') log_q_y = q.log_prob(y, name='log_q_y') # Reduce over all dimension except batch. sum_axis_p = [k for k in range(1, log_p_y.get_shape().ndims)] log_p_y = tf.reduce_sum(log_p_y, sum_axis_p) sum_axis_q = [k for k in range(1, log_q_y.get_shape().ndims)] log_q_y = tf.reduce_sum(log_q_y, sum_axis_q) kl = log_q_y - log_p_y # Reduce over all dimension except batch. sum_axis_kl = [k for k in range(1, kl.get_shape().ndims)] kl = tf.reduce_sum(kl, sum_axis_kl, name='kl') return kl, q def _kl_and_z(self, hiddens, y): """Returns KL[q(z|y,x) || p(z|y)] and a sample for z from q(z|y,x). Returns the analytical KL divergence KL[q(z|y,x) || p(z|y)] if one is available (as registered with `kullback_leibler.RegisterKL`), or a sampled KL divergence otherwise (in this case the returned sample is the one used for the KL divergence). Args: hiddens: The shared encoder activations, 2D `Tensor` of size `[B, ...]`. y: Categorical cluster random variable, `Tensor` of size `[B, n_y]`. Returns: Pair `(kl, z)`, where `kl` is the KL divergence (a `Tensor` with shape `[B]`, where `B` is the batch size), and `z` is a sample from the encoding distribution. """ with tf.control_dependencies([tfc.assert_rank(hiddens, 2)]): q = self.infer_latent(hiddens, y) # q(z|x,y) p = self.generate_latent(y) # p(z|y) z = q.sample(name='z') try: kl = tfp.distributions.kl_divergence(q, p) except NotImplementedError: logging.warn('Using sampling KLD for z') log_p_z = p.log_prob(z, name='log_p_z_y') log_q_z = q.log_prob(z, name='log_q_z_xy') # Reduce over all dimension except batch. sum_axis_p = [k for k in range(1, log_p_z.get_shape().ndims)] log_p_z = tf.reduce_sum(log_p_z, sum_axis_p) sum_axis_q = [k for k in range(1, log_q_z.get_shape().ndims)] log_q_z = tf.reduce_sum(log_q_z, sum_axis_q) kl = log_q_z - log_p_z # Reduce over all dimension except batch. sum_axis_kl = [k for k in range(1, kl.get_shape().ndims)] kl = tf.reduce_sum(kl, sum_axis_kl, name='kl') return kl, z def infer_latent(self, hiddens, y=None, use_mean_y=False): """Performs inference over the latent variable z. Args: hiddens: The shared encoder activations, 4D `Tensor` of size `[B, ...]`. y: Categorical cluster variable, `Tensor` of size `[B, ...]`. use_mean_y: Boolean, whether to take the mean encoding over all y. Returns: The distribution `q(z|x, y)`, which on sample produces tensors of size `[N, B, ...]` where `B` is the batch size of `x` and `y`, and `N` is the number of samples and `...` represents the shape of the latent variables. """ with tf.control_dependencies([tfc.assert_rank(hiddens, 2)]): if y is None: y = tf.to_float(self.infer_cluster(hiddens).mode()) if use_mean_y: # If use_mean_y, then y must be probabilities all_y = tf.tile( tf.expand_dims(tf.one_hot(tf.range(y.shape[1]), y.shape[1]), axis=1), multiples=[1, y.shape[0], 1]) # Compute z KL from x (for all possible y), and keep z's around z_all = tf.map_fn( fn=lambda y: self._latent_encoder( hiddens, y, is_training=self._is_training).mean(), elems=all_y, dtype=tf.float32) return tf.einsum('ij,jik->ik', y, z_all) else: return self._latent_encoder(hiddens, y, is_training=self._is_training) def generate_latent(self, y): """Use the generative model to compute latent variable z, given a y. Args: y: Categorical cluster variable, `Tensor` of size `[B, ...]`. Returns: The distribution `p(z|y)`, which on sample produces tensors of size `[N, B, ...]` where `B` is the batch size of `x`, and `N` is the number of samples asked and `...` represents the shape of the latent variables. """ return self._latent_decoder(y, is_training=self._is_training) def get_shared_rep(self, x, is_training): """Gets the shared representation from a given input x. Args: x: Observed variables, `Tensor` of size `[B, I]` where `I` is the size of a flattened input. is_training: bool, whether this constitutes training data or not. Returns: `log p(x|y,z)` of shape `[B]` where `B` is the batch size. `KL[q(y|x) || p(y)]` of shape `[B]` where `B` is the batch size. `KL[q(z|x,y) || p(z|y)]` of shape `[B]` where `B` is the batch size. """ return self._shared_encoder(x, is_training) def infer_cluster(self, hiddens): """Performs inference over the categorical variable y. Args: hiddens: The shared encoder activations, 2D `Tensor` of size `[B, ...]`. Returns: The distribution `q(y|x)`, which on sample produces tensors of size `[N, B, ...]` where `B` is the batch size of `x`, and `N` is the number of samples asked and `...` represents the shape of the latent variables. """ with tf.control_dependencies([tfc.assert_rank(hiddens, 2)]): return self._cluster_encoder(hiddens, is_training=self._is_training) def predict(self, z, y): """Computes prediction over the observed variables. Args: z: Latent variables, `Tensor` of size `[B, ...]`. y: Categorical cluster variable, `Tensor` of size `[B, ...]`. Returns: The distribution `p(x|z)`, which on sample produces tensors of size `[N, B, ...]` where `N` is the number of samples asked. """ encoder_conv_shapes = getattr(self._shared_encoder, 'conv_shapes', None) return self._data_decoder( z, y, shared_encoder_conv_shapes=encoder_conv_shapes, is_training=self._is_training) def compute_prior(self): """Computes prior over the latent variables. Returns: The distribution `p(y)`, which on sample produces tensors of size `[N, ...]` where `N` is the number of samples asked and `...` represents the shape of the latent variables. """ return self._prior() class UpsampleModule(snt.AbstractModule): """Convolutional decoder. If `method` is 'deconv' apply transposed convolutions with stride 2, otherwise apply the `method` upsampling function and then smooth with a stride 1x1 convolution. Params: ------- filters: list, where the first element is the number of filters of the initial MLP layer and the remaining elements are the number of filters of the upsampling layers. kernel_size: the size of the convolutional kernels. The same size will be used in all convolutions. activation: an activation function, applied to all layers but the last. dec_up_strides: list, the upsampling factors of each upsampling convolutional layer. enc_conv_shapes: list, the shapes of the input and of all the intermediate feature maps of the convolutional layers in the encoder. n_c: the number of output channels. """ def __init__(self, filters, kernel_size, activation, dec_up_strides, enc_conv_shapes, n_c, method='nn', name='upsample_module'): super(UpsampleModule, self).__init__(name=name) assert len(filters) == len(dec_up_strides) + 1, ( 'The decoder\'s filters should contain one element more than the ' 'decoder\'s up stride list, but has %d elements instead of %d.\n' 'Decoder filters: %s\nDecoder up strides: %s' % (len(filters), len(dec_up_strides) + 1, str(filters), str(dec_up_strides))) self._filters = filters self._kernel_size = kernel_size self._activation = activation self._dec_up_strides = dec_up_strides self._enc_conv_shapes = enc_conv_shapes self._n_c = n_c if method == 'deconv': self._conv_layer = tf.layers.Conv2DTranspose self._method = method else: self._conv_layer = tf.layers.Conv2D self._method = getattr(tf.image.ResizeMethod, method.upper()) self._method_str = method.capitalize() def _build(self, z, is_training=True, test_local_stats=True, use_bn=False): batch_norm_args = { 'is_training': is_training, 'test_local_stats': test_local_stats } method = self._method # Cycle over the encoder shapes backwards, to build a symmetrical decoder. enc_conv_shapes = self._enc_conv_shapes[::-1] strides = self._dec_up_strides # We store the heights and widths of the encoder feature maps that are # unique, i.e., the ones right after a layer with stride != 1. These will be # used as a target to potentially crop the upsampled feature maps. unique_hw = np.unique([(el[1], el[2]) for el in enc_conv_shapes], axis=0) unique_hw = unique_hw.tolist()[::-1] unique_hw.pop() # Drop the initial shape # The first filter is an MLP. mlp_filter, conv_filters = self._filters[0], self._filters[1:] # The first shape is used after the MLP to go to 4D. layers = [z] # The shape of the first enc is used after the MLP to go back to 4D. dec_mlp = snt.nets.MLP( name='dec_mlp_projection', output_sizes=[mlp_filter, np.prod(enc_conv_shapes[0][1:])], use_bias=not use_bn, activation=self._activation, activate_final=True) upsample_mlp_flat = dec_mlp(z) if use_bn: upsample_mlp_flat = snt.BatchNorm(scale=True)(upsample_mlp_flat, **batch_norm_args) layers.append(upsample_mlp_flat) upsample = tf.reshape(upsample_mlp_flat, enc_conv_shapes[0]) layers.append(upsample) for i, (filter_i, stride_i) in enumerate(zip(conv_filters, strides), 1): if method != 'deconv' and stride_i > 1: upsample = tf.image.resize_images( upsample, [stride_i * el for el in upsample.shape.as_list()[1:3]], method=method, name='upsample_' + str(i)) upsample = self._conv_layer( filters=filter_i, kernel_size=self._kernel_size, padding='same', use_bias=not use_bn, activation=self._activation, strides=stride_i if method == 'deconv' else 1, name='upsample_conv_' + str(i))( upsample) if use_bn: upsample = snt.BatchNorm(scale=True)(upsample, **batch_norm_args) if stride_i > 1: hw = unique_hw.pop() upsample = utils.maybe_center_crop(upsample, hw) layers.append(upsample) # Final layer, no upsampling. x_logits = tf.layers.Conv2D( filters=self._n_c, kernel_size=self._kernel_size, padding='same', use_bias=not use_bn, activation=None, strides=1, name='logits')( upsample) if use_bn: x_logits = snt.BatchNorm(scale=True)(x_logits, **batch_norm_args) layers.append(x_logits) logging.info('%s upsampling module layer shapes', self._method_str) logging.info('\n'.join([str(v.shape.as_list()) for v in layers])) return x_logits ================================================ FILE: curl/requirements.txt ================================================ absl-py==0.8.0 dm-sonnet==1.35 gast<0.3 numpy==1.16.4 scikit-learn==0.20.4 setuptools>=41.0.0 six==1.12.0 tensorflow==1.14.0 tensorflow-datasets==1.2.0 tensorflow-probability==0.7.0 ================================================ FILE: curl/train_main.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Training file to run most of the experiments in the paper. The default parameters corresponding to the first set of experiments in Section 4.2. For the expansion ablation, run with different ll_thresh values as in the paper. Note that n_y_active represents the number of *active* components at the start, and should be set to 1, while n_y represents the maximum number of components allowed, and should be set sufficiently high (eg. n_y = 100). For the MGR ablation, setting use_sup_replay = True switches to using SMGR, and the gen_replay_type flag can switch between fixed and dynamic replay. The generative snapshot period is set automatically in the train_curl.py file based on these settings (ie. the data_period variable), so the 0.1T runs can be reproduced by dividing this value by 10. """ from absl import app from absl import flags from curl import training flags.DEFINE_enum('dataset', 'mnist', ['mnist', 'omniglot'], 'Dataset.') FLAGS = flags.FLAGS def main(unused_argv): training.run_training( dataset=FLAGS.dataset, output_type='bernoulli', n_y=30, n_y_active=1, training_data_type='sequential', n_concurrent_classes=1, lr_init=1e-3, lr_factor=1., lr_schedule=[1], blend_classes=False, train_supervised=False, n_steps=100000, report_interval=10000, knn_values=[10], random_seed=1, encoder_kwargs={ 'encoder_type': 'multi', 'n_enc': [1200, 600, 300, 150], 'enc_strides': [1], }, decoder_kwargs={ 'decoder_type': 'single', 'n_dec': [500, 500], 'dec_up_strides': None, }, n_z=32, dynamic_expansion=True, ll_thresh=-200.0, classify_with_samples=False, gen_replay_type='fixed', use_supervised_replay=False, ) if __name__ == '__main__': app.run(main) ================================================ FILE: curl/train_sup.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Runs the supervised CL benchmark experiments in the paper.""" from absl import app from absl import flags from curl import training flags.DEFINE_enum('dataset', 'mnist', ['mnist', 'omniglot'], 'Dataset.') FLAGS = flags.FLAGS def main(unused_argv): training.run_training( dataset=FLAGS.dataset, output_type='bernoulli', n_y=10, n_y_active=10, training_data_type='sequential', n_concurrent_classes=2, lr_init=1e-3, lr_factor=1., lr_schedule=[1], train_supervised=True, blend_classes=False, n_steps=100000, report_interval=10000, knn_values=[], random_seed=1, encoder_kwargs={ 'encoder_type': 'multi', 'n_enc': [400, 400], 'enc_strides': [1], }, decoder_kwargs={ 'decoder_type': 'single', 'n_dec': [400, 400], 'dec_up_strides': None, }, n_z=32, dynamic_expansion=False, ll_thresh=-10000.0, classify_with_samples=False, gen_replay_type='fixed', use_supervised_replay=False, ) if __name__ == '__main__': app.run(main) ================================================ FILE: curl/train_unsup.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Runs the unsupervised i.i.d benchmark experiments in the paper.""" from absl import app from absl import flags from curl import training flags.DEFINE_enum('dataset', 'mnist', ['mnist', 'omniglot'], 'Dataset.') FLAGS = flags.FLAGS def main(unused_argv): if FLAGS.dataset == 'mnist': n_y = 25 n_y_active = 1 n_z = 50 else: # omniglot n_y = 100 n_y_active = 1 n_z = 100 training.run_training( dataset=FLAGS.dataset, n_y=n_y, n_y_active=n_y_active, n_z=n_z, output_type='bernoulli', training_data_type='iid', n_concurrent_classes=1, lr_init=5e-4, lr_factor=1., lr_schedule=[1], blend_classes=False, train_supervised=False, n_steps=100000, report_interval=10000, knn_values=[3], random_seed=1, encoder_kwargs={ 'encoder_type': 'multi', 'n_enc': [500, 500], 'enc_strides': [1], }, decoder_kwargs={ 'decoder_type': 'single', 'n_dec': [500], 'dec_up_strides': None, }, dynamic_expansion=True, ll_thresh=-200.0, classify_with_samples=True, gen_replay_type=None, use_supervised_replay=False, ) if __name__ == '__main__': app.run(main) ================================================ FILE: curl/training.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Script to train CURL.""" import collections import functools from absl import logging import numpy as np from sklearn import neighbors import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_datasets as tfds import tensorflow_probability as tfp from curl import model from curl import utils tfc = tf.compat.v1 # pylint: disable=g-long-lambda MainOps = collections.namedtuple('MainOps', [ 'elbo', 'll', 'log_p_x', 'kl_y', 'kl_z', 'elbo_supervised', 'll_supervised', 'log_p_x_supervised', 'kl_y_supervised', 'kl_z_supervised', 'cat_probs', 'confusion', 'purity', 'latents' ]) DatasetTuple = collections.namedtuple('DatasetTuple', [ 'train_data', 'train_iter_for_clf', 'train_data_for_clf', 'valid_iter', 'valid_data', 'test_iter', 'test_data', 'ds_info' ]) def compute_purity(confusion): return np.sum(np.max(confusion, axis=0)).astype(float) / np.sum(confusion) def process_dataset(iterator, ops_to_run, sess, feed_dict=None, aggregation_ops=np.stack, processing_ops=None): """Process a dataset by computing ops and accumulating batch by batch. Args: iterator: iterator through the dataset. ops_to_run: dict, tf ops to run as part of dataset processing. sess: tf.Session to use. feed_dict: dict, required placeholders. aggregation_ops: fn or dict of fns, aggregation op to apply for each op. processing_ops: fn or dict of fns, extra processing op to apply for each op. Returns: Results accumulated over dataset. """ if not isinstance(ops_to_run, dict): raise TypeError('ops_to_run must be specified as a dict') if not isinstance(aggregation_ops, dict): aggregation_ops = {k: aggregation_ops for k in ops_to_run} if not isinstance(processing_ops, dict): processing_ops = {k: processing_ops for k in ops_to_run} out_results = collections.OrderedDict() sess.run(iterator.initializer) while True: # Iterate over the whole dataset and append the results to a per-key list. try: outs = sess.run(ops_to_run, feed_dict=feed_dict) for key, value in outs.items(): out_results.setdefault(key, []).append(value) except tf.errors.OutOfRangeError: # end of dataset iterator break # Aggregate and process results. for key, value in out_results.items(): if aggregation_ops[key]: out_results[key] = aggregation_ops[key](value) if processing_ops[key]: out_results[key] = processing_ops[key](out_results[key], axis=0) return out_results def get_data_sources(dataset, dataset_kwargs, batch_size, test_batch_size, training_data_type, n_concurrent_classes, image_key, label_key): """Create and return data sources for training, validation, and testing. Args: dataset: str, name of dataset ('mnist', 'omniglot', etc). dataset_kwargs: dict, kwargs used in tf dataset constructors. batch_size: int, batch size used for training. test_batch_size: int, batch size used for evaluation. training_data_type: str, how training data is seen ('iid', or 'sequential'). n_concurrent_classes: int, # classes seen at a time (ignored for 'iid'). image_key: str, name if image key in dataset. label_key: str, name of label key in dataset. Returns: A namedtuple containing all of the dataset iterators and batches. """ # Load training data sources ds_train, ds_info = tfds.load( name=dataset, split=tfds.Split.TRAIN, with_info=True, as_dataset_kwargs={'shuffle_files': False}, **dataset_kwargs) # Validate assumption that data is in [0, 255] assert ds_info.features[image_key].dtype == tf.uint8 n_classes = ds_info.features[label_key].num_classes num_train_examples = ds_info.splits['train'].num_examples def preprocess_data(x): """Convert images from uint8 in [0, 255] to float in [0, 1].""" x[image_key] = tf.image.convert_image_dtype(x[image_key], tf.float32) return x if training_data_type == 'sequential': c = None # The index of the class number, None for now and updated later if n_concurrent_classes == 1: filter_fn = lambda v: tf.equal(v[label_key], c) else: # Define the lowest and highest class number at each data period. assert n_classes % n_concurrent_classes == 0, ( 'Number of total classes must be divisible by ' 'number of concurrent classes') cmin = [] cmax = [] for i in range(int(n_classes / n_concurrent_classes)): for _ in range(n_concurrent_classes): cmin.append(i * n_concurrent_classes) cmax.append((i + 1) * n_concurrent_classes) filter_fn = lambda v: tf.logical_and( tf.greater_equal(v[label_key], cmin[c]), tf.less( v[label_key], cmax[c])) # Set up data sources/queues (one for each class). train_datasets = [] train_iterators = [] train_data = [] full_ds = ds_train.repeat().shuffle(num_train_examples, seed=0) full_ds = full_ds.map(preprocess_data) for c in range(n_classes): filtered_ds = full_ds.filter(filter_fn).batch( batch_size, drop_remainder=True) train_datasets.append(filtered_ds) train_iterators.append(train_datasets[-1].make_one_shot_iterator()) train_data.append(train_iterators[-1].get_next()) else: # not sequential full_ds = ds_train.repeat().shuffle(num_train_examples, seed=0) full_ds = full_ds.map(preprocess_data) train_datasets = full_ds.batch(batch_size, drop_remainder=True) train_data = train_datasets.make_one_shot_iterator().get_next() # Set up data source to get full training set for classifier training full_ds = ds_train.repeat(1).shuffle(num_train_examples, seed=0) full_ds = full_ds.map(preprocess_data) train_datasets_for_classifier = full_ds.batch( test_batch_size, drop_remainder=True) train_iter_for_classifier = ( train_datasets_for_classifier.make_initializable_iterator()) train_data_for_classifier = train_iter_for_classifier.get_next() # Load validation dataset. try: valid_dataset = tfds.load( name=dataset, split=tfds.Split.VALIDATION, **dataset_kwargs) num_valid_examples = ds_info.splits[tfds.Split.VALIDATION].num_examples assert (num_valid_examples % test_batch_size == 0), ('test_batch_size must be a divisor of %d' % num_valid_examples) valid_dataset = valid_dataset.repeat(1).batch( test_batch_size, drop_remainder=True) valid_dataset = valid_dataset.map(preprocess_data) valid_iter = valid_dataset.make_initializable_iterator() valid_data = valid_iter.get_next() except (KeyError, ValueError): logging.warning('No validation set!!') valid_iter = None valid_data = None # Load test dataset. test_dataset = tfds.load( name=dataset, split=tfds.Split.TEST, **dataset_kwargs) num_test_examples = ds_info.splits['test'].num_examples assert (num_test_examples % test_batch_size == 0), ('test_batch_size must be a divisor of %d' % num_test_examples) test_dataset = test_dataset.repeat(1).batch( test_batch_size, drop_remainder=True) test_dataset = test_dataset.map(preprocess_data) test_iter = test_dataset.make_initializable_iterator() test_data = test_iter.get_next() logging.info('Loaded %s data', dataset) return DatasetTuple(train_data, train_iter_for_classifier, train_data_for_classifier, valid_iter, valid_data, test_iter, test_data, ds_info) def setup_training_and_eval_graphs(x, label, y, n_y, curl_model, classify_with_samples, is_training, name): """Set up the graph and return ops for training or evaluation. Args: x: tf placeholder for image. label: tf placeholder for ground truth label. y: tf placeholder for some self-supervised label/prediction. n_y: int, dimensionality of discrete latent variable y. curl_model: snt.AbstractModule representing the CURL model. classify_with_samples: bool, whether to *sample* latents for classification. is_training: bool, whether this graph is the training graph. name: str, graph name. Returns: A namedtuple with the required graph ops to perform training or evaluation. """ # kl_y_supervised is -log q(y=y_true | x) (log_p_x, kl_y, kl_z, log_p_x_supervised, kl_y_supervised, kl_z_supervised) = curl_model.log_prob_elbo_components(x, y) ll = log_p_x - kl_y - kl_z elbo = -tf.reduce_mean(ll) # Supervised loss, either for SMGR, or adaptation to supervised benchmark. ll_supervised = log_p_x_supervised - kl_y_supervised - kl_z_supervised elbo_supervised = -tf.reduce_mean(ll_supervised) # Summaries kl_y = tf.reduce_mean(kl_y) kl_z = tf.reduce_mean(kl_z) log_p_x_supervised = tf.reduce_mean(log_p_x_supervised) kl_y_supervised = tf.reduce_mean(kl_y_supervised) kl_z_supervised = tf.reduce_mean(kl_z_supervised) # Evaluation. hiddens = curl_model.get_shared_rep(x, is_training=is_training) cat = curl_model.infer_cluster(hiddens) cat_probs = cat.probs confusion = tf.confusion_matrix(label, tf.argmax(cat_probs, axis=1), num_classes=n_y, name=name + '_confusion') purity = (tf.reduce_sum(tf.reduce_max(confusion, axis=0)) / tf.reduce_sum(confusion)) if classify_with_samples: latents = curl_model.infer_latent( hiddens=hiddens, y=tf.to_float(cat.sample())).sample() else: latents = curl_model.infer_latent( hiddens=hiddens, y=tf.to_float(cat.mode())).mean() return MainOps(elbo, ll, log_p_x, kl_y, kl_z, elbo_supervised, ll_supervised, log_p_x_supervised, kl_y_supervised, kl_z_supervised, cat_probs, confusion, purity, latents) def get_generated_data(sess, gen_op, y_input, gen_buffer_size, component_counts): """Get generated model data (in place of saving a model snapshot). Args: sess: tf.Session. gen_op: tf op representing a batch of generated data. y_input: tf placeholder for which mixture components to generate from. gen_buffer_size: int, number of data points to generate. component_counts: np.array, prior probabilities over components. Returns: A tuple of two numpy arrays The generated data The corresponding labels """ batch_size, n_y = y_input.shape.as_list() # Sample based on the history of all components used. cluster_sample_probs = component_counts.astype(float) cluster_sample_probs = np.maximum(1e-12, cluster_sample_probs) cluster_sample_probs = cluster_sample_probs / np.sum(cluster_sample_probs) # Now generate the data based on the specified cluster prior. gen_buffer_images = [] gen_buffer_labels = [] for _ in range(gen_buffer_size): gen_label = np.random.choice( np.arange(n_y), size=(batch_size,), replace=True, p=cluster_sample_probs) y_gen_posterior_vals = np.zeros((batch_size, n_y)) y_gen_posterior_vals[np.arange(batch_size), gen_label] = 1 gen_image = sess.run(gen_op, feed_dict={y_input: y_gen_posterior_vals}) gen_buffer_images.append(gen_image) gen_buffer_labels.append(gen_label) gen_buffer_images = np.vstack(gen_buffer_images) gen_buffer_labels = np.concatenate(gen_buffer_labels) return gen_buffer_images, gen_buffer_labels def setup_dynamic_ops(n_y): """Set up ops to move / copy mixture component weights for dynamic expansion. Args: n_y: int, dimensionality of discrete latent variable y. Returns: A dict containing all of the ops required for dynamic updating. """ # Set up graph ops to dynamically modify component params. graph = tf.get_default_graph() # 1) Ops to get and set latent encoder params (entire tensors) latent_enc_tensors = {} for k in range(n_y): latent_enc_tensors['latent_w_' + str(k)] = graph.get_tensor_by_name( 'latent_encoder/mlp_latent_encoder_{}/w:0'.format(k)) latent_enc_tensors['latent_b_' + str(k)] = graph.get_tensor_by_name( 'latent_encoder/mlp_latent_encoder_{}/b:0'.format(k)) latent_enc_assign_ops = {} latent_enc_phs = {} for key, tensor in latent_enc_tensors.items(): latent_enc_phs[key] = tfc.placeholder(tensor.dtype, tensor.shape) latent_enc_assign_ops[key] = tf.assign(tensor, latent_enc_phs[key]) # 2) Ops to get and set cluster encoder params (columns of a tensor) # We will be copying column ind_from to column ind_to. cluster_w = graph.get_tensor_by_name( 'cluster_encoder/mlp_cluster_encoder_final/w:0') cluster_b = graph.get_tensor_by_name( 'cluster_encoder/mlp_cluster_encoder_final/b:0') ind_from = tfc.placeholder(dtype=tf.int32) ind_to = tfc.placeholder(dtype=tf.int32) # Determine indices of cluster encoder weights and biases to be updated w_indices = tf.transpose( tf.stack([ tf.range(cluster_w.shape[0], dtype=tf.int32), ind_to * tf.ones(shape=(cluster_w.shape[0],), dtype=tf.int32) ])) b_indices = ind_to # Determine updates themselves cluster_w_updates = tf.squeeze( tf.slice(cluster_w, begin=(0, ind_from), size=(cluster_w.shape[0], 1))) cluster_b_updates = cluster_b[ind_from] # Create update ops cluster_w_update_op = tf.scatter_nd_update(cluster_w, w_indices, cluster_w_updates) cluster_b_update_op = tf.scatter_update(cluster_b, b_indices, cluster_b_updates) # 3) Ops to get and set latent prior params (columns of a tensor) # We will be copying column ind_from to column ind_to. latent_prior_mu_w = graph.get_tensor_by_name( 'latent_decoder/latent_prior_mu/w:0') latent_prior_sigma_w = graph.get_tensor_by_name( 'latent_decoder/latent_prior_sigma/w:0') mu_indices = tf.transpose( tf.stack([ ind_to * tf.ones(shape=(latent_prior_mu_w.shape[1],), dtype=tf.int32), tf.range(latent_prior_mu_w.shape[1], dtype=tf.int32) ])) mu_updates = tf.squeeze( tf.slice( latent_prior_mu_w, begin=(ind_from, 0), size=(1, latent_prior_mu_w.shape[1]))) mu_update_op = tf.scatter_nd_update(latent_prior_mu_w, mu_indices, mu_updates) sigma_indices = tf.transpose( tf.stack([ ind_to * tf.ones(shape=(latent_prior_sigma_w.shape[1],), dtype=tf.int32), tf.range(latent_prior_sigma_w.shape[1], dtype=tf.int32) ])) sigma_updates = tf.squeeze( tf.slice( latent_prior_sigma_w, begin=(ind_from, 0), size=(1, latent_prior_sigma_w.shape[1]))) sigma_update_op = tf.scatter_nd_update(latent_prior_sigma_w, sigma_indices, sigma_updates) dynamic_ops = { 'ind_from_ph': ind_from, 'ind_to_ph': ind_to, 'latent_enc_tensors': latent_enc_tensors, 'latent_enc_assign_ops': latent_enc_assign_ops, 'latent_enc_phs': latent_enc_phs, 'cluster_w_update_op': cluster_w_update_op, 'cluster_b_update_op': cluster_b_update_op, 'mu_update_op': mu_update_op, 'sigma_update_op': sigma_update_op } return dynamic_ops def copy_component_params(ind_from, ind_to, sess, ind_from_ph, ind_to_ph, latent_enc_tensors, latent_enc_assign_ops, latent_enc_phs, cluster_w_update_op, cluster_b_update_op, mu_update_op, sigma_update_op): """Copy parameters from component i to component j. Args: ind_from: int, component index to copy from. ind_to: int, component index to copy to. sess: tf.Session. ind_from_ph: tf placeholder for component to copy from. ind_to_ph: tf placeholder for component to copy to. latent_enc_tensors: dict, tensors in the latent posterior encoder. latent_enc_assign_ops: dict, assignment ops for latent posterior encoder. latent_enc_phs: dict, placeholders for assignment ops. cluster_w_update_op: op for updating weights of cluster encoder. cluster_b_update_op: op for updating biased of cluster encoder. mu_update_op: op for updating mu weights of latent prior. sigma_update_op: op for updating sigma weights of latent prior. """ update_ops = [] feed_dict = {} # Copy for latent encoder. new_w_val, new_b_val = sess.run([ latent_enc_tensors['latent_w_' + str(ind_from)], latent_enc_tensors['latent_b_' + str(ind_from)] ]) update_ops.extend([ latent_enc_assign_ops['latent_w_' + str(ind_to)], latent_enc_assign_ops['latent_b_' + str(ind_to)] ]) feed_dict.update({ latent_enc_phs['latent_w_' + str(ind_to)]: new_w_val, latent_enc_phs['latent_b_' + str(ind_to)]: new_b_val }) # Copy for cluster encoder softmax. update_ops.extend([cluster_w_update_op, cluster_b_update_op]) feed_dict.update({ind_from_ph: ind_from, ind_to_ph: ind_to}) # Copy for latent prior. update_ops.extend([mu_update_op, sigma_update_op]) feed_dict.update({ind_from_ph: ind_from, ind_to_ph: ind_to}) sess.run(update_ops, feed_dict) def run_training( dataset, training_data_type, n_concurrent_classes, blend_classes, train_supervised, n_steps, random_seed, lr_init, lr_factor, lr_schedule, output_type, n_y, n_y_active, n_z, encoder_kwargs, decoder_kwargs, dynamic_expansion, ll_thresh, classify_with_samples, report_interval, knn_values, gen_replay_type, use_supervised_replay): """Run training script. Args: dataset: str, name of the dataset. training_data_type: str, type of training run ('iid' or 'sequential'). n_concurrent_classes: int, # of classes seen at a time (ignored for 'iid'). blend_classes: bool, whether to blend in samples from the next class. train_supervised: bool, whether to use supervision during training. n_steps: int, number of total training steps. random_seed: int, seed for tf and numpy RNG. lr_init: float, initial learning rate. lr_factor: float, learning rate decay factor. lr_schedule: float, epochs at which the decay should be applied. output_type: str, output distribution (currently only 'bernoulli'). n_y: int, maximum possible dimensionality of discrete latent variable y. n_y_active: int, starting dimensionality of discrete latent variable y. n_z: int, dimensionality of continuous latent variable z. encoder_kwargs: dict, parameters to specify encoder. decoder_kwargs: dict, parameters to specify decoder. dynamic_expansion: bool, whether to perform dynamic expansion. ll_thresh: float, log-likelihood threshold below which to keep poor samples. classify_with_samples: bool, whether to sample latents when classifying. report_interval: int, number of steps after which to evaluate and report. knn_values: list of ints, k values for different k-NN classifiers to run (values of 3, 5, and 10 were used in different parts of the paper). gen_replay_type: str, 'fixed', 'dynamic', or None. use_supervised_replay: str, whether to use supervised replay (aka 'SMGR'). """ # Set tf random seed. tfc.set_random_seed(random_seed) np.set_printoptions(precision=2, suppress=True) # First set up the data source(s) and get dataset info. if dataset == 'mnist': batch_size = 100 test_batch_size = 1000 dataset_kwargs = {} image_key = 'image' label_key = 'label' elif dataset == 'omniglot': batch_size = 15 test_batch_size = 1318 dataset_kwargs = {} image_key = 'image' label_key = 'alphabet' else: raise NotImplementedError dataset_ops = get_data_sources(dataset, dataset_kwargs, batch_size, test_batch_size, training_data_type, n_concurrent_classes, image_key, label_key) train_data = dataset_ops.train_data train_data_for_clf = dataset_ops.train_data_for_clf valid_data = dataset_ops.valid_data test_data = dataset_ops.test_data output_shape = dataset_ops.ds_info.features[image_key].shape n_x = np.prod(output_shape) n_classes = dataset_ops.ds_info.features[label_key].num_classes num_train_examples = dataset_ops.ds_info.splits['train'].num_examples # Check that the number of classes is compatible with the training scenario assert n_classes % n_concurrent_classes == 0 assert n_steps % (n_classes / n_concurrent_classes) == 0 # Set specific params depending on the type of gen replay if gen_replay_type == 'fixed': data_period = data_period = int(n_steps / (n_classes / n_concurrent_classes)) gen_every_n = 2 # Blend in a gen replay batch every 2 steps gen_refresh_period = data_period # How often to refresh the batches of # generated data (equivalent to snapshotting a generative model) gen_refresh_on_expansion = False # Don't refresh on dyn expansion elif gen_replay_type == 'dynamic': gen_every_n = 2 # Blend in a gen replay batch every 2 steps gen_refresh_period = 1e8 # Never refresh generated data periodically gen_refresh_on_expansion = True # Refresh on dyn expansion instead elif gen_replay_type is None: gen_every_n = 0 # Don't use any gen replay batches gen_refresh_period = 1e8 # Never refresh generated data periodically gen_refresh_on_expansion = False # Don't refresh on dyn expansion else: raise NotImplementedError max_gen_batches = 5000 # Max num of gen batches (proxy for storing a model) # Set dynamic expansion parameters exp_wait_steps = 100 # Steps to wait after expansion before eligible again exp_burn_in = 100 # Steps to wait at start of learning before eligible exp_buffer_size = 100 # Size of the buffer of poorly explained data num_buffer_train_steps = 10 # Num steps to train component on buffer # Define a global tf variable for the number of active components. n_y_active_np = n_y_active n_y_active = tfc.get_variable( initializer=tf.constant(n_y_active_np, dtype=tf.int32), trainable=False, name='n_y_active', dtype=tf.int32) logging.info('Starting CURL script on %s data.', dataset) # Set up placeholders for training. x_train_raw = tfc.placeholder( dtype=tf.float32, shape=(batch_size,) + output_shape) label_train = tfc.placeholder(dtype=tf.int32, shape=(batch_size,)) def binarize_fn(x): """Binarize a Bernoulli by rounding the probabilities. Args: x: tf tensor, input image. Returns: A tf tensor with the binarized image """ return tf.cast(tf.greater(x, 0.5 * tf.ones_like(x)), tf.float32) if dataset == 'mnist': x_train = binarize_fn(x_train_raw) x_valid = binarize_fn(valid_data[image_key]) if valid_data else None x_test = binarize_fn(test_data[image_key]) x_train_for_clf = binarize_fn(train_data_for_clf[image_key]) elif 'cifar' in dataset or dataset == 'omniglot': x_train = x_train_raw x_valid = valid_data[image_key] if valid_data else None x_test = test_data[image_key] x_train_for_clf = train_data_for_clf[image_key] else: raise ValueError('Unknown dataset {}'.format(dataset)) label_valid = valid_data[label_key] if valid_data else None label_test = test_data[label_key] # Set up CURL modules. shared_encoder = model.SharedEncoder(name='shared_encoder', **encoder_kwargs) latent_encoder = functools.partial(model.latent_encoder_fn, n_y=n_y, n_z=n_z) latent_encoder = snt.Module(latent_encoder, name='latent_encoder') latent_decoder = functools.partial(model.latent_decoder_fn, n_z=n_z) latent_decoder = snt.Module(latent_decoder, name='latent_decoder') cluster_encoder = functools.partial( model.cluster_encoder_fn, n_y_active=n_y_active, n_y=n_y) cluster_encoder = snt.Module(cluster_encoder, name='cluster_encoder') data_decoder = functools.partial( model.data_decoder_fn, output_type=output_type, output_shape=output_shape, n_x=n_x, n_y=n_y, **decoder_kwargs) data_decoder = snt.Module(data_decoder, name='data_decoder') # Uniform prior over y. prior_train_probs = utils.construct_prior_probs(batch_size, n_y, n_y_active) prior_train = snt.Module( lambda: tfp.distributions.OneHotCategorical(probs=prior_train_probs), name='prior_unconditional_train') prior_test_probs = utils.construct_prior_probs(test_batch_size, n_y, n_y_active) prior_test = snt.Module( lambda: tfp.distributions.OneHotCategorical(probs=prior_test_probs), name='prior_unconditional_test') model_train = model.Curl( prior_train, latent_decoder, data_decoder, shared_encoder, cluster_encoder, latent_encoder, n_y_active, is_training=True, name='curl_train') model_eval = model.Curl( prior_test, latent_decoder, data_decoder, shared_encoder, cluster_encoder, latent_encoder, n_y_active, is_training=False, name='curl_test') # Set up training graph y_train = label_train if train_supervised else None y_valid = label_valid if train_supervised else None y_test = label_test if train_supervised else None train_ops = setup_training_and_eval_graphs( x_train, label_train, y_train, n_y, model_train, classify_with_samples, is_training=True, name='train') hiddens_for_clf = model_eval.get_shared_rep(x_train_for_clf, is_training=False) cat_for_clf = model_eval.infer_cluster(hiddens_for_clf) if classify_with_samples: latents_for_clf = model_eval.infer_latent( hiddens=hiddens_for_clf, y=tf.to_float(cat_for_clf.sample())).sample() else: latents_for_clf = model_eval.infer_latent( hiddens=hiddens_for_clf, y=tf.to_float(cat_for_clf.mode())).mean() # Set up validation graph if valid_data is not None: valid_ops = setup_training_and_eval_graphs( x_valid, label_valid, y_valid, n_y, model_eval, classify_with_samples, is_training=False, name='valid') # Set up test graph test_ops = setup_training_and_eval_graphs( x_test, label_test, y_test, n_y, model_eval, classify_with_samples, is_training=False, name='test') # Set up optimizer (with scheduler). global_step = tf.train.get_or_create_global_step() lr_schedule = [ tf.cast(el * num_train_examples / batch_size, tf.int64) for el in lr_schedule ] num_schedule_steps = tf.reduce_sum( tf.cast(global_step >= lr_schedule, tf.float32)) lr = float(lr_init) * float(lr_factor)**num_schedule_steps optimizer = tf.train.AdamOptimizer(learning_rate=lr) with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)): train_step = optimizer.minimize(train_ops.elbo) train_step_supervised = optimizer.minimize(train_ops.elbo_supervised) # For dynamic expansion, we want to train only new-component-related params cat_params = tf.get_collection( tf.GraphKeys.TRAINABLE_VARIABLES, 'cluster_encoder/mlp_cluster_encoder_final') component_params = tf.get_collection( tf.GraphKeys.TRAINABLE_VARIABLES, 'latent_encoder/mlp_latent_encoder_*') prior_params = tf.get_collection( tf.GraphKeys.TRAINABLE_VARIABLES, 'latent_decoder/latent_prior*') train_step_expansion = optimizer.minimize( train_ops.elbo_supervised, var_list=cat_params+component_params+prior_params) # Set up ops for generative replay if gen_every_n > 0: # How many generative batches will we use each period? gen_buffer_size = min( int(gen_refresh_period / gen_every_n), max_gen_batches) # Class each sample should be drawn from (default to uniform prior) y_gen = tfp.distributions.OneHotCategorical( probs=np.ones((batch_size, n_y)) / n_y, dtype=tf.float32, name='extra_train_classes').sample() gen_samples = model_train.sample(y=y_gen, mean=True) if dataset == 'mnist' or dataset == 'omniglot': gen_samples = binarize_fn(gen_samples) # Set up ops to dynamically modify parameters (for dynamic expansion) dynamic_ops = setup_dynamic_ops(n_y) logging.info('Created computation graph.') n_steps_per_class = n_steps / n_classes # pylint: disable=invalid-name cumulative_component_counts = np.array([0] * n_y).astype(float) recent_component_counts = np.array([0] * n_y).astype(float) gen_buffer_ind = 0 # Buffer of poorly explained data (if we're doing dynamic expansion). poor_data_buffer = [] poor_data_labels = [] all_full_poor_data_buffers = [] all_full_poor_data_labels = [] has_expanded = False steps_since_expansion = 0 gen_buffer_ind = 0 eligible_for_expansion = False # Flag to ensure we wait a bit after expansion # Set up basic ops to run and quantities to log. ops_to_run = { 'train_ELBO': train_ops.elbo, 'train_log_p_x': train_ops.log_p_x, 'train_kl_y': train_ops.kl_y, 'train_kl_z': train_ops.kl_z, 'train_ll': train_ops.ll, 'train_batch_purity': train_ops.purity, 'train_probs': train_ops.cat_probs, 'n_y_active': n_y_active } if valid_data is not None: valid_ops_to_run = { 'valid_ELBO': valid_ops.elbo, 'valid_kl_y': valid_ops.kl_y, 'valid_kl_z': valid_ops.kl_z, 'valid_confusion': valid_ops.confusion } else: valid_ops_to_run = {} test_ops_to_run = { 'test_ELBO': test_ops.elbo, 'test_kl_y': test_ops.kl_y, 'test_kl_z': test_ops.kl_z, 'test_confusion': test_ops.confusion } to_log = ['train_batch_purity'] to_log_eval = ['test_purity', 'test_ELBO', 'test_kl_y', 'test_kl_z'] if valid_data is not None: to_log_eval += ['valid_ELBO', 'valid_purity'] if train_supervised: # Track supervised losses, train on supervised loss. ops_to_run.update({ 'train_ELBO_supervised': train_ops.elbo_supervised, 'train_log_p_x_supervised': train_ops.log_p_x_supervised, 'train_kl_y_supervised': train_ops.kl_y_supervised, 'train_kl_z_supervised': train_ops.kl_z_supervised, 'train_ll_supervised': train_ops.ll_supervised }) default_train_step = train_step_supervised to_log += [ 'train_ELBO_supervised', 'train_log_p_x_supervised', 'train_kl_y_supervised', 'train_kl_z_supervised' ] else: # Track unsupervised losses, train on unsupervised loss. ops_to_run.update({ 'train_ELBO': train_ops.elbo, 'train_kl_y': train_ops.kl_y, 'train_kl_z': train_ops.kl_z, 'train_ll': train_ops.ll }) default_train_step = train_step to_log += ['train_ELBO', 'train_kl_y', 'train_kl_z'] with tf.train.SingularMonitoredSession() as sess: for step in range(n_steps): feed_dict = {} # Use the default training loss, but vary it each step depending on the # training scenario (eg. for supervised gen replay, we alternate losses) ops_to_run['train_step'] = default_train_step ### 1) PERIODICALLY TAKE SNAPSHOTS FOR GENERATIVE REPLAY ### if (gen_refresh_period and step % gen_refresh_period == 0 and gen_every_n > 0): # First, increment cumulative count and reset recent probs count. cumulative_component_counts += recent_component_counts recent_component_counts = np.zeros(n_y) # Generate enough samples for the rest of the next period # (Functionally equivalent to storing and sampling from the model). gen_buffer_images, gen_buffer_labels = get_generated_data( sess=sess, gen_op=gen_samples, y_input=y_gen, gen_buffer_size=gen_buffer_size, component_counts=cumulative_component_counts) ### 2) DECIDE WHICH DATA SOURCE TO USE (GENERATIVE OR REAL DATA) ### periodic_refresh_started = ( gen_refresh_period and step >= gen_refresh_period) refresh_on_expansion_started = (gen_refresh_on_expansion and has_expanded) if ((periodic_refresh_started or refresh_on_expansion_started) and gen_every_n > 0 and step % gen_every_n == 1): # Use generated data for the training batch used_real_data = False s = gen_buffer_ind * batch_size e = (gen_buffer_ind + 1) * batch_size gen_data_array = { 'image': gen_buffer_images[s:e], 'label': gen_buffer_labels[s:e] } gen_buffer_ind = (gen_buffer_ind + 1) % gen_buffer_size # Feed it as x_train because it's already reshaped and binarized. feed_dict.update({ x_train: gen_data_array['image'], label_train: gen_data_array['label'] }) if use_supervised_replay: # Convert label to one-hot before feeding in. gen_label_onehot = np.eye(n_y)[gen_data_array['label']] feed_dict.update({model_train.y_label: gen_label_onehot}) ops_to_run['train_step'] = train_step_supervised else: # Else use the standard training data sources. used_real_data = True # Select appropriate data source for iid or sequential setup. if training_data_type == 'sequential': current_data_period = int( min(step / n_steps_per_class, len(train_data) - 1)) # If training supervised, set n_y_active directly based on how many # classes have been seen if train_supervised: assert not dynamic_expansion n_y_active_np = n_concurrent_classes * ( current_data_period // n_concurrent_classes +1) n_y_active.load(n_y_active_np, sess) train_data_array = sess.run(train_data[current_data_period]) # If we are blending classes, figure out where we are in the data # period and add some fraction of other samples. if blend_classes: # If in the first quarter, blend in examples from the previous class if (step % n_steps_per_class < n_steps_per_class / 4 and current_data_period > 0): other_train_data_array = sess.run( train_data[current_data_period - 1]) num_other = int( (n_steps_per_class / 2 - 2 * (step % n_steps_per_class)) * batch_size / n_steps_per_class) other_inds = np.random.permutation(batch_size)[:num_other] train_data_array[image_key][:num_other] = other_train_data_array[ image_key][other_inds] train_data_array[label_key][:num_other] = other_train_data_array[ label_key][other_inds] # If in the last quarter, blend in examples from the next class elif (step % n_steps_per_class > 3 * n_steps_per_class / 4 and current_data_period < n_classes - 1): other_train_data_array = sess.run(train_data[current_data_period + 1]) num_other = int( (2 * (step % n_steps_per_class) - 3 * n_steps_per_class / 2) * batch_size / n_steps_per_class) other_inds = np.random.permutation(batch_size)[:num_other] train_data_array[image_key][:num_other] = other_train_data_array[ image_key][other_inds] train_data_array['label'][:num_other] = other_train_data_array[ label_key][other_inds] # Otherwise, just use the current class else: train_data_array = sess.run(train_data) feed_dict.update({ x_train_raw: train_data_array[image_key], label_train: train_data_array[label_key] }) ### 3) PERFORM A GRADIENT STEP ### results = sess.run(ops_to_run, feed_dict=feed_dict) del results['train_step'] ### 4) COMPUTE ADDITIONAL DIAGNOSTIC OPS ON VALIDATION/TEST SETS. ### if (step+1) % report_interval == 0: if valid_data is not None: logging.info('Evaluating on validation and test set!') proc_ops = { k: (np.sum if 'confusion' in k else np.mean) for k in valid_ops_to_run } results.update( process_dataset( dataset_ops.valid_iter, valid_ops_to_run, sess, feed_dict=feed_dict, processing_ops=proc_ops)) results['valid_purity'] = compute_purity(results['valid_confusion']) else: logging.info('Evaluating on test set!') proc_ops = { k: (np.sum if 'confusion' in k else np.mean) for k in test_ops_to_run } results.update(process_dataset(dataset_ops.test_iter, test_ops_to_run, sess, feed_dict=feed_dict, processing_ops=proc_ops)) results['test_purity'] = compute_purity(results['test_confusion']) curr_to_log = to_log + to_log_eval else: curr_to_log = list(to_log) # copy to prevent in-place modifications ### 5) DYNAMIC EXPANSION ### if dynamic_expansion and used_real_data: # If we're doing dynamic expansion and below max capacity then add # poorly defined data points to a buffer. # First check whether the model is eligible for expansion (the model # becomes ineligible for a fixed time after each expansion, and when # it has hit max capacity). if (steps_since_expansion >= exp_wait_steps and step >= exp_burn_in and n_y_active_np < n_y): eligible_for_expansion = True steps_since_expansion += 1 if eligible_for_expansion: # Add poorly explained data samples to a buffer. poor_inds = results['train_ll'] < ll_thresh poor_data_buffer.extend(feed_dict[x_train_raw][poor_inds]) poor_data_labels.extend(feed_dict[label_train][poor_inds]) n_poor_data = len(poor_data_buffer) # If buffer is big enough, then add a new component and train just the # new component with several steps of gradient descent. # (We just feed in a onehot cluster vector to indicate which # component). if n_poor_data >= exp_buffer_size: # Dump the buffers so we can log them. all_full_poor_data_buffers.append(poor_data_buffer) all_full_poor_data_labels.append(poor_data_labels) # Take a new generative snapshot if specified. if gen_refresh_on_expansion and gen_every_n > 0: # Increment cumulative count and reset recent probs count. cumulative_component_counts += recent_component_counts recent_component_counts = np.zeros(n_y) gen_buffer_images, gen_buffer_labels = get_generated_data( sess=sess, gen_op=gen_samples, y_input=y_gen, gen_buffer_size=gen_buffer_size, component_counts=cumulative_component_counts) # Cull to a multiple of batch_size (keep the later data samples). n_poor_batches = int(n_poor_data / batch_size) poor_data_buffer = poor_data_buffer[-(n_poor_batches * batch_size):] poor_data_labels = poor_data_labels[-(n_poor_batches * batch_size):] # Find most probable component (on poor batch). poor_cprobs = [] for bs in range(n_poor_batches): poor_cprobs.append( sess.run( train_ops.cat_probs, feed_dict={ x_train_raw: poor_data_buffer[bs * batch_size:(bs + 1) * batch_size] })) best_cluster = np.argmax(np.sum(np.vstack(poor_cprobs), axis=0)) # Initialize parameters of the new component from most prob # existing. new_cluster = n_y_active_np copy_component_params(best_cluster, new_cluster, sess, **dynamic_ops) # Increment mixture component count n_y_active. n_y_active_np += 1 n_y_active.load(n_y_active_np, sess) # Perform a number of steps of gradient descent on the data buffer, # training only the new component (supervised loss). for _ in range(num_buffer_train_steps): for bs in range(n_poor_batches): x_batch = poor_data_buffer[bs * batch_size:(bs + 1) * batch_size] label_batch = [new_cluster] * batch_size label_onehot_batch = np.eye(n_y)[label_batch] _ = sess.run( train_step_expansion, feed_dict={ x_train_raw: x_batch, model_train.y_label: label_onehot_batch }) # Empty the buffer. poor_data_buffer = [] poor_data_labels = [] # Reset the threshold flag so we have a burn in before the next # component. eligible_for_expansion = False has_expanded = True steps_since_expansion = 0 # Accumulate counts. if used_real_data: train_cat_probs_vals = results['train_probs'] recent_component_counts += np.sum( train_cat_probs_vals, axis=0).astype(float) ### 6) LOGGING AND EVALUATION ### cleanup_for_print = lambda x: ', {}: %.{}f'.format( x.capitalize().replace('_', ' '), 3) log_str = 'Iteration %d' log_str += ''.join([cleanup_for_print(el) for el in curr_to_log]) log_str += ' n_active: %d' logging.info( log_str, *([step] + [results[el] for el in curr_to_log] + [n_y_active_np])) # Periodically perform evaluation if (step + 1) % report_interval == 0: # Report test purity and related measures logging.info( 'Iteration %d, Test purity: %.3f, Test ELBO: %.3f, Test ' 'KLy: %.3f, Test KLz: %.3f', step, results['test_purity'], results['test_ELBO'], results['test_kl_y'], results['test_kl_z']) # Flush data only once in a while to allow buffering of data for more # efficient writes. results['all_full_poor_data_buffers'] = all_full_poor_data_buffers results['all_full_poor_data_labels'] = all_full_poor_data_labels logging.info('Also training a classifier in latent space') # Perform knn classification from latents, to evaluate discriminability. # Get and encode training and test datasets. clf_train_vals = process_dataset( dataset_ops.train_iter_for_clf, { 'latents': latents_for_clf, 'labels': train_data_for_clf[label_key] }, sess, feed_dict, aggregation_ops=np.concatenate) clf_test_vals = process_dataset( dataset_ops.test_iter, { 'latents': test_ops.latents, 'labels': test_data[label_key] }, sess, aggregation_ops=np.concatenate) # Perform knn classification. knn_models = [] for nval in knn_values: # Fit training dataset. clf = neighbors.KNeighborsClassifier(n_neighbors=nval) clf.fit(clf_train_vals['latents'], clf_train_vals['labels']) knn_models.append(clf) results['train_' + str(nval) + 'nn_acc'] = clf.score( clf_train_vals['latents'], clf_train_vals['labels']) # Get test performance. results['test_' + str(nval) + 'nn_acc'] = clf.score( clf_test_vals['latents'], clf_test_vals['labels']) logging.info( 'Iteration %d %d-NN classifier accuracies, Training: ' '%.3f, Test: %.3f', step, nval, results['train_' + str(nval) + 'nn_acc'], results['test_' + str(nval) + 'nn_acc']) ================================================ FILE: curl/unit_test.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Tests for curl.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from absl.testing import absltest from curl import training class TrainingTest(absltest.TestCase): def testRunTraining(self): training.run_training( dataset='mnist', output_type='bernoulli', n_y=10, n_y_active=1, training_data_type='sequential', n_concurrent_classes=1, lr_init=1e-3, lr_factor=1., lr_schedule=[1], blend_classes=False, train_supervised=False, n_steps=1000, report_interval=1000, knn_values=[3], random_seed=1, encoder_kwargs={ 'encoder_type': 'multi', 'n_enc': [1200, 600, 300, 150], 'enc_strides': [1], }, decoder_kwargs={ 'decoder_type': 'single', 'n_dec': [500, 500], 'dec_up_strides': None, }, n_z=32, dynamic_expansion=True, ll_thresh=-200.0, classify_with_samples=False, gen_replay_type='fixed', use_supervised_replay=False, ) if __name__ == '__main__': absltest.main() ================================================ FILE: curl/utils.py ================================================ ################################################################################ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################################################ """Some common utils.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from absl import logging import tensorflow.compat.v1 as tf import tensorflow_probability as tfp def generate_gaussian(logits, sigma_nonlin, sigma_param): """Generate a Gaussian distribution given a selected parameterisation.""" mu, sigma = tf.split(value=logits, num_or_size_splits=2, axis=1) if sigma_nonlin == 'exp': sigma = tf.exp(sigma) elif sigma_nonlin == 'softplus': sigma = tf.nn.softplus(sigma) else: raise ValueError('Unknown sigma_nonlin {}'.format(sigma_nonlin)) if sigma_param == 'var': sigma = tf.sqrt(sigma) elif sigma_param != 'std': raise ValueError('Unknown sigma_param {}'.format(sigma_param)) return tfp.distributions.Normal(loc=mu, scale=sigma) def construct_prior_probs(batch_size, n_y, n_y_active): """Construct the uniform prior probabilities. Args: batch_size: int, the size of the batch. n_y: int, the number of categorical cluster components. n_y_active: tf.Variable, the number of components that are currently in use. Returns: Tensor representing the prior probability matrix, size of [batch_size, n_y]. """ probs = tf.ones((batch_size, n_y_active)) / tf.cast( n_y_active, dtype=tf.float32) paddings1 = tf.stack([tf.constant(0), tf.constant(0)], axis=0) paddings2 = tf.stack([tf.constant(0), n_y - n_y_active], axis=0) paddings = tf.stack([paddings1, paddings2], axis=1) probs = tf.pad(probs, paddings, constant_values=1e-12) probs.set_shape((batch_size, n_y)) logging.info('Prior shape: %s', str(probs.shape)) return probs def maybe_center_crop(layer, target_hw): """Center crop the layer to match a target shape.""" l_height, l_width = layer.shape.as_list()[1:3] t_height, t_width = target_hw assert t_height <= l_height and t_width <= l_width if (l_height - t_height) % 2 != 0 or (l_width - t_width) % 2 != 0: logging.warn( 'It is impossible to center-crop [%d, %d] into [%d, %d].' ' Crop will be uneven.', t_height, t_width, l_height, l_width) border = int((l_height - t_height) / 2) x_0, x_1 = border, l_height - border border = int((l_width - t_width) / 2) y_0, y_1 = border, l_width - border layer_cropped = layer[:, x_0:x_1, y_0:y_1, :] return layer_cropped ================================================ FILE: density_functional_approximation_dm21/.bazelrc ================================================ # The following configuration has been taken from the TensorFlow 2.11.0 release. # # TensorFlow Bazel configuration file. # This file tries to group and simplify build options for TensorFlow # # ----CONFIG OPTIONS---- # Android options: # android: # android_arm: # android_arm64: # android_x86: # android_x86_64: # # iOS options: # ios: # ios_armv7: # ios_arm64: # ios_i386: # ios_x86_64: # ios_fat: # # Macosx options # darwin_arm64: # # Compiler options: # cuda_clang: Use clang when building CUDA code. # avx_linux: Build with avx instruction set on linux. # avx2_linux: Build with avx2 instruction set on linux. # native_arch_linux: Build with instruction sets available to the host machine on linux # avx_win: Build with avx instruction set on windows # avx2_win: Build with avx2 instruction set on windows # # Other build options: # short_logs: Only log errors during build, skip warnings. # verbose_logs: Show all compiler warnings during build. # monolithic: Build all TF C++ code into a single shared object. # dynamic_kernels: Try to link all kernels dynamically (experimental). # libc++: Link against libc++ instead of stdlibc++ # asan: Build with the clang address sanitizer # msan: Build with the clang memory sanitizer # ubsan: Build with the clang undefined behavior sanitizer # dbg: Build with debug info # # # TF version options; # v1: Build TF V1 (without contrib) # v2: Build TF v2 # # Feature and Third party library support options: # xla: Build TF with XLA # tpu: Build TF with TPU support # cuda: Build with full cuda support. # rocm: Build with AMD GPU support (rocm). # mkl: Enable full mkl support. # tensorrt: Enable Tensorrt support. # numa: Enable numa using hwloc. # noaws: Disable AWS S3 storage support # nogcp: Disable GCS support. # nohdfs: Disable hadoop hdfs support. # nonccl: Disable nccl support. # # # Remote build execution options (only configured to work with TF team projects for now.) # rbe: General RBE options shared by all flavors. # rbe_linux: General RBE options used on all linux builds. # rbe_win: General RBE options used on all windows builds. # # rbe_cpu_linux: RBE options to build with only CPU support. # rbe_linux_cuda_nvcc_py*: RBE options to build with GPU support using nvcc. # # rbe_linux_py3: Linux Python 3 RBE config # # rbe_win_py37: Windows Python 3.7 RBE config # rbe_win_py38: Windows Python 3.8 RBE config # rbe_win_py39: Windows Python 3.9 RBE config # rbe_win_py310: Windows Python 3.10 RBE config # # tensorflow_testing_rbe_linux: RBE options to use RBE with tensorflow-testing project on linux # tensorflow_testing_rbe_win: RBE options to use RBE with tensorflow-testing project on windows # # rbe_lite_linux: RBE options to build TF Lite. # # Embedded Linux options (experimental and only tested with TFLite build yet) # elinux: General Embedded Linux options shared by all flavors. # elinux_aarch64: Embedded Linux options for aarch64 (ARM64) CPU support. # elinux_armhf: Embedded Linux options for armhf (ARMv7) CPU support. # # Release build options (for all operating systems) # release_base: Common options for all builds on all operating systems. # release_gpu_base: Common options for GPU builds on Linux and Windows. # release_cpu_linux: Toolchain and CUDA options for Linux CPU builds. # release_cpu_macos: Toolchain and CUDA options for MacOS CPU builds. # release_gpu_linux: Toolchain and CUDA options for Linux GPU builds. # release_cpu_windows: Toolchain and CUDA options for Windows CPU builds. # release_gpu_windows: Toolchain and CUDA options for Windows GPU builds. # Default build options. These are applied first and unconditionally. # For projects which use TensorFlow as part of a Bazel build process, putting # nothing in a bazelrc will default to a monolithic build. The following line # opts in to modular op registration support by default. build --define framework_shared_object=true build --define tsl_protobuf_header_only=true build --define=use_fast_cpp_protos=true build --define=allow_oversize_protos=true build --spawn_strategy=standalone build -c opt # Make Bazel print out all options from rc files. build --announce_rc # TODO(mihaimaruseac): Document this option or remove if no longer needed build --define=grpc_no_ares=true # See https://github.com/bazelbuild/bazel/issues/7362 for information on what # --incompatible_remove_legacy_whole_archive flag does. # This flag is set to true in Bazel 1.0 and newer versions. We tried to migrate # Tensorflow to the default, however test coverage wasn't enough to catch the # errors. # There is ongoing work on Bazel team's side to provide support for transitive # shared libraries. As part of migrating to transitive shared libraries, we # hope to provide a better mechanism for control over symbol exporting, and # then tackle this issue again. # # TODO: Remove this line once TF doesn't depend on Bazel wrapping all library # archives in -whole_archive -no_whole_archive. build --noincompatible_remove_legacy_whole_archive # TODO(mihaimaruseac): Document this option or remove if no longer needed build --enable_platform_specific_config # Enable XLA support by default. build --define=with_xla_support=true # TODO(mihaimaruseac): Document this option or remove if no longer needed build --config=short_logs # TODO(mihaimaruseac): Document this option or remove if no longer needed build --config=v2 # Disable AWS/HDFS support by default build --define=no_aws_support=true build --define=no_hdfs_support=true # TF now has `cc_shared_library` targets, so it needs the experimental flag # TODO(rostam): Remove when `cc_shared_library` is enabled by default build --experimental_cc_shared_library # cc_shared_library ensures no library is linked statically more than once. build --experimental_link_static_libraries_once=false # Default options should come above this line. # Allow builds using libc++ as a linker library # This is mostly for OSSFuzz, so we also pass in the flags from environment to clean build file build:libc++ --action_env=CC build:libc++ --action_env=CXX build:libc++ --action_env=CXXFLAGS=-stdlib=libc++ build:libc++ --action_env=PATH build:libc++ --define force_libcpp=enabled build:libc++ --linkopt -fuse-ld=lld # Android configs. Bazel needs to have --cpu and --fat_apk_cpu both set to the # target CPU to build transient dependencies correctly. See # https://docs.bazel.build/versions/master/user-manual.html#flag--fat_apk_cpu build:android --crosstool_top=//external:android/crosstool build:android --host_crosstool_top=@bazel_tools//tools/cpp:toolchain build:android_arm --config=android build:android_arm --cpu=armeabi-v7a build:android_arm --fat_apk_cpu=armeabi-v7a build:android_arm64 --config=android build:android_arm64 --cpu=arm64-v8a build:android_arm64 --fat_apk_cpu=arm64-v8a build:android_x86 --config=android build:android_x86 --cpu=x86 build:android_x86 --fat_apk_cpu=x86 build:android_x86_64 --config=android build:android_x86_64 --cpu=x86_64 build:android_x86_64 --fat_apk_cpu=x86_64 # Sets the default Apple platform to macOS. build:macos --apple_platform_type=macos # gRPC on MacOS requires this #define build:macos --copt=-DGRPC_BAZEL_BUILD # Settings for MacOS on ARM CPUs. build:macos_arm64 --cpu=darwin_arm64 build:macos_arm64 --macos_minimum_os=11.0 # iOS configs for each architecture and the fat binary builds. build:ios --apple_platform_type=ios build:ios --apple_bitcode=embedded --copt=-fembed-bitcode build:ios --copt=-Wno-c++11-narrowing build:ios_armv7 --config=ios build:ios_armv7 --cpu=ios_armv7 build:ios_arm64 --config=ios build:ios_arm64 --cpu=ios_arm64 build:ios_sim_arm64 --config=ios build:ios_sim_arm64 --cpu=ios_sim_arm64 build:ios_i386 --config=ios build:ios_i386 --cpu=ios_i386 build:ios_x86_64 --config=ios build:ios_x86_64 --cpu=ios_x86_64 build:ios_fat --config=ios build:ios_fat --ios_multi_cpus=armv7,arm64,i386,x86_64 # Config to use a mostly-static build and disable modular op registration # support (this will revert to loading TensorFlow with RTLD_GLOBAL in Python). # By default, TensorFlow will build with a dependence on # //tensorflow:libtensorflow_framework.so. build:monolithic --define framework_shared_object=false build:monolithic --define tsl_protobuf_header_only=false build:monolithic --experimental_link_static_libraries_once=false # b/229868128 # Please note that MKL on MacOS or windows is still not supported. # If you would like to use a local MKL instead of downloading, please set the # environment variable "TF_MKL_ROOT" every time before build. build:mkl --define=build_with_mkl=true --define=enable_mkl=true build:mkl --define=tensorflow_mkldnn_contraction_kernel=0 build:mkl --define=build_with_openmp=true build:mkl -c opt # config to build OneDNN backend with a user specified threadpool. build:mkl_threadpool --define=build_with_mkl=true --define=enable_mkl=true build:mkl_threadpool --define=tensorflow_mkldnn_contraction_kernel=0 build:mkl_threadpool --define=build_with_mkl_opensource=true build:mkl_threadpool -c opt # Config setting to build oneDNN with Compute Library for the Arm Architecture (ACL). build:mkl_aarch64 --define=build_with_mkl_aarch64=true build:mkl_aarch64 --define=build_with_openmp=true build:mkl_aarch64 --define=build_with_acl=true build:mkl_aarch64 -c opt # Config setting to build oneDNN with Compute Library for the Arm Architecture (ACL). # with Eigen threadpool support build:mkl_aarch64_threadpool --define=build_with_mkl_aarch64=true build:mkl_aarch64_threadpool -c opt # This config refers to building CUDA op kernels with nvcc. build:cuda --repo_env TF_NEED_CUDA=1 build:cuda --crosstool_top=@local_config_cuda//crosstool:toolchain build:cuda --@local_config_cuda//:enable_cuda # This config refers to building CUDA op kernels with clang. build:cuda_clang --config=cuda build:cuda_clang --repo_env TF_CUDA_CLANG=1 build:cuda_clang --@local_config_cuda//:cuda_compiler=clang # Debug config build:dbg -c dbg # Only include debug info for files under tensorflow/, excluding kernels, to # reduce the size of the debug info in the binary. This is because if the debug # sections in the ELF binary are too large, errors can occur. See # https://github.com/tensorflow/tensorflow/issues/48919. # Users can still include debug info for a specific kernel, e.g. with: # --config=dbg --per_file_copt=+tensorflow/core/kernels/identity_op.*@-g build:dbg --per_file_copt=+.*,-tensorflow.*@-g0 build:dbg --per_file_copt=+tensorflow/core/kernels.*@-g0 # for now, disable arm_neon. see: https://github.com/tensorflow/tensorflow/issues/33360 build:dbg --cxxopt -DTF_LITE_DISABLE_X86_NEON # AWS SDK must be compiled in release mode. see: https://github.com/tensorflow/tensorflow/issues/37498 build:dbg --copt -DDEBUG_BUILD # Config to build TPU backend build:tpu --define=with_tpu_support=true build:tensorrt --repo_env TF_NEED_TENSORRT=1 build:rocm --crosstool_top=@local_config_rocm//crosstool:toolchain build:rocm --define=using_rocm_hipcc=true build:rocm --define=tensorflow_mkldnn_contraction_kernel=0 build:rocm --repo_env TF_NEED_ROCM=1 # Disable unused-result on rocm builds. build:rocm --copt="-Wno-error=unused-result" # Options extracted from configure script build:numa --define=with_numa_support=true # Options to disable default on features build:noaws --define=no_aws_support=true build:nogcp --define=no_gcp_support=true build:nohdfs --define=no_hdfs_support=true build:nonccl --define=no_nccl_support=true build:stackdriver_support --define=stackdriver_support=true # Modular TF build options build:dynamic_kernels --define=dynamic_loaded_kernels=true build:dynamic_kernels --copt=-DAUTOLOAD_DYNAMIC_KERNELS # Don't trigger --config= when cross-compiling. build:android --noenable_platform_specific_config build:ios --noenable_platform_specific_config # Suppress all C++ compiler warnings, otherwise build logs become 10s of MBs. build:android --copt=-w build:ios --copt=-w build:linux --host_copt=-w build:macos --copt=-w build:windows --copt=/W0 build:windows --host_copt=/W0 # Suppress most C++ complier warnings to reduce log size but allow # for specific warnings to still be present. build:linux --copt="-Wno-all" build:linux --copt="-Wno-extra" build:linux --copt="-Wno-deprecated" build:linux --copt="-Wno-deprecated-declarations" build:linux --copt="-Wno-ignored-attributes" build:linux --copt="-Wno-unknown-warning" build:linux --copt="-Wno-array-parameter" build:linux --copt="-Wno-stringop-overflow" build:linux --copt="-Wno-array-bounds" # Add unused-result as an error on Linux. build:linux --copt="-Wunused-result" build:linux --copt="-Werror=unused-result" # On Windows, `__cplusplus` is wrongly defined without this switch # See https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ build:windows --copt=/Zc:__cplusplus build:windows --host_copt=/Zc:__cplusplus # Tensorflow uses M_* math constants that only get defined by MSVC headers if # _USE_MATH_DEFINES is defined. build:windows --copt=/D_USE_MATH_DEFINES build:windows --host_copt=/D_USE_MATH_DEFINES # Windows has a relatively short command line limit, which TF has begun to hit. # See https://docs.bazel.build/versions/main/windows.html build:windows --features=compiler_param_file # Speed Windows compile times. Available in VS 16.4 (we are on 16.11). See # https://groups.google.com/a/tensorflow.org/d/topic/build/SsW98Eo7l3o/discussion build:windows --copt=/d2ReducedOptimizeHugeFunctions build:windows --host_copt=/d2ReducedOptimizeHugeFunctions # Default paths for TF_SYSTEM_LIBS build:linux --define=PREFIX=/usr build:linux --define=LIBDIR=$(PREFIX)/lib build:linux --define=INCLUDEDIR=$(PREFIX)/include build:linux --define=PROTOBUF_INCLUDE_PATH=$(PREFIX)/include build:macos --define=PREFIX=/usr build:macos --define=LIBDIR=$(PREFIX)/lib build:macos --define=INCLUDEDIR=$(PREFIX)/include build:macos --define=PROTOBUF_INCLUDE_PATH=$(PREFIX)/include # TF_SYSTEM_LIBS do not work on windows. # By default, build TF in C++ 17 mode. build:android --cxxopt=-std=c++17 build:android --host_cxxopt=-std=c++17 build:ios --cxxopt=-std=c++17 build:ios --host_cxxopt=-std=c++17 build:linux --cxxopt=-std=c++17 build:linux --host_cxxopt=-std=c++17 build:macos --cxxopt=-std=c++17 build:macos --host_cxxopt=-std=c++17 build:windows --cxxopt=/std:c++17 build:windows --host_cxxopt=/std:c++17 # On windows, we still link everything into a single DLL. build:windows --config=monolithic # On linux, we dynamically link small amount of kernels build:linux --config=dynamic_kernels # Make sure to include as little of windows.h as possible build:windows --copt=-DWIN32_LEAN_AND_MEAN build:windows --host_copt=-DWIN32_LEAN_AND_MEAN build:windows --copt=-DNOGDI build:windows --host_copt=-DNOGDI # MSVC (Windows): Standards-conformant preprocessor mode # See https://docs.microsoft.com/en-us/cpp/preprocessor/preprocessor-experimental-overview build:windows --copt=/experimental:preprocessor build:windows --host_copt=/experimental:preprocessor # Misc build options we need for windows. build:windows --linkopt=/DEBUG build:windows --host_linkopt=/DEBUG build:windows --linkopt=/OPT:REF build:windows --host_linkopt=/OPT:REF build:windows --linkopt=/OPT:ICF build:windows --host_linkopt=/OPT:ICF # Verbose failure logs when something goes wrong build:windows --verbose_failures # Work around potential issues with large command lines on windows. # See: https://github.com/bazelbuild/bazel/issues/5163 build:windows --features=compiler_param_file # Do not risk cache corruption. See: # https://github.com/bazelbuild/bazel/issues/3360 build:linux --experimental_guard_against_concurrent_changes # Configure short or long logs build:short_logs --output_filter=DONT_MATCH_ANYTHING build:verbose_logs --output_filter= # Instruction set optimizations # TODO(gunan): Create a feature in toolchains for avx/avx2 to # avoid having to define linux/win separately. build:avx_linux --copt=-mavx build:avx_linux --host_copt=-mavx build:avx2_linux --copt=-mavx2 build:native_arch_linux --copt=-march=native build:avx_win --copt=/arch=AVX build:avx2_win --copt=/arch=AVX2 # Options to build TensorFlow 1.x or 2.x. build:v1 --define=tf_api_version=1 --action_env=TF2_BEHAVIOR=0 build:v2 --define=tf_api_version=2 --action_env=TF2_BEHAVIOR=1 # Disable XLA on mobile. build:xla --define=with_xla_support=true # TODO: remove, it's on by default. build:android --define=with_xla_support=false build:ios --define=with_xla_support=false # BEGIN TF REMOTE BUILD EXECUTION OPTIONS # Options when using remote execution # WARNING: THESE OPTIONS WONT WORK IF YOU DO NOT HAVE PROPER AUTHENTICATION AND PERMISSIONS # Flag to enable remote config common --experimental_repo_remote_exec build:rbe --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 build:rbe --google_default_credentials build:rbe --bes_backend=buildeventservice.googleapis.com build:rbe --bes_results_url="https://source.cloud.google.com/results/invocations" build:rbe --bes_timeout=600s build:rbe --define=EXECUTOR=remote build:rbe --flaky_test_attempts=3 build:rbe --jobs=800 build:rbe --remote_executor=grpcs://remotebuildexecution.googleapis.com build:rbe --remote_timeout=3600 build:rbe --spawn_strategy=remote,worker,standalone,local test:rbe --test_env=USER=anon # Attempt to minimize the amount of data transfer between bazel and the remote # workers: build:rbe --remote_download_toplevel build:rbe_linux_base --config=rbe build:rbe_linux_base --action_env=PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin" build:rbe_linux --config=rbe_linux_base # Non-rbe settings we should include because we do not run configure build:rbe_linux --config=avx_linux # TODO(gunan): Check why we need this specified in rbe, but not in other builds. build:rbe_linux --linkopt=-lrt build:rbe_linux --host_linkopt=-lrt build:rbe_linux --linkopt=-lm build:rbe_linux --host_linkopt=-lm # Use the GPU toolchain until the CPU one is ready. # https://github.com/bazelbuild/bazel/issues/13623 build:rbe_cpu_linux_base --host_crosstool_top="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain" build:rbe_cpu_linux_base --crosstool_top="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain" build:rbe_cpu_linux_base --extra_toolchains="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain-linux-x86_64" build:rbe_cpu_linux_base --extra_execution_platforms="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_cpu_linux_base --host_platform="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_cpu_linux_base --platforms="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_cpu_linux --config=rbe_linux build:rbe_cpu_linux --config=rbe_cpu_linux_base build:rbe_lite_linux --config=rbe_linux_base build:rbe_lite_linux --config=rbe_cpu_linux_base build:rbe_lite_linux --config=rbe_linux_py3_base build:rbe_lite_linux --noexperimental_check_desugar_deps build:rbe_linux_cuda_base --config=rbe_linux build:rbe_linux_cuda_base --config=cuda build:rbe_linux_cuda_base --config=tensorrt build:rbe_linux_cuda_base --action_env=TF_CUDA_VERSION=11 build:rbe_linux_cuda_base --action_env=TF_CUDNN_VERSION=8 build:rbe_linux_cuda_base --repo_env=REMOTE_GPU_TESTING=1 # TensorRT 7 for CUDA 11.1 is compatible with CUDA 11.2, but requires # libnvrtc.so.11.1. See https://github.com/NVIDIA/TensorRT/issues/1064. # TODO(b/187962120): Remove when upgrading to TensorRT 8. test:rbe_linux_cuda_base --test_env=LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda-11.1/lib64" build:rbe_linux_cuda11.2_nvcc_base --config=rbe_linux_cuda_base build:rbe_linux_cuda11.2_nvcc_base --host_crosstool_top="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain" build:rbe_linux_cuda11.2_nvcc_base --crosstool_top="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain" build:rbe_linux_cuda11.2_nvcc_base --extra_toolchains="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain-linux-x86_64" build:rbe_linux_cuda11.2_nvcc_base --extra_execution_platforms="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_linux_cuda11.2_nvcc_base --host_platform="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_linux_cuda11.2_nvcc_base --platforms="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_linux_cuda11.2_nvcc_base --repo_env=TF_CUDA_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda" build:rbe_linux_cuda11.2_nvcc_base --repo_env=TF_TENSORRT_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_tensorrt" build:rbe_linux_cuda11.2_nvcc_base --repo_env=TF_NCCL_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_nccl" build:rbe_linux_cuda11.2_nvcc_py3.7 --config=rbe_linux_cuda11.2_nvcc_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.7" build:rbe_linux_cuda11.2_nvcc_py3.8 --config=rbe_linux_cuda11.2_nvcc_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.8" build:rbe_linux_cuda11.2_nvcc_py3.9 --config=rbe_linux_cuda11.2_nvcc_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.9" build:rbe_linux_cuda11.2_nvcc_py3.10 --config=rbe_linux_cuda11.2_nvcc_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.10" # Map default to CUDA 11.2. build:rbe_linux_cuda_nvcc_py37 --config=rbe_linux_cuda11.2_nvcc_py3.7 build:rbe_linux_cuda_nvcc_py38 --config=rbe_linux_cuda11.2_nvcc_py3.8 build:rbe_linux_cuda_nvcc_py39 --config=rbe_linux_cuda11.2_nvcc_py3.9 build:rbe_linux_cuda_nvcc_py310 --config=rbe_linux_cuda11.2_nvcc_py3.10 # Deprecated configs that people might still use. build:rbe_linux_cuda_nvcc --config=rbe_linux_cuda_nvcc_py39 build:rbe_gpu_linux --config=rbe_linux_cuda_nvcc build:rbe_linux_cuda_clang_base --config=rbe_linux_cuda_base build:rbe_linux_cuda_clang_base --repo_env TF_CUDA_CLANG=1 build:rbe_linux_cuda_clang_base --@local_config_cuda//:cuda_compiler=clang build:rbe_linux_cuda_clang_base --crosstool_top="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain" build:rbe_linux_cuda_clang_base --extra_toolchains="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain-linux-x86_64" build:rbe_linux_cuda_clang_base --extra_execution_platforms="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_linux_cuda_clang_base --host_platform="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_linux_cuda_clang_base --platforms="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_platform//:platform" build:rbe_linux_cuda_clang_base --repo_env=TF_CUDA_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda" build:rbe_linux_cuda_clang_base --repo_env=TF_TENSORRT_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_tensorrt" build:rbe_linux_cuda_clang_base --repo_env=TF_NCCL_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_nccl" build:rbe_linux_cuda_clang_py37 --config=rbe_linux_cuda_clang_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.7" build:rbe_linux_cuda_clang_py38 --config=rbe_linux_cuda_clang_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.8" build:rbe_linux_cuda_clang_py39 --config=rbe_linux_cuda_clang_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.9" build:rbe_linux_cuda_clang_py310 --config=rbe_linux_cuda_clang_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-clang_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.10" # ROCm build:rbe_linux_rocm_base --config=rocm build:rbe_linux_rocm_base --config=rbe_linux build:rbe_linux_rocm_base --crosstool_top="@ubuntu20.04-gcc9_manylinux2014-rocm_config_rocm//crosstool:toolchain" build:rbe_linux_rocm_base --extra_toolchains="@ubuntu20.04-gcc9_manylinux2014-rocm_config_rocm//crosstool:toolchain-linux-x86_64" build:rbe_linux_rocm_base --extra_execution_platforms="@ubuntu20.04-gcc9_manylinux2014-rocm_config_platform//:platform" build:rbe_linux_rocm_base --host_platform="@ubuntu20.04-gcc9_manylinux2014-rocm_config_platform//:platform" build:rbe_linux_rocm_base --platforms="@ubuntu20.04-gcc9_manylinux2014-rocm_config_platform//:platform" build:rbe_linux_rocm_base --action_env=TF_ROCM_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-rocm_config_rocm" build:rbe_linux_rocm_py3.7 --config=rbe_linux_rocm_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-rocm_config_python3.7" build:rbe_linux_rocm_py3.8 --config=rbe_linux_rocm_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-rocm_config_python3.8" build:rbe_linux_rocm_py3.9 --config=rbe_linux_rocm_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-rocm_config_python3.9" build:rbe_linux_rocm_py3.10 --config=rbe_linux_rocm_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-rocm_config_python3.10" # Linux CPU build:rbe_linux_py3 --config=rbe_linux build:rbe_linux_py3 --config=rbe_linux_py3_base build:rbe_linux_py3_base --python_path="/usr/local/bin/python3.9" build:rbe_linux_py3_base --repo_env=TF_PYTHON_CONFIG_REPO="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_python3.9" build:rbe_win --config=rbe build:rbe_win --crosstool_top="//tensorflow/tools/toolchains/win/tf_win_06152022:toolchain" build:rbe_win --extra_toolchains="//tensorflow/tools/toolchains/win/tf_win_06152022:cc-toolchain-x64_windows" build:rbe_win --extra_execution_platforms="//tensorflow/tools/toolchains/win:rbe_windows_ltsc2019" build:rbe_win --host_platform="//tensorflow/tools/toolchains/win:rbe_windows_ltsc2019" build:rbe_win --platforms="//tensorflow/tools/toolchains/win:rbe_windows_ltsc2019" build:rbe_win --shell_executable=C:\\tools\\msys64\\usr\\bin\\bash.exe build:rbe_win --experimental_strict_action_env=true # TODO(gunan): Remove once we use MSVC 2019 with latest patches. build:rbe_win --define=override_eigen_strong_inline=true # Don't build the python zip archive in the RBE build. build:rbe_win --remote_download_minimal build:rbe_win --enable_runfiles build:rbe_win --nobuild_python_zip build:rbe_win_py37 --config=rbe build:rbe_win_py37 --repo_env=TF_PYTHON_CONFIG_REPO="@windows_py37_config_python" build:rbe_win_py37 --python_path=C:\\Python37\\python.exe build:rbe_win_py38 --config=rbe build:rbe_win_py38 --repo_env=PYTHON_BIN_PATH=C:\\Python38\\python.exe build:rbe_win_py38 --repo_env=PYTHON_LIB_PATH=C:\\Python38\\lib\\site-packages build:rbe_win_py38 --repo_env=TF_PYTHON_CONFIG_REPO=//tensorflow/tools/toolchains/win_1803/py38 build:rbe_win_py38 --python_path=C:\\Python38\\python.exe build:rbe_win_py39 --config=rbe build:rbe_win_py39 --repo_env=PYTHON_BIN_PATH=C:\\Python39\\python.exe build:rbe_win_py39 --repo_env=PYTHON_LIB_PATH=C:\\Python39\\lib\\site-packages build:rbe_win_py39 --repo_env=TF_PYTHON_CONFIG_REPO=//tensorflow/tools/toolchains/win_1803/py39 build:rbe_win_py39 --python_path=C:\\Python39\\python.exe build:rbe_win_py310 --config=rbe build:rbe_win_py310 --repo_env=PYTHON_BIN_PATH=C:\\Python310\\python.exe build:rbe_win_py310 --repo_env=PYTHON_LIB_PATH=C:\\Python310\\lib\\site-packages build:rbe_win_py310 --repo_env=TF_PYTHON_CONFIG_REPO=//tensorflow/tools/toolchains/win_1803/py310 build:rbe_win_py310 --python_path=C:\\Python310\\python.exe # These you may need to change for your own GCP project. build:tensorflow_testing_rbe --project_id=tensorflow-testing common:tensorflow_testing_rbe_linux --remote_instance_name=projects/tensorflow-testing/instances/default_instance build:tensorflow_testing_rbe_linux --config=tensorflow_testing_rbe # Build GPU binaries for the RBE test machines (Tesla T4s). build:tensorflow_testing_rbe_linux --repo_env=TF_CUDA_COMPUTE_CAPABILITIES=sm_75 common:tensorflow_testing_rbe_win --remote_instance_name=projects/tensorflow-testing/instances/windows build:tensorflow_testing_rbe_win --config=tensorflow_testing_rbe # TFLite build configs for generic embedded Linux build:elinux --crosstool_top=@local_config_embedded_arm//:toolchain build:elinux --host_crosstool_top=@bazel_tools//tools/cpp:toolchain build:elinux_aarch64 --config=elinux build:elinux_aarch64 --cpu=aarch64 build:elinux_armhf --config=elinux build:elinux_armhf --cpu=armhf build:elinux_armhf --copt -mfp16-format=ieee # END TF REMOTE BUILD EXECUTION OPTIONS # Config-specific options should come above this line. # Load rc file written by ./configure. try-import %workspace%/.tf_configure.bazelrc # Load rc file with user-specific options. try-import %workspace%/.bazelrc.user # Here are bazelrc configs for release builds build:release_base --config=v2 test:release_base --flaky_test_attempts=3 test:release_base --test_size_filters=small,medium build:release_cpu_linux --config=release_base build:release_cpu_linux --config=avx_linux build:release_cpu_linux --crosstool_top="@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain" test:release_cpu_linux --test_env=LD_LIBRARY_PATH build:release_cpu_macos --config=release_base build:release_cpu_macos --config=avx_linux build:release_gpu_base --config=cuda build:release_gpu_base --action_env=TF_CUDA_VERSION="11" build:release_gpu_base --action_env=TF_CUDNN_VERSION="8" build:release_gpu_base --repo_env=TF_CUDA_COMPUTE_CAPABILITIES="sm_35,sm_50,sm_60,sm_70,sm_75,compute_80" build:release_gpu_linux --config=release_cpu_linux build:release_gpu_linux --config=release_gpu_base build:release_gpu_linux --config=tensorrt build:release_gpu_linux --action_env=CUDA_TOOLKIT_PATH="/usr/local/cuda-11.2" build:release_gpu_linux --action_env=LD_LIBRARY_PATH="/usr/local/cuda:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda-11.1/lib64:/usr/local/tensorrt/lib" build:release_gpu_linux --action_env=GCC_HOST_COMPILER_PATH="/dt9/usr/bin/gcc" build:release_gpu_linux --crosstool_top=@ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda//crosstool:toolchain build:release_cpu_windows --config=release_base build:release_cpu_windows --config=avx_win build:release_cpu_windows --define=no_tensorflow_py_deps=true build:release_gpu_windows --config=release_cpu_windows build:release_gpu_windows --config=release_gpu_base # Address sanitizer # CC=clang bazel build --config asan build:asan --strip=never build:asan --copt -fsanitize=address build:asan --copt -DADDRESS_SANITIZER build:asan --copt -g build:asan --copt -O3 build:asan --copt -fno-omit-frame-pointer build:asan --linkopt -fsanitize=address # Memory sanitizer # CC=clang bazel build --config msan build:msan --strip=never build:msan --copt -fsanitize=memory build:msan --copt -DMEMORY_SANITIZER build:msan --copt -g build:msan --copt -O3 build:msan --copt -fno-omit-frame-pointer build:msan --linkopt -fsanitize=memory # Undefined Behavior Sanitizer # CC=clang bazel build --config ubsan build:ubsan --strip=never build:ubsan --copt -fsanitize=undefined build:ubsan --copt -DUNDEFINED_BEHAVIOR_SANITIZER build:ubsan --copt -g build:ubsan --copt -O3 build:ubsan --copt -fno-omit-frame-pointer build:ubsan --linkopt -fsanitize=undefined build:ubsan --linkopt -lubsan # Disable TFRT integration for now unless --config=tfrt is specified. build --deleted_packages=tensorflow/compiler/mlir/tfrt,tensorflow/compiler/mlir/tfrt/benchmarks,tensorflow/compiler/mlir/tfrt/jit/python_binding,tensorflow/compiler/mlir/tfrt/jit/transforms,tensorflow/compiler/mlir/tfrt/python_tests,tensorflow/compiler/mlir/tfrt/tests,tensorflow/compiler/mlir/tfrt/tests/ir,tensorflow/compiler/mlir/tfrt/tests/analysis,tensorflow/compiler/mlir/tfrt/tests/jit,tensorflow/compiler/mlir/tfrt/tests/lhlo_to_tfrt,tensorflow/compiler/mlir/tfrt/tests/lhlo_to_jitrt,tensorflow/compiler/mlir/tfrt/tests/tf_to_corert,tensorflow/compiler/mlir/tfrt/tests/tf_to_tfrt_data,tensorflow/compiler/mlir/tfrt/tests/saved_model,tensorflow/compiler/mlir/tfrt/transforms/lhlo_gpu_to_tfrt_gpu,tensorflow/core/runtime_fallback,tensorflow/core/runtime_fallback/conversion,tensorflow/core/runtime_fallback/kernel,tensorflow/core/runtime_fallback/opdefs,tensorflow/core/runtime_fallback/runtime,tensorflow/core/runtime_fallback/util,tensorflow/core/tfrt/common,tensorflow/core/tfrt/eager,tensorflow/core/tfrt/eager/backends/cpu,tensorflow/core/tfrt/eager/backends/gpu,tensorflow/core/tfrt/eager/core_runtime,tensorflow/core/tfrt/eager/cpp_tests/core_runtime,tensorflow/core/tfrt/gpu,tensorflow/core/tfrt/run_handler_thread_pool,tensorflow/core/tfrt/runtime,tensorflow/core/tfrt/saved_model,tensorflow/core/tfrt/graph_executor,tensorflow/core/tfrt/saved_model/tests,tensorflow/core/tfrt/tpu,tensorflow/core/tfrt/utils # TODO(b/240450920): We are in the process of migrating JitRt backend to XLA # and while we are doing this we can't keep it buildable/testable in OSS. build:tfrt --deleted_packages=tensorflow/compiler/mlir/tfrt,tensorflow/compiler/mlir/tfrt/benchmarks,tensorflow/compiler/mlir/tfrt/jit/python_binding,tensorflow/compiler/mlir/tfrt/jit/transforms,tensorflow/compiler/mlir/tfrt/python_tests,tensorflow/compiler/mlir/tfrt/tests,tensorflow/compiler/mlir/tfrt/tests/ir,tensorflow/compiler/mlir/tfrt/tests/analysis,tensorflow/compiler/mlir/tfrt/tests/jit,tensorflow/compiler/mlir/tfrt/tests/lhlo_to_tfrt,tensorflow/compiler/mlir/tfrt/tests/lhlo_to_jitrt,tensorflow/compiler/mlir/tfrt/tests/tf_to_corert,tensorflow/compiler/mlir/tfrt/tests/tf_to_tfrt_data,tensorflow/compiler/mlir/tfrt/tests/saved_model,tensorflow/compiler/mlir/tfrt/transforms/lhlo_gpu_to_tfrt_gpu,tensorflow/core/runtime_fallback,tensorflow/core/runtime_fallback/conversion,tensorflow/core/runtime_fallback/kernel,tensorflow/core/runtime_fallback/opdefs,tensorflow/core/runtime_fallback/runtime,tensorflow/core/runtime_fallback/util,tensorflow/core/tfrt/common,tensorflow/core/tfrt/eager,tensorflow/core/tfrt/eager/backends/cpu,tensorflow/core/tfrt/eager/backends/gpu,tensorflow/core/tfrt/eager/core_runtime,tensorflow/core/tfrt/eager/cpp_tests/core_runtime,tensorflow/core/tfrt/gpu,tensorflow/core/tfrt/run_handler_thread_pool,tensorflow/core/tfrt/runtime,tensorflow/core/tfrt/saved_model,tensorflow/core/tfrt/graph_executor,tensorflow/core/tfrt/saved_model/tests,tensorflow/core/tfrt/tpu,tensorflow/core/tfrt/utils ================================================ FILE: density_functional_approximation_dm21/.bazelversion ================================================ 5.3.0 ================================================ FILE: density_functional_approximation_dm21/BUILD.bazel ================================================ """DM21 functionals.""" load("@org_tensorflow//tensorflow/python/tools:tools.bzl", "saved_model_compile_aot") load("@rules_python//python:defs.bzl", "py_binary", "py_library") load("@external_py_deps//:requirements.bzl", "requirement") licenses(["notice"]) py_library( name = "compute_hfx_density", srcs = ["density_functional_approximation_dm21/compute_hfx_density.py"], srcs_version = "PY3", deps = [ requirement("numpy"), requirement("pyscf"), ], ) py_test( name = "compute_hfx_density_test", srcs = ["density_functional_approximation_dm21/compute_hfx_density_test.py"], python_version = "PY3", srcs_version = "PY3", deps = [ ":compute_hfx_density", requirement("attrs"), requirement("numpy"), requirement("scipy"), requirement("pyscf"), "@io_abseil_py//absl/testing:absltest", "@io_abseil_py//absl/testing:parameterized", ], ) filegroup( name = "dm21_checkpoints", srcs = glob(["density_functional_approximation_dm21/checkpoints/**"]), ) py_library( name = "neural_numint", srcs = ["density_functional_approximation_dm21/neural_numint.py"], data = [":dm21_checkpoints"], srcs_version = "PY3", deps = [ ":compute_hfx_density", requirement("attrs"), requirement("keras"), requirement("numpy"), requirement("pyscf"), "@org_tensorflow//tensorflow:tensorflow_py", requirement("tensorflow-hub"), ], ) py_test( name = "neural_numint_test", srcs = ["density_functional_approximation_dm21/neural_numint_test.py"], python_version = "PY3", srcs_version = "PY3", deps = [ ":neural_numint", requirement("attrs"), requirement("pyscf"), "@io_abseil_py//absl/testing:parameterized", "@org_tensorflow//tensorflow:tensorflow_py", ], ) py_binary( name = "export_saved_model", srcs = ["density_functional_approximation_dm21/export_saved_model.py"], data = [":dm21_checkpoints"], python_version = "PY3", srcs_version = "PY3", deps = [ ":neural_numint", ], ) EXPORTED_SAVED_MODEL_OBJECTS = [ "DM21/saved_model.pb", "DM21/variables/variables.index", "DM21/variables/variables.data-00000-of-00001", ] genrule( name = "create_model_for_aot_compile", outs = EXPORTED_SAVED_MODEL_OBJECTS, # The functional used in dm21_aot_compiled_example can be changed by # setting the --functional flag to the desired functional. cmd = "$(location :export_saved_model) --functional DM21 --batch_size 1000 --out_dir $(@D)/DM21", tools = [":export_saved_model"], ) filegroup( name = "dm21_exported_model", srcs = EXPORTED_SAVED_MODEL_OBJECTS, ) saved_model_compile_aot( name = "aot_compiled_dm21", cpp_class = "dm21::functional", directory = ":DM21", filegroups = [":dm21_exported_model"], force_without_xla_support_flag = False, multithreading = False, signature_def = "default", tag_set = "''", target_triple = "x86_64-pc-linux", ) cc_library( name = "dm21_aot_compiled_example", srcs = ["cc/dm21_aot_compiled_example.cc"], hdrs = ["cc/dm21_aot_compiled_example.h"], deps = [":aot_compiled_dm21"], ) cc_binary( name = "run_dm21_aot_compiled_example", srcs = ["cc/run_dm21_aot_compiled_example.cc"], copts = ["-DXLA_AVAILABLE"], deps = [":dm21_aot_compiled_example"], ) ================================================ FILE: density_functional_approximation_dm21/README.md ================================================ # Pushing the Frontiers of Density Functionals by Solving the Fractional Electron Problem This package provides a PySCF interface to the DM21 (DeepMind 21) family of exchange-correlation functionals described in the paper ["Pushing the Frontiers of Density Functionals by Solving the Fractional Electron Problem"](https://doi.org/10.1126/science.abj6511). ## Installation `pip install .` installs the interfaces to the DM21 functionals and required dependencies. This is best done inside a [virtual environment](https://docs.python-guide.org/dev/virtualenvs/). Note: using PySCF 2.0 (or later) enables substantially more efficient calculation of the local Hartree-Fock features, resulting in a large speed increase. ### Installing directly To install without cloning or downloading the deepmind_research repository, execute: ```shell python3 -m venv ~/venv/DM21 source ~/venv/DM21/bin/activate pip install git+git://github.com/deepmind/deepmind-research.git#subdirectory=density_functional_approximation_dm21 ``` ### Downloading and installing from a local git repository Alternatively, clone the deepmind_research repository and install from a local repository: ```shell git clone https://github.com/deepmind/deepmind-research.git cd deepmind-research/density_functional_approximation_dm21 python3 -m venv ~/venv/DM21 source ~/venv/DM21/bin/activate pip install . ``` The tests can be run either by running the test files directly or using `py.test`, again from the `density_functional_approximation_dm21` subdirectory: ```shell pip install '.[testing]' py.test ``` ## PySCF interface A typical DFT calculation with PySCF is set up and run using: ```python from pyscf import gto from pyscf import dft # Create the molecule of interest and select the basis set. mol = gto.Mole() mol.atom = 'Ne 0.0 0.0 0.0' mol.basis = 'cc-pVDZ' mol.build() # Create a DFT solver and select the exchange-correlation functional. mf = dft.RKS(mol) mf.xc = 'b3lyp' # Run the DFT calculation. mf.kernel() ``` The DM21 functionals can be used in a very similar way, except we need to compute local Hartree-Fock features, which does not fit in with the interface used by conventional functionals. Instead, this package supplies a lightweight wrapper around PySCF's numerical integration class which evaluates the exchange-correlation energy and potential over a real-space grid. To use the DM21 functional with PySCF, the above code needs to be changed to: ```python import density_functional_approximation_dm21 as dm21 from pyscf import gto from pyscf import dft # Create the molecule of interest and select the basis set. mol = gto.Mole() mol.atom = 'Ne 0.0 0.0 0.0' mol.basis = 'cc-pVDZ' mol.build() # Create a DFT solver and insert the DM21 functional into the solver. mf = dft.RKS(mol) mf._numint = dm21.NeuralNumInt(dm21.Functional.DM21) # Run the DFT calculation. mf.kernel() ``` i.e. instead of specifying the functional with `mf.xc = `, the functional is specified using `mf._numint = dm21.NeuralNumInt()`, where `` is the corresponding member of the `Functional` enum. Available functionals are: * `DM21` - trained on molecules dataset, and fractional charge, and fractional spin constraints. * `DM21m` - trained on molecules dataset. * `DM21mc` - trained on molecules dataset, and fractional charge constraints. * `DM21mu` - trained on molecules dataset, and electron gas constraints. Full details of the network architecture, training method and datasets used can be found in the paper (reference below). Note that the results in our paper also include D3 corrections, which must be [included separately](https://pyscf.org/user/dft.html#dispersion-corrections). ### Best practices for using the neural functionals. In this section, we suggest some tips for using the neural functionals in a way similar to how they were used for benchmarking in the paper. The tensorflow network that we used is running at single precision, and as such it is very hard to converge calculations to the high convergence thresholds which are default in pyscf. For example, the following script should allow users to run an atomization energy calculation for methane. ```python import density_functional_approximation_dm21 as dm21 from pyscf import gto from pyscf import dft # Create the molecule of interest and select the basis set. methane = gto.Mole() methane.atom = """H 0.000000000000 0.000000000000 0.000000000000 C 0.000000000000 0.000000000000 1.087900000000 H 1.025681956337 0.000000000000 1.450533333333 H -0.512840978169 0.888266630391 1.450533333333 H -0.512840978169 -0.888266630391 1.450533333333""" methane.basis = 'def2-qzvp' methane.verbose = 4 methane.build() carbon = gto.Mole() carbon.atom = 'C 0.0 0.0 0.0' carbon.basis = 'def2-qzvp' carbon.spin = 2 carbon.verbose = 4 carbon.build() hydrogen = gto.Mole() hydrogen.atom = 'H 0.0 0.0 0.0' hydrogen.basis = 'def2-qzvp' hydrogen.spin = 1 hydrogen.verbose = 4 hydrogen.build() energies = [] for mol in [methane, carbon, hydrogen]: # Create a DFT solver and insert the DM21 functional into the solver. if mol.spin == 0: mf = dft.RKS(mol) else: mf = dft.UKS(mol) # It will make SCF faster to start close to the solution with a cheaper # functional. mf.xc = 'B3LYP' mf.run() dm0 = mf.make_rdm1() mf._numint = dm21.NeuralNumInt(dm21.Functional.DM21) # It's wise to relax convergence tolerances. mf.conv_tol = 1E-6 mf.conv_tol_grad = 1E-3 # Run the DFT calculation. energy = mf.kernel(dm0=dm0) energies.append(energy) print({'CH4': energies[0], 'C': energies[1], 'H': energies[2]}) ``` This script should produce three energies (in Hartrees) for the water molecule and the two atoms of `{'CH4': -40.51785372584538, 'C': -37.84542045526023, 'H': -0.5011533955627797}` , this leads to an atomization energy of 419.06 kcal/mol, which is then corrected with the D3(BJ) correction for methane (1.20 kcal/mol) to yield a predicted atomization energy of 420.26 kcal/mol. Comparing this to the literature value of 420.42, leads us to deduce an error of around 0.2 kcal/mol. It should also be noted that if a closed shell system is run unrestricted it can give a small difference between spin densities and eigenvalues with a negligible effect on the energy. ## Using DM21 from C++ There are two options for using the DM21 from C++. 1. Load the SavedModel using [TensorFlow's C++ API](https://www.tensorflow.org/guide/saved_model#load_a_savedmodel_in_c). This requires a run-time dependency on the TensorFlow library. 2. Compile the model ahead-of-time into a standalone library. This requires all array dimensions to be fixed at compile time, which imposes a minor limitation on the interface for using the functional. As the DM21 functionals act on grid points independently, this does not restrict the system size. The first option is more flexible but trickier to setup. Consequently we demonstrate the second option: compiling the functional into a standalone library. An example of running the DM21 functional using a standalone compiled library is provided in `cc/dm21_aot_compiled_example.cc`. This requires a link-time dependency on parts of the `xla_compiled_cpu_runtime_standalone` library, which are not included in the compiled functional library. The easiest way to build this is to use [Bazel](https://bazel.build). The first step is to [install Bazel](https://docs.bazel.build/versions/5.3.0/install.html). [Bazelisk](https://docs.bazel.build/versions/main/install-bazelisk.html) is another way to install Bazel if a native installer is not available. The following has been tested with Bazel 5.3.0. It is best to continue working inside a virtual environment. Assuming the above installation steps using `git clone` have been followed, and `Bazel` has been installed, the example can be built and run using: ``` pip install -r requirements_aot_compilation.txt bazel run --experimental_cc_shared_library --experimental_repo_remote_exec :run_dm21_aot_compiled_example ``` where the `pip install` command is only required if a fresh virtual environment is used, and installs required prerequisites for TensorFlow. See the [TensorFlow documentation](https://www.tensorflow.org/install/source) for more details. A static library, using the `cc_library` rule, can similarly be built and then linked against from a separate program with no additional dependencies required, shown in `cc/dm21_aot_compiled_example.cc` and the `dm21_aot_compiled_example` build rule. For calling from C, we recommend wrapping a C++ interface in `extern C { ... }` to create a C API. For calling from Fortran, the C API can be used via the Fortran 2003 ISO_C_BINDING feature. ### Detailed explanation The supplied functionals in the `checkpoints` subdirectory are not easy to use from C++, as they only contain operations for the forward pass through the functional. This means they can only be used to evaluate the energy on a fixed density. Self-consistent calculations require various gradients of the functional, and it is easiest to create these using TensorFlow's Python API. `NeuralNumInt` contains a method for exporting the functional and functional derivatives. Assuming the above installation steps have been followed, a functional and its derivatives can be exported by: ```shell export_saved_model.py --functional=DM21 \ --out_dir=/path/to/export/DM21 \ --batch_size=1000 ``` where `--out_dir` specifies the directory to save the model containing the functional and functional derivatives to, and `--batch_size` the number of grid points the functional will be evaluated on at a time. The functional must be the name of a functional in the `neural_numint.Functional` enum. Note that the batch size needs only be fixed for exporting models to be used with ahead-of-time compilation. The functional can now be compiled using the `saved_model_cli` tool supplied with TensorFlow: ```shell $ saved_model_cli aot_compile_cpu \ --dir /path/to/export/DM21 \ --output_prefix /path/to/compiled/DM21/dm21 \ --cpp_class dm21::functional \ --tag_set '' \ --signature_def_key default ``` The output prefix and C++ class can be arbitrarily chosen. The `tag_set` and `signature_def_key` arguments must be as given above. This creates the following files in the output directory: - dm21.h: header file defining the C++ interface to the DM21 functional. - dm21_makefile.inc: a snippet to be included in a Makefile for setting include, library and compilation flags. - dm21_metadata.o, dm21.o: object files for running the DM21 functional. ## Reference If this repository is helpful for your research please cite the following publication: Pushing the Frontiers of Density Functionals by Solving the Fractional Electron Problem, James Kirkpatrick, Brendan McMorrow, David H. P. Turban, Alexander L. Gaunt, James S. Spencer, Alexander G. D. G. Matthews, Annette Obika, Louis Thiry, Meire Fortunato, David Pfau, Lara Román Castellanos, Stig Petersen, Alexander W. R. Nelson, Pushmeet Kohli, Paula Mori-Sánchez, Demis Hassabis, Aron J. Cohen, Science, DOI: https://doi.org/10.1126/science.abj6511 ## License All code is made available under the Apache 2.0 License. Model parameters (contained in the `density_functional_approximation_dm21/checkpoints/` subdirectory) are made available under the Creative Commons Attribution 4.0 International (CC BY 4.0) License. See https://creativecommons.org/licenses/by/4.0/legalcode for more details. ## Disclaimer This is not an official Google product. ================================================ FILE: density_functional_approximation_dm21/WORKSPACE.bazel ================================================ workspace(name = "org_density_functional_approximation_dm21") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_python", sha256 = "934c9ceb552e84577b0faf1e5a2f0450314985b4d8712b2b70717dc679fdc01b", url = "https://github.com/bazelbuild/rules_python/releases/download/0.3.0/rules_python-0.3.0.tar.gz", ) load("@rules_python//python:pip.bzl", "pip_install") # Create a central external repo, @external_py_deps, that contains Bazel # targets for all the third-party packages specified in the requirements.txt # file. pip_install( name = "external_py_deps", requirements = "//:requirements.txt", ) http_archive( name = "io_abseil_py", strip_prefix = "abseil-py-1.4.0", urls = ["https://github.com/abseil/abseil-py/archive/refs/tags/v1.4.0.tar.gz"], ) http_archive( name = "org_tensorflow", patch_args = ["-p1"], patches = ["tf_bazel.patch"], strip_prefix = "tensorflow-2.11.0", urls = ["https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.11.0.tar.gz"], ) # The cascade of load() statements and tf_workspace?() calls works around the # restriction that load() statements need to be at the top of .bzl files. # E.g. we can not retrieve a new repository with http_archive and then load() # a macro from that repository in the same file. load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3") tf_workspace3() load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2") tf_workspace2() load("@org_tensorflow//tensorflow:workspace1.bzl", "tf_workspace1") tf_workspace1() load("@org_tensorflow//tensorflow:workspace0.bzl", "tf_workspace0") tf_workspace0() ================================================ FILE: density_functional_approximation_dm21/cc/dm21_aot_compiled_example.cc ================================================ // Copyright 2021 DeepMind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include // Users should adjust header path to match generated location. The generated // location is determined by the -output_prefix flags passed to saved_model_cli // aot_compile_cpu. #include "aot_compiled_dm21.h" // generated void run_dm21_compiled_functional() { // The functional class name is set by a flag passed to saved_model_cli // aot_compile_cpu. dm21::functional dm21_xc; // This assumes the functional was compiled using instructions given in the // README.md, in particular that the model was exported with a batch size of // 1000. We will compute the functional just at a single point and pad the // rest of the batch using grid_weight = 0. constexpr int batch_dim = 1000; // See docstring for neural_numint.FunctionalInputs for descriptions on each // input feature. Note that, due how the model is compiled, we don't need to // pass any values for the grid coordinates. float rho_a[6][batch_dim] = { {1.238148615359934e-11}, {-5.4047671667795604e-11}, {-5.4047671667795604e-11}, {-7.2613887530595865e-12}, {4.436179569857956e-10}, {5.972594378309204e-11}, }; float hfx_a[batch_dim][2] = {{-4.33218591e-13, -4.32842821e-13}}; float grid_weights[batch_dim] = {1.7594189642339968}; // Use same values for both alpha and beta electrons (restricted calculation) dm21_xc.set_arg_feed_rho_a_data(rho_a); dm21_xc.set_arg_feed_rho_b_data(rho_a); dm21_xc.set_arg_feed_hfx_a_data(hfx_a); dm21_xc.set_arg_feed_hfx_b_data(hfx_a); dm21_xc.set_arg_feed_grid_weights_data(grid_weights); std::puts("Running functional..."); bool status = dm21_xc.Run(); if (status) { std::puts("Successfully ran functional."); // Fetch results. // Other methods for fetching results exist which may be more convenient. // Please see the generated header. // See neural_numint.NeuralNumint._build_graph and // See neural_numint.NeuralNumint.eval_xc for more details. // XC potential at each grid point, shape (batch_dim). const float* vxc = dm21_xc.result_fetch_vxc_data(); // Derivative of the energy wtih respect to the density. // In python, this has shape (2, batch_dim), where the zeroth component is // with respect to the alpha density and the first component with respect to // the beta density. In C++, a flat 1D array is returned. const float* vrho = dm21_xc.result_fetch_vrho_data(); // Derivative of the energy wtih respect to sigma. // In python, this has shape (3, batch_dim), where the zeroth component is // with respect to the alpha spin channel, the first component with respect // to the spin channel and the third component with respect to the total. In // C++, a flat 1D array is returned. const float* vsigma = dm21_xc.result_fetch_vsigma_data(); // Derivative of the energy wtih respect to tau, the kinetic energy density. // In python, this has shape (2, batch_dim), where the zeroth component is // with respect to the alpha spin channel, and the first component with // respect to the spin channel. In C++, a flat 1D array is returned. const float* vtau = dm21_xc.result_fetch_vtau_data(); // Intermediates required for evaluating the contribution of local // Hartree-Fock features to the derivative of the Fock matrix. See // docstrings and comments in compute_hfx_density.py and neural_numint.py. // In python, this has shape (2, batch_dim, nomega), where nomega is the // number of omega values used for the Hartree-Fock kernels. The zeroth // component is with respect to the Hartree-Fock energy density at each grid // point for the alpha-spin density and the first component with respect to // the beta-spin density. In C++, a flat 1D array is returned. const float* vhf = dm21_xc.result_fetch_vhf_data(); std::printf("vxc[0] = %.6g\n", vxc[0]); std::printf("vrho[0] = %.6g, %.6g\n", vrho[0], vrho[batch_dim]); std::printf("vsigma[0] = %.6g, %.6g %.6g\n", vsigma[0], vsigma[batch_dim], vsigma[2 * batch_dim]); std::printf("vtau[0] = %.6g, %.6g\n", vtau[0], vtau[batch_dim]); std::printf("vhf[0] = %.6g, %.6g\n", vhf[0], vhf[1]); } else { std::puts("Failed to run functional."); } } ================================================ FILE: density_functional_approximation_dm21/cc/dm21_aot_compiled_example.h ================================================ // Copyright 2021 DeepMind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef THIRD_PARTY_DEEPMIND_DEEPMIND_RESEARCH_DENSITY_FUNCTIONAL_APPROXIMATION_DM21_CC_DM21_AOT_COMPILED_EXAMPLE_H_ #define THIRD_PARTY_DEEPMIND_DEEPMIND_RESEARCH_DENSITY_FUNCTIONAL_APPROXIMATION_DM21_CC_DM21_AOT_COMPILED_EXAMPLE_H_ void run_dm21_compiled_functional(); #endif // THIRD_PARTY_DEEPMIND_DEEPMIND_RESEARCH_DENSITY_FUNCTIONAL_APPROXIMATION_DM21_CC_DM21_AOT_COMPILED_EXAMPLE_H_ ================================================ FILE: density_functional_approximation_dm21/cc/run_dm21_aot_compiled_example.cc ================================================ // Copyright 2021 DeepMind Technologies Limited. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include #ifdef XLA_AVAILABLE #include "cc/dm21_aot_compiled_example.h" #endif int main(int argc, char** argv) { #ifdef XLA_AVAILABLE run_dm21_compiled_functional(); return 0; #else std::puts("Built without XLA support. Cannot run functional!"); return 1; #endif } ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/__init__.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """An interface to DM21 family of exchange-correlation functionals for PySCF.""" from density_functional_approximation_dm21.neural_numint import Functional from density_functional_approximation_dm21.neural_numint import NeuralNumInt ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/checkpoints/DM21/tfhub_module.pb ================================================  ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/checkpoints/DM21m/tfhub_module.pb ================================================  ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/checkpoints/DM21mc/tfhub_module.pb ================================================  ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/checkpoints/DM21mu/tfhub_module.pb ================================================  ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/compute_hfx_density.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. r"""Computation of the Hartree-Fock exchange density. We consider two types of potential: 1. Coulomb potential v(r,r') = 1/|r-r'|, which results in the full HF exchange density and energy. 2. Screened (long-range) Coulomb potential v(r,r') = erf(\omega|r-r'|)/|r-r'|, which results in the screened HF exchange density energy. Note that PySCF and libcint treat a value of omega=0 to correspond to the Coulomb potential. In the following, HF refers to full HF exchange if the Coulomb potential is used and to screened HF exchange if the screened Coulomb potential is used. The Hartree-Fock (HF) exchange energy can be written as: -2 HF_x = \sum_{a,b,c,d} D_{ab} D_{cd} \int dr \int dr' [ \chi_a(r) \chi_c(r) v(r, r') \chi_b(r') \chi_d(r') ] where D is the density matrix, \chi_a the atomic basis functions and r, r' are coordinates. For clarity we have dropped the spin-channel label of the density matrix. Defining the following intermediates: \nu_{bd}(r) = \int dr' (\chi_b(r') v(r, r') \chi_d(r')) E_b(r) = \sum_a D_{ab} \chi_a(r) we get the following expression for HF: -2 HF_x = \int dr \sum_{bd} E_b(r) E_d(r) \nu_{bd}(r) Therefore the quantity exx(r) = -0.5 sum_{bd} E_b(r) E_d(r) \nu_{bd}(r) represents an energy density at location r which integrates to the HF exchange energy. The Fock matrix, F, is the derivative of the energy with respect to the density matrix. If the energy depends upon the set of features {x}, then the Fock matrix can be evaluated as \sum_x dE/dx dx/dD_{ab}. The derivatives with respect to the features can be easily evaluated using automatic differentiation. We hence require the derivative of exx with respect to the density matrix: dexx(r)/dD_{ab} = -D_{cd} \chi_a(r) \chi_c(r) \nu_{bd}(r) This is too large to store, so we instead compute the following intermediate, and evaluate the derivative as required on the fly: fxx_a(r) = D_{bd} \chi_a(r) \nu_{bd}(r) Note: we compute exx and fxx for each spin channel for both restricted and unrestricted calculations. """ from typing import Generator, Optional, Tuple, Union import attr import numpy as np from pyscf.dft import numint from pyscf.gto import mole from pyscf.lib import logger from pyscf.lib import numpy_helper def _evaluate_nu_slow(mol: mole.Mole, coords: np.ndarray, omega: float, hermi: int = 1) -> np.ndarray: """Computes nu integrals for given coordinates using a slow loop.""" nu = [] # Use the Gaussian nuclear model in int1e_rinv_sph to evaluate the screened # integrals. with mol.with_rinv_zeta(zeta=omega * omega): # This is going to be slow... for coord in coords: with mol.with_rinv_origin(coord): nu.append(mol.intor('int1e_rinv_sph', hermi=hermi)) return np.asarray(nu) def _evaluate_nu(mol: mole.Mole, coords: np.ndarray, omega: float, hermi: int = 1) -> np.ndarray: """Computes nu integrals for given coordinates.""" try: with mol.with_range_coulomb(omega=omega): # grids keyword argument supported in pyscf 2.0.0-alpha. nu = mol.intor('int1e_grids_sph', hermi=hermi, grids=coords) # pytype: disable=wrong-keyword-args except TypeError: logger.info( mol, 'Support for int1e_grids not found (requires libcint 4.4.1 and ' 'pyscf 2.0.0a or later. Falling back to slow loop over individual grid ' 'points.') nu = _evaluate_nu_slow(mol, coords, omega) return nu def _nu_chunk(mol: mole.Mole, coords: np.ndarray, omega: float, chunk_size: int = 1000 ) -> Generator[Tuple[int, int, np.ndarray], None, None]: r"""Yields chunks of nu integrals over the grid. Args: mol: pyscf Mole object. coords: coordinates, r', at which to evaluate the nu integrals, shape (N,3). omega: range separation parameter. A value of 0 disables range-separation (i.e. uses the kernel v(r,r') = 1/|r-r'| instead of v(r,r') = erf(\omega |r-r'|) / |r-r'|) chunk_size: number of coordinates to evaluate the integrals at a time. Yields: start_index, end_index, nu_{ab}(r) where start_index, end_index are indices into coords, nu is an array of shape (end_index-start_index, nao, nao), where nao is the number of atomic orbitals and contains nu_{ab}(r) = , where a,b are atomic orbitals and r' are the grid coordinates in coords[start_index:end_index]. Raises: ValueError: if omega is negative. """ if omega < 0: raise ValueError('Range-separated parameter omega must be non-negative!') ncoords = len(coords) for chunk_index in range(0, ncoords, chunk_size): end_index = min(chunk_index + chunk_size, ncoords) coords_chunk = coords[chunk_index:end_index] nu_chunk = _evaluate_nu(mol, coords_chunk, omega=omega) yield chunk_index, end_index, nu_chunk def _compute_exx_block(nu: np.ndarray, e: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: r"""Computes exx and fxx. Args: nu: batch of integrals, in format (k,i,j) where r_k is the position of the k-th grid point, i and j label atomic orbitals. e: density matrix in the AO basis at each grid point. Returns: exx and fxx, where fxx_{gb} =\sum_c nu_{gbc} e_{gc} and exx_{g} = -0.5 \sum_b e_{gb} fxx_{gb}. """ fxx = np.einsum('gbc,gc->gb', nu, e) exx = -0.5 * np.einsum('gb,gb->g', e, fxx) return exx, fxx def _compute_jk_block(nu: np.ndarray, fxx: np.ndarray, dm: np.ndarray, ao_value: np.ndarray, weights: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: """Computes J and K contributions from the given block of nu integrals.""" batch_size = nu.shape[0] vj = numpy_helper.dot(nu.reshape(batch_size, -1), dm.reshape(-1, 1)) vj = np.squeeze(vj) vj_ao = np.einsum('g,gb->gb', vj * weights, ao_value) j = numpy_helper.dot(ao_value.T, vj_ao) w_ao = np.einsum('g,gb->gb', weights, ao_value) k = numpy_helper.dot(fxx.T, w_ao) return j, k @attr.s(auto_attribs=True) class HFDensityResult: r"""Container for results returned by get_hf_density. Note that the kernel used in all integrals is defined by the omega input argument. Attributes: exx: exchange energy density at position r on the grid for the alpha, beta spin channels. Each array is shape (N), where N is the number of grid points. fxx: intermediate for evaluating dexx/dD^{\sigma}_{ab}, where D is the density matrix and \sigma is the spin coordinate. See top-level docstring for details. Each array is shape (N, nao), where nao is the number of atomic orbitals. coulomb: coulomb matrix (restricted calculations) or matrices (unrestricted calculations). Each array is shape (nao, nao). Restricted calculations: \sum_{} D_{cd} (ab|cd) Unrestricted calculations: \sum_{} D^{\sigma}_{cd} (ab|cd) exchange: exchange matrix (restricted calculations) or matrices (unrestricted calculations). Each array is shape (nao, nao). Restricted calculations: \sum_{} D_{cd} (ab|cd) Unrestricted calculations: \sum_{} D^{\sigma}_{cd} (ac|bd). """ exx: Tuple[np.ndarray, np.ndarray] fxx: Optional[Tuple[np.ndarray, np.ndarray]] = None coulomb: Optional[Union[np.ndarray, Tuple[np.ndarray, np.ndarray]]] = None exchange: Optional[Union[np.ndarray, Tuple[np.ndarray, np.ndarray]]] = None def get_hf_density( mol: mole.Mole, dm: Union[Tuple[np.ndarray, np.ndarray], np.ndarray], coords: np.ndarray, omega: float = 0., deriv: int = 0, ao: Optional[np.ndarray] = None, chunk_size: int = 1000, weights: Optional[np.ndarray] = None, ) -> HFDensityResult: r"""Computes the (range-separated) HF energy density. Args: mol: PySCF molecule. dm: The density matrix. For restricted calculations, an array of shape (M, M), where M is the number of atomic orbitals. For unrestricted calculations, either an array of shape (2, M, M) or a tuple of arrays, each of shape (M, M), where dm[0] is the density matrix for the alpha electrons and dm[1] the density matrix for the beta electrons. coords: The coordinates to compute the HF density at, shape (N, 3), where N is the number of grid points. omega: The inverse width of the error function. An omega of 0. means range separation and a 1/|r-R| kernel is used in the nu integrals. Otherwise, the kernel erf(\omega|r-R|)/|r-R|) is used. Must be non-negative. deriv: The derivative order. Only first derivatives (deriv=1) are currently implemented. deriv=0 indicates no derivatives are required. ao: The atomic orbitals evaluated on the grid, shape (N, M). These are computed if not supplied. chunk_size: The number of coordinates to compute the HF density for at once. Reducing this saves memory since we don't have to keep as many Nus (nbasis x nbasis) in memory at once. weights: weight of each grid point, shape (N). If present, the Coulomb and exchange matrices are also computed semi-numerically, otherwise only the HF density and (if deriv=1) its first derivative are computed. Returns: HFDensityResult object with the HF density (exx), the derivative of the HF density with respect to the density (fxx) if deriv is 1, and the Coulomb and exchange matrices if the weights argument is provided. Raises: NotImplementedError: if a Cartesian basis set is used or if deriv is greater than 1. ValueError: if omega or deriv are negative. """ if mol.cart: raise NotImplementedError('Local HF exchange is not implmented for basis ' 'sets with Cartesian functions!') if deriv < 0: raise ValueError(f'`deriv` must be non-negative, got {deriv}') if omega < 0: raise ValueError(f'`omega` must be non-negative, got {omega}') if deriv > 1: raise NotImplementedError('Higher order derivatives are not implemented.') if isinstance(dm, tuple) or dm.ndim == 3: dma, dmb = dm restricted = False else: dma = dm / 2 dmb = dm / 2 restricted = True logger.info(mol, 'Computing contracted density matrix ...') if ao is None: ao = numint.eval_ao(mol, coords, deriv=0) e_a = np.dot(ao, dma) e_b = np.dot(ao, dmb) exxa = [] exxb = [] fxxa = [] fxxb = [] ja = np.zeros_like(dma) jb = np.zeros_like(dmb) ka = np.zeros_like(dma) kb = np.zeros_like(dmb) for start, end, nu in _nu_chunk(mol, coords, omega, chunk_size=chunk_size): logger.info(mol, 'Computing exx %s / %s ...', end, len(e_a)) exxa_block, fxxa_block = _compute_exx_block(nu, e_a[start:end]) exxa.extend(exxa_block) if not restricted: exxb_block, fxxb_block = _compute_exx_block(nu, e_b[start:end]) exxb.extend(exxb_block) if deriv == 1: fxxa.extend(fxxa_block) if not restricted: fxxb.extend(fxxb_block) if weights is not None: ja_block, ka_block = _compute_jk_block(nu, fxxa_block, dma, ao[start:end], weights[start:end]) ja += ja_block ka += ka_block if not restricted: jb_block, kb_block = _compute_jk_block(nu, fxxb_block, dmb, ao[start:end], weights[start:end]) jb += jb_block kb += kb_block exxa = np.asarray(exxa) fxxa = np.asarray(fxxa) if restricted: exxb = exxa fxxb = fxxa else: exxb = np.asarray(exxb) fxxb = np.asarray(fxxb) result = HFDensityResult(exx=(exxa, exxb)) if deriv == 1: result.fxx = (fxxa, fxxb) if weights is not None: if restricted: result.coulomb = 2 * ja result.exchange = 2 * ka else: result.coulomb = (ja, jb) result.exchange = (ka, kb) return result ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/compute_hfx_density_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for compute_hfx_density.""" from absl.testing import absltest from absl.testing import parameterized import numpy as np from pyscf import dft from pyscf import gto from pyscf import lib from pyscf import scf import scipy from density_functional_approximation_dm21 import compute_hfx_density class ComputeHfxDensityTest(parameterized.TestCase): def setUp(self): super().setUp() lib.param.TMPDIR = None lib.num_threads(1) @parameterized.named_parameters( {'testcase_name': 'local_hf', 'omega': 0.}, {'testcase_name': 'range_separated_local_hf_0.5', 'omega': 0.5}, {'testcase_name': 'range_separated_local_hf_1.0', 'omega': 1.0}, {'testcase_name': 'range_separated_local_hf_2.0', 'omega': 2.0}, ) def test_closed_shell(self, omega): mol = gto.M(atom='He 0. 0. 0.', basis='3-21g') solver = dft.RKS(mol) solver.grids.level = 2 solver.grids.build() solver.kernel() dm = solver.make_rdm1() with mol.with_range_coulomb(omega=omega): target_j, target_k = scf.hf.get_jk(mol, dm) target_hf = -0.25 * np.einsum('ij,ji', dm, target_k) target_coulomb = np.einsum('ij,ji', dm, target_j) coords = solver.grids.coords weights = solver.grids.weights results = compute_hfx_density.get_hf_density( mol, dm, coords, omega=omega, weights=weights) coulomb = np.einsum('ij,ji', dm, results.coulomb) hf = -0.25 * np.einsum('ij,ji', dm, results.exchange) predicted_hf = np.sum((results.exx[0] + results.exx[1]) * weights) with self.subTest('test_hf_density'): self.assertAlmostEqual(target_hf, predicted_hf) with self.subTest('test_get_jk'): np.testing.assert_allclose(results.coulomb, target_j) np.testing.assert_allclose(results.exchange, target_k) self.assertAlmostEqual(coulomb, target_coulomb) self.assertAlmostEqual(hf, target_hf) @parameterized.named_parameters( {'testcase_name': 'local_hf', 'omega': 0.}, {'testcase_name': 'range_separated_local_hf_0.5', 'omega': 0.5}, {'testcase_name': 'range_separated_local_hf_1.0', 'omega': 1.0}, {'testcase_name': 'range_separated_local_hf_2.0', 'omega': 2.0}, ) def test_hf_density_on_open_shell(self, omega): mol = gto.M(atom='He 0. 0. 0.', basis='3-21g', charge=1, spin=1) solver = dft.UKS(mol) solver.grids.level = 2 solver.grids.build() solver.kernel() dm = solver.make_rdm1() with mol.with_range_coulomb(omega=omega): target_j, target_k = scf.hf.get_jk(mol, dm) target_hf = -0.5 * ( np.einsum('ij,ji', dm[0], target_k[0]) + np.einsum('ij,ji', dm[1], target_k[1])) target_coulomb = np.einsum('ij,ji', dm[0], target_j[0]) + np.einsum( 'ij,ji', dm[1], target_j[1]) coords = solver.grids.coords weights = solver.grids.weights results = compute_hfx_density.get_hf_density( mol, dm, coords, omega=omega, weights=weights) predicted_hf = np.sum((results.exx[0] + results.exx[1]) * weights) coulomb = ( np.einsum('ij,ji', dm[0], results.coulomb[0]) + np.einsum('ij,ji', dm[1], results.coulomb[1])) hf = -0.5 * ( np.einsum('ij,ji', dm[0], results.exchange[0]) + np.einsum('ij,ji', dm[1], results.exchange[1])) with self.subTest('test_hf_density'): self.assertAlmostEqual(target_hf, predicted_hf, places=3) with self.subTest('test_get_jk'): np.testing.assert_allclose(results.coulomb[0], target_j[0]) np.testing.assert_allclose(results.coulomb[1], target_j[1]) np.testing.assert_allclose(results.exchange[0], target_k[0]) np.testing.assert_allclose(results.exchange[1], target_k[1]) self.assertAlmostEqual(coulomb, target_coulomb) self.assertAlmostEqual(hf, target_hf) def _nu_test_systems(): systems = [ { 'atom': 'N 0 0 0; N 0 0 2.4', 'charge': 0, 'spin': 0, 'basis': 'cc-pVDZ', 'num_grids': -1 }, { 'atom': 'N 0 0 0; N 0 0 2.4', 'charge': 0, 'spin': 0, 'basis': 'cc-pVDZ', 'num_grids': 1 }, { 'atom': 'N 0 0 0; N 0 0 2.4', 'charge': 0, 'spin': 0, 'basis': 'cc-pVDZ', 'num_grids': 2 }, { 'atom': 'N 0 0 0; N 0 0 2.4', 'charge': 0, 'spin': 0, 'basis': 'cc-pVDZ', 'num_grids': 10 }, { 'atom': 'N 0 0 0; N 0 0 2.4', 'charge': 0, 'spin': 0, 'basis': 'cc-pVDZ', 'num_grids': 32 }, { 'atom': 'N 0 0 0; N 0 0 2.4', 'charge': 0, 'spin': 0, 'basis': 'cc-pVDZ', 'num_grids': 33 }, { 'atom': 'Li 0 0 0', 'charge': 0, 'spin': 1, 'basis': 'cc-pVTZ', 'num_grids': -1 }, { 'atom': 'H 0 0 0', 'charge': 0, 'spin': 1, 'basis': 'cc-pVQZ', 'num_grids': -1 }, ] system_names = ['N2', 'N2_1', 'N2_2', 'N2_10', 'N2_32', 'N2_33', 'Li', 'H'] for name, system in zip(system_names, systems): yield {'testcase_name': f'{name}_hermitian', 'hermi': 0, **system} yield {'testcase_name': f'{name}_non_hermitian', 'hermi': 1, **system} class NuTest(parameterized.TestCase): def setUp(self): super(NuTest, self).setUp() lib.param.TMPDIR = None lib.num_threads(1) @parameterized.named_parameters(_nu_test_systems()) def test_nu_integrals(self, atom, charge, spin, basis, num_grids, hermi): mol = gto.M(atom=atom, charge=charge, spin=spin, basis=basis) mf = dft.UKS(mol) mf.grids.build() if num_grids == -1: test_coords = mf.grids.coords else: test_coords = mf.grids.coords[0:num_grids] nu_slow = compute_hfx_density._evaluate_nu_slow( mol, test_coords, omega=0.0, hermi=hermi) nu_fast = compute_hfx_density._evaluate_nu( mol, test_coords, omega=0.0, hermi=hermi) np.testing.assert_allclose(nu_slow, nu_fast, atol=1E-13) def test_range_separated_nu(self): mol = gto.M(atom='He 0 0 0', basis='cc-pVDZ') r0 = np.array([[0.1, 0.2, 1.]]) omega = 1. result = np.squeeze(compute_hfx_density._evaluate_nu(mol, r0, omega=omega)) solver = dft.RKS(mol) solver.grids.level = 2 solver.grids.build() coords = solver.grids.coords weights = solver.grids.weights ao_value = dft.numint.eval_ao(mol, coords, deriv=0) dist = np.linalg.norm(coords - r0, axis=1) erf = scipy.special.erf(omega * dist) / dist expected_result = np.squeeze( np.einsum('g,ga,gb->ab', weights * erf, ao_value, ao_value)) np.testing.assert_allclose(result, expected_result) if __name__ == '__main__': absltest.main() ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/export_saved_model.py ================================================ #!/usr/bin/env python3 # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Helper for exporting a functional and its derivatives to a saved_model.""" from typing import Sequence from absl import app from absl import flags from density_functional_approximation_dm21 import neural_numint _OUT_DIR = flags.DEFINE_string( 'out_dir', None, 'Output directory.', required=True) _BATCH_SIZE = flags.DEFINE_integer( 'batch_size', 1000, 'Number of grid points exported functional will process in a single call.', lower_bound=0) _FUNCTIONAL = flags.DEFINE_enum_class('functional', neural_numint.Functional.DM21, neural_numint.Functional, 'Functional to export.') def export( functional: neural_numint.Functional, export_path: str, batch_dim: int, ) -> None: """Export a functional and its derivatives to a single saved_model. Args: functional: functional to export. export_path: path to saved the model to. batch_dim: number of grid points to process in a single call. """ ni = neural_numint.NeuralNumInt(functional) ni.export_functional_and_derivatives( export_path=export_path, batch_dim=batch_dim) def main(argv: Sequence[str]) -> None: if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') export(_FUNCTIONAL.value, _OUT_DIR.value, _BATCH_SIZE.value) if __name__ == '__main__': app.run(main) ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/neural_numint.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """An interface to DM21 family of exchange-correlation functionals for PySCF.""" import enum import os from typing import Generator, Optional, Sequence, Tuple, Union import attr import numpy as np from pyscf import dft from pyscf import gto from pyscf.dft import numint import tensorflow.compat.v1 as tf import tensorflow_hub as hub from density_functional_approximation_dm21 import compute_hfx_density tf.disable_v2_behavior() # TODO(b/196260242): avoid depending upon private function _dot_ao_ao = numint._dot_ao_ao # pylint: disable=protected-access @enum.unique class Functional(enum.Enum): """Enum for exchange-correlation functionals in the DM21 family. Attributes: DM21: trained on molecules dataset, and fractional charge, and fractional spin constraints. DM21m: trained on molecules dataset. DM21mc: trained on molecules dataset, and fractional charge constraints. DM21mu: trained on molecules dataset, and electron gas constraints. """ # Break pylint's preferred naming pattern to match the functional names used # in the paper. # pylint: disable=invalid-name DM21 = enum.auto() DM21m = enum.auto() DM21mc = enum.auto() DM21mu = enum.auto() # pylint: enable=invalid-name # We use attr.s instead of here instead of dataclasses.dataclass as # dataclasses.asdict returns a deepcopy of the attributes. This is wasteful in # memory if they are large and breaks (as in the case of tf.Tensors) if they are # not serializable. attr.asdict does not perform this copy and so works with # both np.ndarrays and tf.Tensors. @attr.s(auto_attribs=True) class FunctionalInputs: r""""Inputs required for DM21 functionals. Depending upon the context, this is either a set of numpy arrays (feature construction) or TF tensors (constructing placeholders/running functionals). Attributes: rho_a: Density information for the alpha electrons. PySCF for meta-GGAs supplies a single array for the total density (restricted calculations) and a pair of arrays, one for each spin channel (unrestricted calculations). Each array/tensor is of shape (6, N) and contains the density and density derivatives, where: rho(0, :) - density at each grid point rho(1, :) - norm of the derivative of the density at each grid point along x rho(2, :) - norm of the derivative of the density at each grid point along y rho(3, :) - norm of the derivative of the density at each grid point along z rho(4, :) - \nabla^2 \rho [not used] rho(5, :) - tau (1/2 (\nabla \rho)^2) at each grid point. See pyscf.dft.numint.eval_rho for more details. We require separate inputs for both alpha- and beta-spin densities, even in restricted calculations (where rho_a = rho_b = rho/2, where rho is the total density). rho_b: as for rho_a for the beta electrons. hfx_a: local Hartree-Fock energy density at each grid point for the alpha- spin density for each value of omega. Shape [N, len(omega_values)]. See compute_hfx_density for more details. hfx_b: as for hfx_a for the beta-spin density. grid_coords: grid coordinates at which to evaluate the density. Shape (N, 3), where N is the number of grid points. Note that this is currently unused by the functional, but is still a required input. grid_weights: weight of each grid point. Shape (N). """ rho_a: Union[tf.Tensor, np.ndarray] rho_b: Union[tf.Tensor, np.ndarray] hfx_a: Union[tf.Tensor, np.ndarray] hfx_b: Union[tf.Tensor, np.ndarray] grid_coords: Union[tf.Tensor, np.ndarray] grid_weights: Union[tf.Tensor, np.ndarray] @attr.s(auto_attribs=True) class _GridState: """Internal state required for the numerical grid. Attributes: coords: coordinates of the grid. Shape (N, 3), where N is the number of grid points. weight: weight associated with each grid point. Shape (N). mask: mask indicating whether a shell is zero at a grid point. Shape (N, nbas) where nbas is the number of shells in the basis set. See pyscf.dft.gen_grids.make_mask. ao: atomic orbitals evaluated on the grid. Shape (N, nao), where nao is the number of atomic orbitals, or shape (:, N, nao), where the 0-th element contains the ao values, the next three elements contain the first derivatives, and so on. """ coords: np.ndarray weight: np.ndarray mask: np.ndarray ao: np.ndarray @attr.s(auto_attribs=True) class _SystemState: """Internal state required for system of interest. Attributes: mol: PySCF molecule dms: density matrix or matrices (unrestricted calculations only). Restricted calculations: shape (nao, nao), where nao is the number of atomic orbitals. Unrestricted calculations: shape (2, nao, nao) or a sequence (length 2) of arrays of shape (nao, nao), and dms[0] and dms[1] are the density matrices of the alpha and beta electrons respectively. """ mol: gto.Mole dms: Union[np.ndarray, Sequence[np.ndarray]] def _get_number_of_density_matrices(dms): """Returns the number of density matrices in dms.""" # See pyscf.numint.NumInt._gen_rho_evaluator if isinstance(dms, np.ndarray) and dms.ndim == 2: return 1 return len(dms) class NeuralNumInt(numint.NumInt): """A wrapper around pyscf.dft.numint.NumInt for the DM21 functionals. In order to supply the local Hartree-Fock features required for the DM21 functionals, we lightly wrap the NumInt class. The actual evaluation of the exchange-correlation functional is performed in NeuralNumInt.eval_xc. Usage: mf = dft.RKS(...) # dft.ROKS and dft.UKS are also supported. # Specify the functional by monkey-patching mf._numint rather than using # mf._xc or mf._define_xc_. mf._numint = NeuralNumInt(Functional.DM21) mf.kernel() """ def __init__(self, functional: Functional, *, checkpoint_path: Optional[str] = None): """Constructs a NeuralNumInt object. Args: functional: member of Functional enum giving the name of the functional. checkpoint_path: Optional path to specify the directory containing the checkpoints of the DM21 family of functionals. If not specified, attempt to find the checkpoints using a path relative to the source code. """ self._functional_name = functional.name if checkpoint_path: self._model_path = os.path.join(checkpoint_path, self._functional_name) else: self._model_path = os.path.join( os.path.dirname(__file__), 'checkpoints', self._functional_name) # All DM21 functionals use local Hartree-Fock features with a non-range # separated 1/r kernel and a range-seperated kernel with \omega = 0.4. # Note an omega of 0.0 is interpreted by PySCF and libcint to indicate no # range-separation. self._omega_values = [0.0, 0.4] self._graph = tf.Graph() with self._graph.as_default(): self._build_graph() self._session = tf.Session() self._session.run(tf.global_variables_initializer()) self._grid_state = None self._system_state = None self._vmat_hf = None super().__init__() def _build_graph(self, batch_dim: Optional[int] = None): """Builds the TensorFlow graph for evaluating the functional. Args: batch_dim: the batch dimension of the grid to use in the model. Default: None (determine at runtime). This should only be set if building a model in order to export and ahead-of-time compile it into a standalone library. """ self._functional = hub.Module(spec=self._model_path) grid_coords = tf.placeholder( tf.float32, shape=[batch_dim, 3], name='grid_coords') grid_weights = tf.placeholder( tf.float32, shape=[batch_dim], name='grid_weights') # Density information. rho_a = tf.placeholder(tf.float32, shape=[6, batch_dim], name='rho_a') rho_b = tf.placeholder(tf.float32, shape=[6, batch_dim], name='rho_b') # Split into corresponding terms. rho_only_a, grad_a_x, grad_a_y, grad_a_z, _, tau_a = tf.unstack( rho_a, axis=0) rho_only_b, grad_b_x, grad_b_y, grad_b_z, _, tau_b = tf.unstack( rho_b, axis=0) # Evaluate |\del \rho|^2 for each spin density and for the total density. norm_grad_a = (grad_a_x**2 + grad_a_y**2 + grad_a_z**2) norm_grad_b = (grad_b_x**2 + grad_b_y**2 + grad_b_z**2) grad_x = grad_a_x + grad_b_x grad_y = grad_a_y + grad_b_y grad_z = grad_a_z + grad_b_z norm_grad = (grad_x**2 + grad_y**2 + grad_z**2) # The local Hartree-Fock energy densities at each grid point for the alpha- # and beta-spin densities for each value of omega. # Note an omega of 0 indicates no screening of the Coulomb potential. hfxa = tf.placeholder( tf.float32, shape=[batch_dim, len(self._omega_values)], name='hfxa') hfxb = tf.placeholder( tf.float32, shape=[batch_dim, len(self._omega_values)], name='hfxb') # Make all features 2D arrays on input for ease of handling inside the # functional. features = { 'grid_coords': grid_coords, 'grid_weights': tf.expand_dims(grid_weights, 1), 'rho_a': tf.expand_dims(rho_only_a, 1), 'rho_b': tf.expand_dims(rho_only_b, 1), 'tau_a': tf.expand_dims(tau_a, 1), 'tau_b': tf.expand_dims(tau_b, 1), 'norm_grad_rho_a': tf.expand_dims(norm_grad_a, 1), 'norm_grad_rho_b': tf.expand_dims(norm_grad_b, 1), 'norm_grad_rho': tf.expand_dims(norm_grad, 1), 'hfxa': hfxa, 'hfxb': hfxb, } tensor_dict = {f'tensor_dict${k}': v for k, v in features.items()} predictions = self._functional(tensor_dict, as_dict=True) local_xc = predictions['grid_contribution'] weighted_local_xc = local_xc * grid_weights unweighted_xc = tf.reduce_sum(local_xc, axis=0) xc = tf.reduce_sum(weighted_local_xc, axis=0) # The potential is the local exchange correlation divided by the # total density. Add a small constant to deal with zero density. self._vxc = local_xc / (rho_only_a + rho_only_b + 1E-12) # The derivatives of the exchange-correlation (XC) energy with respect to # input features. PySCF weights the (standard) derivatives by the grid # weights, so we need to compute this with respect to the unweighted sum # over grid points. self._vrho = tf.gradients( unweighted_xc, [features['rho_a'], features['rho_b']], name='GRAD_RHO', unconnected_gradients=tf.UnconnectedGradients.ZERO) self._vsigma = tf.gradients( unweighted_xc, [ features['norm_grad_rho_a'], features['norm_grad_rho_b'], features['norm_grad_rho'] ], name='GRAD_SIGMA', unconnected_gradients=tf.UnconnectedGradients.ZERO) self._vtau = tf.gradients( unweighted_xc, [features['tau_a'], features['tau_b']], name='GRAD_TAU', unconnected_gradients=tf.UnconnectedGradients.ZERO) # Standard meta-GGAs do not have a dependency on local HF, so we need to # compute the contribution to the Fock matrix ourselves. Just use the # weighted XC energy to avoid having to weight this later. self._vhf = tf.gradients( xc, [features['hfxa'], features['hfxb']], name='GRAD_HFX', unconnected_gradients=tf.UnconnectedGradients.ZERO) self._placeholders = FunctionalInputs( rho_a=rho_a, rho_b=rho_b, hfx_a=hfxa, hfx_b=hfxb, grid_coords=grid_coords, grid_weights=grid_weights) outputs = { 'vxc': self._vxc, 'vrho': tf.stack(self._vrho), 'vsigma': tf.stack(self._vsigma), 'vtau': tf.stack(self._vtau), 'vhf': tf.stack(self._vhf), } # Create the signature for TF-Hub, including both the energy and functional # derivatives. # This is a no-op if _build_graph is called outside of # hub.create_module_spec. hub.add_signature( inputs=attr.asdict(self._placeholders), outputs=outputs) def export_functional_and_derivatives( self, export_path: str, batch_dim: Optional[int] = None, ): """Exports the TensorFlow graph containing the functional and derivatives. The hub modules supplied contain the TensorFlow operations for the evaluation of the exchange-correlation energy. Evaluation of the functional derivatives, required for a self-consistent calculation, are added in _build_graph. The module created by export_functional_and_derivatives contains the evaluation of the functional and the functional derivatives. This is much simpler to use from languages other than Python, e.g. using the C or C++ TensorFlow API, or using tfcompile to create a standalone C++ library. Args: export_path: path to write the Hub model to. The exported model can be loaded using either TF-Hub or SavedModel APIs. batch_dim: the batch dimension of the grid to use in the model. Default: None (determine at runtime). This should only be set if the exported model is to be ahead-of-time compiled into a standalone library. """ with tf.Graph().as_default(): spec = hub.create_module_spec( self._build_graph, tags_and_args=[(set(), {'batch_dim': batch_dim})]) functional_and_derivatives = hub.Module(spec=spec) with tf.Session() as session: session.run(tf.global_variables_initializer()) functional_and_derivatives.export(export_path, session) # DM21* functionals include the hybrid term directly, so set the # range-separated and hybrid parameters expected by PySCF to 0 so PySCF # doesn't also add these contributions in separately. def rsh_coeff(self, *args): """Returns the range separated parameters, omega, alpha, beta.""" return [0.0, 0.0, 0.0] def hybrid_coeff(self, *args, **kwargs): """Returns the fraction of Hartree-Fock exchange to include.""" return 0.0 def _xc_type(self, *args, **kwargs): return 'MGGA' def nr_rks(self, mol: gto.Mole, grids: dft.Grids, xc_code: str, dms: Union[np.ndarray, Sequence[np.ndarray]], relativity: int = 0, hermi: int = 0, max_memory: float = 20000, verbose=None) -> Tuple[float, float, np.ndarray]: """Calculates RKS XC functional and potential matrix on a given grid. Args: mol: PySCF molecule. grids: grid on which to evaluate the functional. xc_code: XC code. Unused. NeuralNumInt hard codes the XC functional based upon the functional argument given to the constructor. dms: the density matrix or sequence of density matrices. Multiple density matrices are not currently supported. Shape (nao, nao), where nao is the number of atomic orbitals. relativity: Unused. (pyscf.numint.NumInt.nr_rks does not currently use this argument.) hermi: 0 if the density matrix is Hermitian, 1 if the density matrix is non-Hermitian. max_memory: the maximum cache to use, in MB. verbose: verbosity level. Unused. (PySCF currently does not handle the verbosity level passed in here.) Returns: nelec, excsum, vmat, where nelec is the number of electrons obtained by numerical integration of the density matrix. excsum is the functional's XC energy. vmat is the functional's XC potential matrix, shape (nao, nao). Raises: NotImplementedError: if multiple density matrices are supplied. """ # Wrap nr_rks so we can store internal variables required to evaluate the # contribution to the XC potential from local Hartree-Fock features. # See pyscf.dft.numint.nr_rks for more details. ndms = _get_number_of_density_matrices(dms) if ndms > 1: raise NotImplementedError( 'NeuralNumInt does not support multiple density matrices. ' 'Only ground state DFT calculations are currently implemented.') nao = mol.nao_nr() self._vmat_hf = np.zeros((nao, nao)) self._system_state = _SystemState(mol=mol, dms=dms) nelec, excsum, vmat = super().nr_rks( mol=mol, grids=grids, xc_code=xc_code, dms=dms, relativity=relativity, hermi=hermi, max_memory=max_memory, verbose=verbose) vmat += self._vmat_hf + self._vmat_hf.T # Clear internal state to prevent accidental re-use. self._system_state = None self._grid_state = None return nelec, excsum, vmat def nr_uks(self, mol: gto.Mole, grids: dft.Grids, xc_code: str, dms: Union[Sequence[np.ndarray], Sequence[Sequence[np.ndarray]]], relativity: int = 0, hermi: int = 0, max_memory: float = 20000, verbose=None) -> Tuple[np.ndarray, float, np.ndarray]: """Calculates UKS XC functional and potential matrix on a given grid. Args: mol: PySCF molecule. grids: grid on which to evaluate the functional. xc_code: XC code. Unused. NeuralNumInt hard codes the XC functional based upon the functional argument given to the constructor. dms: the density matrix or sequence of density matrices for each spin channel. Multiple density matrices for each spin channel are not currently supported. Each density matrix is shape (nao, nao), where nao is the number of atomic orbitals. relativity: Unused. (pyscf.dft.numint.NumInt.nr_rks does not currently use this argument.) hermi: 0 if the density matrix is Hermitian, 1 if the density matrix is non-Hermitian. max_memory: the maximum cache to use, in MB. verbose: verbosity level. Unused. (PySCF currently does not handle the verbosity level passed in here.) Returns: nelec, excsum, vmat, where nelec is the number of alpha, beta electrons obtained by numerical integration of the density matrix as an array of size 2. excsum is the functional's XC energy. vmat is the functional's XC potential matrix, shape (2, nao, nao), where vmat[0] and vmat[1] are the potential matrices for the alpha and beta spin channels respectively. Raises: NotImplementedError: if multiple density matrices for each spin channel are supplied. """ # Wrap nr_uks so we can store internal variables required to evaluate the # contribution to the XC potential from local Hartree-Fock features. # See pyscf.dft.numint.nr_uks for more details. if isinstance(dms, np.ndarray) and dms.ndim == 2: # RHF DM ndms = _get_number_of_density_matrices(dms) else: ndms = _get_number_of_density_matrices(dms[0]) if ndms > 1: raise NotImplementedError( 'NeuralNumInt does not support multiple density matrices. ' 'Only ground state DFT calculations are currently implemented.') nao = mol.nao_nr() self._vmat_hf = np.zeros((2, nao, nao)) self._system_state = _SystemState(mol=mol, dms=dms) nelec, excsum, vmat = super().nr_uks( mol=mol, grids=grids, xc_code=xc_code, dms=dms, relativity=relativity, hermi=hermi, max_memory=max_memory, verbose=verbose) vmat[0] += self._vmat_hf[0] + self._vmat_hf[0].T vmat[1] += self._vmat_hf[1] + self._vmat_hf[1].T # Clear internal state to prevent accidental re-use. self._system_state = None self._grid_state = None self._vmat_hf = None return nelec, excsum, vmat def block_loop( self, mol: gto.Mole, grids: dft.Grids, nao: Optional[int] = None, deriv: int = 0, max_memory: float = 2000, non0tab: Optional[np.ndarray] = None, blksize: Optional[int] = None, buf: Optional[np.ndarray] = None ) -> Generator[Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray], None, None]: """Loops over the grid by blocks. See pyscf.dft.numint.NumInt.block_loop. Args: mol: PySCF molecule. grids: grid on which to evaluate the functional. nao: number of basis functions. If None, obtained from mol. deriv: unused. The first functional derivatives are always computed. max_memory: the maximum cache to use for the information on the grid, in MB. Determines the size of each block if blksize is None. non0tab: mask determining if a shell in the basis set is zero at a grid point. Shape (N, nbas), where N is the number of grid points and nbas the number of shells in the basis set. Obtained from grids if not supplied. blksize: size of each block. Calculated from max_memory if None. buf: buffer to use for storing ao. If None, a new array for ao is created for each block. Yields: ao, mask, weight, coords: information on a block of the grid containing N' points, where ao: atomic orbitals evaluated on the grid. Shape (N', nao), where nao is the number of atomic orbitals. mask: mask indicating whether a shell in the basis set is zero at a grid point. Shape (N', nbas). weight: weight associated with each grid point. Shape (N'). coords: coordinates of the grid. Shape (N', 3). """ # Wrap block_loop so we can store internal variables required to evaluate # the contribution to the XC potential from local Hartree-Fock features. for ao, mask, weight, coords in super().block_loop( mol=mol, grids=grids, nao=nao, deriv=deriv, max_memory=max_memory, non0tab=non0tab, blksize=blksize, buf=buf): # Cache the curent block so we can access it in eval_xc. self._grid_state = _GridState( ao=ao, mask=mask, weight=weight, coords=coords) yield ao, mask, weight, coords def construct_functional_inputs( self, mol: gto.Mole, dms: Union[np.ndarray, Sequence[np.ndarray]], spin: int, coords: np.ndarray, weights: np.ndarray, rho: Union[np.ndarray, Tuple[np.ndarray, np.ndarray]], ao: Optional[np.ndarray] = None, ) -> Tuple[FunctionalInputs, Tuple[np.ndarray, np.ndarray]]: """Constructs the input features required for the functional. Args: mol: PySCF molecule. dms: density matrix of shape (nao, nao) (restricted calculations) or of shape (2, nao, nao) (unrestricted calculations) or tuple of density matrices for each spin channel, each of shape (nao, nao) (unrestricted calculations). spin: 0 for a spin-unpolarized (restricted Kohn-Sham) calculation, and spin-polarized (unrestricted) otherwise. coords: coordinates of the grid. Shape (N, 3), where N is the number of grid points. weights: weight associated with each grid point. Shape (N). rho: density and density derivatives at each grid point. Single array containing the total density for restricted calculations, tuple of arrays for each spin channel for unrestricted calculations. Each array has shape (6, N). See pyscf.dft.numint.eval_rho and comments in FunctionalInputs for more details. ao: The atomic orbitals evaluated on the grid, shape (N, nao). Computed if not supplied. Returns: inputs, fxx, where inputs: FunctionalInputs object containing the inputs (as np.ndarrays) for the functional. fxx: intermediates, shape (N, nao) for the alpha- and beta-spin channels, required for computing the first derivative of the local Hartree-Fock density with respect to the density matrices. See compute_hfx_density for more details. """ if spin == 0: # RKS rhoa = rho / 2 rhob = rho / 2 else: # UKS rhoa, rhob = rho # Local HF features. exxa, exxb = [], [] fxxa, fxxb = [], [] for omega in sorted(self._omega_values): hfx_results = compute_hfx_density.get_hf_density( mol, dms, coords=coords, omega=omega, deriv=1, ao=ao) exxa.append(hfx_results.exx[0]) exxb.append(hfx_results.exx[1]) fxxa.append(hfx_results.fxx[0]) fxxb.append(hfx_results.fxx[1]) exxa = np.stack(exxa, axis=-1) fxxa = np.stack(fxxa, axis=-1) if spin == 0: exx = (exxa, exxa) fxx = (fxxa, fxxa) else: exxb = np.stack(exxb, axis=-1) fxxb = np.stack(fxxb, axis=-1) exx = (exxa, exxb) fxx = (fxxa, fxxb) return FunctionalInputs( rho_a=rhoa, rho_b=rhob, hfx_a=exx[0], hfx_b=exx[1], grid_coords=coords, grid_weights=weights), fxx def eval_xc( self, xc_code: str, rho: Union[np.ndarray, Tuple[np.ndarray, np.ndarray]], spin: int = 0, relativity: int = 0, deriv: int = 1, omega: Optional[float] = None, verbose=None ) -> Tuple[np.ndarray, Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray], None, None]: """Evaluates the XC energy and functional derivatives. See pyscf.dft.libxc.eval_xc for more details on the interface. Note: this also sets self._vmat_extra, which contains the contribution the the potential matrix from the local Hartree-Fock terms in the functional. Args: xc_code: unused. rho: density and density derivatives at each grid point. Single array containing the total density for restricted calculations, tuple of arrays for each spin channel for unrestricted calculations. Each array has shape (6, N), where N is the number of grid points. See pyscf.dft.numint.eval_rho and comments in FunctionalInputs for more details. spin: 0 for a spin-unpolarized (restricted Kohn-Sham) calculation, and spin-polarized (unrestricted) otherwise. relativity: Not supported. deriv: unused. The first functional derivatives are always computed. omega: RSH parameter. Not supported. verbose: unused. Returns: exc, vxc, fxc, kxc, where: exc is the exchange-correlation potential matrix evaluated at each grid point, shape (N). vxc is (vrho, vgamma, vlapl, vtau), the first-order functional derivatives evaluated at each grid point, each shape (N). fxc is set to None. (The second-order functional derivatives are not computed.) kxc is set to None. (The third-order functional derivatives are not computed.) """ del xc_code, verbose, deriv # unused if relativity != 0: raise NotImplementedError('Relatistic calculations are not implemented ' 'for DM21 functionals.') if omega is not None: raise NotImplementedError('User-specifed range seperation parameters are ' 'not implemented for DM21 functionals.') # Retrieve cached state. ao = self._grid_state.ao if ao.ndim == 3: # Just need the AO values, not the gradients. ao = ao[0] if self._grid_state.weight is None: weights = np.array([1.]) else: weights = self._grid_state.weight mask = self._grid_state.mask inputs, (fxxa, fxxb) = self.construct_functional_inputs( mol=self._system_state.mol, dms=self._system_state.dms, spin=spin, rho=rho, weights=weights, coords=self._grid_state.coords, ao=ao) with self._graph.as_default(): feed_dict = dict( zip( attr.asdict(self._placeholders).values(), attr.asdict(inputs).values(), )) tensor_list = [ self._vxc, self._vrho, self._vsigma, self._vtau, self._vhf, ] exc, vrho, vsigma, vtau, vhf = ( self._session.run(tensor_list, feed_dict=feed_dict)) mol = self._system_state.mol shls_slice = (0, mol.nbas) ao_loc_nr = mol.ao_loc_nr() # Note: tf.gradients returns a list of gradients. # vrho, vsigma, vtau are derivatives of objects that had # tf.expand_dims(..., 1) applied. The [:, 0] indexing undoes this by # selecting the 0-th (and only) element from the second dimension. if spin == 0: vxc_0 = (vrho[0][:, 0] + vrho[1][:, 0]) / 2. # pyscf expects derivatives with respect to: # grad_rho . grad_rho. # The functional uses the first and last as inputs, but then has # grad_(rho_a + rho_b) . grad_(rho_a + rho_b) # as input. The following computes the correct total derivatives. vxc_1 = (vsigma[0][:, 0] / 4. + vsigma[1][:, 0] / 4. + vsigma[2][:, 0]) vxc_3 = (vtau[0][:, 0] + vtau[1][:, 0]) / 2. vxc_2 = np.zeros_like(vxc_3) vhfs = (vhf[0] + vhf[1]) / 2. # Local Hartree-Fock terms for i in range(len(self._omega_values)): # Factor of 1/2 is to account for adding vmat_hf + vmat_hf.T to vmat, # which we do to match existing PySCF style. Unlike other terms, vmat_hf # is already symmetric though. aow = np.einsum('pi,p->pi', fxxa[:, :, i], -0.5 * vhfs[:, i]) self._vmat_hf += _dot_ao_ao(mol, ao, aow, mask, shls_slice, ao_loc_nr) else: vxc_0 = np.stack([vrho[0][:, 0], vrho[1][:, 0]], axis=1) # pyscf expects derivatives with respect to: # grad_rho_a . grad_rho_a # grad_rho_a . grad_rho_b # grad_rho_b . grad_rho_b # The functional uses the first and last as inputs, but then has # grad_(rho_a + rho_b) . grad_(rho_a + rho_b) # as input. The following computes the correct total derivatives. vxc_1 = np.stack([ vsigma[0][:, 0] + vsigma[2][:, 0], 2. * vsigma[2][:, 0], vsigma[1][:, 0] + vsigma[2][:, 0] ], axis=1) vxc_3 = np.stack([vtau[0][:, 0], vtau[1][:, 0]], axis=1) vxc_2 = np.zeros_like(vxc_3) vhfs = np.stack([vhf[0], vhf[1]], axis=2) for i in range(len(self._omega_values)): # Factors of 1/2 are due to the same reason as in the spin=0 case. aow = np.einsum('pi,p->pi', fxxa[:, :, i], -0.5 * vhfs[:, i, 0]) self._vmat_hf[0] += _dot_ao_ao(mol, ao, aow, mask, shls_slice, ao_loc_nr) aow = np.einsum('pi,p->pi', fxxb[:, :, i], -0.5 * vhfs[:, i, 1]) self._vmat_hf[1] += _dot_ao_ao(mol, ao, aow, mask, shls_slice, ao_loc_nr) fxc = None # Second derivative not implemented kxc = None # Second derivative not implemented # PySCF C routines expect float64. exc = exc.astype(np.float64) vxc = tuple(v.astype(np.float64) for v in (vxc_0, vxc_1, vxc_2, vxc_3)) return exc, vxc, fxc, kxc ================================================ FILE: density_functional_approximation_dm21/density_functional_approximation_dm21/neural_numint_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for neural_numint.""" import os from absl.testing import parameterized import attr from pyscf import dft from pyscf import gto from pyscf import lib import tensorflow.compat.v1 as tf from density_functional_approximation_dm21 import neural_numint class NeuralNumintTest(tf.test.TestCase, parameterized.TestCase): def setUp(self): super().setUp() lib.param.TMPDIR = None lib.num_threads(1) # Golden values were obtained using the version of PySCF (including integral # generation) reported in the DM21 paper. @parameterized.parameters( { 'functional': neural_numint.Functional.DM21, 'expected_energy': -126.898521 }, { 'functional': neural_numint.Functional.DM21m, 'expected_energy': -126.907332 }, { 'functional': neural_numint.Functional.DM21mc, 'expected_energy': -126.922127 }, { 'functional': neural_numint.Functional.DM21mu, 'expected_energy': -126.898178 }, ) def test_rks(self, functional, expected_energy): ni = neural_numint.NeuralNumInt(functional) mol = gto.Mole() mol.atom = [['Ne', 0., 0., 0.]] mol.basis = 'sto-3g' mol.build() mf = dft.RKS(mol) mf.small_rho_cutoff = 1.e-20 mf._numint = ni mf.run() self.assertAlmostEqual(mf.e_tot, expected_energy, delta=2.e-4) @parameterized.parameters( { 'functional': neural_numint.Functional.DM21, 'expected_energy': -37.34184876 }, { 'functional': neural_numint.Functional.DM21m, 'expected_energy': -37.3377766 }, { 'functional': neural_numint.Functional.DM21mc, 'expected_energy': -37.33489173 }, { 'functional': neural_numint.Functional.DM21mu, 'expected_energy': -37.34015315 }, ) def test_uks(self, functional, expected_energy): ni = neural_numint.NeuralNumInt(functional) mol = gto.Mole() mol.atom = [['C', 0., 0., 0.]] mol.spin = 2 mol.basis = 'sto-3g' mol.build() mf = dft.UKS(mol) mf.small_rho_cutoff = 1.e-20 mf._numint = ni mf.run() self.assertAlmostEqual(mf.e_tot, expected_energy, delta=2.e-4) def test_exported_model(self): mol = gto.Mole() mol.atom = [['C', 0., 0., 0.]] mol.spin = 2 mol.basis = 'sto-3g' mol.build() ni = neural_numint.NeuralNumInt(neural_numint.Functional.DM21) mf = dft.UKS(mol) mf.small_rho_cutoff = 1.e-20 mf._numint = ni mf.run() dms = mf.make_rdm1() ao = ni.eval_ao(mol, mf.grids.coords, deriv=2) rho_a = ni.eval_rho(mol, ao, dms[0], xctype='MGGA') rho_b = ni.eval_rho(mol, ao, dms[1], xctype='MGGA') inputs, _ = ni.construct_functional_inputs( mol=mol, dms=dms, spin=1, coords=mf.grids.coords, weights=mf.grids.weights, rho=(rho_a, rho_b), ao=ao[0]) feed_dict = dict( zip( attr.asdict(ni._placeholders).values(), attr.asdict(inputs).values(), )) with ni._graph.as_default(): outputs = ni._session.run( { 'vxc': ni._vxc, 'vrho': ni._vrho, 'vsigma': ni._vsigma, 'vtau': ni._vtau, 'vhf': ni._vhf }, feed_dict=feed_dict) export_path = os.path.join(self.get_temp_dir(), 'export') ni.export_functional_and_derivatives(export_path) model = tf.saved_model.load_v2(export_path) tensor_inputs = { k: tf.constant(v, dtype=tf.float32) for k, v in attr.asdict(inputs).items() } exported_output_tensors = model.signatures['default'](**tensor_inputs) with tf.Session() as session: session.run(tf.global_variables_initializer()) exported_outputs = session.run(exported_output_tensors) self.assertAllClose(outputs, exported_outputs, atol=5.e-5, rtol=1.e-5) if __name__ == '__main__': tf.test.main() ================================================ FILE: density_functional_approximation_dm21/external/tf_bazel.patch ================================================ From 76edcc2da8a754cb2b283d7de9a7b37f51f7f380 Mon Sep 17 00:00:00 2001 From: James Spencer Date: Thu, 26 Aug 2021 10:00:53 +0100 Subject: [PATCH] Set dependencies for saved_model_compile_aot rule, visibility for xla_compiled_cpu_runtime_standalone to work outside of tensorflow, and absl version. --- tensorflow/compiler/tf2xla/BUILD | 2 +- tensorflow/compiler/xla/mlir/ir/runtime/BUILD | 1 + tensorflow/python/tools/tools.bzl | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tensorflow/compiler/tf2xla/BUILD b/tensorflow/compiler/tf2xla/BUILD index cfe63b16675..cd273aaf29e 100644 --- a/tensorflow/compiler/tf2xla/BUILD +++ b/tensorflow/compiler/tf2xla/BUILD @@ -235,7 +235,7 @@ cc_library( "-parse_headers", ], linkstatic = 1, - visibility = [":friends"], + visibility = ["//visibility:public"], # Note, we specifically removed MKL and multithreaded dependencies so the # standalone does not require the MKL binary blob or threading libraries. # diff --git a/tensorflow/compiler/xla/mlir/ir/runtime/BUILD b/tensorflow/compiler/xla/mlir/ir/runtime/BUILD index 8c693fa5d49..bf95a3de622 100644 --- a/tensorflow/compiler/xla/mlir/ir/runtime/BUILD +++ b/tensorflow/compiler/xla/mlir/ir/runtime/BUILD @@ -90,6 +90,7 @@ cc_library( "rt_ops.h", ], compatible_with = get_compatible_with_cloud(), + visibility = ["//visibility:public"], deps = [ ":rt_inc_gen", "//tensorflow/compiler/xla/runtime:constraints", diff --git a/tensorflow/python/tools/tools.bzl b/tensorflow/python/tools/tools.bzl index db886746006..bc597e29de9 100644 --- a/tensorflow/python/tools/tools.bzl +++ b/tensorflow/python/tools/tools.bzl @@ -148,7 +148,7 @@ def saved_model_compile_aot( ), tags = tags, tools = [ - "//tensorflow/python/tools:saved_model_cli", + "@org_tensorflow//tensorflow/python/tools:saved_model_cli", ], ) @@ -170,7 +170,7 @@ def saved_model_compile_aot( tags = tags, deps = _maybe_force_compile( [ - "//tensorflow/compiler/tf2xla:xla_compiled_cpu_runtime_standalone", + "@org_tensorflow//tensorflow/compiler/tf2xla:xla_compiled_cpu_runtime_standalone", ], force_compile = force_without_xla_support_flag, ), -- 2.33.0.259.gc128427fd7-goog ================================================ FILE: density_functional_approximation_dm21/requirements.txt ================================================ absl-py==1.4.0 attrs==22.2.0 h5py==3.8.0 numpy==1.24.1 pyscf==2.1.1 pytest==6.2.4 scipy==1.9.3 tensorflow==2.11.0 tensorflow-hub==0.12.0 ================================================ FILE: density_functional_approximation_dm21/requirements_aot_compilation.txt ================================================ Keras-Preprocessing==1.1.2 numpy==1.24.1 tensorflow-estimator==2.11.0 ================================================ FILE: density_functional_approximation_dm21/run.sh ================================================ #!/bin/bash # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Install density_functional_approximation_dm21 in a clean virtualenv and run # the tests. This assumes the working directory is the top-level directory of # the deepmind-research repository, i.e.: # git clone git@github.com:deepmind/deepmind-research.git # cd deepmind_research # density_functional_approximation_dm21/run.sh python3 -m venv /tmp/DM21 source /tmp/DM21/bin/activate pip3 install -r density_functional_approximation_dm21/requirements.txt pip install 'density_functional_approximation_dm21/[testing]' py.test density_functional_approximation_dm21/ ================================================ FILE: density_functional_approximation_dm21/setup.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for DM21 functionals interface to PySCF.""" from setuptools import setup REQUIRED_PACKAGES = [ 'absl-py', 'attrs', # Note PySCF 1.7.6 and older do not support h5py 3.3.0: # https://github.com/pyscf/pyscf/issues/1016 'h5py', 'numpy', # Note DM21 functionals are compatible with PySCF 1.7.6 if an older version # of h5py is used. 'pyscf>=2.0', 'tensorflow', 'tensorflow_hub', ] CHECKPOINT_DATA = ['checkpoints/DM21*/*.pb', 'checkpoints/DM21*/variables/*'] setup( name='density_functional_approximation_dm21', version='0.1', description='An interface to PySCF for the DM21 functionals.', url='https://github.com/deepmind/deepmind-research/density_functional_approximation_dm21', author='DeepMind', author_email='no-reply@google.com', # Contained modules and scripts. packages=['density_functional_approximation_dm21'], package_data={ 'density_functional_approximation_dm21': CHECKPOINT_DATA, }, scripts=['density_functional_approximation_dm21/export_saved_model.py'], install_requires=REQUIRED_PACKAGES, platforms=['any'], license='Apache 2.0', extras_require={'testing': ['pytest', 'scipy']}, ) ================================================ FILE: enformer/README.md ================================================ # Enformer This package provides an implementation of the Enformer model and examples on running the model. If this source code or accompanying files are helpful for your research please cite the following publication: "Effective gene expression prediction from sequence by integrating long-range interactions" Žiga Avsec, Vikram Agarwal, Daniel Visentin, Joseph R. Ledsam, Agnieszka Grabska-Barwinska, Kyle R. Taylor, Yannis Assael, John Jumper, Pushmeet Kohli, David R. Kelley ## Setup Requirements: * dm-sonnet (2.0.0) * kipoiseq (0.5.2) * numpy (1.19.5) * pandas (1.2.3) * tensoflow (2.4.1) * tensorflow-hub (0.11.0) See `requirements.txt`. To run the unit test: ```shell python3.8 -m venv enformer_venv source enformer_venv/bin/activate pip install -r requirements.txt python -m enformer_test ``` ## Pre-computed variant effect predictions We precomputed variant effect scores for all frequent variants (MAF>0.5%, in any population) present in the 1000 genomes project. Variant scores in HDF5 file format per chromosome for HG19 reference genome can be found [here](https://console.cloud.google.com/storage/browser/dm-enformer/variant-scores/1000-genomes/enformer). The HDF5 file has the same format as the output of [this](https://github.com/calico/basenji/blob/738321c85f8925ae6ac318a6cd4901a42ea6bc3f/bin/basenji_sad.py#L264) script and contains the following arrays: * snp \[num_snps](string) - snp id * chr \[num_snps](string) - chromosome name * pos \[num_snps](uint32) - position (1-based) * ref \[num_snps](string) - reference allele * alt \[num_snps](string) - alternative allele * target_ids \[num_targets](string) - target ids * target_labels \[num_targets](string) - target names * SAD \[num_snps, num_targets](float16) - SNP Activity Difference (SAD) scores - main variant effect score computed as `model(alternate_sequence) - model(reference_sequence)`. * SAR \[num_snps, num_targets](float16) - Same as SAD, by computing `np.log2(1 + model(alternate_sequence)) - np.log2(1 + model(reference_sequence))` Furthermore, we provide the top 20 principal components of variant-effect scores in the [PC20 folder](https://console.cloud.google.com/storage/browser/dm-enformer/variant-scores/1000-genomes/enformer/PC20) stored as a tabix-indexed TSV file per chromosome (HG19 reference genome). The format of these files has the following columns: * #CHROM - chromosome (chr1) * POS - variant position (1-based) * ID - dbSNP identifier * REF - reference allele (e.g. A) * ALT - alternate allele (e.g. T) * PC{i} - i-th principal component of the variant effect prediction. All model predictions are licensed under [CC-BY 4.0 license](https://creativecommons.org/licenses/by/4.0/). ## Running Inference The simplest way to perform inference is to load the model via tfhub.dev (TODO: LINK). The input sequence length is 393,216 with the prediction corresponding to 128 base pair windows of the center 114,688 base pairs. The input sequence is one hot encoded using the order of indices being 'ACGT' with N values being all zeros. Note that only the central 196,608 bp of the input sequence will be used by the Enformer model. The rest will be cropped within the model. ```python import tensorflow as tf import tensorflow_hub as hub enformer = hub.Module('https://tfhub.dev/deepmind/enformer/1') SEQ_LENGTH = 393_216 # Numpy array [batch_size, SEQ_LENGTH, 4] one hot encoded in order 'ACGT'. The # `one_hot_encode` function is available in `enformer.py` and outputs can be # stacked to form a batch. inputs = tf.zeros((1, SEQ_LENGTH, 4), dtype=tf.float32) predictions = enformer.predict_on_batch(inputs) predictions['human'].shape # [batch_size, 896, 5313] predictions[mouse].shape # [batch_size, 896, 1643] ``` ## Outputs For each 128 bp window, predictions are made for every track. The mapping from track idx to track name is found in the corresponding file in the basenji [dataset](https://github.com/calico/basenji/tree/master/manuscripts/cross2020) folder (targets_{organism}.txt file). As an example, to load track annotations for the human targets: ```python import pandas as pd targets_txt = 'https://raw.githubusercontent.com/calico/basenji/0.5/manuscripts/cross2020/targets_human.txt' df_targets = pd.read_csv(targets_txt, sep='\t') df_targets.shape # (5313, 8) With rows match output shape above. ``` ## Training Code The model is implemented using [Sonnet](https://github.com/deepmind/sonnet). The full sonnet module is defined in `enformer.py` called Enformer. See [enformer-training.ipynb](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/enformer/enformer-training.ipynb) on how to train the model on Basenji2 data and how to load the pre-trained weights into the Enformer module for fine-tuning. ## Colab Further usage and training examples are given in the following colab notebooks: ### `enformer-usage.ipynb` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/enformer/enformer-usage.ipynb). This shows how to: * **Make predictions** with pre-trained Enformer and reproduce Fig. 1d * **Compute contribution scores** and reproduce parts of Fig. 2a * **Predict the effect of genetic variants** and reproduce parts of Fig. 3g * Score multiple variants in a VCF ### `enformer-training.ipynb` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/enformer/enformer-training.ipynb). This colab shows how to: * Setup training data by directly accessing the Basenji2 data on GCS * Train the model for a few steps on both human and mouse genomes * Evaluate the model on human and mouse genomes * Restore the model from a checkpoint for fine-tuning ## Disclaimer This is not an official Google product. ================================================ FILE: enformer/attention_module.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """TransformerBlock and MultiheadAttention modules used in the paper. "Effective gene expression prediction from sequence by integrating long-range interactions" Žiga Avsec1, Vikram Agarwal2,4, Daniel Visentin1,4, Joseph R. Ledsam1,3, Agnieszka Grabska-Barwinska1, Kyle R. Taylor1, Yannis Assael1, John Jumper1, Pushmeet Kohli1, David R. Kelley2* 1 DeepMind, London, UK 2 Calico Life Sciences, South San Francisco, CA, USA 3 Google, Tokyo, Japan 4 These authors contributed equally. * correspondence: avsec@google.com, pushmeet@google.com, drk@calicolabs.com Example: ``` mha = MultiheadAttention( value_size=96, key_size=64, num_heads=8, relative_position_functions=['positional_features_sin_cos']) mha(tf.ones((2, 1024, 96*8)), is_training=True) # Transformer block as used in the paper transformer_block = TransformerBlock( channels=96 * 8, dropout_rate=0.4, attention_kwargs=dict( value_size=96, key_size=64, num_heads=8, relative_positions=True, relative_position_symmetric=False, num_relative_position_features=None, relative_position_functions=['positional_features_exponential', 'positional_features_central_mask', 'positional_features_gamma'], positional_dropout_rate=0.01, attention_dropout_rate=0.05, ) ) transformer_block(tf.ones((2, 1024, 96*8)), is_training=True) ``` """ from typing import Any, Dict, List, Optional import numpy as np import sonnet as snt import tensorflow as tf class TransformerBlock(snt.Module): """Full transformer module block.""" def __init__( self, channels: int, dropout_rate: float, attention_kwargs: Dict[str, Any], name: str = 'transformer_block', ): super().__init__(name=name) self.mha_ln = snt.LayerNorm(axis=-1, create_scale=True, create_offset=True) self.mha = MultiheadAttention(**attention_kwargs) self.mha_dropout = snt.Dropout(dropout_rate) self.mlp_ln = snt.LayerNorm(axis=-1, create_scale=True, create_offset=True) self.mlp_linear1 = snt.Linear(channels * 2) self.mlp_dropout1 = snt.Dropout(dropout_rate) self.mlp_linear2 = snt.Linear(channels) self.mlp_dropout2 = snt.Dropout(dropout_rate) def __call__(self, inputs: tf.Tensor, is_training: bool) -> tf.Tensor: x = self.mha_ln(inputs) x = self.mha(x, is_training=is_training) x = self.mha_dropout(x, is_training=is_training) x += inputs # Residual mha_output = x # MLP. x = self.mlp_ln(mha_output) x = self.mlp_linear1(x) x = self.mlp_dropout1(x, is_training=is_training) x = tf.nn.relu(x) x = self.mlp_linear2(x) x = self.mlp_dropout2(x, is_training=is_training) return x + mha_output class MultiheadAttention(snt.Module): """Multi-head attention.""" def __init__(self, value_size: int, key_size: int, num_heads: int, scaling: bool = True, attention_dropout_rate: float = 0.1, relative_positions: bool = False, relative_position_symmetric: bool = False, relative_position_functions: Optional[List[str]] = None, num_relative_position_features: Optional[int] = None, positional_dropout_rate: float = 0.1, zero_initialize: bool = True, initializer: Optional[snt.initializers.Initializer] = None, name: str = None): """Creates a MultiheadAttention module. Args: value_size: The size of each value embedding per head. key_size: The size of each key and query embedding per head. num_heads: The number of independent queries per timestep. scaling: Whether to scale the attention logits. attention_dropout_rate: Dropout rate for attention logits. relative_positions: Whether to use TransformerXL style relative attention. relative_position_symmetric: If True, the symmetric version of basis functions will be used. If False, a symmetric and asymmetric versions will be use. relative_position_functions: List of function names used for relative positional biases. num_relative_position_features: Number of relative positional features to compute. If None, `value_size * num_heads` is used. positional_dropout_rate: Dropout rate for the positional encodings if relative positions are used. zero_initialize: if True, the final linear layer will be 0 initialized. initializer: Initializer for the projection layers. If unspecified, VarianceScaling is used with scale = 2.0. name: Name of module. """ super().__init__(name=name) self._value_size = value_size self._key_size = key_size self._num_heads = num_heads self._attention_dropout_rate = attention_dropout_rate self._scaling = scaling self._relative_positions = relative_positions self._relative_position_symmetric = relative_position_symmetric self._relative_position_functions = relative_position_functions if num_relative_position_features is None: # num_relative_position_features needs to be divisible by the number of # relative positional functions *2 (for symmetric & asymmetric version). divisible_by = 2 * len(self._relative_position_functions) self._num_relative_position_features = ( (self._value_size // divisible_by) * divisible_by) else: self._num_relative_position_features = num_relative_position_features self._positional_dropout_rate = positional_dropout_rate self._initializer = initializer if self._initializer is None: self._initializer = snt.initializers.VarianceScaling(scale=2.0) key_proj_size = self._key_size * self._num_heads embedding_size = self._value_size * self._num_heads self._q_layer = snt.Linear( key_proj_size, name='q_layer', with_bias=False, w_init=self._initializer) self._k_layer = snt.Linear( key_proj_size, name='k_layer', with_bias=False, w_init=self._initializer) self._v_layer = snt.Linear( embedding_size, name='v_layer', with_bias=False, w_init=self._initializer) w_init = snt.initializers.Zeros() if zero_initialize else self._initializer self._embedding_layer = snt.Linear( embedding_size, name='embedding_layer', w_init=w_init) # Create additional layers if using relative positions. if self._relative_positions: self._r_k_layer = snt.Linear( key_proj_size, name='r_k_layer', with_bias=False, w_init=self._initializer) self._r_w_bias = tf.Variable( self._initializer([1, self._num_heads, 1, self._key_size], dtype=tf.float32), name='r_w_bias') self._r_r_bias = tf.Variable( self._initializer([1, self._num_heads, 1, self._key_size], dtype=tf.float32), name='r_r_bias') def _multihead_output(self, linear, inputs): """Applies a standard linear to inputs and returns multihead output.""" output = snt.BatchApply(linear)(inputs) # [B, T, H * KV] num_kv_channels = output.shape[-1] // self._num_heads # Split H * Channels into separate axes. output = snt.reshape(output, output_shape=[-1, self._num_heads, num_kv_channels]) # [B, T, H, KV] -> [B, H, T, KV] return tf.transpose(output, [0, 2, 1, 3]) def __call__(self, inputs, is_training=False): # Initialise the projection layers. embedding_size = self._value_size * self._num_heads seq_len = inputs.shape[1] # Compute q, k and v as multi-headed projections of the inputs. q = self._multihead_output(self._q_layer, inputs) # [B, H, T, K] k = self._multihead_output(self._k_layer, inputs) # [B, H, T, K] v = self._multihead_output(self._v_layer, inputs) # [B, H, T, V] # Scale the query by the square-root of key size. if self._scaling: q *= self._key_size**-0.5 if self._relative_positions: # For relative positions, we project positions to form relative keys. distances = tf.range(-seq_len + 1, seq_len, dtype=tf.float32)[tf.newaxis] positional_encodings = positional_features_all( positions=distances, feature_size=self._num_relative_position_features, seq_length=seq_len, feature_functions=self._relative_position_functions, symmetric=self._relative_position_symmetric) # [1, 2T-1, Cr] if is_training: positional_encodings = tf.nn.dropout( positional_encodings, rate=self._positional_dropout_rate) # [1, H, 2T-1, K] r_k = self._multihead_output(self._r_k_layer, positional_encodings) # Add shifted relative logits to content logits. # [B, H, T', T] content_logits = tf.matmul(q + self._r_w_bias, k, transpose_b=True) # [B, H, T', 2T-1] relative_logits = tf.matmul( q + self._r_r_bias, r_k, transpose_b=True) # [B, H, T', T] relative_logits = relative_shift(relative_logits) logits = content_logits + relative_logits else: # [B, H, T', T] logits = tf.matmul(q, k, transpose_b=True) weights = tf.nn.softmax(logits) # Dropout on the attention weights. if is_training: weights = tf.nn.dropout(weights, rate=self._attention_dropout_rate) # Transpose and reshape the output. output = tf.matmul(weights, v) # [B, H, T', V] output_transpose = tf.transpose(output, [0, 2, 1, 3]) # [B, T', H, V] # Final linear layer. attended_inputs = snt.reshape( output_transpose, output_shape=[embedding_size], preserve_dims=2) output = self._embedding_layer(attended_inputs) return output def relative_shift(x): """Shift the relative logits like in TransformerXL.""" # We prepend zeros on the final timescale dimension. to_pad = tf.zeros_like(x[..., :1]) x = tf.concat([to_pad, x], -1) _, num_heads, t1, t2 = x.shape x = tf.reshape(x, [-1, num_heads, t2, t1]) x = tf.slice(x, [0, 0, 1, 0], [-1, -1, -1, -1]) x = tf.reshape(x, [-1, num_heads, t1, t2 - 1]) x = tf.slice(x, [0, 0, 0, 0], [-1, -1, -1, (t2 + 1) // 2]) return x # Available feature functions: def get_positional_feature_function(name): """Returns positional feature functions.""" available = { 'positional_features_exponential': positional_features_exponential, 'positional_features_central_mask': positional_features_central_mask, 'positional_features_gamma': positional_features_gamma, 'positional_features_cosine': positional_features_cosine, 'positional_features_linear_masks': positional_features_linear_masks, 'positional_features_sin_cos': positional_features_sin_cos, } if name not in available: raise ValueError(f'Function {name} not available in {available.keys()}') return available[name] def positional_features_all(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None, feature_functions: Optional[List[str]] = None, symmetric=False): """Compute relative positional encodings/features. Each positional feature function will compute/provide the same fraction of features, making up the total of feature_size. Args: positions: Tensor of relative positions of arbitrary shape. feature_size: Total number of basis functions. seq_length: Sequence length denoting the characteristic length that the individual positional features can use. This is required since the parametrization of the input features should be independent of `positions` while it could still require to use the total number of features. bin_size: Bin sized used to partition the sequence. This can be used to compute features on the absolute scale relative to the genome. feature_functions: List of different feature functions to use. Each function will take as argument: positions, sequence length and number of features to compute. symmetric: If True, the resulting features will be symmetric across the relative position of 0 (i.e. only absolute value of positions will matter). If false, then both the symmetric and asymmetric version (symmetric multiplied by sign(positions)) of the features will be used. Returns: Tensor of shape: `positions.shape + (feature_size,)`. """ if feature_functions is None: feature_functions = ['positional_features_exponential', 'positional_features_central_mask', 'positional_features_gamma'] num_components = len(feature_functions) # 1 per each basis function if not symmetric: num_components = 2 * num_components # For now, we do not allow odd sized embeddings. if feature_size % num_components != 0: raise ValueError( f'feature_size has to be divisible by {num_components}') feature_functions = [get_positional_feature_function(f) for f in feature_functions] num_basis_per_class = feature_size // num_components embeddings = tf.concat([f(tf.abs(positions), num_basis_per_class, seq_length, bin_size) for f in feature_functions], axis=-1) if not symmetric: embeddings = tf.concat([embeddings, tf.sign(positions)[..., tf.newaxis] * embeddings], axis=-1) tf.TensorShape(embeddings.shape).assert_is_compatible_with( positions.shape + [feature_size]) return embeddings def _prepend_dims(x, num_dims): return tf.reshape(x, shape=[1] * num_dims + x.shape) def positional_features_exponential(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None, min_half_life: Optional[float] = 3.0): """Create exponentially decaying positional weights. Args: positions: Position tensor (arbitrary shape). feature_size: Number of basis functions to use. seq_length: Sequence length. bin_size: (unused). See `positional_features_all`. min_half_life: Smallest exponential half life in the grid of half lives. Returns: A Tensor with shape [2 * seq_length - 1, feature_size]. """ del bin_size # Unused. if seq_length is None: seq_length = tf.reduce_max(tf.abs(positions)) + 1 # Grid of half lifes from [3, seq_length / 2] with feature_size # distributed on the log scale. seq_length = tf.cast(seq_length, dtype=tf.float32) max_range = tf.math.log(seq_length) / tf.math.log(2.0) half_life = tf.pow(2.0, tf.linspace(min_half_life, max_range, feature_size)) half_life = _prepend_dims(half_life, positions.shape.rank) positions = tf.abs(positions) outputs = tf.exp(-tf.math.log(2.0) / half_life * positions[..., tf.newaxis]) tf.TensorShape(outputs.shape).assert_is_compatible_with( positions.shape + [feature_size]) return outputs def positional_features_central_mask(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None): """Positional features using a central mask (allow only central features).""" del seq_length # Unused. del bin_size # Unused. center_widths = tf.pow(2.0, tf.range(1, feature_size + 1, dtype=tf.float32)) center_widths = center_widths - 1 center_widths = _prepend_dims(center_widths, positions.shape.rank) outputs = tf.cast(center_widths > tf.abs(positions)[..., tf.newaxis], tf.float32) tf.TensorShape(outputs.shape).assert_is_compatible_with( positions.shape + [feature_size]) return outputs def gamma_pdf(x, concentration, rate): """Gamma probability distribution function: p(x|concentration, rate).""" log_unnormalized_prob = tf.math.xlogy(concentration - 1., x) - rate * x log_normalization = (tf.math.lgamma(concentration) - concentration * tf.math.log(rate)) return tf.exp(log_unnormalized_prob - log_normalization) def positional_features_gamma(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None, stddev=None, start_mean=None): """Positional features computed using the gamma distributions.""" del bin_size # Unused. if seq_length is None: seq_length = tf.reduce_max(tf.abs(positions)) + 1 if stddev is None: stddev = seq_length / (2 * feature_size) if start_mean is None: start_mean = seq_length / feature_size mean = tf.linspace(start_mean, seq_length, num=feature_size) mean = _prepend_dims(mean, positions.shape.rank) concentration = (mean / stddev)**2 rate = mean / stddev**2 probabilities = gamma_pdf( tf.abs(tf.cast(positions, dtype=tf.float32))[..., tf.newaxis], concentration, rate) probabilities += 1e-8 # To ensure numerical stability. outputs = probabilities / tf.reduce_max(probabilities, axis=1, keepdims=True) tf.TensorShape(outputs.shape).assert_is_compatible_with( positions.shape + [feature_size]) return outputs def positional_features_cosine(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None): """Cosine positional features.""" del bin_size # Unused. del seq_length # Unused. periodicity = 1.25 * tf.pow(2.0, tf.range(0, feature_size, dtype=tf.float32)) periodicity = _prepend_dims(periodicity, positions.shape.rank) outputs = tf.math.cos(2 * np.pi * positions[..., tf.newaxis] / periodicity) tf.TensorShape(outputs.shape).assert_is_compatible_with( positions.shape + [feature_size]) return outputs def positional_features_linear_masks(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None): """Exponentially increasing point focuses.""" del bin_size # Unused. del seq_length # Unused. distances = tf.range(0, feature_size, dtype=tf.float32) distances = _prepend_dims(distances, positions.shape.rank) outputs = tf.cast(distances == tf.abs(positions[..., tf.newaxis]), dtype=tf.float32) tf.TensorShape(outputs.shape).assert_is_compatible_with( positions.shape + [feature_size]) return outputs def positional_features_sin_cos(positions: tf.Tensor, feature_size: int, seq_length: Optional[int] = None, bin_size: Optional[int] = None, max_time=10000.0): """Sine/cosine positional encodings.""" del bin_size # Unused. del seq_length # Unused. if feature_size % 2 != 0: raise ValueError('feature_size needs to be divisible by 2.') i = tf.range(0, feature_size, 2, dtype=tf.float32) i = _prepend_dims(i, positions.shape.rank) # Concat sines and cosines and return. outputs = tf.concat([ tf.sin(positions[..., tf.newaxis] / max_time**(i / feature_size)), tf.cos(positions[..., tf.newaxis] / max_time**(i / feature_size))], -1) tf.TensorShape(outputs.shape).assert_is_compatible_with( positions.shape + [feature_size]) return outputs ================================================ FILE: enformer/enformer-training.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "rb_ShvB9E8yM" }, "source": [ "Copyright 2021 DeepMind Technologies Limited\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "kXQjDxgdwUmW" }, "source": [ "This colab showcases training of the Enformer model published in\n", "\n", "**\"Effective gene expression prediction from sequence by integrating long-range interactions\"**\n", "\n", "Žiga Avsec, Vikram Agarwal, Daniel Visentin, Joseph R. Ledsam, Agnieszka Grabska-Barwinska, Kyle R. Taylor, Yannis Assael, John Jumper, Pushmeet Kohli, David R. Kelley\n" ] }, { "cell_type": "markdown", "metadata": { "id": "2AVkKjy3bh_A" }, "source": [ "## Steps\n", "\n", "- Setup tf.data.Dataset by directly accessing the Basenji2 data on GCS: `gs://basenji_barnyard/data`\n", "- Train the model for a few steps, alternating training on human and mouse data batches\n", "- Evaluate the model on human and mouse genomes" ] }, { "cell_type": "markdown", "metadata": { "id": "sM_PMOT-2Xhi" }, "source": [ "## Setup" ] }, { "cell_type": "markdown", "metadata": { "id": "NqR7ol3rxrtM" }, "source": [ "**Start the colab kernel with GPU**: Runtime -\u003e Change runtime type -\u003e GPU" ] }, { "cell_type": "markdown", "metadata": { "id": "vhjR7StI1tZn" }, "source": [ "### Install dependencies" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "WiDFm-a41tKW", "outputId": "8b889c6e-f113-4664-f2c9-91110808ad92" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting dm-sonnet\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/13/28/9185afffefb655ef1a29f4b84aa9f656826408ca2d1b9ffeba81fbfd40ec/dm_sonnet-2.0.0-py3-none-any.whl (254kB)\n", "\r\u001b[K |█▎ | 10kB 13.3MB/s eta 0:00:01\r\u001b[K |██▋ | 20kB 11.7MB/s eta 0:00:01\r\u001b[K |███▉ | 30kB 8.7MB/s eta 0:00:01\r\u001b[K |█████▏ | 40kB 7.7MB/s eta 0:00:01\r\u001b[K |██████▍ | 51kB 4.5MB/s eta 0:00:01\r\u001b[K |███████▊ | 61kB 5.1MB/s eta 0:00:01\r\u001b[K |█████████ | 71kB 5.1MB/s eta 0:00:01\r\u001b[K |██████████▎ | 81kB 5.5MB/s eta 0:00:01\r\u001b[K |███████████▋ | 92kB 5.5MB/s eta 0:00:01\r\u001b[K |████████████▉ | 102kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████▏ | 112kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████▌ | 122kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████▊ | 133kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████ | 143kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████▎ | 153kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████▋ | 163kB 5.7MB/s eta 0:00:01\r\u001b[K |██████████████████████ | 174kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████▏ | 184kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████▌ | 194kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████▊ | 204kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████ | 215kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████▎ | 225kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▋ | 235kB 5.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████ | 245kB 5.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 256kB 5.7MB/s \n", "\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (4.41.1)\n", "Requirement already satisfied: six\u003e=1.12.0 in /usr/local/lib/python3.7/dist-packages (from dm-sonnet) (1.15.0)\n", "Requirement already satisfied: absl-py\u003e=0.7.1 in /usr/local/lib/python3.7/dist-packages (from dm-sonnet) (0.12.0)\n", "Requirement already satisfied: numpy\u003e=1.16.3 in /usr/local/lib/python3.7/dist-packages (from dm-sonnet) (1.19.5)\n", "Requirement already satisfied: wrapt\u003e=1.11.1 in /usr/local/lib/python3.7/dist-packages (from dm-sonnet) (1.12.1)\n", "Requirement already satisfied: tabulate\u003e=0.7.5 in /usr/local/lib/python3.7/dist-packages (from dm-sonnet) (0.8.9)\n", "Requirement already satisfied: dm-tree\u003e=0.1.1 in /usr/local/lib/python3.7/dist-packages (from dm-sonnet) (0.1.5)\n", "Installing collected packages: dm-sonnet\n", "Successfully installed dm-sonnet-2.0.0\n" ] } ], "source": [ "!pip install dm-sonnet tqdm" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "CokqDsb-fxme" }, "outputs": [], "source": [ "# Get enformer source code\n", "!wget -q https://raw.githubusercontent.com/deepmind/deepmind-research/master/enformer/attention_module.py\n", "!wget -q https://raw.githubusercontent.com/deepmind/deepmind-research/master/enformer/enformer.py" ] }, { "cell_type": "markdown", "metadata": { "id": "xmffZS_306eb" }, "source": [ "### Import" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hTGOLrbZxNHK", "outputId": "f58b5c21-0764-4003-c794-aa89e5d336cc" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "env: TF_ENABLE_GPU_GARBAGE_COLLECTION=false\n" ] } ], "source": [ "import tensorflow as tf\n", "# Make sure the GPU is enabled \n", "assert tf.config.list_physical_devices('GPU'), 'Start the colab kernel with GPU: Runtime -\u003e Change runtime type -\u003e GPU'\n", "\n", "# Easier debugging of OOM\n", "%env TF_ENABLE_GPU_GARBAGE_COLLECTION=false" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "S9ywsUmT05C1" }, "outputs": [], "source": [ "import sonnet as snt\n", "from tqdm import tqdm\n", "from IPython.display import clear_output\n", "import numpy as np\n", "import pandas as pd\n", "import time\n", "import os" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "YUIbu0Xu1BnA" }, "outputs": [], "source": [ "assert snt.__version__.startswith('2.0')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "PWzsyJddILcx", "outputId": "3f1cac0f-6bce-430e-b3c0-9848d43e654c" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'2.4.1'" ] }, "execution_count": 7, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "tf.__version__" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "xOhdaXG95eOl", "outputId": "1e57ef49-254a-4050-89af-61bc0f8ea577" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fri Mar 26 12:28:00 2021 \n", "+-----------------------------------------------------------------------------+\n", "| NVIDIA-SMI 460.67 Driver Version: 460.32.03 CUDA Version: 11.2 |\n", "|-------------------------------+----------------------+----------------------+\n", "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", "| | | MIG M. |\n", "|===============================+======================+======================|\n", "| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n", "| N/A 42C P8 10W / 70W | 3MiB / 15109MiB | 0% Default |\n", "| | | N/A |\n", "+-------------------------------+----------------------+----------------------+\n", " \n", "+-----------------------------------------------------------------------------+\n", "| Processes: |\n", "| GPU GI CI PID Type Process name GPU Memory |\n", "| ID ID Usage |\n", "|=============================================================================|\n", "| No running processes found |\n", "+-----------------------------------------------------------------------------+\n" ] } ], "source": [ "# GPU colab has T4 with 16 GiB of memory\n", "!nvidia-smi" ] }, { "cell_type": "markdown", "metadata": { "id": "0Xx--Nco09fN" }, "source": [ "### Code" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "BbXyDdoShFzX" }, "outputs": [], "source": [ "import enformer" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MEb8OZli2Nbu" }, "outputs": [], "source": [ "# @title `get_targets(organism)`\n", "def get_targets(organism):\n", " targets_txt = f'https://raw.githubusercontent.com/calico/basenji/master/manuscripts/cross2020/targets_{organism}.txt'\n", " return pd.read_csv(targets_txt, sep='\\t')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "2BuZ2gmUbpXZ" }, "outputs": [], "source": [ "# @title `get_dataset(organism, subset, num_threads=8)`\n", "import glob\n", "import json\n", "import functools\n", "\n", "\n", "def organism_path(organism):\n", " return os.path.join('gs://basenji_barnyard/data', organism)\n", "\n", "\n", "def get_dataset(organism, subset, num_threads=8):\n", " metadata = get_metadata(organism)\n", " dataset = tf.data.TFRecordDataset(tfrecord_files(organism, subset),\n", " compression_type='ZLIB',\n", " num_parallel_reads=num_threads)\n", " dataset = dataset.map(functools.partial(deserialize, metadata=metadata),\n", " num_parallel_calls=num_threads)\n", " return dataset\n", "\n", "\n", "def get_metadata(organism):\n", " # Keys:\n", " # num_targets, train_seqs, valid_seqs, test_seqs, seq_length,\n", " # pool_width, crop_bp, target_length\n", " path = os.path.join(organism_path(organism), 'statistics.json')\n", " with tf.io.gfile.GFile(path, 'r') as f:\n", " return json.load(f)\n", "\n", "\n", "def tfrecord_files(organism, subset):\n", " # Sort the values by int(*).\n", " return sorted(tf.io.gfile.glob(os.path.join(\n", " organism_path(organism), 'tfrecords', f'{subset}-*.tfr'\n", " )), key=lambda x: int(x.split('-')[-1].split('.')[0]))\n", "\n", "\n", "def deserialize(serialized_example, metadata):\n", " \"\"\"Deserialize bytes stored in TFRecordFile.\"\"\"\n", " feature_map = {\n", " 'sequence': tf.io.FixedLenFeature([], tf.string),\n", " 'target': tf.io.FixedLenFeature([], tf.string),\n", " }\n", " example = tf.io.parse_example(serialized_example, feature_map)\n", " sequence = tf.io.decode_raw(example['sequence'], tf.bool)\n", " sequence = tf.reshape(sequence, (metadata['seq_length'], 4))\n", " sequence = tf.cast(sequence, tf.float32)\n", "\n", " target = tf.io.decode_raw(example['target'], tf.float16)\n", " target = tf.reshape(target,\n", " (metadata['target_length'], metadata['num_targets']))\n", " target = tf.cast(target, tf.float32)\n", "\n", " return {'sequence': sequence,\n", " 'target': target}\n" ] }, { "cell_type": "markdown", "metadata": { "id": "VzGRXfwV4tYH" }, "source": [ "## Load dataset" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 203 }, "id": "M_vr1mbl3jbD", "outputId": "2de351ed-f43e-4469-a681-2a437d97c946" }, "outputs": [ { "data": { "text/html": [ "\u003cdiv\u003e\n", "\u003cstyle scoped\u003e\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "\u003c/style\u003e\n", "\u003ctable border=\"1\" class=\"dataframe\"\u003e\n", " \u003cthead\u003e\n", " \u003ctr style=\"text-align: right;\"\u003e\n", " \u003cth\u003e\u003c/th\u003e\n", " \u003cth\u003eindex\u003c/th\u003e\n", " \u003cth\u003egenome\u003c/th\u003e\n", " \u003cth\u003eidentifier\u003c/th\u003e\n", " \u003cth\u003efile\u003c/th\u003e\n", " \u003cth\u003eclip\u003c/th\u003e\n", " \u003cth\u003escale\u003c/th\u003e\n", " \u003cth\u003esum_stat\u003c/th\u003e\n", " \u003cth\u003edescription\u003c/th\u003e\n", " \u003c/tr\u003e\n", " \u003c/thead\u003e\n", " \u003ctbody\u003e\n", " \u003ctr\u003e\n", " \u003cth\u003e0\u003c/th\u003e\n", " \u003ctd\u003e0\u003c/td\u003e\n", " \u003ctd\u003e0\u003c/td\u003e\n", " \u003ctd\u003eENCFF833POA\u003c/td\u003e\n", " \u003ctd\u003e/home/drk/tillage/datasets/human/dnase/encode/...\u003c/td\u003e\n", " \u003ctd\u003e32\u003c/td\u003e\n", " \u003ctd\u003e2\u003c/td\u003e\n", " \u003ctd\u003emean\u003c/td\u003e\n", " \u003ctd\u003eDNASE:cerebellum male adult (27 years) and mal...\u003c/td\u003e\n", " \u003c/tr\u003e\n", " \u003ctr\u003e\n", " \u003cth\u003e1\u003c/th\u003e\n", " \u003ctd\u003e1\u003c/td\u003e\n", " \u003ctd\u003e0\u003c/td\u003e\n", " \u003ctd\u003eENCFF110QGM\u003c/td\u003e\n", " \u003ctd\u003e/home/drk/tillage/datasets/human/dnase/encode/...\u003c/td\u003e\n", " \u003ctd\u003e32\u003c/td\u003e\n", " \u003ctd\u003e2\u003c/td\u003e\n", " \u003ctd\u003emean\u003c/td\u003e\n", " \u003ctd\u003eDNASE:frontal cortex male adult (27 years) and...\u003c/td\u003e\n", " \u003c/tr\u003e\n", " \u003ctr\u003e\n", " \u003cth\u003e2\u003c/th\u003e\n", " \u003ctd\u003e2\u003c/td\u003e\n", " \u003ctd\u003e0\u003c/td\u003e\n", " \u003ctd\u003eENCFF880MKD\u003c/td\u003e\n", " \u003ctd\u003e/home/drk/tillage/datasets/human/dnase/encode/...\u003c/td\u003e\n", " \u003ctd\u003e32\u003c/td\u003e\n", " \u003ctd\u003e2\u003c/td\u003e\n", " \u003ctd\u003emean\u003c/td\u003e\n", " \u003ctd\u003eDNASE:chorion\u003c/td\u003e\n", " \u003c/tr\u003e\n", " \u003ctr\u003e\n", " \u003cth\u003e3\u003c/th\u003e\n", " \u003ctd\u003e3\u003c/td\u003e\n", " \u003ctd\u003e0\u003c/td\u003e\n", " \u003ctd\u003eENCFF463ZLQ\u003c/td\u003e\n", " \u003ctd\u003e/home/drk/tillage/datasets/human/dnase/encode/...\u003c/td\u003e\n", " \u003ctd\u003e32\u003c/td\u003e\n", " \u003ctd\u003e2\u003c/td\u003e\n", " \u003ctd\u003emean\u003c/td\u003e\n", " \u003ctd\u003eDNASE:Ishikawa treated with 0.02% dimethyl sul...\u003c/td\u003e\n", " \u003c/tr\u003e\n", " \u003ctr\u003e\n", " \u003cth\u003e4\u003c/th\u003e\n", " \u003ctd\u003e4\u003c/td\u003e\n", " \u003ctd\u003e0\u003c/td\u003e\n", " \u003ctd\u003eENCFF890OGQ\u003c/td\u003e\n", " \u003ctd\u003e/home/drk/tillage/datasets/human/dnase/encode/...\u003c/td\u003e\n", " \u003ctd\u003e32\u003c/td\u003e\n", " \u003ctd\u003e2\u003c/td\u003e\n", " \u003ctd\u003emean\u003c/td\u003e\n", " \u003ctd\u003eDNASE:GM03348\u003c/td\u003e\n", " \u003c/tr\u003e\n", " \u003c/tbody\u003e\n", "\u003c/table\u003e\n", "\u003c/div\u003e" ], "text/plain": [ " index genome ... sum_stat description\n", "0 0 0 ... mean DNASE:cerebellum male adult (27 years) and mal...\n", "1 1 0 ... mean DNASE:frontal cortex male adult (27 years) and...\n", "2 2 0 ... mean DNASE:chorion\n", "3 3 0 ... mean DNASE:Ishikawa treated with 0.02% dimethyl sul...\n", "4 4 0 ... mean DNASE:GM03348\n", "\n", "[5 rows x 8 columns]" ] }, "execution_count": 43, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "df_targets_human = get_targets('human')\n", "df_targets_human.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "YDSKttXI4hMT" }, "outputs": [], "source": [ "human_dataset = get_dataset('human', 'train').batch(1).repeat()\n", "mouse_dataset = get_dataset('mouse', 'train').batch(1).repeat()\n", "human_mouse_dataset = tf.data.Dataset.zip((human_dataset, mouse_dataset)).prefetch(2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "2vx3116C7oFW" }, "outputs": [], "source": [ "it = iter(mouse_dataset)\n", "example = next(it)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "XeztqJZ74ixT", "outputId": "39dc4051-5a19-4443-b6b0-bf6869faf5ec" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "human\n", "{'sequence': (TensorShape([1, 131072, 4]), tf.float32), 'target': (TensorShape([1, 896, 5313]), tf.float32)}\n", "mouse\n", "{'sequence': (TensorShape([1, 131072, 4]), tf.float32), 'target': (TensorShape([1, 896, 1643]), tf.float32)}\n" ] } ], "source": [ "# Example input\n", "it = iter(human_mouse_dataset)\n", "example = next(it)\n", "for i in range(len(example)):\n", " print(['human', 'mouse'][i])\n", " print({k: (v.shape, v.dtype) for k,v in example[i].items()})" ] }, { "cell_type": "markdown", "metadata": { "id": "SHHNHzFVbvTk" }, "source": [ "## Model training" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0U3hLJaUdZkG" }, "outputs": [], "source": [ "def create_step_function(model, optimizer):\n", "\n", " @tf.function\n", " def train_step(batch, head, optimizer_clip_norm_global=0.2):\n", " with tf.GradientTape() as tape:\n", " outputs = model(batch['sequence'], is_training=True)[head]\n", " loss = tf.reduce_mean(\n", " tf.keras.losses.poisson(batch['target'], outputs))\n", "\n", " gradients = tape.gradient(loss, model.trainable_variables)\n", " optimizer.apply(gradients, model.trainable_variables)\n", "\n", " return loss\n", " return train_step" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ZXv5HU_242Ut" }, "outputs": [], "source": [ "learning_rate = tf.Variable(0., trainable=False, name='learning_rate')\n", "optimizer = snt.optimizers.Adam(learning_rate=learning_rate)\n", "num_warmup_steps = 5000\n", "target_learning_rate = 0.0005\n", "\n", "model = enformer.Enformer(channels=1536 // 4, # Use 4x fewer channels to train faster.\n", " num_heads=8,\n", " num_transformer_layers=11,\n", " pooling_type='max')\n", "\n", "train_step = create_step_function(model, optimizer)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "code", "colab": { "base_uri": "https://localhost:8080/" }, "id": "FrbDaOMWcFUl", "outputId": "6a42f69c-3003-47f2-a8d2-1b94c52eb57e" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 20/20 [00:24\u003c00:00, 1.25s/it]\n", " 0%| | 0/20 [00:00\u003c?, ?it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "loss_human 1.774059 loss_mouse 0.94303024 learning_rate 2.0000002e-06\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 20/20 [00:17\u003c00:00, 1.13it/s]\n", " 0%| | 0/20 [00:00\u003c?, ?it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "loss_human 1.0067647 loss_mouse 0.8752468 learning_rate 4.0000004e-06\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 20/20 [00:17\u003c00:00, 1.13it/s]\n", " 0%| | 0/20 [00:00\u003c?, ?it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "loss_human 1.0471998 loss_mouse 0.89318746 learning_rate 6e-06\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 20/20 [00:17\u003c00:00, 1.14it/s]\n", " 0%| | 0/20 [00:00\u003c?, ?it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "loss_human 1.010262 loss_mouse 1.02991 learning_rate 8.000001e-06\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 20/20 [00:17\u003c00:00, 1.14it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "loss_human 1.111991 loss_mouse 0.84773445 learning_rate 1.0000001e-05\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# Train the model\n", "steps_per_epoch = 20\n", "num_epochs = 5\n", "\n", "data_it = iter(human_mouse_dataset)\n", "global_step = 0\n", "for epoch_i in range(num_epochs):\n", " for i in tqdm(range(steps_per_epoch)):\n", " global_step += 1\n", "\n", " if global_step \u003e 1:\n", " learning_rate_frac = tf.math.minimum(\n", " 1.0, global_step / tf.math.maximum(1.0, num_warmup_steps)) \n", " learning_rate.assign(target_learning_rate * learning_rate_frac)\n", "\n", " batch_human, batch_mouse = next(data_it)\n", "\n", " loss_human = train_step(batch=batch_human, head='human')\n", " loss_mouse = train_step(batch=batch_mouse, head='mouse')\n", "\n", " # End of epoch.\n", " print('')\n", " print('loss_human', loss_human.numpy(),\n", " 'loss_mouse', loss_mouse.numpy(),\n", " 'learning_rate', optimizer.learning_rate.numpy()\n", " )" ] }, { "cell_type": "markdown", "metadata": { "id": "Cs0f0z0RcCfz" }, "source": [ "## Evaluate" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "8c4lNQrHkXSC" }, "outputs": [], "source": [ "# @title `PearsonR` and `R2` metrics\n", "\n", "def _reduced_shape(shape, axis):\n", " if axis is None:\n", " return tf.TensorShape([])\n", " return tf.TensorShape([d for i, d in enumerate(shape) if i not in axis])\n", "\n", "\n", "class CorrelationStats(tf.keras.metrics.Metric):\n", " \"\"\"Contains shared code for PearsonR and R2.\"\"\"\n", "\n", " def __init__(self, reduce_axis=None, name='pearsonr'):\n", " \"\"\"Pearson correlation coefficient.\n", "\n", " Args:\n", " reduce_axis: Specifies over which axis to compute the correlation (say\n", " (0, 1). If not specified, it will compute the correlation across the\n", " whole tensor.\n", " name: Metric name.\n", " \"\"\"\n", " super(CorrelationStats, self).__init__(name=name)\n", " self._reduce_axis = reduce_axis\n", " self._shape = None # Specified in _initialize.\n", "\n", " def _initialize(self, input_shape):\n", " # Remaining dimensions after reducing over self._reduce_axis.\n", " self._shape = _reduced_shape(input_shape, self._reduce_axis)\n", "\n", " weight_kwargs = dict(shape=self._shape, initializer='zeros')\n", " self._count = self.add_weight(name='count', **weight_kwargs)\n", " self._product_sum = self.add_weight(name='product_sum', **weight_kwargs)\n", " self._true_sum = self.add_weight(name='true_sum', **weight_kwargs)\n", " self._true_squared_sum = self.add_weight(name='true_squared_sum',\n", " **weight_kwargs)\n", " self._pred_sum = self.add_weight(name='pred_sum', **weight_kwargs)\n", " self._pred_squared_sum = self.add_weight(name='pred_squared_sum',\n", " **weight_kwargs)\n", "\n", " def update_state(self, y_true, y_pred, sample_weight=None):\n", " \"\"\"Update the metric state.\n", "\n", " Args:\n", " y_true: Multi-dimensional float tensor [batch, ...] containing the ground\n", " truth values.\n", " y_pred: float tensor with the same shape as y_true containing predicted\n", " values.\n", " sample_weight: 1D tensor aligned with y_true batch dimension specifying\n", " the weight of individual observations.\n", " \"\"\"\n", " if self._shape is None:\n", " # Explicit initialization check.\n", " self._initialize(y_true.shape)\n", " y_true.shape.assert_is_compatible_with(y_pred.shape)\n", " y_true = tf.cast(y_true, 'float32')\n", " y_pred = tf.cast(y_pred, 'float32')\n", "\n", " self._product_sum.assign_add(\n", " tf.reduce_sum(y_true * y_pred, axis=self._reduce_axis))\n", "\n", " self._true_sum.assign_add(\n", " tf.reduce_sum(y_true, axis=self._reduce_axis))\n", "\n", " self._true_squared_sum.assign_add(\n", " tf.reduce_sum(tf.math.square(y_true), axis=self._reduce_axis))\n", "\n", " self._pred_sum.assign_add(\n", " tf.reduce_sum(y_pred, axis=self._reduce_axis))\n", "\n", " self._pred_squared_sum.assign_add(\n", " tf.reduce_sum(tf.math.square(y_pred), axis=self._reduce_axis))\n", "\n", " self._count.assign_add(\n", " tf.reduce_sum(tf.ones_like(y_true), axis=self._reduce_axis))\n", "\n", " def result(self):\n", " raise NotImplementedError('Must be implemented in subclasses.')\n", "\n", " def reset_states(self):\n", " if self._shape is not None:\n", " tf.keras.backend.batch_set_value([(v, np.zeros(self._shape))\n", " for v in self.variables])\n", "\n", "\n", "class PearsonR(CorrelationStats):\n", " \"\"\"Pearson correlation coefficient.\n", "\n", " Computed as:\n", " ((x - x_avg) * (y - y_avg) / sqrt(Var[x] * Var[y])\n", " \"\"\"\n", "\n", " def __init__(self, reduce_axis=(0,), name='pearsonr'):\n", " \"\"\"Pearson correlation coefficient.\n", "\n", " Args:\n", " reduce_axis: Specifies over which axis to compute the correlation.\n", " name: Metric name.\n", " \"\"\"\n", " super(PearsonR, self).__init__(reduce_axis=reduce_axis,\n", " name=name)\n", "\n", " def result(self):\n", " true_mean = self._true_sum / self._count\n", " pred_mean = self._pred_sum / self._count\n", "\n", " covariance = (self._product_sum\n", " - true_mean * self._pred_sum\n", " - pred_mean * self._true_sum\n", " + self._count * true_mean * pred_mean)\n", "\n", " true_var = self._true_squared_sum - self._count * tf.math.square(true_mean)\n", " pred_var = self._pred_squared_sum - self._count * tf.math.square(pred_mean)\n", " tp_var = tf.math.sqrt(true_var) * tf.math.sqrt(pred_var)\n", " correlation = covariance / tp_var\n", "\n", " return correlation\n", "\n", "\n", "class R2(CorrelationStats):\n", " \"\"\"R-squared (fraction of explained variance).\"\"\"\n", "\n", " def __init__(self, reduce_axis=None, name='R2'):\n", " \"\"\"R-squared metric.\n", "\n", " Args:\n", " reduce_axis: Specifies over which axis to compute the correlation.\n", " name: Metric name.\n", " \"\"\"\n", " super(R2, self).__init__(reduce_axis=reduce_axis,\n", " name=name)\n", "\n", " def result(self):\n", " true_mean = self._true_sum / self._count\n", " total = self._true_squared_sum - self._count * tf.math.square(true_mean)\n", " residuals = (self._pred_squared_sum - 2 * self._product_sum\n", " + self._true_squared_sum)\n", "\n", " return tf.ones_like(residuals) - residuals / total\n", "\n", "\n", "class MetricDict:\n", " def __init__(self, metrics):\n", " self._metrics = metrics\n", "\n", " def update_state(self, y_true, y_pred):\n", " for k, metric in self._metrics.items():\n", " metric.update_state(y_true, y_pred)\n", "\n", " def result(self):\n", " return {k: metric.result() for k, metric in self._metrics.items()}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "x80gX9LrhBU-" }, "outputs": [], "source": [ "def evaluate_model(model, dataset, head, max_steps=None):\n", " metric = MetricDict({'PearsonR': PearsonR(reduce_axis=(0,1))})\n", " @tf.function\n", " def predict(x):\n", " return model(x, is_training=False)[head]\n", "\n", " for i, batch in tqdm(enumerate(dataset)):\n", " if max_steps is not None and i \u003e max_steps:\n", " break\n", " metric.update_state(batch['target'], predict(batch['sequence']))\n", "\n", " return metric.result()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "57fNitK9hzwd", "outputId": "947aaadb-dad2-4a00-ddac-d765f65d782f" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "101it [00:23, 6.27it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "{'PearsonR': 0.0028573992}\n" ] } ], "source": [ "metrics_human = evaluate_model(model,\n", " dataset=get_dataset('human', 'valid').batch(1).prefetch(2),\n", " head='human',\n", " max_steps=100)\n", "print('')\n", "print({k: v.numpy().mean() for k, v in metrics_human.items()})" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "HY_wj95xiDtE", "outputId": "fea839f7-b6c9-46ed-aece-c56b02e9ea16" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "101it [00:21, 6.54it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "{'PearsonR': 0.005183698}\n" ] } ], "source": [ "metrics_mouse = evaluate_model(model,\n", " dataset=get_dataset('mouse', 'valid').batch(1).prefetch(2),\n", " head='mouse',\n", " max_steps=100)\n", "print('')\n", "print({k: v.numpy().mean() for k, v in metrics_mouse.items()})" ] }, { "cell_type": "markdown", "metadata": { "id": "5k1yaJrNCgvw" }, "source": [ "# Restore Checkpoint\n", "\n", "Note: For the TF-Hub Enformer model, the required input sequence length is 393,216 which actually gets cropped within the model to 196,608. The open source module does not internally crop the sequence. Therefore, the code below crops the central `196,608 bp` of the longer sequence to reproduce the output of the TF hub from the reloaded checkpoint." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "DB2cGdH8EGfn" }, "outputs": [], "source": [ "np.random.seed(42)\n", "EXTENDED_SEQ_LENGTH = 393_216\n", "SEQ_LENGTH = 196_608\n", "inputs = np.array(np.random.random((1, EXTENDED_SEQ_LENGTH, 4)), dtype=np.float32)\n", "inputs_cropped = enformer.TargetLengthCrop1D(SEQ_LENGTH)(inputs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "mdf35itsCjEY" }, "outputs": [], "source": [ "checkpoint_gs_path = 'gs://dm-enformer/models/enformer/sonnet_weights/*'\n", "checkpoint_path = '/tmp/enformer_checkpoint'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 280, "status": "ok", "timestamp": 1653476327690, "user": { "displayName": "Kyle Taylor", "userId": "14169907681771397124" }, "user_tz": -60 }, "id": "G2P4IHqswLul", "outputId": "180abe21-ba00-4031-d9d7-2326f1f742f2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mkdir: cannot create directory ‘/tmp/enformer_checkpoint’: File exists\n" ] } ], "source": [ "!mkdir /tmp/enformer_checkpoint" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 19279, "status": "ok", "timestamp": 1653476347208, "user": { "displayName": "Kyle Taylor", "userId": "14169907681771397124" }, "user_tz": -60 }, "id": "LTL8EISGCujC", "outputId": "2b743b9b-480d-44dc-b08e-82d2bc089a47" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gs://dm-enformer/models/enformer/sonnet_weights/checkpoint\n", "gs://dm-enformer/models/enformer/sonnet_weights/enformer-fine-tuned-human-1.data-00000-of-00001\n", "gs://dm-enformer/models/enformer/sonnet_weights/enformer-fine-tuned-human-1.index\n" ] } ], "source": [ "# Copy checkpoints from GCS to temporary directory.\n", "# This will take a while as the checkpoint is ~ 1GB.\n", "for file_path in tf.io.gfile.glob(checkpoint_gs_path):\n", " print(file_path)\n", " file_name = os.path.basename(file_path)\n", " tf.io.gfile.copy(file_path, f'{checkpoint_path}/{file_name}', overwrite=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 322, "status": "ok", "timestamp": 1653476347527, "user": { "displayName": "Kyle Taylor", "userId": "14169907681771397124" }, "user_tz": -60 }, "id": "9VSeTx0sCvcw", "outputId": "b52d7570-c355-4068-b932-3796b56e5586" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 959M\n", "-rw-r--r-- 1 root root 111 May 25 10:58 checkpoint\n", "-rw-r--r-- 1 root root 959M May 25 10:59 enformer-fine-tuned-human-1.data-00000-of-00001\n", "-rw-r--r-- 1 root root 5.7K May 25 10:59 enformer-fine-tuned-human-1.index\n" ] } ], "source": [ "!ls -lh /tmp/enformer_checkpoint" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "00Y2GgRED3aI" }, "outputs": [], "source": [ "enformer_model = enformer.Enformer()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "mFyIiGyiD5yh" }, "outputs": [], "source": [ "checkpoint = tf.train.Checkpoint(module=enformer_model)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 6, "status": "ok", "timestamp": 1653476347529, "user": { "displayName": "Kyle Taylor", "userId": "14169907681771397124" }, "user_tz": -60 }, "id": "VuyspnpOD9kA", "outputId": "3b495138-be27-4459-af82-c5da2af5bd2d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/tmp/enformer_checkpoint/enformer-fine-tuned-human-1\n" ] } ], "source": [ "latest = tf.train.latest_checkpoint(checkpoint_path)\n", "print(latest)\n", "status = checkpoint.restore(latest)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MKkVOTyKEABJ" }, "outputs": [], "source": [ "# Using `is_training=False` to match TF-hub predict_on_batch function.\n", "restored_predictions = enformer_model(inputs_cropped, is_training=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "OX650jqCEQdv" }, "outputs": [], "source": [ "import tensorflow_hub as hub\n", "enformer_tf_hub_model = hub.load(\"https://tfhub.dev/deepmind/enformer/1\").model" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "yiOTFTSdE5H1" }, "outputs": [], "source": [ "hub_predictions = enformer_tf_hub_model.predict_on_batch(inputs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 15, "status": "ok", "timestamp": 1653476357260, "user": { "displayName": "Kyle Taylor", "userId": "14169907681771397124" }, "user_tz": -60 }, "id": "uYrWgfaGFbpL", "outputId": "cb9d3ad0-ee14-46ac-b188-a4b6a697a159" }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.allclose(hub_predictions['human'], restored_predictions['human'], atol=1e-5)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "4wEOUMeNzK8q" }, "outputs": [], "source": [ "# Can run with 'is_training=True' but note that this will\n", "# change the predictions as the batch statistics will be updated\n", "# and the outputs will likley not match the TF-hub model.\n", "# enformer(inputs_cropped, is_training=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "jyVHRPAN5w6J" }, "outputs": [], "source": [ "" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/research/genomics/dna_to_rna:colab", "kind": "private" }, "name": "enformer-training.ipynb", "provenance": [], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: enformer/enformer-usage.ipynb ================================================ { "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "enformer-usage.ipynb", "provenance": [], "collapsed_sections": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "accelerator": "GPU" }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "rb_ShvB9E8yM" }, "source": [ "Copyright 2021 DeepMind Technologies Limited\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "kXQjDxgdwUmW" }, "source": [ "This colab showcases the usage of the Enformer model published in\n", "\n", "**\"Effective gene expression prediction from sequence by integrating long-range interactions\"**\n", "\n", "Žiga Avsec, Vikram Agarwal, Daniel Visentin, Joseph R. Ledsam, Agnieszka Grabska-Barwinska, Kyle R. Taylor, Yannis Assael, John Jumper, Pushmeet Kohli, David R. Kelley" ] }, { "cell_type": "markdown", "metadata": { "id": "tFnAHhx-ze9X" }, "source": [ "**Note:** This colab will not yet work since the model isn't yet publicly available. We are working on enabling this and will update the colab accordingly." ] }, { "cell_type": "markdown", "metadata": { "id": "si-w2NPretDg" }, "source": [ "### Steps\n", "\n", "This colab demonstrates how to\n", "- Make predictions with Enformer and reproduce Fig. 1d\n", "- Compute contribution scores and reproduce parts of Fig. 2a\n", "- Predict the effect of a genetic variant and reproduce parts of Fig. 3g\n", "- Score multiple variants in a VCF " ] }, { "cell_type": "markdown", "metadata": { "id": "wCCJsjaHwTYC" }, "source": [ "## Setup" ] }, { "cell_type": "markdown", "metadata": { "id": "NqR7ol3rxrtM" }, "source": [ "**Start the colab kernel with GPU**: Runtime -> Change runtime type -> GPU" ] }, { "cell_type": "code", "metadata": { "id": "hTGOLrbZxNHK" }, "source": [ "import tensorflow as tf\n", "# Make sure the GPU is enabled \n", "assert tf.config.list_physical_devices('GPU'), 'Start the colab kernel with GPU: Runtime -> Change runtime type -> GPU'" ], "execution_count": 1, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "Eg8hcb45wqMM" }, "source": [ "!pip install kipoiseq==0.5.2 --quiet > /dev/null\n", "# You can ignore the pyYAML error" ], "execution_count": 5, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "MCDk7UQPG0Lr" }, "source": [ "### Imports" ] }, { "cell_type": "code", "metadata": { "id": "NRI9KisU11bM" }, "source": [ "import tensorflow_hub as hub\n", "import joblib\n", "import gzip\n", "import kipoiseq\n", "from kipoiseq import Interval\n", "import pyfaidx\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "import seaborn as sns\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'" ], "execution_count": 6, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "g0F1A9AaCrkQ" }, "source": [ "transform_path = 'gs://dm-enformer/models/enformer.finetuned.SAD.robustscaler-PCA500-robustscaler.transform.pkl'\n", "model_path = 'https://tfhub.dev/deepmind/enformer/1'\n", "fasta_file = '/root/data/genome.fa'\n", "clinvar_vcf = '/root/data/clinvar.vcf.gz'" ], "execution_count": 47, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 141 }, "id": "OlE6JAVfI08a", "outputId": "25e8b4c7-b2ef-4e8a-a81f-a032a3490bd9" }, "source": [ "# Download targets from Basenji2 dataset \n", "# Cite: Kelley et al Cross-species regulatory sequence activity prediction. PLoS Comput. Biol. 16, e1008050 (2020).\n", "targets_txt = 'https://raw.githubusercontent.com/calico/basenji/master/manuscripts/cross2020/targets_human.txt'\n", "df_targets = pd.read_csv(targets_txt, sep='\\t')\n", "df_targets.head(3)" ], "execution_count": 16, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indexgenomeidentifierfileclipscalesum_statdescription
000ENCFF833POA/home/drk/tillage/datasets/human/dnase/encode/...322meanDNASE:cerebellum male adult (27 years) and mal...
110ENCFF110QGM/home/drk/tillage/datasets/human/dnase/encode/...322meanDNASE:frontal cortex male adult (27 years) and...
220ENCFF880MKD/home/drk/tillage/datasets/human/dnase/encode/...322meanDNASE:chorion
\n", "
" ], "text/plain": [ " index genome ... sum_stat description\n", "0 0 0 ... mean DNASE:cerebellum male adult (27 years) and mal...\n", "1 1 0 ... mean DNASE:frontal cortex male adult (27 years) and...\n", "2 2 0 ... mean DNASE:chorion\n", "\n", "[3 rows x 8 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 16 } ] }, { "cell_type": "markdown", "metadata": { "id": "Q8ZhswycGux3" }, "source": [ "### Download files" ] }, { "cell_type": "markdown", "metadata": { "id": "dowTJknFJOHu" }, "source": [ "Download and index the reference genome fasta file\n", "\n", "Credit to Genome Reference Consortium: https://www.ncbi.nlm.nih.gov/grc\n", "\n", "Schneider et al 2017 http://dx.doi.org/10.1101/gr.213611.116: Evaluation of GRCh38 and de novo haploid genome assemblies demonstrates the enduring quality of the reference assembly" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "flOUYxP7Fjvh", "outputId": "bc48adb1-393c-408e-d699-5e70b183e2e9" }, "source": [ "!mkdir -p /root/data\n", "!wget -O - http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz | gunzip -c > {fasta_file}\n", "pyfaidx.Faidx(fasta_file)\n", "!ls /root/data" ], "execution_count": 18, "outputs": [ { "output_type": "stream", "text": [ "--2021-03-26 11:38:38-- http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz\n", "Resolving hgdownload.cse.ucsc.edu (hgdownload.cse.ucsc.edu)... 128.114.119.163\n", "Connecting to hgdownload.cse.ucsc.edu (hgdownload.cse.ucsc.edu)|128.114.119.163|:80... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 983659424 (938M) [application/x-gzip]\n", "Saving to: ‘STDOUT’\n", "\n", "- 100%[===================>] 938.09M 17.4MB/s in 54s \n", "\n", "2021-03-26 11:39:33 (17.3 MB/s) - written to stdout [983659424/983659424]\n", "\n", "genome.fa genome.fa.fai\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "VwMZhF42JH18" }, "source": [ "Download the clinvar file. Reference:\n", "\n", "Landrum MJ, Lee JM, Benson M, Brown GR, Chao C, Chitipiralla S, Gu B, Hart J, Hoffman D, Jang W, Karapetyan K, Katz K, Liu C, Maddipatla Z, Malheiro A, McDaniel K, Ovetsky M, Riley G, Zhou G, Holmes JB, Kattman BL, Maglott DR. ClinVar: improving access to variant interpretations and supporting evidence. Nucleic Acids Res . 2018 Jan 4. PubMed PMID: 29165669 .\n" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4PjXFN5OcGbH", "outputId": "ca4e8ca5-d388-4ba9-afb9-414f30e83f4a" }, "source": [ "!wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz -O /root/data/clinvar.vcf.gz" ], "execution_count": 19, "outputs": [ { "output_type": "stream", "text": [ "--2021-03-26 11:40:32-- https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz\n", "Resolving ftp.ncbi.nlm.nih.gov (ftp.ncbi.nlm.nih.gov)... 130.14.250.7, 165.112.9.229, 2607:f220:41e:250::7, ...\n", "Connecting to ftp.ncbi.nlm.nih.gov (ftp.ncbi.nlm.nih.gov)|130.14.250.7|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 36564426 (35M) [application/x-gzip]\n", "Saving to: ‘/root/data/clinvar.vcf.gz’\n", "\n", "/root/data/clinvar. 100%[===================>] 34.87M 22.0MB/s in 1.6s \n", "\n", "2021-03-26 11:40:34 (22.0 MB/s) - ‘/root/data/clinvar.vcf.gz’ saved [36564426/36564426]\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "Omj-KERcwSdB" }, "source": [ "### Code (double click on the title to show the code)" ] }, { "cell_type": "code", "metadata": { "id": "47E4AEgLx1VT", "cellView": "form" }, "source": [ "# @title `Enformer`, `EnformerScoreVariantsNormalized`, `EnformerScoreVariantsPCANormalized`,\n", "SEQUENCE_LENGTH = 393216\n", "\n", "class Enformer:\n", "\n", " def __init__(self, tfhub_url):\n", " self._model = hub.load(tfhub_url).model\n", "\n", " def predict_on_batch(self, inputs):\n", " predictions = self._model.predict_on_batch(inputs)\n", " return {k: v.numpy() for k, v in predictions.items()}\n", "\n", " @tf.function\n", " def contribution_input_grad(self, input_sequence,\n", " target_mask, output_head='human'):\n", " input_sequence = input_sequence[tf.newaxis]\n", "\n", " target_mask_mass = tf.reduce_sum(target_mask)\n", " with tf.GradientTape() as tape:\n", " tape.watch(input_sequence)\n", " prediction = tf.reduce_sum(\n", " target_mask[tf.newaxis] *\n", " self._model.predict_on_batch(input_sequence)[output_head]) / target_mask_mass\n", "\n", " input_grad = tape.gradient(prediction, input_sequence) * input_sequence\n", " input_grad = tf.squeeze(input_grad, axis=0)\n", " return tf.reduce_sum(input_grad, axis=-1)\n", "\n", "\n", "class EnformerScoreVariantsRaw:\n", "\n", " def __init__(self, tfhub_url, organism='human'):\n", " self._model = Enformer(tfhub_url)\n", " self._organism = organism\n", " \n", " def predict_on_batch(self, inputs):\n", " ref_prediction = self._model.predict_on_batch(inputs['ref'])[self._organism]\n", " alt_prediction = self._model.predict_on_batch(inputs['alt'])[self._organism]\n", "\n", " return alt_prediction.mean(axis=1) - ref_prediction.mean(axis=1)\n", "\n", "\n", "class EnformerScoreVariantsNormalized:\n", "\n", " def __init__(self, tfhub_url, transform_pkl_path,\n", " organism='human'):\n", " assert organism == 'human', 'Transforms only compatible with organism=human'\n", " self._model = EnformerScoreVariantsRaw(tfhub_url, organism)\n", " with tf.io.gfile.GFile(transform_pkl_path, 'rb') as f:\n", " transform_pipeline = joblib.load(f)\n", " self._transform = transform_pipeline.steps[0][1] # StandardScaler.\n", " \n", " def predict_on_batch(self, inputs):\n", " scores = self._model.predict_on_batch(inputs)\n", " return self._transform.transform(scores)\n", "\n", "\n", "class EnformerScoreVariantsPCANormalized:\n", "\n", " def __init__(self, tfhub_url, transform_pkl_path,\n", " organism='human', num_top_features=500):\n", " self._model = EnformerScoreVariantsRaw(tfhub_url, organism)\n", " with tf.io.gfile.GFile(transform_pkl_path, 'rb') as f:\n", " self._transform = joblib.load(f)\n", " self._num_top_features = num_top_features\n", " \n", " def predict_on_batch(self, inputs):\n", " scores = self._model.predict_on_batch(inputs)\n", " return self._transform.transform(scores)[:, :self._num_top_features]\n", "\n", "\n", "# TODO(avsec): Add feature description: Either PCX, or full names." ], "execution_count": 35, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "uLYRbOXDyA36", "cellView": "form" }, "source": [ "# @title `variant_centered_sequences`\n", "\n", "class FastaStringExtractor:\n", " \n", " def __init__(self, fasta_file):\n", " self.fasta = pyfaidx.Fasta(fasta_file)\n", " self._chromosome_sizes = {k: len(v) for k, v in self.fasta.items()}\n", "\n", " def extract(self, interval: Interval, **kwargs) -> str:\n", " # Truncate interval if it extends beyond the chromosome lengths.\n", " chromosome_length = self._chromosome_sizes[interval.chrom]\n", " trimmed_interval = Interval(interval.chrom,\n", " max(interval.start, 0),\n", " min(interval.end, chromosome_length),\n", " )\n", " # pyfaidx wants a 1-based interval\n", " sequence = str(self.fasta.get_seq(trimmed_interval.chrom,\n", " trimmed_interval.start + 1,\n", " trimmed_interval.stop).seq).upper()\n", " # Fill truncated values with N's.\n", " pad_upstream = 'N' * max(-interval.start, 0)\n", " pad_downstream = 'N' * max(interval.end - chromosome_length, 0)\n", " return pad_upstream + sequence + pad_downstream\n", "\n", " def close(self):\n", " return self.fasta.close()\n", "\n", "\n", "def variant_generator(vcf_file, gzipped=False):\n", " \"\"\"Yields a kipoiseq.dataclasses.Variant for each row in VCF file.\"\"\"\n", " def _open(file):\n", " return gzip.open(vcf_file, 'rt') if gzipped else open(vcf_file)\n", " \n", " with _open(vcf_file) as f:\n", " for line in f:\n", " if line.startswith('#'):\n", " continue\n", " chrom, pos, id, ref, alt_list = line.split('\\t')[:5]\n", " # Split ALT alleles and return individual variants as output.\n", " for alt in alt_list.split(','):\n", " yield kipoiseq.dataclasses.Variant(chrom=chrom, pos=pos,\n", " ref=ref, alt=alt, id=id)\n", "\n", "\n", "def one_hot_encode(sequence):\n", " return kipoiseq.transforms.functional.one_hot_dna(sequence).astype(np.float32)\n", "\n", "\n", "def variant_centered_sequences(vcf_file, sequence_length, gzipped=False,\n", " chr_prefix=''):\n", " seq_extractor = kipoiseq.extractors.VariantSeqExtractor(\n", " reference_sequence=FastaStringExtractor(fasta_file))\n", "\n", " for variant in variant_generator(vcf_file, gzipped=gzipped):\n", " interval = Interval(chr_prefix + variant.chrom,\n", " variant.pos, variant.pos)\n", " interval = interval.resize(sequence_length)\n", " center = interval.center() - interval.start\n", "\n", " reference = seq_extractor.extract(interval, [], anchor=center)\n", " alternate = seq_extractor.extract(interval, [variant], anchor=center)\n", "\n", " yield {'inputs': {'ref': one_hot_encode(reference),\n", " 'alt': one_hot_encode(alternate)},\n", " 'metadata': {'chrom': chr_prefix + variant.chrom,\n", " 'pos': variant.pos,\n", " 'id': variant.id,\n", " 'ref': variant.ref,\n", " 'alt': variant.alt}}" ], "execution_count": 21, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "Up1oCMFiPucp", "cellView": "form" }, "source": [ "# @title `plot_tracks`\n", "\n", "def plot_tracks(tracks, interval, height=1.5):\n", " fig, axes = plt.subplots(len(tracks), 1, figsize=(20, height * len(tracks)), sharex=True)\n", " for ax, (title, y) in zip(axes, tracks.items()):\n", " ax.fill_between(np.linspace(interval.start, interval.end, num=len(y)), y)\n", " ax.set_title(title)\n", " sns.despine(top=True, right=True, bottom=True)\n", " ax.set_xlabel(str(interval))\n", " plt.tight_layout()" ], "execution_count": 23, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "zEwfoz3cwOzt" }, "source": [ "## Make predictions for a genetic sequenece" ] }, { "cell_type": "code", "metadata": { "id": "WC-pgC35DgnL" }, "source": [ "model = Enformer(model_path)\n", "\n", "fasta_extractor = FastaStringExtractor(fasta_file)" ], "execution_count": 36, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "8u8Gt8WWyG53" }, "source": [ "# @title Make predictions for an genomic example interval\n", "target_interval = kipoiseq.Interval('chr11', 35_082_742, 35_197_430) # @param\n", "\n", "sequence_one_hot = one_hot_encode(fasta_extractor.extract(target_interval.resize(SEQUENCE_LENGTH)))\n", "predictions = model.predict_on_batch(sequence_one_hot[np.newaxis])['human'][0]" ], "execution_count": 37, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 440 }, "id": "_wL4c66ZXK0k", "outputId": "3538b7f3-ebb0-48c8-f23a-1e8734253e81" }, "source": [ "# @title Plot tracks\n", "tracks = {'DNASE:CD14-positive monocyte female': predictions[:, 41],\n", " 'DNASE:keratinocyte female': predictions[:, 42],\n", " 'CHIP:H3K27ac:keratinocyte female': predictions[:, 706],\n", " 'CAGE:Keratinocyte - epidermal': np.log10(1 + predictions[:, 4799])}\n", "plot_tracks(tracks, target_interval)" ], "execution_count": 38, "outputs": [ { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACzEAAANOCAYAAACbIWPRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5ykeV0n8M9vWfICApLOwHIqioJ6eIYzIEEERRBRQMEjKIcnJyieegoiQVQwgKIvJbMiOcdlCcImdllYYGFzmNnZnZxT98xUp9/98Ty1U9NTVV3d29PV0/N+v171qn7y9wnV01P1qe9Taq0BAAAAAAAAAAAAAFgpp427AAAAAAAAAAAAAADg1CLEDAAAAAAAAAAAAACsKCFmAAAAAAAAAAAAAGBFCTEDAAAAAAAAAAAAACtKiBkAAAAAAAAAAAAAWFFCzAAAAAAAAAAAAADAihJiBgAAAAAAAAAAAABWlBAzAAAAAAAAAAAAALCihJgBAAAAAAAAAAAAgBUlxAwAAAAAAAAAAAAArCghZgAAAAAAAAAAAABgRQkxAwAAAAAAAAAAAAArSogZAAAAAAAAAAAAAFhRQswAAAAAAPRVSnlWKaWWUs5d4vIPb5ffsLyVwfIrpdyllPKaUsq6UsrUWr92Sylntfv4snHXAgAAAMCpSYgZAAAAgDWtJ6TV+5gupewupdxQSvlIKeVFpZQHLLCeM+et4wlD5v3unvnOHKHGy3rm/6kR9+tOpZQXlFK+UErZ2QbudpVSriilfLiU8gellB/os9yzyvHHY9DjI6PUMqTGR5ZS3lBKuaqUsretcUcp5bxSykv7HfNSysv61DHTLn9jKeXsUsorSikPGWH731NK+a1Syr+WUr5SSum06/vSEvfnjFLKxp66nrWU9awV7bX0slLKD4+7Fk5+pZQnttfTw8dYxoeSvDDJf01yOMn2JDvHWA8AAAAArGmnj7sAAAAAAFgh00n2tD+XJHdNco8k35Xkl5O8spTygSTPq7XuGmF9ryilfLzWWm9NUaWUH0ryQz2jnpHkiwss891JzklTe9dkktsl+YH28cQk30gyLGC6fYHy9i4wfVB9903yjiSP6hk9k+RgknsmeVj7eEkp5bW11j/us5q5HBsevEuSM9vHL7TLfj7Jc2qtNw4o5e/SnNvl8sok376M6zsZ7E9ybZKb+0x7VpKfTbIhyWUDlj/ULr/5BNTG2vLEJM9sfz53pTfefunj59L8W/GwWuuSvuwAAAAAAIxOJ2YAAAAAThUX1Vrv2z7uU2u9Y5K7pwnEvjdJTfLkJJeVUkYJqv5QkqcsQ13d0N5b0gR3n1JKucOgmUsppyf5SJoA87Ykv5vkHrXWM2qtd00TEn5Ckren6SQ6UM/xGPR49mJ3pj12l6QJMB9O8jdJHpzkdrXWe6QJWv9Ekn9KExZ88oBVbZxXy52TnJHk4UnelGQqySPTnK8fHLCO2SRXpzkWL0jyH4vdn579emiS32v37ZRRa/1wrfX7aq3PWOLyX26Xf9TCc8NYdTvXf1OAGQAAAABWhhAzAAAAAKesWuu+Wus5tdZfT/K4JEeSfFuSDyyw6Kfa55eXUm6z1O23geSnt4N/m+S8JN+S4d2Dfy5Hw3aPr7W+vtZ6S8fkWuueWuvHa63PTPKIpda2FKWU09IEwr8zye4kP1VrfVGt9cpux+pa62yt9ZJa6x8k+b4kXx51/bXWyVrrebXW5yb5qTSdmu+a5GMDgt9PqbV+f631mbXWf06y/lbs1xvawd9dyjqAVe+O7fPEWKsAAAAAgFOIEDMAAAAAJKm1npPkj9rBHy+lPH7I7H+TJuj2vUmW1KG29dgk905yaa31uiTvbMc/c/AieUj7vL3Weumwlddaj9yK2pbiV5L8ZPvz79Ravz5s5lrrTUmeupQNtfve7RR9/yT/q888s0tZdx/PT/Lfk/zbQvs0qlJKbR9nllIeXEp5TyllWynlSCnlmlLKS0opt19gHY8opXyoXW6qff5wKeWRQ5a5S7vur5ZSDrbLbSmlXFpK+btSyoPnzf+sts5z549L8rPtqLf17E8tpWzomffhfcbdoZRyoB3/Swvs4zXtfL/fZ9oZpZQXlVK+UkrZ3x6760spryulfMew9Q7Y1pndfWiHf6yU8tFSys72WF1USvnFnvlvV0r5f6WUK0oph0op20spbyil3GOB7TyplHJOu95OKWVTKeWdbbfvUeoadL3cbsg2Tyul/HYp5bxSyp52uRtLKW8spXz3AvWWUspTSymfbLfZKaVsLqWcX0p5YSnlnu18D2vr7HTHDVjffy2lzLXzfm/3GsnR33svnXc91QH78z9LKZ9tj2P3On5vKeXHh+1Pn3W9rN3GWe2on523/YfPm3/R110p5dx2Xc8qpdy1lPK3pZR1pZTDpZT1pZRXlJ4vYpRSHlVK+XQpZVcpZbI91j8zYN23KaX8QnvtfbW9DrvHY+jvgxGPz+Pb10H398yOUsrHSymPuTXrBQAAAIBEiBkAAAAAer0pyY7256cNmW9nkte1P/9FKeW2S9xeN7T3rvb5g0k6SX6+lHLfBZa9R+nfffiEKqVsaMN4Z/WZ/Dvt81W11g+Osr5uh+alqLV+Msll7eCw87VkpZRvS/KXSbYn+fMTsImfTPKlNGHuOyYpacLxr0hybinljAF1vTLJ59MEx++dZLJ9fmKS/yyl/E2fZe7WbusVSR6a5E5pwvj3SfIjaUL8vzlCzYfTHI/pdvhAO9x97By2cBuu/3A7OPC8taHe700ym6bDd++0ByW5IslfpQmY3ynJTJLvThM6/0Yp5adG2JdB2/7lJBcmeXyS2yY5I8n/SPLxUsqT29fep5O8Ksl3tYvdO8lzk3yuX6C4Dd7+e5rX+WOS3D3JoTTd35+W5CullKGdvkspP5+me/lTk9yhra17vbxvwDJ3StM9/s1JHtbuy5EkZ6YJ/1/e7m+/Ze+W5DNJ3pPkF3P0WrtHkp9J8pr2GKXWen6S65LcLsNfj89Oc51/sdZ6bZKpNNdN90sXkzn2eto+r6a7pDn2b0/Tmf6eaa7J+yV5SpKLSim/N2T780202zjQDk/P2/ZUz7Zv7XV39zTn74/TvO5uk+QBSV6S9vyVUp6X5LPtvt223cbPpLmu+q37QUnOTnPtPTTNdTGV5nh0fx/82agHo2dfb1tKeUeSjyV5Qlvv4ST3SvJLSc4ppbx6sesFAAAAgF5CzAAAAADQqrVOJfnPdrBv18sef5dkX44GARellHL3NOG/uTQBwdRa9yX5ZJpg26Awabf78m2TvL4N9I1dG+TuBuw+voKb/lT7/COllDuegPX/c5K7JPmjWuv+E7D+f01yVZIfrLXerd3Ws9OEBX8iTUj0GKWUX0/y4nbwX5Lcu9Z69zThwn9ux/9pKWX+NfT7Sb4/Tcj4l5LcvtZ6jzShxwcm+dMk6xYquNb63lrrfZNc1F1vrfW+PY8fHWG/u8H9J7Qh235+o33+Qq11W3dkG6w9O00H7vcn+aEkd6i1npEmUPyuNGHRD5ZSvmWEWvr59zQh2fvVWr8lTXj3o2neU39tkr9P8n1pjuMZac7bLyc5mOS/JXlOn3X+SZrO7TVNaPXu7Xn79nY/TkvyL6WUhw2p671pXl8PaOu6a5I/a9f5y6WnU3SP1yT5+TRfkPjfSe7SLvu9Sc5Nc/7fVUp5YJ9l35kmTHs4zfVzj/aauVOaa+kVSfb2zP+W9vnZ6aOUclqOfnnjrUlSa72ovZ66QfW/n3c9zf9CRze8/LU0YfA7ta+de6T5osFskn8aNcRea/37dhvdbt8Xzdv+RW3ty3HdvbR9/pl2uTPS/Psxk+TxpZSXJPnHNOH4e7b7dWaSi9OEw1/bZ51TaY7lY5LcrdZ6t3bd90lznc0m+avFdqhO8rdJnp7khjTh8DPaeu6a5HlprvU/KaX8xuBVAAAAAMBwQswAAAAAcKzL2+dvG9ZhuQ0c/0M7+OdLCND+epLbpwlobu0Z/872+ZnHL5KkCR2e1zPP1lLKJ0opLymlPHYxoc1SyrYFHo9dxP7cP02wMUm+sYjlbq3u+bptmjDosimlPD5Np+Nza63vWM519+gkeWyt9fKkCdLXWs9KExJMkt8upXxnT00lTWfoJHlPrfX5tdZd7bK7a60vSPLudvpftqHRrp9on/+h1vrJWutMu9x0rfX6Wuura61vOhE72cfn0nQ9v3Oa8O8x2v18ajv4rnmT/zhNsPPdtdan1Fq/WWudTZJa6/pa69OTnJMmxNkvTDyKr9Van1Nr3d6ud2eaQOeBNJ2T/0+Sp7bHcbZ9fCzNlxuS5Nfm7c8ZacLGSfLqWusra60H23VvThPYvjDNe/avHFLXV5L8eq11Q7vsZK31VWm+/NBvu2fm6Jcsfr/W+oZaa6dd9rokj0sTXL9T5nUabwPRj0sTkH5SrfV17e+91MbVtdaX1lo/2rPYWWk6Gf+3UsoP9an/55J8R5rux307Rw9TSvm5NN2Fr03yyFrrZ9rO3qm17q21/lWSv0hzHBfdfXgBy3Hd3TnJL9VaL2yXm6q1vjlNMDtpQuHvqLW+qOdY35Tm+qhJfrT390E7/bpa62+3x+JAz/gdtdZXJnl5ms7X/3vUHS2lfE+aUPfONMf5/bXWyXa9B2ut/5am83Ny9AsVAAAAALBoQswAAAAAcKzerqL3WGDef0wT8rpfmlDjYnRDyu+cN/6TSfYneXAp5aHzF6q11iRPSBN6m0sTintcmvDbp5LsLqV8YUBH1vnus8DjDn22f2attdRanzVv0j17ft4zwraXy2LO18hKKXdO0+V4Oos/t4vx+lprv+P19iSb0ryH+6Se8T+c5LvbnweFXV/ePp+Z5Md6xncDjvdbUqXLqA1/dkOs/Tq5/nSasOuRJB+aN6372vmHDNYNPj96iSW+av6INsT5pXbwolrr+X2W63Zyf/C88Y9O08F2Kk2H2/nrns3RcPrPlFLmdx++pa72d8B8Hxmw3V9Jcw1tS/LmPts91FPPk0opt+mZ/Iz2+dO11nMG1DN/fTtytBP7b/WZpduh+f211olR1jlP99y/aUhn9O7v1EfM259bazmuu/fXWm/oM/5zPT//zfyJbZC5u9z8c7yQ7vkYqTN16xlpgs/vrbVuHDDPB9J8CeMHSilj/50CAAAAwMlJiBkAAAAAlqgN4b26Hfx/pZS7jLJcKeX7kvx4+gQ02y6pH2gH+3ZjrrUeqLU+M8kDkrywXcdN7eTTkjw8ySdLKcPCdmnDyMMeHxm2/Br3iiTfmeS1tdarTuB2zu03stY6l+SCdrA3zN79eWet9coBy16bZHOfZc9un19QSvmPUsovjHrNniDdwOdjSinzA+hPa5/P7g2rllK+I0c7bp89qIt4kn9q5/mOJdZ2+YDxO9rnKwZM394+333e+O55+EatdW/6Oz/J7Lz55/vKgPHd8z1ouxd0uwb38fn2+c5JvrdnfLdz99lZnG5Y+umllNt1R5ZS7p6mi3KSvGWR6+z6yfb5z4ec++4xulOO/XLFki3jdbfQdXUkR8PK8w26tlJKuWMp5YWllHNLKTtKKdOllFpKqUm+3s72XwbtXx/d4/zMIfu6KU0H/GTprzMAAAAATnFCzAAAAABwrN6A2Cgdhf81yZYk35rkD0bcRjecfPaAbqLdTqK/UUq5bZ/pSZJa68211n+stf5qrfXMJPdP8oc9df9hKeWXR6zp1trd8/OydUQewWLP14JKKT+c5PeTbEwTZl7Msv80IPQ3v5tw1+YB43un3atn3L3mTRtk0/xla61vT/LGNB1WfzNNOHVfKeXrpZRXrHQ31VrrxUluTHK7JL/aHV9KOT3Jr7WD75q3WG+N987gLuLd6+JOS6xt64BJ3SDwQtNPnzd+wfNWaz2SZNe8+efPc3DA4kfa5/m/L0a5Xjb1/Ny73fu0zzcPWbafT6d57dwzyeN7xj8tTXf3a2utX1zkOru65/9bMryLfNeSzv+Q7Sa37rpb6LrZPqDTdu88x5zj9nV7WZLXJPnZNOewk+YuAdtz9Jq684D19tPd37tk+HHufsa0XMcZAAAAgFOMEDMAAAAAHOsh7fOmWuv0QjPXWg8n+at28P+23UYHKqWcliZAmiRP6nbL7H3kaGfUeyX5hVELb0PNr03yP5Icakf/1qjL30o39Wzzh1Zom8nR8zWdY8OYt8Y/JblNkhcnKaWUM3ofPfPdvh3XG+C7W/qH/ZY72H2HpSxUa/2dJA9OE84+N03Y8YeTvCTJ9aWURy9XgSN6d/v8tJ5xj07zpYADST45b/7e97TvPkI38TNPXOlLsqTzdjJtt+0i/tZ28Nk9k7o/v+1WrL57/n9lhHNfaq0bbsW2+m03WX3X3T8meWCS9Wm+DHCPWusZtdZ711rvm6MdtReju78vHPE4n7s8uwIAAADAqUaIGQAAAABapZTbJXlUO3jBIhZ9c5INaQKsf7LAvI9K8u2LWPczF57lWLXW65Jc2A4+cLHLL0Ub+O52V338sHmXWTfkfWkbKF8O92+f357kYJ9H1+vb4au6I2qtzxoQ8nv4gG39lyF1dKft7BnX/fk7FtiH7jW2c/6EWuuVtdaX1lofkaaj7eOTXJ6mU+u/D+v+fQJ0Oy0/rJTS3d/faJ8/1HYn7rW95+fvPKGVLa/ueRhYcynlDmm6F/fOf8K3m2N/H/Vut3us75/Fe2uSuSSPLaXcr5Tyg0l+JE034bcvYX3za1rpc78qr7v236xut/2n11o/VGvdO2+2+2TxxnWcAQAAADjFCDEDAAAAwFH/K8m925/fOepCtdapNJ1tk+T5GR4a64aS353k7kMeP9XO90ullKV08Z1sn6eWsOxSvbF9/v5SypNGWaCUUpa6sVLK49J0EU4Wcb5WmZ/tN7I9Lg9rB7/WM6n7851LKT82YNkHJvm2Pssep9Y6VWv9RJInt6Pul+R7Rqg7aUKqSbLkc1hrvTLJN9O8V/3rbZD3ie3kd/WZ/8YcDViO3KV8Feieh+8ppXzbgHkeluT0efMv13Z/fF7H8F6PbJ8nk1zbM/5L7fMvLnajtdabk3w2TUfzZ+RoF+ZP1Vq3DlhslOvp4vZ5Rc/9Kr7uvjXJ7dufvz5gnp9bwnq7x/mxS1gWAAAAAEYmxAwAAAAASUopj0nyd+3gxbXWTy5yFW9PEwC8c5I/G7CNuyT5lXbwfbXWfUMeFyVZn+R2OdqZNqWUB5dS7rvAvtwnR4OJly1yP26ND+Vo8PGNpZT/NmzmUsr9k7x3KRsqpfxIkre1gzcmectS1tNPrfXMAd2US621N2D57Hbcmbdic79bSvmWPuN/M02H3Lk0x7XrsiQ3tD+/aMA6X9Y+b0jy5e7ItmvrIL1drG8/cK5jHWif+9W/GN2w8m+k6Qp9lyTbknx+wPxntc9/NCQQnNK4tbUtl8+kOV63TfLH8yeWUm6T5CXt4AW11m3LtN0PpbmG7pnkuX22e6eeej5Ua53tmdztmPzzpZSlhFnf1D7/VpKntz8Pe52Ocj2d1T4/ZqGaSil3X6jARepuezVddweT1Pbnh/Sp5X5pvlizWG9v1/ugUsrvDJvxBBxnAAAAAE4hQswAAAAAnLJKKXcrpTymlPLuJGcnuWOSjUl+bbHrasN/L2sHHzdgticnuVOajqefHmG13fDqM3vGPTzJjaWU/yilPL63S3Mp5a6llKcnuTDJ3dKEF/9l1H0YRSllQymlllLOmj+t1jqX5ClJNqUJTV5YSvmrUsqDepa/TSnlx0opr01yTZK+3YQHbPtOpZSHlVLekOSLSe6VZH+SJ9Raj/SZ//allG/tPtIc+yQ5vXd8KeVuIx+A5XeHJOeUUh6cJKWU25ZSnpnk9e30t7RdbZMktdaa5M/bwV8upfxzKeWe7bL3LKW8LkdD73/enpOuz5VSXtcewzt2R5ZSfiBHA5pbk1w+Yu1Xts9PupXH8N1pApP/PUe/APC+eYHaXq9KE/D/1iQXlVKeMm9/vrOU8tw0XYifOGAdK6rWOpnkr9vBF5RSXlxKOSNJ2kDsu5P8dJrX7J/3X8uStntTjnZIf1Up5bmllNu3231gkk8m+e4kh5K8ct7in2ofJckHSynP74Zz26Du95dS/qGUMugYfyzJjiQPTPNa3ZHkE0PK7V5Pj23Dt/3255w0vxdLkg+XUv64lHKv7vRSyj1KKU8spXwsyWuGbGspVt11V2s9mKNfHHlrKeWH21pOK6U8Ksl5WUKn9FrrVUle2w7+aynlb0op396dXkq5Synl50sp70jy/lu1EwAAAACc0k5feBYAAAAAWBN+spTS7W5a0nR7vWPP9JrkfUn+T6111xK38d40IcwfHDC9G0b+VK318IB5en0wyR8l+dFSyoNqrVcnmU4TfP3N9pFSykRb/116lj2S5H/XWr8yaOU9x2OQjbXWHx2hzlvUWjeWUn4sTXfdh6fpFvyiUsp0mq6h35KjzRWmk7xjwKq+Y159Z6Tpct3rc0me0wY1+/mNHO3W3OtHkuzsGT6vrXUcnpemY+3lpZT9aa7JbsfkLyX5w/kL1FrfW0p5SJIXJ/m9JM9rl71bjh7bV9Va3zlv0bum6cr6/CRzPdu7Qzv9UJL/WWudGbH2/0hzff50kl2llB1pzummWutPj7iO1FpvLqV8sV1Pt3v3u4bMv6/tnP6xJA9K87qbLaXsSxNUn/+6Xi3+Psn3J3lGmsDwy0spB9K8JkqaAPPza63nL/N2/2+S70ry6CRvSPIvpZTJHO143EnytFrrdb0L1VprKeVpST6S5GeTvC7JP/Yc5+510zf0XmudLqW8Pc01kiT/scC19eE0QeEHJtnUXk+ddl1n9sz3jDTX+ROT/G2SV7fX8m1y7O/As4Zsa9FW8XX3wiRfSNOJ+evtuT2trWdPmk7YH1nCev+kXcfvJvnTJH/aXq81ze+Sbjj63FtTPAAAAACnNp2YAQAAADhV3DbJfdrHPdOEfNenCaS9OMl/rbU+9VYEmLtdcl/Sb1op5QFJfqYd/FC/efq4JMnm9udnttt4Q5KHtjV/KslNafbtjkl2pwm+/nWSB9Va/32B9d9ngce9Bi86WK11a631EWlCk29O03H5UJrg2+40oeGXJPmuWuugrrOnzatjpt3Xc5L8ZZKH1FofPSTAfLK4KMmPpwnQd9IEBK9N8hdJHl5rnei3UHvcHpXko0l2pQl5705zPf9crfXP+iz2nCQvTRN4vDlHQ5fXpOnY/eBa63+OWnit9Zo05/icNB2x75vk/km+fdhyA/SGltfVWi9ZYNs3pAk8Py/N/uxNE+KeSfLNNN2HH5fBIfkVV2udrbU+M02n988k2ZfmvG1N04n5x2qt/3oCtnsoyS+kOf8XpHkt3inN6+nNaV5LHx2w7L4kj0zz++dzaUKxd8nR1/EfpLnmBun9XffWBercleQR7TI707zu798+euebrLX+SpJfaufd0u7PbZPckOa19Ow0Yf1ltRqvu/a18j/SBJX3pjkOO9IE1n84yTeWuN7ZWuvz0ny54B1prpfbpwmv35zmvP9elnDnAgAAAADoKs3nKgAAAAAArJRSSveN2QfUWjeMsxY4UUopL07TdfqSWutPjLseAAAAAGB10YkZAAAAAABYVqWU26Tp/pw0HYoBAAAAAI4hxAwAAAAAACybUsppSf4iyZlJtid591gLAgAAAABWpdPHXQAAAAAAAHDyK6X8RJL3JLl7kru2o19Uaz08vqoAAAAAgNVKJ2YAAAAAAGA53CHJ/ZPcMck1SZ5ba33reEsCAAAAAFarUmsddw0AAAAAAAAAAAAAwClEJ2YAAAAAAAAAAAAAYEUJMQMAAAAAAAAAAAAAK0qIGQAAAAAAAAAAAABYUULMAAAAAAAAAAAAAMCKEmIGAAAAAAAAAAAAAFbUmgwxl1LeWUp557jrAAAAAAAAAAAAAACOd/q4CzhBvu+hD33oQ5M8bdyFAAAAAAAAAAAAAMAaVxa7wJrsxAwAAAAAAAAAAAAArF5CzAAAAAAAAAAAAADAihJiBgAAAAAAAAAAAABWlBAzAAAAAAAAAAAAALCihJgBAAAAAAAAAAAAgBUlxAwAAAAAwEg+d9X2XLphz7jLAAAAAABgDRBiBgAAAABgJNsPHsnT33xJzrli27hLAQAAAADgJCfEDAAAAADASI5Mz6UzM5fffedXc84VW8ddDgAAAAAAJzEhZgAAAAAARtKZmU2S1Jp8feO+MVcDAAAAAMDJTIgZAAAAAICRdKbnbvn5UGd2jJUAAAAAAHCyE2IGAAAAAGAknZmjIebJzswYKwEAAAAA4GQnxAwAAAAAwEg6M0e7L09OCTEDAAAAALB0QswAAAAAAIzk2E7Ms0PmBAAAAACA4YSYAQAAAAAYSWf6aIh5oqMTMwAAAAAASyfEDAAAAADASI7MHO2+fGhKiBkAAAAAgKUTYgYAAAAAYCS9nZgnO7ND5gQAAAAAgOGEmAEAAAAAGEmnpxPzREcnZgAAAAAAlk6IGQAAAACAkXRmjnZiPjQlxAwAAAAAwNIJMQMAAAAAMJLeEPP0bD2mMzMAAAAAACyGEDMAAAAAACPpTB8bWp7sCDEDAAAAALA0QswAAAAAAIyktxNzkkx2ZsZUCQAAAAAAJzshZgAAAAAARnJcJ+YpIWYAAAAAAJZGiBkAAAAAgJEc34l5dsCcAAAAAAAwnBAzAAAAAAAjOT7ErBMzAAAAAABLI8QMAAAAAMBIOjPHdl4WYgYAAAAAYKmEmAEAAAAAWNDsXM30bD1m3OTU7IC5AQAAAABgOCFmAAAAAAAWNDUzd9w4nZgBAAAAAFgqIWYAAAAAABZ0ZPr4rssTQswAAAAAACyREDMAAAAAAAvq9OnEfGhKiBkAAAAAgKURYgYAAAAAYEGdmeM7MU92jh8HAAAAAACjEGIGAAAAAGBB/ToxT3R0YgYAAAAAYGmEmAEAAAAAWFBn+vgQ86EpIWYAAAAAAJZGiBkAAAAAgAV1ZmaPGzfROX4cAAAAAACMQogZAAAAAIAFdWb6dGLu6MQMAAAAAMDSCDEDAAAAALCgI9P9OjELMQMAAAAAsDRCzAAAAAAALKhfJ+bJKSFmAFLwmzMAACAASURBVAAAAACWRogZAAAAAIAFdWaO78R8qHP8OAAAAAAAGIUQMwAAAAAAC+pMH9+JeaKjEzMAAAAAAEsjxAwAAAAAwII6M8eHmDszc5mZPX48AAAAAAAsRIgZAAAAAIAFdWZm+46fnOo/HgAAAAAAhhFiBgAAAABgQZ3p/h2XJzszK1wJAAAAAABrgRAzAAAAAAALOjKoE7MQMwAAAAAASyDEDAAAAADAggZ2Yp7qH24GAAAAAIBhhJgBAAAAAFhQZ2ZAiFknZgAAAAAAlkCIGQAAAACABXVm+ndcFmIGAAAAAGApxhJiLqXcs5TynFLKh0spN5RSDpdS9pdSLiyl/HYpRbgaAAAAAGAVGdiJeUqIGQAAAACAxTt9TNt9cpJ/S7I1yReS3JzkPkmelOTNSX6hlPLkWmsdU30AAAAAAPToTPcPMU90+ndoBgAAAACAYcYVYr4uyROSfLLWess736WUFyX5cpJfTRNo/uB4ygMAAAAAoFdnpn9Y+VBHJ2YAAAAAABbvtHFstNb6+Vrrx3sDzO34bUle3w4+fMULAwAAAACgryMDOjFPCjEDAAAAALAEYwkxL2C6ffbONwAAAADAKjGoE/NEp/94AAAAAAAY5vRxF9CrlHJ6kme0g+eMMP9XB0z6vmUrCgAAAACAdGb6d2I+NKUfBQAAAAAAi7faOjG/KsmDk5xda/30uIsBAAAAAKAxKMQ80RFiBgAAAABg8VZNJ+ZSyguS/N8k1yT5n6MsU2v9kQHr+mqShy5fdQAAAAAAp7bOzGzf8Yem+o8HAAAAAIBhVkUn5lLK7yX5pyRXJXlErXXPmEsCAAAAAKBHZ1onZgAAAAAAls/YQ8yllD9I8s9JrkgTYN425pIAAAAAAJjnyHT/jsuTQswAAAAAACzBWEPMpZT/l+S1SS5LE2DeMc56AAAAAADorzPTvxPzoan+4WYAAAAAABhmbCHmUspLkrwqyVeTPKrWumtctQAAAAAAMFitdWCIeUInZgAAAAAAluD0cWy0lPLMJK9IMpvkgiQvKKXMn21DrfWsFS4NAAAAAIB5pmb7B5iTZFKIGQAAAACAJRhLiDnJA9rn2yT5gwHznJfkrBWpBgAAAACAgQZ1YU6SQ1OzmZurOe204xpVAAAAAADAQKeNY6O11pfVWssCj4ePozYAAAAAAI7VmR4cYk6SQ9OzK1QJAAAAAABrxVhCzAAAAAAAnDw6M8NDypOdmRWqBAAAAACAtUKIGQAAAACAoY4s0IlZiBkAAAAAgMUSYgYAAAAAYKiFOzEPnw4AAAAAAPMJMQMAAAAAMFRnZoFOzFM6MQMAAAAAsDhCzAAAAAAADNWZXiDE3BFiBgAAAABgcYSYAQAAAAAYqjMzO3T63kPTK1QJAAAAAABrhRAzAAAAAABDdWaGd2LefuDIClUCAAAAAMBaIcQMAAAAAMBQC4WYt+0XYgYAAAAAYHGEmAEAAAAAGOrI9OzQ6dt0YgYAAAAAYJGEmAEAAAAAGGqhTszbhZgBAAAAAFgkIWYAAAAAAIbqLNCJeet+IWYAAAAAABZHiBkAAAAAgKEW6sS8a6KT6dnh8wAAAAAAQC8hZgAAAAAAhlooxFxrsvNgZ4WqAQAAAABgLRBiBgAAAABgqM7M7ILzbDtwZAUqAQAAAABgrRBiBgAAAABgqM708E7MSbJ9vxAzAAAAAACjE2IGAAAAAGCoUToxbxViBgAAAABgEYSYAQAAAAAYaqROzAeEmAEAAAAAGJ0QMwAAAAAAQ3VmFg4xbxNiBgAAAABgEYSYoY89k1PjLgEAAAAAVo3OzOyC82zbL8QMAAAAAMDohJihjw99bdO4SwAAAACAVUMnZgAAAAAAlpsQM8xzZHo2H/za5nGXAQAAAACrRmd6hBDz/iOpta5ANSynw1MLd9kGAAAAADgRhJhhni37DufqrQeyQ+cYAAAAAEiSHJlZOOjamZnL/sPTK1DNeMzNrc2A9tmXbx13CQAAAADAKUqIGebZvO9wkuSC63eNuRIAAAAAWB1G6cScJNvWaGOA/Yemc9mmfeMuY9lNz87lQ1/fNO4yAAAAAIBTlBAzzLN5bzfEvHPMlQAAAADA6tAZoRNzkmzbvzZDzOdetyMb9xwadxnLbu/kVC5ZvycHjqzdDtoAAAAAwOolxAzzdDsxX3jDrjV7i0gAAAAAWIzOzIidmNdoiPmzV22/5X3DtWTXxFRm5mrOu1ZDBwAAAABg5Qkxwzyb2k7MuyamcvW2A2OuBgAAAADGb+QQ84G1F2KempnLedfuzNZ9a2/f9kxOJUk+d/X2MVcCAAAAAJyKhJhhns17j3ZUOf+6XWOsBAAAAABWh8707EjzbV+DIeYv37gnBzsz2bIGOzHvnuwkSc69dmdmZkcLqgMAAAAALBchZpin97aQF1zvNooAAAAAMHIn5v1rL8T82au2JUm2rMF92zXRdGLef3g6l960d8zVAAAAAACnGiFm6DEzO3fMLS8v3bA3h6dG6zIDAAAAAGvRzOxcZubqSPNuO9A5wdWsrFprPnf1jiRZk52Y90wePV//efX2MVYCAAAAAJyKhJihx7YDRzLb84HM1OxcNu49NMaKAAAAAGC8Ru3CnCTb9q+toO/VWw/ecue2/YenM9mZGXNFy2t324k5Sf6zDWsDAAAAAKwUIWbosXnv8R+ybF6DHVYAAAAAYFSLCTHvPTSdI9Nr585mn5vXnXjrGgtp7548GmJev2syE2sspA0AAAAArG5CzNCjX2B5Ld4mEgAAAABG1ZlZXCh5+4Ejx43btPdQ9h+aXq6SVsxXNuw5ZnjzvuP37WS2e6JzzPBa66QNAAAAAKxuQszQo28n5j7jAAAAAOBU0ZkevRNzkty859Bx4765aX9e/elrlqukFbN1/7Gh5a1rrOHBnp5OzMnx+wsAAAAAcCIJMUMPnZgBAAAA4FidmcWFmNftmDhu3PqdE3nXJTfnqzftXa6yTrha63Gh5bX2XuHuCSFmAAAAAGB8hJihR/8QszfuAQAAADh1HTgyvaj51+2cPG7c+nbciz98eaZnFxeKHpeDnZlMTs0eM27zGnqvsDMzm4OdmWPGbV1D+wcAAAAArH5CzNBj897jQ8z9gs0AAAAAcKq4afehRc2/bmefTsy7mhDzNdsO5m1fvHFZ6jrR+gV6t+5fO+8V7pmcOm7ctgNrZ/8AAAAAgNVPiBlac3M1m/oElrcdOJKZk6Q7DAAAAAAst5t2H99ZeZj5IeZaa9b3jDvnim3LUteJtqVPYHnLGmp4sHvi+BDz1v06MQMAAAAAK0eIGVq7JjuZmjk+rDw7V7PjYGcMFQEAAADA+G1YZCfm7Qc6OXhk+pbh3ZNTOXBk5pbhjX3uhrYa9evEvGX/kdRax1DN8tvdpxNzv30GAAAAADhRhJihtXnIhyeb11CHFQAAAABYjMV2Yk6SG3cdXWb9zmOX33mwkyPTs7e6rhNtW59OzFMzc33Dvyej3RPHN27Y2mefAQAAAABOFCFmaA0LKq+l20QCAAAAwKhqrccEkke1bufELT/fuGviuOmb9i6uu/M4bNnfvyvxWulWvKdPGPvAkZlMdmb6zA0Ay6PWmh0H1sa/pQAAANx6QsysObNzS7udo07MAAAAAHCsfYemc/DI4kOt63YM7sScJBv3rP732wZ1JV4r7xXumujfUXqbYBkAJ9COg5088h/Oy1lfvHHJn+kBAACwdggxs+Ys9U12nZgBAAAA4Fgbdi++C3NybCfmdf1CzCdBJ+atAzoxr5X3CvdMdvqOXyudpgFYnW7cNZmJzkxe9vGr8vQ3f2nc5QAAADBmQsysOTct8YOVYbfFHNalGQAAAADWqpt2Ly1s3BtiXr9r4rjpG/es7hBzrXVgmHdQh+aTze4BnZjXyv4BsDpt6Pk87isb9urGDAAAcIoTYmbNuXmJH6zcsOP4D1O6tug+AgAAAMApaKmdmDfsOpSZ2blMz871fb9u457VHZTdf3g6h6dn+05bK+8V7prsH2LeNqADNQAshxt7/raYnavZcdC/OwAAAKey08ddACy3DUsIMU90ZgbeHjJZO7eIBAAAAIDFWGon5qnZuWzaezg1yUyfDosb967uTsxD3ytcI52K90x2+o7fIsQMwAm0Yd6dUbfsO5z73e2OY6oGAACAcdOJmTXn5j2L7w6zbkgX5iQ52JnJ/sPTSy0JAAAAAE5KS+3EnCTrdk5k/c7+77tt3LPaQ8yDg8prpeHB7olBnZjXxv4BsDpt2HXs3wCb18gdDgAAAFgaIWbWnE17D2dmdm5Ry9ywQIg5WTsfTgAAAADAqJbaiTnphpj7h6APHFndTQO2DAlU7TjYyZHp2RWsZvkdnprNoan++zCsCzUA3Bpzc/W4L0j5/A0AAODUJsTMmjM9Wxf9RvsNAzrC9PImCgAAAACnkv2Hp7Nnsn+33lGs3zmZ9bsGv++2mrsxbxvy/mKtozVFWM12T3YGThNiBuBE2X7wSDozxzYi8vkbrC77D01n18TgvxUBAGC5CTGzJi32Npc6MQMAAADAsW6+FV2Yk+GdmJNk097VG2Lesn/4e4FXbT2wQpWcGMPC6fsPT+fQ1MwKVgPAqeLGXcf/XeDzN1hdLrlxd67ddnDcZQAAcAoRYmZNWuxtLteNEGLe5E0UAAAAAE4hi20UMN+6nZNZ3yes1LVxz+p9v23rvuHdiK/ZenIHO3ZPDO+wPawTNQAs1YZdx39+t3mBf3OBlXXxeiFmYG3ZccDfGgCrnRAza9LNi7gV5dTMXG4aYf4t3kQBAFhR07NzOTw1O+4yAABOWTfdyhDznsmp7Dw4+FbUG1dxJ+atC3Rivvok78S80C3Ct67REPMVm/dnbq6OuwyAU1a/L0jpxAyry8Xrdue67ULMwNrxmau2Z9b/AwFWNSFm1qTFfMCyYffkSH+weBMFAGBlfeGaHXn7xRvGXQYAwClrwyLvdrZYGxfRiGAl1VoXDPFes+1Aaj15PwTdMzm8E/NaDTG/85Kbc/W2kzuADnAyu7HPHRr2H57ORGdmDNWsXSfz3yiM157JqVyz7WCuFWIG1pArt+xfVCNEAFaeEDNr0k2L+IDlhh0TI823cc8h/+kHAFhB7//qprz+vHU+yAIAGJNb24l5IRv3rs6mAXsPTaczM7fgPNsPDO9mvJrtXiDEvG2BTtQno9m5ms9etS0XXL9r3KUAnLI29AkxJ8lWjYSWzfqdE7nwBv/WsTSXrN+dJLlu20GfiwNrxvXbJ3SYB1jlhJhZk25eROB43Ygh5h0HO7l+xHkBALh1dk108oVrdmTvoem87cIbx10OAMAp6UR3Yt60d3U2DRj1jmxXbz15O/runjj1OjFfumFPdk1M5fzrdo67FIBT0txczU0DuiBuFmJeNv967rp89LIt4y6Dk9TFbYh5cmrW6xJYE2qtuX7HRK4XYgZY1YSYWZMOTc1m58RonVBu2Dl6MPnsy7cutSQAABbhI1/fnJm5JtDyxgvWZ/+h6TFXtHac9cUb8+pzrslfn321N+4AgIFu2j2ZnQdPbKfhI9NzI7+Ht5K2jRjgvXrb4kLMtdZs2rs6bmG7boH3RNdiiPmcK7clSS7dsDeHptztBWClbdl/OFMD7nSwZd/a+3dnHDbuOZQPf31zPn3ltoHHGoa5eN3uW37WtRRYC3ZNTGX/4WkNCwFWOSFm1qybRuwUc8Mi/lg554ptSy2HRVi/cyI7DnjDCgBOVbXWvP/STbcMHzwykzdfuH6MFa0dm/cdzss/cVX+7dx1eeP56/OC91yWzszsuMsCAFaZI9Oz+d13fG1FtrVxz+rr8LZ1/6idmBcX7Lh88/6865Kbl1LSsrphx0Qu27hv6DwbB3TKPFnVWvPp9r3dqdm5XLJ+z5grAjj1bNg1+N+WUe+CcCq5csv+7JkcfueE+V5/3rrMztUcPDKTC29w5wEWZ+e8uxJfu03gDzj5Xb+j+X/7ddv9TgNYzYSYWbNGCTHPzdUFu470umbbwaxfxPws3uxczQvfe1l+8XUX5KIbdo27HABOQXNzq+921qeayzfvz7XzOn286YL1+drNe8dU0drxka9vTu8d26/eeiCv+ex14ysIAFiV/uKjV+SqrYvrMrxUq6UzcVetNV+9abS/O69Z5DH64Fc35dxrxx8oev9XNy44z/U7JvKNBYLOJ5PLN+/Plp7u0uddN/7zAHCquXH35MBpQszH+/g3tuYDI/yb3bVt/5FjmgJ84hvuLsvifGn97mOGdWIG1oJ17Zcz1u2cyKzP/wBWLSFm1qybh7wZ0rV53+EcmV7c7ZQ+pRvzCfW2L96Yb2zan10TU/nNt1ySt1x447hLAuAU8ycf/Gb+8hNXZf+h6XGXcsr6wFc3HTfuyPRcnvXWL+fKLfvHUNHaUGvNB/sc2zeevz6XzPuQYphL1u/ORy/bvJylAQCryHu+fHPed+nxfzOcKKPeTW0l1Frz8o9flY9ctmWk+dfvmsyR6dHuatGZmc1Hv7ElV209MNY7kE3PzuWDXx3tb7nXn7fuBFezcubfYe+C64WYAVbahl2DP7fbLMR8jFprzrlia951yc0jN1x4w/nrMjV79DPPz161feS/UyBJLhZiBtagbof5qZm53LzG7jgEsJYIMbNm3TTCHyA3LKGr8vw3vFk+N+2ezN9/5tpbhudq8rfnXJO9i7xdFgAs1aGpmZx9+da85cIb8/C//0K+cO2OcZd0ytl/aDof/lr/UMWBIzN5xlu+nBt2TGTzvsN54/nr8utvvDjP+fev5KUfvSIXXu8uDsNctnFf1vf5wLDW5A/f940cPDI8uH9oaiYv+9iVeeobv5S/PefazMwu7suAAMDqd8OOg/mLj125ott8zWevy0Ne9uk85rXn57lvvzRv++KNuX77wdS6sh2SZudq/uxDl+esizYsapkbdoz2/uIXrtmRfe0XJc8dYxfg867dmV0TnZHmPefKbSfkrnRLPbff3LQvE52ZJW1v/nu663ZOCswBrLBhIeYt+/1O7nXNtoPZsPtQNuw+lIvWLfzF8x0HjuRdl9x8zLiDnZlc4L0yRjQ7V3PevDuGXL9D11Lg5Hf99qP/p/XlDIDVS4iZNWtDny4uh6Zm8tWb9uST39yad15yU97z5Zv7LDnc5Zv3Z6NvaC27ubmaP/3g5cd1xu7MzI10i0sAWA6fu3pHDk01HUr2HprOX33y6pG7nbA83nLh+hwcEkzYPTmVJ/zLhfmpV30+f332NfnS+j353NU78u8X35Tf+Y9Lc9MId+M4VX3wa4M7Km7edzivPueagdO/fvPePO51F94S6tm873A+feX25S4RABij2bmaP3r/NzM1s/JfVDp4ZCbXbj+Yz1y1PS//+FV59GvPz4s/csWK1vCaz16b93xl8e9BXbX1wEjzfaCn+/H8gMhKet+lo+9jrcmbLli/rNvftv9InvHWL2d6kV+Im52r+ZMPfDPPf9fXFv1luiu3HOj7Zb4LxhgmBzjVzM7VXLll8L+Z2/YfOeXCkluHBLd77wr7zktuWnBdrz9vfTp9/ob7xDdHu7sEfP6aHcd9wWtqZs57rcBJr7ex4ahfQmZhuyY6clPAshJiZs26efdk5uZqLt2wJy/72JV5zGvPz4Nf+un86r9dnP/zrq/lxR++YsnBC92Yl98bL1h/3G2Kut7xpcG3y9q6/3A+8vXx3858+4Ej+Zuzrx53GQDcSh+77Nh/U27YMZFzr9ONeaXsOzSVt35xw4LzdYPm801OzeYF77ls0YGIU0FnZjYf/8bWofO840s35+J53X1mZufy2s9el197/cW5cV7w480XLk+gZXau5os37Mr/Z+++w+uq7nSPf9ep6r1Zxb0XbIxNMT0Q6kCYhEA6IWWYIZNkcm8mk2RSuSkkBEJIIwkkEAKhgyHEFBs3MLjbuFuyLduSrN7L0Wnr/nGOhWR1WcWY9/M8eiSdsvc6de+99rt+q6rp3YqA1loa2vquDC0iIiLD64G1B9l2tH6sm9HhsfVHBhW4PRkHq5r545qh7dvsPdZ/Jafq5nZWdZrlZW1hVa9B3JK6kTsJWNXUzut7B3d888zmUiobfcOy/roWP59+cD1rC6sHXVzimS0l7C1vYuW+Ku74x+5BVXN+fGPP61q+R4PyRERGy9rCKsr72J4EQnbAMwWcDnaXNfKJP63vdfDYyzvf7cN5dXcFFX08d5WNvl6Dzst3V9DYz8xbIgB/efNQj5eraqmIvJfVt/q7nHfQd9rw+dmyvdz+6Bbagz2frxMRGSyFmOW0VdcaYMmdr3Pj/W/x0Lpi9lU0MVyDuJ/afJS2XsIzMngbDtVy1yv7er3+SG0rq3uojFLZ5OOTf1rP157cxrN9VBYcaaGw5WtPbOMPaw7y2m6d/BDpSThs2XCodkRPxoqcrLoWP6t6qIj2pzU9d+DK8Htg7aEhTQ/d2faj9dzz2v5hatHp4/U9lQMKBf/PM+/Q6o+8Bu+U1HPD797kVysKe6yGtPVIPZsP151Uu/zBMF95fCuffGA9i3+8nHN+spzL7l7FnO+/wvwfvsr9qw+c1PJF3u8OVDXzhYc3sXRbKb7AyB3DDiZIJiKnpqLKZu4+BfehvvP8TnaWNozoOqy13PGP3QRCQ/su2zOASsxLt5UR7LQ/1egLsrWHwPiBqmau+/UbA1rmUDy+4UiXdgyEPxQe0EDD/jS3B/nsXzZQGK189asVhQPe92/zh7j71Xf7Dv/61mEefGNgx2mt/iBLt/ZchXLF3kqKKnUSW0RkNDy+of+BSSdWgT3udBusbq3lBy/u4lB1C4/1ED4+UNXM/op3K0WGwpYn+5gtorcqzBAZ8P/QMGzH5fS2r7yJdQd6LjS1r1xVS0XkvevEysudt68ydJsP1/HU5hJ2lDZwx4u7x7o5InKaUIhZTmt9jeo+GfsrmvnK41sHPXVhT9r8If6w+gC/XVnEi9vL3ncd59XN7Xz571v6nSbsr28Vd/m/tsXPpx5Yz8HqFqyFrz+1nWU7+q4uOFLuX32g4+D+W8++Q837qFqASH+stfzm9UIuumslN/3hLT7z4AZqW/xj3SyRHi3bWd7jCf23DtaMeHBCIiHy3ip+DNb9qw/w5KajCtVFWWv58wCf2yO1rfzopT18b+lOPvTbN9lZ2neA5oEBTC9uraWqqZ11B6p5ZnMJB6qasdbiC4T4j79t5qV33t2Hq2hs50BVS0e17TuX7eWx9YOr0iciEc3tQW57ZDPL91Tw1ce3sfhHy/nZy3uHvcr55sO1XHbPam76w1s8s7lEA35F3qO+8/yOXisBjiV/MMxtj2ymsmlk+vgAVuyp7HEw40BtPlzX7xSqT2/uPvi+c2VmiPSR3fqXjdS1BvjdquEfyPXIW8Xcs3xoQfW/vX2Y+taTO5b/4Qu72F7y7nFVdbN/QPuSAA++cZCKxq79bT/55x7WFvb/uv1zRzlNvYSlrYXfrdSgOZH3GmsjxRK+8fR2/jzAAQ0ytiqbfAOqfl/WKcS8cm8lX3tiG+ff+Tof/t26U3I/Zahe2nGMDYdqAbjv9SKaTqiU3NNssH9ae7DHgeR9VWE+7sE3DnVbh0hnD63r/btUVUvfX8LhSD+u+tXldHFiiPlAVXO/uRTpWyhs+f4LOzv+f3T9EZ7bOnYFB0Xk9KEQs8gQvba7gu+9sGvIO/HWWv654xiX37Oany7by12v7OPLf9/K5fes4VMPrGddUfVpf4DQ0Brgy49t7XYSoier9ldxpKaV9mCIpzeXcOPv13UZKRe28JXHt/JGYfVINrmbzYfrulR7rG72853nd572r52cvnyBEG8f7HnE/VAs21nOL17dT0ldpAP6YHULtz60saPK51iraW7XwAPpsHRbaa/X/WmAJ9elb8FQmIfXFfP2wZou20pfIMSvVhTSMkzBN2vhG0+/wy1/2dhvoKQ3pfVt/Ob1Qo7UvPcryP9zRzkbiwdeMfmx9Uf461uHGcjuzCu7ytld1nvQuc0f4tMPbmDxj5fziT+t5/8+tZ3L7l7NBT9byQ2/fZMVA5jO/H+f38GL23uunifDbySr9crosdbyjae3d+mob2oP8vtVB7jo5yv545oDA5rqLxAKU1TZxFsHathb3khlk4+GtgCVjT6O1LTyk3/u4cb73+JgVQsbDtXyf5/aznW/eeO0ChiIvB9sP1rP2wdrx7oZvSqtb+PG37/F4ZqWYV+2LxDijn+cXNUgfyjML17tfYaxnaUNPVZW7jzrWEWjj88/vIkj0X3Xl94p41D10B5vMBRm65E6DlQ1Ew5brLXc89p+vrt014D273rS3B7kLydRxXFdUTVP9RDk/uOag12m9u3J1iN13L+6+/FY2MJ/Pra13/31Jzb2PSBu6fayXpdR2+J/3xWcEDmVWWt5eWd5xwC6JzeV8NNle/o8Jh2qjcW1/NfjW/nYH9/iyl+uYd2B0T3vcLp5enPJgGYCOB5ifmVXOZ9/eCPPbS2ltL6NHaUN/OzlvSPdzFHR5g/xk5f2dPxf2+LnT2vfDZCGw5Fzhydq9AX55ANv8/red8Pgxxra+P4Lu3qtwnxcQ1uAh9cVn3zj5bRU1+Lnua2994vvLGsYlqJecuo6XNPC95bu5Pw7X2f6d5ax+MfL+cELuwgr6CmngcITQsz+YLjjuFuG5u8bjnQrfvOtZ3eMek5HRE4/ZiyDdsaYfOAO4CogHTgGPA/80Fo75HmJjTGbFy5cuHDz5s3D01B5T7n6V2tHbMrFnnzu/ElcOSebiRnxZCV6Mcb0e5/1B2u465V9bOpn+u25eUncct5ErpufS4zbOVxNHnOhsOXvG45w96v7qGsd+OjvheNTOFLbSnVz75VfErwunrztPGbnJgHQ5Avw1ce30ewLcu6UdC6flcUZ+Skn/RgAth2t59a/bOjxMZw7OY25ucnMHJfEpTMySU/wDss6w0LmbgAAIABJREFURUbS/oomvvzYVvZVNPHFCyfxP1fNxOUc+nin5vYgl9+9useq+BdPz+T+T51FrKfrd9ueY43kJMWQGu8Z8noHwlrLM1tK+dFLu3Eaw08+PI8r5+SM6DpPZe3BEIdrWjlY1cy45FjmFwzP9+RwsNbSFggR53GN6HrK6ts4/2ev93pS3+kw/P2L55Ia58YYyEuJ6/b+lb4drGrma09uZ3t02uwpmfFcNTeHnaWNrD9Ugy8wMp3hMW4H375mFp8+d0K3/TRrLav2V/HwumIumZ7JRxcVEO918c8dx/jmM+/Q6IsMuLhgagaXzMgkOymGnOQYFhSk4D6J78fR5AuEuOzu1b1OyTocUuPcPPL5c5ibl9xt3V94eBNvFJ1855Xbafjr587hvCnpJ70s6d2a/VV87YltXD0vh29dPYt478h+98rwCYUtZfVttPpDBEJhXt1dwX0rCvu8z6SMeL5/3WwumZHV7brDNS185e9b2VXWOKCwwYn++8oZfOnSqYO+36msqqmdzMSRP64LhS1OR//9CtK7woom7l1RSILHxfScRCakxRG2lmDY4nE6mJgRz/i0ODyu7tvyDYdq2V3WgAXivS7+9cy8Xrf5q/dX8buVRRgDLoeDcckxzC9IYX5+CtnJXhK9bmLcjgH1E/WlqLKZI7UtxHtcJMe5mZgeP+x9RF99fCtLt536A4YyErw8/LnFzMlNxh8MU1bfxvi0OByD/My8vLOcX7y6j2ZfkEZfoGMGiJP1/JfOZ0EPx1LfX7qTh9/quULihdMy2HOsieoeBtfetCifn984f0DrDoctr+2p4Lktpbx5oJqm6H5sotdFflrcsPSVJsa4ePObHyApxt3j9b19f/kCIa66dw3FvQSFp2TGc/msbM6dks7c3GTivU5iXE52H2vkntf283o/g95m5iTy7O1LejxmLKps5vJ7Vvf72D5xznh+8q/zgEgI/PltZSzdVsq6AzWEwpb5+cnctLiAD5+Zf1LHgYFQmGDI6lhSZAgKK5r4/gu7OmZE7GxmTiJL//N8vK7h+Wy9sL2Mrz+5HX+n0J7H6eCXNy/g2jPGDcs63k/CYcslv1g1oMDQZ5dM5Mo5Odzylw09Dox88JZFXDYreySaOWrueHF3t9my4jxOfnnzAt4squaVXeV9Fv5xOgz/ddk0dh9r5NXdFQOuJpkS5+aN//kACYM4zq9v9dPkC9LkC5IW7yEnOWbA95X3jt+tKuLnL/c+IA/g8lnZ/OYTZw75OOR4HuVkj41keFU2+fjBC7tYtrO8x/MiH1mYz88+Mu+kzhOKjLXP/HkDa/Z3ncHnD58+66TPCbf6gyN+3vJE/mCY2hY/NS3tzMxJGpP+w5V7K/nK37f2ONuRx+Xg959c+J7fVxORYTPoL6kxCzEbY6YA64AsYCmwFzgbuBTYB5xvrR1SKUiFmN/fRjvE3Fl+aiz33LSAsyeldbm8vtXPgaoWDlY188L2MtYOchRSapybb149k5sXjx90m6qb21m1r4rX91ZwrMHH1XNzuGbeOPJT4wiEwjS0BaKdEAFa2kNMyYonK3FkOiKCoTDLdpbz25VF7C0fuSom2Ulenrv9fAA+99DGLutyOgx3f3Q+N5yZd1LrWFtYxW2PbB7Qia5Yt5NPnTueL144mawkdfLI8AuH7aBP2p7o6c0l/O9zO7pUbTh3chrfuXY2kzLihxRi+sk/9/DHNb1Xr52alcB9HzuT2blJBEJhfvnafn6/OjKN6/z8FM6ZlEa814Xb6SA/NZYr5mQPy8kIXyDEF/+6qdt38YcW5HLe5HQcxuByGiZmxDMrJ4lYj5PyBh9rC6sorGzmnElpnDs5fUjPSXswREldG5PS4wf9mgVDYVraQ7T4gxgD45JjB71+iBzkLtt5jMc3HKWsoY361gCNvkBHJ5XLYfjm1TP5/AWTxrxTsaSule88v5M3CqtZOCGVi6dnctmsLGZkJ3a0raa5nVd3V3Dm+BRm5iQNavnWWnaVNfLc1lKWbivrMTjQm8xEL1+5bBo3LyrA43JQ3dzO2wdryE+N44y85JP+TI6mkQ5LNfki1V5+s7JoxILKA3HZzCx+fuMZpCd4qWzy8daBGh5aV8zWI/Udt0mOdXPm+JR+pxOfm5fE3R9dwIycxJFu9kn77coi7nql7xMRwyHR6+Ivty5m0cTIfnCjL8CXHt0y6P3eviTFuHj29vOZmpXQ7braFj8v7yyn1R+kPRgmOymGD8zMIm2YBsU0tAV4p6Sed0oamDUukYunZ3X73FhrqW8NcKS2leKaFg5UtYC1XDozi/n5Kaf090IobPnV8v38emVRx/ZgfFoc99w0v+M1ldG3cm8lK/dVcub4FM4an0ZbIMSbRdWsO1BDc3uAOI8Lj9PB0bpWiiqb+62+1ZvLZ2XzH5dMYeH4FIwxbDlSxxce3kRtS++DR/vjdTlY/n8upiAtbsjL6EtDW4B1RdUcqmnhcHUrbYEQqXFuUuI8XHvGOKZnD9/3s7WWh9YVc+eyvTx069kjNpjCWstvVxbx+1UHWBIdPHPB1AzGp8V12yeL9DE0c6S2lXiPi/QED1mJMeSlxPb6XdPkC+B2Ok6rAdInavQF+NXyQh5eV9xv+N5h4Lwp6fzbRVO4aFoGda0BfvzSHp7Z0rVS7Bn5ydxz04Iu255w2PLr14u4d8X+fqvaxnuc3H7pVL5w4aRej2Wstb3ud6/aV8ntj27p0vfgMDAhPZ5JGfEkeF3EeZzMGpfEzYsLenx9d5c18uvXC5mXn8xnzpvYLbhS3uDjgp+9PqQBC2MhwesiK9HL4dpWQmHLlMx4brt4CjcsyOsxmH6i7UfrufmPb43IfunZE9N44rZzu7yevkCIc36ygoa2wU/h7nIYVn/jUvJSuh/7ldW30RYIEQxZ3imp5/7VByL7HiPs61dM5z8/MK3LZdZa7l1eyOMbj/ClS6dy8+KCLu/3n7+8l9+tOjCi7bpwWga//eTCbgHrH7+0u0t1y954nA7WfONSSuvb+O7zO9ndS9/yxPQ47vzIGZw7eXDbAn8wzDNbSvhtdF/rjg/NOS1O7LYHQ7y+p5JntpQS73Xyv9fM6rXvs7bFjy8QIt7jwut2EAxbgqEwXpez11D38cEK6QkeEnsJz0vE4ZoWkmLcI14UYKxUNbVzzX1r+6zcfttFk/nWNbM6/vcHwxRVNlNY2cR5k9MH1C8fClvuX32g12NoY+B/rprJJ84Z3+uADunuzaJqPvnA+gHddkZ2IqX1bTT3EIyByLmyJ247r9v+fihscZhTPyD55zcOnfQMECdjoINNiyqbuXPZXpbvqehyeVail/kFKdy8qIDLZmWd8s+39O1obSv3Li/kua0lDORQ4KwJqTx4yyJS4iLbmv7OS1U0+li6rZQNh+rYfLgWXyBMbkoME9Lj+fY1M5mader3q/anoTUAJtKnfKoY6PfhhkO1fOmxLf3OivLB2dn84Po5PR6TiLwXLPnpCsoauhbbGmrxha1H6njk7cNsPlxHSV0b37hyBv920eQR3x5aa/njmoP8dNm7s1LceFY+P//IGaN2zuH4+YP7Xi/q83Yuh+GXNy/guvm5w96GhrYAT206SnmDjyZfkFnjErllyUTtj4icut5TIeZXgCuAr1hrf93p8nuArwF/sNb++xCXrRDz+9hYhpghcjLp9kumcsuSiby88xhPbyntqDh4sr544SS+efWsPoNGvkCI1furWFdUzfpDtb2GheM8zl4DuJMz4jlvSjqfOW/isIRzqpvbeXF7GX95s3jUpueYmpVAky/Q44h1Y+DOD88bUig8HLY8seko31u6k0BocN+fHpeDC6dmcPnsbC6ZkUlq3Ludysc77v3RiizBkMWYyOsU73XhdZ189SY5fYTClqO1razYW8nLO49R2dTOk7edR/YQQ/L/eKeML/99a58n4DMTvczJTeLsSWmcMymN+fkpfY6+3lfexDX3re23EoTH6eCrl09j+Z6KLkHCnqTHe7h5cQHnTk7HEvk8VjT62HOskX0VTcwel8wNZ+YyLy+5z8/Lj/6xmwfe6P8kJkS+07MSY7pVk/Y4HUzKiCdsLSFrSYpxMzUrgSmZCeSmxJAW7yE1zkOTL0hFo4+SulY2FNex8VAtbYEQGQkeLp6exaKJqaTGeUiJc5OTFENBWly37/gjNa088nYxT2w82lEVFmB6dgJXzclhfkEKxxp8HK1tJTsphk+eO77LCWNrLUdqW9lZ2sg7JfU8t7WUyn46pgCunpvD5y6YRKw78j1UkBrb62vuC4TYVdZIky+ALxAi1uPirAmpvVb2qGj04Q+GSYp1kxi9jT8Upj0QpqalnZoWP1sO1/GrFYU9bqsmZcRzxZxsjtS0snxPRcf38YKCFG5YkEt2UgwJMS7S4j1MyUzoCHOEw5bimha2Hqnn7YM1vH2ohqO1J1edtiAtlgSvu8u+R1q8h4unZ3LtvHFcND1zQGGKsfKXNw/x02V7mZQez6xxiUzPSWRKZuS93LlCYXN7kBe2lfHMlhJa2oN43U68LgexbmfHeyQt3k1avJfUODdJsW6SYtxsOlzLn9841OW9O5YyEjwkx7qHJeDhcTr48gemcv60DFJi3aTHe0mOG54Oa38wzOMbj5CV6OWsCWndKn82twfZVFxLUWUzTb4gze1BshK9nJGfwrz85I7PXmWjj0t+sWrYqgv2J9btZOa4RI72M3PGyShIi+W5288nIzrLRW2LnwfWHuThdcW0nPA4HQYWTUwjJykmUmWxPcSSqel8bPH4AVcP2lnawL3L97N8T9cKgOOSY/jQgjzC1nK4poUjtW0crW3t9URrRoKHSRnxBEKWYDhMmz9ES3sIXzDEkinp/OuZ+Vw8wO+LikYfP/3nHkIWPnf+RM4cnwpEthdvH6rB43SQmeglKcZNXaufqqZ2mnwBEmPcJMe6yUz0Mj4tjpQ4N1VN7Ty1uYQnNx3lcA/VET1OB/d9fAFXzR2damPtwUgYK87jxBhDQ1uAtw/W8E5JPZfOyOKsCam9buNb2iOfhSZfgMrGdoprWjlc24LX5SQ3ObKNXTQxddiqs42kYw1t3PHibpbtLB/V9c7PT+aSGVncv/rAkAPRnX1gZhYP3rKo22vW6AtwqKqFuXnJgx5Es6m4lsfWH+GlHcf6bOMVs7P5ymXTulWI7421llDYdtvX8QVC/O9zOzuCrSlxbl740gWMTx94ODsctljo8yRiOGz54Yu7eqzUmpMUw6KJkc/50bo2SmpbqeklYJ7gdTEjJ5HclNjIfmrIUtvq51B1C1VN7RgDucmxTM6MZ0FBCmdPSmPh+NQug/MafQG2HK5j29F6dpc1sqe8kVi3k+vn53L9/LxBPfaTVVTZzF/fKua8yelcPCOz1wo3hRVN/PWtwzy7paTbtmAgZuYkUtnU3mtw3+ty8NnzJxLndtEeDLHtaH2PVSD7MjE9jq99cDpTMhPISopsw5btKGfptlJa/SG+dc0sLp6e2eU+T206yjef3THg6nq5yTF85bJpLJmSEdmnbvbz4jtlvLC9rONYLyXOzb9fPIV/u3Byx4mun728l9+PcMB0NEzKiOehWxczIT2+19uU1LVyw2/XDWrw4mDd/6mzuGruuxWd/vFOGf/52NYhL++ymVl8/sJJLByfitflYPX+Kn67soiNxUOexPCknFjF0RcI8fWntvOPd96d9j4vJZYlU9Jxuxw4jeHvG46MSkh+alYCD96yiAnp8fgCIZ7ZUsKdy/Z2VKXuz+SMeA5WD+w44VPnjh/wrBV7jjXyxb9uoqSu67HnFbOzue3iyZxZkNrlxHMwFB61anehsGXb0Toa2gLMyEkiNzlmQP2Prf4gD60r5k9rDnaZoS7B6+K/Lp/GTYsLOgKebf4Qv19VxP1rDvZYVdXtNCyemMalM7LISvKy51gTe441UlTZTFlDW8f31+TMeObmJjMhPY7clFjS4z3UtwaoaPRR0eSjuslPVXM7YWuZFB3okZcaS1ZiDFlJXvzBMNXN7VQ3+zlW30ZpfRtVTe0UpMUxIyeR6dkJTM5I6DUE7A+GcTlMnyEBay0Hqpp560ANVc1+rp03bsQHvvoCIX61opA/rTlIyFrm5iZzwbQMLp+VzYKClGEfsBwIhbvNUNDQFqChNYAx4HY6yE4a2GyVAxUKWz7z5/W8WdT3ttcYmJeXjC8QwhcIU97g66ik7HYarp+fx8fOLsAXCEVme2zyk53kJS81FmvhlV3lvLKrfEDHsh6ng/OnpnPV3BwumZE14D5Zay0Hq1uiMz9E+jMrG31cPW8cH188flT3s0ZDMBRmy5F67npl77Bvt2bmJHLFnBxSYt2sO1DD+kM1pMS5uWpODlfMyWFeXvKIDd4LhS3ljT58gRCTM+IH/H5/YXsZX/n70PcJhkOC18VjXzynx9lKw2HLtpJ6ntoU6SPobx90Zk4iX7p0KlfPzTktqrQGQ2GO1rVRXNPCsXofl87MHHIRkVNdfaufe5cX8uj6w4M+z5mXEktavIdjDW00tAVYNCGND87O5vypGaTFe0iKdVHZ2M79qw/w1KaSLhXtO0vwurj35gVcPrv7oC5fIMTmw3Ucqm7hSG0rbqfhkhlZnFnQ9zmp0RQMhXlswxHueW0/re0hLpqeybVn5JAdLRIW63GyoCBl2M/rhsOWquZ2UuM8eFwOAqEwGw/V8uruCrYerae8IbJ/k5Hg5czxKSwcn8p5U9KZkxvpf7HWcrimlRe2l/GrFYUDPtZ0OQwfXpjHZ5dMwuEg2tcYJC8llokZ8XicDtYfquGNwmqcTsOtSyb12fcaCltW7avk5Z3lpMZ7mJAex4KCFObkDqwPZ6y1+oNUNLZT2ejD6TCkxLmJ9bjYeqSOVfuq2FXWyAdnZ/PRs/JHbHC/DExNcztn/Wh5t8snpMdx06ICLpqWyZzcpAEFgZfvruA//76l24Doa88Yx103njFiVZnDYctP/rmnx/PaHz+7gB/fMK+j/f5gmLC1uBwGY0zH7FNet2NIRQzbgyH2HGti25E6/rmznA2Hagd83w/OzuabV89kSmb3gjQD0bmCvy8Q4uF1xfxu1YFuA8Q/fnYBd3xo7ntm5tTeNLQFOFrbSml9G4leF+dNSX/PZ4N8gRC1LX5yNQjm/ey9EWKOVmEuAoqBKdbacKfrEoFjRB5MlrV20AkDhZjf38Y6xDzSLpuZxafOnUCLP0irPxSp2IMhbC1vHazhtd0VwxpUuXRGJl+8cHKXDeXxqddf2FZGbYufulY/WYlezpmUzuJJaTiNobzRR1l9G8v3VHRMvXiq+ebVM7ucuOusPRjiO8/t5HBtK59dMpErZmezq6yR77+wi23DFEofjEkZ8Vw7bxzXnjGOmTmJ7/mdFhk8XyDEfSsKWb6nguKa1m4nfqZnJ/Dkbed1jIIfqHVF1Xz2Lxt77UzqTWqcm8tnZXPFnBwmpseRGu8hzuNk+9EG3jpQzdLtZT2GoUbDzJxEfv3xM5nWQwW+wVT+GAsel4PJGfEkxrjwhyztgRD7Kpr6rfDWWX5qLP995QxykmJYtrOcZTuP9TkF4UBlJHi4am4OV87JwekwVDT6KK1rY/2hWjYcqu0WJHI6DPPzk5mRk0isO1IhrqyhjY3FtScdHB4Mp8MwOSOepFg3e481DinYcjKSY91cOiOTcdGTrAVpcZw7Ob2jOkM4bNlb3kQgFGZ6dmKPFaistVjLsI6oDoUt/+8fu3loXXGvt3EYyE2JJT81lp2ljb2GMyXCGLhkeia3LJnIRdMye329mtuDvL63kmAozCUzulcK3lfexNee2Nal+ltOUgwpcZFgeHswxM6yxj73reI8TuI8TkJh2yVUcLrISYohzuOkvi1Afat/QNViOnM6DBdNy2DWuCTyU+PIS418PtMTPLidDg5Vt1BY0czKfZW8trui/wUOk+RYN0umpLNkSjoXT8/qdgK71R/kkbcOc9+Kwi7fZfPykmn0BQa93U2McdHqD/W7n+4wcOeHz+CmxQVA5D1cF+18GkooIhw94VtaH5kNoL7VT3FNCxsP1bGtpB5/MEyM20FqnIeKRl+X13dmTiI3Ly7gnEnpHYGQ5Xsq+PMbh1g/gE7UpBgX154xjg/OzibO48JAx+ekttVPky8QHVAYxuNykBrvIS3Ow+zcpI5quNZadpQ2sLawmrMmpLJ4YtpJh0OstWwvaeCNwqpet6vvVd/9l9lcPz+XzEQvwVCYJzYd5Z5X91PT4icpJtIh+9XLpjM7t+/ZFIYS7HYY+P51c7hlycReb3O0tpXntpby7JYSSuraKEiLY2J6HMHooMGyel+3/eTp2Qk88x9Leq0Iaa3lyU1HeWJjpDJIRVN7x+fM43SQkxzD+LQ4clNiiI9W0d17rIkVeyt7XN5oSPS6SI334HYaDla39LnvmZHgJT81sn+QFu8hKcZNSpyb6dmJzMlNIj3B2/udBygUtvxp7UHueW1/x3GP1+XgvCnpnDs58mOtZeW+Klbvq2R7ScNJr/NUcOG0DM6akMqR2laO1LSy6fDIhVQvm5nFLz+2ALfDwbk/HVqV4FNRRoKHh249u8cBDBWNPj794Hr2VzSPaBsyE708eMuijnDQLX/ewOr9fc/yMRAeVyQYOJrHUr258ax8ClLjONbQxubDdRRWjuxzOhgpcW4+elY+z24p7XXAx3CZmB7HL29e0DGgrCdvFlXz749s7nGq3eNyk2O4Yk4Orf4g247Wc7CqhQumZfCxxQVcND2TbUfrWbWviu1H66MV9R2kxXuYlpXI1OwEQiHL/somiiqbmZAWzyUzMpnXx+xAJXWtrCuqYW1RNWv2V3X5/Cd6XSRFj1UdDshOjGyz8lJjSYpxE+d10uQL8sDaQ30OBnAYmJObzMLxKby2u6Jb5bNTWVq8h6mZCczISWTmuEQCwTBrCqt5+2ANXpeDJVMyOHdKOm6HoS66L1vWEBm8frimtduAmJk5iSyZkkFeaix5KbEEQmGKq1sormmlLrr/6Q9Zrp2Xw82Lxvc4MLalPUhDW4BQ2BK2lsa2IKXRIPYjbxVT3MtxQEaCh7MnpRHjduJ2OMhNieXqeTkdFWyPDxgsrm6hMTpLY0qcm/zUyH7K8aIare0h1hZWsXxPBQerWzoGRLkchn3lTd1e39njkvjskolcvyC31xBpSV0rf3v7CP5gmK9fOb3P0Me9y/dz7/LCvl62MTd7XBLnTk5ncmZ8Rx9UTYuf2pZ2KhrbKatvo7SujXdKG/qseLloQioLJ6RyRn4ykzMSiHE78LqdeJwOPC4HXpcDj9Mx5P6hyiYfu8oa2R392VPeSKLXxZTMBCZG+yO9LifxXmd0vzie1Dh3l/NCB6tbWFdUzcHqlsjgXH8It8MQ540Mcg+GLb5AmMa2AOsOVI9Zn8TxmSumZiUwIS2O/NRY8lLjSE/wkBEdhB7nceJ2OgiFLVVN7ZQ3+shM9HarNuoLhFh/qJaVeytZW1jFkdrWjuBndpKXC6MBqJjogP/GtgCFlc0UVTbjcTkYnxZHapyHP6w5MOjA6EhIjnXz6BfO6dhfqm/1c//qgyzdVsqxIXxf56XEcuv5E/noogICocgAguPfhQ5jqG/zs/FQLesP1VLT4o8eS8SRneglI9HbMSh/Sua7gfAmX4BD1ZEK85mJ3n4HDQVCYUJh260YUF8znhy/3/qDtby0o4yXd5Z3eb+6HIZ/OWMcNy0uIN7jIhiOFOA43n+Q6HVx+ezsXot4nIpCYctjG45w96v7qD9F+gu/eOEkZuQk4Y0Gclfuq+L1PRU99uEnxbjISoqhpT1yfnzRhFQ+vDCfy2ZljdqMQ+Gw5bU9Fdzz6n72VfQ94/DcvCT+67LpXaqWh8ORAU8bi+s4UNVMezCEPxjGFwjT6g/SFp21IjsphsxEb0d/ky8Q4p2SBrYcqesYoJce7yEQCg+oeEhKnJsz8lPYV944LOeKTuQwdOm/Oz546PoFuSyaEBk4fXygxPLdFTy3tefvm/OnpnP7JVNZ0kN4r9UfZMvhejYU17L1SB3tgUjfXazHyYS0OKZkJTAzJ5F5eckjEnavbm7n+a2lPL25ZFCzTc/JTSI3JZacpBgWTkjhmnnj+iywEA5bNhTXsmpfFZMz4lk4IZXJGYOf2dVaS9hC2Eb2H53GDPp5qWj0sbO0gbL6Niqb2js+d0umZAy4mEuTL8C2o/WUN/hoaIsUQcpLjWVSRgJTMuOHPNtKTXM7q/dXcbCqhY+dXUB+aveweJs/xKceXM/mfvpWUuLcLJqQyqLowMqeBiE+ufEo33qu90Hm45JjuHJODpfOzOLcyWkDLqIRDIVp8kU++63+UEeBjpb2yGyT7cEwq/dX8VKnQcMn+uhZ+YxLjmHdgRq2l9T3uq8xLy+ZD87OZtGEVLKSYshO8mKJDEqobmonOc7NxPR4YtxOdpQ08NiGI7ywrfSkzqk6HYaPLMzjyjk5XWY4bm6PFABr9gVpaQ9iiZyrSIxxU1TZzCu7ylmxp4K61kBHUYi+zmFcOC2Dr142LVo00NIWCNHSHqTFH2RaViILClKGvdhUf/sYbf4QxxraOooQJXhdHX2pJ95v2Y5j/J8nt9MWePe5PmtCKv/3g9NZMjVjWNs9Gpp8AR5df4QH1h7iq5dN5dPnTRzrJsnYec+EmL8A/An4o7X2th6uP16l+XJr7YohLF8h5vex0z3EPFYmZ8bzyXMmMC0rgV+/XjhmFV+G2/lT0/nFR+d3GVFd2ejjtr9t7lIVNiPBQ02Lf1BBwpGSEudmbm4y8/KT+cDMLM4an3pKT08uJ29naQP/58lt/Z5sXVCQwqNfOKfXTr2KRh+r91XR6g+SGt1J/vazO07LYGK8x8ndN83vUjmyoTXAlfeu6VZVWWS0OQyckZ9CeryHjcW1HR2NxhCpfux0RA+wQ/gCIfyhME5jOHO9VEHOAAAgAElEQVR8CkumZHDOpDSmZSeSkRAJvx6qbuHtg7VUNPpIi49U9q5t8bOvvIn9FU2ELR1TjbtdDtwOw9G6tn47b2TospO8TEiLJzs5hvRoSNlaS2m9j7WFVR3hRIeBM8enkp8ai8fpwAIvbCsb9MASOT2dNSGVDy/MY0pmAs9vLeXF7WWjPhCjs8tnZXO4poWiqmasfXfgzRn5yZw3JZ3zJmeQkeAhZCOdhcU1Lewua2RveROVTe3UNLdT2dTO0drWYQnoJnhdJMa4hnSSdShyk2M4c0IqO0sbugTGMxI8fHB2DpfNzOL8qRm9TodurWXVvir+uOYg45JjuG5+LudNSef1vZX8YfWB0yaE2Zv81NiOQQIn8roc/PD6Ody8uKBbJ25Da4BHNxzmN68XDXmw7qfPncD3rpvdpSJHZaOPu17Zx9NbSoZ0jDc3L4kf3TCPBQVdK5g1twf53+d2sHRb2ZDaejrISPDgcTpwOk000DCJy2dld1R9Kq1vY2dpA0WVzRyoauk4vp2encjh2hY2FdextrBqWGZNkL5NyYzn8lnZ/GHNwbFuyrBK8Lr4xUfP4IOzczpO+m8sruU//rZlRCswd+Z1Ofj5jWdw9qQ0ltz5+inRlyQjw+kwfOmSKXzhoskdlYchcjL66c0lfHcIM7l1ZgxDev8kx7pxOw0t7ZHjyXiPk6RYN9ZCaf3YB+GlZzFuBx+YmYU/aKlticwQcDwwMpymZiWQGONi+9H6QQ8IHYzUODefOW8ityyZSFq8h/ZgiFX7qnhmcwnL91R0rHtiehx3fXQ+iyemdbm/LxBi6bZSvvnsDn2PnsDlMHhdDqZlJ7JwfCqzc5NoaAtQWtdGRaOvowBOezBMKByZ+bG62T+k7WCs20lyrJvEGBdNvuBp16/qcphowOvdyyZnxnP+lIyOmecKK5tOifDxcEqJc/PI585hQ3Et960oPCUGtGUkeJmfn8yR2taOfod3r/OwZEoGF0zNYOa4RBJj3MR7nRRWNLN0Wykv7yyn0RfEGIhxOQlbSyA6s8HC8SmcOzmdmTlJ+ENhWtuDlDX42FRcy9Yj9V0CQ4PldTm4fFY2M3MSaQ9GZlo9PktUsy/yOWwLRPp3Q+HI7D9up4M5eUmcWZDC+PR4mnwB6loDBENh4r0uErwuPNFjV0ukqmZbIBJ0HZcc0zEjQXsgTFN7AF8gjNtp8EQHOXhcDtxOB8bQMevr9pJ6VuypYPmeytNyPyA51s2/XTSZW8+f2DEopri6hVX7KqlvC9DkC+J1OZiXFzmvmpcSO+hCUe3BEC/vLOe3K4sGPSgyNzkGr9tJMBymoTVwysxYOFqcDsOc3CRK69oGPMgwLyWWBeNTOLMgBX8ozNr91Ww6XDug7+KkGBcXTMtgenYijW1B6tv8xLidzMhOZEZOJMw40NC7tZZ1B2p4dP1hXt1VMSyzy6THe/j42eOZnZsUOQd0fGa59iD1LQHWFFZ16+uMDGCK/B3jdkYGg6REZnU9WtdKSV0bzb4glkgxnBO3axA5DzE5M4FZ45IoSI1kIsI2MpjDF3j3u8oXiMwgeKCqudcZXR0mUnwtxh0ZDDQjO5HPXTCpI/x7tLaVxzceYeXeKvaWN/a6v2kMzMhOZOGEVGbmJJIU4yYp1oUhMjtfoy/y+W2N7tc0RAeRVDS2s7e8sWM74XIYrl+QyxcumNxRJCEQCvPFv25i1b7BDyi+aHom/37RZKZmJfDyrnJeeufYgIpnHJcc6+YjC/P5xDkFTM3qeVaWsvo2Hnn7MI9vOHLKFaFJj/eMyIBgt9MwKSOeqqb2UX/McR4nZ09K46zxqSwYn8KkjHg2FdexYm8l75TUR2ZaTYgMrMpJjmFccgypcR7ivS5iPU6O1ray4VAtmw/XUdXUTnM0ZJ6R4CU3JYasRC8uhwOnw9DqD1JU1UxJXVuPxzAJXhfXzMvhU+dOYG5uMvcu3899rxf12va8lFjm5iUxJzeZQCjMOyUN7CprJCnWxaycJKZmJeByGNqD4ei+j8HjdOJymsh+QDhMqz8UnZWonXCYjvPIYWtp9AVp8kWK1tQ0Rx7bzJwkzhyfwpTMBBp9gY6ilrUtkZ9g2JLgdZEU48bjcuAwBoeB8kYfxTUtlNa1dXzu/9+H5ijE/P72ngkx3wV8Hfi6tfbuHq7/DfAl4HZr7e/7WE5vKeWZCxcujFOI+f3p0w+up3CEq6rI6SU51s1NiwtoD4Zo8gVZV1Q9IiNRR0p2kpfLZ2UzJSuBvJRYspK8BEMWfyhyoNHYFqC+LUAwbEmKcZEc68bpMARCYfxBS4zbQXKsu6PSSjhsuxyIOYwhxu3oOBgJR6daPv77+E/YgsUSDkcOkCyRA6sYtwOvy9llpFyrPxLOa/MHafNHOmGOV9xLjY+e9HYYDOAPRUYatkcPnnzRkclAxzSF8V4X8R4n1tLRSXt8uhSHMbidDlxOE33cFn8wjLW2o1Oo8wj9YPj4+iKdToHoTh9EqqC6HIZYt5MYT6SywvHN6ImbU2Miz93x352nj7Y28hyHos91MBQmGLa0tocob/RxrCHS4VzTHJkKc8OhWoID7CiN8zqZl5fM/PwUspK81Lb4qW72s6u0gd3HGt9Xnf7GRCpEjUuOxe00bDhUy9rC6rFulsiwSYmLHCBWvoe2WSIipzOv28GiCWksGJ/CgvwUkmPdlNS3UlrXxrKd5ewu6zrY9nhnokR8aEEuF03P7OgAXbbzGEu3ldE2DMGdOblJzMlLJjc5hkAozF/WFdPafnLLdRi4aXEBH1s8viPg/+L2Moqrx2Y2klPZpIx45uQmsflIHcfqT6/gi5y6xqXE8OEz80iKdXPXK/vG5Pt2Tm4Su8pUaOH9IM7r5CML87l+fi5vFFV3VOMXkUho4IJpGWw4VNtr5U+HgTl5yczKSWRGThL7KppYtuNYR7VJERGR/mQkevjwmflsOFTb54y649PjuGJ2NlfOyelWeR3eDY+3ByOhr5feKeefO46dEmF/OXmxHicXTsvgAzMjMyRaG3nNj/MHwxTXtHCwqoVtR+vUxzMIF0zLwGkMawurRnSgXF/m5iVz41n5bD1ax9KtJ1dgYKgDSjubNS4y4GzhhFRcDsOO0gZ2lDawqbjulJzFXEZXdnIMFad5v8HXr5zBjWflj3UzZOy8Z0LMfwS+CHzRWvtAD9f/GPg28G1r7U/7WI5CzCIiIiIiIiIiIiIiIiIiIiIiIiIiImNr0CHmnuebf4+w1p7V0+XRcPPCUW6OiIiIiIiIiIiIiIiIiIiIiIiIiIiIDIBjjNbbEP2d3Mv1xy/vfa4PEREREREREREREREREREREREREREReU8aqxDzvujv6b1cPy36e/8otEVERERERERERERERERERERERERERERG0ViFmFdGf19hjOnSBmNMInA+0Aq8PdoNExERERERERERERERERERERERERERkZE1JiFma+0B4FVgIvClE67+IRAPPGKtbRnlpomIiIiIiIiIiIiIiIiIiIiIiIiIiMgIM9basVmxMVOAdUAWsBTYA5wDXArsB5ZYa2uGuOxHAay1nxye1r43GWM2A1hrzxrrtoiIiIwUbe9EROR0p22diIi8H2h7JyIipztt60RE5P1A2zsRETndaVs3/FxjtWJr7QFjzCLgDuAq4BrgGPAr4IfW2rqTWPb7OrwsIiIiIiIiIiIiIiIiIiIiIiIiIiJyKhuzEDOAtfYocOtYtkFERERERERERERERERERERERERERERGl2OsGyAiIiIiIiIiIiIiIiIiIiIiIiIiIiLvLwoxi4iIiIiIiIiIiIiIiIiIiIiIiIiIyKhSiFlERERERERERERERERERERERERERERGlULMIiIiIiIiIiIiIiIiIiIiIiIiIiIiMqqMtXas2yAiIiIiIiIiIiIiIiIiIiIiIiIiIiLvI6rELCIiIiIiIiIiIiIiIiIiIiIiIiIiIqNKIWYREREREREREREREREREREREREREREZVQoxi4iIiIiIiIiIiIiIiIiIiIiIiIiIyKhSiFlERERERERERERERERERERERERERERGlULMIiIiIiIiIiIiIiIiIiIiIiIiIiIiMqoUYhYREREREREREREREREREREREREREZFRpRCziIiIiIiIiIiIiIiIiIiIiIiIiIiIjCqFmEVERERERERERERERERERERERERERGRUKcQsIiIiIiIiIiIiIiIiIiIiIiIiIiIio0ohZhERERERERERERERERERERERERERERlVCjGLiIiIiIiIiIiIiIiIiIiIiIiIiIjIqFKIWUREREREREREREREREREREREREREREaVQswiIiIiIiIiIiIiIiIiIiIiIiIiIiIyqhRiFhERERERERERERERERERERERERERkVGlELOIiIiIiIiIiIiIiIiIiIiIiIiIiIiMKoWYRUREREREREREREREREREREREREREZFQpxCwiIiIiIiIiIiIiIiIiIiIiIiIiIiKjSiFmERERERERERERERERERERERERERERGVUKMYuIiIiIiIiIiIiIiIiIiIiIiIiIiMioUohZRERERERERERERERERERERERERERERpVCzCIiIiIiIiIiIiIiIiIiIiIiIiIiIjKqFGIWERERERERERERGSXGmB8YY6wx5qGxbstoMsY8FH3cPxjrtrxfGWMSjTH3GGMOGGP80dejeKzbNVL0nhMRERERERERETn1KcQsIiIiIiIiIiLyPtcp7Nf5J2CMqTHGFBljnjfGfNsYM6mf5Uw8YRnX93HbqZ1uN3EAbdzW6fbnD/BxxRljvmKMWWmMqYoGN6uNMTuNMc8ZY/7LGDOnh/t9tofno7ef5wfSltOVMSYlGsz+wVi35VRmjLkh+jxdMobNeBb4GjAZaAMqgKoxbI+IiIiIiIiIiIi8z7nGugEiIiIiIiIiIiJyyggAtdG/DZAEpAFTgA8BPzLGPA3cbq2tHsDy7jDGvGittSfTKGPMfGB+p4s+A7zZz32mAi8TaftxLYAHmBP9uQHYDizoY1EV/TSvrp/rT3cpwPejf/+gj9sdA/YBA3nfnI5uAG6J/r1qtFceDetfTuQzfpG19u3RboOIiIiIiIiIiIjIiVSJWURERERERERERI5bZ63Nif5kW2tjgVTgauAJwAIfBbYZY/IHsLz5wE3D0K7j4c8HgTBwkzEmprcbG2NcwPNEAszlwH8AadbaBGttEpAOXA/8lUhF2l51ej56+7n15B/e6c9a+y1r7Uxr7W/Gui3vU8crjr+jALOIiIiIiIiIiIicKhRiFhERERERERERkV5Za+uttS9baz8GXAv4gDzg6X7uuiz6+4fGGOdQ1x8NJH8y+u/PgdVEqv9+qI+7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s2YpxCwiIiIiIiIiIiIiIiIiIiIiIiIiInLE9TnE3P0YGUdOTfQ6tYvbW6d3PdaHiIiIiIiIiIiIiIiIiIiIiIiIiIiIHJMGK8S8KXo9rovbx0avNw9AW0RERERERERERERERERERERERERERGQADVaI+bXo9dnGmA5tMMYkAwuARuCdgW6YiIiIiIiIiIiIiIiIiIiIiIiIiIiIHFmDEmK21m4DXgRGALcedPMPgETgb9bahgFumoiIiIiIiIiIiIiIiIiIiIiIiIiIiBxhnkFc9y3AMuD3xpgzgA3AScBiYDPwnUFsm4iIiIiIiIiIiIiIiIiIiIiIiIiIiBwhxlo7eCs3ZijwQ+AcIBPYCzwO/MBaW3UYy30YwFp7bX+081hljPkAwFo7e7DbIiIicqTo+05ERI53+q4TEZETgb7vRETkeKfvOhERORHo+05ERI53+q7rf4NZiRlr7W7gpiOw3BM6vCwiIiIiIiIiIiIiIiIiIiIiIiIiInI0cw12A0REREREREREREREREREREREREREROTEohCziIiIiIiIiIiIiIiIiIiIiIiIiIiIDCiFmEVERERERERERERERERERERERERERGRAKcQsIiIiIiIiIiIiIiIiIiIiIiIiIiIiA0ohZhERERERERERERERERERERERERERERlQxlo72G0QERERERERERERERERERERERERERGRE4gqMYuIiIiIiIiIiIiIiIiIiIiIiIiIiMiAUohZREREREREREREREREREREREREREREBpRCzCIiIiIiIiIiIiIiIiIiIiIiIiIiIjKgFGIWERERERERERERERERERERERERERGRAaUQs4iIiIiIiIiIiIiIiIiIiIiIiIiIiAwohZhFRERERERERERERERERERERERERERkQCnELCIiIiIiIiIiIiIiIiIiIiIiIiIiIgNKIWYREREREREREREREREREREREREREREZUAoxi4iIiIiIiIiIiIiIiIiIiIiIiIiIyIBSiFlEREREREREREREREREREREREREREQGlELMIiIiIiIiIiIiIiIiIiIiIiIiIiIiMqAUYhYREREREREREREREREREREREREREZEBpRCziIiIiIiIiIiIiIiIiIiIiIiIiIiIDCiFmEVERERERERERERERERERERERERERGRAKcQsIiIiIiIiIiIiIiIiIiIiIiIiIiIiA0ohZhERERERERERERERERERERERERERERlQCjGLiIiIiIiIiIiIiIiIiIiIiIiIiIjIgFKIWURERERERERERERERERERERERERERAaUQswiIiIiIiIiIiIiIiIiIiIiIiIiIiIyoBRiFhERERERERERERERERERERERERERkQGlELOIiIiIiIiIiIiIdMkYs8QYY40xNw52WwaSMWZH9HEvGuy2nKiMMWONMY8aY/YZY8LR5+OBwW7XkaLXnIiIiIiIiIiInGgUYhYRERERERERETmCjDEJxpjPG2P+Y4zZZYxpNMY0GGOKjDH/MsZcZ4zxx7hfa5jt+71YR5fztgugPhDjtgeitx18qTXGrDTG/NIYU3gIj3lEu2UtOpx5jTGfMMb8yRjzrjGm2BjTbIypN8asM8b83hgztptld/nY280zNvq82Oh2HBWdbowxp0W3wdvGmEpjTNAYU2qMeckYc6MxJubx1YMeU28uw7vbRtK/jDEzjDHfP9FC2X1ljPlKdDuNGKT1ZwBLgauAHKAK2A/UDEZ7REREREREREREpP95BrsBIiIiIiIiIiIixytjzIXA3cCQdpMbgAgwInq5DPiFMeZ6a+2rA93GqCBQGf3bANnA9OjlZmPMhdbaNwepbXcDcdG/IzgBxlRgUvTyGWPMTdbav/d1wcaYicArQB6wFTjDWrsrevO3gR+3mz0M1ONsmzOjl08aYy6w1tYetOgwTtiyO+mALzpfSV/bLodlBnA78DrwQDfzbQOagcYBaNPR6CvAcGAJsGMQ1n81kAtsBhZZa/cOQhtERERERERERETkCFIlZhERERERERERkSMgWuX1CZwA8ybgeiDLWptkrU0B0oDLcQKC+cBpg9NSAJZZa4dEL7lAEvAJoBqnnf+MVS16gNwFXIMT+I6z1mbghJoXAu9E/77fGDOmLws1xkzDCbHmARuA09sFmAG8OMHu3wKnAPHW2jQgE/gBTlB5IXDPwcu21u5utz07XYChQGvw+WFrbagvbZeBYa09w1o7wVq7fLDbcoKaHL3+jwLMIiIiIiIiIiIixyeFmEVERERERERERPqZMWY68Gec42/PAjOttQ9Zayta57HW1lhr/22tXQx8HKgbnNZ2Zq1ttNb+DfhSdNIQ4OJBasuXrbV/t9bubA37WmtD0crQ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BJwCtALLRjswERERERERERERERERERERERERERERGVlZSWJ2zm0EHgHmAV/o8fS1QAFws3MuOsqhiYiIiIiIiIiIiIiIiIiIiIiIiIiIyAgz51x2Vmw2H1gKTAXuBd4CTgDeAawDTnbO1Q5x2bcCOOcuG55oxyYzWwHgnDs227GIiIiMFH3fiYjIeKfvOhERmQj0fSciIuOdvutERGQi0PediIiMd/quG36hbK3YObfRzI4DvgecC7wH2A1cB1zrnKvfj2VP6ORlERERERERERERERERERERERERERGRA1nWkpgBnHPbgSuyGYOIiIiIiIiIiIiIiIiIiIiIiIiIiIiMrkC2AxAREREREREREREREREREREREREREZGJRUnMIiIiIiIiIiIiIiIiIiIiIiIiIiIiMqqUxCwiIiIiIiIiIiIiIiIiIiIiIiIiIiKjSknMIiIiIiIiIiIiIiIiIiIiIiIiIiIiMqrMOZftGERERERERERERERERERERERERERERGQCUSVmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFRpSRmERERERERERERERERERERERERERERGVVKYhYREREREREREREREREREREREREREZFR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JSPPtIoCplUUDHc1RERERqTIMJXbkY6g9+1N3efv2gd1ERERERERERERERERERERERERERERkX1ouIKYXwuns7MsnxVOl++DuoiIiIiIiIiIiIiIiIiIiIiIiIiIiMg+NFxBzA+H0zebWbc6mFkRcALQBDy1rysmIiIiIiIiIiIiIiIiIiIiIiIiIiIie9ewBDG7+yrgb8BU4Moei68FCoDb3L1xH1dNRERERERERERERERERERERERERERE9rLYMJb9UeAJ4IdmdjqwFDgWOA1YDnxhGOsmIiIiIiIiIiIiIiIiIiIiIiIiIiIie4m5+/AVbjYJ+CpwJjAK2ALcBVzr7jV7sN9fA7j7e4aingcqM3sOwN2PHu66iIiI7C1q70RE5GCntk5EREYCtXciInKwU1snIiIjgdo7ERE52KmtG3rDmYkZd98AXLIX9juig5dFRERERERERERERERERERERERERET2Z5HhroCIiIiIiIiIiIiIiIiIiIiIiIiIiIiMLApiFhERERERERERERERERERERERERERkX1KQcwiIiIiIiIiIiIiIiIiIiIiIiIiIiKyTymIWURERERERERERERERERERERERERERPYpBTGLiIiIiIiIiIiIiIiIiIiIiIiIiIjIPmXuPtx1EBERERERERERERERERERERERERERkRFEmZhFRERERERERERERERERERERERERERkn1IQs4iIiIiIiIiIiIiIiIiIiIiIiIiIiOxTCmIWERERERERERERERERERERERERERGRfUpBzCIiIiIiIiIiIiIiIiIiIiIiIiIiIrJPKYhZRERERERERERERERERERERERERERE9ikFMYuIiIiIiIiIiIiIiIiIiIiIiIiIiMg+pSBmERERERERERERERERERERERERERER2acUxDxMzOxbZvagmW0ws2YzqzazF8zsK2Y2ahD7WWtmnuVvax/bvcHM/hqW22xmL5vZJ80smmX9YjO72sxeNLNdZlZrZq+Y2dfMrHJ3joGIiBz8hqu9M7O4mX3CzG4K265kuO5lAyjrA2b2tJk1hO3dI2Z29mCfu4iIjAwHUltnZieY2bfN7Bkz22FmrWa2xsxuNLOZu3sMRETk4HcgtXcZ9pFjZovD7TYOdDsRERlZDsS2zsxKzOyr4TW+BjOrC9u8n5lZfLDHQERE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LCIiMqxtnZndBFxMEEf5EyBTUO4j7v5IjzorRoXgriXZ9x4AZgInAkcCpUAjsBy4Dfihu1cPYD8PEwQeHwmcABQAuwjeiLcBt3UNRu7g7v9nZqcAXwAuIHhzrSR4Q/yw5zbu/oqZHQl8DngT8GGCN9oGgrsLvunumwZzAEREZEQY1vaOYMiNU3rMe0P416Fb57+7f8bMXiG4q+1DBBlNnge+4+7Zgr1ERGTkOtDauqnh9OjwL5NHgLUDqLOIiIwcB1p7JyIiMlgHXFvn7l81s8XAJwkucCeAVQSZKb/r7q0DqK+IiIwsB1R75+4PmNki4LPhdh8D2oHVBAFq33b3XQOor4iIjBzD2dZNC6cVwJf72PcjXR8oRiWgTMwiIiIiIiIiIiIiIiIiIiIiIiIiIiKyT0WGuwIiIiIiIiIiIiIiIiIiIiIiIiIiIiIysiiIWURERERERERERERERERERERERERERPYpBTGLiIiIiIiIiIiIiIiIiIiIiIiIiIjIPqUgZhEREREREREREREREREREREREREREdmnFMQsIiIiIiIiIiIiIiIiIiIiIiIiIiIi+5SCmEVERERERERERERERERERERERERERGSfUhCziIiIiIiIiIiIiIiIiIiIiIiIiIiI7FMKYhYREREREREREREREREREREREREREZF9SkHMIiIiIiIiIiIiIiIiIiIiIiIiIiIisk8piFlERERERERERERERERERERERERERET2KQUxi4iIiIiIiIiIiIiIiIiIiIiIiIiIHEDM7EIz+5GZ/dPM6szMzexXQ7TvU8P99fc3aU/KiQ1FZUVERERERERERER2h5lNBdYAt7j7xcNaGRERERERERERERGRA8cXgflAA7ARmDuE+14LXJtl2TzgfGCxu2/Yk0KUiVlEREREREREREQOOmb2JjP7npk9aGY7w4wQj/WzzQfN7Gdm9i8zawq3+a/dLP88M7vDzJaZWY2ZNZvZCjP7rZktzLLNI/1ktMjNst2hZnanmW03sxYze83MrjWzvCzr55jZlWb2tJlVmVmDmS01sx+a2ZQM659gZt82s2fMbIeZtZrZGjO70cxmZlh/6gAzdJzUzzF8b5d1L8uwfIGZXWNmj5vZFjNLmtmm8Bgf1de+s5Q3L3xOL3R5nhvM7AEzO9/MLMM21/TzHM/MsM3unJsJM/t/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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "image/png": { "width": 1432, "height": 423 }, "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "gM2KwV8gwMNj" }, "source": [ "## Contribution scores example" ] }, { "cell_type": "code", "metadata": { "id": "o4c2W_MjNBzp" }, "source": [ "# @title Compute contribution scores\n", "target_interval = kipoiseq.Interval('chr12', 54_223_589, 54_338_277) # @param\n", "\n", "sequence_one_hot = one_hot_encode(fasta_extractor.extract(target_interval.resize(SEQUENCE_LENGTH)))\n", "predictions = model.predict_on_batch(sequence_one_hot[np.newaxis])['human'][0]\n", "\n", "target_mask = np.zeros_like(predictions)\n", "for idx in [447, 448, 449]:\n", " target_mask[idx, 4828] = 1\n", " target_mask[idx, 5111] = 1\n", "# This will take some time since tf.function needs to get compiled.\n", "contribution_scores = model.contribution_input_grad(sequence_one_hot.astype(np.float32), target_mask).numpy()\n", "pooled_contribution_scores = tf.nn.avg_pool1d(np.abs(contribution_scores)[np.newaxis, :, np.newaxis], 128, 128, 'VALID')[0, :, 0].numpy()[1088:-1088]" ], "execution_count": 39, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 224 }, "id": "y-s0yQMOXO7x", "outputId": "a5cc620e-2680-4780-d546-845e9ca02740" }, "source": [ "tracks = {'CAGE predictions': predictions[:, 4828],\n", " 'Enformer gradient*input': np.minimum(pooled_contribution_scores, 0.03)}\n", "plot_tracks(tracks, target_interval);" ], "execution_count": 40, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "image/png": { "width": 1433, "height": 207 }, "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "iiDN_ScSv3sI" }, "source": [ "## Variant scoring example" ] }, { "cell_type": "code", "metadata": { "id": "hIaN9GKDVwLK" }, "source": [ "# @title Score the variant\n", "variant = kipoiseq.Variant('chr16', 57025062, 'C', 'T', id='rs11644125') # @param\n", "\n", "# Center the interval at the variant\n", "interval = kipoiseq.Interval(variant.chrom, variant.start, variant.start).resize(SEQUENCE_LENGTH)\n", "seq_extractor = kipoiseq.extractors.VariantSeqExtractor(reference_sequence=fasta_extractor)\n", "center = interval.center() - interval.start\n", "\n", "reference = seq_extractor.extract(interval, [], anchor=center)\n", "alternate = seq_extractor.extract(interval, [variant], anchor=center)\n", "\n", "# Make predictions for the refernece and alternate allele\n", "reference_prediction = model.predict_on_batch(one_hot_encode(reference)[np.newaxis])['human'][0]\n", "alternate_prediction = model.predict_on_batch(one_hot_encode(alternate)[np.newaxis])['human'][0]" ], "execution_count": 41, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 368 }, "id": "in1PyiWoXXjc", "outputId": "664617ba-97c1-4ed3-8d4d-e5e8879ce474" }, "source": [ "# @title Visualize some tracks\n", "variant_track = np.zeros_like(reference_prediction[:, 0], dtype=bool)\n", "variant_track[variant_track.shape[0] // 2] = True\n", "tracks = {'variant': variant_track,\n", " 'CAGE/neutrofils ref': reference_prediction[:, 4767],\n", " 'CAGE/neutrofils alt-ref': alternate_prediction[:, 4767] - reference_prediction[:, 4767],\n", " 'CHIP:H3K27ac:neutrophil ref': reference_prediction[:, 2280],\n", " 'CHIP:H3K27ac:neutrophil alt-ref': alternate_prediction[:, 2280] - reference_prediction[:, 2280],\n", " }\n", "\n", "plot_tracks(tracks, interval.resize(reference_prediction.shape[0] * 128), height=1)" ], "execution_count": 42, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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XajrCUxpc4XZjgHnOW1SAefpM0draixLfq4Z4/5aaAHnpQDOGnAWQoyVYF4+udJopruwPBupHA4gAW26oOQB++DUEunksBhQmm1N6zaIiIiIiIiIiIiIiIiIiGjmuWxhXqZLoDnCbNDjqiX5mS6DaM6JKSocZm0W6Mp8e6bLmREuWZCb6RJmlTxHerNxNPvMtoBzVvKzd4z7B2/PnoJaaJb56nVLMl0CEREREREREREREREREREREREREdGsN9sCzikjpbx4tNuTnZ3XTXE5REREREREREREREREREREREREREREc4Iu0wWk2GCH5qwx7h+83TMFtRAREREREREREREREREREREREREREdEEzbYOztXJz0vHuH9J8nPNeWzj9KFDh04D+LvzWAcREc0Bya7/Y84KQERENFPxNY6IiGYrvsYREdFsxdc4IiKajfj6RkREsxVf44g0sy3gvCX5+QNCCJ2UUh28QwjhBHAlgBCAvZPdgJSSwWYiIiIiIiIiIiIiIiIiIiIiIiIiIqI00WW6gFSSUtYDeAPAAgBffs/d3wdgB/AbKWVwiksjIiIiIiIiIiIiIiIiIiIiIiIiIiKicZhtHZwB4B8B7AZwnxDiWgCnALwPwCYANQDuzmBtREREREREREREREREREREREREREREdBazqoMzMNTF+RIAj0MLNv8LgEUA7gVwmZSyL3PVERERERERERERERERERERERERERER0dnMxg7OkFK2AvhcpusgIiIiIiIiIiIiIiIiIiIiIiIiIiKiiZl1HZyJiIiIiIiIiIiIiIiIiIiIiIiIiIho5hJSykzXQERERERERERERERERERERERERERERASAHZyJiIiIiIiIiIiIiIiIiIiIiIiIiIhoGmHAmYiIiIiIiIiIiIiIiIiIiIiIiIiIiKYNBpyJiIiIiIiIiIiIiIiIiIiIiIiIiIho2mDAmYiIiIiIiIiIiIiIiIiIiIiIiIiIiKYNBpyJiIiIiIiIiIiIiIiIiIiIiIiIiIho2mDAmYiIiIiIiIiIiIiIiIiIiIiIiIiIiKYNBpyJiIiIiIiIiIiIiIiIiIiIiIiIiIho2mDAmYiIiIiIiIiIiIiIiIiIiIiIiIiIiKYNBpyJiIiIiIiIiIiIiIiIiIiIiIiIiIho2mDAmYiIiIiIiIiIiIiIiIiIiIiIiIiIiKYN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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "image/png": { "width": 1436, "height": 351 }, "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "ZMCU9woQv6Ea" }, "source": [ "## Score variants in a VCF file" ] }, { "cell_type": "markdown", "metadata": { "id": "c1nJwFS-4P8g" }, "source": [ "### Report top 20 PCs" ] }, { "cell_type": "code", "metadata": { "id": "-vmj1MA3chRQ", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "0e004c93-a817-4e87-842d-1ea04a26b649" }, "source": [ "enformer_score_variants = EnformerScoreVariantsPCANormalized(model_path, transform_path, num_top_features=20)" ], "execution_count": 48, "outputs": [ { "output_type": "stream", "text": [ "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator RobustScaler from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n", "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator TruncatedSVD from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n", "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator RobustScaler from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n", "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator Pipeline from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n" ], "name": "stderr" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 275 }, "id": "1oGEYix3dRex", "outputId": "c7e89a9e-faa6-4f8d-f018-db6bfa303283" }, "source": [ "# Score the first 5 variants from ClinVar\n", "# Lower-dimensional scores (20 PCs)\n", "it = variant_centered_sequences(clinvar_vcf, sequence_length=SEQUENCE_LENGTH,\n", " gzipped=True, chr_prefix='chr')\n", "example_list = []\n", "for i, example in enumerate(it):\n", " if i >= 5:\n", " break\n", " variant_scores = enformer_score_variants.predict_on_batch(\n", " {k: v[tf.newaxis] for k,v in example['inputs'].items()})[0]\n", " variant_scores = {f'PC{i}': score for i, score in enumerate(variant_scores)}\n", " example_list.append({**example['metadata'],\n", " **variant_scores})\n", " if i % 2 == 0:\n", " print(f'Done {i}')\n", "df = pd.DataFrame(example_list)\n", "df" ], "execution_count": 49, "outputs": [ { "output_type": "stream", "text": [ "Done 0\n", "Done 2\n", "Done 4\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
chromposidrefaltPC0PC1PC2PC3PC4PC5PC6PC7PC8PC9PC10PC11PC12PC13PC14PC15PC16PC17PC18PC19
0chr19259521019397GA13.8653719.3793751.3224737.19801911.926774-4.407538-5.878580-10.701156-3.1405072.9940154.7169161.0986372.56938813.6937368.5645189.383035-2.159512-9.7332317.727090-0.669298
1chr1930188846933GA-61.468933-5.653942-2.7587316.2894821.8448453.4467126.0524540.6320462.5849151.1179511.942497-6.513691-4.948788-1.172066-2.9037000.4828352.8969451.7578833.686084-6.673547
2chr19302001043045GA-61.995975-10.007704-0.31264110.605079-5.349404-2.5557287.0084859.793589-14.2166704.4112010.295830-4.968991-10.770261-1.5124340.1863497.4614465.1531174.0414590.512155-2.865725
3chr1930203972363CT21.486368-9.2488863.6847679.6064240.5384475.2644961.418155-14.00532612.8986629.391730-5.201692-3.0912721.975370-5.240757-14.367105-7.8029420.13847912.087408-5.5597049.171222
4chr1930222998906GAACTCTTCTTCTG13.672197181.645172-302.586548184.414001146.373199284.204163-108.902489100.794731-205.568008302.769409203.416458111.947685-61.380695222.271515152.539993114.129166-26.604349-68.656372-36.59519638.175354
\n", "
" ], "text/plain": [ " chrom pos id ref ... PC16 PC17 PC18 PC19\n", "0 chr1 925952 1019397 G ... -2.159512 -9.733231 7.727090 -0.669298\n", "1 chr1 930188 846933 G ... 2.896945 1.757883 3.686084 -6.673547\n", "2 chr1 930200 1043045 G ... 5.153117 4.041459 0.512155 -2.865725\n", "3 chr1 930203 972363 C ... 0.138479 12.087408 -5.559704 9.171222\n", "4 chr1 930222 998906 GAACTC ... -26.604349 -68.656372 -36.595196 38.175354\n", "\n", "[5 rows x 25 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 49 } ] }, { "cell_type": "markdown", "metadata": { "id": "_G5cANX34SLw" }, "source": [ "### Report all 5,313 features (z-score normalized)" ] }, { "cell_type": "code", "metadata": { "id": "get8hogCySnt", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "efe3d5fd-faf5-4589-de79-b022a5c28ab2" }, "source": [ "enformer_score_variants_all = EnformerScoreVariantsNormalized(model_path, transform_path)" ], "execution_count": 50, "outputs": [ { "output_type": "stream", "text": [ "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator RobustScaler from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n", "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator TruncatedSVD from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n", "/usr/local/lib/python3.7/dist-packages/sklearn/base.py:318: UserWarning: Trying to unpickle estimator Pipeline from version 0.23.2 when using version 0.22.2.post1. This might lead to breaking code or invalid results. Use at your own risk.\n", " UserWarning)\n" ], "name": "stderr" } ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 339 }, "id": "Q48earqRyFa6", "outputId": "fb26f901-7d3e-4305-9fb8-141046e56210" }, "source": [ "# Score the first 5 variants from ClinVar\n", "# All Scores\n", "it = variant_centered_sequences(clinvar_vcf, sequence_length=SEQUENCE_LENGTH,\n", " gzipped=True, chr_prefix='chr')\n", "example_list = []\n", "for i, example in enumerate(it):\n", " if i >= 5:\n", " break\n", " variant_scores = enformer_score_variants_all.predict_on_batch(\n", " {k: v[tf.newaxis] for k,v in example['inputs'].items()})[0]\n", " variant_scores = {f'{i}_{name[:20]}': score for i, (name, score) in enumerate(zip(df_targets.description, variant_scores))}\n", " example_list.append({**example['metadata'],\n", " **variant_scores})\n", " if i % 2 == 0:\n", " print(f'Done {i}')\n", "df = pd.DataFrame(example_list)\n", "df" ], "execution_count": 51, "outputs": [ { "output_type": "stream", "text": [ "Done 0\n", "Done 2\n", "Done 4\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
chromposidrefaltDNASE:cerebellum malDNASE:frontal cortexDNASE:chorionDNASE:Ishikawa treatDNASE:GM03348DNASE:GM03348 genetiDNASE:AG08395DNASE:AG08396DNASE:AG20443DNASE:H54DNASE:GM10248DNASE:GM12878DNASE:GM12891DNASE:GM12892DNASE:GM18507DNASE:GM19238DNASE:GM19239DNASE:GM19240DNASE:H1-hESCDNASE:H7-hESCDNASE:H9DNASE:heart male aduDNASE:HEK293TDNASE:HeLa-S3 treateDNASE:HeLa-S3DNASE:hepatocyteDNASE:HepG2DNASE:HTR-8/SVneoDNASE:endothelial ceDNASE:CWRU1 maleDNASE:iPS-NIHi11 malDNASE:iPS-NIHi7 femaDNASE:K562 treated wDNASE:K562 G2 phaseDNASE:K562 G1 phase...CAGE:CD14+CD16- MonoCAGE:achilles tendonCAGE:cerebrospinal fCAGE:cruciate ligameCAGE:eye - vitreousCAGE:eye - muscle suCAGE:eye - muscle laCAGE:eye - muscle meCAGE:eye - muscle inCAGE:Fingernail (incCAGE:optic nerve,CAGE:Skin - palm,CAGE:tongue epidermiCAGE:Urethra,CAGE:CD14+ monocytesCAGE:Hep-2 cells treCAGE:Hep-2 cells mocCAGE:immature langerCAGE:migratory langeCAGE:CD34 cells diffCAGE:amygdala - adulCAGE:thalamus - adulCAGE:hippocampus - aCAGE:parietal lobe -CAGE:cerebellum - adCAGE:pineal gland -CAGE:spinal cord - aCAGE:Olfactory epithCAGE:gamma delta posCAGE:Mast cell, expaCAGE:adipose,CAGE:cerebellum, newCAGE:spinal cord, neCAGE:amygdala, newboCAGE:hippocampus, neCAGE:putamen, newborCAGE:thalamus, newboCAGE:thymic carcinomCAGE:Smooth muscle cCAGE:parietal cortex
0chr19259521019397GA-3.953313-2.132398-1.133056-0.018265-7.324341-5.928950-2.696301-2.234811-1.86962016.7434502.2185653.1672061.0841490.6713186.5131580.9711476.2551655.3521251.729454-3.3507821.896389-1.563089-2.26867711.64764414.272476-7.0743031.8507935.8039240.381484-0.443644-0.299062-0.139204-8.861604-8.072408-6.212577...-0.0464394.0835083.53541211.717014-5.2395471.0816442.2131740.853902-0.2162572.6548440.4027271.5676673.0493351.010953-0.800231157.583069172.6487730.5764505.0264370.4645982.1332331.6890522.3245421.849092-1.319847-25.1303442.45699711.093707-4.5292935.072914-6.317924-2.4829071.591787-5.3626590.643638-1.9360502.49982212.37270123.3656882.915666
1chr1930188846933GA-1.791559-15.679683-22.5335660.523771-3.826311-3.219894-2.668196-9.468966-3.158970-7.704255-3.150757-0.523286-11.126574-11.116987-3.674609-8.464477-11.757355-8.595486-0.5362930.227047-0.779173-15.7360040.879350-6.572251-4.200795-8.630462-0.465244-3.442806-0.311721-4.801476-5.145035-1.4158820.362791-1.997213-2.307346...-33.052082-2.994223-8.416894-5.190420-4.534584-5.453042-3.034095-7.163062-2.291493-8.985706-4.789318-4.794244-1.449592-1.989321-22.916094-35.752350-35.275730-13.375345-28.358622-31.596754-11.371334-9.254264-9.006978-9.230368-3.783889-0.283448-12.094806-59.170837-66.303123-34.475914-21.272675-4.328580-16.075752-6.281566-10.389462-6.422119-9.181828-14.224935-46.487968-11.499000
2chr19302001043045GA-0.526763-14.688834-17.4846572.9084072.7344653.5148520.294236-4.1540231.062205-7.452735-2.387097-0.988034-7.148329-7.479169-3.070057-9.537191-12.243765-10.3402260.0701860.338647-0.706960-13.1035793.004640-8.224607-7.412826-9.0116020.814177-2.5729330.154302-4.661432-3.152854-1.105172-2.336678-4.403462-4.830977...-26.200890-4.082983-11.688838-5.358507-5.728800-6.592316-5.169149-8.596480-3.361437-6.800953-4.874091-4.676669-2.054912-2.659639-19.059345-86.237938-90.280151-13.633442-32.443680-19.412699-7.266642-7.957299-6.725488-6.803071-6.8142431.440345-8.739142-70.331505-39.735146-31.107134-18.125492-3.016214-8.161813-12.665734-9.362435-5.167178-3.976753-12.334543-38.066742-8.078856
3chr1930203972363CT3.887291-0.802319-1.6690344.7477841.6953622.217486-0.282765-1.1392450.368520-3.7727243.4667541.0967012.5362085.1082551.8744673.9651431.2323453.8187130.6514702.5541930.9911041.6391035.514153-6.208551-13.4871926.3623800.164872-4.553425-0.160736-1.997855-2.6540270.4160747.2202304.0691942.957357...33.843147-0.5835080.264617-3.2045255.3821811.2913550.9970212.093935-0.2948964.008999-0.024318-0.550827-1.0017160.56955127.447952-22.858391-32.01533512.03213715.75517319.4059222.7999393.4061321.6444712.383641-1.27134135.166897-0.529095-15.44646042.71219322.990261-2.0071911.7183041.9811855.2099386.3879443.1603040.638121-0.786704-4.4022743.053887
4chr1930222998906GAACTCTTCTTCTG-6.190521-137.37828134.811737-1.299490-44.415581-15.935372-6.835675-44.71888412.75432071.546776-100.758392-128.016174-168.724716-330.777496-142.454132-350.230988-131.790482-207.531921-7.376725-45.294678-16.531658-183.51275610.86450118.7457249.17324015.41890913.58253424.021170-13.05518741.81113157.70719146.170353-125.677353-66.172997-53.709393...45.9922331.093487-150.80218516.49926624.087925-66.276947-92.977158-139.676208-51.160301-36.617786-4.9938645.801898-10.315315-5.569825353.592102544.979797542.14447044.670349-91.620117-66.40824165.32021327.77533136.32123227.018156-37.838741-20.264828-15.695430-72.608513-119.713341-22.97867820.1473643.59601520.581316-82.51129210.58351099.16325487.44063628.39625526.42106127.204330
\n", "

5 rows × 3378 columns

\n", "
" ], "text/plain": [ " chrom pos ... CAGE:Smooth muscle c CAGE:parietal cortex\n", "0 chr1 925952 ... 23.365688 2.915666\n", "1 chr1 930188 ... -46.487968 -11.499000\n", "2 chr1 930200 ... -38.066742 -8.078856\n", "3 chr1 930203 ... -4.402274 3.053887\n", "4 chr1 930222 ... 26.421061 27.204330\n", "\n", "[5 rows x 3378 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 51 } ] } ] } ================================================ FILE: enformer/enformer.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tensorflow implementation of Enformer model. "Effective gene expression prediction from sequence by integrating long-range interactions" Žiga Avsec1, Vikram Agarwal2,4, Daniel Visentin1,4, Joseph R. Ledsam1,3, Agnieszka Grabska-Barwinska1, Kyle R. Taylor1, Yannis Assael1, John Jumper1, Pushmeet Kohli1, David R. Kelley2* 1 DeepMind, London, UK 2 Calico Life Sciences, South San Francisco, CA, USA 3 Google, Tokyo, Japan 4 These authors contributed equally. * correspondence: avsec@google.com, pushmeet@google.com, drk@calicolabs.com """ import inspect from typing import Any, Callable, Dict, Optional, Text, Union, Iterable import attention_module import numpy as np import sonnet as snt import tensorflow as tf SEQUENCE_LENGTH = 196_608 BIN_SIZE = 128 TARGET_LENGTH = 896 class Enformer(snt.Module): """Main model.""" def __init__(self, channels: int = 1536, num_transformer_layers: int = 11, num_heads: int = 8, pooling_type: str = 'attention', name: str = 'enformer'): """Enformer model. Args: channels: Number of convolutional filters and the overall 'width' of the model. num_transformer_layers: Number of transformer layers. num_heads: Number of attention heads. pooling_type: Which pooling function to use. Options: 'attention' or max'. name: Name of sonnet module. """ super().__init__(name=name) # pylint: disable=g-complex-comprehension,g-long-lambda,cell-var-from-loop heads_channels = {'human': 5313, 'mouse': 1643} dropout_rate = 0.4 assert channels % num_heads == 0, ('channels needs to be divisible ' f'by {num_heads}') whole_attention_kwargs = { 'attention_dropout_rate': 0.05, 'initializer': None, 'key_size': 64, 'num_heads': num_heads, 'num_relative_position_features': channels // num_heads, 'positional_dropout_rate': 0.01, 'relative_position_functions': [ 'positional_features_exponential', 'positional_features_central_mask', 'positional_features_gamma' ], 'relative_positions': True, 'scaling': True, 'value_size': channels // num_heads, 'zero_initialize': True } trunk_name_scope = tf.name_scope('trunk') trunk_name_scope.__enter__() # lambda is used in Sequential to construct the module under tf.name_scope. def conv_block(filters, width=1, w_init=None, name='conv_block', **kwargs): return Sequential(lambda: [ snt.distribute.CrossReplicaBatchNorm( create_scale=True, create_offset=True, scale_init=snt.initializers.Ones(), moving_mean=snt.ExponentialMovingAverage(0.9), moving_variance=snt.ExponentialMovingAverage(0.9)), gelu, snt.Conv1D(filters, width, w_init=w_init, **kwargs) ], name=name) stem = Sequential(lambda: [ snt.Conv1D(channels // 2, 15), Residual(conv_block(channels // 2, 1, name='pointwise_conv_block')), pooling_module(pooling_type, pool_size=2), ], name='stem') filter_list = exponential_linspace_int(start=channels // 2, end=channels, num=6, divisible_by=128) conv_tower = Sequential(lambda: [ Sequential(lambda: [ conv_block(num_filters, 5), Residual(conv_block(num_filters, 1, name='pointwise_conv_block')), pooling_module(pooling_type, pool_size=2), ], name=f'conv_tower_block_{i}') for i, num_filters in enumerate(filter_list)], name='conv_tower') # Transformer. def transformer_mlp(): return Sequential(lambda: [ snt.LayerNorm(axis=-1, create_scale=True, create_offset=True), snt.Linear(channels * 2), snt.Dropout(dropout_rate), tf.nn.relu, snt.Linear(channels), snt.Dropout(dropout_rate)], name='mlp') transformer = Sequential(lambda: [ Sequential(lambda: [ Residual(Sequential(lambda: [ snt.LayerNorm(axis=-1, create_scale=True, create_offset=True, scale_init=snt.initializers.Ones()), attention_module.MultiheadAttention(**whole_attention_kwargs, name=f'attention_{i}'), snt.Dropout(dropout_rate)], name='mha')), Residual(transformer_mlp())], name=f'transformer_block_{i}') for i in range(num_transformer_layers)], name='transformer') crop_final = TargetLengthCrop1D(TARGET_LENGTH, name='target_input') final_pointwise = Sequential(lambda: [ conv_block(channels * 2, 1), snt.Dropout(dropout_rate / 8), gelu], name='final_pointwise') self._trunk = Sequential([stem, conv_tower, transformer, crop_final, final_pointwise], name='trunk') trunk_name_scope.__exit__(None, None, None) with tf.name_scope('heads'): self._heads = { head: Sequential( lambda: [snt.Linear(num_channels), tf.nn.softplus], name=f'head_{head}') for head, num_channels in heads_channels.items() } # pylint: enable=g-complex-comprehension,g-long-lambda,cell-var-from-loop @property def trunk(self): return self._trunk @property def heads(self): return self._heads def __call__(self, inputs: tf.Tensor, is_training: bool) -> Dict[str, tf.Tensor]: trunk_embedding = self.trunk(inputs, is_training=is_training) return { head: head_module(trunk_embedding, is_training=is_training) for head, head_module in self.heads.items() } @tf.function(input_signature=[ tf.TensorSpec([None, SEQUENCE_LENGTH, 4], tf.float32)]) def predict_on_batch(self, x): """Method for SavedModel.""" return self(x, is_training=False) class TargetLengthCrop1D(snt.Module): """Crop sequence to match the desired target length.""" def __init__(self, target_length: Optional[int], name: str = 'target_length_crop'): super().__init__(name=name) self._target_length = target_length def __call__(self, inputs): if self._target_length is None: return inputs trim = (inputs.shape[-2] - self._target_length) // 2 if trim < 0: raise ValueError('inputs longer than target length') elif trim == 0: return inputs else: return inputs[..., trim:-trim, :] class Sequential(snt.Module): """snt.Sequential automatically passing is_training where it exists.""" def __init__(self, layers: Optional[Union[Callable[[], Iterable[snt.Module]], Iterable[Callable[..., Any]]]] = None, name: Optional[Text] = None): super().__init__(name=name) if layers is None: self._layers = [] else: # layers wrapped in a lambda function to have a common namespace. if hasattr(layers, '__call__'): layers = layers() self._layers = [layer for layer in layers if layer is not None] def __call__(self, inputs: tf.Tensor, is_training: bool, **kwargs): outputs = inputs for _, mod in enumerate(self._layers): if accepts_is_training(mod): outputs = mod(outputs, is_training=is_training, **kwargs) else: outputs = mod(outputs, **kwargs) return outputs def pooling_module(kind, pool_size): """Pooling module wrapper.""" if kind == 'attention': return SoftmaxPooling1D(pool_size=pool_size, per_channel=True, w_init_scale=2.0) elif kind == 'max': return tf.keras.layers.MaxPool1D(pool_size=pool_size, padding='same') else: raise ValueError(f'Invalid pooling kind: {kind}.') class SoftmaxPooling1D(snt.Module): """Pooling operation with optional weights.""" def __init__(self, pool_size: int = 2, per_channel: bool = False, w_init_scale: float = 0.0, name: str = 'softmax_pooling'): """Softmax pooling. Args: pool_size: Pooling size, same as in Max/AvgPooling. per_channel: If True, the logits/softmax weights will be computed for each channel separately. If False, same weights will be used across all channels. w_init_scale: When 0.0 is equivalent to avg pooling, and when ~2.0 and `per_channel=False` it's equivalent to max pooling. name: Module name. """ super().__init__(name=name) self._pool_size = pool_size self._per_channel = per_channel self._w_init_scale = w_init_scale self._logit_linear = None @snt.once def _initialize(self, num_features): self._logit_linear = snt.Linear( output_size=num_features if self._per_channel else 1, with_bias=False, # Softmax is agnostic to shifts. w_init=snt.initializers.Identity(self._w_init_scale)) def __call__(self, inputs): _, length, num_features = inputs.shape self._initialize(num_features) inputs = tf.reshape( inputs, (-1, length // self._pool_size, self._pool_size, num_features)) return tf.reduce_sum( inputs * tf.nn.softmax(self._logit_linear(inputs), axis=-2), axis=-2) class Residual(snt.Module): """Residual block.""" def __init__(self, module: snt.Module, name='residual'): super().__init__(name=name) self._module = module def __call__(self, inputs: tf.Tensor, is_training: bool, *args, **kwargs) -> tf.Tensor: return inputs + self._module(inputs, is_training, *args, **kwargs) def gelu(x: tf.Tensor) -> tf.Tensor: """Applies the Gaussian error linear unit (GELU) activation function. Using approximiation in section 2 of the original paper: https://arxiv.org/abs/1606.08415 Args: x: Input tensor to apply gelu activation. Returns: Tensor with gelu activation applied to it. """ return tf.nn.sigmoid(1.702 * x) * x def one_hot_encode(sequence: str, alphabet: str = 'ACGT', neutral_alphabet: str = 'N', neutral_value: Any = 0, dtype=np.float32) -> np.ndarray: """One-hot encode sequence.""" def to_uint8(string): return np.frombuffer(string.encode('ascii'), dtype=np.uint8) hash_table = np.zeros((np.iinfo(np.uint8).max, len(alphabet)), dtype=dtype) hash_table[to_uint8(alphabet)] = np.eye(len(alphabet), dtype=dtype) hash_table[to_uint8(neutral_alphabet)] = neutral_value hash_table = hash_table.astype(dtype) return hash_table[to_uint8(sequence)] def exponential_linspace_int(start, end, num, divisible_by=1): """Exponentially increasing values of integers.""" def _round(x): return int(np.round(x / divisible_by) * divisible_by) base = np.exp(np.log(end / start) / (num - 1)) return [_round(start * base**i) for i in range(num)] def accepts_is_training(module): return 'is_training' in list(inspect.signature(module.__call__).parameters) ================================================ FILE: enformer/enformer_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Test enformer model by applying random sequence as input. Test: $ python enformer_test.py """ import random import unittest import enformer import numpy as np class TestEnformer(unittest.TestCase): def test_enformer(self): model = enformer.Enformer(channels=1536, num_transformer_layers=11) inputs = _get_random_input() outputs = model(inputs, is_training=True) self.assertEqual(outputs['human'].shape, (1, enformer.TARGET_LENGTH, 5313)) self.assertEqual(outputs['mouse'].shape, (1, enformer.TARGET_LENGTH, 1643)) def _get_random_input(): seq = ''.join( [random.choice('ACGT') for _ in range(enformer.SEQUENCE_LENGTH)]) return np.expand_dims(enformer.one_hot_encode(seq), 0).astype(np.float32) if __name__ == '__main__': unittest.main() ================================================ FILE: enformer/requirements.txt ================================================ dm-sonnet==2.0.0 kipoiseq==0.5.2 numpy==1.19.5 pandas==1.2.3 tensorflow==2.5.0 tensorflow-hub==0.11.0 ================================================ FILE: ensemble_loss_landscape/README.md ================================================ # Accompanying code for Deep Ensemble: A Loss Landscape Perspective [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/ensemble_loss_landscape/cifar10_medium_cnn_experiments.ipynb) The Colab notebook `cifar10_medium_cnn_experiments.ipynb` illustrates the CIFAR-10 experiments in the paper: [Deep Ensembles: A Loss Landscape Perspective](https://arxiv.org/abs/1912.02757) by Stanislav Fort, Huiyi Hu and Balaji Lakshminarayanan These experiments investigate the effects of ensembling and variational Bayesian methods, please see the paper for more details. ================================================ FILE: ensemble_loss_landscape/cifar10_medium_cnn_experiments.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "WU--cjOphQKk" }, "outputs": [], "source": [ " # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved.\n", "\n", " # Licensed under the Apache License, Version 2.0 (the \"License\");\n", " # you may not use this file except in compliance with the License.\n", " # You may obtain a copy of the License at\n", "\n", " # http://www.apache.org/licenses/LICENSE-2.0\n", "\n", " # Unless required by applicable law or agreed to in writing, software\n", " # distributed under the License is distributed on an \"AS IS\" BASIS,\n", " # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", " # See the License for the specific language governing permissions and\n", " # limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "MGjUZ2Q55OWM" }, "source": [ "#Ensemble and Subspace Sampling Experiments on CIFAR10\n", "\n", " \u003c!-- Copyright 2020 Stanislav Fořt, Huiyi Hu, Balaji Lakshminarayanan\n", "\n", " Licensed under the Apache License, Version 2.0 (the \"License\");\n", " you may not use this file except in compliance with the License.\n", " You may obtain a copy of the License at\n", "\n", " http://www.apache.org/licenses/LICENSE-2.0\n", "\n", " Unless required by applicable law or agreed to in writing, software\n", " distributed under the License is distributed on an \"AS IS\" BASIS,\n", " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", " See the License for the specific language governing permissions and\n", " limitations under the License. --\u003e\n", "\n", "\n", "\n", "This notebook illustrates the CIFAR-10 experiments in the paper: \n", "\n", "[Deep Ensembles: A Loss Landscape Perspective](https://arxiv.org/abs/1912.02757) by Stanislav Fort, Huiyi Hu and Balaji Lakshminarayanan\n", "\n", "\n", "These experiments investigate the effects of ensembling and variational Bayesian methods, please see the paper for more details." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "U5sMeD_4pTe2" }, "source": [ "# Setting up" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "code", "colab": {}, "colab_type": "code", "id": "bUXPnWQIEKJh" }, "outputs": [], "source": [ "%tensorflow_version 1.x\n", "\n", "import numpy as np\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import tensorflow as tf\n", "from tensorflow.contrib import layers\n", "import tensorflow_datasets as tfds\n", "\n", "from scipy.special import softmax\n", "from matplotlib import patches as mpatch\n", "\n", "# Plot Style\n", "mpl.style.use('seaborn-colorblind')\n", "mpl.rcParams.update({\n", " 'font.size': 14,\n", " 'lines.linewidth': 2,\n", " 'figure.figsize': (6, 6 / 1.61)\n", "})\n", "mpl.rcParams['grid.color'] = 'k'\n", "mpl.rcParams['grid.linestyle'] = ':'\n", "mpl.rcParams['grid.linewidth'] = 0.5\n", "mpl.rcParams['lines.markersize'] = 6\n", "mpl.rcParams['lines.marker'] = None\n", "mpl.rcParams['axes.grid'] = True\n", "\n", "DEFAULT_FONTSIZE = 13\n", "mpl.rcParams.update({\n", " 'font.size': DEFAULT_FONTSIZE,\n", " 'lines.linewidth': 2,\n", " 'legend.fontsize': DEFAULT_FONTSIZE,\n", " 'axes.labelsize': DEFAULT_FONTSIZE,\n", " 'xtick.labelsize': DEFAULT_FONTSIZE,\n", " 'ytick.labelsize': DEFAULT_FONTSIZE,\n", " 'figure.figsize': (7, 7.0 / 1.4)\n", "})\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "8_a0OnCQrkFu" }, "source": [ "#Getting the datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "AlG96jyJr8cW" }, "outputs": [], "source": [ "def give_me_data():\n", " print(\"Reading CIFAR10\")\n", " cifar_data = {}\n", " N_val = 500\n", "\n", " # Construct a tf.data.Dataset\n", " ds_train, ds_test = tfds.load(\n", " name=\"cifar10\", split=[\"train\", \"test\"], batch_size=-1)\n", "\n", " numpy_train = tfds.as_numpy(ds_train)\n", " x_train_raw, y_train_raw = numpy_train[\"image\"], numpy_train[\"label\"]\n", "\n", " numpy_test = tfds.as_numpy(ds_test)\n", " x_test_raw, y_test_raw = numpy_test[\"image\"], numpy_test[\"label\"]\n", "\n", " N_train = x_train_raw.shape[0] - N_val\n", "\n", " X_train = x_train_raw[:N_train]\n", " y_train = y_train_raw[:N_train]\n", " X_val = x_train_raw[N_train:N_train + N_val]\n", " y_val = y_train_raw[N_train:N_train + N_val]\n", " X_test = x_test_raw\n", " y_test = y_test_raw\n", "\n", " Hn = 32\n", " Wn = 32\n", " Cn = 3\n", " cifar_data['Hn'] = Hn\n", " cifar_data['Wn'] = Wn\n", " cifar_data['Cn'] = Cn\n", " cifar_data['classes'] = 10\n", "\n", " cifar_data['X_train'] = X_train.reshape([-1, Hn, Wn, Cn])\n", " cifar_data['X_val'] = X_val.reshape([-1, Hn, Wn, Cn])\n", " cifar_data['X_test'] = X_test.reshape([-1, Hn, Wn, Cn])\n", "\n", " cifar_data['y_train'] = y_train.reshape([-1])\n", " cifar_data['y_val'] = y_val.reshape([-1])\n", " cifar_data['y_test'] = y_test.reshape([-1])\n", " return cifar_data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 35 }, "colab_type": "code", "executionInfo": { "elapsed": 16490, "status": "ok", "timestamp": 1596259193156, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 420 }, "id": "P9ius35wN76P", "outputId": "2f9f551f-b17c-4e0d-8442-b4749f18f33c" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reading CIFAR10\n" ] } ], "source": [ "cifar_ds = give_me_data()\n", "X_train = cifar_ds['X_train']\n", "y_train = cifar_ds['y_train']\n", "X_val = cifar_ds['X_val']\n", "y_val = cifar_ds['y_val']\n", "X_test = cifar_ds['X_test']\n", "y_test = cifar_ds['y_test']\n", "Hn = cifar_ds['Hn']\n", "Wn = cifar_ds['Wn']\n", "Cn = cifar_ds['Cn']\n", "classes = cifar_ds['classes']\n", "\n", "N_train = X_train.shape[0]\n", "N_val = X_val.shape[0]\n", "N_test = X_test.shape[0]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "DsEjVGc_pqAL" }, "source": [ "# Defining a CNN" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "fWU-qKjRvvKV" }, "outputs": [], "source": [ "# Builds a CNN network and returns various graph nodes for training and\n", "# evaluation.\n", "# In the 'eval' part of the graph, placeholders for network weights (Ws \u0026 bs)\n", "# are created to facilitate inferencing at given weights (e.g. from subspace\n", "# sampling).\n", "def multilayer_CNN(X_ph_in,\n", " y_ph_in,\n", " dropout_rate_ph_in=None,\n", " filter_sizes=(3, 3, 3, 3),\n", " pools=(2, 2, 2, 2),\n", " channels=(32, 64, 128, 256),\n", " classes=10):\n", " net_hooks = {\n", " 'weights': {},\n", " 'placeholder': {},\n", " 'train_hook': {},\n", " 'train_output': {},\n", " 'eval_output': {}\n", " }\n", " f_nonlin = tf.nn.relu\n", " with tf.variable_scope('train'):\n", " a = X_ph_in\n", " Ws = []\n", " bs = []\n", " for i in range(len(filter_sizes)):\n", " _, _, _, Cnow = a.get_shape().as_list()\n", " W = tf.get_variable(\n", " 'Wconv' + str(i),\n", " shape=[filter_sizes[i], filter_sizes[i], Cnow, channels[i]],\n", " initializer=layers.xavier_initializer(),\n", " trainable=True)\n", " b = tf.get_variable(\n", " 'bconv' + str(i),\n", " shape=[1, 1, channels[i]],\n", " initializer=layers.xavier_initializer(),\n", " trainable=True)\n", " Ws.append(W)\n", " bs.append(b)\n", "\n", " h = tf.nn.conv2d(a, W, strides=[1, 1, 1, 1], padding='SAME') + b\n", " h = tf.nn.dropout(h, rate=dropout_rate_ph_in)\n", " h = tf.nn.max_pool(\n", " h,\n", " ksize=[1, pools[i], pools[i], 1],\n", " strides=[1, pools[i], pools[i], 1],\n", " padding='SAME')\n", " if i \u003c len(filter_sizes) - 1:\n", " a = f_nonlin(h)\n", " else:\n", " a = h\n", " _, H_out, W_out, C_out = a.get_shape().as_list()\n", " _, height_final, width_final, channels_final = a.get_shape().as_list()\n", "\n", " # Final fully connected layer.\n", " W_final = tf.get_variable(\n", " 'Wfinal',\n", " shape=[height_final * width_final * channels_final, classes],\n", " initializer=layers.xavier_initializer(),\n", " trainable=True)\n", " b_final = tf.get_variable(\n", " 'bfinal',\n", " shape=[1, classes],\n", " initializer=layers.xavier_initializer(),\n", " trainable=True)\n", "\n", " Ws.append(W_final)\n", " bs.append(b_final)\n", " net_hooks['weights']['Ws'] = Ws\n", " net_hooks['weights']['bs'] = bs\n", "\n", " a = tf.matmul(\n", " tf.reshape(a, [-1, height_final * width_final * channels_final]),\n", " W_final) + b_final\n", " y = a\n", " net_hooks['train_output']['y'] = y\n", " y_ph_onehot = tf.one_hot(y_ph_in, classes, dtype=tf.int32)\n", "\n", " # Weights and biases for regularization.\n", " net_hooks['train_hook']['L2_reg_Ws'] = tf.reduce_sum(\n", " [tf.reduce_sum(W_now**2.0) for W_now in Ws])\n", " net_hooks['train_hook']['L2_reg_bs'] = tf.reduce_sum(\n", " [tf.reduce_sum(b_now**2.0) for b_now in bs])\n", "\n", " loss = tf.nn.softmax_cross_entropy_with_logits(labels=y_ph_onehot, logits=y)\n", " net_hooks['train_hook']['loss'] = tf.reduce_mean(loss)\n", " \n", " # Defining all weights and biases as placeholders so that inference can be\n", " # performed at given weight values.\n", " with tf.variable_scope('eval'):\n", " \n", " Ws_ph = []\n", " for W in Ws:\n", " W_ph_now = tf.placeholder(tf.float32, W.get_shape())\n", " Ws_ph.append(W_ph_now)\n", " bs_ph = []\n", " for b in bs:\n", " b_ph_now = tf.placeholder(tf.float32, b.get_shape())\n", " bs_ph.append(b_ph_now)\n", "\n", " a = X_ph_in\n", "\n", " for i in range(len(filter_sizes)):\n", " _, _, _, Cnow = a.get_shape().as_list()\n", "\n", " h = tf.nn.conv2d(\n", " a, Ws_ph[i], strides=[1, 1, 1, 1], padding='SAME') + bs_ph[i]\n", " h = tf.nn.dropout(h, rate=dropout_rate_ph_in)\n", "\n", " h = tf.nn.max_pool(\n", " h,\n", " ksize=[1, pools[i], pools[i], 1],\n", " strides=[1, pools[i], pools[i], 1],\n", " padding='SAME')\n", "\n", " if i \u003c len(filter_sizes) - 1:\n", " a = f_nonlin(h)\n", " else:\n", " a = h\n", " _, H_out, W_out, C_out = a.get_shape().as_list()\n", " _, height_final, width_final, channels_final = a.get_shape().as_list()\n", "\n", " last_layer = tf.reshape(a,\n", " [-1, height_final * width_final * channels_final])\n", " net_hooks['train_hook']['last_layer'] = last_layer\n", "\n", " a = tf.matmul(last_layer, Ws_ph[-1]) + bs_ph[-1]\n", " y_eval = a\n", " net_hooks['eval_output']['pred_eval'] = tf.nn.softmax(y_eval, axis=-1)\n", " y_ph_onehot = tf.one_hot(y_ph_in, classes, dtype=tf.int32)\n", " loss_eval = tf.nn.softmax_cross_entropy_with_logits(\n", " labels=y_ph_onehot, logits=y_eval)\n", " net_hooks['eval_output']['loss_eval'] = tf.reduce_mean(loss_eval)\n", " net_hooks['eval_output']['y_eval'] = y_eval\n", " net_hooks['placeholder']['Ws_ph'] = Ws_ph\n", " net_hooks['placeholder']['bs_ph'] = bs_ph\n", " return net_hooks" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "xebqAIwmq9ia" }, "source": [ "# Build model graph" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 35 }, "colab_type": "code", "executionInfo": { "elapsed": 971, "status": "ok", "timestamp": 1596259216214, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 420 }, "id": "-WWIxPS1q5B6", "outputId": "7098c352-b897-434b-fc79-1972dbf29243" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of free parameters=971146\n" ] } ], "source": [ "tf.reset_default_graph()\n", "\n", "X_ph = tf.placeholder(tf.float32, [None, Hn, Wn, Cn])\n", "y_ph = tf.placeholder(tf.int32, [None])\n", "lr_ph = tf.placeholder(tf.float32)\n", "dropout_rate_ph = tf.placeholder(tf.float32, [])\n", "L2_reg_constant_ph = tf.placeholder(tf.float32, [])\n", "\n", "architecture = 'CNN'\n", "\n", "if architecture == 'CNN':\n", " with tf.variable_scope('to_get_shape'):\n", " # Medium CNN\n", " filter_sizes = (3, 3, 3, 3)\n", " pools = (2, 2, 2, 2)\n", " channels = (64, 128, 256, 256)\n", "\n", " dummy_cnn_hooks = multilayer_CNN(\n", " X_ph,\n", " y_ph,\n", " dropout_rate_ph_in=dropout_rate_ph,\n", " filter_sizes=filter_sizes,\n", " pools=pools,\n", " channels=channels,\n", " classes=classes)\n", " # Number of parameters.\n", " params = dummy_cnn_hooks['weights']['Ws'] + dummy_cnn_hooks['weights']['bs']\n", " flat_params = tf.concat([tf.reshape(v, [-1]) for v in params], axis=0)\n", " number_of_params = flat_params.get_shape().as_list()[0]\n", " print('Number of free parameters=' + str(number_of_params))\n", "\n", " cnn_hooks = multilayer_CNN(\n", " X_ph,\n", " y_ph,\n", " dropout_rate_ph_in=dropout_rate_ph,\n", " filter_sizes=filter_sizes,\n", " pools=pools,\n", " channels=channels,\n", " classes=classes)\n", " y = cnn_hooks['train_output']['y']\n", " loss = cnn_hooks['train_hook']['loss']\n", " y_eval = cnn_hooks['eval_output']['y_eval']\n", " pred_eval = cnn_hooks['eval_output']['pred_eval']\n", " loss_eval = cnn_hooks['eval_output']['loss_eval']\n", " Ws_ph = cnn_hooks['placeholder']['Ws_ph']\n", " bs_ph = cnn_hooks['placeholder']['bs_ph']\n", " Ws = cnn_hooks['weights']['Ws']\n", " bs = cnn_hooks['weights']['bs']\n", " L2_reg_Ws = cnn_hooks['train_hook']['L2_reg_Ws']\n", " L2_reg_bs = cnn_hooks['train_hook']['L2_reg_bs']\n", "\n", "loss_to_be_optimized = loss + L2_reg_constant_ph * (L2_reg_Ws + L2_reg_bs)\n", "\n", "train_step = tf.train.AdamOptimizer(lr_ph).minimize(loss_to_be_optimized)\n", "\n", "correct_prediction = tf.equal(tf.cast(tf.argmax(y, 1), dtype=tf.int32), y_ph)\n", "accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", "\n", "correct_prediction_eval = tf.equal(\n", " tf.cast(tf.argmax(y_eval, 1), dtype=tf.int32), y_ph)\n", "accuracy_eval = tf.reduce_mean(tf.cast(correct_prediction_eval, tf.float32))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "8PHJJ59SuMAo" }, "source": [ "## Helper Functions" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "eL52WPi6uPDD" }, "outputs": [], "source": [ "# Helper functions to flatten weights to a vector, and reform a flattened vector\n", "# to weights.\n", "def flatten(Ws1, bs1):\n", " lists_now = []\n", " for W_now in Ws1:\n", " lists_now.append(W_now.reshape([-1]))\n", " for b_now in bs1:\n", " lists_now.append(b_now.reshape([-1]))\n", " return np.concatenate(lists_now, axis=0)\n", "\n", "\n", "def get_flat_name(Ws_tf, bs_tf):\n", " names = []\n", " for W in Ws_tf:\n", " names = names + [W.name] * np.prod(W.get_shape().as_list())\n", " for b in bs_tf:\n", " names = names + [b.name] * np.prod(b.get_shape().as_list())\n", " return names\n", "\n", "\n", "def reform(flat1):\n", " sofar = 0\n", " Ws_out_now = []\n", " bs_out_now = []\n", " for W in Ws:\n", " shape_now = W.get_shape().as_list()\n", " size_now = np.prod(shape_now)\n", " elements = flat1[sofar:sofar + size_now]\n", " sofar = sofar + size_now\n", " Ws_out_now.append(np.array(elements).reshape(shape_now))\n", " for b in bs:\n", " shape_now = b.get_shape().as_list()\n", " size_now = np.prod(shape_now)\n", " elements = flat1[sofar:sofar + size_now]\n", " sofar = sofar + size_now\n", " bs_out_now.append(np.array(elements).reshape(shape_now))\n", " return Ws_out_now, bs_out_now\n", "\n", "\n", "# Brier score for evaluating uncertainty performance.\n", "def brier_scores(labels, probs=None, logits=None):\n", " \"\"\"Compute elementwise Brier score.\n", "\n", " Args:\n", " labels: Tensor of integer labels shape [N1, N2, ...]\n", " probs: Tensor of categorical probabilities of shape [N1, N2, ..., M].\n", " logits: If `probs` is None, class probabilities are computed as a softmax\n", " over these logits, otherwise, this argument is ignored.\n", "\n", " Returns:\n", " Tensor of shape [N1, N2, ...] consisting of Brier score contribution from\n", " each element. The full-dataset Brier score is an average of these values.\n", " \"\"\"\n", " assert (probs is None) != (\n", " logits is None), \"Exactly one of probs and logits should be None.\"\n", " if probs is None:\n", " probs = softmax(logits, axis=-1)\n", " nlabels = probs.shape[-1]\n", " flat_probs = probs.reshape([-1, nlabels])\n", " flat_labels = labels.reshape([len(flat_probs)])\n", "\n", " plabel = flat_probs[np.arange(len(flat_labels)), flat_labels]\n", " out = np.square(flat_probs).sum(axis=-1) - 2 * plabel\n", " return out.reshape(labels.shape) + 1" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "W2OrJv2tvdLv" }, "source": [ "# The root training loop (Independent solutions)\n", "This section could be time-consuming depending on the size of 'points_to_collect' ." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "T6T6KJVWvNVP" }, "outputs": [], "source": [ "# Choosing a subset of the train data for faster eval.\n", "N_train_subset = N_val\n", "train_chosen_indices = np.random.choice(\n", " range(N_train), N_train_subset, replace=False)\n", "X_train_subset = X_train[train_chosen_indices]\n", "y_train_subset = y_train[train_chosen_indices]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Ls0ziO7ivQo4" }, "outputs": [], "source": [ "# Number of independent solutions to collect.\n", "points_to_collect = 5\n", "# Number of ensemble models to use.\n", "max_ens_size = 4\n", "# Number of full training trajectory to collect for analysis such as T-SNE.\n", "num_trajectory_record = 3\n", "# Collect checkpoints along trajectory for subspace sampling or SWA.\n", "collect_solution_after_epoch = 30\n", "\n", "# Training hyperparams for each of the runs.\n", "epochs = 40\n", "batch_size = 128\n", "dropout = 0.1\n", "L2_constant = 0.0\n", "\n", "learning_rate = 1.6e-3\n", "# Defining the LR schedule\n", "lr_halving_epoch = 10\n", "lr_halving_maxcount = 1000\n", "lr_halving_power = 2.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Fw6WhPz-slnf" }, "outputs": [], "source": [ "print(\"train_step\", train_step)\n", "\n", "Ws_many = []\n", "bs_many = []\n", "\n", "losses_many = []\n", "accs_many = []\n", "\n", "# Collecting last epochs from each trajectory.\n", "Ws_by_epochs_many = [[] for _ in range(points_to_collect)]\n", "bs_by_epochs_many = [[] for _ in range(points_to_collect)]\n", "\n", "# Collecting whole trajectory.\n", "Ws_trajectory = [[] for _ in range(num_trajectory_record)]\n", "bs_trajectory = [[] for _ in range(num_trajectory_record)]\n", "\n", "global_init_op = tf.global_variables_initializer()\n", "with tf.Session() as sess:\n", " for point_id in range(points_to_collect):\n", " print(\"Optimization \" + str(point_id) + \" with starting lr=\" +\n", " str(learning_rate) + \" dropout rate=\" + str(dropout) + \" batch=\" +\n", " str(batch_size) + \" L2const=\" + str(L2_constant))\n", " sess.run(global_init_op)\n", " for e in range(epochs):\n", " iterations = int(np.floor(float(N_train) / float(batch_size)))\n", "\n", " losses_train_list = []\n", " accs_train_list = []\n", "\n", " halvings_count_now = np.floor(float(e) / lr_halving_epoch)\n", " halvings_to_be_used = np.min([halvings_count_now, lr_halving_maxcount])\n", " learning_rate_now = learning_rate / (\n", " (lr_halving_power)**halvings_to_be_used)\n", "\n", " for it in range(iterations):\n", " indices = np.random.choice(range(N_train), batch_size)\n", " X_batch = X_train[indices]\n", " y_batch = y_train[indices]\n", "\n", " feed_dict = {\n", " X_ph: X_batch,\n", " y_ph: y_batch,\n", " lr_ph: learning_rate_now,\n", " dropout_rate_ph: dropout,\n", " L2_reg_constant_ph: L2_constant,\n", " }\n", "\n", " variables = [train_step, loss, accuracy]\n", "\n", " _, loss_out, acc_out = sess.run(variables, feed_dict=feed_dict)\n", "\n", " losses_train_list.append(loss_out)\n", " accs_train_list.append(acc_out)\n", "\n", " # Evaluating current epoch.\n", " feed_dict = {\n", " X_ph: X_val,\n", " y_ph: y_val,\n", " dropout_rate_ph: 0.0,\n", " L2_reg_constant_ph: 0.0,\n", " }\n", "\n", " loss_val_out, acc_val_out, Ws_opt_out_now, bs_opt_out_now = sess.run(\n", " [loss, accuracy, Ws, bs], feed_dict=feed_dict)\n", "\n", " feed_dict[X_ph] = X_train_subset\n", " feed_dict[y_ph] = y_train_subset\n", "\n", " loss_train_out, acc_train_out = sess.run([loss, accuracy],\n", " feed_dict=feed_dict)\n", "\n", " feed_dict[X_ph] = X_test\n", " feed_dict[y_ph] = y_test\n", "\n", " loss_test_out, acc_test_out = sess.run([loss, accuracy],\n", " feed_dict=feed_dict)\n", "\n", " print(\"e=\" + str(e) + \" train loss=\" + f\"{loss_train_out:.4f}\" +\n", " \" train acc=\" + f\"{acc_train_out:.4f}\" + \" val loss=\" +\n", " f\"{loss_val_out:.4f}\" + \" val acc=\" + f\"{acc_val_out:.4f}\" +\n", " \" test loss=\" + f\"{loss_test_out:.4f}\" + \" test acc=\" +\n", " f\"{acc_test_out:.4f}\")\n", " if e \u003e= collect_solution_after_epoch:\n", " Ws_by_epochs_many[point_id].append(Ws_opt_out_now)\n", " bs_by_epochs_many[point_id].append(bs_opt_out_now)\n", " if point_id \u003c num_trajectory_record:\n", " Ws_trajectory[point_id].append(Ws_opt_out_now)\n", " bs_trajectory[point_id].append(bs_opt_out_now)\n", "\n", " # Saving model weights of the last checkpoint.\n", " Ws_opt_out_now, bs_opt_out_now = sess.run([Ws, bs])\n", "\n", " Ws_many.append(Ws_opt_out_now)\n", " bs_many.append(bs_opt_out_now)\n", " losses_many.append(loss_val_out)\n", " accs_many.append(acc_val_out)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KapGgJupd9SZ" }, "source": [ "###Collecting Validation Predictions" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "8SJntXp5U2Ir" }, "outputs": [], "source": [ "trajectory_preds_test = np.zeros(\n", " (num_trajectory_record, epochs, N_val, classes))\n", "independent_preds_test = np.zeros((points_to_collect, N_val, classes))\n", "\n", "with tf.Session() as sess:\n", " for id_now in range(points_to_collect):\n", " for j, W in enumerate(Ws_many[id_now]):\n", " feed_dict[Ws_ph[j]] = W\n", " for j, b in enumerate(bs_many[id_now]):\n", " feed_dict[bs_ph[j]] = b\n", "\n", " feed_dict[dropout_rate_ph] = 0.0\n", "\n", " feed_dict[X_ph] = X_val\n", " feed_dict[y_ph] = y_val\n", " pred_eval_out = sess.run(pred_eval, feed_dict=feed_dict)\n", " independent_preds_test[id_now] = pred_eval_out\n", "\n", " for id_now in range(num_trajectory_record):\n", " for e in range(epochs):\n", " for j, W in enumerate(Ws_trajectory[id_now][e]):\n", " feed_dict[Ws_ph[j]] = W\n", " for j, b in enumerate(bs_trajectory[id_now][e]):\n", " feed_dict[bs_ph[j]] = b\n", " pred_eval_out = sess.run(pred_eval, feed_dict=feed_dict)\n", " trajectory_preds_test[id_now][e] = pred_eval_out" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "MSyiWg_W9b4F" }, "source": [ "#Cosine and Fraction of Disagreement" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "wVnTmgAD9l9Y" }, "outputs": [], "source": [ "def cos_between(v1, v2):\n", " \"\"\" Returns the angle in radians between vectors 'v1' and 'v2'\"\"\"\n", " v1_u = v1 / np.linalg.norm(v1)\n", " v2_u = v2 / np.linalg.norm(v2)\n", " return np.dot(v1_u, v2_u)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "FV_a7LZ6BROc" }, "source": [ "### Within Trajectory" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "HLjL_tcXGAZp" }, "outputs": [], "source": [ "trajectory_id = 0\n", "flat_p_list = []\n", "num_epochs = len(Ws_trajectory[trajectory_id])\n", "cos_matrix = np.zeros((num_epochs, num_epochs))\n", "\n", "for e in range(num_epochs):\n", " flat_p_list.append(\n", " flatten(Ws_trajectory[trajectory_id][e], bs_trajectory[trajectory_id][e]))\n", "for i in range(num_epochs):\n", " for j in range(i, num_epochs):\n", " cos_matrix[i][j] = cos_between(flat_p_list[i], flat_p_list[j])\n", " cos_matrix[j][i] = cos_matrix[i][j]\n", "\n", "plt.imshow(cos_matrix, interpolation=\"nearest\", cmap=\"bwr\", origin=\"lower\")\n", "plt.colorbar()\n", "plt.grid(\"off\")\n", "\n", "title = \"Cosine Along Train Trajectory\"\n", "plt.title(title)\n", "\n", "plt.xlabel(\"Checkpoint id\")\n", "plt.ylabel(\"Checkpoint id\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "gprmfsa2n8a_" }, "outputs": [], "source": [ "preds_now = trajectory_preds_test[trajectory_id]\n", "targets_now = y_val\n", "\n", "classes_predicted = np.argmax(preds_now, axis=-1)\n", "fractional_differences = np.mean(\n", " classes_predicted.reshape([1, epochs, len(targets_now)]) !=\n", " classes_predicted.reshape([epochs, 1, len(targets_now)]),\n", " axis=-1)\n", "\n", "plt.imshow(\n", " fractional_differences, interpolation=\"nearest\", cmap=\"bwr\", origin=\"lower\")\n", "plt.colorbar()\n", "plt.grid(\"off\")\n", "\n", "title = \"Disagreement Fraction Along Train Trajectory\"\n", "plt.title(title)\n", "\n", "plt.xlabel(\"Checkpoint id\")\n", "plt.ylabel(\"Checkpoint id\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-FEPT3_OBT-Y" }, "source": [ "###Between Independent Runs" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Wta3MB2tH4jB" }, "outputs": [], "source": [ "flat_p_list = []\n", "cos_matrix = np.zeros((points_to_collect, points_to_collect))\n", "for i in range(points_to_collect):\n", " flat_p_list.append(flatten(Ws_many[i], bs_many[i]))\n", "\n", "for i in range(points_to_collect):\n", " for j in range(i, points_to_collect):\n", " cos_matrix[i][j] = cos_between(flat_p_list[i], flat_p_list[j])\n", " cos_matrix[j][i] = cos_matrix[i][j]\n", "\n", "plt.imshow(cos_matrix, cmap=\"bwr\", origin=\"lower\")\n", "plt.colorbar()\n", "plt.grid(\"off\")\n", "\n", "title = \"Cosine Between Independent Solutions\"\n", "plt.title(title)\n", "\n", "plt.xlabel(\"Independent Solution\")\n", "plt.ylabel(\"Independent Solution\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Cglsoi44tCnL" }, "outputs": [], "source": [ "preds_now = independent_preds_test\n", "targets_now = y_val\n", "\n", "classes_predicted = np.argmax(preds_now, axis=-1)\n", "fractional_differences = np.mean(\n", " classes_predicted.reshape(\n", " [1, points_to_collect, len(targets_now)]) != classes_predicted.reshape(\n", " [points_to_collect, 1, len(targets_now)]),\n", " axis=-1)\n", "\n", "plt.imshow(\n", " fractional_differences, interpolation=\"nearest\", cmap=\"bwr\", origin=\"lower\")\n", "plt.colorbar()\n", "plt.grid(\"off\")\n", "\n", "title = \"Disagreement Fraction Btw Independent Solutions\"\n", "plt.title(title)\n", "\n", "plt.xlabel(\"Independent Solution\")\n", "plt.ylabel(\"Independent Solution\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "8hgROgxil29I" }, "source": [ "#T-SNE Visualization" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "W6aVhQ5Yl7A6" }, "outputs": [], "source": [ "from sklearn.manifold import TSNE\n", "\n", "reshaped_prediction = trajectory_preds_test.reshape([-1, N_val * classes])\n", "\n", "prediction_embed = TSNE(n_components=2).fit_transform(reshaped_prediction)\n", "traj_embed = prediction_embed.reshape([num_trajectory_record, epochs, 2])\n", "\n", "colors_list = [\"r\", \"b\", \"g\"]\n", "labels_list = [\"traj_{}\".format(i) for i in range(num_trajectory_record)]\n", "for i in range(num_trajectory_record):\n", " plt.plot(\n", " traj_embed[i, :, 0],\n", " traj_embed[i, :, 1],\n", " color=colors_list[i],\n", " alpha=0.8,\n", " linestyle=\"\",\n", " marker=\"o\",\n", " label=labels_list[i])\n", " plt.plot(\n", " traj_embed[i, :, 0],\n", " traj_embed[i, :, 1],\n", " color=colors_list[i],\n", " alpha=0.3,\n", " linestyle=\"-\",\n", " marker=\"\")\n", " plt.plot(\n", " traj_embed[i, 0, 0],\n", " traj_embed[i, 0, 1],\n", " color=colors_list[i],\n", " alpha=1.0,\n", " linestyle=\"\",\n", " marker=\"*\",\n", " markersize=20)\n", "plt.legend(loc=1)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ewL6qSnHlNEy" }, "source": [ "#Effects of Ensemble + Subspace Sampling" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "FN3eJMBc55hG" }, "source": [ "## Gaussian Sampling\n", "Sample from model weight space according to a Gaussian distribution formed by last epoch checkpoints along a training trajectory." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "d5TWmKrc53kK" }, "outputs": [], "source": [ "from sklearn.decomposition import PCA\n", "\n", "\n", "def get_gaussian_sample(var_mean, var_std, scale=1.0):\n", " var_sample = np.random.normal(var_mean, scale * var_std)\n", " return var_sample\n", "\n", "\n", "def get_pca_gaussian_flat_sampling(pca, means, rank, scale=1.0):\n", " standard_normals = np.random.normal(loc=0.0, scale=scale, size=(rank))\n", " shifts = pca.inverse_transform(standard_normals)\n", " return shifts + means\n", "\n", "\n", "def get_rand_norm_direction(shape):\n", " random_direction = np.random.normal(loc=0.0, scale=1.0, size=shape)\n", " random_direction_normed = random_direction / np.linalg.norm(random_direction)\n", " return random_direction_normed" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "mtGq9Qkj7iEG" }, "outputs": [], "source": [ "# PCA rank.\n", "rank = 5\n", "num_sample = 30\n", "\n", "dial_gaussian_whole_Ws = [[] for _ in range(points_to_collect)]\n", "dial_gaussian_whole_bs = [[] for _ in range(points_to_collect)]\n", "\n", "pca_gaussian_whole_Ws = [[] for _ in range(points_to_collect)]\n", "pca_gaussian_whole_bs = [[] for _ in range(points_to_collect)]\n", "\n", "for mid in range(points_to_collect):\n", " Ws_traj = Ws_by_epochs_many[mid]\n", " bs_traj = bs_by_epochs_many[mid]\n", "\n", " vs_list = []\n", " for i in range(len(Ws_traj)):\n", " vs_list.append(flatten(Ws_traj[i], bs_traj[i]))\n", "\n", " vs_np = np.stack(vs_list, axis=0)\n", "\n", " means = np.mean(vs_np, axis=0)\n", " stds = np.std(vs_np, axis=0)\n", " vs_np_centered = vs_np - means.reshape([1, -1])\n", "\n", " pca = PCA(n_components=rank)\n", " pca.fit(vs_np_centered)\n", " for i in range(num_sample):\n", " v_sample = get_gaussian_sample(means, stds, scale=1.0)\n", " w_sample, b_sample = reform(v_sample)\n", " dial_gaussian_whole_Ws[mid].append(w_sample)\n", " dial_gaussian_whole_bs[mid].append(b_sample)\n", "\n", " v_sample = get_pca_gaussian_flat_sampling(pca, means, rank, scale=1.0)\n", " w_sample, b_sample = reform(v_sample)\n", "\n", " pca_gaussian_whole_Ws[mid].append(w_sample)\n", " pca_gaussian_whole_bs[mid].append(b_sample)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "U_kvSzLKzBSW" }, "source": [ "## Random Sampling\n", "Randomly sample from model weight space around the final checkpoint." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "PGILtMX7zUHp" }, "outputs": [], "source": [ "# Random samples need to meet this accuracy threshold to be included.\n", "acc_threshold = 0.70\n", "\n", "rand_Ws = [[] for _ in range(points_to_collect)]\n", "rand_bs = [[] for _ in range(points_to_collect)]\n", "\n", "with tf.Session() as sess:\n", " feed_dict = {\n", " X_ph: X_val,\n", " y_ph: y_val,\n", " lr_ph: 0.0,\n", " dropout_rate_ph: 0.0,\n", " L2_reg_constant_ph: 0.0,\n", " }\n", " for mid in range(points_to_collect):\n", " for i in range(num_sample):\n", " vs = flatten(Ws_many[mid], bs_many[mid]) \n", " for trial in range(5):\n", " scale = 10*np.random.uniform() \n", " v_sample = vs + scale * get_rand_norm_direction(vs.shape)\n", " w_sample, b_sample = reform(v_sample)\n", "\n", " for j,W in enumerate(w_sample):\n", " feed_dict[Ws_ph[j]] = w_sample[j]\n", " for j,b in enumerate(b_sample):\n", " feed_dict[bs_ph[j]] = b_sample[j] \n", " \n", " val_acc = sess.run(accuracy_eval,feed_dict = feed_dict)\n", " if val_acc \u003e= acc_threshold:\n", " rand_Ws[mid].append(w_sample)\n", " rand_bs[mid].append(b_sample)\n", " print('Obtaining 1 rand sample at scale {} with validation acc {} at {}th try'.format(scale, val_acc,trial))\n", " break\n", " if trial ==4:\n", " print('No luck -------------------')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "NJ5_RCriP-p5" }, "outputs": [], "source": [ "# PCA low-rank approximation of the random samplings\n", "pca_gaussian_rand_Ws = [[] for _ in range(points_to_collect)]\n", "pca_gaussian_rand_bs = [[] for _ in range(points_to_collect)]\n", "\n", "for mid in range(points_to_collect):\n", " Ws_traj = rand_Ws[mid]\n", " bs_traj = rand_bs[mid]\n", "\n", " vs_list = []\n", " for i in range(len(Ws_traj)):\n", " vs_list.append(flatten(Ws_traj[i], bs_traj[i]))\n", "\n", " vs_np = np.stack(vs_list, axis=0)\n", "\n", " means = np.mean(vs_np, axis=0)\n", " stds = np.std(vs_np, axis=0)\n", " vs_np_centered = vs_np - means.reshape([1, -1])\n", "\n", " pca = PCA(n_components=rank)\n", " pca.fit(vs_np_centered)\n", " for i in range(num_sample):\n", " v_sample = get_pca_gaussian_flat_sampling(pca, means, rank, scale=1.0)\n", " w_sample, b_sample = reform(v_sample)\n", "\n", " pca_gaussian_rand_Ws[mid].append(w_sample)\n", " pca_gaussian_rand_bs[mid].append(b_sample)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "nEQ96SeTdnkZ" }, "source": [ "## Collecting predictions from Original and Subspace" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "gKnPAilsoSNB" }, "outputs": [], "source": [ "# Average a list of weights.\n", "def average_var(w_list):\n", " avg = [[] for _ in w_list[0]]\n", " for w_now in w_list:\n", " for i, w in enumerate(w_now):\n", " avg[i].append(w)\n", "\n", " for i, v in enumerate(avg):\n", " avg[i] = np.mean(np.stack(v, axis=0), axis=0)\n", "\n", " return avg\n", "\n", "\n", "# Given a list of model weights, feed_dict and a session, returns the model\n", "# predictions as a list.\n", "def get_pred_list(Ws_list, bs_list, feed_dict, sess):\n", " pred_list = []\n", " for id in range(len(Ws_list)):\n", " Ws_now = Ws_list[id]\n", " bs_now = bs_list[id]\n", " for j, W in enumerate(Ws):\n", " feed_dict[Ws_ph[j]] = Ws_now[j]\n", " for j, b in enumerate(bs):\n", " feed_dict[bs_ph[j]] = bs_now[j]\n", "\n", " pred_eval_out = sess.run(pred_eval, feed_dict=feed_dict)\n", " pred_list.append(pred_eval_out)\n", " return pred_list\n", "\n", "\n", "# Consider a list of subspaces, each has a list of sampled weights. This\n", "# function computes model predictions, ensembles the predictions within each\n", "# subspace, and returns the list of ensembled predictions.\n", "def get_subspace_pred_list(Ws_subspace_list, bs_subspace_list, feed_dict, sess):\n", " subspace_pred = []\n", " num_subspace = len(Ws_subspace_list)\n", " for mid in range(num_subspace):\n", " pred_list_now = get_pred_list(Ws_subspace_list[mid], bs_subspace_list[mid],\n", " feed_dict, sess)\n", " subspace_pred.append(np.mean(np.stack(pred_list_now, axis=0), axis=0))\n", " return subspace_pred" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "xeAuHy2xQ39g" }, "outputs": [], "source": [ "# Returns a list of all possible k-subset from [1, ..., n]\n", "# Don't scale well for large n. Use with caution.\n", "def choose_k_from_n(n, k):\n", " if k\u003en or k \u003c1 or n \u003c 1:\n", " return []\n", " if k == n :\n", " return [list(range(1, n+1))]\n", " if k == 1:\n", " return [[i] for i in range(1, n+1)]\n", " a = choose_k_from_n(n-1,k)\n", " b = choose_k_from_n(n-1, k-1)\n", " b_new = []\n", " for g in b:\n", " b_new.append(g+[n])\n", " return a+b_new\n", "\n", "\n", "def get_acc_brier(y, pred, is_logits=False):\n", " acc = np.mean(np.argmax(pred,axis=-1)==y)\n", " if is_logits:\n", " brier = brier_scores(y,logits=pred)\n", " else:\n", " brier = brier_scores(y,probs=pred)\n", " return acc, np.mean(brier)\n", "\n", "\n", "# Given a list of model predictions, compute the accuracy and brier score for \n", "# each individual model as well as the ensemble of them.\n", "def get_all_models_metrics(pred_list,y_test,max_ens_size=5, ens_size_list=None):\n", " acc_list = []\n", " acc_list_ensemble = []\n", " b_list = []\n", " b_list_ensemble = []\n", " num_models = len(pred_list)\n", " for i in range(num_models):\n", " acc,brier = get_acc_brier(y_test, pred_list[i])\n", " acc_list.append(acc)\n", " b_list.append(brier)\n", "\n", " max_ens_size = np.min([max_ens_size, num_models])\n", " if ens_size_list is None:\n", " ens_size_list = range(1, max_ens_size+1)\n", " for ens_size in ens_size_list:\n", " # Pick all possible subset with size of ens_size from available models.\n", " # Compute ensemble for each such subset.\n", " ens_index_list = choose_k_from_n(num_models,ens_size)\n", " ens_acc = []\n", " ens_brier=[]\n", " for ens_ind in ens_index_list:\n", " ens_pred_list = []\n", " for ind in ens_ind:\n", " ens_pred_list.append(pred_list[ind-1])\n", " ens_np = np.mean(np.stack(ens_pred_list,axis=0), axis=0)\n", " acc,brier = get_acc_brier(y_test, ens_np)\n", " ens_acc.append(acc)\n", " ens_brier.append(brier)\n", " acc_list_ensemble.append(np.mean(ens_acc))\n", " b_list_ensemble.append(np.mean(ens_brier))\n", " metrics = {'accuracy': {},\n", " 'brier':{},}\n", " metrics['accuracy']['individual'] = acc_list\n", " metrics['accuracy']['ensemble'] = acc_list_ensemble\n", " metrics['brier']['individual'] = b_list\n", " metrics['brier']['ensemble'] = b_list_ensemble\n", " return metrics\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "RR2UKvMcdpJm" }, "outputs": [], "source": [ "# Get predictions on test data.\n", "orig_pred = []\n", "wa_pred = []\n", "\n", "# Compute averaged weights.\n", "wa_Ws = [[] for _ in range(points_to_collect)]\n", "wa_bs = [[] for _ in range(points_to_collect)]\n", "for i in range(points_to_collect):\n", " wa_Ws[i] = average_var(Ws_by_epochs_many[i])\n", " wa_bs[i] = average_var(bs_by_epochs_many[i])\n", "\n", "with tf.Session() as sess:\n", " feed_dict[X_ph] = X_test\n", " feed_dict[y_ph] = y_test\n", " orig_pred = get_pred_list(Ws_many, bs_many, feed_dict, sess)\n", " wa_pred = get_pred_list(wa_Ws, wa_bs, feed_dict, sess)\n", " diag_gaus_pred = get_subspace_pred_list(dial_gaussian_whole_Ws,\n", " dial_gaussian_whole_bs, feed_dict,\n", " sess)\n", " pca_gaus_pred = get_subspace_pred_list(pca_gaussian_whole_Ws,\n", " pca_gaussian_whole_bs, feed_dict, sess)\n", " pca_rand_pred = get_subspace_pred_list(pca_gaussian_rand_Ws,\n", " pca_gaussian_rand_bs, feed_dict, sess)\n", " rand_pred = get_subspace_pred_list(rand_Ws, rand_bs, feed_dict, sess)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "sCSsNdA06lm1" }, "outputs": [], "source": [ "max_ens_size = points_to_collect - 1\n", "\n", "orig_metrics = get_all_models_metrics(\n", " orig_pred, y_test, max_ens_size=max_ens_size)\n", "wa_metrics = get_all_models_metrics(wa_pred, y_test, max_ens_size=max_ens_size)\n", "\n", "diag_metrics = get_all_models_metrics(\n", " diag_gaus_pred, y_test, max_ens_size=max_ens_size)\n", "pca_metrics = get_all_models_metrics(\n", " pca_gaus_pred, y_test, max_ens_size=max_ens_size)\n", "\n", "rand_metrics = get_all_models_metrics(\n", " rand_pred, y_test, max_ens_size=max_ens_size)\n", "pca_rand_metrics = get_all_models_metrics(\n", " pca_rand_pred, y_test, max_ens_size=max_ens_size)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "yQtoJGx817vV" }, "source": [ "##Plot Metrics for Ensembles + Subspace" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "utAi4c29CvgO" }, "outputs": [], "source": [ "title = \"Ensemble ACC test\"\n", "\n", "plt.xlabel(\"Ensemble size\")\n", "plt.ylabel(\"Test Acc\")\n", "\n", "ensemble_sizes = np.asarray(range(max_ens_size)) + 1\n", "plt.plot(\n", " ensemble_sizes,\n", " orig_metrics[\"accuracy\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"probs ensembling\",\n", " color=\"navy\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " [np.mean(orig_metrics[\"accuracy\"][\"individual\"])] * len(ensemble_sizes),\n", " label=\"original\",\n", " color=\"blue\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " [np.mean(diag_metrics[\"accuracy\"][\"individual\"])] * len(ensemble_sizes),\n", " label=\"Diag\",\n", " color=\"pink\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " [np.mean(pca_metrics[\"accuracy\"][\"individual\"])] * len(ensemble_sizes),\n", " label=\"PCA\",\n", " color=\"green\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " diag_metrics[\"accuracy\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"Diag+Ensemble\",\n", " color=\"red\")\n", "plt.plot(\n", " ensemble_sizes,\n", " wa_metrics[\"accuracy\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"WA+ensembling\",\n", " color=\"grey\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " pca_metrics[\"accuracy\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"PCA+Ensemble\",\n", " color=\"green\")\n", "plt.plot(\n", " ensemble_sizes,\n", " rand_metrics[\"accuracy\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"Rand+Ensemble\",\n", " color=\"yellow\")\n", "plt.plot(\n", " ensemble_sizes,\n", " pca_rand_metrics[\"accuracy\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"PCA Rand+Ensemble\",\n", " color=\"m\")\n", "\n", "plt.legend()\n", "plt.xlim(1, max_ens_size)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "8vLQoHba6eXt" }, "outputs": [], "source": [ "title = \"Ensemble Brier test\"\n", "\n", "plt.xlabel(\"Ensemble size\")\n", "plt.ylabel(\"Test Brier\")\n", "\n", "ensemble_sizes = np.asarray(range(max_ens_size)) + 1\n", "plt.plot(\n", " ensemble_sizes,\n", " orig_metrics[\"brier\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"probs ensembling\",\n", " color=\"navy\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " [np.mean(orig_metrics[\"brier\"][\"individual\"])] * len(ensemble_sizes),\n", " label=\"original\",\n", " color=\"blue\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " [np.mean(diag_metrics[\"brier\"][\"individual\"])] * len(ensemble_sizes),\n", " label=\"Diag\",\n", " color=\"pink\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " [np.mean(pca_metrics[\"brier\"][\"individual\"])] * len(ensemble_sizes),\n", " label=\"PCA\",\n", " color=\"green\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " diag_metrics[\"brier\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"Diag Ensemble\",\n", " color=\"red\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " pca_metrics[\"brier\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"PCA Ensemble\",\n", " color=\"green\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " wa_metrics[\"brier\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"WA ensembling\",\n", " color=\"grey\")\n", "\n", "plt.plot(\n", " ensemble_sizes,\n", " rand_metrics[\"brier\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"Rand Ensemble\",\n", " color=\"yellow\")\n", "plt.plot(\n", " ensemble_sizes,\n", " pca_rand_metrics[\"brier\"][\"ensemble\"],\n", " marker=\"s\",\n", " label=\"PCA Rand Ensemble\",\n", " color=\"m\")\n", "\n", "plt.xlim(1, max_ens_size)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "bGelr5_KBL-O" }, "source": [ "## Evaluating on Corrupted CIFAR10\n", "See [paper](https://arxiv.org/pdf/1906.02530.pdf) for data description.\n", "\n", "CAUTION: This section will be very time-consuming. If one wants to test the code quickly, consider only run a small portion of CIFAR10-C -- reducing 'ALL_CORRUPTIONS' to containing only one type, and 'intensity_range' to [0, 1]." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "K2jeOP8AERPn" }, "outputs": [], "source": [ "ALL_CORRUPTIONS = [\n", " 'gaussian_noise',\n", " 'shot_noise',\n", " # 'impulse_noise',\n", " # 'defocus_blur',\n", " # 'frosted_glass_blur',\n", " # 'motion_blur',\n", " # 'zoom_blur',\n", " # 'snow',\n", " # 'frost',\n", " # 'fog',\n", " # 'brightness',\n", " # 'contrast',\n", " # 'elastic',\n", " # 'pixelate',\n", " # 'jpeg_compression',\n", " # 'gaussian_blur',\n", " # 'saturate',\n", " # 'spatter',\n", " # 'speckle_noise',\n", "]\n", "\n", "num_models_to_use = 5\n", "ens_size_list = [2, 4]\n", "\n", "model_names = ['original', 'wa', 'diag', 'pca', 'rand', 'pca_rand']\n", "model_names_plus_ens = []\n", "for i in ens_size_list:\n", " model_names_plus_ens = model_names_plus_ens + [\n", " name + '_ens_{}'.format(i) for name in model_names\n", " ]\n", "\n", "all_model_names = model_names + model_names_plus_ens\n", "\n", "model_to_acc_every_level = {name: [] for name in all_model_names}\n", "model_to_brier_every_level = {name: [] for name in all_model_names}\n", "\n", "intensity_range = range(6)\n", "for level in intensity_range:\n", " print('========= Level {} ======='.format(level))\n", " model_to_acc_this_level = {name: [] for name in all_model_names}\n", " model_to_brier_this_level = {name: [] for name in all_model_names}\n", " if level == 0:\n", " corruptions = ['no_corruption']\n", " else:\n", " corruptions = ALL_CORRUPTIONS\n", " for corruption_type in corruptions:\n", " if corruption_type is 'no_corruption':\n", " ds_test = tfds.load(name='cifar10', split=['test'], batch_size=-1)\n", " else:\n", " # Load corrupted data.\n", " corruption_config_name = corruption_type + '_{}'.format(level)\n", " ds_test = tfds.load(\n", " name='cifar10_corrupted',\n", " split=['test'],\n", " builder_kwargs={'config': corruption_config_name},\n", " batch_size=-1)\n", " numpy_ds = tfds.as_numpy(ds_test)\n", " x_test, y_test = numpy_ds[0]['image'], numpy_ds[0]['label']\n", " x_test = x_test.reshape([-1, Hn, Wn, Cn])\n", " y_test = y_test.reshape([-1])\n", " N_test = len(y_test)\n", " # Run inference\n", " with tf.Session() as sess:\n", " feed_dict[X_ph] = x_test\n", " feed_dict[y_ph] = y_test\n", " #Get predictions\n", " for name in model_names:\n", " if name is 'original':\n", " pred_list = get_pred_list(Ws_many[0:num_models_to_use],\n", " bs_many[0:num_models_to_use], feed_dict,\n", " sess)\n", " elif name is 'wa':\n", " # Weight Averaged\n", " pred_list = get_pred_list(wa_Ws[0:num_models_to_use],\n", " wa_bs[0:num_models_to_use], feed_dict, sess)\n", " elif name is 'diag':\n", " # Subspacesampling\n", " pred_list = get_subspace_pred_list(\n", " dial_gaussian_whole_Ws[0:num_models_to_use],\n", " dial_gaussian_whole_bs[0:num_models_to_use], feed_dict, sess)\n", " elif name is 'pca':\n", " pred_list = get_subspace_pred_list(\n", " pca_gaussian_whole_Ws[0:num_models_to_use],\n", " pca_gaussian_whole_bs[0:num_models_to_use], feed_dict, sess)\n", " elif name is 'pca_rand':\n", " pred_list = get_subspace_pred_list(\n", " pca_gaussian_rand_Ws[0:num_models_to_use],\n", " pca_gaussian_rand_bs[0:num_models_to_use], feed_dict, sess)\n", " elif name is 'rand':\n", " pred_list = get_subspace_pred_list(rand_Ws[0:num_models_to_use],\n", " rand_bs[0:num_models_to_use],\n", " feed_dict, sess)\n", " corrupt_metrics = get_all_models_metrics(\n", " pred_list, y_test, ens_size_list=ens_size_list)\n", " model_to_acc_this_level[name].append(\n", " np.mean(corrupt_metrics['accuracy']['individual']))\n", " model_to_brier_this_level[name].append(\n", " np.mean(corrupt_metrics['brier']['individual']))\n", " for i, ens_size in enumerate(ens_size_list):\n", " model_to_acc_this_level[name + '_ens_{}'.format(ens_size)].append(\n", " corrupt_metrics['accuracy']['ensemble'][i])\n", " model_to_brier_this_level[name + '_ens_{}'.format(ens_size)].append(\n", " corrupt_metrics['brier']['ensemble'][i])\n", "\n", " for name in all_model_names:\n", " model_to_acc_every_level[name].append(model_to_acc_this_level[name])\n", " model_to_brier_every_level[name].append(model_to_brier_this_level[name])" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "rGS9GPU2mo5j" }, "source": [ "## Plot the metrics across corruption intensity" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "b5cAs29LkPYu" }, "outputs": [], "source": [ "ens_size_list = [2, 4]\n", "model_names = ['original', 'wa', 'diag', 'pca', 'rand', 'pca_rand']\n", "model_names_plus_ens = []\n", "for i in ens_size_list:\n", " model_names_plus_ens = model_names_plus_ens + [\n", " name + '_ens_{}'.format(i) for name in model_names\n", " ]\n", "\n", "all_model_names = model_names + model_names_plus_ens\n", "\n", "# Model names used by Jensen Shannon plots.\n", "js_model_names = ['inde', 'traj', 'diag', 'pca', 'rand', 'pca_rand']\n", "\n", "model_name_to_color = {\n", " 'original': 'indianred',\n", " 'wa': 'dimgray',\n", " 'diag': 'gold',\n", " 'pca': 'blue',\n", " 'rand': 'mediumseagreen',\n", " 'pca_rand': 'fuchsia',\n", " 'inde': 'red',\n", " 'traj': 'grey'\n", "}\n", "\n", "for name in model_names:\n", " for i in ens_size_list:\n", " model_name_to_color[name + '_ens_{}'.format(i)] = model_name_to_color[name]\n", "\n", "model_name_to_label = {\n", " 'original': 'Original',\n", " 'wa': 'Weight Avg',\n", " 'diag': 'Diag Gaus',\n", " 'pca': 'PCA Gaus',\n", " 'rand': 'Random',\n", " 'pca_rand': 'PCA Random',\n", " 'inde': 'Independent',\n", " 'traj': 'Train Trajectory'\n", "}\n", "\n", "for name in model_names:\n", " model_name_to_label[name + '_ens'] = model_name_to_label[name] + '+Ens'\n", " for i in ens_size_list:\n", " model_name_to_label[\n", " name +\n", " '_ens_{}'.format(i)] = model_name_to_label[name] + '+Ens {}'.format(i)\n", "\n", "# Line style, currently can only support 2 ensemble sizes. Beyond that, solid\n", "# line will be used for all.\n", "model_name_to_ls = {}\n", "for name in model_names:\n", " model_name_to_ls[name] = 'dashed'\n", " model_name_to_ls[name + '_ens_{}'.format(ens_size_list[0])] = 'dotted'\n", " for i in range(1, len(ens_size_list)):\n", " model_name_to_ls[name + '_ens_{}'.format(ens_size_list[i])] = 'solid'\n", "\n", "\n", "def plot_metric_over_corrupted_data(metric_name, intensity_range,\n", " all_model_names, base_model_names,\n", " color_map, ls_map):\n", " plt.figure(figsize=(10, 9))\n", "\n", " ylabel = {\n", " 'acc': 'Accuracy',\n", " 'brier': 'Brier',\n", " }\n", " plt.xlabel('Corruption Intensity', fontsize=16)\n", " plt.ylabel(ylabel[metric_name], fontsize=16)\n", " label_map = {'original': 'Single'}\n", " for ens_size in ens_size_list:\n", " label_map['original_ens_{}'.format(ens_size)] = '{}-Ensemble'.format(\n", " ens_size)\n", " model_to_mean = {name: [] for name in all_model_names}\n", " for name in all_model_names:\n", " if metric_name is 'acc':\n", " model_to_metric_every_level = model_to_acc_every_level[name]\n", " elif metric_name is 'brier':\n", " model_to_metric_every_level = model_to_brier_every_level[name]\n", " for t in intensity_range:\n", " model_to_mean[name].append(np.mean(model_to_metric_every_level[t]))\n", "\n", " if name in label_map:\n", " label = label_map[name]\n", " else:\n", " label = None\n", " plt.plot(\n", " intensity_range,\n", " model_to_mean[name],\n", " marker='s',\n", " label=label,\n", " color=color_map[name],\n", " ls=ls_map[name])\n", "\n", " legend0 = plt.legend(loc=3, fontsize=12)\n", "\n", " patch_list = []\n", " for name in base_model_names:\n", " patch_list.append(\n", " mpatch.Patch(\n", " color=model_name_to_color[name],\n", " label=model_name_to_label[name]))\n", " legend1 = plt.legend(handles=patch_list)\n", " ax = plt.gca().add_artist(legend0)\n", "\n", " plt.xlim(np.min(intensity_range), np.max(intensity_range))\n", " plt.tight_layout()\n", "\n", "\n", "def plot_js_over_corrupted_data(intensity_range, all_model_names, color_map,\n", " label_map):\n", " plt.figure(figsize=(10, 9))\n", " plt.xlabel('Corruption Intensity', fontsize=16)\n", " plt.ylabel('Jensen Shannon', fontsize=16)\n", "\n", " model_to_mean = {name: [] for name in all_model_names}\n", "\n", " for name in all_model_names:\n", " model_to_metric_every_level = model_to_js_every_level[name]\n", " for t in intensity_range:\n", " model_to_mean[name].append(np.mean(model_to_metric_every_level[t]))\n", " plt.plot(\n", " intensity_range,\n", " model_to_mean[name],\n", " marker='s',\n", " label=label_map[name],\n", " color=color_map[name])\n", "\n", " plt.xlim(np.min(intensity_range), np.max(intensity_range))\n", " plt.tight_layout()\n", " plt.legend()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "cszvIYjZkHLi" }, "outputs": [], "source": [ "intensity_range = range(6)\n", "plot_metric_over_corrupted_data('acc', intensity_range, all_model_names,\n", " model_names, model_name_to_color,\n", " model_name_to_ls)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "aLsVQu1SYzaX" }, "outputs": [], "source": [ "intensity_range = range(6)\n", "plot_metric_over_corrupted_data('brier', intensity_range, all_model_names,\n", " model_names, model_name_to_color,\n", " model_name_to_ls)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ZwOzmfhn3Z4l" }, "source": [ "##Jensen Shannon" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "tqiAL-z73cPe" }, "outputs": [], "source": [ "def get_entropy(p):\n", " return np.sum(-p * np.log(p + 1e-5), axis=1)\n", "\n", "\n", "# Compute the Jensen Shannon score given a list of model predictions.\n", "def get_jensen_shannon(pred_list, is_logit=False):\n", " n = len(pred_list)\n", " if is_logit:\n", " p_list = []\n", " for i in range(n):\n", " p_list.append(softmax(pred_list[i], axis=1))\n", " else:\n", " p_list = pred_list\n", " p_np = np.stack(p_list, axis=0)\n", " ensemble_pred = np.mean(p_np, axis=0)\n", " ensemble_entropy = np.mean(get_entropy(ensemble_pred))\n", "\n", " mean_entropy = np.mean(np.sum(-p_np * np.log(p_np + 1e-5), axis=2))\n", " return ensemble_entropy - mean_entropy" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mCgvOt_gbRYG" }, "source": [ "### Eval on SVHN\n", "JS on OOD data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "4WralaRlbVOW" }, "outputs": [], "source": [ "_, ds_test = tfds.load(\n", " name=\"svhn_cropped\", split=[\"train\", \"test\"], batch_size=-1)\n", "\n", "numpy_ds = tfds.as_numpy(ds_test)\n", "X_test_raw, y_test_fine_raw = numpy_ds[\"image\"], numpy_ds[\"label\"]\n", "\n", "X_test_svhn = X_test_raw\n", "y_test_svhn = y_test_fine_raw\n", "\n", "subsample = np.random.choice(len(y_test_svhn), 10000, replace=False)\n", "X_svhn = X_test_svhn[subsample, :, :, :]\n", "y_svhn = y_test_svhn[subsample]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "ICYLKUto1mrv" }, "outputs": [], "source": [ "traj_svhn_js = []\n", "pca_svhn_js = []\n", "diag_svhn_js = []\n", "rand_svhn_js = []\n", "pca_rand_svhn_js = []\n", "\n", "with tf.Session() as sess:\n", " feed_dict[X_ph] = X_svhn\n", " feed_dict[y_ph] = y_svhn\n", " feed_dict[lr_ph] = 0.0\n", " feed_dict[dropout_rate_ph] = 0.0\n", " indi_svhn_pred = get_pred_list(Ws_many[0:10], bs_many[0:10], feed_dict, sess)\n", " for traj_id in range(points_to_collect):\n", " trajectory_svhn_pred = get_pred_list(Ws_by_epochs_many[traj_id],\n", " bs_by_epochs_many[traj_id], feed_dict,\n", " sess)\n", " traj_svhn_js.append(get_jensen_shannon(trajectory_svhn_pred))\n", "\n", " diag_gaus_whole_svhn_pred = get_pred_list(dial_gaussian_whole_Ws[traj_id],\n", " dial_gaussian_whole_bs[traj_id],\n", " feed_dict, sess)\n", " diag_svhn_js.append(get_jensen_shannon(diag_gaus_whole_svhn_pred))\n", "\n", " pca_gaus_whole_svhn_pred = get_pred_list(pca_gaussian_whole_Ws[traj_id],\n", " pca_gaussian_whole_bs[traj_id],\n", " feed_dict, sess)\n", " pca_svhn_js.append(get_jensen_shannon(pca_gaus_whole_svhn_pred))\n", "\n", " pca_rand_svhn_pred = get_pred_list(pca_gaussian_rand_Ws[traj_id],\n", " pca_gaussian_rand_bs[traj_id], feed_dict,\n", " sess)\n", " pca_rand_svhn_js.append(get_jensen_shannon(pca_rand_svhn_pred))\n", "\n", " rand_svhn_pred = get_pred_list(rand_Ws[traj_id], rand_bs[traj_id],\n", " feed_dict, sess)\n", " rand_svhn_js.append(get_jensen_shannon(rand_svhn_pred))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "-1j-4_KhAZEg" }, "outputs": [], "source": [ "print(\"Jensen-Shannon for Independent run is {:.4f}\".format(\n", " get_jensen_shannon(indi_svhn_pred)))\n", "print(\"Jensen-Shannon for within-trajectory is {:.4f}\".format(\n", " np.mean(traj_svhn_js)))\n", "\n", "print(\"Jensen-Shannon for Diag Gaussian is {:.4f}\".format(\n", " np.mean(diag_svhn_js)))\n", "print(\"Jensen-Shannon for PCA Gaussian is {:.4f}\".format(np.mean(pca_svhn_js)))\n", "\n", "print(\"Jensen-Shannon for Rand is {:.4f}\".format(np.mean(rand_svhn_js)))\n", "print(\"Jensen-Shannon for PCA Rand is {:.4f}\".format(np.mean(pca_rand_svhn_js)))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "FLCIw3GwQeaa" }, "source": [ "###Eval on Cifar-10-C\n", "\n", "CAUTION: This section will be very time-consuming. If one wants to test the code quickly, consider only run a small portion of CIFAR10-C -- reducing 'ALL_CORRUPTIONS' to containing only one type, and 'intensity_range' to [0, 1]." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "UNM4VieiQjAp" }, "outputs": [], "source": [ "# Choose any training trajectory to study the JS of subspace samplings.\n", "traj_id = 3\n", "\n", "model_to_js_every_level = {name: [] for name in js_model_names}\n", "\n", "intensity_range = range(6)\n", "for level in intensity_range:\n", " print(\"========= Level {} =======\".format(level))\n", " model_to_js_this_level = {name: [] for name in js_model_names}\n", " if level == 0:\n", " corruptions = [\"no_corruption\"]\n", " else:\n", " corruptions = ALL_CORRUPTIONS\n", " for corruption_type in corruptions:\n", " if corruption_type is \"no_corruption\":\n", " ds_test = tfds.load(name=\"cifar10\", split=[\"test\"], batch_size=-1)\n", " else:\n", " # Load corrupted data.\n", " corruption_config_name = corruption_type + \"_{}\".format(level)\n", " ds_test = tfds.load(\n", " name=\"cifar10_corrupted\",\n", " split=[\"test\"],\n", " builder_kwargs={\"config\": corruption_config_name},\n", " batch_size=-1)\n", " numpy_ds = tfds.as_numpy(ds_test)\n", " x_test, y_test = numpy_ds[0][\"image\"], numpy_ds[0][\"label\"]\n", " x_test = x_test.reshape([-1, Hn, Wn, Cn])\n", " y_test = y_test.reshape([-1])\n", " N_test = len(y_test)\n", " # Run inference\n", " with tf.Session() as sess:\n", " feed_dict[X_ph] = x_test\n", " feed_dict[y_ph] = y_test\n", " #Get predictions\n", " for name in js_model_names:\n", " if name is \"inde\":\n", " pred_list = get_pred_list(Ws_many, bs_many, feed_dict,\n", " sess)\n", " elif name is \"traj\":\n", " # Weight Averaged\n", " pred_list = get_pred_list(Ws_by_epochs_many[traj_id],\n", " bs_by_epochs_many[traj_id], feed_dict, sess)\n", " elif name is \"diag\":\n", " pred_list = get_pred_list(dial_gaussian_whole_Ws[traj_id],\n", " dial_gaussian_whole_bs[traj_id], feed_dict,\n", " sess)\n", " elif name is \"pca\":\n", " pred_list = get_pred_list(pca_gaussian_whole_Ws[traj_id],\n", " pca_gaussian_whole_bs[traj_id], feed_dict,\n", " sess)\n", " elif name is \"pca_rand\":\n", " pred_list = get_pred_list(pca_gaussian_rand_Ws[traj_id],\n", " pca_gaussian_rand_bs[traj_id], feed_dict,\n", " sess)\n", " elif name is \"rand\":\n", " pred_list = get_pred_list(rand_Ws[traj_id], rand_bs[traj_id],\n", " feed_dict, sess)\n", "\n", " model_to_js_this_level[name].append(get_jensen_shannon(pred_list))\n", "\n", " for name in js_model_names:\n", " model_to_js_every_level[name].append(model_to_js_this_level[name])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "2mcbo-46d4s2" }, "outputs": [], "source": [ "plot_js_over_corrupted_data(intensity_range, js_model_names,\n", " model_name_to_color, model_name_to_label)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zCZUtnjKljz-" }, "source": [ "#Diversity vs Accuracy\n", "This section plots the Diversiy vs Accuracy plane for different subspace sampling methods, compared to independent solutions:\n", "\n", "\n", "* Random\n", "* Gaussian Diag\n", "* Gaussian Low rank (PCA)\n", "* Dropout\n", "\n", "Note that unlike the previous section \"Effects of Ensemble + Subspace Sampling\" where we only keep samples with good accuracy performance, in this section we include samples that sacrifices accuracy to explore the full spectrum of function diversity" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "D3eKK8UPz-UB" }, "outputs": [], "source": [ "base_id = 0\n", "base_v = flatten(Ws_many[base_id], bs_many[base_id])\n", "\n", "\n", "def get_acc_and_diff(pred_class, base_pred, y_label):\n", " diff = np.mean(pred_class != base_pred)\n", " acc = np.mean(pred_class == y_label)\n", " return acc, diff\n", "\n", "\n", "# Given a list of weights, compute their accuracy and their difference to the\n", "# base prediction.\n", "def get_acc_and_diff_from_weights(Ws_list, bs_list, feed_dict, base_pred):\n", " assert len(Ws_list) == len(bs_list)\n", " with tf.Session() as sess:\n", " pred_list = get_pred_list(Ws_list, bs_list, feed_dict, sess)\n", "\n", " acc_list = []\n", " diff_list = []\n", " for i in range(len(Ws_list)):\n", " acc, diff = get_acc_and_diff(\n", " np.argmax(pred_list[i], axis=-1), base_pred, feed_dict[y_ph])\n", " acc_list.append(acc)\n", " diff_list.append(diff)\n", " return acc_list, diff_list" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "0oScJ4X09-F9" }, "source": [ "##Independent Solutions" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "TkwIdoOJvgz2" }, "outputs": [], "source": [ "feed_dict = {\n", " X_ph: X_test,\n", " y_ph: y_test,\n", " lr_ph: 0.0,\n", " dropout_rate_ph: 0.0,\n", " L2_reg_constant_ph: 0.0,\n", "}\n", "\n", "with tf.Session() as sess:\n", " orig_pred_list = get_pred_list(Ws_many, bs_many, feed_dict, sess)\n", "\n", "base_pred = np.argmax(orig_pred_list[base_id], axis=-1)\n", "\n", "independent_acc = []\n", "independent_diff = []\n", "for i in range(points_to_collect):\n", " class_pred = np.argmax(orig_pred_list[i], axis=-1)\n", " acc, diff = get_acc_and_diff(class_pred, base_pred, y_test)\n", " independent_acc.append(acc)\n", " independent_diff.append(diff)\n", "\n", "data_to_show = [\n", " (\"independent optima\", \"red\", 300, \"*\", 1.0, independent_acc,\n", " independent_diff),\n", "]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "cotIEVchK3Vh" }, "outputs": [], "source": [ "data_to_show = [\n", " (\"independent optima\", \"red\", 300, \"*\", 1.0, independent_acc,\n", " independent_diff),\n", "]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "hT1pKG9W-BTZ" }, "source": [ "##Gaussian Sampling" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "czoWhgyGAFoC" }, "outputs": [], "source": [ "num_sample = 50\n", "rank = 5 # for PCA\n", "\n", "Ws_traj = Ws_by_epochs_many[base_id]\n", "bs_traj = bs_by_epochs_many[base_id]\n", "\n", "dial_gaussian_whole_Ws = []\n", "dial_gaussian_whole_bs = []\n", "\n", "pca_gaussian_whole_Ws = []\n", "pca_gaussian_whole_bs = []\n", "\n", "vs_list = []\n", "for i in range(len(Ws_traj)):\n", " vs_list.append(flatten(Ws_traj[i], bs_traj[i]))\n", "\n", "vs_np = np.stack(vs_list, axis=0)\n", "\n", "means = np.mean(vs_np, axis=0)\n", "stds = np.std(vs_np, axis=0)\n", "vs_np_centered = vs_np - means.reshape([1, -1])\n", "\n", "pca = PCA(n_components=rank)\n", "pca.fit(vs_np_centered)\n", "for i in range(num_sample):\n", " scale = np.random.uniform()\n", " # One can adjust the constant in front of scale to get a fuller range in\n", " # diversity-acc plane.\n", " v_sample = get_gaussian_sample(means, stds, scale=10.0 * scale)\n", " w_sample, b_sample = reform(v_sample)\n", " dial_gaussian_whole_Ws.append(w_sample)\n", " dial_gaussian_whole_bs.append(b_sample)\n", " # One can adjust the scale value to get a fuller range in diversity-acc plane.\n", " v_sample = get_pca_gaussian_flat_sampling(pca, means, rank, scale=6.0)\n", " w_sample, b_sample = reform(v_sample)\n", "\n", " pca_gaussian_whole_Ws.append(w_sample)\n", " pca_gaussian_whole_bs.append(b_sample)\n", "\n", "pca_acc, pca_diff = get_acc_and_diff_from_weights(pca_gaussian_whole_Ws,\n", " pca_gaussian_whole_bs,\n", " feed_dict, base_pred)\n", "diag_acc, diag_diff = get_acc_and_diff_from_weights(dial_gaussian_whole_Ws,\n", " dial_gaussian_whole_bs,\n", " feed_dict, base_pred)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "mfnrhHSa5Xiw" }, "outputs": [], "source": [ "data_to_show = data_to_show + [\n", " (\"diag gaussian\", \"purple\", 10, \"o\", 0.6, diag_acc, diag_diff),\n", " (\"pca gaussian\", \"fuchsia\", 10, \"o\", 0.3, pca_acc, pca_diff),\n", "]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Jn-g6-GZZ5tc" }, "source": [ "##Random Sampling" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "uJpRJaDLaFRa" }, "outputs": [], "source": [ "rand_Ws = []\n", "rand_bs = []\n", "for i in range(num_sample):\n", " # One can adjust the constant in front of scale to get a fuller range in\n", " # diversity-acc plane. \n", " scale = 70.0 * np.random.uniform()\n", " v_sample = base_v + scale * get_rand_norm_direction(base_v.shape)\n", " w_sample, b_sample = reform(v_sample)\n", " rand_Ws.append(w_sample)\n", " rand_bs.append(b_sample)\n", "\n", "rand_acc, rand_diff = get_acc_and_diff_from_weights(rand_Ws, rand_bs, feed_dict,\n", " base_pred)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "h1my3OECbzEi" }, "outputs": [], "source": [ "data_to_show = data_to_show + [\n", " (\"random subspace\", \"blue\", 3, \"o\", 0.3, rand_acc, rand_diff),\n", "]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "JJWIEJZBZ9Jf" }, "source": [ "##Dropout Sampling" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "MBiCleCgb8r1" }, "outputs": [], "source": [ "def apply_dropout_to_array(anchor_array, dropout_to_use):\n", " shape_now = anchor_array.shape\n", " random_mask = np.random.rand(*shape_now)\n", " mask = (random_mask \u003c (1.0 - dropout_to_use))\n", " array_dropped = (anchor_array * mask) / (1.0 - dropout_to_use)\n", " return array_dropped\n", "\n", "\n", "dropout_Ws = []\n", "dropout_bs = []\n", "for i in range(num_sample):\n", " # One can adjust the constant to get a fuller range in diversity-acc plane.\n", " dropout = 0.1 * np.random.uniform()\n", " v_sample = apply_dropout_to_array(base_v, dropout)\n", " w_sample, b_sample = reform(v_sample)\n", " dropout_Ws.append(w_sample)\n", " dropout_bs.append(b_sample)\n", "\n", "dropout_acc, dropout_diff = get_acc_and_diff_from_weights(\n", " dropout_Ws, dropout_bs, feed_dict, base_pred)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "E5qdldWHb9c4" }, "outputs": [], "source": [ "data_to_show = data_to_show + [\n", " (\"dropout subspace\", \"orange\", 10, \"o\", 1.0, dropout_acc, dropout_diff),\n", "]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "VwNL8PPM7DrM" }, "source": [ "##Plotting Figure" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "AqhcI78L52hM" }, "outputs": [], "source": [ "# Functions for computing the analytic limit curves (see paper).\n", "\n", "def perturbed_reference_analytic(desired_accuracy, reference_accuracy, classes):\n", " return (reference_accuracy - desired_accuracy) / (\n", " reference_accuracy + (reference_accuracy - 1.0) / (classes - 1.0))\n", "\n", "\n", "def random_average_case(desired_accuracy, reference_accuracy, classes):\n", " part1 = reference_accuracy * (1.0 - desired_accuracy)\n", " part2 = desired_accuracy * (1.0 - reference_accuracy)\n", " part3 = (1.0 - reference_accuracy) * (1.0 -\n", " desired_accuracy) * (classes - 2.0) / (\n", " classes - 1.0)\n", " return part1 + part2 + part3" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "DjOAuW3F56qu" }, "outputs": [], "source": [ "plt.figure(figsize=(7, 5))\n", "accs_fit_random = np.linspace(0.1, 0.71, 100)\n", "diffs_fit_random = random_average_case(accs_fit_random, 0.71, 10)\n", "plt.plot(\n", " accs_fit_random,\n", " diffs_fit_random / (1.0 - accs_fit_random),\n", " color=\"black\",\n", " linestyle=\"-.\",\n", " label=\"Upper limit\")\n", "\n", "# Analytic limits curve.\n", "accs_fit_perturbed = np.linspace(0.1, 0.71, 100)\n", "diffs_fit_perturbed = perturbed_reference_analytic(accs_fit_perturbed, 0.71, 10)\n", "plt.plot(\n", " accs_fit_perturbed,\n", " diffs_fit_perturbed / (1.0 - accs_fit_perturbed),\n", " color=\"black\",\n", " linestyle=\"--\",\n", " label=\"Lower limit\")\n", "\n", "for (name_now, color_now, size_now, marker_now, alpha_now, accs_now,\n", " diffs_now) in data_to_show:\n", "\n", " metric_now = np.asarray(diffs_now) / (1.0 - np.asarray(accs_now))\n", "\n", " if name_now != \"independent optima\":\n", " plt.scatter(\n", " accs_now,\n", " metric_now,\n", " color=color_now,\n", " s=size_now,\n", " marker=marker_now,\n", " alpha=alpha_now)\n", " plt.scatter([], [],\n", " color=color_now,\n", " label=name_now,\n", " s=10,\n", " marker=marker_now,\n", " alpha=1.0)\n", " else:\n", " plt.scatter(\n", " accs_now,\n", " metric_now,\n", " color=color_now,\n", " s=size_now,\n", " marker=marker_now,\n", " alpha=alpha_now,\n", " label=name_now)\n", "\n", " if name_now == \"independent optima\":\n", " base_star_color = \"green\"\n", " plt.scatter([accs_now[base_id]], [metric_now[base_id]],\n", " color=base_star_color,\n", " label=\"baseline optimum\",\n", " s=size_now,\n", " marker=marker_now,\n", " alpha=alpha_now)\n", "\n", "plt.xlabel(\"Validation accuracy\", fontsize=14)\n", "plt.ylabel(\"Fraction of labels changes / (1.0-accuracy)\", fontsize=14)\n", "\n", "plt.title(\"MediumCNN on Cifar10\", fontsize=18)\n", "plt.legend(loc=3, fancybox=True, framealpha=0.5, fontsize=16)\n", "plt.ylim([-0.1, 1.2])\n", "plt.xlim([0, 0.78])\n", "\n", "plt.show()" ] } ], "metadata": { "colab": { "collapsed_sections": [ "8PHJJ59SuMAo" ], "name": "Release cifar10 medium cnn experiments.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: functional_regularisation_for_continual_learning/README.md ================================================ # Functional Regularisation for Continual Learning (FRCL) with Gaussian Processes This notebook contains code to accompany the ICLR 2020 paper on Functional Regularisation for Continual Learning (FRCL). [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/functional_regularisation_for_continual_learning/frcl.ipynb) The experiments in the paper can be reproduced by choosing the respective experimental protocol detailed in the publication. Default values are set to replicate results on Permuted MNIST. If you find this code useful, please consider citing this paper: ``` @article{titsias2019functional, title={Functional regularisation for continual learning using gaussian processes}, author={Titsias, Michalis K and Schwarz, Jonathan and Matthews, AG de G and Pascanu, Razvan and Teh, Yee Whye}, journal={ICLR 2020}, year={2020} } ``` ================================================ FILE: functional_regularisation_for_continual_learning/frcl.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "ksftVXR8lUeP" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "TEf5_rHhlXmd" }, "source": [ "# [Functional Regluarisation for Continual Learning with Gaussian Processes](https://arxiv.org/abs/1901.11356) (Published at ICLR 2020)\n", "\n", "![Screen Shot 2020-09-29 at 7.59.29 AM.png](data:image/png;base64,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AQQQQAABBBBAAAEEEEAAAQQQ8EmAIKpPbKyEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIEAQlc8AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggIBPAgRRfWJjJQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABgqh8BhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEfBIgiOoTGyshgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCBBE5TOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIOCTAEFUn9hYCQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAICqfAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABnwQIovrExkoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgRR+QwggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPgkQBDVJzZWQgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgiMpnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAJwGCqD6xsRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAEFUPgMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAj4JEET1iY2VEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQIovIZQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwSYAgqk9srIQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQBCVzwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgE8CBFF9YmMlBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAGCqHwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQR8EiCI6hMbKyGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIEETlM4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg4JMAQVSf2FgJAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAgKp8BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAGfBAii+sTGSggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACBFH5DCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII+CRAENUnNlZCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECCIymcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQMAnAYKoPrGxEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAQVQ+AwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACPgkQRPWJjZUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBAii8hlAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE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U6tWrUTf92eo13EfOq/3jEqWLOkUdL755ptFA6q1atVytdqNtq1bt5oh1UOHDt1o0xdRUVGydu1ajwK+disygwACCISJAEHUMDkRdAMBBBBAAAEEEPCXQM+ePeXw4cP+2pxX29GA5vz5871ax3HhIUOGmE/cOraPGDFC9CJNMCb941+PQ//g14skyQ2bkzFjRrnzzjulQoUK0qJFC/MpYn261Zfp119/lf79+zutOm3aNMmRI4dTuy8N3333ndsnavPlyyejR482n372Zdv+Wuf8+fNSp04dOXPmjLnJAQMGiF5AYkIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBOBUAdRjx49KgUKFJDr16/f6K5WyezSpYtUqVLlRpu+qFevnlkt067RxxkNQeq9Ddspb968ogHV0qVL2zZ79FqrpDZt2tSskuq4wiuvvCL9+vVzbLab92cQNbkQaocOHWT69OkSjMIhgwcPlpEjR9od50033STr16+XMmXK2LW7m9GquNWqVZPff//dbhE9f3qumBBAAAErChBEteJZo88IIIAAAggggEAyAnfccYfs3r07mSUC95YO33Lp0iWfd6BD5eiFmYSEBKdtPP/88zJx4kSndn826PA6L730knz44Yfi6mlaT/alVVJ1+JR27dqJBnO9mb7//nupVKmS0yoajNXheVI7aQhVn4R2HI5It6vDAenFDe1/qKeBAwfKqFGjbnRDn9J+7rnnbszzAgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACB5ARCHUTVog+OhSfeeOMN0cCk3gfR+yG20y+//CJFixa1bfL69cmTJyV37tx24VfdiA5l/9RTT3m9vaQVLl68KEWKFJHjx48nNZm/dQj6bdu22bU5zvgriPr222+b1Vld3bvp2rWrWe3V1yIhjn1Obl7vgWlRj7///ttuMe1f27Zt7dpSmlm2bJnLSrh6j69UqVIprc77CCCAQNgJEEQNu1NChxBAAAEEEEAAgdQJWDmI6urCTJJGtmzZzCdDtQJpICa9SNC5c2e5fPmyXzZfs2ZNcwiWXLlyeby9QAZRkwuh3nbbbfLFF1+YQ+l43NkALbh48WLz6WrbzRNEtdXgNQIIIIAAAggggAACCCCAAAIIIIAAAggggEBKAqEMompYUodu/+mnn+y6mRQ21ZHtJkyYYPde3759zRHL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AAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8KEIjqQ3xOjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPizAIGo/jx79B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8KEIjqQ3xOjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPizAIGo/jx79B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8KEIjqQ3xOjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPizAIGo/jx79B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8KEIjqQ3xOjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPizAIGo/jx79B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8KEIjqQ3xOjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPizAIGo/jx79B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAgggZDRbywAAAVNJREFUgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8KEIjqQ3xOjQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPizAIGo/jx79B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwoQCBqD7E59QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAPwsQiOrPs0ffEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAR8K/B/EgJo00pP+3wAAAABJRU5ErkJggg==)\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "pqifXRtRPcGw" }, "source": [ "**Functional Regluarisation for Continual Learning (FRCL)** is a method designed to tackle the Continual Learning (CL) problem, combining recent ideas and advances in Bayesian methods, Functional Regularisation and Experience Replay. FRCL is one of the few CL algorithms that provide a principled criterion to choose representative training points for replay. In addition, the Bayesian formulation provides uncertainty estimates that can be used in the task-agonstic setting.\n", "\n", "\n", "This code implements training and replicates published results presented for the Permuted MNIST and Sequential Omniglot datasets. If you find this code useful, please cite the paper:\n", "\n", "```\n", "@article{titsias2019functional,\n", " title={Functional regularisation for continual learning using gaussian processes},\n", " author={Titsias, Michalis K and Schwarz, Jonathan and Matthews, AG de G and Pascanu, Razvan and Teh, Yee Whye},\n", " journal={ICLR 2020},\n", " year={2020}\n", "}\n", "```\n", "If you have any questions, please do not hestiate to reach out to the\n", "code authors:\n", "\n", "* Jonathan Schwarz (schwarzjn@google.com)\n", "* Michalis Titsias (mtitsias@google.com)\n", "* Alex Matthews (alexmatthews@google.com)" ] }, { "cell_type": "markdown", "metadata": { "id": "kDn_lVxg3Z2G" }, "source": [ "# Installation and Setup\n", "\n", "We begin by installing and importing all necessary dependencies.\n", "\n", "In order to allow efficient training, please ensure to use a colab kernel with a GPU by doing the following:\n", "\n", " \u003e `Edit` -\u003e `Notebook settings` -\u003e select GPU under `Hardware accelerator` -\u003e `Save`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "GQ18Kd5F3uKe" }, "outputs": [], "source": [ "#@title Installing and Importing Dependencies\n", "\n", "print('Installing necessary libraries...')\n", "\n", "def install_libraries():\n", " !pip install gpflow\n", " !pip install dm-sonnet\n", " !pip install tfa-nightly\n", "\n", "import IPython\n", " \n", "with IPython.utils.io.capture_output() as captured:\n", " install_libraries()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "__3eqm3q3sr-" }, "outputs": [], "source": [ "#@title Imports\n", "\n", "import collections\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "\n", "import tensorflow as tf\n", "import tensorflow_addons as tfa\n", "import tensorflow_datasets as tfds\n", "\n", "# Python 3 type annotations\n", "from typing import Optional, Sequence, Text, Tuple" ] }, { "cell_type": "markdown", "metadata": { "id": "ZhCA3yCJVWxA" }, "source": [ "Let's define a few useful contants and set some global properties related to plotting and logging." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "WY9arMfM1as2" }, "outputs": [], "source": [ "#@title Setup\n", "\n", "# TF logging level (disables some gpflow internal warnings we can safely ignore)\n", "tf.get_logger().setLevel('ERROR')\n", "\n", "# Plotting options\n", "sns.set_style(\"white\")\n", "matplotlib.use('Agg') \n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": { "id": "4LAxYQ5gVtIX" }, "source": [ "Run the code below to check that you chose the correct colab runtime." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "H-ogeIN5QV8X" }, "outputs": [], "source": [ "#@title Test for GPU\n", "\n", "device_name = tf.test.gpu_device_name()\n", "if device_name != '/device:GPU:0':\n", " print('NOT using a GPU. Please follow the instructions above.')\n", "else:\n", " print(\"Using a GPU. You're good to go.\")" ] }, { "cell_type": "markdown", "metadata": { "id": "CdtWhHZvjz7S" }, "source": [ "# Setting up Data\n", "\n", "As a first step, we will setup the CL problems to be used in the code below. Specifically, the code below implements the following experiments:\n", "\n", "* Permuted MNIST (Proposed as a CL benchmark in [3])\n", "* Sequential Omniglot (Proposed as a CL benchmark in [2])\n", "\n", "We start by defining a few useful objects that hold data at various stages throughout the training pipeline:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "QYOn2oR-k0Of" }, "outputs": [], "source": [ "#@title Data utility objects\n", "\n", "# Holds underlying data source for all tasks. `task_metadata` contains all\n", "# metadata necessary to split this data into a sequence of tasks.\n", "RawData = collections.namedtuple(\n", " 'RawData', ['inputs', 'outputs', 'task_metadata'])\n", "\n", "# `RawData` split into train/valid \u0026 test sets for a specific task.\n", "DatasetSplit = collections.namedtuple(\n", " 'DatasetSplit', ['train', 'valid', 'test',\n", " 'num_train', 'num_valid', 'num_test'])\n", "\n", "# TF iterators used to fetch data in the training pipeline.\n", "# `train`: Training dataset. Possibly augmented.\n", "# `discr_search`: Dataset to choose replay/inducing points from. Not augmented.\n", "# `discr_search_eval`: Dataset to evaluate inducing point approximation on.\n", "#  Either training or validation set. Not augmented.\n", "# `test`: Test dataset. Not augmented.\n", "Iterators = collections.namedtuple(\n", " 'Iterators', ['train', 'discr_search', 'discr_search_eval', 'test'])" ] }, { "cell_type": "markdown", "metadata": { "id": "AaTKGUDXWr3T" }, "source": [ "And next define a few functions to operate on those objects, performing converstions along with the necessary processing of those objects." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "OQS5wddJWr-T" }, "outputs": [], "source": [ "#@title Data utility functions\n", "\n", "def make_tf_dataset(inputs: tf.Tensor,\n", " outputs: tf.Tensor,\n", " num_datapoints: int) -\u003e tf.data.Dataset:\n", " \"\"\"Create a dataset for supervised learning.\n", "\n", " Args:\n", " inputs: A tensor of shape `[num_datapoitns, ...]`.\n", " outputs: Associated outputs. A tensor of shape `[num_datapoitns, ...]`.\n", " num_datapoints: Number of expected datapoints.\n", " Returns:\n", " dataset: A tf.data.Dataset instance. Implements shuffling and repetition.\n", " \"\"\"\n", " dataset = tf.data.Dataset.from_tensor_slices((inputs, outputs))\n", " return dataset.shuffle(num_datapoints).repeat()\n", "\n", "def create_iterators(data: RawData) -\u003e Iterators:\n", " \"\"\"Create dataset tensorflow dataset iterators.\n", "\n", " Args:\n", " data: A RawData object.\n", "\n", " Returns:\n", " tensorflow Dataset iterators.\n", " \"\"\"\n", " # Setup dataset iterators\n", " train_iterator = iter(data.train.batch(train_batch_size))\n", " test_iterator = iter(data.test.batch(data.num_test))\n", "\n", " # Dataset to choose inducing points from\n", " discr_search_iterator = iter(data.train.batch(data.num_train))\n", " if data.valid is not None:\n", " # Dataset to evaluate the quality of the inducing approximation on\n", " discr_search_eval_iterator = iter(data.valid.batch(data.num_valid))\n", " else:\n", " # Use only a quarter fo the train dataset to avoid long training times\n", " discr_search_eval_iterator = iter(data.train.batch(data.num_train // 4))\n", "\n", " return Iterators(\n", " train_iterator,\n", " discr_search_iterator,\n", " discr_search_eval_iterator,\n", " test_iterator)\n", "\n", "def concat(x: tf.Tensor, y: tf.Tensor) -\u003e tf.Tensor:\n", " \"\"\"Concatenates two tensors along first dimension.\n", "\n", " Args:\n", " x: A tensor of shape `[N, ...]`.\n", " y: A tensor of shape `[M, ...]`.\n", " Returns:\n", " A tensor of shape `[N+M, ...]`.\n", " \"\"\"\n", "\n", " return tf.concat([x, y], axis=0)\n", "\n", "def select_datapoints(\n", " data: tf.Tensor,\n", " select_idx: np.array) -\u003e tf.Tensor:\n", " \"\"\"Select subset of datapoints provided by `select_idx` from `data`.\n", "\n", " Args:\n", " data: A tensor of shape `[num_datapoints, ...]`.\n", " select_idx: Indices of data to be returned. Shape (N \u003c= num_datapoints, ...)\n", " Returns:\n", " A tensor of shape `[N, ...]`.\n", " \"\"\"\n", "\n", " return tf.gather(data, select_idx, axis=0)" ] }, { "cell_type": "markdown", "metadata": { "id": "6hgLRArrYpdU" }, "source": [ "Let's define all functions necessary to generate the Permuted MNIST benchmark. This includes a function to fetch the data and apply some elimentary preprocessing (returning a `RawData` object) as well as one to split the data into tasks based on different random permuations (returning a `DatasetSplit` object)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "2upl5WdRpP5c" }, "outputs": [], "source": [ "#@title Permuted MNIST\n", "\n", "def generate_permutation(num_idx: int) -\u003e Tuple[np.array, np.array]:\n", " \"\"\"Create a permuation of `num_idx` indices.\n", "\n", " Args:\n", " num_idx: Number of indices to be permuted\n", "\n", " Returns:\n", " perm: Permuted indices.\n", " inv_perm: Inverse of `perm`. Needed to invert permuation.\n", " \"\"\"\n", " perm = np.random.permutation(range(num_idx))\n", " inv_perm = np.argsort(perm)\n", " return perm, inv_perm\n", "\n", "def prepare_mnist(num_mnist_tasks: int) -\u003e RawData:\n", " \"\"\"Download MNIST data and create permutations.\n", "\n", " Args:\n", " num_mnist_tasks: How many tasks to use.\n", "\n", " Returns:\n", " Data re-organised with permutation masks to distinguish between tasks.\n", " \"\"\"\n", "\n", " mnist = tf.keras.datasets.mnist.load_data()\n", "\n", " x_train, y_train = mnist[0]\n", " x_test, y_test = mnist[1]\n", "\n", " all_images = concat(x_train, x_test)\n", " all_labels = concat(y_train, y_test)\n", "\n", " # Safe scalling and casting\n", " all_images = tf.image.convert_image_dtype(all_images, tf.float64)\n", " # Reshape\n", " all_images = snt.Flatten()(all_images)\n", " num_indicies = all_images.shape[1]\n", "\n", " # Define permutations\n", " task_perms, task_inv_perms = zip(*[generate_permutation(num_indicies)\n", " for _ in range(num_mnist_tasks)])\n", "\n", " return RawData(all_images.numpy(), all_labels.numpy(), (task_perms, task_inv_perms))\n", "\n", "\n", "def load_mnist_permutation(\n", " full_mnist: RawData,\n", " task_id: int,\n", " construct_valid: bool,\n", " use_data_augmentationt: bool) -\u003e DatasetSplit:\n", " \"\"\"Extract data for a single task by premuting and create a train/valid/test split.\n", "\n", " Args:\n", " full_mnist: Contains original MNIST data. Unpermuted.\n", " task_id: Id of task requested.\n", " construct_valid: Whether to construct a validation dataset.\n", " use_data_augmentationt: Unused.\n", "\n", " Returns:\n", " Data re-organised with alphabet ids to distinguish between tasks.\n", " \"\"\"\n", " del use_data_augmentationt # Unused\n", " # Apply permutation for task given by `task_id`\n", " permuted_inputs = full_mnist.inputs[:, full_mnist.task_metadata[0][task_id]]\n", "\n", " num_train = 60000\n", " num_test = 10000\n", "\n", " # Choose a random permutation\n", " x_test = permuted_inputs[-num_test:]\n", " y_test = full_mnist.outputs[-num_test:]\n", " x_train = permuted_inputs[:-num_test]\n", " y_train = full_mnist.outputs[:-num_test]\n", "\n", " # Construct an optional validation set\n", " if construct_valid:\n", " perm = np.random.permutation(num_train)\n", "\n", " num_valid = 10000\n", " num_train -= num_valid\n", "\n", " x_valid = x_train[perm[:num_valid]]\n", " y_valid = y_train[perm[:num_valid]]\n", " x_train = x_train[perm[num_valid:]]\n", " y_train = y_train[perm[num_valid:]]\n", " valid_dataset = make_tf_dataset(x_valid, y_valid, num_valid)\n", " else:\n", " num_valid = 0\n", " valid_dataset = None\n", "\n", " train_dataset = make_tf_dataset(x_train, y_train, num_train)\n", " test_dataset = make_tf_dataset(x_test, y_test, num_test)\n", "\n", " return DatasetSplit(train_dataset, valid_dataset, test_dataset,\n", " num_train, num_valid, num_test)" ] }, { "cell_type": "markdown", "metadata": { "id": "__Bhwg5qWDH4" }, "source": [ "The Omiglot setup is fairly similar with the exception of the additional data augmentation (growing the size of the datset for each task 20-fold) proposed in [2]. This augmentation consists of random rotations and shifts of images which we implement below:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "KGlT7BF9XgXa" }, "outputs": [], "source": [ "#@title Data augmentation functions\n", "\n", "def random_img_shift_and_rotation(\n", " imgs: tf.Tensor,\n", " degree_range: Sequence[float] = None,\n", " shift_range: Sequence[float] = None) -\u003e tf.Tensor:\n", " \"\"\"Augments image tensor by random shifts and rotations.\n", "\n", " Args:\n", " imgs: A tensor of shape (num_images, num_rows, num_columns, num_channels).\n", " degree_range: Min./Max. degrees by which each image is rotated.\n", " shift_range: Min./Max. diff (in both x/y) by which each image is shifted.\n", "\n", " Returns:\n", " Augmented Image(s) with the same type and shape as images.\n", " \"\"\"\n", "\n", " if degree_range is None:\n", " degree_range = [-30.0, 30.0]\n", "\n", " if shift_range is None:\n", " shift_range = [-5.0, 5.0]\n", "\n", " num_datapoints = imgs.shape[0]\n", "\n", " # Random rotation\n", " angles = np.random.uniform(\n", " degree_range[0], degree_range[1], size=num_datapoints)\n", " imgs = tfa.image.rotate(imgs, np.radians(angles))\n", "\n", " # Random shift (https://stackoverflow.com/questions/42252040/how-to-translateor-shift-images-in-tensorflow/45662771)\n", " diff = np.random.uniform(shift_range[0], shift_range[1],\n", " size=num_datapoints*2).reshape(num_datapoints, 2)\n", " transforms = np.tile([[1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]],\n", " [num_datapoints, 1]).astype(np.float32)\n", " transforms[:, 2] = -diff[:, 0]\n", " transforms[:, 5] = -diff[:, 1]\n", "\n", " return tfa.image.transform(imgs, transforms)" ] }, { "cell_type": "markdown", "metadata": { "id": "qQG-BsEHaowB" }, "source": [ "Setting up the rest of the functions for Seq. Omniglot:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "SEh1pp6LhnBX" }, "outputs": [], "source": [ "#@title Sequential Omniglot\n", "\n", "def prepare_omniglot(num_alphabets: int) -\u003e RawData:\n", " \"\"\"Download Omniglot data and merge original train/test sets.\n", "\n", " Args:\n", " num_alphabets: How many alphabets to use. Must be \u003c= 50.\n", "\n", " Returns:\n", " Data re-organised with alphabet ids to distinguish between tasks.\n", " \"\"\"\n", " # The original train/test split is designed for few-shot learning. As this\n", " # split no longer applies to us, we will merge this data and perform a manual\n", " # train/test split later on.\n", " omniglot_train_ds = tfds.load(\n", " 'omniglot', batch_size=-1, split='train',\n", " as_supervised=False, shuffle_files=False)\n", " omniglot_test_ds = tfds.load(\n", " 'omniglot', batch_size=-1, split='test',\n", " as_supervised=False, shuffle_files=False)\n", "\n", " # The provided train/test split does not apply, so we'll merge and re-organise\n", " all_images = concat(\n", " omniglot_train_ds['image'], omniglot_test_ds['image'])\n", " all_labels = concat(\n", " omniglot_train_ds['alphabet_char_id'],\n", " omniglot_test_ds['alphabet_char_id'])\n", "\n", " # Allows us to distinguish between tasks (i.e. alphabets)\n", " all_alphabet_ids = concat(\n", " omniglot_train_ds['alphabet'],\n", " omniglot_test_ds['alphabet']).numpy()\n", "\n", " # To determine the size of a prediction vector.\n", " num_chars_per_alphabet = [tf.reduce_max(select_datapoints(all_labels, np.argwhere(all_alphabet_ids == t))).numpy()\n", " for t in range(num_alphabets)]\n", "\n", " # Discard all data not needed\n", " idx = np.argwhere(all_alphabet_ids \u003c num_alphabets).flatten()\n", " all_alphabet_ids = all_alphabet_ids[idx]\n", " all_images = select_datapoints(all_images, idx)\n", " all_labels = select_datapoints(all_labels, idx)\n", "\n", " return RawData(all_images, all_labels, (all_alphabet_ids, num_chars_per_alphabet))\n", "\n", "\n", "def load_omniglot_alphabet(\n", " full_omniglot: RawData,\n", " alphabet_id: int,\n", " construct_valid: bool,\n", " use_data_augmentationt: bool) -\u003e DatasetSplit:\n", " \"\"\"Extract a single alphabet, preprocess and create a train/valid/test split.\n", "\n", " Args:\n", " full_omniglot: Contains Omniglot data of all alphabets.\n", " alphabet_id: Id of alphabet requested. Must be \u003c= 50.\n", " construct_valid: Whether to construct a validation dataset.\n", " use_data_augmentationt: Whether to augment the dataset.\n", "\n", " Returns:\n", " Data re-organised with alphabet ids to distinguish between tasks.\n", " \"\"\"\n", " # Selecting an alphabet\n", " idx = np.argwhere(full_omniglot.task_metadata[0] == alphabet_id).flatten()\n", " alphabet_images = select_datapoints(full_omniglot.inputs, idx)\n", " alphabet_labels = select_datapoints(full_omniglot.outputs, idx)\n", "\n", " # Pre-processing\n", " alphabet_images = tf.image.convert_image_dtype(alphabet_images, tf.float32)\n", " alphabet_images = tf.image.rgb_to_grayscale(alphabet_images)\n", " # Resize and invert colour (from black on white background to white on black).\n", " alphabet_images = 1.0 - tf.image.resize(alphabet_images, [28, 28])\n", " alphabet_images = tf.cast(alphabet_images, tf.float64)\n", "\n", " num_datapoints = alphabet_labels.shape[0]\n", "\n", " # Let's shuffle the datapoints randomnly.\n", " perm = np.random.permutation(num_datapoints)\n", " alphabet_images = select_datapoints(alphabet_images, perm)\n", " alphabet_labels = select_datapoints(alphabet_labels, perm)\n", "\n", " # Number of datapoints in alphabet\n", " num_datapoints = alphabet_images.shape[0]\n", " num_test = int(np.ceil(0.2 * num_datapoints))\n", "\n", " # Choose a test set (20% of all data).\n", " x_test = alphabet_images[:num_test]\n", " y_test = alphabet_labels[:num_test]\n", "\n", " # Construct an optional validation set (20% of all data).\n", " if construct_valid:\n", " num_valid = num_test\n", "\n", " x_valid = alphabet_images[num_test:num_test+num_valid]\n", " y_valid = alphabet_labels[num_test:num_test+num_valid]\n", " valid_dataset = make_tf_dataset(x_valid, y_valid, num_valid)\n", " else:\n", " num_valid = 0\n", " valid_dataset = None\n", "\n", " # Use the remaining data for the training set.\n", " num_train = num_datapoints - num_valid - num_test\n", " x_train = alphabet_images[-num_train:]\n", " y_train = alphabet_labels[-num_train:]\n", "\n", " # Dataset Augmentation proposed in [2].\n", " if use_data_augmentationt:\n", " num_train *= 20\n", " x_train = tf.concat([x_train] + [random_img_shift_and_rotation(x_train)\n", " for _ in range(19)], axis=0)\n", " y_train = tf.tile(y_train, [20])\n", "\n", " train_dataset = make_tf_dataset(x_train, y_train, num_train)\n", " test_dataset = make_tf_dataset(x_test, y_test, num_test)\n", "\n", " return DatasetSplit(train_dataset, valid_dataset, test_dataset,\n", " num_train, num_valid, num_test)" ] }, { "cell_type": "markdown", "metadata": { "id": "ViGySN-Yq5Td" }, "source": [ "# Implementing FRCL" ] }, { "cell_type": "markdown", "metadata": { "id": "lp-jvHiTElFs" }, "source": [ "There are two key architectural components: \n", "- (i) A neural network defining the feature mapping $\\phi(x)$.\n", "- (ii) A Sparse Variational Gaussian Process operating on the feature mapping. \n", "\n", "We will use standard networks for (i) and focus our attention primarily on the implementation of (ii). The code below uses Sonnet to build Neural Network Architectures and GPFlow to implement sparse GPs:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "J9e-hWJ_r5IH" }, "outputs": [], "source": [ "#@title Import Sonnet \u0026 GPFlow\n", "\n", "import gpflow\n", "import sonnet as snt" ] }, { "cell_type": "markdown", "metadata": { "id": "I-OFqE1gbxws" }, "source": [ "For Permuted MNIST, we use a standard Sonnet Multi-Layer Perceptron (MLP) which we augment by concatenating a bias term for the GP:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "03HfC6x0SaIO" }, "outputs": [], "source": [ "#@title Define an MLP Network to provide the feature mapping for MNIST\n", "\n", "class MLPNetworkWithBias(snt.nets.MLP):\n", " \"\"\"Fully connected MLP base network using Sonnet.\"\"\"\n", "\n", " def __call__(self, inputs: tf.Tensor, *args, **kwargs) -\u003e tf.Tensor:\n", " \"\"\"Applies MLP to `inputs` and adds a column of ones to the feature matrix.\n", "\n", " Args:\n", " inputs: A Tensor of shape `[batch_size, num_input_dimensions]`.\n", " *args: Arguments to snt.nets.MLP. See Sonnet documentation.\n", " **kwargs: Named arguments to snt.nets.MLP. See Sonnet documentation.\n", "\n", " Returns:\n", " outputs: Model output and bias term of shape `[batch_size, output_size+1]`.\n", " \"\"\"\n", " outputs = super(MLPNetworkWithBias, self).__call__(inputs, *args, **kwargs)\n", "\n", " # Add a column of ones to the feature vector to account for the bias\n", " outputs = tf.concat(\n", " [outputs, tf.ones((outputs.shape[0], 1), dtype=outputs.dtype)], axis=1)\n", "\n", " return outputs" ] }, { "cell_type": "markdown", "metadata": { "id": "h5j5lOSib7cE" }, "source": [ "For Sequential Omniglot, we use a good old-fashioned ConvNet with MaxPooling which we define below:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "9_QDJa5kj5_o" }, "outputs": [], "source": [ "#@title Define a Conv. Network to provide the feature mapping for Omniglot\n", "\n", "class ConvNetworkWithBias(snt.Module):\n", " \"\"\"Builds a module out of a sequence of callables.\"\"\"\n", "\n", " def __init__(self,\n", " output_sizes: Sequence[int],\n", " data_format: Text = 'NHWC',\n", " conv_padding: Text = 'SAME',\n", " conv_kernel_shape: Sequence[int] = None,\n", " conv_kernel_stride: Sequence[int] = None,\n", " maxpool_padding: Text = 'VALID',\n", " maxpool_kernel_shape: Sequence[int] = None,\n", " maxpool_kernel_stride: Sequence[int] = None,\n", " name: Optional[Text] = None):\n", " \"\"\"Constructor for ConvNetworkWithBias.\n", "\n", " Args:\n", " output_sizes: Defines the number of output channels for each ConvLayer.\n", " data_format: Specifies semantics for each input batch dimension.\n", " conv_padding: Either `SAME` or `VALID`.\n", " conv_kernel_shape: Size of the convolutional kernel.\n", " conv_kernel_stride: Convolution stride.\n", " maxpool_padding: Either `SAME` or `VALID`.\n", " maxpool_kernel_shape: Size of the maxpool kernel.\n", " maxpool_kernel_stride: MaxPool stride.\n", " name: Optional model name.\n", " \"\"\"\n", " super(ConvNetworkWithBias, self).__init__(name=name)\n", "\n", " if conv_kernel_shape is None:\n", " conv_kernel_shape = [3, 3]\n", " if conv_kernel_stride is None:\n", " conv_kernel_stride = [1, 1]\n", " if maxpool_padding is None:\n", " maxpool_padding = 'VALID'\n", " if maxpool_kernel_shape is None:\n", " maxpool_kernel_shape = [1, 2, 2, 1]\n", " if maxpool_kernel_stride is None:\n", " maxpool_kernel_stride = [1, 2, 2, 1]\n", "\n", " self._output_sizes = output_sizes\n", " self._num_layers = len(self._output_sizes)\n", " self._conv_kernel_shapes = [conv_kernel_shape] * self._num_layers\n", " self._conv_strides = [conv_kernel_stride] * self._num_layers\n", " self._maxpool_kernel_shapes = [maxpool_kernel_shape] * self._num_layers\n", " self._maxpool_kernel_strides = [maxpool_kernel_stride] * self._num_layers\n", "\n", " # Instantiate modules\n", " self._conv_modules = list(\n", " snt.Conv2D( # pylint: disable=g-complex-comprehension\n", " output_channels=self._output_sizes[i],\n", " kernel_shape=self._conv_kernel_shapes[i],\n", " stride=self._conv_strides[i],\n", " padding=conv_padding,\n", " data_format=data_format,\n", " name='conv_2d_{}'.format(i))\n", " for i in range(self._num_layers))\n", " \n", " self._maxpool_modules = list(\n", " lambda x: tf.nn.max_pool(x, \n", " ksize=self._maxpool_kernel_shapes[i],\n", " strides=self._maxpool_kernel_strides[i],\n", " padding=maxpool_padding,\n", " data_format=data_format,\n", " name='maxpool_2d_{}'.format(i)) \n", " for i in range(self._num_layers))\n", " self._flatten = snt.Flatten(name='Flatten')\n", "\n", " def __call__(self, inputs: tf.Tensor) -\u003e tf.Tensor:\n", " \"\"\"Applies ConvNet to `inputs` and adds a column of ones to the feature matrix.\n", "\n", " Args:\n", " inputs: A Tensor of shape `[batch_size, height, width, num_channels]`.\n", "\n", " Returns:\n", " outputs: Model output and bias term `[batch_size, output_size+1]`.\n", " \"\"\"\n", "\n", " # Ensure correct data type\n", " original_dtype = inputs.dtype\n", " outputs = tf.cast(inputs, tf.float32)\n", "\n", " for conv_layer, maxpool_layer in zip(\n", " self._conv_modules, self._maxpool_modules):\n", " outputs = conv_layer(outputs)\n", " outputs = maxpool_layer(outputs)\n", " outputs = tf.nn.relu(outputs)\n", "\n", " outputs = self._flatten(outputs)\n", " # Add a column of ones to the feature vector to account for the bias\n", " outputs = tf.concat(\n", " [outputs, tf.ones((outputs.shape[0], 1), dtype=outputs.dtype)], axis=1)\n", "\n", " return tf.cast(outputs, original_dtype)" ] }, { "cell_type": "markdown", "metadata": { "id": "h5UQZKq-HGV2" }, "source": [ "Let's turn our attention to (ii) Implementing the GP to work on the feature embedding. This is the heart of FRCL:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "wYuUL3P-3el8" }, "outputs": [], "source": [ "#@title Implementing FRCL\n", "\n", "class BaseInducingApproximation(object):\n", " \"\"\"Holds the parameters of a posterior approximation.\"\"\"\n", " def __init__(self,\n", " q_z: tf.Tensor,\n", " q_mean: tf.Variable,\n", " q_sqrt: tf.Variable,\n", " q_z_init: tf.Tensor):\n", " \"\"\"Constructor for BaseInducingApproximation.\n", "\n", " Args:\n", " q_z: Inducing points. A Tensor of shape `[num_inducing_points, num_input_features]`.\n", " q_mean: Mean of the variational distribution of shape `[num_inducing_points, num_classes]`.\n", " q_sqrt: Cholesky (sqrt) matrices of the variational distribution `[]`.\n", " q_z_init: Initial inducing points. A Tensor of shape `[num_inducing_points, num_input_features]`.\n", " \"\"\"\n", " self.q_z = q_z\n", " self.q_mean = q_mean\n", " self.q_sqrt = q_sqrt\n", " self.q_z_init = q_z_init\n", "\n", "\n", "class InducingApproximation(BaseInducingApproximation):\n", " \"\"\"Creates a variational approximation in function/GP space.\"\"\"\n", "\n", " def __init__(self,\n", " num_inducing_points: int,\n", " num_classes: int,\n", " inducing_init_value: tf.Tensor):\n", " \"\"\"Constructor for InducingApproximation.\n", "\n", " Args:\n", " num_inducing_points: Number of inducing points to use.\n", " num_classes: Number of classes in classification problem.\n", " inducing_init_value: Initial value. A Tensor of shape `[num_inducing_points, num_input_features]`.\n", " \"\"\"\n", " q_mean = tf.Variable(np.zeros(\n", " (num_inducing_points, num_classes)).astype(np.float64))\n", " q_sqrt = tf.Variable(np.array(\n", " [np.eye(num_inducing_points).astype(np.float64)\n", " for _ in range(num_classes)]).T)\n", "\n", " q_z = tf.constant(inducing_init_value)\n", " q_z_init = tf.constant(inducing_init_value)\n", " super(InducingApproximation, self).__init__(q_z, q_mean, q_sqrt, q_z_init)\n", "\n", "\n", "class WeightSpaceApproximation(object):\n", " \"\"\"Creates a variational approximation in weight space.\"\"\"\n", "\n", " def __init__(self,\n", " num_features: int,\n", " num_classes: int,\n", " rng: np.random.RandomState):\n", " \"\"\"Constructor for WeightSpaceApproximation.\n", "\n", " Args:\n", " num_features: Number of inducing points to use.\n", " num_classes: Number of classes in classification problem.\n", " rng: Random number generator.\n", " \"\"\"\n", " scalar = 1.0/np.sqrt(num_features)\n", " self.q_w_mean = tf.Variable(scalar*rng.randn(\n", " num_features, num_classes).astype(np.float64))\n", " self.q_w_sqrt = tf.Variable(np.array(\n", " [np.eye(num_features).astype(np.float64)\n", " for _ in range(num_classes)]).T)\n", "\n", "class ContinualGPmodel(object):\n", " \"\"\"Continual learning GP-based model tha uses variational inducing points.\"\"\"\n", "\n", " def __init__(self,\n", " num_input_dimensions: int,\n", " num_features: int,\n", " num_classes: int,\n", " base_network: snt.Module,\n", " likelihood: gpflow.likelihoods,\n", " noise_variance: float = 1e-3):\n", " \"\"\"Constructor for continual GP model.\n", "\n", " Args:\n", " num_input_dimensions: Dimensionality of the input space.\n", " num_features: Size of the feature including the bias term.\n", " num_classes: Number of classes in classification problem.\n", " base_network: Provides the feature mappping.\n", " likelihood: Likelihood for the datatype at hand.\n", " noise_variance: Added to diagonal of covariance matrix.\n", " \"\"\"\n", "\n", " self.num_input_dimensions = num_input_dimensions\n", " self.num_features = num_features\n", " self.num_classes = num_classes\n", " self.past_inducing_approxs = []\n", " self.current_inducing_approx = None\n", " self.current_weight_space_approx = None\n", " self.base_network = base_network\n", " self.likelihood = likelihood\n", " # Constant noise/jitter to be added only to the inducing point covariances\n", " self.noise_variance = tf.constant(noise_variance, dtype=tf.float64)\n", "\n", " def get_weight_space_approx(self, rng):\n", " \"\"\"Initialise a new weight space approximation.\n", "\n", " Args:\n", " rng: Random number generator.\n", " \"\"\"\n", " self.current_weight_space_approx = WeightSpaceApproximation(\n", " self.num_features, self.num_classes, rng)\n", "\n", " def covariance_self(self, matrix_a: tf.Tensor) -\u003e tf.Tensor:\n", " \"\"\"Compute linear kernel plus noise for features with themself.\n", "\n", " Args:\n", " matrix_a: Matrix of shape `[batch, num_features]`.\n", "\n", " Returns:\n", " Covariance matrix of shape `[batch, batch]`.\n", "\n", " \"\"\"\n", " return tf.matmul(\n", " matrix_a, matrix_a, transpose_b=True) + self.noise_variance * tf.eye(\n", " tf.cast(matrix_a.shape[0], tf.int32), dtype=tf.float64)\n", "\n", " def covariance_cross(self,\n", " matrix_a: tf.Tensor,\n", " matrix_b: tf.Tensor) -\u003e tf.Tensor:\n", " \"\"\"Compute linear kernel for features with other features.\n", "\n", " No noise in these case because features are assumed distinct.\n", "\n", " Args:\n", " matrix_a: Tensor of shape `[batch_a, num_features]`.\n", " matrix_b: Tensor of shape `[batch_b, num_features]`.\n", "\n", " Returns:\n", " Covariance matrix of shape `[batch_a, batch_b]`.\n", "\n", " \"\"\"\n", " return tf.matmul(matrix_a, matrix_b, transpose_b=True)\n", "\n", " def covariance_diag(self, matrix: tf.Tensor) -\u003e tf.Tensor:\n", " \"\"\"Compute diagonal of linear kernel matrix for features with themself.\n", "\n", " Args:\n", " matrix: Tensor of shape `[batch, num_features]`.\n", "\n", " Returns:\n", " Diagonal covariance vector of shape `[batch]`.\n", " \"\"\"\n", "\n", " # We do not add noise_variance/jitter to this diagonal, but only to the\n", " # inducing matrix, so inducing variables are noisy function values and\n", " # through them we approximate the exact noise-free GP model.\n", " return tf.reduce_sum(matrix * matrix, axis=1)\n", "\n", " def objective_weight_space(self,\n", " inputs: tf.Tensor,\n", " outputs: tf.Tensor,\n", " num_task_points: int):\n", " \"\"\"Compute the variational objective for the model.\n", "\n", " Args:\n", " inputs: A Tensor of shape `[batch_size, num_input_dimensions]`.\n", " outputs: Class labels. Shape (batch, num_classes).\n", " num_task_points: Total number of data points in task.\n", "\n", " Returns:\n", " variational objective for the bound.\n", " \"\"\"\n", " batch_size = tf.cast(inputs.shape[0], tf.int32)\n", "\n", " # Add KL divergences for the all previous tasks.\n", " # Rightmost term of Eq. (4) in the paper.\n", " kl_historical = 0\n", " for inducing_approx in self.past_inducing_approxs:\n", " # z_features shape (num_inducing_points, num_features)\n", " z_features = self.base_network(inducing_approx.q_z)\n", " # p_cov shape (num_inducing_points, num_inducing_points)\n", " p_cov = self.covariance_self(z_features)\n", " kl_historical += gpflow.kullback_leiblers.gauss_kl(\n", " inducing_approx.q_mean,\n", " tf.transpose(inducing_approx.q_sqrt, (2, 0, 1)),\n", " K=p_cov)\n", "\n", " # For the current task we do inference in the weight space\n", " data_features = self.base_network(inputs)\n", " data_mean = tf.matmul(data_features,\n", " self.current_weight_space_approx.q_w_mean)\n", "\n", " tr_q_w_sqrt = tf.compat.v1.matrix_band_part(tf.transpose(\n", " self.current_weight_space_approx.q_w_sqrt, (2, 0, 1)), -1, 0)\n", " expand_data_features = tf.tile(\n", " tf.expand_dims(data_features, 0), [self.num_classes, 1, 1])\n", " feat_w_sqrt = tf.matmul(expand_data_features, tr_q_w_sqrt)\n", " data_var = tf.transpose(tf.reduce_sum(tf.square(feat_w_sqrt), axis=2))\n", "\n", " # Middle term of Eq. (4) in the paper.\n", " kl_current = gpflow.kullback_leiblers.gauss_kl(\n", " self.current_weight_space_approx.q_w_mean,\n", " tf.transpose(self.current_weight_space_approx.q_w_sqrt, (2, 0, 1)),\n", " K=None)\n", "\n", " # Left term of Eq. (4) in the paper.\n", " exp_likes = self.likelihood.variational_expectations(\n", " data_mean, data_var, outputs)\n", " # Scale this correclty by the total number of datapoints in the task.\n", " ratio = tf.cast(\n", " num_task_points, tf.float64) / tf.cast(batch_size, tf.float64)\n", " reconstruction_cost = tf.reduce_sum(exp_likes) * ratio\n", "\n", " # Full objective. Eq. (4) in the paper.\n", " objective = kl_historical + kl_current - reconstruction_cost\n", " return objective, reconstruction_cost, kl_current\n", "\n", " def trace_term(self,\n", " inputs: tf.Tensor,\n", " q_z: tf.Tensor) -\u003e tf.Tensor:\n", " \"\"\"Compute the trace term. Useful for search over inducing points.\n", "\n", " Args:\n", " inputs: A Tensor of shape `[batch_size, num_input_dimensions]`.\n", " q_z: Inducing points of shape `[num_inducing_points, num_input_dimensions]`.\n", "\n", " Returns:\n", " variational objective for the bound.\n", " \"\"\"\n", "\n", " # Shape [num_inducing_points, num_features]\n", " inducing_features = self.base_network(q_z)\n", " # Shape [batch_size, num_features]\n", " data_features = self.base_network(inputs)\n", "\n", " # Compute covariance\n", " kmn = self.covariance_cross(inducing_features, data_features)\n", " kmm = self.covariance_self(inducing_features)\n", " knn = self.covariance_diag(data_features)\n", "\n", " # Implements Equation (6) in the paper and speeds up computations by\n", " # applying the matrix inversion formula if needed.\n", " if q_z.shape[0] \u003c= self.num_features:\n", " lm = tf.compat.v1.cholesky(kmm)\n", " v = tf.compat.v1.matrix_triangular_solve(lm, kmn, lower=True)\n", " fvar = knn - tf.reduce_sum(tf.square(v), 0)\n", " else:\n", " phimphim = tf.matmul(inducing_features, inducing_features,\n", " transpose_a=True)\n", " phimphim_noise = phimphim + self.noise_variance * tf.eye(\n", " tf.cast(self.num_features, tf.int32), dtype=tf.float64)\n", "\n", " sqrt_phimphin_noise = tf.compat.v1.cholesky(phimphim_noise)\n", "\n", " inv_sqrt_phimphin_noise_phim = tf.compat.v1.matrix_triangular_solve(\n", " sqrt_phimphin_noise, tf.transpose(inducing_features),\n", " lower=True)\n", " v = tf.matmul(inv_sqrt_phimphin_noise_phim, kmn)\n", "\n", " fvar = knn - (1.0/self.noise_variance)*(\n", " tf.reduce_sum(tf.square(kmn), 0) - tf.reduce_sum(tf.square(v), 0))\n", "\n", " return tf.reduce_sum(fvar)\n", "\n", " def function_space_prediction(self,\n", " inputs: tf.Tensor,\n", " q_z: tf.Tensor,\n", " q_mean: tf.Variable,\n", " q_sqrt: tf.Variable,\n", " outputs: tf.Tensor = None):\n", " \"\"\"Compute predictions from the model in function/GP space.\n", "\n", " Args:\n", " inputs: Tensor of shape `[batch, num_input_dimensions]`.\n", " q_z: Inducing points of shape `[num_inducing_points, input_dimensions]`.\n", " q_mean: Mean of the variational distribution of shape `[num_inducing_points, num_classes]`.\n", " q_sqrt: Cholesky (sqrt) matrices of the variational distribution `[]`.\n", " outputs: Class labels. Optional tensor of Shape `[batch, num_clsses]`.\n", "\n", " Returns:\n", " When outputs=None, it returns predictive mean and variance from model\n", " otherwise it returns the log predictive density for the outputs.\n", " \"\"\"\n", "\n", " inducing_features = self.base_network(q_z)\n", " data_features = self.base_network(inputs)\n", "\n", " # Compute covariance\n", " kmn = self.covariance_cross(inducing_features, data_features)\n", " kmm = self.covariance_self(inducing_features)\n", " knn = self.covariance_diag(data_features)\n", "\n", " func_mean, func_var = gpflow.conditionals.base_conditional(\n", " kmn, kmm, knn, f=q_mean, q_sqrt=tf.transpose(q_sqrt, (2, 0, 1)),\n", " full_cov=False, white=False)\n", "\n", " if outputs is None:\n", " return self.likelihood.predict_mean_and_var(func_mean, func_var)\n", " else:\n", " return self.likelihood.predict_density(func_mean, func_var, outputs)\n", "\n", " def complete_task_weight_space(self,\n", " z: tf.Tensor,\n", " z_init: tf.Tensor):\n", " \"\"\"Completes training of current task in weight space.\n", "\n", " Args:\n", " z: Final inducing points for current task of shape `[num_inducing_points, num_features]`.\n", " z_init: Initial inducing points for current task of shape `[num_inducing_points, num_features]`.\n", " \"\"\"\n", "\n", " current_inducing_features = self.base_network(z)\n", " current_q_mean = tf.matmul(\n", " current_inducing_features, self.current_weight_space_approx.q_w_mean)\n", " noise_matrix = self.noise_variance * tf.eye(\n", " tf.cast(tf.shape(z)[0], tf.int32), dtype=tf.float64)\n", " noise_matrix = tf.tile(\n", " tf.expand_dims(noise_matrix, 0), [self.num_classes, 1, 1])\n", " tr_q_w_sqrt = tf.linalg.band_part(tf.transpose(\n", " self.current_weight_space_approx.q_w_sqrt, (2, 0, 1)), -1, 0)\n", " expand_current_inducing_features = tf.tile(\n", " tf.expand_dims(current_inducing_features, 0), [self.num_classes, 1, 1])\n", " feat_w_sqrt = tf.matmul(expand_current_inducing_features, tr_q_w_sqrt)\n", " q_cov = tf.matmul(feat_w_sqrt, feat_w_sqrt, transpose_b=True)\n", " q_cov = q_cov + noise_matrix\n", " current_q_sqrt = tf.transpose(tf.compat.v1.cholesky(q_cov), (1, 2, 0))\n", "\n", " self.past_inducing_approxs.append(\n", " BaseInducingApproximation(z, tf.identity(current_q_mean),\n", " tf.identity(current_q_sqrt), z_init))" ] }, { "cell_type": "markdown", "metadata": { "id": "QGRQ3-vmpVOu" }, "source": [ "The only remaning bit is to define the evaluation functions that allow us to measure model performance:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "iDfyq2E8pUha" }, "outputs": [], "source": [ "#@title Evaluation utility functions\n", "\n", "def get_accuracy_rate(\n", " predictions: np.array,\n", " labels: np.array) -\u003e float:\n", " \"\"\"Compute mean classification accuracy.\n", "\n", " Args:\n", " predictions: A numpy array of shape `[batch_size, input_size]`.\n", " labels: Ground truth labels of shape `[batch_size, input_size]`.\n", "\n", " Returns:\n", " outputs: Model output and bias term `[batch_size, output_size+1]`.\n", " \"\"\"\n", " return np.mean(np.equal(np.argmax(predictions, axis=1), labels))\n", "\n", "def evaluate_on_all_tasks(\n", " eval_iterators: Sequence[Iterators],\n", " model: ContinualGPmodel) -\u003e Sequence[float]:\n", " \"\"\"Evaluates models on all tasks. Assumes iterators provide entire dataset.\n", "\n", " Args:\n", " eval_iterators: Provides entire data to evaluate model on. One per task.\n", " model: A ContinualGPmodel to be evaluated.\n", "\n", " Returns:\n", " List of accuracies achieved on each task.\n", " \"\"\"\n", "\n", " # Evaluate test accuracies for all tasks\n", " eval_accuracies = []\n", " for task, eval_iterator in enumerate(eval_iterators):\n", " # Fetch the whole eval dataset\n", " eval_input, eval_output = next(eval_iterator)\n", "\n", " # Model prediction\n", " pred_prob = model.function_space_prediction(\n", " eval_input,\n", " model.past_inducing_approxs[task].q_z,\n", " model.past_inducing_approxs[task].q_mean,\n", " model.past_inducing_approxs[task].q_sqrt)[0]\n", "\n", " test_accuracy_rate = get_accuracy_rate(pred_prob, eval_output)\n", " eval_accuracies.append(test_accuracy_rate)\n", "\n", " return eval_accuracies" ] }, { "cell_type": "markdown", "metadata": { "id": "Nnl_sw4cqrfN" }, "source": [ "# Training\n", "\n", "Now that we've set up the model, let's define a basic Continual Learning Setup. The next code block allows you to choose between the two data sources and vary some of the fundamental CL experimental parameters. The values suggested below are those used in the paper to report result." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "DfBnBfSYDhqK" }, "outputs": [], "source": [ "#@title Defining the training protocol\n", "\n", "exp_name = 'Permuted MNIST' #@param [\"Permuted MNIST\", \"Sequential Omniglot\"] {allow-input: false}\n", "\n", "# Random number generator\n", "rng_seed = 42 #@param\n", "rng_state = np.random.RandomState(rng_seed)\n", "\n", "#@markdown P-MNIST: 10 Omniglot: 50\n", "num_tasks = 11 #@param {type:\"slider\", min:1, max:1000, step:1}\n", "\n", "# General training settings (Default: Permuted MNIST)\n", "learning_rate = 1e-3 #@param\n", "#@markdown P-MNIST: 128 Omniglot: 32\n", "train_batch_size = 128 #@param {type:\"slider\", min:1, max:1000, step:1}\n", "#@markdown P-MNIST: 2000 Omniglot: 2500\n", "num_train_iters = 2000 #@param {type:\"slider\", min:1, max:5000, step:1}\n", "use_validation_dataset = False #@param {type:\"boolean\"}\n", "\n", "\n", "# FRCL settings\n", "which_discrete_loss = 'trace_term' #@param [\"trace_term\", \"random\"] {allow-input: false}\n", "num_optim_steps_discrete_search = 1000 #@param {type:\"slider\", min:1, max:5000, step:1}\n", "\n", "#@markdown Only used for Omniglot\n", "use_data_augmentation = False #@param {type:\"boolean\"}\n", "\n", "\n", "if exp_name == 'Permuted MNIST':\n", " tasks = list(range(num_tasks))\n", " download_data = prepare_mnist\n", " load_task_data = load_mnist_permutation\n", "\n", " # MLP Size. Based on the experimental protocol in [1].\n", " hidden_units = [100, 100]\n", "\n", " num_output_dim = 10\n", "\n", " # Instantiate network that defines the feature mapping\n", " BaseNetwork = MLPNetworkWithBias\n", "\n", " if use_data_augmentation:\n", " print('Data augmentation is non-standard with Permuted MNIST. Ignoring option.')\n", " use_data_augmentation = False\n", "elif exp_name == 'Sequential Omniglot':\n", " tasks = list(range(num_tasks))\n", " assert num_tasks \u003c= 50, 'Only 50 tasks are available'\n", "\n", " download_data = prepare_omniglot\n", " load_task_data = load_omniglot_alphabet\n", "\n", " # ConvNet output channels. Based on the experimental protocol in [2].\n", " hidden_units = [64, 64, 64, 64]\n", "\n", " # This is the maximum number of characters in any Omniglot alphabet\n", " num_output_dim = 54\n", "\n", " # Instantiate network that defines the feature mapping\n", " BaseNetwork = ConvNetworkWithBias\n", "else:\n", " print('unknown dataset')\n", "\n", "print('\\nDownloading dataset...')\n", "with IPython.utils.io.capture_output() as captured:\n", " raw_data = download_data(num_tasks)\n", "\n", "#@markdown P-MNIST: 200 Omniglot: 2 (to be multiplied by the #characters/alphabet)\n", "num_inducing_points_per_task = 200 #@param {type:\"slider\", min:1, max:1000, step:1}\n", "\n", "# The specification of inducing points is absolute for P-MNIST and relative to the number of characters/alphabet for Omniglot\n", "if exp_name == 'Permuted MNIST':\n", " num_inducing_points_per_task = [num_inducing_points_per_task] * num_tasks\n", "else:\n", " num_inducing_points_per_task = [num_inducing_points_per_task * t for t in\n", " raw_data.task_metadata[1]]" ] }, { "cell_type": "markdown", "metadata": { "id": "7Sz-EzPNDxum" }, "source": [ "Let's setup data iterators and instatiate an FRCL model:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "V-6cBCCfDu8u" }, "outputs": [], "source": [ "#@title Instantiate model\n", "\n", "num_pixels = 784\n", "num_gp_features = hidden_units[-1] + 1 # Add one to account for the bias\n", "\n", "# Instantiate Continal Learning Gaussian Process Model\n", "model_likelihood = gpflow.likelihoods.MultiClass(num_output_dim)\n", "network = BaseNetwork(output_sizes=hidden_units)\n", "FRCL = ContinualGPmodel(num_pixels, num_gp_features,\n", " num_output_dim, network, model_likelihood)" ] }, { "cell_type": "markdown", "metadata": { "id": "GOIN529ADhLP" }, "source": [ "Let's start training. The code below runs the main training loop:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "eQiqr9a10skX" }, "outputs": [], "source": [ "#@title Main training loop\n", "\n", "discr_search_losses = []\n", "test_accuracies = []\n", "test_iterators = []\n", "\n", "for t in range(num_tasks):\n", " print('Learning task {}'.format(t+1))\n", " discr_search_loss = []\n", "\n", " task_data = load_task_data(raw_data, t,\n", " use_validation_dataset,\n", " use_data_augmentation)\n", " iterators = create_iterators(task_data)\n", "\n", " # Get a weight space approximation for the current task\n", " FRCL.get_weight_space_approx(rng_state)\n", " # Set up a task-specific optimiser\n", " optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)\n", "\n", " # --- Task Training ---\n", " print('\\tStarting optimisation')\n", " for training_index in range(num_train_iters):\n", " train_inputs, train_outputs = next(iterators.train)\n", "\n", " def loss_fn():\n", " train_loss, _, _ = FRCL.objective_weight_space(\n", " train_inputs, train_outputs, task_data.num_train)\n", "\n", " return train_loss\n", "\n", " optimizer.minimize(loss_fn)\n", "\n", " print('\\tFinished training')\n", "\n", " # --- Discrete inducing point Optimisation ---\n", " num_inducing_points_for_task = num_inducing_points_per_task[t]\n", "\n", " # Select a random set of inducing inputs from the discrete search set\n", " x_discr = next(iterators.discr_search)[0]\n", " perm_train = np.random.permutation(task_data.num_train)\n", "\n", " z_idx = perm_train[-num_inducing_points_for_task:]\n", " z_ = select_datapoints(x_discr, z_idx)\n", "\n", " if 'random' == which_discrete_loss:\n", " print('\\tUsing random inducing points')\n", " elif 'trace_term' == which_discrete_loss:\n", " # Indicates a candidate training point to replace the inducing point with\n", " train_set_id = 0\n", "\n", " # Data to evaluate inducing set on\n", " discr_search_input, _ = next(iterators.discr_search_eval)\n", " current_loss = -FRCL.trace_term(discr_search_input, z_)\n", " discr_search_loss.append((0, current_loss, z_))\n", "\n", " accepted_moves = 0\n", " print('\\tOptimising inducing points using discrete search.')\n", " for disr_search_iter in range(num_optim_steps_discrete_search):\n", " inducing_set_id = disr_search_iter % num_inducing_points_for_task\n", " z_idx_proposed = z_idx.copy()\n", "\n", " # Replace inducing point and re-evaluate\n", " z_idx_proposed[inducing_set_id] = perm_train[train_set_id]\n", " proposed_loss = -FRCL.trace_term(\n", " discr_search_input, select_datapoints(x_discr, z_idx_proposed))\n", "\n", " if proposed_loss \u003e current_loss:\n", " z_idx = z_idx_proposed.copy()\n", " current_loss = proposed_loss\n", " accepted_moves += 1\n", "\n", " discr_search_loss.append(\n", " (disr_search_iter, current_loss, z_))\n", "\n", " if train_set_id == task_data.num_train-1:\n", " perm_train = np.random.permutation(task_data.num_train)\n", " train_set_id = 0\n", " else:\n", " train_set_id += 1\n", "\n", " print('\\tAccepted moves: {}'.format(accepted_moves))\n", " discr_search_losses.append(discr_search_loss)\n", "\n", " # --- Complete the task ---\n", " FRCL.complete_task_weight_space(z_, discr_search_loss[0][2])\n", "\n", " # --- Evaluation on all tasks thus far ---\n", " test_iterators.append(iterators.test)\n", " test_accuracies.append(\n", " evaluate_on_all_tasks(test_iterators, FRCL))\n", "\n", "print('Done.')\n", "\n", "mean_test_accuracy = list(map(np.mean, test_accuracies))\n", "\n", "print('\\n---\\nFinal accuracy: {}\\n---'.format(mean_test_accuracy[-1]))" ] }, { "cell_type": "markdown", "metadata": { "id": "1UmeQb-3bOW7" }, "source": [ "Let's visualise overall (first column) along with task-specific performance that allows us to visualise forward/backward transfer:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "BmZwTixhRv67" }, "outputs": [], "source": [ "#@title Visualising overall and per-task accuracies\n", "\n", "from matplotlib.ticker import MaxNLocator\n", "\n", "\n", "def _format_axis(axis: matplotlib.pyplot.axis,\n", " y_limit: Sequence[float],\n", " title_str: Text = None):\n", " \"\"\"Format axis.\n", "\n", " Args:\n", " axis: Axis to format.\n", " y_limit: Limit to apply on the y-axis.\n", " title_str: String to use for axis title.\n", " \"\"\"\n", " axis.set_xlim((0.5, num_tasks + 0.5))\n", " axis.set_ylim(y_limit)\n", " # Force only integer tirkcs\n", " axis.xaxis.set_major_locator(MaxNLocator(integer=True))\n", "\n", " if title_str is not None:\n", " axis.set_title(title_str)\n", "\n", "\n", "colours = sns.color_palette()\n", "\n", "fig = plt.figure(figsize=(10, 10))\n", "layout = (int(np.ceil(num_tasks / 2) + 1), 2)\n", "ylim = (np.min([np.min(t) for t in test_accuracies]) * 0.975, 1.0)\n", "\n", "# Plot the overall mean accuracy\n", "ax = plt.subplot2grid(layout, (0, 0), colspan=2)\n", "ax.plot(range(1, num_tasks + 1), mean_test_accuracy, marker='o', c='k')\n", "ax.set_xlabel('Evaluated after learning task')\n", "ax.set_ylabel('Test accuracy (%)')\n", "_format_axis(\n", " ax, ylim,\n", " 'Overall mean test accuracy: FRCL ({})'.format(which_discrete_loss))\n", "\n", "# Plot results for each task\n", "for t in range(num_tasks):\n", " ax = plt.subplot2grid(layout, (t // 2 + 1, t % 2))\n", " ax.plot(\n", " range(t + 1, num_tasks + 1),\n", " test_accuracies[-t - 1],\n", " marker='o',\n", " c=colours[t])\n", "\n", " _format_axis(ax, ylim, 'Test accuracy for task: {}'.format(t + 1))\n", "\n", "sns.despine()\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "bR0yr75Bbfgh" }, "source": [ "The code below allows us to look at some of the inducing points we optimised for. Each row shows inducing points for a different task:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "61mZYuu9MTH6" }, "outputs": [], "source": [ "#@title Visualising inducing points\n", "\n", "num_inducing_points_per_task_to_show = 20 #@param\n", "max_number_of_tasks = 5 #@param\n", "\n", "max_number_of_tasks = min(max_number_of_tasks, num_tasks)\n", "num_inducing_points_per_task_to_show = min(\n", " num_inducing_points_per_task_to_show, max(num_inducing_points_per_task))\n", "\n", "fig, axarr = plt.subplots(\n", " max_number_of_tasks,\n", " num_inducing_points_per_task_to_show,\n", " figsize=(10, 10))\n", "\n", "for i in range(max_number_of_tasks):\n", " task_inducing_points = FRCL.past_inducing_approxs[i].q_z.numpy()\n", "\n", " if 'Permuted MNIST' == exp_name:\n", " task_inv_perm = raw_data.task_metadata[1][i]\n", " # Apply inverse permutation to allow visualisation\n", " task_inducing_points = task_inducing_points[:, task_inv_perm]\n", " task_inducing_points = task_inducing_points.reshape([-1, 28, 28])\n", " for j in range(num_inducing_points_per_task_to_show):\n", " axarr[i, j].imshow(task_inducing_points[j], cmap='gray')\n", " axarr[i, j].axis('off')\n", "\n", "plt.subplots_adjust(wspace=0, hspace=0)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "VhaEvkSdhYWQ" }, "source": [ "# References\n", "\n", "[1] Zenke, Friedemann, Ben Poole, and Surya Ganguli. \"Continual learning through synaptic intelligence.\" Proceedings of machine learning research 70 (2017): 3987.\n", "\n", "[2] Schwarz, J., Luketina, J., Czarnecki, W. M., Grabska-Barwinska, A., Teh, Y. W., Pascanu, R., \u0026 Hadsell, R. (2018). Progress \u0026 compress: A scalable framework for continual learning. arXiv preprint arXiv:1805.06370.\n", "\n", "[3] Goodfellow, Ian J., et al. \"An empirical investigation of catastrophic forgetting in gradient-based neural networks.\" arXiv preprint arXiv:1312.6211 (2013)." ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "last_runtime": {}, "name": "Functional Regularisation for Continual Learning", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: fusion_tcv/README.md ================================================ # TCV Fusion Control Objectives This code release contains the rewards, control targets, noise model and parameter variation for the paper *Magnetic control of tokamak plasmas through deep reinforcement learning*, published in Nature in ... 2021. ## Disclaimer This release is useful for understanding the details of specific elements of the learning architecture, however it does not contain the simulator ([FGE](https://infoscience.epfl.ch/record/283775), part of [LIUQE](https://www.epfl.ch/research/domains/swiss-plasma-center/liuqe-suite/)), the trained/exported control policies, nor the agent training infrastructure. This release is useful for replicating our results which can be done by assembling all the components, many of which are open source elsewhere. Please see the "Code Availability" statement in the paper for more information. The learning algorithm we used is [MPO](https://arxiv.org/abs/1812.02256), which has an open source [reference implementation](https://github.com/deepmind/acme) in [Acme](https://arxiv.org/abs/2006.00979). Additionally, the open source software libraries [launchpad](https://arxiv.org/abs/2106.04516) ([code](https://github.com/deepmind/launchpad)), [dm_env](https://github.com/deepmind/dm_env), [sonnet](https://github.com/deepmind/sonnet), [tensorflow](https://arxiv.org/abs/1603.04467) ([code](https://www.tensorflow.org/)) and [reverb](https://arxiv.org/pdf/2102.04736.pdf) ([code](https://github.com/deepmind/reverb)) were used. FGE and LIUQE are available on request from the [Swiss Plasma Center](https://www.epfl.ch/research/domains/swiss-plasma-center/) at [EPFL](https://www.epfl.ch/en/) (email [Federico Felici](mailto:federico.felici@epfl.ch)), subject to agreement. ## Objectives used in published TCV experiments Take a look at `rewards_used.py` and `references.py` for the rewards and control targets used in the paper. To print the actual control targets, run: ```sh $ python3 -m fusion_tcv.references_main --refs=snowflake ``` Make sure to install the dependencies: `pip install -r fusion_tcv/requirements.txt`. ## Overview of files * `agent.py`: An interface for what a real agent might look like. This mainly exists so the run loop builds. * `combiners.py`: Defined combiners that combine multiple values into one. Useful for creating a scalar reward from a set of reward components. * `environment.py`: Augments the FGE simulator to make it an RL environment (parameter variation, reward computation, etc.). * `experiments.py`: The environment definitions published in the paper. * `fge_octave.py`: An interface for the simulator. Given that FGE isn't open source, this is a just a sketch of how you might use it. * `fge_state.py`: A python interface to the simulator state. Given that FGE isn't open source, this is a sketch and returns fake data. * `named_array.py`: Makes it easier to interact with numpy arrays by name. Useful for referring to parts of the control targets/references. * `noise.py`: Adds action and observation noise. * `param_variation.py`: Defines the physics parameters used by the simulation. * `ref_gen.py`: The tools to generate control targets per time step. * `references.py`: The control targets used in the experiments. * `references_main.py`: Runnable script to output the references to the command line. * `rewards.py`: Computes all of the reward components and combines them together to create a single scalar reward for the environment. * `rewards_used.py`: The actual reward definitions used in the experiments. * `run_loop.py`: An example of interacting with the environment to generate a trajectory to send to the replay buffer. This code is notional as a complete version would require an Agent and a Simulator implementation. * `targets.py`: The reward components that pull data from the control targets and the simulator state for generating rewards. This depends on FGE, so cannot be run. * `tcv_common.py`: Defines the physical attributes of the TCV fusion reactor, and how to interact with it. * `terminations.py`: Defines when the simulation should stop. * `trajectory.py`: Stores the history of the episode. * `transforms.py`: Turns error values into normalized values. ================================================ FILE: fusion_tcv/agent.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """An agent interface for interacting with the environment.""" import abc import dm_env import numpy as np from fusion_tcv import tcv_common class AbstractAgent(abc.ABC): """Agent base class.""" def reset(self): """Reset to the initial state.""" @abc.abstractmethod def step(self, timestep: dm_env.TimeStep) -> np.ndarray: """Return the action given the current observations.""" class ZeroAgent(AbstractAgent): """An agent that always returns "zero" actions.""" def step(self, timestep: dm_env.TimeStep) -> np.ndarray: del timestep return np.zeros(tcv_common.action_spec().shape, tcv_common.action_spec().dtype) ================================================ FILE: fusion_tcv/combiners.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Reward combiners.""" import abc import math from typing import List, Optional, Tuple import dataclasses import numpy as np from scipy import special from fusion_tcv import targets class AbstractCombiner(targets.AbstractTarget): """Combines a set of rewards, possibly weighted.""" @abc.abstractmethod def __call__(self, values: List[float], # pytype: disable=signature-mismatch # overriding-return-type-checks weights: Optional[List[float]] = None) -> List[float]: """Combines a set of rewards, possibly weighted.""" @property def outputs(self) -> int: """All combiners return exactly one value, even if it's NaN.""" return 1 @staticmethod def _clean_values_weights( values: List[float], weights: Optional[List[float]] = None) -> Tuple[List[float], List[float]]: """Validate the values and weights, and if no weights, return equal.""" if weights is None: weights = [1] * len(values) else: if len(values) != len(weights): raise ValueError("Number of weights don't match values. " f"values: {len(values)}, weights: {len(weights)}") for w in weights: if w < 0: raise ValueError(f"Weights must be >=0: {w}") new_values_weights = [(v, w) for v, w in zip(values, weights) if not np.isnan(v) and w > 0] return tuple(zip(*new_values_weights)) if new_values_weights else ([], []) class Mean(AbstractCombiner): """Take the weighted mean of the values. Ignores NaNs and values with weight 0. """ def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, weights = self._clean_values_weights(values, weights) if not values: return [float("nan")] return [sum(r * w for r, w in zip(values, weights)) / sum(weights)] def _multiply(values, weights, mean): """Multiplies the values taking care to validate the weights. Defines 0^0 = 1 so a reward with no weight is "off" even if the value is 0. Args: values: The reward values. weights: The reward weights. mean: If true, divides by the sum of the weights (computes the geometric mean). Returns: Product of v^w across the components. """ # If weight and value are both zero, set the value to 1 so that 0^0 = 1. values = [1 if (v == 0 and w == 0) else v for (v, w) in zip(values, weights)] if any(v == 0 for v in values): return [0] den = sum(weights) if mean else 1 return [math.exp(sum(np.log(values) * weights) / den)] class Multiply(AbstractCombiner): """Combine by multiplying the (weighted) values together. This is the same as Geometric mean, but without the n^th root taken at the end. This means doing poorly on several rewards compounds, rather than averages. As such it likely only makes sense after the non-linearities, ie where the values are in the 0-1 range, otherwise it'll cause them to increase. This is even harsher than Min or SmoothMax(-inf). Ignores NaNs and values with weight 0. """ def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, weights = self._clean_values_weights(values, weights) if not values: return [float("nan")] return _multiply(values, weights, mean=False) class GeometricMean(AbstractCombiner): """Take the weighted geometric mean of the values. Pushes values towards 0, so likely only makes sense after the non-linear transforms. Ignores NaNs and values with weight 0. """ def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, weights = self._clean_values_weights(values, weights) if not values: return [float("nan")] return _multiply(values, weights, mean=True) class Min(AbstractCombiner): """Take the min of the values. Ignores NaNs and values with weight 0.""" def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, _ = self._clean_values_weights(values, weights) if not values: return [float("nan")] return [min(values)] class Max(AbstractCombiner): """Take the max of the values. Ignores NaNs and values with weight 0.""" def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, _ = self._clean_values_weights(values, weights) if not values: return [float("nan")] return [max(values)] @dataclasses.dataclass(frozen=True) class LNorm(AbstractCombiner): """Take the l-norm of the values. Reasonable norm values (assuming normalized): - 1: avg of the values - 2: euclidean distance metric - inf: max value Values in between go between the average and max. As the l-norm goes up, the result gets closer to the max. Normalized means dividing by the max possible distance, such that the units still make sense. This likely only makes sense before the non-linear transforms. SmoothMax is similar but more flexible and understandable. Ignores NaNs and values with weight 0. """ norm: float normalized: bool = True def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, _ = self._clean_values_weights(values, weights) if not values: return [float("nan")] lnorm = np.linalg.norm(values, ord=self.norm) if self.normalized: lnorm /= np.linalg.norm(np.ones(len(values)), ord=self.norm) return [float(lnorm)] @dataclasses.dataclass(frozen=True) class SmoothMax(AbstractCombiner): """Combines component rewards using a smooth maximum. https://en.wikipedia.org/wiki/Smooth_maximum alpha is the exponent for the smooth max. - alpha -> inf: returns the maximum - alpha == 0: returns the weighted average - alpha -> -inf: returns the minimum alpha in between returns values in between. Since this varies between min, mean and max, it keeps the existing scale. Alpha >= 0 make sense before converting to 0-1, alpha <= 0 make sense after. Ignores NaNs and values with weight 0. """ alpha: float def __call__(self, values: List[float], weights: Optional[List[float]] = None) -> List[float]: values, weights = self._clean_values_weights(values, weights) if not values: return [float("nan")] if math.isinf(self.alpha): return [max(values) if self.alpha > 0 else min(values)] # Compute weights in a numerically-friendly way. log_soft_weights = [np.log(w) + c * self.alpha for w, c in zip(weights, values)] log_soft_weights -= special.logsumexp(log_soft_weights) soft_weights = np.exp(log_soft_weights) return Mean()(values, soft_weights) # weighted mean ================================================ FILE: fusion_tcv/combiners_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for combiners.""" import math from absl.testing import absltest from fusion_tcv import combiners NAN = float("nan") class CombinersTest(absltest.TestCase): def assertNan(self, value): self.assertLen(value, 1) self.assertTrue(math.isnan(value[0])) def test_errors(self): c = combiners.Mean() with self.assertRaises(ValueError): c([0, 1], [1]) with self.assertRaises(ValueError): c([0, 1], [1, 2, 3]) with self.assertRaises(ValueError): c([0, 1], [-1, 2]) def test_mean(self): c = combiners.Mean() self.assertEqual(c([0, 2, 4]), [2]) self.assertEqual(c([0, 0.5, 1]), [0.5]) self.assertEqual(c([0, 0.5, 1], [0, 0, 1]), [1]) self.assertEqual(c([0, 1], [1, 3]), [0.75]) self.assertEqual(c([0, NAN], [1, 3]), [0]) self.assertNan(c([NAN, NAN], [1, 3])) def test_geometric_mean(self): c = combiners.GeometricMean() self.assertEqual(c([0.5, 0]), [0]) self.assertEqual(c([0.3]), [0.3]) self.assertEqual(c([4, 4]), [4]) self.assertEqual(c([0.5, 0.5]), [0.5]) self.assertEqual(c([0.5, 0.5], [1, 3]), [0.5]) self.assertEqual(c([0.5, 1], [1, 2]), [0.5**(1/3)]) self.assertEqual(c([0.5, 1], [2, 1]), [0.5**(2/3)]) self.assertEqual(c([0.5, 0], [2, 0]), [0.5]) self.assertEqual(c([0.5, 0, 0], [2, 1, 0]), [0]) self.assertEqual(c([0.5, NAN, 0], [2, 1, 0]), [0.5]) self.assertNan(c([NAN, NAN], [1, 3])) def test_multiply(self): c = combiners.Multiply() self.assertEqual(c([0.5, 0]), [0]) self.assertEqual(c([0.3]), [0.3]) self.assertEqual(c([0.5, 0.5]), [0.25]) self.assertEqual(c([0.5, 0.5], [1, 3]), [0.0625]) self.assertEqual(c([0.5, 1], [1, 2]), [0.5]) self.assertEqual(c([0.5, 1], [2, 1]), [0.25]) self.assertEqual(c([0.5, 0], [2, 0]), [0.25]) self.assertEqual(c([0.5, 0, 0], [2, 1, 0]), [0]) self.assertEqual(c([0.5, NAN], [1, 1]), [0.5]) self.assertNan(c([NAN, NAN], [1, 3])) def test_min(self): c = combiners.Min() self.assertEqual(c([0, 1]), [0]) self.assertEqual(c([0.5, 1]), [0.5]) self.assertEqual(c([1, 0.75]), [0.75]) self.assertEqual(c([1, 3]), [1]) self.assertEqual(c([1, 1, 3], [0, 1, 1]), [1]) self.assertEqual(c([NAN, 3]), [3]) self.assertNan(c([NAN, NAN], [1, 3])) def test_max(self): c = combiners.Max() self.assertEqual(c([0, 1]), [1]) self.assertEqual(c([0.5, 1]), [1]) self.assertEqual(c([1, 0.75]), [1]) self.assertEqual(c([1, 3]), [3]) self.assertEqual(c([1, 1, 3], [0, 1, 1]), [3]) self.assertEqual(c([NAN, 3]), [3]) self.assertNan(c([NAN, NAN], [1, 3])) def test_lnorm(self): c = combiners.LNorm(1) self.assertEqual(c([0, 2, 4]), [2]) self.assertEqual(c([0, 0.5, 1]), [0.5]) self.assertEqual(c([3, 4]), [7 / 2]) self.assertEqual(c([0, 2, 4], [1, 1, 0]), [1]) self.assertEqual(c([0, 2, NAN]), [1]) self.assertNan(c([NAN, NAN], [1, 3])) c = combiners.LNorm(1, normalized=False) self.assertEqual(c([0, 2, 4]), [6]) self.assertEqual(c([0, 0.5, 1]), [1.5]) self.assertEqual(c([3, 4]), [7]) c = combiners.LNorm(2) self.assertEqual(c([3, 4]), [5 / 2**0.5]) c = combiners.LNorm(2, normalized=False) self.assertEqual(c([3, 4]), [5]) c = combiners.LNorm(math.inf) self.assertAlmostEqual(c([3, 4])[0], 4) c = combiners.LNorm(math.inf, normalized=False) self.assertAlmostEqual(c([3, 4])[0], 4) def test_smoothmax(self): # Max c = combiners.SmoothMax(math.inf) self.assertEqual(c([0, 1]), [1]) self.assertEqual(c([0.5, 1]), [1]) self.assertEqual(c([1, 0.75]), [1]) self.assertEqual(c([1, 3]), [3]) # Smooth Max c = combiners.SmoothMax(1) self.assertAlmostEqual(c([0, 1])[0], 0.7310585786300049) # Mean c = combiners.SmoothMax(0) self.assertEqual(c([0, 2, 4]), [2]) self.assertEqual(c([0, 0.5, 1]), [0.5]) self.assertEqual(c([0, 0.5, 1], [0, 0, 1]), [1]) self.assertEqual(c([0, 2, NAN]), [1]) self.assertEqual(c([0, 2, NAN], [0, 1, 1]), [2]) self.assertAlmostEqual(c([0, 1], [1, 3])[0], 0.75) self.assertNan(c([NAN, NAN], [1, 3])) # Smooth Min c = combiners.SmoothMax(-1) self.assertEqual(c([0, 1])[0], 0.2689414213699951) # Min c = combiners.SmoothMax(-math.inf) self.assertEqual(c([0, 1]), [0]) self.assertEqual(c([0.5, 1]), [0.5]) self.assertEqual(c([1, 0.75]), [0.75]) self.assertEqual(c([1, 3]), [1]) if __name__ == "__main__": absltest.main() ================================================ FILE: fusion_tcv/environment.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Environment API for FGE simulator.""" from typing import Dict, List, Optional import dm_env from dm_env import auto_reset_environment from dm_env import specs import numpy as np from fusion_tcv import fge_octave from fusion_tcv import fge_state from fusion_tcv import named_array from fusion_tcv import noise from fusion_tcv import param_variation from fusion_tcv import ref_gen from fusion_tcv import rewards from fusion_tcv import tcv_common from fusion_tcv import terminations # Re-export as fge_octave should be an implementation detail. ShotCondition = fge_octave.ShotCondition class Environment(auto_reset_environment.AutoResetEnvironment): """An environment using the FGE Solver. The simulator will return a flux map, which is the environment's hidden state, and some flux measurements, which will be used as observations. The actions represent current levels that are passed to the simulator for the next flux calculation. """ def __init__( self, shot_condition: ShotCondition, reward: rewards.AbstractReward, reference_generator: ref_gen.AbstractReferenceGenerator, max_episode_length: int = 10000, termination: Optional[terminations.Abstract] = None, obs_act_noise: Optional[noise.Noise] = None, power_supply_delays: Optional[Dict[str, List[float]]] = None, param_generator: Optional[param_variation.ParamGenerator] = None): """Initializes an Environment instance. Args: shot_condition: A ShotCondition, specifying shot number and time. This specifies the machine geometry (eg with or without the baffles), and the initial measurements, voltages, current and plasma state. reward: Function to generate a reward term. reference_generator: Generator for the signal to send to references. max_episode_length: Maximum number of steps before episode is truncated and restarted. termination: Decide if the state should be considered a termination. obs_act_noise: Type for setting the observation and action noise. If noise is set to None then the default noise level is used. power_supply_delays: A dict with power supply delays (in seconds), keys are coil type labels ('E', 'F', 'G', 'OH'). `None` means default delays. param_generator: Generator for Liuqe parameter settings. If None then the default settings are used. """ super().__init__() if power_supply_delays is None: power_supply_delays = tcv_common.TCV_ACTION_DELAYS self._simulator = fge_octave.FGESimulatorOctave( shot_condition=shot_condition, power_supply_delays=power_supply_delays) self._reward = reward self._reference_generator = reference_generator self._max_episode_length = max_episode_length self._termination = (termination if termination is not None else terminations.CURRENT_OH_IP) self._noise = (obs_act_noise if obs_act_noise is not None else noise.Noise.use_default_noise()) self._param_generator = (param_generator if param_generator is not None else param_variation.ParamGenerator()) self._params = None self._step_counter = 0 self._last_observation = None def observation_spec(self): """Defines the observations provided by the environment.""" return tcv_common.observation_spec() def action_spec(self) -> specs.BoundedArray: """Defines the actions that should be provided to `step`.""" return tcv_common.action_spec() def _reset(self) -> dm_env.TimeStep: """Starts a new episode.""" self._step_counter = 0 self._params = self._param_generator.generate() state = self._simulator.reset(self._params) references = self._reference_generator.reset() zero_act = np.zeros(self.action_spec().shape, dtype=self.action_spec().dtype) self._last_observation = self._extract_observation( state, references, zero_act) return dm_env.restart(self._last_observation) def _simulator_voltages_from_voltages(self, voltages): voltage_simulator = np.copy(voltages) if self._params.psu_voltage_offset is not None: for coil, offset in self._params.psu_voltage_offset.items(): voltage_simulator[tcv_common.TCV_ACTION_INDICES[coil]] += offset voltage_simulator = np.clip( voltage_simulator, self.action_spec().minimum, self.action_spec().maximum) g_coil = tcv_common.TCV_ACTION_RANGES.index("G") if abs(voltage_simulator[g_coil]) < tcv_common.ENV_G_COIL_DEADBAND: voltage_simulator[g_coil] = 0 return voltage_simulator def _step(self, action: np.ndarray) -> dm_env.TimeStep: """Does one step within TCV.""" voltages = self._noise.add_action_noise(action) voltage_simulator = self._simulator_voltages_from_voltages(voltages) try: state = self._simulator.step(voltage_simulator) except (fge_state.InvalidSolutionError, fge_state.StopSignalException): return dm_env.termination( self._reward.terminal_reward(), self._last_observation) references = self._reference_generator.step() self._last_observation = self._extract_observation( state, references, action) term = self._termination.terminate(state) if term: return dm_env.termination( self._reward.terminal_reward(), self._last_observation) reward, _ = self._reward.reward(voltages, state, references) self._step_counter += 1 if self._step_counter >= self._max_episode_length: return dm_env.truncation(reward, self._last_observation) return dm_env.transition(reward, self._last_observation) def _extract_observation( self, state: fge_state.FGEState, references: named_array.NamedArray, action: np.ndarray) -> Dict[str, np.ndarray]: return { "references": references.array, "measurements": self._noise.add_measurement_noise( state.get_observation_vector()), "last_action": action, } ================================================ FILE: fusion_tcv/experiments.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """The environment definitions used for our experiments.""" from fusion_tcv import environment from fusion_tcv import references from fusion_tcv import rewards_used # Used in TCV#70915 def fundamental_capability() -> environment.Environment: return environment.Environment( shot_condition=environment.ShotCondition(70166, 0.0872), reward=rewards_used.FUNDAMENTAL_CAPABILITY, reference_generator=references.fundamental_capability(), max_episode_length=10000) # Used in TCV#70920 def elongation() -> environment.Environment: return environment.Environment( shot_condition=environment.ShotCondition(70166, 0.45), reward=rewards_used.ELONGATION, reference_generator=references.elongation(), max_episode_length=5000) # Used in TCV#70600 def iter() -> environment.Environment: # pylint: disable=redefined-builtin return environment.Environment( shot_condition=environment.ShotCondition(70392, 0.0872), reward=rewards_used.ITER, reference_generator=references.iter(), max_episode_length=1000) # Used in TCV#70457 def negative_triangularity() -> environment.Environment: return environment.Environment( shot_condition=environment.ShotCondition(70166, 0.45), reward=rewards_used.NEGATIVE_TRIANGULARITY, reference_generator=references.negative_triangularity(), max_episode_length=5000) # Used in TCV#70755 def snowflake() -> environment.Environment: return environment.Environment( shot_condition=environment.ShotCondition(70166, 0.0872), reward=rewards_used.SNOWFLAKE, reference_generator=references.snowflake(), max_episode_length=10000) # Used in TCV#69545 def droplet() -> environment.Environment: return environment.Environment( shot_condition=environment.ShotCondition(69198, 0.418), reward=rewards_used.DROPLETS, reference_generator=references.droplet(), max_episode_length=2000) ================================================ FILE: fusion_tcv/experiments_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for experiments.""" from absl.testing import absltest from absl.testing import parameterized from dm_env import test_utils from fusion_tcv import agent from fusion_tcv import experiments from fusion_tcv import run_loop class FundamentalCapabilityTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return experiments.fundamental_capability() class ElongationTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return experiments.elongation() class IterTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return experiments.iter() class NegativeTriangularityTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return experiments.negative_triangularity() class SnowflakeTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return experiments.snowflake() class DropletTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return experiments.droplet() class ExperimentsTest(parameterized.TestCase): @parameterized.named_parameters( ("fundamental_capability", experiments.fundamental_capability), ("elongation", experiments.elongation), ("iter", experiments.iter), ("negative_triangularity", experiments.negative_triangularity), ("snowflake", experiments.snowflake), ("droplet", experiments.droplet), ) def test_env(self, env_fn): traj = run_loop.run_loop(env_fn(), agent.ZeroAgent(), max_steps=10) self.assertGreaterEqual(len(traj.reward), 1) if __name__ == "__main__": absltest.main() ================================================ FILE: fusion_tcv/fge_octave.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Actually interact with FGE via octave.""" from typing import Dict, List import dataclasses import numpy as np from fusion_tcv import fge_state from fusion_tcv import param_variation SUBSTEPS = 5 @dataclasses.dataclass class ShotCondition: """Represents a shot and time from a real shot.""" shot: int time: float class FGESimulatorOctave: """Would interact with the FGE solver via Octave. Given that FGE isn't open source, this is just a sketch. """ def __init__( self, shot_condition: ShotCondition, power_supply_delays: Dict[str, List[float]]): """Initialize the simulator. Args: shot_condition: A ShotCondition, specifying shot number and time. This specifies the machine geometry (eg with or without the baffles), and the initial measurements, voltages, current and plasma shape. power_supply_delays: A dict with power supply delays (in seconds), keys are coil type labels ('E', 'F', 'G', 'OH'). `None` means default delays. """ del power_supply_delays # Initialize the simulator: # - Use oct2py to load FGE through Octave. # - Load the data for the shot_condition. # - Set up the reactor geometry from the shot_condition. # - Set the timestep to `tcv_common.DT / SUBSTEPS`. # - Set up the solver for singlets or droplets based on the shot_condition. self._num_plasmas = 2 if shot_condition.shot == 69198 else 1 # - Set up the power supply, including the limits, initial data, and delays. def reset(self, variation: param_variation.Settings) -> fge_state.FGEState: """Restarts the simulator with parameters.""" del variation # Update the simulator with the current physics parameters. # Reset to the initial state from the shot_condition. return fge_state.FGEState(self._num_plasmas) # Filled with the real state. def step(self, voltages: np.ndarray) -> fge_state.FGEState: """Run the simulator with `voltages`, returns the state.""" del voltages # for _ in range(SUBSTEPS): # Step the simulator with `voltages`. # raise fge_state.InvalidSolutionError if the solver doesn't converge. # raise fge_state.StopSignalException if an internal termination triggered return fge_state.FGEState(self._num_plasmas) # Filled with the real state. ================================================ FILE: fusion_tcv/fge_state.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A nice python representation of the underlying FGE state.""" from typing import List, Tuple import numpy as np from fusion_tcv import shape from fusion_tcv import shapes_known from fusion_tcv import tcv_common class StopSignalException(Exception): # pylint: disable=g-bad-exception-name """This is raised if the FGE environment raises the Stop/Alarm signal.""" pass class InvalidSolutionError(RuntimeError): """This is raised if returned solution is invalid.""" pass class UnhandledOctaveError(Exception): """This is raised if some Octave code raises an unhandled error.""" pass class FGEState: """A nice python representation of the underlying FGE State. Given that FGE isn't open source, all of these numbers are made up, and only a sketch of what it could look like. """ def __init__(self, num_plasmas): self._num_plasmas = num_plasmas @property def num_plasmas(self) -> int: return self._num_plasmas # Return 1 for singlet, 2 for droplets. @property def rzip_d(self) -> Tuple[List[float], List[float], List[float]]: """Returns the R, Z, and Ip for each plasma domain.""" if self.num_plasmas == 1: return [0.9], [0], [-120000] else: return [0.9, 0.88], [0.4, -0.4], [-60000, -65000] def get_coil_currents_by_type(self, coil_type) -> np.ndarray: currents = tcv_common.TCV_ACTION_RANGES.new_random_named_array() return currents[coil_type] * tcv_common.ENV_COIL_MAX_CURRENTS[coil_type] / 5 def get_lcfs_points(self, domain: int) -> shape.ShapePoints: del domain # Should be plasma domain specific return shapes_known.SHAPE_70166_0872.canonical().points def get_observation_vector(self) -> np.ndarray: return tcv_common.TCV_MEASUREMENT_RANGES.new_random_named_array().array @property def elongation(self) -> List[float]: return [1.4] * self.num_plasmas @property def triangularity(self) -> List[float]: return [0.25] * self.num_plasmas @property def radius(self) -> List[float]: return [0.23] * self.num_plasmas @property def limit_point_d(self) -> List[shape.Point]: return [shape.Point(tcv_common.INNER_LIMITER_R, 0.2)] * self.num_plasmas @property def is_diverted_d(self) -> List[bool]: return [False] * self.num_plasmas @property def x_points(self) -> shape.ShapePoints: return [] @property def flux(self) -> np.ndarray: """Return the flux at the grid coordinates.""" return np.random.random((len(self.z_coordinates), len(self.r_coordinates))) @property def magnetic_axis_flux_strength(self) -> float: """The magnetic flux at the center of the plasma.""" return 2 @property def lcfs_flux_strength(self) -> float: """The flux at the LCFS.""" return 1 @property def r_coordinates(self) -> np.ndarray: """The radial coordinates of the simulation.""" return np.arange(tcv_common.INNER_LIMITER_R, tcv_common.OUTER_LIMITER_R, tcv_common.LIMITER_WIDTH / 10) # Made up grid resolution. @property def z_coordinates(self): """The vertical coordinates of the simulation.""" return np.arange(-0.75, 0.75, 1.5 / 30) # Made up numbers. ================================================ FILE: fusion_tcv/named_array.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Give names to parts of a numpy array.""" from typing import Iterable, List, Mapping, MutableMapping, Tuple, Union import numpy as np def lengths_to_ranges( lengths: Mapping[str, int]) -> MutableMapping[str, List[int]]: """Eg: {a: 2, b: 3} -> {a: [0, 1], b: [2, 3, 4]} .""" ranges = {} start = 0 for key, length in lengths.items(): ranges[key] = list(range(start, start + length)) start += length return ranges class NamedRanges: """Given a map of {key: count}, give various views into it.""" def __init__(self, counts: Mapping[str, int]): self._ranges = lengths_to_ranges(counts) self._size = sum(counts.values()) def __getitem__(self, name) -> List[int]: return self._ranges[name] def __contains__(self, name) -> bool: return name in self._ranges def set_range(self, name: str, value: List[int]): """Overwrite or create a custom range, which may intersect with others.""" self._ranges[name] = value def range(self, name: str) -> List[int]: return self[name] def index(self, name: str) -> int: rng = self[name] if len(rng) != 1: raise ValueError(f"{name} has multiple values") return rng[0] def count(self, name: str) -> int: return len(self[name]) def names(self) -> Iterable[str]: return self._ranges.keys() def ranges(self) -> Iterable[Tuple[str, List[int]]]: return self._ranges.items() def counts(self) -> Mapping[str, int]: return {k: len(v) for k, v in self._ranges.items()} @property def size(self) -> int: return self._size def named_array(self, array: np.ndarray) -> "NamedArray": return NamedArray(array, self) def new_named_array(self) -> "NamedArray": return NamedArray(np.zeros((self.size,)), self) def new_random_named_array(self) -> "NamedArray": return NamedArray(np.random.uniform(size=(self.size,)), self) class NamedArray: """Given a numpy array and a NamedRange, access slices by name.""" def __init__(self, array: np.ndarray, names: NamedRanges): if array.shape != (names.size,): raise ValueError(f"Wrong sizes: {array.shape} != ({names.size},)") self._array = array self._names = names def __getitem__( self, name: Union[str, Tuple[str, Union[int, List[int], slice]]]) -> np.ndarray: """Return a read-only view into the array by name.""" if isinstance(name, str): arr = self._array[self._names[name]] else: name, i = name arr = self._array[np.array(self._names[name])[i]] if not np.isscalar(arr): # Read-only because it's indexed by an array of potentially non-contiguous # indices, which isn't representable as a normal tensor, which forces a # copy and therefore writes don't modify the underlying array as expected. arr.flags.writeable = False return arr def __setitem__( self, name: Union[str, Tuple[str, Union[int, List[int], slice]]], value): """Set one or more values of a range to a value.""" if isinstance(name, str): self._array[self._names[name]] = value else: name, i = name self._array[np.array(self._names[name])[i]] = value @property def array(self) -> np.ndarray: return self._array @property def names(self) -> NamedRanges: return self._names def to_dict(self) -> Mapping[str, np.ndarray]: return {k: self[k] for k in self._names.names()} ================================================ FILE: fusion_tcv/named_array_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for named_array.""" from absl.testing import absltest import numpy as np from fusion_tcv import named_array class NamedRangesTest(absltest.TestCase): def test_lengths_to_ranges(self): self.assertEqual(named_array.lengths_to_ranges({"a": 2, "b": 3}), {"a": [0, 1], "b": [2, 3, 4]}) def test_named_ranges(self): action_counts = {"E": 8, "F": 8, "OH": 2, "DUMMY": 1, "G": 1} actions = named_array.NamedRanges(action_counts) self.assertEqual(actions.range("E"), list(range(8))) self.assertEqual(actions["F"], list(range(8, 16))) self.assertEqual(actions.range("G"), [19]) self.assertEqual(actions.index("G"), 19) with self.assertRaises(ValueError): actions.index("F") for k, v in action_counts.items(): self.assertEqual(actions.count(k), v) self.assertEqual(actions.counts(), action_counts) self.assertEqual(list(actions.names()), list(action_counts.keys())) self.assertEqual(actions.size, sum(action_counts.values())) refs = actions.new_named_array() self.assertEqual(refs.array.shape, (actions.size,)) np.testing.assert_array_equal(refs.array, np.zeros((actions.size,))) refs = actions.new_random_named_array() self.assertEqual(refs.array.shape, (actions.size,)) self.assertFalse(np.array_equal(refs.array, np.zeros((actions.size,)))) class NamedArrayTest(absltest.TestCase): def test_name_array(self): action_counts = {"E": 8, "F": 8, "OH": 2, "DUMMY": 1, "G": 1} actions_ranges = named_array.NamedRanges(action_counts) actions_array = np.arange(actions_ranges.size) + 100 actions = named_array.NamedArray(actions_array, actions_ranges) for k in action_counts: self.assertEqual(list(actions[k]), [v + 100 for v in actions_ranges[k]]) actions["G"] = -5 self.assertEqual(list(actions["G"]), [-5]) self.assertEqual(actions_array[19], -5) for i in range(action_counts["E"]): actions.names.set_range(f"E_{i}", [i]) actions["E_3"] = 53 self.assertEqual(list(actions["E_1"]), [101]) self.assertEqual(list(actions["E_3"]), [53]) self.assertEqual(actions_array[3], 53) actions["F", 2] = 72 self.assertEqual(actions_array[10], 72) actions["F", [4, 5]] = 74 self.assertEqual(actions_array[12], 74) self.assertEqual(actions_array[13], 74) actions["F", 0:2] = 78 self.assertEqual(actions_array[8], 78) self.assertEqual(actions_array[9], 78) self.assertEqual(list(actions["F"]), [78, 78, 72, 111, 74, 74, 114, 115]) with self.assertRaises(ValueError): actions["F"][5] = 85 if __name__ == "__main__": absltest.main() ================================================ FILE: fusion_tcv/noise.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Settings for adding noise to the action and measurements.""" import numpy as np from numpy import random from fusion_tcv import tcv_common class Noise: """Class for adding noise to the action and measurements.""" def __init__(self, action_mean=None, action_std=None, measurements_mean=None, measurements_std=None, seed=None): """Initializes the class. Args: action_mean: mean of the Gaussian noise (action bias). action_std: std of the Gaussian action noise. measurements_mean: mean of the Gaussian noise (measurement bias). measurements_std: Dictionary mapping the tcv measurement names to noise. seed: seed for the random number generator. If none seed is unset. """ # Check all of the shapes are present and correct. assert action_std.shape == (tcv_common.NUM_ACTIONS,) assert action_mean.shape == (tcv_common.NUM_ACTIONS,) for name, num in tcv_common.TCV_MEASUREMENTS.items(): assert name in measurements_std assert measurements_mean[name].shape == (num,) assert measurements_std[name].shape == (num,) self._action_mean = action_mean self._action_std = action_std self._meas_mean = measurements_mean self._meas_std = measurements_std self._meas_mean_vec = tcv_common.dict_to_measurement(self._meas_mean) self._meas_std_vec = tcv_common.dict_to_measurement(self._meas_std) self._gen = random.RandomState(seed) @classmethod def use_zero_noise(cls): no_noise_mean = dict() no_noise_std = dict() for name, num in tcv_common.TCV_MEASUREMENTS.items(): no_noise_mean[name] = np.zeros((num,)) no_noise_std[name] = np.zeros((num,)) return cls( action_mean=np.zeros((tcv_common.NUM_ACTIONS)), action_std=np.zeros((tcv_common.NUM_ACTIONS)), measurements_mean=no_noise_mean, measurements_std=no_noise_std) @classmethod def use_default_noise(cls, scale=1): """Returns the default observation noise parameters.""" # There is no noise added to the actions, because the noise should be added # to the action after/as part of the power supply model as opposed to the # input to the power supply model. action_noise_mean = np.zeros((tcv_common.NUM_ACTIONS)) action_noise_std = np.zeros((tcv_common.NUM_ACTIONS)) meas_noise_mean = dict() for key, l in tcv_common.TCV_MEASUREMENTS.items(): meas_noise_mean[key] = np.zeros((l,)) meas_noise_std = dict( clint_vloop=np.array([0]), clint_rvloop=np.array([scale * 1e-4] * 37), bm=np.array([scale * 1e-4] * 38), IE=np.array([scale * 20] * 8), IF=np.array([scale * 5] * 8), IOH=np.array([scale * 20] *2), Bdot=np.array([scale * 0.05] * 20), DIOH=np.array([scale * 30]), FIR_FRINGE=np.array([0]), IG=np.array([scale * 2.5]), ONEMM=np.array([0]), vloop=np.array([scale * 0.3]), IPHI=np.array([0]), ) return cls( action_mean=action_noise_mean, action_std=action_noise_std, measurements_mean=meas_noise_mean, measurements_std=meas_noise_std) def add_action_noise(self, action): errs = self._gen.normal(size=action.shape, loc=self._action_mean, scale=self._action_std) return action + errs def add_measurement_noise(self, measurement_vec): errs = self._gen.normal(size=measurement_vec.shape, loc=self._meas_mean_vec, scale=self._meas_std_vec) # Make the IOH measurements consistent. The "real" measurements are IOH # and DIOH, so use those. errs = tcv_common.measurements_to_dict(errs) errs["IOH"][1] = errs["IOH"][0] + errs["DIOH"][0] errs = tcv_common.dict_to_measurement(errs) return measurement_vec + errs ================================================ FILE: fusion_tcv/param_variation.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tools for varying parameters from simulation to simulation.""" from typing import Dict, Optional, Tuple import dataclasses import numpy as np from fusion_tcv import tcv_common # Pylint does not like variable names like `qA`. # pylint: disable=invalid-name RP_DEFAULT = 5e-6 LP_DEFAULT = 2.05e-6 BP_DEFAULT = 0.25 QA_DEFAULT = 1.3 @dataclasses.dataclass class Settings: """Settings to modify solver/plasma model.""" # Inverse of the resistivity. # Plasma circuit equation is roughly # k * dIoh/dt = L * dIp/dt + R * I = Vloop # where R is roughly (1 / signeo) or rp. # Value is multiplier on the default value. # This parameter does not apply to the OhmTor diffusion. signeo: Tuple[float, float] = (1, 1) # Rp Plasma resistivity. The value is an absolute value. rp: float = RP_DEFAULT # Plasma self-inductance. The value is an absolute value. lp: float = LP_DEFAULT # Proportional to the plasma pressure. The value is an absolute value. bp: float = BP_DEFAULT # Plasma current profile. Value is absolute. qA: float = QA_DEFAULT # Initial OH coil current. Applied to both coils. ioh: Optional[float] = None # The voltage offsets for the various coils. psu_voltage_offset: Optional[Dict[str, float]] = None def _psu_voltage_offset_string(self) -> str: """Return a short-ish, readable string of the psu voltage offsets.""" if not self.psu_voltage_offset: return "None" if len(self.psu_voltage_offset) < 8: # Only a few, output individually. return ", ".join( f"{coil.replace('_00', '')}: {offset:.0f}" for coil, offset in self.psu_voltage_offset.items()) # Otherwise, too long, so output in groups. groups = [] for coil, action_range in tcv_common.TCV_ACTION_RANGES.ranges(): offsets = [self.psu_voltage_offset.get(tcv_common.TCV_ACTIONS[i], 0) for i in action_range] if any(offsets): groups.append(f"{coil}: " + ",".join(f"{offset:.0f}" for offset in offsets)) return ", ".join(groups) class ParamGenerator: """Varies parameters using uniform/loguniform distributions. Absolute parameters are varied using uniform distributions while scaling parameters use a loguniform distribution. """ def __init__(self, rp_bounds: Optional[Tuple[float, float]] = None, lp_bounds: Optional[Tuple[float, float]] = None, qA_bounds: Optional[Tuple[float, float]] = None, bp_bounds: Optional[Tuple[float, float]] = None, rp_mean: float = RP_DEFAULT, lp_mean: float = LP_DEFAULT, bp_mean: float = BP_DEFAULT, qA_mean: float = QA_DEFAULT, ioh_bounds: Optional[Tuple[float, float]] = None, psu_voltage_offset_bounds: Optional[ Dict[str, Tuple[float, float]]] = None): # Do not allow Signeo variation as this does not work with OhmTor current # diffusion. no_scaling = (1, 1) self._rp_bounds = rp_bounds if rp_bounds else no_scaling self._lp_bounds = lp_bounds if lp_bounds else no_scaling self._bp_bounds = bp_bounds if bp_bounds else no_scaling self._qA_bounds = qA_bounds if qA_bounds else no_scaling self._rp_mean = rp_mean self._lp_mean = lp_mean self._bp_mean = bp_mean self._qA_mean = qA_mean self._ioh_bounds = ioh_bounds self._psu_voltage_offset_bounds = psu_voltage_offset_bounds def generate(self) -> Settings: return Settings( signeo=(1, 1), rp=loguniform_rv(*self._rp_bounds) * self._rp_mean, lp=loguniform_rv(*self._lp_bounds) * self._lp_mean, bp=loguniform_rv(*self._bp_bounds) * self._bp_mean, qA=loguniform_rv(*self._qA_bounds) * self._qA_mean, ioh=np.random.uniform(*self._ioh_bounds) if self._ioh_bounds else None, psu_voltage_offset=( {coil: np.random.uniform(*bounds) for coil, bounds in self._psu_voltage_offset_bounds.items()} if self._psu_voltage_offset_bounds else None)) def loguniform_rv(lower, upper): """Generate loguniform random variable between min and max.""" if lower == upper: return lower assert lower < upper return np.exp(np.random.uniform(np.log(lower), np.log(upper))) ================================================ FILE: fusion_tcv/ref_gen.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Generators for References vector.""" import abc import copy from typing import List, Optional import dataclasses from fusion_tcv import named_array from fusion_tcv import shape as shape_lib from fusion_tcv import tcv_common class AbstractReferenceGenerator(abc.ABC): """Abstract class for generating the reference signal.""" @abc.abstractmethod def reset(self) -> named_array.NamedArray: """Resets the class for a new episode and returns the first reference.""" @abc.abstractmethod def step(self) -> named_array.NamedArray: """Returns the reference signal.""" @dataclasses.dataclass class LinearTransition: reference: named_array.NamedArray # Reference at which to end the transition. transition_steps: int # Number of intermediate steps between the shapes. steady_steps: int # Number of steps in the steady state. class LinearTransitionReferenceGenerator(AbstractReferenceGenerator): """A base class for generating references that are a series of transitions.""" def __init__(self, start_offset: int = 0): self._last_ref = None self._reset_counters() self._start_offset = start_offset @abc.abstractmethod def _next_transition(self) -> LinearTransition: """Override this in the subclass.""" def reset(self) -> named_array.NamedArray: self._last_ref = None self._reset_counters() for _ in range(self._start_offset): self.step() return self.step() def _reset_counters(self): self._steady_step = 0 self._transition_step = 0 self._transition = None def step(self) -> named_array.NamedArray: if (self._transition is None or self._steady_step == self._transition.steady_steps): if self._transition is not None: self._last_ref = self._transition.reference self._reset_counters() self._transition = self._next_transition() # Ensure at least one steady step in middle transitions. # If we would like this to not have to be true, we need to change the # logic below which assumes there is at least one step in the steady # phase. assert self._transition.steady_steps > 0 assert self._transition is not None # to make pytype happy transition_steps = self._transition.transition_steps if self._last_ref is None: # No transition at beginning of episode. transition_steps = 0 if self._transition_step < transition_steps: # In transition phase. self._transition_step += 1 a = self._transition_step / (self._transition.transition_steps + 1) # pytype: disable=attribute-error return self._last_ref.names.named_array( self._last_ref.array * (1 - a) + self._transition.reference.array * a) # pytype: disable=attribute-error else: # In steady phase. self._steady_step += 1 return copy.deepcopy(self._transition.reference) class FixedReferenceGenerator(LinearTransitionReferenceGenerator): """Generates linear transitions from a fixed set of references.""" def __init__(self, transitions: List[LinearTransition], start_offset: int = 0): self._transitions = transitions self._current_transition = 0 super().__init__(start_offset=start_offset) def reset(self) -> named_array.NamedArray: self._current_transition = 0 return super().reset() def _next_transition(self) -> LinearTransition: if self._current_transition == len(self._transitions): # Have gone through all of the transitions. Return the final reference # for a very long time. return LinearTransition(steady_steps=50000, transition_steps=0, reference=self._transitions[-1].reference) self._current_transition += 1 return copy.deepcopy(self._transitions[self._current_transition - 1]) @dataclasses.dataclass class TimedTransition: steady_steps: int # Number of steps to hold the shape. transition_steps: int # Number of steps to transition. @dataclasses.dataclass class ParametrizedShapeTimedTarget: """RZIP condition with a timestep attached.""" shape: shape_lib.Shape timing: TimedTransition class PresetShapePointsReferenceGenerator(FixedReferenceGenerator): """Generates a fixed set of shape points.""" def __init__( self, targets: List[ParametrizedShapeTimedTarget], start_offset: int = 0): if targets[0].timing.transition_steps != 0: raise ValueError("Invalid first timing, transition must be 0, not " f"{targets[0].timing.transition_steps}") transitions = [] for target in targets: transitions.append(LinearTransition( steady_steps=target.timing.steady_steps, transition_steps=target.timing.transition_steps, reference=target.shape.canonical().gen_references())) super().__init__(transitions, start_offset=start_offset) class ShapeFromShot(PresetShapePointsReferenceGenerator): """Generate shapes from EPFL references.""" def __init__( self, time_slices: List[shape_lib.ReferenceTimeSlice], start: Optional[float] = None): """Given a series of time slices, start from time_slice.time==start.""" if start is None: start = time_slices[0].time dt = 1e-4 targets = [] time_slices = shape_lib.canonicalize_reference_series(time_slices) prev = None for i, ref in enumerate(time_slices): assert prev is None or prev.hold < ref.time if ref.time < start: continue if prev is None and start != ref.time: raise ValueError("start must be one of the time slice times.") steady = (max(1, int((ref.hold - ref.time) / dt)) if i < len(time_slices) - 1 else 100000) transition = (0 if prev is None else (int((ref.time - prev.time) / dt) - max(1, int((prev.hold - prev.time) / dt)))) targets.append(ParametrizedShapeTimedTarget( shape=ref.shape, timing=TimedTransition( steady_steps=steady, transition_steps=transition))) prev = ref assert targets super().__init__(targets) @dataclasses.dataclass class RZIpTarget: r: float z: float ip: float def make_symmetric_multidomain_rzip_reference( target: RZIpTarget) -> named_array.NamedArray: """Generate multi-domain rzip references.""" refs = tcv_common.REF_RANGES.new_named_array() refs["R"] = (target.r, target.r) refs["Z"] = (target.z, -target.z) refs["Ip"] = (target.ip, target.ip) return refs ================================================ FILE: fusion_tcv/references.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """References used in the experiments.""" from fusion_tcv import ref_gen from fusion_tcv import shape from fusion_tcv import shapes_known from fusion_tcv import tcv_common # pylint: disable=bad-whitespace # Used in TCV#70915 def fundamental_capability() -> ref_gen.AbstractReferenceGenerator: return ref_gen.ShapeFromShot([ # Start at the handover state and hold for ~50ms. shape.ReferenceTimeSlice( time=0.0872, hold=0.15, shape=shape.Shape( ip=-110000, params=shapes_known.SHAPE_70166_0872.params, points=shapes_known.SHAPE_70166_0872.points, limit_point=shapes_known.SHAPE_70166_0872.limit_point, diverted=shape.Diverted.LIMITED, ), ), # Ramp the Ip over 50ms then hold for 50ms. shape.ReferenceTimeSlice( time=0.2, hold=0.25, shape=shape.Shape( ip=-150000, params=shape.ParametrizedShape( r0=0.8796, z0=0.2339, kappa=1.2441, delta=0.2567, radius=0.2390, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6299, 0.1413), shape.Point( 0.6481, 0.0577), shape.Point( 0.6804, -0.0087), shape.Point( 0.7286, -0.0513), shape.Point( 0.7931, -0.0660), shape.Point( 0.8709, -0.0513), shape.Point( 0.9543, -0.0087), shape.Point( 1.0304, 0.0577), shape.Point( 1.0844, 0.1413), shape.Point( 1.1040, 0.2340), shape.Point( 1.0844, 0.3267), shape.Point( 1.0304, 0.4103), shape.Point( 0.9543, 0.4767), shape.Point( 0.8709, 0.5193), shape.Point( 0.7931, 0.5340), shape.Point( 0.7286, 0.5193), shape.Point( 0.6804, 0.4767), shape.Point( 0.6481, 0.4103), shape.Point( 0.6299, 0.3267), shape.Point( 0.6240, 0.2340), ], limit_point=shape.Point( 0.6240, 0.2340), diverted=shape.Diverted.LIMITED, ), ), # Transform the shape to the DM handover shape and hold for 50ms. shape.ReferenceTimeSlice( time=0.3, hold=0.35, shape=shape.Shape( ip=-150000, params=shape.ParametrizedShape( r0=0.8822, z0=0.2340, kappa=1.4396, delta=0.2760, radius=0.2388, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6299, 0.1265), shape.Point( 0.6481, 0.0295), shape.Point( 0.6804, -0.0475), shape.Point( 0.7286, -0.0970), shape.Point( 0.7931, -0.1140), shape.Point( 0.8709, -0.0970), shape.Point( 0.9543, -0.0475), shape.Point( 1.0304, 0.0295), shape.Point( 1.0844, 0.1265), shape.Point( 1.1040, 0.2340), shape.Point( 1.0844, 0.3415), shape.Point( 1.0304, 0.4385), shape.Point( 0.9543, 0.5155), shape.Point( 0.8709, 0.5650), shape.Point( 0.7931, 0.5820), shape.Point( 0.7286, 0.5650), shape.Point( 0.6804, 0.5155), shape.Point( 0.6481, 0.4385), shape.Point( 0.6299, 0.3415), shape.Point( 0.6240, 0.2340), ], limit_point=shape.Point( 0.6240, 0.2340), diverted=shape.Diverted.LIMITED, ), ), # Shift down by 20cm and hold for 50ms. shape.ReferenceTimeSlice( time=0.4, hold=0.45, shape=shape.Shape( ip=-150000, params=shape.ParametrizedShape( r0=0.8822, z0=0.0340, kappa=1.4396, delta=0.2760, radius=0.2388, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6299, -0.0735), shape.Point( 0.6481, -0.1705), shape.Point( 0.6804, -0.2475), shape.Point( 0.7286, -0.2970), shape.Point( 0.7931, -0.3140), shape.Point( 0.8709, -0.2970), shape.Point( 0.9543, -0.2475), shape.Point( 1.0304, -0.1705), shape.Point( 1.0844, -0.0735), shape.Point( 1.1040, 0.0340), shape.Point( 1.0844, 0.1415), shape.Point( 1.0304, 0.2385), shape.Point( 0.9543, 0.3155), shape.Point( 0.8709, 0.3650), shape.Point( 0.7931, 0.3820), shape.Point( 0.7286, 0.3650), shape.Point( 0.6804, 0.3155), shape.Point( 0.6481, 0.2385), shape.Point( 0.6299, 0.1415), shape.Point( 0.6240, 0.0340), ], limit_point=shape.Point( 0.6240, 0.0340), diverted=shape.Diverted.LIMITED, ), ), # Add an X-point and allow to be ANY. shape.ReferenceTimeSlice( time=0.451, shape=shape.Shape( ip=-150000, params=shape.ParametrizedShape( r0=0.8822, z0=0.0340, kappa=1.4396, delta=0.2760, radius=0.2388, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6299, -0.0735), shape.Point( 0.6481, -0.1705), shape.Point( 0.6804, -0.2475), shape.Point( 0.7286, -0.2970), shape.Point( 0.7931, -0.3140), shape.Point( 0.8709, -0.2970), shape.Point( 0.9543, -0.2475), shape.Point( 1.0304, -0.1705), shape.Point( 1.0844, -0.0735), shape.Point( 1.1040, 0.0340), shape.Point( 1.0844, 0.1415), shape.Point( 1.0304, 0.2385), shape.Point( 0.9543, 0.3155), shape.Point( 0.8709, 0.3650), shape.Point( 0.7931, 0.3820), shape.Point( 0.7286, 0.3650), shape.Point( 0.6804, 0.3155), shape.Point( 0.6481, 0.2385), shape.Point( 0.6299, 0.1415), shape.Point( 0.6240, 0.0340), ], x_points=[shape.Point( 0.6240, -0.7)], diverted=shape.Diverted.ANY, ), ), # Make diverted and hold for 350ms. shape.ReferenceTimeSlice( time=0.50, hold=0.85, shape=shape.Shape( # based on 70519 @ 0.840 ip=-150000, params=shape.ParametrizedShape( r0=0.8618, z0=0.0130, kappa=1.5585, delta=0.3175, radius=0.232, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ shape.Point(0.8286, -0.3612), shape.Point(0.7722, -0.3807), shape.Point(0.7512, -0.3375), shape.Point(0.7246, -0.2900), shape.Point(0.6995, -0.2425), shape.Point(0.6783, -0.1950), shape.Point(0.6627, -0.1475), shape.Point(0.6531, -0.1000), shape.Point(0.6469, -0.0288), shape.Point(0.6461, 0.0425), shape.Point(0.6509, 0.1137), shape.Point(0.6594, 0.1612), shape.Point(0.6738, 0.2087), shape.Point(0.6970, 0.2562), shape.Point(0.7327, 0.2991), shape.Point(0.7722, 0.3243), shape.Point(0.8117, 0.3348), shape.Point(0.8709, 0.3290), shape.Point(0.9104, 0.3143), shape.Point(0.9499, 0.2912), shape.Point(0.9893, 0.2597), shape.Point(1.0164, 0.2325), shape.Point(1.0486, 0.1932), shape.Point(1.0696, 0.1612), shape.Point(1.0938, 0.1137), shape.Point(1.1084, 0.0662), shape.Point(1.1078, -0.0050), shape.Point(1.0937, -0.0525), shape.Point(1.0721, -0.1000), shape.Point(1.0486, -0.1416), shape.Point(1.0288, -0.1720), shape.Point(0.9935, -0.2187), shape.Point(0.9696, -0.2464), shape.Point(0.9301, -0.2856), shape.Point(0.8961, -0.3137), shape.Point(0.8641, -0.3375), ], x_points=[shape.Point(0.7722, -0.3807)], limit_point=shape.Point(0.7722, -0.3807), diverted=shape.Diverted.DIVERTED, ), ), # Remove the X-point and let be ANY. shape.ReferenceTimeSlice( # based on 70519 @ 0.840 time=0.851, shape=shape.Shape( ip=-150000, params=shape.ParametrizedShape( r0=0.8618, z0=0.0130, kappa=1.5585, delta=0.3175, radius=0.232, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ shape.Point(0.8286, -0.3612), shape.Point(0.7722, -0.3807), shape.Point(0.7512, -0.3375), shape.Point(0.7246, -0.2900), shape.Point(0.6995, -0.2425), shape.Point(0.6783, -0.1950), shape.Point(0.6627, -0.1475), shape.Point(0.6531, -0.1000), shape.Point(0.6469, -0.0288), shape.Point(0.6461, 0.0425), shape.Point(0.6509, 0.1137), shape.Point(0.6594, 0.1612), shape.Point(0.6738, 0.2087), shape.Point(0.6970, 0.2562), shape.Point(0.7327, 0.2991), shape.Point(0.7722, 0.3243), shape.Point(0.8117, 0.3348), shape.Point(0.8709, 0.3290), shape.Point(0.9104, 0.3143), shape.Point(0.9499, 0.2912), shape.Point(0.9893, 0.2597), shape.Point(1.0164, 0.2325), shape.Point(1.0486, 0.1932), shape.Point(1.0696, 0.1612), shape.Point(1.0938, 0.1137), shape.Point(1.1084, 0.0662), shape.Point(1.1078, -0.0050), shape.Point(1.0937, -0.0525), shape.Point(1.0721, -0.1000), shape.Point(1.0486, -0.1416), shape.Point(1.0288, -0.1720), shape.Point(0.9935, -0.2187), shape.Point(0.9696, -0.2464), shape.Point(0.9301, -0.2856), shape.Point(0.8961, -0.3137), shape.Point(0.8641, -0.3375), ], diverted=shape.Diverted.ANY, ), ), # Shift back to round shape. shape.ReferenceTimeSlice( time=0.90, shape=shape.Shape( ip=-150000, params=shapes_known.SHAPE_70166_0872.params, points=shapes_known.SHAPE_70166_0872.points, limit_point=shapes_known.SHAPE_70166_0872.limit_point, diverted=shape.Diverted.LIMITED, ), ), # Ramp the Ip down. shape.ReferenceTimeSlice( time=1.00, shape=shape.Shape( ip=-70000, params=shapes_known.SHAPE_70166_0872.params, points=shapes_known.SHAPE_70166_0872.points, limit_point=shapes_known.SHAPE_70166_0872.limit_point, diverted=shape.Diverted.LIMITED, ), ), ]) # Used in TCV#70920 def elongation() -> ref_gen.AbstractReferenceGenerator: return ref_gen.ShapeFromShot([ shape.ReferenceTimeSlice( time=0.45, hold=0.475, shape=shape.Shape( params=shapes_known.SHAPE_70166_0450.params, diverted=shapes_known.SHAPE_70166_0450.diverted, limit_point=shape.Point(tcv_common.INNER_LIMITER_R, 0.25), ip=shapes_known.SHAPE_70166_0450.ip) ), shape.ReferenceTimeSlice( time=0.55, shape=shape.Shape( params=shape.ParametrizedShape( r0=0.875, z0=0.2, kappa=1.9, delta=0.3, radius=0.235, lambda_=0, side=shape.ShapeSide.LEFT), ip=-190000, limit_point=shape.Point(tcv_common.INNER_LIMITER_R, 0.2), diverted=shape.Diverted.LIMITED) ), ]) # Used in TCV#70457 def negative_triangularity() -> ref_gen.AbstractReferenceGenerator: return ref_gen.ShapeFromShot([ shape.ReferenceTimeSlice( time=0.45, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.89, z0=0.15, kappa=1.4, delta=-0.8, radius=0.25, lambda_=0, side=shape.ShapeSide.LEFT), x_points=[ shape.Point(tcv_common.OUTER_LIMITER_R - 0.03, 0.50), shape.Point(tcv_common.OUTER_LIMITER_R - 0.03, -0.2), ], diverted=shape.Diverted.DIVERTED, ), ), ]) # Used in TCV#70755 def snowflake() -> ref_gen.AbstractReferenceGenerator: return ref_gen.ShapeFromShot([ shape.ReferenceTimeSlice( time=0.0872, shape=shape.Shape( ip=-110000, params=shapes_known.SHAPE_70166_0872.params, points=shapes_known.SHAPE_70166_0872.points, limit_point=shapes_known.SHAPE_70166_0872.limit_point, diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.15, # 0.2680, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8713, z0=0.0662, kappa=1.6059, delta=0.3814, radius=0.2378, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6270, 0.0660), shape.Point( 0.6290, -0.0840), shape.Point( 0.6530, -0.2170), shape.Point( 0.7500, -0.3114), shape.Point( 0.9260, -0.2270), shape.Point( 1.0530, -0.0930), shape.Point( 1.1020, 0.0660), shape.Point( 1.0530, 0.2250), shape.Point( 0.9460, 0.3590), shape.Point( 0.8100, 0.4340), shape.Point( 0.7000, 0.4240), shape.Point( 0.6500, 0.3490), shape.Point( 0.6290, 0.2160), ], x_points=[ shape.Point( 0.7000, -0.4700), ], diverted=shape.Diverted.ANY, ), ), shape.ReferenceTimeSlice( time=0.2, # 0.4280, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8884, z0=0.0319, kappa=1.6229, delta=0.3875, radius=0.2261, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6550, 0.0080), shape.Point( 0.6650, -0.1260), shape.Point( 0.6840, -0.2600), shape.Point( 0.7600, -0.3750), shape.Point( 0.9400, -0.2790), shape.Point( 1.0500, -0.1450), shape.Point( 1.1060, 0.0080), shape.Point( 1.0760, 0.1620), shape.Point( 0.9780, 0.2960), shape.Point( 0.8410, 0.3530), shape.Point( 0.7300, 0.3380), shape.Point( 0.6750, 0.2670), shape.Point( 0.6550, 0.1430), ], x_points=[ shape.Point( 0.7600, -0.3750), ], limit_point=shape.Point( 0.7600, -0.3750), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.25, # 0.5000, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8886, z0=0.0044, kappa=1.5419, delta=0.2430, radius=0.2137, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6780, -0.1200), shape.Point( 0.7200, -0.2360), shape.Point( 0.7840, -0.3754), shape.Point( 0.9090, -0.3040), shape.Point( 1.0040, -0.2110), shape.Point( 1.0660, -0.1110), shape.Point( 1.0950, -0.0030), shape.Point( 1.0800, 0.1070), shape.Point( 1.0210, 0.2070), shape.Point( 0.9250, 0.2740), shape.Point( 0.8090, 0.2730), shape.Point( 0.7170, 0.2040), shape.Point( 0.6660, 0.1010), shape.Point( 0.6570, -0.0100), ], x_points=[ shape.Point( 0.7840, -0.3754), shape.Point( 0.8600, -0.7500), ], legs=[ shape.Point( 0.8220, -0.5627), ], limit_point=shape.Point( 0.7840, -0.3754), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.4, # 0.6000, hold=0.8, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8886, z0=0.0044, kappa=1.5419, delta=0.2430, radius=0.2137, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6780, -0.1200), shape.Point( 0.7200, -0.2360), shape.Point( 0.7840, -0.3754), shape.Point( 0.9090, -0.3040), shape.Point( 1.0040, -0.2110), shape.Point( 1.0660, -0.1110), shape.Point( 1.0950, -0.0030), shape.Point( 1.0800, 0.1070), shape.Point( 1.0210, 0.2070), shape.Point( 0.9250, 0.2740), shape.Point( 0.8090, 0.2730), shape.Point( 0.7170, 0.2040), shape.Point( 0.6660, 0.1010), shape.Point( 0.6570, -0.0100), ], x_points=[ shape.Point( 0.7840, -0.3754), shape.Point( 0.8028, -0.4153), ], legs=[ shape.Point( 0.7934, -0.3953), ], limit_point=shape.Point( 0.7840, -0.3754), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.9, # 0.5000, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8886, z0=0.0044, kappa=1.5419, delta=0.2430, radius=0.2137, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6780, -0.1200), shape.Point( 0.7200, -0.2360), shape.Point( 0.7840, -0.3754), shape.Point( 0.9090, -0.3040), shape.Point( 1.0040, -0.2110), shape.Point( 1.0660, -0.1110), shape.Point( 1.0950, -0.0030), shape.Point( 1.0800, 0.1070), shape.Point( 1.0210, 0.2070), shape.Point( 0.9250, 0.2740), shape.Point( 0.8090, 0.2730), shape.Point( 0.7170, 0.2040), shape.Point( 0.6660, 0.1010), shape.Point( 0.6570, -0.0100), ], x_points=[ shape.Point( 0.7840, -0.3754), shape.Point( 0.8600, -0.7500), ], legs=[ shape.Point( 0.8220, -0.5627), ], limit_point=shape.Point( 0.7840, -0.3754), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.95, # 0.4280, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8884, z0=0.0319, kappa=1.6229, delta=0.3875, radius=0.2261, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6550, 0.0080), shape.Point( 0.6650, -0.1260), shape.Point( 0.6840, -0.2600), shape.Point( 0.7600, -0.3750), shape.Point( 0.9400, -0.2790), shape.Point( 1.0500, -0.1450), shape.Point( 1.1060, 0.0080), shape.Point( 1.0760, 0.1620), shape.Point( 0.9780, 0.2960), shape.Point( 0.8410, 0.3530), shape.Point( 0.7300, 0.3380), shape.Point( 0.6750, 0.2670), shape.Point( 0.6550, 0.1430), ], x_points=[ shape.Point( 0.7600, -0.3750), ], diverted=shape.Diverted.ANY, ), ), shape.ReferenceTimeSlice( time=1.0, # 0.2680, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8713, z0=0.0662, kappa=1.6059, delta=0.3814, radius=0.2378, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6270, 0.0660), shape.Point( 0.6290, -0.0840), shape.Point( 0.6530, -0.2170), shape.Point( 0.7500, -0.3114), shape.Point( 0.9260, -0.2270), shape.Point( 1.0530, -0.0930), shape.Point( 1.1020, 0.0660), shape.Point( 1.0530, 0.2250), shape.Point( 0.9460, 0.3590), shape.Point( 0.8100, 0.4340), shape.Point( 0.7000, 0.4240), shape.Point( 0.6500, 0.3490), shape.Point( 0.6290, 0.2160), ], x_points=[ shape.Point( 0.7000, -0.4700), ], limit_point=shape.Point( 0.6240, 0.0660), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.05, # 0.0872, shape=shape.Shape( ip=-70000, params=shape.ParametrizedShape( r0=0.8703, z0=0.0547, kappa=1.2459, delta=0.2431, radius=0.2395, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6299, -0.0377), shape.Point( 0.6481, -0.1213), shape.Point( 0.6804, -0.1877), shape.Point( 0.7286, -0.2303), shape.Point( 0.7931, -0.2450), shape.Point( 0.8709, -0.2303), shape.Point( 0.9543, -0.1877), shape.Point( 1.0304, -0.1213), shape.Point( 1.0844, -0.0377), shape.Point( 1.1040, 0.0550), shape.Point( 1.0844, 0.1477), shape.Point( 1.0304, 0.2313), shape.Point( 0.9543, 0.2977), shape.Point( 0.8709, 0.3403), shape.Point( 0.7931, 0.3550), shape.Point( 0.7286, 0.3403), shape.Point( 0.6804, 0.2977), shape.Point( 0.6481, 0.2313), shape.Point( 0.6299, 0.1477), shape.Point( 0.6240, 0.0550), ], limit_point=shape.Point( 0.6240, 0.0550), diverted=shape.Diverted.LIMITED, ), ), ]) # Used in TCV#70600 def iter() -> ref_gen.AbstractReferenceGenerator: # pylint: disable=redefined-builtin return ref_gen.ShapeFromShot([ # Taken from TCV#70392. shape.ReferenceTimeSlice( time=0.0872, shape=shape.Shape( ip=-135000, params=shape.ParametrizedShape( r0=0.8831, z0=0.0501, kappa=1.2500, delta=0.1083, radius=0.2400, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6330, -0.0427), shape.Point( 0.6596, -0.1263), shape.Point( 0.7033, -0.1927), shape.Point( 0.7623, -0.2353), shape.Point( 0.8329, -0.2500), shape.Point( 0.9094, -0.2353), shape.Point( 0.9839, -0.1927), shape.Point( 1.0468, -0.1263), shape.Point( 1.0891, -0.0427), shape.Point( 1.1040, 0.0500), shape.Point( 1.0891, 0.1427), shape.Point( 1.0468, 0.2263), shape.Point( 0.9839, 0.2927), shape.Point( 0.9094, 0.3353), shape.Point( 0.8329, 0.3500), shape.Point( 0.7623, 0.3353), shape.Point( 0.7033, 0.2927), shape.Point( 0.6596, 0.2263), shape.Point( 0.6330, 0.1427), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.1328, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8885, z0=0.0503, kappa=1.4887, delta=0.2421, radius=0.2448, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6305, -0.0636), shape.Point( 0.6505, -0.1660), shape.Point( 0.6855, -0.2473), shape.Point( 0.7366, -0.2995), shape.Point( 0.8037, -0.3175), shape.Point( 0.8830, -0.2995), shape.Point( 0.9666, -0.2473), shape.Point( 1.0420, -0.1660), shape.Point( 1.0949, -0.0636), shape.Point( 1.1140, 0.0500), shape.Point( 1.0949, 0.1636), shape.Point( 1.0420, 0.2660), shape.Point( 0.9666, 0.3473), shape.Point( 0.8830, 0.3995), shape.Point( 0.8037, 0.4175), shape.Point( 0.7366, 0.3995), shape.Point( 0.6855, 0.3473), shape.Point( 0.6505, 0.2660), shape.Point( 0.6305, 0.1636), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.1880, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8858, z0=0.0502, kappa=1.4899, delta=0.3813, radius=0.2443, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6284, -0.0636), shape.Point( 0.6427, -0.1660), shape.Point( 0.6694, -0.2473), shape.Point( 0.7122, -0.2995), shape.Point( 0.7736, -0.3175), shape.Point( 0.8528, -0.2995), shape.Point( 0.9425, -0.2473), shape.Point( 1.0282, -0.1660), shape.Point( 1.0909, -0.0636), shape.Point( 1.1140, 0.0500), shape.Point( 1.0909, 0.1636), shape.Point( 1.0282, 0.2660), shape.Point( 0.9425, 0.3473), shape.Point( 0.8528, 0.3995), shape.Point( 0.7736, 0.4175), shape.Point( 0.7122, 0.3995), shape.Point( 0.6694, 0.3473), shape.Point( 0.6427, 0.2660), shape.Point( 0.6284, 0.1636), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.2280, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8820, z0=0.0501, kappa=1.4817, delta=0.4028, radius=0.2386, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6317, -0.1062), shape.Point( 0.6589, -0.2315), shape.Point( 0.7163, -0.3010), shape.Point( 0.8130, -0.3010), shape.Point( 0.9398, -0.2315), shape.Point( 1.0559, -0.1062), shape.Point( 1.1040, 0.0500), shape.Point( 1.0559, 0.2062), shape.Point( 0.9398, 0.3315), shape.Point( 0.8130, 0.4010), shape.Point( 0.7163, 0.4010), shape.Point( 0.6589, 0.3315), shape.Point( 0.6317, 0.2062), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.2680, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8780, z0=0.0664, kappa=1.6140, delta=0.3943, radius=0.2376, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6270, 0.0660), shape.Point( 0.6290, -0.0840), shape.Point( 0.6530, -0.2170), shape.Point( 0.7500, -0.3114), shape.Point( 0.9260, -0.2270), shape.Point( 1.0530, -0.0930), shape.Point( 1.1020, 0.0660), shape.Point( 1.0530, 0.2250), shape.Point( 0.9460, 0.3590), shape.Point( 0.8100, 0.4340), shape.Point( 0.7000, 0.4240), shape.Point( 0.6500, 0.3490), shape.Point( 0.6290, 0.2160), ], x_points=[ shape.Point( 0.7000, -0.4700), ], limit_point=shape.Point( 0.6240, 0.0660), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.3080, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8670, z0=0.0394, kappa=1.5594, delta=0.2588, radius=0.2252, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6250, 0.0404), shape.Point( 0.6250, -0.0868), shape.Point( 0.6550, -0.2151), shape.Point( 0.7500, -0.3244), shape.Point( 0.9290, -0.2331), shape.Point( 1.0460, -0.1058), shape.Point( 1.0760, 0.0404), shape.Point( 1.0460, 0.1867), shape.Point( 0.9480, 0.3141), shape.Point( 0.8110, 0.3777), shape.Point( 0.7000, 0.3692), shape.Point( 0.6450, 0.2960), shape.Point( 0.6250, 0.1677), ], x_points=[ shape.Point( 0.7200, -0.4355), ], limit_point=shape.Point( 0.6240, 0.0404), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.3480, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8771, z0=0.0286, kappa=1.6824, delta=0.4348, radius=0.2310, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6350, 0.0263), shape.Point( 0.6350, -0.1045), shape.Point( 0.6550, -0.2344), shape.Point( 0.7400, -0.3462), shape.Point( 0.9390, -0.2528), shape.Point( 1.0560, -0.1229), shape.Point( 1.0860, 0.0263), shape.Point( 1.0560, 0.1745), shape.Point( 0.9580, 0.3054), shape.Point( 0.8210, 0.3703), shape.Point( 0.7100, 0.3606), shape.Point( 0.6550, 0.2860), shape.Point( 0.6350, 0.1561), ], x_points=[ shape.Point( 0.7300, -0.3943), ], limit_point=shape.Point( 0.6240, 0.0260), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=0.3880, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8878, z0=0.0130, kappa=1.6511, delta=0.4385, radius=0.2291, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6450, 0.0060), shape.Point( 0.6500, -0.1230), shape.Point( 0.6650, -0.2540), shape.Point( 0.7500, -0.3660), shape.Point( 0.9490, -0.2730), shape.Point( 1.0660, -0.1420), shape.Point( 1.0960, 0.0060), shape.Point( 1.0660, 0.1560), shape.Point( 0.9680, 0.2860), shape.Point( 0.8310, 0.3510), shape.Point( 0.7200, 0.3430), shape.Point( 0.6650, 0.2680), shape.Point( 0.6450, 0.1370), ], x_points=[ shape.Point( 0.7400, -0.3960), ], diverted=shape.Diverted.ANY, ), ), shape.ReferenceTimeSlice( time=0.5000, shape=shape.Shape( ip=-175000, params=shape.ParametrizedShape( r0=0.9069, z0=0.0099, kappa=1.6399, delta=0.4400, radius=0.2255, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6690, -0.1340), shape.Point( 0.6880, -0.2690), shape.Point( 0.7377, -0.3840), shape.Point( 0.8150, -0.3650), shape.Point( 0.9600, -0.2880), shape.Point( 1.0760, -0.1540), shape.Point( 1.1060, 0.0000), shape.Point( 1.0760, 0.1540), shape.Point( 0.9790, 0.2880), shape.Point( 0.8440, 0.3550), shape.Point( 0.6890, 0.2690), shape.Point( 0.6600, 0.1340), shape.Point( 0.6600, 0.0000), ], x_points=[ shape.Point( 0.7377, -0.3840), ], legs=[ shape.Point( 0.7930, -0.5700), ], limit_point=shape.Point( 0.7377, -0.3840), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.6200, shape=shape.Shape( ip=-200000, params=shape.ParametrizedShape( r0=0.9044, z0=0.0142, kappa=1.7484, delta=0.4440, radius=0.2257, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6690, -0.1490), shape.Point( 0.7080, -0.2840), # concave: 181.6 degrees shape.Point( 0.7377, -0.3990), shape.Point( 0.8150, -0.3800), shape.Point( 0.9600, -0.3030), shape.Point( 1.0760, -0.1690), shape.Point( 1.1060, -0.0066), shape.Point( 1.0760, 0.1659), shape.Point( 0.9790, 0.3160), shape.Point( 0.8440, 0.3910), shape.Point( 0.6890, 0.2947), shape.Point( 0.6600, 0.1435), shape.Point( 0.6600, -0.0066), ], x_points=[ shape.Point( 0.7377, -0.3990), ], legs=[ shape.Point( 0.7930, -0.5850), ], limit_point=shape.Point( 0.7377, -0.3990), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.9000, shape=shape.Shape( ip=-240000, params=shape.ParametrizedShape( r0=0.9010, z0=0.0152, kappa=1.7482, delta=0.4427, radius=0.2257, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6690, -0.1490), shape.Point( 0.7080, -0.2840), # concave: 181.6 degrees shape.Point( 0.7377, -0.3990), shape.Point( 0.8150, -0.3800), shape.Point( 0.9600, -0.3030), shape.Point( 1.0760, -0.1690), shape.Point( 1.1060, -0.0066), shape.Point( 1.0760, 0.1659), shape.Point( 0.9790, 0.3160), shape.Point( 0.8440, 0.3910), shape.Point( 0.6890, 0.2947), shape.Point( 0.6600, 0.1435), shape.Point( 0.6600, -0.0066), ], x_points=[ shape.Point( 0.7377, -0.3990), ], legs=[ shape.Point( 0.7930, -0.5850), ], limit_point=shape.Point( 0.7377, -0.3990), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=0.9500, shape=shape.Shape( ip=-245000, params=shape.ParametrizedShape( r0=0.8985, z0=0.0173, kappa=1.7213, delta=0.4905, radius=0.2261, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6690, -0.1490), shape.Point( 0.7200, -0.2840), shape.Point( 0.7600, -0.3890), shape.Point( 0.8500, -0.3700), shape.Point( 0.9600, -0.2850), shape.Point( 1.0760, -0.1590), shape.Point( 1.1060, 0.0030), shape.Point( 1.0660, 0.1760), shape.Point( 1.0000, 0.2650), shape.Point( 0.9200, 0.3360), shape.Point( 0.7500, 0.3850), shape.Point( 0.6650, 0.2850), shape.Point( 0.6600, 0.1430), shape.Point( 0.6600, -0.0070), ], x_points=[ shape.Point( 0.7600, -0.3890), ], legs=[ shape.Point( 0.8430, -0.5850), ], limit_point=shape.Point( 0.7600, -0.3890), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=1.1500, shape=shape.Shape( ip=-260000, params=shape.ParametrizedShape( r0=0.8970, z0=0.0180, kappa=1.7142, delta=0.4877, radius=0.2262, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6690, -0.1490), shape.Point( 0.7200, -0.2840), shape.Point( 0.7600, -0.3890), shape.Point( 0.8500, -0.3700), shape.Point( 0.9600, -0.2850), shape.Point( 1.0760, -0.1590), shape.Point( 1.1060, 0.0030), shape.Point( 1.0660, 0.1760), shape.Point( 1.0000, 0.2650), shape.Point( 0.9200, 0.3360), shape.Point( 0.7500, 0.3850), shape.Point( 0.6650, 0.2850), shape.Point( 0.6600, 0.1430), shape.Point( 0.6600, -0.0070), ], x_points=[ shape.Point( 0.7600, -0.3890), ], legs=[ shape.Point( 0.8430, -0.5850), ], limit_point=shape.Point( 0.7600, -0.3890), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=1.4500, shape=shape.Shape( ip=-280000, params=shape.ParametrizedShape( r0=0.8955, z0=0.0186, kappa=1.7143, delta=0.4841, radius=0.2262, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6690, -0.1490), shape.Point( 0.7200, -0.2840), shape.Point( 0.7600, -0.3890), shape.Point( 0.8500, -0.3700), shape.Point( 0.9600, -0.2850), shape.Point( 1.0760, -0.1590), shape.Point( 1.1060, 0.0030), shape.Point( 1.0660, 0.1760), shape.Point( 1.0000, 0.2650), shape.Point( 0.9200, 0.3360), shape.Point( 0.7500, 0.3850), shape.Point( 0.6650, 0.2850), shape.Point( 0.6600, 0.1430), shape.Point( 0.6600, -0.0070), ], x_points=[ shape.Point( 0.7600, -0.3890), ], legs=[ shape.Point( 0.8430, -0.5850), ], limit_point=shape.Point( 0.7600, -0.3890), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=1.7000, shape=shape.Shape( ip=-280000, params=shape.ParametrizedShape( r0=0.8955, z0=0.0186, kappa=1.7143, delta=0.4841, radius=0.2262, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 14 points shape.Point( 0.6690, -0.1490), shape.Point( 0.7200, -0.2840), shape.Point( 0.7600, -0.3890), shape.Point( 0.8500, -0.3700), shape.Point( 0.9600, -0.2850), shape.Point( 1.0760, -0.1590), shape.Point( 1.1060, 0.0030), shape.Point( 1.0660, 0.1760), shape.Point( 1.0000, 0.2650), shape.Point( 0.9200, 0.3360), shape.Point( 0.7500, 0.3850), shape.Point( 0.6650, 0.2850), shape.Point( 0.6600, 0.1430), shape.Point( 0.6600, -0.0070), ], x_points=[ shape.Point( 0.7600, -0.3890), ], legs=[ shape.Point( 0.8430, -0.5850), ], limit_point=shape.Point( 0.7600, -0.3890), diverted=shape.Diverted.DIVERTED, ), ), shape.ReferenceTimeSlice( time=1.7600, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8873, z0=0.0281, kappa=1.6534, delta=0.4388, radius=0.2288, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6450, 0.0210), shape.Point( 0.6500, -0.1080), shape.Point( 0.6650, -0.2390), shape.Point( 0.7500, -0.3510), shape.Point( 0.9490, -0.2580), shape.Point( 1.0660, -0.1270), shape.Point( 1.0960, 0.0210), shape.Point( 1.0660, 0.1710), shape.Point( 0.9680, 0.3010), shape.Point( 0.8310, 0.3660), shape.Point( 0.7200, 0.3580), shape.Point( 0.6650, 0.2830), shape.Point( 0.6450, 0.1520), ], x_points=[ shape.Point( 0.7400, -0.3810), ], diverted=shape.Diverted.ANY, ), ), shape.ReferenceTimeSlice( time=1.7800, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8770, z0=0.0436, kappa=1.6840, delta=0.4370, radius=0.2306, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6350, 0.0413), shape.Point( 0.6350, -0.0895), shape.Point( 0.6550, -0.2194), shape.Point( 0.7400, -0.3312), shape.Point( 0.9390, -0.2378), shape.Point( 1.0560, -0.1079), shape.Point( 1.0860, 0.0413), shape.Point( 1.0560, 0.1895), shape.Point( 0.9580, 0.3204), shape.Point( 0.8210, 0.3853), shape.Point( 0.7100, 0.3756), shape.Point( 0.6550, 0.3010), shape.Point( 0.6350, 0.1711), ], x_points=[ shape.Point( 0.7300, -0.3793), ], limit_point=shape.Point( 0.6240, 0.0410), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.8000, shape=shape.Shape( ip=-140000, params=shape.ParametrizedShape( r0=0.8784, z0=0.0865, kappa=1.6166, delta=0.3958, radius=0.2378, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 13 points shape.Point( 0.6270, 0.0860), shape.Point( 0.6290, -0.0640), shape.Point( 0.6530, -0.1970), shape.Point( 0.7500, -0.2914), shape.Point( 0.9260, -0.2070), shape.Point( 1.0530, -0.0730), shape.Point( 1.1020, 0.0860), shape.Point( 1.0530, 0.2450), shape.Point( 0.9460, 0.3790), shape.Point( 0.8100, 0.4540), shape.Point( 0.7000, 0.4440), shape.Point( 0.6500, 0.3690), shape.Point( 0.6290, 0.2360), ], x_points=[ shape.Point( 0.7000, -0.4500), ], limit_point=shape.Point( 0.6240, 0.0860), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.8100, shape=shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.8865, z0=0.0501, kappa=1.3991, delta=0.1188, radius=0.2402, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6330, -0.0538), shape.Point( 0.6596, -0.1475), shape.Point( 0.7033, -0.2218), shape.Point( 0.7623, -0.2696), shape.Point( 0.8329, -0.2860), shape.Point( 0.9094, -0.2696), shape.Point( 0.9839, -0.2218), shape.Point( 1.0468, -0.1475), shape.Point( 1.0891, -0.0538), shape.Point( 1.1040, 0.0500), shape.Point( 1.0891, 0.1538), shape.Point( 1.0468, 0.2475), shape.Point( 0.9839, 0.3218), shape.Point( 0.9094, 0.3696), shape.Point( 0.8329, 0.3860), shape.Point( 0.7623, 0.3696), shape.Point( 0.7033, 0.3218), shape.Point( 0.6596, 0.2475), shape.Point( 0.6330, 0.1538), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.8200, shape=shape.Shape( ip=-94000, params=shape.ParametrizedShape( r0=0.8523, z0=0.0500, kappa=1.0904, delta=0.0128, radius=0.2106, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6339, -0.0207), shape.Point( 0.6627, -0.0845), shape.Point( 0.7078, -0.1352), shape.Point( 0.7653, -0.1677), shape.Point( 0.8298, -0.1789), shape.Point( 0.8951, -0.1677), shape.Point( 0.9547, -0.1352), shape.Point( 1.0024, -0.0845), shape.Point( 1.0333, -0.0207), shape.Point( 1.0440, 0.0500), shape.Point( 1.0333, 0.1207), shape.Point( 1.0024, 0.1845), shape.Point( 0.9547, 0.2352), shape.Point( 0.8951, 0.2677), shape.Point( 0.8298, 0.2789), shape.Point( 0.7653, 0.2677), shape.Point( 0.7078, 0.2352), shape.Point( 0.6627, 0.1845), shape.Point( 0.6339, 0.1207), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.8300, shape=shape.Shape( ip=-53000, params=shape.ParametrizedShape( r0=0.8048, z0=0.0501, kappa=1.0631, delta=0.0036, radius=0.1680, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6322, -0.0050), shape.Point( 0.6559, -0.0545), shape.Point( 0.6928, -0.0939), shape.Point( 0.7394, -0.1192), shape.Point( 0.7910, -0.1279), shape.Point( 0.8426, -0.1192), shape.Point( 0.8892, -0.0939), shape.Point( 0.9261, -0.0545), shape.Point( 0.9498, -0.0050), shape.Point( 0.9580, 0.0500), shape.Point( 0.9498, 0.1050), shape.Point( 0.9261, 0.1545), shape.Point( 0.8892, 0.1939), shape.Point( 0.8426, 0.2192), shape.Point( 0.7910, 0.2279), shape.Point( 0.7394, 0.2192), shape.Point( 0.6928, 0.1939), shape.Point( 0.6559, 0.1545), shape.Point( 0.6322, 0.1050), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.8400, shape=shape.Shape( ip=-22000, params=shape.ParametrizedShape( r0=0.7484, z0=0.0489, kappa=1.0666, delta=0.0258, radius=0.1176, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6297, 0.0109), shape.Point( 0.6462, -0.0243), shape.Point( 0.6718, -0.0523), shape.Point( 0.7042, -0.0703), shape.Point( 0.7400, -0.0764), shape.Point( 0.7758, -0.0703), shape.Point( 0.8082, -0.0523), shape.Point( 0.8338, -0.0243), shape.Point( 0.8503, 0.0109), shape.Point( 0.8560, 0.0500), shape.Point( 0.8503, 0.0891), shape.Point( 0.8338, 0.1243), shape.Point( 0.8082, 0.1523), shape.Point( 0.7758, 0.1703), shape.Point( 0.7400, 0.1764), shape.Point( 0.7042, 0.1703), shape.Point( 0.6718, 0.1523), shape.Point( 0.6462, 0.1243), shape.Point( 0.6297, 0.0891), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), shape.ReferenceTimeSlice( time=1.8500, shape=shape.Shape( ip=-12000, params=shape.ParametrizedShape( r0=0.7149, z0=0.0494, kappa=1.0830, delta=0.0382, radius=0.0871, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point( 0.6282, 0.0198), shape.Point( 0.6402, -0.0075), shape.Point( 0.6590, -0.0291), shape.Point( 0.6827, -0.0430), shape.Point( 0.7090, -0.0477), shape.Point( 0.7353, -0.0430), shape.Point( 0.7590, -0.0291), shape.Point( 0.7778, -0.0075), shape.Point( 0.7898, 0.0198), shape.Point( 0.7940, 0.0500), shape.Point( 0.7898, 0.0802), shape.Point( 0.7778, 0.1075), shape.Point( 0.7590, 0.1291), shape.Point( 0.7353, 0.1430), shape.Point( 0.7090, 0.1478), shape.Point( 0.6827, 0.1430), shape.Point( 0.6590, 0.1291), shape.Point( 0.6402, 0.1075), shape.Point( 0.6282, 0.0802), shape.Point( 0.6240, 0.0500), ], limit_point=shape.Point( 0.6240, 0.0500), diverted=shape.Diverted.LIMITED, ), ), ]) # Used in TCV#69545 def droplet() -> ref_gen.AbstractReferenceGenerator: """Hold the droplet at handover for TCV#69198 then ramp the Ip.""" init = ref_gen.RZIpTarget(r=0.875, z=0.55, ip=-72500) final = ref_gen.RZIpTarget(r=0.875, z=0.47, ip=-110000) return ref_gen.FixedReferenceGenerator([ ref_gen.LinearTransition( transition_steps=0, steady_steps=350, # Intentionally short. Mostly want to ramp. reference=ref_gen.make_symmetric_multidomain_rzip_reference(init)), ref_gen.LinearTransition( transition_steps=400, steady_steps=100000, # Hold forever. reference=ref_gen.make_symmetric_multidomain_rzip_reference(final)), ]) _REFERENCES = [ fundamental_capability, elongation, iter, negative_triangularity, snowflake, droplet, ] REFERENCES = {f.__name__: f for f in _REFERENCES} ================================================ FILE: fusion_tcv/references_main.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Print the values of references.""" from typing import Sequence from absl import app from absl import flags from fusion_tcv import named_array from fusion_tcv import references from fusion_tcv import tcv_common _refs = flags.DEFINE_enum("refs", None, references.REFERENCES.keys(), "Which references to print") _count = flags.DEFINE_integer("count", 100, "How many timesteps to print.") _freq = flags.DEFINE_integer("freq", 1, "Print only every so often.") _fields = flags.DEFINE_multi_enum( "field", None, tcv_common.REF_RANGES.names(), "Which reference fields to print, default of all.") flags.mark_flag_as_required("refs") def print_ref(step: int, ref: named_array.NamedArray): print(f"Step: {step}") for k in (_fields.value or ref.names.names()): print(f" {k}: [{', '.join(f'{v:.3f}' for v in ref[k])}]") def main(argv: Sequence[str]) -> None: if len(argv) > 1: raise app.UsageError("Too many command-line arguments.") if _freq.value <= 0: raise app.UsageError("`freq` must be >0.") ref = references.REFERENCES[_refs.value]() print_ref(0, ref.reset()) for i in range(1, _count.value + 1): for _ in range(_freq.value - 1): ref.step() print_ref(i * _freq.value, ref.step()) print(f"Stopped after {_count.value * _freq.value} steps.") if __name__ == "__main__": app.run(main) ================================================ FILE: fusion_tcv/requirements.txt ================================================ absl-py>=0.13.0 dm-env>=1.5 numpy>=1.21.0 scipy>=1.7.0 ================================================ FILE: fusion_tcv/rewards.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Reward function for the fusion environment.""" import abc import collections import functools from typing import Callable, Dict, List, Optional, Text, Tuple, Union from absl import logging import dataclasses import numpy as np from fusion_tcv import combiners from fusion_tcv import fge_state from fusion_tcv import named_array from fusion_tcv import targets as targets_lib from fusion_tcv import transforms class AbstractMeasure(abc.ABC): @abc.abstractmethod def __call__(self, targets: List[targets_lib.Target]) -> List[float]: """Returns a list of error measures.""" class AbsDist(AbstractMeasure): """Return the absolute distance between the actual and target.""" @staticmethod def __call__(targets: List[targets_lib.Target]) -> List[float]: return [abs(t.actual - t.target) for t in targets] @dataclasses.dataclass(frozen=True) class MeasureDetails: min: float mean: float max: float @dataclasses.dataclass class RewardDetails: reward: float # 0-1 reward value. weighted: float # Should sum to < 0-1. weight: float measure: Optional[MeasureDetails] = None class AbstractReward(abc.ABC): """Abstract reward class.""" @abc.abstractmethod def reward( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray, ) -> Tuple[float, Dict[Text, List[RewardDetails]]]: """Returns the reward and log dict as a function of the penalty term.""" @abc.abstractmethod def terminal_reward(self) -> float: """Returns the reward if the simulator crashed.""" WeightFn = Callable[[named_array.NamedArray], float] WeightOrFn = Union[float, WeightFn] @dataclasses.dataclass class Component: target: targets_lib.AbstractTarget transforms: List[transforms.AbstractTransform] measure: AbstractMeasure = dataclasses.field(default_factory=AbsDist) weight: Union[WeightOrFn, List[WeightOrFn]] = 1 name: Optional[str] = None class Reward(AbstractReward): """Combines a bunch of reward components into a single reward. The component parts are applied in the order: target, measure, transform. - Targets represent some error value as one or more pair of values (target, actual), usually with some meaningful physical unit (eg distance, volts, etc). - Measures combine the (target, actual) into a single float, for example absolute distance, for each error value. - Transforms can make arbitrary conversions, but one of them must change from the arbitrary (often meaningful) scale to a reward in the 0-1 range. - Combiners are a special type of transform that reduces a vector of values down to a single value. The combiner can be skipped if the target only outputs a single value, or if you want a vector of outputs for the final combiner. - The component weights are passed to the final combiner, and must match the number of outputs for that component. """ def __init__(self, components: List[Component], combiner: combiners.AbstractCombiner, terminal_reward: float = -5, reward_scale: float = 0.01): self._components = components self._combiner = combiner self._terminal_reward = terminal_reward self._reward_scale = reward_scale self._weights = [] component_count = collections.Counter() for component in self._components: num_outputs = component.target.outputs for transform in component.transforms: if transform.outputs is not None: num_outputs = transform.outputs if not isinstance(component.weight, list): component.weight = [component.weight] if len(component.weight) != num_outputs: name = component.name or component.target.name raise ValueError(f"Wrong number of weights for '{name}': got:" f" {len(component.weight)}, expected: {num_outputs}") self._weights.extend(component.weight) def terminal_reward(self) -> float: return self._terminal_reward * self._reward_scale def reward( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray, ) -> Tuple[float, Dict[Text, List[RewardDetails]]]: values = [] weights = [weight(references) if callable(weight) else weight for weight in self._weights] reward_dict = collections.defaultdict(list) for component in self._components: name = component.name or component.target.name num_outputs = len(component.weight) component_weights = weights[len(values):(len(values) + num_outputs)] try: target = component.target(voltages, state, references) except targets_lib.TargetError: logging.exception("Target failed.") # Failed turns into minimum reward. measure = [987654321] * num_outputs transformed = [0] * num_outputs else: measure = component.measure(target) transformed = functools.reduce( (lambda e, fn: fn(e)), component.transforms, measure) assert len(transformed) == num_outputs for v in transformed: if not np.isnan(v) and not 0 <= v <= 1: raise ValueError(f"The transformed value in {name} is invalid: {v}") values.extend(transformed) for weight, value in zip(component_weights, transformed): measure = [m for m in measure if not np.isnan(m)] or [float("nan")] reward_dict[name].append(RewardDetails( value, weight * value * self._reward_scale, weight if not np.isnan(value) else 0, MeasureDetails( min(measure), sum(measure) / len(measure), max(measure)))) sum_weights = sum(sum(d.weight for d in detail) for detail in reward_dict.values()) for reward_details in reward_dict.values(): for detail in reward_details: detail.weighted /= sum_weights final_combined = self._combiner(values, weights) assert len(final_combined) == 1 return final_combined[0] * self._reward_scale, reward_dict ================================================ FILE: fusion_tcv/rewards_used.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """The rewards used in our experiments.""" from fusion_tcv import combiners from fusion_tcv import rewards from fusion_tcv import targets from fusion_tcv import transforms # Used in TCV#70915 FUNDAMENTAL_CAPABILITY = rewards.Reward([ rewards.Component( target=targets.ShapeLCFSDistance(), transforms=[transforms.SoftPlus(good=0.005, bad=0.05), combiners.SmoothMax(-1)]), rewards.Component( target=targets.XPointFar(), transforms=[transforms.Sigmoid(good=0.3, bad=0.1), combiners.SmoothMax(-5)]), rewards.Component( target=targets.LimitPoint(), transforms=[transforms.Sigmoid(bad=0.2, good=0.1)]), rewards.Component( target=targets.XPointNormalizedFlux(num_points=1), transforms=[transforms.SoftPlus(bad=0.08)]), rewards.Component( target=targets.XPointDistance(num_points=1), transforms=[transforms.Sigmoid(good=0.01, bad=0.15)]), rewards.Component( target=targets.XPointFluxGradient(num_points=1), transforms=[transforms.SoftPlus(bad=3)], weight=0.5), rewards.Component( target=targets.Ip(), transforms=[transforms.SoftPlus(good=500, bad=20000)]), rewards.Component( target=targets.OHCurrentsClose(), transforms=[transforms.SoftPlus(good=50, bad=1050)]), ], combiners.SmoothMax(-0.5)) # Used in TCV#70920 ELONGATION = rewards.Reward([ rewards.Component( target=targets.ShapeLCFSDistance(), transforms=[transforms.SoftPlus(good=0.003, bad=0.03), combiners.SmoothMax(-1)], weight=3), rewards.Component( target=targets.ShapeRadius(), transforms=[transforms.SoftPlus(good=0.002, bad=0.02)]), rewards.Component( target=targets.ShapeElongation(), transforms=[transforms.SoftPlus(good=0.005, bad=0.2)]), rewards.Component( target=targets.ShapeTriangularity(), transforms=[transforms.SoftPlus(good=0.005, bad=0.2)]), rewards.Component( target=targets.XPointCount(), transforms=[transforms.Equal()]), rewards.Component( target=targets.LimitPoint(), # Stay away from the top/baffles. transforms=[transforms.Sigmoid(bad=0.3, good=0.2)]), rewards.Component( target=targets.Ip(), transforms=[transforms.SoftPlus(good=500, bad=30000)]), rewards.Component( target=targets.VoltageOOB(), transforms=[combiners.Mean(), transforms.SoftPlus(bad=1)]), rewards.Component( target=targets.OHCurrentsClose(), transforms=[transforms.ClippedLinear(good=50, bad=1050)]), rewards.Component( name="CurrentsFarFromZero", target=targets.EFCurrents(), transforms=[transforms.Abs(), transforms.SoftPlus(good=100, bad=50), combiners.GeometricMean()]), ], combiner=combiners.SmoothMax(-5)) # Used in TCV#70600 ITER = rewards.Reward([ rewards.Component( target=targets.ShapeLCFSDistance(), transforms=[transforms.SoftPlus(good=0.005, bad=0.05), combiners.SmoothMax(-1)], weight=3), rewards.Component( target=targets.Diverted(), transforms=[transforms.Equal()]), rewards.Component( target=targets.XPointNormalizedFlux(num_points=2), transforms=[transforms.SoftPlus(bad=0.08)], weight=[1] * 2), rewards.Component( target=targets.XPointDistance(num_points=2), transforms=[transforms.Sigmoid(good=0.01, bad=0.15)], weight=[0.5] * 2), rewards.Component( target=targets.XPointFluxGradient(num_points=2), transforms=[transforms.SoftPlus(bad=3)], weight=[0.5] * 2), rewards.Component( target=targets.LegsNormalizedFlux(), transforms=[transforms.Sigmoid(good=0.1, bad=0.3), combiners.SmoothMax(-5)], weight=2), rewards.Component( target=targets.Ip(), transforms=[transforms.SoftPlus(good=500, bad=20000)], weight=2), rewards.Component( target=targets.VoltageOOB(), transforms=[combiners.Mean(), transforms.SoftPlus(bad=1)]), rewards.Component( target=targets.OHCurrentsClose(), transforms=[transforms.ClippedLinear(good=50, bad=1050)]), rewards.Component( name="CurrentsFarFromZero", target=targets.EFCurrents(), transforms=[transforms.Abs(), transforms.SoftPlus(good=100, bad=50), combiners.GeometricMean()]), ], combiner=combiners.SmoothMax(-5)) # Used in TCV#70755 SNOWFLAKE = rewards.Reward([ rewards.Component( target=targets.ShapeLCFSDistance(), transforms=[transforms.SoftPlus(good=0.005, bad=0.05), combiners.SmoothMax(-1)], weight=3), rewards.Component( target=targets.LimitPoint(), transforms=[transforms.Sigmoid(bad=0.2, good=0.1)]), rewards.Component( target=targets.XPointNormalizedFlux(num_points=2), transforms=[transforms.SoftPlus(bad=0.08)], weight=[1] * 2), rewards.Component( target=targets.XPointDistance(num_points=2), transforms=[transforms.Sigmoid(good=0.01, bad=0.15)], weight=[0.5] * 2), rewards.Component( target=targets.XPointFluxGradient(num_points=2), transforms=[transforms.SoftPlus(bad=3)], weight=[0.5] * 2), rewards.Component( target=targets.LegsNormalizedFlux(), transforms=[transforms.Sigmoid(good=0.1, bad=0.3), combiners.SmoothMax(-5)], weight=2), rewards.Component( target=targets.Ip(), transforms=[transforms.SoftPlus(good=500, bad=20000)], weight=2), rewards.Component( target=targets.VoltageOOB(), transforms=[combiners.Mean(), transforms.SoftPlus(bad=1)]), rewards.Component( target=targets.OHCurrentsClose(), transforms=[transforms.ClippedLinear(good=50, bad=1050)]), rewards.Component( name="CurrentsFarFromZero", target=targets.EFCurrents(), transforms=[transforms.Abs(), transforms.SoftPlus(good=100, bad=50), combiners.GeometricMean()]), ], combiner=combiners.SmoothMax(-5)) # Used in TCV#70457 NEGATIVE_TRIANGULARITY = rewards.Reward([ rewards.Component( target=targets.ShapeLCFSDistance(), transforms=[transforms.SoftPlus(good=0.005, bad=0.05), combiners.SmoothMax(-1)], weight=3), rewards.Component( target=targets.ShapeRadius(), transforms=[transforms.SoftPlus(bad=0.04)]), rewards.Component( target=targets.ShapeElongation(), transforms=[transforms.SoftPlus(bad=0.5)]), rewards.Component( target=targets.ShapeTriangularity(), transforms=[transforms.SoftPlus(bad=0.5)]), rewards.Component( target=targets.Diverted(), transforms=[transforms.Equal()]), rewards.Component( target=targets.XPointNormalizedFlux(num_points=2), transforms=[transforms.SoftPlus(bad=0.08)], weight=[1] * 2), rewards.Component( target=targets.XPointDistance(num_points=2), transforms=[transforms.Sigmoid(good=0.02, bad=0.15)], weight=[0.5] * 2), rewards.Component( target=targets.XPointFluxGradient(num_points=2), transforms=[transforms.SoftPlus(bad=3)], weight=[0.5] * 2), rewards.Component( target=targets.Ip(), transforms=[transforms.SoftPlus(good=500, bad=20000)], weight=2), rewards.Component( target=targets.VoltageOOB(), transforms=[combiners.Mean(), transforms.SoftPlus(bad=1)]), rewards.Component( target=targets.OHCurrentsClose(), transforms=[transforms.ClippedLinear(good=50, bad=1050)]), rewards.Component( name="CurrentsFarFromZero", target=targets.EFCurrents(), transforms=[transforms.Abs(), transforms.SoftPlus(good=100, bad=50), combiners.GeometricMean()]), ], combiner=combiners.SmoothMax(-0.5)) # Used in TCV#69545 DROPLETS = rewards.Reward([ rewards.Component( target=targets.R(indices=[0, 1]), transforms=[transforms.Sigmoid(good=0.02, bad=0.5)], weight=[1, 1]), rewards.Component( target=targets.Z(indices=[0, 1]), transforms=[transforms.Sigmoid(good=0.02, bad=0.2)], weight=[1, 1]), rewards.Component( target=targets.Ip(indices=[0, 1]), transforms=[transforms.Sigmoid(good=2000, bad=20000)], weight=[1, 1]), rewards.Component( target=targets.OHCurrentsClose(), transforms=[transforms.ClippedLinear(good=50, bad=1050)]), ], combiner=combiners.GeometricMean()) ================================================ FILE: fusion_tcv/run_loop.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Run an agent on the environment.""" import numpy as np from fusion_tcv import environment from fusion_tcv import trajectory def run_loop(env: environment.Environment, agent, max_steps: int = 100000) -> trajectory.Trajectory: """Run an agent.""" results = [] agent.reset() ts = env.reset() for _ in range(max_steps): obs = ts.observation action = agent.step(ts) ts = env.step(action) results.append(trajectory.Trajectory( measurements=obs["measurements"], references=obs["references"], actions=action, reward=np.array(ts.reward))) if ts.last(): break return trajectory.Trajectory.stack(results) ================================================ FILE: fusion_tcv/shape.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities for time varying shape control.""" import copy import enum import random from typing import List, Optional, NamedTuple, Tuple, Union import dataclasses import numpy as np from scipy import interpolate from fusion_tcv import named_array from fusion_tcv import tcv_common class Point(NamedTuple): """A point in r,z coordinates.""" r: float z: float def to_polar(self) -> "PolarPoint": return PolarPoint(np.arctan2(self.z, self.r), np.sqrt(self.r**2 + self.z**2)) def __neg__(self): return Point(-self.r, -self.z) def __add__(self, pt_or_val: Union["Point", float]): if isinstance(pt_or_val, Point): return Point(self.r + pt_or_val.r, self.z + pt_or_val.z) else: return Point(self.r + pt_or_val, self.z + pt_or_val) def __sub__(self, pt_or_val: Union["Point", float]): if isinstance(pt_or_val, Point): return Point(self.r - pt_or_val.r, self.z - pt_or_val.z) else: return Point(self.r - pt_or_val, self.z - pt_or_val) def __mul__(self, pt_or_val: Union["Point", float]): if isinstance(pt_or_val, Point): return Point(self.r * pt_or_val.r, self.z * pt_or_val.z) else: return Point(self.r * pt_or_val, self.z * pt_or_val) def __truediv__(self, pt_or_val: Union["Point", float]): if isinstance(pt_or_val, Point): return Point(self.r / pt_or_val.r, self.z / pt_or_val.z) else: return Point(self.r / pt_or_val, self.z / pt_or_val) __div__ = __truediv__ def dist(p1: Union[Point, np.ndarray], p2: Union[Point, np.ndarray]) -> float: return np.hypot(*(p1 - p2)) ShapePoints = List[Point] def to_shape_points(array: np.ndarray) -> ShapePoints: return [Point(r, z) for r, z in array] def center_point(points: ShapePoints) -> Point: return sum(points, Point(0, 0)) / len(points) class ShapeSide(enum.Enum): LEFT = 0 RIGHT = 1 NOSHIFT = 2 class PolarPoint(NamedTuple): angle: float dist: float def to_point(self) -> Point: return Point(np.cos(self.angle) * self.dist, np.sin(self.angle) * self.dist) def evenly_spaced_angles(num: int): return np.arange(num) * 2 * np.pi / num def angle_aligned_dists(points: np.ndarray, angles: np.ndarray) -> np.ndarray: """Return a new set of points along angles that intersect with the shape.""" # TODO(tewalds): Walk the two arrays together for an O(n+m) algorithm instead # of the current O(n*m). This would work as long as they are both sorted # around the radial direction, so the next intersection will be near the last. return np.array([dist_angle_to_surface(points, a) for a in angles]) def angle_aligned_points(points: np.ndarray, num_points: int, origin: Point) -> np.ndarray: """Given a set of points, return a new space centered at origin.""" angles = evenly_spaced_angles(num_points) dists = angle_aligned_dists(points - origin, angles) return np.stack((np.cos(angles) * dists, np.sin(angles) * dists), axis=-1) + origin def dist_angle_to_surface(points: np.ndarray, angle: float) -> float: """Distance along a ray to the surface defined by a list of points.""" for p1, p2 in zip(points, np.roll(points, 1, axis=0)): d = dist_angle_to_segment(p1, p2, angle) if d is not None: return d raise ValueError(f"Intersecting edge not found for angle: {angle}") def dist_angle_to_segment(p1, p2, angle: float) -> Optional[float]: """Distance along a ray from the origin to a segment defined by two points.""" x0, y0 = p1[0], p1[1] x1, y1 = p2[0], p2[1] a0, b0 = np.cos(angle), np.sin(angle) a1, b1 = 0, 0 # Segment/segment algorithm inspired by https://stackoverflow.com/q/563198 denom = (b0 - b1) * (x0 - x1) - (y0 - y1) * (a0 - a1) if denom == 0: return None # Angle parallel to the segment, so can't intersect. xy = (a0 * (y1 - b1) + a1 * (b0 - y1) + x1 * (b1 - b0)) / denom eps = 0.00001 # Allow intersecting slightly beyond the endpoints. if -eps <= xy <= 1 + eps: # Check it hit the segment, not just the line. ab = (y1 * (x0 - a1) + b1 * (x1 - x0) + y0 * (a1 - x1)) / denom if ab > 0: # Otherwise it hit in the reverse direction. # If ab <= 1 then it's within the segment defined above, but given it's # a unit vector with one end at the origin this tells us the distance to # the intersection of an infinite ray out from the origin. return ab return None def dist_point_to_surface(points: np.ndarray, point: np.ndarray) -> float: """Distance from a point to the surface defined by a list of points.""" return min(dist_point_to_segment(p1, p2, point) for p1, p2 in zip(points, np.roll(points, 1, axis=0))) def dist_point_to_segment(v: np.ndarray, w: np.ndarray, p: np.ndarray) -> float: """Return minimum distance between line segment vw and point p.""" # Inspired by: https://stackoverflow.com/a/1501725 l2 = dist(v, w)**2 if l2 == 0.0: return dist(p, v) # v == w case # Consider the line extending the segment, parameterized as v + t (w - v). # We find projection of point p onto the line. # It falls where t = [(p-v) . (w-v)] / |w-v|^2 # We clamp t from [0,1] to handle points outside the segment vw. t = max(0, min(1, np.dot(p - v, w - v) / l2)) projection = v + t * (w - v) # Projection falls on the segment return dist(p, projection) def sort_by_angle(points: ShapePoints) -> ShapePoints: center = sum(points, Point(0, 0)) / len(points) return sorted(points, key=lambda p: (p - center).to_polar().angle) def spline_interpolate_points( points: ShapePoints, num_points: int, x_points: Optional[ShapePoints] = None) -> ShapePoints: """Interpolate along a spline to give a smooth evenly spaced shape.""" ends = [] if x_points: # Find the shape points that must allow sharp corners. for xp in x_points: for i, p in enumerate(points): if np.hypot(*(p - xp)) < 0.01: ends.append(i) if not ends: # No x-points forcing sharp corners, so use a periodic spline. tck, _ = interpolate.splprep(np.array(points + [points[0]]).T, s=0, per=1) unew = np.arange(num_points) / num_points out = interpolate.splev(unew, tck) assert len(out[0]) == num_points return sort_by_angle(to_shape_points(np.array(out).T)) # Generate a spline with an shape==x-point at each end. new_pts = [] for i, j in zip(ends, ends[1:] + [ends[0]]): pts = points[i:j+1] if i < j else points[i:] + points[:j+1] num_segment_points = np.round((len(pts) - 1) / len(points) * num_points) unew = np.arange(num_segment_points + 1) / num_segment_points tck, _ = interpolate.splprep(np.array(pts).T, s=0) out = interpolate.splev(unew, tck) new_pts += to_shape_points(np.array(out).T)[:-1] if len(new_pts) != num_points: raise AssertionError( f"Generated the wrong number of points: {len(new_pts)} != {num_points}") return sort_by_angle(new_pts) @dataclasses.dataclass class ParametrizedShape: """Describes a target shape from the parameter set.""" r0: float # Where to put the center along the radial axis. z0: float # Where to put the center along the vertical axis. kappa: float # Elongation of the shape. (0.8, 3) delta: float # Triangulation of the shape. (-1, 1) radius: float # Radius of the shape (0.22, 2.58) lambda_: float # Squareness of the shape. Recommend (0, 0) side: ShapeSide # Whether and which side to shift the shape to. @classmethod def uniform_random_shape( cls, r_bounds=(0.8, 0.9), z_bounds=(0, 0.2), kappa_bounds=(1.0, 1.8), # elongation delta_bounds=(-0.5, 0.6), # triangulation radius_bounds=(tcv_common.LIMITER_WIDTH / 2 - 0.04, tcv_common.LIMITER_WIDTH / 2), lambda_bounds=(0, 0), # squareness side=(ShapeSide.LEFT, ShapeSide.RIGHT)): """Return a random shape.""" return cls( r0=np.random.uniform(*r_bounds), z0=np.random.uniform(*z_bounds), kappa=np.random.uniform(*kappa_bounds), delta=np.random.uniform(*delta_bounds), radius=np.random.uniform(*radius_bounds), lambda_=np.random.uniform(*lambda_bounds), side=side if isinstance(side, ShapeSide) else random.choice(side)) def gen_points(self, num_points: int) -> Tuple[ShapePoints, Point]: """Generates a set of shape points, return (points, modified (r0, z0)).""" r0 = self.r0 z0 = self.z0 num_warped_points = 32 points = np.zeros((num_warped_points, 2)) theta = evenly_spaced_angles(num_warped_points) points[:, 0] = r0 + self.radius * np.cos(theta + self.delta * np.sin(theta) - self.lambda_ * np.sin(2 * theta)) points[:, 1] = z0 + self.radius * self.kappa * np.sin(theta) if self.side == ShapeSide.LEFT: wall_shift = np.min(points[:, 0]) - tcv_common.INNER_LIMITER_R points[:, 0] -= wall_shift r0 -= wall_shift elif self.side == ShapeSide.RIGHT: wall_shift = np.max(points[:, 0]) - tcv_common.OUTER_LIMITER_R points[:, 0] -= wall_shift r0 -= wall_shift return (spline_interpolate_points(to_shape_points(points), num_points), Point(r0, z0)) def trim_zero_points(points: ShapePoints) -> Optional[ShapePoints]: trimmed = [p for p in points if p.r != 0] return trimmed if trimmed else None class Diverted(enum.Enum): """Whether a shape is diverted or not.""" ANY = 0 LIMITED = 1 DIVERTED = 2 @classmethod def from_refs(cls, references: named_array.NamedArray) -> "Diverted": diverted = (references["diverted", 0] == 1) limited = (references["limited", 0] == 1) if diverted and limited: raise ValueError("Diverted and limited doesn't make sense.") if diverted: return cls.DIVERTED if limited: return cls.LIMITED return cls.ANY @dataclasses.dataclass class Shape: """Full specification of a shape.""" params: Optional[ParametrizedShape] = None points: Optional[ShapePoints] = None x_points: Optional[ShapePoints] = None legs: Optional[ShapePoints] = None diverted: Diverted = Diverted.ANY ip: Optional[float] = None limit_point: Optional[Point] = None @classmethod def from_references(cls, references: named_array.NamedArray) -> "Shape": """Extract a Shape from the references.""" if any(np.any(references[name] != 0) for name in ("R", "Z", "kappa", "delta", "radius", "lambda")): params = ParametrizedShape( r0=references["R"][0], z0=references["Z"][0], kappa=references["kappa"][0], delta=references["delta"][0], radius=references["radius"][0], lambda_=references["lambda"][0], side=ShapeSide.NOSHIFT) else: params = None ip = references["Ip", 0] return cls( params, points=trim_zero_points(points_from_references(references, "shape1")), x_points=trim_zero_points(points_from_references(references, "x_points")), legs=trim_zero_points(points_from_references(references, "legs")), limit_point=trim_zero_points(points_from_references( references, "limit_point")[0:1]), diverted=Diverted.from_refs(references), ip=float(ip) if ip != 0 else None) def gen_references(self) -> named_array.NamedArray: """Return the references for the parametrized shape.""" refs = tcv_common.REF_RANGES.new_named_array() if self.ip is not None: refs["Ip", 0] = self.ip refs["diverted", 0] = 1 if self.diverted == Diverted.DIVERTED else 0 refs["limited", 0] = 1 if self.diverted == Diverted.LIMITED else 0 if self.params is not None: refs["R", 0] = self.params.r0 refs["Z", 0] = self.params.z0 refs["kappa", 0] = self.params.kappa refs["delta", 0] = self.params.delta refs["radius", 0] = self.params.radius refs["lambda", 0] = self.params.lambda_ if self.points is not None: points = np.array(self.points) assert refs.names.count("shape_r") >= points.shape[0] refs["shape_r", :points.shape[0]] = points[:, 0] refs["shape_z", :points.shape[0]] = points[:, 1] if self.x_points is not None: x_points = np.array(self.x_points) assert refs.names.count("x_points_r") >= x_points.shape[0] refs["x_points_r", :x_points.shape[0]] = x_points[:, 0] refs["x_points_z", :x_points.shape[0]] = x_points[:, 1] if self.legs is not None: legs = np.array(self.legs) assert refs.names.count("legs_r") >= legs.shape[0] refs["legs_r", :legs.shape[0]] = legs[:, 0] refs["legs_z", :legs.shape[0]] = legs[:, 1] if self.limit_point is not None: refs["limit_point_r", 0] = self.limit_point.r refs["limit_point_z", 0] = self.limit_point.z return refs def canonical(self) -> "Shape": """Return a canonical shape with a fixed number of points and params.""" num_points = tcv_common.REF_RANGES.count("shape_r") out = copy.deepcopy(self) if out.points is None: if out.params is None: raise ValueError("Can't canonicalize with no params or points.") out.points, center = out.params.gen_points(num_points) out.params.r0 = center.r out.params.z0 = center.z out.params.side = ShapeSide.NOSHIFT else: out.points = spline_interpolate_points( out.points, num_points, out.x_points or []) if out.params: out.params.side = ShapeSide.NOSHIFT else: # Copied from FGE. Details: https://doi.org/10.1017/S0022377815001270 top = max(out.points, key=lambda p: p.z) left = min(out.points, key=lambda p: p.r) right = max(out.points, key=lambda p: p.r) bottom = min(out.points, key=lambda p: p.z) center = Point((left.r + right.r) / 2, (top.z + bottom.z) / 2) radius = (right.r - left.r) / 2 kappa = (top.z - bottom.z) / (right.r - left.r) delta_lower = (center.r - bottom.r) / radius # upper triangularitiy delta_upper = (center.r - top.r) / radius # lower triangularity delta = (delta_lower + delta_upper) / 2 out.params = ParametrizedShape( r0=center.r, z0=center.z, radius=radius, kappa=kappa, delta=delta, lambda_=0, side=ShapeSide.NOSHIFT) return out def points_from_references( references: named_array.NamedArray, key: str = "shape1", num: Optional[int] = None) -> ShapePoints: points = np.array([references[f"{key}_r"], references[f"{key}_z"]]).T if num is not None: points = points[:num] return to_shape_points(points) @dataclasses.dataclass class ReferenceTimeSlice: shape: Shape time: float hold: Optional[float] = None # Absolute time. def __post_init__(self): if self.hold is None: self.hold = self.time def canonicalize_reference_series( time_slices: List[ReferenceTimeSlice]) -> List[ReferenceTimeSlice]: """Canonicalize a full sequence of time slices.""" outputs = [] for ref in time_slices: ref_shape = ref.shape.canonical() prev = outputs[-1] if outputs else None if prev is not None and prev.hold + tcv_common.DT < ref.time: leg_diff = len(ref_shape.legs or []) != len(prev.shape.legs or []) xp_diff = len(ref_shape.x_points or []) != len(prev.shape.x_points or []) div_diff = ref_shape.diverted != prev.shape.diverted limit_diff = ( bool(ref_shape.limit_point and ref_shape.limit_point.r > 0) != bool(prev.shape.limit_point and prev.shape.limit_point.r > 0)) if leg_diff or xp_diff or div_diff or limit_diff: # Try not to interpolate between a real x-point and a non-existent # x-point. Non-existent x-points are represented as being at the # origin, i.e. out to the left of the vessel, and could be interpolated # into place, but that's weird, so better to pop it into existence by # adding an extra frame one before with the new shape targets. # This doesn't handle the case of multiple points appearing/disappearing # out of order, or of one moving while the other disappears. outputs.append( ReferenceTimeSlice( time=ref.time - tcv_common.DT, shape=Shape( ip=ref_shape.ip, params=ref_shape.params, points=ref_shape.points, x_points=(prev.shape.x_points if xp_diff else ref_shape.x_points), legs=(prev.shape.legs if leg_diff else ref_shape.legs), limit_point=(prev.shape.limit_point if limit_diff else ref_shape.limit_point), diverted=(prev.shape.diverted if div_diff else ref_shape.diverted)))) outputs.append(ReferenceTimeSlice(ref_shape, ref.time, ref.hold)) return outputs ================================================ FILE: fusion_tcv/shapes_known.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A set of known shapes.""" from fusion_tcv import shape from fusion_tcv import tcv_common SHAPE_70166_0450 = shape.Shape( ip=-120000, params=shape.ParametrizedShape( r0=0.89, z0=0.25, kappa=1.4, delta=0.25, radius=0.25, lambda_=0, side=shape.ShapeSide.NOSHIFT), limit_point=shape.Point(tcv_common.INNER_LIMITER_R, 0.25), diverted=shape.Diverted.LIMITED) SHAPE_70166_0872 = shape.Shape( ip=-110000, params=shape.ParametrizedShape( r0=0.8796, z0=0.2339, kappa=1.2441, delta=0.2567, radius=0.2390, lambda_=0, side=shape.ShapeSide.NOSHIFT, ), points=[ # 20 points shape.Point(0.6299, 0.1413), shape.Point(0.6481, 0.0577), shape.Point(0.6804, -0.0087), shape.Point(0.7286, -0.0513), shape.Point(0.7931, -0.0660), shape.Point(0.8709, -0.0513), shape.Point(0.9543, -0.0087), shape.Point(1.0304, 0.0577), shape.Point(1.0844, 0.1413), shape.Point(1.1040, 0.2340), shape.Point(1.0844, 0.3267), shape.Point(1.0304, 0.4103), shape.Point(0.9543, 0.4767), shape.Point(0.8709, 0.5193), shape.Point(0.7931, 0.5340), shape.Point(0.7286, 0.5193), shape.Point(0.6804, 0.4767), shape.Point(0.6481, 0.4103), shape.Point(0.6299, 0.3267), shape.Point(0.6240, 0.2340), ], limit_point=shape.Point(tcv_common.INNER_LIMITER_R, 0.2339), diverted=shape.Diverted.LIMITED) ================================================ FILE: fusion_tcv/targets.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Reward targets that return target+actual.""" import abc import math from typing import List, Optional, Sequence, Tuple import dataclasses import numpy as np import scipy from fusion_tcv import fge_state from fusion_tcv import named_array from fusion_tcv import shape from fusion_tcv import tcv_common class TargetError(Exception): """For when a target can't be computed.""" @dataclasses.dataclass(frozen=True) class Target: actual: float target: float @classmethod def invalid(cls): """This target is invalid and should be ignored. Equivalent to weight=0.""" return cls(float("nan"), float("nan")) class AbstractTarget(abc.ABC): """Measure something about the simulation, with a target and actual value.""" @property def name(self) -> str: """Returns a name for the target.""" return self.__class__.__name__ @abc.abstractproperty def outputs(self) -> int: """Return the number of outputs this produces.""" @abc.abstractmethod def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: """Returns a list of targets.""" @dataclasses.dataclass(frozen=True) class AbstractSingleValuePerDomainTarget(AbstractTarget): """Base class for single value per plasma domain targets.""" target: Optional[Sequence[float]] = None indices: List[int] = dataclasses.field(default_factory=lambda: [0]) def __post_init__(self): if self.indices not in ([0], [1], [0, 1]): raise ValueError( f"Invalid indices: {self.indices}, must be [0], [1] or [0, 1].") if self.target and len(self.target) != len(self.indices): raise ValueError("Wrong number of targets.") @property def outputs(self) -> int: return len(self.indices) @property def name(self) -> str: return f"{super().name}: " + ",".join(str(i) for i in self.indices) @dataclasses.dataclass(frozen=True) class R(AbstractSingleValuePerDomainTarget): """Target for R.""" def __call__(self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: r_d, _, _ = state.rzip_d if self.target is None: return [Target(r_d[idx], references["R"][idx]) for idx in self.indices] else: return [Target(r_d[idx], target) for idx, target in zip(self.indices, self.target)] @dataclasses.dataclass(frozen=True) class Z(AbstractSingleValuePerDomainTarget): """Target for Z.""" def __call__(self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: _, z_d, _ = state.rzip_d if self.target is None: return [Target(z_d[idx], references["Z"][idx]) for idx in self.indices] else: return [Target(z_d[idx], target) for idx, target in zip(self.indices, self.target)] @dataclasses.dataclass(frozen=True) class Ip(AbstractSingleValuePerDomainTarget): """Target for Ip.""" def __call__(self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: _, _, ip_d = state.rzip_d if self.target is None: return [Target(ip_d[idx], references["Ip"][idx]) for idx in self.indices] else: return [Target(ip_d[idx], target) for idx, target in zip(self.indices, self.target)] class OHCurrentsClose(AbstractTarget): """Target for keeping OH currents close.""" @property def outputs(self) -> int: return 1 def __call__(self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: oh_coil_currents = state.get_coil_currents_by_type("OH") diff = abs(oh_coil_currents[0] - oh_coil_currents[1]) return [Target(diff, 0)] class EFCurrents(AbstractTarget): """EFCurrents, useful for avoiding stuck coils.""" @property def outputs(self) -> int: return 16 def __call__(self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: currents = np.concatenate([state.get_coil_currents_by_type("E"), state.get_coil_currents_by_type("F")]) return [Target(c, 0) for c in currents] @dataclasses.dataclass(frozen=True) class VoltageOOB(AbstractTarget): """Target for how much the voltages exceed the bounds.""" relative: bool = True @property def outputs(self) -> int: return tcv_common.NUM_ACTIONS def __call__(self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: bounds = tcv_common.action_spec() excess = (np.maximum(bounds.minimum - voltages, 0) + np.maximum(voltages - bounds.maximum, 0)) if self.relative: excess /= (bounds.maximum - bounds.minimum) return [Target(v, 0) for v in excess] @dataclasses.dataclass(frozen=True) class ShapeElongation(AbstractSingleValuePerDomainTarget): """Try to keep the elongation close to the references.""" def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.target is not None: targets = self.target else: targets = references["kappa"][self.indices] return [Target(state.elongation[i], target) for i, target in zip(self.indices, targets)] @dataclasses.dataclass(frozen=True) class ShapeTriangularity(AbstractSingleValuePerDomainTarget): """Try to keep the triangularity close to the references.""" def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.target is not None: targets = self.target else: targets = references["delta"][self.indices] return [Target(state.triangularity[i], target) for i, target in zip(self.indices, targets)] @dataclasses.dataclass(frozen=True) class ShapeRadius(AbstractSingleValuePerDomainTarget): """Try to keep the shape radius close to the references.""" def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.target is not None: targets = self.target else: targets = references["radius"][self.indices] return [Target(state.radius[i], target) for i, target in zip(self.indices, targets)] @dataclasses.dataclass(frozen=True) class AbstractPointsTarget(AbstractTarget): """Base class for shape point targets.""" points: Optional[shape.ShapePoints] = None ref_name: Optional[str] = None num_points: Optional[int] = None def __post_init__(self): if self.points is not None: return elif self.ref_name is None: raise ValueError("Must specify points or ref_name") else: ref_name = f"{self.ref_name}_r" if ref_name not in tcv_common.REF_RANGES: raise ValueError(f"{self.ref_name} is invalid.") elif (self.num_points is not None and self.num_points > tcv_common.REF_RANGES.count(ref_name)): raise ValueError( (f"Requesting more points ({self.num_points}) than {self.ref_name} " "provides.")) @property def outputs(self) -> int: return len(self.points) if self.points is not None else self.num_points def _target_points( self, references: named_array.NamedArray) -> shape.ShapePoints: if self.points is not None: return self.points else: return shape.points_from_references( references, self.ref_name, self.num_points) def splined_lcfs_points( state: fge_state.FGEState, num_points: int, domain: int = 0) -> shape.ShapePoints: """Return a smooth lcfs, cleaning FGE x-point artifacts.""" points = state.get_lcfs_points(domain) x_point = (shape.Point(*state.limit_point_d[domain]) if state.is_diverted_d[domain] else None) if x_point is not None: x_points = [x_point] # Drop points near the x-point due to noise in the shape projection near # the x-point. points = [p for p in points if shape.dist(p, x_point) > 0.1] points.append(x_point) points = shape.sort_by_angle(points) else: x_points = [] return shape.spline_interpolate_points(points, num_points, x_points) @dataclasses.dataclass(frozen=True) class ShapeLCFSDistance(AbstractPointsTarget): """Try to keep the shape close to the references. Check the distance from the target shape points to the smooth LCFS. """ ref_name: str = dataclasses.field(default="shape", init=False) domain: int = dataclasses.field(default=0, init=False) def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: lcfs = splined_lcfs_points(state, 90, self.domain) outputs = [] for p in self._target_points(references): if p.r == 0: # For invalid/changing number of points. outputs.append(Target.invalid()) continue dist = shape.dist_point_to_surface(np.array(lcfs), np.array(p)) outputs.append(Target(dist, 0)) return outputs def flux_at_points(state: fge_state.FGEState, points: np.ndarray) -> np.ndarray: """Return the normalized interpolated flux values at a set of points.""" # Normalized flux such that the LCFS has a value of 1, 0 in the middle, # and bigger than 1 farther out. normalized_flux = ( # (LY.Fx - LY.FA) / (LY.FB - LY.FA) (state.flux - state.magnetic_axis_flux_strength) / (state.lcfs_flux_strength - state.magnetic_axis_flux_strength)).T smooth_flux = scipy.interpolate.RectBivariateSpline( np.squeeze(state.r_coordinates), np.squeeze(state.z_coordinates), normalized_flux) return smooth_flux(points[:, 0], points[:, 1], grid=False) @dataclasses.dataclass(frozen=True) class ShapeNormalizedLCFSFlux(AbstractPointsTarget): """Try to keep the shape close to the references using flux. Check the normalized flux values at points along the target shape. This works in flux space, not linear distance, so may encourage smaller plasmas than the distance based shape rewards. """ ref_name: str = dataclasses.field(default="shape1", init=False) def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: outputs = [] for p in self._target_points(references): if p.r == 0: # For invalid/changing number of points. outputs.append(Target.invalid()) else: outputs.append(Target( flux_at_points(state, np.array([p]))[0], 1)) return outputs @dataclasses.dataclass(frozen=True) class LegsNormalizedFlux(ShapeNormalizedLCFSFlux): """Try to keep the legs references close to the LCFS.""" ref_name: str = dataclasses.field(default="legs", init=False) @dataclasses.dataclass(frozen=True) class AbstractXPointTarget(AbstractPointsTarget): """Base class for x-point targets.""" ref_name: str = dataclasses.field(default="x_points", init=False) @dataclasses.dataclass(frozen=True) class XPointFluxGradient(AbstractXPointTarget): """Keep target points as an X point by attempting 0 flux gradient.""" def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: eps = 0.01 targets = [] for point in self._target_points(references): if point.r == 0: # For invalid/changing number of points. targets.append(Target.invalid()) continue diff_points = np.array([ [point.r - eps, point.z], [point.r + eps, point.z], [point.r, point.z - eps], [point.r, point.z + eps], ]) flux_values = flux_at_points(state, diff_points) diff = ((np.abs(flux_values[0] - flux_values[1]) / (2 * eps)) + (np.abs(flux_values[2] - flux_values[3]) / (2 * eps))) targets.append(Target(diff, 0)) return targets def _dist(p1: shape.Point, p2: shape.Point): return math.hypot(p1.r - p2.r, p1.z - p2.z) def _min_dist(pt: shape.Point, points: shape.ShapePoints, min_dist: float) -> Tuple[Optional[int], float]: index = None for i, point in enumerate(points): dist = _dist(pt, point) if dist < min_dist: index = i min_dist = dist return index, min_dist @dataclasses.dataclass(frozen=True) class XPointDistance(AbstractXPointTarget): """Keep target points as an X point by attempting to minimize distance. This assigns the x-points to targets without replacement. The first target will get the distance to the nearest x-point. The second target will get the closest, but ignoring the one assigned to the first target point. If none are within `max_dist`, then no x-point is assigned and that distance will be returned. It may be worth switching to a fancier algorithm that tries to minimize the total distance between targets and x-points, but that's slower, and we may actually care about some x-points more (eg a diverted point is more important than one farther away). """ max_dist: float = 0.2 def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: x_points = state.x_points targets = [] for target_point in self._target_points(references): if target_point.r == 0: # For invalid/changing number of points. targets.append(Target.invalid()) continue index, min_dist = _min_dist(target_point, x_points, self.max_dist) if index is not None: x_points.pop(index) targets.append(Target(min_dist, 0)) return targets @dataclasses.dataclass(frozen=True) class XPointFar(AbstractXPointTarget): """Keep extraneous x-points far away from the LCFS. Returns the distance from the LCFS to any true x-point that is far from a target x-point. This assigns the x-points to targets without replacement. The first target will get the distance to the nearest x-point. The second target will get the closest, but ignoring the one assigned to the first target point. If none are within `max_dist`, then no x-point is assigned and that distance will be returned. It may be worth switching to a fancier algorithm that tries to minimize the total distance between targets and x-points, but that's slower, and we may actually care about some x-points more (eg a diverted point is more important than one farther away). """ max_dist: float = 0.2 domain: int = 0 diverted: Optional[shape.Diverted] = None def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.diverted is not None: target = self.diverted else: target = shape.Diverted.from_refs(references) if target == shape.Diverted.ANY: return [] # Don't care. x_points = state.x_points # Filter out x-points that are near target x-points. for target_point in self._target_points(references): if target_point.r == 0: # For invalid/changing number of points. continue index, _ = _min_dist(target_point, x_points, self.max_dist) if index is not None: x_points.pop(index) if not x_points: return [Target(100, 0)] # No x-point gives full reward, not weight=0. lcfs = state.get_lcfs_points(self.domain) return [Target(shape.dist_point_to_surface(np.array(lcfs), np.array(p)), 0) for p in x_points] @dataclasses.dataclass(frozen=True) class XPointNormalizedFlux(AbstractXPointTarget): """Keep the actual X points close to the LCFS. Choose the x-points based on their distance to the target x-points. """ max_dist: float = 0.2 diverted: Optional[shape.Diverted] = None def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.diverted is not None: diverted = self.diverted else: diverted = shape.Diverted.from_refs(references) x_points = state.x_points fluxes = list(flux_at_points(state, np.array(x_points).reshape((-1, 2)))) targets = [] # We should probably minimize the overall distance between targets and # x-points, but the algorithm is complicated, so instead be greedy and # assume they're given in priority order, or farther apart than max_dist. for target_point in self._target_points(references): if target_point.r == 0 or diverted != shape.Diverted.DIVERTED: # For invalid/changing number of points. targets.append(Target.invalid()) continue index, _ = _min_dist(target_point, x_points, self.max_dist) if index is not None: targets.append(Target(fluxes[index], 1)) x_points.pop(index) fluxes.pop(index) else: targets.append(Target(0, 1)) return targets @dataclasses.dataclass(frozen=True) class XPointCount(AbstractTarget): """Target for number of x-points. Useful to avoid more than you want.""" target: Optional[int] = None @property def outputs(self) -> int: return 1 def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.target is not None: target = self.target else: target_points = shape.points_from_references( references, "x_points", tcv_common.REF_RANGES.count("x_points_r")) target = sum(1 for p in target_points if p.r != 0) return [Target(len(state.x_points), target)] @dataclasses.dataclass(frozen=True) class Diverted(AbstractTarget): """Target for whether the plasma is diverted by an x-point.""" diverted: Optional[shape.Diverted] = None @property def outputs(self) -> int: return 1 def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.diverted is not None: target = self.diverted else: target = shape.Diverted.from_refs(references) actual = 1 if state.is_diverted_d[0] else 0 if target == shape.Diverted.ANY: return [Target.invalid()] # Don't care. elif target == shape.Diverted.DIVERTED: return [Target(actual, 1)] return [Target(actual, 0)] @dataclasses.dataclass(frozen=True) class LimitPoint(AbstractPointsTarget): """Target for where the plasma is limited, either on the wall or x-point.""" ref_name: str = dataclasses.field(default="limit_point", init=False) num_points: int = dataclasses.field(default=1, init=False) diverted: Optional[shape.Diverted] = None max_dist: float = 1 def __call__( self, voltages: np.ndarray, state: fge_state.FGEState, references: named_array.NamedArray) -> List[Target]: if self.diverted is not None: diverted_target = self.diverted else: diverted_target = shape.Diverted.from_refs(references) if diverted_target == shape.Diverted.ANY: return [Target.invalid()] target_point = self._target_points(references)[0] if target_point.r == 0: return [Target.invalid()] limit_point = shape.Point(*state.limit_point_d[0]) dist = np.hypot(*(target_point - limit_point)) is_diverted = state.is_diverted_d[0] if diverted_target == shape.Diverted.DIVERTED: return [Target((dist if is_diverted else self.max_dist), 0)] return [Target((dist if not is_diverted else self.max_dist), 0)] ================================================ FILE: fusion_tcv/tcv_common.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Constants and general tooling for TCV plant.""" import collections from typing import Sequence, Text from dm_env import specs import numpy as np from fusion_tcv import named_array DT = 1e-4 # ie 10kHz # Below are general input/output specifications used for controllers that are # run on hardware. This interface corresponds to the so called "KH hybrid" # controller specification that is used in various experiments by EPFL. Hence, # this interface definition contains measurements and actions not used in our # tasks. # Number of actions the environment is exposing. Includes dummy (FAST) action. NUM_ACTIONS = 20 # Number of actuated coils in sim (without the dummy action coil). NUM_COILS_ACTUATED = 19 # Current and voltage limits by coil type # Note this are the limits used in the environments and are different # from the 'machine engineering limits' (as used/exposed by FGE). # We apply a safety factor (=< 1.0) to the engineering limits. CURRENT_SAFETY_FACTOR = 0.8 ENV_COIL_MAX_CURRENTS = collections.OrderedDict( E=7500*CURRENT_SAFETY_FACTOR, F=7500*CURRENT_SAFETY_FACTOR, OH=26000*CURRENT_SAFETY_FACTOR, DUMMY=2000*CURRENT_SAFETY_FACTOR, G=2000*CURRENT_SAFETY_FACTOR) # The g-coil has a saturation voltage that is tunable on a shot-by-shot basis. # There is a deadband, where an action with absolute value of less than 8% of # the saturation voltage is treated as zero. ENV_G_COIL_SATURATION_VOLTAGE = 300 ENV_G_COIL_DEADBAND = ENV_G_COIL_SATURATION_VOLTAGE * 0.08 VOLTAGE_SAFETY_FACTOR = 1.0 ENV_COIL_MAX_VOLTAGE = collections.OrderedDict( E=1400*VOLTAGE_SAFETY_FACTOR, F=2200*VOLTAGE_SAFETY_FACTOR, OH=1400*VOLTAGE_SAFETY_FACTOR, DUMMY=400*VOLTAGE_SAFETY_FACTOR, # This value is also used to clip values for the internal controller, # and also to set the deadband voltage. G=ENV_G_COIL_SATURATION_VOLTAGE) # Ordered actions send by a controller to the TCV. TCV_ACTIONS = ( 'E_001', 'E_002', 'E_003', 'E_004', 'E_005', 'E_006', 'E_007', 'E_008', 'F_001', 'F_002', 'F_003', 'F_004', 'F_005', 'F_006', 'F_007', 'F_008', 'OH_001', 'OH_002', 'DUMMY_001', # GAS, ignored by TCV. 'G_001' # FAST ) TCV_ACTION_INDICES = {n: i for i, n in enumerate(TCV_ACTIONS)} TCV_ACTION_TYPES = collections.OrderedDict( E=8, F=8, OH=2, DUMMY=1, G=1, ) # Map the TCV actions to ranges of indices in the array. TCV_ACTION_RANGES = named_array.NamedRanges(TCV_ACTION_TYPES) # The voltages seem not to be centered at 0, but instead near these values: TCV_ACTION_OFFSETS = { 'E_001': 6.79, 'E_002': -10.40, 'E_003': -1.45, 'E_004': 0.18, 'E_005': 11.36, 'E_006': -0.95, 'E_007': -4.28, 'E_008': 44.22, 'F_001': 38.49, 'F_002': -2.94, 'F_003': 5.58, 'F_004': 1.09, 'F_005': -36.63, 'F_006': -9.18, 'F_007': 5.34, 'F_008': 10.53, 'OH_001': -53.63, 'OH_002': -14.76, } TCV_ACTION_DELAYS = { 'E': [0.0005] * 8, 'F': [0.0005] * 8, 'OH': [0.0005] * 2, 'G': [0.0001], } # Ordered measurements and their dimensions from to the TCV controller specs. TCV_MEASUREMENTS = collections.OrderedDict( clint_vloop=1, # Flux loop 1 clint_rvloop=37, # Difference of flux between loops 2-38 and flux loop 1 bm=38, # Magnetic field probes IE=8, # E-coil currents IF=8, # F-coil currents IOH=2, # OH-coil currents Bdot=20, # Selection of 20 time-derivatives of magnetic field probes (bm). DIOH=1, # OH-coil currents difference: OH(0) - OH(1). FIR_FRINGE=1, # Not used, ignore. IG=1, # G-coil current ONEMM=1, # Not used, ignore vloop=1, # Flux loop 1 derivative IPHI=1, # Current through the Toroidal Field coils. Constant. Ignore. ) NUM_MEASUREMENTS = sum(TCV_MEASUREMENTS.values()) # map the TCV measurements to ranges of indices in the array TCV_MEASUREMENT_RANGES = named_array.NamedRanges(TCV_MEASUREMENTS) # Several of the measurement probes for the rvloops are broken. Add an extra key # that allows us to only grab the usable ones BROKEN_RVLOOP_IDXS = [9, 10, 11] TCV_MEASUREMENT_RANGES.set_range('clint_rvloop_usable', [ idx for i, idx in enumerate(TCV_MEASUREMENT_RANGES['clint_rvloop']) if i not in BROKEN_RVLOOP_IDXS]) TCV_COIL_CURRENTS_INDEX = [ *TCV_MEASUREMENT_RANGES['IE'], *TCV_MEASUREMENT_RANGES['IF'], *TCV_MEASUREMENT_RANGES['IOH'], *TCV_MEASUREMENT_RANGES['IPHI'], # In place of DUMMY. *TCV_MEASUREMENT_RANGES['IG'], ] # References for what we want the agent to accomplish. REF_RANGES = named_array.NamedRanges({ 'R': 2, 'Z': 2, 'Ip': 2, 'kappa': 2, 'delta': 2, 'radius': 2, 'lambda': 2, 'diverted': 2, # bool, must be diverted 'limited': 2, # bool, must be limited 'shape_r': 32, 'shape_z': 32, 'x_points_r': 8, 'x_points_z': 8, 'legs_r': 16, # Use for diverted/snowflake 'legs_z': 16, 'limit_point_r': 2, 'limit_point_z': 2, }) # Environments should use a consistent datatype for interacting with agents. ENVIRONMENT_DATA_TYPE = np.float64 def observation_spec(): """Observation spec for all TCV environments.""" return { 'references': specs.Array( shape=(REF_RANGES.size,), dtype=ENVIRONMENT_DATA_TYPE, name='references'), 'measurements': specs.Array( shape=(TCV_MEASUREMENT_RANGES.size,), dtype=ENVIRONMENT_DATA_TYPE, name='measurements'), 'last_action': specs.Array( shape=(TCV_ACTION_RANGES.size,), dtype=ENVIRONMENT_DATA_TYPE, name='last_action'), } def measurements_to_dict(measurements): """Converts a single measurement vector or a time series to a dict. Args: measurements: A single measurement of size `NUM_MEASUREMENTS` or a time series, where the batch dimension is last, shape: (NUM_MEASUREMENTS, t). Returns: A dict mapping keys `TCV_MEASUREMENTS` to the corresponding measurements. """ assert measurements.shape[0] == NUM_MEASUREMENTS measurements_dict = collections.OrderedDict() index = 0 for key, dim in TCV_MEASUREMENTS.items(): measurements_dict[key] = measurements[index:index + dim, ...] index += dim return measurements_dict def dict_to_measurement(measurement_dict): """Converts a single measurement dict to a vector or time series. Args: measurement_dict: A dict with the measurement keys containing np arrays of size (meas_size, ...). The inner sizes all have to be the same. Returns: An array of size (num_measurements, ...) """ assert len(measurement_dict) == len(TCV_MEASUREMENTS) # Grab the shape of the first array. shape = measurement_dict['clint_vloop'].shape out_shape = list(shape) out_shape[0] = NUM_MEASUREMENTS out_shape = tuple(out_shape) measurements = np.zeros((out_shape)) index = 0 for key, dim in TCV_MEASUREMENTS.items(): dim = TCV_MEASUREMENTS[key] measurements[index:index + dim, ...] = measurement_dict[key] index += dim return measurements def action_spec(): return get_coil_spec(TCV_ACTIONS, ENV_COIL_MAX_VOLTAGE, ENVIRONMENT_DATA_TYPE) def get_coil_spec(coil_names: Sequence[Text], spec_mapping, dtype=ENVIRONMENT_DATA_TYPE) -> specs.BoundedArray: """Maps specs indexed by coil type to coils given their type.""" coil_max, coil_min = [], [] for name in coil_names: # Coils names are _ coil_type, _ = name.split('_') coil_max.append(spec_mapping[coil_type]) coil_min.append(-spec_mapping[coil_type]) return specs.BoundedArray( shape=(len(coil_names),), dtype=dtype, minimum=coil_min, maximum=coil_max) INNER_LIMITER_R = 0.62400001 OUTER_LIMITER_R = 1.14179182 LIMITER_WIDTH = OUTER_LIMITER_R - INNER_LIMITER_R LIMITER_RADIUS = LIMITER_WIDTH / 2 VESSEL_CENTER_R = INNER_LIMITER_R + LIMITER_RADIUS ================================================ FILE: fusion_tcv/terminations.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Terminations for the fusion environment.""" import abc from typing import List, Optional import numpy as np from fusion_tcv import fge_state from fusion_tcv import tcv_common class Abstract(abc.ABC): """Abstract reward class.""" @abc.abstractmethod def terminate(self, state: fge_state.FGEState) -> Optional[str]: """Returns a reason if the situation should be considered a termination.""" class CoilCurrentSaturation(Abstract): """Terminates if the coils have saturated their current.""" def terminate(self, state: fge_state.FGEState) -> Optional[str]: # Coil currents are checked by type, independent of the order. for coil_type, max_current in tcv_common.ENV_COIL_MAX_CURRENTS.items(): if coil_type == "DUMMY": continue currents = state.get_coil_currents_by_type(coil_type) if (np.abs(currents) > max_current).any(): return (f"CoilCurrentSaturation: {coil_type}, max: {max_current}, " "real: " + ", ".join(f"{c:.1f}" for c in currents)) return None class OHTooDifferent(Abstract): """Terminates if the coil currents are too far apart from one another.""" def __init__(self, max_diff: float): self._max_diff = max_diff def terminate(self, state: fge_state.FGEState) -> Optional[str]: oh_coil_currents = state.get_coil_currents_by_type("OH") assert len(oh_coil_currents) == 2 oh_current_abs = abs(oh_coil_currents[0] - oh_coil_currents[1]) if oh_current_abs > self._max_diff: return ("OHTooDifferent: currents: " f"({oh_coil_currents[0]:.0f}, {oh_coil_currents[1]:.0f}), " f"diff: {oh_current_abs:.0f}, max: {self._max_diff}") return None class IPTooLow(Abstract): """Terminates if the magnitude of Ip in any component is too low.""" def __init__(self, singlet_threshold: float, droplet_threshold: float): self._singlet_threshold = singlet_threshold self._droplet_threshold = droplet_threshold def terminate(self, state: fge_state.FGEState) -> Optional[str]: _, _, ip_d = state.rzip_d if len(ip_d) == 1: if ip_d[0] > self._singlet_threshold: # Sign due to negative Ip. return f"IPTooLow: Singlet, {ip_d[0]:.0f}" return None else: if max(ip_d) > self._droplet_threshold: # Sign due to negative Ip. return f"IPTooLow: Components: {ip_d[0]:.0f}, {ip_d[1]:.0f}" return None class AnyTermination(Abstract): """Terminates if any of conditions are met.""" def __init__(self, terminators: List[Abstract]): self._terminators = terminators def terminate(self, state: fge_state.FGEState) -> Optional[str]: for terminator in self._terminators: term = terminator.terminate(state) if term: return term return None CURRENT_OH_IP = AnyTermination([ CoilCurrentSaturation(), OHTooDifferent(max_diff=4000), IPTooLow(singlet_threshold=-60000, droplet_threshold=-25000), ]) ================================================ FILE: fusion_tcv/trajectory.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A trajectory for an episode.""" from typing import List import dataclasses import numpy as np @dataclasses.dataclass class Trajectory: """A trajectory of actions/obs for an episode.""" measurements: np.ndarray references: np.ndarray reward: np.ndarray actions: np.ndarray @classmethod def stack(cls, series: List["Trajectory"]) -> "Trajectory": """Stack a series of trajectories, adding a trailing time dimension.""" values = {k: np.empty(v.shape + (len(series),)) for k, v in dataclasses.asdict(series[0]).items() if v is not None} for i, ts in enumerate(series): for k, v in values.items(): v[..., i] = getattr(ts, k) out = cls(**values) return out ================================================ FILE: fusion_tcv/transforms.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Transforms from actual/target to rewards.""" import abc import math from typing import List, Optional import dataclasses # Comparison of some of the transforms: # Order is NegExp, SoftPlus, Sigmoid. # Over range of good to bad: # https://www.wolframalpha.com/input/?i=plot+e%5E%28x*ln%280.1%29%29%2C2%2F%281%2Be%5E%28x*ln%2819%29%29%29%2C1%2F%281%2Be%5E%28-+%28-ln%2819%29+-+%28x-1%29*%282*ln%2819%29%29%29%29%29+from+x%3D0+to+2 # When close to good: # https://www.wolframalpha.com/input/?i=plot+e%5E%28x*ln%280.1%29%29%2C2%2F%281%2Be%5E%28x*ln%2819%29%29%29%2C1%2F%281%2Be%5E%28-+%28-ln%2819%29+-+%28x-1%29*%282*ln%2819%29%29%29%29%29+from+x%3D0+to+0.2 class AbstractTransform(abc.ABC): @abc.abstractmethod def __call__(self, errors: List[float]) -> List[float]: """Transforms target errors into rewards.""" @property def outputs(self) -> Optional[int]: return None def clip(value: float, low: float, high: float) -> float: """Clip a value to the range of low - high.""" if math.isnan(value): return value assert low <= high return max(low, min(high, value)) def scale(v: float, a: float, b: float, c: float, d: float) -> float: """Scale a value, v on a line with anchor points a,b to new anchors c,d.""" v01 = (v - a) / (b - a) return c - v01 * (c - d) def logistic(v: float) -> float: """Standard logistic, asymptoting to 0 and 1.""" v = clip(v, -50, 50) # Improve numerical stability. return 1 / (1 + math.exp(-v)) @dataclasses.dataclass(frozen=True) class Equal(AbstractTransform): """Returns 1 if the error is 0 and not_equal_val otherwise.""" not_equal_val: float = 0 def __call__(self, errors: List[float]) -> List[float]: out = [] for err in errors: if math.isnan(err): out.append(err) elif err == 0: out.append(1) else: out.append(self.not_equal_val) return out class Abs(AbstractTransform): """Take the absolue value of the error. Does not guarantee 0-1.""" @staticmethod def __call__(errors: List[float]) -> List[float]: return [abs(err) for err in errors] class Neg(AbstractTransform): """Negate the error. Does not guarantee 0-1.""" @staticmethod def __call__(errors: List[float]) -> List[float]: return [-err for err in errors] @dataclasses.dataclass(frozen=True) class Pow(AbstractTransform): """Return a power of the error. Does not guarantee 0-1.""" pow: float def __call__(self, errors: List[float]) -> List[float]: return [err**self.pow for err in errors] @dataclasses.dataclass(frozen=True) class Log(AbstractTransform): """Return a log of the error. Does not guarantee 0-1.""" eps: float = 1e-4 def __call__(self, errors: List[float]) -> List[float]: return [math.log(err + self.eps) for err in errors] @dataclasses.dataclass(frozen=True) class ClippedLinear(AbstractTransform): """Scales and clips errors, bad to 0, good to 1. If good=0, this is a relu.""" bad: float good: float = 0 def __call__(self, errors: List[float]) -> List[float]: return [clip(scale(err, self.bad, self.good, 0, 1), 0, 1) for err in errors] @dataclasses.dataclass(frozen=True) class SoftPlus(AbstractTransform): """Scales and clips errors, bad to 0.1, good to 1, asymptoting to 0. Based on the lower half of the logistic instead of the standard softplus as we want it to be bounded from 0 to 1, with the good value being exactly 1. Various constants can be chosen to get the softplus to give the desired properties, but this is much simpler. """ bad: float good: float = 0 # Constant to set the sharpness/slope of the softplus. # Default was chosen such that the good/bad have 1 and 0.1 reward: # https://www.wolframalpha.com/input/?i=plot+2%2F%281%2Be%5E%28x*ln%2819%29%29%29+from+x%3D0+to+2 low: float = -math.log(19) # -2.9444389791664403 def __call__(self, errors: List[float]) -> List[float]: return [clip(2 * logistic(scale(e, self.bad, self.good, self.low, 0)), 0, 1) for e in errors] @dataclasses.dataclass(frozen=True) class NegExp(AbstractTransform): """Scales and clips errors, bad to 0.1, good to 1, asymptoting to 0. This scales the reward in an exponential space. This means there is a sharp gradient toward reaching the value of good, flattening out at the value of bad. This can be useful for a reward that gives meaningful signal far away, but still have a sharp gradient near the true target. """ bad: float good: float = 0 # Constant to set the sharpness/slope of the exponential. # Default was chosen such that the good/bad have 1 and 0.1 reward: # https://www.wolframalpha.com/input/?i=plot+e%5E%28x*ln%280.1%29%29+from+x%3D0+to+2 low: float = -math.log(0.1) def __call__(self, errors: List[float]) -> List[float]: return [clip(math.exp(-scale(e, self.bad, self.good, self.low, 0)), 0, 1) for e in errors] @dataclasses.dataclass(frozen=True) class Sigmoid(AbstractTransform): """Scales and clips errors, bad to 0.05, good to 0.95, asymptoting to 0-1.""" good: float bad: float # Constants to set the sharpness/slope of the sigmoid. # Defaults were chosen such that the good/bad have 0.95 and 0.05 reward: # https://www.wolframalpha.com/input/?i=plot+1%2F%281%2Be%5E%28-+%28-ln%2819%29+-+%28x-1%29*%282*ln%2819%29%29%29%29%29+from+x%3D0+to+2 high: float = math.log(19) # +2.9444389791664403 low: float = -math.log(19) # -2.9444389791664403 def __call__(self, errors: List[float]) -> List[float]: return [logistic(scale(err, self.bad, self.good, self.low, self.high)) for err in errors] ================================================ FILE: fusion_tcv/transforms_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS-IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for transforms.""" import math from absl.testing import absltest from fusion_tcv import transforms NAN = float("nan") class TransformsTest(absltest.TestCase): def assertNan(self, value: float): self.assertTrue(math.isnan(value)) def test_clip(self): self.assertEqual(transforms.clip(-1, 0, 1), 0) self.assertEqual(transforms.clip(5, 0, 1), 1) self.assertEqual(transforms.clip(0.5, 0, 1), 0.5) self.assertNan(transforms.clip(NAN, 0, 1)) def test_scale(self): self.assertEqual(transforms.scale(0, 0, 0.5, 0, 1), 0) self.assertEqual(transforms.scale(0.125, 0, 0.5, 0, 1), 0.25) self.assertEqual(transforms.scale(0.25, 0, 0.5, 0, 1), 0.5) self.assertEqual(transforms.scale(0.5, 0, 0.5, 0, 1), 1) self.assertEqual(transforms.scale(1, 0, 0.5, 0, 1), 2) self.assertEqual(transforms.scale(-1, 0, 0.5, 0, 1), -2) self.assertEqual(transforms.scale(0.5, 1, 0, 0, 1), 0.5) self.assertEqual(transforms.scale(0.25, 1, 0, 0, 1), 0.75) self.assertEqual(transforms.scale(0, 0, 1, -4, 4), -4) self.assertEqual(transforms.scale(0.25, 0, 1, -4, 4), -2) self.assertEqual(transforms.scale(0.5, 0, 1, -4, 4), 0) self.assertEqual(transforms.scale(0.75, 0, 1, -4, 4), 2) self.assertEqual(transforms.scale(1, 0, 1, -4, 4), 4) self.assertNan(transforms.scale(NAN, 0, 1, -4, 4)) def test_logistic(self): self.assertLess(transforms.logistic(-50), 0.000001) self.assertLess(transforms.logistic(-5), 0.01) self.assertEqual(transforms.logistic(0), 0.5) self.assertGreater(transforms.logistic(5), 0.99) self.assertGreater(transforms.logistic(50), 0.999999) self.assertAlmostEqual(transforms.logistic(0.8), math.tanh(0.4) / 2 + 0.5) self.assertNan(transforms.logistic(NAN)) def test_exp_scaled(self): t = transforms.NegExp(good=0, bad=1) self.assertNan(t([NAN])[0]) self.assertAlmostEqual(t([0])[0], 1) self.assertAlmostEqual(t([1])[0], 0.1) self.assertLess(t([50])[0], 0.000001) t = transforms.NegExp(good=10, bad=30) self.assertAlmostEqual(t([0])[0], 1) self.assertAlmostEqual(t([10])[0], 1) self.assertLess(t([3000])[0], 0.000001) t = transforms.NegExp(good=30, bad=10) self.assertAlmostEqual(t([50])[0], 1) self.assertAlmostEqual(t([30])[0], 1) self.assertAlmostEqual(t([10])[0], 0.1) self.assertLess(t([-90])[0], 0.00001) def test_neg(self): t = transforms.Neg() self.assertEqual(t([-5, -3, 0, 1, 4]), [5, 3, 0, -1, -4]) self.assertNan(t([NAN])[0]) def test_abs(self): t = transforms.Abs() self.assertEqual(t([-5, -3, 0, 1, 4]), [5, 3, 0, 1, 4]) self.assertNan(t([NAN])[0]) def test_pow(self): t = transforms.Pow(2) self.assertEqual(t([-5, -3, 0, 1, 4]), [25, 9, 0, 1, 16]) self.assertNan(t([NAN])[0]) def test_log(self): t = transforms.Log() self.assertAlmostEqual(t([math.exp(2)])[0], 2, 4) # Low precision from eps. self.assertNan(t([NAN])[0]) def test_clipped_linear(self): t = transforms.ClippedLinear(good=0.1, bad=0.3) self.assertAlmostEqual(t([0])[0], 1) self.assertAlmostEqual(t([0.05])[0], 1) self.assertAlmostEqual(t([0.1])[0], 1) self.assertAlmostEqual(t([0.15])[0], 0.75) self.assertAlmostEqual(t([0.2])[0], 0.5) self.assertAlmostEqual(t([0.25])[0], 0.25) self.assertAlmostEqual(t([0.3])[0], 0) self.assertAlmostEqual(t([0.4])[0], 0) self.assertNan(t([NAN])[0]) t = transforms.ClippedLinear(good=1, bad=0.5) self.assertAlmostEqual(t([1.5])[0], 1) self.assertAlmostEqual(t([1])[0], 1) self.assertAlmostEqual(t([0.75])[0], 0.5) self.assertAlmostEqual(t([0.5])[0], 0) self.assertAlmostEqual(t([0.25])[0], 0) def test_softplus(self): t = transforms.SoftPlus(good=0.1, bad=0.3) self.assertEqual(t([0])[0], 1) self.assertEqual(t([0.1])[0], 1) self.assertAlmostEqual(t([0.3])[0], 0.1) self.assertLess(t([0.5])[0], 0.01) self.assertNan(t([NAN])[0]) t = transforms.SoftPlus(good=1, bad=0.5) self.assertEqual(t([1.5])[0], 1) self.assertEqual(t([1])[0], 1) self.assertAlmostEqual(t([0.5])[0], 0.1) self.assertLess(t([0.1])[0], 0.01) def test_sigmoid(self): t = transforms.Sigmoid(good=0.1, bad=0.3) self.assertGreater(t([0])[0], 0.99) self.assertAlmostEqual(t([0.1])[0], 0.95) self.assertAlmostEqual(t([0.2])[0], 0.5) self.assertAlmostEqual(t([0.3])[0], 0.05) self.assertLess(t([0.4])[0], 0.01) self.assertNan(t([NAN])[0]) t = transforms.Sigmoid(good=1, bad=0.5) self.assertGreater(t([1.5])[0], 0.99) self.assertAlmostEqual(t([1])[0], 0.95) self.assertAlmostEqual(t([0.75])[0], 0.5) self.assertAlmostEqual(t([0.5])[0], 0.05) self.assertLess(t([0.25])[0], 0.01) def test_equal(self): t = transforms.Equal() self.assertEqual(t([0])[0], 1) self.assertEqual(t([0.001])[0], 0) self.assertNan(t([NAN])[0]) t = transforms.Equal(not_equal_val=0.5) self.assertEqual(t([0])[0], 1) self.assertEqual(t([0.001])[0], 0.5) if __name__ == "__main__": absltest.main() ================================================ FILE: galaxy_mergers/README.md ================================================ # A Deep Learning Approach for Characterizing Major Galaxy Mergers This repository contains evaluation code and checkpoints to reproduce figures in https://arxiv.org/abs/2102.05182. The main evaluation module is `main.py`. It uses the provided checkpoint path and dataset path to run evaluation. ## Setup To set up a Python virtual environment with the required dependencies, run: ```shell python3 -m venv galaxy_mergers_env source galaxy_mergers_env/bin/activate pip install --upgrade pip setuptools wheel pip install -r requirements.txt ``` ### License While the code is licensed under the Apache 2.0 License, the checkpoints weights are made available for non-commercial use only under the terms of the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license. You can find details at: https://creativecommons.org/licenses/by-nc/4.0/legalcode. ### Citing our work If you use this work, consider citing our paper: ```bibtex @article{koppula2021deep, title={A Deep Learning Approach for Characterizing Major Galaxy Mergers}, author={Koppula, Skanda and Bapst, Victor and Huertas-Company, Marc and Blackwell, Sam and Grabska-Barwinska, Agnieszka and Dieleman, Sander and Huber, Andrea and Antropova, Natasha and Binkowski, Mikolaj and Openshaw, Hannah and others}, journal={Workshop for Machine Learning and the Physical Sciences @ NeurIPS 2020}, year={2021} } ``` ================================================ FILE: galaxy_mergers/antennae_helpers.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Helpers to pre-process Antennae galaxy images.""" import collections import os from astropy.io import fits import numpy as np from scipy import ndimage import tensorflow.compat.v2 as tf def norm_antennae_images(images, scale=1000): return tf.math.asinh(images/scale) def renorm_antennae(images): median = np.percentile(images.numpy().flatten(), 50) img_range = np.ptp(images.numpy().flatten()) return (images - median) / (img_range / 2) def get_antennae_images(antennae_fits_dir): """Load the raw Antennae galaxy images.""" all_fits_files = [ os.path.join(antennae_fits_dir, f) for f in os.listdir(antennae_fits_dir) ] freq_mapping = {'red': 160, 'blue': 850} paired_fits_files = collections.defaultdict(list) for f in all_fits_files: redshift = float(f[-8:-5]) paired_fits_files[redshift].append(f) for redshift, files in paired_fits_files.items(): paired_fits_files[redshift] = sorted( files, key=lambda f: freq_mapping[f.split('/')[-1].split('_')[0]]) print('Reading files:', paired_fits_files) print('Redshifts:', sorted(paired_fits_files.keys())) galaxy_views = collections.defaultdict(list) for redshift in paired_fits_files: for view_path in paired_fits_files[redshift]: with open(view_path, 'rb') as f: fits_data = fits.open(f) galaxy_views[redshift].append(np.array(fits_data[0].data)) batched_images = [] for redshift in paired_fits_files: img = tf.constant(np.array(galaxy_views[redshift])) img = tf.transpose(img, (1, 2, 0)) img = tf.image.resize(img, size=(60, 60)) batched_images.append(img) return tf.stack(batched_images) def preprocess_antennae_images(antennae_images): """Pre-process the Antennae galaxy images into a reasonable range.""" rotated_antennae_images = [ ndimage.rotate(img, 10, reshape=True, cval=-1)[10:-10, 10:-10] for img in antennae_images ] rotated_antennae_images = [ np.clip(img, 0, 1e9) for img in rotated_antennae_images ] rotated_antennae_images = tf.stack(rotated_antennae_images) normed_antennae_images = norm_antennae_images(rotated_antennae_images) normed_antennae_images = tf.clip_by_value(normed_antennae_images, 1, 4.5) renormed_antennae_images = renorm_antennae(normed_antennae_images) return renormed_antennae_images ================================================ FILE: galaxy_mergers/config.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Default config, focused on model evaluation.""" from ml_collections import config_dict def get_config(filter_time_intervals=None): """Return config object for training.""" config = config_dict.ConfigDict() config.eval_strategy = config_dict.ConfigDict() config.eval_strategy.class_name = 'OneDeviceConfig' config.eval_strategy.kwargs = config_dict.ConfigDict( dict(device_type='v100')) ## Experiment config. config.experiment_kwargs = config_dict.ConfigDict(dict( resnet_kwargs=dict( blocks_per_group_list=[3, 4, 6, 3], # This choice is ResNet50. bn_config=dict( decay_rate=0.9, eps=1e-5), resnet_v2=False, additional_features_mode='mlp', ), optimizer_config=dict( class_name='Momentum', kwargs={'momentum': 0.9}, # Set up the learning rate schedule. lr_init=0.025, lr_factor=0.1, lr_schedule=(50e3, 100e3, 150e3), gradient_clip=5., ), l2_regularization=1e-4, total_train_batch_size=128, train_net_args={'is_training': True}, eval_batch_size=128, eval_net_args={'is_training': True}, data_config=dict( # dataset loading dataset_path=None, num_val_splits=10, val_split=0, # image cropping image_size=(80, 80, 7), train_crop_type='crop_fixed', test_crop_type='crop_fixed', n_crop_repeat=1, train_augmentations=dict( rotation_and_flip=True, rescaling=True, translation=True, ), test_augmentations=dict( rotation_and_flip=False, rescaling=False, translation=False, ), test_time_ensembling='sum', num_eval_buckets=5, eval_confidence_interval=95, task='grounded_unnormalized_regression', loss_config=dict( loss='mse', mse_normalize=False, ), model_uncertainty=True, additional_features='', time_filter_intervals=filter_time_intervals, class_boundaries={ '0': [[-1., 0]], '1': [[0, 1.]] }, frequencies_to_use='all', ), n_train_epochs=100 )) return config ================================================ FILE: galaxy_mergers/evaluator.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Evaluation runner.""" import collections from absl import logging import tensorflow.compat.v2 as tf from galaxy_mergers import config as tp_config from galaxy_mergers import helpers from galaxy_mergers import losses from galaxy_mergers import model from galaxy_mergers import preprocessing class GalaxyMergeClassifierEvaluator(): """Galaxy Merge Rate Prediction Evaluation Runner.""" def __init__(self, strategy, optimizer_config, total_train_batch_size, train_net_args, eval_batch_size, eval_net_args, l2_regularization, data_config, resnet_kwargs, n_train_epochs): """Initializes evaluator/experiment.""" logging.info('Initializing evaluator...') self._strategy = strategy self._data_config = data_config self._use_additional_features = bool(data_config['additional_features']) self._eval_batch_size = eval_batch_size self._eval_net_args = eval_net_args self._num_buckets = data_config['num_eval_buckets'] self._n_repeats = data_config['n_crop_repeat'] self._image_size = data_config['image_size'] self._task_type = data_config['task'] self._loss_config = data_config['loss_config'] self._model_uncertainty = data_config['model_uncertainty'] del l2_regularization, optimizer_config, train_net_args del total_train_batch_size, n_train_epochs logging.info('Creating model...') num_classes = 2 if self._model_uncertainty else 1 if self._task_type == losses.TASK_CLASSIFICATION: num_classes = len(self._data_config['class_boundaries']) self.model = model.ResNet( n_repeats=self._data_config['n_crop_repeat'], num_classes=num_classes, use_additional_features=self._use_additional_features, **resnet_kwargs) self._eval_input = None def build_eval_input(self, additional_lambdas=None): """Create the galaxy merger evaluation dataset.""" def decode_fn(record_bytes): parsed_example = tf.io.parse_single_example( record_bytes, { 'image': tf.io.VarLenFeature(tf.float32), 'image_shape': tf.io.FixedLenFeature([3], dtype=tf.int64), 'axis': tf.io.FixedLenFeature([], dtype=tf.int64), 'proposed_crop': tf.io.FixedLenFeature([2, 2], dtype=tf.int64), 'normalized_time': tf.io.FixedLenFeature([], dtype=tf.float32), 'unnormalized_time': tf.io.FixedLenFeature([], dtype=tf.float32), 'grounded_normalized_time': tf.io.FixedLenFeature([], dtype=tf.float32), 'redshift': tf.io.FixedLenFeature([], dtype=tf.float32), 'sequence_average_redshift': tf.io.FixedLenFeature([], dtype=tf.float32), 'mass': tf.io.FixedLenFeature([], dtype=tf.float32), 'time_index': tf.io.FixedLenFeature([], dtype=tf.int64), 'sequence_id': tf.io.FixedLenFeature([], dtype=tf.string), }) parsed_example['image'] = tf.sparse.to_dense( parsed_example['image'], default_value=0) dataset_row = parsed_example return dataset_row def build_eval_pipeline(_): """Generate the processed input evaluation data.""" logging.info('Building evaluation input pipeline...') ds_path = self._data_config['dataset_path'] ds = tf.data.TFRecordDataset([ds_path]).map(decode_fn) augmentations = dict( rotation_and_flip=False, rescaling=False, translation=False ) ds = preprocessing.prepare_dataset( ds=ds, target_size=self._image_size, crop_type=self._data_config['test_crop_type'], n_repeats=self._n_repeats, augmentations=augmentations, task_type=self._task_type, additional_features=self._data_config['additional_features'], class_boundaries=self._data_config['class_boundaries'], time_intervals=self._data_config['time_filter_intervals'], frequencies_to_use=self._data_config['frequencies_to_use'], additional_lambdas=additional_lambdas) batched_ds = ds.cache().batch(self._eval_batch_size).prefetch(128) logging.info('Finished building input pipeline...') return batched_ds return self._strategy.experimental_distribute_datasets_from_function( build_eval_pipeline) def run_test_model_ensemble(self, images, physical_features, augmentations): """Run evaluation on input images.""" image_variations = [images] image_shape = images.shape.as_list() if augmentations['rotation_and_flip']: image_variations = preprocessing.get_all_rotations_and_flips( image_variations) if augmentations['rescaling']: image_variations = preprocessing.get_all_rescalings( image_variations, image_shape[1], augmentations['translation']) # Put all augmented images into the batch: batch * num_augmented augmented_images = tf.stack(image_variations, axis=0) augmented_images = tf.reshape(augmented_images, [-1] + image_shape[1:]) if self._use_additional_features: physical_features = tf.concat( [physical_features] * len(image_variations), axis=0) n_reps = self._data_config['n_crop_repeat'] augmented_images = preprocessing.move_repeats_to_batch(augmented_images, n_reps) logits_or_times = self.model(augmented_images, physical_features, **self._eval_net_args) if self._task_type == losses.TASK_CLASSIFICATION: mu, log_sigma_sq = helpers.aggregate_classification_ensemble( logits_or_times, len(image_variations), self._data_config['test_time_ensembling']) else: assert self._task_type in losses.REGRESSION_TASKS mu, log_sigma_sq = helpers.aggregate_regression_ensemble( logits_or_times, len(image_variations), self._model_uncertainty, self._data_config['test_time_ensembling']) return mu, log_sigma_sq @property def checkpoint_items(self): return {'model': self.model} def run_model_on_dataset(evaluator, dataset, config, n_batches=16): """Runs the model against a dataset, aggregates model output.""" scalar_metrics_to_log = collections.defaultdict(list) model_outputs_to_log = collections.defaultdict(list) dataset_features_to_log = collections.defaultdict(list) batch_count = 1 for all_inputs in dataset: if config.experiment_kwargs.data_config['additional_features']: images = all_inputs[0] physical_features = all_inputs[1] labels, regression_targets, _ = all_inputs[2:5] other_dataset_features = all_inputs[5:] else: images, physical_features = all_inputs[0], None labels, regression_targets, _ = all_inputs[1:4] other_dataset_features = all_inputs[4:] mu, log_sigma_sq = evaluator.run_test_model_ensemble( images, physical_features, config.experiment_kwargs.data_config['test_augmentations']) loss_config = config.experiment_kwargs.data_config['loss_config'] task_type = config.experiment_kwargs.data_config['task'] uncertainty = config.experiment_kwargs.data_config['model_uncertainty'] conf = config.experiment_kwargs.data_config['eval_confidence_interval'] scalar_metrics, vector_metrics = losses.compute_loss_and_metrics( mu, log_sigma_sq, regression_targets, labels, task_type, uncertainty, loss_config, 0, conf, mode='eval') for i, dataset_feature in enumerate(other_dataset_features): dataset_features_to_log[i].append(dataset_feature.numpy()) for scalar_metric in scalar_metrics: v = scalar_metrics[scalar_metric] val = v if isinstance(v, int) or isinstance(v, float) else v.numpy() scalar_metrics_to_log[scalar_metric].append(val) for vector_metric in vector_metrics: val = vector_metrics[vector_metric].numpy() model_outputs_to_log[vector_metric].append(val) regression_targets_np = regression_targets.numpy() labels_np = labels.numpy() model_outputs_to_log['regression_targets'].append(regression_targets_np) model_outputs_to_log['labels'].append(labels_np) model_outputs_to_log['model_input_images'].append(images.numpy()) if n_batches and batch_count >= n_batches: break batch_count += 1 return scalar_metrics_to_log, model_outputs_to_log, dataset_features_to_log def get_config_dataset_evaluator(filter_time_intervals, ckpt_path, config_override=None, setup_dataset=True): """Set-up a default config, evaluation dataset, and evaluator.""" config = tp_config.get_config(filter_time_intervals=filter_time_intervals) if config_override: with config.ignore_type(): config.update_from_flattened_dict(config_override) strategy = tf.distribute.OneDeviceStrategy(device='/gpu:0') experiment = GalaxyMergeClassifierEvaluator( strategy=strategy, **config.experiment_kwargs) helpers.restore_checkpoint(ckpt_path, experiment) if setup_dataset: additional_lambdas = [ lambda ds: ds['sequence_id'], lambda ds: ds['time_index'], lambda ds: ds['axis'], lambda ds: ds['normalized_time'], lambda ds: ds['grounded_normalized_time'], lambda ds: ds['unnormalized_time'], lambda ds: ds['redshift'], lambda ds: ds['mass'] ] ds = experiment.build_eval_input(additional_lambdas=additional_lambdas) else: ds = None return config, ds, experiment ================================================ FILE: galaxy_mergers/helpers.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Helpers for a galaxy merger model evaluation.""" import glob import os from astropy import cosmology from astropy.io import fits import matplotlib.pyplot as plt import numpy as np from PIL import Image import tensorflow.compat.v2 as tf def restore_checkpoint(checkpoint_dir, experiment): checkpoint_path = tf.train.latest_checkpoint(checkpoint_dir) global_step = tf.Variable( 0, dtype=tf.int32, trainable=False, name='global_step') checkpoint = tf.train.Checkpoint( _global_step_=global_step, **experiment.checkpoint_items) checkpoint.restore(checkpoint_path) def sum_average_transformed_mu_and_sigma(mu, log_sigma_sq): """Computes , var(mu) + in transformed representation. This corresponds to assuming that the output distribution is a sum of Gaussian and computing the mean and variance of the resulting (non-Gaussian) distribution. Args: mu: Tensor of shape [B, ...] representing the means of the input distributions. log_sigma_sq: Tensor of shape [B, ...] representing log(sigma**2) of the input distributions. Can be None, in which case the variance is assumed to be zero. Returns: mu: Tensor of shape [...] representing the means of the output distributions. log_sigma_sq: Tensor of shape [...] representing log(sigma**2) of the output distributions. """ av_mu = tf.reduce_mean(mu, axis=0) var_mu = tf.math.reduce_std(mu, axis=0)**2 if log_sigma_sq is None: return av_mu, tf.math.log(var_mu) max_log_sigma_sq = tf.reduce_max(log_sigma_sq, axis=0) log_sigma_sq -= max_log_sigma_sq # (sigma/sigma_0)**2 sigma_sq = tf.math.exp(log_sigma_sq) # ()/sigma_0**2 (<1) av_sigma_sq = tf.reduce_mean(sigma_sq, axis=0) # ( + var(mu))/sigma_0**2 av_sigma_sq += var_mu * tf.math.exp(-max_log_sigma_sq) # log( + var(mu)) log_av_sigma_sq = tf.math.log(av_sigma_sq) + max_log_sigma_sq return av_mu, log_av_sigma_sq def aggregate_regression_ensemble(logits_or_times, ensemble_size, use_uncertainty, test_time_ensembling): """Aggregate output of model ensemble.""" out_shape = logits_or_times.shape.as_list()[1:] logits_or_times = tf.reshape(logits_or_times, [ensemble_size, -1] + out_shape) mus = logits_or_times[..., 0] log_sigma_sqs = logits_or_times[..., -1] if use_uncertainty else None if test_time_ensembling == 'sum': mu, log_sigma_sq = sum_average_transformed_mu_and_sigma(mus, log_sigma_sqs) elif test_time_ensembling == 'none': mu = mus[0] log_sigma_sq = log_sigma_sqs[0] if use_uncertainty else None else: raise ValueError('Unexpected test_time_ensembling') return mu, log_sigma_sq def aggregate_classification_ensemble(logits_or_times, ensemble_size, test_time_ensembling): """Averages the output logits across models in the ensemble.""" out_shape = logits_or_times.shape.as_list()[1:] logits = tf.reshape(logits_or_times, [ensemble_size, -1] + out_shape) if test_time_ensembling == 'sum': logits = tf.reduce_mean(logits, axis=0) return logits, None elif test_time_ensembling == 'none': return logits, None else: raise ValueError('Unexpected test_time_ensembling') def unpack_evaluator_output(data, return_seq_info=False, return_redshift=False): """Unpack evaluator.run_model_on_dataset output.""" mus = np.array(data[1]['mu']).flatten() sigmas = np.array(data[1]['sigma']).flatten() regression_targets = np.array(data[1]['regression_targets']).flatten() outputs = [mus, sigmas, regression_targets] if return_seq_info: seq_ids = np.array(data[2][0]).flatten() seq_ids = np.array([seq_id.decode('UTF-8') for seq_id in seq_ids]) time_idxs = np.array(data[2][1]).flatten() axes = np.array(data[2][2]).flatten() outputs += [seq_ids, axes, time_idxs] if return_redshift: redshifts = np.array(data[2][6]).flatten() outputs += [redshifts] return outputs def process_data_into_myrs(redshifts, *data_lists): """Converts normalized time to virial time using Planck cosmology.""" # small hack to avoid build tools not recognizing non-standard trickery # done in the astropy library: # https://github.com/astropy/astropy/blob/master/astropy/cosmology/core.py#L3290 # that dynamically generates and imports new classes. planck13 = getattr(cosmology, 'Plank13') hubble_constants = planck13.H(redshifts) # (km/s)/megaparsec inv_hubble_constants = 1/hubble_constants # (megaparsec*s) / km megaparsec_to_km = 1e19*3.1 seconds_to_gigayears = 1e-15/31.556 conversion_factor = megaparsec_to_km * seconds_to_gigayears hubble_time_gigayears = conversion_factor * inv_hubble_constants hubble_to_virial_time = 0.14 # approximate simulation-based conversion factor virial_dyn_time = hubble_to_virial_time*hubble_time_gigayears.value return [data_list*virial_dyn_time for data_list in data_lists] def print_rmse_and_class_accuracy(mus, regression_targets, redshifts): """Convert to virial dynamical time and print stats.""" time_pred, time_gt = process_data_into_myrs( redshifts, mus, regression_targets) time_sq_errors = (time_pred-time_gt)**2 rmse = np.sqrt(np.mean(time_sq_errors)) labels = regression_targets > 0 class_preds = mus > 0 accuracy = sum((labels == class_preds).astype(np.int8)) / len(class_preds) print(f'95% Error: {np.percentile(np.sqrt(time_sq_errors), 95)}') print(f'RMSE: {rmse}') print(f'Classification Accuracy: {accuracy}') def print_stats(vec, do_print=True): fvec = vec.flatten() if do_print: print(len(fvec), min(fvec), np.mean(fvec), np.median(fvec), max(fvec)) return (len(fvec), min(fvec), np.mean(fvec), np.median(fvec), max(fvec)) def get_image_from_fits(base_dir, seq='475_31271', time='497', axis=2): """Read *.fits galaxy image from directory.""" axis_map = {0: 'x', 1: 'y', 2: 'z'} fits_glob = f'{base_dir}/{seq}/fits_of_flux_psf/{time}/*_{axis_map[axis]}_*.fits' def get_freq_from_path(p): return int(p.split('/')[-1].split('_')[2][1:]) fits_image_paths = sorted(glob.glob(fits_glob), key=get_freq_from_path) assert len(fits_image_paths) == 7 combined_frequencies = [] for fit_path in fits_image_paths: with open(fit_path, 'rb') as f: fits_data = np.array(fits.open(f)[0].data.astype(np.float32)) combined_frequencies.append(fits_data) fits_image = np.transpose(np.array(combined_frequencies), (1, 2, 0)) return fits_image def stack_desired_galaxy_images(base_dir, seq, n_time_slices): """Searth through galaxy image directory gathering images.""" fits_sequence_dir = os.path.join(base_dir, seq, 'fits_of_flux_psf') all_times_for_seq = os.listdir(fits_sequence_dir) hop = (len(all_times_for_seq)-1)//(n_time_slices-1) desired_time_idxs = [k*hop for k in range(n_time_slices)] all_imgs = [] for j in desired_time_idxs: time = all_times_for_seq[j] img = get_image_from_fits(base_dir=base_dir, seq=seq, time=time, axis=2) all_imgs.append(img) min_img_size = min([img.shape[0] for img in all_imgs]) return all_imgs, min_img_size def draw_galaxy_image(image, target_size=None, color_map='viridis'): normalized_image = image / max(image.flatten()) color_map = plt.get_cmap(color_map) colored_image = color_map(normalized_image)[:, :, :3] colored_image = (colored_image * 255).astype(np.uint8) colored_image = Image.fromarray(colored_image, mode='RGB') if target_size: colored_image = colored_image.resize(target_size, Image.ANTIALIAS) return colored_image def collect_merger_sequence(ds, seq=b'370_11071', n_examples_to_sift=5000): images, targets, redshifts = [], [], [] for i, all_inputs in enumerate(ds): if all_inputs[4][0].numpy() == seq: images.append(all_inputs[0][0].numpy()) targets.append(all_inputs[2][0].numpy()) redshifts.append(all_inputs[10][0].numpy()) if i > n_examples_to_sift: break return np.squeeze(images), np.squeeze(targets), np.squeeze(redshifts) def take_samples(sample_idxs, *data_lists): return [np.take(l, sample_idxs, axis=0) for l in data_lists] ================================================ FILE: galaxy_mergers/interpretability_helpers.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Helpers to visualize gradients and other interpretability analysis.""" import numpy as np import tensorflow.compat.v2 as tf def rotate_by_right_angle_multiple(image, rot=90): """Rotate an image by right angles.""" if rot not in [0, 90, 180, 270]: raise ValueError(f"Cannot rotate by non-90 degree angle {rot}") if rot in [90, -270]: image = np.transpose(image, (1, 0, 2)) image = image[::-1] elif rot in [180, -180]: image = image[::-1, ::-1] elif rot in [270, -90]: image = np.transpose(image, (1, 0, 2)) image = image[:, ::-1] return image def compute_gradient(images, evaluator, is_training=False): inputs = tf.Variable(images[None], dtype=tf.float32) with tf.GradientTape() as tape: tape.watch(inputs) time_sigma = evaluator.model(inputs, None, is_training) grad_time = tape.gradient(time_sigma[:, 0], inputs) return grad_time, time_sigma def compute_grads_for_rotations(images, evaluator, is_training=False): test_gradients, test_outputs = [], [] for rotation in np.arange(0, 360, 90): images_rot = rotate_by_right_angle_multiple(images, rotation) grads, time_sigma = compute_gradient(images_rot, evaluator, is_training) grads = np.squeeze(grads.numpy()) inv_grads = rotate_by_right_angle_multiple(grads, -rotation) test_gradients.append(inv_grads) test_outputs.append(time_sigma.numpy()) return np.squeeze(test_gradients), np.squeeze(test_outputs) def compute_grads_for_rotations_and_flips(images, evaluator): grads, time_sigma = compute_grads_for_rotations(images, evaluator) grads_f, time_sigma_f = compute_grads_for_rotations(images[::-1], evaluator) grads_f = grads_f[:, ::-1] all_grads = np.concatenate([grads, grads_f], 0) model_outputs = np.concatenate((time_sigma, time_sigma_f), 0) return all_grads, model_outputs ================================================ FILE: galaxy_mergers/losses.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Helpers to compute loss metrics.""" import scipy.stats import tensorflow.compat.v2 as tf import tensorflow_probability as tfp TASK_CLASSIFICATION = 'classification' TASK_NORMALIZED_REGRESSION = 'normalized_regression' TASK_UNNORMALIZED_REGRESSION = 'unnormalized_regression' TASK_GROUNDED_UNNORMALIZED_REGRESSION = 'grounded_unnormalized_regression' REGRESSION_TASKS = [TASK_NORMALIZED_REGRESSION, TASK_UNNORMALIZED_REGRESSION, TASK_GROUNDED_UNNORMALIZED_REGRESSION] ALL_TASKS = [TASK_CLASSIFICATION] + REGRESSION_TASKS LOSS_MSE = 'mse' LOSS_SOFTMAX_CROSS_ENTROPY = 'softmax_cross_entropy' ALL_LOSSES = [LOSS_SOFTMAX_CROSS_ENTROPY, LOSS_MSE] def normalize_regression_loss(regression_loss, predictions): # Normalize loss such that: # 1) E_{x uniform}[loss(x, prediction)] does not depend on prediction # 2) E_{x uniform, prediction uniform}[loss(x, prediction)] is as before. # Divides MSE regression loss by E[(prediction-x)^2]; assumes x=[-1,1] normalization = 2./3. normalized_loss = regression_loss / ((1./3 + predictions**2) / normalization) return normalized_loss def equal32(x, y): return tf.cast(tf.equal(x, y), tf.float32) def mse_loss(predicted, targets): return (predicted - targets) ** 2 def get_std_factor_from_confidence_percent(percent): dec = percent/100. inv_dec = 1 - dec return scipy.stats.norm.ppf(dec+inv_dec/2) def get_all_metric_names(task_type, model_uncertainty, loss_config, # pylint: disable=unused-argument mode='eval', return_dict=True): """Get all the scalar fields produced by compute_loss_and_metrics.""" names = ['regularization_loss', 'prediction_accuracy', str(mode)+'_loss'] if task_type == TASK_CLASSIFICATION: names += ['classification_loss'] else: names += ['regression_loss', 'avg_mu', 'var_mu'] if model_uncertainty: names += ['uncertainty_loss', 'scaled_regression_loss', 'uncertainty_plus_scaled_regression', 'avg_sigma', 'var_sigma', 'percent_in_conf_interval', 'error_sigma_correlation', 'avg_prob'] if return_dict: return {name: 0. for name in names} else: return names def compute_loss_and_metrics(mu, log_sigma_sq, regression_targets, labels, task_type, model_uncertainty, loss_config, regularization_loss=0., confidence_interval=95, mode='train'): """Computes loss statistics and other metrics.""" scalars_to_log = dict() vectors_to_log = dict() scalars_to_log['regularization_loss'] = regularization_loss vectors_to_log['mu'] = mu if task_type == TASK_CLASSIFICATION: cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits( logits=mu, labels=labels, name='cross_entropy') classification_loss = tf.reduce_mean(cross_entropy, name='class_loss') total_loss = classification_loss sigma = None scalars_to_log['classification_loss'] = classification_loss predicted_labels = tf.argmax(mu, axis=1) correct_predictions = equal32(predicted_labels, labels) else: regression_loss = mse_loss(mu, regression_targets) if 'mse_normalize' in loss_config and loss_config['mse_normalize']: assert task_type in [TASK_GROUNDED_UNNORMALIZED_REGRESSION, TASK_NORMALIZED_REGRESSION] regression_loss = normalize_regression_loss(regression_loss, mu) avg_regression_loss = tf.reduce_mean(regression_loss) vectors_to_log['regression_loss'] = regression_loss scalars_to_log['regression_loss'] = avg_regression_loss scalars_to_log['avg_mu'] = tf.reduce_mean(mu) scalars_to_log['var_mu'] = tf.reduce_mean(mse_loss(mu, tf.reduce_mean(mu))) predicted_labels = tf.cast(mu > 0, tf.int64) correct_predictions = equal32(predicted_labels, labels) if model_uncertainty: # This implements Eq. (1) in https://arxiv.org/pdf/1612.01474.pdf inv_sigma_sq = tf.math.exp(-log_sigma_sq) scaled_regression_loss = regression_loss * inv_sigma_sq scaled_regression_loss = tf.reduce_mean(scaled_regression_loss) uncertainty_loss = tf.reduce_mean(log_sigma_sq) total_loss = uncertainty_loss + scaled_regression_loss scalars_to_log['uncertainty_loss'] = uncertainty_loss scalars_to_log['scaled_regression_loss'] = scaled_regression_loss scalars_to_log['uncertainty_plus_scaled_regression'] = total_loss sigma = tf.math.exp(log_sigma_sq / 2.) vectors_to_log['sigma'] = sigma scalars_to_log['avg_sigma'] = tf.reduce_mean(sigma) var_sigma = tf.reduce_mean(mse_loss(sigma, tf.reduce_mean(sigma))) scalars_to_log['var_sigma'] = var_sigma # Compute # of labels that fall into the confidence interval. std_factor = get_std_factor_from_confidence_percent(confidence_interval) lower_bound = mu - std_factor * sigma upper_bound = mu + std_factor * sigma preds = tf.logical_and(tf.greater(regression_targets, lower_bound), tf.less(regression_targets, upper_bound)) percent_in_conf_interval = tf.reduce_mean(tf.cast(preds, tf.float32)) scalars_to_log['percent_in_conf_interval'] = percent_in_conf_interval*100 error_sigma_corr = tfp.stats.correlation(x=regression_loss, y=sigma, event_axis=None) scalars_to_log['error_sigma_correlation'] = error_sigma_corr dists = tfp.distributions.Normal(mu, sigma) probs = dists.prob(regression_targets) scalars_to_log['avg_prob'] = tf.reduce_mean(probs) else: total_loss = avg_regression_loss loss_name = str(mode)+'_loss' total_loss = tf.add(total_loss, regularization_loss, name=loss_name) scalars_to_log[loss_name] = total_loss vectors_to_log['correct_predictions'] = correct_predictions scalars_to_log['prediction_accuracy'] = tf.reduce_mean(correct_predictions) # Validate that metrics outputted are exactly what is expected expected = get_all_metric_names(task_type, model_uncertainty, loss_config, mode, False) assert set(expected) == set(scalars_to_log.keys()) return scalars_to_log, vectors_to_log ================================================ FILE: galaxy_mergers/main.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Simple script to model evaluation on a checkpoint and dataset.""" import ast from absl import app from absl import flags from absl import logging from galaxy_mergers import evaluator flags.DEFINE_string('checkpoint_path', '', 'Path to TF2 checkpoint to eval.') flags.DEFINE_string('data_path', '', 'Path to TFRecord(s) with data.') flags.DEFINE_string('filter_time_intervals', None, 'Merger time intervals on which to perform regression.' 'Specify None for the default time interval [-1,1], or' ' a custom list of intervals, e.g. [[-0.2,0], [0.5,1]].') FLAGS = flags.FLAGS def main(_) -> None: if FLAGS.filter_time_intervals is not None: filter_time_intervals = ast.literal_eval(FLAGS.filter_time_intervals) else: filter_time_intervals = None config, ds, experiment = evaluator.get_config_dataset_evaluator( filter_time_intervals, FLAGS.checkpoint_path, config_override={ 'experiment_kwargs.data_config.dataset_path': FLAGS.data_path, }) metrics, _, _ = evaluator.run_model_on_dataset(experiment, ds, config) logging.info('Evaluation complete. Metrics: %s', metrics) if __name__ == '__main__': app.run(main) ================================================ FILE: galaxy_mergers/model.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Fork of a generic ResNet to incorporate additional cosmological features.""" from typing import Mapping, Optional, Sequence, Text import sonnet.v2 as snt import tensorflow.compat.v2 as tf class ResNet(snt.Module): """ResNet model.""" def __init__(self, n_repeats: int, blocks_per_group_list: Sequence[int], num_classes: int, bn_config: Optional[Mapping[Text, float]] = None, resnet_v2: bool = False, channels_per_group_list: Sequence[int] = (256, 512, 1024, 2048), use_additional_features: bool = False, additional_features_mode: Optional[Text] = "per_block", name: Optional[Text] = None): """Constructs a ResNet model. Args: n_repeats: The batch dimension for the input is expected to have the form `B = b * n_repeats`. After the conv stack, the logits for the `n_repeats` replicas are reduced, leading to an output batch dimension of `b`. blocks_per_group_list: A sequence of length 4 that indicates the number of blocks created in each group. num_classes: The number of classes to classify the inputs into. bn_config: A dictionary of two elements, `decay_rate` and `eps` to be passed on to the `BatchNorm` layers. By default the `decay_rate` is `0.9` and `eps` is `1e-5`. resnet_v2: Whether to use the v1 or v2 ResNet implementation. Defaults to False. channels_per_group_list: A sequence of length 4 that indicates the number of channels used for each block in each group. use_additional_features: If true, additional vector features will be concatenated to the residual stack before logits are computed. additional_features_mode: Mode for processing additional features. Supported modes: 'mlp' and 'per_block'. name: Name of the module. """ super(ResNet, self).__init__(name=name) self._n_repeats = n_repeats if bn_config is None: bn_config = {"decay_rate": 0.9, "eps": 1e-5} self._bn_config = bn_config self._resnet_v2 = resnet_v2 # Number of blocks in each group for ResNet. if len(blocks_per_group_list) != 4: raise ValueError( "`blocks_per_group_list` must be of length 4 not {}".format( len(blocks_per_group_list))) self._blocks_per_group_list = blocks_per_group_list # Number of channels in each group for ResNet. if len(channels_per_group_list) != 4: raise ValueError( "`channels_per_group_list` must be of length 4 not {}".format( len(channels_per_group_list))) self._channels_per_group_list = channels_per_group_list self._use_additional_features = use_additional_features self._additional_features_mode = additional_features_mode self._initial_conv = snt.Conv2D( output_channels=64, kernel_shape=7, stride=2, with_bias=False, padding="SAME", name="initial_conv") if not self._resnet_v2: self._initial_batchnorm = snt.BatchNorm( create_scale=True, create_offset=True, name="initial_batchnorm", **bn_config) self._block_groups = [] strides = [1, 2, 2, 2] for i in range(4): self._block_groups.append( snt.nets.resnet.BlockGroup( channels=self._channels_per_group_list[i], num_blocks=self._blocks_per_group_list[i], stride=strides[i], bn_config=bn_config, resnet_v2=resnet_v2, name="block_group_%d" % (i))) if self._resnet_v2: self._final_batchnorm = snt.BatchNorm( create_scale=True, create_offset=True, name="final_batchnorm", **bn_config) self._logits = snt.Linear( output_size=num_classes, w_init=snt.initializers.VarianceScaling(scale=2.0), name="logits") if self._use_additional_features: self._embedding = LinearBNReLU(output_size=16, name="embedding", **bn_config) if self._additional_features_mode == "mlp": self._feature_repr = LinearBNReLU( output_size=self._channels_per_group_list[-1], name="features_repr", **bn_config) elif self._additional_features_mode == "per_block": self._feature_repr = [] for i, ch in enumerate(self._channels_per_group_list): self._feature_repr.append( LinearBNReLU(output_size=ch, name=f"features_{i}", **bn_config)) else: raise ValueError(f"Unsupported addiitonal features mode: " f"{additional_features_mode}") def __call__(self, inputs, features, is_training): net = inputs net = self._initial_conv(net) if not self._resnet_v2: net = self._initial_batchnorm(net, is_training=is_training) net = tf.nn.relu(net) net = tf.nn.max_pool2d( net, ksize=3, strides=2, padding="SAME", name="initial_max_pool") if self._use_additional_features: assert features is not None features = self._embedding(features, is_training=is_training) for i, block_group in enumerate(self._block_groups): net = block_group(net, is_training) if (self._use_additional_features and self._additional_features_mode == "per_block"): features_i = self._feature_repr[i](features, is_training=is_training) # support for n_repeats > 1 features_i = tf.repeat(features_i, self._n_repeats, axis=0) net += features_i[:, None, None, :] # expand to spacial resolution if self._resnet_v2: net = self._final_batchnorm(net, is_training=is_training) net = tf.nn.relu(net) net = tf.reduce_mean(net, axis=[1, 2], name="final_avg_pool") # Re-split the batch dimension net = tf.reshape(net, [-1, self._n_repeats] + net.shape.as_list()[1:]) # Average over the various repeats of the input (e.g. those could have # corresponded to different crops). net = tf.reduce_mean(net, axis=1) if (self._use_additional_features and self._additional_features_mode == "mlp"): net += self._feature_repr(features, is_training=is_training) return self._logits(net) class LinearBNReLU(snt.Module): """Wrapper class for Linear layer with Batch Norm and ReLU activation.""" def __init__(self, output_size=64, w_init=snt.initializers.VarianceScaling(scale=2.0), name="linear", **bn_config): """Constructs a LinearBNReLU module. Args: output_size: Output dimension. w_init: weight Initializer for snt.Linear. name: Name of the module. **bn_config: Optional parameters to be passed to snt.BatchNorm. """ super(LinearBNReLU, self).__init__(name=name) self._linear = snt.Linear(output_size=output_size, w_init=w_init, name=f"{name}_linear") self._bn = snt.BatchNorm(create_scale=True, create_offset=True, name=f"{name}_bn", **bn_config) def __call__(self, x, is_training): x = self._linear(x) x = self._bn(x, is_training=is_training) return tf.nn.relu(x) ================================================ FILE: galaxy_mergers/preprocessing.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Pre-processing functions for input data.""" import functools from absl import logging import tensorflow.compat.v2 as tf from galaxy_mergers import losses CROP_TYPE_NONE = 'crop_none' CROP_TYPE_FIXED = 'crop_fixed' CROP_TYPE_RANDOM = 'crop_random' DATASET_FREQUENCY_MEAN = 4.0 DATASET_FREQUENCY_RANGE = 8.0 PHYSICAL_FEATURES_MIN_MAX = { 'redshift': (0.572788, 2.112304), 'mass': (9.823963, 10.951282) } ALL_FREQUENCIES = [105, 125, 160, 435, 606, 775, 850] VALID_ADDITIONAL_FEATURES = ['redshift', 'sequence_average_redshift', 'mass'] def _make_padding_sizes(pad_size, random_centering): if random_centering: pad_size_left = tf.random.uniform( shape=[], minval=0, maxval=pad_size+1, dtype=tf.int32) else: pad_size_left = pad_size // 2 pad_size_right = pad_size - pad_size_left return pad_size_left, pad_size_right def resize_and_pad(image, target_size, random_centering): """Resize image to target_size (<= image.size) and pad to original size.""" original_shape = image.shape size = tf.reshape(target_size, [1]) size = tf.concat([size, size], axis=0) image = tf.image.resize(image, size=size) pad_size = original_shape[1] - target_size pad_size_left, pad_size_right = _make_padding_sizes( pad_size, random_centering) padding = [[pad_size_left, pad_size_right], [pad_size_left, pad_size_right], [0, 0]] if len(original_shape) == 4: padding = [[0, 0]] + padding image = tf.pad(image, padding) image.set_shape(original_shape) return image def resize_and_extract(image, target_size, random_centering): """Upscale image to target_size (>image.size), extract original size crop.""" original_shape = image.shape size = tf.reshape(target_size, [1]) size = tf.concat([size, size], axis=0) image = tf.image.resize(image, size=size) pad_size = target_size - original_shape[1] pad_size_left, pad_size_right = _make_padding_sizes( pad_size, random_centering) if len(original_shape) == 3: image = tf.expand_dims(image, 0) image = tf.cond(pad_size_right > 0, lambda: image[:, pad_size_left:-pad_size_right, :, :], lambda: image[:, pad_size_left:, :, :]) image = tf.cond(pad_size_right > 0, lambda: image[:, :, pad_size_left:-pad_size_right, :], lambda: image[:, :, pad_size_left:, :]) if len(original_shape) == 3: image = tf.squeeze(image, 0) image.set_shape(original_shape) return image def resize_and_center(image, target_size, random_centering): return tf.cond( tf.math.less_equal(target_size, image.shape[1]), lambda: resize_and_pad(image, target_size, random_centering), lambda: resize_and_extract(image, target_size, random_centering)) def random_rotation_and_flip(image): angle = tf.random.uniform(shape=[], minval=0, maxval=4, dtype=tf.int32) return tf.image.random_flip_left_right(tf.image.rot90(image, angle)) def get_all_rotations_and_flips(images): assert isinstance(images, list) new_images = [] for image in images: for rotation in range(4): new_images.append(tf.image.rot90(image, rotation)) flipped_image = tf.image.flip_left_right(image) new_images.append(tf.image.rot90(flipped_image, rotation)) return new_images def random_rescaling(image, random_centering): assert image.shape.as_list()[0] == image.shape.as_list()[1] original_size = image.shape.as_list()[1] min_size = 2 * (original_size // 4) max_size = original_size * 2 target_size = tf.random.uniform( shape=[], minval=min_size, maxval=max_size // 2, dtype=tf.int32) * 2 return resize_and_center(image, target_size, random_centering) def get_all_rescalings(images, image_width, random_centering): """Get a uniform sample of rescalings of all images in input.""" assert isinstance(images, list) min_size = 2 * (image_width // 4) max_size = image_width * 2 delta_size = (max_size + 2 - min_size) // 5 sizes = range(min_size, max_size + 2, delta_size) new_images = [] for image in images: for size in sizes: new_images.append(resize_and_center(image, size, random_centering)) return new_images def move_repeats_to_batch(image, n_repeats): width, height, n_channels = image.shape.as_list()[1:] image = tf.reshape(image, [-1, width, height, n_channels, n_repeats]) image = tf.transpose(image, [0, 4, 1, 2, 3]) # [B, repeats, x, y, c] return tf.reshape(image, [-1, width, height, n_channels]) def get_classification_label(dataset_row, class_boundaries): merge_time = dataset_row['grounded_normalized_time'] label = tf.dtypes.cast(0, tf.int64) for category, intervals in class_boundaries.items(): for interval in intervals: if merge_time > interval[0] and merge_time < interval[1]: label = tf.dtypes.cast(int(category), tf.int64) return label def get_regression_label(dataset_row, task_type): """Returns time-until-merger regression target given desired modeling task.""" if task_type == losses.TASK_NORMALIZED_REGRESSION: return tf.dtypes.cast(dataset_row['normalized_time'], tf.float32) elif task_type == losses.TASK_GROUNDED_UNNORMALIZED_REGRESSION: return tf.dtypes.cast(dataset_row['grounded_normalized_time'], tf.float32) elif task_type == losses.TASK_UNNORMALIZED_REGRESSION: return tf.dtypes.cast(dataset_row['unnormalized_time'], tf.float32) elif task_type == losses.TASK_CLASSIFICATION: return tf.dtypes.cast(dataset_row['grounded_normalized_time'], tf.float32) else: raise ValueError def get_normalized_time_target(dataset_row): return tf.dtypes.cast(dataset_row['normalized_time'], tf.float32) def apply_time_filter(dataset_row, time_interval): """Returns True if data is within the given time intervals.""" merge_time = dataset_row['grounded_normalized_time'] lower_time, upper_time = time_interval return merge_time > lower_time and merge_time < upper_time def normalize_physical_feature(name, dataset_row): min_feat, max_feat = PHYSICAL_FEATURES_MIN_MAX[name] value = getattr(dataset_row, name) return 2 * (value - min_feat) / (max_feat - min_feat) - 1 def prepare_dataset(ds, target_size, crop_type, n_repeats, augmentations, task_type, additional_features, class_boundaries, time_intervals=None, frequencies_to_use='all', additional_lambdas=None): """Prepare a zipped dataset of image, classification/regression labels.""" def _prepare_image(dataset_row): """Transpose, crop and cast an image.""" image = tf.dtypes.cast(dataset_row['image'], tf.float32) image = tf.reshape(image, tf.cast(dataset_row['image_shape'], tf.int32)) image = tf.transpose(image, perm=[1, 2, 0]) # Convert to NHWC freqs = ALL_FREQUENCIES if frequencies_to_use == 'all' else frequencies_to_use idxs_to_keep = [ALL_FREQUENCIES.index(f) for f in freqs] image = tf.gather(params=image, indices=idxs_to_keep, axis=-1) # Based on offline computation on the empirical frequency range: # Converts [0, 8.] ~~> [-1, 1] image = (image - DATASET_FREQUENCY_MEAN)/(DATASET_FREQUENCY_RANGE/2.0) def crop(image): if crop_type == CROP_TYPE_FIXED: crop_loc = tf.cast(dataset_row['proposed_crop'][0], tf.int32) crop_size = tf.cast(dataset_row['proposed_crop'][1], tf.int32) image = image[ crop_loc[0]:crop_loc[0] + crop_size[0], crop_loc[1]:crop_loc[1] + crop_size[1], :] image = tf.image.resize(image, target_size[0:2]) image.set_shape([target_size[0], target_size[1], target_size[2]]) elif crop_type == CROP_TYPE_RANDOM: image = tf.image.random_crop(image, target_size) image.set_shape([target_size[0], target_size[1], target_size[2]]) elif crop_type != CROP_TYPE_NONE: raise NotImplementedError return image repeated_images = [] for _ in range(n_repeats): repeated_images.append(crop(image)) image = tf.concat(repeated_images, axis=-1) if augmentations['rotation_and_flip']: image = random_rotation_and_flip(image) if augmentations['rescaling']: image = random_rescaling(image, augmentations['translation']) return image def get_regression_label_wrapper(dataset_row): return get_regression_label(dataset_row, task_type=task_type) def get_classification_label_wrapper(dataset_row): return get_classification_label(dataset_row, class_boundaries=class_boundaries) if time_intervals: for time_interval in time_intervals: filter_fn = functools.partial(apply_time_filter, time_interval=time_interval) ds = ds.filter(filter_fn) datasets = [ds.map(_prepare_image)] if additional_features: additional_features = additional_features.split(',') assert all([f in VALID_ADDITIONAL_FEATURES for f in additional_features]) logging.info('Running with additional features: %s.', ', '.join(additional_features)) def _prepare_additional_features(dataset_row): features = [] for f in additional_features: features.append(normalize_physical_feature(f, dataset_row)) features = tf.convert_to_tensor(features, dtype=tf.float32) features.set_shape([len(additional_features)]) return features datasets += [ds.map(_prepare_additional_features)] datasets += [ ds.map(get_classification_label_wrapper), ds.map(get_regression_label_wrapper), ds.map(get_normalized_time_target)] if additional_lambdas: for process_fn in additional_lambdas: datasets += [ds.map(process_fn)] return tf.data.Dataset.zip(tuple(datasets)) ================================================ FILE: galaxy_mergers/requirements.txt ================================================ absl-py==0.11.0 astropy==4.2 astunparse==1.6.3 cachetools==4.2.1 certifi==2020.12.5 chardet==4.0.0 cloudpickle==1.6.0 contextlib2==0.6.0.post1 cycler==0.10.0 decorator==4.4.2 dm-sonnet==2.0.0 dm-tree==0.1.5 flatbuffers==1.12 gast==0.3.3 google-auth==1.27.0 google-auth-oauthlib==0.4.2 google-pasta==0.2.0 grpcio==1.32.0 h5py==2.10.0 idna==2.10 Keras-Preprocessing==1.1.2 kiwisolver==1.3.1 Markdown==3.3.4 matplotlib==3.3.4 ml-collections==0.1.0 numpy==1.19.5 oauthlib==3.1.0 opt-einsum==3.3.0 Pillow==8.1.0 pkg-resources==0.0.0 protobuf==3.15.3 pyasn1==0.4.8 pyasn1-modules==0.2.8 pyerfa==1.7.2 pyparsing==2.4.7 python-dateutil==2.8.1 PyYAML==5.4.1 requests==2.25.1 requests-oauthlib==1.3.0 rsa==4.7.2 scipy==1.6.1 six==1.15.0 tabulate==0.8.9 tensorboard==2.4.1 tensorboard-plugin-wit==1.8.0 tensorflow==2.4.1 tensorflow-estimator==2.4.0 tensorflow-probability==0.12.1 termcolor==1.1.0 typing-extensions==3.7.4.3 urllib3==1.26.3 Werkzeug==1.0.1 wrapt==1.12.1 ================================================ FILE: gated_linear_networks/README.md ================================================ # Gated Linear Networks Gated Linear Networks (GLNs) are a family of backpropation-free neural networks. Each neuron in a GLN predicts the target density (or probability mass) based on the outputs of the previous layer and is trained under a logarthmic loss. ## GLN variants Neurons have probabilistic "activation functions". Implementations are provided for the following distributions: - Gaussian, for regression. - Bernoulli, for binary classification and multi-class classification using a one-vs-all scheme. ## Examples Usage examples are provided in [`examples`](examples). ## Implementation details ### Constraint satisfaction Because each neuron implements a probability density/mass function we need to ensure that they are well defined. For example, the scale parameter for a Gaussian density needs to be positive. We implement these constraints using linear projections and clipping. ### Aggregation Because each neuron predicts the target, we can use any neuron output as the "network output", and are not bound to the last layer. Typically last layer neuron(s) are the best predictors, but they might take longer to converge in theory. In this implementation, we use a single neuron at the last layer, which then forms the network output. There are alternative ways of aggregating, e.g. see Switching Aggregation in Appendix D of *Gaussian Gated Linear Networks* (link: https://arxiv.org/pdf/2006.05964.pdf). ## References Coming soon. ================================================ FILE: gated_linear_networks/base.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Base classes for Gated Linear Networks.""" import abc import collections import functools import inspect from typing import Any, Callable, Optional, Sequence, Tuple import chex import haiku as hk import jax import jax.numpy as jnp Array = chex.Array DType = Any Initializer = hk.initializers.Initializer Shape = Sequence[int] EPS = 1e-12 MIN_ALPHA = 1e-5 def _l2_normalize(x: Array, axis: int) -> Array: return x / jnp.sqrt(jnp.maximum(jnp.sum(x**2, axis, keepdims=True), EPS)) def _wrapped_fn_argnames(fun): """Returns list of argnames of a (possibly wrapped) function.""" return tuple(inspect.signature(fun).parameters) def _vmap(fun, in_axes=0, out_axes=0, parameters=None): """JAX vmap with human-friendly axes.""" def _axes(fun, d): """Maps dict {kwarg_i, : val_i} to [None, ..., val_i, ..., None].""" argnames = _wrapped_fn_argnames(fun) if not parameters else parameters for key in d: if key not in argnames: raise ValueError(f"{key} is not a valid axis.") return tuple(d.get(key, None) for key in argnames) in_axes = _axes(fun, in_axes) if isinstance(in_axes, dict) else in_axes return jax.vmap(fun, in_axes, out_axes) # Map a neuron-level function across a layer. _layer_vmap = functools.partial( _vmap, in_axes=({ "weights": 0, "hyperplanes": 0, "hyperplane_bias": 0, })) class NormalizedRandomNormal(hk.initializers.RandomNormal): """Random normal initializer with l2-normalization.""" def __init__(self, stddev: float = 1., mean: float = 0., normalize_axis: int = 0): super(NormalizedRandomNormal, self).__init__(stddev, mean) self._normalize_axis = normalize_axis def __call__(self, shape: Shape, dtype: DType) -> Array: if self._normalize_axis >= len(shape): raise ValueError("Cannot normalize axis {} for ndim = {}.".format( self._normalize_axis, len(shape))) weights = super(NormalizedRandomNormal, self).__call__(shape, dtype) return _l2_normalize(weights, axis=self._normalize_axis) class ShapeScaledConstant(hk.initializers.Initializer): """Initializes with a constant dependent on last dimension of input shape.""" def __call__(self, shape: Shape, dtype: DType) -> jnp.ndarray: constant = 1. / shape[-1] return jnp.broadcast_to(constant, shape).astype(dtype) class LocalUpdateModule(hk.Module): """Abstract base class for GLN variants and utils.""" def __init__(self, name: Optional[str] = None): if hasattr(self, "__call__"): raise ValueError("Do not implement `__call__` for a LocalUpdateModule." + " Implement `inference` and `update` instead.") super(LocalUpdateModule, self).__init__(name) @abc.abstractmethod def inference(self, *args, **kwargs): """Module inference step.""" @abc.abstractmethod def update(self, *args, **kwargs): """Module update step.""" @property @abc.abstractmethod def output_sizes(self) -> Shape: """Returns network output sizes.""" class GatedLinearNetwork(LocalUpdateModule): """Abstract base class for a multi-layer Gated Linear Network.""" def __init__(self, output_sizes: Shape, context_dim: int, inference_fn: Callable[..., Array], update_fn: Callable[..., Array], init: Initializer, hyp_w_init: Optional[Initializer] = None, hyp_b_init: Optional[Initializer] = None, dtype: DType = jnp.float32, name: str = "gated_linear_network"): """Initialize a GatedLinearNetwork as a sequence of GatedLinearLayers.""" super(GatedLinearNetwork, self).__init__(name=name) self._layers = [] self._output_sizes = output_sizes for i, output_size in enumerate(self._output_sizes): layer = _GatedLinearLayer( output_size=output_size, context_dim=context_dim, update_fn=update_fn, inference_fn=inference_fn, init=init, hyp_w_init=hyp_w_init, hyp_b_init=hyp_b_init, dtype=dtype, name=name + "_layer_{}".format(i)) self._layers.append(layer) self._name = name @abc.abstractmethod def _add_bias(self, inputs): pass def inference(self, inputs: Array, side_info: Array, *args, **kwargs) -> Array: """GatedLinearNetwork inference.""" predictions_per_layer = [] predictions = inputs for layer in self._layers: predictions = self._add_bias(predictions) predictions = layer.inference(predictions, side_info, *args, **kwargs) predictions_per_layer.append(predictions) return jnp.concatenate(predictions_per_layer, axis=0) def update(self, inputs, side_info, target, learning_rate, *args, **kwargs): """GatedLinearNetwork update.""" all_params = [] all_predictions = [] all_losses = [] predictions = inputs for layer in self._layers: predictions = self._add_bias(predictions) # Note: This is correct because returned predictions are pre-update. params, predictions, log_loss = layer.update(predictions, side_info, target, learning_rate, *args, **kwargs) all_params.append(params) all_predictions.append(predictions) all_losses.append(log_loss) new_params = dict(collections.ChainMap(*all_params)) predictions = jnp.concatenate(all_predictions, axis=0) log_loss = jnp.concatenate(all_losses, axis=0) return new_params, predictions, log_loss @property def output_sizes(self): return self._output_sizes @staticmethod def _compute_context( side_info: Array, # [side_info_size] hyperplanes: Array, # [context_dim, side_info_size] hyperplane_bias: Array, # [context_dim] ) -> Array: # Index weights by side information. context_dim = hyperplane_bias.shape[0] proj = jnp.dot(hyperplanes, side_info) bits = (proj > hyperplane_bias).astype(jnp.int32) weight_index = jnp.sum( bits * jnp.array([2**i for i in range(context_dim)])) if context_dim else 0 return weight_index class _GatedLinearLayer(LocalUpdateModule): """A single layer of a Gated Linear Network.""" def __init__(self, output_size: int, context_dim: int, inference_fn: Callable[..., Array], update_fn: Callable[..., Array], init: Initializer, hyp_w_init: Optional[Initializer] = None, hyp_b_init: Optional[Initializer] = None, dtype: DType = jnp.float32, name: str = "gated_linear_layer"): """Initialize a GatedLinearLayer.""" super(_GatedLinearLayer, self).__init__(name=name) self._output_size = output_size self._context_dim = context_dim self._inference_fn = inference_fn self._update_fn = update_fn self._init = init self._hyp_w_init = hyp_w_init self._hyp_b_init = hyp_b_init self._dtype = dtype self._name = name def _get_weights(self, input_size): """Get (or initialize) weight parameters.""" weights = hk.get_parameter( "weights", shape=(self._output_size, 2**self._context_dim, input_size), dtype=self._dtype, init=self._init, ) return weights def _get_hyperplanes(self, side_info_size): """Get (or initialize) hyperplane weights and bias.""" hyp_w_init = self._hyp_w_init or NormalizedRandomNormal( stddev=1., normalize_axis=1) hyperplanes = hk.get_state( "hyperplanes", shape=(self._output_size, self._context_dim, side_info_size), init=hyp_w_init) hyp_b_init = self._hyp_b_init or hk.initializers.RandomNormal(stddev=0.05) hyperplane_bias = hk.get_state( "hyperplane_bias", shape=(self._output_size, self._context_dim), init=hyp_b_init) return hyperplanes, hyperplane_bias def inference(self, inputs: Array, side_info: Array, *args, **kwargs) -> Array: """GatedLinearLayer inference.""" # Initialize layer weights. weights = self._get_weights(inputs.shape[0]) # Initialize fixed random hyperplanes. side_info_size = side_info.shape[0] hyperplanes, hyperplane_bias = self._get_hyperplanes(side_info_size) # Perform layer-wise inference by mapping along output_size (num_neurons). layer_inference = _layer_vmap(self._inference_fn) predictions = layer_inference(inputs, side_info, weights, hyperplanes, hyperplane_bias, *args, **kwargs) return predictions def update(self, inputs: Array, side_info: Array, target: Array, learning_rate: float, *args, **kwargs) -> Tuple[Array, Array, Array]: """GatedLinearLayer update.""" # Fetch layer weights. weights = self._get_weights(inputs.shape[0]) # Fetch fixed random hyperplanes. side_info_size = side_info.shape[0] hyperplanes, hyperplane_bias = self._get_hyperplanes(side_info_size) # Perform layer-wise update by mapping along output_size (num_neurons). layer_update = _layer_vmap(self._update_fn) new_weights, predictions, log_loss = layer_update(inputs, side_info, weights, hyperplanes, hyperplane_bias, target, learning_rate, *args, **kwargs) assert new_weights.shape == weights.shape params = {self.module_name: {"weights": new_weights}} return params, predictions, log_loss @property def output_sizes(self): return self._output_size class Mutator(LocalUpdateModule): """Abstract base class for GLN Mutators.""" def __init__( self, network_factory: Callable[..., LocalUpdateModule], name: str, ): super(Mutator, self).__init__(name=name) self._network = network_factory() self._name = name @property def output_sizes(self): return self._network.output_sizes class LastNeuronAggregator(Mutator): """Last neuron aggregator: network output is read from the last neuron.""" def __init__( self, network_factory: Callable[..., LocalUpdateModule], name: str = "last_neuron", ): super(LastNeuronAggregator, self).__init__(network_factory, name) if self._network.output_sizes[-1] != 1: raise ValueError( "LastNeuronAggregator requires the last GLN layer to have" " output_size = 1.") def inference(self, *args, **kwargs) -> Array: predictions = self._network.inference(*args, **kwargs) return predictions[-1] def update(self, *args, **kwargs) -> Tuple[Array, Array, Array]: params_t, predictions_tm1, loss_tm1 = self._network.update(*args, **kwargs) return params_t, predictions_tm1[-1], loss_tm1[-1] ================================================ FILE: gated_linear_networks/bernoulli.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Bernoulli Gated Linear Network.""" from typing import List, Text, Tuple import chex import jax import jax.numpy as jnp import rlax import tensorflow_probability as tfp from gated_linear_networks import base tfp = tfp.experimental.substrates.jax tfd = tfp.distributions Array = chex.Array GLN_EPS = 0.01 MAX_WEIGHT = 200. class GatedLinearNetwork(base.GatedLinearNetwork): """Bernoulli Gated Linear Network.""" def __init__(self, output_sizes: List[int], context_dim: int, name: Text = "bernoulli_gln"): """Initialize a Bernoulli GLN.""" super(GatedLinearNetwork, self).__init__( output_sizes, context_dim, inference_fn=GatedLinearNetwork._inference_fn, update_fn=GatedLinearNetwork._update_fn, init=jnp.zeros, dtype=jnp.float32, name=name) def _add_bias(self, inputs): return jnp.append(inputs, rlax.sigmoid(1.)) @staticmethod def _inference_fn( inputs: Array, # [input_size] side_info: Array, # [side_info_size] weights: Array, # [2**context_dim, input_size] hyperplanes: Array, # [context_dim, side_info_size] hyperplane_bias: Array, # [context_dim] ) -> Array: """Inference step for a single Beurnolli neuron.""" weight_index = GatedLinearNetwork._compute_context(side_info, hyperplanes, hyperplane_bias) used_weights = weights[weight_index] inputs = rlax.logit(jnp.clip(inputs, GLN_EPS, 1. - GLN_EPS)) prediction = rlax.sigmoid(jnp.dot(used_weights, inputs)) return prediction @staticmethod def _update_fn( inputs: Array, # [input_size] side_info: Array, # [side_info_size] weights: Array, # [2**context_dim, num_features] hyperplanes: Array, # [context_dim, side_info_size] hyperplane_bias: Array, # [context_dim] target: Array, # [] learning_rate: float, ) -> Tuple[Array, Array, Array]: """Update step for a single Bernoulli neuron.""" def log_loss_fn(inputs, side_info, weights, hyperplanes, hyperplane_bias, target): """Log loss for a single Bernoulli neuron.""" prediction = GatedLinearNetwork._inference_fn(inputs, side_info, weights, hyperplanes, hyperplane_bias) prediction = jnp.clip(prediction, GLN_EPS, 1. - GLN_EPS) return rlax.log_loss(prediction, target), prediction grad_log_loss = jax.value_and_grad(log_loss_fn, argnums=2, has_aux=True) ((log_loss, prediction), dloss_dweights) = grad_log_loss(inputs, side_info, weights, hyperplanes, hyperplane_bias, target) delta_weights = learning_rate * dloss_dweights new_weights = jnp.clip(weights - delta_weights, -MAX_WEIGHT, MAX_WEIGHT) return new_weights, prediction, log_loss class LastNeuronAggregator(base.LastNeuronAggregator): """Bernoulli last neuron aggregator, implemented by the super class.""" pass ================================================ FILE: gated_linear_networks/bernoulli_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for `bernoulli.py`.""" from absl.testing import absltest from absl.testing import parameterized import haiku as hk import jax import jax.numpy as jnp import numpy as np import tree from gated_linear_networks import bernoulli def _get_dataset(input_size, batch_size=None): """Get mock dataset.""" if batch_size: inputs = jnp.ones([batch_size, input_size]) side_info = jnp.ones([batch_size, input_size]) targets = jnp.ones([batch_size]) else: inputs = jnp.ones([input_size]) side_info = jnp.ones([input_size]) targets = jnp.ones([]) return inputs, side_info, targets class GatedLinearNetworkTest(parameterized.TestCase): # TODO(b/170843789): Factor out common test utilities. def setUp(self): super(GatedLinearNetworkTest, self).setUp() self._name = "test_network" self._rng = hk.PRNGSequence(jax.random.PRNGKey(42)) self._output_sizes = (4, 5, 6) self._context_dim = 2 def gln_factory(): return bernoulli.GatedLinearNetwork( output_sizes=self._output_sizes, context_dim=self._context_dim, name=self._name) def inference_fn(inputs, side_info): return gln_factory().inference(inputs, side_info) def batch_inference_fn(inputs, side_info): return jax.vmap(inference_fn, in_axes=(0, 0))(inputs, side_info) def update_fn(inputs, side_info, label, learning_rate): params, predictions, unused_loss = gln_factory().update( inputs, side_info, label, learning_rate) return predictions, params def batch_update_fn(inputs, side_info, label, learning_rate): predictions, params = jax.vmap( update_fn, in_axes=(0, 0, 0, None))(inputs, side_info, label, learning_rate) avg_params = tree.map_structure(lambda x: jnp.mean(x, axis=0), params) return predictions, avg_params # Haiku transform functions. self._init_fn, inference_fn_ = hk.without_apply_rng( hk.transform_with_state(inference_fn)) self._batch_init_fn, batch_inference_fn_ = hk.without_apply_rng( hk.transform_with_state(batch_inference_fn)) _, update_fn_ = hk.without_apply_rng(hk.transform_with_state(update_fn)) _, batch_update_fn_ = hk.without_apply_rng( hk.transform_with_state(batch_update_fn)) self._inference_fn = jax.jit(inference_fn_) self._batch_inference_fn = jax.jit(batch_inference_fn_) self._update_fn = jax.jit(update_fn_) self._batch_update_fn = jax.jit(batch_update_fn_) @parameterized.named_parameters(("Online mode", None), ("Batch mode", 3)) def test_shapes(self, batch_size): """Test shapes in online and batch regimes.""" if batch_size is None: init_fn = self._init_fn inference_fn = self._inference_fn else: init_fn = self._batch_init_fn inference_fn = self._batch_inference_fn input_size = 10 inputs, side_info, _ = _get_dataset(input_size, batch_size) input_size = inputs.shape[-1] # Initialize network. gln_params, gln_state = init_fn(next(self._rng), inputs, side_info) # Test shapes of parameters layer-wise. layer_input_size = input_size for layer_idx, output_size in enumerate(self._output_sizes): name = "{}/~/{}_layer_{}".format(self._name, self._name, layer_idx) weights = gln_params[name]["weights"] expected_shape = (output_size, 2**self._context_dim, layer_input_size + 1) self.assertEqual(weights.shape, expected_shape) layer_input_size = output_size # Test shape of output. output_size = sum(self._output_sizes) predictions, _ = inference_fn(gln_params, gln_state, inputs, side_info) expected_shape = (batch_size, output_size) if batch_size else (output_size,) self.assertEqual(predictions.shape, expected_shape) @parameterized.named_parameters(("Online mode", None), ("Batch mode", 3)) def test_update(self, batch_size): """Test network updates in online and batch regimes.""" if batch_size is None: init_fn = self._init_fn inference_fn = self._inference_fn update_fn = self._update_fn else: init_fn = self._batch_init_fn inference_fn = self._batch_inference_fn update_fn = self._batch_update_fn input_size = 10 inputs, side_info, targets = _get_dataset(input_size, batch_size) # Initialize network. initial_params, gln_state = init_fn(next(self._rng), inputs, side_info) # Initial predictions. initial_predictions, _ = inference_fn(initial_params, gln_state, inputs, side_info) # Test that params remain valid after consecutive updates. gln_params = initial_params for _ in range(3): (_, gln_params), gln_state = update_fn( gln_params, gln_state, inputs, side_info, targets, learning_rate=1e-4) # Check updated weights layer-wise. for layer_idx in range(len(self._output_sizes)): name = "{}/~/{}_layer_{}".format(self._name, self._name, layer_idx) initial_weights = initial_params[name]["weights"] new_weights = gln_params[name]["weights"] # Shape consistency. self.assertEqual(new_weights.shape, initial_weights.shape) # Check that different weights yield different predictions. new_predictions, _ = inference_fn(gln_params, gln_state, inputs, side_info) self.assertFalse(np.array_equal(new_predictions, initial_predictions)) def test_batch_consistency(self): """Test consistency between online and batch updates.""" input_size = 10 batch_size = 3 inputs, side_info, targets = _get_dataset(input_size, batch_size) # Initialize network. gln_params, gln_state = self._batch_init_fn( next(self._rng), inputs, side_info) test_layer = "{}/~/{}_layer_0".format(self._name, self._name) for _ in range(10): # Update on full batch. (expected_predictions, expected_params), _ = self._batch_update_fn( gln_params, gln_state, inputs, side_info, targets, learning_rate=1e-3) # Average updates across batch and check equivalence. accum_predictions = [] accum_weights = [] for inputs_, side_info_, targets_ in zip(inputs, side_info, targets): (predictions, params), _ = self._update_fn( gln_params, gln_state, inputs_, side_info_, targets_, learning_rate=1e-3) accum_predictions.append(predictions) accum_weights.append(params[test_layer]["weights"]) # Check prediction equivalence. actual_predictions = np.stack(accum_predictions, axis=0) np.testing.assert_array_almost_equal(actual_predictions, expected_predictions) # Check weight equivalence. actual_weights = np.mean(np.stack(accum_weights, axis=0), axis=0) expected_weights = expected_params[test_layer]["weights"] np.testing.assert_array_almost_equal(actual_weights, expected_weights) gln_params = expected_params if __name__ == "__main__": absltest.main() ================================================ FILE: gated_linear_networks/colabs/README.md ================================================ # Colabs ## Dendritic Gated Networks `dendritic_gated_network.ipynb` implements a Dendritic Gated Network (DGN) solving a regression (using quadratic loss) or a binary classification problem (using Bernoulli log loss). See our paper titled ["A rapid and efficient learning rule for biological neural circuits"](https://www.biorxiv.org/content/10.1101/2021.03.10.434756v1) for details of the DGN model. ### Instructions for running the `dendritic_gated_network.ipynb` colab/notebook. We suggest running the [dendritic_gated_network.ipynb](https://github.com/deepmind/deepmind-research/blob/master/gated_linear_networks/colabs/dendritic_gated_network.ipynb) notebook using Google Colaboratory (or Colab). All the dependencies are included by default in Colab cloud runtimes (last tested on the 8th of March, 2021). See https://research.google.com/colaboratory/faq.html for web browser requirements. The notebook runs for about a minute using the free tier runtimes. The code also runs in JupyterLab/JupyterNotebook (tested on Version 1.02). 1. Visit https://colab.research.google.com/ 2. Sign in with your Google account. 3. Click on "File" and select "Open notebook". 4. Then you can * either open the notebook directly from GitHub: * Click on the GitHub tab * Paste https://github.com/deepmind/deepmind-research/blob/master/gated_linear_networks/colabs/dendritic_gated_network.ipynb into the URL section and click the search button. If the notebook does not open automatically, then select the correct notebook from the list provided. * or upload the provided notebook manually: * Click on the Upload tab * Choose or drag dendritic_gated_network.ipynb 5. Click Connect (top right corner) to connect to a run time 6. Click on the "Runtime" tab and select "Run all" to run all the cells. ### Expected outputs We provide the expected outputs below. Classification (do_classification = True): ``` epoch: 0, test loss: 0.693 (train: 0.693), test accuracy: 0.412 (train: 0.363) epoch: 1, test loss: 0.099 (train: 0.196), test accuracy: 0.974 (train: 0.963) epoch: 2, test loss: 0.095 (train: 0.079), test accuracy: 0.974 (train: 0.978) epoch: 3, test loss: 0.099 (train: 0.070), test accuracy: 0.974 (train: 0.982) ``` Regression (do_classification = False): ``` epoch: 0, test loss: 0.419 (train: 0.500) epoch: 1, test loss: 0.388 (train: 0.486) epoch: 2, test loss: 0.354 (train: 0.439) epoch: 3, test loss: 0.328 (train: 0.400) epoch: 4, test loss: 0.310 (train: 0.369) epoch: 5, test loss: 0.297 (train: 0.344) epoch: 6, test loss: 0.287 (train: 0.324) epoch: 7, test loss: 0.281 (train: 0.308) epoch: 8, test loss: 0.277 (train: 0.296) epoch: 9, test loss: 0.275 (train: 0.285) epoch: 10, test loss: 0.273 (train: 0.277) ``` ================================================ FILE: gated_linear_networks/colabs/dendritic_gated_network.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "s54x-Gq4AiYb" }, "source": [ "## Simple Dendritic Gated Networks in numpy\n", "\n", "This colab implements a Dendritic Gated Network (DGN) solving a regression (using quadratic loss) or a binary classification problem (using Bernoulli log loss).\n", "\n", "See our paper titled [\"A rapid and efficient learning rule for biological neural circuits\"](https://www.biorxiv.org/content/10.1101/2021.03.10.434756v1) for details of the DGN model.\n", "\n", "\n", "Some implementation details:\n", "- We utilize `sklearn.datasets.load_breast_cancer` for binary classification and `sklearn.datasets.load_diabetes` for regression.\n", "- This code is meant for educational purposes only. It is not optimized for high-performance, both in terms of computational efficiency and quality of fit.\n", "- Network is trained on 80% of the dataset and tested on the rest. For classification, we report log loss (negative log likelihood) and accuracy (percentage of correctly identified labels). For regression, we report MSE expressed in units of target variance." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "jhiajfn0EAxE" }, "outputs": [], "source": [ "# Copyright 2021 DeepMind Technologies Limited. All rights reserved.\n", "#\n", "#\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "nm-F_uZA0_T2" }, "outputs": [], "source": [ "import numpy as np\n", "from sklearn import datasets\n", "from sklearn import preprocessing\n", "from sklearn import model_selection\n", "from typing import List, Optional" ] }, { "cell_type": "markdown", "metadata": { "id": "LOoiBATk1AgQ" }, "source": [ "## Choose classification or regression" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "FCjzwzwh0ycl" }, "outputs": [], "source": [ "do_classification = True # if False, does regression" ] }, { "cell_type": "markdown", "metadata": { "id": "TA5VmSeV-GTc" }, "source": [ "### Load dataset" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qnzNZrzNk3Pl" }, "outputs": [], "source": [ "if do_classification:\n", " features, targets = datasets.load_breast_cancer(return_X_y=True)\n", "else:\n", " features, targets = datasets.load_diabetes(return_X_y=True)\n", "\n", "x_train, x_test, y_train, y_test = model_selection.train_test_split(\n", " features, targets, test_size=0.2, random_state=0)\n", "n_features = x_train.shape[-1]\n", "\n", "# Input features are centered and scaled to unit variance:\n", "feature_encoder = preprocessing.StandardScaler()\n", "x_train = feature_encoder.fit_transform(x_train)\n", "x_test = feature_encoder.transform(x_test)\n", "\n", "if not do_classification:\n", " # Continuous targets are centered and scaled to unit variance:\n", " target_encoder = preprocessing.StandardScaler()\n", " y_train = np.squeeze(target_encoder.fit_transform(y_train[:, np.newaxis]))\n", " y_test = np.squeeze(target_encoder.transform(y_test[:, np.newaxis]))" ] }, { "cell_type": "markdown", "metadata": { "id": "LTQxvDcok86S" }, "source": [ "## DGN inference/update" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "F6Yt_tw0lmf1" }, "outputs": [], "source": [ "def step_square_loss(inputs: np.ndarray,\n", " weights: List[np.ndarray],\n", " hyperplanes: List[np.ndarray],\n", " hyperplane_bias_magnitude: Optional[float] = 1.,\n", " learning_rate: Optional[float] = 1e-5,\n", " target: Optional[float] = None,\n", " update: bool = False,\n", " ):\n", " \"\"\"Implements a DGN inference/update using square loss.\"\"\"\n", " r_in = inputs\n", " side_info = np.hstack([hyperplane_bias_magnitude, inputs])\n", "\n", " for w, h in zip(weights, hyperplanes): # loop over layers\n", " r_in = np.hstack([1., r_in]) # add biases\n", " gate_values = np.heaviside(h.dot(side_info), 0).astype(bool)\n", " effective_weights = gate_values.dot(w).sum(axis=1)\n", " r_out = effective_weights.dot(r_in)\n", "\n", " if update:\n", " grad = (r_out[:, None] - target) * r_in[None]\n", " w -= learning_rate * gate_values[:, :, None] * grad[:, None]\n", "\n", " r_in = r_out\n", " loss = (target - r_out)**2 / 2\n", " return r_out, loss\n", "\n", "def sigmoid(x): # numerically stable sigmoid\n", " return np.exp(-np.logaddexp(0, -x))\n", "\n", "def inverse_sigmoid(x):\n", " return np.log(x/(1-x))\n", "\n", "def step_bernoulli(inputs: np.ndarray,\n", " weights: List[np.ndarray],\n", " hyperplanes: List[np.ndarray],\n", " hyperplane_bias_magnitude: Optional[float] = 1.,\n", " learning_rate: Optional[float] = 1e-5,\n", " epsilon: float = 0.01,\n", " target: Optional[float] = None,\n", " update: bool = False,\n", " ):\n", " \"\"\"Implements a DGN inference/update using Bernoulli log loss.\"\"\"\n", " r_in = np.clip(sigmoid(inputs), epsilon, 1-epsilon)\n", " side_info = np.hstack([hyperplane_bias_magnitude, inputs])\n", "\n", " for w, h in zip(weights, hyperplanes): # loop over layers\n", " r_in = np.hstack([sigmoid(1.), r_in]) # add biases\n", " h_in = inverse_sigmoid(r_in)\n", " gate_values = np.heaviside(h.dot(side_info), 0).astype(bool)\n", " effective_weights = gate_values.dot(w).sum(axis=1)\n", " h_out = effective_weights.dot(h_in)\n", " r_out_unclipped = sigmoid(h_out)\n", " r_out = np.clip(r_out_unclipped, epsilon, 1 - epsilon)\n", " if update:\n", " update_indicator = np.abs(target - r_out_unclipped) \u003e epsilon\n", " grad = (r_out[:, None] - target) * h_in[None] * update_indicator[:, None]\n", " w -= learning_rate * gate_values[:, :, None] * grad[:, None]\n", " r_in = r_out\n", " loss = - (target * np.log(r_out) + (1 - target) * np.log(1 - r_out))\n", " return r_out, loss" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0B7wSn3Azcfb" }, "outputs": [], "source": [ "def forward_pass(step_fn, x, y, weights, hyperplanes, learning_rate, update):\n", " losses, outputs = np.zeros(len(y)), np.zeros(len(y))\n", " for i, (x_i, y_i) in enumerate(zip(x, y)):\n", " outputs[i], losses[i] = step_fn(x_i, weights, hyperplanes, target=y_i,\n", " learning_rate=learning_rate, update=update)\n", " return np.mean(losses), outputs" ] }, { "cell_type": "markdown", "metadata": { "id": "41aHT8G0lsuu" }, "source": [ "## Define architecture\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "WSbPuwzFvV2N" }, "outputs": [], "source": [ "# number of neurons per layer, the last element must be 1\n", "n_neurons = np.array([100, 10, 1])\n", "n_branches = 20 # number of dendritic brancher per neuron" ] }, { "cell_type": "markdown", "metadata": { "id": "gTk1YDXV-xoD" }, "source": [ "## Initialise weights and gating parameters" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Uek-2I5IlyN3" }, "outputs": [], "source": [ "n_inputs = np.hstack([n_features + 1, n_neurons[:-1] + 1]) # 1 for the bias\n", "dgn_weights = [np.zeros((n_neuron, n_branches, n_input))\n", " for n_neuron, n_input in zip(n_neurons, n_inputs)]\n", "\n", "# Fixing random seed for reproducibility:\n", "np.random.seed(12345)\n", "dgn_hyperplanes = [\n", " np.random.normal(0, 1, size=(n_neuron, n_branches, n_features + 1))\n", " for n_neuron in n_neurons]\n", "# By default, the weight parameters are drawn from a normalised Gaussian:\n", "dgn_hyperplanes = [\n", " h_ / np.linalg.norm(h_[:, :, :-1], axis=(1, 2))[:, None, None]\n", " for h_ in dgn_hyperplanes]" ] }, { "cell_type": "markdown", "metadata": { "id": "Dy1XUdaSm0ID" }, "source": [ "## Train" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "wublBSqiucQ-" }, "outputs": [], "source": [ "if do_classification:\n", " eta = 1e-4\n", " n_epochs = 3\n", " step = step_bernoulli\n", "else:\n", " eta = 1e-5\n", " n_epochs = 10\n", " step = step_square_loss\n", "\n", "if do_classification:\n", " step = step_bernoulli\n", "else:\n", " step = step_square_loss\n", "\n", "print('Training on {} problem for {} epochs with learning rate {}.'.format(\n", " ['regression', 'classification'][do_classification], n_epochs, eta))\n", "print('This may take a minute. Please be patient...')\n", "\n", "for epoch in range(0, n_epochs + 1):\n", " train_loss, train_pred = forward_pass(\n", " step, x_train, y_train, dgn_weights,\n", " dgn_hyperplanes, eta, update=(epoch \u003e 0))\n", "\n", " test_loss, test_pred = forward_pass(\n", " step, x_test, y_test, dgn_weights,\n", " dgn_hyperplanes, eta, update=False)\n", " to_print = 'epoch: {}, test loss: {:.3f} (train: {:.3f})'.format(\n", " epoch, test_loss, train_loss)\n", "\n", " if do_classification:\n", " accuracy_train = np.mean(np.round(train_pred) == y_train)\n", " accuracy = np.mean(np.round(test_pred) == y_test)\n", " to_print += ', test accuracy: {:.3f} (train: {:.3f})'.format(\n", " accuracy, accuracy_train)\n", " print(to_print)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "dendritic_gated_network.ipynb", "private_outputs": true, "provenance": [ { "file_id": "1lzQUssVJpeziFs1fdBHueD7DqNp6lkVK", "timestamp": 1614705435731 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: gated_linear_networks/examples/bernoulli_mnist.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Online MNIST classification example with Bernoulli GLN.""" from absl import app from absl import flags import haiku as hk import jax import jax.numpy as jnp import rlax from gated_linear_networks import bernoulli from gated_linear_networks.examples import utils MAX_TRAIN_STEPS = flags.DEFINE_integer( name='max_train_steps', default=None, help='Maximum number of training steps to perform (None=no limit)', ) # Small example network, achieves ~95% test set accuracy ======================= # Network parameters. NUM_LAYERS = flags.DEFINE_integer( name='num_layers', default=2, help='Number of network layers', ) NEURONS_PER_LAYER = flags.DEFINE_integer( name='neurons_per_layer', default=100, help='Number of neurons per layer', ) CONTEXT_DIM = flags.DEFINE_integer( name='context_dim', default=1, help='Context vector size', ) # Learning rate schedule. MAX_LR = flags.DEFINE_float( name='max_lr', default=0.003, help='Maximum learning rate', ) LR_CONSTANT = flags.DEFINE_float( name='lr_constant', default=1.0, help='Learning rate constant parameter', ) LR_DECAY = flags.DEFINE_float( name='lr_decay', default=0.1, help='Learning rate decay parameter', ) # Logging parameters. EVALUATE_EVERY = flags.DEFINE_integer( name='evaluate_every', default=1000, help='Number of training steps per evaluation epoch', ) def main(unused_argv): # Load MNIST dataset ========================================================= mnist_data, info = utils.load_deskewed_mnist( name='mnist', batch_size=-1, with_info=True) num_classes = info.features['label'].num_classes (train_images, train_labels) = (mnist_data['train']['image'], mnist_data['train']['label']) (test_images, test_labels) = (mnist_data['test']['image'], mnist_data['test']['label']) # Build a (binary) GLN classifier ============================================ def network_factory(): def gln_factory(): output_sizes = [NEURONS_PER_LAYER.value] * NUM_LAYERS.value + [1] return bernoulli.GatedLinearNetwork( output_sizes=output_sizes, context_dim=CONTEXT_DIM.value) return bernoulli.LastNeuronAggregator(gln_factory) def extract_features(image): mean, stddev = utils.MeanStdEstimator()(image) standardized_img = (image - mean) / (stddev + 1.) inputs = rlax.sigmoid(standardized_img) side_info = standardized_img return inputs, side_info def inference_fn(image, *args, **kwargs): inputs, side_info = extract_features(image) return network_factory().inference(inputs, side_info, *args, **kwargs) def update_fn(image, *args, **kwargs): inputs, side_info = extract_features(image) return network_factory().update(inputs, side_info, *args, **kwargs) init_, inference_ = hk.without_apply_rng( hk.transform_with_state(inference_fn)) _, update_ = hk.without_apply_rng(hk.transform_with_state(update_fn)) # Map along class dimension to create a one-vs-all classifier ================ @jax.jit def init(dummy_image, key): """One-vs-all classifier init fn.""" dummy_images = jnp.stack([dummy_image] * num_classes, axis=0) keys = jax.random.split(key, num_classes) return jax.vmap(init_, in_axes=(0, 0))(keys, dummy_images) @jax.jit def accuracy(params, state, image, label): """One-vs-all classifier inference fn.""" fn = jax.vmap(inference_, in_axes=(0, 0, None)) predictions, unused_state = fn(params, state, image) return (jnp.argmax(predictions) == label).astype(jnp.float32) @jax.jit def update(params, state, step, image, label): """One-vs-all classifier update fn.""" # Learning rate schedules. learning_rate = jnp.minimum( MAX_LR.value, LR_CONSTANT.value / (1. + LR_DECAY.value * step)) # Update weights and report log-loss. targets = hk.one_hot(jnp.asarray(label), num_classes) fn = jax.vmap(update_, in_axes=(0, 0, None, 0, None)) out = fn(params, state, image, targets, learning_rate) (params, unused_predictions, log_loss), state = out return (jnp.mean(log_loss), params), state # Train on train split ======================================================= dummy_image = train_images[0] params, state = init(dummy_image, jax.random.PRNGKey(42)) for step, (image, label) in enumerate(zip(train_images, train_labels), 1): (unused_loss, params), state = update( params, state, step, image, label, ) # Evaluate on test split =================================================== if not step % EVALUATE_EVERY.value: batch_accuracy = jax.vmap(accuracy, in_axes=(None, None, 0, 0)) accuracies = batch_accuracy(params, state, test_images, test_labels) total_accuracy = float(jnp.mean(accuracies)) # Report statistics. print({ 'step': step, 'accuracy': float(total_accuracy), }) if MAX_TRAIN_STEPS.value is not None and step >= MAX_TRAIN_STEPS.value: return if __name__ == '__main__': app.run(main) ================================================ FILE: gated_linear_networks/examples/utils.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Haiku modules for feature processing.""" import copy from typing import Tuple import chex import haiku as hk import jax import jax.numpy as jnp import numpy as np from scipy.ndimage import interpolation import tensorflow_datasets as tfds Array = chex.Array def _moments(image): """Compute the first and second moments of a given image.""" c0, c1 = np.mgrid[:image.shape[0], :image.shape[1]] total_image = np.sum(image) m0 = np.sum(c0 * image) / total_image m1 = np.sum(c1 * image) / total_image m00 = np.sum((c0 - m0)**2 * image) / total_image m11 = np.sum((c1 - m1)**2 * image) / total_image m01 = np.sum((c0 - m0) * (c1 - m1) * image) / total_image mu_vector = np.array([m0, m1]) covariance_matrix = np.array([[m00, m01], [m01, m11]]) return mu_vector, covariance_matrix def _deskew(image): """Image deskew.""" c, v = _moments(image) alpha = v[0, 1] / v[0, 0] affine = np.array([[1, 0], [alpha, 1]]) ocenter = np.array(image.shape) / 2.0 offset = c - np.dot(affine, ocenter) return interpolation.affine_transform(image, affine, offset=offset) def _deskew_dataset(dataset): """Dataset deskew.""" deskewed = copy.deepcopy(dataset) for k, before in dataset.items(): images = before["image"] num_images = images.shape[0] after = np.stack([_deskew(i) for i in np.squeeze(images, axis=-1)], axis=0) deskewed[k]["image"] = np.reshape(after, (num_images, -1)) return deskewed def load_deskewed_mnist(*a, **k): """Returns deskewed MNIST numpy dataset.""" mnist_data, info = tfds.load(*a, **k) mnist_data = tfds.as_numpy(mnist_data) deskewed_data = _deskew_dataset(mnist_data) return deskewed_data, info class MeanStdEstimator(hk.Module): """Online mean and standard deviation estimator using Welford's algorithm.""" def __call__(self, sample: jax.Array) -> Tuple[Array, Array]: if len(sample.shape) > 1: raise ValueError("sample must be a rank 0 or 1 DeviceArray.") count = hk.get_state("count", shape=(), dtype=jnp.int32, init=jnp.zeros) mean = hk.get_state( "mean", shape=sample.shape, dtype=jnp.float32, init=jnp.zeros) m2 = hk.get_state( "m2", shape=sample.shape, dtype=jnp.float32, init=jnp.zeros) count += 1 delta = sample - mean mean += delta / count delta_2 = sample - mean m2 += delta * delta_2 hk.set_state("count", count) hk.set_state("mean", mean) hk.set_state("m2", m2) stddev = jnp.sqrt(m2 / count) return mean, stddev ================================================ FILE: gated_linear_networks/examples/utils_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for `utils.py`.""" from absl.testing import absltest import haiku as hk import jax import numpy as np from gated_linear_networks.examples import utils class MeanStdEstimator(absltest.TestCase): def test_statistics(self): num_features = 100 feature_size = 3 samples = np.random.normal( loc=5., scale=2., size=(num_features, feature_size)) true_mean = np.mean(samples, axis=0) true_std = np.std(samples, axis=0) def tick_(sample): return utils.MeanStdEstimator()(sample) init_fn, apply_fn = hk.without_apply_rng(hk.transform_with_state(tick_)) tick = jax.jit(apply_fn) params, state = init_fn(rng=None, sample=samples[0]) for sample in samples: (mean, std), state = tick(params, state, sample) np.testing.assert_array_almost_equal(mean, true_mean, decimal=5) np.testing.assert_array_almost_equal(std, true_std, decimal=5) if __name__ == '__main__': absltest.main() ================================================ FILE: gated_linear_networks/gaussian.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Gaussian Gated Linear Network.""" from typing import Callable, List, Text, Tuple import chex import jax import jax.numpy as jnp import tensorflow_probability as tfp from gated_linear_networks import base tfp = tfp.experimental.substrates.jax tfd = tfp.distributions Array = chex.Array MIN_SIGMA_SQ_AGGREGATOR = 0.5 MAX_SIGMA_SQ = 1e5 MAX_WEIGHT = 1e3 MIN_WEIGHT = -1e3 def _unpack_inputs(inputs: Array) -> Tuple[Array, Array]: inputs = jnp.atleast_2d(inputs) chex.assert_rank(inputs, 2) (mu, sigma_sq) = [jnp.squeeze(x, 1) for x in jnp.hsplit(inputs, 2)] return mu, sigma_sq def _pack_inputs(mu: Array, sigma_sq: Array) -> Array: mu = jnp.atleast_1d(mu) sigma_sq = jnp.atleast_1d(sigma_sq) chex.assert_rank([mu, sigma_sq], 1) return jnp.vstack([mu, sigma_sq]).T class GatedLinearNetwork(base.GatedLinearNetwork): """Gaussian Gated Linear Network.""" def __init__( self, output_sizes: List[int], context_dim: int, bias_len: int = 3, bias_max_mu: float = 1., bias_sigma_sq: float = 1., name: Text = "gaussian_gln"): """Initialize a Gaussian GLN.""" super(GatedLinearNetwork, self).__init__( output_sizes, context_dim, inference_fn=GatedLinearNetwork._inference_fn, update_fn=GatedLinearNetwork._update_fn, init=base.ShapeScaledConstant(), dtype=jnp.float64, name=name) self._bias_len = bias_len self._bias_max_mu = bias_max_mu self._bias_sigma_sq = bias_sigma_sq def _add_bias(self, inputs): mu = jnp.linspace(-1. * self._bias_max_mu, self._bias_max_mu, self._bias_len) sigma_sq = self._bias_sigma_sq * jnp.ones_like(mu) bias = _pack_inputs(mu, sigma_sq) return jnp.concatenate([inputs, bias], axis=0) @staticmethod def _inference_fn( inputs: Array, # [input_size, 2] side_info: Array, # [side_info_size] weights: Array, # [2**context_dim, input_size] hyperplanes: Array, # [context_dim, side_info_size] hyperplane_bias: Array, # [context_dim] min_sigma_sq: float, ) -> Array: """Inference step for a single Gaussian neuron.""" mu_in, sigma_sq_in = _unpack_inputs(inputs) weight_index = GatedLinearNetwork._compute_context(side_info, hyperplanes, hyperplane_bias) used_weights = weights[weight_index] # This projection operation is differentiable and affects the gradients. used_weights = GatedLinearNetwork._project_weights(inputs, used_weights, min_sigma_sq) sigma_sq_out = 1. / jnp.sum(used_weights / sigma_sq_in) mu_out = sigma_sq_out * jnp.sum((used_weights * mu_in) / sigma_sq_in) prediction = jnp.hstack((mu_out, sigma_sq_out)) return prediction @staticmethod def _project_weights(inputs: Array, # [input_size] weights: Array, # [2**context_dim, num_features] min_sigma_sq: float) -> Array: """Implements hard projection.""" # This projection should be performed before the sigma related ones. weights = jnp.minimum(jnp.maximum(MIN_WEIGHT, weights), MAX_WEIGHT) _, sigma_sq_in = _unpack_inputs(inputs) lambda_in = 1. / sigma_sq_in sigma_sq_out = 1. / weights.dot(lambda_in) # If w.dot(x) < U, linearly project w such that w.dot(x) = U. weights = jnp.where( sigma_sq_out < min_sigma_sq, weights - lambda_in * (1. / sigma_sq_out - 1. / min_sigma_sq) / jnp.sum(lambda_in**2), weights) # If w.dot(x) > U, linearly project w such that w.dot(x) = U. weights = jnp.where( sigma_sq_out > MAX_SIGMA_SQ, weights - lambda_in * (1. / sigma_sq_out - 1. / MAX_SIGMA_SQ) / jnp.sum(lambda_in**2), weights) return weights @staticmethod def _update_fn( inputs: Array, # [input_size] side_info: Array, # [side_info_size] weights: Array, # [2**context_dim, num_features] hyperplanes: Array, # [context_dim, side_info_size] hyperplane_bias: Array, # [context_dim] target: Array, # [] learning_rate: float, min_sigma_sq: float, # needed for inference (weight projection) ) -> Tuple[Array, Array, Array]: """Update step for a single Gaussian neuron.""" def log_loss_fn(inputs, side_info, weights, hyperplanes, hyperplane_bias, target): """Log loss for a single Gaussian neuron.""" prediction = GatedLinearNetwork._inference_fn(inputs, side_info, weights, hyperplanes, hyperplane_bias, min_sigma_sq) mu, sigma_sq = prediction.T loss = -tfd.Normal(mu, jnp.sqrt(sigma_sq)).log_prob(target) return loss, prediction grad_log_loss = jax.value_and_grad(log_loss_fn, argnums=2, has_aux=True) (log_loss, prediction), dloss_dweights = grad_log_loss(inputs, side_info, weights, hyperplanes, hyperplane_bias, target) delta_weights = learning_rate * dloss_dweights return weights - delta_weights, prediction, log_loss class ConstantInputSigma(base.Mutator): """Input pre-processing by concatenating a constant sigma^2.""" def __init__( self, network_factory: Callable[..., GatedLinearNetwork], input_sigma_sq: float, name: Text = "constant_input_sigma", ): super(ConstantInputSigma, self).__init__(network_factory, name) self._input_sigma_sq = input_sigma_sq def inference(self, inputs, *args, **kwargs): """ConstantInputSigma inference.""" chex.assert_rank(inputs, 1) sigma_sq = self._input_sigma_sq * jnp.ones_like(inputs) return self._network.inference(_pack_inputs(inputs, sigma_sq), *args, **kwargs) def update(self, inputs, *args, **kwargs): """ConstantInputSigma update.""" chex.assert_rank(inputs, 1) sigma_sq = self._input_sigma_sq * jnp.ones_like(inputs) return self._network.update(_pack_inputs(inputs, sigma_sq), *args, **kwargs) class LastNeuronAggregator(base.LastNeuronAggregator): """Gaussian last neuron aggregator, implemented by the super class.""" pass ================================================ FILE: gated_linear_networks/gaussian_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for `gaussian.py`.""" from absl.testing import absltest from absl.testing import parameterized import haiku as hk import jax import jax.numpy as jnp import numpy as np import tree from gated_linear_networks import gaussian def _get_dataset(input_size, batch_size=None): """Get mock dataset.""" if batch_size: inputs = jnp.ones([batch_size, input_size, 2]) side_info = jnp.ones([batch_size, input_size]) targets = 0.8 * jnp.ones([batch_size]) else: inputs = jnp.ones([input_size, 2]) side_info = jnp.ones([input_size]) targets = jnp.ones([]) return inputs, side_info, targets class UtilsTest(absltest.TestCase): def test_packing_identity(self): mu = jnp.array([1., 2., 3., 4., 5.]) sigma_sq = jnp.array([6., 7., 8., 9., 10.]) mu_2, sigma_sq_2 = gaussian._unpack_inputs( gaussian._pack_inputs(mu, sigma_sq)) np.testing.assert_array_equal(mu, mu_2) np.testing.assert_array_equal(sigma_sq, sigma_sq_2) class GatedLinearNetworkTest(parameterized.TestCase): # TODO(b/170843789): Factor out common test utilities. def setUp(self): super(GatedLinearNetworkTest, self).setUp() self._name = "test_network" self._rng = hk.PRNGSequence(jax.random.PRNGKey(42)) self._output_sizes = (4, 5, 6) self._context_dim = 2 self._bias_len = 3 def gln_factory(): return gaussian.GatedLinearNetwork( output_sizes=self._output_sizes, context_dim=self._context_dim, bias_len=self._bias_len, name=self._name, ) def inference_fn(inputs, side_info): return gln_factory().inference(inputs, side_info, 0.5) def batch_inference_fn(inputs, side_info): return jax.vmap(inference_fn, in_axes=(0, 0))(inputs, side_info) def update_fn(inputs, side_info, label, learning_rate): params, predictions, unused_loss = gln_factory().update( inputs, side_info, label, learning_rate, 0.5) return predictions, params def batch_update_fn(inputs, side_info, label, learning_rate): predictions, params = jax.vmap( update_fn, in_axes=(0, 0, 0, None))( inputs, side_info, label, learning_rate) avg_params = tree.map_structure(lambda x: jnp.mean(x, axis=0), params) return predictions, avg_params # Haiku transform functions. self._init_fn, inference_fn_ = hk.without_apply_rng( hk.transform_with_state(inference_fn)) self._batch_init_fn, batch_inference_fn_ = hk.without_apply_rng( hk.transform_with_state(batch_inference_fn)) _, update_fn_ = hk.without_apply_rng(hk.transform_with_state(update_fn)) _, batch_update_fn_ = hk.without_apply_rng( hk.transform_with_state(batch_update_fn)) self._inference_fn = jax.jit(inference_fn_) self._batch_inference_fn = jax.jit(batch_inference_fn_) self._update_fn = jax.jit(update_fn_) self._batch_update_fn = jax.jit(batch_update_fn_) @parameterized.named_parameters(("Online mode", None), ("Batch mode", 3)) def test_shapes(self, batch_size): """Test shapes in online and batch regimes.""" if batch_size is None: init_fn = self._init_fn inference_fn = self._inference_fn else: init_fn = self._batch_init_fn inference_fn = self._batch_inference_fn input_size = 10 inputs, side_info, _ = _get_dataset(input_size, batch_size) # Initialize network. gln_params, gln_state = init_fn(next(self._rng), inputs, side_info) # Test shapes of parameters layer-wise. layer_input_size = input_size for layer_idx, output_size in enumerate(self._output_sizes): name = "{}/~/{}_layer_{}".format(self._name, self._name, layer_idx) weights = gln_params[name]["weights"] expected_shape = (output_size, 2**self._context_dim, layer_input_size + self._bias_len) self.assertEqual(weights.shape, expected_shape) layer_input_size = output_size # Test shape of output. output_size = sum(self._output_sizes) predictions, _ = inference_fn(gln_params, gln_state, inputs, side_info) expected_shape = (batch_size, output_size, 2) if batch_size else (output_size, 2) self.assertEqual(predictions.shape, expected_shape) @parameterized.named_parameters(("Online mode", None), ("Batch mode", 3)) def test_update(self, batch_size): """Test network updates in online and batch regimes.""" if batch_size is None: init_fn = self._init_fn inference_fn = self._inference_fn update_fn = self._update_fn else: init_fn = self._batch_init_fn inference_fn = self._batch_inference_fn update_fn = self._batch_update_fn inputs, side_info, targets = _get_dataset(10, batch_size) # Initialize network. initial_params, gln_state = init_fn(next(self._rng), inputs, side_info) # Initial predictions. initial_predictions, _ = inference_fn(initial_params, gln_state, inputs, side_info) # Test that params remain valid after consecutive updates. gln_params = initial_params for _ in range(3): (_, gln_params), _ = update_fn( gln_params, gln_state, inputs, side_info, targets, learning_rate=1e-4) # Check updated weights layer-wise. for layer_idx in range(len(self._output_sizes)): name = "{}/~/{}_layer_{}".format(self._name, self._name, layer_idx) initial_weights = initial_params[name]["weights"] new_weights = gln_params[name]["weights"] # Shape consistency. self.assertEqual(new_weights.shape, initial_weights.shape) # Check that different weights yield different predictions. new_predictions, _ = inference_fn(gln_params, gln_state, inputs, side_info) self.assertFalse(np.array_equal(new_predictions, initial_predictions)) def test_batch_consistency(self): """Test consistency between online and batch updates.""" batch_size = 3 inputs, side_info, targets = _get_dataset(10, batch_size) # Initialize network. gln_params, gln_state = self._batch_init_fn( next(self._rng), inputs, side_info) test_layer = "{}/~/{}_layer_0".format(self._name, self._name) for _ in range(10): # Update on full batch. (expected_predictions, expected_params), _ = self._batch_update_fn( gln_params, gln_state, inputs, side_info, targets, learning_rate=1e-3) # Average updates across batch and check equivalence. accum_predictions = [] accum_weights = [] for inputs_, side_info_, targets_ in zip(inputs, side_info, targets): (predictions, params), _ = self._update_fn( gln_params, gln_state, inputs_, side_info_, targets_, learning_rate=1e-3) accum_predictions.append(predictions) accum_weights.append(params[test_layer]["weights"]) # Check prediction equivalence. actual_predictions = np.stack(accum_predictions, axis=0) np.testing.assert_array_almost_equal(actual_predictions, expected_predictions) # Check weight equivalence. actual_weights = np.mean(np.stack(accum_weights, axis=0), axis=0) expected_weights = expected_params[test_layer]["weights"] np.testing.assert_array_almost_equal(actual_weights, expected_weights) gln_params = expected_params if __name__ == "__main__": absltest.main() ================================================ FILE: gated_linear_networks/requirements.txt ================================================ absl-py==0.10.0 aiohttp==3.6.2 astunparse==1.6.3 async-timeout==3.0.1 attrs==20.2.0 cachetools==4.1.1 certifi==2020.6.20 chardet==3.0.4 chex==0.0.2 cloudpickle==1.6.0 decorator==4.4.2 dill==0.3.2 dm-env==1.2 dm-haiku==0.0.2 dm-tree==0.1.5 future==0.18.2 gast==0.3.3 google-auth==1.22.0 google-auth-oauthlib==0.4.1 google-pasta==0.2.0 googleapis-common-protos==1.52.0 grpcio==1.32.0 h5py==2.10.0 idna==2.10 jax==0.2.0 jaxlib==0.1.55 Keras-Preprocessing==1.1.2 Markdown==3.2.2 multidict==4.7.6 numpy==1.18.5 oauthlib==3.1.0 opt-einsum==3.3.0 promise==2.3 protobuf==3.13.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 requests==2.24.0 requests-oauthlib==1.3.0 rlax==0.0.2 rsa==4.6 scipy==1.5.2 six==1.15.0 tensorboard==2.3.0 tensorboard-plugin-wit==1.7.0 tensorflow==2.3.1 tensorflow-datasets==3.2.1 tensorflow-estimator==2.3.0 tensorflow-metadata==0.24.0 tensorflow-probability==0.11.1 termcolor==1.1.0 toolz==0.11.1 tqdm==4.50.0 ================================================ FILE: gated_linear_networks/run.sh ================================================ #!/bin/sh # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e python3 -m venv /tmp/gln_venv source /tmp/gln_venv/bin/activate pip3 install --upgrade pip setuptools wheel pip3 install -r gated_linear_networks/requirements.txt # Run MNIST example with Bernoulli GLN python3 -m gated_linear_networks.examples.bernoulli_mnist \ --num_layers=2 \ --neurons_per_layer=100 \ --context_dim=1 \ --max_train_steps=2000 ================================================ FILE: geomancer/README.md ================================================ # Geometric Manifold Component Estimator (GEOMANCER) This package provides an implementation of the Geometric Manifold Component Estimator, or GEOMANCER, as described in [Disentangling by Subspace Diffusion (2020)](https://arxiv.org/abs/2006.12982), as well as information about the [Stanford 3D Objects for Disentangling (S3O4D) dataset](https://console.cloud.google.com/storage/browser/dm_s3o4d). GEOMANCER is a nonparametric algorithm for disentangling, somewhat similar in spirit to Laplacian Eigenmaps or Vector Diffusion Maps, except instead of producing an embedding for the data, it produces a set of subspaces around each data point, one subspace for each disentangled factor of variation in the data. This differs from more common algorithms for disentangling that originated in the deep learning community, such as the beta-VAE, TCVAE or FactorVAE, which learn a nonlinear embedding and probabilistic generative model of the data. GEOMANCER is intended for data where the individual factors of variation might be more than one dimensional, for instance 3D rotations. At the moment, GEOMANCER works best when some ground truth information about the metric in the data space is available, for instance knowledge of the "true" nearest neighbors around each point, and we do not recommend running GEOMANCER directly on unstructured data from high-dimensional spaces. We are providing the code here to enable the interested researcher to get some hands-on experience with the ideas around differential geometry, holonomy and higher-order graph connection Laplacians we explore in the paper. ## Installation To install the package locally in a new virtual environment run: ```bash python3 -m venv geomancer source geomancer/bin/activate git clone https://github.com/deepmind/deepmind-research.git . cd deepmind-research/geomancer pip install -e . ``` ## Example To run, simply load or generate an array of data, and call the `fit` function: ``` import numpy as np import geomancer # Generate data from a product of two spheres data = [] for i in range(2): foo = np.random.randn(1000, 3) data.append(foo / np.linalg.norm(foo, axis=1, keepdims=True)) data = np.concatenate(data, axis=1) # Run GEOMANCER. The underlying manifold is 4-dimensional. components, spectrum = geomancer.fit(data, 4) ``` If ground truth information about the tangent spaces is available in a space that is aligned with the data, then the performance can be evaluated using the `eval_aligned` function. If ground truth data is only available in an unaligned space, for instance if the embedding used to generate the data is not the same as the space in which the data is observed, then the `eval_unaligned` function can be used, which requires both the data and disentangled tangent vectors in the ground truth space. Examples of both evaluation metrics are given in the demo in `train.py`. ## Demo on Synthetic Manifolds The file `train.py` runs GEOMANCER on a product of manifolds that can be specified by the user. The number of data points to train on is given by the `--npts` flag, while the specification of the manifold is given by the `--specification` flag. The `--rotate` flag specifies whether a random rotation should be applied to the data. If false, `eval_aligned` will be used to evaluate the result. If true, `eval_unaligned` will be used to evaluate the result. For instance, to run on the product of the sphere in 2 and 4 dimensions and the special orthogonal group in 3 dimensions, run: ``` python3 train.py --specification='S^2','S^4','SO(3)' --npts=100000 ``` This passes a list of strings as the manifold specification flag. Note that a manifold this large will require a large amount of data to work and may require hours or days to run. The default example should run in just a few minutes. The demo plots 3 different outputs: 1. The eigenvalue spectrum of the 2nd-order graph Laplacian. This should have a large gap in the spectrum at the eigenvalue equal to the number of submanifolds. 2. The basis vectors for each disentangled subspace around one point. 3. The ground truth basis vectors for the disentangled subspaces at the same point. If `--rotate=False`, and GEOMANCER has sufficient data, each basis matrix should span the same subspace as the results in the second plot. ## Stanford 3D Objects for Disentangling (S3O4D) Stanford 3D Objects for Disentangling The data used in the "Stanford 3D Objects" section of the experimental results is available in [TensorFlow Datasets](https://www.tensorflow.org/datasets/catalog/s3o4d). The data consists of 100,000 renderings each of the Bunny and Dragon objects from the [Stanford 3D Scanning Repository](http://graphics.stanford.edu/data/3Dscanrep/). More objects may be added in the future, but only the Bunny and Dragon are used in the paper. Each object is rendered with a uniformly sampled illumination from a point on the 2-sphere, and a uniformly sampled 3D rotation. The true latent states are provided as NumPy arrays along with the images. The lighting is given as a 3-vector with unit norm, while the rotation is provided both as a quaternion and a 3x3 orthogonal matrix. ### Why another dataset? There are many similarities between S3O4D and existing ML benchmark datasets like [NORB](https://cs.nyu.edu/~ylclab/data/norb-v1.0/), [3D Chairs](https://github.com/mathieuaubry/seeing3Dchairs), [3D Shapes](https://github.com/deepmind/3d-shapes) and many others, which also include renderings of a set of objects under different pose and illumination conditions. However, none of these existing datasets include the *full manifold* of rotations in 3D - most include only a subset of changes to elevation and azimuth. S3O4D images are sampled uniformly and independently from the full space of rotations and illuminations, meaning the dataset contains objects that are upside down and illuminated from behind or underneath. We believe that this makes S3O4D uniquely suited for research on generative models where the latent space has non-trivial topology, as well as for general manifold learning methods where the curvature of the manifold is important. ### Usage To load from TensorFlow Datasets, simply run: ``` import tensorflow_datasets as tfds ds = tfds.load('s3o4d', split='bunny_train', shuffle_files=True) for example in ds.take(1): image, label, illumination, pose_mat, pose_quat = ( example['image'], example['label'], example['illumination'], example['pose_mat'], example['pose_quat']) ``` where the split can be any of `bunny_train`, `dragon_train`, `bunny_test` or `dragon_test`. If you prefer to not have TensorFlow as a dependency for your project, and want to download the data manually, you can find the raw data (as zipped JPEGs and NumPy arrays) on [Google Cloud](https://console.cloud.google.com/storage/browser/dm_s3o4d). To load the data for a given object, unzip `images.zip` into a folder called `images` in the same directory as `latents.npz`, and from inside that directory run: ``` import numpy as np from PIL import Image with open('latents.npz', 'r') as f: data = np.load(f) illumination = data['illumination'] # lighting source position, a 3-vector pose_quat = data['pose_quat'] # object pose (3D rotation as a quaternion) pose_mat = data['pose_mat'] # object pose (3D rotation as a matrix) def get_data(i): """Return data and latent given an index up to 100,000.""" img = np.array(Image.open(f'images/{i:05}.jpg')) # Uses the matrix, not quaternion, representation, # similarly to the experiments in the paper latent = np.concatenate((illumination[i], pose_mat[i].reshape(-1))) return img, latent img, latent = get_data(0) ``` To do the same train/test split as in TensorFlow Datasets, simply use the first 80,000 images for each object as training data and the last 20,000 as test. ## Giving Credit If you use this code or the Stanford 3D Objects for Disentangling data in your work, we ask you to cite this paper: ``` @article{pfau2020disentangling, title={Disentangling by Subspace Diffusion}, author={Pfau, David and Higgins, Irina and Botev, Aleksandar and Racani\`ere, S{\'e}bastian}, journal={Advances in Neural Information Processing Systems (NeurIPS)}, year={2020} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: geomancer/data_writer.py ================================================ # Copyright 2023 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Data writer for Stanford Bunny experiments and other objects.""" # pylint: disable=unused-import import copy import io import os import time from absl import app from absl import flags from absl import logging from dm_control import mujoco import numpy as np _SHARD = flags.DEFINE_integer('shard', 0, 'Shard index') _SIZE = flags.DEFINE_integer('size', 1000, 'Number of images to save to a shard') _OBJECT = flags.DEFINE_string('object', 'dragon', 'Which object to render') _PATH = flags.DEFINE_string('path', '', 'Path to folder with .stl files') render_height = 1024 render_width = 1024 height = 256 width = 256 def get_normal(x): """Get vectors normal to a unit vector.""" _, _, v = np.linalg.svd(x[None, :]) return v[:, 1:] def render(quat, light, mesh='bunny', meshdir='data'): """Script to render an image.""" scale, pos = None, None if mesh == 'bunny': scale = 0.03 pos = -1.0 elif mesh == 'dragon': scale = 0.06 pos = -0.3 simple_world_mjcf_template = """ """ % (render_width, render_height, meshdir, mesh, mesh, scale, scale, scale, mesh, mesh, pos) light /= np.linalg.norm(light) quat /= np.linalg.norm(quat) simple_world_mjcf = simple_world_mjcf_template.format( *(np.concatenate((quat, 5*light, -5*light, -5*light, 5*light)).tolist())) physics = mujoco.Physics.from_xml_string(simple_world_mjcf) data = physics.render(camera_id='main', height=render_height, width=render_width).astype(np.float32) data = data.reshape((width, int(render_width/width), height, int(render_height/height), 3)) return np.mean(np.mean(data, axis=1), axis=2) def get_tangent(quat, light, mesh='bunny', meshdir='data', eps=0.03, use_light=True, use_quat=True): """Render image along with its tangent vectors by finite differences.""" assert use_light or use_quat n = 0 light_tangent = None quat_tangent = None if use_light: light_tangent = get_normal(light) n += 2 if use_quat: quat_tangent = get_normal(quat) n += 3 # a triple-wide pixel buffer try: data = render(quat, light, mesh=mesh, meshdir=meshdir) image_tangent = np.zeros((n, height, width, 3), dtype=np.float32) if use_quat: for i in range(3): perturbed = render(quat + eps * quat_tangent[:, i], light, mesh=mesh, meshdir=meshdir) image_tangent[i] = (perturbed - data).astype(np.float32) / eps if use_light: j = 3 if use_quat else 0 for i in range(2): perturbed = render(quat, light + eps * light_tangent[:, i], mesh=mesh, meshdir=meshdir) image_tangent[i+j] = (perturbed - data) / eps image_tangent -= np.mean(image_tangent, axis=0)[None, ...] latent_tangent = np.block( [[quat_tangent, np.zeros((4, 2), dtype=np.float32)], [np.zeros((3, 3), dtype=np.float32), light_tangent]]) return (np.mean(data, axis=-1), np.mean(image_tangent, axis=-1), latent_tangent) except: # pylint: disable=bare-except logging.info('Failed with latents (quat: %s, light: %s)', quat, light) def main(_): images = np.zeros((_SIZE.value, height, width), dtype=np.float32) latents = np.zeros((_SIZE.value, 7), dtype=np.float32) image_tangents = np.zeros((_SIZE.value, 5, height, width), dtype=np.float32) latent_tangents = np.zeros((_SIZE.value, 7, 5), dtype=np.float32) for i in range(_SIZE.value): light = np.random.randn(3) light /= np.linalg.norm(light) quat = np.random.randn(4) # rotation represented as quaternion quat /= np.linalg.norm(quat) latents[i] = np.concatenate((light, quat)) images[i], image_tangents[i], latent_tangents[i] = ( get_tangent(quat, light, mesh=_OBJECT.value, meshdir=_PATH.value)) logging.info('Rendered image %d of %d', i, _SIZE.value) os.makedirs(os.path.join(_PATH.value, _OBJECT.value), exist_ok=True) with open(os.path.join( _PATH.value, _OBJECT.value, 'shard_%03d.npz' % _SHARD.value), 'wb') as f: io_buffer = io.BytesIO() np.savez(io_buffer, images, latents, image_tangents, latent_tangents) f.write(io_buffer.getvalue()) if __name__ == '__main__': app.run(main) ================================================ FILE: geomancer/geomancer.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Code for the Geometric Manifold Component Estimator (GEOMANCER).""" import itertools from absl import logging import numpy as np import scipy import scipy.sparse import scipy.sparse.linalg from tqdm import tqdm def sym_op(x, zero_trace=False): """Given X, makes L(A) = X @ A @ X' for symmetric matrices A. If A is not symmetric, L(A) will return X @ (A_L + A_L') @ X' where A_L is the lower triangular of A (with the diagonal divided by 2). Args: x: The matrix from which to construct the operator zero_trace (optional): If true, restrict the operator to only act on matrices with zero trace, effectively reducing the dimensionality by one. Returns: A matrix Y such that vec(L(A)) = Y @ vec(A). """ n = x.shape[0] # Remember to subtract off the diagonal once xx = (np.einsum('ik,jl->ijkl', x, x) + np.einsum('il,jk->ijkl', x, x) - np.einsum('ik,jl,kl->ijkl', x, x, np.eye(n))) xx = xx[np.tril_indices(n)] xx = xx.transpose(1, 2, 0) xx = xx[np.tril_indices(n)] xx = xx.T if zero_trace: diag_idx = np.cumsum([0]+list(range(2, n))) proj_op = np.eye(n*(n+1)//2)[:, :-1] proj_op[-1, diag_idx] = -1 # multiply by operator that completes last element of diagonal # for a zero-trace matrix xx = xx @ proj_op xx = xx[:-1] return xx def vec_to_sym(x, n, zero_trace=False): y = np.zeros((n, n)) if zero_trace: x = np.append(x, 0.0) y[np.tril_indices(n)] = x y += y.T y[np.diag_indices(n)] /= 2.0 if zero_trace: y[-1, -1] = -np.trace(y) return y def ffdiag(data, lr=1.0, tol=1e-10, verbose=False, eig_init=False): """Orthogonal FFDiag algorithm of Ziehe et al 2004.""" n = data.shape[1] k = data.shape[0] c = data.copy() if eig_init: _, v = np.linalg.eig(data[0]) v = v.T for i in range(k): c[i] = v @ c[i] @ v.T else: v = np.eye(n) err_ = np.inf for t in range(10000): w = np.zeros((n, n)) for i in range(n): for j in range(i+1, n): diag = c[:, i, i] - c[:, j, j] w[i, j] = np.sum(c[:, i, j] * diag) / np.sum(diag ** 2) w -= w.T norm = np.linalg.svd(w, compute_uv=False).max() if norm > lr: w *= lr / norm ew = scipy.linalg.expm(w) v = ew @ v for i in range(k): c[i] = ew @ c[i] @ ew.T cdiag = c.copy() for i in range(n): for j in range(k): cdiag[j, i, i] = 0 err = np.linalg.norm(cdiag) if verbose: logging.info('Iter %d: %f', t, err) if err_ - err < tol and err_ - err >= 0: return v err_ = err return v def avg_angle_between_subspaces(xs, ys): """Compute the error between two sets of subspaces.""" if len(xs) != len(ys): return np.pi / 2 # largest possible angle angles = [] for ys_perm in itertools.permutations(ys): angles.append([]) for i in range(len(xs)): if xs[i].shape[1] == ys_perm[i].shape[1]: sigma = np.linalg.svd(xs[i].T @ ys_perm[i], compute_uv=False) angles[-1].append(np.arccos(np.min(sigma))) else: angles[-1].append(np.pi / 2) angles = np.array(angles) return np.min(np.mean(angles, axis=1)) def make_nearest_neighbors_graph(data, k, n=1000): """Build exact k-nearest neighbors graph from numpy data. Args: data: Data to compute nearest neighbors of, each column is one point k: number of nearest neighbors to compute n (optional): number of neighbors to compute simultaneously Returns: A scipy sparse matrix in LIL format giving the symmetric nn graph. """ shape = data.shape assert shape[0] % n == 0 nbr_graph = scipy.sparse.lil_matrix((shape[0], shape[0])) norm = np.sum(data**2, axis=1) cols = np.meshgrid(np.arange(n), np.ones(k+1))[0] for i in tqdm(range(0, shape[0], n)): dot = data @ data[i:i+n].T dists = np.sqrt(np.abs(norm[:, None] - 2*dot + norm[i:i+n][None, :])) idx = np.argpartition(dists, k, axis=0)[:k+1] nbrs = idx[np.argsort(dists[idx, cols], axis=0), cols][1:] for j in range(n): nbr_graph[i+j, nbrs[:, j]] = 1 # Symmetrize graph for i in tqdm(range(shape[0])): for j in nbr_graph.rows[i]: if nbr_graph[j, i] == 0: nbr_graph[j, i] = nbr_graph[i, j] logging.info('Symmetrized neighbor graph') return nbr_graph def make_tangents(data, neighbor_graph, k): """Construct all tangent vectors for the dataset.""" tangents = np.zeros((data.shape[0], k, data.shape[1]), dtype=np.float32) for i in tqdm(range(data.shape[0])): diff = data[neighbor_graph.rows[i]] - data[i] _, _, u = np.linalg.svd(diff, full_matrices=False) tangents[i] = u[:k] logging.info('Computed all tangents') return tangents def make_connection(tangents, neighbor_graph): """Make connection matrices for all edges of the neighbor graph.""" connection = {} for i in tqdm(range(tangents.shape[0])): for j in neighbor_graph.rows[i]: if j > i: uy, _, ux = np.linalg.svd(tangents[j] @ tangents[i].T, full_matrices=False) conn = uy @ ux connection[(i, j)] = conn connection[(j, i)] = conn.T logging.info('Constructed all connection matrices') return connection def make_laplacian(connection, neighbor_graph, sym=True, zero_trace=True): """Make symmetric zero-trace second-order graph connection Laplacian.""" n = neighbor_graph.shape[0] k = list(connection.values())[0].shape[0] bsz = (k*(k+1)//2 - 1 if zero_trace else k*(k+1)//2) if sym else k**2 data = np.zeros((neighbor_graph.nnz + n, bsz, bsz), dtype=np.float32) indptr = [] indices = np.zeros(neighbor_graph.nnz + n) index = 0 for i in tqdm(range(n)): indptr.append(index) data[index] = len(neighbor_graph.rows[i]) * np.eye(bsz) indices[index] = i index += 1 for j in neighbor_graph.rows[i]: if sym: kron = sym_op(connection[(j, i)], zero_trace=zero_trace) else: kron = np.kron(connection[(j, i)], connection[(j, i)]) data[index] = -kron indices[index] = j index += 1 indptr.append(index) indptr = np.array(indptr) laplacian = scipy.sparse.bsr_matrix((data, indices, indptr), shape=(n*bsz, n*bsz)) logging.info('Built 2nd-order graph connection Laplacian.') return laplacian def cluster_subspaces(omega): """Cluster different dimensions from the eigenvectors of the Laplacian.""" w = ffdiag(omega) # simultaneous diagonalization psi = np.zeros(omega.shape[:2]) for i in range(omega.shape[0]): psi[i] = np.diag(w @ omega[i] @ w.T) # compute diagonals # Compute cosine similarity of diagonal vectors psi_outer = psi.T @ psi psi_diag = np.diag(psi_outer) cos_similarity = psi_outer / np.sqrt(np.outer(psi_diag, psi_diag)) adj = cos_similarity > 0.5 # adjacency matrix for graph of clusters # Use graph Laplacian to find cliques # (though a greedy algorithm could work too) lapl = np.diag(np.sum(adj, axis=0)) - adj # graph Laplacian d, v = np.linalg.eig(lapl) # connected components of graph cliques = np.abs(v[:, np.abs(d) < 1e-6]) > 1e-6 tangents = [w[cliques[:, i]] for i in range(sum(np.abs(d) < 1e-6))] return tangents def fit(data, k, gamma=None, nnbrs=None, neig=10, shard_size=1000): """The Geometric Manifold Component Estimator. Args: data: the dataset, a set of points sample from a product manifold. k: the dimensionality of the manifold. gamma (optional): the threshold in the spectrum at which to cut off the number of submanifolds. nnbrs (optional): number of neighbors to use for each point. neig (optional): the total number of eigenvectors to compute. shard_size (optional): the size of shard to use in knn computation. Returns: A list of lists of subspace bases, one list for each element of the dataset, and the spectrum of the 2nd-order graph Laplacian. """ if not nnbrs: nnbrs = 2*k neighbor_graph = make_nearest_neighbors_graph(data, nnbrs, n=shard_size) tangents = make_tangents(data, neighbor_graph, k) connection = make_connection(tangents, neighbor_graph) laplacian = make_laplacian(connection, neighbor_graph) eigvals, eigvecs = scipy.sparse.linalg.eigsh(laplacian, k=neig, which='SM') logging.info('Computed bottom eigenvectors of 2nd-order Laplacian') bsz = k*(k+1)//2 - 1 # Block size for the projected 2nd-order Laplacian if gamma: nm = np.argwhere(eigvals < gamma)[-1, 0] + 1 else: # If no threshold is provided, just use the largest gap in the spectrum nm = np.argmax(eigvals[1:] - eigvals[:-1]) + 1 eigvecs = eigvecs.reshape(data.shape[0], bsz, neig) omega = np.zeros((nm, k, k), dtype=np.float32) components = [] for i in tqdm(range(data.shape[0])): for j in range(nm): omega[j] = vec_to_sym(eigvecs[i, :, j], k, zero_trace=True) components.append([tangents[i].T @ x.T for x in cluster_subspaces(omega)]) logging.info('GEOMANCER completed') return components, eigvals def eval_aligned(tangents, true_tangents): """Evaluation for aligned data.""" errors = np.zeros(len(tangents)) for i in tqdm(range(len(tangents))): errors[i] = avg_angle_between_subspaces([gt[i] for gt in true_tangents], tangents[i]) logging.info('Computed angles between ground truth and GEOMANCER results') return errors def eval_unaligned(data, tangents, true_data, true_tangents, k=10, n=1000): """Evaluation for unaligned data.""" logging.info('Evaluating unaligned data') errors = np.zeros(data.shape[0]) nbrs = make_nearest_neighbors_graph(true_data, k=k, n=n) for i in tqdm(range(data.shape[0])): tangent = np.concatenate(tangents[i], axis=1) true_tangent = np.concatenate([t[i] for t in true_tangents], axis=1) dx_true = (true_data[nbrs.rows[i]] - true_data[i]) @ true_tangent dx_result = (data[nbrs.rows[i]] - data[i]) @ tangent # compute canonical correlations between the two dxs xx = dx_true.T @ dx_true yy = dx_result.T @ dx_result xy = dx_true.T @ dx_result xx_ = np.linalg.inv(xx) yy_ = np.linalg.inv(yy) foo = scipy.linalg.sqrtm(xx_) @ xy @ scipy.linalg.sqrtm(yy_) u, _, v = np.linalg.svd(foo) # project subspaces for results and ground truth into aligned space proj = [v @ tangent.T @ s for s in tangents[i]] true_proj = [u.T @ true_tangent.T @ s[i] for s in true_tangents] errors[i] = avg_angle_between_subspaces(proj, true_proj) return errors ================================================ FILE: geomancer/geomancer_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for the Geometric Manifold Component Estimator (GEOMANCER).""" from absl.testing import absltest from absl.testing import parameterized import numpy as np from geomancer import geomancer class GeomancerTest(parameterized.TestCase): @parameterized.parameters( {'zero_trace': False}, {'zero_trace': True}) def test_sym_op(self, zero_trace): """sym_op on tril(X) gives same result as QXQ' for symmetric X?""" n = 5 x = np.random.randn(n, n) x += x.T if zero_trace: np.fill_diagonal(x, np.diag(x)-np.trace(x)/n) q, _ = np.linalg.qr(np.random.randn(n, n)) sym_q = geomancer.sym_op(q, zero_trace=zero_trace) tril_x = x[np.tril_indices(n)] if zero_trace: tril_x = tril_x[:-1] vec_y = sym_q @ tril_x y = q @ x @ q.T y_ = geomancer.vec_to_sym(vec_y, n, zero_trace=zero_trace) np.testing.assert_allclose(y_, y) def test_ffdiag(self): k = 2 n = 5 w, _ = np.linalg.qr(np.random.randn(n, n)) psi = np.random.randn(k, n) a = np.zeros((k, n, n)) for i in range(k): a[i] = w @ np.diag(psi[i]) @ w.T w_ = geomancer.ffdiag(a) for i in range(k): x = w_ @ a[i] @ w_.T diag = np.diag(x).copy() np.fill_diagonal(x, 1.0) # check that x is diagonal np.testing.assert_allclose(x, np.eye(n), rtol=1e-10, atol=1e-10) self.assertTrue(np.all(np.min( np.abs(diag[None, :] - psi[i][:, None]), axis=0) < 1e-10)) def test_make_nearest_neighbor_graph(self): n = 100 # make points on a circle data = np.zeros((n, 2)) for i in range(n): data[i, 0] = np.sin(i*2*np.pi/n) data[i, 1] = np.cos(i*2*np.pi/n) graph = geomancer.make_nearest_neighbors_graph(data, 4, n=10) for i in range(n): self.assertLen(graph.rows[i], 4) self.assertIn((i+1) % n, graph.rows[i]) self.assertIn((i+2) % n, graph.rows[i]) self.assertIn((i-1) % n, graph.rows[i]) self.assertIn((i-2) % n, graph.rows[i]) if __name__ == '__main__': absltest.main() ================================================ FILE: geomancer/run.sh ================================================ #!/bin/sh # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. python3 -m venv /tmp/geomancer-venv source /tmp/geomancer-venv/bin/activate pip3 install -U pip pip3 install geomancer/ python3 -m geomancer.geomancer_test python3 geomancer/train.py --plot=False ================================================ FILE: geomancer/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from setuptools import find_packages from setuptools import setup REQUIRED_PACKAGES = ['numpy', 'scipy', 'matplotlib', 'absl-py', 'tqdm'] setup( name='geomancer', version='0.1', description='A library for the Geometric Manifold Component Estimator.', url='https://github.com/deepmind/deepmind-research/geomancer', author='DeepMind', author_email='pfau@google.com', # Contained modules and scripts. packages=find_packages(), install_requires=REQUIRED_PACKAGES, platforms=['any'], license='Apache 2.0', ) ================================================ FILE: geomancer/train.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Run GEOMANCER on products of synthetic manifolds.""" import re from absl import app from absl import flags from absl import logging import geomancer from matplotlib import gridspec import matplotlib.pyplot as plt import numpy as np from scipy.stats import special_ortho_group from tqdm import tqdm SPECIFICATION = flags.DEFINE_list( name='specification', default=['S^2', 'S^2'], help='List of submanifolds') NPTS = flags.DEFINE_integer( name='npts', default=1000, help='Number of data points') ROTATE = flags.DEFINE_boolean( name='rotate', default=False, help='Apply random rotation to the data') PLOT = flags.DEFINE_boolean( name='plot', default=True, help='Whether to enable plotting') def make_so_tangent(q): """Given an n x n orthonormal matrix, return a basis for its tangent space.""" n = q.shape[0] assert np.allclose(q.T @ q, np.eye(n), atol=1e-4, rtol=1e-4) a = np.zeros((n, n)) ii = 0 dq = np.zeros((n, n, n*(n-1)//2)) for i in range(n): for j in range(i+1, n): a[i, j] = 1 a[j, i] = -1 dq[..., ii] = a @ q # tangent vectors are skew-symmetric matrix times Q a[i, j] = 0 a[j, i] = 0 ii += 1 # reshape and orthonormalize the result return np.linalg.qr(np.reshape(dq, (n**2, n*(n-1)//2)))[0] def make_sphere_tangent(x): _, _, v = np.linalg.svd(x[None, :]) return v[:, 1:] def make_true_tangents(spec, data): """Return a set of orthonormal bases, one for each submanifold.""" for i in range(spec.shape[1]): assert spec[0, i] == 0 or spec[1, i] == 0 so_dim = sum(dim ** 2 for dim in spec[0]) sphere_dim = sum(dim+1 if dim > 0 else 0 for dim in spec[1]) assert so_dim + sphere_dim == data.shape[0] ii = 0 tangents = [] for i in range(spec.shape[1]): if spec[0, i] != 0: dim = spec[0, i] tangents.append(make_so_tangent(np.reshape(data[ii:ii+dim**2], (dim, dim)))) ii += dim ** 2 else: dim = spec[1, i] tangents.append(make_sphere_tangent(data[ii:ii+dim+1])) ii += dim + 1 tangents2 = [] for i in range(len(tangents)): size1 = sum(x.shape[0] for x in tangents[:i]) size2 = sum(x.shape[0] for x in tangents[i+1:]) tangents2.append(np.concatenate( (np.zeros((size1, tangents[i].shape[1])), tangents[i], np.zeros((size2, tangents[i].shape[1]))), axis=0)) return tangents2 def make_product_manifold(specification, npts): """Generate data from a product of manifolds with the given specification.""" data = [] tangents = [] latent_dim = 0 spec_array = np.zeros((2, len(specification)), dtype=np.int32) for i, spec in enumerate(specification): so_spec = re.search(r'SO\(([0-9]+)\)', spec) # matches "SO()" sphere_spec = re.search(r'S\^([0-9]+)', spec) # matches "S^" if sphere_spec is not None: dim = int(sphere_spec.group(1)) spec_array[1, i] = dim latent_dim += dim dat = np.random.randn(npts, dim+1) dat /= np.tile(np.sqrt(np.sum(dat**2, axis=1)[..., None]), [1, dim+1]) elif so_spec is not None: dim = int(so_spec.group(1)) spec_array[0, i] = dim latent_dim += dim * (dim - 1) // 2 dat = [np.ndarray.flatten(special_ortho_group.rvs(dim), order='C') for _ in range(npts)] dat = np.stack(dat) else: raise ValueError(f'Unrecognized manifold: {spec}') data.append(dat) data = np.concatenate(data, axis=1) for i in range(spec_array.shape[1]): if spec_array[0, i] != 0: dim = spec_array[0, i] tangents.append(np.zeros((npts, data.shape[1], dim * (dim - 1) // 2))) elif spec_array[1, i] != 0: dim = spec_array[1, i] tangents.append(np.zeros((npts, data.shape[1], dim))) for i in tqdm(range(npts)): true_tangent = make_true_tangents(spec_array, data[i]) for j in range(len(specification)): tangents[j][i] = true_tangent[j] logging.info('Constructed data and true tangents for %s', ' x '.join(specification)) return data, latent_dim, tangents def main(_): # Generate data and run GEOMANCER data, dim, tangents = make_product_manifold(SPECIFICATION.value, NPTS.value) if ROTATE.value: rot, _ = np.linalg.qr(np.random.randn(data.shape[1], data.shape[1])) data_rot = data @ rot.T components, spectrum = geomancer.fit(data_rot, dim) errors = geomancer.eval_unaligned(data_rot, components, data, tangents) else: components, spectrum = geomancer.fit(data, dim) errors = geomancer.eval_aligned(components, tangents) logging.info('Error between subspaces: %.2f +/- %.2f radians', np.mean(errors), np.std(errors)) if PLOT.value: # Plot spectrum plt.figure(figsize=(8, 6)) plt.scatter(np.arange(len(spectrum)), spectrum, s=100) largest_gap = np.argmax(spectrum[1:]-spectrum[:-1]) + 1 plt.axvline(largest_gap, linewidth=2, c='r') plt.xticks([]) plt.yticks(fontsize=18) plt.xlabel('Index', fontsize=24) plt.ylabel('Eigenvalue', fontsize=24) plt.title('GeoManCEr Eigenvalue Spectrum', fontsize=24) # Plot subspace bases fig = plt.figure(figsize=(8, 6)) bases = components[0] gs = gridspec.GridSpec(1, len(bases), width_ratios=[b.shape[1] for b in bases]) for i in range(len(bases)): ax = plt.subplot(gs[i]) ax.imshow(bases[i]) ax.set_xticks([]) ax.set_yticks([]) ax.set_title(r'$T_{\mathbf{x}_1}\mathcal{M}_%d$' % (i+1), fontsize=18) fig.canvas.set_window_title('GeoManCEr Results') # Plot ground truth fig = plt.figure(figsize=(8, 6)) gs = gridspec.GridSpec(1, len(tangents), width_ratios=[b.shape[2] for b in tangents]) for i, spec in enumerate(SPECIFICATION.value): ax = plt.subplot(gs[i]) ax.imshow(tangents[i][0]) ax.set_xticks([]) ax.set_yticks([]) ax.set_title(r'$T_{\mathbf{x}_1}%s$' % spec, fontsize=18) fig.canvas.set_window_title('Ground Truth') plt.show() if __name__ == '__main__': app.run(main) ================================================ FILE: glassy_dynamics/README.md ================================================ # Unveiling the predictive power of static structure in glassy systems This repository contains an open source implementation of the graph neural network model described in our [paper](http://dx.doi.org/10.1038/s41567-020-0842-8). The model can be trained using the training binary included in this repository, and the dataset published with our paper. Pretrained model checkpoints and the dataset are available via the [google cloud platform](https://console.cloud.google.com/storage/browser/deepmind-research-glassy-dynamics). ## Abstract Despite decades of theoretical studies, the nature of the glass transition remains elusive and debated, while the existence of structural predictors of its dynamics is a major open question. Recent approaches propose inferring predictors from a variety of human-defined features using machine learning. Here we determine the long time evolution of a glassy system solely from the initial particle positions and without any hand-crafted features, using graph neural networks as a powerful model. We show that this method outperforms current state-of-the-art methods, generalizing over a wide range of temperatures, pressures, and densities. In shear experiments, it predicts the locations of rearranging particles. The structural predictors learned by our network exhibit a correlation length which increases with larger timescales to reach the size of our system. Beyond glasses, our method could apply to many other physical systems that map to a graph of local interaction. ## Dataset The dataset was generated with the LAMMPS molecular dynamics package. The simulated system has periodic boundaries and is a binary mixture of 4096 large (A) and small (B) particles that interact via a 6-12 Lennard-Jones potential. The interaction coefficients are set for a typical Kob-Andersen configuration. ### Download The dataset (and model checkpoints) can be downloaded using [gsutil](https://cloud.google.com/storage/docs/downloading-objects). To download the entire GCP bucket (~100GB) use: > gsutil -m cp -R gs://deepmind-research-glassy-dynamics . ### Data format The data is stored in Python's pickle format protocol version 3. Each file contains the data for one of the equilibrated systems in a Python dictionary. The dictionary contains the following entries: - `positions` the particle positions of the equilibrated system. - `types` the particle types (0 == type A and 1 == type B) of the equilibrated system. - `box` the dimensions of the periodic cubic simulation box. - `time` the logarithmically sampled time points. - `time_indices` the indices of the time points for which the sampled trajectories on average reach a certain value of the intermediate scattering function. - `is_values` the values of the intermediate scattering function associated with each time index. - `trajectory_start_velocities` the velocities drawn from a Boltzmann distribution at the start of each trajectory. - `trajectory_target_positions` the positions of the particles for each of the trajectories at selected time points (as defined by the `time_indices` array and the corresponding values of the intermediate scattering function stored in `is_values`). - `metadata` a dictionary containing additional metadata: - `temperature` the temperature at which the system was equilibrated. - `pressure` the pressure at which the system was equilibrated. - `fluid` the type of fluid which was simulated (Kob-Andersen). All units are in Lennard-Jones units. The positions are stored in the absolute coordinate system i.e. they are outside of the simulation box if the particle crossed a periodic boundary during the simulation. ## Reference If this repository is helpful for your research please cite the following publication: [Unveiling the predictive power of static structure in glassy systems](http://dx.doi.org/10.1038/s41567-020-0842-8) V. Bapst, T. Keck, A. Grabska-Barwińska, C. Donner, E. D. Cubuk, S. S. Schoenholz, A. Obika, A. W. R. Nelson, T. Back, D. Hassabis and P. Kohli ## Disclaimer This is not an official Google product. ================================================ FILE: glassy_dynamics/apply_binary.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Applies a graph-based network to predict particle mobilities in glasses.""" import os from absl import app from absl import flags from glassy_dynamics import train FLAGS = flags.FLAGS flags.DEFINE_string( 'data_directory', '', 'Directory which contains the train or test datasets.') flags.DEFINE_integer( 'time_index', 9, 'The time index of the target mobilities.') flags.DEFINE_integer( 'max_files_to_load', None, 'The maximum number of files to load.') flags.DEFINE_string( 'checkpoint_path', 'checkpoints/t044_s09.ckpt', 'Path used to load the model.') def main(argv): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') file_pattern = os.path.join(FLAGS.data_directory, 'aggregated*') train.apply_model( checkpoint_path=FLAGS.checkpoint_path, file_pattern=file_pattern, max_files_to_load=FLAGS.max_files_to_load, time_index=FLAGS.time_index) if __name__ == '__main__': app.run(main) ================================================ FILE: glassy_dynamics/graph_model.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A graph neural network based model to predict particle mobilities. The architecture and performance of this model is described in our publication: "Unveiling the predictive power of static structure in glassy systems". """ import functools from typing import Any, Dict, Text, Tuple, Optional from graph_nets import graphs from graph_nets import modules as gn_modules from graph_nets import utils_tf import sonnet as snt import tensorflow.compat.v1 as tf def make_graph_from_static_structure( positions: tf.Tensor, types: tf.Tensor, box: tf.Tensor, edge_threshold: float) -> graphs.GraphsTuple: """Returns graph representing the static structure of the glass. Each particle is represented by a node in the graph. The particle type is stored as a node feature. Two particles at a distance less than the threshold are connected by an edge. The relative distance vector is stored as an edge feature. Args: positions: particle positions with shape [n_particles, 3]. types: particle types with shape [n_particles]. box: dimensions of the cubic box that contains the particles with shape [3]. edge_threshold: particles at distance less than threshold are connected by an edge. """ # Calculate pairwise relative distances between particles: shape [n, n, 3]. cross_positions = positions[tf.newaxis, :, :] - positions[:, tf.newaxis, :] # Enforces periodic boundary conditions. box_ = box[tf.newaxis, tf.newaxis, :] cross_positions += tf.cast(cross_positions < -box_ / 2., tf.float32) * box_ cross_positions -= tf.cast(cross_positions > box_ / 2., tf.float32) * box_ # Calculates adjacency matrix in a sparse format (indices), based on the given # distances and threshold. distances = tf.norm(cross_positions, axis=-1) indices = tf.where(distances < edge_threshold) # Defines graph. nodes = types[:, tf.newaxis] senders = indices[:, 0] receivers = indices[:, 1] edges = tf.gather_nd(cross_positions, indices) return graphs.GraphsTuple( nodes=tf.cast(nodes, tf.float32), n_node=tf.reshape(tf.shape(nodes)[0], [1]), edges=tf.cast(edges, tf.float32), n_edge=tf.reshape(tf.shape(edges)[0], [1]), globals=tf.zeros((1, 1), dtype=tf.float32), receivers=tf.cast(receivers, tf.int32), senders=tf.cast(senders, tf.int32) ) def apply_random_rotation(graph: graphs.GraphsTuple) -> graphs.GraphsTuple: """Returns randomly rotated graph representation. The rotation is an element of O(3) with rotation angles multiple of pi/2. This function assumes that the relative particle distances are stored in the edge features. Args: graph: The graphs tuple as defined in `graph_nets.graphs`. """ # Transposes edge features, so that the axes are in the first dimension. # Outputs a tensor of shape [3, n_particles]. xyz = tf.transpose(graph.edges) # Random pi/2 rotation(s) permutation = tf.random.shuffle(tf.constant([0, 1, 2], dtype=tf.int32)) xyz = tf.gather(xyz, permutation) # Random reflections. symmetry = tf.random_uniform([3], minval=0, maxval=2, dtype=tf.int32) symmetry = 1 - 2 * tf.cast(tf.reshape(symmetry, [3, 1]), tf.float32) xyz = xyz * symmetry edges = tf.transpose(xyz) return graph.replace(edges=edges) class GraphBasedModel(snt.AbstractModule): """Graph based model which predicts particle mobilities from their positions. This network encodes the nodes and edges of the input graph independently, and then performs message-passing on this graph, updating its edges based on their associated nodes, then updating the nodes based on the input nodes' features and their associated updated edge features. This update is repeated several times. Afterwards the resulting node embeddings are decoded to predict the particle mobility. """ def __init__(self, n_recurrences: int, mlp_sizes: Tuple[int], mlp_kwargs: Optional[Dict[Text, Any]] = None, name='Graph'): """Creates a new GraphBasedModel object. Args: n_recurrences: the number of message passing steps in the graph network. mlp_sizes: the number of neurons in each layer of the MLP. mlp_kwargs: additional keyword aguments passed to the MLP. name: the name of the Sonnet module. """ super(GraphBasedModel, self).__init__(name=name) self._n_recurrences = n_recurrences if mlp_kwargs is None: mlp_kwargs = {} model_fn = functools.partial( snt.nets.MLP, output_sizes=mlp_sizes, activate_final=True, **mlp_kwargs) final_model_fn = functools.partial( snt.nets.MLP, output_sizes=mlp_sizes + (1,), activate_final=False, **mlp_kwargs) with self._enter_variable_scope(): self._encoder = gn_modules.GraphIndependent( node_model_fn=model_fn, edge_model_fn=model_fn) if self._n_recurrences > 0: self._propagation_network = gn_modules.GraphNetwork( node_model_fn=model_fn, edge_model_fn=model_fn, # We do not use globals, hence we just pass the identity function. global_model_fn=lambda: lambda x: x, reducer=tf.unsorted_segment_sum, edge_block_opt=dict(use_globals=False), node_block_opt=dict(use_globals=False), global_block_opt=dict(use_globals=False)) self._decoder = gn_modules.GraphIndependent( node_model_fn=final_model_fn, edge_model_fn=model_fn) def _build(self, graphs_tuple: graphs.GraphsTuple) -> tf.Tensor: """Connects the model into the tensorflow graph. Args: graphs_tuple: input graph tensor as defined in `graphs_tuple.graphs`. Returns: tensor with shape [n_particles] containing the predicted particle mobilities. """ encoded = self._encoder(graphs_tuple) outputs = encoded for _ in range(self._n_recurrences): # Adds skip connections. inputs = utils_tf.concat([outputs, encoded], axis=-1) outputs = self._propagation_network(inputs) decoded = self._decoder(outputs) return tf.squeeze(decoded.nodes, axis=-1) ================================================ FILE: glassy_dynamics/graph_model_test.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for graph_model.""" import itertools from absl.testing import parameterized from graph_nets import graphs import numpy as np import tensorflow.compat.v1 as tf from glassy_dynamics import graph_model class GraphModelTest(tf.test.TestCase, parameterized.TestCase): def setUp(self): """Initializes a small tractable test (particle) system.""" super(GraphModelTest, self).setUp() # Fixes random seed to ensure deterministic outputs. tf.random.set_random_seed(1234) # In this test we use a small tractable set of particles covering all corner # cases: # a) eight particles with different types, # b) periodic box is not cubic, # c) three disjoint cluster of particles separated by a threshold > 2, # d) first two clusters overlap with the periodic boundary, # e) first cluster is not fully connected, # f) second cluster is fully connected, # g) and third cluster is a single isolated particle. # # The formatting of the code below separates the three clusters by # adding linebreaks after each cluster. self._positions = np.array( [[0.0, 0.0, 0.0], [2.5, 0.0, 0.0], [0.0, 1.5, 0.0], [0.0, 0.0, 9.0], [0.0, 5.0, 0.0], [0.0, 5.0, 1.0], [3.0, 5.0, 0.0], [2.0, 3.0, 3.0]]) self._types = np.array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0]) self._box = np.array([4.0, 10.0, 10.0]) # Creates the corresponding graph elements, assuming a threshold of 2 and # the conventions described in `graph_nets.graphs`. self._edge_threshold = 2 self._nodes = np.array( [[0.0], [0.0], [1.0], [0.0], [0.0], [1.0], [0.0], [0.0]]) self._edges = np.array( [[0.0, 0.0, 0.0], [-1.5, 0.0, 0.0], [0.0, 1.5, 0.0], [0.0, 0.0, -1.0], [1.5, 0.0, 0.0], [0.0, 0.0, 0.0], [1.5, 0.0, -1.0], [0.0, -1.5, 0.0], [0.0, 0.0, 0.0], [0.0, -1.5, -1.0], [0.0, 0.0, 1.0], [-1.5, 0.0, 1.0], [0.0, 1.5, 1.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 1.0], [-1.0, 0.0, 0.0], [0.0, 0.0, -1.0], [0.0, 0.0, 0.0], [-1.0, 0.0, -1.0], [1.0, 0.0, 0.0], [1.0, 0.0, 1.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]) self._receivers = np.array( [0, 1, 2, 3, 0, 1, 3, 0, 2, 3, 0, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6, 7]) self._senders = np.array( [0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7]) def _get_graphs_tuple(self): """Returns a GraphsTuple containing a graph based on the test system.""" return graphs.GraphsTuple( nodes=tf.constant(self._nodes, dtype=tf.float32), edges=tf.constant(self._edges, dtype=tf.float32), globals=tf.constant(np.array([[0.0]]), dtype=tf.float32), receivers=tf.constant(self._receivers, dtype=tf.int32), senders=tf.constant(self._senders, dtype=tf.int32), n_node=tf.constant([len(self._nodes)], dtype=tf.int32), n_edge=tf.constant([len(self._edges)], dtype=tf.int32)) def test_make_graph_from_static_structure(self): graphs_tuple_op = graph_model.make_graph_from_static_structure( tf.constant(self._positions, dtype=tf.float32), tf.constant(self._types, dtype=tf.int32), tf.constant(self._box, dtype=tf.float32), self._edge_threshold) graphs_tuple = self.evaluate(graphs_tuple_op) self.assertLen(self._nodes, graphs_tuple.n_node) self.assertLen(self._edges, graphs_tuple.n_edge) np.testing.assert_almost_equal(graphs_tuple.nodes, self._nodes) np.testing.assert_equal(graphs_tuple.senders, self._senders) np.testing.assert_equal(graphs_tuple.receivers, self._receivers) np.testing.assert_almost_equal(graphs_tuple.globals, np.array([[0.0]])) np.testing.assert_almost_equal(graphs_tuple.edges, self._edges) def _is_equal_up_to_rotation(self, x, y): for axes in itertools.permutations([0, 1, 2]): for mirrors in itertools.product([1, -1], repeat=3): if np.allclose(x, y[:, axes] * mirrors): return True return False def test_apply_random_rotation(self): graphs_tuple = self._get_graphs_tuple() rotated_graphs_tuple_op = graph_model.apply_random_rotation(graphs_tuple) rotated_graphs_tuple = self.evaluate(rotated_graphs_tuple_op) np.testing.assert_almost_equal(rotated_graphs_tuple.nodes, self._nodes) np.testing.assert_almost_equal(rotated_graphs_tuple.senders, self._senders) np.testing.assert_almost_equal( rotated_graphs_tuple.receivers, self._receivers) np.testing.assert_almost_equal( rotated_graphs_tuple.globals, np.array([[0.0]])) self.assertTrue(self._is_equal_up_to_rotation(rotated_graphs_tuple.edges, self._edges)) @parameterized.named_parameters(('no_propagation', 0, (30,)), ('multi_propagation', 5, (15,)), ('multi_layer', 1, (20, 30))) def test_GraphModel(self, n_recurrences, mlp_sizes): graphs_tuple = self._get_graphs_tuple() output_op = graph_model.GraphBasedModel(n_recurrences=n_recurrences, mlp_sizes=mlp_sizes)(graphs_tuple) self.assertListEqual(output_op.shape.as_list(), [len(self._types)]) # Tests if the model runs without crashing. with self.session(): tf.global_variables_initializer().run() output_op.eval() if __name__ == '__main__': tf.test.main() ================================================ FILE: glassy_dynamics/requirements.txt ================================================ # GlassyDynamics absl-py==0.8.1 astor==0.8.0 cloudpickle==1.1.1 contextlib2==0.6.0.post1 decorator==4.4.0 dm-sonnet==1.35 future==0.18.0 gast==0.2.2 google-pasta==0.1.7 graph-nets==1.0.4 grpcio==1.24.1 h5py==2.10.0 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.0 Markdown==3.1.1 mock==3.0.5 networkx==2.3 numpy==1.17.2 protobuf==3.10.0 semantic-version==2.8.2 six==1.12.0 tensorboard==1.15.0 tensorflow==1.15.0 tensorflow-estimator==1.15.1 tensorflow-probability==0.7.0 termcolor==1.1.0 Werkzeug==0.16.0 wrapt==1.11.2 ================================================ FILE: glassy_dynamics/train.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training pipeline for the prediction of particle mobilities in glasses.""" import collections import enum import pickle from typing import Any, Dict, List, Optional, Text, Tuple, Sequence from absl import logging import numpy as np import tensorflow.compat.v1 as tf import tensorflow_probability as tfp from glassy_dynamics import graph_model tf.enable_resource_variables() LossCollection = collections.namedtuple('LossCollection', 'l1_loss, l2_loss, correlation') GlassSimulationData = collections.namedtuple('GlassSimulationData', 'positions, targets, types, box') class ParticleType(enum.IntEnum): """The simulation contains two particle types, identified as type A and B. The dataset encodes the particle type in an integer. - 0 corresponds to particle type A. - 1 corresponds to particle type B. """ A = 0 B = 1 def get_targets( initial_positions: np.ndarray, trajectory_target_positions: Sequence[np.ndarray]) -> np.ndarray: """Returns the averaged particle mobilities from the sampled trajectories. Args: initial_positions: the initial positions of the particles with shape [n_particles, 3]. trajectory_target_positions: the absolute positions of the particles at the target time for all sampled trajectories, each with shape [n_particles, 3]. """ targets = np.mean([np.linalg.norm(t - initial_positions, axis=-1) for t in trajectory_target_positions], axis=0) return targets.astype(np.float32) def load_data( file_pattern: Text, time_index: int, max_files_to_load: Optional[int] = None) -> List[GlassSimulationData]: """Returns a dictionary containing the training or test dataset. The dictionary contains: `positions`: `np.ndarray` containing the particle positions with shape [n_particles, 3]. `targets`: `np.ndarray` containing particle mobilities with shape [n_particles]. `types`: `np.ndarray` containing the particle types with shape with shape [n_particles]. `box`: `np.ndarray` containing the dimensions of the periodic box with shape [3]. Args: file_pattern: pattern matching the files with the simulation data. time_index: the time index of the targets. max_files_to_load: the maximum number of files to load. """ filenames = tf.io.gfile.glob(file_pattern) if max_files_to_load: filenames = filenames[:max_files_to_load] static_structures = [] for filename in filenames: with tf.io.gfile.GFile(filename, 'rb') as f: data = pickle.load(f) static_structures.append(GlassSimulationData( positions=data['positions'].astype(np.float32), targets=get_targets( data['positions'], data['trajectory_target_positions'][time_index]), types=data['types'].astype(np.int32), box=data['box'].astype(np.float32))) return static_structures def get_loss_ops( prediction: tf.Tensor, target: tf.Tensor, types: tf.Tensor) -> LossCollection: """Returns L1/L2 loss and correlation for type A particles. Args: prediction: tensor with shape [n_particles] containing the predicted particle mobilities. target: tensor with shape [n_particles] containing the true particle mobilities. types: tensor with shape [n_particles] containing the particle types. """ # Considers only type A particles. mask = tf.equal(types, ParticleType.A) prediction = tf.boolean_mask(prediction, mask) target = tf.boolean_mask(target, mask) return LossCollection( l1_loss=tf.reduce_mean(tf.abs(prediction - target)), l2_loss=tf.reduce_mean((prediction - target)**2), correlation=tf.squeeze(tfp.stats.correlation( prediction[:, tf.newaxis], target[:, tf.newaxis]))) def get_minimize_op( loss: tf.Tensor, learning_rate: float, grad_clip: Optional[float] = None) -> tf.Tensor: """Returns minimization operation. Args: loss: the loss tensor which is minimized. learning_rate: the learning rate used by the optimizer. grad_clip: all gradients are clipped to the given value if not None or 0. """ optimizer = tf.train.AdamOptimizer(learning_rate) grads_and_vars = optimizer.compute_gradients(loss) if grad_clip: grads, _ = tf.clip_by_global_norm([g for g, _ in grads_and_vars], grad_clip) grads_and_vars = [(g, pair[1]) for g, pair in zip(grads, grads_and_vars)] minimize = optimizer.apply_gradients(grads_and_vars) return minimize def _log_stats_and_return_mean_correlation( label: Text, stats: Sequence[LossCollection]) -> float: """Logs performance statistics and returns mean correlation. Args: label: label printed before the combined statistics e.g. train or test. stats: statistics calculated for each batch in a dataset. Returns: mean correlation """ for key in LossCollection._fields: values = [getattr(s, key) for s in stats] mean = np.mean(values) std = np.std(values) logging.info('%s: %s: %.4f +/- %.4f', label, key, mean, std) return np.mean([s.correlation for s in stats]) def train_model(train_file_pattern: Text, test_file_pattern: Text, max_files_to_load: Optional[int] = None, n_epochs: int = 1000, time_index: int = 9, augment_data_using_rotations: bool = True, learning_rate: float = 1e-4, grad_clip: Optional[float] = 1.0, n_recurrences: int = 7, mlp_sizes: Tuple[int] = (64, 64), mlp_kwargs: Optional[Dict[Text, Any]] = None, edge_threshold: float = 2.0, measurement_store_interval: int = 1000, checkpoint_path: Optional[Text] = None) -> float: # pytype: disable=annotation-type-mismatch """Trains GraphModel using tensorflow. Args: train_file_pattern: pattern matching the files with the training data. test_file_pattern: pattern matching the files with the test data. max_files_to_load: the maximum number of train and test files to load. If None, all files will be loaded. n_epochs: the number of passes through the training dataset (epochs). time_index: the time index (0-9) of the target mobilities. augment_data_using_rotations: data is augemented by using random rotations. learning_rate: the learning rate used by the optimizer. grad_clip: all gradients are clipped to the given value. n_recurrences: the number of message passing steps in the graphnet. mlp_sizes: the number of neurons in each layer of the MLP. mlp_kwargs: additional keyword aguments passed to the MLP. edge_threshold: particles at distance less than threshold are connected by an edge. measurement_store_interval: number of steps between storing objective values (loss and correlation). checkpoint_path: path used to store the checkpoint with the highest correlation on the test set. Returns: Correlation on the test dataset of best model encountered during training. """ if mlp_kwargs is None: mlp_kwargs = dict(initializers=dict(w=tf.variance_scaling_initializer(1.0), b=tf.variance_scaling_initializer(0.1))) # Loads train and test dataset. dataset_kwargs = dict( time_index=time_index, max_files_to_load=max_files_to_load) training_data = load_data(train_file_pattern, **dataset_kwargs) test_data = load_data(test_file_pattern, **dataset_kwargs) # Defines wrapper functions, which can directly be passed to the # tf.data.Dataset.map function. def _make_graph_from_static_structure(static_structure): """Converts static structure to graph, targets and types.""" return (graph_model.make_graph_from_static_structure( static_structure.positions, static_structure.types, static_structure.box, edge_threshold), static_structure.targets, static_structure.types) def _apply_random_rotation(graph, targets, types): """Applies random rotations to the graph and forwards targets and types.""" return graph_model.apply_random_rotation(graph), targets, types # Defines data-pipeline based on tf.data.Dataset following the official # guideline: https://www.tensorflow.org/guide/datasets#consuming_numpy_arrays. # We use initializable iterators to avoid embedding the training and test data # directly into the graph. # Instead we feed the data to the iterators during the initalization of the # iterators before the main training loop. placeholders = GlassSimulationData._make( tf.placeholder(s.dtype, (None,) + s.shape) for s in training_data[0]) dataset = tf.data.Dataset.from_tensor_slices(placeholders) dataset = dataset.map(_make_graph_from_static_structure) dataset = dataset.cache() dataset = dataset.shuffle(400) # Augments data. This has to be done after calling dataset.cache! if augment_data_using_rotations: dataset = dataset.map(_apply_random_rotation) dataset = dataset.repeat() train_iterator = dataset.make_initializable_iterator() dataset = tf.data.Dataset.from_tensor_slices(placeholders) dataset = dataset.map(_make_graph_from_static_structure) dataset = dataset.cache() dataset = dataset.repeat() test_iterator = dataset.make_initializable_iterator() # Creates tensorflow graph. # Note: We decouple the training and test datasets from the input pipeline # by creating a new iterator from a string-handle placeholder with the same # output types and shapes as the training dataset. dataset_handle = tf.placeholder(tf.string, shape=[]) iterator = tf.data.Iterator.from_string_handle( dataset_handle, train_iterator.output_types, train_iterator.output_shapes) graph, targets, types = iterator.get_next() model = graph_model.GraphBasedModel( n_recurrences, mlp_sizes, mlp_kwargs) prediction = model(graph) # Defines loss and minimization operations. loss_ops = get_loss_ops(prediction, targets, types) minimize_op = get_minimize_op(loss_ops.l2_loss, learning_rate, grad_clip) best_so_far = -1 train_stats = [] test_stats = [] saver = tf.train.Saver() with tf.train.SingularMonitoredSession() as session: # Initializes train and test iterators with the training and test datasets. # The obtained training and test string-handles can be passed to the # dataset_handle placeholder to select the dataset. train_handle = session.run(train_iterator.string_handle()) test_handle = session.run(test_iterator.string_handle()) feed_dict = {p: [x[i] for x in training_data] for i, p in enumerate(placeholders)} session.run(train_iterator.initializer, feed_dict=feed_dict) feed_dict = {p: [x[i] for x in test_data] for i, p in enumerate(placeholders)} session.run(test_iterator.initializer, feed_dict=feed_dict) # Trains model using stochatic gradient descent on the training dataset. n_training_steps = len(training_data) * n_epochs for i in range(n_training_steps): feed_dict = {dataset_handle: train_handle} train_loss, _ = session.run((loss_ops, minimize_op), feed_dict=feed_dict) train_stats.append(train_loss) if (i+1) % measurement_store_interval == 0: # Evaluates model on test dataset. for _ in range(len(test_data)): feed_dict = {dataset_handle: test_handle} test_stats.append(session.run(loss_ops, feed_dict=feed_dict)) # Outputs performance statistics on training and test dataset. _log_stats_and_return_mean_correlation('Train', train_stats) correlation = _log_stats_and_return_mean_correlation('Test', test_stats) train_stats = [] test_stats = [] # Updates best model based on the observed correlation on the test # dataset. if correlation > best_so_far: best_so_far = correlation if checkpoint_path: saver.save(session.raw_session(), checkpoint_path) return best_so_far def apply_model(checkpoint_path: Text, file_pattern: Text, max_files_to_load: Optional[int] = None, time_index: int = 9) -> List[np.ndarray]: """Applies trained GraphModel using tensorflow. Args: checkpoint_path: path from which the model is loaded. file_pattern: pattern matching the files with the data. max_files_to_load: the maximum number of files to load. If None, all files will be loaded. time_index: the time index (0-9) of the target mobilities. Returns: Predictions of the model for all files. """ dataset_kwargs = dict( time_index=time_index, max_files_to_load=max_files_to_load) data = load_data(file_pattern, **dataset_kwargs) tf.reset_default_graph() saver = tf.train.import_meta_graph(checkpoint_path + '.meta') graph = tf.get_default_graph() placeholders = GlassSimulationData( positions=graph.get_tensor_by_name('Placeholder:0'), targets=graph.get_tensor_by_name('Placeholder_1:0'), types=graph.get_tensor_by_name('Placeholder_2:0'), box=graph.get_tensor_by_name('Placeholder_3:0')) prediction_tensor = graph.get_tensor_by_name('Graph_1/Squeeze:0') correlation_tensor = graph.get_tensor_by_name('Squeeze:0') dataset_handle = graph.get_tensor_by_name('Placeholder_4:0') test_initalizer = graph.get_operation_by_name('MakeIterator_1') test_string_handle = graph.get_tensor_by_name('IteratorToStringHandle_1:0') with tf.Session() as session: saver.restore(session, checkpoint_path) handle = session.run(test_string_handle) feed_dict = {p: [x[i] for x in data] for i, p in enumerate(placeholders)} session.run(test_initalizer, feed_dict=feed_dict) predictions = [] correlations = [] for _ in range(len(data)): p, c = session.run((prediction_tensor, correlation_tensor), feed_dict={dataset_handle: handle}) predictions.append(p) correlations.append(c) logging.info('Correlation: %.4f +/- %.4f', np.mean(correlations), np.std(correlations)) return predictions ================================================ FILE: glassy_dynamics/train_binary.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Trains a graph-based network to predict particle mobilities in glasses.""" import os from absl import app from absl import flags from glassy_dynamics import train as train_using_tf from glassy_dynamics import train_using_jax FLAGS = flags.FLAGS flags.DEFINE_string( 'data_directory', '', 'Directory which contains the train and test datasets.') flags.DEFINE_integer( 'time_index', 9, 'The time index of the target mobilities.') flags.DEFINE_integer( 'max_files_to_load', None, 'The maximum number of files to load from the train and test datasets.') flags.DEFINE_string( 'checkpoint_path', None, 'Path used to store a checkpoint of the best model.') flags.DEFINE_boolean( 'use_jax', False, 'Uses jax to train model.') def main(argv): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') train_file_pattern = os.path.join(FLAGS.data_directory, 'train/aggregated*') test_file_pattern = os.path.join(FLAGS.data_directory, 'test/aggregated*') train = train_using_jax if FLAGS.use_jax else train_using_tf train.train_model( train_file_pattern=train_file_pattern, test_file_pattern=test_file_pattern, max_files_to_load=FLAGS.max_files_to_load, time_index=FLAGS.time_index, checkpoint_path=FLAGS.checkpoint_path) if __name__ == '__main__': app.run(main) ================================================ FILE: glassy_dynamics/train_test.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for train.""" import os import numpy as np import tensorflow.compat.v1 as tf from glassy_dynamics import train class TrainTest(tf.test.TestCase): def test_get_targets(self): initial_positions = np.array([[0, 0, 0], [1, 2, 3]]) trajectory_target_positions = [ np.array([[1, 0, 0], [1, 2, 4]]), np.array([[0, 1, 0], [1, 0, 3]]), np.array([[0, 0, 5], [1, 2, 3]]), ] expected_targets = np.array([7.0 / 3.0, 1.0]) targets = train.get_targets(initial_positions, trajectory_target_positions) np.testing.assert_almost_equal(expected_targets, targets) def test_load_data(self): file_pattern = os.path.join(os.path.dirname(__file__), 'testdata', 'test_small.pickle') with self.subTest('ContentAndShapesAreAsExpected'): data = train.load_data(file_pattern, 0) self.assertEqual(len(data), 1) element = data[0] self.assertTupleEqual(element.positions.shape, (20, 3)) self.assertTupleEqual(element.box.shape, (3,)) self.assertTupleEqual(element.targets.shape, (20,)) self.assertTupleEqual(element.types.shape, (20,)) with self.subTest('TargetsGrowAsAFunctionOfTime'): previous_mean_target = 0.0 # Time index 9 refers to 1/e = 0.36 in the IS, and therefore it is between # Time index 5 (0.4) and time index 6 (0.3). for time_index in [0, 1, 2, 3, 4, 5, 9, 6, 7, 8]: data = train.load_data(file_pattern, time_index)[0] current_mean_target = data.targets.mean() self.assertGreater(current_mean_target, previous_mean_target) previous_mean_target = current_mean_target class TensorflowTrainTest(tf.test.TestCase): def test_get_loss_op(self): """Tests the correct calculation of the loss operations.""" prediction = tf.constant([0.0, 1.0, 2.0, 1.0, 2.0], dtype=tf.float32) target = tf.constant([1.0, 25.0, 0.0, 4.0, 2.0], dtype=tf.float32) types = tf.constant([0, 1, 0, 0, 0], dtype=tf.int32) loss_ops = train.get_loss_ops(prediction, target, types) loss = self.evaluate(loss_ops) self.assertAlmostEqual(loss.l1_loss, 1.5) self.assertAlmostEqual(loss.l2_loss, 14.0 / 4.0) self.assertAlmostEqual(loss.correlation, -0.15289416) def test_get_minimize_op(self): """Tests the minimize operation by minimizing a single variable.""" var = tf.Variable([1.0], name='test') loss = var**2 minimize = train.get_minimize_op(loss, 1e-1) with self.session(): tf.global_variables_initializer().run() for _ in range(100): minimize.run() value = var.eval() self.assertLess(abs(value[0]), 0.01) def test_train_model(self): """Tests if we can overfit to a small test dataset.""" file_pattern = os.path.join(os.path.dirname(__file__), 'testdata', 'test_small.pickle') best_correlation_value = train.train_model( train_file_pattern=file_pattern, test_file_pattern=file_pattern, n_epochs=1000, augment_data_using_rotations=False, learning_rate=1e-4, n_recurrences=2, edge_threshold=5, mlp_sizes=(32, 32), measurement_store_interval=1000) # The test dataset contains only a single sample with 20 particles. # Therefore we expect the model to be able to memorize the targets perfectly # if the model works correctly. self.assertGreater(best_correlation_value, 0.99) def test_apply_model(self): """Tests if we can apply a model to a small test dataset.""" checkpoint_path = os.path.join(os.path.dirname(__file__), 'checkpoints', 't044_s09.ckpt') file_pattern = os.path.join(os.path.dirname(__file__), 'testdata', 'test_large.pickle') predictions = train.apply_model(checkpoint_path=checkpoint_path, file_pattern=file_pattern, time_index=0) data = train.load_data(file_pattern, 0) targets = data[0].targets correlation_value = np.corrcoef(predictions[0], targets)[0, 1] self.assertGreater(correlation_value, 0.5) if __name__ == '__main__': tf.test.main() ================================================ FILE: glassy_dynamics/train_using_jax.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training pipeline for the prediction of particle mobilities in glasses.""" import enum import functools import logging import pickle import random import haiku as hk import jax import jax.numpy as jnp import jraph import numpy as np import optax # Only used for file operations. # You can use glob.glob and python's open function to replace the tf usage below # on most platforms. import tensorflow.compat.v1 as tf class ParticleType(enum.IntEnum): """The simulation contains two particle types, identified as type A and B. The dataset encodes the particle type in an integer. - 0 corresponds to particle type A. - 1 corresponds to particle type B. """ A = 0 B = 1 def make_graph_from_static_structure(positions, types, box, edge_threshold): """Returns graph representing the static structure of the glass. Each particle is represented by a node in the graph. The particle type is stored as a node feature. Two particles at a distance less than the threshold are connected by an edge. The relative distance vector is stored as an edge feature. Args: positions: particle positions with shape [n_particles, 3]. types: particle types with shape [n_particles]. box: dimensions of the cubic box that contains the particles with shape [3]. edge_threshold: particles at distance less than threshold are connected by an edge. """ # Calculate pairwise relative distances between particles: shape [n, n, 3]. cross_positions = positions[None, :, :] - positions[:, None, :] # Enforces periodic boundary conditions. box_ = box[None, None, :] cross_positions += (cross_positions < -box_ / 2.).astype(np.float32) * box_ cross_positions -= (cross_positions > box_ / 2.).astype(np.float32) * box_ # Calculates adjacency matrix in a sparse format (indices), based on the given # distances and threshold. distances = np.linalg.norm(cross_positions, axis=-1) indices = np.where(distances < edge_threshold) # Defines graph. nodes = types[:, None] senders = indices[0] receivers = indices[1] edges = cross_positions[indices] return jraph.pad_with_graphs(jraph.GraphsTuple( nodes=nodes.astype(np.float32), n_node=np.reshape(nodes.shape[0], [1]), edges=edges.astype(np.float32), n_edge=np.reshape(edges.shape[0], [1]), globals=np.zeros((1, 1), dtype=np.float32), receivers=receivers.astype(np.int32), senders=senders.astype(np.int32) ), n_node=4097, n_edge=200000) def get_targets(initial_positions, trajectory_target_positions): """Returns the averaged particle mobilities from the sampled trajectories. Args: initial_positions: the initial positions of the particles with shape [n_particles, 3]. trajectory_target_positions: the absolute positions of the particles at the target time for all sampled trajectories, each with shape [n_particles, 3]. """ targets = np.mean([np.linalg.norm(t - initial_positions, axis=-1) for t in trajectory_target_positions], axis=0) return targets.astype(np.float32) def load_data(file_pattern, time_index, max_files_to_load=None): """Returns a graphs and targets of the training or test dataset. Args: file_pattern: pattern matching the files with the simulation data. time_index: the time index of the targets. max_files_to_load: the maximum number of files to load. """ filenames = tf.io.gfile.glob(file_pattern) if max_files_to_load: filenames = filenames[:max_files_to_load] graphs_and_targets = [] for filename in filenames: with tf.io.gfile.GFile(filename, 'rb') as f: data = pickle.load(f) mask = (data['types'] == ParticleType.A).astype(np.int32) # Mask dummy node due to padding mask = np.concatenate([mask, np.zeros((1,), dtype=np.int32)], axis=-1) targets = get_targets( data['positions'], data['trajectory_target_positions'][time_index]) targets = np.concatenate( [targets, np.zeros((1,), dtype=np.float32)], axis=-1) graphs_and_targets.append( (make_graph_from_static_structure( data['positions'].astype(np.float32), data['types'].astype(np.int32), data['box'].astype(np.float32), edge_threshold=2.0), targets, mask)) return graphs_and_targets def apply_random_rotation(graph): """Returns randomly rotated graph representation. The rotation is an element of O(3) with rotation angles multiple of pi/2. This function assumes that the relative particle distances are stored in the edge features. Args: graph: The graphs tuple as defined in `graph_nets.graphs`. """ # Transposes edge features, so that the axes are in the first dimension. # Outputs a tensor of shape [3, n_particles]. xyz = np.transpose(graph.edges) # Random pi/2 rotation(s) permutation = np.array([0, 1, 2], dtype=np.int32) np.random.shuffle(permutation) xyz = xyz[permutation] # Random reflections. symmetry = np.random.randint(0, 2, [3]) symmetry = 1 - 2 * np.reshape(symmetry, [3, 1]).astype(np.float32) xyz = xyz * symmetry edges = np.transpose(xyz) return graph._replace(edges=edges) def network_definition(graph): """Defines a graph neural network. Args: graph: Graphstuple the network processes. Returns: Decoded nodes. """ model_fn = functools.partial( hk.nets.MLP, w_init=hk.initializers.VarianceScaling(1.0), b_init=hk.initializers.VarianceScaling(1.0)) mlp_sizes = (64, 64) num_message_passing_steps = 7 node_encoder = model_fn(output_sizes=mlp_sizes, activate_final=True) edge_encoder = model_fn(output_sizes=mlp_sizes, activate_final=True) node_decoder = model_fn(output_sizes=mlp_sizes + (1,), activate_final=False) node_encoding = node_encoder(graph.nodes) edge_encoding = edge_encoder(graph.edges) graph = graph._replace(nodes=node_encoding, edges=edge_encoding) update_edge_fn = jraph.concatenated_args( model_fn(output_sizes=mlp_sizes, activate_final=True)) update_node_fn = jraph.concatenated_args( model_fn(output_sizes=mlp_sizes, activate_final=True)) gn = jraph.InteractionNetwork( update_edge_fn=update_edge_fn, update_node_fn=update_node_fn, include_sent_messages_in_node_update=True) for _ in range(num_message_passing_steps): graph = graph._replace( nodes=jnp.concatenate([graph.nodes, node_encoding], axis=-1), edges=jnp.concatenate([graph.edges, edge_encoding], axis=-1)) graph = gn(graph) return jnp.squeeze(node_decoder(graph.nodes), axis=-1) def train_model(train_file_pattern, test_file_pattern, max_files_to_load=None, n_epochs=1000, time_index=9, learning_rate=1e-4, grad_clip=1.0, measurement_store_interval=1000, checkpoint_path=None): """Trains GraphModel using tensorflow. Args: train_file_pattern: pattern matching the files with the training data. test_file_pattern: pattern matching the files with the test data. max_files_to_load: the maximum number of train and test files to load. If None, all files will be loaded. n_epochs: the number of passes through the training dataset (epochs). time_index: the time index (0-9) of the target mobilities. learning_rate: the learning rate used by the optimizer. grad_clip: all gradients are clipped to the given value. measurement_store_interval: number of steps between storing objective values (loss and correlation). checkpoint_path: ignored by this implementation. """ if checkpoint_path: logging.warning('The checkpoint_path argument is ignored.') random.seed(42) np.random.seed(42) # Loads train and test dataset. dataset_kwargs = dict( time_index=time_index, max_files_to_load=max_files_to_load) logging.info('Load training data') training_data = load_data(train_file_pattern, **dataset_kwargs) logging.info('Load test data') test_data = load_data(test_file_pattern, **dataset_kwargs) logging.info('Finished loading data') network = hk.without_apply_rng(hk.transform(network_definition)) params = network.init(jax.random.PRNGKey(42), training_data[0][0]) opt_init, opt_update = optax.chain( optax.clip_by_global_norm(grad_clip), optax.scale_by_adam(0.9, 0.999, 1e-8), optax.scale(-learning_rate)) opt_state = opt_init(params) network_apply = jax.jit(network.apply) @jax.jit def loss_fn(params, graph, targets, mask): decoded_nodes = network_apply(params, graph) * mask return (jnp.sum((decoded_nodes - targets)**2 * mask) / jnp.sum(mask)) @jax.jit def update(params, opt_state, graph, targets, mask): loss, grads = jax.value_and_grad(loss_fn)(params, graph, targets, mask) updates, opt_state = opt_update(grads, opt_state) return optax.apply_updates(params, updates), opt_state, loss train_stats = [] i = 0 logging.info('Start training') for epoch in range(n_epochs): logging.info('Start epoch %r', epoch) random.shuffle(training_data) for graph, targets, mask in training_data: graph = apply_random_rotation(graph) params, opt_state, loss = update(params, opt_state, graph, targets, mask) train_stats.append(loss) if (i+1) % measurement_store_interval == 0: logging.info('Start evaluation run') test_stats = [] for test_graph, test_targets, test_mask in test_data: predictions = network_apply(params, test_graph) test_stats.append(np.corrcoef( predictions[test_mask == 1], test_targets[test_mask == 1])[0, 1]) logging.info('Train loss %r', np.mean(train_stats)) logging.info('Test correlation %r', np.mean(test_stats)) train_stats = [] i += 1 ================================================ FILE: graph_matching_networks/README.md ================================================ # Graph Matching Networks for Learning the Similarity of Graph Structured Objects This is the example code for the following ICML 2019 paper. If you use the code here please cite this paper. > Yujia Li, Chenjie Gu, Thomas Dullien, Oriol Vinyals, Pushmeet Kohli. *Graph Matching Networks for Learning the Similarity of Graph Structured Objects*. ICML 2019. [\[arXiv\]](https://arxiv.org/abs/1904.12787). ## Running the code The code is in the format of a colab notebook, which includes: * an example implementation of the model, * an example graph similarity learning task, * an example training loop, and * some attention visualization tools. To launch the notebook in Google colab, [click here](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/graph_matching_networks/graph_matching_networks.ipynb). You can also download the notebook and run it locally with jupyter. The notebook assumes you are on python 3 and have the latest (as of July 24, 2019) tensorflow, sonnet, numpy etc. installed. You can install the dependencies by running `pip3 install --user -r requirements.txt`. ================================================ FILE: graph_matching_networks/graph_matching_networks.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "HrOZEU_OrYTR" }, "source": [ "##### Copyright 2019 Google LLC.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "G9suJlqLrfmP" }, "outputs": [], "source": [ "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "F50gn0G_yZ3s" }, "source": [ "# Graph Matching Networks for Learning the Similarity of Graph Structured Objects\n", "\n", "This is the example code for our ICML 2019 paper. Please refer to the paper for more details:\n", "\n", "\u003e Yujia Li, Chenjie Gu, Thomas Dullien, Oriol Vinyals, Pushmeet Kohli. *Graph Matching Networks for Learning the Similarity of Graph Structured Objects*. ICML 2019. [\\[arXiv\\]](https://arxiv.org/abs/1904.12787)\n", "\n", "\n", "## Graph similarity learning\n", "\n", "Our goal is to learn a similarity function between graphs. Given two graphs $G_1, G_2$, a graph similarity model can be written as a function $f(G_1, G_2)$ that computes a scalar similarity value.\n", "\n", "In this project we build models to learn such a similarity function based on examples of similar / dissimilar pairs or triplets. Because of learning, our model can adapt to different notions of similarity and to different types of graph structure, as long as training data is available.\n", "\n", "In the following we will sometimes use the term \"distance\" and say the model learns a \"distance function\" $d(G_1, G_2)$ between graphs when convenient. But this is just the opposite of a similarity function, and you may simply say $f(G_1, G_2) = - d(G_1, G_2)$." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "4QqVQJxLoYKx" }, "source": [ "## Some dependencies and imports\n", "\n", "If you want to run the notebook locally, make sure you have all the dependencies first. You can use the following command\n", "```\n", "pip3 install --user -r requirements.txt\n", "```\n", "\n", "Note the code should work for both python 3 and 2, but python 3 is recommended." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "-eanBQF6boRu" }, "outputs": [], "source": [ "# Let's disable all the warnings first\n", "import warnings\n", "warnings.simplefilter(\"ignore\")" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "dyu1M3fufCaD" }, "source": [ "These are all the dependencies that will be used in this notebook." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "0Ep7LRdJoZ6O" }, "outputs": [], "source": [ "import abc\n", "import collections\n", "import contextlib\n", "import copy\n", "import random\n", "import time\n", "\n", "import matplotlib.pyplot as plt\n", "import networkx as nx\n", "import numpy as np\n", "import six\n", "import sonnet as snt\n", "import tensorflow as tf" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "fzeL1Fk8zD3S" }, "source": [ "## The models" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "gSYjjfgvffJO" }, "source": [ "### The graph embedding model\n", "\n", "The simpler variant of our model is based on embedding each graph **independently** into a vector and then use an existing distance (or similarity) metric in the vector space to compute the distance between graphs. More concretely, we define\n", "\n", "$$d(G_1, G_2) = d_H(embed(G_1), embed(G_2)),$$\n", "\n", "where $embed$ is a model that maps any graph $G$ into an $H$-dimensional vector, and $d_H$ is a distance metric in that vector space. Typical examples are Euclidean distance in $\\mathbb{R}^H$, i.e. $d_H(x, y) = \\sqrt{\\sum_{i=1}^H (x_i - y_i)^2}$, or Hamming distance in $H$-dimensional space of binary vectors, i.e. $d_H(x, y)=\\sum_{i=1}^H \\mathbb{I}[x_i \\ne y_i]$.\n", "\n", "Each graph input contains a set of nodes $V$ and edges $E$. Each node $i\\in V$ may have a feature vector $x_i$ associated with it, and each edge $(i, j)\\in E$ may also have a feature vector $x_{ij}$ encoding e.g. edge type or attributes. The embedding model will therefore jointly reason about the graph structure as well as the graph features to come up with an embedding that reflects the notion of similarity described by the training examples.\n", "\n", "The embedding model is composed of 3 parts:\n", "1. An encoder that maps $x_i$ and $x_{ij}$ into a nice hidden representation space. Here we use separate MLPs (fully connected neural nets) for node and edge representations:\n", "$$\\begin{array}{rcl}\n", "h_i^{(0)} \u0026=\u0026 \\mathrm{MLP_{node}}(x_i) \\\\\n", "e_{ij} \u0026=\u0026 \\mathrm{MLP_{edge}}(x_{ij})\n", "\\end{array}\n", "$$\n", "\n", "2. A graph neural network (GNN) that communicates information across the graph and computes node representations that encode local neighborhood structure and semantics. More concretely, the GNN computes node representations through an iterative message passing process. In the $t$-th round of message passing, we compute a message vector on each edge, and then each node aggregates all the incoming messages and updates its own representation:\n", "$$\\begin{array}{rcl}\n", "m_{i\\rightarrow j} \u0026=\u0026 f_\\mathrm{message}(h_i^{(t)}, h_j^{(t)}, e_{ij}) \\\\\n", "h_i^{(t+1)} \u0026=\u0026 f_\\mathrm{node}(h_i^{(t)}, \\sum_{j:(j,i)\\in E} m_{j\\rightarrow i})\n", "\\end{array}\n", "$$\n", "Here both $f_\\mathrm{message}$ and $f_\\mathrm{node}$ are neural modules. We use MLPs for $f_\\mathrm{message}$, while $f_\\mathrm{node}$ can also be MLPs or even recurrent neural network cores like LSTMs or GRUs. The GNNs have the nice property of being equivariant to node permutations, and nodes on isomorphic graphs (with the same node and edge features) will have the same representations regardless of the ordering.\n", "\n", "3. After we obtained the final node representations after $T$ rounds of message passing, we aggregate across them to get graph representations $h_G=f_G(\\{h_i^{(T)}\\}_{i\\in V})$. This could be implemented by a simple sum that reduces the node representations into a single vector and then transform it:\n", "$$h_G = \\mathrm{MLP_G}\\left(\\sum_{i\\in V} h_i^{(T)}\\right).$$\n", "We used the following gated aggregation module proposed in [Li et al., 2015](https://arxiv.org/abs/1511.05493) which we found to work consistently better:\n", "$$h_G = \\mathrm{MLP_G}\\left(\\sum_{i\\in V} \\sigma(\\mathrm{MLP_{gate}}(h_i^{(T)})) \\odot \\mathrm{MLP}(h_i^{(T)})\\right).$$\n", "The key to this function is to make sure it is invariant to node orderings, both the above forms satisfy this condition. The gated variant gives the model the capacity to explicitly modulate each node's contribution to the graph representation." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "u8eVpPWEjZ_O" }, "source": [ "#### The graph encoder" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "b8dFQUFwjcCi" }, "outputs": [], "source": [ "class GraphEncoder(snt.AbstractModule):\n", " \"\"\"Encoder module that projects node and edge features to some embeddings.\"\"\"\n", "\n", " def __init__(self,\n", " node_hidden_sizes=None,\n", " edge_hidden_sizes=None,\n", " name='graph-encoder'):\n", " \"\"\"Constructor.\n", "\n", " Args:\n", " node_hidden_sizes: if provided should be a list of ints, hidden sizes of\n", " node encoder network, the last element is the size of the node outputs.\n", " If not provided, node features will pass through as is.\n", " edge_hidden_sizes: if provided should be a list of ints, hidden sizes of\n", " edge encoder network, the last element is the size of the edge outptus.\n", " If not provided, edge features will pass through as is.\n", " name: name of this module.\n", " \"\"\"\n", " super(GraphEncoder, self).__init__(name=name)\n", "\n", " # this also handles the case of an empty list\n", " self._node_hidden_sizes = node_hidden_sizes if node_hidden_sizes else None\n", " self._edge_hidden_sizes = edge_hidden_sizes\n", "\n", " def _build(self, node_features, edge_features=None):\n", " \"\"\"Encode node and edge features.\n", "\n", " Args:\n", " node_features: [n_nodes, node_feat_dim] float tensor.\n", " edge_features: if provided, should be [n_edges, edge_feat_dim] float\n", " tensor.\n", "\n", " Returns:\n", " node_outputs: [n_nodes, node_embedding_dim] float tensor, node embeddings.\n", " edge_outputs: if edge_features is not None and edge_hidden_sizes is not\n", " None, this is [n_edges, edge_embedding_dim] float tensor, edge\n", " embeddings; otherwise just the input edge_features.\n", " \"\"\"\n", " if self._node_hidden_sizes is None:\n", " node_outputs = node_features\n", " else:\n", " node_outputs = snt.nets.MLP(\n", " self._node_hidden_sizes, name='node-feature-mlp')(node_features)\n", "\n", " if edge_features is None or self._edge_hidden_sizes is None:\n", " edge_outputs = edge_features\n", " else:\n", " edge_outputs = snt.nets.MLP(\n", " self._edge_hidden_sizes, name='edge-feature-mlp')(edge_features)\n", "\n", " return node_outputs, edge_outputs" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "goVx4QGClJCW" }, "source": [ "#### The message passing layers" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "5LJIBWdvlIWl" }, "outputs": [], "source": [ "def graph_prop_once(node_states,\n", " from_idx,\n", " to_idx,\n", " message_net,\n", " aggregation_module=tf.unsorted_segment_sum,\n", " edge_features=None):\n", " \"\"\"One round of propagation (message passing) in a graph.\n", "\n", " Args:\n", " node_states: [n_nodes, node_state_dim] float tensor, node state vectors, one\n", " row for each node.\n", " from_idx: [n_edges] int tensor, index of the from nodes.\n", " to_idx: [n_edges] int tensor, index of the to nodes.\n", " message_net: a network that maps concatenated edge inputs to message\n", " vectors.\n", " aggregation_module: a module that aggregates messages on edges to aggregated\n", " messages for each node. Should be a callable and can be called like the\n", " following,\n", " `aggregated_messages = aggregation_module(messages, to_idx, n_nodes)`,\n", " where messages is [n_edges, edge_message_dim] tensor, to_idx is the index\n", " of the to nodes, i.e. where each message should go to, and n_nodes is an\n", " int which is the number of nodes to aggregate into.\n", " edge_features: if provided, should be a [n_edges, edge_feature_dim] float\n", " tensor, extra features for each edge.\n", "\n", " Returns:\n", " aggregated_messages: an [n_nodes, edge_message_dim] float tensor, the\n", " aggregated messages, one row for each node.\n", " \"\"\"\n", " from_states = tf.gather(node_states, from_idx)\n", " to_states = tf.gather(node_states, to_idx)\n", "\n", " edge_inputs = [from_states, to_states]\n", " if edge_features is not None:\n", " edge_inputs.append(edge_features)\n", "\n", " edge_inputs = tf.concat(edge_inputs, axis=-1)\n", " messages = message_net(edge_inputs)\n", "\n", " return aggregation_module(messages, to_idx, tf.shape(node_states)[0])\n", "\n", "\n", "class GraphPropLayer(snt.AbstractModule):\n", " \"\"\"Implementation of a graph propagation (message passing) layer.\"\"\"\n", "\n", " def __init__(self,\n", " node_state_dim,\n", " edge_hidden_sizes,\n", " node_hidden_sizes,\n", " edge_net_init_scale=0.1,\n", " node_update_type='residual',\n", " use_reverse_direction=True,\n", " reverse_dir_param_different=True,\n", " layer_norm=False,\n", " name='graph-net'):\n", " \"\"\"Constructor.\n", "\n", " Args:\n", " node_state_dim: int, dimensionality of node states.\n", " edge_hidden_sizes: list of ints, hidden sizes for the edge message\n", " net, the last element in the list is the size of the message vectors.\n", " node_hidden_sizes: list of ints, hidden sizes for the node update\n", " net.\n", " edge_net_init_scale: initialization scale for the edge networks. This\n", " is typically set to a small value such that the gradient does not blow\n", " up.\n", " node_update_type: type of node updates, one of {mlp, gru, residual}.\n", " use_reverse_direction: set to True to also propagate messages in the\n", " reverse direction.\n", " reverse_dir_param_different: set to True to have the messages computed\n", " using a different set of parameters than for the forward direction.\n", " layer_norm: set to True to use layer normalization in a few places.\n", " name: name of this module.\n", " \"\"\"\n", " super(GraphPropLayer, self).__init__(name=name)\n", "\n", " self._node_state_dim = node_state_dim\n", " self._edge_hidden_sizes = edge_hidden_sizes[:]\n", "\n", " # output size is node_state_dim\n", " self._node_hidden_sizes = node_hidden_sizes[:] + [node_state_dim]\n", " self._edge_net_init_scale = edge_net_init_scale\n", " self._node_update_type = node_update_type\n", "\n", " self._use_reverse_direction = use_reverse_direction\n", " self._reverse_dir_param_different = reverse_dir_param_different\n", "\n", " self._layer_norm = layer_norm\n", "\n", " def _compute_aggregated_messages(\n", " self, node_states, from_idx, to_idx, edge_features=None):\n", " \"\"\"Compute aggregated messages for each node.\n", "\n", " Args:\n", " node_states: [n_nodes, input_node_state_dim] float tensor, node states.\n", " from_idx: [n_edges] int tensor, from node indices for each edge.\n", " to_idx: [n_edges] int tensor, to node indices for each edge.\n", " edge_features: if not None, should be [n_edges, edge_embedding_dim]\n", " tensor, edge features.\n", "\n", " Returns:\n", " aggregated_messages: [n_nodes, aggregated_message_dim] float tensor, the\n", " aggregated messages for each node.\n", " \"\"\"\n", " self._message_net = snt.nets.MLP(\n", " self._edge_hidden_sizes,\n", " initializers={\n", " 'w': tf.variance_scaling_initializer(\n", " scale=self._edge_net_init_scale),\n", " 'b': tf.zeros_initializer()},\n", " name='message-mlp')\n", "\n", " aggregated_messages = graph_prop_once(\n", " node_states,\n", " from_idx,\n", " to_idx,\n", " self._message_net,\n", " aggregation_module=tf.unsorted_segment_sum,\n", " edge_features=edge_features)\n", "\n", " # optionally compute message vectors in the reverse direction\n", " if self._use_reverse_direction:\n", " if self._reverse_dir_param_different:\n", " self._reverse_message_net = snt.nets.MLP(\n", " self._edge_hidden_sizes,\n", " initializers={\n", " 'w': tf.variance_scaling_initializer(\n", " scale=self._edge_net_init_scale),\n", " 'b': tf.zeros_initializer()},\n", " name='reverse-message-mlp')\n", " else:\n", " self._reverse_message_net = self._message_net\n", "\n", " reverse_aggregated_messages = graph_prop_once(\n", " node_states,\n", " to_idx,\n", " from_idx,\n", " self._reverse_message_net,\n", " aggregation_module=tf.unsorted_segment_sum,\n", " edge_features=edge_features)\n", "\n", " aggregated_messages += reverse_aggregated_messages\n", "\n", " if self._layer_norm:\n", " aggregated_messages = snt.LayerNorm()(aggregated_messages)\n", "\n", " return aggregated_messages\n", "\n", " def _compute_node_update(self,\n", " node_states,\n", " node_state_inputs,\n", " node_features=None):\n", " \"\"\"Compute node updates.\n", "\n", " Args:\n", " node_states: [n_nodes, node_state_dim] float tensor, the input node\n", " states.\n", " node_state_inputs: a list of tensors used to compute node updates. Each\n", " element tensor should have shape [n_nodes, feat_dim], where feat_dim can\n", " be different. These tensors will be concatenated along the feature\n", " dimension.\n", " node_features: extra node features if provided, should be of size\n", " [n_nodes, extra_node_feat_dim] float tensor, can be used to implement\n", " different types of skip connections.\n", "\n", " Returns:\n", " new_node_states: [n_nodes, node_state_dim] float tensor, the new node\n", " state tensor.\n", "\n", " Raises:\n", " ValueError: if node update type is not supported.\n", " \"\"\"\n", " if self._node_update_type in ('mlp', 'residual'):\n", " node_state_inputs.append(node_states)\n", " if node_features is not None:\n", " node_state_inputs.append(node_features)\n", "\n", " if len(node_state_inputs) == 1:\n", " node_state_inputs = node_state_inputs[0]\n", " else:\n", " node_state_inputs = tf.concat(node_state_inputs, axis=-1)\n", "\n", " if self._node_update_type == 'gru':\n", " _, new_node_states = snt.GRU(self._node_state_dim)(\n", " node_state_inputs, node_states)\n", " return new_node_states\n", " else:\n", " mlp_output = snt.nets.MLP(\n", " self._node_hidden_sizes, name='node-mlp')(node_state_inputs)\n", " if self._layer_norm:\n", " mlp_output = snt.LayerNorm()(mlp_output)\n", " if self._node_update_type == 'mlp':\n", " return mlp_output\n", " elif self._node_update_type == 'residual':\n", " return node_states + mlp_output\n", " else:\n", " raise ValueError('Unknown node update type %s' % self._node_update_type)\n", "\n", " def _build(self,\n", " node_states,\n", " from_idx,\n", " to_idx,\n", " edge_features=None,\n", " node_features=None):\n", " \"\"\"Run one propagation step.\n", "\n", " Args:\n", " node_states: [n_nodes, input_node_state_dim] float tensor, node states.\n", " from_idx: [n_edges] int tensor, from node indices for each edge.\n", " to_idx: [n_edges] int tensor, to node indices for each edge.\n", " edge_features: if not None, should be [n_edges, edge_embedding_dim]\n", " tensor, edge features.\n", " node_features: extra node features if provided, should be of size\n", " [n_nodes, extra_node_feat_dim] float tensor, can be used to implement\n", " different types of skip connections.\n", "\n", " Returns:\n", " node_states: [n_nodes, node_state_dim] float tensor, new node states.\n", " \"\"\"\n", " aggregated_messages = self._compute_aggregated_messages(\n", " node_states, from_idx, to_idx, edge_features=edge_features)\n", "\n", " return self._compute_node_update(node_states,\n", " [aggregated_messages],\n", " node_features=node_features)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ubKr-G_Sq95j" }, "source": [ "#### Graph aggregator" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "NmE-8Xpnq9Zi" }, "outputs": [], "source": [ "AGGREGATION_TYPE = {\n", " 'sum': tf.unsorted_segment_sum,\n", " 'mean': tf.unsorted_segment_mean,\n", " 'sqrt_n': tf.unsorted_segment_sqrt_n,\n", " 'max': tf.unsorted_segment_max,\n", "}\n", "\n", "\n", "class GraphAggregator(snt.AbstractModule):\n", " \"\"\"This module computes graph representations by aggregating from parts.\"\"\"\n", "\n", " def __init__(self,\n", " node_hidden_sizes,\n", " graph_transform_sizes=None,\n", " gated=True,\n", " aggregation_type='sum',\n", " name='graph-aggregator'):\n", " \"\"\"Constructor.\n", "\n", " Args:\n", " node_hidden_sizes: the hidden layer sizes of the node transformation nets.\n", " The last element is the size of the aggregated graph representation.\n", " graph_transform_sizes: sizes of the transformation layers on top of the\n", " graph representations. The last element of this list is the final\n", " dimensionality of the output graph representations.\n", " gated: set to True to do gated aggregation, False not to.\n", " aggregation_type: one of {sum, max, mean, sqrt_n}.\n", " name: name of this module.\n", " \"\"\"\n", " super(GraphAggregator, self).__init__(name=name)\n", "\n", " self._node_hidden_sizes = node_hidden_sizes\n", " self._graph_transform_sizes = graph_transform_sizes\n", " self._graph_state_dim = node_hidden_sizes[-1]\n", " self._gated = gated\n", " self._aggregation_type = aggregation_type\n", " self._aggregation_op = AGGREGATION_TYPE[aggregation_type]\n", "\n", " def _build(self, node_states, graph_idx, n_graphs):\n", " \"\"\"Compute aggregated graph representations.\n", "\n", " Args:\n", " node_states: [n_nodes, node_state_dim] float tensor, node states of a\n", " batch of graphs concatenated together along the first dimension.\n", " graph_idx: [n_nodes] int tensor, graph ID for each node.\n", " n_graphs: integer, number of graphs in this batch.\n", "\n", " Returns:\n", " graph_states: [n_graphs, graph_state_dim] float tensor, graph\n", " representations, one row for each graph.\n", " \"\"\"\n", " node_hidden_sizes = self._node_hidden_sizes\n", " if self._gated:\n", " node_hidden_sizes[-1] = self._graph_state_dim * 2\n", "\n", " node_states_g = snt.nets.MLP(\n", " node_hidden_sizes, name='node-state-g-mlp')(node_states)\n", "\n", " if self._gated:\n", " gates = tf.nn.sigmoid(node_states_g[:, :self._graph_state_dim])\n", " node_states_g = node_states_g[:, self._graph_state_dim:] * gates\n", "\n", " graph_states = self._aggregation_op(node_states_g, graph_idx, n_graphs)\n", "\n", " # unsorted_segment_max does not handle empty graphs in the way we want\n", " # it assigns the lowest possible float to empty segments, we want to reset\n", " # them to zero.\n", " if self._aggregation_type == 'max':\n", " # reset everything that's smaller than -1e5 to 0.\n", " graph_states *= tf.cast(graph_states \u003e -1e5, tf.float32)\n", "\n", " # transform the reduced graph states further\n", "\n", " # pylint: disable=g-explicit-length-test\n", " if (self._graph_transform_sizes is not None and\n", " len(self._graph_transform_sizes) \u003e 0):\n", " graph_states = snt.nets.MLP(\n", " self._graph_transform_sizes, name='graph-transform-mlp')(graph_states)\n", "\n", " return graph_states" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vYMDsa4nmg-C" }, "source": [ "#### Putting them together" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "M7MvynyjmkVq" }, "outputs": [], "source": [ "class GraphEmbeddingNet(snt.AbstractModule):\n", " \"\"\"A graph to embedding mapping network.\"\"\"\n", "\n", " def __init__(self,\n", " encoder,\n", " aggregator,\n", " node_state_dim,\n", " edge_hidden_sizes,\n", " node_hidden_sizes,\n", " n_prop_layers,\n", " share_prop_params=False,\n", " edge_net_init_scale=0.1,\n", " node_update_type='residual',\n", " use_reverse_direction=True,\n", " reverse_dir_param_different=True,\n", " layer_norm=False,\n", " name='graph-embedding-net'):\n", " \"\"\"Constructor.\n", "\n", " Args:\n", " encoder: GraphEncoder, encoder that maps features to embeddings.\n", " aggregator: GraphAggregator, aggregator that produces graph\n", " representations.\n", " node_state_dim: dimensionality of node states.\n", " edge_hidden_sizes: sizes of the hidden layers of the edge message nets.\n", " node_hidden_sizes: sizes of the hidden layers of the node update nets.\n", " n_prop_layers: number of graph propagation layers.\n", " share_prop_params: set to True to share propagation parameters across all\n", " graph propagation layers, False not to.\n", " edge_net_init_scale: scale of initialization for the edge message nets.\n", " node_update_type: type of node updates, one of {mlp, gru, residual}.\n", " use_reverse_direction: set to True to also propagate messages in the\n", " reverse direction.\n", " reverse_dir_param_different: set to True to have the messages computed\n", " using a different set of parameters than for the forward direction.\n", " layer_norm: set to True to use layer normalization in a few places.\n", " name: name of this module.\n", " \"\"\"\n", " super(GraphEmbeddingNet, self).__init__(name=name)\n", "\n", " self._encoder = encoder\n", " self._aggregator = aggregator\n", " self._node_state_dim = node_state_dim\n", " self._edge_hidden_sizes = edge_hidden_sizes\n", " self._node_hidden_sizes = node_hidden_sizes\n", " self._n_prop_layers = n_prop_layers\n", " self._share_prop_params = share_prop_params\n", " self._edge_net_init_scale = edge_net_init_scale\n", " self._node_update_type = node_update_type\n", " self._use_reverse_direction = use_reverse_direction\n", " self._reverse_dir_param_different = reverse_dir_param_different\n", " self._layer_norm = layer_norm\n", "\n", " self._prop_layers = []\n", " self._layer_class = GraphPropLayer\n", "\n", " def _build_layer(self, layer_id):\n", " \"\"\"Build one layer in the network.\"\"\"\n", " return self._layer_class(\n", " self._node_state_dim,\n", " self._edge_hidden_sizes,\n", " self._node_hidden_sizes,\n", " edge_net_init_scale=self._edge_net_init_scale,\n", " node_update_type=self._node_update_type,\n", " use_reverse_direction=self._use_reverse_direction,\n", " reverse_dir_param_different=self._reverse_dir_param_different,\n", " layer_norm=self._layer_norm,\n", " name='graph-prop-%d' % layer_id)\n", "\n", " def _apply_layer(self,\n", " layer,\n", " node_states,\n", " from_idx,\n", " to_idx,\n", " graph_idx,\n", " n_graphs,\n", " edge_features):\n", " \"\"\"Apply one layer on the given inputs.\"\"\"\n", " del graph_idx, n_graphs\n", " return layer(node_states, from_idx, to_idx, edge_features=edge_features)\n", "\n", " def _build(self,\n", " node_features,\n", " edge_features,\n", " from_idx,\n", " to_idx,\n", " graph_idx,\n", " n_graphs):\n", " \"\"\"Compute graph representations.\n", "\n", " Args:\n", " node_features: [n_nodes, node_feat_dim] float tensor.\n", " edge_features: [n_edges, edge_feat_dim] float tensor.\n", " from_idx: [n_edges] int tensor, index of the from node for each edge.\n", " to_idx: [n_edges] int tensor, index of the to node for each edge.\n", " graph_idx: [n_nodes] int tensor, graph id for each node.\n", " n_graphs: int, number of graphs in the batch.\n", "\n", " Returns:\n", " graph_representations: [n_graphs, graph_representation_dim] float tensor,\n", " graph representations.\n", " \"\"\"\n", " if len(self._prop_layers) \u003c self._n_prop_layers:\n", " # build the layers\n", " for i in range(self._n_prop_layers):\n", " if i == 0 or not self._share_prop_params:\n", " layer = self._build_layer(i)\n", " else:\n", " layer = self._prop_layers[0]\n", " self._prop_layers.append(layer)\n", "\n", " node_features, edge_features = self._encoder(node_features, edge_features)\n", " node_states = node_features\n", "\n", " layer_outputs = [node_states]\n", "\n", " for layer in self._prop_layers:\n", " # node_features could be wired in here as well, leaving it out for now as\n", " # it is already in the inputs\n", " node_states = self._apply_layer(\n", " layer,\n", " node_states,\n", " from_idx,\n", " to_idx,\n", " graph_idx,\n", " n_graphs,\n", " edge_features)\n", " layer_outputs.append(node_states)\n", "\n", " # these tensors may be used e.g. for visualization\n", " self._layer_outputs = layer_outputs\n", " return self._aggregator(node_states, graph_idx, n_graphs)\n", "\n", " def reset_n_prop_layers(self, n_prop_layers):\n", " \"\"\"Set n_prop_layers to the provided new value.\n", "\n", " This allows us to train with certain number of propagation layers and\n", " evaluate with a different number of propagation layers.\n", "\n", " This only works if n_prop_layers is smaller than the number used for\n", " training, or when share_prop_params is set to True, in which case this can\n", " be arbitrarily large.\n", "\n", " Args:\n", " n_prop_layers: the new number of propagation layers to set.\n", " \"\"\"\n", " self._n_prop_layers = n_prop_layers\n", "\n", " @property\n", " def n_prop_layers(self):\n", " return self._n_prop_layers\n", "\n", " def get_layer_outputs(self):\n", " \"\"\"Get the outputs at each layer.\"\"\"\n", " if hasattr(self, '_layer_outputs'):\n", " return self._layer_outputs\n", " else:\n", " raise ValueError('No layer outputs available.')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "rVUVjA1TfaDN" }, "source": [ "### The graph matching networks\n", "\n", "The graph matching networks (GMNs) compute the similarity score for a pair of graphs jointly on the pair. In our current formulation, it still computes a representation for each graph, but the representations for a pair of graphs are computed jointly on the pair, through a cross-graph attention-based matching mechanism.\n", "\n", "More concretely, the graph matching model can be formulated as\n", "\n", "$$d(G_1, G_2) = d_H(embed\\_and\\_match(G_1, G_2))$$\n", "\n", "where $embed\\_and\\_match(G_1, G_2)$ returns a pair of graph representations.\n", "\n", "Similar to the embedding model, our GMNs computes graph representations through 3 steps. The difference to the embedding model is in the message passing step, where each node not only gets messages from within the same graph, but also gets cross-graph messages by attending to all the nodes in the other graph. This can be formulated as follows.\n", "\n", "We first have within-graph messages as before:\n", "$$\n", "m_{i\\rightarrow j} = f_\\mathrm{message}(h_i^{(t)}, h_j^{(t)}, e_{ij}).\n", "$$\n", "\n", "In addition, we also allow each node in one graph to attend to all the other nodes in the other graph. The cross graph attention weight (node $i$ in one graph attending to node $j$ in the other graph, and vice versa) is computed as\n", "$$\\begin{array}{rcl}\n", "a_{i\\rightarrow j} \u0026=\u0026 \\frac{\\exp(s(h_i^{(t)}, h_j^{(t)}))}{\\sum_j \\exp(s(h_i^{(t)}, h_j^{(t)}))} \\\\\n", "a_{j\\rightarrow i} \u0026=\u0026 \\frac{\\exp(s(h_i^{(t)}, h_j^{(t)}))}{\\sum_i \\exp(s(h_i^{(t)}, h_j^{(t)}))},\n", "\\end{array}\n", "$$\n", "where $s(., .)$ is again a vector space similarity function, like Euclidean, dot-product or cosine. Also note the different indices being summed over in the normalizers.\n", "\n", "The cross-graph message is then computed as\n", "$$\\begin{array}{rcl}\n", "\\mu_i \u0026=\u0026 \\sum_j a_{i\\rightarrow j} (h_i^{(t)} - h_j^{(t)}) = h_i^{(t)} - \\sum_j a_{i\\rightarrow j} h_j^{(t)}, \\\\\n", "\\mu_j \u0026=\u0026 \\sum_i a_{j\\rightarrow i} (h_j^{(t)} - h_i^{(t)}) = h_j^{(t)} - \\sum_i a_{j\\rightarrow i} h_i^{(t)}.\n", "\\end{array}\n", "$$\n", "Here we are computing an attention-weighted sum of all the node representations from the other graph, and then take the difference. This is essentially **matching** one node in one graph to nodes most similar to it in the other graph, and then compute the difference.\n", "\n", "The node updates are then computed as\n", "$$\n", "h_i^{(t+1)} = f_\\mathrm{node}\\left(h_i^{(t)}, \\sum_{j:(j,i)\\in E} m_{j\\rightarrow i}, \\mu_i\\right).\n", "$$\n", "\n", "The graph encoder and the graph aggregators are the same as in the embedding model." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "pAcqRtr4mvbK" }, "source": [ "#### A few similarity functions\n", "\n", "These are the functions $s(., .)$ that will be used in the cross-graph attention." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "vhZWiK6vzDGW" }, "outputs": [], "source": [ "def pairwise_euclidean_similarity(x, y):\n", " \"\"\"Compute the pairwise Euclidean similarity between x and y.\n", "\n", " This function computes the following similarity value between each pair of x_i\n", " and y_j: s(x_i, y_j) = -|x_i - y_j|^2.\n", "\n", " Args:\n", " x: NxD float tensor.\n", " y: MxD float tensor.\n", "\n", " Returns:\n", " s: NxM float tensor, the pairwise euclidean similarity.\n", " \"\"\"\n", " s = 2 * tf.matmul(x, y, transpose_b=True)\n", " diag_x = tf.reduce_sum(x * x, axis=-1, keepdims=True)\n", " diag_y = tf.reshape(tf.reduce_sum(y * y, axis=-1), (1, -1))\n", " return s - diag_x - diag_y\n", "\n", "\n", "def pairwise_dot_product_similarity(x, y):\n", " \"\"\"Compute the dot product similarity between x and y.\n", "\n", " This function computes the following similarity value between each pair of x_i\n", " and y_j: s(x_i, y_j) = x_i^T y_j.\n", "\n", " Args:\n", " x: NxD float tensor.\n", " y: MxD float tensor.\n", "\n", " Returns:\n", " s: NxM float tensor, the pairwise dot product similarity.\n", " \"\"\"\n", " return tf.matmul(x, y, transpose_b=True)\n", "\n", "\n", "def pairwise_cosine_similarity(x, y):\n", " \"\"\"Compute the cosine similarity between x and y.\n", "\n", " This function computes the following similarity value between each pair of x_i\n", " and y_j: s(x_i, y_j) = x_i^T y_j / (|x_i||y_j|).\n", "\n", " Args:\n", " x: NxD float tensor.\n", " y: MxD float tensor.\n", "\n", " Returns:\n", " s: NxM float tensor, the pairwise cosine similarity.\n", " \"\"\"\n", " x = tf.nn.l2_normalize(x, axis=-1)\n", " y = tf.nn.l2_normalize(y, axis=-1)\n", " return tf.matmul(x, y, transpose_b=True)\n", "\n", "\n", "PAIRWISE_SIMILARITY_FUNCTION = {\n", " 'euclidean': pairwise_euclidean_similarity,\n", " 'dotproduct': pairwise_dot_product_similarity,\n", " 'cosine': pairwise_cosine_similarity,\n", "}\n", "\n", "\n", "def get_pairwise_similarity(name):\n", " \"\"\"Get pairwise similarity metric by name.\n", "\n", " Args:\n", " name: string, name of the similarity metric, one of {dot-product, cosine,\n", " euclidean}.\n", "\n", " Returns:\n", " similarity: a (x, y) -\u003e sim function.\n", "\n", " Raises:\n", " ValueError: if name is not supported.\n", " \"\"\"\n", " if name not in PAIRWISE_SIMILARITY_FUNCTION:\n", " raise ValueError('Similarity metric name \"%s\" not supported.' % name)\n", " else:\n", " return PAIRWISE_SIMILARITY_FUNCTION[name]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "wpqaeKLJm_x4" }, "source": [ "#### The cross-graph attention\n", "\n", "We implement this cross-graph attention in batches of pairs." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "CfO-r0bdm_DB" }, "outputs": [], "source": [ "def compute_cross_attention(x, y, sim):\n", " \"\"\"Compute cross attention.\n", "\n", " x_i attend to y_j:\n", " a_{i-\u003ej} = exp(sim(x_i, y_j)) / sum_j exp(sim(x_i, y_j))\n", " y_j attend to x_i:\n", " a_{j-\u003ei} = exp(sim(x_i, y_j)) / sum_i exp(sim(x_i, y_j))\n", " attention_x = sum_j a_{i-\u003ej} y_j\n", " attention_y = sum_i a_{j-\u003ei} x_i\n", "\n", " Args:\n", " x: NxD float tensor.\n", " y: MxD float tensor.\n", " sim: a (x, y) -\u003e similarity function.\n", "\n", " Returns:\n", " attention_x: NxD float tensor.\n", " attention_y: NxD float tensor.\n", " \"\"\"\n", " a = sim(x, y)\n", " a_x = tf.nn.softmax(a, axis=1) # i-\u003ej\n", " a_y = tf.nn.softmax(a, axis=0) # j-\u003ei\n", " attention_x = tf.matmul(a_x, y)\n", " attention_y = tf.matmul(a_y, x, transpose_a=True)\n", " return attention_x, attention_y\n", "\n", "\n", "def batch_block_pair_attention(data,\n", " block_idx,\n", " n_blocks,\n", " similarity='dotproduct'):\n", " \"\"\"Compute batched attention between pairs of blocks.\n", "\n", " This function partitions the batch data into blocks according to block_idx.\n", " For each pair of blocks, x = data[block_idx == 2i], and\n", " y = data[block_idx == 2i+1], we compute\n", "\n", " x_i attend to y_j:\n", " a_{i-\u003ej} = exp(sim(x_i, y_j)) / sum_j exp(sim(x_i, y_j))\n", " y_j attend to x_i:\n", " a_{j-\u003ei} = exp(sim(x_i, y_j)) / sum_i exp(sim(x_i, y_j))\n", "\n", " and\n", "\n", " attention_x = sum_j a_{i-\u003ej} y_j\n", " attention_y = sum_i a_{j-\u003ei} x_i.\n", "\n", " Args:\n", " data: NxD float tensor.\n", " block_idx: N-dim int tensor.\n", " n_blocks: integer.\n", " similarity: a string, the similarity metric.\n", "\n", " Returns:\n", " attention_output: NxD float tensor, each x_i replaced by attention_x_i.\n", "\n", " Raises:\n", " ValueError: if n_blocks is not an integer or not a multiple of 2.\n", " \"\"\"\n", " if not isinstance(n_blocks, int):\n", " raise ValueError('n_blocks (%s) has to be an integer.' % str(n_blocks))\n", "\n", " if n_blocks % 2 != 0:\n", " raise ValueError('n_blocks (%d) must be a multiple of 2.' % n_blocks)\n", "\n", " sim = get_pairwise_similarity(similarity)\n", "\n", " results = []\n", "\n", " # This is probably better than doing boolean_mask for each i\n", " partitions = tf.dynamic_partition(data, block_idx, n_blocks)\n", "\n", " # It is rather complicated to allow n_blocks be a tf tensor and do this in a\n", " # dynamic loop, and probably unnecessary to do so. Therefore we are\n", " # restricting n_blocks to be a integer constant here and using the plain for\n", " # loop.\n", " for i in range(0, n_blocks, 2):\n", " x = partitions[i]\n", " y = partitions[i + 1]\n", " attention_x, attention_y = compute_cross_attention(x, y, sim)\n", " results.append(attention_x)\n", " results.append(attention_y)\n", "\n", " results = tf.concat(results, axis=0)\n", " # the shape of the first dimension is lost after concat, reset it back\n", " results.set_shape(data.shape)\n", " return results" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "AAj9kMygnPch" }, "source": [ "#### Graph matching layer and graph matching networks\n", "\n", "This only involves a small set of changes from the graph embedding model." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "gzfRNzF6nOyZ" }, "outputs": [], "source": [ "class GraphPropMatchingLayer(GraphPropLayer):\n", " \"\"\"A graph propagation layer that also does cross graph matching.\n", "\n", " It assumes the incoming graph data is batched and paired, i.e. graph 0 and 1\n", " forms the first pair and graph 2 and 3 are the second pair etc., and computes\n", " cross-graph attention-based matching for each pair.\n", " \"\"\"\n", "\n", " def _build(self,\n", " node_states,\n", " from_idx,\n", " to_idx,\n", " graph_idx,\n", " n_graphs,\n", " similarity='dotproduct',\n", " edge_features=None,\n", " node_features=None):\n", " \"\"\"Run one propagation step with cross-graph matching.\n", "\n", " Args:\n", " node_states: [n_nodes, node_state_dim] float tensor, node states.\n", " from_idx: [n_edges] int tensor, from node indices for each edge.\n", " to_idx: [n_edges] int tensor, to node indices for each edge.\n", " graph_idx: [n_onodes] int tensor, graph id for each node.\n", " n_graphs: integer, number of graphs in the batch.\n", " similarity: type of similarity to use for the cross graph attention.\n", " edge_features: if not None, should be [n_edges, edge_feat_dim] tensor,\n", " extra edge features.\n", " node_features: if not None, should be [n_nodes, node_feat_dim] tensor,\n", " extra node features.\n", "\n", " Returns:\n", " node_states: [n_nodes, node_state_dim] float tensor, new node states.\n", "\n", " Raises:\n", " ValueError: if some options are not provided correctly.\n", " \"\"\"\n", " aggregated_messages = self._compute_aggregated_messages(\n", " node_states, from_idx, to_idx, edge_features=edge_features)\n", "\n", " # new stuff here\n", " cross_graph_attention = batch_block_pair_attention(\n", " node_states, graph_idx, n_graphs, similarity=similarity)\n", " attention_input = node_states - cross_graph_attention\n", "\n", " return self._compute_node_update(node_states,\n", " [aggregated_messages, attention_input],\n", " node_features=node_features)\n", "\n", "\n", "class GraphMatchingNet(GraphEmbeddingNet):\n", " \"\"\"Graph matching net.\n", "\n", " This class uses graph matching layers instead of the simple graph prop layers.\n", "\n", " It assumes the incoming graph data is batched and paired, i.e. graph 0 and 1\n", " forms the first pair and graph 2 and 3 are the second pair etc., and computes\n", " cross-graph attention-based matching for each pair.\n", " \"\"\"\n", "\n", " def __init__(self,\n", " encoder,\n", " aggregator,\n", " node_state_dim,\n", " edge_hidden_sizes,\n", " node_hidden_sizes,\n", " n_prop_layers,\n", " share_prop_params=False,\n", " edge_net_init_scale=0.1,\n", " node_update_type='residual',\n", " use_reverse_direction=True,\n", " reverse_dir_param_different=True,\n", " layer_norm=False,\n", " similarity='dotproduct',\n", " name='graph-matching-net'):\n", " super(GraphMatchingNet, self).__init__(\n", " encoder,\n", " aggregator,\n", " node_state_dim,\n", " edge_hidden_sizes,\n", " node_hidden_sizes,\n", " n_prop_layers,\n", " share_prop_params=share_prop_params,\n", " edge_net_init_scale=edge_net_init_scale,\n", " node_update_type=node_update_type,\n", " use_reverse_direction=use_reverse_direction,\n", " reverse_dir_param_different=reverse_dir_param_different,\n", " layer_norm=layer_norm,\n", " name=name)\n", " self._similarity = similarity\n", " self._layer_class = GraphPropMatchingLayer\n", "\n", " def _apply_layer(self,\n", " layer,\n", " node_states,\n", " from_idx,\n", " to_idx,\n", " graph_idx,\n", " n_graphs,\n", " edge_features):\n", " \"\"\"Apply one layer on the given inputs.\"\"\"\n", " return layer(node_states, from_idx, to_idx, graph_idx, n_graphs,\n", " similarity=self._similarity, edge_features=edge_features)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "tBXC2yUgzlyO" }, "source": [ "## Training" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "EVVXhPc6zqAy" }, "source": [ "### Labeled data examples\n", "\n", "We train on either pairs of graphs or triplets of graphs. For pairs of graphs, we assume each pair $(G_1, G_2)$ comes with a label $t\\in\\{-1, 1\\}$. $t=1$ if $G_1$ and $G_2$ are similar, and $t=-1$ otherwise.\n", "\n", "For triplets of graphs, we assume within each triplet $(G_1, G_2, G_3)$, $G_1$ is similar to $G_2$ but not similar to $G_3$.\n", "\n", "The goal of training is to learn the parameters of the function $f(G_1, G_2)$ such that similar graphs have high similarity (or small distance) and dissimilar graphs have low similarity (or high distance)." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "8jSKnn5G0KgL" }, "source": [ "### Training on pairs\n", "\n", "Given a dataset of pairs $(G_1, G_2)$ and labels $t\\in\\{-1, 1\\}$, we can use the following margin-based loss if using Euclidean distance:\n", "\n", "$$\n", "L_\\mathrm{pair} = \\mathbb{E}_{(G_1, G_2, t)}[\\max\\{0, \\gamma - t(1 - d(G_1, G_2))\\}]\n", "$$\n", "\n", "This loss encourages similar graphs to have distance smaller than $1-\\gamma$, and dissimilar graphs to have distance greater than $1 + \\gamma$, where $\\gamma$ is a margin parameter.\n", "\n", "Alternatively, for many applications it is beneficial to have the representation of graphs be binary which allows efficient indexing and hashing. In this case, Hamming distance (similarity) is more appropriate. On the other hand, the Hamming distance is not differentiable, so we use a smooth approximation\n", "$$\n", "s(G_1, G_2) = \\frac{1}{H}\\sum_{i=1}^H \\tanh(h_{G_1, i}) \\cdot \\tanh(h_{G_2, i}),\n", "$$\n", "where $s$ is now a similarity (rather than distance) function, $h_{G, i}$ is the i-th dimension of the smooth representation vector for G. We get binary codes by thresholding $h_{G,i}$ at 0, i.e. $\\hat{h}_{G,i}=1$ if $h_{G,i}\\ge 0$ and $-1$ otherwise.\n", "\n", "The loss we use with these binary representations is defined as\n", "\n", "$$\n", "L_\\mathrm{pair} = \\mathbb{E}_{(G_1, G_2, t)}[(t - s(G_1, G_2))^2] / 4.\n", "$$\n", "\n", "The factor of $1/4$ is used to normalize the loss to between 0 and 1.\n", "\n", "These are just two possible losses, many other types of losses could also be used." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "vwqL12jS2t2V" }, "outputs": [], "source": [ "def euclidean_distance(x, y):\n", " \"\"\"This is the squared Euclidean distance.\"\"\"\n", " return tf.reduce_sum((x - y)**2, axis=-1)\n", "\n", "\n", "def approximate_hamming_similarity(x, y):\n", " \"\"\"Approximate Hamming similarity.\"\"\"\n", " return tf.reduce_mean(tf.tanh(x) * tf.tanh(y), axis=1)\n", "\n", "\n", "def pairwise_loss(x, y, labels, loss_type='margin', margin=1.0):\n", " \"\"\"Compute pairwise loss.\n", "\n", " Args:\n", " x: [N, D] float tensor, representations for N examples.\n", " y: [N, D] float tensor, representations for another N examples.\n", " labels: [N] int tensor, with values in -1 or +1. labels[i] = +1 if x[i]\n", " and y[i] are similar, and -1 otherwise.\n", " loss_type: margin or hamming.\n", " margin: float scalar, margin for the margin loss.\n", "\n", " Returns:\n", " loss: [N] float tensor. Loss for each pair of representations.\n", " \"\"\"\n", " labels = tf.cast(labels, x.dtype)\n", " if loss_type == 'margin':\n", " return tf.nn.relu(margin - labels * (1 - euclidean_distance(x, y)))\n", " elif loss_type == 'hamming':\n", " return 0.25 * (labels - approximate_hamming_similarity(x, y))**2\n", " else:\n", " raise ValueError('Unknown loss_type %s' % loss_type)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "E1-k-A4e2uV8" }, "source": [ "### Training on triplets\n", "\n", "Given a dataset of triplets $(G_1, G_2, G_3)$ where $G_1$ is similar to $G_2$ but not similar to $G_3$, we can again use a margin loss or Hamming similarity-based loss.\n", "\n", "The following margin loss can be used with Euclidean distance:\n", "\n", "$$\n", "L_\\mathrm{triplet} = \\mathbb{E}_{(G_1, G_2, G_3)}[\\max\\{0, d(G_1, G_2) - d(G_1, G_3) + \\gamma\\}],\n", "$$\n", "which encourages $d(G_1, G_2)$ to be smaller by $d(G_1, G_3)$ by at least a margin of $\\gamma$.\n", "\n", "If using Hamming distance (similarity) we could use the following loss:\n", "\n", "$$\n", "L_\\mathrm{triplet} = \\mathbb{E}_{(G_1, G_2, G_3)}[(s(G_1, G_2) - 1)^2 + (s(G_1, G_3) + 1)^2] / 8\n", "$$\n", "\n", "The factor of $1/8$ is again used to normalize the loss to within 0 and 1." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "7ibuK0-y4WcI" }, "outputs": [], "source": [ "def triplet_loss(x_1, y, x_2, z, loss_type='margin', margin=1.0):\n", " \"\"\"Compute triplet loss.\n", "\n", " This function computes loss on a triplet of inputs (x, y, z). A similarity or\n", " distance value is computed for each pair of (x, y) and (x, z). Since the\n", " representations for x can be different in the two pairs (like our matching\n", " model) we distinguish the two x representations by x_1 and x_2.\n", "\n", " Args:\n", " x_1: [N, D] float tensor.\n", " y: [N, D] float tensor.\n", " x_2: [N, D] float tensor.\n", " z: [N, D] float tensor.\n", " loss_type: margin or hamming.\n", " margin: float scalar, margin for the margin loss.\n", "\n", " Returns:\n", " loss: [N] float tensor. Loss for each pair of representations.\n", " \"\"\"\n", " if loss_type == 'margin':\n", " return tf.nn.relu(margin +\n", " euclidean_distance(x_1, y) -\n", " euclidean_distance(x_2, z))\n", " elif loss_type == 'hamming':\n", " return 0.125 * ((approximate_hamming_similarity(x_1, y) - 1)**2 +\n", " (approximate_hamming_similarity(x_2, z) + 1)**2)\n", " else:\n", " raise ValueError('Unknown loss_type %s' % loss_type)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zQkcwBrdn4YZ" }, "source": [ "## Datasets\n", "\n", "We use an abstract `GraphSimilarityDataset` class to define the general interface for the training and evaluatin data used in graph similarity learning.\n", "\n", "We also assume a certain format for packing the graphs into tensors as described below." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "6lAkeOZnn32w" }, "outputs": [], "source": [ "GraphData = collections.namedtuple('GraphData', [\n", " 'from_idx',\n", " 'to_idx',\n", " 'node_features',\n", " 'edge_features',\n", " 'graph_idx',\n", " 'n_graphs'])\n", "\n", "\n", "@six.add_metaclass(abc.ABCMeta)\n", "class GraphSimilarityDataset(object):\n", " \"\"\"Base class for all the graph similarity learning datasets.\n", "\n", " This class defines some common interfaces a graph similarity dataset can have,\n", " in particular the functions that creates iterators over pairs and triplets.\n", " \"\"\"\n", "\n", " @abc.abstractmethod\n", " def triplets(self, batch_size):\n", " \"\"\"Create an iterator over triplets.\n", "\n", " Args:\n", " batch_size: int, number of triplets in a batch.\n", "\n", " Yields:\n", " graphs: a `GraphData` instance. The batch of triplets put together. Each\n", " triplet has 3 graphs (x, y, z). Here the first graph is duplicated once\n", " so the graphs for each triplet are ordered as (x, y, x, z) in the batch.\n", " The batch contains `batch_size` number of triplets, hence `4*batch_size`\n", " many graphs.\n", " \"\"\"\n", " pass\n", "\n", " @abc.abstractmethod\n", " def pairs(self, batch_size):\n", " \"\"\"Create an iterator over pairs.\n", "\n", " Args:\n", " batch_size: int, number of pairs in a batch.\n", "\n", " Yields:\n", " graphs: a `GraphData` instance. The batch of pairs put together. Each\n", " pair has 2 graphs (x, y). The batch contains `batch_size` number of\n", " pairs, hence `2*batch_size` many graphs.\n", " labels: [batch_size] int labels for each pair, +1 for similar, -1 for not.\n", " \"\"\"\n", " pass" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "PPKfGwXPzFMW" }, "source": [ "## The graph edit distance task" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "328H0viCAwyG" }, "source": [ "Here we use the synthetic task of learning approximate graph edit distances (GEDs) to test the effectiveness of the graph similarity learning models.\n", "\n", "Given two graphs $G_1$ and $G_2$, we say the edit distance between them is the number of actions needed to transform one into another. Since the difference in graph size (number of nodes, number of edges) is trivial to identify, we only consider the case of substituting one edge with another edge, and define the edit distance between two equal-size graphs to be the number of edge changes needed to make them identical (or isomorphic).\n", "\n", "We train a graph similarity or distance model that aligns with the GED, by giving graphs with small edit distance a high similarity score or low learned distance, and otherwise low similarity score or high learned distance. Note that we don't try to match the learned graph distance with the actual GED, as we don't assume the exact scale of the GED is available during training.\n", "\n", "To get training data, we sample graph $G$ from the Erdos-Renyi model (other random graph models could be used as well), and then:\n", "* apply a node permutation to $G$ to get $G_1$,\n", "* apply $k_1$ edge changes to $G$ to get $G_2$,\n", "* apply $k_2$ edge changes to $G$ to get $G_3$.\n", "\n", "Each edge change action substitutes one edge $(i,j)$ by another edge $(i', j')$ where $i'$ and $j'$ are picked randomly. In this case, we have roughly $GED(G_1, G_2)\\approx k_1$ and $GED(G_1, G_3)\\approx k_2$. We make $k_1 \u003c k_2$ and say $(G_1, G_2)$ is a positive pair that are similar and $(G_1, G_3)$ is a negative pair hence not similar.\n", "\n", "Note that the above GED for $G_1, G_2$ and $G_3$ only holds approximately, and $GED(G_1, G_2)\\le k_1$ and $GED(G_1, G_3)\\le k_2$, because of the potential symmetry in $G$, i.e. it is possible that changing one edge may only change the graph into another isomorphic graph. However the probability of this happening is relatively small and decreases with increasing graph size. So we ignore this possibility in this task." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "U_68U4wIo7lT" }, "source": [ "### A few graph manipulation primitives\n", "\n", "These primitives assume the incoming graphs are instances of `networkx.Graph`." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "ZyJh0DGNyWox" }, "outputs": [], "source": [ "def permute_graph_nodes(g):\n", " \"\"\"Permute node ordering of a graph, returns a new graph.\"\"\"\n", " n = g.number_of_nodes()\n", " new_g = nx.Graph()\n", " new_g.add_nodes_from(range(n))\n", " perm = np.random.permutation(n)\n", " edges = g.edges()\n", " new_edges = []\n", " for x, y in edges:\n", " new_edges.append((perm[x], perm[y]))\n", " new_g.add_edges_from(new_edges)\n", " return new_g\n", "\n", "\n", "def substitute_random_edges(g, n):\n", " \"\"\"Substitutes n edges from graph g with another n randomly picked edges.\"\"\"\n", " g = copy.deepcopy(g)\n", " n_nodes = g.number_of_nodes()\n", " edges = list(g.edges())\n", " # sample n edges without replacement\n", " e_remove = [edges[i] for i in np.random.choice(\n", " np.arange(len(edges)), n, replace=False)]\n", " edge_set = set(edges)\n", " e_add = set()\n", " while len(e_add) \u003c n:\n", " e = np.random.choice(n_nodes, 2, replace=False)\n", " # make sure e does not exist and is not already chosen to be added\n", " if ((e[0], e[1]) not in edge_set and (e[1], e[0]) not in edge_set and\n", " (e[0], e[1]) not in e_add and (e[1], e[0]) not in e_add):\n", " e_add.add((e[0], e[1]))\n", "\n", " for i, j in e_remove:\n", " g.remove_edge(i, j)\n", " for i, j in e_add:\n", " g.add_edge(i, j)\n", " return g" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ECXrG7VJpIDl" }, "source": [ "### Dataset for training, fixed dataset for evaluation\n", "\n", "For training we use a procedure to generate graphs in pairs or triplets on the fly, and wrap this process into a `Dataset` instance. For evaluation we need to\n", "use a fixed set to make sure the evaluation results are consistent and comparable, and we do that by controlling random seeds." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "ZW5KEb-gpHlq" }, "outputs": [], "source": [ "class GraphEditDistanceDataset(GraphSimilarityDataset):\n", " \"\"\"Graph edit distance dataset.\"\"\"\n", "\n", " def __init__(self,\n", " n_nodes_range,\n", " p_edge_range,\n", " n_changes_positive,\n", " n_changes_negative,\n", " permute=True):\n", " \"\"\"Constructor.\n", "\n", " Args:\n", " n_nodes_range: a tuple (n_min, n_max). The minimum and maximum number of\n", " nodes in a graph to generate.\n", " p_edge_range: a tuple (p_min, p_max). The minimum and maximum edge\n", " probability.\n", " n_changes_positive: the number of edge substitutions for a pair to be\n", " considered positive (similar).\n", " n_changes_negative: the number of edge substitutions for a pair to be\n", " considered negative (not similar).\n", " permute: if True (default), permute node orderings in addition to\n", " changing edges; if False, the node orderings across a pair or triplet of\n", " graphs will be the same, useful for visualization.\n", " \"\"\"\n", " self._n_min, self._n_max = n_nodes_range\n", " self._p_min, self._p_max = p_edge_range\n", " self._k_pos = n_changes_positive\n", " self._k_neg = n_changes_negative\n", " self._permute = permute\n", "\n", " def _get_graph(self):\n", " \"\"\"Generate one graph.\"\"\"\n", " n_nodes = np.random.randint(self._n_min, self._n_max + 1)\n", " p_edge = np.random.uniform(self._p_min, self._p_max)\n", "\n", " # do a little bit of filtering\n", " n_trials = 100\n", " for _ in range(n_trials):\n", " g = nx.erdos_renyi_graph(n_nodes, p_edge)\n", " if nx.is_connected(g):\n", " return g\n", "\n", " raise ValueError('Failed to generate a connected graph.')\n", "\n", " def _get_pair(self, positive):\n", " \"\"\"Generate one pair of graphs.\"\"\"\n", " g = self._get_graph()\n", " if self._permute:\n", " permuted_g = permute_graph_nodes(g)\n", " else:\n", " permuted_g = g\n", " n_changes = self._k_pos if positive else self._k_neg\n", " changed_g = substitute_random_edges(g, n_changes)\n", " return permuted_g, changed_g\n", "\n", " def _get_triplet(self):\n", " \"\"\"Generate one triplet of graphs.\"\"\"\n", " g = self._get_graph()\n", " if self._permute:\n", " permuted_g = permute_graph_nodes(g)\n", " else:\n", " permuted_g = g\n", " pos_g = substitute_random_edges(g, self._k_pos)\n", " neg_g = substitute_random_edges(g, self._k_neg)\n", " return permuted_g, pos_g, neg_g\n", "\n", " def triplets(self, batch_size):\n", " \"\"\"Yields batches of triplet data.\"\"\"\n", " while True:\n", " batch_graphs = []\n", " for _ in range(batch_size):\n", " g1, g2, g3 = self._get_triplet()\n", " batch_graphs.append((g1, g2, g1, g3))\n", " yield self._pack_batch(batch_graphs)\n", "\n", " def pairs(self, batch_size):\n", " \"\"\"Yields batches of pair data.\"\"\"\n", " while True:\n", " batch_graphs = []\n", " batch_labels = []\n", " positive = True\n", " for _ in range(batch_size):\n", " g1, g2 = self._get_pair(positive)\n", " batch_graphs.append((g1, g2))\n", " batch_labels.append(1 if positive else -1)\n", " positive = not positive\n", "\n", " packed_graphs = self._pack_batch(batch_graphs)\n", " labels = np.array(batch_labels, dtype=np.int32)\n", " yield packed_graphs, labels\n", "\n", " def _pack_batch(self, graphs):\n", " \"\"\"Pack a batch of graphs into a single `GraphData` instance.\n", "\n", " Args:\n", " graphs: a list of generated networkx graphs.\n", "\n", " Returns:\n", " graph_data: a `GraphData` instance, with node and edge indices properly\n", " shifted.\n", " \"\"\"\n", " graphs = tf.nest.flatten(graphs)\n", " from_idx = []\n", " to_idx = []\n", " graph_idx = []\n", "\n", " n_total_nodes = 0\n", " n_total_edges = 0\n", " for i, g in enumerate(graphs):\n", " n_nodes = g.number_of_nodes()\n", " n_edges = g.number_of_edges()\n", " edges = np.array(g.edges(), dtype=np.int32)\n", " # shift the node indices for the edges\n", " from_idx.append(edges[:, 0] + n_total_nodes)\n", " to_idx.append(edges[:, 1] + n_total_nodes)\n", " graph_idx.append(np.ones(n_nodes, dtype=np.int32) * i)\n", "\n", " n_total_nodes += n_nodes\n", " n_total_edges += n_edges\n", "\n", " return GraphData(\n", " from_idx=np.concatenate(from_idx, axis=0),\n", " to_idx=np.concatenate(to_idx, axis=0),\n", " # this task only cares about the structures, the graphs have no features\n", " node_features=np.ones((n_total_nodes, 1), dtype=np.float32),\n", " edge_features=np.ones((n_total_edges, 1), dtype=np.float32),\n", " graph_idx=np.concatenate(graph_idx, axis=0),\n", " n_graphs=len(graphs))\n", "\n", "\n", "@contextlib.contextmanager\n", "def reset_random_state(seed):\n", " \"\"\"This function creates a context that uses the given seed.\"\"\"\n", " np_rnd_state = np.random.get_state()\n", " rnd_state = random.getstate()\n", " np.random.seed(seed)\n", " random.seed(seed + 1)\n", " try:\n", " yield\n", " finally:\n", " random.setstate(rnd_state)\n", " np.random.set_state(np_rnd_state)\n", "\n", "\n", "class FixedGraphEditDistanceDataset(GraphEditDistanceDataset):\n", " \"\"\"A fixed dataset of pairs or triplets for the graph edit distance task.\n", "\n", " This dataset can be used for evaluation.\n", " \"\"\"\n", "\n", " def __init__(self,\n", " n_nodes_range,\n", " p_edge_range,\n", " n_changes_positive,\n", " n_changes_negative,\n", " dataset_size,\n", " permute=True,\n", " seed=1234):\n", " super(FixedGraphEditDistanceDataset, self).__init__(\n", " n_nodes_range, p_edge_range, n_changes_positive, n_changes_negative,\n", " permute=permute)\n", " self._dataset_size = dataset_size\n", " self._seed = seed\n", "\n", " def triplets(self, batch_size):\n", " \"\"\"Yield triplets.\"\"\"\n", "\n", " if hasattr(self, '_triplets'):\n", " triplets = self._triplets\n", " else:\n", " # get a fixed set of triplets\n", " with reset_random_state(self._seed):\n", " triplets = []\n", " for _ in range(self._dataset_size):\n", " g1, g2, g3 = self._get_triplet()\n", " triplets.append((g1, g2, g1, g3))\n", " self._triplets = triplets\n", "\n", " ptr = 0\n", " while ptr + batch_size \u003c= len(triplets):\n", " batch_graphs = triplets[ptr:ptr + batch_size]\n", " yield self._pack_batch(batch_graphs)\n", " ptr += batch_size\n", "\n", " def pairs(self, batch_size):\n", " \"\"\"Yield pairs and labels.\"\"\"\n", "\n", " if hasattr(self, '_pairs') and hasattr(self, '_labels'):\n", " pairs = self._pairs\n", " labels = self._labels\n", " else:\n", " # get a fixed set of pairs first\n", " with reset_random_state(self._seed):\n", " pairs = []\n", " labels = []\n", " positive = True\n", " for _ in range(self._dataset_size):\n", " pairs.append(self._get_pair(positive))\n", " labels.append(1 if positive else -1)\n", " positive = not positive\n", " labels = np.array(labels, dtype=np.int32)\n", "\n", " self._pairs = pairs\n", " self._labels = labels\n", "\n", " ptr = 0\n", " while ptr + batch_size \u003c= len(pairs):\n", " batch_graphs = pairs[ptr:ptr + batch_size]\n", " packed_batch = self._pack_batch(batch_graphs)\n", " yield packed_batch, labels[ptr:ptr + batch_size]\n", " ptr += batch_size" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "PKY5FeT9pu0s" }, "source": [ "## Building the model, and the training and evaluation pipelines" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "y5vCmOYjpxFa" }, "source": [ "### Configs\n", "\n", "We put all the configs for model building and training into a single `dict`, but any part of our code can also be used separately with separate configs if you want." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "whHJHVMupwjT" }, "outputs": [], "source": [ "def get_default_config():\n", " \"\"\"The default configs.\"\"\"\n", " node_state_dim = 32\n", " graph_rep_dim = 128\n", " graph_embedding_net_config = dict(\n", " node_state_dim=node_state_dim,\n", " edge_hidden_sizes=[node_state_dim * 2, node_state_dim * 2],\n", " node_hidden_sizes=[node_state_dim * 2],\n", " n_prop_layers=5,\n", " # set to False to not share parameters across message passing layers\n", " share_prop_params=True,\n", " # initialize message MLP with small parameter weights to prevent\n", " # aggregated message vectors blowing up, alternatively we could also use\n", " # e.g. layer normalization to keep the scale of these under control.\n", " edge_net_init_scale=0.1,\n", " # other types of update like `mlp` and `residual` can also be used here.\n", " node_update_type='gru',\n", " # set to False if your graph already contains edges in both directions.\n", " use_reverse_direction=True,\n", " # set to True if your graph is directed\n", " reverse_dir_param_different=False,\n", " # we didn't use layer norm in our experiments but sometimes this can help.\n", " layer_norm=False)\n", " graph_matching_net_config = graph_embedding_net_config.copy()\n", " graph_matching_net_config['similarity'] = 'dotproduct'\n", "\n", " return dict(\n", " encoder=dict(\n", " node_hidden_sizes=[node_state_dim],\n", " edge_hidden_sizes=None),\n", " aggregator=dict(\n", " node_hidden_sizes=[graph_rep_dim],\n", " graph_transform_sizes=[graph_rep_dim],\n", " gated=True,\n", " aggregation_type='sum'),\n", " graph_embedding_net=graph_embedding_net_config,\n", " graph_matching_net=graph_matching_net_config,\n", " # Set to `embedding` to use the graph embedding net.\n", " model_type='matching',\n", " data=dict(\n", " problem='graph_edit_distance',\n", " dataset_params=dict(\n", " # always generate graphs with 20 nodes and p_edge=0.2.\n", " n_nodes_range=[20, 20],\n", " p_edge_range=[0.2, 0.2],\n", " n_changes_positive=1,\n", " n_changes_negative=2,\n", " validation_dataset_size=1000)),\n", " training=dict(\n", " batch_size=20,\n", " learning_rate=1e-3,\n", " mode='pair',\n", " loss='margin',\n", " margin=1.0,\n", " # A small regularizer on the graph vector scales to avoid the graph\n", " # vectors blowing up. If numerical issues is particularly bad in the\n", " # model we can add `snt.LayerNorm` to the outputs of each layer, the\n", " # aggregated messages and aggregated node representations to\n", " # keep the network activation scale in a reasonable range.\n", " graph_vec_regularizer_weight=1e-6,\n", " # Add gradient clipping to avoid large gradients.\n", " clip_value=10.0,\n", " # Increase this to train longer.\n", " n_training_steps=10000,\n", " # Print training information every this many training steps.\n", " print_after=100,\n", " # Evaluate on validation set every `eval_after * print_after` steps.\n", " eval_after=10),\n", " evaluation=dict(\n", " batch_size=20),\n", " seed=8,\n", " )" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "pIxpwPRFRYE1" }, "source": [ "### Evaluation\n", "\n", "We evaluate the performance of the models by measuring how well they do on held-out data. We look at two metrics, triplet accuracy and pair AUC.\n", "\n", "For each triplet $(G_1, G_2, G_3)$, a model is said to make a correct prediction if it predicts $d(G_1, G_2) \u003c d(G_1, G_3)$, i.e. similar graphs have a smaller distance (or larger similarity) than dissimilar graphs. We average the accuracy across a dataset to get the **triplet accuracy** metric.\n", "\n", "For each pair $(G_1, G_2)$ a model computes a distance $d(G_1, G_2)$. To compute the **pair AUC** metric, we rank all the pairs by the distance from low to high (similarity from high to low), and then compute the area under the ROC curve for positive pairs." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "PQkjMzZxpmml" }, "outputs": [], "source": [ "def exact_hamming_similarity(x, y):\n", " \"\"\"Compute the binary Hamming similarity.\"\"\"\n", " match = tf.cast(tf.equal(x \u003e 0, y \u003e 0), dtype=tf.float32)\n", " return tf.reduce_mean(match, axis=1)\n", "\n", "\n", "def compute_similarity(config, x, y):\n", " \"\"\"Compute the distance between x and y vectors.\n", "\n", " The distance will be computed based on the training loss type.\n", "\n", " Args:\n", " config: a config dict.\n", " x: [n_examples, feature_dim] float tensor.\n", " y: [n_examples, feature_dim] float tensor.\n", "\n", " Returns:\n", " dist: [n_examples] float tensor.\n", "\n", " Raises:\n", " ValueError: if loss type is not supported.\n", " \"\"\"\n", " if config['training']['loss'] == 'margin':\n", " # similarity is negative distance\n", " return -euclidean_distance(x, y)\n", " elif config['training']['loss'] == 'hamming':\n", " return exact_hamming_similarity(x, y)\n", " else:\n", " raise ValueError('Unknown loss type %s' % config['training']['loss'])\n", "\n", "\n", "def auc(scores, labels, **auc_args):\n", " \"\"\"Compute the AUC for pair classification.\n", "\n", " See `tf.metrics.auc` for more details about this metric.\n", "\n", " Args:\n", " scores: [n_examples] float. Higher scores mean higher preference of being\n", " assigned the label of +1.\n", " labels: [n_examples] int. Labels are either +1 or -1.\n", " **auc_args: other arguments that can be used by `tf.metrics.auc`.\n", "\n", " Returns:\n", " auc: the area under the ROC curve.\n", " \"\"\"\n", " scores_max = tf.reduce_max(scores)\n", " scores_min = tf.reduce_min(scores)\n", " # normalize scores to [0, 1] and add a small epislon for safety\n", " scores = (scores - scores_min) / (scores_max - scores_min + 1e-8)\n", "\n", " labels = (labels + 1) / 2\n", " # The following code should be used according to the tensorflow official\n", " # documentation:\n", " # value, _ = tf.metrics.auc(labels, scores, **auc_args)\n", "\n", " # However `tf.metrics.auc` is currently (as of July 23, 2019) buggy so we have\n", " # to use the following:\n", " _, value = tf.metrics.auc(labels, scores, **auc_args)\n", " return value" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "nB_sczkuzHUD" }, "source": [ "### Build the model\n", "\n", "We need to:\n", "* set up the placeholders\n", "* build the model\n", "* build the computation graphs for training and evaluation\n", "* build the metrics and statistics to monitor\n", "\n", "We assume the graphs are batched, if a batch contains pairs $(G_1^1, G_2^1), (G_1^2, G_2^2), ...$, then the graphs will be packed in a batch as a sequence of graphs $(G_1^1, G_2^1, G_1^2, G_2^2, ...)$. If a batch contains triplets $(G_1^1, G_2^1, G_3^1), (G_1^2, G_2^2, G_3^2)$ then the graphs will be packed in a batch as a sequence of $(G_1^1, G_2^1, G_1^1, G_3^1, G_1^2, G_2^2, G_1^2, G_3^2), ...$. Note that the first graph in each triplet is duplicated once to make the cross-graph attention more easily computable as it requires the graphs to appear in pairs." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "uNBL6Om3zJJb" }, "outputs": [], "source": [ "def reshape_and_split_tensor(tensor, n_splits):\n", " \"\"\"Reshape and split a 2D tensor along the last dimension.\n", "\n", " Args:\n", " tensor: a [num_examples, feature_dim] tensor. num_examples must be a\n", " multiple of `n_splits`.\n", " n_splits: int, number of splits to split the tensor into.\n", "\n", " Returns:\n", " splits: a list of `n_splits` tensors. The first split is [tensor[0],\n", " tensor[n_splits], tensor[n_splits * 2], ...], the second split is\n", " [tensor[1], tensor[n_splits + 1], tensor[n_splits * 2 + 1], ...], etc..\n", " \"\"\"\n", " feature_dim = tensor.shape.as_list()[-1]\n", " # feature dim must be known, otherwise you can provide that as an input\n", " assert isinstance(feature_dim, int)\n", " tensor = tf.reshape(tensor, [-1, feature_dim * n_splits])\n", " return tf.split(tensor, n_splits, axis=-1)\n", "\n", "\n", "def build_placeholders(node_feature_dim, edge_feature_dim):\n", " \"\"\"Build the placeholders needed for the model.\n", "\n", " Args:\n", " node_feature_dim: int.\n", " edge_feature_dim: int.\n", "\n", " Returns:\n", " placeholders: a placeholder name -\u003e placeholder tensor dict.\n", " \"\"\"\n", " # `n_graphs` must be specified as an integer, as `tf.dynamic_partition`\n", " # requires so.\n", " return {\n", " 'node_features': tf.placeholder(tf.float32, [None, node_feature_dim]),\n", " 'edge_features': tf.placeholder(tf.float32, [None, edge_feature_dim]),\n", " 'from_idx': tf.placeholder(tf.int32, [None]),\n", " 'to_idx': tf.placeholder(tf.int32, [None]),\n", " 'graph_idx': tf.placeholder(tf.int32, [None]),\n", " # only used for pairwise training and evaluation\n", " 'labels': tf.placeholder(tf.int32, [None]),\n", " }\n", "\n", "\n", "def build_model(config, node_feature_dim, edge_feature_dim):\n", " \"\"\"Create model for training and evaluation.\n", "\n", " Args:\n", " config: a dictionary of configs, like the one created by the\n", " `get_default_config` function.\n", " node_feature_dim: int, dimensionality of node features.\n", " edge_feature_dim: int, dimensionality of edge features.\n", "\n", " Returns:\n", " tensors: a (potentially nested) name =\u003e tensor dict.\n", " placeholders: a (potentially nested) name =\u003e tensor dict.\n", " model: a GraphEmbeddingNet or GraphMatchingNet instance.\n", "\n", " Raises:\n", " ValueError: if the specified model or training settings are not supported.\n", " \"\"\"\n", " encoder = GraphEncoder(**config['encoder'])\n", " aggregator = GraphAggregator(**config['aggregator'])\n", " if config['model_type'] == 'embedding':\n", " model = GraphEmbeddingNet(\n", " encoder, aggregator, **config['graph_embedding_net'])\n", " elif config['model_type'] == 'matching':\n", " model = GraphMatchingNet(\n", " encoder, aggregator, **config['graph_matching_net'])\n", " else:\n", " raise ValueError('Unknown model type: %s' % config['model_type'])\n", "\n", " training_n_graphs_in_batch = config['training']['batch_size']\n", " if config['training']['mode'] == 'pair':\n", " training_n_graphs_in_batch *= 2\n", " elif config['training']['mode'] == 'triplet':\n", " training_n_graphs_in_batch *= 4\n", " else:\n", " raise ValueError('Unknown training mode: %s' % config['training']['mode'])\n", "\n", " placeholders = build_placeholders(node_feature_dim, edge_feature_dim)\n", "\n", " # training\n", " model_inputs = placeholders.copy()\n", " del model_inputs['labels']\n", " model_inputs['n_graphs'] = training_n_graphs_in_batch\n", " graph_vectors = model(**model_inputs)\n", "\n", " if config['training']['mode'] == 'pair':\n", " x, y = reshape_and_split_tensor(graph_vectors, 2)\n", " loss = pairwise_loss(x, y, placeholders['labels'],\n", " loss_type=config['training']['loss'],\n", " margin=config['training']['margin'])\n", "\n", " # optionally monitor the similarity between positive and negative pairs\n", " is_pos = tf.cast(tf.equal(placeholders['labels'], 1), tf.float32)\n", " is_neg = 1 - is_pos\n", " n_pos = tf.reduce_sum(is_pos)\n", " n_neg = tf.reduce_sum(is_neg)\n", " sim = compute_similarity(config, x, y)\n", " sim_pos = tf.reduce_sum(sim * is_pos) / (n_pos + 1e-8)\n", " sim_neg = tf.reduce_sum(sim * is_neg) / (n_neg + 1e-8)\n", " else:\n", " x_1, y, x_2, z = reshape_and_split_tensor(graph_vectors, 4)\n", " loss = triplet_loss(x_1, y, x_2, z,\n", " loss_type=config['training']['loss'],\n", " margin=config['training']['margin'])\n", "\n", " sim_pos = tf.reduce_mean(compute_similarity(config, x_1, y))\n", " sim_neg = tf.reduce_mean(compute_similarity(config, x_2, z))\n", "\n", " graph_vec_scale = tf.reduce_mean(graph_vectors**2)\n", " if config['training']['graph_vec_regularizer_weight'] \u003e 0:\n", " loss += (config['training']['graph_vec_regularizer_weight'] *\n", " 0.5 * graph_vec_scale)\n", "\n", " # monitor scale of the parameters and gradients, these are typically helpful\n", " optimizer = tf.train.AdamOptimizer(\n", " learning_rate=config['training']['learning_rate'])\n", " grads_and_params = optimizer.compute_gradients(loss)\n", " grads, params = zip(*grads_and_params)\n", " grads, _ = tf.clip_by_global_norm(grads, config['training']['clip_value'])\n", " train_step = optimizer.apply_gradients(zip(grads, params))\n", "\n", " grad_scale = tf.global_norm(grads)\n", " param_scale = tf.global_norm(params)\n", "\n", " # evaluation\n", " model_inputs['n_graphs'] = config['evaluation']['batch_size'] * 2\n", " eval_pairs = model(**model_inputs)\n", " x, y = reshape_and_split_tensor(eval_pairs, 2)\n", " similarity = compute_similarity(config, x, y)\n", " pair_auc = auc(similarity, placeholders['labels'])\n", "\n", " model_inputs['n_graphs'] = config['evaluation']['batch_size'] * 4\n", " eval_triplets = model(**model_inputs)\n", " x_1, y, x_2, z = reshape_and_split_tensor(eval_triplets, 4)\n", " sim_1 = compute_similarity(config, x_1, y)\n", " sim_2 = compute_similarity(config, x_2, z)\n", " triplet_acc = tf.reduce_mean(tf.cast(sim_1 \u003e sim_2, dtype=tf.float32))\n", "\n", " return {\n", " 'train_step': train_step,\n", " 'metrics': {\n", " 'training': {\n", " 'loss': loss,\n", " 'grad_scale': grad_scale,\n", " 'param_scale': param_scale,\n", " 'graph_vec_scale': graph_vec_scale,\n", " 'sim_pos': sim_pos,\n", " 'sim_neg': sim_neg,\n", " 'sim_diff': sim_pos - sim_neg,\n", " },\n", " 'validation': {\n", " 'pair_auc': pair_auc,\n", " 'triplet_acc': triplet_acc,\n", " },\n", " },\n", " }, placeholders, model" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "09KlUpfZt-L9" }, "source": [ "### The training pipeline\n", "\n", "For this we need to build the datasets, handle `feed_dict`s and run some evaluation during training.\n", "\n", "Note that this training pipeline is only supposed to be used as an example and you may want to add your own checkpointing or experiment monitoring tools (e.g. tensorboard)." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "HRGXuCBsucKH" }, "outputs": [], "source": [ "def build_datasets(config):\n", " \"\"\"Build the training and evaluation datasets.\"\"\"\n", " config = copy.deepcopy(config)\n", "\n", " if config['data']['problem'] == 'graph_edit_distance':\n", " dataset_params = config['data']['dataset_params']\n", " validation_dataset_size = dataset_params['validation_dataset_size']\n", " del dataset_params['validation_dataset_size']\n", " training_set = GraphEditDistanceDataset(**dataset_params)\n", " dataset_params['dataset_size'] = validation_dataset_size\n", " validation_set = FixedGraphEditDistanceDataset(**dataset_params)\n", " else:\n", " raise ValueError('Unknown problem type: %s' % config['data']['problem'])\n", " return training_set, validation_set\n", "\n", "\n", "def fill_feed_dict(placeholders, batch):\n", " \"\"\"Create a feed dict for the given batch of data.\n", "\n", " Args:\n", " placeholders: a dict of placeholders.\n", " batch: a batch of data, should be either a single `GraphData` instance for\n", " triplet training, or a tuple of (graphs, labels) for pairwise training.\n", "\n", " Returns:\n", " feed_dict: a feed_dict that can be used in a session run call.\n", " \"\"\"\n", " if isinstance(batch, GraphData):\n", " graphs = batch\n", " labels = None\n", " else:\n", " graphs, labels = batch\n", "\n", " feed_dict = {\n", " placeholders['node_features']: graphs.node_features,\n", " placeholders['edge_features']: graphs.edge_features,\n", " placeholders['from_idx']: graphs.from_idx,\n", " placeholders['to_idx']: graphs.to_idx,\n", " placeholders['graph_idx']: graphs.graph_idx,\n", " }\n", " if labels is not None:\n", " feed_dict[placeholders['labels']] = labels\n", " return feed_dict\n", "\n", "\n", "def evaluate(sess, eval_metrics, placeholders, validation_set, batch_size):\n", " \"\"\"Evaluate model performance on the given validation set.\n", "\n", " Args:\n", " sess: a `tf.Session` instance used to run the computation.\n", " eval_metrics: a dict containing two tensors 'pair_auc' and 'triplet_acc'.\n", " placeholders: a placeholder dict.\n", " validation_set: a `GraphSimilarityDataset` instance, calling `pairs` and\n", " `triplets` functions with `batch_size` creates iterators over a finite\n", " sequence of batches to evaluate on.\n", " batch_size: number of batches to use for each session run call.\n", "\n", " Returns:\n", " metrics: a dict of metric name =\u003e value mapping.\n", " \"\"\"\n", " accumulated_pair_auc = []\n", " for batch in validation_set.pairs(batch_size):\n", " feed_dict = fill_feed_dict(placeholders, batch)\n", " pair_auc = sess.run(eval_metrics['pair_auc'], feed_dict=feed_dict)\n", " accumulated_pair_auc.append(pair_auc)\n", "\n", " accumulated_triplet_acc = []\n", " for batch in validation_set.triplets(batch_size):\n", " feed_dict = fill_feed_dict(placeholders, batch)\n", " triplet_acc = sess.run(eval_metrics['triplet_acc'], feed_dict=feed_dict)\n", " accumulated_triplet_acc.append(triplet_acc)\n", "\n", " return {\n", " 'pair_auc': np.mean(accumulated_pair_auc),\n", " 'triplet_acc': np.mean(accumulated_triplet_acc),\n", " }" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "I-u2iAaBujIg" }, "source": [ "### Let's run it!" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "65drio8Qu9qG" }, "outputs": [], "source": [ "config = get_default_config()\n", "\n", "# Let's just run for a small number of training steps. This may take you a few\n", "# minutes.\n", "config['training']['n_training_steps'] = 5000" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 887 }, "colab_type": "code", "executionInfo": { "elapsed": 590938, "status": "ok", "timestamp": 1563980116419, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "v7Dz1haMuh8O", "outputId": "6722538e-db5a-4538-dc2c-f08108a1b983" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iter 100, loss 0.9024, grad_scale 9.9039, param_scale 24.2281, graph_vec_scale 9.9295, sim_pos -0.5319, sim_neg -0.9309, sim_diff 0.3990, time 16.35s\n", "iter 200, loss 0.8899, grad_scale 10.0000, param_scale 24.2434, graph_vec_scale 15.8820, sim_pos -0.5871, sim_neg -1.1029, sim_diff 0.5158, time 8.78s\n", "iter 300, loss 0.9187, grad_scale 9.9720, param_scale 24.2605, graph_vec_scale 9.2189, sim_pos -0.5186, sim_neg -0.9006, sim_diff 0.3819, time 10.61s\n", "iter 400, loss 0.8426, grad_scale 9.9700, param_scale 24.3224, graph_vec_scale 20.1333, sim_pos -0.5781, sim_neg -1.2868, sim_diff 0.7086, time 9.40s\n", "iter 500, loss 0.8767, grad_scale 9.9918, param_scale 24.3770, graph_vec_scale 16.1800, sim_pos -0.6053, sim_neg -1.1185, sim_diff 0.5132, time 8.59s\n", "iter 600, loss 0.8756, grad_scale 10.0000, param_scale 24.4452, graph_vec_scale 10.7137, sim_pos -0.5587, sim_neg -1.0466, sim_diff 0.4879, time 8.54s\n", "iter 700, loss 0.8455, grad_scale 10.0000, param_scale 24.5081, graph_vec_scale 6.1303, sim_pos -0.6762, sim_neg -1.2543, sim_diff 0.5781, time 9.26s\n", "iter 800, loss 0.8545, grad_scale 10.0000, param_scale 24.5715, graph_vec_scale 7.7584, sim_pos -0.6751, sim_neg -1.2628, sim_diff 0.5877, time 9.35s\n", "iter 900, loss 0.8324, grad_scale 9.9734, param_scale 24.6531, graph_vec_scale 11.4416, sim_pos -0.6053, sim_neg -1.2179, sim_diff 0.6126, time 10.77s\n", "iter 1000, loss 0.8502, grad_scale 10.0000, param_scale 24.7729, graph_vec_scale 21.2052, sim_pos -0.6276, sim_neg -1.1885, sim_diff 0.5610, val/pair_auc 0.6311, val/triplet_acc 0.6560, time 23.40s\n", "iter 1100, loss 0.8568, grad_scale 10.0000, param_scale 24.9137, graph_vec_scale 9.9548, sim_pos -0.6038, sim_neg -1.1830, sim_diff 0.5791, time 9.38s\n", "iter 1200, loss 0.8258, grad_scale 10.0000, param_scale 25.0311, graph_vec_scale 9.8263, sim_pos -0.6863, sim_neg -1.2977, sim_diff 0.6114, time 10.48s\n", "iter 1300, loss 0.8167, grad_scale 10.0000, param_scale 25.1117, graph_vec_scale 7.9998, sim_pos -0.6577, sim_neg -1.2564, sim_diff 0.5987, time 9.64s\n", "iter 1400, loss 0.8393, grad_scale 10.0000, param_scale 25.2091, graph_vec_scale 9.4814, sim_pos -0.6692, sim_neg -1.2338, sim_diff 0.5645, time 9.88s\n", "iter 1500, loss 0.8124, grad_scale 10.0000, param_scale 25.3498, graph_vec_scale 10.8970, sim_pos -0.6629, sim_neg -1.2851, sim_diff 0.6222, time 10.24s\n", "iter 1600, loss 0.7997, grad_scale 10.0000, param_scale 25.5068, graph_vec_scale 8.8850, sim_pos -0.6958, sim_neg -1.3773, sim_diff 0.6816, time 10.23s\n", "iter 1700, loss 0.8036, grad_scale 10.0000, param_scale 25.6802, graph_vec_scale 9.1888, sim_pos -0.7241, sim_neg -1.3902, sim_diff 0.6660, time 10.28s\n", "iter 1800, loss 0.8282, grad_scale 9.9726, param_scale 25.8778, graph_vec_scale 16.0597, sim_pos -0.7033, sim_neg -1.3089, sim_diff 0.6056, time 10.52s\n", "iter 1900, loss 0.8561, grad_scale 9.9528, param_scale 26.1749, graph_vec_scale 16.8173, sim_pos -0.5827, sim_neg -1.1226, sim_diff 0.5399, time 11.16s\n", "iter 2000, loss 0.8543, grad_scale 10.0000, param_scale 26.4489, graph_vec_scale 9.4414, sim_pos -0.6694, sim_neg -1.1820, sim_diff 0.5126, val/pair_auc 0.6423, val/triplet_acc 0.7120, time 15.30s\n", "iter 2100, loss 0.8282, grad_scale 10.0000, param_scale 26.5936, graph_vec_scale 8.2912, sim_pos -0.6784, sim_neg -1.2598, sim_diff 0.5814, time 12.57s\n", "iter 2200, loss 0.8040, grad_scale 10.0000, param_scale 26.8179, graph_vec_scale 8.7340, sim_pos -0.7254, sim_neg -1.3695, sim_diff 0.6441, time 10.05s\n", "iter 2300, loss 0.8089, grad_scale 10.0000, param_scale 27.0014, graph_vec_scale 4.7856, sim_pos -0.7325, sim_neg -1.3514, sim_diff 0.6189, time 10.36s\n", "iter 2400, loss 0.7894, grad_scale 10.0000, param_scale 27.1475, graph_vec_scale 5.3897, sim_pos -0.7178, sim_neg -1.3501, sim_diff 0.6323, time 10.36s\n", "iter 2500, loss 0.8112, grad_scale 10.0000, param_scale 27.3124, graph_vec_scale 5.0839, sim_pos -0.7920, sim_neg -1.4146, sim_diff 0.6226, time 10.70s\n", "iter 2600, loss 0.7852, grad_scale 10.0000, param_scale 27.5082, graph_vec_scale 3.7201, sim_pos -0.7722, sim_neg -1.5174, sim_diff 0.7452, time 10.81s\n", "iter 2700, loss 0.7873, grad_scale 10.0000, param_scale 27.6644, graph_vec_scale 3.7121, sim_pos -0.7612, sim_neg -1.4150, sim_diff 0.6538, time 10.88s\n", "iter 2800, loss 0.7846, grad_scale 10.0000, param_scale 27.8754, graph_vec_scale 4.0826, sim_pos -0.7242, sim_neg -1.3944, sim_diff 0.6703, time 9.64s\n", "iter 2900, loss 0.7984, grad_scale 10.0000, param_scale 28.0754, graph_vec_scale 3.3628, sim_pos -0.7275, sim_neg -1.3811, sim_diff 0.6536, time 10.04s\n", "iter 3000, loss 0.8040, grad_scale 10.0000, param_scale 28.2285, graph_vec_scale 4.7665, sim_pos -0.8204, sim_neg -1.4319, sim_diff 0.6115, val/pair_auc 0.6521, val/triplet_acc 0.7020, time 14.91s\n", "iter 3100, loss 0.7661, grad_scale 10.0000, param_scale 28.4321, graph_vec_scale 4.5367, sim_pos -0.7861, sim_neg -1.5052, sim_diff 0.7192, time 12.70s\n", "iter 3200, loss 0.7918, grad_scale 10.0000, param_scale 28.6223, graph_vec_scale 2.7951, sim_pos -0.7894, sim_neg -1.4368, sim_diff 0.6474, time 10.14s\n", "iter 3300, loss 0.7888, grad_scale 10.0000, param_scale 28.7832, graph_vec_scale 2.5365, sim_pos -0.7737, sim_neg -1.4076, sim_diff 0.6339, time 11.14s\n", "iter 3400, loss 0.7880, grad_scale 10.0000, param_scale 28.9723, graph_vec_scale 2.5840, sim_pos -0.8405, sim_neg -1.4963, sim_diff 0.6558, time 10.99s\n", "iter 3500, loss 0.8063, grad_scale 10.0000, param_scale 29.1109, graph_vec_scale 1.5241, sim_pos -0.7049, sim_neg -1.3258, sim_diff 0.6209, time 10.09s\n", "iter 3600, loss 0.7781, grad_scale 10.0000, param_scale 29.2500, graph_vec_scale 1.6339, sim_pos -0.8011, sim_neg -1.5460, sim_diff 0.7448, time 10.25s\n", "iter 3700, loss 0.7626, grad_scale 10.0000, param_scale 29.3812, graph_vec_scale 2.0334, sim_pos -0.7765, sim_neg -1.5622, sim_diff 0.7857, time 11.35s\n", "iter 3800, loss 0.7545, grad_scale 10.0000, param_scale 29.5007, graph_vec_scale 1.9816, sim_pos -0.7494, sim_neg -1.5253, sim_diff 0.7759, time 10.50s\n", "iter 3900, loss 0.7786, grad_scale 10.0000, param_scale 29.6472, graph_vec_scale 2.2622, sim_pos -0.8190, sim_neg -1.5184, sim_diff 0.6994, time 10.94s\n", "iter 4000, loss 0.7696, grad_scale 10.0000, param_scale 29.7945, graph_vec_scale 1.9066, sim_pos -0.7080, sim_neg -1.4729, sim_diff 0.7649, val/pair_auc 0.6588, val/triplet_acc 0.7110, time 15.44s\n", "iter 4100, loss 0.7702, grad_scale 10.0000, param_scale 29.9186, graph_vec_scale 1.6492, sim_pos -0.7923, sim_neg -1.5920, sim_diff 0.7998, time 11.56s\n", "iter 4200, loss 0.7618, grad_scale 10.0000, param_scale 30.0597, graph_vec_scale 1.3295, sim_pos -0.8183, sim_neg -1.5480, sim_diff 0.7297, time 12.56s\n", "iter 4300, loss 0.7595, grad_scale 10.0000, param_scale 30.2331, graph_vec_scale 2.0479, sim_pos -0.8513, sim_neg -1.5582, sim_diff 0.7069, time 9.82s\n", "iter 4400, loss 0.7722, grad_scale 10.0000, param_scale 30.3986, graph_vec_scale 1.1744, sim_pos -0.7996, sim_neg -1.4669, sim_diff 0.6674, time 10.90s\n", "iter 4500, loss 0.7850, grad_scale 10.0000, param_scale 30.5059, graph_vec_scale 1.7279, sim_pos -0.8477, sim_neg -1.5368, sim_diff 0.6891, time 11.18s\n", "iter 4600, loss 0.7562, grad_scale 10.0000, param_scale 30.6486, graph_vec_scale 1.4266, sim_pos -0.7782, sim_neg -1.5346, sim_diff 0.7564, time 10.92s\n", "iter 4700, loss 0.7843, grad_scale 10.0000, param_scale 30.8270, graph_vec_scale 2.1109, sim_pos -0.7923, sim_neg -1.4582, sim_diff 0.6660, time 11.00s\n", "iter 4800, loss 0.7712, grad_scale 10.0000, param_scale 30.9745, graph_vec_scale 1.9060, sim_pos -0.8056, sim_neg -1.4885, sim_diff 0.6830, time 11.01s\n", "iter 4900, loss 0.7894, grad_scale 10.0000, param_scale 31.1943, graph_vec_scale 1.5744, sim_pos -0.7436, sim_neg -1.3567, sim_diff 0.6131, time 10.39s\n", "iter 5000, loss 0.7866, grad_scale 10.0000, param_scale 31.4067, graph_vec_scale 1.4950, sim_pos -0.7812, sim_neg -1.4002, sim_diff 0.6190, val/pair_auc 0.6675, val/triplet_acc 0.7490, time 15.01s\n" ] } ], "source": [ "# Run this if you want to run the code again, otherwise tensorflow would\n", "# complain that you already created the same graph and the same variables.\n", "tf.reset_default_graph()\n", "\n", "# Set random seeds\n", "seed = config['seed']\n", "random.seed(seed)\n", "np.random.seed(seed + 1)\n", "tf.set_random_seed(seed + 2)\n", "\n", "training_set, validation_set = build_datasets(config)\n", "\n", "if config['training']['mode'] == 'pair':\n", " training_data_iter = training_set.pairs(config['training']['batch_size'])\n", " first_batch_graphs, _ = next(training_data_iter)\n", "else:\n", " training_data_iter = training_set.triplets(config['training']['batch_size'])\n", " first_batch_graphs = next(training_data_iter)\n", "\n", "node_feature_dim = first_batch_graphs.node_features.shape[-1]\n", "edge_feature_dim = first_batch_graphs.edge_features.shape[-1]\n", "\n", "tensors, placeholders, model = build_model(\n", " config, node_feature_dim, edge_feature_dim)\n", "\n", "accumulated_metrics = collections.defaultdict(list)\n", "\n", "t_start = time.time()\n", "\n", "init_ops = (tf.global_variables_initializer(),\n", " tf.local_variables_initializer())\n", "\n", "# If we already have a session instance, close it and start a new one\n", "if 'sess' in globals():\n", " sess.close()\n", "\n", "# We will need to keep this session instance around for e.g. visualization.\n", "# But you should probably wrap it in a `with tf.Session() sess:` context if you\n", "# want to use the code elsewhere.\n", "sess = tf.Session()\n", "sess.run(init_ops)\n", "\n", "# use xrange here if you are still on python 2\n", "for i_iter in range(config['training']['n_training_steps']):\n", " batch = next(training_data_iter)\n", " _, train_metrics = sess.run(\n", " [tensors['train_step'], tensors['metrics']['training']],\n", " feed_dict=fill_feed_dict(placeholders, batch))\n", "\n", " # accumulate over minibatches to reduce variance in the training metrics\n", " for k, v in train_metrics.items():\n", " accumulated_metrics[k].append(v)\n", "\n", " if (i_iter + 1) % config['training']['print_after'] == 0:\n", " metrics_to_print = {\n", " k: np.mean(v) for k, v in accumulated_metrics.items()}\n", " info_str = ', '.join(\n", " ['%s %.4f' % (k, v) for k, v in metrics_to_print.items()])\n", " # reset the metrics\n", " accumulated_metrics = collections.defaultdict(list)\n", "\n", " if ((i_iter + 1) // config['training']['print_after'] %\n", " config['training']['eval_after'] == 0):\n", " eval_metrics = evaluate(\n", " sess, tensors['metrics']['validation'], placeholders,\n", " validation_set, config['evaluation']['batch_size'])\n", " info_str += ', ' + ', '.join(\n", " ['%s %.4f' % ('val/' + k, v) for k, v in eval_metrics.items()])\n", "\n", " print('iter %d, %s, time %.2fs' % (\n", " i_iter + 1, info_str, time.time() - t_start))\n", " t_start = time.time()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "EDHrQOOYzH2t" }, "source": [ "Note that albeit a bit noisy, the loss is going down, the similarity gap \n", "between positive and negative pairs are growing and the evaluation results, i.e. pair AUC and triplet accuracies are going up as well. Overall training seems to be working!\n", "\n", "You can train this much longer. We observed improvement in performance even after training for 500,000 steps, but didn't push this much further as it is a synthetic task after all." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "NqaY9In2zKUT" }, "source": [ "## Test the model and create some visualizations\n", "\n", "Once the model is trained, we can test in on unseen data. Our graph matching networks use cross-graph matching-based attention to compute graph similarity, we can visualize these attention weights to see where the model is attending to." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "E5XrWBLbzJxh" }, "outputs": [], "source": [ "# visualize on graphs of 10 nodes, bigger graphs become more difficult to\n", "# visualize\n", "vis_dataset = GraphEditDistanceDataset(\n", " [10, 10], [0.2, 0.2], 1, 2, permute=False)\n", "\n", "pair_iter = vis_dataset.pairs(2)\n", "graphs, labels = next(pair_iter)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Wew5G3SZ1XbB" }, "source": [ "Let's split the batched graphs into individual graphs and visualize them first." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "LR2enkt21Git" }, "outputs": [], "source": [ "def split_graphs(graphs):\n", " \"\"\"Split a batch of graphs into individual `nx.Graph` instances.\"\"\"\n", " g = [nx.Graph() for _ in range(graphs.n_graphs)]\n", " node_ids = np.arange(graphs.graph_idx.size, dtype=np.int32)\n", " for i in range(graphs.n_graphs):\n", " nodes_in_graph = node_ids[graphs.graph_idx == i]\n", " n_nodes = len(nodes_in_graph)\n", " g[i].add_nodes_from(range(n_nodes))\n", " node_id_min = nodes_in_graph.min()\n", " node_id_max = nodes_in_graph.max()\n", "\n", " edges = []\n", " for u, v in zip(graphs.from_idx, graphs.to_idx):\n", " if node_id_min \u003c= u \u003c= node_id_max and node_id_min \u003c= v \u003c= node_id_max:\n", " edges.append((u - node_id_min, v - node_id_min))\n", " g[i].add_edges_from(edges)\n", " \n", " return g" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 655 }, "colab_type": "code", "executionInfo": { "elapsed": 1098, "status": "ok", "timestamp": 1563980161995, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "DVY20guU09L2", "outputId": "eb1488b2-0d57-49d6-a22b-8304a49ccf1b" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 1000x500 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlsAAAE/CAYAAABxSAagAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlYVGX7B/DvgMiqgIj7kqhIprgv\npSaaW2ZuqYmmae5LpbmiuBSR4pamgkspqanx03Ln1erN3DLBXHCH3OrVxNwA2Wfu3x+jhsoyM5zh\nzMD3c11cxcw5hy8ot/c885zn0YiIgIiIiIjMwkbtAERERESFGZstIiIiIjNis0VERERkRmy2iIiI\niMyIzRYRERGRGbHZIiIiIjIjNltkNWbPno133nlH7RhEREZj/Sra2GyRyTZv3oxmzZrB2dkZZcqU\nQbNmzRAaGgpLWbptxowZqFu3LooVK4bZs2erHYeILIgl16/4+Hj4+/ujQoUKcHV1RYsWLfDbb7+p\nHYvygc0WmWThwoX48MMPMWnSJPz999+4desWVqxYgcOHDyM9PT3bc7RabYFmrFGjBubNm4c33nij\nQL8uEVk2S69fSUlJaNKkCY4fP467d+/i3XffxRtvvIGkpKQCy0DKYrNFRnvw4AFmzpyJ0NBQ9OrV\nCyVKlIBGo0GDBg3wzTffwN7eHgAwaNAgjBo1Cp07d4azszN+/vln7N69Gw0aNEDJkiVRuXLlp0ac\nrl69Co1Gg1WrVqFChQooX748Fi5c+NTXTk9Px8CBA1GiRAm89NJLiI6OzjHnu+++i9dffx0lSpQw\ny8+BiKyPNdQvLy8vfPTRRyhfvjxsbW0xfPhwpKen4+LFi2b7uZB5sdkio/36669IS0tDt27d8jx2\n48aNmD59OhITE9GyZUs4Oztj3bp1uH//Pnbv3o2wsDBs27btqXN+/vlnxMbGYt++fZg7dy5+/PHH\nJ8/t2LEDffv2xf3799G1a1eMHTtW8e+PiAova6xfJ0+eRHp6OmrUqGHcN0sWg80WGe2ff/5B6dKl\nUaxYsSePvfLKK3Bzc4OjoyMOHDjw5PFu3bqhRYsWsLGxgYODA/z8/FC3bl3Y2NjA19cX/v7++OWX\nX566/qxZs+Ds7Iy6deti8ODB2LRp05PnWrZsic6dO8PW1hYDBgzAqVOnzP8NE1GhYW31KyEhAQMG\nDMCsWbPg6uqqwE+A1MBmi4zm4eGBf/75B5mZmU8eO3LkCO7fvw8PDw/odLonj1euXPmpc3/77Te0\nadMGnp6ecHV1xYoVK/DPP/88dUzWc6pWrYobN248+bxcuXJP/t/JyQmpqalP5SAiyo011a+UlBS8\n+eabaN68OQICAoz/ZslisNkio7388suwt7fH9u3b8zxWo9E89Xm/fv3QtWtX/Pnnn3jw4AFGjhz5\n3N0/f/7555P/v379OipUqKBMcCIq8qylfqWlpaF79+6oWLEiVq5cadI1yHKw2SKjubm5YdasWRg9\nejS2bNmCpKQk6HQ6nDx5Eg8fPsz13MTERJQqVQoODg44duwYNm7c+NwxQUFBSE5OxtmzZ7F27Vq8\n/fbbJuXMyMhAamoqdDodMjMzkZqaWuB3RBKRZbGG+pWRkYFevXrB0dER69atg40N/6m2dsXyPoTo\neZMnT0bFihUxb948DBw4EM7OzvDy8kJISAheeeWVHM8LDQ3FhAkTMHbsWLRu3Rp9+vTB/fv3nzqm\ndevWqFGjBnQ6HSZOnIgOHTqYlHHYsGH4+uuvn3weHByMtWvXYtCgQSZdj4gKB0uvX0eOHMGuXbvg\n6OgINze3J49HRkaiVatWRl+P1KcRS1jBjQj6W6erVauGjIyMpyavEhFZOtYvyg3HJomIiIjMiM0W\nERERkRnxbUQiIiIiM+LIFhEREZEZsdkiIiIiMiM2W0RERERmxGaLiIiIyIzYbBERERGZEZstIiIi\nIjNis0VERERkRmy2iIiIiMyIzRYRERGRGbHZIiIiIjKjwrM1eXw8EB4OnD4NPHgAuLoCvr7A4MGA\np6fa6YiIcsb6RVSoWf/eiFFRwJw5QGSk/vPU1H+fc3QERIDXXwcCAoAmTdTJSESUHdYvoiLBuput\nsDBg4kQgJUVflHKi0egL14IFwKhRBZePiCgnrF9ERYb1ztl6XKiSk58UqqsAOgNwB1AOwFgAmYD+\n+eRk/fFhYSoFJiJ6hPWLqEixzpGtqCjAz09fgLLoDKAMgBUA7gNoD2AYgA+yHuTkBPzyC9C4ccFk\nJSLKivWLqMixzpGtOXP0Q+/PuAKgDwAH6F8ZdgJw9tmDUlL05xMRqYH1i6jIsb5mKz5eP5k0mwG5\nDwFsBpAM4H8AIqEvWE8RAfbsAW7fNndSIqKnsX4RFUnW12yFh+f4VGvoXwmWBFAJQGMA3bM7UKPJ\n9TpERGbB+kVUJFlfs3X69NO3Rz+iA9ARQE8ADwH8A+AegCnZXSMlBYiJMWNIIqJssH4RFUnW12w9\neJDtw3cB/An9HTz2ADwADAawJ6fr3LtnhnBERLlg/SIqkqyv2XJ1zfbh0gCqAQiD/nbp+wC+BlAv\np+u4u5shHBFRLli/iIok62u2fH0BB4dsn/oOwH8AeAKoAf1eRJ9nd6CjI1C3rrkSEhFlj/WLqEiy\nvnW24uOBqlWznfdgMAcH4Pp17jlGRAWL9YuoSLK+ka0yZfR7hWk0pp2v0QCdO7NQEVHBY/0iKpKs\nb2QLyHEFZoNwBWYiUhPrF1GRY30jWwDQpIl+U1YnJ+POc3LSn8dCRURqYf0iKnKKqR3AZKNG6f87\ncaJ+3ZlcBuh0Gg1sHB31herxeUREajGmfgGwedxosX4RWSXrfBsxq+ho/V5he/bo5zNk3XPM0RHa\nzEwccHGB39690DRpol5OIqJn5VG/RKfDbhHU+eYbvNCrl3o5iShfrL/Zeuz2bf0WFjEx+gX/3N2B\nunWhHTAAtVu3xooVK9CmTRu1UxIRPS+H+oVBg/BJWBiuXr2KNWvWqJ2SiExUeJqtXHz11VeIiIjA\n3r171Y5CRGSUu3fvokaNGjh16hQqV66sdhwiMkGRaLbS0tJQvXp17NixAw0bNlQ7DhGRUSZMmAAR\nwaJFi9SOQkQmKBLNFgAsWrQIR48eRUREhNpRiIiM8tdff8HX1xexsbHw8PBQOw4RGanINFuJiYnw\n8vLCkSNHULNmTbXjEBEZZciQIahSpQpmzZqldhQiMlKRabYAYNasWbh58yZWrVqldhQiIqNcvHgR\nrVq1wpUrV+Ds7Kx2HCIyQpFqtv755x94e3vjzJkzqFChgtpxiIiM0qtXL7Rq1Qoffvih2lGIyAhF\nqtkCgA8//BDFixfH/Pnz1Y5CRGSU6Oho9OzZE3FxcShevLjacYjIQEWu2bp+/Trq16+PP/74A+7u\n7mrHISIySvv27dG/f38MGjRI7ShEZCDr3BsxH6pUqYKuXbsiNDRU7ShEREabOnUqQkJCoNPp1I5C\nRAYqcs0WAEyePBlffPEFkpOT1Y5CRGSUtm3bwsXFBdu3b1c7ChEZqEg2W7Vr18bLL7/M7S+IyOpo\nNBpMnToVc+fORRGbBUJktYpkswXoh+IXLFiAjIwMtaMQERmlR48eePDgAfbv3692FCIyQJFttpo3\nb45q1aph8+bNakchIjKKjY0NJk+ejDlz5qgdhYgMUOTuRsxq7969mDBhAk6fPg0bmyLbdxKRFUpP\nT4eXlxe2b9+ORo0aqR2HiHJRpDuMDh06oHjx4ti9e7faUYiIjFK8eHFMmDABISEhakchojwU6ZEt\nAIiIiMDixYtx+PBhaDQateMQERksKSkJ1apVw+HDh+Ht7a12HCLKQZEe2QKAt956C7dv38bBgwfV\njkJEZBQXFxeMHj2aO2IQWbgiP7IFAKtXr8b333+PPXv2qB2FiMgoj/d8jYmJQcWKFdWOQ0TZYLMF\nIC0tDdWqVcOePXtQv359teMQERll3LhxKFasGBYsWKB2FCLKBputR+bPn4/ff/8dmzZtUjsKEZFR\nHu/5GhcXh1KlSqkdh4iewWbrkYSEBHh5eeG3335D9erV1Y5DRGSUwYMHo3r16ggMDFQ7ChE9g81W\nFoGBgbhz5w7CwsLUjkJEZJTz58/Dz88PV65cgZOTk9pxiCgLNltZxMfHw8fHB+fOnUO5cuXUjkNE\nZJQePXqgbdu2eP/999WOQkRZsNl6xvvvvw9nZ2fMnTtX7ShEREb57bff0KdPH8TFxcHOzk7tOET0\nCJutZ1y9ehWNGjXC5cuX4erqqnYcIiKjtG3bFoMHD8aAAQPUjkJEjxT5RU2f9cILL6Bz584IDQ1V\nOwoRkdGmTp2KuXPnQqfTqR2FiB5hs5WNKVOmYMmSJUhJSVE7ChGRUdq3bw8HBwfs2rVL7ShE9Aib\nrWzUqVMHTZs2RXh4uNpRiIiMotFoMHXqVMyZMwecJUJkGThnKwdHjhzBO++8g0uXLqFYsWJqxyEi\nMphWq4WPjw++/PJLtG7dWu04REUeR7Zy8Morr6BSpUqIiIhQOwoRkVFsbW0xefJk3lVNZCE4spWL\nyMhITJkyBadOnYJGo1E7DhGRwdLS0uDl5YXdu3dzz1cilXFkKxedOnWCRqPBnj171I5CRGQUe3t7\njB8/nqNbRBaAI1t52LRpE0JDQ3Hw4EG1oxARGSUxMRHVqlXD0aNHUaNGDbXjEBVZHNnKQ+/evXHj\nxg0cOnRI7ShEREYpUaIERo0ahQULFqgdhahI48iWAVasWIFdu3Zx3Roisjq3b99GrVq1cPbsWZQv\nX17tOERFEpstA6SmpqJatWrYu3cvfH191Y5DRGSU999/H05OTggJCVE7ClGRxGbLQCEhIYiJicGG\nDRvUjkJEZJRr166hYcOG+OOPP+Dm5qZ2HKIih82WgR48eAAvLy9ER0ejWrVqaschIjLKwIED4ePj\ng2nTpqkdhajIYbNlhICAACQkJGD58uVqRyEiMsrZs2fx2muv4cqVK3B0dFQ7DlGRwmbLCLdu3cKL\nL76I8+fPo2zZsmrHISIySrdu3dCxY0eMHj1a7ShERQqbLSONHj0a7u7uCA4OVjsKEZFRfv31V/Tr\n1w+xsbHc85WoALHZMtLly5fRtGlTXL58GSVLllQ7DhGRUVq3bo3hw4ejf//+akchKjK4qKmRvLy8\n0LFjR6xYsULtKERERgsICMDcuXPB19lEBYfNlgmmTJmCxYsXIzU1Ve0oRERG6dixI2xtbbnnK1EB\nYrNlAl9fXzRo0ABff/212lGIiIyi0WgwdepUzJkzR+0oREUG52yZ6NChQ3j33Xdx8eJFTjQlIquS\nmZkJHx8fhIeHo2XLlmrHISr0OLJlopYtW6J8+fLYunWr2lGIiIxSrFgxTJo0CXPnzlU7ClGRwJGt\nfNi1axcCAwNx4sQJaDQateMQERmMe74SFRyObOVD586dodVqsXfvXrWjEBEZxcHBAePGjePm1EQF\ngCNb+fTNN99g9erV2L9/v9pRiIiMkpCQAC8vLxw7dgxeXl5qxyEqtDiylU9vv/02rl27hl9//VXt\nKERERilZsiSGDx+OBQsWqB2FqFDjyJYCli9fjn379mH79u1qRyEiMsqtW7fg4+ODCxcucM9XIjNh\ns6WAlJQUVKtWDT/99BNeeuklteMQERllzJgxcHV1xWeffaZ2FKJCic2WQj777DNcuHAB69atUzsK\nEZFRrly5gsaNG+Py5ctwdXVVOw5RocNmSyH3799H9erV8fvvv6Nq1apqxyEiMkr//v3h6+uLKVOm\nqB2FqNBhs6WgKVOmICUlBV988YXaUYiIjBITE4MOHTrgypUrcHBwUDsOUaHCZktBN2/eRO3atXHp\n0iV4enqqHYeIyChdunRBly5dMHLkSLWjEBUqbLYUNmLECJQpUwZBQUFqRyEiMgr3fCUyDzZbCouL\ni0Pz5s1x5coVlEhJAcLDgdOngQcPAFdXwNcXGDwY4MgXEVmgVq1aYcyYMejbti3rF5FC2GyZwbT2\n7TH4779RMy5O/0Bq6r9POjoCIsDrrwMBAUCTJuqEJCLKxqHPP0fa7Nlom54ODcD6RaQANltKCwuD\n9qOPgNRU2OZ2nEajL1wLFgCjRhVUOiKinIWFQSZOhC45mfWLSEFstpQUFgZMnAgkJxt+jpMTCxYR\nqY/1i8hs2GwpJSoK8PN7rlCdBzAGwHEAngDmA+jx7LlOTsAvvwCNGxdAUCKiZ7B+EZkVN6JWypw5\nQErKUw9lAugGoAuAuwBWAXgHwKVnz01J0Z9PRKQG1i8is+LIlhLi44GqVZ+eSArgDIDmABIB/URT\nAB0ANAPw3MIQDg7A9eu8y4eIChbrF5HZcWRLCeHh2T6cXRcr0Bex52g0OV6HiMhsWL+IzI7NlhJO\nn37uVSEA+AAoA/08hwwA+wD8AiDb6acpKUBMjBlDEhFlg/WLyOzYbCnhwYNsH7YDsA3AbgDlACwE\n0AdApZyuc++eGcIREeWC9YvI7LgfgxJcXXN8yhf6V4OPvQLg3ZwOdndXLhMRkSFYv4jMjiNbSvD1\n1U8QzcZpAKnQD70vAHATwKDsDnR0BOrWNVNAIqIcsH4RmR2bLSUMGpTjU+sBlId+7sNPAH4AYJ/d\ngSK5XoeIyCxYv4jMjs2WEsqU0e8VptE899R8APcAJAGIBFAju/M1GqBzZ942TUQFj/WLyOy4zpZS\ncliB2SBcgZmI1MT6RWRWHNlSSpMm+j3CnJyMO+/x3mIsVESkFtYvIrPi3YhKerwZ68SJ+nVnchk0\nFI0GGkdHbuJKRJbBiPql02hgw/pFZDC+jWgO0dH6vcL27NHPZ8i655ijIzLS03HBywt1N27kK0Ii\nsix51C+dVou9trZo+8MPsG/RQr2cRFaEzZY53b6t38IiJgbaO3fw7d69eOvjj3G/WzfUbt0aJ0+e\nROXKldVOSUT0vCz1C/fu6dfRqlsXGDQI3YYOhZ+fH8aPH692SiKrwGarADVt2hSLFi1Cy5YtERgY\niBs3bmDNmjVqxyIiMsrZs2fRtm1bXLp0Ca65LIpKRHqcIF+AmjRpgmPHjgEAJk2ahN27d+PMmWy3\ndSUislgvvfQSunTpgnnz5qkdhcgqsNkqQE2bNkVUVBQAwNXVFQEBAZg2bZrKqYiIjDd79mysWLEC\nN27cUDsKkcVjs1WAso5sAcCoUaMQExODgwcPqpiKiMh4lStXxtChQ/Hxxx+rHYXI4nHOVgHSarVw\nd3fHlStX4OHhAQDYsGEDQkNDcfjwYWiyWcGZiMhS3bt3D97e3jh48CB8fHzUjkNksTiyVYBsbW3R\nqFEjREdHP3msX79+SE5OxrZt21RMRkRkPHd3d0yePJnTIYjywGargDVt2vSptxJtbGwwd+5cBAQE\nIDMzU8VkRETGGzt2LKKiovDrr7+qHYXIYrHZKmBNmjR5Mkn+sY4dO6JChQpYu3atSqmIiEzj6OiI\nTz75BFOmTAFnpRBlj3O2Cti1a9fQrFkz3Lx586k5WlFRUejevTtiY2PhZOz+ZEREKtJqtahXrx7m\nzp2LLl26qB2HyOJwZKuAValSBSKCv/7666nHmzRpghYtWmDJkiUqJSMiMo2trS3mzJmDqVOnQqvV\nqh2HyOKw2SpgGo3muSUgHgsODsbChQtx584dFZIREZmuS5cucHd3x/r169WOQmRx2GypIOviplnV\nrFkTffr0wWeffaZCKiIi02k0GoSEhGDmzJlIybp5NRGx2VJDdpPkH5s5cybCw8Nx7dq1Ak5FRJQ/\nr7zyCho1aoTly5erHYXIonCCvAr++ecfVK9eHffu3YONzfP97syZM3Ht2jV8/fXXKqQjIjLd+fPn\n8eqrr+LSpUtwd3dXOw6RReDIlgpKly4NDw8PXLp0KdvnJ06ciP/85z84ffp0AScjIsqfF198Ed27\nd0dISIjaUYgsBpstleQ0SR4ASpYsienTpyMgIKCAUxER5d/s2bOxevXq5+66Jiqq2GypJKdJ8o+N\nHDkS58+fx/79+wsuFBGRAipWrIgRI0Zg9uzZakchsghstlSS28gWABQvXhzBwcFclZmIrNLkyZOx\nY8cOnDt3Tu0oRKpjs6WShg0b4syZM0hPT8/xmLfffhsZGRn47rvvCjAZEVH+ubm5YerUqdykmghs\ntlTj4uICLy8vxMTE5HiMjY0NQkJCMG3aNGRkZBRgOiKi/Bs9ejROnDiBw4cPqx2FSFVstlTUtGnT\nXN9KBID27dujSpUqWLNmTQGlIiJShoODA4KCgjgdgoo8Nlsqym1x06zmzp2Ljz/+GA8fPiyAVERE\nyunfvz8SEhKwc+dOtaMQqYbNlooMGdkCgEaNGqF169ZYvHhxAaQiIlKOra0t5s6di4CAAGRmZqod\nh0gVXEFeRRkZGXBzc8OtW7fg4uKS67F//PEHmjVrhgsXLqB06dIFlJCIKP9EBG3atMHAgQPx3nvv\nqR2HqMBxZEtFdnZ2qFu3Ln7//fc8j61evTr8/f0RHBxcAMmIiJTzeJPqWbNmcZNqKpLYbKnM0LcS\nAWDGjBlYv349rly5YuZURETKatasGZo1a4alS5eqHYWowLHZUpmhk+QBoEyZMnj//fcxc+ZMM6ci\nIlJecHAw5s+fj7t376odhahAcc6Wyi5evIhOnToZPFqVmJgIb29vREZGon79+mZOR0SkrJEjR6Jk\nyZKYN2+e2lGICgybLZXpdDqUKlUKsbGx8PT0NOic5cuXY9euXYiMjDRzOiIiZd28eRN16tTByZMn\nUblyZbXjEBUIvo2oMhsbGzRu3NjgtxIBYNiwYYiNjcV///tfMyYjIlJe+fLlMWrUKMyaNUvtKEQF\nhs2WBTBm3hbATaqJyLpNmjQJu3fvxpkzZ9SOQlQg2GxZAGObLQDo3bs3RARbtmwxUyoiIvNwdXVF\nQEAAN6mmIoNztizAX3/9hYYNG+LWrVvQaDQGn/fTTz9h5MiROHfuHOzs7MyYkIhIWWlpafDx8cG6\ndevQqlUrteMQmRVHtixAxYoVYWtri+vXrxt13muvvQYvLy98+eWXZkpGRGQe9vb23KSaigw2WxZA\no9EYtbhpVnPnzkVQUBCSkpLMkIyIyHz69euH5ORkbN++Xe0oRGbFZstCmDJvCwAaNGiANm3a4PPP\nPzdDKiIi87GxseEm1VQksNmyEKaObAFAUFAQlixZgtu3byuciojIvDp27Ijy5csjPDxc7ShEZsMJ\n8hbi7t27eOGFF3Dv3j3Y2toaff6HH34IAFiyZInS0YiIzCoqKgo9evTApUuX4OTkpHYcIsVxZMtC\nlCpVCmXLlsXFixdNOj8wMBDffPMNLl++rHAyIiLzatKkCV555RV88cUXakchMgs2WxakSZMmJr+V\n6OnpiQ8//BAzZsxQOBURkfkFBwdj4cKFuHPnjtpRiBTHZsuCmDpJ/rHx48fj559/xokTJxRMRURk\nfjVr1kTv3r0xZ84ctaMQKY7NlgXJzyR5AHBxccGMGTMwdepUBVMRERWMmTNnYu3atbh27ZraUYgU\nxQnyFiQ5ORmenp64e/cu7O3tTbpGRkYGateujbCwMLRr107hhERE5jVz5kxcv36ddydSocKRLQvi\n5OSEmjVr4vTp0yZfw87ODp999hmmTJkCnU6nYDoiIvObOHEi/vOf/+SrDhJZGjZbFiY/k+Qf69Wr\nF2xtbREREaFQKiKiglGyZElMmzYNAQEBakchUgybLQvTtGnTfE2SB/Tb/4SEhGD69OlIT09XKBkR\nUcEYMWIEzp8/j/3796sdhUgRnLNlYU6ePIl+/frh3Llz+b7W66+/jjfeeANjx45VIBlRLuLjgfBw\n4PRp4MEDwNUV8PUFBg8GPD3VTkdWaOPGjViyZAmOHj0KjUajdhwq7Mxcw9hsWZiMjAy4u7vjxo0b\nKFmyZL6uderUKXTs2BGxsbEoUaKEQgmJsoiKAubMASIj9Z+npv77nKMjIAK8/joQEAA0aaJORrJK\nOp0OjRo1QmBgIN566y2141BhVUA1jG8jWhg7OzvUq1cPx48fz/e16tWrh/bt22PhwoUKJCN6RlgY\n4OcHbNumL1BZixQApKToH9u2TX9cWJgaKclK2djYICQkBNOmTUNGRobacagwKsAaxmbLAuV3cdOs\ngoKCsHTpUty6dUuR6xEB0BediROB5GT9K7/ciOiPmziRDRcZpX379qhcuTLWrFmjdhQqbAq4hvFt\nRAu0ceNGfP/99/i///s/Ra43fvx4ZGRkYNmyZYpcj4q4qCj9q7zk5Oee8gNwFECxR59XBPDUbp9O\nTsAvvwCNG5s5JBUW0dHR6Nq1K2JjY+Hs7Kx2HCoMcqhhfsijfgEm1zCObFkgJZZ/yGr69OnYvHkz\n4uLiFLsmFWFz5uiH13OwDEDSo4/nClVKiv58IgM1btwYr776KhYvXqx2FCoscqlhudYvwOQaxpEt\nCyQi8PDwwPnz51G2bFlFrhkcHIyYmBhs3rxZketRERUfD1St+vzchkf8ALwDYGhu13BwAK5f512K\nZLC4uDg0b94cFy5cQOnSpdWOQ9YslxrmBwPqF2BSDePIlgXSaDRo3LixYvO2AGDcuHE4ePAgoqOj\nFbsmFUEGbKESAKA0gBYA9md3gEZj0HWIHqtRowb69u2L4OBgtaOQtcuj9uRZvwCTalixvA8hNTxe\n3LRLly6KXM/Z2RmzZs3ClClT8OOPP1r+ujVct8kynT6d46gWAIQAqA2gOIDNAN4EcBJA9awHpaQA\nMTFmDEmF0cyZM1G7dm188MEHqFatmtpx8sYaZjFEBA8fPkRiYiKcDx1CyRxqmEH1CzCphvFtRAsV\n+fXXuPHZZxjSpIliv6iZmZl46aWXsHTpUnTo0EHhxArhuk2W7c03gV27DD68E4A3ALz/7BNdugA7\ndyoYjCyKmRqNjz/+GHFxcVi/fr1yWZXGGpZvOp3uSXOUlJSExMTEJx/Gfp6YmIjk5GQ4OjrCxcUF\nGxMT0Tabm3uyk2P9AoyuYWy2LM2jX1TZswepaWlwzPqcAr+o3333HYKCgnD8+HHY2FjYu8iPb8VN\nScn9VlyNRv+zWLAAGDWq4PIR8M47wDffGHz4648+Pnj2iQEDgHXrFAxGFsHMjUZiYiK8vb0RGRmJ\n+vXrKxRaQUW0hul0uidNTn7f2ijWAAAgAElEQVSbo6SkpCfNUYkSJZ58uLi4GPV51secnZ1ha2ur\nD2tEDcuxfgFG1zC+jWhJsvyiakSebrSAf++e2LYN2LvXpF/UHj16YN68edi8eTP69eunSGxFZF3z\n5BGXZw5JATAawNKsa54AhaJYWQ1fX2Dr1mzfSrwP4DcAraEvLN8COADguXvIHB2BunXNHJQKXF6N\nhgL1q0SJEggMDERAQAAiHzd0luKZGpZj/QKeXrcJKPAaptVqkZSUpMioUVJSElJSUuDk5GRQI1Sh\nQoVcG6PHzZHZBgN8fSFbt0LzTA0zuH4BJtUwjmxZimyajcdiAdQF0AvAhqxPODmZVLB++eUXDB48\nGOfPn4e9vX0+Qiskl3WbHnsIoCyAPQBezfoE120qWPHx0FWpApu0tOeeug2gM4ALAGwB+AAIAtD+\n2QN5N2LhU4D1Kz09HbVr18aqVavQtm3bfIRWUB41LMf6BRhUwx43R9k1OqZ8npqaCmdn53yPGD3+\ncHJysrx3SrKh0+mwNSwMb44dC4dnnjO4fgEm1TA2W5Ygj1/UDtC/KqqKZ4oVYHKz0aVLF3To0AEf\nfJDtAGnB6tlT/2o3l7+KXwP4GMAfAJ6a2q/RAD166EdbyKwSEhIQHByMVp9/js6ZmbAxpXTwz6vw\nUaF+ffvtt1iwYAGOHTtmGTf75FHDcqxfAHQATlStinnNmuXYKKWlpcHFxcXoxiinRslamiOliAh2\n7NiBDz74AH///Tf2Ojuj9f370BRgDWOzZQly+UXdDOA76O+QiEM2xcrEP/iYmBi0b98ely5dyveG\n1/mSx7pNj7WF/hXh7Oye5EiJWWm1WqxduxYzZsxAp06dMK93b3j27p3rSGSOOBJZ+KhQv3Q6HZo2\nbYopU6agd+/epuXOIjMz06C3y7L73PbOHWyNjoZ9Lv+U5lq/AGQWK4ady5ejeMWK2TZLTk5OltFU\nWhkRwY8//ojx48fj6tWrKF26NL788ku0c3XN892UHJlYwzhnS23x8frJpNn8oiYAmAngJwBf5XS+\nCLBnD3D7tlHNRt26ddGpUycsWLAAn3zyiQnBFWLAWiXXAfyCXH4Gj9c8mTRJsVik98svv2DcuHFw\ndnbGzp070fhxgVmwIMe3jXL0+G0jNlqFh0r1S6vVYvr06Rg/fjxq1KiBtLS0fL29lpGRYfAIUenS\npZ96zGfnTtidPg1k89Y6YED9AlDMzg49HjwAhg83+GdAuTt06BAmTZqE8+fPAwDmz5+P4cOH/ztR\nvoBrGJstteXSbMwAMARA5TwuIQCSli5FwogR0Gq1yMzMfOq/2T2WmZmJDh06YMSIEfD29kaJEiVy\nPC63axjz3+weG3/8ONrmMaq1DkBLADmurMN1mxR3+fJlTJo0CdHR0Zg3bx769Onz9Cvrx/NsiuCd\nV5SFAvUrQ6vFwYED8WODBkhISHjSDD3+ePjw4ZOP5ORkJCcnQ6vVwsnJCWlpaXjttdfg6ekJBwcH\n2NvbP/VRvHhx2NnZoXjx4nBxcUGpUqVQrFgxFCtWDLa2tk/+H9CPluVUu5KTk5GYmJjt8xNOnoRX\nDo0WYED9AljDFBQdHY2AgAAcP34cGRkZGDZsGGbOnAk3N7enDyzgGsZmS205LBJ5EsCPAE4YcAlN\naioi58/HuC+/fFJEHheSvP7r4eGB6dOno169es89b+g17Ozs4OjomO3zeZ370qefAjdv5vr9rQMw\nNa8fwr17BvykKC8JCQmYM2cOVq9ejfHjx2PDhg1wdHzuvli9UaP0t+/PmaMfndBont5v7PGt/p07\n62/154hW4aNA/bLLyMDNffvwxcGDsLGxeVIf7OzsntQXOzs7lC5d+sn/Fy9eHMWKFUNKSgpOnDgB\nLy8v2NvbG1SvjKlthlyj7ief5FrDDKpfAGtYPsXExGDGjBk4+OjvUcuWLbFw4ULUrFkz55MKsIax\n2VLbgwfZPrwfwFUAVR59ngRAC+AcgN+zOb5Pu3boY8IikXfu3IGPjw8WLFgAb29vo8/Pt2+/BXLZ\ndPsIgP8ByHNWhru7gqGKHq1Wi/DwcMyYMQMdOnTA6dOnUaFChbxPbNxYP9/m9m39KEdMjP4fDXd3\n/a3RgwZxLl1hplD96t+5M/qbuMht//794ePjgxkzZph0fr5t2pRjDTO4fgGsYSa6dOkSZs+ejb17\n98Ld3R3ly5fHkiVL8Nprrxl2gQKqYWy21Obqmu3DwwH0zfL5AuiLV1hO1zHxF9XDwwMTJkxAYGAg\nIiIiTLqGqUQEfzg7o7KtLey12myP+RpATwAlcrsQ123KlwMHDmDcuHFwdHTE9u3b0cSUVa09PTln\nrihSuX4BQFBQEJo2bYqRI0fCs4Ab++vXr+P8zZt4FXh+XUQYWL8A1jATXL16FUFBQdi2bRu8vLxQ\nrFgxTJw4EUOHDn3y1rBRzFzDis69n5bK11d/N90znACUy/LhAsABQLalJJ+/qB988AGOHDmCY7mM\nMCnpzp07WLRoEXx8fDDkwAHY5nKXzUoAeW3MkZGejsS33lI0Y1Fw5coV9O7dGwMGDMCUKVNw6NAh\n0xotKrosoH55eXmhf//++PTTT02+hjG0Wi127dqFLl26oEGDBjjg5QX74sWzPdaQ+gUAOq1WP4JC\nebpx4wbGjBmDhg0b4urVqwCAV199FRcvXsTIkSNNa7QKgpC6bt0ScXAQ0b8zbNqHg4NIfHy+Yqxe\nvVr8/PxEp9PpM4WEiPTvL9Kli/6/ISH5+ho6nU4OHTokAwYMEFdXVxkwYIAcOnRI//V69BDRaEz6\n3nUajURVqSJly5aVJUuWSFpaWr5+DkVBQkKCBAQESKlSpSQoKEiSk5PVjkTWykLqV3x8vHh4eMgf\nf/xhlvolIvK///1PPvnkE6lSpYo0a9ZM1q5dKw8fPtQ/mY8aptVoZGfx4vLuu+/KtWvX8pWxMIuP\nj5cJEyaIm5ubdO3aVapWrSpdu3aVixcvqh3NIGy2LEE+flFFoxHp2TPfETIyMqRX1ary9yuv6Ivf\nswXU0VH/WI8eIseOGXzd+/fvy7Jly6ROnTri7e0tCxculH/++efpg44dE3FyMu37d3ISiYqSU6dO\nSadOncTLy0s2b96sb+LoKVqtVr766ispX768DBw4UP766y+1I1FhYAH1S0Rk9YgRcqxSJUXrl1ar\nlb1790rPnj3F3d1dRowYIb///vvzB+azhiX+/LNMnz5dSpUqJZMnT5a7d+8q8jMpDO7duyeBgYFS\nqlQp6dOnj7z88svy0ksvyb59+9SOZhQ2W5bg2DHJtLfPV7ORb6GhkmFvL5mGFEcnJ5HQ0FwvFxUV\nJUOGDBE3Nzfp06eP/Pe//829AQoNNb5YZZPjp59+kkaNGknjxo3lv//9b/5/LoXEgQMHpGHDhvLy\nyy/Lb7/9pnYcKkyOHROdo6Pq9Uvn6KhY/YqPj5eQkBDx8vKS+vXry4oVKyQhISHPDPmtYf/73/9k\n2LBh4unpKQsWLJCUlJT8/2ysVGJiogQHB0vp0qXF399f+vbtK2XKlJHQ0FDJyMhQO57R2GxZgLNn\nz8pEFxfjGy4DioZBFGp0EhMTZdWqVdKoUSN54YUXZM6cOfL3338bnyOvV8l5FEytVisbN26UatWq\nSefOneX06dP5+elYtStXrkjv3r2lcuXKsnHjRo74keLS09Pli9q1JdXW1qrrl06nk/3790vfvn3F\nzc1NBg8eLL/99ptxvzMK1bCzZ88+eats3bp1otVq8/MTsirJycmyaNEiKVu2rPTp00cmTZokHh4e\nMn78eLl3757a8UzGZktl169flypVqsi6desU+0U1SjbD30sBaQRIcUDeNeBV6alTp2T06NHi7u4u\n3bt3l8jISNOLQ1SU/m0FBwf90H/Wr/f4rYCePQ16NZyamiqLFy+WMmXKyKBBg+T69eumZbJCCQkJ\nMm3aNClVqpR88skn/84tIVKQTqeTgQMHSufOnSVj6VKLqF8G17BH9evOnTvy+eefi4+Pj9SuXVu+\n+OKL/P2jrmANO3DggDRv3lzq1asne/fuNT2TFUhLS5OwsDCpWLGidOvWTRYvXizVq1eXLl26WM28\nrNyw2VLRnTt3pHbt2jJ//vx/H1TwF9Ug2cy32ArI94CMzKPZ0mo08t9SpaRixYoye/Zs+fPPP5XJ\nJKKfzDpvnsiAAfpJrgMG6D83YZLr/fv3nzQeU6ZMsepXR3nRarWydu1aqVChggwYMEDZPxOiZ0ye\nPFmaN28uSUlJ+gcsoH4ZWsMe31zj5uYm/fr1kwMHDig78qtQDdPpdLJlyxapWbOmtGvXLvs5Y1Ys\nIyNDwsPDpVq1atKxY0f55ptvpE2bNvLSSy8VqgaTzZZKHj58KC1atJCPPvoo+wMe/aJm9usnOzUa\n0b3zjsnNRo7yuJNoel4jW4Bk2tlJxo0bymUyo7/++kuGDBkinp6esnDhQklNTVU7kqIOHjwojRo1\nkubNm8vRo0fVjkOF3KJFi8THx+f5G15Enmo0osqXl8utWhV4/TKkhmUUKyb/nD+vXCYzSk9Pl9DQ\nUClXrpz069dPLl++rHakfNFqtbJ582apVauWvPrqq7J9+3YZPny4lClTRpYvX26V87Jyw2ZLBRkZ\nGfLmm29K//79DXq7zd7e3jxvA4WE5LvZEkdHfRG1ImfOnJE333xTqlatKuvXr7f6+RBXr16VPn36\nSOXKleWbb77hvCwyuw0bNkilSpUMWqpg6NChsmLFCuVD5FG/DKphVli/EhISZNasWVKqVCkZP358\n9s2uBdPpdLJ9+3bx9fWVpk2byu7du2X+/PlSunRpGTduXKG9E5OLmhYwEcGIESOQnp6ONWvWwMYm\n7z8CV1dXPMhhW4x8yWFfM6NY4QaqL730Enbs2IF169Zh2bJlaNSoEX744Qe1YxktKSkJgYGBaNiw\nIWrXro0LFy6gX79+T28YTaSwffv24aOPPkJkZCSqVKmS5/GsX8oqUaIEZs+ejbNnzyI1NRU+Pj6Y\nO3cuUrLu6WeBRAQ//PADmjdvjhkzZuCTTz5BQEAAPvzwQ+zfvx+HDh3C559/DvdCum0Rm60CNmPG\nDMTExGDLli0onsOqw89yc3MzT7FS6ppWuoHqq6++il9//RXTp0/HmDFj0KFDB5w4YcjWuerS6XT4\n+uuvUatWLVy9ehWnTp3CrFmz4OTkpHY0KuSioqLQv39/bN26FXXq1DHoHNYv8yhXrhxCQ0Nx+PBh\nREdHw9vbG2vWrIE2h63P1HTo0CH4+fnh/fffx0cffYR169Zh6dKlmD59OpYtW4Zdu3ahVq1aasc0\nKzZbBWjp0qWIiIjA7t274eLiYvB5rq6uuH//vvKBctjXzFj/+e03DBs2DAsXLsTu3bsRFxeHzMxM\nRa5tbhqNBr169cLZs2fRvXt3dO7cGe+8886TbSAszeHDh9GsWTOEhYVh69at2LBhAypVqqR2LCoC\nYmNj0bVrV3z55Zdo2bKlwedZev2y9g2gvb29sWXLFkRERGDt2rWoX78+du/eDRFROxqio6PRqVMn\nDBgwAO+99x5+/vln7N+/Hx06dECPHj1w6tQpdOzYUe2YBYLNVgGJiIhASEgI9u7da/RmqeYYhk9I\nSMDxjAykZfM2ZiaAVADaRx+pjx7Ljs7BATV69kSjRo3w559/YunSpWjXrh1KlCiBOnXqoFevXggM\nDMSGDRsQHR2NxMRERb8PpdjZ2WH06NG4dOkSatSogUaNGmHChAm4c+eO2tEAANeuXYO/vz/69u2L\ncePG4ciRI2jevLnasaiIuHnzJjp27IigoCB069bNqHPNUb90Oh0ulyiBdFvbbJ83uIYVog2gX375\nZRw4cADBwcGYNGkS2rRpU2D73T4rJiYGPXr0QPfu3dG9e3fExMTgzp078PX1hb29Pc6fP48xY8ZY\n7j6G5qDynLEi4ccffxRPT085efKkSee/9dZb8u233+Y7R0pKimzZskXeeustKVmypPRv314y7eye\nmzQ6CxA88zErpwmmOexr9vDhQzl58qRs3rxZZs+eLX379pX69euLk5OTVKhQQdq2bSujR4+WL774\nQvbt2yfXrl2zqInqN2/elJEjR0rp0qVl7ty5qu0fmJiY+GSrilmzZv17iz1RAbl//77Uq1dPgoKC\nTDp/27Zt0qVLl3zn0Ol0cvz4cZk4caJUqlRJXvXxkYxixbKtSwbXMAX2ZbREGRkZsnr1aqlQoYL0\n6dNHYmNjC+TrXrx4Ufz9/aVs2bKyaNEiefjwoWzfvl1q1KghnTt3lvNWcuenObDZMrPff/9dPD09\nZf/+/SZfY8iQIbJq1SqTzk1PT5fIyEgZOHCguLm5Sdu2bWX16tVy584d/QEFvK+ZVquVa9euyd69\ne2XJkiUyatQoadOmjZQvX16cnZ2lQYMG4u/vLx9//LF8++23curUKVU3Sr5w4YL07NlTKleuLGvW\nrJHMzEzDT87HhrharVa+/vprqVixovTr169ILchKliMlJUX8/PxkzJgxJt/lun//fmnVqpXJGc6f\nPy+zZs0Sb29v8fLykmnTpklMTIz+SQvZl9FSJSUlyaeffioeHh4yduxYuXXrluEnG1G/rly5Iu+9\n956ULl1agoODJTExUU6fPi3t2rWTF198USIjIxX8rqwTmy0ziouLk/Lly8uWLVvydZ2PPvpI5hlx\ne7JWq5UDBw7IqFGjxNPTU5o1ayaLFy+WG9mth6XAJtBKefDggRw7dkzWrVsn06ZNk549e0rt2rXF\nwcFBXnjhBenUqZOMGzdOVqxYIfv375ebN28W2DIHhw8flhYtWkidOnVk9+7duX/dY8f0/wiYuCHu\n4cOHpUmTJtK0aVM5cuSImb4jotxlZmZKr169pFevXsa9yHjGiRMnpG7dukadc+3aNQkJCZH69etL\n+fLl5cMPP5SjR48+/3tnQfXLksXHx8sHH3wgHh4eEhQUlPsIuRH163//+5+MHj1aSpUqJYGBgXLv\n3j2Jj49/8m/P0qVLJT09veC+UQvGZstM/v77b6levbqEhYXl+1off/yxTJ8+Pddjsg6xV65cWerU\nqSPBwcHyxx9/5P0FFNpbzFwyMjIkNjZWdu7cKfPnz5chQ4ZIixYtxMPDQ1xdXaVZs2by7rvvypw5\nc+T777+Xc+fOSVpamuI5dDqdbNu2TXx8fMTPz0+OZdcs5WPLpWvXrom/v79UqlSpUKz/RdZLp9PJ\n6NGjpU2bNvle/Pfy5ctSpUqVPI+7deuWLFu2TFq0aCGlSpWSoUOHyk8//ZR3o2fh9cuSxMXFydtv\nvy0VKlSQlStXPr9wqIH1S6fRSFqxYvKRk5NMnDhR4uPjJS0tTRYtWiSlS5eWDz744N93T0hE2GyZ\nRUJCgjRs2FBmzpypyPWWLFkiY8eOzfa5CxcuPBlir1at2tND7MZ49EumNWTo3YIK1e3bt+XQoUPy\n5ZdfysSJE6VLly5So0YNsbe3F29vb+natatMnjxZ1qxZI4cPH1akAGRkZMjKlSulQoUK8vbbb0tc\nXJz+CROLfurixTJjxgwpVaqUzJw5k/OySHVBQUFSr149uX//fr6vdffuXXF1dc32ufv378vatWul\nQ4cO4urqKv369ZOdO3ca/2Lp0e+eriD3ZbRix44dkzZt2oiPj498//33+hFDE+qX1tFRdKGhsnPn\nTvH29pbXX39dzp07p/a3Z5HYbCksNTVVXnvtNRk+fLhib3GFh4fLgAEDnnx+7do1mTdvnjRo0EDK\nlSuX8xC7kVIOHpQdxYuL1t6+YPY1M6PU1FQ5e/asbN26VYKDg2XAgAHSpEkTKVGihHh6ekqrVq1k\n2LBhsnDhQtm1a5fExcUZ/VZJUlKSBAUFiYeHh8zv00d0z/7MAOkPSDlASgBSE5DV2RSshxqNTOvQ\nwaDVuInMbdWqVVKtWrXspx2YIDMzU2xsbJ6M1CYnJ0tERIT06NFDSpYsKd26dZPNmzfn/0VGVJQc\nf+EF/aR5K69fBUGn08mePXukbt26MsTXVzLt7U2qXyk2NvJW1aqyZ88etb8li6YREVHvXsjCRafT\noV+/fkhPT8f//d//wTaH25KNtW3bNoSFhaFbt27YtGkTzp07h549e8Lf3x+tW7dW7OusX78eGzdu\nROS6dUB4uH5l5Xv39OvQ1K0LDBoEGLlshaUREfz999+4cOHCcx/x8fGoUaMGfHx8nnzUqlULtWrV\nQokSJXK85u3bt3GjeXPUuXwZz/5JnAVQA4A9gAsA/ADsBtAoayaNBpoePYCtW5X9ZomMtG3bNowa\nNQoHDhxAzZo1Fbuui4sL1q5dix07dmDXrl1o3Lgx/P390aNHD8VWDE9MTETVqlVx/sABlI2MLJT1\nyxy0Wi3+atoUlX7/3aT6pdNogG7dYPP99wWS11qx2VKIiGDcuHE4ceIE9u3bBwcHh3xf88GDB9i2\nbRuWL1+O33//HX369IG/vz86duxo8OrzxmjZsiUmTpyI7t27K35ta/Dw4UPExsY+14TFxsbC3d39\nqSbscSNWqVIlaG7fBqpWzXPrkIvQF6slAPo8+6SDA3D9Ov8xINUcPHgQPXv2RGRkJBo3bpzv6+l0\nOhw8eBCbNm3C6tWrUb9+fQwaNAi9e/dGuXLlFEj8tJUrV2Lfvn3YyhctxomPZ/0qAEVoRTHzCgkJ\nwc8//4wDBw7kq9FKSUnBrl27sGnTJvz000/w8/NDz549kZKSgo0bNyqY+Glnz57FlStX0KVLF7N9\nDUvn7OyM+vXro379+k89rtPp8Oeffz5pvs6ePYutW7fiwoULSExMRLCrK0ZmZMA+h+uOBhAOIAVA\nAwCdsztIo9GPJk6apNw3RGSgM2fOoFevXti4cWO+Gi0RwfHjx7Fp0yZ8++238PDwgL+/P6pXr47w\n8HDUNdMCoiKClStXYu7cuWa5fqEWHp7r06xfymCzpYC1a9dixYoVOHLkCNzc3Iw+PyMjAz/88AM2\nbdqEnTt3Phli/+qrr+Du7o7Lly9jxYoVZkj+r5UrV2LIkCFFa0VfA9nY2KBq1aqoWrXqc1tLPHjw\nABl9+8L+P//J8fxQAEsB/ApgP5B9U2aFG+JS4XDt2jW8/vrrWLx4Mdq3b2/SNc6fP49NmzZh06ZN\nEBH4+/tj3759qF27NgBg586d5tmy55Ho6Gg8ePAA7dq1M9vXKLTy2NCb9UsZ/Jc1N/Hx+m799Gn9\npqeuroCvLzB48JPh0l27diEgIAD79+9HhQoVDL501iH2rVu3ombNmvD398f8+fOfG2I3x3YXWSUn\nJ+Obb76xik2YLY2rqytgQINqC6AlgA0AwgB8kN1BVrohLlkoA+rXP//8g06dOmHChAnw9/c36vLX\nrl3D5s2bsWnTJty+fRtvv/32k5ExjUbz1LHmrmErV67EsGHDYJPN9mOUMxHBrYsXkdebuqxf+cdm\nKztRUcCcOUBkpP7zrF3/d98Bs2YBr7+O02+8gcFTp2LXrl3w8fHJ87I5DbFHRUXhhRdeyPE8V1dX\nJCYmQkSeK2JKiIiIwMsvv4wqVaoofu0iwYgNcTMB/JHTk1a+IS5ZCAPrV8q4cegyeTK6deuGcePG\nGXTpW7duISIiAps2bcKlS5fw1ltvYfHixWjVqlWuN+q4ubmZrdl68ODBk7f1yTAigh9//BGBgYGY\nERcHQyePsH7lgyr3QFoyIxZ1ewhIzJgxeV7y3LlzMmPGDKlRo4ZUr15dAgMD5ezZs0bFcnZ2loSE\nBFO/q1w1b95cduzYYZZrFwkhIc+vtAzILUA2AZIISCYg/wHECZBt2f2dcnQUMWKXAKJsGVG/Umxs\nJLxZszyXjLl375589dVX0q5dO3F1dZX+/fvLrl27jFoLa+TIkbJ8+fL8fnfZWr58ufTu3dss1y6M\nDhw4IK+++qrUqlVLNm/eLNq5c1m/CgCbraxyWNRtEyA+j/6ieQFy4JlFKbNbIO/q1asyd+5cqVev\nnlSoUEHGjx8vx44dM3ktrAoVKphlf7xTp05JpUqVnl9JmAx361a2xSoekFcBcX20Tk0dQFbl9A9g\nId0QlwqQCfVLl0P9evjwoWzevFm6desmJUuWlB49ekhERIQ8fPjQpGhTpkyR4ODg/H6Hz9HpdOLr\n6ys//PCD4tcubI4dOyYdO3aUF154QcLDw/+t+axfBYLN1mM57LG1D5AqgPwKiBaQvx59PLsKuERF\nyd9//y1Lly6VV155RTw8PGT48OHy888/52tfscdefPFF01aGz8Po0aNl1qxZil+3yOGGuKQmBepX\nWlqa7Ny5U/r16yeurq7SoUMHWbt2rSKryH/22WcyefJkBb7Rp/36669SvXp1bm2Vi9OnT0u3bt2k\nYsWKEhYWlv2IJOuX2bHZeiyHv2wvA/JlHn/ZtBqNHChTxuQhdkO8/PLLcujQIUWvmZSUJO7u7vLn\nn38qet0iiRvikpryWb+iX3hBPDw8pEWLFrJs2TK5deuWovFCQ0NlxIgRil5TRGTQoEESEhKi+HUL\ng4sXL0rfvn2lbNmysmjRIklOTs75YNYvs+OtG4D+rp3ISP1fnSy0AKIB3IZ+Fd1KAMZCv95IVjYi\neOXePdw4dQobNmzAG2+8ofiio66urorfOr1582a0bNkSlSpVUvS6RVKTJsCCBYCTk3HnOTnpz1Ng\nEUkqohSoX/X++gsn9u3DoUOHMGbMGJQpU0bRiOaoX/fv38f333+PQYMGKXpda3f16lW89957aNGi\nBerWrYu4uDiMHz8ejo6OOZ9kYv0SR0fWLwOx2QJyXNTtFoAMAFsAHARwEsAJAJ9mc6xtsWJwiogw\nU0Dz3Dq9cuVKjBgxQtFrFmmjRv1bsPK4a1Q0GiRrNDjxzjv684hMpUD9KmZnh8o//WSmgOapX+vX\nr0enTp0Ubwyt1Y0bNzBmzBg0atQIFStWRGxsLKZNmwYXFxfDLmBE/YJGg7RixbCqVi3IyJH5D18E\nsNkCclzU7fHrgPcBlBjL+ccAABZfSURBVAdQGsBHAPZkdw0zL+qmdLE6ceIEbt26hU6dOil2TYK+\nYP3yC9Cjh34Li2dfTTo6Ag4O0PTogStr16Lj99/j0qVL6mSlwqEI1i8R4YvFR27fvo2JEyeibt26\ncHJywoULFxAUFGTSAtuG1i/06AHNL7/gKzs7LFy4UJlvpJDjOluAfsG/bLhDP/Ru8MpWZlzUTel1\nalauXImhQ4cqtok1ZdG4sX5T6du3c93Q+yUAQampeOutt3D06FE4OzurHJysUhGsX0eOHEFGRgb8\n/PwUu6a1uX//PhYuXIjQ0FD4+/sjJibGqIW1c2Rg/SoOYMuWLWjatCmaNGmC1q1b5/9rF2JstoBc\nF6UcDP1WBZ0A2AFYDOS8AJwZF3VTcs5DYmIivv32W5w9e1aR61EOPD3z3Cts+PDh+PXXXzF8+HBs\n2LDBLIvWUiFXxOoXoH+xOHz48CL5+5KUlIQvvvgCn3/+Obp27Yrjx4/nuii2yQyoX1WqVMG6devg\n7++P6OhoZZq9QopvIwL6LSxy2Dx6BoAmALwBvAj9RpzTszvQ0VHf9ZuJksPwmzdvhp+fH38xLIBG\no0FoaCjOnDmD0NBQteOQNSpi9evu3bvYsWMH3n33XUWuZy1SUlLw+eefo0aNGjhz5gwOHz6Mr776\nyjyNlhE6dOiAUaNGoU+fPsjIyFA1iyVjswXoh0VzYAf9Rpz3AfwN4AsA2ZY1kVyvk19KDsNzroNl\ncXJywnfffYePP/4YR48eVTsOWRsrqF8uLi5ISUlBZmZmvq+1fv16vPHGGyhdurQCySxfeno6wsLC\nULNmTRw4cAA//PADNm7cCG9vb7WjPTF9+nS4ublh8uTJakexWGy2AKBMGeD11/O+AyMnGg3QufOT\nzV3NQalXhsePH8edO3fQoUMHBVKRUqpXr44vv/wSffr0we3bt9WOQ9bECuqXjY0NSpYsiYSEhHxd\npyhNjM/MzER4eDhq1aqFHTt2YNu2bfj+++9R14wjkKaysbHB+vXrsX37dkSY8a58a8Zm67GAgOfv\nvDCUo6P+fDNSas7DypUrMWzYMNjY8I/e0nTt2hXvvPMO/P39odVq1Y5D1sTC6xegTA07dOgQAKBV\nq1ZKRLJIOp0O3377LerUqYO1a9di3bp1iIyMRGMLX8vK3d0dW7ZswZgxY3D+/Hm141gc/ov7mIUv\nSqnEyFZCQgL+7//+D++9955CqUhpQUFBAICZM2eqnISsioXXL0CZGlaYJ8aLCHbs2IEGDRpg0aJF\nWLZsGfbv329VjWXDhg0REhKCnj17IjExUe04FoXNVlZGLur2pFAVwKKUSszZ2rhxI1577TWUK1dO\noVSkNFtbW2zcuBHr16/Hjh071I5D1sSC6xeQ/xp2584d7N69GwMHDlQwlfpEBD/88AOaN2+OGTNm\n4NNPP8XRo0fRrl07q2wqH69eP3ToUMgzuxoUZWy2nmXEom745ZcCK1T5HYIvSnMdrF2ZMmUQERGB\noUOH4o8//lA7DlkTC61fQP5r2Ndff40333wTpUqVUjCVug4ePAg/Pz+8//77mDBhAk6cOIE333zT\nKpusrJYtW4a4uDgsWbJE7SgWQyNsPXOWx6JuBUmn08HOzg7p6ekmLUR67Ngx+Pv7IzY2lvO1rMTy\n5cuxevVqHDlyBE7Gvj1EZEH1CwAGDBiAdu3ambRkg4jgxRdfxFdffYUWLVqYIV3BioqKwowZM3Dp\n0iXMmjUL/fv3R7FihWvZyytXrqB58+bYunUrWrZsqXYc1bHZsiKurq64evUq3E1YfHDIkCGoWbMm\npk6daoZkZA4ignfeeQd2dnZYu3at1b/apaJt7Nix8Pb2xgcffGD0ufv378eYMWNw5swZq/49iImJ\nwYwZMxAdHY3AwEC89957KF68uNqxzGbPnj0YPnw4oqOji/z0FQ5xWBFT5zw8ePAA3333HQYPHmyG\nVGQuGo0Gq1atQnR0NFavXq12HKJ8yc+crcdTIKy10bp06RL8/f3Rvn17+Pn5ITY2FiNHjizUjRYA\ndO7cGUOGDEHfvn0VWWPNmrHZsiKmznnYsGED2rdvj7Jly5ohFZmTs7MzvvvuOwQGBiIqKkrtOEQm\nM7V+3b59G5GRkRgwYIAZUpnX1atXn0wY9/X1RVxcHMaNGwdHU5fpsEIzZ86Evb09pk2bpnYUVbHZ\nsiKm3DrNifHWz9vbGytWrEDv3r1x584dteMQmcTUpR/Cw8PRvXt3k6ZPqOXGjRsYM2YMGjVqhEqV\nKiE2NhYBAQFwcXFRO1qBe3yHdURExP+3d/8xWdf9HsefX0XrggTLcujR6ZaoTXSVUK5R6GqyvNEE\nlOLgz2z+WqUG94qFx4WCZ9G4XVNZBoFajmES6VKTMkw9syF5Qi1/3bMf9zTRjpz7mPwQL84f35v7\nRuLXBXyv7/WF12Prn+vna5O9e1+f7+fz/lJUVGR3HNuo2XKQzizDHzt2jOrqaqZMmWJRKvGG2NhY\n4uPjSUxM1MBTcaTO1C+3282WLVsc82Px6tWrJCcnM378ePz9/Tlz5gxpaWkMHDjQ7mi2GjRoEDt3\n7mTJkiWcO3fO7ji2ULPlIJ35Zdg4BFAnEJ0vIyODmpoa0tLS7I4i4rHO1K+vvvoKl8vFpEmTLErV\nPaqqqkhNTWXs2LHU1NRw8uRJMjMzecCGU5++Kjw8nHXr1hEXF8fvv/9udxyv0/+BHcTTPQ/Xr1+n\nuLiYBRbeYFa8x8/Pj4KCAnJzc9m7d6/dcUQ80pk9W76+Mf7GjRukp6cTEhLC5cuXKS8vZ+PGjQwd\nOtTuaD5p8eLFTJw4kcWLF/e6gadqthzE01+G27dv59lnn9Wvqx4kODiYgoICFi5cyMWLF+2OI9Jh\nntavK1euUFJSwpw5cyxM1TnV1dVkZWUxatQoTp8+zdGjR8nNzWXkyJF2R/NphmGwefNmTp06xebN\nm+2O41VqthzEkz0P2hjfc0VERJCSksKsWbOoqamxO45Ih3i6ZysvL4/Y2FiCgoIsTOWZuro6srOz\nCQkJ4fDhw5SUlLBjxw5Gjx5tdzTH8Pf3p6ioiLfeeotjx47ZHcdr1Gw5iCfL8EePHuX27dtERkZa\nnErssGLFCkaNGsUrr7xidxSRDvGkfrndbt5//32f+bFYX19Pfn4+Y8aMYffu3RQXF/PJJ58wfvx4\nu6M50oMPPkhOTg7x8fFcvXrV7jheoWbLQTxZhm/cGO+rex2kawzDICcnhyNHjvDBBx/YHUekXS6X\ni9u3b1NbW9vua7/44gsCAwMJDw/3QrLWud1uCgoKGDduHHl5eWzbto19+/YRFhZma66eYMaMGcyZ\nM4eEhIReccJazZaDdHQZ/rfffmPPnj2dugeZOMeAAQMoKiri9ddf58SJE3bHEWmTYRgdrmF2b4xv\naGjg008/5eGHH+Yvf/kLmzZtorS0lCeffNKWPD3V2rVrAVi9erXNSazXs+582cN1dGVr27ZtREdH\nM2jQIC+kEjs99NBDbNq0ibi4OMrLyx01+FF6n8YaNnjw4FZfc/nyZQ4ePEheXp4Xk5kaGhooKSkh\nNTWV2tpa0tPTiY6O1hUCizQOPA0LC2PSpEnMmDHD7kiW0cqWg3Rkz0NDQ4OjhgBK18XHx/Pcc88x\nd+5c3G633XFEWtWRGpaXl8fs2bMJDAz0UirT4cOHiYyM5NVXXyU5OZkTJ04wffp0NVoWGzx4MIWF\nhbz00ktcuHDB7jiWUbPlIB1Z2Tp8+DCGYRAREeGlVOIL3n77baqqqsjIyLA7ikir2qthdmyMLysr\nIyoqivnz57No0SJOnTpFfHy8BkF70aRJk1izZg1xcXHcvHnT7jiW0F+Tg3Rkv4Pdex3EHv369aOw\nsJDs7GwOHDhgdxyRFrVXww4cOMCgQYOYOHGi5VkqKiqYOXMmMTExxMTEcObMGebPn4+fn3bX2GH5\n8uWEhoaybNmyHjnwVM2Wg/j7+1NXV0ddXV2Lz1+7do3PPvuMuXPnejmZ+IKhQ4eyY8cO5s2bx88/\n/2x3HJE/aO8yYuMpaiudPXuWhIQEpk6dyuTJkzl//jxLly6lf//+ln6vtM0wDLZs2UJ5eTlbtmyx\nO063U7PlIIZhtLkMv3XrVmbMmMF9993n5WTiKyIjI0lKSmLWrFkdOmIv4k1t1a9Lly5x6NAhEhIS\nLPnuH3/8kRdffJGIiAgmTJjAhQsXWLlyJS6Xy5LvE88FBARQVFREamoqZWVldsfpVmq2HKa1YqWN\n8dIoOTmZ4cOHs2rVKrujiNyhrWYrNzeX+Ph4BgwY0K3feenSJZYvX87EiRMZNmwY58+fJyUlhXvu\nuadbv0e6x+jRo3nvvfeYPXs2165dsztOt1Gz5TCt7XkoLS2lX79+PPHEEzakEl9iGAZ5eXl8+eWX\nbN++3e44Iv/UWv26fft2t2+Mv3r1KklJSYSGhhIQEMDZs2dJS0tj4MCB3fYdYo3Y2Fji4+NJTEzs\nMQNP1Ww5TGt7HrQxXpoKDAxk165dvPbaa1RUVNgdRwRovX7t37+f4OBgHnnkkS5/R1VVFampqYwd\nO5ba2lpOnz5NZmYm999/f5c/W7wnIyOD2tpa0tLS7I7SLdRsOUxLy/CVlZXs379fG+PlDqGhoWzY\nsIG4uLgO35NOxEqtXUZs/LHYFTdu3CA9PZ2QkBB+/fVXvv32WzZu3MiQIUO69LliDz8/PwoKCsjN\nzWXv3r12x+kyNVsO09IyfH5+PjExMVoelz9ITEwkKiqKBQsWaOCp2K6l+vXLL79w5MgRXnjhhU59\nZnV1NVlZWYwaNYrvv/+eo0ePkpOTw4gRI7ojstgoODiYgoICFi5cyMWLF+2O0yVqthym+S9Dt9ut\njfHSpqysLK5cuUJmZqbdUaSXa2llKzc3l4SEBAICAjz6rLq6OrKzswkJCeHIkSOUlJTw0UcfMXr0\n6O6MLDaLiIggJSWFuLg4ampq7I7TaWq2HKb5noeDBw8SEBDA448/bmMq8WX9+/dn586dbNiwgYMH\nD9odR3qx5vWrvr6enJwcj34s1tfXk5+fz5gxY9i9ezfFxcUUFRUxfvx4KyKLD1ixYgUhISG8/PLL\ndkfpNI3KdZLKSp7+9lsC/vpXKC+HoCAuV1SwIjFRG+OlTcOGDePDDz8kMTGRsrIyhg0bZnck6W0q\nKwnevp31f/sbTJ8OQUGc7duX8cHBTJgwod23u91uCgsLWbNmDUOGDGH79u26LVkvYRgGOTk5PPbY\nY+Tm5rJo0SK7I3nMaOiJc/F7mrIyWL8e9u2j/vZt/G7d+udTNwHXXXdhTJsGKSkQHm5fTvF569ev\nZ8+ePZSWlmpitnhHk/rVABhNLgXV9ulD37598YuObrV+NTQ0sHv3blavXo3L5SI9PZ2nn35aPzB7\noR9++IGnnnqKzz//nEcffdTuOB5Rs+XrsrMhORmqq6GtfyrDAJcL3nkHli3zXj5xFLfbzcyZMxk5\nciTvvvuu3XGkp+tC/WpoaKCkpITU1FRqa2tZt24d0dHRarJ6ucLCQt544w2OHz/uqLulqNnyZY2F\nqsld0P8HWAQcAO4H1gP/3vQ9/v5quKRNVVVVhIWFsXbtWstujSLSlfp1ODSUN998k8rKStLS0pg1\naxZ9+miLsZhWrVrFuXPn2LNnj2P+LtRs+aqyMpg8+Y5CBZAAuIFc4L+BPwH/BYxr+iJ/fzh0CMLC\nvJNVHOe7777jmWeeobS0lHHjxrX/BhFPdKF+1fTpw/PBwcRmZJCYmIifn7YWy51u3brFlClTiIqK\nYvXq1XbH6RA1W74qNhaKi+9Yev8duBc4BTQebp4L/Bvwn03faxgQEwO7dnkprDjR1q1bycjIoKys\njMDAQLvjSE/ShfrlNgwannuOvp984q204kCXLl0iLCyM/Px8pk6danecdqnZ8kWVlTBiBDSbKXIC\neAKobvLYO8AhYE/zz7j7bvj5Z3jgASuTisMtXbqUa9eusXPnTu2Fke6h+iVecujQIZ5//nm++eYb\nnx9i64yLnb1Nfn6LD98Agpo9FgT8X0svNoxWP0ek0YYNG/jpp5/IysqyO4r0FKpf4iWRkZEkJSUx\ne/Zsamtr7Y7TJjVbvqii4g+/CgHuAf7e7LG/AwNa+ozqajh5svuzSY9y99138/HHH5OZmcnXX39t\ndxzpCVS/xIuSk5MZPnw4K1eutDtKm7Tz0Be1cKNWMPc51APngZB/PPYdzTbHN3X9encnkx5oxIgR\nbN26lYSEBI4fP/6vG/dWVpqrCxUV5t9kUBBMmAALF+ryjrRO9Uu8yDAM8vLyCA8PZ9u2bcybN898\nwsfql5otXxTUfLHdFADEAv8B5GCe5vkU8zRPi+6914Jw0hNFRUWxZMkS4uPj+ertt/HLzIR9+8wn\nm65SFBXBmjXw7LMaoistU/0SLwsMDGTXrl1MmTKFSX37MnrXLp+rX7qM6IsmTDA3iLZgM+YG08GY\nx6izaeWXocsFuleYeCA1NZXnr1/H/dRT5kmympo/Xg6qrjYfKy42j/ZnZ9uSVXyY6pfYIDQ0lM+m\nT2f43Lk0+GD90mlEX9TKaR6P6DSPeCo7m4akJIzq6vZf20hDdKU51S+xQwtDdNvlxfqllS1fNHiw\nuczZ2aP4hgHTpqlQSceVlUFy8h2NVi3mtO8RmJuYHwH2NX/fzZtmgTt+3FtJxdepfom3/aN+NW20\nfK1+qdnyVSkp5lJ6Z7hc5vtFOmr9enOJvYl6YDjmHKT/BdYC8cCPzd9bXW2+X6SR6pd4kwPqly4j\n+jIfXxaVHsKDyz4TgDVAXPMndNlHmlP9Em9wSP3SypYvW7bMLDz+/u0vyRuGCpV0TgeHR14BztHK\nhmYNoZTmVL/EGxxSv9Rs+bply8ybSsfEmN1386V5l8t8PCbGfJ0KlXiqlSGUTd0CEoH5wNiWXqAh\nlNIS1S+xmkPql+ZsOUFYmHlT6atXze775Elz4N+995rHoxcs0OUb6bxWhlA2cmPeMLg/sLGtF2oI\npbRE9Uus5JD6pWbLSR54AP78Z7tTSE/TyhBKgAbMEz1XgL1Av7Y+R0MopS2qX2IFh9QvXUYU6e3a\nGEK5DPgB2AO0ebZMQyhFxA4OqV86jSjS27VymucnYCRwF3cugb+Huf/hDjqNKCJ2cEj90sqWSG/X\nyhDKEZjL8DXAjSb//aFQaQiliNjFIfVLK1siYk5gnjzZs5lIjfz9zZNkYWHdHktEpF0OqF9a2RIR\nCA//10wkTzTORlKjJSJ2cUD90mlEETE1zjhKTjbnzrS16G0Y5qZSDaEUEV/g4/VLlxFF5E7Hj5v3\nCtu71yxKTe855nKZRWzaNPP+dVrREhFf4qP1S82WiLRMQyhFxKl8rH6p2RIRERGxkDbIi4iIiFhI\nzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiI\niFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRs\niYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiI\nhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhdRsiYiIiFhIzZaIiIiIhf4fJM6jdZ/uXMAA\nAAAASUVORK5CYII=\n", "text/plain": [ "\u003cFigure size 1000x500 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "nx_graphs = split_graphs(graphs)\n", "\n", "for i in range(0, len(nx_graphs), 2):\n", " label = labels[i // 2]\n", " g1 = nx_graphs[i]\n", " g2 = nx_graphs[i + 1]\n", " plt.figure(figsize=(10, 5))\n", " ax = plt.subplot(121)\n", " # Compute the positions of graphs first to make sure the visualizations are\n", " # consistent.\n", " pos = nx.drawing.spring_layout(g1)\n", " nx.draw_networkx(g1, pos=pos, ax=ax)\n", " ax.set_title('Graph 1')\n", " ax.axis('off')\n", " ax = plt.subplot(122)\n", " nx.draw_networkx(g2, pos=pos, ax=ax)\n", " ax.set_title('Graph 2')\n", " ax.axis('off')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "HBkh_OpCHkm8" }, "source": [ "Build the computation graph for visualization." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "0YerKIp32Vro" }, "outputs": [], "source": [ "n_graphs = graphs.n_graphs\n", "\n", "model_inputs = placeholders.copy()\n", "del model_inputs['labels']\n", "graph_vectors = model(n_graphs=n_graphs, **model_inputs)\n", "x, y = reshape_and_split_tensor(graph_vectors, 2)\n", "similarity = compute_similarity(config, x, y)\n", "\n", "layer_outputs = model.get_layer_outputs()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "Z7dHo4PPF5JH" }, "outputs": [], "source": [ "def build_matchings(layer_outputs, graph_idx, n_graphs, sim):\n", " \"\"\"Build the matching attention matrices from layer outputs.\"\"\"\n", " assert n_graphs % 2 == 0\n", " attention = []\n", " for h in layer_outputs:\n", " partitions = tf.dynamic_partition(h, graph_idx, n_graphs)\n", " attention_in_layer = []\n", " for i in range(0, n_graphs, 2):\n", " x = partitions[i]\n", " y = partitions[i + 1]\n", " a = sim(x, y)\n", " a_x = tf.nn.softmax(a, axis=1) # i-\u003ej\n", " a_y = tf.nn.softmax(a, axis=0) # j-\u003ei\n", " attention_in_layer.append((a_x, a_y))\n", " attention.append(attention_in_layer)\n", " return attention" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "34lrRLif9ZOB" }, "outputs": [], "source": [ "attentions = build_matchings(\n", " layer_outputs, placeholders['graph_idx'], n_graphs,\n", " get_pairwise_similarity(config['graph_matching_net']['similarity']))" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "sMi3nrclIHVp" }, "outputs": [], "source": [ "sim, a = sess.run([similarity, attentions],\n", " feed_dict=fill_feed_dict(placeholders, (graphs, labels)))" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 294, "status": "ok", "timestamp": 1563980171214, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "xfFEeS2PIUKx", "outputId": "a5bdec40-62e6-441e-f33e-110cc3d3996c" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1 -1]\n", "[-0.19060427 -2.23995686]\n" ] } ], "source": [ "print(labels)\n", "print(sim)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "giI_5IW9IgOG" }, "source": [ "Similarity for positive pair is much higher than the similarity for the negative pair.\n", "\n", "Remember that with a margin loss and Euclidean distance, which is how this model is trained, the similarity value is the negative distance. In this case the distance for positive pair is quite small, while the distance between two graphs in the negative pair is large." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "w-Vq-vIDI6P7" }, "source": [ "### Some tools for visualizing attention" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "VzgCXZlxIqRp" }, "outputs": [], "source": [ "def _plot_graph_matching_on_axis(ax, g_base, pos, att, title=None):\n", " \"\"\"Plot graph matching on an axis.\"\"\"\n", " original_edges = g_base.edges()\n", " g = g_base.copy()\n", " n1, n2 = att.shape\n", " alpha = []\n", " att_edges = []\n", " for i in range(n1):\n", " for j in range(n2):\n", " g.add_edge(i, j + n1)\n", " att_edges.append((i, j + n1))\n", " alpha.append(att[i][j])\n", "\n", " nx.draw_networkx_nodes(\n", " g, pos, nodelist=range(n1), node_color='lavender', linewidths=3, ax=ax)\n", " nx.draw_networkx_nodes(\n", " g, pos, nodelist=range(n1, n1 + n2), node_color='wheat', linewidths=3,\n", " ax=ax)\n", " nx.draw_networkx_edges(\n", " g, pos, edgelist=original_edges, edge_color='k', width=3, ax=ax)\n", " for i in range(len(att_edges)):\n", " nx.draw_networkx_edges(\n", " g, pos, edgelist=att_edges[i:i+1], edge_color='g', alpha=alpha[i],\n", " ax=ax, width=3)\n", " ax.axis('off')\n", " if title:\n", " ax.set_title(title)\n", "\n", " # set xlim and ylim\n", " coords = np.array(list(pos.values()), dtype=np.float32)\n", " x_min, y_min = coords.min(axis=0)\n", " x_max, y_max = coords.max(axis=0)\n", " x_len = x_max - x_min\n", " y_len = y_max - y_min\n", " ax.set_xlim([x_min - x_len * 0.05, x_max + x_len * 0.05])\n", " ax.set_ylim([y_min - y_len * 0.05, y_max + y_len * 0.05])\n", "\n", "\n", "def plot_graph_matching_pair(g1, g2, matchings, pos=None, seed=0):\n", " \"\"\"Plot a pair of graphs and the matchings between them.\n", "\n", " Args:\n", " g1: a networkx graph.\n", " g2: a networkx graph.\n", " matchings: a pair of n1 x n2 matrices.\n", " pos: a position dictionary, if provided.\n", "\n", " Returns:\n", " pos: position dictionary, used for other plots between these two graphs.\n", " \"\"\"\n", " n1 = g1.number_of_nodes()\n", " n2 = g2.number_of_nodes()\n", " assert n1 \u003e= n2\n", "\n", " if pos is None:\n", " with reset_random_state(seed=seed):\n", " pos1 = nx.spring_layout(g1)\n", " pos1_values = np.array(list(pos1.values()), dtype=np.float32)\n", " pos1_values -= pos1_values.mean(axis=0, keepdims=True)\n", " pos2_values = pos1_values[n1-n2:] + np.array([\n", " pos1_values[n1-n2:, 0].max(axis=0) * 2 -\n", " pos1_values[n1-n2:, 0].min(axis=0), 0])\n", "\n", " pos = {k: pos1_values[k] for k in pos1.keys()}\n", " pos.update({(k + n2): pos2_values[k-(n1-n2)]\n", " for k in list(pos1.keys())[n1-n2:]})\n", "\n", " g_base = nx.Graph()\n", " g_base.add_nodes_from(range(n1))\n", " g_base.add_nodes_from(range(n1, n1 + n2))\n", " g_base.add_edges_from(g1.edges())\n", " g_base.add_edges_from([(i + n1, j + n1) for i, j in g2.edges()])\n", "\n", " fig, ax = plt.subplots(1, 2, figsize=(11.2, 4.8))\n", " _plot_graph_matching_on_axis(\n", " ax[0], g_base, pos, matchings[0], title='left attend to right')\n", " _plot_graph_matching_on_axis(\n", " ax[1], g_base, pos, matchings[1], title='right attend to left')\n", " fig.tight_layout(pad=0, h_pad=0, w_pad=0)\n", " return pos" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "fZqWAwX_O3_z" }, "source": [ "### Visualize how the attention pattern changes across layers" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 9203, "status": "ok", "timestamp": 1563980184546, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "jrbvym39JcTw", "outputId": "ad8d30a2-1efd-4986-9681-bb84f6b2f758" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXmMbXlV9/3d895n732mqrp17+1u\nb98GFcMkKg0vKBIeYoQ0GGRsI7YYkI4hDAYj0rHTIIog/ZIor2gapPF9JUAwPAaaIfgEnICGEJHp\neRptsKfb9K3hjHsefu8fv/r9au8z1Hxvnbq9PsR4u+oM+1TV3muvtb7ruxTGGANBEARBEARBEMQJ\nRD3uAyAIgiAIgiAIgjgolNAQBEEQBEEQBHFioYSGIAiCIAiCIIgTCyU0BEEQBEEQBEGcWCihIQiC\nIAiCIAjixEIJDUEQBEEQBEEQJxZKaIgTwbXXXot//Md/3NNjP/nJT+Kaa66B53n493//90t8ZJcG\nRVHwX//1X5ft/R7/+MfjS1/60p4eu5/fBUEQxKLzaL7+3Xnnnfj5n//5S/LaX/rSl3D11Vfv6bGM\nMbzqVa9Cp9PB9ddff0mOh7iyoYSGuOJ485vfjPe9730Yj8d4ylOecugA9OxnPxsf+MAHal+73AnH\nbsdzWL773e/i2c9+9qFfZz8BjCAIYhFYlOvff//3f0NRFOR5Lr92KROOgxzPpeJf//Vf8YUvfAEP\nPvggvva1r1EsIfYNJTTEFcd9992Hxz/+8cd9GCeCyxGoCIIgFhG6/i0O9913H6699lq4rnvch0Kc\nUCihIU4cZVniT//0T/GYxzwGS0tLeNnLXobNzU0kSQLP81AUBZ785CfjMY95DF75ylfi/vvvxwte\n8AJ4nod3v/vdU6/X6/Vwww03YGVlBZ1OBzfccAMefPBBAMAtt9yCf/mXf8HrXvc6eJ6H173udXjW\ns54FAHjyk58Mz/PwsY99DADw6U9/Gj/90z+NdruNZzzjGfjWt74l3+Paa6/Fe97zHjzpSU9Cq9XC\ny1/+csRxLL//Z3/2Zzhz5gzOnj2Lv/mbv5n72WcdDwB8+ctfxlOf+lS0Wi089alPxZe//OW5r3Ht\ntdfiXe96F570pCfBdV3keV7rYkVRhJtuugmdTgc/9VM/hXe/+91TlbJvfvObU58lCAI873nPw4UL\nF+B5HjzPw4ULF3b8XRIEQVxOjvv6d9ddd+EpT3kKms0mrrnmGtx2223yeyK2tNtteJ6Hr3zlK7j5\n5pvxla98BZ7nod1uAwCSJMGb3/xm/NiP/RhWV1dx8803I4oiANtdottvvx2nTp3CmTNn8KEPfUi+\nx8bGBl74whei2Wzi+uuvx7333jv3ZzXreMqyxDve8Q6cO3cOp06dwm/8xm9gMBjs6Wd/4cIFvPjF\nL8bKygrOnz+PP//zPwcAfPCDH8SrX/1q+Tl/7/d+j2IJsX8YQZwAzp07x77whS8wxhh773vfy572\ntKexBx54gMVxzH77t3+bveIVr5CPBcD+8z//c+ZzZ7G+vs4+8YlPsCAI2HA4ZC95yUvYr/zKr8jv\n/+Iv/iK74447as+ZfI9vfOMbbGVlhX31q19leZ6zO++8k507d47FcSyP4alPfSp76KGH2MbGBnvc\n4x7H3v/+9zPGGPvsZz/LTp06xb797W+z8XjMbrzxxqnXrzJ5PBsbG6zdbrO//du/ZVmWsY985COs\n3W6z9fX1uT/LJz/5yez+++9nYRhO/Yx+//d/nz3rWc9im5ub7IEHHmBPfOIT2VVXXVV7/rzP8sUv\nfrH2WIIgiEXiuK9/X/ziF9m3vvUtVhQF+4//+A926tQp9slPfpIxxtgPf/hDBoBlWSYf/6EPfYg9\n85nPrL3GG97wBvaCF7yAbWxssOFwyG644Qb2lre8Rb6+pmnsD//wD1mapuyuu+5ijuOwzc1Nxhhj\nL3/5y9lLX/pSNh6P2be//W129uzZqdcXzDqeD37wg+wxj3kMu/fee9loNGIvetGL2K//+q/P/azi\n51EUBfuZn/kZ9ra3vY0lScLuvfdedv78efa5z31u5uekWELsF+rQECeOv/7rv8Yf//Ef4+qrr4Zl\nWbjtttvwiU984sDygaWlJbz4xS9Go9GA7/u45ZZb8E//9E/7eo077rgDr33ta/G0pz0Nmqbhpptu\ngmVZ+OpXvyof8/rXvx5nz55Ft9vFC17wAnzzm98EAHz84x/Hq171KjzhCU+A67q1it1euOuuu/Dj\nP/7jeOUrXwld13HjjTficY97HD71qU/Nfc7rX/96XHPNNXAcZ+p7H//4x/HWt74VnU4HV199NV7/\n+tfPfP6sz0IQBLHoHOf179nPfjae+MQnQlVVPOlJT8KNN964r3jDGMMdd9yB9773veh2u/B9H299\n61vx0Y9+VD7GMAzceuutMAwDz3/+8+F5Hu655x4URYG///u/x9vf/na4rosnPOEJuOmmm/b83gDw\nd3/3d/jd3/1dXHfddfA8D+985zvx0Y9+dNf4+/Wvfx1ra2u49dZbYZomrrvuOrzmNa+pHTdBHAb9\nuA+AIPbLfffdhxe96EVQ1e18XNM0PPLII7jqqqv2/XphGOJNb3oTPve5z6HX6wEARqMRiqKApml7\nPqYPf/jD+Iu/+Av5tTRNa23y06dPy383Gg35vQsXLuBnf/Zn5ffOnTu3r+O/cOHC1HPOnTuHhx56\naO5zrrnmmh1fr/r9WY+d91kIgiAWneO8/t199914y1vegu985ztI0xRJkuClL33pnp+/traGMAxr\nMYMxhqIo5H8vLS1B17dv7xqNBsbjMdbW1pDnee0zHTbenDt3Dnme7xp/77vvPly4cEHK5gCgKAr8\nwi/8wr7enyDmQR0a4sRxzTXX4LOf/Sz6/b78vziO515MFUXZ8fVuv/123HPPPbj77rsxHA7xz//8\nzwB4kNjL88Ux3XLLLbVjCsMQN954467PPXPmDB544AH53/fff/+Oj588nrNnz+K+++6rfe3+++/f\nMbjs9JnOnDkjZ4gA1I5tN/bysyIIgjhOjvP692u/9mt44QtfiAceeACDwQA333zzjrFm8mvLy8tw\nHAff/e53ZawZDAYYj8e7vvfKygp0Xd9zvJl1PJPx5v7774eu61hdXd3xva+55hqcP3++FiNHoxE+\n85nP7Pm9CWInKKEhThw333wzbrnlFnlRXVtbwz/8wz/Mffzq6ip+8IMfzP3+aDSC4zhot9vY3NzE\n2972tl2fP/m117zmNfirv/or3H333WCMIQgC3HXXXRiNRrt+npe97GW488478b3vfQ9hGE69/26f\n5/nPfz6+//3v4yMf+QjyPMfHPvYxfO9738MNN9yw63vPO553vvOd6PV6eOihh/C+971vz89dXV3F\nxsbGnodECYIgFolLff0bjUbodruwbRtf+9rX8JGPfER+b2VlBaqq1q7vq6urePDBB5GmKQBAVVW8\n5jWvwZve9CZcvHgRAPDQQw/h85///K7Hp2kafvVXfxW33XYbwjDE9773PXz4wx+e+/hZx3PjjTfi\nve99L374wx9iPB7jrW99K17+8pfXOkKzuP7669FsNvGud70LURShKAp85zvfwde//vWZj6dYQuwX\n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\nbQyJAAAAAElFTkSuQmCC\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXmQbVdZ//1da+3x7DN23743CYk3\nN0HFYoioBF5QpPhRllABCxljiRELJGVRDBaWSMpUQBRB8lKlvKIVkOD7SgEvFj8LwlD4K3ACAsUr\nMvkLGjDTjaRvD2fc817vH6vXOnufoft03763T988H8sit88+e+9zuvd61jN9HyallCAIgiAIgiAI\ngjiG8KO+AYIgCIIgCIIgiINCDg1BEARBEARBEMcWcmgIgiAIgiAIgji2kENDEARBEARBEMSxhRwa\ngiAIgiAIgiCOLeTQEARBEARBEARxbCGHhjgWXH311fj7v//7hY79xCc+gauuugr1eh3/+q//eoHv\n7MLAGMN//ud/XrTrPf7xj8cXv/jFhY7dz++CIAhi2Xk0r3933nknfvZnf/aCnPuLX/wirrzyyoWO\nlVLila98JTqdDq6//voLcj/EpQ05NMQlx5ve9Ca8973vxWAwwJOf/OTzNkDPetaz8P73v7/ys4vt\ncOx1P+fLd77zHTzrWc867/Psx4ARBEEsA8uy/v3Xf/0XGGPIssz87EI6HAe5nwvFP//zP+Pzn/88\nHnzwQXz1q18lW0LsG3JoiEuO++67D49//OOP+jaOBRfDUBEEQSwjtP4tD/fddx+uvvpqBEFw1LdC\nHFPIoSGOHUVR4I//+I9x7bXXYnV1FS996UuxubmJOI5Rr9eR5zmuu+46XHvttXjFK16B+++/H89/\n/vNRr9fxrne9a+p8W1tbuOGGG7C2toZOp4MbbrgBDz74IADglltuwT/90z/hta99Ler1Ol772tfi\nmc98JgDguuuuQ71ex0c/+lEAwKc+9Sn85E/+JNrtNp7+9Kfjm9/8prnG1VdfjXe/+9140pOehFar\nhZe97GWIosi8/id/8ie4/PLLccUVV+Cv/uqv5n72WfcDAF/60pfwlKc8Ba1WC095ylPwpS99ae45\nrr76arzzne/Ek570JARBgCzLKlmsMAxx0003odPp4Cd+4ifwrne9aypS9o1vfGPqswyHQzz3uc/F\n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\n/wdLGuwKm3ZUhAAAAABJRU5ErkJggg==\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXmMLFd59/89tVdX9TbTs9+5ixds\nsH29X7OFIF4UBWSICKujEIcIghUhlogoBCuWISQEgoWU8IZEDsHkpyCwiHgjbBaR3wtZML423hds\ng7nrrD1Lb9XVtZ73j7rnTFcvs925d3quz0dC+HZ3na7u6TpPPdv3IZRSCoFAIBAIBAKBQCDYg0i7\nfQICgUAgEAgEAoFAsF2EQyMQCAQCgUAgEAj2LMKhEQgEAoFAIBAIBHsW4dAIBAKBQCAQCASCPYtw\naAQCgUAgEAgEAsGeRTg0AoFAIBAIBAKBYM8iHBrBnuDgwYP4j//4j0299tvf/jamp6dh2zYee+yx\nc3xm5wZCCH75y1+et/e74oor8OMf/3hTr93K30IgEAgGnZfy/nfPPffgta997TlZ+8c//jH27du3\nqddSSvG+970PxWIRR44cOSfnI7iwEQ6N4ILj4x//OL70pS+h0Wjg2muvPWsD9PrXvx7/9E//lHrs\nfDscG53P2fLMM8/g9a9//VmvsxUDJhAIBIPAoOx/x48fByEEYRjyx86lw7Gd8zlX/M///A9++MMf\n4vTp03jooYeELRFsGeHQCC44Tpw4gSuuuGK3T2NPcD4MlUAgEAwiYv8bHE6cOIGDBw/CsqzdPhXB\nHkU4NII9RxzH+Ou//mtcfPHFGB4exrve9S6srKzA8zzYto0oinD11Vfj4osvxnvf+16cPHkSb3nL\nW2DbNj7/+c93rbe6uoqbb74ZIyMjKBaLuPnmm3H69GkAwO23347//u//xoc+9CHYto0PfehDeN3r\nXgcAuPrqq2HbNr75zW8CAO677z5cc801KBQKePWrX40nn3ySv8fBgwfxhS98AYcPH0Y+n8e73/1u\ntFot/vzf/M3fYGJiApOTk/jnf/7nvp+91/kAwAMPPIAbb7wR+XweN954Ix544IG+axw8eBCf+9zn\ncPjwYViWhTAMU1ks13Vx6623olgs4uUvfzk+//nPd0XKHn/88a7P4jgO3vSmN2F2dha2bcO2bczO\nzq77txQIBILzyW7vf/fffz+uvfZa5HI5TE9P48477+TPMdtSKBRg2zZ++tOf4rbbbsNPf/pT2LaN\nQqEAAPA8Dx//+Mexf/9+jI2N4bbbboPrugDWskR33XUXRkdHMTExga9+9av8PZaXl/HWt74VuVwO\nR44cwYsvvtj3u+p1PnEc4zOf+QwOHDiA0dFR/N7v/R6q1eqmvvvZ2Vm8/e1vx8jICA4dOoS//du/\nBQB85Stfwfvf/37+Of/kT/5E2BLB1qECwR7gwIED9Ic//CGllNIvfvGL9KabbqKnTp2irVaL/uEf\n/iF9z3vew18LgP7iF7/oeWwvlpaW6Le+9S3qOA6t1Wr0He94B/2t3/ot/vyv//qv07vvvjt1TOd7\nPPLII3RkZIQ++OCDNAxDes8999ADBw7QVqvFz+HGG2+kMzMzdHl5mV5++eX0y1/+MqWU0u9973t0\ndHSUPvXUU7TRaNBbbrmla/12Os9neXmZFgoF+i//8i80CAL69a9/nRYKBbq0tNT3u7z66qvpyZMn\nabPZ7PqO/vRP/5S+7nWvoysrK/TUqVP0qquuolNTU6nj+32WH/3oR6nXCgQCwSCx2/vfj370I/rk\nk0/SKIroE088QUdHR+m3v/1tSimlx44dowBoEAT89V/96lfpa17zmtQaH/nIR+hb3vIWury8TGu1\nGr355pvpJz7xCb6+LMv0z//8z6nv+/T++++npmnSlZUVSiml7373u+k73/lO2mg06FNPPUUnJye7\n1mf0Op+vfOUr9OKLL6Yvvvgirdfr9G1vexv93d/93b6flX0fURTR6667jn7qU5+inufRF198kR46\ndIh+//vf7/k5hS0RbBWRoRHsOf7xH/8Rf/mXf4l9+/ZB13Xceeed+Na3vrXt8oHh4WG8/e1vRyaT\nQTabxe23347//M//3NIad999Nz74wQ/ipptugizLuPXWW6HrOh588EH+mg9/+MOYnJzE0NAQ3vKW\nt+Dxxx8HANx777143/vehyuvvBKWZaUidpvh/vvvx6WXXor3vve9UBQFt9xyCy6//HJ85zvf6XvM\nhz/8YUxPT8M0za7n7r33Xnzyk59EsVjEvn378OEPf7jn8b0+i0AgEAw6u7n/vf71r8dVV10FSZJw\n+PBh3HLLLVuyN5RS3H333fjiF7+IoaEhZLNZfPKTn8Q3vvEN/hpVVXHHHXdAVVW8+c1vhm3beP75\n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\ngg==\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXmMJHd99/+uu7q6+pqennt2dna9\n9trrAyfheCAhiAdFARkiwukoxCGCYEWIIyIKwYplCAmBJxZSwi8kcggmPwUBIuKJwBwP+QlyAQbx\nYBt713vYuzuzc/Z91V31/f1RW9/p6ume6Zmd2elZf1+SJe901beqj6pPfa73hyOEEDAYDAaDwWAw\nGAzGIYQ/6BNgMBgMBoPBYDAYjN3CHBoGg8FgMBgMBoNxaGEODYPBYDAYDAaDwTi0MIeGwWAwGAwG\ng8FgHFqYQ8NgMBgMBoPBYDAOLcyhYTAYDAaDwWAwGIcW5tAwDgVHjx7Fv/3bvw207de+9jXMzs5C\n13X87Gc/2+cz2x84jsOFCxeu2/FOnTqF73//+wNtu5PvgsFgMIadF/L979FHH8Uv//Iv78va3//+\n9zEzMzPQtoQQvPOd70Qul8NLXvKSfTkfxo0Nc2gYNxwf+tCH8JnPfAatVgt33333NRugV73qVfiH\nf/iH2N+ut8Ox3flcK8888wxe9apXXfM6OzFgDAaDMQwMy/3v0qVL4DgOnufRv+2nw7Gb89kv/uu/\n/gvf/e53ceXKFfz4xz9mtoSxY5hDw7jhuHz5Mk6dOnXQp3EouB6GisFgMIYRdv8bHi5fvoyjR48i\nmUwe9KkwDinMoWEcOoIgwF/+5V/i+PHjyOfzeOtb34pKpQLbtqHrOnzfx1133YXjx4/jHe94BxYW\nFvD6178euq7jU5/61Kb1qtUq7rnnHhQKBeRyOdxzzz24cuUKAOCBBx7Af/7nf+K9730vdF3He9/7\nXrzyla8EANx1113QdR1f/vKXAQDf+MY38KIXvQjZbBYvf/nL8dRTT9FjHD16FH/1V3+FO++8E5lM\nBm9729tgWRZ9/X/9r/+FyclJTE1N4R//8R/7vvde5wMAP/jBD/DiF78YmUwGL37xi/GDH/yg7xpH\njx7FJz/5Sdx5551IJpPwPC+WxTJNE/fddx9yuRxuvfVWfOpTn9oUKXviiSc2vZd2u43Xvva1WF5e\nhq7r0HUdy8vLW36XDAaDcT056PvfY489hrvvvhvpdBqzs7N46KGH6GuRbclms9B1HT/84Q9x//33\n44c//CF0XUc2mwUA2LaND33oQzhy5AjGx8dx//33wzRNABtZoocffhhjY2OYnJzE5z//eXqMcrmM\nN7zhDUin03jJS16C5557ru9n1et8giDAxz/+cczNzWFsbAy/8zu/g3q9PtBnv7y8jDe96U0oFAqY\nn5/HX//1XwMAPve5z+Fd73oXfZ9/9Ed/xGwJY+cQBuMQMDc3R7773e8SQgj59Kc/TV760peSxcVF\nYlkW+f3f/33y9re/nW4LgJw/f77nvr0olUrkq1/9Kmm326TRaJA3v/nN5Dd+4zfo67/6q79KHnnk\nkdg+3cf46U9/SgqFAvnRj35EPM8jjz76KJmbmyOWZdFzePGLX0yWlpZIuVwmJ0+eJJ/97GcJIYR8\n61vfImNjY+TnP/85abVa5N577920fifd51Mul0k2myX/9E//RFzXJV/84hdJNpslpVKp72d51113\nkYWFBWIYxqbP6I//+I/JK1/5SlKpVMji4iK54447yPT0dGz/fu/le9/7XmxbBoPBGCYO+v73ve99\njzz11FPE933y5JNPkrGxMfK1r32NEELIxYsXCQDiui7d/vOf/zx5xSteEVvj/e9/P3n9619PyuUy\naTQa5J577iEf/vCH6fqCIJA//dM/JY7jkMcee4wkEglSqVQIIYS87W1vI295y1tIq9UiP//5z8nU\n1NSm9SN6nc/nPvc5cvz4cfLcc8+RZrNJ3vjGN5Lf/u3f7vteo8/D933yC7/wC+SjH/0osW2bPPfc\nc2R+fp58+9vf7vk+mS1h7BSWoWEcOv7+7/8ef/7nf46ZmRkoioKHHnoIX/3qV3ddPpDP5/GmN70J\nmqYhlUrhgQcewL//+7/vaI1HHnkE73nPe/DSl74UgiDgvvvug6Io+NGPfkS3ed/73oepqSmMjIzg\n9a9/PZ544gkAwFe+8hW8853vxO23345kMhmL2A3CY489hhMnTuAd73gHRFHEvffei5MnT+LrX/96\n333e9773YXZ2FolEYtNrX/nKV/CRj3wEuVwOMzMzeN/73tdz/17vhcFgMIadg7z/vepVr8Idd9wB\nnudx55134t57792RvSGE4JFHHsGnP/1pjIyMIJVK4SMf+Qi+9KUv0W0kScKDDz4ISZLwute9Drqu\n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\nQRAEQRAzy/8HEA5vI9sQFiIAAAAASUVORK5CYII=\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "# visualize the attention across layers for the positive pair\n", "plt.close('all')\n", "for i in range(len(a)):\n", " _ = plot_graph_matching_pair(nx_graphs[0], nx_graphs[1], a[i][0])" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "65g2TlJHPFb1" }, "source": [ "Note that the left-to-right and right-to-left attention patterns are slightly different. Also the attention pattern starts almost uniform, and then gets more concentrated after a few layers.\n", "\n", "If we train the model for longer, we can see a clearer matching pattern." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 6908, "status": "ok", "timestamp": 1563980193552, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "yFI9m9TqL4Qd", "outputId": "a1ee65df-ede9-4dc7-c1b9-8b51a51da200" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXmQZWV5/79nP+fut3u6Z59hWAyK\nbCqIQcEiJFECKAFZjASxBCkLUBMtDVQIGFMqkTKlJiZBBVMlwS2GEgJuP3Fh35VVYIbp6W6mp7e7\nnv097++Pt9+377l9by/T3dPdw/uhKOjue889597u9znv832e76NQSikkEolEIpFIJBKJZA2irvQJ\nSCQSiUQikUgkEsn+Ijc0EolEIpFIJBKJZM0iNzQSiUQikUgkEolkzSI3NBKJRCKRSCQSiWTNIjc0\nEolEIpFIJBKJZM0iNzQSiUQikUgkEolkzSI3NJI1xyGHHIKf//zn83rsj370I2zduhW5XA5PPPHE\nMp/Z8qAoCl566aUD9npHHXUU7r333nk9diGfhUQikax2Xsvr36233oq3v/3ty3Lse++9F1u2bJnX\nYymluPTSS1Eul3HiiScuy/lIDj7khkZyUPPJT34SX/va19BoNHD88ccvOgC9853vxDe+8Y3U9w70\nhmOu81kszzzzDN75zncu+jgLCWASiUSyGlgt698rr7wCRVEQx7H43nJuOPbnfJaL3/72t/jZz36G\nwcFBPPzwwzKWSOaF3NBIDmp2796No446aqVPY01wIAKVRCKRrEbk+rd62L17Nw455BBks9mVPhXJ\nGkJuaCRrmiRJ8IUvfAGHHXYYent7cf7552NiYgJBECCXy4EQgmOPPRaHHXYYLr74YgwMDOCss85C\nLpfDjTfeOON4k5OTOPPMM9HX14dyuYwzzzwTg4ODAIBrr70Wv/nNb3DllVcil8vhyiuvxCmnnAIA\nOPbYY5HL5fDd734XAHDnnXfiuOOOQ6lUwh//8R/jd7/7nXiNQw45BF/60pdwzDHHoFgs4oILLoDv\n++Ln//zP/4yNGzdi06ZN+Na3vtX12judDwDcf//9OOGEE1AsFnHCCSfg/vvv73qMQw45BF/84hdx\nzDHHIJvNIo7jlIrleR4uueQSlMtlvP71r8eNN944I1P25JNPzriWZrOJd7/73RgeHkYul0Mul8Pw\n8PCsn6VEIpEcSFZ6/bvrrrtw/PHHo1AoYOvWrbj++uvFz3hsKZVKyOVyeOCBB3DFFVfggQceQC6X\nQ6lUAgAEQYBPfvKT2LZtG9avX48rrrgCnucBmFaJbrrpJvT392Pjxo245ZZbxGuMj4/j7LPPRqFQ\nwIknnoiXX36563vV6XySJMHnPvc5bN++Hf39/fjrv/5rVKvVeb33w8PDOPfcc9HX14cdO3bgK1/5\nCgDgm9/8Jj784Q+L6/zUpz4lY4lkflCJZI2xfft2+rOf/YxSSumXv/xl+ta3vpXu2bOH+r5PL7/8\ncnrhhReKxwKgL774YsfndmJsbIz+4Ac/oM1mk9ZqNXreeefR97znPeLnp556Kr355ptTz2l/jcce\ne4z29fXRBx98kMZxTG+99Va6fft26vu+OIcTTjiBDg0N0fHxcXrkkUfSr3/965RSSu+++27a399P\nf//739NGo0EvuuiiGcdvpf18xsfHaalUov/1X/9Foyiit912Gy2VSnRsbKzre3nsscfSgYEB6rru\njPfo05/+ND3llFPoxMQE3bNnDz366KPp5s2bU8/vdi2//OUvU4+VSCSS1cRKr3+//OUv6e9+9ztK\nCKFPPfUU7e/vpz/60Y8opZTu2rWLAqBRFInH33LLLfTkk09OHeNjH/sYPeuss+j4+Dit1Wr0zDPP\npJ/5zGfE8TVNo3//939PwzCkd911F3Uch05MTFBKKb3gggvo+973PtpoNOjvf/97umnTphnH53Q6\nn29+85v0sMMOoy+//DKt1+v0nHPOoR/4wAe6Xit/Pwgh9E1vehO94YYbaBAE9OWXX6Y7duyg99xz\nT8frlLFEMh+kQiNZ0/zHf/wH/umf/glbtmyBZVm4/vrr8YMf/GC/ywd6e3tx7rnnIpPJIJ/P49pr\nr8WvfvWrBR3j5ptvxkc+8hG89a1vhaZpuOSSS2BZFh588EHxmKuvvhqbNm1CT08PzjrrLDz55JMA\ngO9973u49NJL8cY3vhHZbDaVsZsPd911F4444ghcfPHF0HUdF110EY488kj8+Mc/7vqcq6++Glu3\nboXjODN+9r3vfQ/XXHMNyuUytmzZgquvvrrj8ztdi0Qikax2VnL9e+c734mjjz4aqqrimGOOwUUX\nXbSgeEMpxc0334wvf/nL6OnpQT6fxzXXXIPbb79dPMYwDFx33XUwDANnnHEGcrkcXnjhBRBC8MMf\n/hCf/exnkc1m8cY3vhGXXHLJvF8bAL7zne/gb/7mb3DooYcil8vh85//PG6//fY54+8jjzyC0dFR\nXHfddTBNE4ceeiguu+yy1HlLJAtFX+kTkEgWw+7du3HOOedAVaf35pqmYWRkBJs3b17w8VzXxSc+\n8Qncc889mJycBADU63UQQqBp2rzP6dvf/ja++tWviu+FYZiSyTds2CD+P5PJiJ8NDw/jzW9+s/jZ\n9u3bF3T+w8PDM56zfft2DA0NdX3O1q1bZz1e6887PbbbtUgkEslqZyXXv4ceegif+cxn8PTTTyMM\nQwRBgPe9733zfv7o6Chc103FDEopCCHi697eXuj69K1eJpNBo9HA6Ogo4jhOXdNi48327dsRx/Gc\n8Xf37t0YHh4WZXMAQAjBO97xjgW9vkTSilRoJGuarVu34u6770alUhH/+r7fdTFVFGXW49100014\n4YUX8NBDD6FWq+HXv/41ABYk5vN8fk7XXntt6pxc18VFF10053M3btyIPXv2iK8HBgZmfXz7+Wza\ntAm7d+9OfW9gYGDW4DLbNW3cuFH0EAFIndtczOe9kkgkkpVkJde/97///Tj77LOxZ88eVKtVXHHF\nFbPGmvbvrVu3Do7j4JlnnhGxplqtotFozPnafX190HV93vGm0/m0x5uBgQHouo7169fP+tpbt27F\njh07UjGyXq/j//7v/+b92hJJO3JDI1nTXHHFFbj22mvFojo6Ooo77rij6+PXr1+PnTt3dv15vV6H\n4zgolUqYmJjADTfcMOfz27932WWX4d///d/x0EMPgVKKZrOJu+66C/V6fc7rOf/883Hrrbfi2Wef\nheu6M15/rus544wz8Ic//AG33XYb4jjGd7/7XTz77LM488wz53ztbufz+c9/HpOTkxgaGsLXvva1\neT93/fr1GB8fn3eTqEQikawmlnv9q9fr6OnpgW3bePjhh3HbbbeJn/X19UFV1dT6vn79egwODiIM\nQwCAqqq47LLL8IlPfAL79u0DAAwNDeEnP/nJnOenaRr+8i//Etdffz1c18Wzzz6Lb3/7210f3+l8\nLrroInz5y1/Grl270Gg0cM011+CCCy5IKUKdOPHEE1EoFPDFL34RnueBEIKnn34ajzzySMfHy1gi\nmQ9yQyNZ03zsYx/D2WefjT/7sz9DPp/HSSedhIceeqjr4//u7/4On/vc51AqlfClL31pxs8//vGP\n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\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\nSURRhO985zv41Kc+hWw2i2OPPRYXXXRR38cGgG984xv4y7/8Sxx22GHI5XL4zGc+g5tuumne+Pub\n3/wGExMTuOqqq2CaJg477DBccsklqfOWSBaKvtwnIJHsD9u3b8fZZ58NVZ3NzTVNw969e7Fx48YF\n76/ZbOIjH/kIbr/9dpTLZQBArVZDFEXQNK3vc/ra176Gz3/+8+Jnvu+nZPJ169aJ/5/JZMRru3fv\nxite8Qrx2pYtWxZ0/rt37+54z5YtWzA+Pt7zPZs3b55zf8nXu23b61okEolkpbOc9797770Xn/jE\nJ/DII4/A9314noe3v/3tfb9/YmICzWYzFTMYY4iiSPx7ZGQEuj77qJfJZFCv1zExMYEwDFPXtL/x\nZsuWLQjDcN74u337duzevVuUzQFAFEV43etet6DjSyRJpEIjWdVs3rwZt912G6anp8V/W61Wz5up\noihz7u+6667Dk08+iXvvvRfVahW/+MUvAPAg0c/76ZyuvPLK1Dk1m01ccMEF8753/fr12Llzp/j3\njh075ty+/Xw2bNiA7du3p362Y8eOOYPLXNe0fv160UMEIHVu89HPZyWRSCTLyXLe/97xjnfgrLPO\nws6dO1GpVHDppZfOGWvafzY6OgrHcfDoo4+KWFOpVFCv1+c99tjYGHRd7zvedDuf9nizY8cO6LqO\ntWvXznnszZs3Y+vWrakYWavV8IMf/KDvY0sk7ciERrKqufTSS3HllVeKm+rExARuvvnmntuvXbsW\nzz77bM/Xa7UaHMdBqVTC1NQUPvnJT877/vafXXLJJfj3f/933HvvvWCModFo4NZbb0WtVpv3es49\n91zccMMNeOyxx9BsNjuOP9/1nH766fj973+PG2+8EWEY4pvf/CYee+wxnHHGGfMeu9f5fOYzn0G5\nXMb4+Di+8IUv9P3etWvXYnJysu8mUYlEIllJLPX9r1arYXh4GLZt49e//jVuvPFG8drY2BhUVU3d\n39euXYtdu3bB930AgKqquOSSS/CRj3wEzz//PABgfHwcP/zhD+c9P03T8Od//ue4+uqr0Ww28dhj\nj+FrX/taz+27nc8FF1yAz33uc9i2bRvq9TquuOIKnHfeeSlFqBsnnXQSCoUCrrnmGriuiyiK8Mgj\nj+A3v/lN1+1lLJH0g0xoJKuaD33oQzjrrLPwp3/6p8jn8zj55JNx77339tz+b/7mb/DpT38apVIJ\n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\nro2eyNDfdVDiQ9SRQhY4kqyhKQ7OeSZY1ePwjvzo3I63wIWBu+66C49+9KMBAK7rYn19HfX6uMAk\npMCZwRkIKfDP3/lnvPjqF2PYUZTlSy+9FDd94ia0Gi0IKbARbrBpJBVJTtRPzCyQ6aplvaSHtEi3\nxQzf9tH0m6VkZ9Zxhn0TWTK/nVuvWMPZ/E5Fi9IEYhzT4e4TdTs822MvNp1SR2aXw2zI66RhGGj7\nbZ4hIui0LAAsx78ZbuKB/gNsPBo4wbbOVzfuQkrJSpYrwQoM02DRFZq1tEwLvuWX5m52g5QSg2yA\nXtwrMRgIpmEqM2S3zvGEkjEqHNLMJjBW4Wp6TVTcCovinB6cLsWShtfA8dpx2Nb4OxFlEeIiLs3U\nEJuAQF2bgxTJTp8+zcwX0zJx2223Yam9tMur5geOBaKAgOYvN1Jj1R/ToSc0Sa6YEo83cxy3D07r\nJhxWLFkkNA9T9Pt9rK6uIknUYnjnnXfi5MmTpefoZpD/8R3/EW/9o7fyY7/7O7+LP/53f8xDZBvh\nBjajTV5wXNvFY5ceO3VzSa1vSgBykcM13amytLslNr2kh0EPMPLttIRzxf3Rnbi9/4+AOZ43cU13\n6saWqF9pnkJIlUTYlpLTFFKg6TdZNawdtHmxIDimAzLTJCUy+rcu0UwD4EmR8GK/FW0hLmJ2Pm76\nY64zSS9P/npTVbDqVEtD8fq1kTrbLN6uZVoc2CYRZzE24g30IjWIScGLhl9bfovV6dbDdXbTBkYe\nR8EymkGzdEy6TkLFqbCXz7TlyzTMc+7axHGMJ/zQExAOVWfjC1/4An7wB39wX8eYxGS3ZfLvs5KU\nvWCykpYUiXLkzkJcIiMcN+e3vC86NAvMwpOe9CR861tKTe/666/Hy172stLjuhnk5z7/OfzyNb8M\nmarv5hXPuwIffc9H4Tpqg9yJOtiMNkumjidbJ0seKTpolg8YmzNPeqIBuyc2hSiwtZUjnWNCs1Wc\nxr8MblbdFyhZ/sAO1JzpRDihWEPzNbaluvxtv60opIYF01SKiC2/VdrgA6oQRGIMcR4jzpRXC1F1\n9bnTulfnDa1t2jznScqlraBVEhyZpk5mGibTsvWEZ7I410un2zEAinrd8BpT/V6SPMFmrPYUURZx\n4mYZFqpuVVES/SY8y8MD/QcUXVmbrTxaO4olf6l03CRPSrHENpRoxE5034N0ba686kr84zf+EQDw\n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\ngg==\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXmUZVV59/898zl3vnVr7Kl6nmkm\nQZyAxTJRCWAICrQREZcoiyBqYqKRFRa6fJeByOt6o4lJEMGsSFqjURYgIPATJwYFmZpumuqxpu7q\nGu98z7h/f5zau86dqm513Zqa/VmLBdQ9Z5997rCf8+zneb6PQAgh4HA4HA6Hw+FwOJxliLjYE+Bw\nOBwOh8PhcDicU4U7NBwOh8PhcDgcDmfZwh0aDofD4XA4HA6Hs2zhDg2Hw+FwOBwOh8NZtnCHhsPh\ncDgcDofD4SxbuEPD4XA4HA6Hw+Fwli3coeEsO9auXYsnn3yyoWN/+tOfYvXq1YhEInjppZfmeWbz\ngyAIOHjw4IJdb8eOHXj66acbOnY2nwWHw+Esdd7K69/999+Pd7/73fMy9tNPP41Vq1Y1dCwhBDfc\ncAOSySTOP//8eZkP5/SDOzSc05ovfOEL+Pa3v41cLoezzz57zgbo4osvxne/+92yvy20wzHTfObK\n66+/josvvnjO48zGgHE4HM5SYKmsf0ePHoUgCHAch/1tPh2OU5nPfPHb3/4WTzzxBPr7+/H73/+e\n2xJOQ3CHhnNac+zYMezYsWOxp7EsWAhDxeFwOEsRvv4tHY4dO4a1a9ciHA4v9lQ4ywju0HCWNZ7n\n4R//8R+xYcMGpFIpXH311RgbG4NpmohEInBdF2eeeSY2bNiA6667Dr29vbj88ssRiURw1113VY03\nPj6Oyy67DG1tbUgmk7jsssvQ398PALjtttvwm9/8BrfccgsikQhuueUWXHjhhQCAM888E5FIBD/8\n4Q8BAA8//DDOOussJBIJvPOd78Srr77KrrF27Vp84xvfwK5duxCPx3HNNdegVCqx1//pn/4JXV1d\nWLFiBb73ve/Vvfda8wGAZ555Bueddx7i8TjOO+88PPPMM3XHWLt2Le68807s2rUL4XAYjuOURbGK\nxSKuv/56JJNJbNu2DXfddVfVTtnLL79cdS/5fB4f+MAHMDg4iEgkgkgkgsHBwWk/Sw6Hw1lIFnv9\ne+SRR3D22WcjFoth9erVuOOOO9hr1LYkEglEIhE8++yzuOmmm/Dss88iEokgkUgAAEzTxBe+8AWs\nWbMGHR0duOmmm1AsFgFMRYnuvvtutLe3o6urC/fddx+7xujoKK644grEYjGcf/75OHToUN33qtZ8\nPM/D1772NXR3d6O9vR0f+9jHkE6nG3rvBwcHcdVVV6GtrQ3r1q3DP//zPwMA7r33Xnzyk59k9/m3\nf/u33JZwGoNwOMuM7u5u8sQTTxBCCPnmN79J3v72t5O+vj5SKpXIpz71KXLttdeyYwGQnp6emufW\nYmRkhPz4xz8m+XyeZDIZ8qEPfYh88IMfZK9fdNFF5J577ik7p/IaL774ImlrayPPPfcccRyH3H//\n/aS7u5uUSiU2h/POO48MDAyQ0dFRsnXrVvKd73yHEELIo48+Strb28lrr71Gcrkc2b17d9X4QSrn\nMzo6ShKJBPnP//xPYts2eeCBB0gikSAjIyN138szzzyT9Pb2kkKhUPUeffGLXyQXXnghGRsbI319\nfeSMM84gK1euLDu/3r388pe/LDuWw+FwlhKLvf798pe/JK+++ipxXZe88sorpL29nfz0pz8lhBBy\n5MgRAoDYts2Ov++++8i73vWusjE++9nPkssvv5yMjo6STCZDLrvsMvKlL32JjS9JEvmHf/gHYlkW\neeSRR4hhGGRsbIwQQsg111xDPvzhD5NcLkdee+01smLFiqrxKbXmc++995INGzaQQ4cOkWw2S668\n8kry0Y9+tO690vfDdV1yzjnnkK985SvENE1y6NAhsm7dOvLYY4/VvE9uSziNwCM0nGXNv//7v+P/\n/J//g1WrVkHTNNxxxx348Y9/fMrpA6lUCldddRVCoRCi0Shuu+02/OpXv5rVGPfccw8+/elP4+1v\nfzskScL1118PTdPw3HPPsWNuvfVWrFixAi0tLbj88svx8ssvAwB+9KMf4YYbbsDOnTsRDofLduwa\n4ZFHHsGmTZtw3XXXQZZl7N69G1u3bsVDDz1U95xbb70Vq1evhmEYVa/96Ec/wpe//GUkk0msWrUK\nt956a83za90Lh8PhLHUWc/27+OKLccYZZ0AURezatQu7d++elb0hhOCee+7BN7/5TbS0tCAajeLL\nX/4y9uzZw45RFAW33347FEXBpZdeikgkggMHDsB1XfzkJz/BV7/6VYTDYezcuRPXX399w9cGgB/8\n4Af467/+a6xfvx6RSARf//rXsWfPnhnt7x/+8AcMDw/j9ttvh6qqWL9+PW688cayeXM4s0Ve7Alw\nOHPh2LFjuPLKKyGKU765JEkYGhrCypUrZz1eoVDA5z//eTz22GMYHx8HAGSzWbiuC0mSGp7T97//\nfXzrW99if7MsqyxM3tnZyf47FAqx1wYHB3Huueey17q7u2c1/8HBwapzuru7MTAwUPec1atXTzte\n8PVax9a7Fw6Hw1nqLOb69/zzz+NLX/oS9u7dC8uyYJomPvzhDzd8/vDwMAqFQpnNIITAdV32/6lU\nCrI89agXCoWQy+UwPDwMx3HK7mmu9qa7uxuO48xof48dO4bBwUGWNgcAruviPe95z6yuz+EE4REa\nzrJm9erVePTRRzExMcH+KZVKdRdTQRCmHe/uu+/GgQMH8PzzzyOTyeDXv/41AN9INHI+ndNtt91W\nNqdCoYDdu3fPeG5XVxf6+vrY//f29k57fOV8VqxYgWPHjpX9rbe3d1rjMt09dXV1sRoiAGVzm4lG\n3isOh8NZTBZz/fvIRz6CK664An19fUin07jpppumtTWVf2ttbYVhGHj99deZrUmn08jlcjNeu62t\nDbIsN2xvas2n0t709vZClmV0dHRMe+3Vq1dj3bp1ZTYym83i5z//ecPX5nAq4Q4NZ1lz00034bbb\nbmOL6vDwMB588MG6x3d0dODw4cN1X89mszAMA4lEAmNjY/jKV74y4/mVf7vxxhvxb//2b3j++edB\nCEE+n8cjjzyCbDY74/1cffXVuP/++7Fv3z4UCoWq6890P5deeinefPNNPPDAA3AcBz/84Q+xb98+\nXHbZZTNeu958vv71r2N8fBwDAwP49re/3fC5HR0dGB0dbbhIlMPhcJYS873+ZbNZtLS0QNd1/P73\nv8cDDzzAXmtra4MoimXre0dHB/r7+2FZFgBAFEXceOON+PznP4+TJ08CAAYGBvD444/POD9JkvAX\nf/EXuOOOO1AoFLBv3z58//vfr3t8rfns3r0b3/zmN3HkyBHkcjl8+ctfxjXXXFMWEarF+eefj1gs\nhjvvvBPFYhGu62Lv3r34wx/+UPN4bks4jcAdGs6y5rOf/SyuuOIK/Omf/imi0SguuOACPP/883WP\n//u//3t87WtfQyKRwDe+8Y2q1z/3uc+hWCyitbUVF1xwAd7//vdXXe/HP/4xkskky6e+4447cP31\n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\nALYCgFh05Rd/jm0AAAAASUVORK5CYII=\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAFpCAYAAABK/W13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXl0ZNV17/+9c82DSlWaWq1WT3TT\ndNPQNIOxgR/PMUMYQsAMfsYYL2OzCMZ24sSOWY+FvZzlQMzjrdiJk2AMzooJJjg2CzBgTIwHJgNu\nGnqkB3W3hpZUqnm+0/n9cfseVZWqSiWpNDXnw/JyS7p1zrlV0tl3n733d3OEEAIGg8FgMBgMBoPB\nWIbwi70ABoPBYDAYDAaDwZgtzKFhMBgMBoPBYDAYyxbm0DAYDAaDwWAwGIxlC3NoGAwGg8FgMBgM\nxrKFOTQMBoPBYDAYDAZj2cIcGgaDwWAwGAwGg7FsYQ4NY9mxatUq/OpXv2rq2p/97Gfo7e2Fx+PB\njh075nll8wPHcTh48OCCzbdp0ya8/PLLTV07k8+CwWAwljof5P3v0UcfxYc//OF5Gfvll1/GihUr\nmrqWEIJbb70VwWAQZ5999rysh3HywRwaxknNV77yFXzve99DNpvFGWecMWcDdNFFF+EHP/hBxfcW\n2uGYbj1zZffu3bjooovmPM5MDBiDwWAsBZbK/nfkyBFwHAdd1+n35tPhmM165ovf//73ePHFFzE0\nNIQ//OEPzJYwmoI5NIyTmqNHj2LTpk2LvYxlwUIYKgaDwViKsP1v6XD06FGsWrUKbrd7sZfCWEYw\nh4axrDFNE3//93+PNWvWIBQK4frrr0c8HkepVILH44FhGDj99NOxZs0a3HzzzTh27BiuvPJKeDwe\n3H///VPGSyQSuOKKKxAOhxEMBnHFFVdgaGgIAHD33Xfjd7/7He688054PB7ceeeduOCCCwAAp59+\nOjweD37yk58AAJ555hls3boVgUAAH/rQh/Duu+/SOVatWoXvfOc72LJlC/x+P2644QYUi0X683/4\nh39AV1cXuru78cMf/rDuvddaDwC8+uqr2L59O/x+P7Zv345XX3217hirVq3Cfffdhy1btsDtdkPX\n9YooVqFQwC233IJgMIiNGzfi/vvvn3JS9s4770y5l1wuh8suuwwjIyPweDzweDwYGRlp+FkyGAzG\nQrLY+9+zzz6LM844Az6fD729vbj33nvpz2zbEggE4PF48Nprr+H222/Ha6+9Bo/Hg0AgAAAolUr4\nyle+gpUrV6KjowO33347CoUCgMko0QMPPIBIJIKuri488sgjdI5YLIarrroKPp8PZ599Ng4dOlT3\nvaq1HtM08a1vfQt9fX2IRCL41Kc+hVQq1dR7PzIygmuvvRbhcBj9/f34x3/8RwDAww8/jM9+9rP0\nPv/6r/+a2RJGcxAGY5nR19dHXnzxRUIIIQ8++CA555xzyODgICkWi+Rzn/scufHGG+m1AMiBAwdq\nvrYWExMT5MknnyS5XI6k02ly3XXXkauvvpr+/MILLyQPPfRQxWuq53j77bdJOBwmr7/+OtF1nTz6\n6KOkr6+PFItFuobt27eT4eFhEovFyIYNG8j3v/99Qgghzz33HIlEIuS9994j2WyW3HTTTVPGL6d6\nPbFYjAQCAfLv//7vRNM08thjj5FAIEAmJibqvpenn346OXbsGMnn81Peo69+9avkggsuIPF4nAwO\nDpLNmzeTnp6eitfXu5df//rXFdcyGAzGUmKx979f//rX5N133yWGYZCdO3eSSCRCfvaznxFCCBkY\nGCAAiKZp9PpHHnmEnH/++RVjfPGLXyRXXnklicViJJ1OkyuuuIJ87Wtfo+MLgkD+z//5P0RVVfLs\ns88Sp9NJ4vE4IYSQG264gXz84x8n2WyWvPfee6S7u3vK+Da11vPwww+TNWvWkEOHDpFMJkOuueYa\n8slPfrLuvdrvh2EY5MwzzyTf+MY3SKlUIocOHSL9/f3k+eefr3mfzJYwmoFFaBjLmn/913/F3/3d\n32HFihVQFAX33nsvnnzyyVmnD4RCIVx77bVwuVzwer24++678Zvf/GZGYzz00EP4/Oc/j3POOQeC\nIOCWW26Boih4/fXX6TV33XUXuru70dbWhiuvvBLvvPMOAOCJJ57ArbfeitNOOw1ut7vixK4Znn32\nWaxbtw4333wzRFHETTfdhA0bNuDpp5+u+5q77roLvb29cDqdU372xBNP4Otf/zqCwSBWrFiBu+66\nq+bra90Lg8FgLHUWc/+76KKLsHnzZvA8jy1btuCmm26akb0hhOChhx7Cgw8+iLa2Nni9Xnz961/H\n448/Tq+RJAn33HMPJEnC5ZdfDo/Hg/3798MwDPz0pz/FN7/5Tbjdbpx22mm45ZZbmp4bAH784x/j\n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\nrkJggg==\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cFigure size 1120x480 with 2 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "# negative pair\n", "plt.close('all')\n", "for i in range(len(a)):\n", " _ = plot_graph_matching_pair(nx_graphs[2], nx_graphs[3], a[i][1])" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "0MEhPuw9Y1tP" }, "outputs": [], "source": [ "" ] } ], "metadata": { "colab": { "collapsed_sections": [ "HrOZEU_OrYTR" ], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "graph_matching_networks.ipynb", "provenance": [ { "file_id": "1Ys7zuxnbz-5AbNTMmC5Rf4rEOXXvsVEV", "timestamp": 1563976318651 } ], "toc_visible": true, "version": "0.3.2" }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: graph_matching_networks/requirements.txt ================================================ matplotlib==3.1.1 networkx==2.3 dm-sonnet==1.34 numpy==1.16.4 tensorflow==1.14 six==1.12 ================================================ FILE: hierarchical_probabilistic_unet/HPU_Net.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "auxiImC5FRng" }, "source": [ "# Hierarchical Probabilistic U-Net" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "9l84MVIwFQ25" }, "source": [ "Copyright 2019 DeepMind Technologies Limited\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ntSZbVLBTzIC" }, "source": [ "#Colab: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/hierarchical_probabilistic_unet/HPU_Net.ipynb)\n", "If you haven't already opened this notebook in colab, you can click the button above to open it there." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "BZ37gJ-m8cLJ" }, "outputs": [], "source": [ "!pip install tensorflow==1.14.0\n", "!pip install tensorflow-probability==0.7.0\n", "!pip install dm-sonnet==1.35\n", "\n", "from glob import glob\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "import numpy as np\n", "import os\n", "import tensorflow as tf\n", "import sonnet as snt" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "fmnE1HsERYzQ" }, "source": [ "# Clone github repo" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "0QkKLmQTRY8A" }, "outputs": [], "source": [ "!git clone https://github.com/deepmind/deepmind-research.git deepmind_research\n", "%cd deepmind_research/hierarchical_probabilistic_unet\n", "from model import HierarchicalProbUNet\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "1i5Lbz9ClJjr" }, "source": [ "# Load LIDC test data from Google Cloud Storage" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "SY_lyR2BHRu9" }, "outputs": [], "source": [ "!gsutil cp gs://hpunet-data/lidc_crops/test.tar.gz /tmp/\n", "!tar xvfz /tmp/test.tar.gz -C /tmp/" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "3vudq22sH3Hk" }, "source": [ "# Load pretrained weights from Google Cloud Storage" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "KbIWpjl4IDCO" }, "outputs": [], "source": [ "!gsutil cp gs://hpunet-data/model_checkpoint/checkpoint.tar.gz /tmp/\n", "!tar xvfz /tmp/checkpoint.tar.gz -C /tmp/" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "fh4tb7_vxrKs" }, "outputs": [], "source": [ "#@title Utility to function to batch-up the data.\n", "\n", "test_img_dir = '/tmp/test'\n", "\n", "def make_batch(patient_ixs):\n", " \"\"\"Assembles a batch of the first image for each specified patient.\n", " Args:\n", " patient_ixs: A list of integers specifying the patients to choose.\n", " Returns:\n", " A tuple holding the batched image of shape (b, 128, 128, 1) and the batched\n", " segmentations of shape (b, 128, 128, 4).\n", " \"\"\"\n", " img, seg = [], []\n", " patient_dirs = glob(os.path.join(test_img_dir, 'images', '*'))\n", " for i in patient_ixs:\n", " # get the first image for the patient\n", " img_path = glob(os.path.join(patient_dirs[i], '*'))[0]\n", " image = matplotlib.image.imread(img_path)\n", " image = image[np.newaxis, ..., np.newaxis]\n", " img.append(image)\n", " # get the corresponding ground truth labels\n", " gt_base_path = img_path.replace('images', 'gt')\n", " labels = []\n", " for l in range(4):\n", " gt_path = gt_base_path.replace('.png', '_l{}.png'.format(l))\n", " label = matplotlib.image.imread(gt_path)\n", " labels.append(label[np.newaxis, ..., np.newaxis])\n", " labels = np.concatenate(labels, axis=-1)\n", " seg.append(labels)\n", " img_batch = np.concatenate(img, axis=0)\n", " seg_batch = np.concatenate(seg, axis=0)\n", "\n", " # The images and segmentations have a spatial shape of 180 x 180. Crop to\n", " # spatial shape 128 x 128.\n", " return img_batch[:, 26:-26, 26:-26], seg_batch[:, 26:-26, 26:-26]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "nYp0LoeRu9Kb" }, "source": [ "# Run a pre-trained model on the LIDC Test Set.\n", "First construct a graph for the model. Here we set-up different sampling configurations to examine the sampling behavior when different latent scales are fixed to their means.\n", "\n", "---\n", "\n" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "ucwHxM8yl1Ut" }, "outputs": [], "source": [ "tf.reset_default_graph()\n", "hpu_net = HierarchicalProbUNet(name='model/HPUNet')\n", "\n", "_GRADER_TO_RECONSTRUCT = 3\n", "_NUM_SAMPLES = 16\n", "_INSTANCE_INDICES = range(10)\n", "_NUM_CLASSES = 2\n", "\n", "img, seg = make_batch(patient_ixs=_INSTANCE_INDICES)\n", "img_placeholder = tf.placeholder(shape=img.shape, dtype=tf.float32, name='img')\n", "seg_placeholder = tf.placeholder(shape=seg.shape, dtype=tf.float32, name='seg')\n", "seg_one_hot = tf.one_hot(tf.cast(seg[..., _GRADER_TO_RECONSTRUCT], tf.uint8),\n", " depth=_NUM_CLASSES)\n", "reconstruction = hpu_net.reconstruct(seg_one_hot, img_placeholder)\n", "sample_full = hpu_net.sample(img_placeholder)\n", "sample_local = hpu_net.sample(img_placeholder, mean=[1, 1, 1, 0])\n", "sample_global = hpu_net.sample(img_placeholder, mean=[0, 1, 1, 1])" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "U4aZDVeDtcmX" }, "source": [ "Restore the model from a checkpoint, run a reconstruction and the different sampling configurations." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "MrwcFOS5nw9S" }, "outputs": [], "source": [ "saver = tf.train.Saver()\n", "with tf.train.MonitoredTrainingSession() as sess:\n", " # restore checkpoint\n", " saver.restore(sess, '/tmp/checkpoint/tf_graph_data.ckpt')\n", "\n", " # sample from the full hierarchy\n", " rec, s = sess.run([reconstruction, sample_full],\n", " feed_dict={img_placeholder: img, seg_placeholder: seg})\n", "\n", " samples = [s[..., np.newaxis]]\n", " if _NUM_SAMPLES > 1:\n", " for _ in range(_NUM_SAMPLES - 1):\n", " s = sess.run(sample_full, feed_dict={img_placeholder: img})\n", " samples.append(s[..., np.newaxis])\n", " samples = np.concatenate(samples, axis=-1)\n", "\n", " # sample from global latent only\n", " samples_global = []\n", " for _ in range(_NUM_SAMPLES):\n", " s = sess.run(sample_global, feed_dict={img_placeholder: img})\n", " samples_global.append(s[..., np.newaxis])\n", " samples_global = np.concatenate(samples_global, axis=-1)\n", "\n", " # sample from most local latents only\n", " samples_local = []\n", " for _ in range(_NUM_SAMPLES):\n", " s = sess.run(sample_local, feed_dict={img_placeholder: img})\n", " samples_local.append(s[..., np.newaxis])\n", " samples_local = np.concatenate(samples_local, axis=-1)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_q9Ks_YTu4gR" }, "source": [ "# Plot Examples.\n", "Plot batches of images, the corresponding 4 segmentation masks, a posterior reconstruction of one of the masks as well as a number of samples." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "pnwcHuzeunaI" }, "outputs": [], "source": [ "#@title Utility functions for plotting.\n", "\n", "def to_rgb(arr, cmap={0: (0, 0, 0), 1: (255, 255, 255)}):\n", " \"\"\"\n", " Transform an integer-labeled segmentation map using an rgb color-map.\n", " :param arr: img_arr w/o a color-channel\n", " :param cmap: dictionary mapping from integer class labels to rgb values\n", " :return:\n", " \"\"\"\n", " new_arr = np.zeros(shape=(arr.shape)+(3, ))\n", " for c in cmap.keys():\n", " ixs = np.where(arr == c)\n", " new_arr[ixs] = [cmap[c][i] / 255. for i in range(3)]\n", " return new_arr\n", "\n", "def make_plot(img, seg, rec, samples, fs=6):\n", " \"\"\"\n", " Make a grid plot of a batch of images, set of ground truth segmentations and\n", " corresponding reconstructions and samples. Each example is displayed in a \n", " column of the plot.\n", " :img: Batch of images, array of shape (b, h, w, 1).\n", " :seg: Batch of segmentations, array of shape (b, h, w, num_graders).\n", " :samples: Batch of samples, array of shape (b, h, w, num_classes,\n", " num_samples).\n", " :fs: Font size, integer.\n", " \"\"\"\n", " num_samples = samples.shape[-1]\n", " num_graders = seg.shape[-1]\n", " bs = img.shape[0]\n", " num_rows = 1 + num_graders + 1 + num_samples\n", "\n", " f = plt.figure(figsize=(bs * fs, num_rows * fs))\n", " outer = gridspec.GridSpec(6, 1, wspace=0.1, hspace=0.1,\n", " height_ratios=[1, num_graders, 1, num_samples, 1, 1])\n", "\n", " img_spec = gridspec.GridSpecFromSubplotSpec(\n", " 1, bs, subplot_spec=outer[0], wspace=0.0, hspace=0.0)\n", " grader_spec = gridspec.GridSpecFromSubplotSpec(\n", " num_graders, bs, subplot_spec=outer[1], wspace=0.0, hspace=0.0)\n", " rec_spec = gridspec.GridSpecFromSubplotSpec(\n", " 1, bs, subplot_spec=outer[2], wspace=0.0, hspace=0.0)\n", " sample_spec = gridspec.GridSpecFromSubplotSpec(\n", " num_samples, bs, subplot_spec=outer[3], wspace=0.0, hspace=0.0)\n", " grader_std_spec = gridspec.GridSpecFromSubplotSpec(\n", " 1, bs, subplot_spec=outer[4], wspace=0.0, hspace=0.0)\n", " sample_std_spec = gridspec.GridSpecFromSubplotSpec(\n", " 1, bs, subplot_spec=outer[5], wspace=0.0, hspace=0.0)\n", " for j in range(bs):\n", " # image\n", " ax = plt.subplot(img_spec[0, j])\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", " plt.imshow(np.concatenate([img[j] for _ in range(3)], axis=-1))\n", " if j == 0:\n", " ax.annotate('CT scan', (-0.2, 0.5), xycoords='axes fraction',\n", " va='center', rotation=90)\n", " # ground-truth\n", " for i in range(num_graders):\n", " ax = plt.subplot(grader_spec[i, j])\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", " plt.imshow(to_rgb(seg[j, ..., i]))\n", " if j == 0 and i == 1:\n", " ax.annotate('Graders', (-0.2, 0.0), xycoords='axes fraction',\n", " va='center', rotation=90)\n", " # reconstruction\n", " ax = plt.subplot(rec_spec[0, j])\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", " plt.imshow(to_rgb(np.argmax(rec[j], axis=-1)))\n", " if j == 0:\n", " ax.annotate('Reconstruction', (-0.2, 0.5), xycoords='axes fraction',\n", " va='center', rotation=90)\n", " # samples\n", " if num_samples % 2 != 0:\n", " xy = (-0.2, 0.5)\n", " else:\n", " xy = (-0.2, 1.0)\n", " for i in range(num_samples):\n", " ax = plt.subplot(sample_spec[i, j])\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", " plt.imshow(to_rgb(np.argmax(samples[j, ..., i], axis=-1)))\n", " if j == 0 and i == num_samples // 2:\n", " ax.annotate('Samples', xy, xycoords='axes fraction',\n", " va='center', rotation=90)\n", "\n", " # grader standard deviation\n", " ax = plt.subplot(grader_std_spec[0, j])\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", " std = np.std(seg[j], axis=-1)\n", " plt.imshow(std, cmap=plt.get_cmap('jet'))\n", " if j == 0:\n", " ax.annotate('Grader', (-0.4, 0.5), xycoords='axes fraction',\n", " va='center', rotation=90)\n", " ax.annotate('Std. Dev.', (-0.2, 0.5), xycoords='axes fraction',\n", " va='center', rotation=90)\n", "\n", " # sample standard deviation\n", " ax = plt.subplot(sample_std_spec[0, j])\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", " samples_argmax = np.argmax(samples[j], axis=-2)\n", " std = np.std(samples_argmax, axis=-1)\n", " plt.imshow(std, cmap=plt.get_cmap('jet'))\n", " if j == 0:\n", " ax.annotate('Samples', (-0.4, 0.5), xycoords='axes fraction',\n", " va='center', rotation=90)\n", " ax.annotate('Std. Dev.', (-0.2, 0.5), xycoords='axes fraction',\n", " va='center', rotation=90)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "GK3e3emEdURX" }, "source": [ "# Plot samples from the full hierarchy.\n", "When sampling from the full hierarchy of the prior, none of the latent scales is constrained to their respective mean(s)." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 29434, "status": "ok", "timestamp": 1568193363976, "user": { "displayName": "Simon Kohl", "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mAV5aCJQ_5RldkCyse6s0nQKEvpBRdNbA80iGeZEw=s64", "userId": "12229574298416150258" }, "user_tz": -60 }, "id": "Zjb865P3yJwT", "outputId": "b51443c1-e6c1-46ec-a7f5-16fb5f16424e" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABH8AAAmlCAYAAABQWRQLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvbuPdNlV/r+qurvu3f1eZ2yPhzG2BbYwCXLiCCGQEATA\nX4AQETIhMiBBAMhIyBYIyREBRCREJAgiAwI5skQK6ZjB45n31pfquvSl6hfM7zn9qafXPlX99un5\naqxaUqurTp2zL2uvy7PWvpzWcrlcxpa2tKUtbWlLW9rSlra0pS1taUtb2tKWfiyp/f+6AVva0pa2\ntKUtbWlLW9rSlra0pS1taUtbuj/aJn+2tKUtbWlLW9rSlra0pS1taUtb2tKWfoxpm/zZ0pa2tKUt\nbWlLW9rSlra0pS1taUtb+jGmbfJnS1va0pa2tKUtbWlLW9rSlra0pS1t6ceYtsmfLW1pS1va0pa2\ntKUtbWlLW9rSlra0pR9j2iZ/trSlLW1pS1va0pa2tKUtbWlLW9rSln6MaZv82dKWtrSlLW1pS1va\n0pa2tKUtbWlLW/oxpt3/1w14Xfr2t78dR0dHERGxXC5juVzeuGexWFTXS/foeqvVqv50nf9F+j0j\n3uv36Tcvn/dl7Svdq+u6pra32+2Vfl1dXcX5+XnMZrM4OzuL+Xxe8YX3ez3607UnT57E3/zN3xT7\nflv6+Z//+XjvvfdWrrF/7Xa7qrvdbke73V7pq/q3WCyqtvOz98nL5LWdnZ1otVqxWCzi8vJy7Tio\nDc4jjsHu7m4sl8u4uLiIq6urYnvUp2xMFovFSvleP8eO5eu+nZ2d6p7PfOYz8W//9m9pv25Lf/d3\nfxfT6TTa7XZcXV3F1dVVtFqt2N3djd3d3Wi1WnF5ebmif4vFovrONvqYlXgvGeA9qlPXr66uijrO\ncnZ3d2M4HMaTJ0/i4cOHsbOzE/P5vBon8X1vb6+qp9vtxmAwiFarFWdnZzGZTFbq09i57Pm4Uv/P\nz8+rz/ota3+r1Yperxe/+Iu/uGZkNqM/+7M/i5cvX8ZyuYzd3d3Y29uLTqcTvV4vut1u9bnT6USn\n06nG1NvkvKV+kgf+u19fLpexs7NTfSYvaZtZjstLqX1eX8l+1/VDbcjsS8YL3ttqtWIwGMSv/Mqv\npPXeln7t134t3n///Rvtpl5R5mij6tpNu9Xr9WKxWMRsNqtkVCRdq/OTsqnSefGCz/EZtS8bQ7/O\n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\nAACoMMkfAAAAgArbuuwANtc73/nOWLx4cdlh9Bljx46NBx54oGnlqb/Wamb9qbvWU3/tS921N/XX\nvvRb2pttr72pv/al7trbpuqvbZM/ixcvjmeeeabsMNhM6q99qbv2pv7al7prb+qvvam/9qXu2pv6\na1/qrvdx2xcAAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABA\nhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8A\nAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY\n5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFTY1mUHAAD0fm9605vi85//fJefOfHEE1sUDQAA\nb4TkDwBQaI899oj58+dHRES/fv1ixIgRXX7+f/7P/xkREW9/+9tj4cKFPR4fAADd47YvAKDQAQcc\nECNHjoyRI0duMvETEfXP/v73v49arRZXXXVVDB06tAWRAgDQFVf+AAAbOe+88+Jzn/vcFpXxkY98\nJIYPHx4vvfRS4ftHH330FpUPAED3SP4AUClr1qyJiIgBAwaUHEn7+vznPx//+q//2pSyDj744Ibv\nZbeJRUR0dnbGW9/61qZMEwCADbntC4DKOPTQQ6N///7Rv3//OOyww8oOpy19+tOfjnPOOSc6Ojp6\nfFpZXfXv3z/22muvqNVqUavV4plnnok99tijx6cP7erwww+v/2TbTXd+jjvuuLJDB6AkrvwBoBJm\nzJgRF110Uf3/f//3f3f1zxv0zW9+M0455ZSyw4hddtklrr/++nj00UcjIuKaa66J6667ruSooHf4\n7Gc/G+eff/5mffeyyy6LnXfeOWbOnNnkqADo7SR/AGhr/fv3j4MOOihmz569wevZ7V90zxe+8IVe\nkfjJTJo0KSZNmhQRr1/lEBHxu9/9Lvbcc88yw4JSTZs2bbMTP5nPf/7zsXTp0rj44oubFBUA7UDy\nB4C2tmTJkth22203en3YsGElRENPGjlyZEydOjV++9vflh0KtLXZs2fHunXr4pJLLik7FABaxJg/\nALStGTNmSPI0wa677hof/vCHyw5jk8aOHRuHHHJI2WFAac4444ymlTV37tw499xzm1YeAL2b5A8A\n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\n197UX/vSb2lvtr32pv7al7prb5uqv45arVZrUSx1b3/72+P++++P/v37119bu3Zt7LfffvEf//Ef\nrQ4HAAAAoLJKGfB5yJAh8dvf/jb++q//uv7aI488EoMHD+52Ge985ztj8eLFPREeBcaOHRsPPPBA\n08pTf63VzPpTd62n/tqXumtv6q996be0N9tee1N/7UvdtbdN1V8pyZ+TTz45/vmf/zn+7u/+Lnbc\nccf44x//GHfffXfMnDmz22UsXrw4nnnmmR6Mkp6k/tqXumtv6q99qbv2pv7am/prX+quvam/9qXu\nep9Skj+HHHJITJkyJW699dZYunRpvPnNb44TTjghxo8fX0Y4AAAAAJVVSvInImL8+PGSPQAAAAA9\nrLTkz5133hm/+MUvYtmyZZGOOX3++eeXFRIAAABA5fQrY6IXX3xxnH322bF+/fr4+c9/HiNHjowH\nHnggRowYUUY4AAAAAJVVSvLnhhtuiMsvvzzOOOOM6N+/f5xxxhlx6aWXGg0cAAAAoMlKSf68/PLL\nsfvuu0dERP/+/WPt2rUxderU+MUvflFGOAAAAACVVcqYP7vssks8/vjjMWHChJgwYUJcffXVMWLE\niNhmm23KCAcAAACgskpJ/nzqU5+KF198MSIiPvOZz8Rpp50WK1eujLPPPruMcAAAAAAqq+XJn/Xr\n18eAAQPiLW95S0RETJ06NW6//fZWhwEAAADQJ7R8zJ9+/frFiSeeGAMGDGj1pAEAAAD6nFIGfP6b\nv/mb+PWvf13GpAEAAAD6lFLG/Nlpp53iuOOOi3e/+92x4447RkdHR/29U045pYyQAAAAACqplOTP\n6tWr4z3veU9ERCxZsqSMEAAAAAD6hJYnf9auXRtf/vKXIyLil7/8ZdRqtfp7e+21V6vDAQAAAKi0\nliZ/fvjDH8bDDz8cX/va1yIiYvr06bHttttGrVaLVatWxWc+85mYNm1aK0MCAAAAqLSWDvg8b968\nmD59ev3/AQMGxD333BP33ntvXHHFFXH99de3MhwAAACAymtp8mfx4sUxceLE+v/jxo2r/z1x4sT4\nz//8z1aGAwAAAFB5LU3+rFy5MlauXFn//9///d/rf7/66qvx6quvtjIcAAAAgMprafJnwoQJ8eCD\nDxa+d//998f48eNbGQ4AAABA5bU0+XP00UfHrFmz4o477oj169dHRMT69evj9ttvj3PPPTeOPvro\nVoYDAAAAUHktfdrX+9///liyZEl89rOfjbVr18bIkSPjxRdfjP79+8dJJ50UH/jAB1oZDgAAAEDl\ntTT5ExHxsY99LI488sh4+OGHY9myZTFy5Mh461vfGsOHD291KAAAAACV1/LkT0TEsGHDYr/99itj\n0gAAAAB9SkvH/AEAAACgtSR/AAAAACpM8gcAAACgwkoZ8wcA6P3mzp3b5fvnnHNO/PGPf2xRNAAA\nbC7JHwBgIw899FC8/e1v7/IzH/7wh2P9+vWbLGvBggWx7777Nis0AADeIMkfAKBu2LBhcemll24y\n8RMRMWLEiG6Vuc8++0StVotPfOITcdlll21piAAAvEHG/AEA6nbdddf48Ic/3CNlf+tb34orr7wy\nDjnkkB4pHwCAYpI/AEDL/K//9b/i+uuvjzVr1sSaNWvirLPOKjskAIDKk/wBAFpqq622iv79+0f/\n/v3j3HPPjVqtFu9973vLDgvaxuGHH17/qdVq3f457rjjyg4dgJIY8wcAKN11110Xd9xxR8P3P/Wp\nT8XixYtbGBH0Tp/97Gfj/PPP36zvXnbZZbHzzjvHzJkzmxwVAL2d5A8AULptttkmDj/88IbvH374\n4fG73/0u9txzzxZGBb3LtGnTNjvxk/n85z8fS5cujYsvvrhJUQHQDtz2BQAAfcjs2bPjhBNOKDsM\nAFpI8gcAANrAGWec0bSy5s6dG+eee27TygOgd5P8AQCANrDXXns1tbyzzjrLFUAAfYTkDwAAtIHb\nbrut6WXOnTs3ZsyY0fRyAehdJH8AAKANfOc73+mRcmfPnh333ntvHHDAAT1SPpt27LHHxr333lv/\n2XXXXcsOCagYyR/oplqtFhdccEFstdVWZYcCfd6OO+4YtVpto5/+/fuXHRo9aMqUKXHBBRfE1lt7\nWCl903XXXRc33XRTj5S9//77xw477NAjZdO1yZMnx+WXXx77779//efpp5+ORx99NIYPH152eEBF\nSP7AG3DaaafFbrvtVnYY0Geddtppcdppp8Xvf//7skOhJKeddlqcd955cfTRR5cdCpRi3rx5ZYdA\ni0ycODGuu+662G677coOBagAp86gmw4//PC44YYb4sYbb4w999yz7HCgz7nhhhvisMMOKzsMeoHP\nfvaz8eqrr8aAAQPi29/+dtnhQEtdeeWV8dhjj8X8+fPLDoUmueaaaxq+d9BBB8V9990XU6ZMaWFE\nQBW58ge66cYbb4yTTz45dt9993jkkUdi2223LTsk6BMmTJgQs2fPlvhhA4MHD47LLrssarVa2aFU\nytZbbx0TJkyIzs7OqNVqcdFFF8WECRNiwoQJ9nu9yK9+9auyQ6CJJk+evEXvA3SH5A+8AbNnz46n\nn346pkyZEh/72MfKDgcq7+Mf/3g89thjnkQDLfLVr341HnvssZg0aVJERJx88snx2GOPxWOPPRZX\nX3218UegJMcff3zZIQBtTvIHgF5p+vTpcdFFF5UdBvQpp556asP3DjroIFecQEm++c1vxoknnlh2\nGEAbk/wB+oz8k6FmzpxZdkh9XkdHR8ycObPwyV3f+c53YtCgQWWH2Od0dnbG8ccfH6tWrSo7FEqw\n4447xsMPPxwPP/xw4fvjx4/vsceNA40NHDgw5syZE3vssUfZoQBtSvIHNsPixYvjvvvuKzsMaHsX\nXHBBzJo1q+wwyPnWt74VTz75ZNlhUIIlS5bE2972tnjb294WF1xwQf31008/vf7zz//8zyVGCH3L\nbbfdFqeffnr9/9NOO63EaIB25mlfsBn+x//4H7FkyZKyw4C219UtJpTr3e9+d/z3f/932WFQos99\n7nP1Wy8XL15ccjT0tFtuuSVuueWWssPok97znvfEHXfcERERCxcujPe85z1x5513Rq1Wi2nTpsXL\nL78cv/rVr+KOO+6I6dOnS8ACm0XyB96gv/qrvyo7BDZTR0dH2SGQmDhxYtkh0IU//vGPsdtuu8U9\n99wTu+yyS9nhFHrmmWfiwAMPLDuMynrttdckffqIBx98MN7//veXHUaf9eSTT8YDDzwQERH77bdf\nRGzc37zzzjv1Y4At4rYvAEpx3nnnlR0Cm/DUU0/F9773vbLDaOjyyy+Pp59+uuwwoK19//vfj/33\n37/sMPq0p556Kvbbb7964gegJ7jyBwBo6Ktf/WocddRRve6qx+233z5effXVssOAtnfnnXfG+vXr\nyw4DgB4m+QMANPTqq6/GxIkT49Zbb62/9r73va+UWFasWBHz58+P4447Ll544YVSYoDeYPXq1Zu8\nBeiBBx6Ifffdt/C9BQsWxN577x0rVqzoifAA6IXc9gVAKS6++OI49thj47vf/W7ZodANBx10UP3n\nrLPOKiWGj370o3HQQQfFH/7wh1KmD+1k+vTpha8vXLgwDjvsMIkfgD5G8geAUtx1111xxRVXxCc+\n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\nEjny5xe/+EX07t07vvrqq7jooosiIuK1116Ltm3bJhEHANhA370jVLNmzTb6aKARI0astkwaPHjw\nRo0NdcEvf/nLNR71c/rpp8df//rXPCYCoDZIpPw59dRT46CDDoof/OAH1bd8b968efz+979PIg4A\nsBGW3xGqUaNGMXz48BWeGzduXBQXF691jNLS0oj49hbulZWVNZIT6rru3bvHs88+m3QMABKQSPkT\nEbHDDjtERMQ333wTERFt2rRJKgoAkAOVlZUxderUFbaVlJSstG25tm3bxuzZs+OII46I2bNn5yMi\npN6wYcNir732Wunon2HDhil+AOqwRMqfqVOnxtChQ+Ptt9+u/nYvm81GJpNxHj8ApEynTp1Wub1/\n//4xYsSIPKeB9Ovdu3fSEQCoZRIpfy688MI44IAD4rLLLovGjRsnEQEASJjiBwAgPxIpf+bNmxdn\nn312ZDKZJKYHAAAAqDMSudX7QQcdFBMmTEhiagAAAIA6JZEjfyorK6OsrCw6d+4c22677QrPXXHF\nFUlEAgAAAEilRMqfkpKSKCkpSWJqAAAAgDolkfKnrKwsiWkBAAAA6pxEyp+IiH/+858xbty4WLBg\nQTRr1ix69OgRe++9d1JxAAAAAFIpkQs+jxkzJs4+++xo2rRpHHTQQdGsWbM477zzYvTo0UnEAQAA\nAEitRI78ufXWW+PPf/5z7LjjjtXbfvazn8UZZ5wRffr0SSISAAAAQColcuTPp59+GsXFxStsa9u2\nbSxevDiJOAAAAACplUj5s9tuu8Uf/vCHWLp0aUREfPHFF3HFFVfErrvumkQcAAAAgNRK5LSvIUOG\nxDnnnBO77757bLnllrF48eLYdddd46qrrkoiDgAAAEBqJVL+NGvWLO66666YP39+9d2+WrRokUQU\nAAAAgFRLpPyZMGFCbLfddrHDDjtUlz6zZ8+ODz74IPbdd98kIgEAAACkUiLX/Bk6dGhsttlmK2zb\nbLPNYujQoUnEAQAAAEitRMqfjz76KJo1a7bCtmbNmsXChQuTiAMAAACQWomUP61atYpJkyatsO1f\n//pXtGzZMok4AAAAAKmVyDV/ysrK4vTTT4/evXtHq1atYu7cufHAAw/EZZddlkQcAAAAgNRK5Mif\nAw88MG677bb44osv4h//+Ed88cUXceutt8aBBx6YRBwAAACA1ErkyJ+IiJ133jl23nnnpKYHAAAA\nqBMSOfKnqqoqrrnmmujevXt07tw5Ir69/ftdd92VRBwAAACA1Eqk/Lnsssti+vTpceWVV0Ymk4mI\niHbt2sW9996bRBwAAACA1ErktK+nn346nnzyydh0002jXr1v+6fmzZvHhx9+mEQcAAAAgNRK5Mif\nBg0axLJly1bY9vHHH8dWW22VRBwAAACA1Eqk/Dn00EPjN7/5TcydOzciIhYsWBBDhw6Nww47LIk4\nAAAAAKmVSPlz9tlnx3bbbRc9evSIJUuWxCGHHBLNmjWLAQMGJBEHAAAAILUSKX8aNmwYAwcOjMmT\nJ8fEiRPjtddei6OOOirOO++8JOIAAAAApFZeL/i8dOnSuPnmm+Ott96KNm3axOmnnx7/+c9/YtCg\nQfHiiy9Gz5498xkHAAAAIPXyWv4MHTo0ysvLo0uXLvH888/H9OnTY/bs2dGzZ88YOnRobLPNNvmM\nAwAAAJB6eS1/XnjhhRg3blw0adIkTjjhhOjWrVvceeedsccee+QzBgAAAECdkddr/nzxxRfRpEmT\niIho0aJFbLrppoofAAAAgBqU1yN/li1bFv/85z8jm81Wb/v+47333jufkQAAAABSLa/lT5MmTeKi\niy6qfrzVVlut8DiTycQzzzyTz0gAAAAAqZbX8ufZZ5/N2VgtW7bM2VisXa7/vK1ffuXyz9va5Z/1\nK1zWrrBZv8Llc0th894rbNavcFm7wra2P/NM9rvnXAEAAACQKnm94DMAAAAA+aX8AQAAAEgx5Q8A\nAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASDHl\nDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABI\nMeUPAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDFlD8AAAAAKab8AQAA\nAEgx5Q8AAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwB\nAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFKufdIAN1aVLl6ioqEg6Rp3RsmXLmDBh\nQs7Gs375lcv1s3b5Z/0Kl7UrbNavcPncUti89wqb9Stc1q6wrW39Crb8qaioiDlz5iQdgw1k/QqX\ntSts1q9wWbvCZv0Km/UrXNausFm/wmXtah9K9yA7AAAgAElEQVSnfQEAAACkmPIHAAAAIMWUPwAA\nAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/\nAAAAACmm/AEAAABIMeUPAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDF\nlD8AAAAAKab8AQAAAEgx5Q8AAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAA\nIMWUPwAAAAApVj/pAABAYbjwwgvjN7/5zTrtu/XWW9dwGgAA1pXyBwBYpc033zxuuummeP7556Ne\nvXpx+eWXr/Nrs9lsREScdtppUV5eHhMmTKipmAAArIXyBwBYpbvvvjt69OgRxx9//AaPcfPNN8cn\nn3wSjzzySEREVFRUxMCBA3MVEQCAdaD8AQBWqUePHjkZZ+utt44TTzwxIr49Iuj888+PXXbZJaZN\nm5aT8YGI5557Lvbdd99VPtewYcM8pwGgtnHBZwAgbzKZTDRo0CDKy8tjzpw50aFDh6QjQcGpV69e\nHH300XH00UfHSSedFNlsNrp16xYNGjRY5U82m41sNhunnHJK0tEBSIgjfwCARLRu3TrGjh0bhxxy\nSFRUVCQdBwrG2LFjo1evXuv9ulGjRkWrVq1i0KBBNZAKgNrMkT8AwErq18/P90MdO3aMuXPnxpQp\nU/IyHxS6Bx54YIOKn+UuvvjiKCsry2EiAAqB8gcAWMEuu+wS7777btIxgO9p06ZNtG7deqPHueGG\nG2KrrbbKQSIACoXyBwBYQa9evWK77bbL65xt2rSJ4447Lq9zQqHZc889o3PnzjkZa+zYsTkZB4DC\noPwBAKp16tQpLrnkkrzP+8Mf/jBKSkryPi/UVd27d4+nn37ancAA6gjlDwBQK+yxxx6x9dZbR9++\nfaNv376x9dZbJx0JapVZs2bF7NmzczZe9+7dY9SoUVGvnv8SAKSdv+kBgGrvvPNO3H777YnMffjh\nh8eTTz4ZI0eOjJEjR8aTTz6ZSA6orV577bU44ogjcjrmSSedFOPHj8/pmADUPsofoM6rX79+FBUV\n5e3uRlCbffHFF3HyySdHJpOJDz/8MO/z77777iv83qxZs7xngNqsvLw8GjduHJ988knOxtxvv/0i\nm81GNpvN2ZgA1C7KH6DOu/zyy2PevHnRrl27pKNArdK9e/ekI8S///3v2HvvvZOOAbVKZWVlHHzw\nwe7KB8A6U/4AdVJxcXG88sor8corr8R5552XdByolWbNmhWjRo1KNEOLFi1i7NixscMOOySaA2qb\nV155JQ466KCkYwBQIJQ/QJ204447RufOnVe4Ze7222+fXCCohb788sv44IMPko4RRUVFseOOOyYd\nA2qdmTNnxjbbbJOTsd5///2cjANA7aT8AVKva9euMWjQoOrH/fr1i0cffXSl/f72t7/lMxYUhPHj\nx8fChQuTjhGHH3540hEglR566KEYMmRIHHjggTFkyJCk4wBQQ1zdFEi9Aw44IC655JL4+c9/HhHh\n9BFYD8vLn6ZNmyaa48Ybb0x0fkijF154IU466aRYsmRJREQMHjw42UAA1BjlD5BqvXv3jksuuSQi\nYq2njXTs2DEfkaDgTJs2LdH3xwcffBBffvllYvNDbbZs2bKYO3dutGrVKqqqqmLq1KkREdGoUaO1\nvm/333//fEQEoBZQ/gCpNmbMmHXa78knn4wFCxbUcBooTL179070FtA33XRTvPPOO4nND7XZkiVL\n4sgjj4wDDzwwPvvss7jpppsiImKbbbaJX/3qV3H++eev8si95V+MAFA3KH8AIuLFF1+Mjz76KOkY\nUGsdeOCB8fTTT+d93rfffjuuvfbavM8LhWTy5MkxefLkFbZ9/PHHMWzYsLjzzjtXeeH266+/Pl/x\nAKgFXPAZSLVMJuMClpADs2fPjvfeey/v83711VfV1yMB1t/8+fOTjgBALaD8AQDW6p133onevXvX\nilu/AwCwfpQ/QJ03bdq0GDZsWNIxoNZ7+eWXo0OHDknHANbTT3/606QjAJAw5Q+QerNmzYrPP/98\ntc+/8MILsXTp0jwmgsK1ePHiKC0trdE5Pv/88/jFL34RmUwmdtpppxqdC+qCxYsXJx0BgIQpf4DU\nu/POO9d4rZLTTjstj2mg8M2bNy9OPvnkOPnkk2tk/HfffTfuvvvuGhkbAKAuUv4AdcKuu+4anTt3\nXuV2YP18+umncfvtt8ftt98ejRs3jsaNG8e0adOSjgUAwGoof4A6oaqqKl577bXIZDJx/fXXx3XX\nXReZTCZef/31pKNBQausrIzKysro2LFjPPPMMzkZ06lekFuvvvrqStvuvPPOBJIAkBTlD1DnnHnm\n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\n6aSTko5TI5z2lSd33313tG/fPn70ox9FUVFR/Oc//4mIiLvuuivhZACF45VXXontttsuWrRokXQU\n1mD06NE5GWfYsGE5GYd117x583jssceiQ4cOceaZZ8bNN9+c8yNNqJ123nnnuPLKK+OYY45x4XVY\njfr168eVV165zvtfeeWVUVFRER9++KESqJZr0aJF9douXbo0Tj/99DjmmGPinXfeSThZ7jjyp4bV\nr18//vjHP8Zxxx0XnTt3jqKiooj49pD2q6++Opo1a5ZwQtZV+/btI5vNRjabjdatWycdh3UwderU\n6jX7/g+139Zbbx3t2rWLdu3axQ033BDZbDY6d+6s+KnFlq/VMcccs9FjXX/99TFr1qxo2LBhtGvX\nLmbMmBHt2rVzakoNatmyZcyfPz86d+4cm266aXTu3DlGjRoV2Ww2pkyZUv1+bNeuXWy55ZZJx63T\nGjVqFPPnz6+RsRU/sHrZbHa933stW7aMzp07x0svveTvzgKxySabROfOnWP27Nnx9ttvp+azh/Kn\nhrVo0SIuuOCClba///770bNnz1iwYEECqdgQH330UfVFZCdNmhR77713wonYGH379o2IiH79+sWg\nQYNi0KBBse222yaciuW22GKLuO+++2L69Okxffr0VZ5PT+3RtWvXGDRoUE7X6owzzoirrroqrr76\n6pg+fXqUlJTE9OnTY+zYsd6rNWD33XePCRMmrPb50tLS6vfj9OnT4+c//3ke0/F9VVVV8b//+79J\nx4A6Z2Pee82aNYt27drlOBE17cc//nFqPoc67Ssh++yzT8yZMyfpGKyHRYsWxfjx46Nr165RVFQU\nDz30UOy0004KvAJ17bXXxplnnhk77LBDNGrUKCIixowZ40LBtcBdd90Ve+21V5SUlCQdhdUoKSmJ\nRx55pPrxtttuWyOFzKo+bL355puxZMmSnM9V182cOTMWLVoUbdq0SToK6+jBBx+MX//617Hvvvvm\ndNw33ngjdt5555yOCUTsv//+8d577yUdg9WYMWNGDB8+PAYMGLDK7WngyJ8aVlFREZlMJu69996Y\nPHlynHbaaZHJZBQ/BWrw4MGRyWQi4tv2/plnnkk4Eatz2mmnRdu2bVf7fKNGjWLHHXesLn5Izjbb\nbBM/+clPqk/JO/744xU/tVDjxo3jpptuimw2GzNmzIgdd9yx+idfR+KMGTMmzjjjjKiqqsrLfHXJ\n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\nAwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPAAAAQIopfwAAAABS\nTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDFlD8AwEZ76KGHko4AAMBq1E86AABQOzVq1Cja\ntm1b/XjhwoWxaNGi6sdt27aNWbNmVT/OZrOrHevGG2+MESNGxLRp02omLAAAq6X8AQBWqaSkJN58\n883qx88991yMHz+++vGAAQPWeayysrIoKyuLfv36xU033ZTLmMD/2WKLLeKss86KUaNGxfz585OO\nA0AtovwBAFbpwQcfXOHxAQccEAcccMBGjXnNNddERCiAIMfuuOOO2GuvvaJ9+/ZxwgknxJdffhkR\nEYcffnjMmTMn4XQAJM01fwCAFQwePDiy2Wy0a9cu52M3btw4Ro4cGYcffnjOx4a6qF69ejF06NA4\n8cQTo3379hHx7VF7paWlUVpaGu+++25ks9m44oorokOHDgmnBSApyh8AoFrTpk2ja9euNT7PI488\nEn379q3xeSDtLr300rj44ovXut/5558f5eXlMWjQoOjcuXMekgFQmyh/AEiVKVOmxEEHHZR0jILV\nrFmz6NatW17muuaaaxRAsIF69uwZU6ZMiQsvvHC9XjdkyJB4+OGHY4sttqihZADURsofAAreZptt\nFg8++GBks9l4++2346mnnko6EuugcePG0alTp2jYsGHSUaCgNGrUKB588MEoLS3doNcXFRXF4sWL\n4/HHH89xMgBqK+UPAAWvS5cu0bNnz6RjsAHKysriqquuSjoG1EnFxcWx8847Jx0DgDxQ/gBQ8L57\n56izzz47wSSFb+bMmVFaWhqzZs3K25xlZWXxwAMP5G0+KHSvvvpqTsZp165dPPbYY1G/vhsAA6Sd\n8geAgtWiRYv49NNPY/vtt6/eNnfu3OQCpUBlZWVMnTo1SkpK8jpvr1694oYbbnAKGKyDTp065Wys\nli1bxldffZWz8QConZQ/ABSk1q1bx8MPPxxbbrll0lFSa+TIkXmdr6ysLIqLi/M6JyvaYost4sAD\nD0w6BgCQY8ofAArSc889F3vssccK23bdddeE0qTT8OHD8z7nuHHj8j4n37rjjjvipZdecre8AuBW\n7QA1p6SkJJV3I1X+AFAQiouLo0OHDnHbbbdFNpuNtm3brrTP1KlTE0iWXlOnTo0hQ4bkdc527drl\n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\nTToG7VBfXx8f+chH2v36W2+9Nerr66O+vt41uwBKjPIHgEzZ+l+82bkJEybEn/70pw5/n27dusW0\nadMil8uZTxH4/e9/H3vvvXfSMWiHYcOGxQEHHLDH6xxxxBHxj3/8Izp1cgUIgFKh/AEgUzZv3hyP\nPPJI0jFS48Mf/nBB32/z5s2xefPm+PrXvx7nnXdeHH744QV9f0izc845J6/rPfHEE9G3b9+8rglA\ncVL+AJAZP/vZzyIi4oc//GHCSdJl9OjRBX/P73znO3HnnXdGfX19HHTQQQV/f0ijb37zm3ld7/DD\nD4/jjjuu5fdvfetbMWvWrLy+BwDFQfkDQKp169YtRowYEblcLk477bTYvHlzvPbaa0nHSpV58+bF\nq6++msh7V1RUxJo1a6KxsTG6du2aSAZIi29/+9t5X/POO++MHj16xHvf+944+uij47TTTsv7ewCQ\nPOUPAKnUs2fPGD16dDz33HOtLlo8a9asliOA2DVPP/10fP/73080Q2VlZUyfPj2Ro5AgLVauXBmr\nVq3K+7ovvvhirF+/PoYNG5b3tQEoDq7yBkDq1NfXR79+/eJDH/pQ0lHIoyFDhsSQIUPiox/9aFxw\nwQVJx4Gi8+STT8Zpp50WDQ0NHfYe8+bNa/l58ODBHfY+ABSW8qeAOnXqFD169Gi17YUXXog33ngj\noUQA6dGjR4848sgjY86cOUlHyawXX3wxysvLk44RxxxzTLz73e+OV155JekoUHS2niK5cePGDll/\n0KBBERGxbt26DlkfgGQ47atAzj333Lj22mvj2WefbfWYMGFC0tEAito+++wT48aNi8WLFyt+OtCC\nBQvi8MMPjzvuuCPpKHHYYYfFpZdemnSMkrf1s/e+970v6Si8xZYtW+IXv/hFh77Hueee26HrQ9Z9\n/vOfTzoC7bTvvvvGsccem3SMvFP+FMB5550XN998c1xxxRXbPHfVVVclkAggHe655554/PHHY9Kk\nSdG9e/ek42TaI488Es3NzTFp0qSko1AE3vzZe/zxx1u2P/TQQwmmYqvXX389Pve5z8Xvf//7pKMA\nbbj44oujrq4u6RjsposvvjgWLlwY8+bNi/r6+li4cGHSkfLKaV8dbNCgQXHnnXcmHQN4i4MPPjjW\nrFmTdAwi4j3veU+Ul5fHsmXLko5CRDQ0NERtbW1cffXVieaora2N6dOnx5IlSxLNUSq6desWjz32\n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\nN92Ut7UAKD7KHyDT+vXrF/X19Ts8PL6ioiJqamoKmIrtOfvss6Ouri7pGFBydqf8AQDSR/nTwRYv\nXrzT52+77ba4+eabC5QISsuHP/zh2G+//Xa4z89+9rOYMmVKgRLRlr59+8bgwYPj3nvvjXe84x1J\nx4GStGzZsqQjsJvyeZv21atX520tAIqP8qeDDRw4MK644oo2L/Y8e/bsOPbYY+MLX/hCAsmgNEyf\nPn2n+4wcObIASdieo446Kh599NGYO3fuHq3zn//5n/H2t789P6GgBF144YVJR6AdJkyYkJd1vvrV\nr+ZlHQCKk/Kng73yyitx3XXXxXXXXRcHHnhgHHjggbFq1ar485//HOecc0784x//SDoiZNZjjz22\nS/s9+uijHZyE7enSpUs8/PDDeblF+6c+9al429v8swaFcO2117roc5G45pprWt2lrT369u2bpzQA\nFKtOSQcoJU1NTRHhH1golE984hORy+V2ut+xxx4bF1xwQdxxxx0dH4pWBg4cGPvss0/e1tu8eXNU\nVlbG008/nbc1oZSUlZW1+v3zn/98jBo1qtW2P/7xj/HFL36xkLHYgTfeeCMaGxvj5Zdfblcht2zZ\nMtd7AigB/hMpkGnXXnvtTvdZvXq14icBF110UfzqV7/K+7qzZ8+OD3/4w3lfF0rR7bffHieccEKr\nh+KneIwZMyYiIh544IFYtGjRbr++sbExhg4dGq+//nq+owFQZJQ/QKZdffXVse+++8bSpUvbfH7g\nwIFx/PHHFzgVERGnnnpqh6zbt29fR1gCJWHo0KGxbt26WLduXRxzzDG7/fpnnnlmu/8+ApAtTvsC\nMm3Lli3x97//PQ477LCko/AWZ5xxRuy1114xe/bsVtuPPvroeN/73pdQKoD0eOKJJ+Kkk05q12vf\n9773xUsvvZTnRAAUK+UPAIl57bXXtrlV8amnnhrl5eUtv/fs2TO+/e1vFzoaQNH75je/Gd/4xjd2\n+3U/+clP4l//+lcHJAKgWCl/ACgqc+bMafV7WVlZTJ48ORYtWhQVFRW7tMa9994bXbp06Yh4AKk2\nf/78+PznPx9btmxJOgoABeSaPwAUtVwuF5s2bYpDDz00+vbtGw888EC8+uqrO3zNU089VaB0AMna\n3Tsmzps3T/EDUIIc+QNAaqxatSrOOOOMGDJkSOy9997bPH/vvffGOeecE7/73e8SSAeQjIcffjhu\n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\nL46FCxfGXXfdlXQUACi4hx56KG699dakY5S8yy67LGpra/d4ndtuuy0+/elP5yERQLotXLgwpk+f\nHo8//ngsXLgwFi5cGIccckjSsfLKrd5hF+VyuZafBwwYEM8++2zcdtttsXz58gRTAUDHev/73x9H\nHHFEzJgxo2XbRRddFBERjz/+eJx22mmxYcOGpOKVpFwuF3/+85/jn//8Z7zzne9s9zrdunWL2bNn\nR1VVVV5OJwO2td9++8X73vc+/5+hyA0YMCAiInr16tWybdWqVfH+978/1qxZk1SsvHLkD7TT1772\ntVi2bFnSMQCgwwwePDj+8Ic/tCp+3mzQoEFx+umnFzgVEREzZsyI3/72t3lZ6+yzz87LOkBr48eP\nj5kzZ8ayZcti/PjxLQUD6TF79uykI+SN8gf2kFPAAMiiQw45JOrr62O//fbb4X7f+c53YsmSJQVK\nRUeYOHFi0hEgc+bMmRO1tbVx3HHHRUREbW1tHH300QmnopQpf2AXbe9w6E2bNhU4CQB0vNWrV0dd\nXd0O99mwYUO8+OKL8eqrr8Z1111XoGRsdfLJJ0e3bt3ir3/9a7vXOP/88+O1117LYypg//33j8rK\nylbbbrvttrj55psTSkR7VVdXx/jx45OOkReu+QO76IQTTogLL7wwvvrVr0b37t0jIuLaa6+NK6+8\nMuFkAFBYM2bMiN///vexevXqqK+vTzpOSduwYUN897vf3WlRBxRG9+7do76+Pg4++OBW27/whS8k\nlIhdccUVV0RExLhx46K8vDzhNB1D+QO76O9//3tcd911cdddd8URRxwRDz30UEyZMiXpWADQYSZP\nnhw//vGPW37/wx/+EEcffXSsX78+/vnPfyaYDKA47bPPPi2nepEeW49eveCCC1qVPwceeGBmbmqg\n/IHd9MILL8ScOXOirKws6SgA0KE2bNjQ6ktvz549E0xDvv3iF7+In/zkJ0nHgExZunRpXHjhhTFq\n1Kiko9AOVVVV8Zvf/CYiIs4999xoampKOFH+KH8AACCl3vGOd8TIkSOTjgG8ye233x6333570jFo\npxNOOCHpCB3CBZ8BACClXn311fj5z3+edAwAipzyBwAAUiqXy8XTTz8d69ev3+3XnnrqqR2QCIBi\npPwBAIAUmzVrVnz2s5/dpX2XLl0ao0aNcsFugBLjmj8AAJByc+bM2aX9Dj/88Ni8eXPcd999HZwI\ngGLiyB8AAMiA/fbbLxYvXrzd5+fMmRObN2+OiIhNmzYVKhYARUD5AwAAGfC3v/0tzjzzzO3e/esL\nX/hCgRMBUCyUPwAAkBFLly6N6dOnR1lZWVx99dWxZcuW2LLl/2Pv3qO0quv9gX+G25AKpCIojnI3\nYAbU1AyFzOMlPWqIgNVR8xbGLU2ITkthnPGSylG0jEu5UtQyBUrIW5oWBpqZmQUzKPf5OSbirdBQ\nEHl+f3ic48hVfObZs/e8XmvNWjN77/k+b/2sgYf37Mt7ERHx4osvJpwOgKQofwAAIIMuv/zyaNGi\nRfTo0SN+9rOfxbp16+K4445LOhYACVD+AABAhq1atSrOOuusOOWUU2LChAlJxwEgAcofAABoAn73\nu9/FUUcdlXQMABKg/AEAAADIMOUPAAAAQIYpfwAAAAAyTPkDAAAAkGHKHwAAAIAMU/4AAAAAZJjy\nBwAAACDDlD8AAAAAGZZI+XPffffF8uXLIyJixYoVccYZZ8TXv/71um0AAAAA5Eci5c+NN94Y7dq1\ni4iISZMmRb9+/eKwww6LysrKJOIAAAAAZFaLJF709ddfj/bt28f69evjL3/5S/zwhz+MFi1axOc/\n//kk4gAAAABkViLlzx577BE1NTWxZMmS6Nu3b7Rq1SrefvvtyOVyScQBAAAAyKxEyp9Ro0bFaaed\nFs2bN48bbrghIiL++Mc/Rq9evZKIAwAAAJBZiZQ/p512Wpx44okREfGpT30qIiIOPPDAmDx5chJx\nAAAAADIrsUe9v/POO/HQQw/FzTffHBERGzdujPfeey+pOAAAAACZlEj589RTT8UJJ5wQ9957b0yd\nOjUiImpqaqKioiKJOAAAAACZlUj58/3vfz9uvPHG+OlPfxotWrx/5dmBBx4Yf//735OIAwAAAJBZ\niZQ/L774YvTv3z8iIoqKiiIiomXLli77AgAAAMizRMqf7t27x/z58+tte+KJJ+KAAw5IIg4AAABA\nZiXytK/vfe978c1vfjO++MUvxjvvvBPl5eXxu9/9ru7+PwAAAADkRyJn/hx00EHx61//Onr06BFD\nhgyJkpKSmD17dvTr1y+JOAAAAACZlciZPxERHTt2jOHDhyf18gAAAABNQsHKn/Hjx9fd3HlbJk2a\nVIA0AAAAAE1Dwcqfzp07F+qlAAAAAPhfBSt/xowZU6iXAgAAAOB/JXbPnz/+8Y9x//33x5o1a6JD\nhw5x0kknRf/+/ZOKAwCoPrpgAAAgAElEQVQAAJBJiTzt69Zbb42xY8dGu3bt4qijjopPf/rTMW7c\nuLjllluSiAMAAACQWYmc+XPLLbfEbbfdFgcccEDdtkGDBsW5554b5513XhKRAAAAADIpkTN/Ija/\nAfR+++23Q08DAwAAAGDHJVL+fOtb34pLLrkkVq1aFe+8806sXLkyJk6cGBdeeGFs2rSp7gMAAACA\nTyaRy77Ky8sjIuL++++PoqKiyOVyERFx7733Rnl5eeRyuSgqKorFixdvdY3DDz88SkpKCpKXiE6d\nOuV1PfMrrHzOz+wKz/zSy+zSzfzSy/uWdPOzl27ml15ml27bm19R7oPmpYBefPHFHTpu3333beAk\nAAAAANmWSPmTDwMGDIja2tqkYzQZJSUlsWDBgrytZ36Flc/5mV3hmV96mV26mV96ed+Sbn720s38\n0svs0m1780vksq8333wzbr/99li8eHGsW7eu3r4dfdx7bW1t1NTUNEQ8CsD80svs0s380svs0s38\n0s380svs0s380svsGp9Eyp+LLroo3nvvvTjuuOOiuLg4iQgAAAAATUIi5c+zzz4bf/rTn6Jly5ZJ\nvDwAAABAk5HIo94POeSQWL58eRIvDQAAANCkJHLmzzXXXBPDhw+PAw88MPbcc896+8aMGZNEJAAA\nAIBMSqT8ueGGG2L16tVRUlISb731Vt32oqKiJOIAAAAAZFYi5c/9998fDz30UHTo0CGJlwcAAABo\nMhK5589+++0XLVok0jsBAAAANCmJNDCDBg2KUaNGxZlnnrnZPX/69++fRCQAAACATEqk/Pn5z38e\nERGTJ0+ut72oqCgeffTRJCIBAAAAZFIi5c/vfve7JF4WAAAAoMlJ5J4/AAAAABRGImf+vPXWW3HT\nTTfFn//853jjjTcil8vV7Zs3b14SkQAAAAAyKZEzfyoqKqK6ujpGjRoV//znP2PChAmxzz77xDnn\nnJNEHAAAAIDMSuTMn8cffzweeOCB2H333aN58+Zx7LHHRt++fWPEiBEKIAAAAIA8SuTMn02bNkWb\nNm0iImKXXXaJtWvXxl577RU1NTVJxAEAAADIrETO/OnVq1f8+c9/jv79+8chhxwSlZWVseuuu0aX\nLl2SiAMAAACQWYmc+XPllVfGvvvuGxEREydOjNatW8ebb74ZkyZNSiIOAAAAQGYV9MyfRYsWRatW\n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\nowARMWbMmOjevXvSMdgJDzzwQAwfPjzpGOyg66+/PkaNGhURET179ozq6uq4/vrrE06VX8qfBtax\nY8cYO3Zs0jHIk1GjRsXChQvj7rvvTjoKZMrXv/71WLhwYVxyySX1tn9w+vTMmTOjsrJyh9aaPHly\nQ0RsktasWRPz5s1LOkY9H1wO8cFl1N26dUs6UqZUVlZGZWVlzJ8/36ULjdghhxyS9zVd9pWM7T1l\nccqUKbFixYoCpSHffvCDH8TZZ5+ddAx2wOjRozfbNmbMmExdfqn8aWB/+MMftvjbs7fffjtee+21\nBBLxSXTo0CHKysqitLTUZXuQJ+3atYtdd901ysrK4qqrrqp3qc+wYcOirKwsOnTosMPrXXzxxTFk\nyJAGTExj8MFl1A8//HDSUTKjS5cudZ/36NGj7tKFD34eJ02alPfHjLNznnnmmSgqKoqioqKorq6O\nl1566ROv2a5du2jbtm0e0rGjKioqYtCgQVvct3z58robQa9fv77AydhZs2fPjmXLltV9/alPfSpm\nzJgRnTp1SjAV27OtXyT17NmzgEkalvKngW3tvhTf/va3Y8aMGYUNwyc2b968eO2111y2B3lSXl4e\nM2bMiCOPPDLpKKTUKaecknSEzLjjjju2uX/8+PFRXV1doDTsqNLS0rjyyivzstawYcPysg47Zt68\nefHKK69scXv//v23eT8gGqehQ4dG//79686ijIh4+OGH480330w4Gdty7733bnXfXnvtFV/4whcK\nmKbhtEg6QNatXr06ysrKYtasWfX+Qq2qqkowFTvrg7+MW7VqFatXr046DqTajTfeGBdddFHSMUip\npUuXxuDBg10OkUdf//rXd+j/54wZM+Kcc85p+EDssLvuuivOP//8+OxnP/uJ1vnKV74SX/3qV/OU\niu35oPzZa6+96rYtXbo0Tj/99C2WQqTDq6++GhUVFRERMWvWrFi9erXyp5EbNGhQlJWVxT333LPZ\nvmOOOSbWrFmTQKr8U/40sI0bN0ZVVVX06dMn6SjkydKlS5OOAKk3bNgwxU8KFBcX1/tHSWOwZs2a\nePXVV6O0tDTpKJmzcuXK2GeffeLRRx+NiIhWrVpFjx49Njvu7LPPjpqamqisrIxNmzYVOiZb8Prr\nr8e6deuSjkEerF+/XvGTIX7hnw7Lli2LZcuWxZgxY+L666+P4uLiiHj/8ssszdBlXwAUXHV1dSxe\n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\nV9avXx8//vGP46c//WlGxtu2bZvfnwkbPnx43HvvvS6sDlnUrFmzuPbaa+Oaa66JiHS+D5U/QOrU\nrFlzn//gJPumTp0ab731VsYu1lu3bt044IADMjIW++bQQw/N2r6OPvrorO2rKti6detOH3T35RpM\nZM+2bdvi9ttvj9tvvz0KCwvjH//4xz6Nk5eXl+Fk7K2//vWvO93FEMiO4uLiuPbaa+Paa69NOkqF\ncc0foMq7/fbbk45QpZ155pnu0gSQoKuuuirpCFXasmXLYuDAgXHqqacmHQVIMeUPUKV16tQp/ud/\n/ifpGFXaU089FY0bN47GjRu7vXsltjenYWXLnXfeGfPmzUs6BlQaH3zwQQwdOnSvX/fwww9nPgzl\ntmbNmnjooYdi7dq1SUcBUkz5A1QZH374YUyePDkmT54cLVq0iMmTJ8fSpUuTjlXlbdq0KdasWRNr\n1qyJu+66K/Ly8iIvLy969+5dNl8LFy5MOmaVN23atOjTp098+OGHSUeJadOmxaOPPho33nij68/A\n52zbti3mzJkTGzZsKNf2q1atitNOOy02b95cwckASJpr/gCps3Tp0pg4cWKce+65ZctuvvnmmDNn\nTkyYMKFsWffu3ZOIRzmNGzcuxo0bFxHbbxXevn37snXDhw+PRo0a7bD9Y489FtOmTXPx3wr05JNP\nxsaNG6OoqChjF5fdWxMmTIi+ffvG+vXrE9k/VHbjxo2LTZs2xcSJE/e47fe+97344x//mIVUACRN\n+QOkzrp166Jnz55RvXr1smUlJSW7vYUjld+bb74Zb775Ztnzp556quzxsmXL4tBDD43NmzfHtm3b\nlD8VbMKECTFx4sS4++67Y9asWXHUUUdlbd916tSJLVu2ONoH9mDSpElRp06dnZYvXLhwhwt4b9q0\nKZuxAEiQ8gdIpS1btsSWLVuSjkEF+fwfLAcddNAO69yxpuKVlpbGpk2bslaozp07N7797W/7QxX2\nwq7eL4WFhQkkAaAyUP4AAPvk2muvjQYNGpQ9b9asWdxzzz07bff+++/Hf/3Xf33pNp8f84u3Gp89\ne/ZOywAAKD/lDwCwT1588cWdlg0fPnyPr/vKV74SQ4cOLTtKa+vWrVGjho8kAAAVxSctACCrbr31\n1qhbt24cdthhERFxww03JJwIACDdlD8AQNbdeOONSUcAAKgyqiUdAAAAAICKo/wBAAAASDHlDwAA\nAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUP\nAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDFlD8AAAAAKab8AQAAAEgx\n5Q8AAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAA\nSDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKRYjaQD7KsTTzwxCgsLk45RZRQU\nFGR0PPOXXZmcP3OXfeYvd5m73Gb+cpfPLbnNey+3mb/cZe5y257mL6+0tLQ0S1kAAAAAyLKcPfKn\nc+fOUVxcnHSMKqOwsDBeffXVjI1n/rIrk/Nn7rLP/OUuc5fbzF/u8rklt3nv5Tbzl7vMXW7b0/zl\nbPlTXFwcS5YsSToG+8j85S5zl9vMX+4yd7nN/OU285e7zF1uM3+5y9xVPi74DAAAAJBiyh8AAACA\nFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPAAAAQIopfwAAAABSTPkDAAAAkGLKHwAA\nAIAUU/4AAAAApJjyBwAAACDFlD8AAAAAKab8AQAAAEgx5Q8AAABAiil/AAAAAFJM+QMAAACQYsof\nAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBi\nyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPAAAAQIrVSDoAAACwb3r06LHL\n5Rs3bozJkydnOQ0AlZXyBwAAcky3bt1i4MCBeyx/Bg0aFMuWLctyOgAqG6d9AZDTatasGTVq+C4D\nqBpq1KgR9evXjz/96U+7LX4iIurXrx89evSIDz74IEpLS+P666+PmjVrZjEpAJWJ8geAnNSkSZPo\n06dPrF27Np577rmk4wBUuD59+sTrr78eGzZs2OvX3nnnnVFSUhJ9+vSJPn36RK1atSogIQCVla9K\nAchJkyZNihNPPDHpGABZM2bMmIyN0adPn5g+fXrccsst+z0mAJWfI38AyDnFxcU7FD+nn3569O/f\nPxo2bJhgKoDcccopp8SPf/zj6NOnT9JRAMgC5Q8AqfDQQw/F2rVrk44BUGEq4u5dJ598clSr5k8C\ngLTzmx7KqXnz5nHRRRclHQOqvP79+8fBBx+cdAyArHvssccyPubSpUujtLQ04+MCULkof6CcWrRo\nEaNHj47S0tLIz89POg5USQUFBXHsscdG7dq1k44CkHXjxo3LeAG0YsUK5Q9AFeCCz1BOU6dOLXv8\n+9//Po4//vgE00D61KlTJwYOHPil29x99917HOecc86JSZMmZSoWEBFNmzaNZs2axcyZM5OOUuX1\n69cvLrnkkoyNd99990Xt2rXj5z//ecbGBMhljRs3jr59+8aoUaNizZo1ScfJGOUPlFOPHj3imWee\niYiItm3bxve///349a9/nXAqSI/p06dH+/bt93ucd955JwNpgM975ZVX4vHHH1f+VBKdOnWK1157\nLWPj3XnnncofgIgYO3ZsHH300VFUVBQXX3xxzJ49Oy688MKkY2WE076gnH7729/GlVdeGSUlJVGv\nXr1o165dVK9ePelYkPMaNGgQf/7znzNS/EREvPfeexkZB6q6mjVrxoMPPhilpaWxdevWmDRpUrRp\n02aHI2FJxhtvvBH//Oc/Mzbe/PnzMzYWQC4qKiqK0tLS6NWrVxQVFZUt6927dwwZMiThdJmh/IG9\n8OCDD8bixYsjIuKGG26Ipk2bJhsIUuCCCy6Izp07Jx0D+IJ77rknrrjiioiIaNeuXcybNy/mzZsX\nzZs3jw4dOiScrmorKSmJ//7v/97vcYYNGxbDhg2Lo446KgOpAKjMnPYFe+n000+Pr3/962WngAFA\nGg0aNGiXy1u0aBHPP/98fPWrX40NGzZkORWfefbZZ+OSSy6J//iP/9ir182YMSN+8IMfRETEu+++\nWxHRAKiElD+wlxYtWhSLFi2KvLy8pKMAQIX461//+qXrN2/e7A5RCVu/fn387W9/26vy55133okT\nTjihAlMBpMsnn3yS0dNsk+S0LwBS5fvf/37SESDn3X///XH99dfHSy+9tMv1d9xxR2zcuDHLqfii\ngQMHxtChQ8u9fffu3SsuDEAKDRw4MB599NGkY2SEI38ASJXzzjvPnfhgP40ZMyYiIkaOHBkNGjTY\naf3atWuzHYnduO222+Lxxx+P3/72t9GxY8ek4wCkyqhRo5KOkDGO/AEgVRo3bhyNGzdOOgakwoYN\nG6K4uHinn48++ijpaPzLtm3bori4OE444YRo2rRpvPrqq/Hhhx8mHQsgp8yePTvy8vJizpw5ERGx\n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\niLgwhT8iIiIiIiIiIi5M4Y+IiIiIiIiIiAtT+CMiIiIiIiIi4sIU/oiIiIiIiIiIuDCFPyIiIiIi\nIiIiLkzhj4iIiIiIiIiIC1P4IyIiIiIiIiLiwhT+iIiIiIiIiIi4MIU/IiIiIiIiIiIuTOGPiIiI\niIiIiIgLU/gjIiIiIiIiIuLCFP6IiIiIiIiIiLgwhT8iIiIiIiIiIi5M4Y+IiIiIiIiIiAtT+CMi\nIiIiIiIi4sIU/oiIiIiIiIiIuDCFPyIiIiIiIiIiLkzhj4iIiIiIiIiIC1P4IyIiIiIiIiLiwhT+\niIiIiIiIiIi4MIU/IiIiIiIiIiIuTOGPiIiIiIiIiIgLU/gjIiIiIiIiIuLCFP6IiIiIiIiIiLgw\nhT8iIiIiIiIiIi5M4Y+IiIiIiIiIiAtT+CMiIiIiIiIi4sIU/oiIiIiIiIiIuDCFPyIiIiIiIiIi\nLkzhj4iIiIiIiIiIC1P4IyIiIiIiIiLiwhT+iIiIiIiIiIi4MGtNN6Ci+vdfTGxsWk0347LRpIkv\nP/88udK2p/1XvSpz/2nfVT/tv7pL+65u0/6ru3TcUrfpvVe3af/VXdp3dVtZ+6/Ohj+xsWnExKTW\ndDOkgrT/6i7tu7pN+6/u0r6r27T/6jbtv7pL+65u0/6ru7Tvah8N+xIRERERERERcWEKf0RERERE\nREREXJjCHxERERERERERF6bwR0RERERERETEhSn8ERERERERERFxYQp/RERERERERERcmMIfERER\nEREREREXpvBHRERERERERMSFKfwREREREREREXFhCn9ERERERERERFyYwh8RERERERERERem8EdE\nRERERERExIUp/BERERERERERcWEKf0REREREREREXJjCHxERERERERERF6bwR0RERERERETEhSn8\nERERERERERFxYQp/RERERERERERcmMIfEREREREREREXpvBHRERERERERMSF1Zrw57777qvpJoiI\niIiIiIiIuJxaE/707NmzppsgIiIiIiIiIuJynA5/Vq5cyZEjRwCIiopi0qRJ3HnnncXLLtX9999f\nKdsREREREREREZESToc/r732Gn5+fgC88MILdO3alfDwcObNm1euJ5w2bRpr1qwhNze3fC0VERGR\nOsPiAQEdTQR0NNV0U0REREQue1ZnH5icnExwcDC5ubls3bqV119/HavVSp8+fcr1hL179+add97h\n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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "make_plot(img, seg, rec, samples, fs=2)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "TcHaNVj0dGmC" }, "source": [ "# Plot samples from the global latent only\n", "When sampling from the global latent, all but the most global latent scale are constrained to their means." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 16249, "status": "ok", "timestamp": 1568134290653, "user": { "displayName": "Simon Kohl", "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mAV5aCJQ_5RldkCyse6s0nQKEvpBRdNbA80iGeZEw=s64", "userId": "12229574298416150258" }, "user_tz": -60 }, "id": "K_L4aKY4dKqj", "outputId": "672fc01e-bf6e-4873-90e8-31c434785e03" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABH8AAAmlCAYAAABQWRQLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvbuPdNlV/r+qurvu3f1eZ2yPhzG2BbYwCXLiCCGQEATA\nX4AQETIhMiBBAMhIyBYIyREBRCREJAgiAwI5skQK6ZjB45n31pfquvSl6hfM7zn9qafXPlX99un5\naqxaUqurTp2zL2uvy7PWvpzWcrlcxpa2tKUtbWlLW9rSlra0pS1taUtb2tKWfiyp/f+6AVva0pa2\ntKUtbWlLW9rSlra0pS1taUtbuj/aJn+2tKUtbWlLW9rSlra0pS1taUtb2tKWfoxpm/zZ0pa2tKUt\nbWlLW9rSlra0pS1taUtb+jGmbfJnS1va0pa2tKUtbWlLW9rSlra0pS1t6ceYtsmfLW1pS1va0pa2\ntKUtbWlLW9rSlra0pR9j2iZ/trSlLW1pS1va0pa2tKUtbWlLW9rSln6MaZv82dKWtrSlLW1pS1va\n0pa2tKUtbWlLW/oxpt3/1w14Xfr2t78dR0dHERGxXC5juVzeuGexWFTXS/foeqvVqv50nf9F+j0j\n3uv36Tcvn/dl7Svdq+u6pra32+2Vfl1dXcX5+XnMZrM4OzuL+Xxe8YX3ez3607UnT57E3/zN3xT7\nflv6+Z//+XjvvfdWrrF/7Xa7qrvdbke73V7pq/q3WCyqtvOz98nL5LWdnZ1otVqxWCzi8vJy7Tio\nDc4jjsHu7m4sl8u4uLiIq6urYnvUp2xMFovFSvleP8eO5eu+nZ2d6p7PfOYz8W//9m9pv25Lf/d3\nfxfT6TTa7XZcXV3F1dVVtFqt2N3djd3d3Wi1WnF5ebmif4vFovrONvqYlXgvGeA9qlPXr66uijrO\ncnZ3d2M4HMaTJ0/i4cOHsbOzE/P5vBon8X1vb6+qp9vtxmAwiFarFWdnZzGZTFbq09i57Pm4Uv/P\nz8+rz/ota3+r1Yperxe/+Iu/uGZkNqM/+7M/i5cvX8ZyuYzd3d3Y29uLTqcTvV4vut1u9bnT6USn\n06nG1NvkvKV+kgf+u19fLpexs7NTfSYvaZtZjstLqX1eX8l+1/VDbcjsS8YL3ttqtWIwGMSv/Mqv\npPXeln7t134t3n///Rvtpl5R5mij6tpNu9Xr9WKxWMRsNqtkVCRdq/OTsqnSefGCz/EZtS8bQ7/O\n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\nAACoMMkfAAAAgArbuuwANtc73/nOWLx4cdlh9Bljx46NBx54oGnlqb/Wamb9qbvWU3/tS921N/XX\nvvRb2pttr72pv/al7trbpuqvbZM/ixcvjmeeeabsMNhM6q99qbv2pv7al7prb+qvvam/9qXu2pv6\na1/qrvdx2xcAAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABA\nhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8A\nAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY\n5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFTY1mUHAAD0fm9605vi85//fJefOfHEE1sUDQAA\nb4TkDwBQaI899oj58+dHRES/fv1ixIgRXX7+f/7P/xkREW9/+9tj4cKFPR4fAADd47YvAKDQAQcc\nECNHjoyRI0duMvETEfXP/v73v49arRZXXXVVDB06tAWRAgDQFVf+AAAbOe+88+Jzn/vcFpXxkY98\nJIYPHx4vvfRS4ftHH330FpUPAED3SP4AUClr1qyJiIgBAwaUHEn7+vznPx//+q//2pSyDj744Ibv\nZbeJRUR0dnbGW9/61qZMEwCADbntC4DKOPTQQ6N///7Rv3//OOyww8oOpy19+tOfjnPOOSc6Ojp6\nfFpZXfXv3z/22muvqNVqUavV4plnnok99tijx6cP7erwww+v/2TbTXd+jjvuuLJDB6AkrvwBoBJm\nzJgRF110Uf3/f//3f3f1zxv0zW9+M0455ZSyw4hddtklrr/++nj00UcjIuKaa66J6667ruSooHf4\n7Gc/G+eff/5mffeyyy6LnXfeOWbOnNnkqADo7SR/AGhr/fv3j4MOOihmz569wevZ7V90zxe+8IVe\nkfjJTJo0KSZNmhQRr1/lEBHxu9/9Lvbcc88yw4JSTZs2bbMTP5nPf/7zsXTp0rj44oubFBUA7UDy\nB4C2tmTJkth22203en3YsGElRENPGjlyZEydOjV++9vflh0KtLXZs2fHunXr4pJLLik7FABaxJg/\nALStGTNmSPI0wa677hof/vCHyw5jk8aOHRuHHHJI2WFAac4444ymlTV37tw499xzm1YeAL2b5A8A\n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\n197UX/vSb2lvtr32pv7al7prb5uqv45arVZrUSx1b3/72+P++++P/v37119bu3Zt7LfffvEf//Ef\nrQ4HAAAAoLJKGfB5yJAh8dvf/jb++q//uv7aI488EoMHD+52Ge985ztj8eLFPREeBcaOHRsPPPBA\n08pTf63VzPpTd62n/tqXumtv6q996be0N9tee1N/7UvdtbdN1V8pyZ+TTz45/vmf/zn+7u/+Lnbc\nccf44x//GHfffXfMnDmz22UsXrw4nnnmmR6Mkp6k/tqXumtv6q99qbv2pv7am/prX+quvam/9qXu\nep9Skj+HHHJITJkyJW699dZYunRpvPnNb44TTjghxo8fX0Y4AAAAAJVVSvInImL8+PGSPQAAAAA9\nrLTkz5133hm/+MUvYtmyZZGOOX3++eeXFRIAAABA5fQrY6IXX3xxnH322bF+/fr4+c9/HiNHjowH\nHnggRowYUUY4AAAAAJVVSvLnhhtuiMsvvzzOOOOM6N+/f5xxxhlx6aWXGg0cAAAAoMlKSf68/PLL\nsfvuu0dERP/+/WPt2rUxderU+MUvflFGOAAAAACVVcqYP7vssks8/vjjMWHChJgwYUJcffXVMWLE\niNhmm23KCAcAAACgskpJ/nzqU5+KF198MSIiPvOZz8Rpp50WK1eujLPPPruMcAAAAAAqq+XJn/Xr\n18eAAQPiLW95S0RETJ06NW6//fZWhwEAAADQJ7R8zJ9+/frFiSeeGAMGDGj1pAEAAAD6nFIGfP6b\nv/mb+PWvf13GpAEAAAD6lFLG/Nlpp53iuOOOi3e/+92x4447RkdHR/29U045pYyQAAAAACqplOTP\n6tWr4z3veU9ERCxZsqSMEAAAAAD6hJYnf9auXRtf/vKXIyLil7/8ZdRqtfp7e+21V6vDAQAAAKi0\nliZ/fvjDH8bDDz8cX/va1yIiYvr06bHttttGrVaLVatWxWc+85mYNm1aK0MCAAAAqLSWDvg8b968\nmD59ev3/AQMGxD333BP33ntvXHHFFXH99de3MhwAAACAymtp8mfx4sUxceLE+v/jxo2r/z1x4sT4\nz//8z1aGAwAAAFB5LU3+rFy5MlauXFn//9///d/rf7/66qvx6quvtjIcAAAAgMprafJnwoQJ8eCD\nDxa+d//998f48eNbGQ4AAABA5bU0+XP00UfHrFmz4o477oj169dHRMT69evj9ttvj3PPPTeOPvro\nVoYDAAAAUHktfdrX+9///liyZEl89rOfjbVr18bIkSPjxRdfjP79+8dJJ50UH/jAB1oZDgAAAEDl\ntTT5ExHxsY99LI488sh4+OGHY9myZTFy5Mh461vfGsOHD291KAAAAACV1/LkT0TEsGHDYr/99itj\n0gAAAAB9SkvH/AEAAACgtSR/AAAAACpM8gcAAACgwkoZ8wcA6P3mzp3b5fvnnHNO/PGPf2xRNAAA\nbC7JHwBgIw899FC8/e1v7/IzH/7wh2P9+vWbLGvBggWx7777Nis0AADeIMkfAKBu2LBhcemll24y\n8RMRMWLEiG6Vuc8++0StVotPfOITcdlll21piAAAvEHG/AEA6nbdddf48Ic/3CNlf+tb34orr7wy\nDjnkkB4pHwCAYpI/AEDL/K//9b/i+uuvjzVr1sSaNWvirLPOKjskAIDKk/wBAFpqq622iv79+0f/\n/v3j3HPPjVqtFu9973vLDgvaxuGHH17/qdVq3f457rjjyg4dgJIY8wcAKN11110Xd9xxR8P3P/Wp\nT8XixYtbGBH0Tp/97Gfj/PPP36zvXnbZZbHzzjvHzJkzmxwVAL2d5A8AULptttkmDj/88IbvH374\n4fG73/0u9txzzxZGBb3LtGnTNjvxk/n85z8fS5cujYsvvrhJUQHQDtz2BQAAfcjs2bPjhBNOKDsM\nAFpI8gcAANrAGWec0bSy5s6dG+eee27TygOgd5P8AQCANrDXXns1tbyzzjrLFUAAfYTkDwAAtIHb\nbrut6WXOnTs3ZsyY0fRyAehdJH8AAKANfOc73+mRcmfPnh333ntvHHDAAT1SPpt27LHHxr333lv/\n2XXXXcsOCagYyR/oplqtFhdccEFstdVWZYcCfd6OO+4YtVpto5/+/fuXHRo9aMqUKXHBBRfE1lt7\nWCl903XXXRc33XRTj5S9//77xw477NAjZdO1yZMnx+WXXx77779//efpp5+ORx99NIYPH152eEBF\nSP7AG3DaaafFbrvtVnYY0Geddtppcdppp8Xvf//7skOhJKeddlqcd955cfTRR5cdCpRi3rx5ZYdA\ni0ycODGuu+662G677coOBagAp86gmw4//PC44YYb4sYbb4w999yz7HCgz7nhhhvisMMOKzsMeoHP\nfvaz8eqrr8aAAQPi29/+dtnhQEtdeeWV8dhjj8X8+fPLDoUmueaaaxq+d9BBB8V9990XU6ZMaWFE\nQBW58ge66cYbb4yTTz45dt9993jkkUdi2223LTsk6BMmTJgQs2fPlvhhA4MHD47LLrssarVa2aFU\nytZbbx0TJkyIzs7OqNVqcdFFF8WECRNiwoQJ9nu9yK9+9auyQ6CJJk+evEXvA3SH5A+8AbNnz46n\nn346pkyZEh/72MfKDgcq7+Mf/3g89thjnkQDLfLVr341HnvssZg0aVJERJx88snx2GOPxWOPPRZX\nX3218UegJMcff3zZIQBtTvIHgF5p+vTpcdFFF5UdBvQpp556asP3DjroIFecQEm++c1vxoknnlh2\nGEAbk/wB+oz8k6FmzpxZdkh9XkdHR8ycObPwyV3f+c53YtCgQWWH2Od0dnbG8ccfH6tWrSo7FEqw\n4447xsMPPxwPP/xw4fvjx4/vsceNA40NHDgw5syZE3vssUfZoQBtSvIHNsPixYvjvvvuKzsMaHsX\nXHBBzJo1q+wwyPnWt74VTz75ZNlhUIIlS5bE2972tnjb294WF1xwQf31008/vf7zz//8zyVGCH3L\nbbfdFqeffnr9/9NOO63EaIB25mlfsBn+x//4H7FkyZKyw4C219UtJpTr3e9+d/z3f/932WFQos99\n7nP1Wy8XL15ccjT0tFtuuSVuueWWssPok97znvfEHXfcERERCxcujPe85z1x5513Rq1Wi2nTpsXL\nL78cv/rVr+KOO+6I6dOnS8ACm0XyB96gv/qrvyo7BDZTR0dH2SGQmDhxYtkh0IU//vGPsdtuu8U9\n99wTu+yyS9nhFHrmmWfiwAMPLDuMynrttdckffqIBx98MN7//veXHUaf9eSTT8YDDzwQERH77bdf\nRGzc37zzzjv1Y4At4rYvAEpx3nnnlR0Cm/DUU0/F9773vbLDaOjyyy+Pp59+uuwwoK19//vfj/33\n37/sMPq0p556Kvbbb7964gegJ7jyBwBo6Ktf/WocddRRve6qx+233z5effXVssOAtnfnnXfG+vXr\nyw4DgB4m+QMANPTqq6/GxIkT49Zbb62/9r73va+UWFasWBHz58+P4447Ll544YVSYoDeYPXq1Zu8\nBeiBBx6Ifffdt/C9BQsWxN577x0rVqzoifAA6IXc9gVAKS6++OI49thj47vf/W7ZodANBx10UP3n\nrLPOKiWGj370o3HQQQfFH/7wh1KmD+1k+vTpha8vXLgwDjvsMIkfgD5G8geAUtx1111xxRVXxCc+\n8YkYNGhQDBo0KD71qU+VHRbdcN5558WXvvSlHp/OyDJKJwAAIABJREFUW9/61vq6MWjQoLj55pt7\nfJpQdVOnTo2FCxeWHQYALea2LwBKtW7duli3bl1ERFx00UUxevTo2GOPPSIi4l3veleMHDmyzPAo\nUKvV4pFHHombbropIl5/cltWZ83w8ssvx3HHHRe//vWvm1Ym9GU33XRTXHHFFfGjH/2o7FAAKInk\nDwC9yplnnln/+73vfW/cdtttJUZDI9dcc01cc801ERExefLk+PnPfx5jx45tStnTpk1T77CFnn32\n2TjyyCMjIuK6664rORoAyua2LwB6rdtvvz06Ojq6/bN27dqyQ+6TOjs7Y+edd44pU6Zs9lODarVa\nzJw5Mzo6OiR+oAmWL18e1113ncQPABEh+QMANElnZ2dMmzYtfvCDH7zh7371q1+Nc889tweiAgDA\nbV8AQNPceOONceONN8bVV1+90XuXXHJJ7LLLLvX/3//+99f/vuWWW1oSHwBAXyT5AwA0XVEyZ9dd\nd42XXnopIiL+9m//1hOHAABaRPIHAGiZbbbZpuwQAAD6HGP+AAAAAFSY5A8AAABAhUn+AAAAAFSY\n5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAA\nAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+\nAAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABA\nhUn+AAAAAFSY5A8AAABAhUn+AAAAAFTY1mUHsLn23nvvGDt2bNlh9Bk77bRTU8tTf63VzPpTd62n\n/tqXumtv6q996be0N9tee1N/7UvdtbdN1V9HrVartSgWAAAAAFqsba/8eec73xmLFy8uO4w+Y+zY\nsfHAAw80rTz111rNrD9113rqr32pu/am/tqXfkt7s+21N/XXvtRde9tU/bVt8mfx4sXxzDPPlB0G\nm0n9tS91197UX/tSd+1N/bU39de+1F17U3/tS931PgZ8BgAAAKgwyR8AAACACpP8AQAAAKgwyR8A\nAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgw\nyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAA\nAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACpP8\nAQAAAKgwyR8AAACACpP8AQAAAKgwyR8AAACACtu67AAAgPYyatSoOOGEE97Qd+6555647777eigi\n6LsGDRoUp59++iY/d/vtt8dDDz3UgogA6I0kfwCATRo/fnzcdNNNERExcODAmDBhwhv6/pIlS2Kf\nffaJJ598sifCgz7pW9/6Vuy3336xxx57bPKzJ5xwQrzlLW+JpUuXtiAyAHobyR8AoKFRo0bFDjvs\nEAsWLNiicsaMGROTJk2S/IEm6OjoiM997nPx8Y9/vNvf2XHHHWPSpEmSPwB9lDF/AICGTjrppC1O\n/GR+/OMfx/HHH9+UsqAvGzBgQHzpS196w9+7++674+ijj+6BiADo7SR/AICWufDCC+ORRx6JRx55\npOxQoE+aM2dOfRu85JJLyg4HgBZx2xcA0NBzzz0Xq1evjoEDBzalvEGDBsWUKVMiIuKxxx6Lgw8+\nOCIiVq9e7ZYw6KbujPHTyNChQ+vb4JQpU+Khhx6K73//+80KDYBeypU/AEBDc+bMiUWLFvVI2RMm\nTIgFCxbEggULYv78+bH//vv3yHSgSo488sh4+OGHm1beIYccEv36OSQAqDotPQBQujFjxsS1114b\nu+22W9mhQK921FFHNbW8Qw89NH772982tUwAeh/JHwCgVxgzZkwsWrRIAgi68J//+Z9NL3Py5Mlx\n/fXXN71cAHoPyR8AoEtz585t6fTmzZvX0ulBOznllFM260lfm7LHHnts0VhCAPRukj8AQJfmzJkT\nhx56aMum18ppQTs699xzm17mpEmTYtKkSU0vF6AdjB8/vv4kxBtvvLHscHqEp30BAJv0+OOPt2Q6\nkyZNiieeeKIl06LY9ttvH6NHj97o9SVLlsQLL7xQQkTkrV69Oo499tj43ve+19Ryr7/++ujo6Ghq\nmQDtYODAgRs8CXH27Nlx2mmnxZo1a0qOrHkkfwCAXuPEE0+MT37yk2WH0Scdc8wxscsuu8S+++4b\n73vf+zZ6/9Zbb4358+fHOeecU0J0ANA6M2bMiIioVJ/EbV8AQK+RdbYy6WXY6U9VL8ku0/Tp02PW\nrFmFiZ+IiIMOOihmzZoVjzzySBx55JEtjo68m2++OebPn9/UMk899dSmlgfQzvJ9knYn+QNUVmdn\nZ9RqtYY/s2fPjgEDBpQdJpCTPe1rt912i8cffzymTJmy0c+hhx5qGy7JlClTYrvttis7jD7vxRdf\njH333bepZf7hD39oankA7Wrp0qUxbty4ssNoKskfoM+aMWNGfP3rXy87DCBn/vz5MXPmzHjooYe6\n/NyUKVNim222aVFUAEBfMWfOnHjyySfLDqOpJH+APq1ql3NCFYwZMyZmzZpVOOhw6u67747nnnuu\nRVFB7/Otb32r7BAAKufxxx+PSy65pOwwms6Az0BlTZ48OZ544omGl2wuXbo03vGOd7Q4KmhPq1ev\njueeey5GjRpVdigREbFq1SqJnybbb7/9Nvi/s7MzRo0aVa/zJUuWxPPPPx+//OUv49JLLy0jRHKa\n+WSuiy66KG644YamlQfQTjo7Oyv/tEPJH6DS9tlnn7j22mvjgAMO2Oi9Kl7OCT3liSeeiLlz58bZ\nZ59ddigR8Xo8VTwr15tMnjw5DjzwwDjwwAMjIuK2225r+gDDbJmPf/zjsWzZsjj99NO3qJwvfvGL\n8fnPf75JUQHQG0n+AJW2dOnSOPLIIwuvVli6dGkJEUH7mjt3bnzkIx+p3ACINHbPPffEPffcU3YY\ndOErX/nKFiV/zjzzzPjyl7/cxIgA6I0kf4DKW7p0qUQPNMHSpUtjwYIFvSL5s2jRorJDgF5h2bJl\n8aEPfSjOOuusmDRp0hv67s9//vM477zzeigyAHoTAz4DAN32wQ9+sPTbrebOnRuHHHJIqTFAb3L1\n1VfH5MmT48ILL3xD3/u3f/u3HooIgN5G8gcAeEM+/elPx5QpU0q5+mbOnDlx6qmntny60A5OP/30\n+MY3vtGtz+6zzz7xgx/8oIcjAqC3kPwBAN6Q1atXR2dnZ4wfPz4WLFjQsqduzZs3L2bMmBGrV69u\nyfSg3bz22mtx3nnnxaOPPtrwM6+88kocddRR8dBDD7UwMgDKZswfAGCzpU+EGj16dJxwwglbVN7c\nuXMbJpO+8IUvbFHZ0Bd87GMfiz322KPh+5/85CfjmmuuaWFEAPQGkj8AwBbJngg1cODAmDNnzgbv\nzZs3r1sDRE+ZMiUiXn+Euyt7oGe8+93vjrvuuqvsMAAogeQPANAU2e1gqfHjx2/0WkTEuHHjolar\nxZNPPhn/+I//GE8++WSrwoRK+9rXvhZ77733Rlf/fO1rX5P4AejDJH8AgB41efLkjV476aSTolar\nxdy5c0uICKrtiCOOKDsEAHoZyR8AoOXyt4cBANBzPO0LAAAAoMIkfwAAAAAqTPIHAAAAoMIkfwAA\nAAAqTPIHAAAAoMIkfwAAAAAqTPLn/7F371FW1XX/wD9T3FIfUBEwGDS5mMCoqWVJmLAUtSwURLo8\nWboMEhh1iVYmD6MzmpiJtwTUfFDSssAUwjtewAi6eCl1BkPQyNFkwBteAkHn94c/5nEEReDM2bO/\n83qtNatz9jnnu9+LT1OHN/sCAAAAkDDlDwAAAEDClD8AAAAACVP+AAAAACRM+QMAAACQMOUPAAAA\nQMKUPwAAAAAJU/4AAAAAJEz5AwAAAJAw5Q8AAABAwpQ/AAAAAAlT/gAAAAAkTPkDAAAAkDDlDwAA\nAEDClD8AAAAACVP+AAAAACRM+QMAAACQMOUPAAAAQMKUPwAAAAAJU/4AAAAAJEz5AwAAAJAw5Q8A\nAABAwpQ/AAAAAAlT/gAAAAAkTPkDAAAAkDDlDwAAAEDCWmUdYGuVlpZmHaFFKfSft/kVVyH/vM2u\n+Mwvv8wu38wvv3xvyTe/e/lmfvlldvm2uT/zkvr6+voiZQEAAACgyJz2BQAAAJAw5Q8AAABAwpQ/\nAAAAAAlT/gAAAAAkTPkDAAAAkDDlDwAAAEDClD8AAAAACVP+AAAAACRM+QMAAACQMOUPAAAAQMKU\nPwAAAAAJU/4AAAAAJEz5AwAAAJAw5Q8AAABAwpQ/AAAAAAlT/gAAAAAkTPkDAAAAkDDlDwAAAEDC\nlD8AAAAACVP+AAAAACRM+QMAAACQMOUPAAAAQMKUPwAAAAAJU/4AAAAAJEz5AwAAAJAw5Q8AAABA\nwpQ/AAAAAAlT/gAAAAAkTPkDAAAAkDDlDwAAAEDClD8AAAAACVP+AAAAACRM+QMAAACQMOUPAAAA\nQMKUPwAAAAAJU/4AAAAAJEz5AwAAAJCwVlkH2FoDBgyI2trarGO0GKWlpbFgwYKCrWd+xVXI+Zld\n8Zlffpldvplffvnekm9+9/LN/PLL7PJtc/PLbflTW1sby5cvzzoGW8n88svs8s388svs8s388s38\n8svs8s388svsmh+nfQEAAAAkTPkDAAAAkDDlDwAAAEDCMrvmz2uvvRbPPPNMvPHGG422H3TQQRkl\nAgAAAEhPJuXPLbfcElVVVbHddttFu3btGraXlJTEfffdl0UkAAAAgCRlUv5ceumlcfnll8chhxyS\nxe4BAAAAWoxMrvnz9ttvx4ABA7LYNQAAAECLkkn5M3LkyJg6dWq88847WeweAAAAoMXI5LSv66+/\nPlatWhXXXntt7Ljjjo1emzdvXhaRAAAAAJKUSfnzs5/9LIvdAgAAALQ4mZQ/Bx54YBa7BQAAAGhx\nMrnmz7p16+KKK66IQw89NPbee+849NBD44orroi33norizgAAAAAycrstK/HHnssKisro2vXrvH8\n88/HlClT4vXXX4+zzz47i0gAAAAAScqk/Lnrrrti9uzZsdNOO0VERI8ePaJv375x9NFHK38AAAAA\nCiiT077q6+u3aDsAAAAAWyeT8ufII4+M0aNHxx/+8IdYtmxZPPjggzF27Nj48pe/nEUcAAAAgGRl\nctrXD37wg5g6dWpUVVVFXV1ddO7cOY466qgYM2ZMFnEAAAAAkpVJ+dOmTZs47bTT4rTTTsti9wAA\nAAAtRtHKn7/+9a/xuc99LiIiFi1a9IHvO+igg4oVCQAAACB5RSt/Kisr47bbbouIiPHjx2/yPSUl\nJXHfffcVKxIAAABA8opW/mwofiIi7r///mLtFgAAAKBFy+RuX6NHj97k9vLy8iInAQAAAEhbJuXP\nn//8501u/8tf/lLkJAAAAABpK+rdvi6//PKIiFi3bl3D4w2effbZ6Nq1azHjAAAAACSvqOXPCy+8\nEBER9fX1DY83+OQnPxmnnHJKMeMAAAAAJK+o5c/EiRMjImK//faLESNGFHPXAAAAAC1SJtf8adOm\nTTz55JONtj355JMxa9asLOIAAAAAJCuT8ufyyy+PT37yk4227brrrhtdBwgAAACAbZNJ+fP666/H\nDjvs0Gjbf/3Xf8Xq1auziAMAAACQrEzKn549e8bdd9/daNvcuXOjZ8+eWcQBAAAASFZRL/i8wZln\nnhmjRo2KO++8M7p37x7/+te/YtGiRXHNNddkEQcA2AKdOnWK0aNHb9Fn5s2bFw8++GATJYKWq127\ndvHDH/5ws++bO3duLFq0qAiJAGiOMil/PvvZz8Ztt90Wt912W/z73/+OffbZJ8aPH7/RdYAAgOah\nV69eceutt0ZERNu2baN3795b9PlzzjlH+QMFdvXVV8fBBx8cffr02ex733jjDeUPQAuWSfkTEdG1\n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\n+d6Sb3738s388svs8m1z88tt+VNbWxvLly/POgZbyfzyy+zyzfzyy+zyzfzyzfzyy+zyzfzyy+ya\nHxd8BgAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAA\nABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAA\nAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8A\nAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASFirrAMAAPlxwQUXRLdu3bbo\nM9/97nebKA0AAB+F8gcA+EATJkyICRMmNDxv1apVlJSUbNEa3/zmN6OqqirOP//8QscDAOAjUP4A\nAJvUvn372HvvvaN169bbtE7r1q3jvPPOi9deey1qampi7ty5BUoItG7dOoYMGRIREbvssktcddVV\njV4/9dRT4/nnn4/HHnssnnrqqSwiAtAMKH8AgE26+eabY/DgwQVb77LLLotXX301Ro4cGTNnzizY\nutBSTZgwIT73uc/F1772tQ98zxVXXBER0VD+1NTUREVFRbEiAtBMKH8AgI1UV1dH3759C75uhw4d\nYsaMGQ372G+//WLdunUF3w+k7nvf+15UVVV95Pfvs88+sc8++8Sxxx4bdXV1cfXVV/vdA2hB3O0L\nAMhEv3794q233oqzzjor6yiQK23bto1f/OIXW/35n//85/HWW2/FYYcdVsBUADRnyh8AIFMTJ06M\nO++8M771rW9lHQValF//+tcKIIAWQvkDAGTuyCOPjF/96lfxhS98Idq3b591HGgROnXqFHPnzo3O\nnTtnHQWAJqb8AQCajUWLFsXixYvjgAMOyDoKtBgrVqyIww8/POsYADQh5Q8AsJHvfOc7me27a9eu\ncdRRR2W2f2iJRo0alXUEAJqQ8geA3OrQoUOUlJRkHSNJDz/8cKxYsSKz/VdWVkafPn0y2z80dy+/\n/HJB1zv22GNj5MiRBV0TgObDrd4ByJVDDjkkPvvZz0ZExLBhw+LOO++M//znP3HnnXdGTU1NxunS\nsu+++8Ytt9wS/fv3zzoK8B5r166NcePGxXXXXVfQda+55pptuosYQF517NgxTjjhhEbbrrvuunjp\npZeyCdQElD9F9NBDDzV6ftlll8WNN96YURq21O677x6/+93vIiJi8eLFcfzxx2ecCFqehx56KLp1\n6xa77rprw7YNxUR5eXn07t071q9fn1W85KxYsSKGDx8eCxYsiB49ehR9/zNnzow1a9bE1Vdf7S+k\n8D5z5syJP/3pT/GFL3yhoOs2xZoAzd38+fOjX79+jbadeOKJUVZWllGiwlP+FMFOO+0UCxYsiL59\n+zbafsMNN8T9998fzz//fEbJ2BLt2rVruABp27ZtY6eddir4IdfAu1q1ahV77LFHRET06NEj7rrr\nrs1+5lOf+lTsueeejv4psH//+9/x5JNPZlL+bPgSds0110RtbW3ceeedRc8AzdWLL74Yq1evLvi6\n+++/f8HXBGju3l/8bNj2+OOPx957751BosJzzZ8m1r59+/jNb36zUfGzwbhx44qciK314osvxvz5\n8yMiYuedd3YtCiiwdu3aRUVFRVRUVMRPf/rTWLJkSSxZsuQjFT8bVFdXN2HClqs5XHz5jjvuiJNP\nPjnrGABAC9KpU6f40pe+lHWMgnDkTxNr3779h9468/e//30R07AtVq1aFcOHD4+OHTvGmjVrYvny\n5VlHYgvMmTMnevXq1Wjbz3/+85gyZUpGiXi/v//977Hnnntu8zqXX355nHbaaQVIRHMzduzYuOqq\nq7KOAc3GSSedFM8++2zWMQCS1aVLlxg4cGA8+OCDWUfZZo78aWK1tbVxwgknxJtvvrnJ15cuXVrk\nRGyLVatWxT/+8Q/FT44MHz486uvr46tf/WrstddejX4mT54c9fX1WUds8XbeeedYuHBhQYqfiIhu\n3boVZB2an7KysqioqMg6BjQbtbW1BV/zb3/7W8HXBCB7yp8imD59eowZMyYuvvjihm21tbXxwx/+\nsEnO1Qb+z8yZM7OOwIdo1apV3HjjjXHQQQdlHQUgl84999yCrnfggQcWdD2APLjkkks2uf2FF16I\ne++9t8hpmobTvopk+vTp0apVq7j88ssjImLdunWxYsWKjFMBZOvjH/94fPnLX846BkBuXXHFFQUr\ngFxXC2ippk2btsnr8X7mM59J5u/tjvwpovXr10dtbW3U1tYm818gACiWN954I/71r39lHQOalZdf\nfjmGDRsWCxYs2KZ1zj///Lj66qsLlAogX6qrq+Okk06KBQsWNPzsscceSf29XfkDJO0nP/nJh75+\n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\nXUamP5XRQZHUQlc6kJaoeTAXYGCimQyXtPYAACAASURBVFaKIqZhKjBDchNy5KZppimD4v79Uc5x\n5DbCnv3s/czrtdZei3n23t/nTZ/2OPPmuURtbW0cfvjh8f7777fIviCtMpnMdr3va1/7Wnzta1+L\nMWPGROfOnWPdunVZTgZAvnK3LwAgEWVlZbFhw4a49NJLk44CBaN///5ZWWft2rVxwgknZGUtAPKf\n8gcASNT48ePjN7/5TQwbNizpKJD33nrrraytdc899yiAAFoJ5Q8AkLgBAwbElClTIpPJxB577BHF\nxcVJR4K89Pzzz2dtrY4dO8ajjz4anTp1ytqaAOQn5Q8AkFfefPPNmDZtWnzuc59LOgq0CmvXro0v\nf/nLSccAoAUpfwCATZxxxhmJ7n/gwIHRpUuXRDNAvmqJU7XOOeecrK8JQP5Q/gAAm3juuedi7dq1\nSccgRyorKyOTyUQmk4mamppo27Zt0pHYit///vcxYsSIrK55yimnxNlnn53VNQEKTadOnaJNmzax\n++67Jx0l65Q/AMBmHXrooTF37tykY5BjlZWVUVZWlnQMtmHhwoWxYsWKrK552223xUUXXZTVNWm+\nb33rWzF69Og46qijko4Crc5ee+0Vo0ePjvnz58f48eNj2rRpseeeeyYdK6vaJB0AAMhPa9eujYqK\nipgzZ04ccMABOd//tGnTYv369RERMWTIkHj55ZdznqE1+OxnPxuXXHLJFp+/77774t13343hw4fn\nMBXbMm/evFi8eHF07949q+ted911ceONN2Z1TbbtnHPOiZtuuinat28fq1atitWrV8cRRxyRdCxo\nNWbPnt34Dx/f//73IyLiiSeeiPLy8iRjZZUjfwDIa7169YpevXrF8uXLG09L+eRj9uzZ8dnPfjbp\nqKm0evXq6NGjRyL7Lisriz59+kSfPn1i+fLl0a1bt0RypF1RUVG0a9euybbnn3++8fM1ePDgOP30\n0yOTyUTfvn2jpKQkoaR8Un19fdbXbNu2bdx1111ZX5et69q1a7Rv377xz3369IkFCxYknApah27d\num32iNeysrJ46aWXUnMEkPIHgLzyrW99K6qqqhofixcvjsWLF8f++++/xff069cvvvGNb+QwJUmY\nNWtW0hFS6a233oqxY8c267VPPvlkPPnkk9GnT58WTkVznHXWWXH99dcnHYMd1LFjxzjuuOM2u71f\nv34JJILWZeDAgVt87sADD4xRo0blME3LUf4ArcIDDzwQixYtavKorKxMOhYf06FDh1i0aFHU1NRE\ndXV146O5xo8f7yK1KderVy+f2zzQvXv3mDVrlqPt8sQPf/jDpCOwgzp16hT9+/ffZHvnzp03ux3I\nrpqamqQj5ITyB0i1ioqKyGQyMXDgwDjooIOaPGpqaiKTySQdkYjo0aNH/P3vf4+DDjoodt111+1a\no2vXrllORb5p165dHHzwwVFcXJx0lNSZOHFizJkzp9mv79KlS+y0kx8j88EhhxyS1fXef//9OPPM\nM7O6JltXW1u72X/seO+992LNmjUJJILWZfr06UlHyAkXfAZSbdq0adt8zUUXXeTilgmbOHFi0hEo\nEAcccEDstttujReChtbsrLPOip///OdJxyALHn300fjnP/8Z3/ve92LBggUxf/78qK2tjTvuuCPp\naJB6H/1j8easWbMmfve73+U4UctQ/gCt3j333JN0hFZtyJAhWbumwbJly2K//fbLylrkp6eeeir+\n9re/JR0jlU455ZRYu3Zts1572WWXxVtvvdXCidiWoUOHZn3NJO7sx7++tz311FPxi1/8It577714\n991344MPPkg6FrQaJ5xwwmZLnsMOO6zZ/23Md8ofILXuvvvuZr0uLd/QC9Vuu+2WtdN49t1336ys\nA63RunXronPnznHfffdt9XXHHntsjhKRS6+//noMGTKkRe4gRvP5mQSS8fvf/z7OOuusGDFiRBx+\n+OHx/PPPx/Dhw1P1mVT+AKk1fPjwOP3007f6mquvvjpHaciFCy+8MOkIqTVu3Li4/PLLE82watWq\neOihhxLNkHbr1q1T7rRSw4cPj8cffzzpGACJmTx5ckyePDlOPfXUuPfee5OOk3Wu1Aek2l577bXF\n2+Bed911n+puUuS/SZMmJR0htX75y18mHSF69+4d8+bNSzoG5I2KioqsrPP5z38+Hn744aysBVDo\n0lj8RCh/gJR744034pJLLomioqK47bbb4owzzohu3bpFUVFRXHrppbFx48akI7Z6d955Z4wfPz4e\ne+yxHVpn4cKF7t7WgrZ0N5pcWLp0aXTr1s01ZuAT3n777cbvnc8++2w88cQTn+r9r7/+enzpS19y\nRymAVsBpX0Crce655yYdgS247LLLYpdddolhw4ZFRHzqu5ssWLAgBg0a5OKYLWzmzJmxYsWKnN59\npr6+PioqKuKvf/1rzvYJhWTAgAExbNiweOihh2KXXXaJV155pdnvHTZsWGruYgPA1il/AMgLGzZs\niDvvvDMimp5i1Jxbevfp0yfef//9lorGv73wwgvxwgsvxPz58+O5555rsf3U1tZGnz59IiIik8nE\nhg0bWmxfUOg+/r2zpKSkWe+54IIL4rbbbouGhoYWTAZAPnHaFwB5p6GhofFRVFS0yePnP/95k68V\nP7n15z//ufF/+xkzZsQ3v/nNxj8vWrRou9ddtGhR7LvvvlFeXt44f8UPNF99fX0MGjQoZsyYEY8+\n+mjj9hkzZjQ+ioqK4uabb1b8ALQyjvwBoOCcffbZSUfg3wYPHtzkz2VlZdG7d++YOnVqs94/derU\nmD59ekT864gft5mGHTNz5syYOXNm7L777jFgwICIiJg2bVrCqQBImvIHAMia2traqK2tjaKioqiq\nqoqqqqomzy9cuDAOO+ywhNJB6/H2228rfQBo5LQvAKBFjB07Ntq0adPkofgBAMg95Q8AAABAiil/\nAAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASDHlDwAAAECK\nKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPAAAA\nQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDFlD8AAAAAKab8AQAAAEgx5Q8A\nAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASLE2\nSQfYXkceeWSUlJQkHaPV6Nq1a1bXM7/cyub8zC73zK9wmV1hM7/C5eeWwuazV9jMr3CZXWHb1vyK\nMplMJkdZAAAAAMixgj3yp2/fvlFfX590jFajpKQk5syZk7X1zC+3sjk/s8s98ytcZlfYzK9w+bml\nsPnsFTbzK1xmV9i2Nb+CLX/q6+tj5cqVScdgO5lf4TK7wmZ+hcvsCpv5FTbzK1xmV9jMr3CZXf5x\nwWcAAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPAAAAQIopfwAAAABSTPkDAAAA\nkGLKHwAAAIAUU/4AAAAApJjyBwAAACDFlD8AAAAAKab8AQAAAEgx5Q8AAABAiil/AAAAAFJM+QMA\nAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUkz5\nAwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPANBEx44do7S0NDKZ\nTGQymRg4cGAccMABjc+fdNJJjc9t7XHzzTdHaWlplJaWxt57753g3wgAoHVrk3QAACB/dOzYMaZO\nnRr9+/dv3PbAAw/E2rVrY+LEiRERUV1d3ay1Ro0aFaNGjYqIiMceeyyGDh0ar7/+etYzAwCwdcof\nAKDRU089Fb169dpke+fOnZtd+mzO8ccfH3Pnzo2FCxfG4MGDdyQisAULFizYZNvAgQNj5cqVCaQB\nIJ8ofwCAiIg44IADNlv8ZMtHa++9996OAIIs2G+//aJr167x9NNPb/E1K1asaPzz8ccfHy+//LIy\nCKAVUv4AABHxr9O7WlqvXr1i6tSpMXTo0KisrGzcPnbs2BbfN6TFzjvvHJdffnkMHz48evbs2ez3\nPfbYY7FixYq444474vrrr4/169e3YEoA8onyBwDIqY9OAfv4UUbKH2i+Nm3abPdpmN27d4/q6uo4\n9dRTo3fv3llOBkC+crcvACAiIsrKynK2r0+eXralu4l9fDvwL9k4Yqe0tDSefPLJ6NChQxYSAZDv\nlD8AQOLmzp0bVVVVUVVVFffff3+T7f369UswGaRX375944477oiddvIrAUDa+U4PADQaNGhQIvv9\n6G5inzyVpXPnzk1uOw9E9OnTJ2trDRo0KObPn5+19QDIT8ofAKDRzJkzY9SoUVFXV5d0lEbV1dVR\nWlqadAzIG7W1tVldr6ysLKZPn57VNQHIL8ofAKCJmpqaKCsri0mTJn3q9z7++OPx2muvtUAqoCWV\nlpYqWQFSTPkDQEHq06dPLFiwIBYsWJB0lNS66KKLPlUBtGTJkhg6dGgcffTRO3z6WE1NTZSXl+/Q\nGpBWGzZsiCuuuCKra/bu3TsefvjhrK4JUIh+9atfJR2hRSh/cqxjx45RWloa+++/f9JRAApOaWlp\nTJ48OTKZTMybNy/Ky8ujvLw8MplMXHrppUnHS52GhoaorKxs9ilgDQ0N8dprr8XSpUtjyZIl273f\nJUuWRE1NTXz44YeN2+rq6mLx4sWOTsiR/fffP3r06BEdO3aMXXbZJek4fEImk4na2tp45513srru\nfvvt5/MFtEofv9PooEGDIpPJxMCBA5OOlVVtkg7QWpxzzjnRpUuXOP7446N///6xatWqqKioiKef\nfjrpaJBa5513XnTs2DEiIiZOnBivv/56k+ePO+64qK2t3WQ7+WWvvfaK888/PyJik4sBf9z48eOj\nffv2ceWVV+YqWqsxceLEuOWWW7b5uo4dO0ZVVVVERHTq1Gm799erV6/NFk4f337eeefFT3/60+3e\nB1t29NFHx/Tp06NNmzZRW1sb8+fPj7/97W/x6KOP+rklj8ycOTPmzp0bX/7yl7O67osvvqjwA1qd\nj99p9CMPPPBAun7eyBSobt26ZSKiIB4jRozIvPvuu5v8HVavXp3p1KlT4vma8+jWrVurnV8aHtmc\nXyHMrmfPnpkFCxZk3nvvvcbcixcvbnx+5syZmQULFmTWrl2bWbx4cWbBggWZkSNHJp7b/P7v0blz\n58yCBQsyCxYsyCxevPhT/R2Tzp7W2eWb9957r8U/t2maX3MfnTt3zqxevXqzf4fVq1dnFixYkHjG\nXM8un+eX7b9nJpPJbNiwIVV/r3ydXZof5le4j9Y8uy3Jxc8buZqfI39yYO+994727dtvsr1Lly7R\npo0RQLb17t17k2uF9OrVK0pLS2PUqFFx8sknN27/6OiESZMmxezZs2PRokU5zcr/+eIXv5iVowpK\nSkqivr4+C4n4yAEHHJB0hE0UFxfHpEmTor6+PmbNmpV0nNRYs2bNFp/r0qVLdOnSJf70pz/Fl7/8\n5XjzzTdzmIzNWblyZdIRAFKtuLh4h45mzieu+ZOgRx55JN5+++2kY0DqbO6wzYh/XTOksrIyx2lo\njtNOOy1rp5PcdNNNWVmH//PAAw8kHWGL8jlbWh1xxBHxzW9+M+kYAMCnoPzJgTvuuGOzRxMof6Bl\n7Ohdhsitb3zjG+k5lxoAAPKQ8icHXn/99ejdu3cUFRU1efz4xz9OOhqk0syZM6OoqCh69OiRdBS2\noV27djFjxoz4zGc+k3QUICI+//nPx9q1a7f6mieeeEJhm0deeumlrK31yiuvuNgz0CotW7Zss9vv\nv//+GDt2bI7TtAzlD5A6VVVVUVVV5a40AJ/SmjVr4pRTTonVq1dv9vkJEybEnXfemdtQbNVRRx2V\nlXXq6upiwIABWVkLoNAcffTRMXv27CbbJk6cGN/4xjcSSpR9rjYMpM7Wbge+JTU1NbF8+fIWSAO0\npI9fwJ3seOqpp+LYY4+N4uLiTZ576aWX4oMPPkggFVvyj3/8I8aNGxeXX375Dq0zYMCAeOWVV7KU\nCqCwrFu3LoYOHRodO3Zs3LZ06dIEE2Wf8gcg/vUNv6GhIekYwKdw5ZVXxq9//eukY6TSlg5/J/9s\n3LgxrrjiirjiiivipZdeigMPPPBTvf/VV1+N7t27K/WAVm/dunWxbt26pGO0GKd9AakzadKkT/X6\ndevWbXKYJ5DffG5hU//93//9qV5fXV0dX//61xU/AK2A8gdInYsuuijKy8sbH1srg04++eQ45phj\n/BKZkA0bNsQVV1yRdAy2IYlTq2pqaqK8vHyLd+9T/sCm1qxZE+Xl5Zu9y+zHXX311VFeXh5XXXVV\nvPjiizlKB0CSnPYFpE5DQ0PU1tY2fl1ZWRmVlZUJJmJLMplMjBs3LsaNG9c4s+7du8euu+66Xest\nWrQoKioqshmR+Nc578uWLcvJHfSWLVsWPXv2bPy6trY2ioqK4te//nXj/k888UTX6ILN+OCDD6K2\ntjZ69+6ddBQA8ozyB4C8UFZWFhER3/72t2O//faLiIhzzjknPv/5zzfr/TNnzlT8tKCjjz66sUS9\n8sorW2w/J5544ma3n3TSSS22TwCAtFP+AJBXJk+e3Pjnu+++u/GOQ7NmzYru3btv9j3l5eXx6quv\nxsaNG3MRsVVat25dXHXVVRERMW3atIiIuP/+++PDDz9scmrW+eefH+edd9527cNd9wAAWobyB4C8\n9fE7Du2///4JJuHjPjpF7+OnZ338uYaGhmjXrt0mzy1btiwWLlwYjz766CanYn505BcAANmn/AEA\nsqampiYiIm655ZZNnjvxxBMbL0T70esAAGh5yh8AIKtqamri8ccf32S7U7oAAJKh/AEAsu7jd9wD\nACBZOyUdAAAAAICWo/wBAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY\n8gcAAAAgxZQ/AAAAACmm/AEAAABIMeUPAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAA\npJjyBwAAACDFlD8AAAAAKab8AQAAAEgx5Q8AAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAA\nAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+\nAAAAAKRYm6QDbK8jjzwySkpKko7RanTt2jWr65lfbmVzfmaXe+ZXuMyusJlf4fJzS2Hz2Sts5le4\nzK6wbWt+RZlMJpOjLAAAAADkWMEe+dO3b9+or69POkarUVJSEnPmzMnaeuaXW9mcn9nlnvkVLrMr\nbOZXuPzcUth89gqb+RUusyts25pfwZY/9fX1sXLlyqRjsJ3Mr3CZXWEzv8JldoXN/Aqb+RUusyts\n5le4zC7/uOAzAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDFlD8AAAAA\nKab8AQAAAEgx5Q8AAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAAIMWUPwAA\nAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY8gcAAAAgxZQ/\nAAAAACmm/AEAAABIMeUPAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjyBwAAACDF\nlD8AAAAAKdYm6QAAAMCn061btzjiiCMav7766qujtLR0k9ddcMEFsWrVqpg/f34sWbIklxEByCPK\nHwAAKBAXX3xxHHnkkZuUP1vyk5/8JCKisfypq6uLqqqqlo4JQJ5R/gAAQAEYMmRIXH/99dv13kMO\nOSQOOeSQOOWUU2LMmDHRuXPnWLduXZYTApCvXPMHAABambVr18YJJ5yQdAwAckT5AwAABeDJJ5+M\nuXPnZm29e+65RwEE0EoofwAoeHvssUfjAyCt1qxZE8uWLcvaeh07doxHH3002rZtm7U1AchPyh8A\nCtaxxx4bI0eOjDfffLPxAZBmZ5xxRtx2221ZXfPcc8/N6noA5B/lDwAF6ZBDDol77703Jk2alHQU\ngJy64IILsrrezTffHGPHjs3qmgDkF+UPAAWnS5cu8eKLL0bXrl03eW7PPfdMIBFA7jQ0NMSIESOy\nuuaYMWPi7LPPzuqaAOQPt3pPwLe//e2YPHly0jH4lEaPHt345x//+McJJoHW7bjjjov7779/i8/f\ndtttUVFRkcNEALm3cOHCWLFiRXTv3j1ra952223xmc98Jm688casrQlQKI4++ug46qijGr++4447\n4o033kgwUXYpf3Jo3rx5ERFRVlYWlZWVERHx1a9+NV577bUkY9EMU6ZMiWHDhjV+fdhhh8Xw4cMT\nTASt00EHHRT33ntvdOjQIekokGpTpkyJL3zhCxERMXjw4PjrX/+acCI+ad68ebF48eKslj8R//oH\nrj322COuvPLKrK4LkM969OgR06ZNa3JU+YgRI6K8vDzBVNml/Glhbdq0iXHjxsUPfvCDJtv79OkT\nERFf+MIXlD8FoLS0tMnXp59+erzwwguOAIIWUFJSEu3bt2+y7YILLohRo0Y16/2O+oHt169fv5g9\ne3aTbStXroyIiOuuuy5uv/32WLJkSRLR2IyvfOUrsWTJkujZs2fW1iwqKsp6oQSQ75YuXbrJtrKy\nsliwYEEcfPDBCSTKPuVPC+vSpcsmxc/HPfnkk1FUVJTDRAD557TTTosePXpExL9Oje3WrVvCiaB1\n+mTx83GXXHJJXHLJJfGtb30r7rrrrhymYmv+67/+K1WnJQDkk44dO0a/fv3iiSeeSDrKDlP+QDMM\nHjw4Xn755aRjQCoNGjQobr311thtt92SjgI0w8SJE6OhoSHuvffepKMQEW+99VaMHTs2qqqqko4C\nkDqdO3eO/v37p6L8cbevFvb+++/Hq6++usXnFy5cmMM0bK8VK1bE/vvvH6tXr46IiHfffTfWrVuX\ncCoofO3atYtf/epXWS1+pk+fnrW1gE3tuuuuscceeyQdg3/78MMPY+3atVlb7/33348zzzwza+sB\nFLL33nsv1qxZk3SMrFD+tLC1a9fG4MGDN3vq16xZs5pcTZz8tmLFihgyZEj84Ac/iPPOOy/uvvvu\npCMBAGTV//t//y/pCAA5N2HChM1uX7ZsWdx22205TtMynPaVA88++2w8++yz8ctf/rLJ9rfeeive\neeedhFKxPZ566ql46qmnko4BAC3iyCOPjGeeeWarr3nmmWf8A0hKjRw5Mm699dakYwDk3OTJk+N7\n3/veJttPOOGEBNK0DOVPDtXX1ycdASCvrF+/PutrnnLKKXHKKafEfffdl/W1Ie2effbZKCoqittv\nvz0OPPDAzb7m2GOPzXEqtuarX/1q1NTU7PA611xzjeIHaLVqa2ujqKgo7r777sY7Hg4fPjyrp9Um\nTfkDQOp85zvfUf7ADjjrrLOSjkAzPfTQQzu8xoUXXhg/+clPspAGoLANHz486QgtRvkDQCJa8lbR\nAwYMaLG1AfLFtGnTdniN888/PyZOnJiFNADkMxd8BiARLX03mQ0bNrTo+gBJ2WmnneKGG26IioqK\n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\nceaZZ+Y4Fc0xbNiwuPHGGz/Ve5588smYOXNmCyUCKAwDBw7c4nMHHnhgau4mq/wBWo2ePXvGokWL\nYtGiRUlH4WMGDRoUt956a1RXV0d1dXV069Yt6Ujkqc6dO0f//v2TjpFq3/ve97b5mm9/+9s5SML2\nmDBhwqd6/dlnn91CSQAKR01NTdIRckL508IWLly4Q88DO6a4uDh++tOfRiaTiSVLlsRBBx0UBx10\nUGQymchkMlFaWpp0xFatqKgoDj744Nhtt92ytub06dOzthb5p7q62uc2Yf369YuRI0cmHYPNqK+v\nj6KiovjlL38ZdXV1m33NO++8E88//3x89rOfdZFogGg9Pzu65k8LO/roo2PkyJFx4YUXxj777LPJ\n81/5ylcSSAWtR48ePeLcc8/d4vOjR4+O73znOzlMxMftsssuUV1dnXQM4N+uvfbauOyyy7b6muXL\nl8cf//jHHCViewwbNiz23HPPOOusszZ5rr6+Pn75y18mkAogP1VUVGzx2oZr1qyJ3/3udzlO1DKU\nPy3s7bffjhtuuCF+8YtfRNu2bTd5fu3atQmkgtZjW9+szzrrLOVPynz1q1+Nr33ta/HQQw8lHQUK\nTlVVVUTEVgug+vr6eOGFF3IVie30xhtvxA033JB0DICCcMIJJ2z294bDDjssNb+zK39yJC3/h4FC\ns2rVqujSpcsWn+/du3cO0/BJH93GO5t23XXXOPzww5U/KbVy5cp47733ko6RWhs3bozLL788unTp\nEgceeOAmzw8aNChef/31BJIBQMv5/e9/H2eddVaMGDEiDj/88Hj++edj+PDhqfo9XvkDpNoZZ5yx\nxWtrPfjgg7FmzZocJyIXrrnmmhg3blzSMVJl3LhxcfnllyeaYdWqVVFRURErVqxINEdrsLnThQAg\nzSZPnhyTJ0+OU089Ne69996k42SdCz4DqfaXv/wl9tprr3jppZeabN9rr71iyJAh8eabbyaUDApL\nPlwjpHfv3jFv3rykYwAAKZbG4idC+QOk3MaNG+ONN96Igw46KIqKihofb7zxhlNHUu6EE05IOkKq\nvPPOO7Fs2bJE9r106dJ45JFH4q233kpk/wAAhU75A0BiRowYEbfffnuLrO2aP9m1cuXKqKioiFWr\nVuV0v/X19VFRUeHumAAAO0D5A0Bi7rzzzjj33HOjuLg462vvvvvuWV+ztXvhhRdi//33jz59+rTo\nfmpra6O4uDiKi4ujR48e8eKLL7bo/gAA0k75A0CiNm7cGA0NDU1Oy9t7771jxowZMWPGjO1a85ln\nnomGhoYsJyUiYsOGDfHnP/+5cVYzZsyIb37zm41/XrRo0XavvWjRoth3332jvLw8GhoaoqGhITZs\n2JDF9AAArZO7fQGQd/72t7/F4MGDIyJiyJAhjdunTp26zfc+88wzUVFR0WLZaOqjOX3057Kysnj4\n4YejpKSkWe+fOnVqTJ8+PSL+dcRPfX19i+QEAGjNlD8A5LVp06Y1/rmoqCgi/nX9mX322afJ60aM\nGBF33313TrOxqdra2th3330jIqKqqiqqqqqaPL9w4cI47LDDkogGANBqKX8AKDjdunVLOgLNMHbs\n2Bg7dmzSMQAAWj3X/AEAAABIMeUPAAAAQIopfwAAAABSTPkDAAAAkGLKHwAAAIAUU/4AAAAApJjy\nBwAAACDFlD8AAAAAKab8AQAAAEgx5Q8AAABAiiVS/syaNSuWLVsWERHLly+P0047Lc4444zGbQAA\nAABkRyLlz0033RQdOnSIiIjrr78+DjnkkPjP//zPqK6uTiIOAAAAQGq1SWKnb7zxRuy9997R0NAQ\nzz33XPzkJz+JNm3axBe/+MUk4gAAAACkViLlz5577hkrV66MxYsXx8EHHxy77LJLvPfee5HJZJKI\nAwAAAJBaiZQ/lZWVMXjw4Nh5553jxhtvjIiIp59+Og466KAk4gAAAACkViLlz+DBg+OrX/1qRES0\nb98+IiIOPfTQmDBhQhJxAAAAAFIrsVu9r1+/Pn7729/Gz372s4iI+OCDD2Ljxo1JxQEAAABIpUTK\nn2effTYGDBgQDzzwQEycODEiIlauXBlXXXVVEnEAAAAAUiuR8ufaa6+Nm266KW6//fZo0+ZfZ54d\neuihMX/+/CTiAAAAAKRWIuXPq6++GkcddVRERBQVFUVERNu2bZ32BQAAAJBliZQ/PXr0iCeffLLJ\ntrlz58aBBx6YRBwAAACA1Erkbl+XXnppnHvuudG/f/9Yv359VFVVxR/+8IfG6/8AAAAAkB2JHPlz\n2GGHxa9//evo2bNnnHLKKVFSUhLTp0+PQw45JIk4AAAAAKmVyJE/ERGdO3eOs88+O6ndAwAAALQK\nOSt/Lr744saLO2/N9ddfn4M0AAAAAK1Dzsqfbt265WpXAAAAAPxbzsqfUaNG5WpXAAAAAPxbYtf8\nefrpp+PBBx+MdevWRadOneLrX/96HHXUUUnFAQAAAEilRO72dccdd8T3vve96NChQxx33HGxxx57\nxOjRo2Py5MlJxAEAAABIrUSO/Jk8eXLcddddceCBBzZuO/nkk2PEiBHx7W9/O4lIAAAAAKmUyJE/\nEZteAHrfffdt1t3AAAAAAGi+RMqf7373u3HZZZfFihUrYv369fHyyy/HmDFj4oILLogPP/yw8QEA\nAADAjknktK+qqqqIiHjwwQejqKgoMplMREQ88MADUVVVFZlMJoqKimLRokVbXOPII4+MkpKSnOQl\nomvXrlldz/xyK5vzM7vcM7/CZXaFzfwKl59bCpvPXmEzv8JldoVtW/MrynzUvOTQq6++2qzX7bPP\nPi2cBAAAACDdEil/sqFv375RX1+fdIxWo6SkJObMmZO19cwvt7I5P7PLPfMrXGZX2MyvcPm5pbD5\n7BU28ytcZlfYtjW/RE77evvtt+MXv/hFLFq0KN59990mzzX3du/19fWxcuXKlohHDphf4TK7wmZ+\nhcvsCpv5FTbzK1xmV9jMr3CZXf5JpPy58MILY+PGjfGlL30p2rVrl0QEAAAAgFYhkfLnhRdeiGee\neSbatm2bxO4BAAAAWo1EbvXep0+fWLZsWRK7BgAAAGhVEjny54c//GGcffbZceihh8Zee+3V5LlR\no0YlEQkAAAAglRIpf2688cZYs2ZNlJSUxDvvvNO4vaioKIk4AAAAAKmVSPnz4IMPxm9/+9vo1KlT\nErsHAAAAaDUSuebPvvvuG23aJNI7AQAAALQqiTQwJ598clRWVsbpp5++yTV/jjrqqCQiAQAAAKRS\nIuXPlClTIiJiwoQJTbYXFRXF73//+yQiAQAAAKRSIuXPH/7whyR2CwAAANDqJHLNHwAAAAByI5Ej\nf9555524+eab409/+lO8+eabkclkGp97/PHHk4gEAAAAkEqJHPlz1VVXRV1dXVRWVsbf//73uOKK\nK+Lzn/98fOtb30oiDgAAAEBqJXLkz1NPPRUPPfRQfO5zn4udd945TjjhhDj44INj5MiRCiAAAACA\nLErkyJ8PP/wwdt9994iI2HXXXeMf//hHdOzYMVauXJlEHAAAAIDUSuTIn4MOOij+9Kc/xVFHHRV9\n+vSJ6urq2G233aJ79+5JxAEAAABIrUSO/Lnmmmtin332iYiIMWPGRHFxcbz99ttx/fXXJxEHAADg\n/7N370FS1Wf++J9RQLIVxSg4wI4KAuowGI3guhJUiAZdYzCIYNYsUWKhomgKSTaJyqzjRhONl5QV\n8LJRk9VgCRhhVTQgARUxFy9RYQiIq+iogHgJMauD4Pz+yNf5gVzFM336fOb1quqqmb48/a56qqF5\n0+c0QLJK+smfhQsXRrt27WL//fePiIi33norLr/88li6dGl84QtfiC5dupQyDgAAAEDySvrJnyuu\nuCJWr17d/PvFF18cL730Unz961+P559/Pn7yk5+UMg4AAABA8kpa/rzwwgvRr1+/iIhYs2ZNPPro\no3H11VfHN77xjbj22mtj7ty5pYwDAAAAkLySlj/r16+Ptm3bRkTEn/70p+jYsWN07949IiK6dOkS\na9asKWUcAAAAgOSVtPzp2bNnPPDAAxERMXPmzDjiiCOab1u5cmXz178DAAAAkI2SnvD5O9/5TowZ\nMyYuvfTS2GmnnWLy5MnNt82cOTMOPfTQUsYBAAAASF5Jy59+/frF3Llz46WXXopu3brFZz/72ebb\njj766DjhhBNKGQcAAAAgeSUtfyIiPvvZz0afPn02uX6//fYrdRQAAACA5JX0nD8AAAAAlJbyBwAA\nACBhyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGEl/6p3AAAgG8OGDWv+edq0aZvcfsEFF8Rr\nr70WERH3339/vP/++yXLBkD5UP4AAEDBDBo0KM4777yNyp/Nuf7665t/njlzZjz55JNRW1vb0vEA\nKDMO+wIAgALZdddd47e//e02i5+PO+GEE2LChAnR1NQUe+21VwulA6AcKX8AAKBA1qxZ86lnrFy5\nMo499tgM0gBQBMofAABohSZPnqwAAmgllD8AANAKderUKWbPnu0QMIBWQPkDAAAFcvPNN2c6b+XK\nlTF48OBMZwJQXpQ/AABQIBdccEHmM88666zMZwJQPpQ/AABQMG+//Xam84YNGxajR4/OdCZAEaV6\nKKzyBwAACqSxsTEGDx4cL730UqZzb7755hg3blymMwGKYM8994zx48fH+PHj45lnnonx48fHHnvs\nkXesTLXJOwAAAOWhsrIy7r///k2u79evXw5p2Jonnngili5dGt26dct07pVXXhnXXXddpjMByt3D\nDz8cNTU1zb9fffXVMWrUqOjTp0+OqbKl/Cmhtm3bNv8F/fzzz+cbBgBgA1VVVbHffvtF3759N7mt\nqakpIiKOPPLImD9/fqmjsQXHHXdc826yVFlZGStXrsx8LkC52rD42fC6JUuWxBFHHBFvvfVWDqmy\n5bCvErrmmmti6dKlsXTpUsdUAwBl5c4774yHH354q/d59NFHo7a2drMFEWlo27ZtXHXVVXnHACgL\n+++/f4wdOzbvGJlQ/pTQ+eef3/zz2WefnWMSAIAdU1dXF4cddljeMfh/Dj/88LwjAFAAyp8Sevrp\np5svjp0HAMrJ0qVLt/u+N9xwQ+y+++4tmIbt0aNHj/j973+f6cwPPvggTj/99ExnApA/5/wpoUMP\nPTTvCAAAm3XmmWfGt771re26769//et47733WjgR2zJp0qTMZ/7gBz/IfCZAUa1YsSIeeuihvGNk\nwid/AACIiO0/hGj27NnR2NjYwmnYlm984xuZz7zmmmsynwlQ7o499tjNXn/IIYfEggULSpymZfjk\nDwAAERHxhz/8IU477bQ499xzt3ifI488soSJ2JrVq1dnOmv48OGZzQMokjlz5sSZZ54Zo0aNar5u\n5MiRSX3zofIHAIBmd955Z9x55515x6DERo4cGfPmzcs7BkBubr311rj11lvzjtFiHPYFAAAF1bNn\nz0/1+PPOOy/23HPPePDBBzNKBEA5Uv4AAEBBvfDCC1FRUREVFRXxyCOPfKLHXnHFFTFp0qR46623\nWigdAOVC+QMAAAn4l3/5l5gyZcp23Xfs2LFx8cUXt3AiAMqFc/4AAEAC/u///i9OO+20+OY3vxnv\nv//+Zu/Tvn37iAjf1gbQyih/AAAgEevXr4/169dHRUVF3lEAKCMO+wIAAABImPIHAAAAIGHKHwAA\nAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhyh8A\nAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcof\nAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHK\nHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBh\nyh8AAACAhLXJO8COOvzww6OqqirvGK1G165dM51nf6WV5f7srvTsr7jsrtjsr7i8byk2r71is7/i\nsrti29b+KpqamppKlAUk3xdtAAAgAElEQVQAAACAEivsJ38GDBgQDQ0NecdoNaqqqmL+/PmZzbO/\n0spyf3ZXevZXXHZXbPZXXN63FJvXXrHZX3HZXbFta3+FLX8aGhpi+fLlecdgB9lfcdldsdlfcdld\nsdlfsdlfcdldsdlfcdld+XHCZwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAA\nAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8A\nAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/\nAAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQp\nfwAAAAASpvwBAAAASFibvAMAAMXSs2fPuOeee7Z5v4kTJ8aNN95YgkRARERlZWU89NBDG1134okn\nxvLly3NKBEC5UP4AANulU6dO8fjjj0ePHj226/433HBD3HDDDfH888/HSSedFC+88EKsXbu2hVNC\n67HPPvtE165d4/HHH9/ifV566aXmnwcNGhQvvviiMgigFXLYFwCwTZ06dYopU6Zsd/GzoV69ekV9\nfX1cc801LZAMWqeDDz445syZs9Xi5+Pmzp0b8+bNi9ra2mjfvn0LpgOg3Ch/AIBteuyxx2LgwIGf\nasbYsWPj17/+dTaBoBVr165d3HfffdGzZ89P/Nhu3bpFXV1dPPXUUy2QDIBypfwBALZqv/32i169\nemUya+jQodHU1BRNTU1RXV0dHTt2zGQutCYVFRVRVVX1qWZUV1fHo48+Gh06dMgoFQDlTPkDAGzV\nvffe2yJz6+vrY8qUKQog+IQuvvjiTOYMGDAgbrvttthpJ/8kAEidP+kBgNwMGjQoFixYkHcMKJTp\n06dnNmvo0KHx7LPPZjYPgPKk/AEActWrV6/Yb7/98o4BhbFo0aJM59XU1MS0adMynQlAeVH+AAC5\nW7BgQRx11FF5x4BWq7q6Oqqrq/OOAUALUf4AALmrrKyMKVOm+AQQbIe1a9fGJZdckunM3r17x4MP\nPpjpTADKh/KnhD76H5WPLnvssUfekQCgbFRWVsYuu+ySdwwionv37tGjR4/o1KlTtGvXLu84fExT\nU1MsWrQo3n333Uzn7rPPPj79A7RKQ4YMaf420o8uJ554Yt6xMqX8KYH+/ftHbW1t1NfXb3SZPHly\n7LrrrnnHA4CtmjRpUsme69xzzy3Zc7F5/fv3j8ceeywef/zxmDJlSvzkJz+J2traOOKII/KOxgam\nT5/eIidLf+aZZzKfCVDuZsyYscl19957b5xzzjk5pGkZbfIOkLrKysq4++67o3Pnzpvcdtxxx8Wu\nu+4af/3rX3NIBgDbZ+LEifGzn/2sJM81duzYOP/880vyXGzq4+9bBg4cGAMHDoyIiDFjxsTq1avj\noIMOyjEhAJTOddddFxERN954Y85JPj2f/Glhbdu23Wzx85FXX321hGkAYMf06dMn7wiUwIoVK7b4\nvqVz587Rp0+f+OMf/xif+9znSpwMAEqvffv2sddee+UdIxPKn5xde+21eUcAKJxx48ZFbW1t9O3b\nN+8o0Or069cvTj311LxjEBF33HFH3hEAKAjlTwtbsWLFVguea665poRpANIwfvz4qKuri8MOOyzv\nKAC5uf322zOfecghh2Q+E4D8KX9a2Lp162L8+PFRUVGx0cmep06dGhUVFfHaa6/lHRGgcJYuXRr/\n/d//ncTx11BOunTpEitXrtzqff72t7/F22+/XaJEbEuW3x77yiuvRH19fWbzAIrihRde2Oz1M2bM\niMsuu6zEaVqG8qeEampqmi8jRozIOw5AYX3pS1+K008/Pe8Yrcobb7wRDz/8cN4xaGErVqyIYcOG\nxeuvv77Z26+99to4//zz46677ipxMrbk/fffj5kzZ37qOfX19XH88cdnkAigePr377/J+5xJkybF\n1772tZwSZc+3fQEA27Rq1aqYN29eHH300XlHoYU99thjceSRR0b79u03uW3JkiWxbt26HFKxJe+9\n916MHDkyunTpEgsXLtzhOccff3y88sorGSYDKI5Vq1bFiBEjolOnTs3XLVu2LMdE2VP+AADb5dJL\nL41DDz00vvrVr+YdhRa2pY+/U57eeuuteOutt2Lvvff+RAXOu+++Gy+//HIcfPDBSj2g1Vu1alWs\nWrUq7xgtxmFfAMB2GzJkSNxwww0tNn/SpEktNhtSt2bNmqirq9viYXsbuvLKK2PMmDFRU1Oj+AFo\nBXzyBwD4RMaNGxcREWPGjMl89s9+9rPMZ0JrsWbNmrj00kvj9ttvbz5s77777otu3bo136dPnz4R\nEbF48eL48MMP84gJQA6UPwDAJ9LY2BjnnntuVFVVRY8ePaJTp04bHSO/I95///248MILY/HixRml\nhNZrw8P2unfvnmMSAMqF8gcA2CFDhgyJiIiBAwfGwIEDY6+99tqhTwNNmjQpFi1a1KKHkwEAtGbK\nHwDgU5k3b17Mmzcvdtlll5g4cWLMmDEjevTosc3HPf/88zF06NBYtmxZNDY2liApAEDrpPwBADLR\n2NgYixYtip49e+YdBQCADfi2LwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAA\nAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8A\nAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/\nAAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQp\nfwAAAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAAABLWJu8AO+rwww+PqqqqvGO0Gl27ds10\nnv2VVpb7s7vSs7/isrtis7/i8r6l2Lz2is3+isvuim1b+6toampqKlEWAAAAAEqssJ/8GTBgQDQ0\nNOQdo9WoqqqK+fPnZzbP/kory/3ZXenZX3HZXbHZX3F531JsXnvFZn/FZXfFtq39Fbb8aWhoiOXL\nl+cdgx1kf8Vld8Vmf8Vld8Vmf8Vmf8Vld8Vmf8Vld+XHCZ8BAAAAEqb8AQAAAEiY8gcAAAAgYcof\nAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHK\nHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAgYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBh\nyh8AAACAhCl/AAAAABKm/AEAAABImPIHAAAAIGHKHwAAAICEKX8AAAAAEqb8AQAAAEiY8gcAAAAg\nYcofAAAAgIQpfwAAAAASpvwBAAAASJjyBwAAACBhbfIOAAAA7Jhhw4Y1/zxt2rRNbr/gggvitdde\ni4iI+++/P95///2SZQOgfCh/AACgQNq2bRt33nlnRGxc/mzO9ddf3/zzzJkz48knn4za2toWzQdA\n+VH+AABAQbRp0ybWrl27Q4894YQT4oQTTogJEyZEZWVlrFq1KuN0AJQr5/wBAICCmDJlSiZzVq5c\nGccee2wmswAof8ofAABohSZPnqwAAmgllD8AAFAQJ598cmazOnXqFLNnz4699tors5kAlCflDwAA\ntGIrV67MOwIALUz5AwAABdISh2pddtllmc8EoHwofwAonM6dO8fJJ58cTU1NzZdvf/vbeccCKIk5\nc+bEqFGjMp05YcKEGD16dKYz+eS6du0au+66a94xoFVL9VBY5Q9spz322CPGjx8f48ePzzsKtFqV\nlZUxfvz4+POf/xx33333Rrf99Kc/jX//93/PKRlAaS1cuDBeeumlTGfefPPNMW7cuExnsn369+8f\n48ePj1dffTWmTp3q/SaU2J577tn8b71nnnkmxo8fH3vssUfesTLVJu8AUBSPPPJI1NTURETEIYcc\nEiNHjsw5EbQud999d1RXV0d1dfUW73PllVfGVVddVcJUkKZf/epXccABB0TE308w/PLLL+eciI97\n4oknYunSpdGtW7dM51555ZVx3XXXZTqTbRs8eHD8x3/8R0REHHfccXHcccfFP/3TP8Wpp56aczJo\nHR5++OHmf+tFRFx99dUxatSo6NOnT46psuWTP7CdNvzD4N/+7d/8jwy0kKqqqujVq1fz5aPDuk4+\n+eStFj8fmTZtWglSQpqOOuqoaGpqitNOOy369u0bffv2jeXLl0dTU1P8+Mc/jl69euUdkQ00NDRk\nPrNt27bxy1/+MvO5bFlNTU1z8bOhESNGRG1tbQ6JoPXZ8N96G163ZMmSZD4BpPwBoCzU1tZGbW1t\nzJ8/P5YuXdp8AUrn4Ycf3uJt3/ve92Lp0qVx+umnlzARW3PmmWf6tGPiBg4cGB07dsw7BrRa+++/\nf4wdOzbvGJlQ/sB2OuGEE/KOAMn6+c9/HnV1dVFXVxf77rtv3nGArZg0aVJ8/etfzzsG/8+Pf/zj\nvCPQggYNGhSdOnXKOwaQAOUPbKcHHnggzjnnnHj66adj8uTJcc011+QdCQqvoqIiamtr48wzz8xs\n5u677x677757ZvOAjf3DP/yD11jCPvjgA5/uAkiQ8gc+gZtuuikOPfTQ+MY3vpF3FEhCu3btoq6u\nLtOZxxxzTBxzzDGZzgQoV5deemneEWhBs2bNilWrVuUdA1qtFStWxEMPPZR3jEwofwAAiIiIww8/\n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\nAIMR/gAAAAAAABiM8AcAAAAAAMBghD8AAAAAAAAGI/wBAAAAAAAwGOEPAAAAAACAwQh/AAAAAAAA\nDEb4AwAAAAAAYDDCHwAAAAAAAIMR/gAAAAAAABiM8AcAAAAAAMBghD8AAAAAAAAGI/wBAAAAAAAw\nGOEPAAAAAACAwQh/AAAAAAAADEb4AwAAAAAAYDDCHwAAAAAAAIMR/gAAAAAAABiM8AcAAAAAAMBg\nhD8AAAAAAAAGI/wBAAAAAAAwGOEPAAAAAACAwQh/AAAAAAAADEb4AwAAAAAAYDDCHwAAAAAAAIMR\n/gAAAAAAABiM8AcAAAAAAMBghD8AAAAAAAAGI/wBAAAAAAAwGOEPAAAAAACAwQh/AAAAAAAADBZg\ndQGV1a3bXCUnZ///9u47PMoyb/v4d5JJIQFSCCnUEJAiKDV0hEVclfogAj6gLAsvKE1U1HUBWaKA\nigquCKKuLCCwoLAgVR8FKWKEACIIkRYSenoICamTef8YQHpmyCSTTM7PceQguWbu+/pN7iMzwzlX\ncXQZ5UaNGpX58cdhdjufrl/Jsuf107Urebp+ZZeuXdmm61d26X1L2aa/vbJN16/s0rUr2wq7fmU2\n/DlzJp24uDRHlyH3SNev7NK1K9t0/couXbuyTdevbNP1K7t07co2Xb+yS9eu9NG0LxERERERERER\nJ6bwR0RERERERETEiSn8ERERERERERFxYgp/REREREREREScmMIfEREREREREREnpvBHRERERERE\nRMSJKfwREREREREREXFiCn9ERERERERERJyYwh8RERERERERESem8EdERERERERExIkp/BERERER\nERERcWIKf0REREREREREnJjCHxERERERERERJ6bwR0RERERERETEiSn8ERERERERERFxYgp/RERE\nREREREScmMIfEREREREREREnpvBHRERERERERMSJKfwREREREREREXFiCn9ERERERERERJxYqQl/\nRo4c6egSREREREREREScTqkJf1q2bOnoEkREREREREREnI7V4c/69es5ceIEADExMQwePJghQ4Zc\nayuqZ5991i7nERERERERERGRP1gd/nzwwQf4+PgAMHPmTB588EHCw8OJiIiwqcPRo0ezadMmcnJy\nbKtURERERERERERsZrT2jikpKQQEBJCTk8PevXv58MMPMRqNtG3b1qYOW7duzeeff87kyZPp1q0b\n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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "make_plot(img, seg, rec, samples_global, fs=2)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "whYBzCFlWhPO" }, "source": [ "# Plot samples from the local latents only\n", "When sampling from the local latents, all but the most local latent scales are constrained to their means." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": { "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 14843, "status": "ok", "timestamp": 1568134333457, "user": { "displayName": "Simon Kohl", "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mAV5aCJQ_5RldkCyse6s0nQKEvpBRdNbA80iGeZEw=s64", "userId": "12229574298416150258" }, "user_tz": -60 }, "id": "MIbB8BFPWmir", "outputId": "043f11ce-1c0d-4073-967d-d53cbf665bb9" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABH8AAAmlCAYAAABQWRQLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvbuPdNlV/r+qurvu3f1eZ2yPhzG2BbYwCXLiCCGQEATA\nX4AQETIhMiBBAMhIyBYIyREBRCREJAgiAwI5skQK6ZjB45n31pfquvSl6hfM7zn9qafXPlX99un5\naqxaUqurTp2zL2uvy7PWvpzWcrlcxpa2tKUtbWlLW9rSlra0pS1taUtb2tKWfiyp/f+6AVva0pa2\ntKUtbWlLW9rSlra0pS1taUtbuj/aJn+2tKUtbWlLW9rSlra0pS1taUtb2tKWfoxpm/zZ0pa2tKUt\nbWlLW9rSlra0pS1taUtb+jGmbfJnS1va0pa2tKUtbWlLW9rSlra0pS1t6ceYtsmfLW1pS1va0pa2\ntKUtbWlLW9rSlra0pR9j2iZ/trSlLW1pS1va0pa2tKUtbWlLW9rSln6MaZv82dKWtrSlLW1pS1va\n0pa2tKUtbWlLW/oxpt3/1w14Xfr2t78dR0dHERGxXC5juVzeuGexWFTXS/foeqvVqv50nf9F+j0j\n3uv36Tcvn/dl7Svdq+u6pra32+2Vfl1dXcX5+XnMZrM4OzuL+Xxe8YX3ez3607UnT57E3/zN3xT7\nflv6+Z//+XjvvfdWrrF/7Xa7qrvdbke73V7pq/q3WCyqtvOz98nL5LWdnZ1otVqxWCzi8vJy7Tio\nDc4jjsHu7m4sl8u4uLiIq6urYnvUp2xMFovFSvleP8eO5eu+nZ2d6p7PfOYz8W//9m9pv25Lf/d3\nfxfT6TTa7XZcXV3F1dVVtFqt2N3djd3d3Wi1WnF5ebmif4vFovrONvqYlXgvGeA9qlPXr66uijrO\ncnZ3d2M4HMaTJ0/i4cOHsbOzE/P5vBon8X1vb6+qp9vtxmAwiFarFWdnZzGZTFbq09i57Pm4Uv/P\nz8+rz/ota3+r1Yperxe/+Iu/uGZkNqM/+7M/i5cvX8ZyuYzd3d3Y29uLTqcTvV4vut1u9bnT6USn\n06nG1NvkvKV+kgf+u19fLpexs7NTfSYvaZtZjstLqX1eX8l+1/VDbcjsS8YL3ttqtWIwGMSv/Mqv\npPXeln7t134t3n///Rvtpl5R5mij6tpNu9Xr9WKxWMRsNqtkVCRdq/OTsqnSefGCz/EZtS8bQ7/O\nfrTb7ej1etHv9yMiYjwex3w+r55Vn6Rb1EGVTZsk2t3djU6nU/X1jTfeiH/4h38ojslt6C/+4i/i\n6OioKls8393djYuLi7i4uKjkh/2UbcpkbWdnZ0VGyW/5oaurqxX7KX1bLBaV/RZP2u32ivyKxDvW\nkdk8lbVYLGJvby+63W7M5/O4uLhY4YXKlv+9uLi44QNpAyIi9vb2qnFTGzTGusY2PXr0KP7gD/7g\ndYfrBn33u9+N6XSa6pLarf64vJGXFxcXcX5+Xo3z7u7uynPkr+vwprYvGxe/J+LmuJK35H/JD1BO\nMz54OZRvv355eblS/mAwiK997Wsbjc06+t73vhez2SwiIpXfxWIR8/k8jo+P4+Tk5Ia8qs304yqD\nfeR112V/Rs/RHvGewWAQBwcHsb+/HxER5+fnMZlM4vz8vMJYmQ1je4Vf9vf3o9vtxmQyibOzsxu2\nnWVkfZKeyWZ1u93odrtxdXUVk8kkZrPZDbk9ODiI3/7t314zMpvRf/zHf8R0Ol1pX4a/1W61VThc\n2L6EMcWzxWJR2WKON2W75Nt6vV6MRqPodrtxfn4e0+k0Li4uot1ux97eXvR6vdjd3Y2rq6uYTqdV\nPMZyyEPZ9qurq5V7iBf9uvrP7yo3iyH4DGVpNBrFr//6r288PnX0e7/3e/Huu+/GBx98EK9evYrZ\nbLZiHzVOlGe1kf/Zt9JvGd5R+eTLzs5ODIfD6HQ6cXFxEZPJpLI/znPVwRiS8ua8pV2jvdjZ2Yl+\nvx/dbjcWi0UVm1NXOQ6qx22piDLp/mFdzPeJTf4cHR1VAUzETedGpXCHSUHLGOnO1QfbQWtWfzZQ\n/r0OmDs5yPI6+d9Bx9XVVcxms8roz2azyhBmz2d9bpo+/PDDKojJQD6NVjYuAq1UVpI7goykVAry\n5SAy4OvlZOBUbVSZchJKkDhodgNOh8X6SuNeB0JYjupviiaTSYzH44iIuLy8rIIHGVTni5wpE2uZ\nPLMP3h/2Xb/t7OxUCQq2JQPJlK+dnZ0qedNut2M0GlVgimNBQK579/b24urqqgpmdD0D4pRT/cZA\nReDfxzHjyzr7cBt68eJFvHjxouKFxk1JoG63G/1+v/rrdruVPBMEZcCrBISdNyXKQLnXRVoXAGX2\nNQO4fG6d7V5nV7ysJu3nD3/4w3j33XfTcZDcup0pgQP2hWUxcU0w6PW5Xnlfs2Am40UGqtk2lkdS\nEKKEwHw+r/yB65rqkLxnCXaV70BLAUcTdHJyUgWWDLrFc7ZViSDynrzRvd1uN9rtdpyfn6/Igfrr\nyR32UX6JPqfdbsfl5eWNRB/5eXl5WdRLjrkSybKX3kf2S9dLfjEiotfrRURUfVX7CMLZD/mjpujy\n8vJGgsLHh3UzYSIZo+zJZ83n8xsy6nwhT0gZjizxl9iBRD55EoiTIVlCJ+OBynS7o8kax3Pqt+5b\nNxH3OjSbzarEXYZDFotFTKfTOD09jePj4yo5ktm7ki1z25phEf7u1/jb3t7eSqLg/Py8mng6Pz+v\n9Jrtzz7Ltuzt7cXl5eVK8ifDS94fyowS471er0rwa2KZyZ+IuCFjd6X5fF4lDcQjD+rV5p2dnRUb\np1jBk+iyfz5Gup/y6DaFuFoyLUw4HA4r3ijhuLe3F9PptJpQUwJYftaxotrC//yN/a3DGKXYiHaD\niQ7Z+SZt59HRURwdHcXx8XF8+OGHcXJyshI3kNgOtd9tYNY33qN+ss+6n/am0+msYHr6j3VJKLYh\nw5CZPRbGll9mEld9psyJ6BPUV5XtiyOyNmX0iU3+1BHBiga6BNwzoJkFDHWGnsq3ThGzMjZxcCUH\nkRkJ9l9C3u12K2AvI8SAtwS6VI4DjruSZjuzPvnnTNndMPh9/J4BVBEBbdaGUjtYrhswARc5INUh\nwEwAkbXFgVGJ2L+SsSbga4oIXuU06ETYPgflGXDM5JgBocbYZVDOWMZUszV0pB7YqC3K9M/n8xiN\nRhXI8uQDAe3l5eUKeGV/mAAiuSOgkRcYY38yanLsWJ47EvVRgOT8/DzOz89jMBhEv9+v+MxxydpX\nByRLbcjKKgHsUl/o2Fmny16pzDpb6rrmfmWTNjZBWeDHsSiBpHXtIu+yhLrsC3VJ4DfjOetYC0L+\n/1nkiKhW4KlfpRUd0kkllZ038nvsm/jkes62y26wzb4C4C4k+8GAS75BQQv7wgQ+V1Rx3N3mCliK\neB/LVyDHJLYneBnIq627u7s37DF1xsebq4/ULupPnR0hD0py5fZVfncT3bwtUa4oo2wz5YurSRnE\nMLGmMZXccSy83/pOuXXdYH0Rq6sEVD7xnsrkLLyv3ON4e9uIPdQWtpV48vz8fIVvvFf4SKRxbJKo\ndyL3Od4u/kY7mcl6JsuOX0tBGuuWTRwMBpVtlG/2SS6nbNWAsLYS5JTjbMW06zNtgsbu6uoqLi4u\nqsnkjNdNkmyPY36vR/JIPRVuYcyhRK4nmNlPnxCmLLsPWS6XcXl5GfP5vJowE8aT/jBprnHx8fLE\nr/rk/eWYkN8uX3WYSmNPHpRk+y6kGHR/fz/G43FMp9PiRE/JD5SIbXVZ9TJ5n/CD22iW48/XYd06\nvEoZZHzC5GNdX10P1d6sfZvizU988sednne8DvCXmFQS/CxgyQIEL8eFqBRUZO2oo3WA241Kr9er\nMo+7u7s3tq+UnFlpO03T5IZMwu2Gl8ZZxtNXtzjf60jlMlFSNy7e5qw+KjVXkMgROGB0xc74kf0m\nh+ZLsr280Wi0ES82JcqYwKTzQ9/l5JzP+t1BLgFoRKw4Ce97xE1wK/KZa3fcSnBEXGfWKUOql0tv\nNZ57e3vVzDz/siCIAay3TyB7E9DYFGWAgWMpUDSfz2M+n1eAs9/vV7ORTAKRSknUOnta6ts6++bk\njjuzZ5nzLoGNzJe4nGdtXFdnE0SgxrZxTBiI1fkcB0+lezVTJn2QbPiMW9b3kj1WErTf71fgmJMW\n7i9VluuSl+1BufOOQbj7F/qBkqy9Lsl+yB5GxIpdkQ4y6bNcfpTQUfJZ5ajf9H/Sz1artQLs6XO8\nX+S122rJGfGB/K5W3yjZ5BhCZXW73So5r99KfkN9I+ZQOZyJ55hw5t4TWE1PWnU6nZR/JTugvnAF\nmuRcbde9bKtP2rg9y5K8+s6kp2M3yrwH0OQd9YfBqMaANoa+mj7P62Rd+vN+ZPizScr0mW2us+uk\nbFKpzm943zIsJ57TJnJVH31xxqusjxxvTfhKD7O/UvtZ1nK5rOx+aUXNfcQL7Ivz1PXeV0o4HqZ+\n0U+6P+VKUlE2cUBdF67UKmqt8JC8y8dp1brbzKy9Io8V2B/yqc43lsad8ty032u1Plr1om2MZ2dn\nKyuLfTzrMFNm1/V8ye9Tv5hkdjvI+0t1sz7/LMpsMpM/khXfzpclNTdZ1ZN9Xzd+n+jkT+Z8MwCe\nOWcJXDZD5ALogpCtQCCVHFmprXzG61gnhCWnQjBB56s9h8yOz2azdEk2+9e0Mec4eTulGPzdARWX\nJvqKJecTQRTr5u/Zc6V7RZkcuJMQXznzoIQC++erfjzJJWJgpCBCSxcJ3FSX/t56662NxmUTUra8\nlLGmAeN5FCWQUdJZD2Ld6ekeOVyeK5Hph+veYrGontEZH6U2LZfLKiki3nuyyPtQomymifVkDqZJ\nKoEBtk885d98Po9+v1+dB6RAVHwjAPS2l2xUVn8WQPC6A2cnBqu8z4OMErjyujlW4k+p7ux6k2OY\nJahVhwN+/y3za5nt43MumwKt5J0S2vrOhIqX5/Wr/GwG1tvNNnu7PWhVglK2lf6EZfqWKAdczsu7\nkvh0cHBQnfkgO+m84ayvrnObqe4hhtnd3a3OQJrNZjGfz1dWhrmdkS9ROy4vL6PX68VgMIjZbHZj\nQkX2lbznzGm2cmixWKyca6Q6mZTKZMJlmIkpBQ4ccx/D+7CdntRwW+C+hnrBFRgC/gqe61YyZJgx\nC4B43YMNPUt+uf1gIMQEpOsBfZQnKUU+tu7vdA//u49nf5sgyibrZd115LqTTUit83lOjmVku7TF\nLiJWzu30rbjqF+1ahiGE2bhdjPa/FEd4G8U3JXx85afj7SbHL8Nx+u6xgGwMn5PfUnxxdXW1soox\nK1+2Vb8rcaM/YSW2kcdRaLJd2JGy02q1qlVdrVZrZYWQ6wSvrVudk8ml2saxdr0uxUBNkPByr9er\nkj/z+bxaAcT6Mh8l8hhL7V8Xt2a2K4sRWG4Jp/pzWft4j+ML19M621PqE2VV4+p+cN34fWKTP6UB\n899KSzhFZFbENYDJZrBLdXIgs8DD250Z1k0Ay7oBLc1E+Od2u13NKOzt7VUrgHjorQtw00CKy/UJ\nHDLHnPXDV9aoL3RIJV6QXMFLCYAsQCgRgR8DG66WYHl0NA6CBZoF5vRdh+3pTzPydIACEbu7u/H0\n6dP1g7IhaVUIeSRyJypnqHsz47WOj278REw6aItSNgNFJ8fyLi8vq3MABLZ8hpZL5C8vL6uzOjS7\nXicLBL2q15Oa7FMJfG1iyG9DmU3MZJsrB7S8u9/vx2AwqJajU+7IY5K3P0tM8LvaU7I/Gc9LQYPr\n0zo+1snbuu8lUNG07cxsW1ZHqa/0dbovAxQsRzKgzwLFTO6y/AzsZAGByuX5FdLBkh/z/nJseXbV\ncrlcORvGA2y2h5MJ6iPLboqUcBbO6HQ6VeJFdWmrgPREAYqSJ0qcqO3cEra3txcHBwfRbrfj1atX\nVfInW/3DAEYJsuXyo0BxMBhU40JsE3FtFygvnhTR/4uLixiPx9W5bEzEeYCWzTzTh3AFCinTyfvS\nPdlB9lOf3cYwqMwmuNQ/HvSs5/jf++gBG/VEgTnHV1SSafpHlSOeZ3Yzw0gqJ8MD/Oy23xO43qam\nx491r/vMdpQS5Lxnnd33PtFfEn/ymhIGTPx4mzhetCOsTyuGeI6S46F1xFUrGju3pfdN7KNwv9qT\nTaCyrxGrvlIvN2i32xV/SKojS8jwHo8XNW7n5+fVqkf6Q02sCdfLNpKfWZ3cAun4pg5P046y3Zk8\n8lqTusfzz0ajURweHlarfzhh67pWh0ncJmW4SOST1SqDVOo3rzEecJ5nOQP3X9QXjan7xKyfnCwp\njb344En2Ev1YJH9KxiebseNzHoTLgGTKUtcOUdaGdQDcP/O7J3O8zHV1Z2VS8DR7z6SBZvt4330Q\nD070IITt5Wc3VnSO3I6iID3rv8rh55KhK/V9nWx4+eqjz1SSxwLvXM3T6/WqPyZ5mPzRqh8G36xL\n1/W2iCZIzosGLuImj7Prm5IcoOsoy9dv3Lut37JZPZ9l1iFv0+k0hsPhylkRBFacvZUTkazpHtqg\nkmOSffFzL7K+b3LtdYnOhLrkeiA+ChgpwSb90goBySC3HpZsIa/7jHQWkJR083VlysFECaCzjnX6\nXnLGdYDsdYn2pNVqrWydccpWTnnAlT3rq3j0LA9FJNCmThGgeF0lfihhz9nbugSQl0GbyjIkV+xD\nJvMiJU/UprqA73VJbTk/P19ZmUS+OdDXc9rWpTZrnLI++DYsX+nBRLd8perWxEzpLJCSv+aYUR70\nxpu6IHoTrLFcXq888mDObYjLXlPEgEztpswyQcaAw4G7JhaWy+XKWVoZdij5WQYhWSDCYFa8d51w\nn5XZDP2+KTbjWDhOpz/PVji4DNzHGGZ+ILPxDIaZ8KgbIy8/Iy83+13yocSwtmzJXlCO3NZKpkTC\nyKXjG9b5WvbL5T+ifB6N86Up4mQT/2jTSgEx9VCTeExqkahvWUxGOXf5VZKYK/45ySG769vova5M\nr13W+HuJsvgnw6vZGDZBjFMiIg4PD+Pk5CQmk8nKduAM63u7I8qHiWcJuoibGF3XWHb2jN+n7z4O\n/K10PcO7LjcZbmIbSv3TtXWLXUif2OSPKAu89L/EIDpAZ36dkyPY8t+ypXiZIGcO0ge0ru3rrmeB\nBw2HiMmGwWCwAub9ALfbCNSmJD4wEUIqAQw+y995YObe3l4VGJVmz9gvD1hKTiCrt6TofM4BmpyO\n+N/pdKrVFEr28Du3b6ksOcDsoEU5egZA2YF8dyU3SOqzO6o62cyMvHTt8vKyGksHXDxDSUCb+uRj\noDJ16KmSPHod5+Xl5crB0RlAUxnL5fW5HeyP18dx93vqZgn0fEm+7kolkOf2h/cwcBDf9CpwbgXj\nCiqOm5eZ8cw/S46z9mXtzuxsidwR8/k6W7RJm/m/ZLNfl9xelnxHxncfQ9on2r+sX+qTbK1+01j7\nAbGZ/fZ26jdvK7dA0Y6VgI+vROCWFd3PQ3WzgNIxwX0mf9rt9o3zb2gnFCxkM5V7e3vVaiYf21ar\nFfP5PE5OTuLy8rJ6S5knZNgOJt7Yd9lE1VvSDbaB7XAZ5WRMBsJ9RUhWh9rm+uqydF8BTMTq1i3X\ncfWBiTPJnCZM+JtkzJOe3h/KJfmt61kiJ9NpP+LAfRvxj4857aXIbYpj4CyhRRn38VIdTN42qYOu\nTySOpY8DqZR0JJ/rbKjX5X5IuqLPehGFJmX5DBOLbkcdd3ibNtWLLHYgL0q/l+zFXYi42XnOBGqp\nztLqHX13vcr023FZpqsR1xOLe3t71eHPSt6JZBOk/5q4ph1mnRxn95nsdza+jrld1z1GaZqIC9vt\nduzv78fDhw9jPB6vvOq8DhdmdqSE1TK+sCx/voR1st9YvtuoDMv7/f6c/L3GwN9y6Hwo8Uk+xfFd\niT6xyZ/SrGbETQCsaxHlpa8ZuQBx0LjUryQcm5ZdZ4jWORJSnWPLniVQ0/JH/U2n0xv7eZskHT6d\nGbasznVGicbDX9GdARcGGesARiZHVO4sAGMd3Lqlg/x0mF+3241erxfD4TAGg0H1hgAdBueyIAXn\n/4hIP1PGmnxjjTtA8oaz9s478Yrj7GWKMpCl8qjLnF0l4NB9GmMeVMk2yUkricGEYKaHnkAqOU22\nOwNht3G2TeufB7aZY8raJcfEQw31fz6fr6xS45LsbGZwXR9LzrfEC8pjndO+DShdZ/s2HZcmARUP\nCyaAcJ1yW8Qx8GQ7wa3rLYPtbPZb5ZEycMV6nOiv/Rluw8oSMu6jyReurthkDFS2zxT7uV53IccQ\nAv4EbpyZVp81PrJp6hfb2W63q+24OndC92psVZ/K0duX1G+1L0u6KhnEoD6zcaqfCSaXzzpM4m3x\nv9JkUR2maoroa8RD+gzxnSsklSjX+XK+nYoTcfQr9KXESOKB/rh6wJPu5E8JT3rwsFhcb+vkM9QL\nfVe/szHQPY6zfDLFV69ITiOicd0Tv8mT7B7+XuebsmtZsJaVV0pC+0QWV8ln9ra0QiTrU8Rqco02\n1WMdfc6Idoe07rm7kJI/3t8sWcj+OlYWP3jGjq5nK0pczmmLvd+sU+ckcjV/xHXcpUQff+duCMfz\nGUbOErVsTx0OrfO7TZOSP7Ito9EoHjx4EMfHxzEej6sVbq5vLrtsa5Z0cd+wzk9E3Dyqoo5KGIbP\nkq+ZfrD90mfGrGoTY5As7mSfXB838X+f2OSPg1UfcFd0/uYGnmW6IGRM5JLKUuKgBHJLv7Et/nv2\nPRMAfi4Z4cyxiZfanypjqtm/0hK3u9Bbb70Vk8mkWs4qsJQBCQYcdQbKwQtn1BzMOrjU9XWKXQJP\nKpOrdJTY0TkpWiHB81KY7PHzDySPDGSyA/Yi8tljUpPJH7VRfXZw6ACL4JXPs/28RgfsW6QoEy4v\nXp6DGU9GyPlOJpOYTCYxGo1WVgWxXLZR/dG9HrSxfVmgrf+S19JsYlZ/E+QgibKW6QPboud4WKmC\nm36/X81uK3npb6FzygIQ8t7BDfuQ9Yv/Hdg4T71dHCsfswyUlMbVbVXTY0j5Lel7Xbv5X+1z3WK7\nSwEQZdgBcRZIrPN7Cvpoq7mdVWVlM7hsT8SqfDqIKvkRybcCDF5rihhUC7/oTVYEi26nRAyOs9l2\nrVzUmMgGMdnE7d6ajabtUZtUnts1td39stu2DLw68fks8UMQ7TjE28YJH9qOJsknDyX/CtCFP7R6\nSn/CODzfwleYcDUvfZV47m950mSS/isJRLtLPq5bTSM58SSN+C9fpZVPPq4cHyUtuE06YjW54f2j\nD9L/JpM/ajP/Z0mSLKgWkf9+bZ2dd1xEYlKWdlcTLZQ7trlkpzJfRx2hTnlMxDKyPjleWJdMa4q0\nMobyzxdvEPuzjxE3k8rUV9oPyh7bTz55Mog6TBu6XH60Qnpvb6+a3FWCXkkeniOp/pQmHik/HEvV\n61iNdtX12u8lleThLiSbpL72er148OBBnJ6extHR0UqCU/1z3EJ51TURZdD5lvXR9TDDvqV2ZFTC\ngkze0xdyPBSHtFqtlTM0szKzJA9lgbZjnT36xCd/IlYNH5lCoKL7MuEoBQUOQlg3Z+NEmwQom/TL\n2+Kgqm5g64xvBnxZlmaRdP7J7u5uTCaTldnBpuinfuqnotfrxXg8rv5OT0+rrSQCsBGrbxEp9c37\nrWc5y6lrnlzIZCbrrwchnInodDrVih4le4bDYZX80UonPxuFRkHO3sE+AxqXYbbNgQHHtUkiHxyc\n7ezsVEmvTqcTi8UiZrNZnJ2d3Qja3GjRSLL9up880e/+jDtN6pHfr2va+qXVKwqg+Jzqc/CtZdls\nY2Yvss8Rq2PjQZbubXoLigdmWRvUVo41+cB2XV1d3VgFJD3o9XpVEJnNWKqe0lizvqwfm/TVP5fs\nSAnobVJ3NuOSrVC4KwmwUn+oD7QP7Fd2RoI/o++ZHrpM+LVMPgmonTci1ku/y3ZRTth2nx2TnyCg\nK9kH96l+PxO7Teqe68Nisaj8q16frro1E8ztQmqvAlSt7tFZRRx7Jon4XePS6/Wi1WrF0dHRjRVe\nKrvValWHP0+n06o82rwsoNXY8bXxmd5xuyDHx/1Ypo+ZzWBZTeteRFQ+jf6ar+Hmiwe4OlL83dvb\nW2kfJzf4JsmSfHrf+fYhveAhOwtQz5SCOse89ANsBw8d1v1+jz4Tc7lsMJnEbZ7sp+S1SSphX7ad\nyZ8ML7O/vFbCyJncUgY4fpKDiNVzo0r1eSxQh/9L/Vb7vPysrMy/ZH6nVMZdiCt8KKd+3qO31WM1\nT9Y6jzM7RZwnvWU7vK+6JvvtNp82WW1QbOC7FUo+nXpIvlN33XZ6Gd5P/t6k7vGtZyp7NBrFo0eP\n4vnz5zGZTFaSP5mMZ8nNTaikA8677BliJ7XBcQfbqbJ9bOgPmcRUn+QvJGvdbnfFDmf5BpWdLWQg\nD0v0iU7+8C8z4m6UXSFYlt+fKTTvzRTIBZSKx2tOJSe0yb3+W9ZWfvey1T4Cbb32ms/5AZR3pSdP\nnkTE9cFo0+n0RiJI+0F5Irwrgo8l+6Sx4GyaxlbKVgIDPm5cmscDmbWiZzgcxv7+fvT7/djb26uS\nPQI3vppEBt5BVjbT5YY94ubBb5kRuo2BvC1lGXg5uMFgEPv7+9HtdiuAx1lPPeMAK9PTkqOqAygZ\nAKF8M4CKiOp8jNlstvJ2Bp5t4uVERGWkBYg9icI20QHTifD+zKFw5qApIu8ZOFJnSkDA7abP1Gol\nEANW6YISpe5s62Ysyb+MBxzrzKavKzO7x8FSNitU8g8fh+7xbT6yLWyj2y7ZnjpfmdkN10n6iqx/\npXFcNxYitp92jgkcro7MdN/l1HGC119KbMreN31WmrbyRlwHd8vlsno7GdssXzKZTOLs7KxKEuks\nNM4WEzhm48O+6wyR5XJZTUh44ktvHJM/2tvbq5bmZ5Np5B1toe73iQsFvG7zZEN0jck89Vf+kzZd\nfaQMir9NknRNmGQ+n1d/TIAT1Ps27Gxs2E/1iXaV+s3n9fY31uW+RbKie+hPOJmlehnQCit5ktXx\niO5l+/WieNU/AAAgAElEQVS9hBX8z+tt2oZmSUH6jnX2nbZinc/idacMuzjGI4/5XB3mr8MqlDEf\nu8zXsQz13cveFJM1RV6v+wb2gzrDFWaeHGYim75FJJuqz9TnrN8u57IVevOXJthLfJbPYWzik0h1\ncqX+kE8Zxva28z6W1RQpMR1xnbDe29uLw8PDePToURwfH1cvk3CckSU8MjviOKOOZ3xGuELyn/U7\nwwj6nE1ium7p3larVSXl5etEGjuu3OQqMfalNAmS2bASfWKTPxGrwZEAhhvRLHtZZ6QcIGeUGUQP\nmujAS2W40yjVXXIW2T1UeK/LhTqrR05nZ2cn+v1+VZYMYFOkerQ95ODgIJ4+fVptIZlMJlUC6PT0\nNM7Ozqp983wlPYME/lffBGCZ/IlYPSOHyqv/PKun0+lEt9utDmDWYcz6zrdwcezlLKTk+szsMev1\nWWq2jePr4E3Ee7IlrE1TlrxR3RrXq6urij8ExZmzdhn2fmWrv6T/LJM6lDk8ERNomrFdLlez87Ih\n2TjoVaFareYON+M72+u/l2YbWX8TRL6rbJ6NpFkJ9SWb3fW2awaOMsfXnXI2WktbM4ftYE58ymbm\nXE8yAO8BRglMqB7vb92MYCazBC73RRmoz+5hu1wnMttfAg6l1RQsm77FlyCX2pZdWy7zrR6e7KaM\nuC1h+3zVkIMu6hxBoJbfK7nWFEkHmMBT/+RjCf61kkOJheVyubKaQzPF3D6qsSA28gDo8vIy5vN5\nDIfDG/6P/OW2BAJd1cPx4jhQ1zJQ7litREw61AVxupf+LltteFeaTCZxdHRU4RFuWaf9y/pO/XL8\nV5rp1+cSZohYtVdcAcTVl7K/XLnlgY7GhStxmKRT+SXb6gESx837SZuh51yOmiYPEh0jMfmZTVKw\nHBHHMLNJ+o0r69y/uW3Oxtl1aNO+6n5vZ+ne7LuPoeMc9smpyXF0+RKvaN9E4iGvU4doM0ptdx/r\niR8mzNgm9706WkD+RckfyoRsMkn1MhFYkj0mh7Nt2Gov+5V9drvTFLVarcr+aBJhZ2cn9vf34403\n3ogXL15Ux4BkiZMSzlG73ff4pALvzWIQTvj6/cQjme5mfdW9fMZtjL/UgbKgRRi+dd19NevQf/np\ndeP3iU7+uODSKblTKwlz6RoNsjvrjDJj6AOyrn4v34GDC16pD+6cS/30ehy4MAGk/02Rkjg03K1W\nqwoUR6NRPHz4sMqaa++8ZkF1eCIPUeQecyYVIq4Nn29/4CGLPK+Hy6e1jUlt02ypOx0FFTTWAuU+\nFpzdKYFE/6yxygBG3f8mjbgoA/VyhL6XmnzyvayctXQjGJGvHFBZSrYxMOJ9WXn8zIBJsqRk1d7e\n3sqKHj4nxy050XYNJpvrwF3WPzn5zE40nfxh3bKTWTJGfVUb6gC+gI1W92jlz2QyqXSJB0KLx9I9\nt2seGLq8Z30p2dIMCN8GrNY52k3acB+BjMiBJymz69lsaanP3v5s8iCzL6Xvzsfs/hK45e/ZePq9\nmT3VbKMv9Zddoo3S80yMNkFqgw5mpv4rKNA4nZycVPcpuRwR1eoe+jgPRDyoyYLuq6urODs7WzmQ\nlytE9FmJKm6bZoLH/Rj9m+qkzmXBBceNQTntDvvK7WRZYvI+7GVExAcffBAvXry4cU4h2+hU11//\nzr5Q7shfJkJLQaS2omk1q14woQDMg2K204NN930Rq1tw2JdsPEq2xrd7sSxP9jZFrIttctlR//wc\nkhKmoL3gNecN6/B+Z/FM1vY6WmcfS0kl92msi3otOeS9fn8p1mmCvB8+qUv7xzFgwlNY05ONpXFQ\neRmmdT6Unuebv5jk1/2yI/qNiXvVX7IZxM7evnXjkOl2lky7Ky2Xy+ooCJ2BpjdNP378OB4/fhxH\nR0cxm81W2rYJ3pPP0AT8YrGott7y/qwM2jqS4926OCyifPav66G2CXOFLseMMZTiC04GldrL/tS1\nh/SJTf5wUNyg+WDxkLBNBdoBh1Nm3N0hlAKlOkEqlcfvpTaxf5nAehtK9RJ47e7uRr/fj9FoVGbW\na5AAihSXbZEiaJZ0OBzGgwcPqtk1Ai8lkRRs+ts0nHc8VFHBqrLx/MzfuA/fjSWTOIvFYuVwPsqQ\ngwPy2kFW5oD1vU5OsoDHPzdBlGlvq7ZQ6U1uSgTQ0fIZyVqpjRlIabVa1RlLOpdqPB6vrNTx9maO\nhHJ+eXm58upyJQGZVFJ7lWikoyY/XE8dWOk3BlDZ/bz3PoAw+cA2leyB90H3KnDV9i5tK5EDbrc/\nOjxeWyX5p5VAfj6FE3lwG3BJW6fv/O99KvGnBLy8rNLzTZLXV5cA0nUG8yzDbZT3S3bNV124HGRB\nIPnuAUS2gqEk59mYZcS+lBI2GW7Qdx70nM3INUGdTicGg0H1Nk2Vv1gsqhlRtUk+Tb+rvbKtApOe\n2HHAqfIYXGQgkfzj9iC1Qb974kzPOragfePWRLatlPD2smmrhUsUkHEVsAPypnXv6OgoTk5Oijad\nsuKrPdiXrL3ik//u/MiCOvHbVzVoQkPYiCswWZ7zTL47C0A5Dln7fAxKs/AZRnN81fT4uR+jnWC/\nM1/kffHffbWQ622pPWpLtuLRcXoJI7D9bCNtvstsho+zz5mOsz5+vo1ffB0iv7LVPpz8pb/Ktmsx\n2KZs036xTsqGJ3687/5ZmKjValU6GBEVvmSdXM3pY0HdLuFJ9c2fycaf8qT+3UfifLFYVOefaguz\nztg8ODiIJ0+exIcffhinp6cpNnB+euzRal2vxNfzijsymWQZbq+cR1kb9N2xu+Mo3qPvTPpx3Dnx\nom3clEOPl9wGefvWJYB+LJI/mYONWGVWRL5awRlWSp44YM2Asn+m4fegKlNeF2jvi//PyvC281qp\nTAfqbI+UqtvtRpOUzRA5CBLJ2Cp49CCDht0Pf3PloGOnwcyuOW+8fFdCGXld8xm1rK8qJ5u9yIxw\nZrCp5KUAqmkQxXayjuVyGdPpNJbLZXUeAVfmuG4yyCi123WN/GEij69DLQElyjVlTEB5NputvPWL\nS/lpnNVuB4nsnx9myjZovH0ZsY9pBqqapgz0ZAl1faeeqp+9Xi9Go1Hs7e2tbIPTLIa/9lirfzQr\nrRVBvqrA66zjhcuP69q6mTqvh5TNmGb3uiy4fjZBWXKT5IDd2+PXPLhgPyibtGkZgBRlySHdV0r6\nsKys3X4vv7Ns6alsfcT1zKhAFf0FE/gOqJo+7Fm84Oo4HYrLVQZZokT/lcBptVor52o5FnL7wu1u\nDPrpr3QPbS7HQ/aWCSnaC0660DZE3Dy81+0p+8nZTQfXOhi12+2uTOp5u31beFOks33cz2ZYkrrB\n3+t8f+aXMr/J8lmmfifO0WwzeUQfxDrdzvJ31xe2nT6Sf8RELFfkNlLt4vmKTRHbSB7Q3zm2yHy7\n88nHguPtdpDt4PPyk+QB62JbMn1XGfThdXiWfV2HF90OlOp1X9I0uZx423Q9Swpl/tvbTl9H+ZX9\n5Fk9TAQ6n7Kx1/jq1e5+Vp8m0LgViLpHW56tkqd8ZHiafSz5UH2+D9yiydLRaBSnp6fV6p/5fB6j\n0SiePn0aDx8+jBcvXhR3AWRb7mhXqENur/ic7qcMcbsr+cQEYkmmqW+lBA756kle91n0GUyyO67K\n7Lme32TsfmySP27c3Dj4TIUPiBssgsgs4CgB0swQ8bonE/hbXR1117x89tt/z+oo1aO/+8oGq10+\nBmyTAKuMoCdp9Le3t3fDQZEPrtDuBKncPhNAWcgUMCJS2XKD6n0mlcYgMziZgS6BlJK83IUIMFkH\nwclsNlt5zbAnQdyYlnhCw0vDyn3DXO2lssgj12+foWOZarcOfqascDzkiBjMZUY9Ayneb0/e3Ubv\nX4fc6fEg7szpltpC2dfscsT1jAvHXGOo35QE0jJgbUvQlko/INqBpfPDeV33u9qzaf8yfmTjURq7\nj5sUuETcBPgl21Dni1x3svsdVHkgwoReCYB6vVk9/jm7Nxt7tUdBMLcwqU0Cj+zDfQQxWrUocEic\nIZDPpJAOyuRycSZc1E7qhpJEKidLvjgOkT2l3fWgnLxRORE3X7tOf+jjrt+5yoW2U/3O7LTK0Llh\nGjMmjDSuJf/ZFLmcZUFGRNl2aAwzfpVwY1Yex19jR560Wq2VBPzFxUUMBoPK3qoMyqG3l4k9yaD7\nRI6/JkbIg3X2Wdc5sdLkpCP55zEBE1Xy6dr6Ldl0HJFhTNbFfnoygb8RU/i4s60RN5OB/O+65xiZ\nSSPH995uLzP77pTFO02SYgCW7/ie5LjTbQnvyfjHet22lnxNCXdIJ/2oC99RkNlcxiLEnRmPXQZL\nfrb0e6lfd6XpdFqteOr3+zEej1fOb33w4EF86lOfig8++KA65Fh99gUZGY6Wb2fCpa4Pdf5B9UrW\nSpjHE3f0yS6XmWyqTPaH35Uwo9wTt7A97iupiyX6xCZ/RA7oyRAqsx/+5wbcBYbGVvdxAD1g8zr5\nG8tywXVlWwdsszr9npLSbwKss3qbnj1bR6qTbabhdUH3frgz4Hc5QYJN9q+ktPrPRFHGtyxQclDl\nDp3jUio3k6s6cuPSpDN2OcrewMOghM9lAIn8EADLAAif1bY/3cND7iQfpQP0aLx1XckLzezqrTy0\nGUwwcVkuD4jOQAKdRJbMyHTbDXfT4+fyX1py7t8zvZPDlW6KjyyTPOE2hNlsFru7uyvbwnhAtBJA\n+k8QrXK9PfrsACmTP7ZPvHDKys+ezwApn2+C5Msouw7kOWPO+9w/Zrzx69nnTDZpex1QZ2C6jpcO\navx315ssSaO6S7Nl/O46W/LNTZADRV5nm7x9SkYzeaqkbSlRojroh6jrfMMJ25BtmdM4OpF3/iYu\nnzVVXfrc6/VWkk1eLgNJ2WjZgn6/XwVUngATecKrCSIeKgVgagdlNMOZ6iP9A3/juTryL1wpS0yQ\nYT4mlsQrbZm/uLiI4XBYvVEu4npLvAfNlC21j22lbDhuKum62xoPxkpB012IfeCf6tZ2G63ykJ5m\nb/zzcc34rzrJhyyJlz1H/kbc3KaZyXqGG7K4xe2OT1w6v7Iysz6yvhK2uQvJr7l9pD7oN26tYV/Y\nxnWJnyzGK/kSH0P3iW4X2+12tdJZdfmEWdbHiNudAck4oK6dJZzdFOkg59FoFIPBIDqdzsobEw8P\nD+NTn/pUvPfee3FycrKyqrMu3mI/fRzd77nNdMr6zfJKPKKOZKss1xFXHdFO+ItX9Lv6VOpDSW+d\nPrHJHx8UCYgrLBM/GSAvKYMPcGZwst/4vRQ0+ACqvLpsrpfhTqAUiNSV4f0vKb33twlyA+bGOWsP\ng2nenxmHDIAwACJgYaLJgwW1lc4lU8aM/0oOeDDD/2xnlo3O6mW/M3mXo/E6myZPbnl/6hyl880D\nEV7LgFbE6lle1CmuAvOtG64H5IvO/dFbcPTaTZcL8fb8/Dx6vV5lY7x82ii+NjmzOSV7dh+OOJuh\nFo84O8j+uOy5bnH1FYGO99eBl/RETlMHI+qgdc1O6wwmJjbqkkEO9MhrpxKwcHnOnneg6zK6DrTc\nlpQcyw55VX0MGrP6Cfg5U8X7qU/rglxPPNDGejJFyXeWUeJxiXduV7L7fdImC2rcp/EeBsBN+j4C\nUwX0PPwxwyjadt1qteLs7Kx6ln6ZQbuCWK7ooy11+8Qy1PeMb/4sD13WdgUPUnUvfbTqXCwW1blf\nso8lW+p9pLxzG4VIcq2zNZoi2hthNso//Zn3w8+fIE/0O/WS8qx+EsP485m/9cSSntfWNbVDMiM7\n6/jE5dPPI6FMqn7+FnHzYFr/Xf10vNUU0V5RB9UGYieNn8cNanvmw71ffk+W+OEzdbbO+eE2jxgi\nu9+T6HzOx5nPZP33ZHvJ1zo/mqDMhmUYz+MjjbsmnhzXuQ7zOvvoOuA80HMZBlG5entiRKTbvLLk\nT0QUbaNjfJXn9kZEWc9kO9PRu5JW1A+HwxgOhzEYDKoJwul0Gg8fPoynT5/GW2+9VR2o7y9xUV/1\n320ufy/1YxNdE4ZimS7/lDH6I24nL7WVfHdfnOk5dTtbTUmc4vJaR5/45A+DxuwgJT8Nns+LMkPO\nwfV7SopdamNJmerKrBu8dQb2Nn0tlVG61hS5k/ffMhCcOT9/3p1qBoyyuiJuHqToDjKbYRbRmDIp\nksmW98+BHjPV7Iv+1mV0HaxtYghuQ15mlqhwvrnR8/Kkb3S60t3s7A06xAzIuNMvGVUvUzMRi8Wi\nmvlj2/ksAQDBhb6LfLUGZ/39zTbsW4lfdyWXD16rq8tnd9lPymsmB163nhEvFPydn59XCR4lgLQC\nSEvxNS5+aHs2g+m8JPm9+ryp/XX++e8sryna39+P4XC4EvwKUPpMv2TRl/vrHtq7UhvrfAd5Tl5w\niTJnr/xcAi+3zvZm8pn5wZKsiTwp5jbYy8smA+5CKo9vJnGs4ecPcBuU+zSON32PyzH7l0066buI\nZWVYiCtSaONpL7MDS0nz+Xwl+OZ40UbyWSXSp9Np1UfZCtprJX+Gw+HrDVQNZbLjEyEMPkXcLhWR\nTxKyTA8geD+TLZlOZdiB33UYv/6UhFP5sq2uU5m/kP1Wu1xn2R4PTvyejCdNEe2QbJf7d/kYniVY\nwg+e2Ob/ktxneDTjsWMOr5fPrVuZQ6Kd5jhlK0RYd4ZHs8+cTGo6ca66Mt5xjDQuvttD7VLyJ5PV\nrJ+OI7MEj7eF9WXX/Q2KxMrEwRHX58TJpqkuPcejMBzvlHAx25zxN5Oru5C2+R8eHkav14v9/f2Y\nTCZVUmi5XMbDhw/jc5/7XPzoRz+K8XicTiBm4+H9KI1pHabL9M/tA+MYksZF9VLuNDbkpctZydZl\n9pCfqWub4COnT2zyR06LzJVD5J47BzHryIFmFiDwvhK4XzcIpUDEldfvLfWh7nrJoNc9mwli05SB\nBA8w65TWFYLjLUCWKWvdsxGryRg3+v485cyNps+a0zH5d3fCdcR6mCjyVRxqQ53Ruws5wM2cphul\nDNAsl8uVAJVlMvHjADhzbhmIyaj0vJbGX11dVVstSjZARJCYOXuBSu9jxOrybjkQd1YlGX5dIkgX\nlRwI71/Xlro2Zs85SIq4ThhwNRCTPEr+8LsCP3+LjffB5Sdru+t1di+f8THKZLtJAHxwcBCDwWDl\n1d/L5bJa4SBAOZvNKpnKVriUwEzGl+wgX8kEgSc/+8obyVsm4w7gnPfrxqrkm7PfWGYGDDOf06Tu\nqWwPLOkHuGWv3W5X8r5cLqvViL4qUqs2IqLoE3z1R4ln1PVSAOGBhI9hNgZMSlJOHRhHXAdHPv56\nbjKZrNgFrRD04LPX69190ECOS5ikcbvKSRHqAPlH/pBvdTqRtcnH1ctUe9wuuQ0gv3m+BJORkl+V\nUVqpxfHLgmomsPSbt7Fp3Km2M9HlKx/lSzSpsInfUNv9nhI22hSvZ/X481wx5vf6NQbM7Jffk8VM\nJTydPdd00lz1yC6QHGfKhlK+FKDzdz5TWpVF/vFcw0wXKSul8mh32YYsces67baGfddzJfxWh8Uz\nn1eyNa9LstlnZ2fR7/er1T9a3XN5eRm9Xi9+4id+It5777149uxZ9UbMrF0lv571N7sn44HX4/pX\nwnKSDemgn0vr9Wc2l/ex7bKvboMyXb8tfWKTP2KM3pjhACNzIHXG2ct2Rrsil5y3/8Zr/O/PEQSW\n2kkldcGscziZodjUoWVtbYLUF3f+PpNYp8ARN5cMZ8aQ93nyxZ/hva5klDFdk8MT4JbTUd8Y3MtI\neHLGHZDLlcuit4Ptc6dzH8mfjGcZOMlknm1l/0rgU/eWVmWRryWDSH1yx8nyVI6WnGrGhW8c8bGS\ncebhqhlP/LvLVfYb29skkCKYL7XP25IFi6Xn6cwcYPkY6B7XW57jod85G8vEDw8S7PV66Uog9wsl\nQJT1p07uvI9+TTahKVosrt9Kx76QJ7pW0sGSDSwBSvY9IyaBxHNfCUGeyG66XyZtUm8WBPizJSrp\nosuoy+pdye0eD3aOuHkI8GAwiIODg2i1WitvTPQzEVQe+avf2H7vX2n7DmeYqZ9cZaTySrLldoyf\n9YwSWXW8Yr+0gpLL6yOuz2OjL76PANT9Kf27+q/rrkNcIcTrmT/K/GHmCygrJZ/KtpJ0P1dDcCsf\nx9htguMuzpJ7AifrF8vlb97HprELfTrlhziREwwlW89n3K8QP2a2LUuiaPyyVSVefh1fMr45n3Wf\n15XhDZeDUt20O7QRTa4eyXyS2yO1jz5JeIJnnan/2VmHKpf1ctt+hgdKeMJ9i/5zgpq2imXVrSCi\nrJR0xeVnk3tL9d+VlOgfj8dxeHgYg8EghsNhdbjzbDaLi4uLePDgQbz99tvx3nvvxdHRUcxms6oP\ndTLteDOz/fRl2TX/73zhM5lN4/j4aqzSOaZZHRleUjmSWbdNLoebxH2f2OSPBjs7/ZyG0wO/iJuO\nld+d4e5sS9c3dVjZbxRcAUFX1tLzdb97G9n+7Pf7crgZeYDmPHcHmoG4bEwJXNzBeR/pnN2QuDxp\nv72+Z8adz2VKSCX2NgmAccwzp+0GkG1W2ZIf521T5DOYXr47nWycRG5Is3u4qsbHq91up045A5b+\n2QFzxPWBbVpZwUMGfeUX9TXbXqq+rQNNaktml+qefV3KAgX2yftYqn/duGb3Z1QHWqi/BG9MAinp\nMRgMYjAYVOfi6Kwg14FN5Nb7kfXPD83WG3b4x9nCJujo6ChOT09vvG5aQUu2uqxO92WjMj3k7y7b\nmc5yK4VspnjAg2pJLt+UOe9DZsc2sW11epf1IwP3TZHkptX6KGF3fn4eEddb5dzn6IBM2SPZtU1W\nGbTb7ZXJMY0ldap0hgS3qfo4ePKwhCky3+yAOOsD5dHxmMrhW11Ks8P3lfwhPvN+l/rOa9kzmU/l\nyhtiCi+PMlWyx6X28BkPQLPJJX1mkitiNflWsqPqW+aXKVfkT5MBqNorn+GrSFQ3/YqvZvF26zn/\nvAkuyq6zfH7PsIX/d71k+Vl7XEZ8tY+X6VSn8yU5vAtRP/g9axP76yu72C6XN5c5T8zQfuoZj99c\njr0u6htfWpK1Iasn85HUrRLPM5uQrfDyOpqiq6urODs7i8lkEqPRKA4PD2M+n8fJyUlMp9M4PT2N\n/f39+PSnPx1vvfVWvP/++9W5QJlccUxIPj51OLZkn91H8XqJN2qLr+gl/tHzpQS5j7faQP2XPJcm\nTfT8uknHT3zyJ+LaSPGaJ1BKxigbxJKg6FopIPD7/J6SEWWQzkMXefr7OmeROYZSneuUuq7/TZFm\n7OucZcT1TGjdqgGuHioZQH33ZKAnbFSnHD/vFWWGlskb1kmQ5MbDnScNsWYaaEDYD+cBQQr5IkNz\nH1QygO7g3MmU9KfUJ7+eOcrS6oFMXvQsea7ftJpQbxOrA95sC+VF5Wbg1/st3fY+UHbuSw+9D051\ndtPLWNfGki1lGazXecFxkz3Q6izpqw6MVhJoMBjcAE11AQxtSNYe2mHNlHuSh2/k4da1puj09DRm\ns9kN/rRareoNahm4EGX66bZTPHMwQzsscr1jAkgknvCcAx9Tti8LbDLQ5e0p6ZuDQ6+35Fs38fO3\nJZUlvuqaeNbpdGI6ncZyeb3FS8loyVFmD7MVX5wE6XQ6K/ZEv2u8uM1K46Otqt7GzGa4LrN+nlnk\niSfqs8rWChTVS9/PhBETDmdnZze2iqnfTVLpIPuIspzpXvoc10GSeBNxrTvuhzIZoN56eaUgT/yW\nPOqQcCU/aN+zs0WcSoEvca3X730pYb27kvigiUeuIPP7uPpHE0yUcbdTHAOfcPT+ZrYvs0FeX8TN\nw9gz/Mzr/hzJV29ldlf/fYzctnK87iPp6m0s/U5yPO62ifGV2s4VFfLvETcPwy+VGbGaqKPNzTB6\nNoHL5ySv6o+v9nG7Sj74OPp1T9RyXJuetFJfZ7NZnJ6exuPHj6tzf87Ozqok0JMnT+Lx48fxzjvv\nxA9+8IMYj8cxmUyqtmU2lXVkeuSfS+1z35HZSq+HcsPxlV3huWrL5XVMRsowh9dH+eGkTKmPtPkl\n+tiTP+fn5/GP//iP8d///d8xmUxWfvvWt761cTlZ53zgyaTMwJPppdkcTxasM96lgcwG3AXajQ8D\nCG4XcqXOssRZfzPDWXIi3t6mjbkcMOvPHJvG2ZVNnz2bqr9sWTz7oXK1goDyxIAn44EHHXSArI+y\nwmww7/O+sSzOnPPMGFFpnDl2NDxNUkm268CnxihbrSc+sf8MNvgc77tNYtRlyHVQxprn/nAbn55l\n2ZIDzRayTNZZp49ZO5yvTVIJ5HmddTZgE3DuIDnrXwksuhOkA9Q1yYTAuZIfGjvpkMaFdpU2QaCK\niRvaIgJFfVdd2X0O0upmaG5L8/l85S1OzjPWl8mSrzDI9EV654eiui1mcoH2l3XpT+OkQFP8dzDL\ndmc6o//iN+/1P9dz76eXm/FynYy/Drk9jIgVvqi9s9ksrq6uqgPolfig31A5Wp2YvQHR5WI+n6/0\nzW2x+2G+jSzjF/U4s3vENc5byYRsr65RPyl3tCEZJsvwWpPkMu4JNU5Y0NawPUyG8V7ynj7Fkwk+\nWUi/KB66vAtvRcSKHJGnGmvqcoZP3Pb7Zx8PypffRxlptVaTe+uCl9uSAmm9DZTjQ/7zhQNuu0tY\nh/5hnf9e5zP1P5PvzC6qH5l+lvyq2zXqpvts/c/wE3Ga+Kd7PNlxV/I+kjfu1zwRw9jAZdMD8gyj\n0v46DvEVerqu5/Ub26XfxFO3A6Tsmk8u+niyf2yz610WG7HMpkj8uLi4iPF4XCWARqNRvHr1KiaT\nSUwmkzg+Po4333wz3nrrrXjnnXfi1atXcXFxUfva86wvvpI2wxd17eQzPqbuf3i+FG088aI/533I\n9JT18zt1ip+Ja4VR6+hjT/784R/+YfzP//xP/MIv/EI8efLktcvJBD8bNDee7rho9PXdf8vK2bR9\nJWUeuiUAACAASURBVEfAMmTUPAElZdUsBV9RmIFbFxKRO/BN+ekAp2mi08rAgTucTHE4Q+1OiUbe\nDb+I57Vk5bqRZoDHcVJ/5Cj0HIFZlvV1Z8t20ZAQ3LGdHsi6kaMzboocYKsuN8Dex4xXWZsjVl/Z\nfnV1VQXapX5yzHysHRRRpjSe1L/Ly8uYz+dxfn4e/X7/xmwN/5Qw4DLxiOtDGJ0PLqcE4L4NwoFM\nU+QOruSQMn5lxH74df/vQHWdLXV9dXmLuHZ6vrxWQF/nAKmNTPLIpuqcJwENyo9vWfJZQ7aLwFHU\n5MofjpXLhQNU55mDdfbHk67clpsF1G6PHWyyrCxYyBLkGVBiva431HMP4jKeeXklvfK6m0zeiQQW\ntWKNfZYdkSzq0HNtYzw/P6/GTBMovmVY4+uBvmwQv3c6nTTp6f7Y+SeiDfVEh9oiOeA5bmwPP7O9\nHJMSH7P79UyTfk9952f6ELWjNGHgmE/jQwxDO6X+ZTP75K9kwH+j7eJBtdQztV+rKLUaW1tI+bpl\ntXFnZyc6nc4NzJbxStjVZcpth6+oIn+aImEKJTM1DsRrag/1LcNsar+vhqrDG+t8XeYvWZ/fx3Lr\nxqHk37P6XYf9d9ZFmY1YjaE26e/rEvnNJI/rSUZ6xs9gcT/mddXVL9lx/OmY1zGE60M2zs5LH3tP\nNIvqEj9+PRuvphN3EddJ57Ozs3j16lWMRqPo9/txcHBQ+bqTk5N48OBBPHjwIL7whS/EixcvYjqd\nxsnJyY1xUZtL+uEJsuw58pg8yHwHn6UtzCa86zCM18PfGT94uzK80m5/tFp4uVxWk0SSvXVxw8ee\n/PnP//zP+O53vxsHBwd3KiebUXEqMTsTipKQ1ClnxM1VNyXKlJdOTvUIxFH5fIYoEyq22wc9a3fJ\nYXige5/EdtFYOdj2/mTGjsrqoITBmgBoxPXSZoI1OnX9aQao1WpVh5ZxW5C3y9uo+mUo/IBy54mP\nJ8GKEiKlrDITRQTUTQYwLJfOro4cULhMsr0yguI7AWhWjvjksyzOgwyYqQw9LwChRICPJ+0IkwfM\n/jOQJn9K8k0bwyCKPG3aEdcBNOdN5ljryvTvLs8OONye1RFnNjLSNisBfQUpoouLi5jP51VyT/8F\nPrjdMus/++Z6oOueEGrSjjLgd4DnvKS808+IGLywHB4e7XqZ6TCvlXTc/aTro9rIP5aXyY2viM34\nTT45VvAVJh8HqW4eQMrfZIO0OkdJHk+aZ7bF+6bn6fM0trJtDvKzSRKXsZINJ/l4uZ9kn1l+luAv\n2T7KvPOAPqBJoj6pbfSD7BuTMq6r7J/7NMeF2oLE53zLishXYfiYeZCc4VEmfZVo1HWumqF8qgwm\nQzJs6uOl6/yNq7GbTrwqWSGc7X5WvFXyO0vuZL7LE3bsL8eCvCDfM53y+pyHuqf0W4Z1XJcym+7+\nwO/Xf8oDbbHbj6aJ2DqzR+Q178t8i8gnIyJuvoSnhAVpA1RGxldRyae6vvhKnWx83adlv7Fe8tBj\nPffh67DYbUm6NZ/P4+joKB4+fBiPHz+Ow8PDauXP2dlZnJ2dxZMnT+Kdd96JZ8+excuXL2M6na68\n4ZRl8pr7sszmZpNU62Q1012Oues669LvjPvYBvFetkmfue2wlOso4Wl9rqOPPfnz6U9/upGZUM42\nZYaqJLzuvP25iJvZv+x7SemyckoJAldUtonJCjpkf0WhynFDwfLd8bjB9LZlTqNpYlLEHaD27juo\n6Ha7K6srVI47AmbjqVgREd1ut3qWs9t09Lu7u9Hr9arXfcq4azb25OQknj9/Hqenpysz7S6LVHA5\nR5aldjkAz+Qsk20GghxrATceAtnkWAqQapYymylxORR/M/ksOcDMSXrilvz1jLcMbgY09Tli1Xnr\neZ77Q7DBOpfL5crZL1kSgOOcAQAGEbovAxpNj5/PTJMyB1ICMyVbyd/4PQMkJSeVXS+BaD6jBNBk\nMrkBTqfTaUwmk5hOp1Xih6smHFxlQNrBZ5aQpBw2mWCQrMqWOAjNxsdnHHVdZfmqR215EADhb/rj\n1jIRAyaR9z3zU+Rpds6dJz/UJ9pef/uFBwL8jTLj9lPllXTjruQyxv6rr7Ir7pciPtqyRTtF+6Ex\nFW+4tVr3iLiNWCuLIm6+YbE0yeY4QX2qC4IyPJWBc7W1ZPMznadcZ+C8SarzxyLyTPKZ2cMsseX3\nU1c57moDk4gcAyay3f8yQcFEC1dBawKE5TPx7OPK9nubfSyyMc18d9OTVmwH9YcyJExY99YvlsE+\n8Tcvl7KcJSDcLnC1FuvL/KLbrNJksdpZ8hmu095G1scko2QtS2jfN9HWZ9hFvwmrRcSK//KzfRzD\neYLd7a74SbzN8nld5AkjtyFuTzL8SZkg/mXZ7g/pU/RsKUnS9NipzMvLy2qL1/7+fgyHwxgOhzGb\nzeL8/DxOT0/j4OAgHj58GO+88068//778eLFi3RizvF8qf2U7ZL++HePE/RfvCvpDv0mx0R8Jy70\n5E7E6hZdvmXO2ypZVILedzCsG7+PPfnzG7/xG/H1r389fvM3fzMeP3688tvXvva1jcth57jnUkQH\nWgpgdI3l1YGFbKAzJrvhpJBuIngqVwKhfsg5q87SEn+fZS05gazOzJmX2ngX0my7hDYDappZ6PV6\ncXBwEIeHh1XCQUSDyINWfbVIxPWs+d7eXvWZ8kAQJMVSWQoQd3d3o9vtxv7+fszn8+pwTrbHgUJd\nYk6feVglwTedAp2M7lFb/VBI8qNpI65E3M7OTszn86oPklHnhZKWOp+gdAYRdUqBOgEG78mopIsZ\n790m6LrarBUiSryq7SxDz5cCJPKL4+YyUgJa3q6maFNdzsB5SY79egZeBD54rkRE+S0q2feSQ2Yd\nGqf5fF6dKzedTuPi4qJK+ugtElwpFxE3QJMTg5S6+2hv73vsSgEW76ecEchyPGTfer3eypvDlCig\nLWJSQv3UaiEm6D1Qzfyt2za+0pz1yU5mW+4ycOy8z/SsZBsz+WqCZKv9GtuTbdFxOS3ZdQZA0jcl\noUXip1a+SZ7F/+x8HscGBLgqk/er/brm5/l4cs9xkgNlB/ism6staVOyxMpdibzwcROV8JzzhoEe\nZdNlVrgvIm7gEa9fOCKbaKFM6JpPPuk8seVyWSXGqb/yg/KL7KtPYrEvwga+MpkBE7GtxpeTdXcl\n8cXbSHshyrZ93QZHlZKRTj7m7v9LmNH9scujB4Alv+n+K/ucYZOIWMEzXIF5X0QbRDtErOv4Qm1k\n4sBXSniS0fvito1jSttJ+S/ZZ13z7UKZjHEil7ZS9zHhI9lmPe7nKSOcuMqw8H2R2q3VP8PhMJ48\neRLD4bB6E9jx8XH0+/3odrvx5ptvxk/+5E/GBx98UE3oZWNQkmevu2Sz/T7+z/TMJ4xdJkvbd6mX\nrvOSU9opx9HeX1/57Hivjj725M/f//3fR0TEX/3VX61cb7Va8d3vfvdWZblxpJNyIXDjGHHztZ0e\nhLiQlZypys/aRMqcTClg5O/6T5DkWW6W622hcGYKfxun1hT5AXlcFaO+LJcfvcXk0aNH8fjx4+h0\nOjGbzVYAiWZoCE5arVYFYvSZW72U/GF2VqsFVC8P/SXPlPzhuFH5CHJ1zcEpHbT+aIxZHt96ov+6\nx8GWGyAPzJokBgtuJNUfNz51YMT5yO80siyL97qOusNz0J7JPNuslT+LxWJl25+cfAbWFFRl/eeM\nH8fI+eN89DqaoDpQQl6xLZs4TQeuWX2cUdWshfi8qT3lmLteaVx0LpfejNVqXb8Nyw9rXscnH4dN\ngoH7sqkZjxzYuX/xyQBdZ6JH5XY6nRiNRrG3t1fZQ5+t9u2wnHWSfVQgx7O6WAbtpK9K8EkN2jwm\nf/hb5r89GNkEJJJ/9wGEFTSL5Pe00kd6od/ER/aXPj3i2ucxENDv3W63ShjoeqfTqc7B4oy9A1rX\nSeocJ6Ycd2VgmW9OJG999jTDALouP99ut1eSFAy+lKi8r+SPyHnC9pLc/6i94p3aXeffmPzkpBnr\n0H+3Dx4QZtjTcYS/tTDienWH7uXb5bwd4gnlktdLekcsLj41feaPY7HM16mPWYJbxHFnH9zuUJbd\nHqm8UoKTv3k/eI8/lyWLvc7b9CPzIbyH9jdrU1OkfpfsvCcyI67l1nlcCpgp84wPhRkirld+cKUT\nbWeGK2gLWT/bnOFB4msmrTipUpr04f3eZ7/Xr5f8412J+Pr09DRevnwZw+Ew+v1+jEaj6m1gu7u7\n0e/348GDB/H5z38+nj17Vh23oQkL9pNtXue/ieOzcVqnI1whqbJoL3u93o1JDm9nJn8R19jH4ypv\nn/ucjA/r6GNP/vzrv/5rY2Vls3qlgfMg2fcm05kTUGRl14EKF7514EDXs3648HobuKXFA2WWp2ez\nTGPJ8N9X8MK+OI91ncGGgMbFxUW8ePEizs7OVoywAJ/Gk8BEvBBYYsJEisrVR75ayI2r2iUDnyXg\nSA4iCH44Hl4PE2Pc3pElVNhPBzGsq8nkj/iWAYQSkNVstjtGb6c7dvKnZEBZvxtDggUGHCpXZbue\nCjSo3Vy5pLIczHJVGct2cObfS/rONjdNDmSzoIVt9JlEEWXXy8/KlC74gaJ1PKDesWzey4BUNkTt\nUxJDINCBcRZ0lXTaZTXru9/f9Bg6yFF/mXiU3Mo+uo/o9/txeHgY/X4/lstlTCaTaixardU3WAjk\n8jy6nZ2d6Pf7VbJCNlmJPY0ZAZaS8P4KXpUnXiox5OPkz9BG+gyY+/PM52VjnPnIJkltZgLS/Yvw\nCe0bE2/8Tj/pWCfbyqVxOzw8rLb1TKfTqp4Mc7BM+lGVJx/rbXWbrWuSR60yynRJ9dBv7e7uVonJ\ny8vLGI/HMZvNqsOKHcyXVpjehdQnX23OwJtEeXO8wIS180jPSl9cftlX2r6SD+EqnWwiQ/dwK7f0\nsI6ou27zM2xHXmU4IUt2NEXEJ+vsO3mSrYRzjFVKxukZL5+fXYZ4b7btzXED6/KVVaX71a4MN3o/\ns35r3EWUFepxk77PY4aSPEmnpDu0Vx6Qkye+5ZV43CccMv6u8xlsm+PUbLtZVm4WM2V1ZvbI+eYr\n9+ra3gQ5dppOp9XWr6dPn8b+/n71JrCTk5N49uxZDIfDeOONN+JLX/pSPH/+PMbj8QpOcV12nrie\neh9pR9dhP5Xfbl+fR0pcSTsuu6HyuXrT/bWuuV8o4co6nVoXk5I+9uTPfVCdEuia/uS0CZrc8Wbg\nOgOWGiB31tkMHNuRtTv7TudMAfMA2vucZeD5OUsaeVl17WyK3DBRWfX7xcVFzGazmM/n8fz58xWQ\nmSVXeF6Qz1awLgaC7sAJvDl7xb2YnvwpjXMGyKj0dE4yKEz2uAGjzPk1zpLRgBBgNEHiH/uYzaix\n33ScLMfvy0Aw7y3JJ/mcPcdnmHTTdT1DcKhZhsFgcCP5w7IZqPDwcIIO9o/tyGbUGATWgfrXJQd0\nzjN+d76WwH3pt1JZXHGwibPKgFUGSMVTgnaCN+crqdSOrF/r7svsblPkINQBh59TJd2ULPb7/Xj0\n6FE8ffo0Op3OyoyallZHfJTI6Xa7FV+ZHN/Z2YnBYBD9fj9arVZ1jh+DgsXio20baof29NOPaUwI\ngLnVwuWP9tHfkpX5Qf4Xz1yfXAea1jcSAwr6KiXMtFJNgNH7ovYqqcfrnhjiobbiD0Fpt9uNfr9f\nrXCljqmN7mNU/tXVVXQ6nRgMBtFqtW68jUXl+Pg63mq329UqS9pS1+dutxuj0Sj29/er5E/mczN/\neR/E5CN9RuaD9D3DXZkNcqyp1YpZX9wGc5zc92R1U5+5XYY+irKjfmgFtbZGRayu5vb2Zb7ev7M+\n70sT5H5PY0c55WSb9JLnPmavTy7Z/ZI/oay4vLgfzcqNWE3yeJ2ZbLnfynTDfVY2Bo7PVWbWp6ZJ\ndodtzWIw4VPZNSaGs1jA5YHlZdhBzzk/XO7r+OB4LxsLlkHcUoeBnF/e3zr98+eb1D2S+qGzf16+\nfBn9fj/6/X7s7+9Xq8FPT0/j+Pg4nj59Gm+//XZ84QtfqA5/5spP/ncs6rpZwpn+vE9giDeauFS8\nyTfERtw8NkDP8sgW2nLJm/iRTS67ncj0VLaL+r8ukf6xJ3/G43F85zvfie9///vx6tWrlcH493//\n91uXx+CpNNBZsBNxc8UFDUSmYCxLnwlmGBDzfoIa/ZYpHdvMfgmIsT26J1N4lZU5FlFpTzjLv08S\nEMyW9bIdMuICJnQ8VBRm+lm+iNun/HXOVFYGL5QFlc+EYWb4mVx0meJ1OlY6cg9eHWBG3DQwqpMz\niXzmvhxynSPVuGSOlc+y/SSXWXeEETdnLkqzQrzmwKgEMrUNkOf+eNDCMbu8vKwCuMxpZnxhv9gP\nAtL7oFKCzckdkOsKn/e2ZoBI3+kw/eyKrA1ejo+x64ZAu5w0t5V5W9i3ElgnZfY162ep/3el0nJg\n90XeZvLl4OAg3nzzzXj69Gksl8uVwLvValUJ9+VyWe295woNAeperxf7+/srryunzaNM6I14XGXi\nKwt4tpa290asniWi/2oD+++2gL9lvi7jFe3lJvJwWyIP6b/YL5+ppp+QT+B1JYJms9mNPhOTMAgS\n//RSA7eLTEwLvO7s7Kxsp/Zkf8kmcPx0XpwC6dJh66RWq3Xj4N1Wq1Ul23nunOrT9/vCMuSlt9Vl\nn3zUquR1E3i6Rh9HPnvwz2RMp9OJbrdbbZO7vLyszifkWyzVByXXJGMMmOXbPNjmm1Ilk7fhe4Zf\nmFDT9/tMJJSuqQ06+J5nmGVxhdveuhVn2bO87jFM1sZMdkqBrV93+5bFBmxjKTng9jXrS9NEuWIy\nmb9J9/iyDuqPY0SWyQkjyb1jd5/Ypy1Wu1i2r+hxPO7bxtynOS+lox67eN2MN1VWFguU8Mx96R3L\nFxY8Pj6OwWAQe3t71dYvbdk/OjqK0WgUDx48iC9+8Yvx7NmzODo6iqOjoxQ7ljCZ42wfe+KBUt9l\nJ2UrNZnlx5BErManjOeyVc+azOBCBNIm+Nj7tEn88LEnf/7kT/4kPvjgg/j6178e3/jGN+Lb3/52\n/O3f/m388i//8q3KESBhZ0sDXwLqdcpD8sSLL3HU9SzA8BnOUpDg7aBBKT3nSQO2PQv8syQAeZit\n2CjVf1fywIvGk4kp8VuAhvwnQPFtCRwLGWmf5ckco88iMMgQyOp0OlVbCQBZJoMklxGVpT8lpjyI\nlZHhGHDmiU7Axz8bwybJAYLXT3IgnBlhyoLInabrZ7ayg/frHraViT2vR/VLvrQ1Q07cl3HSydYl\nMbwfGQ+dt2rrfWxdUGBAWSoFH/65dJ+Pjeu1fvNzJLI6RCV7TDlhACHbwbf1LZerK0Syfm0KdNxP\n1JWRyXNT5PojkixmM/BKYOo8Hp3zo7efKajXb9STdvujbWLip/RDK0d4OLT01H3G5eVl9Pv9GI/H\nVfu1d58z6yyDPNXvPuPmNlN9zfjk9sF9+H0DXrVtsVisbHdUkOKH9brdoM3xQIK2ibznPQwuLi4u\nKr5LTt1OaqydX3xmMpncmEjx8dC9ShpI9pRkdJBKH6Fy9UYyHk6uxLwCIteJ+xhPBpKZHnoSz3Fh\nFuBlski7xtf/qu9KuGgmWvio3+/HcDiMwWCwois6TFWrqH0FHr9zzIlD64JHH0OXJ5LrNu2ky3iT\nZ/6QSrFCRJ788eeoUyU8ybIdb2RBG3/LbFcdT2l3qc91ZWc88PtL/p79z+7ddPXBbUn+wlc56jO3\netGGsH2OqdkXxygsNxvnEn51u5DhHCbHSzaA7dW1rP0qL5MdlUn7od8oK+yzf78rlXDQYrGoDn8e\nDAbx6NGjKgE0mUzi6Oiosmuf+cxn4stf/nI8e/asOhuIE1tZfx2H+MQ+Y3O3dRGrL9PgWXmcwCRm\nEUbhsRgqiyvdfYzYzrrteC5j7rO5Wjeb3CJ97Mmf733ve/HP//zP8fDhw9jZ2Ylf+qVfip/92Z+N\n3/md34nf+q3f2rgczgLVUcZEB1aizMBK8V25mUhw8OR1lVYk6Lvq0fWsrFJ/WBeJhoDO1uvNyi45\nsiaJq1N81tGDCPVFQUbE9VkWzPK7gaUhdKOgMjzh5fvXycOdnY8OOdVhqO4kWHZmUDLnod8EilXG\nYDCIhw8fVmdyKMGgNxWpz2oDAxs6q0zO70rUgczJZYEJHZ4Dj1Id7uj82VJSlc6UBlXBjgMEd5rU\nex2w2el0VsqkjIrU12zlmAMld7R+P59pOgE0Go2i3+9XgZevJnFwIMqS25mOlUjAqjT2XOnGZ9YR\nZ130dsBer1et+vFySnZ6U3JbXrKl62z561AGGCRPSuCU5EX3X11dxenpaQWwjo+P4+LiorJvSpwJ\n8Ci4HAwGK2CIWyIye8u/xWJRJc0FgiQL2l7Waq2+nlok26uVdb7llAl4B79qr0Bi5uNd71m3go2m\nSDaACUm2kX6avkK/EYtE3EwmaZz1n/ZXfPUgQCs4sqCHbXGbRXnTGNEP0X6rnMVisbICRWUQwLtd\nZXKC23J4bpKe84m6+wg+XY7cn2U85n8PjMU7jRX7zTp4Lpbq63Q61euSu91u9Hq9GAwG1UHf8l9K\nZGg1qzCE+Mo3bamflB31yf/YNyaT9J26JfljcMP+SLZlU9SuJol9LAVRIq4uKWFJL9fLz/wly/d2\nUJayMnmf7nF7R4xDrJYFg7TP3kb6NV4jX8gbP4i86fhB8uj2Xrat7uw3n5ws+UefNPaxyZ4lH1w2\nnLc+BuwT28n6VC777X2hneCY+7hmGNPlOPt8V8own3hzdXVVJXq0lVyvfp9Op/HixYvo9/vx9OnT\n+Imf+In46Z/+6Tg+Po7ZbLYyeVDSC7c1TBw6FsnaTFyp1TtanURey8ZqcoO/85gDxrDyiSVsrb74\nd7aVfXTbWkcfe/JnsVjE/v5+REQMBoM4OTmJp0+fxrvvvnurcjLQV2ckVXem/A6kaAQYRLsTiLi5\nWsMHLHOoGU+ojN4WgihvRxbo8r8MQOZo+N+vNW24sz6XkhMORpz/MrbKwGaGUf3wZZcR11vCpMgi\nghrWo8/KQCuo9NdHsl7POrvR5W8yBgpwer1ePHr0KN566614+PBhNYaaKZ1Op9Vhl+fn59Whl5zF\n4+yegqqmyPvncpgZY/K/pA9u1EjulJyHHCu/X78peNQ9fjgidUr9E18pSyWZJTCS7dBvns13+cgc\nl+6rS5i8Du3v78fBwUG0Wq2YzWY3gm3pf8leZbYzo3Wgwm14ZpuYAM70O3PQWqXiK2Ay0M7vGQ+y\n+9bJbMlpN0WULZfl0thRfufzebx48aKyKZJxzXJr+4iSMgrGCG4YFJXaqP/681l9gTCV52crSA+5\njUVJcJHuyYJxyg/lhH7H2+w4QvU3STy37urqqlrh2W63q9VM5KGIflDPRlxvN/fEkPjFAEnj3e12\nYzqdxvn5+Y3ARXjB+ejL0jWGShwx8UJ+q71cScnEAPnNoFK2lJM7PhHHCRXqZ2mM70pKmJCoC+53\nxM/MFtJXcpwcn1C3pUPCCv1+PwaDQZXwlr6qHj27u7tbJYgGg0F1zpJwAs9dor5yHKX/3W63shWZ\n73R8oP5q8s4ncUrBTKu1msy7K5EfxPmqM/PnnDTyPvK+kv8sYR3HAmwj9bCEw7O4h/jLeVrCRmxP\npo9eX/ac7LgnXkr44XXJEz8iT/qo/nXYm7ZU92XJn4wfIsZl+l+KM/Xd8c06HmX4xdvlE5lsm8gT\n4Rwjf7YOi78O0U9n/Ts/P69e8a7DnyeTSZydncV4PI4PPvig2mbOw5+fPXt2Y5z1WTbUEyKc4Pc4\nUDaCvONEl7akM7ZSncJOuo+JayaaVK/HSpo8cT2tw5FuU1R2SV5JH3vy50tf+lJ8//vfj6997Wvx\n1a9+Nf70T/80hsNhfO5zn3ut8gRKMsqMWcZIKpIy5v66SxoLGTt9597n0qw/6/ZAyLdvqQ1u0BwU\ncYm+gx+W73WWhMgDUj3XtBH3ttGp+qxSxOo5AdPpdMVYeX+8n1nbyS8qDPmqIEPASTNs3W43zs7O\n4vT0dOVV8OQbx6HkBHhNM3QR14kCAXAFtBFRHT5MUHh1dRXj8TjOzs7i/Pw8ptNpnJycxPHxcSyX\ny5VliU0RnSSTLhkQ8r46X/TdKQMulFGfyalra8S18XWgpPIpc9RX6qeX64Dr8vLyxmvh+eezOyIG\nW6U6mqTRaBQHBwe1/fMxKl1zW8F7ed2BsN/jAZL4yllgvS0qYhXMtlrXq0c0691qtVZei+w6qv9e\nTtbf0hgQ5LNMv9607pV4XuIh/dRy+dFWnclkstI3zj5mqwZ1H9/m5fbN9d/t+87OTvR6vWi1Pnrd\n+Hw+r+7XbBq3VyrxMhwOq+f0TBZAZrPOLtslHFDyk3t7ezEcDl9ztG5Sq9Wq3rAlve90OpVsZ5MV\nBJc8h4I+8vLy8sYWV74Fi3aK24Dm8/kKntEY8rXevgXQJ2MiyjPatIV8eyJ1wwOm3d3dFR1WOcvl\ncuWV9Uz6kTYBvq9LWZDMVaTZve4H9Ft2TbxgAlB16OxDJV60So+6qASfJ1Kp48vlslrNJz3kW3RK\nfVHiR7Pzwt5c7cO+eAJI1zwB5DxperWWKMMMLiu+KsuTP44RXP7cPpcwKH/ncyX7yWvuc1h+1sfM\n97JtGY6uwyIZ/nJ7fB/kdlH18hyyjFfum/TH7c3Z7g495yvavJ+6ryTvdf3J9CyjrE3eT3+e4+V4\nxLFJZoeaHEuf/HTsp8Ofnz9/Hr1eL0ajUfVGytlsFi9fvoxutxuf/exn47Of/Wz8zM/8TLV6eTwe\nr4xzhls4NvSLwkRMZMtPabx179XVVZUs9xWm9HeM23l0A2WQ+kLbzDglS6RqCzATSRk+3cQHfuzJ\nn29+85tVw/74j/84/vIv/zJOTk7iW9/61q3KITNFmWHLDEEG2n1gNEulP860MnmQzYgwQM0c+UL3\n6gAAIABJREFUOevkFhQJDYWPbXYh4AF/ngQqzSaUghh+3jSwvgspYcY2OrBSOwSKR6NRtFqtmE6n\nFY848+izlQwk2D/xh0GG+KnrciqaER8Oh9Fut+PVq1fxox/9KF6+fHljbzH7sFxez3RnbYpYXd1F\n8Dafz+P4+Dj+7//+L8bjcXUY2nK5rABfq9WqTsh/8803q36Mx+P44Q9/GP/7v/8bz549i8lkEldX\nV9VBk00QjZdmIOkcs0BgnS7qOTolJmWorzSOGcDOiCCBbfJ+udNWYk7gwFcOZEBM2f/z8/OVtrHu\nDDC6c9b1TWaHbkOSZ/JsPp+vOLyMSrY2c0AZUMtAh5ft12VbxQcF/wTh2q7U7/erpbmayfYErbeJ\n7ff6nRc+Rhyb+wS9pbaKSqDKx0TAhqCCSU/6PSWeOWPFRLKXy9lXXy3LJIAmSbQtRfcr8SNwJn82\nGAxif3+/WsnF4F91e3+pv24X6myEy4AOoHz48OFthqiWxF8lQbSqyAOYbIuWz0iS5FMIcn0CRTZT\nyT8PaESlIEvt0m8+e8n2u5zQN/iqNed7q9WqDhlXv7g9jNiKz3wcAaiIOuPjxL6UKLNBmzyjc6HE\nHyZiucLKbR31QO3lNvNsslNtks4qwU6My2STyPE1x5kBl9tdyqtwM7fBNUGsz/25+2riG9oTBoMZ\nn/Vf5fu4lrCQ+u331pFjZj7jtjF7lu3xNmc+k/qlMadNuE+SvKkN8leejJYP8dWIKoPYP+JmwixL\nvPoqD/1esjlMurPsOv9DG+3kdftvjkPYJ8fXTHCWcDD/N0HZyh+1jXHQ6elpvHz5MnZ3d2MwGMRo\nNKqOu3jx4kUMBoN4++234/Of/3ycnp7GeDyOH/zgB1WcI344PsmSeI5NhDm4rUv2Txh5Pp/fwJPU\nQW61pcx4bORxn+wd4w4RY0dtyZ9OpzGdTld077Z+72NP/rz99tvV50ePHsWf//mfv1Y5pWysA8Ms\nONP9osywEdA68NWsmO6TI724uIh+v7/ySjcadXfAXNLLlSb6XgpKWq3rN7JwBkirDpjU0P00kCwn\n44WDt/sy6qzL+8zvp6en0el04s0334yHDx/GwcFBzOfz6u0mAiziBffP08h7sKPEke71wI+B0tXV\nVbx69Sref//9eP78efU2HDeU5L36wEwz28QEH+VJq3nOz8+rTPhwOIzhcBiHh4crwEV9Hg6H8fTp\n07i6uqrO5tjZ2Ylnz57FdDptNPnj48fkTJb4IVDMZsrYH55roOdZDsfQy/OZYA8C/a0l65yexk6G\nnIlG74MHJG6DCFy833QAmbNucum7ytXMuv7G43EVEIrcLjg4Yj/IN7dVdWCUY+88U1v4CmLfZ83E\nD8+6UPLHt0OxDRnIzXwF++IJZsqtl1faS34XclucyTH7kAXISiL4itFsRlHPUT51jcBDuqIDZaUv\nXGGgIFJ2S6QkfkSsgKdWqxWj0ahKvF9eXka3262Seh6wiLjCgeCdvGF/XV5VRq/XiwcPHsSjR49u\nP1A1xLMxdH6cwF82XpR/tl1+IwP9EasynL0MwfXIwbnLc4a1smS4JxfZXrZN97AukWSHssfXu7ve\n8iDorP6miDY5w5D8Tj657ritI7nPc9zowYQfmE7s6baBY88JLwXLrVZr5TwL1aU6dD9tBSc56bd9\nPFS/21Cn7LkmKRuHEjmGpB2sk2nqB+VV9/kfyyj5zMzOZ7EOP/uz1I1S2Zlsuu/jb8Q89xkvZJOL\nWRDtWyUzW0dfyNjIxzli9aU4rJO+h0lKt8ml8fC/kh1QGdlv/O9+m7xi2zOc6m1oegw12U974bKo\nCZGXL19Gp9OJp0+fxmg0qpIuZ2dn8fz589jf34/Hjx/Hl770pTg9PY35fB7vv/9+TCaTFX5R5jPb\nKVmhDVU8JfwimVBCiBPI8qdMpPMg6Aw3uWyw744j2XbVp6SY2iOqsw3FMbnlGN6ZvvnNb8av/uqv\nxs/93M9V1/7rv/4r/uVf/iX+6I/+aONy3Dk4UHXlqDOivOZMyxSX9VOYBfa1csRnYPwzhZLKUOpv\n1nduUyPA1uoDvqZSz2aG3nnhWfGmSfxyB5MJvYz5fD6Px48fx2g0Wll6TMVif/m6Z26TWywWlSIr\nSFN2WQBIAaSWFU4mkxiPx3F8fFwlZjhbpr5oFRbr1pjwrR3aWpbNTChY0Sts9/b24vT0NPb392M+\nn8fBwUHs7+9XW8CYqFJ5e3t71VkAeg15U0SdYmLUf+eYOqjxe/Ubl/z7afoaYxnaxWJxY3WHl01A\nrDbrPx0+79Wz6p+XnQWNEavbZdzxO0ByPvnsower6wz5bUhOS3ymjPrbe0ogfF17Mpup69nzHuTo\nXukA92Xreb3Vi+deKJDxtzAwWPOZcg+4S47Ux0+6ppUsmhVvtVqVc9Y21aZoE5Dtfob9dBkleCXo\n4O/SSc34ex2ylePxOE5OTuLs7GwFqGjblOqhLVB9epMjA9OIqOpUO/r9frVtSs8zcRSxuqp0uVxW\nssNxzpZts19aafrkyZN48ODB3QYNxFdt+5YDjZXkx20S28qx03/ONIo86UBb5CRwruRgv9+PiKjO\nBeP2q8yeqj4PpHSNSQKS7mWgHHE9OSM7L765TXQbL7qvQJSy4vaiVGcJT7m+OVbTf36WHuvMHiXA\n3d8xAFYdnLwQDvF72u125VN9gkpJXvWFuNUTeJTLUl8yX0kb0/T4lQJB8k5jqM/c9sixyTCP+wmV\nT/1gGaXyWGZ2zXFCxM0VK7qWYWp938SfeHszzO59vo+xk80UPpePl+/iZD2fyWIn9jfz+XxWcpCN\nHRPkXh/54BhTbciOoPA63De5Pff7RaV+8fes/FJ5dyHZGuH6TM8iPor1zs7O4sWLF9X2L739azqd\nxqtXr6qzV58+fRpf+cpX4uTkpIrn/GxT8dp1IiJ/YYySPlzxx2NgnCftdrua3GLMorF1TOt8Zd/9\nSAPKCtvHN4U6HrjNmH3syZ9/+qd/it///d9fufaVr3wlfvd3f/fWyR8RhYjOI2NISRl4H8GwfqNT\nzpSOgxIRK04xc3L+P5uZ3IQHTEBphYnAgAIS7m317Lk7a7ZX9/F7k+SOmMQlfMvlRwkRHXR8eHgY\ng8Fg5TWcnklWkoDJHyXEFKj4W0cEapggOjk5qVbPiBfn5+dxdnZWPa+Z24ioeK8VSApQdRij3sah\n5f4l582Eg7YKKPt9fHwcT548qRI8OuCWAdh4PK4C53VO4LbE8pg9d1BPefLsd+Z4JWdyEprdJ0gR\nT2Vs9bpobVuirmXnb7mx9OCXvKdzULs5Q56BN9Xrqw9Yrwcr3paI60MMPfhrcgyZFOVnrd7wt3dw\nTPndQQp5kl33exyE8FkFOVwRJhuvFT96e5n2V9NRO78ZmGarEjwZSD5RTrndgWVrpYsncJsilyvy\nSn2hPxRlSRsG6rpfgaW2Xglcy5fwDBeVI8D26tWrePXqVZX82dvbq1YBSa+l2xxnjaX0S/rts2yu\nq0wY0J8pAa9rTBCLR3WTGjs7OzEcDuPx48fx+PHjGAwGrz9gRrLjaitX5Ag00veqvfrO7afu05nU\noUySP36NQaQSwnrzmxJtzqs6QMuAhpMSntRQ+0vJQPVFW41ms1lVpuM7BhQsX/c0SY4lSwG6/8Y+\nkp/0U/ouuSZ+1LgzqankD48AYBKXvPVEjfRWbRJOUfDCsyU0DkrESX45gecyqd9LvJIsO2+zM92a\nIia/vU1ZIOxy6jaURH+R1euf6+IQXx3gK01KcU2Go73vsufEFSU/ncUsTiyDbb8PzCK9YFJS7ZTs\nUH68X25bdC3DY47/+J+8yWIm1eHY1fVa922a7PRYLfP/HmvqmvdZeqpyfMzWteW2RHyliWiPC0SX\nl5cxHo/j+fPn1YTPwcFBNe4vX76Mw8PDeOutt+Ltt9+OL3/5y3F2dlbFa1nyr9QXjrVwglb9ajJR\n9Za2YvGQZ5/8dczv7aK/JD88RhHJz+mMWNfPTTC36GNP/mSGgQb5tmVl5TnzsoytKxI/0+BrZYUn\nTaS0HlgqYGVf6UQyJ+N7FV1Y6xwFy6DhkxO/urqqEg8OFh0YerkODJskOiOBRAYfvI/8ODk5iVev\nXlUJGje6UiaBl8x5nZ+fx2QyqbZuMQjSOQ8CTko4TSaTKnhRIkqHLPPkdxp5tYfnQTGbraQNZ7fJ\nf/WbAa1WIylAn06n8cYbb0TER3qkfuk3te119KtEPoNPYuBC0OnBKp91eRModbDqxpevoc62gFGX\nvE62g20gkf+cqREIzoIilZWBK/1GEKJr4ifv8aXLTZHzSYlIObLxeBw7OztVctNBvK8mKPEu+0zy\n8akD/NIpAVe9enw4HFZ6pL6pTtoS+gMmDjz4YuJH9cm5037qPCdtkdD+a/VFNi2bLboLObAgIFX7\n3f9ls5OSX40n+eRnY+nMJa4kpW7MZrM4Pj6ukj+yq9oKrfZIXzNwpPsl97RbbgOYAFE5nEH1iRom\niUpySyA2Go3i6dOn8cYbb8Th4WGj544oaOHW34jVBE8WVNB2ZSDSgxLXK0/0OXHFqN4KpYkS2ith\nAU66sJ08oF34Q99dDukjJF/6nWf86JBhJRK5RN79AvvWNGYRf/W/BOZVtyeXaTf5P/MJrI/jr88M\ngCnfHGffWukr0ZmUjYgqAaRyubKCs+DEbrSjfiZV1kcmUujjyB/i2CbH0JMoTIJIDh1/MzjL8Hkp\nSKONdf/vmET1u+9h21y+HLeU4hrKi3jKfm8SG7mM8n5vF3Wx6QSe4hrHRf5yHLedJVztdpbyS/vF\n/nLLdFaW2wWOpb/9SRP2ETffZOZjrjiUfrcOgznWdn/A8b+vCcaMfMKBbVRfIj6K0XTI8+PHj+Pg\n4CAuLy+rbV4vXryI/f39+NSnPhVf/OIXYzwex3g8jnfffTfG4/GNxQOkDBNSX7XKtd/vVxgmk2PZ\nRflKrpKMuOkbS/5bfHFeOE8kL9yNUJK7TcbzY0/+fPWrX42//uu/jm984xsVKPjOd74TX/3qV29V\nTinoiFif/aq7LuXQ7KOMSt0sBhWVIEdtkUHPZpB9OToHP+ImgCkNKg0wHTezlhJSGRIaupIBqePz\nXejDDz+MDz/8sGojt1G5E+Z4cpZYJ68TgNDYctzk3JUU4yG+7GOn06kSM8PhMAaDQTx8+DBGo1FV\njmRCipjNMtJQc7ZMCSaVf3h4GI8ePbpxxgGdmxRdRkmZ8YuLizg5OYn3338/RqPRynYpbd+5b6Ou\n8t3pk1duiN1IMfDxYE//9aexm8/n1covAl6eQ+Jy4+BMdXP23Z+lUyBlYI+AmmDWjb73z/nCZ90R\nNEHe1larVYF72SkFcTpcnXxVHzJgta6tJXuSXWcQwzZ1u90q6dPr9VbOofCkX1aHy1wJuGfjyPsJ\nxLgMXWVvcoj26xD9lAcXlDe21xMpupf90zP6TX1qtVrV9jq++Wa5vF4FeXJyEqenpzGdTqsgXavH\nFGBqax5BsOpiv7QFV0kk9UO/LZfXAanayTFx0C5AV9pmTAA2GAziyZMn8elPfzqePHlSbX1qimTD\nVSfPBuBYcYZY7fRVFvyucslPPUv7yDH2cVdZmm3d2dmpDuL2rUKt1uqqJY0pbT5tKn201y2+RFwf\nXK2VuEq89vv96u1kaiNtMwMkEXWhKeLZFeoH66M/dPxEHuu7nqONURmOFRmoccWxzvzjqjqf4HM9\noh3z5Ib4G3G9XYPBDc9U0YpA2eg6TO42VnULQ/lB0E1jF7fnzu/MBpI/xArOL/fV9APOB96T9VF1\nevKH7S49l9VHX51t7/XySj6dskX5Im6qa8tdiXJH3XdbUkq6kciXLGaQrHvcx1UrTl6fx4HEFLrm\nvKY8+RixbPddWV/9Gm2W2wfyR2U3mXj1PnO7qU/cqo3z+bw6/FkJoMViUb1t+dmzZ/8fdefyItmW\n1f8Vka94ZWRkVmbVrduNQqu0KMqVVgei4KCdqTMHPhAFUQciKPhAB0JPBPUPaHui4NCB/4AzeyCo\nCIK0jSDSbfdtu27dqnxF5KMyw0Hx3fk531z7RFblyfr97oIkMk6csx9rr73Wd6299j4xHo9jNpvF\nZz/72Tg9PY3z8/PyohzXv84Lzi2fA5ubmzGdTmNvby/Oz8/j2bNn8fz584JJGCMQDsnmZ6ZTHH+w\njY77nYfiVRbsZN/uQu88+PPHf/zH8Ru/8Rvx4z/+4/H+++/Hhx9+GAcHB/HFL37xrcq7i+LKvnsZ\nfq+vbBF86RoBCK+7wecKMs9eUXk0KGyLnmPdbe3nJFa5BL7KAuI2MBqYLFJPYNwlffOb34wPP/yw\n8I3K1p0td+h0TdsT1D623Z0d8TFT6qR+vx9HR0fFWdnb24vZbNYAV2rzfD5vbElxIEDnTPWpzXq9\nql7TPp/PY3d3t7zSnqsLETcypfGMiLLP9ejoqDwjsOwKrktyRR1xe4VBbfY54fPEQZJkQc96ubqm\nLCgCs7a0y8wgsu18lvdp3lAm3TiyTAJrOnDqmwCY89N5orL0TJcBBOe52qt0V4JEZgDRqSPVDKz6\nxnucvxmIVpu4Siznghk/CiSQ1x4oaus7nfCM1FYFnJU9eX19cwYJ+SG5FEDwV4J2RRmA8Dbzf+og\nyjDnlc8hOWT61DbWiIjJZNI4H0aBewbBFJCJiBIQ8rO5WDfbI/6enZ3F9fXNwdG6T1leWgCgU8rX\nXFPGfXue821tba0R+Dk4OIjRaPRGYOouxP4rYCM+i++c745t5Czrf2UOeSamxprbhDJb4HIkuT07\nOytbitUujivtm+pT29w+1DINqKu93VdXV3F8fBwRr8+DUjncwq3AIm0AV8jV5i7JnSKOlV/n/WoP\n+8rMFi6SeBmUWWIDOUjHx8clMMt54liKZbgu5r0qfzgcNl4MoPnlh4cLL2flUr70nbqBRN3/ELiF\nbfK5Qn45dvJF27YFg8wfyeZcGybxQCn5XNNFlD2vn/z0sXHM5gHibPzcoc2IstoVeRZOFjCVDWY7\n2mQyW8xxPEfeaCyk54S52wJgzq/MV3TMyjL0fFtggORB/Vrfs3rbcPJ9KJsXDDD7go2e0XZyLfhp\n+9fl5WW8ePEiBoNBPH36NPb29uKzn/1sOY9VPlZmY2Qr3RZJljY2NmJvby++53u+J777u7871tbW\n4utf/3p85StfKW8WI47nLhv1jfLpvHX+us7J7uGzbl8dT/n9NXrnwZ/33nsv/u7v/i7+7d/+LT78\n8MN4+vRp/OAP/uAbK4maUiWQ5b36zCZPpqwFnOiM8xVuGfNdyOi0aHsKwZgUiITRFVlb/2o88TZd\nX9+cRSQwpC1IfPtKW+pfxuv70vHxcRweHt5Srr3ezcqhlDP3n8sZYdaSJpr6QN6KCAjFHx8rXRf4\nXSwWZQvV06dPYzqdFpCzvb1dDiITXwnKCKQ8CBVxA/aurq5KIOjly5cl1ZBRZYE6Ki0CXaYlyvHl\nNhUHrPcltYFzRfUQUPkzIo6Ty70HQn0cKYfMTHDDmRl9D3h4ECYzvgwieoCGc1HfGejVainLz4Cn\n86gNDHRBNE6q1wNAlKF+vx9nZ2dlnzH7y+8ZiFBdKtuBWgYSudqsZzQHlIGis8wcrDLITqezZhh9\nbN2Q6s+DP3TWvc/6TWPf5fhlgVcHiyL2uQZCvK/MwND4yMHUmCgwzjGmrWNQwMea17zNLEeLJMyg\nkD0eDocl6MTAkrIrqSNpB6mTOV97vdeZTbu7u/HkyZN4/PhxOefH9c99yc8xYh/1J5nnOTaSO88a\nIt/0u2yl+pydixcRDfAtXvClCGtra7G9vV3OgmFgR2cscJw9k1Y2graV/JfN9u31KlPn7NHmq588\nVJM6hgdlq/wuyc8w8oUpDyxT3/u8kCzQFlBeVT6DgrSJ6u9isSjzU0EgBmPYTjotlC3JHfGJxkIZ\nRrK36j/HkfiKdXmAS30jdqBecKe0S91J3rlu5Dg5LhR296yPzOmq1Uty28jrmg8ut7RzPo+9ngw3\nON7gvR60dJl1W8j2ZP1iOV3qTtbh7aEcSj69b96vVWURv/OaY0HvdzauriM8KOFY1clljTLsvpvL\nQZt86/es7q5xC3UabT374n3XVi/Nv+FwGK9evYrDw8OYz+fxv//7v7G+vh77+/uNLWDz+Tw+/vjj\nhg1ln6iP+Xu//zr79+nTp/EDP/AD8cM//MMxnU7jG9/4Rjx69Cj+4R/+Ib7+9a+XwJJwB+WBPCee\nymyFPjkuGU715Aa3GdmYrqJ3HvyJeN2RDz74ID744IP4x3/8x/iXf/mX+JEf+ZE3KsNBhnd2lbBn\n/2cT2bdDyBHyA8f4qQlJR0QGhIaX57hkgsgJUQs4ef3ZoEtIuTJ7eXlZHBqmbHs5tTLvSwxKke9c\nCdVv6r/ArgN3j7CSPyzblQzBCQEKgcx8Pi8KYTQaFVA1GAxie3s7jo+P4+zsrAF4pNAUyHBZpFFU\nxFhvFVP5ynLQOUFahR0MBuU6HVyCYAdZXQPgVSs62Vxz45YBCv3mq98kv38VSGT9nknlAUS2XZ9a\nZXAnn+1wg8IzErJ2ZODRA1wZoOiSyF8CXX0yQ1H9USCUb7njWHhwzOXEZYDzZTAYNLIRGfzhaj9f\nG87yWBaDpjLMbgvI8xr44P+UA4JMzm0+1zXozdrk11xXe7tEzoes73Rwpau1Fev8/LxkY4jfCspJ\np8ux5Xlnno2V2RsFH0ejUQmsM4ihw/J7vV45u22xWMRisSjyw6AI7WemV6Rnd3Z2SuBHZ75Jh3eZ\nvUXdzK1RXO2nbfK20jaKhCUyZ4KymM15BoZUprLrOPf4prfz8/Nyr96Q6UHYmjPjOpGLNsx+0TPz\n+bxkSPF8JJapcc8c24fQm05uR6gTfG5ljrb+93K0oJTVy4UdbfPWYoMC434AtNsdluuy5vaPOl+y\nqmCs6lPZmV6Rblb/iE0yO6GyHmLRSnWThA/cyWbwR/z1uZfhh1XtqN0nmaUsaN4yQOr2JtP72XjX\nqC0YkNkHb6/X0/bM25LkpJYB5EEZBp3JM+ev22pme3swnXXT/3Bb5vJN/ea+Dfno8uf8dLm5axDO\nrzn5OHWtN1fJj++iYZsuLy/j8PAwtra24uDgoGT/aNfERx99FBsbGzGbzeL999+P4+PjcuzF4eFh\nWRyv1e+2ZDAYxMHBQXzmM5+J7/3e7439/f34zu/8ztja2opvf/vbcXh4GN/+9rcbb+5cLpdl4Z3E\n8ZE8McnBF6W8Xa4PHOu5L+I8b6N3Hvz5pV/6pfid3/md+NznPhdf+tKX4q//+q9jbW0tfvEXfzF+\n8zd/843KygRblAmzK2g3ghmDI+KWg60ASptydaeTq6IMRqxyXO/qRNRAvgN6ZS5JcK+vr8tWjyxQ\n0Gao7ksutFw5VDsEKnSQNsGCB8zosLhS9a07dAp0n8pwpSvHh8B0bW2tbD1ReroUvBx/fWc7WK7q\nkwEheJXciBc69FJ/et293iDGrAQaCiqarojnRtUUDMeWzgj77r/x9wyIZvON/aytgBBc8hpXOeU8\nedt1xpCfC0QZyoAkyyIwcP60reCpbTXD9bbk7c2AmkCv5JBBbOkOBpT5fGbIvM/OE2ZZMnPKA0BM\nwc/4zkwCXy0R1YLsalfGa+nMNtDtOuQhnE/W5UAg+561geOUzUmvh4Ft3Xt1dVWyREajUWP70ebm\nZjkQW0FyvaGRGYmSEwemKlNnBkmn6rB8BZ5UB+2FtoLSOWbgh/3o9/uNwM97771XDniubXG8L1HW\nXD+qTXJwiD/UDw+e0PlQuZwfrhP1VhKVo2w+n78KsNEOSVeJ/yqbwSBdZxsjmgsR1MHL5c02DTpF\n+q6/ti324pWn3WcZFF0QAbvPD9lF56mTO3suA44BSKxXdH5+3ngpBc/UoGxoLkiWuCDCLZzkMxcM\n1ScFQ2rYg/3P9GSmRzOedD1+tE3EkcSFbKOCXDyP0YOMq3REhvv8N8clnG+63ua/eD21+rLfM3nK\ncFTNxyDfHtJf8EztTI8yiEmZj2hmv/lz4kOGZWptoCxofKTPer1eY7FDeoyvI+dLayj/bF+G2ykf\nGQ9IWZneb78/4mZxoivKZDfDm9Q9HJezs7Ny/s/+/n5MJpO4urqK09PTsjVMb3/91Kc+VV7GExFx\neHjYmEuZX+J/w+EwdnZ2Ynd3N3Z2dmJzczM+/elPx+PHj2MwGNwaG89AzeaTrvPMPE9ocJxV8x+y\n729K7zz485//+Z/xwQcfRETE3/7t38bf/M3fxGg0ip//+Z9/o+APlaML8CoBz+5hFLeWhhXxGvho\nBcRXlVUuJ9CrV68aIIT/Z+cfZH1hnzM+1JRvpsDUv2z1Xvu7aSBXOQdvS8qC8j35PgEIbKXoskwX\ngiSPHruCzCjjM51IOixU+HKIOZHVfq5kUgEL1HGsPJglI6L6mBnEbKDxeByTySTG43E5l0jtYvp3\nl4qcPCLvfK7wniy7whVumyHjPe7Q1AwKeVwL/risObgjgFA5BIw0AgLJzKRzA+AKXWNOGXcg0PXc\n87KzOa42yVBp9VPbv5QFwrNvsi0yDqRqOoxzSX+SXY2VdHTmENTGKgtS1vqbBeNdhnmN95KfBJFe\nxn2JY6c+ZHvl+X8GKjJHx+0F+cZsLMmsAg0CQ3pTlM6IiohyGK0O0ee255oztba2VrZ3Sb4Gg0E5\ngJ8H7nK/PbMm6eApg8J1w+bmZsxmszg4OIinT5/GbDYriw3uNHRJrgPVnuVyWeyMskcVLFsul6Wv\nsiMeiM7kUoERzp/19fUSwPX7dWaVAm6SL8qwgmY6fFntzjKSVL7GRuNPfZHhOD7rK/3iT1vQmXOx\nS6K86rvqJV7I5Lpm+/Tds3R0TY5YVo70I8vzgJHmC7EWn8uwUoYRVXaWgUnb7XadC2GS29qc0lg/\nRNCOGIA886wnEfFmjVerbHSm+93Oux/i2SZuj7ItkirXcVkW0HEfxX9nXTU/y9ue8c/hiUDiAAAg\nAElEQVRt6X2JsunBV8f8bhM5J1ROhj3VFwZJifsox5yzCpwyeKoFLQV5tJConR70KbKFhhq+IJam\nDPBe8oyfmbw6NuhaZ4qn3havX3OM2bYMgp2enpYA0Pb2dozH44K5j46OYmNjI3Z2dmIymcSnP/3p\n8rKS6+vrkkFam3OSc9lZbSdXW7TFnAHwTNc51ewQ53FmF/x+1unlUK9lOLdG7zz4o0nzta99LZbL\nZXzXd31XRLyOzr1pORnTIpqKuc3h0L3+e41pAi+DwaBMOr7aXeSAJCIKAKUi0Woys4juoixrk7Pm\nZNWUAs9X0e88WyZzCLoiCq2vCjoAyNoiEOwOJ5WHG2zKA1d7+JvzTMZfQIdtUDaQALqnF1LG+Knr\nXPX2yLFPdgYm9Iadly9flswfrYprW5i2iGllTm8r64Iyg+Pt9fnIPvA5UabU+FsbaHYAQiBea1M2\nP2rKMwv+ODDSfZk8+vjr0wGJPr2NXc896qFasIZ8ZgbO1tZW421ri8WigB7pMg+2ZDwl0NU2Lb02\nU98doNeyify7O+6+suv6uU329J188X64rK8KNN+HxBNmrbEdmRxlQC/jBcnnDeeU5JxtGQ6HZbsQ\nt0RLd3JMszpUj67rOZXH7WPckuVBKYFxBQcc5EfcBJem02k8efIknjx5Ug7bj2hmbnl2xH2J84Py\nTT4ok0KLGrST8/m8BKi4zY1bU10mOH/Fc/WLMqC/V69exXw+L8E9OfwcM3eAMgwUcTP/+FaoXu/m\nHCnaET7j+p3b2ogRvC5+9/+7JOpIzXmXF/FZPPPVdLdLOtOC510x85TPOr8UHNV5aGyDxoht9QUO\nZroJl+rcQ8en3FrrfXXiAotkmn1us3E13XQfoi0XeVvcJnJMs/ma+R7ej4zcpmS/ZTq6Nue8/sxW\nsT2UT/eVJMs1ntTa/1CYRW1w+WW9bqcdr3kQi+Om8pltSP2m+xlA4EKIAgbahqzguTD5ctncQaCA\nEPlIXZj1xa8z+O2/r6KazK26521JPJWO8DcTsu8845X90VuOVYYWlU5OTkpmUETEcDgsr4HXES0f\nffRRnJ6e3tqx432+unp91Mc3v/nN+OpXvxpPnz6NJ0+exMcffxz//u//Ht/85jfj7OzsFp9oAzIs\nqDFyTJJRNod9/tfGivKxit558Odzn/tcfOELX4hnz57FT/3UT0VExNe+9rXY3d29V7kUpDZlq3td\nAdScCf+fbznh217alD6j1QJUSiP151lXBowzyhRzrS/Og6urq/J2mohovOGB93WtzLXlzJUyz0EQ\nf9hHj8iTx1L2rhB9fLKVO44/n6MTwj3rZ2dncXR0FIvFomEgVLYfuNjmcLGuWsCCPJHjo9VbnUsk\n50iOkrKDdGhnV5QFcTKF5ZTNtTagQiXtZYh87tBJFa/4PMdEfeGWQG+DZJDZBbU+edlU/k6SdTfy\n7O9DOS5qq/7nXGKddHpllP1P2UDKAvJD8T17RGXRidB5MQpcyqnwcRDVVoUz2dH92eqY89kzizyI\n5/KbybLX/RBj6AFIBx7UFWxbFhDVsy67tf7S9kXcOHceJCD53Mj0H+23Mg6k07ht2vnggY1a4JWO\nAAM/yvjRG8TIK+qTrkiLCB4E0MIBx5PBNV1XdtJoNCpbMI+OjsohlzyThXyXsyHZFn9lb32bnLJ/\nlstlycKKiLLyybfaKYM3cz6U0afML+EeOUkMiHhmBvnDa8QF+p4FIRxPdUFcUPJ5pLaw3/6CDx2e\n7HNA19bWXr91rt9//YKRk5OTxparDKvqoGdtBWed4q9kgZly7nwx2CRHltntnAeZDvLxz7KSnFfk\npbDxQ40dMTi35nPcXFdp/kvPZPbDMawok5NsjvBe6VaVmZUr+WaGWY1XNZlhOTV87/aAZWb36s+D\nGl0R9XtmZx1r8FzAtsAPZT87y5XPEVvquubM+fl5nJ6exsnJSVxfXxfbpbYKH6mcNrzsvON8yHhN\nub3P4pPbyy6JW3i5qME2q4/ZFr+I1/bn+Pi48FU7Hk5PT2OxWJQtXuvr6zEej2N/f79sD494/aKh\nLFOa/L64uIj/+Z//iX/6p3+Ky8vL2N/fj+fPn8dXv/rV+O///u9yxmttIYs2Ist4yjDaKuJimj+T\n6bBaTID0zoM/f/qnfxp/9Vd/FXt7e/Frv/ZrERHxX//1X/HLv/zLb1SOOwOuyH3irlK+7oDpGp/R\nc3JauAVsFbMpCFTqb7I9wBU520i+uJLkdd6n5/1gYgE+AuCuDbGnVGYrMnTKBfjc4LUZIvXPlSHB\nkO7JHG6B5u3t7QJ+BeBevHgRz58/j/l83tgapoAgwcNyuUyDfTQ+DpDY7xpYUnulVPXmD80HZVXo\nANOuKGtPTT6y+XYXIJEBBz7nY0oHlE6uZ+24POv3mjOqe7T6qrMwGGSsAUj+rjKZ3ZY969S1ASav\nMufDr5EXar8CopIvBRr51iXxi+fkUFYYLFB2mlKks7M6yD9vs35TecwEqfU/c1qydvL+rAzX565X\n+NkVuSypjmyO1frI7BOR7iN4YVaJdAwdQgE5AW0+y3qoj90BofPnAJ7lqX71gw6ZAuHcpuKyoTT8\n6XQaBwcHJeOHgZ9MT3Q5B9UPz15y4MYgC+ddr9eLnZ2dRnaTMnXIV23Zku1RsI5bENxGsb/MJJJz\nw/HUmV8EwbR7qpuOLM9O4XYh6nvKtdsBn2M150jfPdOmC+JYsB7OK7bBs6scp7Jvst3Sq9x2xTmv\neyTXzPrJAhScM5ItyQO3hEl3n5ycxOHhYSwWi9IHzh9lFOtZt4P8pNPCeUR9RJnJsre6Im+PLzD4\n2FHHMXPRg5U1DOE2lfLp/dY9PFvQ7Rv57DbS6+B8chyitmft9znluimTXfbH7WgN17wNse29Xq/h\ne/GIBY0tsZb7Z+5DMPMt4ib4QJmR/AvH84U9OnNL24VUBuewMBHHSP3yueH/E8dmtolB1kw3Up7a\n5hbH8CGwZ8TNIfKsjzhAfeY2WAXlrq6uil5Sv7XTQduyFotFeYHIZDKJ/f39BsbQYdA1n/3q6ioO\nDw/jP/7jP+Ljjz+OwWAQJycn8dFHH8Xx8XGxac6fmi/DueLjUqPavKE8ZnZTdBef/Z0Hf3Z3d+N3\nf/d3G9d+8id/8q3K4iRwkBtxm9GrmJHd44BC1wRktH++BjKyKDidP9/r6Ur1TSjrX+2a88bfYtDr\n9Rqvpu9SiUfcdtxoMPi7KwSNOSeuryrTqLnxzZwSr1sTTCuWe3t7xUFQ6uHz58/j+Pg4Li4uitO6\nublZAK9WWQXSdS4QV3idOInZR+eR7mX/2S/KlFK3u9z2JdmQgyGj5m1jULYG4h2ctFF2nwBwdn4P\nz5RwJ9MDf9mc0CdT7zX3uVLOfcDslxtkjpOvLnofeb1rIOztbDM0mZyxP5L7ra2tAoL4xzOBWKec\nCT0rXSqDnwXzHdi6HEQ0X/XeBl7aQIcDpRrQjahnmrKMLskDIjUwvgpsuNPmAWgHnfrT4b6unyUL\nvr2EMpM5P1k7JR/U5QLPKoMHACsQ4au2nnWwubkZ0+k0Hj16FPv7+zGbzQqYrwU6uwbB4puntFOv\nUNfod54nJxm/uLiIs7OzRsYPz+lhEFznTCj4Qzua4SbNVwWplKXDeeIZuHKMXTavrq7K4d0884f9\n4yqwwD7lgZ8Odn3u6ho/uyK2JauTzuZyebPoQ3vkmI96ZrFYRMTrrX9ydITNGPDhG712dnbKeX+c\nyxHNrSz67kEOXVcQ8fj4uGyR0PxVUEl1S2/r2UwX63/aOs8e8mdYjmPS+5K2nfliUNZu2X3xgAFu\ntqmWicJy9Lv3cZWDx3FyR1XjWcNNmb3M6qAtZ1218dR3X6it2ZuHsH+eTcFgAoN6DP66rVH/vV++\nOEc944uGwvM6j1OHDDsPhB/Pzs5KENzLZhudl87/LCjIxZzMzjrvPJOk5gN1Rc57YWbNK/HdfQP2\nmZjj/Pw8Xr58GRERjx49KnZcgTb5WcqSnc1mhWcfffRRyc7y+anvl5eX8fz583j58mUZax6TUpvP\n/NN4sG8+ptm89O+ZDsn4y8BiTR+R/p+86r0LElN98rjTkCkyB/sRcWsy6V7+7vUzHb3trI8szazm\nGNQUubfH780clNpv/rx+F0hz4FsTuPsSeS7FJKNCsBvR3PbF6yxDgJKAiw6EBwDYDu5HFV90IOj2\n9nYDWAlw8w1gvV6vvK2IDpFWp9l257uu8TBP/Z45TVTYPNDZwQLLns/n9x2uQjrYdTQaxdXVzYn7\nDthdzt0A8L5Mqfr88+cimqtvlBUaf8qYg3MfE/+uMeRrHVkWZYYBqAx8eUBBfc/AVSYjXVHW77vM\nccq1nqGeUJBzMBgUh1ygh29Mi2hu2cleS+xtyoxlxuuIPDWbz/iqfZZ9mdmGVeRtIZ+6IvGJ8lvT\n7Rn/fJuxryjqPgY3VZ6yfrTqSZ75lkjOkYz/PidI5J/axJW/6+vrEmhfLBZxdnbW2ILtdqvf75dz\nz/b29mJ3d7e8NcznmgeR1feuiHqRB5pLl19fXzfeYiY9pvm6trZWzpTQyrICBu4QRdy8LZOBIWaC\n6Dc9J14zq0N8p37nNme3Wc4vBQ11TlhE3LJXepZlsRzPoBGpzZkMOT7sgvSGQ2+zzxtij83Nzej3\n+42x8m1/4of0pDK5OM8UiNCnMnCYheNOkgKwzIQlDzWvlPFzfHwcJycnJXtBRJkgXuSbxTI7r0/q\nI7fTmU7XM11mbhET0DHzDBi1mQtHDP6wbyzbMy7YH3/OP6lv2AbXT9QfvqCSBdq9PT6HaLeztxAR\nozh+IfliAJ/tktg3yrrvUnA94bzwQLauERs6VqN86F4FfxzjSA/w7crMmHX/gwuSukYZ4dzxwFsb\nefu9X1ldGb+6INcH3HGSLfqJJKMRzXG7vLyMly9fRr/fj93d3RgOhwUbiZ+S7eFweGu+SN+yHrZV\nW3SzIJHjGPLZ+8B5Sz7oOs9RvAvPa2Pvc29V8O4THfwhwOcqo0j/u6HlQJFJnlHCMiJuR964F1iR\nZ93nz9dASvYM71e7dC0DTJmi87LajALr0oQ4PT0t5W9tbXWuCPTqcqbq+6qtt88BAQ2TX9dqF9OV\nNzY2yso10w4JlNi+vb29ePToUQwGg3IfjYtP2PX19eJUaAVA99EwuDJgZJhlqz7fokPgkt3vstN1\nAE+KmKvzCoBmQKUGGHS95iT785mTyjHzoISuZcqXxjCr0x1QOT/X19clLV+GXe2QzFGfuE7xACNl\nlp9dzzdSBj7ckPG37Hm21QNAEc2VMX87GIO0HvRxHat6fOz8j/2QQfXtf2yj5FV6gIDK5ZLt4Cfl\n0QEvDXvXDqh0HTPbXGc6qG0D5OQhV82Y4aazxa6uXh9WqWC5slA03iyP/HK+cDx9JTNrG50SgWkF\n4pl5SCdN/+t18/objUZl+ybroDOoNralh78Nuc5hZi3tku7NwKT4kI2520b1R0EXBZaklxyrUFcr\n0CAeUN6z+UK9p/brf2VuKftH5TOoQ8eIY8BxYtkk8ony9BBzzxf5+Kd5QdvFLShuj9w2iieqK7Pn\nkuvhcBjj8bjxymhuR9HzPIfLnQPp59PT0zg6OorT09PCf9m02nZa6R/JGLP+/M/HknbG+8dnutyu\nLhmWPHPcNK6OoyJu3gzIN1C2Ba3djmb43LG97vOFP+cPx09zx+1RZrNr+I99V185b/Sb9Gsmsxme\n4GdX5OPlc5x+gGNKbwv5LpxC+8UxZt+kX7kNOnvRhdqhw4H1PfMbMiyrZ7wfbj/9N3/eiXXWAmVd\n+gpeN8fDF6Ics7FN0gPcnif98+LFi9JuLcAzKCisroO32Y7Dw8OGr+Zjkc1H8lH/u03QdR9j/U+c\nKjwlvMFyfQEjGzOO/5vMuU9s8Cfi9sT2AcpAsUhM5OA6ZUaLdWvbgrICMoPA9um5Gvh2panBl+BT\nMO5Cq4TB+0XA62D8TeteRZrk/maYiGgAClcS3n530jSmHAvti1dKPe/1FcVer1dSqff392N7e7vw\n3x1LEVcBRqNRTCaTxuG3emUg21RL0a6NF420lBr367McGsmHCP4omCVQIOVJpZRta+Dv7jxk/XWl\nRkDWBu69/AxoZ3NOY+sAVP2RkRfvuXLh/XBdFHF7n7365KtQGcDqkmpyRseuNt/IM3cemTVBHjLt\n2ffEDwaDEgDyMxgyauOHeKnVHm1N4Fv6mGbMlZ2aLfHvDrQzGdb/zOjoigh6Mj1H0M4xzMAJec77\nGTinU6vAueoXjzU3GBDSZ7Ylk32RDpFOo87nmzDptLENHlBUXTpIfDQalbeCKOjD9jgY5hx1G9gF\neZCT+oQZCWoT+1oLZKjfBKy69/LyMobDYQyHw8a2Y8oDMRD7LLvmzg/l2XWqO2XU96pf15XpxHOa\nCIxpt3g2EstWu9U2x38PRe4cu27gooHalZ0P6Qte/Mx0MeeoFiK4rUsHcetcDL2sQk6R2z4GgPhW\nMdcd3E6roLDjS93XNmfYL14Tud56E2fmrkQM5TLLe4hLhfU3NzdLBkfWdu9fzZ7wWe+zX8+IcpLx\nqvas4yrdy4A651iv1ysB6cxvyfqoa+643peIdbktNZMZjqfjFPdrPFjqGIc6zMedts/ntW93Jy+Y\nYZT1k7LkwX8SdTafZVn6dAzjsstrNWzdBXlbXd+47cjGjguveulORMTe3l5jsZ7BH+GJ8XjcsDVH\nR0cFk9b0T4blMx+Cul96IFuoqPXL7VqmN9z2EG+q7XeZe+8s+PPrv/7r8aUvfanzcp2RmULy1aKa\nIq4pt8w46bq2OTByRycpc6CyiVYjOUh65k1WIr1/dzEqFH4BiOWyuSLZBSkowq00SkvPsqhciXlb\n3WBx3OW4XF9flz30ETeOoAConhmNRuVMCF+ZFRDg27z03NXVVUnX1sRkpJp9Ijh0sM1JTyBBRSKn\nikA/U+4PocDFT+1hdoXDa9nBeXJWMkPVBhpJWtHkWUoZsFJ7XXk6OHMd4rxUHZeXl2UVXb85aKdS\nZl0un6pT8pgFgh6CMjlbRbX5lxkonyMRNyv/Z2dnJYgQcXNGD7NM3Ohn/MhAt+pWmaPRqAHSNB5y\nmDTnuY2KoICg0QOoWXt4zYMgXVEW9FH9CnoJUNV0j/6k/8RDZsjqWZ2dJH5w24vArdsktkUZNm5/\nuKrKvjCgLIDHbAYH2HRaI6Ks0I9Go9jZ2YnpdFqCPr5q5nhA4+7ZFl3ORenr5fJ1WjnPp+Lh6KpX\ndoX2hNuaqceWy2XJ8iAIXV9fL1m2XKjQOItoR7Qww21HCu55IEoyznsdCPtCwdXVVQlICHhTJzoI\n97nliyYZQH4I3OJ4RJQ5nAouMDs8c1BXYTHHO3IsdbAp+XZ19fqcIGE3nlkjuRH/Ly4uYj6fl23b\nXMShnVL7edizso2ywJfjjsyZqc0ptyld6k61Qf3nGXMcFzqjtONcSPNxc9mjLRf/a/K4KmuA10m0\nSdRn5Hcmp07qs+ao2i+ZIdakjc9wputSnQvVBXEBwmWKxDEW+dhFRNmKKizkCycsn/aJNpN+jAdq\nPavbg/qOOViPz0HVxz56cF3Uhpc8uOA28KGJfWW7pKukU6SrRMTY1O3qO/2u2WzWOANtuVyWlzPp\nT9hQmcF6XbwW6tUmb7snGvCaz+Oabqcs+dhlcpDxj2PP6yxnFb2z4M8///M/d1pexlwKlAu1A3mC\nC2daG+N5nQpSb9Tw9Eh3Urytfi8ngxzcra2txiqcG527GAn1OYs2Z8pFylNpi9qr3hXRMeEEqgEh\ntjUbZweL/P/Vq1dxfHx8KyiRpRiur6/H7u5uI4LM8hh0kBOpezT+TPVk2a44dG4FHSjey/MDyC8B\nCyoNbg0j2HgoYsBFIM2NG//nOGVG1p9z4817BCrG43Fsbm7GfD6/FcBj+dkY1JSygz2RADczHNQe\nd1Y0TzOn15/JnncA/RDjmAEEXvc2ZWCXv9FhZt90aLyM9WAwuLWq6tt3KettK8S85nLE10tH3Ogb\n3Xt2dtbYrsS5x3F0/STy/uqa5gLfRDWdTt9miFKq2bsMTGV2xcvQdwYlXC44RtRXOgNIji51q3gr\nYtq285oBrevr63KGQraFyZ1Mnjmi71tbWzGbzWJ3dzem02kMBoNSN1eOfb6Tr6qna+eTgR7qEAb4\n2ddsJZEOmgeMVS6DNHyTnjKlWJ9ncbjToTZyTKkTer2bDCbNc5HGkNtluOij9il4pOCir3azLZRV\nDz44P7sePwYQVVc2D0Wcg5JV6iHvGx0cjq36zd8vLy/L9nzKMw8qZhCYZ0vo/KGTk5M4OTkpi2Is\nX+0RBtVbGblV1224yIO07F+bY+T3dLl4pTLVfzmYlGPeG9HMCNb4ra2tpdkw/J+2W7wSVswyASg7\n9FVYtvNFgV4P8nvbM1/Eye08y8yCP3xG/XXZlS7uivgm3ZpcON4jv+ikS9fQT6S9Id8ibrJqGXg4\nOzuL09PTW2d/+p/K4VuiXO7YPg8+irJ5QxtW8/0cy6ksjmeGD7rEnRmOdPvHvnDe6FP4QLLf7/eL\nv319fV0C3ipje3u73OfYReVr+6y2vb58+TJOTk5uvY2MRD2S6X7HxRlPacN8ITbju9s/lkVswHas\nyjj/xG/7qjlx+l3fHRzzPi/zTeqnssvKzSblKjDuzoRPcFdMd2mjAhVt7XCSkOmA44cgB7YyOs5T\ntrcWoec1OnCe6UAly5XnjY2NmM1mcXBw0MgaoJJeW7t524X2arpj6a+3ptLSda2+SqkxjVHPOW/I\nA/XJ+8x6pVy6Prci47f+5+9uvPicK7qaLGe/9/v98gp7jQGdxczQ6TmP0mdKW7/LOeEzLku15739\n/O7Ob6bHVJY7QV1QJgs+dgSi5JXfq+/kF/fOK/ijgABXv6mbKC/MsmLqtPM3M7YiGX39xgAPdUOv\n17t1eDHBb825VL0M+KgvzGbq9/sxm83eeIxq5DLtn67/2Cc+z/J8brmO5Co5+axMAW4D6fVuMjjJ\nF/GS4+n2TXNLK3B8PbkyiFgueS7HVVk/+/v7sb+/Hzs7O0VHaKWXsuUrtg7CqLO7Gj8CWupo1+Oc\n+wKtvmBBm852MziWvZWJOpFjyqADt1qxLsqS2s7AAsG9/88DhiNugkIegPIAMdvIN5ZlTsVDOC8i\nntHgCzCZPRAfFQj2e/xZkjtukhnONx4o6wFzOj4RzXPY9Gpqz/jJHC/iHcmG9yXTwZkc0K6R2G5v\nc1dEfmp7Ww1L+3iI775tlP30sqj33O6zHvcdXN5ZnsZE8sSgubfBx6PWP7aJz6pcZrlnQVnacfGG\ndrBL8jnhc81liAEG6TDHAhwfjq3/if+yUScnJ40Xv3CcnFcM3Eovsy5mPqsO2qOM2Ha3X15vG27y\n6yy7a3JZy/SA+6nEcXpe/JItVDCPAaCIiOl0Wrb+e7CFmGE4HJbFfi4QuR+W4Se3pbS/PreJYWp8\nqfkm/L22KEqerQqcv7Pgz8XFRfz+7/9+6z1/9md/dufyfHK7cYm4HfxxIfKVi7tOEv7mlN27ahLz\nPpWtP20lirgd4W9rS1ZW5jBkAk2ScvG3P9yXCGY1ObmX2g2aAwifFJlBEpEXdOR5fW1tLWazWTx9\n+jRms1kxWuSPnlW0eGtrq6ShOlghb12ZLZfL4niwTX5ug/jDNrIfrkhcsd5lfN+GaOgdKJDvAif8\nnslepsi83ZxXmrsOdFhWbU7Ufud3ykbtHBU39Gy366RMFjk+PpYOsLo2xKv0Gh0xfXfjQ0Omsgh2\nGQzieQk6K4m8oiMsmeFr47UFyM8ic7Dt/GY/aQivr6/Ldl0Gxcl7OQe8ns0nAnICRIK78Xjc0cjV\nSTLiqeY+R0gKSOs+/2OWAIMtKlNjw217zLQQH9QWBvM0jswIUV0cc42dVvtUrpzR5XJZtn4tl8sY\nDAYxm83ivffeiydPnsTOzk6sra2VLS7KctAbs8Q7Ep3PNgfqbceJcywiyjl0HmiULDKQo+cz2cyA\nNfWX5pSeo55TZohfd5lX2znHiae8/V6H7KEftM4gkOYf7Qn1rXjAczp8cewh7J4os31uG/QnmaeM\nS0eyX2y39Kj66zpG1yNuXoeeZQ5rrISvNAaaC/P5vMwxbX+XTmCWi87OGg6HJQjLlWu13xerahis\nht1qi31dkeqhnqRTmM1N8ZQZ/vw9azfryxa/fD5lOIa/edCHGeFZ1kcbVsjmh+M0tl+yKpn3N9eK\nX27DiYO6JMdiakuG8R0jcluR6y+WrfLJL/6mlx+cnp6WRUfyjzqbPGJ5+pNcKagoWfMFZZYrUru8\nH673KNtccFAZ3ufst/uSz3lif/KD7dVvwh+UW8cpETf+8fn5eRweHhYfam9vr2S/bm9vl/sXi0UJ\nbnKRSvhUW8CIQVzHqr01XmWBnCzgxX47z5x/q3wB3ZvtnCC908yf7/iO7+isLAf47gjwmguVD1Yb\nSMiAsyt+7o31IIXXcdcJpbb7PvpaO+7SF3+mZpyzMlcJ0psSVxV0JgOvu4NZm0SejkqlmoELyoky\njDY3N2NnZyfef//9ODg4KCullBPyZW1tLcbjcQyHwzg5OWnwiZQFAeggq345x1J03H/NYFDWLzc6\nDloIyrqizJFU//w+V/oRccsA+TPZNfZDxnE+n0ev1ysp69kqeFa2/0Z+0jGNuOGjDIuvGLrh4qf/\nRt6xPy7v3u6uQRTngOtIttH7o9/cKXVyPgo06k14PNyW5cvB5zax8/PzWCwWMZ/PY7FYFEc5Azjs\nm19nHwjEFECIyDNR3CnLQAxBr1+LiE5XP+lser9kL5wHGXFcOF4aXzl3zADxFWf10x0nBe+or3q9\nXnnrG4M6dBwibqc0Sz9q24naIEeMDsrGxkZMp9M4ODiIp0+fxv7+fozH47i+vi5p3Uwh51lB6os7\nWJeXl52Pn/S+63aOJbOtZDMYOPCgHVPQSVzt1Ha62tZ0zns6Hm5T/UyEbNtYtgvuWWEAACAASURB\nVHgjm+dZruKBHHHJmPQE2+Ir9g6oH8JxIUknZc6c2x+18fLystgsHqjM9qoPDPwslzdZddKLEdGQ\nWfHOcarrNPE+O9hZZQmDra2tFWc0Igq2ZfZf1k93kt2uuG2jM8c2Uwes0mNvSqxDMuaZFrzXA2Li\ng4+TyxtxLPvr/7f1j/qR/JdO9reWqV6Vn+EI17O8t2ZTqLM0N8UvDzC7TunSb3DcSz2gtjjW1Rgw\nA8v/OId9EdP5qPmsQ9UVxM78PsmNLzwp+05BNWXWqT7xW/e4HKmvzhf+X9N/7ru2YfmudajLmPrk\niwYRTQypvnrGHXX/cvn6cHtt5bu4uIijo6My9rPZrASwKTfUNfIDhQsPDw/j9PS0cbbQXYO57Ic+\nnffkg2M6Pssy76IP1db/b4I/m5ub8Vu/9Vudledg28F/xqxM+VJZkvzeNqZLMetUcXfKM2HwNvNe\nN+r+XK2fNUHz4Ag/2dYa7+7iTLwp0UHa3NwsIH25XJaVWjokbE9Ec8Wde3fdcW2TEU14Zfw8fvw4\nBoNBNTAhWltbi9FoFNvb23F0dNR4I43KV1tqgRcaCIE8vSKeJ9PTYLmRpaGiMaOSYrp5V+SBKTea\nNeChT/LEZc/5o2fofPf7/QJgl8tl4RXrrs17lp8Ze9VHh4aAybcl0oDyQDk6a26sVb/LrP+xnQ+x\niqbys2s1AESw7/PEy7q+vtneoX6Mx+PY2toqxp1OCGV2c3MzhsNhWck5PT0t51Nota1Wt+sxXeP/\n4mkN8Pq9/j/Lz2xHre77kg5bdWelBmYl4y7fBO2uSwRKVa7mu7JrGHggMCMQ5+olsxQIfNU+jTcD\nOhFRHFClZDP4owAQbe94PI7d3d04ODiIg4OD2NnZKdmZvV6vkU2mt4H1+zfbFAXEdQYNwWlX5A4L\nx0bZFwqUuGPBYBHHR2NRwxPL5euXNxwfHzcOOM3kkjqJ45thGq6Esn5+yr6rbAJS6QAGGTmuEdHY\nltfr9Rpb0Zhlxjq7xipOajfrpS5gENmxHHlKR0/997K4/UrBHznhkl3NWT7b79+c9RTRfJ21Bw5U\nvgLzDDj0er2StdnrNYOM1AXSR45RXIYyXrLdjnnFky6IOp+60utV3ZynGgvPgORzvri4CoPU2scx\n8YwaBfB43qKe5XfKGMunrPC5Whvdj1DZGhsGozObx7fr3pfU94h8oTXzeTLHmrrVbbhjA7ezOitL\n27287xlec2wuPaYFCy0uXF5e3npRhmyuiHrX6/Q+ZBgywyZtvmOXlGEu2gAPiOjTs4mzeewZrgqe\nHR0dlYD3/v5+TKfTGI/HjT4qC1g6czablbckvnjxorwNzLPB3ddhmXfRdT5GbYFb3ZPhvNp9Hqhy\nemfBn4cwyJlDJSXtyl3kYFnl8HtNSWZ1EcDKcPpqou5nWW2TzA1H9r8MryuAzCC4UDkPsr49NDnI\nGI1GJf3x9PT0luFVu9wpVXCDINEjynpWqe3clzybzeL999+Px48fx3A4TKO7zpder1dSCLe3t8tK\nQGZkKIsul67seE+2SkGgQiPF5/WsZ6d0STQkXMVlm3yFibLnwMrL1XMcR6Zn04lw3mRG15Wky5Qo\nM0wE6ALQV1c3b0GSYZIx5z2s11PFsz6zPT6fuw7+1PSi6nb95vf5SlcGeDlWDGbu7u6Wg5iZjeDZ\nW9peORqNYjKZlAO+P/7445jP542AHykD3Zk+54F4NMTZs5lOXAWWH0KPHhwcxOHhYeEZt9Jk7Xc7\nIeLWgUy+3E5oDKlzSZzTrI/OIlcxfVWKZ4oo40PzS84nwat+GwwGMZlMYjKZxPb2duzs7MTe3l7s\n7OzEZDIpK/Qaf5WrwA+DyArAC4yfn5+vXAh4U/L5TT4yEOJbqzQ/GLDT8w6eNebchqe3M7J+tomr\nqpQHz1LhvFkul+Vti+Sx2qeAwsbGRmMxJ+ImAKmFG2aUXF9fl0CEZIoHe7r+pl3mYkht3t6HiB/I\nP9XPNknf0FGnU0PiIo2vSLNeflew0Oces+M0VrWMHz2vuaV2yI4xK5nk+JnZnI7RaLczm0HeuS5a\ndWjpmxDr1HyiXiG/a44Vf3PszXpEmY/CZ9hvYVKesaN7FUinvqphh4g8m9DHwG2i99HbLbmUjLhv\noU/Klg7b74LcJ2D/s0yKrK/MJKRd4rzywILo6uqqZJDqbBn37xzDZsEC+j2SPy2uRETxJVUnA6DE\n0H4tuyfDxh6wXxUk6Ipq88nH1YOoxAoeJGK50kO6pnJPT08bOlV+G7fa6aUxEa/5v729HVtbWzEa\njWI8HpeDoOXnqd3ZPPSMSh8bX4zz+2pYPNOXNT67b5XROwv+/OzP/myn5bny5XV9EpD47/6dxtPL\n9Pszh9qVha/urHK2SLVsCN7L3zjZs3IzcNLWx1o7uyQqvogoYOXy8jJOTk5uOQcCJlK4ygzQMzq4\n0AGGp2Lrut4G9P7778f+/v6ttxKscuL6/X5MJpN49OhRWYnJzpDIAiOZYXajrjoimg5Ulp7s7fUV\n68zZug+Jr25cuULlfPA5ymwAn8vuIPAsCl+JIyhZ1WYfUzqT/lumoOmIcOUoW63zlRmeqeF8yMAY\n9clDGOc2x8gBKnnF36l3mLHg+mW5fJ2ddXx8XHixu7sb4/G4bPnUdiC9LU9AVw7MxsZGjMfjclbP\nixcvSiZDTV+6rlzlDLqtUL9rZeq76/w2YHZf+v7v//4YDAYlJVnb4fzAV8qNO1ySTc0bnwM+l7O+\nutyTxwTVCkywDt5DZ1WOpvO0Bsi1UqcAoc4kiYgiR8vlMo6Pj+P4+LikcPd6vRJc2NraKrqRjhdf\nhX4XO3lXyhwY5yv5d3Fx0eCBHAUSeSPHjPZ1uWy+3VJlc+woB5qjlAfpNI2n2u+YSWXycNzLy8s0\n+ONvPBO/Jbc8ayqiGUTJ5rr/1vXcYz3sb+1315kM1NSwmNu25XJZ7A3lQjwWzvWXOnBbmhxLZmpw\nTOlk0UHm4obbYraZ+sJ1bq3fuoeOCu3Mm2DUu5LbK2Ygcvyoo9gv8Zzn/oiPIte5GdV+80UuyTsx\nTpYdUJMhr9Nl1/nS1l7d71tG2W/qoVqQ8z7k+DnDU95Pzhlvs4+Dz1efp+fn58WWZBlNPtcdq1J+\neCag42npa/k7ClSqbPKBlMly1l+/5jaIfXlIyoJR7hepTZxXDFh7IIgBIN2nLc8vXrwo+H1vby8m\nk0lD1ygApLYMBoOSITwcDuPly5cl8OcZqRkPSd4vLlKoX9mc9WdreMzLuIvte6fBnz//8z+P3/u9\n37v121/8xV/E5z//+fjggw/euFwygp29izOo5zNAz/IzR5DPcoJ6VNnrygYuAwP+f63Pb0p3Kd/7\n9hA0Go1iOp0WYKgDug4PD1PlyhW34XBYnMerq6t4+fLlLSMgykCgAjc6F4KvdOdzIskSV97kQOzs\n7MRisWgc/MbxdGDMenxrhQdTnGjYCBA9ai5DrBXsLlOnVZ6CNgzM1IBt1geCpgwkutF0HjH7QP3O\nDH9NOYp8lcHHwLcWCBzzdct0zCSnzP5zMFmLyjvQo3546NWZmuH38aCx9b454PM5dHFxEcfHx40s\nqul0Wg6C1uq0Ahnz+bzwVGe+bG5uxu7ubskSpDHOQB+p5jQ6H/xaBrLd4NfKzbJu7kPf933fF3t7\ne3F4eFj+jo+PYz6fN96Sxa0dHEO/ngEYBnU8y8TnGLcmRDRBDcvQ73q9MlfZFMiXHFDe+Tx1KX9X\n4EiOrrLC5NwuFouGnOg5Og/UZTxbR+e1dEXZ+Rh09F03sF2UNQ/ckf8aP54TMh6PSxo8cQoddg+i\nuy4ncGV/eE0BOZUreXT9lfWbbfE3rmgsdWC8LxpQpu4CfN+Warzy+lz2acM4p1iWZwlE3Lz5R3iI\nPGKAR20TX/3NVJonzCjjeV+SS8k8s2Joa13fab5QBh3bcuun2wqX3Yd0Ot0/YMYaKbOFvV6vcdaY\ngjSOOzKHLOL2wgD5yLHW2NDhV3vdufM21/A6dXcNm9XwJuuT/WAfeJ/uyRaAuiBut2ObHScRA7Df\nma1vc6b5m94kdXJyUrbOMoBOLC4e0Qb6lkESx1bPaYH7+vq6ZPl6+7mo4mNRk4Vs3H38yNuuqSb3\nWVuz68QXxN7sj3QW9aHGj366fL/9/f1YX1+Ply9fxvHxcWMbmHalMAv96OiovDjCF9zUBsqo89h5\nkclrNn8YcBYvar7EXWzgOwv+/OVf/mX8wi/8Qvrbj/7oj8YXv/jF+OIXv/hGZfqqVaZYs2hoRC7c\nNEL8XiPdJ2eGp4NnQKltYNu+s63ZZOc9bUp9lTKo8eYhFIHGTqtSAok8EFR1axIKzGxvb8d0Oi0T\nlpOQiiHiZuWWIGwymcSTJ0/iyZMnMRqNbo1zxt+I22PZ7/djNBrF7u5uzOfzuLi4iLOzs1uKTau1\nMp6eFaL79N23Dbpc6npm0KQM/EyIromGXvWo35kRcbnXmPAtI/zNwWPmGGXX2AYHlq5ks0wNlpPV\nw5VRttkzFNpWM6gHeK4VlbkbhS7J2+FyVAs0ra2t3XJQMn5nOlmkzD7OewWAtI1HgSAeeCgdq+1B\ng8Egdnd3Y3Nzs7xyldlzNZBDyoC6f3fnIDOqfi0z8F3RwcFBDIfDAmb01hGdiaRsIG3zYcaFv0FN\nfKVeyVZVCWIpM2trN28qIRCNaGb0cDuXQJnu4Uo668y2Ial9clbJX9kSgWX1Z7lcFl4JRKsuHuBK\nx/js7Ky8CUnZZ12R+Kato1dXVwXkM6jB9vvzlEvpHPUrIhrjKqdVdu/Vq1dxdHTU0C3EKxlIJf81\nBpmOU3tkw/xcOJWvsVdZus4VXfWDwSzxiVua2XY6hh5g6ZJ8ftecJscL/HNesDzyTPxgNo7mssaF\nPPSzdzQmW1tbDT2qegeDQUNXMzsoIhpOK9vstrQWDPNPBZ0013i/47CusYsHUMRr6QAelk+ZZxt9\nLrCtPqfYb8co5KMwnniYOXW8f5VME19RrxJreDDOy6xhgMwm8jfKZNe2L+LmjbjETDWZdKKcOh/Z\nVuK4iJuzhmRvXa/JBmqBS3KkoCkXGqibyS8GErkN2Rc5nTj/2+xG2yIUn3vIAGyG3bN7fO64TyG+\naSy5+Mo+iZ/ikXTf4eFhyQze29uL0WgUjx49KouLL168KFlAWuTVwtTW1lZMJpM4OTmJo6Oj8sY3\nP5up1ie10+2ufvPnMjsckb9V+k3n2zsL/nzlK1+Jn/iJn0h/+7Ef+7H4oz/6ozcqz42oK1cOvMiF\nxwWNYMTBEMvIhLgN6IjcqLO9/H/VIGbPvq2SXfX8QymCs7OzMgk5Lh54y4ywMoUEZPXKPpVBQEol\nOxwOYzwex8HBQTx+/DjG43FjIvqEygywG5b19fVy0Kgiy756qjLcIKpOAlXKI2WX5yxkxpx/GRjr\nkjLgE9FcTc+27ZF/5Le3n3UIbPC+TNll85/f+Tzb4w6E9y8bLw/YZA5Utl2EcuDk/XYnpkvKDGx2\nj+tA158yqmwv2617Oc4RN4cmKmC+WCwaW8D6/X7JECEvFbRQAGhtbS0mk0kJBi0WixI8lrNU27aT\nGcsaXzRHdb3NYGey0+X4KfChALjax8COMoCYCXR5eVkO/SVgIa8yXeLOiMZdgFeHynIOCCTpvBcF\nf0gEQZ5dRyBXA7QE/gLn0hMMfAhMS3ZUn/qhtG5lqzBoJt51mfmjtsuR18GS/X6/ZG+pb8w0Zb/E\nP8oh20j9T+dCfdX2N7Ulk1EvmzaKDgf7FHGTFcprjq0yvKbvXLFl2eKH7qEedruZOT9dkW9BzBwv\ntoN9eJtyOc6SG2at8Kwd3U9HUtsGaVd4ULrmmZwhBtcYsM2yDNQmXqftXYWDed35eFe+vQn5eAir\n8QybrD0ZLnOd5TjE++4YIeOj6s3wwSockPkvkgMPmKi+VfKZ/b7qGtvS9RysYbY23aXftdjExWAR\nMUwW+JHt1IKAL5h4/R4c1Cf9CWEKDxxp7vFsuq2trUb2ZMZX6vsMR2c+Z4aHWX6X45dhYeqONln0\nsc6+y1Zy0Yh9k84T1tHuEgWAptNpTCaTou9evHgRp6enRUdIFyqQPh6PYzqdliCQMobkz2aBZrWl\nxmPyQ5TNLfc9RJTbu+DOdxb8OTk5qQKpV69exenp6VuV6yv6/PSocO0+CkubUqkxM5tEbcryruXW\n6mKb28qpOXZ3LTNzgLsigWyueNAhYNv0XcDy7OwsXr58WZwetZXZPgJGGg9tF3ny5Ek5cJbgOuNB\nZqA9WCTFsr29HZPJJI6Pj2+txDmAy8CwyvIzffQ/z5JR2rFSwQmERR646jIQlMm2+O8GOqPavMyM\nlq5nsrzKSLQ9L344yFsl//6/xi0LFDoP/BrljA6VB65q/X9bop6rjZEbFepU8oXAyYGG+KLvDAgK\n7DDTQue26DwWAm09T8eHDoreIiYnn8ENbnPK+KD2eL/1nUB6lRx6ef77fUlvr9AhyAquDIfDWw6a\n9KOArwCsggwKlmm1UnpEK2QCvsqAUVkCWQKuOmdHY64tJ3prlvPPeam21mQpIz2jtsrJpZyI+IYj\nzjOdI7W9vV0OJVbAjJlCXRIDbTpQV/2hk00A6dl2dO71nfo/y74RHzVfNDdlP0Usm6S2yE5nurHX\n6zW2Y7keENG5YZ8IamVrVTfHTcEf1ce2q00PTeRTdtafyOU4w5kRt8+9oBNDXOPYIsMVDJ5K5n1r\nsvjGbZjSrRE3518xc8RtY2bLMnyk//lcZuvYD93bZeA1k+lXr16V4DTts/sI7CuDP477RXex1+5/\nZG30+2sOZTYOnklyF9uU9eEu2Evl+mJ7l3ORixBeB3USZZP2we0L+8k5Rx0kfKLsYs1Bty8cE38h\nQobP1WbOM91LOWTwlXOI2ef8y3wnX1zO/Jra9a6oDWvyHn6ybcx6dBnV77R/Pieo+xjQu7q6KvZ+\nd3c3RqNRPH78ODY2Nm6dK8kx0xtIJ5NJTKfTODo6KkEgLcJpfHxO1LBoRPNA6xofqD8z3t113r2z\n4M9nPvOZ+PKXvxyf//znb/325S9/OT7zmc+8UXmZAiQDMjCfCaADD1EmYDSw2X28pj+m+3nbszIy\nx7AGGN7E8Di/snbXVmweAkzRmSToE9jIJomvQuua2u58FCjb2tqK/f39eP/992M2m5U0fgfFDAjU\nVrpIVDbKKtLbT3y13OVQnw4uMiMtA856ZRhUjpw0b1vt+32pBpL4G+vN5l1NZt154POar5QR/U5Z\nyA5hZPuyevUbZdONCH8jCGA7a6vBGR9ooKUnHOB1DaJcV2a/ZzxyfUPZdkdF9/mqo+s3bjM4Ozsr\nGSNa8VK6rTuJnKv8TRkcPueY6aDnarKZPV8DjV5GBqy7HLv5fB6Hh4dlu5R4pUMJlW3D8z7k5OhP\ngRyBFK5mUhfrXr2RTQERHi6dya0ADEEtMxLc5jqYcZkSD31u8Owobs8i2CaIJ62vr8dkMimA7/r6\nugTHtKdfAK5LorMSESXbwlfmI27OaqON8gN7xQf2S3NOZ2wpE4vbymjr2+aneNfr9W4FzwhYI5pB\nGmEfb5/q6/V6ja02+iOIV3nS9RcXF43tTOIB5ZBjzm2EXVE2v9Xnmj5o0xOui/1edyLVL+pZ5z8d\nBf0ufuvFFtyqIHzBwCTnL2WFcpHZq9piiJ6hDqAcZrqya8xC51dtvbi4aASpWWctyEle1OQrw41Z\nGcQqHiDLyH0V+ha0xxx/2uusf47XiEd4bzam7BufJ4+6oiyLV/KTLRrTPjhW8fY6tlBfLy4uyoIJ\n7QHr8uwQvR1PQYYaftN88HPguPhCe6rf9UkMlgUM2FeXgUyuu55vJM+oytro+o7zlJ+OXTPfOgt4\n6Xcu+r969aokppydncVsNisL+eKr3vLFrbcqS3hrOBzG9vZ2HB8flyCQtgh6v3z+ZmPh+EhykS3w\ned/v6jO8s+DPr/zKr8Sf/MmfxPX1dXz+858vyuTv//7v4wtf+EL84R/+4RuV5wLgTGy7v40pDm68\nTCoL1psNojtFLrwOtFa1vfa7G5Ss7FWC4Ir6XSgE8kTfVafOMOCZMKsCaOyzvm9ubsbe3l48ffo0\ndnd3b6X4Zs4cDWdNWXpgR68HnEwmJRBDBRRxOxtH5aluXxknUNSqO4HC+vp6DAaDGI1GcX5+3khL\ndYXjK2z3IZ976kdtRT9Tdq6QyQu/lilvgh4+WwMcPh/9OdbrOiKTNRkCZjaI2GcHJ94fOnIu4+z/\nQwDhGh9cdvh75sg4EPXgiYMuBxya7zw77ezsrJFZwgM2HawxcCHHn9uYsn5k3/2cmQxIeb+db5ne\n9DG9Dy2Xy3JmksCm3nilP775ils7er1eyRq8vr6O4XCYns1CPmtsFCxSIEgZQ8oaks7TOPr88XLV\nF3ceHcTzPpUlnrJeBruow9kO8Ws4HMZ0Oo3d3d2YTqfR7/fLW1w+/vjjePHiRSP402UAyB1p9SEi\nGs46ecetULQL4gudA8m/ypvP59Hr9WIymRRnl6uRLE9tcpBJ+fUFk1VYSzaeQVptVZI9cyfH8RPt\nmXjGs2iok3geVNeBu4hovI3JF6NqelNylwU+afedlypbz2ssXPepnsxR4OHP0hWyNxERi8WibHHk\n6rrKdEfDcQQDX3w2O5NL3xmkqtk79b/LzDu37dwuKtljX7zNxG+ZfXBy2+Dt0PhoDrRhDl5vs8/8\nrvvasDz1pb67/l9FbuuoW7rEnRn5dkm2iYsAtfHJfAbySxkifKuo7vd5uFwuG8EfbeFVWxwDuaxx\nPkg/8nBxt4NuJ9pwq//WNZ5cRcpgIk7LFk6pc9ra7n3nWLsf5TKo33j+oM7rlR81Ho/L9nrNU573\npDapfC28KZNYmUDCEdnboDOdwD56m7O+18Y0w1G3xqT11w7pZ37mZ+Kjjz6KP/iDP4jLy8uYzWbx\n8uXL2NzcjN/+7d+On/7pn36j8hyAEHB4BL32ybK8DDd8bYo+M+D+LBXFXZVqxJsFcVYNdttzNaPC\n37skD4SwfDoEAhFyKlyo5TRn7VtbW4udnZ147733YjabNSa7qGbMqZgyRUMgrv9Ho1HMZrPGm7/0\nDBU3DYGo3+83shz4RhYaMl9Z29jYKIdfHx4exscffxyLxaKUqfqVJdQFcbVKJKO3sbFRjCYzCrK5\n5bLtMih+cczdgIp0nXx1gJ0ZF/IyMzxej64RDHKF2gOavvKr/nhZDtJ0PWvTfcn53UarAIMDKJdp\n15scW+9vRBSZ4XYFAQf+yXizLI0JV/zaAkHeLoIG17c1sO1OV6bfuwRa2hKnQIx0j7ZZeRYQXy1L\nIEnA5Fvj+v2bswjkMOpsGucvA0PKDFJWAQ+/9IwN6lXyjePh81TEuce3dzDw6M9oz/9wOIzZbBaP\nHj2KnZ2dWFtbi8ViER9//HE8e/Ysnj9/Xs4DaJOZtyXKBvWin+PG/rseoP6j7GqRIKK5kDKfzxvy\nSltCec1kls4N7TGfo9zQodGB1lkAKAsUMHBFPnmQV/ZMAb+Im+105PNdAPCbUhYEyAIdLtPO337/\n5hBn6TrXnbq2trZWbCu3sKhcBqG4zUXO6GAwKOVqnBh0YFaDeOvbxJhF5f3XNc5v1/VtQR59Z/se\nAnN6fdIfV1dXJfvHA7BZH8QjzrEabnD7SBvDQHwWqMywTG0hwfED2+7lcd6pz1lQwee4B+B5j/O5\na73JstkX1ud1ZvqSzztO03X+LvtG3aV7tfU5Isp8Y8CWepbt9KAx63XitrAMk2TbxSLqbwJzPmZ1\nP8TYCUdI50neM98tw4VO2XVm+4r/zBr3Pnug+9WrV+XsnvF4HOPxuCyuq43y7WhHVVa///qMpo2N\njRiNRrGzs1MWlfR2MC7Oez/c79HvPu70g5XFVJP/1jFp/bVj+tVf/dX4uZ/7ufjXf/3XePnyZcxm\ns/ihH/qhmEwmb1yWg0VdIxM4EVatvvrEZj2sIwNKvqLpQDWieSBjm6LyoAjLWNX+2vdMwWT/1xy5\nh1AGBHL+R8HmxFK73JFXGxlcW19fj52dnXjy5Ek8evSocS5FRKRlqHyWpWtZsMqN5MbGRgn+KI1Q\nvztYY5/UDgECGQaBQgfucqgE9Le3t0sftYrHN3roQNyuyJ2yXq8Xg8GgnLvS6/XKGSPZqgn7nMkp\nr2eBEtXr5ZHo2JDPBHfMAmtb1dNzCmj5mxtcLuioyDjUjHLNSSA4eKjVM+9zDRz4PdmY8Tv7XAvc\nueyzLd4uzRWeQeFveOCzBF0M/GTGMNM//pv+Z3sjbjILfBwfCvhG3JxTExGN17tre9Z8Pm9kS8lJ\n1jY6BYQUCPesHQe2PHjbeaIVr+FwWFbRFZTyVHk6SJSDXu/24fDkt8sC9SiBJOd6FgRSxs/Ozk7J\n+FHg59mzZ/Hhhx/Gs2fP4vDwsAB5tz1dkM8l10MZvhCvfU5wXCT33GZJ4lZkbilg2RoXzl8Gc7L2\nZ04VgfHa2lrjrEdfDBAPGBziddbDuakgh2Ti/Py8Ub/+75rclqse6n3X2Wp/tm2Fuj7DFOQNg0A8\nHJak5+lguk6UTtD85xtWvTxmuLJNmY5zzOg43PtIHmRl1Bb13pYyW6uAqfQiF90cx1M3ekDM+1qz\nAdRJnvVTs1He/hpltqdmzyJusEhNl0hvehu8f224qUtbmGUjuf6hbfatzH4v2+y6hpiPZ+IRx7qs\n6/7FYlHO1cr8Bs076goed+GYNNO9LCvDY7KBNXnM/DtiVNbTBWmhys8Pq8k97VFGfE62xed1r9cr\n264cD3hMgLbv8vKyLADpJSS9Xq/4NlmGs+t+bQcbjUYxnU4bb2PleYLZImgmn5lOXOUDrZp77zT4\nExExmUyqb/16E3LBFXGyZ4Kx6nk3urzXnTZe8wnjYMjfgJH1x59hm7z+t6EaKPLJn/XhoSib4ApY\naKJJafhBahlg1phPp9N47733Yn9/PwaDQePerE7+lk1ABzyZ4uz1euXVbS861wAAIABJREFU73zL\nzl0mNN+2QaVFh0wy5hlBR0dHsb29HVtbW7G9vR0nJyeNlXCBva6I/ZGTyKwDOUwKTnmEnP33sXCF\n7IqRvM6eIanvWl3T2370G7cVMi0z0xXZHx0BOSHqqwc32daaDHKFW/xqM4D3pVogrUaZkfb5qPvu\nolPIw9p8JAhieyVL2bkeBEAOLmoA2eXSf890ssY8A2U1Ht2Xer1eOVtMjr7ACM+/EZjUitv5+fmt\nN3AJ7Pif6tF8cVlX35VNxFe1j0ajslrmh0p7Cr7rMcqNB015n8h5z7MTKCsEYbu7u+UtjycnJ/Hs\n2bP4xje+Ed/61rfKYY0CcDV9cN/xc1ukOe9AsAbCOZfII/Y5c4b4JhLeR7xD/cQ2uiPhukBzgY49\ns4VUPseah7r7fPdxZDs5Vwmgs37fZeHsTci3mNb0Gxd4PHBHnecBbNonzpPz8/NysL1srG/xpu5i\nQFX/ezbP5uZmjMfjIhceqM0yIOnAsV6XHSeOM8vXdw+yrnL+7kuOvSJutvR5kI6BM9qdbAugynb+\nsF/6lO6W/ma7dE/mENbsTS1Q6zols49eDuvyMmtOpuuD7N77kGP9NqyYzVPHj5yf/rzGUxmsyv5p\nG1PNA2J+19URNzLnmXYsj4t/KjvDIfyN80n1tM2hDF9nOrQL0uvTh8NhweQil/3aPNK1LGASEbdk\nVPeKqF807pmPL9lRpk527qQf+O5zVXZP/pEygRaLRZycnJQzgbglLJvjtb6twu53mXvvPPjTFWUd\n4zVGtV1AMoVKQeGE8cnH+9+0bV6WG5hMCbE+B4xZnXcxlg7cvK4aoOmavB2uuDxlkiA1A6Yybtvb\n2/GpT30qHj9+HMPh8JbiJPiq9VlEJbFKhiKibMPSJOer7FW+OykqRyvOijRn5XPs9f/x8XF8+9vf\njr29veLsaGVfcq03g3VBNJjKKlBwSf3la6Y1LuxD5tDUjI4DW/KmNtfEZ26TYftZhoJEWXlS9J7d\nx4AWtyKpfpVbU9J07Fw3sE4HeF1RNt/5/U3rq4GMLNjlTq3Ph9rqWs1p9ZXkjGdt/ckCkln9+nQQ\nucpWdJ05ouC4AjnUT9KZck7YP4FOBYPp8Pt8ctnVbwwSad5oi5j0zvr6ejl3aDKZlK1gWu3yIBP5\n6iDUHRHada6+C3Sr3ZqXOoxxOp3GdDqN0WgUr169iqOjo/joo4/iww8/jI8++iiOj48b2Q8ZyO+C\nGNgQ4KONcKBL4ji2ZYvUbB31EvVZ5gT6/WqLZyk4jxzHXF1dxWAwKCvhtO8604L9cbArcvtAG+xn\n1fD+rrGL9D7rIQ4R+VzK8F6Gf1gm79NWLmXaadw8aOjblpR5xQCQ7pNcbG1txWg0ioibbQ2uDz2g\n4G2mrKgP7Gt2PzGY66BMtrqgjOfihQLZWeCOdomLDjU5y8bSbZbGlfOiZrPa5NgxsuMtPu9jkekb\nx1eZH8W+1TBY13Mv023eduoSzgvvn/qU8Zu6Lgv8sI9Zdk+WkefPqX1coMwwMOXlLnOhdk82H7NF\nN7axS/rWt74V8/k8dnd3Y3t7O4bDYVmAymyQ4702XcB+ZHPGg2iaG66v9Tu3YiowS30gqi2IZHpM\n2/LH43Hs7OzEfD4vmUDM4Ka+95f8eJ9FGW/uojs/scEfURvw9tUjBwiZk8m06Tbg70qjtgqdtTUT\nuqyeVQ6LP+egweslUTBrdXWtAEjiNXksp2ZjY6Pxml0CClcEVIxyOh4/fhwHBwdlqxPHnwqWikdU\n28bTNiYss99/nfI3m82KQ8HzI9RvnY2jlFIvT+3OZJIOjlaqTk5OYnNz89aBZMvlsrEFrSvyAIpW\n98VPffeV5IhmNNsdvGy1gzwRWGM5JAcEDKJ4wIXZUZnRrc1/N1DZM94m9tf7zGd8RaLWz4ekTI/U\ngKgbPFIG0MQDjoUHBlkuyxF58LVN17WBu6y/+u7y4O3wFX039s6frsgzHbiFqwaWGKhkW3z1Ss/W\ngmG6L8vYqTlH0ufaiqaAMM/qUdsUfCFw59hqLvMcKOnGxWLROCBTf3oLx2g0ivX19Tg9PS1noz17\n9ixevHhRnlX/ycO7gu67EnV3xnvndyZP2Sqh+OL6STKqrTusi/bInUOft9LrtD/6TTaI5XKe6Jqv\nxPu9bkdrW6jYBwY76NSwnC6JY0SHIMsgcNxJWY64CcBkTmpme/R2Pi0ORdyckebt4RlfChxtbm6W\nNmiLJl9JrEWi6+vrxmJI5ng4jlIfM12q9me61M8S4u/87ILovLHtcvK1NdazfDL5o+3hva6HyYds\nAUm/UWaIbR2f8rrzh/VlzmFmn1lmzb/xt5GxzDa847b9vpTZb9pgjQXPgHM95XxQnzOMqLJcrl2H\n+UIGA8TZ/OF12kiOk+tef459yoJdlEfyj3rXeVvDeF3Q4eFhPH/+vCwCzWazGA6H0e/3i17iolC2\nFdz1JInz0ueGz0fxhTtJHKdxgUafzGTN5J52krqTfJd/yEUp6WH5TNo6r+M7WJaX6f3OdG+NPrHB\nn0wI3CC54qwJt0+KDPz7pHMBu0vwp60NvFZT0l4226aAgt6kISNea3NmPN4lyRByW576UAPcDm71\nnBTI9vZ27O/vx97eXlEsEXFr0ug5liGSYvdn77JiwnYOh8PY29uL8/PzODw8bIBq9Z/tZ1tYvtfh\nThkzTqQ4FFCSUaMR7IK8PG3pIHDxszi8byonM0KkVcreyZ9XW2lMXB7c6OvT2+vPuhyoPmassd/e\nfjfQXg/lcJVeeVtyfUfZyvpQAzNsf8Y3vyebQ+4o0JCyHeQb68kAHD9VVuYEsPy2vqke54s/m9mN\nLkhbuwhktFLFsXMd6m3g6jbb7k6Kr3gpg9Azf3hGkA7ipd7kvQz+CPTQkVoub2+D4kq77IZkgPqH\nQJ5vObq8vGwEfvRGL/XHdRT51qUDQwfEg9HX180zexxP1Gy5xpJOSObsMGuHzjr/5wsUsrnizoXr\nBWZiibRy7sEO1UVZU7+02kq+qY+8R0EtXxxRXzMnoovx49zwN/KoTmbwMntAY+Z6w/UcSeWen5+X\nTCqfp2qfVpmVxaItf5J1BUu14qx6dVB7bey9jVk73WZRzt1u8jqxoMp5V9hUfJVO8z6pH9zO3Yb3\na9c4X3x7XUQeeM3wbmZffax8IUD38Pcafs3arecdx2b2jfV1HXylnROJn3xj6Ko55tgjm0vyRfhc\n9j91gvghWeJ92ZyWzvW3cvLTgzu08xHNhag2nO+/1+T0Iebd2dlZvHz5snEWqF6rrkOSdf5VdlQG\n23vX6yRiSi6e+BZW3Sv++oHKGlv3Hzn+3ibiEsqLsqXH43Ej00gvz9CWeb4ExW2oywVp1dz7xAZ/\nagqaRGPLAc7AuguQA5iaYeYEZpZBTUDbHKPavd6GrAwJEbNm3Plu49W7Jm3J4X5KRdqz8yFcERKc\naIV3b2+vZPywz75S4uOXGdga8d7MKIs2NzdjNpuVQMx8Pm8A0ouLiwboVnkEyTRE6ocT+aKIMV9f\nqjZ2aYQZTKETzsi4lKaPo9qTrei7I+EZPpnjXzNmkicZEipO/d6mB3yO0OFUm2gk2CY/p8nLyYAZ\nVxB130Od+7NK/+ie7JlMr7UZ31q7HaCyrJrc3oUHNX65DLnBz+5tKz8rV9/JJ5/D9yUH7m53yMPM\nUeA9lFECYD9Um4EWOmnSvcrAUfCHW9H41jZ9KoClLSa+JZWghu2KaGYx6V6CX46NdKL04vHxcRwd\nHcXp6Wkj49IdMx//LsePAQHfakoe8zoDX+fn54228iBS8sDldFWGCfUQn+dZB9SJrEevXlc5Gj+1\nR23UAc3OT3fofGypVzP9G3FzbgRtvdrfJWXzZ7lcFvmmY6FAKOerL5yQj/qufjiPiI8UAMrOU4qI\nRlac5ozmgeaeVpdVp+yjgrdcUKRdciyla77gw/HhPQz4sc/6nzzqMniXBZSEM8QLvrHU20Mni7xh\n5nYN+6uvzqMaFnc8EHGDQYiNVL6eqekwl1uXL7cPuqa6Mqxa83H0f9eBH68j4sYe8M2y7I9TZpfd\ndrKuVb4SbY/7BVkAKJP7jFfUo8STbX2hztXvmb5fhf3c5nZB19fXxS/R69RPT09jb28vZrNZjMfj\nxtsbqSu8bf5/htkzX8D1jPjqNkPtrdlHjYvzP6ufdkJ1ZQt1bJcHgoRV6BvTn/EsN9H29nbrmHzi\ngz8ZWKopqMwJ4zOZY5iRGzdOlsygqb6sTVm/MgdZv2XlC4QzbdWBWsYDlZnV/dC0ubkZOzs7MRwO\nY21tLS4uLspKbJa5orYzMKIxW19fL6/v1d515w/Jx8Aj6k7ZWFJeSAQ7g8Eg9vb2Sn+49UoT2PvC\n+mgs2GbKKQ8SF/jUb5nz1yVlxp6AkAo2OyfBy8rkm4rWjZIrYQJvferQ6Ww7n6+00KFwxc75zfvd\nqGRGxsezzUBHNAG219kFOR/4qT747xmQ8N8z4ERyWfQgD8t00Kvrvjqa6fxaXymfbi94ra0MtqsG\nNCQXGaC8LwkU9Pv9hv5wUKH2rbI1/X6/BGvkXGRvVRPv19bWSnCd26v8GZ/zEbcdR86fzNZRb/tC\nDhcAWO9yuSyOgLIaGACqHZKbOXsRN4sUXdFoNCqv7BaPyBe3AeJzr9cr4+5zSPe7HDuwVRDJA9Dc\nXiXeaqx1T6/3+mwYyR3r8rfUqCz1R232N71kc47PkQ9tDg0/ef0hnE+2V7xTAEWvfSa/5dCsr6/H\nYrG4tc3b5drr8ft08HP21hzNt4uLi8ac1gKbMAcz70SeaUd9kI0Z26X7aff9d/bPHSXy0nVGl7gl\nw0Nqk4LQ4hXnJ3W6niHe5pvXXJ9ktsWxXE2mHe95GzKMX7Nr5LPbX/eD/PmMf6wzs9Vqd4aR35Z6\nvearzZmJRb5mi2ssw/vCIJv0n3SizrTU/CLvmDXiwcFa+7N5nn2qb3yzFJ/JcD3tIu1B1n+W5fKQ\njWtXxCw7Zf4uFovY2dkp/qCyoLLte05u59p479hDPPU3rXGcfKs0eeyLlxmWZRv1v7fTdRwXypS9\nqfZS5hlIzuzIkydPWsfiExv8ccFnpzlA+k3Xa8YkA8qZ0vffI24MpYxybRK1Dbgr1qye7H53MNy4\neB8zcqO1SoF2QTyQVIcj6+wFN1IiCToP+oyIGI/HZQ9pzbi7fEhGsv4TUPNcjGzMnFyZjkaj2Nvb\nKyfHtxlynr2gawLaXkdEcxsLy/AgTAaq7kNUNDyDhNcyJ8WBM8vTPaQMTOl5rrSSr3yWCp78cMpk\nhb/V5pTGUIBa9WUrNT4/2SbvK9vA1byuqSZXmfFvc7Lu0rbaXImIkjnghtH1m2Sdn1kffAUsm9tO\nd1kxzOQj6ydlrWv9KfAk2fc94R64Y7aaX9fKNbetyI4xmJOBG7+PGSIEz8puIZj17alcGXPZI/Dr\n9XqlPBHnB9+uqN94LbNpGUgTLxUY04JCFzQcDmM0GsXx8fGtPrgTpTboz89zU/uZmk6HTn3yuUCi\nrc2yCfS7ggk6QFjjwsWGTI9zPrgc1ea23+OgmnOxtuLahoPuQ9mK+HJ587IG/nZ+fl62M2ROIoNt\nbhe87cw+0Txg9g+z4RTI0Bzf2toqC2zqg8pUAEhlU97YbgYpfc4Qs7njo7IznUidVbODD5G5Rb4q\nEMrMBPKUWIZlMNNR9/o9/HR77pgma18N29fstvOQ5dEu+IJihmsyvOKBZq+b2NOztrsil5ssMJDZ\nW9cTbJuepyOt+TQej4v90I4KLQjIFvFlIt6GrP+s14NX+p3YUnLpfaON9OfbeOeywXZl/OmaZJfV\nv7Ozs/Lmq93d3XI+n2wOMXWtfZl9y+ajX6P8cCEtIm7pKlG2aEzivFWZ2fmK/F7zOaTr2QbakDZc\nure3d5v5oE908CeiCTr03YEef+M9mQLOwMoqZav/eaZBbbJmguLlZu11kkCxvzogiq+rrUVMvd4M\nnNXa1QW9evUqXrx40QDobJsDCYKHiJtsp+FwGPv7+7G9vV11CL2/ep6TM+ur1+2/Z+S/K8NJyu34\n+LgBkmlQVSdll8opM77sSwaAu1x58X5mq/usX//fhXdeFjNksgwCBg9lSCQfTIUnL31VyttaW4XL\nQBKNAoMXBCTOe/3uY666XeZ7vV6ZF3qbWleUGTW2yUF+9kw2z3Q945WXzzqZfRBRl/WsTbqPf236\n38vNbADLzPjDMmpOa62M+9D19XWcnZ2VOpUpyVUgbwODymoz39DFV7Ur4EHwxbmjsWS2Tc0+ahyU\nvqytFTzcULaSbc94yvESaFwub4LADProXgeLrgOIAdyh0L06S64r2tzcjOl0GldXV7FYLEr9BId0\n5GnTmIWRzV32iWOfzWXytDbnGaSIiBJwuLi4iNPT06Kb3GYR+OpabS4Ro7iDSuIKLINdDIapPJe/\nLomy6fKl38lT30YknKj++ksR1D8PotAB0v+e+acyZZMU7NEcF09E7EOmn/2cLbdf7K+epez6s3ym\nZps986tmY96Wsjmj9ikwLeeTAU5mnKscZnZlZXvbHdfxvswJpA7IfnNdX7PnWZ9X2X9+5xZ/llnD\nypSnrsfPx8MxW1ZfFsh03M+MOMn45uZmTCaTsuCi87B4ZIXmIbcQt/kT5LvPY91DWZCN1DXaYdfh\n2dj5XOQzPne7xCmrSDpKOvDs7CwWi0WcnZ3F7u5uTKfTGAwGjUUpPzdNVOM3KbMDvjDGIKBnrop3\nrIvznrbAzwTKqDZmKi/7Te0gnlNZmX1flbH8iQ7+ZMq2zZHQc71eL80wyZxWDnqtPv2/vr5e0kC5\nIiu6KxDJBKemRHQvwSSVxV2E0BWDC7nX3wVdXl7GyclJA/hkgRB9pxJTGweDQTx69Ch2d3dja2sr\nVXR8PnMca7ymo+FAPBtHBy3sgwC/zppQ2qOXmRlztsFlkNcIxL0tbE8XRB7U5MTBZLbqXuuv7tc4\nuCOgueVndni9tbbQkGa/cfyzLAcqYQapCExYju5xI8X21VYZHCh2QbUxqwHBNqB4lzmVPcvrq5wH\nJ3cmvP002DXDmPW3Jps1oNHWt6z8roiZNZ4W7XIludQzXNH2LV3L5bKRZuwBSZ9jnKOql1tLPOCj\nQJUOMeT2kyxrZLlcNoKqBFesz8fZx9wDVzXb6Nc177sk2YPJZFL0F4PXqpc8ZtbF5ubmrYWSTIdm\nTojG2W1jRNw6NJnPCU/0+/3yIgUGIB0nsT7WIfJsWp9z+p4FLTne7L/bZd3DoFEX5FsGSR7Y1zZv\nzT99pyMqGWabeU1lcVFjuVw2zgxkloUyhRXQ5fxW0JSZwNxGozoUsPJDaJ3Pbkd9DChb1FU1u0KZ\n9zq6IPbBr0VECZgpU4q8oQ4VPxUgcMxPefagnPfJ/6dce9uzaxmG8f8lJ/xzysaUbaIuZhmeCZct\neHVFyhzN5rrLFbGXLwZy/mpMdRCxgtrC7FtbW+Ue6mjNsywATGJb/E9zgkEnv9fPiMowi+tsxzEi\nH/sMz5FvGfZ6W3IMLyLWEHZQIEjbwHguLLc8ZTypzW1fWHD74c+zXb7okuFKD4xm8ih94PaLZbiO\naMOo/t2xX43nok9s8CfiNuMi8tTxiGYAYNVk1f36nq1cZIpYwR+dLVBzILxtXq+33wFQViYNZo0H\n5FXmbGbZClnbuyDPaBH/BGC8vZqA6ttgMIjd3d3Y398v6c9sbzZJaLCcd9lEyZRj9jzrcGWv64PB\noLzWT0qOYN8NkyshB0k0ujwfiWnmBJVdj6HLJB2BTO7dQPmz+p4ZyoxkFBngpXJlv2tAhe0TZatb\nmUGUgidglTH3s5yylTsHZ74SqusCLl06oTW+1uRa/fO2+/xi2W0GOXuO94m3Gq8ssKfvNf1am9O1\nNpGy+eL6MpuTtWe7JsmZy6b6zOsR0QBWel4ZOf5qdG7jogNJm+HzVCTn0t/kpUCPB3z8pQQ+X9RW\n/e7g2HVLm2z5vNbvmWy6c5Cl9b8taR5tbW3FeDwuCyC0hdRlaq/41uvdrPypffx0nZoFBbO+qz46\nt+SnHCQuMrA+z8BRmepTDTBfXV0VuaOMZnOSfdfzkuWImy1CLv9dkuv7rK10Ts7OzgpvskCleOOZ\n4v6p8RHPGMAhz2T7uZ1T46NnFOTw7LmI11lCg8GgrLrrWbbVxznjj0h4jv1wnU/HSGW4TeyaMlsS\nESX7R6/e9vtp83u9Xgn+LBaLWwE73V+r0//3+0jkW6bvXK+12UbZD29DzW5lPonjoayNXY+fZFj1\nO48z/sqWZVhOc2E+n8fx8XEcHx+Xoyd0UPt4PC47Kri1T9e8/gxXEK87TlLmizIAnbee5UQ+u47g\nb8TjIrZ/lW6sze+3JQVxsiMRJI/aVqcDoU9OTmI2m8V0Om2cBSTcz/7U2kobVfPnMnuha+I/sQnP\nCCJWod6KyJM9FEzK5NHbnVE2DzO5v4vt+8QGfzIHhqDYDRUNliZSDbyzDg2m3+cGK6K5HSVzWLIM\nDu/HXYyBnufKrDurDoz1HEE+QUHtRPmHIm7bUdsYzKDz5wdfbWxsxO7ubjx9+jSm02kDSLHP7gi5\ncfI/HzPKDB1jAgHVWxtP3aftXzzBXWPo0WC1z40n2y++0MkV+Ov36ymSXZAi8dlKK8Gi2pwB8Uzh\n6X6Rr7zpOa+Pz9acICpvb0dE8y0c3iduifFVTspYRDRSgPmM11czWmwj9VXXjozrBZf5tuey//ls\ndk+mX/V7BkjI44jbhzXrk8G/DFQ4n10v3qU9bUCb7c140vXc84zSzGHK2qfAjPS9zg2SLWCAxw99\nzlb/VbePKx1T2RX+zzc/cQxoGzn27EcWROD3bI548DDTI05qlwApz+fpgtSn8Xgc/X4/jo6O4vz8\nvMEH1yuuR7OVWf5OR8HBJucUz04TMKVNYf2Xl5dxenp6S+bkkOk5lc9MlUyGlsvXZ0Jtbm7GaDQq\nq+8qwwODbi/13YE4+9f1dlnyT/3h/9kiJPX3ctl8axnHmuXwfpdxzlfZJ/aZ7VR9Gr8syKQyer3m\ndtDMGVIdlDO3U5m+VF3knWdxUa97nV2Q60y1n+1V1qIvJrr9UJu1BUgvWtE88jpJjv9r2DELajh/\nxVO3W5wzPjZt7RJ/2uxZhrsyXJPhvvsSMxQzf0f9IG6TLmf2znJ5E3A4OjqKly9fxsnJSePsRukh\nnrmjvvEQZp/D3hbnH8dEwcYMMzJgW8MxmR2jjqrZiLZxrdnS+9Du7m7s7u6WQ++pi9gGLXLI7ioA\ntLe3F9vb2+WsJdkBT7LI2l2Te8eSsiGcU3zGdZ2/6ID3EndkcsHFftf/PsdqWNN1eKb72+gTHfyJ\naCqeLLLpTKVSypjqwpGB6WziieGepldrg09WN6hOWf1sg57LBC3itTBqVUevm9VqXub4Ol+6VgbT\n6TQmk0mJoFPhkUdyTiKirBLOZrN48uRJTKfTEhRSn93R1iRjGq9PZk54Ks1slZEp1py4tQlLgzoa\njeLRo0cl0s/Xv7M8PU/QyBVhKh9/3SjbwmyALtPfPQiietnWtpXR2nXxXP+rD+Qp6/Hr5FtmzOiY\nuKy0tUfOMN+y4oCW8z8LLGd8cp5mfdJfdrbS21KmI9oMRZthFdGA8lp2T+15d6RUt+tDdyQd7LLd\nnEd3BWd+vab/XG9n5XRNHqSn4yZecO4RhPA5rqzLCVNfOL8JKjjGDjxoA1WXvvNP7aLDmvHKATWv\nsw+kzAHgdQd6jiHcgVaQyl9Ffx+S/aVdiog4Ojoq9WTgTYE62igulvhKr8rlyiXL4rzJgssMbKs8\nOUvu6NC2cNGG40+b5PNQWCQiGrYsu9dtpVb1Xf/oLT07OztvNU41yuSfOka2drm8OdPi8vLyFv95\nVhZXkrPAkhxCZoHyrC5lnigrS/ZCeClb4ONYsO0KZOi8L95Lp9lxJz8pD7V56LLdhtu7JLcTkn9i\nK9lwyjG3rFHXClcrWJbh+6zv2T3uE6zqR7Z4xjr0fy1YmdXtdtdxLf/34zVYL/V/V8R5wmwYx5oa\nNwVJpce5o4ABhqOjozg5OYnz8/PS3svLy1gsFqUv1JEZxl/lePu80T3Eiwxiq90MbrjNEtFOU+f6\nvHWZycrIcFQXtLOzE48fP26c76PMYM+qWi5vAtUaJ54FpDdm0sZlAUH2jZ9tuJdj6nrCg8bUERl2\nzXAj9S3L4rPeXj7bhkX5fHYWo9MnNvjjA8zvbqRoXDxA0ubYrDJEmaPm0f9MCLPy3KHODETW1kzY\nszbSSDGqzNfpvUtqm7A6nFDONrdJSYnMZrMSFHInMCI3gL5i6CucPoFEmWxlspcBHU7k9fX1GI1G\nMZvNSuAnW1Vwh4ufoiwoImORAb0uKVOuteClA2Un5xedVa5sykHIVtXagGMNaPlzrL9tLrnzkTm7\nPi4M8Hkmgu7z4F7NKD0keR1vAgKcLxmw5XjVAGWtXOdrZtyo6zP+eX/cYLuc1HQvdar3jfc+BGkV\n38mBCgEh/2cb3XF13vjclaPkILFm13x+ZnqjtmBRA04Z1Wx4Js8OtFaVKTvZFSl9XYGetbW1GI1G\npQ6+rMFtGANmahuzO5TNy776mDM4Qb4Rr7gzRb3HrWf83c8M0h+35opUnvqoTFj9JsdNz3Nhw4Nc\nus56NzY2Yjwex3g8jslk0sWwNeryBQTaPd+O6RhE93kfsmwL8dUPZVd2jvDRYDAo5fJTMkO+6rrP\nX2VJKevHFzlUBmXB8Q754HWxDP8/0w+Og7qizOYTH0bcHK7tb9nJ7EVEM4OOdBf9lZWdYUd/xh3I\nNt1bw10ZLxyTcy7rXs5fkQdIav29Dzl294VY3aPxYECVmSbX16+zeQ4PD+Ply5dxenpa9Jp0oc7i\n4UKAys4WaMkX8tFJPPWzI3u9XtkWJR5KDqn3nBc+D70uf8btQW2cux67i4uLciyK3qCm17wrEKRt\n4QyMaSuYskLn83ns7u6WLCDqqWyhqc33IB/8e2ZjnM/U6dk8ycofzBuZAAAgAElEQVTmvZ6Ry3uz\nzCE+zzbV+tfW54hPcPAnoh4p5+D54XokXfPoqMquRczbwK4faucTK1PGBC0U3rb+sv01AcvuVVor\nAz8OVN4FaX+tTx6BEK64qF2j0Sj29/djb2+vccCzTyCCEILjDGD5/x4o9Ii/QK4Ciw6SOcauEARq\nR6NRbG9vl32+XFnOwJb+F/EtEzJSWkXWd8+C6zK4x1erE4z2+/0S2WcfSBpjjVUGGATEaHDJj2zs\nyHPPKsie47OqI9MnnM/irYivt+YYs28u3040IBnPCN7fFa3SJxkIEbm+zZygWrlZG/yTAI3fI/KM\noKwfDmR97jr4ztpMHcO6PCOulhl0H6o5A84jnzcuq3y21nf+n9kyURZY4ne20ecv215zoNpsUxtw\nZVvY11qgtaZfuqLhcBjT6TSOj49LoGdjYyMmk0nRMbVXuruzRZmjviMvhW88M4U2TOWTX3rO6+PY\neyCez+p51e3zwstg2Wwv9TnnXEb9fj8Gg0EJ/IxGo84zf9jf7DsXKNR/OpC18cz4Qp7K1oiPGkdl\npG5ubsbp6WnD5rhu8rNPeJC3HDNlhXs56odnELus+Tz2scocGj7n+qfL4A+xRYYXVbcwMuXTF9Jc\nxytA54c+89O3MTpl8sH7aotqLit+v887Pd+m93i91l7KarbYnQXE7kO14GpmuzTGHEv9XVxcxPHx\ncbx48aK8hMX7q34xGEOZpHxn59bxyIKsbZq7LJNv14xo4mzHPSQvPxuvNttfw2ld2r7nz5/Hs2fP\nYjQaxXA4LHpa/s98Po/5fF6CQdyirq1gChadnp7G3t5e7OzsxGQyaWyDVX+cd9lcIG/4SVmpLfBl\nPIy4vTXdeU75yHRghrGyMvQMP/n7XcbuExv8yYTYqQ14tylDZ95dASjLziaPGwXew4PJePL7qrq8\n7dnvukdKalWaXK3NXRKj2hJuHlDorzIdj8dxcHAQe3t7MRwOGyv/bRMz++5jX3vOx9TrcpDqRlZK\nZ7m8yVTo9Xrl9cHa68sgVVsbRFrt29raapwfREVExdHW1/uSHJfRaBT9fj9OT0/LmSJUWt6urJ+c\nE+SrK0Q9lwE3lsX/s3rdmLMsD/xSqUfczFduJVSb3aB6lkoG1NSOiObbjNr0wH2oZgR9PHi9TR/5\nWLTJbzavsjZkOs1lRPV6NlVWX01HOvhpA+hOmTNz12fvQxng9XlSswP+PEGO18FnfF4yoFADpRG3\nV5Mz0BNxm5er5KQGjrztrg8zx9T1wZvKwZuQtisfHh6WBZDNzc0Yj8fx6tWrOD09Tduq7UO+7Ubb\ne5xHvnDB8Yi42Xqn8aGO43k95KPqYaZEhpcoT7XAuus28l1OV2YrXNdolZ9Bn+FwGJPJJLa3t998\ngFqIc4vZmr5gxwylTB9mmDWbL7IFkhEFZ1SWxk3Bh+ysv2zeKeBDx5UZRRozX8DwLaJsr9flASG3\nya6/Ha90jT1rjm52n+Qvy8DzT/FuY2Oj4J7MhmXym9kmfaeuze71OcsAaw1j6XuGnbJx4jhTL3iW\nBZ8Tda07xRPfWUH7wfoyXK23DCvjRy9goc7KMrNZj48L8UjGO5cf6hDJmp7x7boewBXR/lH/ZLLN\ndnBRwYOND4lh5vN54bkOSR8OhyXgvL29Hf/H3p1H21GViQL/biDzQBiSIB2gJQkdkhDRft0oyGA7\nsLq1ZQzNc3iAaZQhgoLSLWAwoKiIIi8kICqC2NLMxAFlnkOvp09UvMEAYbDTtAlCgISQgeS8P3h1\n3KnUubkk5566p+7vt9Zd994z7PqqdtWuXV9V7RoyZEi89tprG9wSlj0tNDsezJJ1r776aixfvjy2\n2WabGD58+AZPBcviT9fPorYnYuOTlen8p/WVl08mpW1hutzzxw1pDPn+dlGfo6v9R6N4uuoLp9o6\n+VO0YeU/k72evlfUYHXVSDfqhOTjaBRnqqjhz1fWVltt1fDy/uxz6YFio8a3KMY0sVTUKWiVfOct\nO3vV0dFR37izRnnQoEH1cX6GDh26wUF3tmGnmdR0OWblp3Wab1DzHdP8gUDawct3vvODTeZ3qvkD\njIjXz8ANHz68fulj9rtoGaUNQRZ3mhAbNGhQ/ely6e0J2TqSjlnTLOky6t+/fwwePLie/KnVavXG\nO62P/HbWaNnn/04b17Qzli6L9HPp97P1oqgBLTogKdrRpk8+yq62yscSseF4YxF/3qbT5FC+DUo/\n19U23BPb56baq6IdVNHn8mU12oF25/tFHZCi8vIduqL6zXe+8uWlHYIshvwOuqs4GsVcdADTTPmO\nQTbNiNhg3UzjyaTzXHSwUbSvavR/UbvWaF43lcDMt3P5aRa1I91pP9KDgvx08p3kdFtutN41Q3a1\n58iRI2PAgAHx/PPPx8qVK6NWe/0Jlll82VPA8p32tHObzkd+H1XU4cz2hel4Lul+J91nZGPFpFcH\n9+vXL1577bWNBrrMtrN8UirtaKcHa/kz5/kOa/5KpvR7abufzcugQYNi2LBhMXDgwBg0aFD9ytoh\nQ4YUJiW3RDp2YPZ3OnBxFl/+wSP5OssfBBb1Y/P9vFWrVm3QJ8q+l72W9YuyvmN2u0TaV8nqNDvg\nzE62pbd7FSXu0mRg/qAxv5/I5iVd9vkrGLK/iw5i0nWombdc5k/wFC3vbLml21Veup1l30ufjphe\nHZyf/qb2W2k8+b8brT/5K8jyfYl8H6moLS7qE+cPXPP71CwRk06raPk2S/rggPy+LF02+ScGpvOQ\nDVr/0ksv1cf4KWrfi/o+6XxHxEbbQ1qPaRuRLve0Hc+Sr2lfOZuf9A6N/HpTFGv2vfyyyG+fRfOb\nLp+e2u9lV/isXbs2Vq1aVW+7szY7Gwsv+ztrp1auXBmvvPJKfUyzdKiM7IqhFStWxIgRI2Kbbbap\njwc0YMCAetuYH4e3O9tdUd+xSFH/L99Pyh9rpO3ppvqZabld9e3SaWf7nU1tf22b/InY8IAt4s/Z\nvoiNH/2e74Bkny/qCKafScvt6oCpUWerqwY3nX52eVv2Wv6+/Ex2xiZ/1i4tM19+Jpv//JmarjSz\nAUhlyyZtAGq1Wj3bm3aeBg8eHNtvv32MGDFig/uwi3aARfOfdkCzRqXRssgvj6zxLnqsY/Y7f8Y6\nX06+cckGaczOUK5YsWKDdTnNGBcNapYNRjdixIgYNGhQDB48uN4gpp2W7Ixgdsaw2bLbz7KGOzs4\nSAegTDv36TaWdhryHYf8ept+vtHyLcqwp/Od7XjynYaidiG9tD6ti3zjmsaUzk++41s0P/n1LPt+\nfjnlDyBaoVGHviieRgdX+e0wU9Tu5A9YN7XDzX8/f7CRv5KrOzFk/+e31a5iSa9+yJfXVbu/pfLr\nYvZaV7cJpPIxpcs8Pz/5+kinmf9so3KLXk/Lz7cB6f42PSjJtxP5ecrHmf9sus4WdaaK4mq27CB+\nq622im233TaGDBkSzz33XLz00kuxbt26GDhwYP2pkOkVnfl1PG1X+/fvX38vS950dLyejMk/tGDg\nwIExbNiwWL9+fT3plCaZ8idi0qfR9Ov3+i3ZWblZmREbjkWVtRHZ/KavpfWb3iqcJlDWrFlT77yn\nZWZlpQcO2S0E2VXDw4YNq18dvGrVqlixYkVT6y/f1yjaDrP6yZZtVh/pFaD5uizqx6X9iuwn6wek\ng0CnfaHsu+vXv36l2MqVKzd6WEHW10zrOxvoOX/Lff5JgGn/J2238/u8tC0u2hemJ9XSK13zy7CZ\nJ63S6WfTSvtcaX2mY75kyyztJ+TbzKwv1L9//3qCt1Gfv2j/0522J98GRPz55FLWt+kqyZZ/L7+v\nS19Pj0PSuk/HzWmU+MlPv1myxE86Dk76k24f2bqdPwZIbzHKPpNul/njgXyyJF1m6f6pqM+Xnjis\n1Wr1RGzWdqWvR2zYlqZDNxStR93pW3TVd0y3g/Tv7vS9Nkd+OWWJ6ax9yo5ThgwZEkOGDKkn8YcO\nHRrbbrttfZDobNyfdL/06quvxooVK2LlypWxzTbb1AeFzrbL7He6faT7xXw/Kd+Xyq8T+eWV9ldS\n6baSX77pepdua0X91CymIo3ai+6sH22b/ClaMPmz7/nPRWx8xj2twHwDnJZR1LHPfyf/k4+vUWzp\nd/JnitIdTHaVRdYxyg6w841vfueUznu+Q1WWNLmRdfgiNjwIzi7l3mGHHWLkyJH1gaAz+Y0mm+/8\nmd6svGx+0ydgpPcDp8sxf2Yy/zSO/OW26XtF9Vx0gDtgwIAYPHhwPXmTdfbz8juZrO6XLVsWQ4cO\njY6Ojo2eBJPPOBedwdpc2TynncbsaRfZji17akujA7/8+lmUvCtaT4uWT9rwph2xrDOWSc8CpOWl\ndZ8ePBXt9NP/07pM16/8AVXaVqTrTTovWd1lne10ftL1sZkatUuZTXVSu9KdHVdROY12fkWKOiz5\nDmB6lUF3OzRF61uj/UF+X1EUYzOl20+67hXFnl8nG8VUtO/Lf6/Rsi7q8OfX7fz97el08q+l0yi6\nwiA/L0XLJv93Ok+b6kQVld/M/WRHR0f9TO9rr70WI0aMiNGjR8egQYNi2bJl9cTQDjvsEK+88kqs\nWLGinmxJYy86aZHdqpImhmq1Wv0AulZ7/cTB8uXLY/369Ruccc7KWLt27QZP0IyI+smZbJ+ZtlHZ\niZQ02ZO1Wek+L788s+0yHeg5+3zWZqf7tXTfnR0YZEmfrL3fbrvtYuTIkbF+/fr6E3x64lHvERv2\nH9N5zPc38ttEvp/RaLss2t6y17Iro9N6yZZpeoVO9pMeRGb7puxzWdIs22fnt9/8Pq0o7vyyyeY/\nXRb5fln6+UbbdjY/zZTvm2fyMaT90PRET6O2IOsPpU9fzR9UFh1EZtPuquxGsabJv6KrivLrYtG8\nN+qDpdPI1o2sj1qUPM+v22kczZKO35NfBtn7afzp+p5eKZLdmpcmBvLLotH8FB0nZFf/FSU6s0R1\nxJ/rPxv0OGtns2O4LBmUrjtp3aXLM7/c07iK1rtGxwH5cvLz30zpfjiNN62b7Law7KTykCFD6knp\nAQMGxLBhw+onv7O7JtLbwVasWBEvvfRSDBs2LIYOHVo/NsmSLdnyTMe9yydu0v57fhmn6153l1Ha\ndqbbf3qlbP6Ec9HxR1f/56fXHW2b/MkU7YjylZOvpKLGtqiTn76X7zw2auTyG2raEcpfNZJON21Q\n04Y8m5fsjF3WaGT3RDaKp9HOudGOr9kb+qakA57lG+1sAxg2bFiMGjUqRo0aVX+iRfa5fPIl7Tym\nZWV/p69ln03PhKWPgWzU4Od/ihQddEQUDwSbNWbZfa1pUiLrUKdnRLMGK2s4skFDs3lIpxvx50a1\n0W1lWyKLJz/uTTZv2dnGfExFHd+ulmU+YZl/P/udrg9pZyA9e1jUYOfLyCdf0h18/uxgV41vui3n\nO1MRjQfCLGobyrCpjtCm6q7RwXRR5yPfkcx/p0j+ICX/vfwZ3fzvogOQop18UYyN6j7fzvREB6rR\n/qHRQWSmq/c3te/Iys93bPPrQP4sY9EyLFomaV0UXYWXzmf6XqN9f6N9X34+uuoHpHE2sw6z+cjO\nXK5ZsyaGDx8e2223XQwZMiT+9Kc/xSuvvBIRUW+3sidDFnXis4OF/Pxk+7fs4LDo0vesnPTz2ffT\nMSfStj5L6GcJqfyt1fn9XNqvSZdl/oqC9LWIPyeRsvlKkz7ZU16y94YOHVq/MjhLbi1fvjxWrVrV\nsH3aEmm/Ib1qp2g7LOqLpnWVtkmN+qtpWZls2v369dvg1rysLrO/869nZWUHU9nBUf4ANWLDq3by\nyZBMGnujvmj6vfxVTvn5StfDdH/ZDNm0i/qGRQe/2cFhuuzSPlgad7aOprdU5ssumkZeo/5RPuas\nr5Imx7LX8weu+TYjX36jaaTfT+s9vw6n60t+nppdf43Wify2lf1kt1VlifRsTMr0BF/RupttO9k8\n5Pez2TqRXwfSdTe/3WXfzZKtWbInvU0wa8/z/cN8nzKdz3wcmfSkeP6qtUb9mK4Shc1Q1K9M48iu\nzsqWZXYbWPaT3TExaNCg+vHNmjVr6mOfrly5MlatWhXLly/faAy4LDGbH183az+zZVo070Vx55db\n/nNZednrXfUL0+Rh/lgh/382vaLtNY1hU9te2yZ/8htdow5duoHkN6iisor+z7+eVmR+55X/v0jR\nRpdWbn7nmG0EQ4cOjcGDB2+0Y+pOB6erHU2jjTzdIJvdEGQ7r6KrtbIrfkaNGhWjR4+OIUOGbHD2\nOL/TS8cgyBQdIKTTSQ8GswRL/tLefEc2Ky9iwyvIig4W03UyPXuUdZQjon6Z4/Dhw+uDz+U7kllZ\nWacivec5a7TS9SZthNKOVjOTP2kjls5j2hnOziqmHdD8Npo/oCvaoTbqCBfVTaNEa3pAkS8n+176\nuyhRm+/ApXGlyznN3OfHT8g+m5XXqLOcfTdbnul62Wz5A/oiRfWUadT+dNUmNWqjiw6QGu0s87EU\nbafZupd2kNIkXvpTtI03ms90Z5zvCDeKpVkaHaQUTTf9TP7z+TrtahkUXdGYbeP55V/UaUqnld+3\n5WPsapsoKrvRcs6vr/n2qtH6kl+nmi19SuO6devql7Bvt9129YGgX3jhhVi+fHn95MjWW29dH/cg\nvUIwP09ZzOlPdmY5na/8gVzabkZEfVyffEc83e/kt4X0wCSNK3st3x7369dvg8FxG10tlB0oZbd3\npQc0AwcOjOHDh9dvn8vG8sieFtPR0RFDhgxpav2lCYRsmaYHDmmHPVsG2fym+7h8u5m/Sq9oO06X\nTXZCZ8CAAfUTPEVPHcqv8+kVKlkCKBsoNd1Oig7MGm2b6fym/6evp2Wl61o6v+k6lC3XZu73ivqx\nRW1Q9ne67y2q4+xzaT8ivZ0j33bmjw0a9Wvy+790m0nXr/TvbJr5q4vS9TWLMftOvg6y1/PtYDbg\nbv5BMen3ik6q5JfVlsrawkbbR/aZiD/39VavXl2/GiR7bHh68N+oX5Np1LdP5zXffqb9wjSxk/ZF\nUlmbmv6ftjGN1puu+mtprNnn80Mt5NuK/HrdU/Jx5ecvey+7qmflypUbDDGRnQDI2v+Ojj8n+dIT\n6cuXL4+VK1dG//7967eTZYmjbD+cPkUxnfe0T7+pk1759aGonUlPjGXx5pdJJpteVxczpG1Cvr3P\nl9dI2yZ/MvkZThdc2gjnNdoJ5DuHXTU0ReXkX8+X0ejz2ZUS2UpftNPLVpps0KysU5efh+7E2mi5\ndPWdZkqTPunvjo7Xz0ptu+22MWrUqHriJ13x08td8zvf/EaQV9TQZA1A1tg0OpPX1brQ6KAnm0b+\nu1msWSZ72LBhsXLlyo123vmznxGxwa1++bjSndmmYt4SaQOZdY6yyzGzzne+E5l+N4s1v852Z1sp\niiViw3tr8zu6fCOZfS/dCeYb/fx7+XU2q5/082nntmjHke/wZ2Xlx+ZI48mX0yyN2sBGbUp328F0\nuRV9Ll9md3ZUadlF9ZfvyDWap/xArI1iTL8bsfG4RPnpFH2/p7a7om0p091l2ahDWdSxyXdm0u2p\nKI58+5q9X5T4SV/P12tXseeXQ1HnqCiGrt7PT6Or9zdXlszIxtDJbmV48cUXY/369fWrWAYMGBAv\nv/xyRPw5WbPVVlvVD8Sy+cmW1fr16ze4xTU9UZC2K+lJj3w7l7ajaTtYtI7l+1z5fXgaR9EJkvwj\nsTPprRjZLcTpbcXZtjt48ODYdtttY+TIkdGv3+tPmXz55ZfrCbLsM9tvv33T6i5bNlndpfNYtP/P\nlk9+uXR1K1P+YK+oz9DR8edkXHYlQ7pvyh/IZNtYftlmJ9HSdSKdz7TO8mNU5MvP12N++0n7aPn5\nSvsI+fWpmfu9rtqMos+kic70JFf2ufRkW/ZedoCajWmSvpfOd36bK+rf5hNBRSeSirbN7LvpLe5F\n7XN6zFPUDmTfW7t27UaDWKdtQNF+rif2gUXbRdrfT+PP2r6VK1fGyy+/HMuXL68nX7LbgPLDABTV\nR/p6Vi/5Pke2fqTrbtrfyC+T/FWYERuua0XLLp9AT8vMt79ZrGl8jdqnvHx5PaGojStqP9L+eFaf\n2Thu2X40G/M0uzVx+PDhMXTo0Prns6T4ihUr6k8Iy76T3jac7w+mid90/5XJt0vd6YOm85Wv5+y1\nRv2qovU9LbuoLUvbnyJtm/wZMWLEBjuNdEWJ2PjsVn6FbpSRz2fDiy7BS6Urxpo1a+pPPiq60qJo\ng8qmmw5OmyZ2stiyjGe2E454/V78TW2km3o/Kz/tDBZ9f/To0V2W80btsMMOG2U2I17vHI8YMSJ2\n3HHH2G677Ta4/79Wq9U7LGnyJ7/BZNJbprLP5jte6VnM/IBy6TIo2nlnO9qOjo7CHUiqqJPU0fH6\nLW/Dhw+PYcOGxYgRI+pnglP5s6FZzPkGpOigJmvA3vSmN3VdIW/A0KFDY/369fUrl7LBQbPtL7tS\nLb/sixrHRgff+cYzfS1/1U/2Oz37lT9Tl+/YptNJP5OWmZ0lzeonfcxuNr38jiE/v+m083Gnt1kU\n7QjTWy8GDx68OVVVaOjQoRsstyzuTe24GnWOir7T1Q49X2ajdWBT8eTfS//v6uA9fzCS70B2NZ30\n/aLtueg72fJuhvTR1V116Is6F/kDlfS9TXXAUvlO8KYUdWbz20k+5nwcaaxFijo/jTrSjda3ommu\nX7++6Y8LHzZsWP3KmuxMZUTUDxgHDx4cY8eOjVdeeSWWL19eH+QyS6pn+4i0j5Dt27KDmrTPk81L\nft9Xq9U2unI0bbPyHdX8wWJ6QJKVl9ZDOrZe0cFLfl+a7U+zsfCyhE/+iofBgwfHyJEjY+TIkRER\n9QO79AqWQYMGxXbbbRfDhg1rat1l/c5sG0iXRzofERu29/n1MH+FUH7sifw+K7XVVq8/MCLd96T9\n3/wJg6ys7ARjdvtEdva70ZWQ+SuG0kG+89tk/rVMVwd52efSkzbp9Gq1WlPHbCrah6YnXdK6Sm/5\nSWNN+wlFVy9lt5hkD73I9x2LrrbJpp39zuop22byfct83zTfN8r6yGn/Ib/tNWrb07iK+pPp+pG/\neqFIM6+8S8tK+21F85r1obPlmY2NmSU9t956641OohedqEv7atkxWpqMyCcq833K7MRy2kZk7Vf2\nwJZ022m0zef3k+k2lSax0nnIr6v544hU/hiwVqs1td8yduzYerzpPKTLK7+fKdrfp7HnE9nZbazZ\nyYL0CsLs5HR2TJhd9ZN9J70SKJ/gy7ev6f9FcaX7ySzOvHR/kG6b+W0s3f+m5eeXW1GdZvvHRjpq\n3em9AQAAANCWmv8IGQAAAAB6DckfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT\n/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAA\ngAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkf\nAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACo\nMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEAAACoMMkfAAAAgAqT/AEA\nAACoMMkfAAAAgArbuuwANtc73/nOWLx4cdlh9Bljx46NBx54oGnlqb/Wamb9qbvWU3/tS921N/XX\nvvRb2pttr72pv/al7trbpuqvbZM/ixcvjmeeeabsMNhM6q99qbv2pv7al7prb+qvvam/9qXu2pv6\na1/qrvdx2xcAAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABA\nhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8A\nAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFSY\n5A8AAABAhUn+AAAAAFSY5A8AAABAhUn+AAAAAFTY1mUHAAD0fm9605vi85//fJefOfHEE1sUDQAA\nb4TkDwBQaI899oj58+dHRES/fv1ixIgRXX7+f/7P/xkREW9/+9tj4cKFPR4fAADd47YvAKDQAQcc\nECNHjoyRI0duMvETEfXP/v73v49arRZXXXVVDB06tAWRAgDQFVf+AAAbOe+88+Jzn/vcFpXxkY98\nJIYPHx4vvfRS4ftHH330FpUPAED3SP4AUClr1qyJiIgBAwaUHEn7+vznPx//+q//2pSyDj744Ibv\nZbeJRUR0dnbGW9/61qZMEwCADbntC4DKOPTQQ6N///7Rv3//OOyww8oOpy19+tOfjnPOOSc6Ojp6\nfFpZXfXv3z/22muvqNVqUavV4plnnok99tijx6cP7erwww+v/2TbTXd+jjvuuLJDB6AkrvwBoBJm\nzJgRF110Uf3/f//3f3f1zxv0zW9+M0455ZSyw4hddtklrr/++nj00UcjIuKaa66J6667ruSooHf4\n7Gc/G+eff/5mffeyyy6LnXfeOWbOnNnkqADo7SR/AGhr/fv3j4MOOihmz569wevZ7V90zxe+8IVe\nkfjJTJo0KSZNmhQRr1/lEBHxu9/9Lvbcc88yw4JSTZs2bbMTP5nPf/7zsXTp0rj44oubFBUA7UDy\nB4C2tmTJkth22203en3YsGElRENPGjlyZEydOjV++9vflh0KtLXZs2fHunXr4pJLLik7FABaxJg/\nALStGTNmSPI0wa677hof/vCHyw5jk8aOHRuHHHJI2WFAac4444ymlTV37tw499xzm1YeAL2b5A8A\n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\n197UX/vSb2lvtr32pv7al7prb5uqv45arVZrUSx1b3/72+P++++P/v37119bu3Zt7LfffvEf//Ef\nrQ4HAAAAoLJKGfB5yJAh8dvf/jb++q//uv7aI488EoMHD+52Ge985ztj8eLFPREeBcaOHRsPPPBA\n08pTf63VzPpTd62n/tqXumtv6q996be0N9tee1N/7UvdtbdN1V8pyZ+TTz45/vmf/zn+7u/+Lnbc\nccf44x//GHfffXfMnDmz22UsXrw4nnnmmR6Mkp6k/tqXumtv6q99qbv2pv7am/prX+quvam/9qXu\nep9Skj+HHHJITJkyJW699dZYunRpvPnNb44TTjghxo8fX0Y4AAAAAJVVSvInImL8+PGSPQAAAAA9\nrLTkz5133hm/+MUvYtmyZZGOOX3++eeXFRIAAABA5fQrY6IXX3xxnH322bF+/fr4+c9/HiNHjowH\nHnggRowYUUY4AAAAAJVVSvLnhhtuiMsvvzzOOOOM6N+/f5xxxhlx6aWXGg0cAAAAoMlKSf68/PLL\nsfvuu0dERP/+/WPt2rUxderU+MUvflFGOAAAAACVVcqYP7vssks8/vjjMWHChJgwYUJcffXVMWLE\niNhmm23KCAcAAACgskpJ/nzqU5+KF198MSIiPvOZz8Rpp50WK1eujLPPPruMcAAAAAAqq+XJn/Xr\n18eAAQPiLW95S0RETJ06NW6//fZWhwEAAADQJ7R8zJ9+/frFiSeeGAMGDGj1pAEAAAD6nFIGfP6b\nv/mb+PWvf13GpAEAAAD6lFLG/Nlpp53iuOOOi3e/+92x4447RkdHR/29U045pYyQAAAAACqplOTP\n6tWr4z3veU9ERCxZsqSMEAAAAAD6hJYnf9auXRtf/vKXIyLil7/8ZdRqtfp7e+21V6vDAQAAAKi0\nliZ/fvjDH8bDDz8cX/va1yIiYvr06bHttttGrVaLVatWxWc+85mYNm1aK0MCAAAAqLSWDvg8b968\nmD59ev3/AQMGxD333BP33ntvXHHFFXH99de3MhwAAACAymtp8mfx4sUxceLE+v/jxo2r/z1x4sT4\nz//8z1aGAwAAAFB5LU3+rFy5MlauXFn//9///d/rf7/66qvx6quvtjIcAAAAgMprafJnwoQJ8eCD\nDxa+d//998f48eNbGQ4AAABA5bU0+XP00UfHrFmz4o477oj169dHRMT69evj9ttvj3PPPTeOPvro\nVoYDAAAAUHktfdrX+9///liyZEl89rOfjbVr18bIkSPjxRdfjP79+8dJJ50UH/jAB1oZDgAAAEDl\ntTT5ExHxsY99LI488sh4+OGHY9myZTFy5Mh461vfGsOHD291KAAAAACV1/LkT0TEsGHDYr/99itj\n0gAAAAB9SkvH/AEAAACgtSR/AAAAACpM8gcAAACgwkoZ8wcA6P3mzp3b5fvnnHNO/PGPf2xRNAAA\nbC7JHwBgIw899FC8/e1v7/IzH/7wh2P9+vWbLGvBggWx7777Nis0AADeIMkfAKBu2LBhcemll24y\n8RMRMWLEiG6Vuc8++0StVotPfOITcdlll21piAAAvEHG/AEA6nbdddf48Ic/3CNlf+tb34orr7wy\nDjnkkB4pHwCAYpI/AEDL/K//9b/i+uuvjzVr1sSaNWvirLPOKjskAIDKk/wBAFpqq622iv79+0f/\n/v3j3HPPjVqtFu9973vLDgvaxuGHH17/qdVq3f457rjjyg4dgJIY8wcAKN11110Xd9xxR8P3P/Wp\nT8XixYtbGBH0Tp/97Gfj/PPP36zvXnbZZbHzzjvHzJkzmxwVAL2d5A8AULptttkmDj/88IbvH374\n4fG73/0u9txzzxZGBb3LtGnTNjvxk/n85z8fS5cujYsvvrhJUQHQDtz2BQAAfcjs2bPjhBNOKDsM\nAFpI8gcAANrAGWec0bSy5s6dG+eee27TygOgd5P8AQCANrDXXns1tbyzzjrLFUAAfYTkDwAAtIHb\nbrut6WXOnTs3ZsyY0fRyAehdJH8AAKANfOc73+mRcmfPnh333ntvHHDAAT1SPpt27LHHxr333lv/\n2XXXXcsOCagYyR/oplqtFhdccEFstdVWZYcCfd6OO+4YtVpto5/+/fuXHRo9aMqUKXHBBRfE1lt7\nWCl903XXXRc33XRTj5S9//77xw477NAjZdO1yZMnx+WXXx77779//efpp5+ORx99NIYPH152eEBF\nSP7AG3DaaafFbrvtVnYY0Geddtppcdppp8Xvf//7skOhJKeddlqcd955cfTRR5cdCpRi3rx5ZYdA\ni0ycODGuu+662G677coOBagAp86gmw4//PC44YYb4sYbb4w999yz7HCgz7nhhhvisMMOKzsMeoHP\nfvaz8eqrr8aAAQPi29/+dtnhQEtdeeWV8dhjj8X8+fPLDoUmueaaaxq+d9BBB8V9990XU6ZMaWFE\nQBW58ge66cYbb4yTTz45dt9993jkkUdi2223LTsk6BMmTJgQs2fPlvhhA4MHD47LLrssarVa2aFU\nytZbbx0TJkyIzs7OqNVqcdFFF8WECRNiwoQJ9nu9yK9+9auyQ6CJJk+evEXvA3SH5A+8AbNnz46n\nn346pkyZEh/72MfKDgcq7+Mf/3g89thjnkQDLfLVr341HnvssZg0aVJERJx88snx2GOPxWOPPRZX\nX3218UegJMcff3zZIQBtTvIHgF5p+vTpcdFFF5UdBvQpp556asP3DjroIFecQEm++c1vxoknnlh2\nGEAbk/wB+oz8k6FmzpxZdkh9XkdHR8ycObPwyV3f+c53YtCgQWWH2Od0dnbG8ccfH6tWrSo7FEqw\n4447xsMPPxwPP/xw4fvjx4/vsceNA40NHDgw5syZE3vssUfZoQBtSvIHNsPixYvjvvvuKzsMaHsX\nXHBBzJo1q+wwyPnWt74VTz75ZNlhUIIlS5bE2972tnjb294WF1xwQf31008/vf7zz//8zyVGCH3L\nbbfdFqeffnr9/9NOO63EaIB25mlfsBn+x//4H7FkyZKyw4C219UtJpTr3e9+d/z3f/932WFQos99\n7nP1Wy8XL15ccjT0tFtuuSVuueWWssPok97znvfEHXfcERERCxcujPe85z1x5513Rq1Wi2nTpsXL\nL78cv/rVr+KOO+6I6dOnS8ACm0XyB96gv/qrvyo7BDZTR0dH2SGQmDhxYtkh0IU//vGPsdtuu8U9\n99wTu+yyS9nhFHrmmWfiwAMPLDuMynrttdckffqIBx98MN7//veXHUaf9eSTT8YDDzwQERH77bdf\nRGzc37zzzjv1Y4At4rYvAEpx3nnnlR0Cm/DUU0/F9773vbLDaOjyyy+Pp59+uuwwoK19//vfj/33\n37/sMPq0p556Kvbbb7964gegJ7jyBwBo6Ktf/WocddRRve6qx+233z5effXVssOAtnfnnXfG+vXr\nyw4DgB4m+QMANPTqq6/GxIkT49Zbb62/9r73va+UWFasWBHz58+P4447Ll544YVSYoDeYPXq1Zu8\nBeiBBx6Ifffdt/C9BQsWxN577x0rVqzoifAA6IXc9gVAKS6++OI49thj47vf/W7ZodANBx10UP3n\nrLPOKiWGj370o3HQQQfFH/7wh1KmD+1k+vTpha8vXLgwDjvsMIkfgD5G8geAUtx1111xxRVXxCc+\n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\n77///hklAgAAAEhPJuXPfffdF6NGjYrtttsutt1227rtZWVl8dhjj2URCQAAACBJmZQ/1157bYwZ\nMyYOPvjgLHYPAAAAUDIyuebPxx9/HD169Mhi1wAAAAAlJZPy59RTT40bbrgh/vWvf2WxewAAAICS\nkclpX7fffnusWLEibr311thxxx3X+1xVVVUWkQAAAACSlEn5c9VVV2WxWwAAAICSk0n5881vfjOL\n3QIAAACUnEyu+bNmzZq47rrr4tBDD42vf/3rceihh8Z1110Xq1evziIOAAAAQLIyO+3rb3/7W4wc\nOTJat24dr7/+eowfPz7ee++9uPDCC7OIBAAAAJCkTMqfP//5zzF58uTYaaedIiKiQ4cO0bVr1zjy\nyCOVPwAAAAB5lMlpX7lc7gttBwAAAGDLZFL+HH744TF48OB48sknY/78+fHEE0/EGWecEd/5zney\niAMAAACQrExO+zr//PPjhhtuiFGjRkVtbW20aNEijjjiiDj99NOziAMAAACQrEzKn2222SbOPvvs\nOPvss7PYPQAAAEDJKFj589e//jX222+/iIiYNWvWJl+3//77FyoSAAAAQPIKVv6MHDkyHnrooYiI\nGDp06EZfU1ZWFo899lihIgEAAAAkr2Dlz7riJyLi8ccfL9RuAQAAAEpaJnf7Gjx48Ea3V1ZWFjgJ\nAAAAQNoyKX/+8pe/bHT7M888U+AkAAAAAGkr6N2+xowZExERa9asqft4ncWLF0fr1q0LGQcAAAAg\neQUtf5YuXRoREblcru7jdXbdddc488wzCxkHAAAAIHkFLX8uv/zyiIjYe++9Y+DAgYXcNQAAAEBJ\nyuSaP9tss028/PLL6217+eWX4/77788iDgAAAECyMil/xowZE7vuuut621q1arXBdYAAAAAA+HIy\nKX/ee++9+OpXv7reth122CHefffdLOIAAAAAJCuT8qdjx47xyCOPrLdt6tSp0bFjxyziAAAAACSr\noBd8Xue8886LQYMGxZ/+9Kdo27Zt/OMf/4hZs2bFzTffnEUcAOALaN68eQwePPgLfU1VVVU88cQT\n9ZQISte2224bF1xwwWZfN3Xq1Jg1a1YBEgHQEGVS/nzjG9+Ihx56KB566KF44403oqKiIoYOHbrB\ndYAAgIahU6dO8Yc//CEiIpo0aRKdO3f+Ql8/fPhw5Q/k2U033RQHHnhgdOnSZbOvff/995U/ACUs\nk/InIqJ169YxaNCgrHYPAHwOzZs3j1mzZn3pU7NHjhwZzz//fDz00EN5Sgalq6ysLH7+859/offS\no0ePjueeey6qqqrqLxgADVYm5c/5558fZWVlG/3clVdeWeA0AMCmnHHGGXm7Jt+DDz4YgwcPjhtv\nvDEv60Gp2mabbeLSSy/9wl83bdq0+NGPfhR33HFHPaQCoCHL5ILP7du3j3bt2tU9vvKVr8QTTzwR\nTZs2zSIOAFAg1157bcyZMyc6dOiQdRQoSePGjYs5c+bEnDlz4oYbbsg6DgAFksmRP5WVlRts69+/\nf4wbNy6DNADApowYMSIGDBgQXbt2zct62267bZSXl8f8+fMjImLs2LExfvz4WLVqVSxYsCAv+4DU\nfZ5r/GzK9ttvH+Xl5RERUV5eHosWLYorrrgiX9EAaKAyOfJnY7p06RLPPPNM1jEAgAKqrKyMmpqa\nmDlzZhx00EFZx4EGb+DAgfHCCy/kbb3LL788GjdunLf1AGiYMjny59N3Gvjoo4/ij3/8Y3Tq1CmL\nOABAxlq2bBkTJ06M7t27OwIIPsNxxx2X9zVfeOGFuqOBAEhTJuXP0KFD13u+3XbbxZ577hlXX311\nFnEAgAagZcuWMX/+/OjYsaMCCDZh8eLFeV+zW7duMWnSpOjfv3/e1wagYSh4+ZPL5eL222+P1q1b\nR6NGmd1pHgBooCZPnhxf//rXs44BDdLZZ58dZ511Vt7X7dKlS3Tp0iVeeumlvK8NQPYKfs2fsrKy\n6Nu3b2y1VYO53BAA8BmOPPLIgu7v6KOPLuj+oNjsu+++eV+za9euebuwO0Cx6dSpU92dEO+7776s\n49SLTA696dKlSyxcuDA6duyYxe4BgC9g3rx5UV5eHi+++GLB9kd2dtlll2jRosUG25ctWxYrV67M\nIBGf9uKLL8brr78erVu3zuu6kyZNirKysryuCVAMmjRpst6dEK+//voYMmRIrF69OuNk+ZNJ+fPN\nb34zTj311Dj66KOjVatW6/2Sca4xAEDh/ehHP4p27drFAQccEIcddtgGn3/kkUdi5syZMWrUqAzS\n8e9Wr14dQ4cOjdtuuy3rKABJqqysjIiIM888M+Mk+ZNJ+fP888/HbrvttsGt3cvKypQ/AMB6Tj/9\n9Bg8ePB621555ZU45phjMkqUnuOOOy7Gjh0b22+//SZf06dPn+jTp08MGDAgLrnkkpg4cWIBE/Jp\n999/f5x66qnRvXv3rKMAJKmyslL582X95je/yWK3QImprq7+zOsXjB07NrnDOSEFc+fOrbvOUE1N\nzUZfk+oh2VkpKyv73Kf7lJeXx84771zPidict99+O6qrq/Na/vgjLMAnamtrY//99886Rl5lctXl\no446aqPb/QUPKKTKysq4+uqrs44BfErnzp2jpqZmk8XPOuXl5dG0adMCpUrb3XffHc8//3zWMfiC\nBg0alHUEgCSNGzcuFixYkHWMvMqk/Fm0aNEG23K5XCxZsiSDNEApW3c+L1B8pk2bFsuXL886BmTm\npptuyjoCQHJeeeWVuOGGG7KOkXcFPe3rggsuiIiINWvW1H28zmuvvRadOnUqZBwgcd26dYt58+Zt\n8s6CKR7OCfVl1apVsXz58mjevHnWUSLik7sdufBwfh144IHrPa+uro7mzZvXzXzZsmXx5ptvxrPP\nPhs33nhjFhH5lHzemWvMmDHx+9//Pm/rARST6urq5O92WNDyp127dhv9OCJin332icMPP7yQcYAS\n0L1795g4cWIcfPDB622vra2NgQMHJnc4J9SXefPmxfjx42P48OFZR6FAunXrFj179oyePXtGRMSU\nKVNi5syZ2YZiPYMGDYq33nprgz+qflG/+MUv4qKLLspTKgAaooKWP+tOr9hrr702+OsSQH1YV/J8\n+miFVatWxbx58zJKBcVp/Pjx8YMf/GCTR9ORnqqqqqiqqso6Bp/hiiuu+FLlz9ChQ+Pyyy/PYyIA\nGqJM7vbVuHHjWLx4cbRt2zaWL18eo0ePjq222irOPffcBnM4OZCO2traqK2tzToGFL3a2tqoqalp\nEOXP/Pnzs44ADcJbb70Vxx9/fNx6662x3XbbfaGvfe+996K6ujpyuVw9pQOgocjkgs8jR46Mrbfe\nOiI++WvF2rVro6yszOGmANDA9e3bN0aOHBnTp0/PLMP48eM3eedQKEV33313nHnmmXHttdd+oa8b\nPHhwTJ48uZ5SAdCQZHLkz7Jly6J169axdu3amDFjRjz++OPRuHFjp4IBQBEYMWJEtGjRImbOnFnw\no4DGjRsXQ4YMKeg+oRhMmDAhGjVqFLlcLs4999zNvr579+4xa9asAiQDoCHI5Mifr371q7FixYr4\n61//Gh07doztt98+IiLWrl2bRRwA4Auqra2NTp06RU1NTcFutz558uSorKyMVatWFWR/UGzWrl0b\n1dXV8dFHH23yNe+//34cd9xxih+AEpPJkT8/+MEPon///rFmzZq48MILIyLi+eefjw4dOmQRBwDY\nQv9+R6gWLVrE4MGDt3itqqqqzzydbMSIEVu8NpSKCRMmRGVlZey9994b/fyZZ54Z99xzT4FTAZC1\nTMqfQYMGRe/evWPrrbeuu+V7y5Yt4xe/+EUWcQCAL2HdHaGaNGkS48aNW+9zkydP/lynhpWXl0dt\nbW3BjiKCUnTooYfG448/nnUMADKQSfkTEbHHHntERMS//vWviIho3759VlEAgDxYtWpVVFdXr7et\nU6dOG2yLiOjYsWPMnz8/xo4dGzfccEOhIkJJWLBgQTRp0mS9bVdddZXiB6CEZVL+VFdXx6hRo+Lv\nf/973Xn7uVwuysrK4qWXXsoiEgBQT7p167bBtjPOOGODo4SA/Ojfv3/WEQBoYDIpf372s5/FIYcc\nEpdddllsu+22WUQAADKk+AEAKJxMyp/XXnstzjnnnCgrK8ti9wAAAAAlI5Nbvffu3TtmzJiRxa4B\nAAAASkomR/6sWrUqKisrY999941mzZqt97krr7wyi0gAAAAAScqk/OnUqVN06tQpi10DAAAAlJRM\nyp/KysosdgsAAABQcjIpfyIinn766Zg8eXLU1tZGixYtom/fvrH//vtnFQcAAAAgSZlc8Pnee++N\nc845J5o3bx69e/eOFi1axHnnnRcTJ07MIg4AAABAsjI58ufWW2+N2267Lfbcc8+6bd/5znfirLPO\nioEDB2YRCQAAACBJmRz58/bbb0fHjh3X29ahQ4d45513sogDAAAAkKxMyp999tknrrjiivjwww8j\nIuKDDz6IK6+8Mvbee+8s4gAAAAAkK5PTvkaOHBnnnntufOMb34imTZvGO++8E3vvvXdcffXVWcQB\nAAAASFYm5U+LFi3it7/9bSxdurTubl+tWrXKIgoAAABA0jIpf2bMmBG77bZb7LHHHnWlz4IFC+KN\nN96IAw44IItIAAAAAEnK5Jo/o0aNiu233369bdtvv32MGjUqizgAAAAAycqk/HnzzTejRYsW621r\n0aJFLF++PIs4AAAAAMnKpPxp27ZtzJo1a71tf/nLX6JNmzZZxAEAAABIVibX/KmsrIwzzzwz+vfv\nH23bto3FixfHfffdF5dddlkWcQAAAACSlcmRP7169YoJEybEBx98ENOnT48PPvggbr311ujVq1cW\n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\nXkw9mDlzZrz55psF298hhxxSsH1BsZs0aVLe1vrud78br732Wt7W44vp3r17DBkyJIYMGRL7779/\n1nGg5Oyyyy4xadKkeO211+Kxxx6LIUOGJPcz0bvkAsrnL2iAUvHss8/WPX76059u8nXHHXdc/PWv\nfy1gstIwZcoUR+NAA3XLLbdkHYE8Oeyww2L06NExevTomDRpUuyxxx5ZR4KSMn369DjssMM22H7P\nPfdkkKZ+KH/qWaNGjeKXv/xl5HK56NevX93pCp07d47OnTvH1ltvnXVEgAajadOm0blz57qflblc\nLvbdd9+6x+bss88+seuuuxYgaWl59dVXC7av3XfffaPb27dvX/e7c5tttilYnlLTpk2b9b7/xowZ\nE507d4527dqt9xqg/rRu3Tr23HPPrGNASenWrdtGt//Hf/xH7LzzzgVOUz+UP/WsVatWccEFF2yw\nfe7cuTF37tz45S9/mUEqgIZn2223jd/97ncxd+7cL7XO9ddfn6dErHPEEUcUbF8PP/xwnHbaaRvd\nvu5359VXX12wPKXmnHPOWe/5WWedFXPnzo1Zs2bFxRdfHBdffHE8+eSTn6uMpTCuvPLKvK43bNiw\nvK7Hlnn44Yfj4osvjoMOOijrKFDSvva1r0VlZWXWMfJC+VPPNncLziFDhhQoCUDDNnv27IKWDDRc\nv/rVr+L000+ve15ZWRkdO3ase/7nP/85i1gl4cEHH9zo9tatW8fIkSNj5MiRsfvuu8d+++1X4GRs\nyhVXXJHX9dxxr+EYOXJkTJo0ab2ffwBbqlHWAVL261//Ojp37lz3vLq6Orp27ZphIoCGpaysLPba\na68YP358fO1rX8s6Dp+hvLw8XnzxxYLsq0mTJjFu3LhYunRpbLXVVusdzTV8+PCC336+lMybN2+z\nr3nvvfdixYoVBUhDoS1cuDA6dOiQdYyS9uGHH8bLL78cEZ98Pw4cODDjREAqlD/16JRTTlnv+YEH\nHhinnHJKnH/++dG8efN46KGH4oknnsgoHUD2Ro8eHeeee27WMWigfv/732cdgY0YNGiQm1g0ICNG\njMjLOnPmzIn+/fvnZS2+uKlTp8Zpp50WP//5z+O2227LOg7w/1u6dGk8+uijWcfIC6d9FdDKlSvj\nqquuioqKimjbtm0cf/zxcdVVV2UdCyATN998s+IHGpg33ngjLrvsss98zd13312gNHweZ511Vl7W\n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\nG26If/mXf0k4Wfa4OEKOHXvssTF79uxNth9xxBEREVFaWprvSACtUps2baJHjx4REbH//vtv8ruz\nS5cuUVFRsdU/QPfcc8/Yc88947333stZVnKjS5cusXTp0jjwwANj2bJlSccpas8991z069dvo213\n3313vPLKKzFnzpyEUvFFDQ0NWZ/51a9+NTp37py30pfPTJo0KUaOHNn889KlS6O+vj6OOeaYWLVq\nVYLJoDhs7vdpRUVFVFVVpeK6aI78ybEzzzxzi4+PHz8+T0kAWq9zzz03rrnmmqivr4/6+voWS/Nt\n1a1btzjggAOymI58+/Of/xzHHnts0jGKUrt27aKqqiq+9KUvtfj4n/70pzwnIt9KS0vjRz/6UdIx\niIhDDjnEndiArHHkT45ddtll8cknn2z2cLEJEyak6lAygO2x6667xvz586Nbt25ZO91n8eLFUVdX\nl5VZJKNz585x//33x9tvvx29e/dOOk5RefbZZ+Pggw9OOgYA5M2sWbOSjpAXjvzJsfXr10dTU9MW\nn/Ozn/0sT2kAWpeSkpLo1auX67ywiU6dOkWvXr2a7+iWyWSiV69eScdKvQEDBsTy5cu3+JydOTIP\n2HYffvhhvPnmm0nHgNTr3r37Fh+/4IILUnEdLkf+5MHs2bNj+fLl8f/+3/9r3tbY2Bg//vGPIyLi\n+uuvTyoaAGzVjTfeGD//+c+TjhEzZsyIvn37Jh0j1VasWBHDhg2L4447brOn/hx00EFx9NFHuzBw\nK/Dd73436QhkyaOPPhrvv//+RttWrlwZd955Z0KJgIiIN998M0aMGBEvv/xy0lF2mvInD55++uk4\n4ogjorS0NMaPHx+XXHJJrFixQukDFL1cXKz0lFNOiVNPPXWLdwRj+/ziF7+IZcuWxX/9138lmuPE\nE09MdP/F4umnn46nn346nnnmmXjsscc2ebxbt27xla98RfnTCowaNSrrMz/++OO45JJLsj6XLXvy\nySfjySefTDoGFKVvfvOb8cYbb7T42Fe+8pXUXABf+ZMnG/4fZvz48S7yDPBXXbt2zfrMv/mbv4nd\nd98963OL3dKlS+PVV19N5GLay5Yti+OPPz41H74KxRtvvBHLli2L1157LV588cX43ve+l3QkvmDR\nokVx8sknZ2XWypUr44UXXoiBAwdmZR5AoXjzzTeje/fu8ctf/nKj7d/5zndS9dlD+QNAIs4///yk\n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\n1f1AmpWWlsb3vve9nZ7z61//Os4555z4r//6ryykAqA1c+QPANCiZcuWxa9+9auczB4wYEAMHjw4\nBg8eHMuWLYtMJhPXXXdd7L333rH33ntHWVlZTvYLhW6PPfaIjz76KCuzOnXqFI8++mjst99+scce\ne2RlJgCtk/IHANisZ555JlatWpWXfV1++eWxevXqWL16dcyYMSMuuOCCvOwXCkm2j8aLiFixYkX8\n6U9/iu7du2d9NgCtg/IHANis3/3ud/Hmm2/mfb+nn3563HrrrTF9+vS87xtas9tvvz0nc/v16xez\nZs3KyWwAkqf8AaBglJaWRpcuXaJLly7RsWPHiIjYf//9o0OHDrH33nsnnC69+vTpEytWrEhk30cc\ncUQi+4ViVF5evtMXkQYoVHvttVe0bZveyyIrfwAoGD/60Y9i+fLlsXz58vjzn/8cEyZMiIaGhpgz\nZ048+uijcdlllyUdMbW++c1vJh0ByIM2bdrEKaecknQMgLzq0KFD3H///XHttdfGhAkT4phjjkk6\nUtalt9ZqZX71q1/FoYceutG2m266Ke65556EEgEUhnnz5jV///mjQLp37x433HBDRET06tUrIiLG\njRuX33AACejfv3/MnTs3J7N32WWX+Na3vhW///3vczKfzauuro7u3bvHT3/607jjjjuSjgNFZfbs\n2dGnT584+eSTIyLi9ddfjwEDBsTLL7+ccLLsUf7kSe/evaNfv34bbbv77rvjf/7nf+L1119PKBVA\n69K+ffvYb7/9Yv/994/Zs2dv9+ufeuqpKCkpyUEyKD6lpaVx4IEHxiuvvBJt2rSJAw44ICIiXnrp\npYST8dxzz+VsdiaTSeQ6X8Vu0qRJMXLkyIj47LpOt99+exx44IGxbNmyhJNBcejTp89GP3fp0iWW\nLl0ap59+epx88slx6aWXFvxpsU77AqBVKCsri1/96ldRX1+/Q8XPBhs+PJNdb7311k6ty47q1KlT\nHHvssXnfb7EbO3Zs3HjjjVFfXx833HBD3HzzzVFfXx/19fVx3nnnJR2v6E2cODFns6+88sr413/9\n15zNZ9uddtppSUeAovef//mfcfHFF0ePHj2SjrLTHPmTB9/97nejd+/eSccAaNXmz58fhxxyyE7P\n+fnPfx7vvvtu1NTUZCEVGzQ1NcXjjz8exx13XF7327lz5zj++OPjiSeeyOt+i9XixYsjIuLAAw+M\n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\nyaqoqIibb745Lr300li3bl3ScVJvw/vti1566aU8JyEpWzutltzo0KFDTJw4Merr6+P222+PxsbG\n+P3vf590LCh6L774YhxzzDGxatWqpKPsNEf+5EH//v3jqaeeij/84Q9JRwEoCO3atYuqqqqoqqqK\n+vr6qK+v3+bih+x6/PHH46233ko0w8UXXxw33nhjohmKwd///d83v9+++LXh/bjXXnslHZPPOffc\nc7M+s6KiIusz2bJOnTrF/fffH/X19c3bHnnkkbjgggsSTAVERBxyyCExbty4pGNkhfInD1544YVY\nvXp1i4/Nnj07z2kAWqf27dvH4sWLY/HixfHss8/G5MmTY/Lkyds9p6amJmpqanKQsDi1hvInIlLz\nwas1+5//+Z/NPrbh/fjcc8/F4sWL41vf+lYek9GSoUOHur5ZSrz77rtRW1u7yfbKysoE0gBppfzJ\ng1WrVsXatWs32b58+fLo379/AokAWodMJtP89c4770SvXr2iV69ecfDBB+/wzAULFsRf/vKXLKak\nT58+SUeIiIiFCxcmHSHVXn311a0+5+CDD45evXrF3nvvnYdEbMknn3wSn3zySVZmPf/883HDDTdE\nSUlJVuaxfdatWxfjxo2LkpKS5ktDRET06NEjxo4dm2AyYNGiRXHVVVclHSMrlD95cvPNN8dll10W\nl112Wbz11lvR2NgYQ4cObRX/mgqQJmm7OF8x++KpXlOmTEkoSfG47LLL4ne/+13SMdgGv/3tb7N2\nceavf/3rfne2EiNHjoyIz37/VVZWugMb5EkxfMZwwec8ueuuu5q/v/vuuyOTycSKFSsSTASQrFx8\noO3Ro0fWZ5Kcn//85zFhwoSIiPjmN7+5xdOSyI7rr78+IiJOO+20hJOwLc4999yd/ofESy65JD7+\n+OMsJWJnvfjii9GtW7d48803Y/369UnHgaLxi1/8IsaPH590jJxy5E8C3nzzTcUPUNQ6duwYhx56\naNbnvvbaa1mfyWeSuAhsXV1dRERceeWVip88uv7666OkpCRKSkriu9/9bsyZMyfmzJkTZ599dvP2\n2267LemYRMTKlSujXbt2MWfOnHj33Xe3+/WrV6+OF154IQfJ2FHr16+PxsZGxQ/kWW1tbfN/8557\n7rnm7Z//vtApfwDIu/bt20f79u2TjsF2eOONN+KRRx5JZN+nnXZafOlLX0pk38XuF7/4RQwcODAG\nDhwYv/nNb5KOQwv+8pe/xMCBA2PMmDHb/do///nP7kYL8Fcb/pt30kknRWVlZVRWVsZ5552XdKys\nUf4AkHdLliyJpUuXZn3uG2+8kfWZfGbVqlUxYsSIePHFF/O+78cee8w18mArHnrooTjssMO26zWj\nRo3KURqAwrVq1aqYNm1aTJs2LekoWaX8ASARzz//fNZndujQIesz+T8ffvhh9OrVK+bOnZvzfTU0\nNERNTU2UlJTE5ZdfnrW7GkGaLVy4MEaNGhVr1qxp8fHZs2dHTU1N1NTUxF577eXOiABFRPkDQCKu\nuuqqnNzCtrKyMusz2Viubz3c2NgYI0aMiEGDBuV0P5BGM2bMiO985zsbbXvllVdizJgxceqpp8ag\nQYNi0KBB8d577yWUEIAkKH8ASMwdd9wRZWVlUVZWlrWZJ5xwQtZm0bK6urq45pprcjK7X79+0aNH\nj5g/f35O5kMx+O1vfxuHH354RET07ds3Dj300Jg+fXp88MEHCScDIClu9Q5AotauXRsRESUlJc3b\nOnToEHfccccmzx06dOhW540YMSJ74WhRJpOJK664Iq644opNHjvrrLPirLPO2qa1+rw1a9bE+eef\nn5PTAaEYLViwYKPfqwAUN+UPAK3O22+/HcOGDdtk+8iRI5u/r66ujoiIMWPGxPvvv5+3bGzZfffd\nF/fdd1+MHDkyRo0atc1l3MiRI6OmpibH6QAAipPyB4CCMWPGjObv/Yt26zZjxozm9erTp88WT+Pq\n27dvLF68OF/RAACKjvIHAMip2traaNvWRw4AgKS44DMAAABAiil/AAAAAFJM+QMAAACQYsofAAAA\ngBRT/gAAAACkmPIHAAAAIMWUPwAAAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUiyR8uc///M/Y8mS\nJRERsXTp0jj33HNj9OjRzdsAAAAAyI5Eyp+bbrop2rdvHxERP/rRj+Kwww6Lr33tazF58uQk4gAA\nAACkVtskdrpq1aro2LFjrF27Np599tn48Y9/HG3bto2jjz46iTj8f/buPN7qus4f+PsICI5CGjte\nN+AadxFSbBzRcZkmIFtItmYkSWskWdJRyvq5INdGy91JQaSRoqZG5MqSiokLkKgVijDAJQQUDEyI\nRNESEDq/P4o7IiCL55zvPd/zfD4e59E92+f7evR+nMu5L78LAAAAkFqJlD8f/ehHY/Xq1fHiiy/G\nCSecEAcffHC88847kc1mk4gDAAAAkFqJlD/Dhg2Lvn37RqNGjeL222+PiIhnn302unTpkkQcAAAA\ngNRKpPzp27dvfPrTn46IiEMOOSQiIrp16xa33XZbEnEAAAAAUiuxS71v3rw5Hn300fjBD34QERHb\ntm2L7du3JxUHAAAAIJUSKX9+85vfRO/evePBBx+MsWPHRkTE6tWrY/To0UnEAQAAAEitRMqfG264\nIe6444649957o3Hjvx551q1bt/jf//3fJOIAAAAApFYi5c/atWvj1FNPjYiITCYTERFNmjRx2BcA\nAABAjiVS/nTq1CmeeuqpnR575pln4vjjj08iDgAAAEBqJXK1r29/+9vxta99Lc4666zYvHlzjBo1\nKp588sn68/8AAAAAkBuJ7Pnz8Y9/PH7+859H586do1+/flFWVha1tbXRtWvXJOIAAAAApFYie/5E\nRLRt2zYuuuiipDYPAAAAUBIKVv5885vfrD+58we56aabCpAGAAAAoDQUrPw55phjCrUpAAAAAP6m\nYOXPiBEjCrUpAAAAAP4msXP+PPvss/Hwww/H+vXro02bNvGZz3wmTj311KTiAAAAAKRSIlf7+uEP\nfxiXX355fOQjH4kzzzwzDj/88Bg5cmRMmDAhiTgAAAAAqZXInj8TJkyIiRMnxvHHH1//WJ8+feLC\nCy+Mr3zlK0lEAgAAAEilRPb8idj1BNBHHXXUPl0NDAAAAIB9l0j58/Wvfz2uvPLKWLVqVWzevDle\nfvnluOaaa+KSSy6Jv/zlL/U3AAAAAD6cRA77GjVqVEREPPzww5HJZCKbzUZExIMPPhijRo2KbDYb\nmUwmli5dusc1TjnllCgrKytIXiI6dOiQ0/XMr7ByOT+zKzzzK15mV9zMr3j53lLcfPaKm/kVL7Mr\nbnubXya7o3kpoLVr1+7T64488sg8JwEAAABIt0TKn1w4/fTTY82aNUnHKBllZWUxd+7cnK1nfoWV\ny/mZXeGZX/Eyu+JmfsXL95bi5rNX3MyveJldcdvb/BI57Outt96KH//4x7F06dL485//vNNz+3q5\n9zVr1sTq1avzEY8CML/iZXbFzfyKl9kVN/MrbuZXvMyuuJlf8TK7hieR8ufSSy+N7du3x6c+9alo\n2rRpEhEAAAAASkIi5c+CBQvi17/+dTRp0iSJzQMAAACUjEQu9d69e/dYuXJlEpsGAAAAKCmJ7Pnz\nve99Ly666KLo1q1btGzUHeK5AAAgAElEQVTZcqfnRowYkUQkAAAAgFRKpPy5/fbb47XXXouysrJ4\n++236x/PZDJJxAEAAABIrUTKn4cffjgeffTRaNOmTRKbBwAAACgZiZzz56ijjorGjRPpnQAAAABK\nSiINTJ8+fWLYsGHxpS99aZdz/px66qlJRAIAAABIpUTKn5/+9KcREXHbbbft9Hgmk4knnngiiUgA\nAAAAqZRI+fPkk08msVkAAACAkpPIOX8AAAAAKIxE9vx5++23484774x58+bFxo0bI5vN1j83e/bs\nJCIBAAAApFIie/6MHj066urqYtiwYfHGG2/E1VdfHe3bt48LLrggiTgAAAAAqZXInj9PP/10zJgx\nI4444oho1KhR/PM//3OccMIJcfHFFyuAAAAAAHIokT1//vKXv0Tz5s0jIuLv/u7vYtOmTdG6detY\nvXp1EnEAAAAAUiuRPX+6dOkS8+bNi1NPPTW6d+8eNTU1ceihh8axxx6bRBwAAACA1Epkz5//+I//\niCOPPDIiIq655ppo1qxZvPXWW3HTTTclEQcAAAAgtQq658/ixYvj4IMPjuOPPz4iIl5//fW4/vrr\n48UXX4wTTzwx2rdvX8g4AAAAAKlX0D1/brjhhtiwYUP9/auuuipWrVoV//Iv/xLLly+Pm2++uZBx\nAAAAAFKvoOXPypUr4+STT46IiE2bNsVTTz0Vt9xySwwaNChuu+22mDVrViHjAAAAAKReQcuf7du3\nR5MmTSIiYsGCBdGqVas47rjjIiKiffv2sWnTpkLGAQAAAEi9gpY/nTt3jkceeSQiImbMmBGnnnpq\n/XPr1q2rv/w7AAAAALlR0BM+f+Mb34ihQ4fG6NGj46CDDoqf/exn9c/NmDEjTjrppELGAQAAAEi9\ngpY/J598csyaNStWrVoVxx57bBx22GH1z5155plxzjnnFDIOAAAAQOoVtPyJiDjssMOiurp6l8c7\nduxY6CgAAAAAqVfQc/4AAAAAUFjKHwAAAIAUU/4AAAAApJjyBwDYb507d45DDz006RgAAOyDgp/w\nGQAoXjfccEMceeSR0a1bt1i1alW8+eabe3zt1KlTY9q0aQVMBwDA7ih/AIAPtHDhwqioqIiIiMaN\nG0cmk4mIiG7dun3g+wYNGhQnnHBCLF26NO8ZAQDYM+UPALBHlZWVccQRR0STJk32+72NGjWKurq6\n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\nPRs2bIibb7456fEyIPkAACAASURBVBhQUiZMmBCrV6+Oxx9/fKfHP/nJT8aTTz6ZUKrcU/4kIC27\njQF8GH379o1sNpvTNV0RKn/mz58fJ510UtIxyLPf/OY3kclk4t57743jjz++/vFly5bFv/3bvyWY\njPdq2rRpPPHEExERsWnTpnj44YdjzJgxH2rNDRs2xB//+MdcxAMoOk888URkMpmIiHjqqafi3nvv\nTVXxE6H8ASAhF110UdIR2A+DBw+OxYsXJx2DAvnqV7+adAQ+wNatW+Mf//Ef6+8PGzbsQ685Z86c\nmD179odeB6DYvff3a5o45w8ABdenT5+46667ko7Bfvjtb38bN910U9IxgN249957P/Q51C644ILc\nhAGgQbLnDwAFN3369Lj++uvjtNNOi4i/nhC/VatWH3rdrVu31u+yS25t3749vvWtb8URRxwRVVVV\n0aNHj4Jsd/HixXHdddcVZFtQrLZs2RLbtm07oPcuXrw4TjzxxAN+PwDFQfkDQCLe+wd9z549o0OH\nDhER8f/+3//b6VwjNCxDhgyJww8/PH70ox9Fnz59ko4D/M0NN9wQM2bM2O/33XzzzYofgBKg/AEg\ncTNnzqz/+Wc/+1n93ju/+tWv4uMf/3hSsdiDN954I/r37x+NGjWKqqqqeP7555OOBCXvkUce2efX\nXnLJJfWXLn733XfzFQmABkT5A0CDsnXr1vqfTzzxxN2+5gc/+EG0bNkyunXrFh07dtzpuW9+85su\nk1sA27Zti23btsX8+fN3e6jd448/Hp/85Cf3+P7HH3883nrrrT0+f99998X999+fk6xQKlq1ahWz\nZ8+O6urq+scee+yxePvtt+vv9+3bN4loACRM+QNA0dlxpbCTTjop5syZE4cddlhERJx33nnxP//z\nP0lG42/69u0bvXr12uPzjz76aGzatKmAiSD9/vjHP0b//v2ja9eu9Y898sgjO5U/AJQm5Q8ARWv+\n/PnRvHnzpGOwG5s2bYrJkycnHQNKzrJly2LZsmVJxwCggXGpdwAAAIAUU/4AAAAApJjyBwAAACDF\nlD8AAAAAKab8AQAAAEgx5Q8AAABAiil/AAAAAFJM+QMAAACQYsofAAAAgBRT/gAAAACkmPIHAAAA\nIMWUPwAAAAAppvwBAAAASDHlDwAAAECKKX8AAAAAUkz5AwAAAJBiyh8AAACAFFP+AAAAAKSY8gcA\n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\nb+nSpXH44YfH/2fvzqOrqu+1gX9DICIoZcYiCDIpEL0izhecBTs4oIAdrEOtE2BboRet2ggOeK1D\nvSo41bm1VhxqUbFQvFKp+qoFKxDUSgUEKwETBkHClPcPrqnIFODk7Jydz2etrJWz9z6//chvnbjz\nZA977LHHTo3TrVu36Natm/InZYYMGRLt2rWLk08+OekoUGM8+uij8eCDD8aBBx6YdBSqweDBg1Pz\nSyfUZFt70mGaPofu+VPNKioqYsGCBbFy5cqNlq9cuTKmTZsWa9asSSgZQPJ22WWXqKioiIqKith3\n3313uvgh3U466aS46667on79+klHqdUmT56cdAS+JD8/PyM/O5csWRJLlizJQCIyYdasWbHffvsl\nHQNqhZNOOmmLfzQsLCyMoqKiLCeqHsqfarZw4cI48MADY9CgQXHzzTdXLr/44ovjwAMPjEWLFiWY\nDiBZo0aNyviY06dPj+nTp2d8XGqGiy66aJN70JA5S5cujeeffz7pGCRg0qRJnq6XkIULF8bw4cNj\n4cKF8cknn8Tw4cOjd+/eSceCWuXII4+MiRMnJh2jWil/suThhx+On//859G2bdto27ZtPPLII0lH\nAkjUvffeG0OHDs34uO+///5G9ywhfc4777yYN29e/PSnP006SuosX748vvvd78aMGTOSjkKWXXjh\nhUlHqLUWL14cN910UxxwwAFxwAEHxE033RSffvpp0rGgVlm8eHG8+uqrmyx/77334rbbbksgUea5\n508WrV27NubPn590DIAaoXnz5tUyrnv9pMPcuXPjo48+2uJ6fxWvPsuXL4833nhjk0uARo8e7RHg\nNVCjRo1i2rRp0bFjxx0eo6CgwK0IaoBPPvkk6QhQq40YMSIGDBhQ+bCmqVOnRs+ePRNOlTnKHwAS\nce+990a/fv0yPu4vfvGLjI9J9j3wwANxzTXXJB2j1jrvvPOSjkAVLV++PG699dYYPXr0Dr3/kUce\niXXr1mU4FUBuuu666+Kxxx6L559/Pn7wgx8kHSejXPYFQCJefPHFpCNQRUcccUQ0a9YsfvnLX2Zt\nn5dddll06dIla/uD2qhZs2ZxwQUXxPr165OOAlAj/O53v4tmzZrFgAEDoqysLOk4GaX8ASAxBQUF\nMWHChFi8eHHGxiPzli5dGqWlpXHZZZfFfffdl5V9fvzxx7Fq1aqs7Aty3UcffVTlX1LKysri29/+\n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\nuHFx6qmnVsvYN9xwQ4wfPz6+973vVcv4kHa9e/eOwsLCnRrjscceUwAB1BLKHwBgs3r16lWt4594\n4onx29/+Ng477LBo1KhRte4L2FSLFi1i4sSJ0bJly6SjAFDNlD8AQKJee+21mDVrVlx00UXRpEmT\npONATnj33Xfjo48+yshYCxcujD59+mRkLABqJuUPAJC41q1bx1133RUTJkyIhx56KOk4UOO9/vrr\nMWvWrIyN99vf/jaOOuqojI0HQM2i/AEg5+yxxx5RUVFR+TV+/PikI5EhBx10UJx99tlx8803R926\nHkoKW9O3b9+MjdW8efPo0qVLxsYDyFV169aN1q1bp+44RPmTkDPPPDPpCAA5p1WrVjFs2LB49913\nN1revn376NatW0Kp0ivJM3CGDRsWnTt3Tmz/UBvde++9SUeo9c4+++ykI0CtdcQRR8SwYcPihhtu\niAULFqTuOCRdVVYN9tvf/jb22Wefytf77rtvRET85je/SSoSQI121llnxY9//OONljVo0GCzjx3f\nd99946CDDori4uJsxasVbr755jjnnHMS2//YsWN3+mlGkHbHHntsvPTSSxkb7/XXX4/DDjssY+NR\nNRdccEFccMEF0a1btygoKIj77rsv6UhQq3Ts2DHGjh0brVu3rlyWtuMQ5U81a9OmzRZvxvfoo4/G\nSy+9FB9//HGWUwHUbBUVFdv9nj322KMakpCk7t27x3vvvRff/va3N1o+d+7cWL16dUKp0u3II4+M\nyZMnb3bdjTfeGFdeeWWsW7cuy6nYmqlTp8bChQujVatWGRnvwAMPjFatWsXChQszMh5V07p16+jZ\ns2dEbDgDa/78+S5phizad999Nyp+IjYch6SJy76q2bJly2LixIlbXD906NAspgGo+Xb0TJMbb7wx\n6tWrl9kwJK5Lly7x/vvvb/TVsWPHpGOl1paKn4iIyy67LGMFA5mzdOnSuOaaazI2Xp06deKII47I\n2HjsmBdeeCEuuuiipGNArfHcc89tdnmaPofKn2q2rfLnj3/8YxbTANRs3/3ud2P06NE7/P7p06dn\nMA3/+Mc/dmo+SJ/JkyfHo48+mnQMqtH69evjmWeeSToGETF48OCkI0Ctd9ttt8WgQYOSjpERLvvK\ngpKSkpg2bVrssssuG92QdMGCBRl9RCdALmratGnstddeMW3atJ0ea5999on27dvHnDlzdj4YsXr1\n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\naZJ0NL7igw8+yPiYBx54YMbHpGratWsX7733XuXnDsiO7t27b3H59OnTs5ym+ih/suBHP/pRdOvW\nbZPlPXr0iAYNGiSQCKBmOfbYY+P999+PcePGxZQpU2Ly5Mk7NM7MmTMznIw77rhjo8vtSLdGjRrF\n448/Ht26dYsOHTrEkCFDImLDfZh+97vfxe67755wQkivF154Ibp06VL5ubvooosSTgSkifInC+6/\n//4oLi7eZPmECRNi+fLlCSQCqFmOOuqoiNjw1K527dolnIavGj16dJx00klJxyALGjVqFH369Nns\nur59+8bUqVPj0UcfzXIqqJ0GDx6cdASo9Tp37hyDBg1KOkZGKH+yoLS0NLp3777ZAgigtmvatOlm\nz47cEQUFBRkZh019+OGHSUdI1anXNdVHH3201fWdOnWKM888M66//nqXrtcAHTt2TDoCGTRr1qyY\nNWtW0jGgVrnwwgujQ4cOW1y/yy67RPPmzbOYqPoof7Kod+/eMXz48Fi0aFHSUQBqjJNPPjkOP/zw\njIx1ww03ZGQcNjV06NCkI5AFo0aNqtJ2V1xxhUvAaoAxY8ZkfMyf//znGR+Tqunfv38ceeSRMXHi\nxKSjQK1xzz331Jqz7JQ/WVRaWho33XRT7L///tG2bdu49957k44EkCruTVN9fvjDHyYdgSwoKiqK\ntm3bxowZM7a63RVXXBFLly7NUiqy5aKLLopbbrkl6Ri12uLFi6N///7Rtm3bOP7445OOA7XCAw88\nsMXP23vvvRe33XZblhNVD496T8Ann3ySdASA1Np3333j3XffTTpG6kydOjXRpwBNnTrVE7+yYN26\ndTF//vzYb7/9Kpc99thj0bZt2xg9enQ8/vjjCaajOi1evDjee++9pGMQEcuWLYtly5YlHQNqlUmT\nJsV5550X5557buWyH/zgBzFnzpzkQmWYM38ASEzdunXjzDPPzOiYzz33XBxwwAEZHZOIE044IV54\n4YWs7/fjjz+OwYMH+wt4gr73ve9F7969FT810J133hnDhw/PyFiTJ0+Ol19+OSNjAeSiBx54IHr3\n7l35labiJ0L5A0CC8vPz47jjjsvomB07dnQT1GpQWloa/fv3z/qZAd26dYsxY8ZEWVlZVvcLuWDc\nuHFx8803R7NmzeL111/foTEGDx4czZo1i3POOSez4QCoUVz2BUBiysvLIy8vL0aNGhWHHXZYHHPM\n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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "make_plot(img, seg, rec, samples_local, fs=2)\n" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "", "kind": "private" }, "name": "HPU-Net", "provenance": [] }, "kernelspec": { "name": "pycharm-7906112d", "language": "python", "display_name": "PyCharm (segmentation)" }, "pycharm": { "stem_cell": { "cell_type": "raw", "source": [], "metadata": { "collapsed": false } } } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: hierarchical_probabilistic_unet/README.md ================================================ # Hierarchical Probabilistic U-Net ![](media/architecture.jpg) This package provides an implementation of the Hierarchical Probabilistic U-Net (HPU-Net) as published in [A Hierarchical Probabilistic U-Net for Modeling Multi-Scale Ambiguities (2019)](https://arxiv.org/abs/1905.13077). The HPU-Net combines a hierarchical VAE with a U-Net and learns an image-conditional distribution over plausible outputs, here segmentation maps. The hierarchical latent space decomposition allows to model independent variations across locations and scales and increases the granularity of predicted segmentations as compared to prior work ([the Probabilisitc U-Net](https://arxiv.org/abs/1806.05034)). The architecture, depicted above, interleaves the U-Net's decoder with a prior that is used when sampling at test time (see Subfigure a) above). Training proceeds as is typical for VAEs, i.e. a separate posterior network is employed whose latents are injected into the decoder (see Subfigure b) above). The animated gif below shows 16 segmentation samples when sampling from either a) the full hierarchy or fixing some of the latents to the prior's mean: b) fixing all but the most local latents and c) fixing all but the most global latent. The first row depicts CT scans showing potential lung abnormalities and the rows below show individual samples and the standard deviations cross them. ![](media/animation.gif) In addition to the model code we provide the preprocessed version of the [LIDC-IDRI dataset](https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI) that we employ as well as pretrained model weights. Both can be loaded in a public colab, see below. ## Colab [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/hierarchical_probabilistic_unet/HPU_Net.ipynb) To quickly tinker with the pretrained model and the dataset without the need of installing anything locally click the `Open in Colab`-button above to follow the link to the colab. ## Installation To install the package locally run: ```bash git clone https://github.com/deepmind/deepmind-research.git . cd deepmind-research/hierarchical_probabilistic_unet pip install -e . ``` ## LIDC 2D crops We provide a preprocessed version of the Lung Image Database Consortium image collection dataset ([LIDC-IDRI](https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI)) as used and described in [A Hierarchical Probabilistic U-Net for Modeling Multi-Scale Ambiguities (2019)](https://arxiv.org/abs/1905.13077). The original dataset consists of 3D lung CT scans with semantic segmentations of possible lung abnormalities, as graded by four expert readers. We have cleaned up the data resulting in a slightly changed number of images for each data set split, see below (which leaves the results the same). The data is hosted in Google Cloud Storage ([this bucket](https://console.cloud.google.com/storage/browser/hpunet-data/lidc_crops/)). #####Preprocessing: We resampled the CT scans to 0.5mm x 0.5mm in-plane resolution and then cropped 2D images of size 180 x 180 pixels, centered on the abnormality position. The abnormality positions are those where at least one of the experts segmented an abnormality and we assumed that two masks from different graders correspond to the same abnormality if their tightest bounding boxes overlap. We only used those abnormaliies that were specified as a polygon (outline) in the XML files of the LIDC dataset, disregarding the ones that only have center of shape. That is, according to the LIDC paper we use the ones that are larger than 3mm, and filter out the others, that are clinically less relevant ([2], see below). We also filterd out each Dicom file whose absolute value in the XML element of `SliceLocation` differs from the absolute value of the last element in `ImagePositionPatient`. This preprocessing results in 8843 images for training, 1993 for validation and 1980 for testing (corresponding to 530, 111 and 103 patients respectively). #####Directory Structure The GCS bucket contains tar.gz-files for the training, validation and test data. Each tar.gz-file contains a zipped directory with two subdirectories, one named `images` and `gt`. Their subdirectories comprise a directory for each patient that is part of that data split. Each patient's directory holds the corresponding cropped 2D images in .png-format. The naming scheme follows `z-_c.png` for CT scans and `z-_c_l.png` for the binary segmentation maps, allowing to match the images and their corresponding four annotations. #####Citations & Data Usage Policy: The [LIDC-IDRI dataset](https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI) was published in [1, 2, 3] and is made available under the [CC BY 3.0 license](https://creativecommons.org/licenses/by/3.0/). [1] Armato III, Samuel G., McLennan, Geoffrey, Bidaut, Luc, McNitt-Gray, Michael F., Meyer, Charles R., Reeves, Anthony P., … Clarke, Laurence P. (2015). Data From LIDC-IDRI. The Cancer Imaging Archive. ([Link](http://doi.org/10.7937/K9/TCIA.2015.LO9QL9SX)) [2] Armato SG III, McLennan G, Bidaut L, McNitt-Gray MF, Meyer CR, Reeves AP, Zhao B, Aberle DR, Henschke CI, Hoffman EA, Kazerooni EA, MacMahon H, van Beek EJR, Yankelevitz D, et al.: The Lung Image Database Consortium (LIDC) and Image Database Resource Initiative (IDRI): A completed reference database of lung nodules on CT scans. Medical Physics, 38: 915--931, 2011. ([Paper](https://www.ncbi.nlm.nih.gov/pubmed/21452728)) [3] Clark K, Vendt B, Smith K, Freymann J, Kirby J, Koppel P, Moore S, Phillips S, Maffitt D, Pringle M, Tarbox L, Prior F. The Cancer Imaging Archive (TCIA): Maintaining and Operating a Public Information Repository, Journal of Digital Imaging, Volume 26, Number 6, December, 2013, pp 1045-1057. ([Paper](https://link.springer.com/article/10.1007%2Fs10278-013-9622-7)) We make the `LIDC 2D crops` data, accessible from above GCS bucket, available under the [CC BY 3.0 license](https://creativecommons.org/licenses/by/3.0/). ## Pretrained Model We provide a pretrained model checkpoint ([Google Cloud Storage bucket](https://console.cloud.google.com/storage/browser/hpunet-data/model_checkpoint/)) that can be loaded as exemplified in our colab. ## Giving Credit If you use this code in your work, we ask you to cite this paper: ``` @article{kohl2019hierarchical, title={A Hierarchical Probabilistic U-Net for Modeling Multi-Scale Ambiguities}, author={Kohl, Simon AA and Romera-Paredes, Bernardino and Maier-Hein, Klaus H and Rezende, Danilo Jimenez and Eslami, SM and Kohli, Pushmeet and Zisserman, Andrew and Ronneberger, Olaf}, journal={arXiv preprint arXiv:1905.13077}, year={2019} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: hierarchical_probabilistic_unet/geco_utils.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utility Functions for the GECO-objective. (GECO is described in `Taming VAEs`, see https://arxiv.org/abs/1810.00597). """ from __future__ import absolute_import from __future__ import division from __future__ import print_function import numpy as np import sonnet as snt import tensorflow.compat.v1 as tf class MovingAverage(snt.AbstractModule): """A thin wrapper around snt.MovingAverage. The module adds the option not to differentiate through the last element that is added to the moving average, specified by means of the kwarg `differentiable`. """ def __init__(self, decay, local=True, differentiable=False, name='snt_moving_average'): super(MovingAverage, self).__init__(name=name) self._differentiable = differentiable self._moving_average = snt.MovingAverage( decay=decay, local=local, name=name) def _build(self, inputs): if not self._differentiable: inputs = tf.stop_gradient(inputs) return self._moving_average(inputs) class LagrangeMultiplier(snt.AbstractModule): """A lagrange multiplier sonnet module.""" def __init__(self, rate=1e-2, name='snt_lagrange_multiplier'): """Initializer for the sonnet module. Args: rate: Scalar used to scale the magnitude of gradients of the Lagrange multipliers, defaulting to 1e-2. name: Name of the Lagrange multiplier sonnet module. """ super(LagrangeMultiplier, self).__init__(name=name) self._rate = rate def _build(self, ma_constraint): """Connects the module to the graph. Args: ma_constraint: A loss minus a target value, denoting a constraint that shall be less or equal than zero. Returns: An op, which when added to a loss and calling minimize on the loss results in the optimizer minimizing w.r.t. to the model's parameters and maximizing w.r.t. the Lagrande multipliers, hence enforcing the constraints. """ lagmul = snt.get_lagrange_multiplier( shape=ma_constraint.shape, rate=self._rate, initializer=np.ones(ma_constraint.shape)) return lagmul def _sample_gumbel(shape, eps=1e-20): """Transforms a uniform random variable to be standard Gumbel distributed.""" return -tf.log( -tf.log(tf.random_uniform(shape, minval=0, maxval=1) + eps) + eps) def _topk_mask(score, k): """Returns a mask for the top-k elements in score.""" _, indices = tf.nn.top_k(score, k=k) return tf.scatter_nd(tf.expand_dims(indices, -1), tf.ones(k), tf.squeeze(score).shape.as_list()) def ce_loss(logits, labels, mask=None, top_k_percentage=None, deterministic=False): """Computes the cross-entropy loss. Optionally a mask and a top-k percentage for the used pixels can be specified. The top-k mask can be produced deterministically or sampled. Args: logits: A tensor of shape (b,h,w,num_classes) labels: A tensor of shape (b,h,w,num_classes) mask: None or a tensor of shape (b,h,w). top_k_percentage: None or a float in (0.,1.]. If None, a standard cross-entropy loss is calculated. deterministic: A Boolean indicating whether or not to produce the prospective top-k mask deterministically. Returns: A dictionary holding the mean and the pixelwise sum of the loss for the batch as well as the employed loss mask. """ num_classes = logits.shape.as_list()[-1] y_flat = tf.reshape(logits, (-1, num_classes), name='reshape_y') t_flat = tf.reshape(labels, (-1, num_classes), name='reshape_t') if mask is None: mask = tf.ones(shape=(t_flat.shape.as_list()[0],)) else: assert mask.shape.as_list()[:3] == labels.shape.as_list()[:3],\ 'The loss mask shape differs from the target shape: {} vs. {}.'.format( mask.shape.as_list(), labels.shape.as_list()[:3]) mask = tf.reshape(mask, (-1,), name='reshape_mask') n_pixels_in_batch = y_flat.shape.as_list()[0] xe = tf.nn.softmax_cross_entropy_with_logits_v2(labels=t_flat, logits=y_flat) if top_k_percentage is not None: assert 0.0 < top_k_percentage <= 1.0 k_pixels = tf.cast(tf.floor(n_pixels_in_batch * top_k_percentage), tf.int32) stopgrad_xe = tf.stop_gradient(xe) norm_xe = stopgrad_xe / tf.reduce_sum(stopgrad_xe) if deterministic: score = tf.log(norm_xe) else: # Use the Gumbel trick to sample the top-k pixels, equivalent to sampling # from a categorical distribution over pixels whose probabilities are # given by the normalized cross-entropy loss values. This is done by # adding Gumbel noise to the logarithmic normalized cross-entropy loss # (followed by choosing the top-k pixels). score = tf.log(norm_xe) + _sample_gumbel(norm_xe.shape.as_list()) score = score + tf.log(mask) top_k_mask = _topk_mask(score, k_pixels) mask = mask * top_k_mask # Calculate batch-averages for the sum and mean of the loss batch_size = labels.shape.as_list()[0] xe = tf.reshape(xe, shape=(batch_size, -1)) mask = tf.reshape(mask, shape=(batch_size, -1)) ce_sum_per_instance = tf.reduce_sum(mask * xe, axis=1) ce_sum = tf.reduce_mean(ce_sum_per_instance, axis=0) ce_mean = tf.reduce_sum(mask * xe) / tf.reduce_sum(mask) return {'mean': ce_mean, 'sum': ce_sum, 'mask': mask} ================================================ FILE: hierarchical_probabilistic_unet/model.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Open Source Version of the Hierarchical Probabilistic U-Net.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import geco_utils import sonnet as snt import tensorflow as tf from tensorflow_probability import distributions as tfd import unet_utils class _HierarchicalCore(snt.AbstractModule): """A U-Net encoder-decoder with a full encoder and a truncated decoder. The truncated decoder is interleaved with the hierarchical latent space and has as many levels as there are levels in the hierarchy plus one additional level. """ def __init__(self, latent_dims, channels_per_block, down_channels_per_block=None, activation_fn=tf.nn.relu, initializers=None, regularizers=None, convs_per_block=3, blocks_per_level=3, name='HierarchicalDecoderDist'): """Initializes a HierarchicalCore. Args: latent_dims: List of integers specifying the dimensions of the latents at each scale. The length of the list indicates the number of U-Net decoder scales that have latents. channels_per_block: A list of integers specifying the number of output channels for each encoder block. down_channels_per_block: A list of integers specifying the number of intermediate channels for each encoder block or None. If None, the intermediate channels are chosen equal to channels_per_block. activation_fn: A callable activation function. initializers: Optional dict containing ops to initialize the filters (with key 'w') or biases (with key 'b'). The default initializer for the weights is a truncated normal initializer, which is commonly used when the inputs are zero centered (see https://arxiv.org/pdf/1502.03167v3.pdf). The default initializer for the bias is a zero initializer. regularizers: Optional dict containing regularizers for the filters (with key 'w') and the biases (with key 'b'). As a default, no regularizers are used. A regularizer should be a function that takes a single `Tensor` as an input and returns a scalar `Tensor` output, e.g. the L1 and L2 regularizers in `tf.contrib.layers`. convs_per_block: An integer specifying the number of convolutional layers. blocks_per_level: An integer specifying the number of residual blocks per level. name: A string specifying the name of the module. """ super(_HierarchicalCore, self).__init__(name=name) self._latent_dims = latent_dims self._channels_per_block = channels_per_block self._activation_fn = activation_fn self._initializers = initializers self._regularizers = regularizers self._convs_per_block = convs_per_block self._blocks_per_level = blocks_per_level if down_channels_per_block is None: self._down_channels_per_block = channels_per_block else: self._down_channels_per_block = down_channels_per_block self._name = name def _build(self, inputs, mean=False, z_q=None): """A build-method allowing to sample from the module as specified. Args: inputs: A tensor of shape (b,h,w,c). When using the module as a prior the `inputs` tensor should be a batch of images. When using it as a posterior the tensor should be a (batched) concatentation of images and segmentations. mean: A boolean or a list of booleans. If a boolean, it specifies whether or not to use the distributions' means in ALL latent scales. If a list, each bool therein specifies whether or not to use the scale's mean. If False, the latents of the scale are sampled. z_q: None or a list of tensors. If not None, z_q provides external latents to be used instead of sampling them. This is used to employ posterior latents in the prior during training. Therefore, if z_q is not None, the value of `mean` is ignored. If z_q is None, either the distributions mean is used (in case `mean` for the respective scale is True) or else a sample from the distribution is drawn. Returns: A Dictionary holding the output feature map of the truncated U-Net decoder under key 'decoder_features', a list of the U-Net encoder features produced at the end of each encoder scale under key 'encoder_outputs', a list of the predicted distributions at each scale under key 'distributions', a list of the used latents at each scale under the key 'used_latents'. """ encoder_features = inputs encoder_outputs = [] num_levels = len(self._channels_per_block) num_latent_levels = len(self._latent_dims) if isinstance(mean, bool): mean = [mean] * num_latent_levels distributions = [] used_latents = [] # Iterate the descending levels in the U-Net encoder. for level in range(num_levels): # Iterate the residual blocks in each level. for _ in range(self._blocks_per_level): encoder_features = unet_utils.res_block( input_features=encoder_features, n_channels=self._channels_per_block[level], n_down_channels=self._down_channels_per_block[level], activation_fn=self._activation_fn, initializers=self._initializers, regularizers=self._regularizers, convs_per_block=self._convs_per_block) encoder_outputs.append(encoder_features) if level != num_levels - 1: encoder_features = unet_utils.resize_down(encoder_features, scale=2) # Iterate the ascending levels in the (truncated) U-Net decoder. decoder_features = encoder_outputs[-1] for level in range(num_latent_levels): # Predict a Gaussian distribution for each pixel in the feature map. latent_dim = self._latent_dims[level] mu_logsigma = snt.Conv2D( 2 * latent_dim, (1, 1), padding='SAME', initializers=self._initializers, regularizers=self._regularizers, )(decoder_features) mu = mu_logsigma[..., :latent_dim] logsigma = mu_logsigma[..., latent_dim:] dist = tfd.MultivariateNormalDiag(loc=mu, scale_diag=tf.exp(logsigma)) distributions.append(dist) # Get the latents to condition on. if z_q is not None: z = z_q[level] elif mean[level]: z = dist.loc else: z = dist.sample() used_latents.append(z) # Concat and upsample the latents with the previous features. decoder_output_lo = tf.concat([z, decoder_features], axis=-1) decoder_output_hi = unet_utils.resize_up(decoder_output_lo, scale=2) decoder_features = tf.concat( [decoder_output_hi, encoder_outputs[::-1][level + 1]], axis=-1) # Iterate the residual blocks in each level. for _ in range(self._blocks_per_level): decoder_features = unet_utils.res_block( input_features=decoder_features, n_channels=self._channels_per_block[::-1][level + 1], n_down_channels=self._down_channels_per_block[::-1][level + 1], activation_fn=self._activation_fn, initializers=self._initializers, regularizers=self._regularizers, convs_per_block=self._convs_per_block) return {'decoder_features': decoder_features, 'encoder_features': encoder_outputs, 'distributions': distributions, 'used_latents': used_latents} class _StitchingDecoder(snt.AbstractModule): """A module that completes the truncated U-Net decoder. Using the output of the HierarchicalCore this module fills in the missing decoder levels such that together the two form a symmetric U-Net. """ def __init__(self, latent_dims, channels_per_block, num_classes, down_channels_per_block=None, activation_fn=tf.nn.relu, initializers=None, regularizers=None, convs_per_block=3, blocks_per_level=3, name='StitchingDecoder'): """Initializes a StichtingDecoder. Args: latent_dims: List of integers specifying the dimensions of the latents at each scale. The length of the list indicates the number of U-Net decoder scales that have latents. channels_per_block: A list of integers specifying the number of output channels for each encoder block. num_classes: An integer specifying the number of segmentation classes. down_channels_per_block: A list of integers specifying the number of intermediate channels for each encoder block. If None, the intermediate channels are chosen equal to channels_per_block. activation_fn: A callable activation function. initializers: Optional dict containing ops to initialize the filters (with key 'w') or biases (with key 'b'). The default initializer for the weights is a truncated normal initializer, which is commonly used when the inputs are zero centered (see https://arxiv.org/pdf/1502.03167v3.pdf). The default initializer for the bias is a zero initializer. regularizers: Optional dict containing regularizers for the filters (with key 'w') and the biases (with key 'b'). As a default, no regularizers are used. A regularizer should be a function that takes a single `Tensor` as an input and returns a scalar `Tensor` output, e.g. the L1 and L2 regularizers in `tf.contrib.layers`. convs_per_block: An integer specifying the number of convolutional layers. blocks_per_level: An integer specifying the number of residual blocks per level. name: A string specifying the name of the module. """ super(_StitchingDecoder, self).__init__(name=name) self._latent_dims = latent_dims self._channels_per_block = channels_per_block self._num_classes = num_classes self._activation_fn = activation_fn self._initializers = initializers self._regularizers = regularizers self._convs_per_block = convs_per_block self._blocks_per_level = blocks_per_level if down_channels_per_block is None: down_channels_per_block = channels_per_block self._down_channels_per_block = down_channels_per_block def _build(self, encoder_features, decoder_features): """Build-method that returns the segmentation logits. Args: encoder_features: A list of tensors of shape (b,h_i,w_i,c_i). decoder_features: A tensor of shape (b,h,w,c). Returns: Logits, i.e. a tensor of shape (b,h,w,num_classes). """ num_latents = len(self._latent_dims) start_level = num_latents + 1 num_levels = len(self._channels_per_block) for level in range(start_level, num_levels, 1): decoder_features = unet_utils.resize_up(decoder_features, scale=2) decoder_features = tf.concat([decoder_features, encoder_features[::-1][level]], axis=-1) for _ in range(self._blocks_per_level): decoder_features = unet_utils.res_block( input_features=decoder_features, n_channels=self._channels_per_block[::-1][level], n_down_channels=self._down_channels_per_block[::-1][level], activation_fn=self._activation_fn, initializers=self._initializers, regularizers=self._regularizers, convs_per_block=self._convs_per_block) return snt.Conv2D(output_channels=self._num_classes, kernel_shape=(1, 1), padding='SAME', initializers=self._initializers, regularizers=self._regularizers, name='logits')(decoder_features) class HierarchicalProbUNet(snt.AbstractModule): """A Hierarchical Probabilistic U-Net.""" def __init__(self, latent_dims=(1, 1, 1, 1), channels_per_block=None, num_classes=2, down_channels_per_block=None, activation_fn=tf.nn.relu, initializers=None, regularizers=None, convs_per_block=3, blocks_per_level=3, loss_kwargs=None, name='HPUNet'): """Initializes a HierarchicalProbUNet. The default values are set as for the LIDC-IDRI experiments in `A Hierarchical Probabilistic U-Net for Modeling Multi-Scale Ambiguities', see https://arxiv.org/abs/1905.13077. Args: latent_dims: List of integers specifying the dimensions of the latents at each scales. The length of the list indicates the number of U-Net decoder scales that have latents. channels_per_block: A list of integers specifying the number of output channels for each encoder block. num_classes: An integer specifying the number of segmentation classes. down_channels_per_block: A list of integers specifying the number of intermediate channels for each encoder block. If None, the intermediate channels are chosen equal to channels_per_block. activation_fn: A callable activation function. initializers: Optional dict containing ops to initialize the filters (with key 'w') or biases (with key 'b'). regularizers: Optional dict containing regularizers for the filters (with key 'w') and the biases (with key 'b'). convs_per_block: An integer specifying the number of convolutional layers. blocks_per_level: An integer specifying the number of residual blocks per level. loss_kwargs: None or dictionary specifying the loss setup. name: A string specifying the name of the module. """ super(HierarchicalProbUNet, self).__init__(name=name) base_channels = 24 default_channels_per_block = ( base_channels, 2 * base_channels, 4 * base_channels, 8 * base_channels, 8 * base_channels, 8 * base_channels, 8 * base_channels, 8 * base_channels ) if channels_per_block is None: channels_per_block = default_channels_per_block if down_channels_per_block is None: down_channels_per_block =\ tuple([i / 2 for i in default_channels_per_block]) if initializers is None: initializers = { 'w': tf.orthogonal_initializer(gain=1.0, seed=None), 'b': tf.truncated_normal_initializer(stddev=0.001) } if regularizers is None: regularizers = { 'w': tf.keras.regularizers.l2(1e-5), 'b': tf.keras.regularizers.l2(1e-5) } if loss_kwargs is None: self._loss_kwargs = { 'type': 'geco', 'top_k_percentage': 0.02, 'deterministic_top_k': False, 'kappa': 0.05, 'decay': 0.99, 'rate': 1e-2, 'beta': None } else: self._loss_kwargs = loss_kwargs if down_channels_per_block is None: down_channels_per_block = channels_per_block with self._enter_variable_scope(): self._prior = _HierarchicalCore( latent_dims=latent_dims, channels_per_block=channels_per_block, down_channels_per_block=down_channels_per_block, activation_fn=activation_fn, initializers=initializers, regularizers=regularizers, convs_per_block=convs_per_block, blocks_per_level=blocks_per_level, name='prior') self._posterior = _HierarchicalCore( latent_dims=latent_dims, channels_per_block=channels_per_block, down_channels_per_block=down_channels_per_block, activation_fn=activation_fn, initializers=initializers, regularizers=regularizers, convs_per_block=convs_per_block, blocks_per_level=blocks_per_level, name='posterior') self._f_comb = _StitchingDecoder( latent_dims=latent_dims, channels_per_block=channels_per_block, num_classes=num_classes, down_channels_per_block=down_channels_per_block, activation_fn=activation_fn, initializers=initializers, regularizers=regularizers, convs_per_block=convs_per_block, blocks_per_level=blocks_per_level, name='f_comb') if self._loss_kwargs['type'] == 'geco': self._moving_average = geco_utils.MovingAverage( decay=self._loss_kwargs['decay'], differentiable=True, name='ma_test') self._lagmul = geco_utils.LagrangeMultiplier( rate=self._loss_kwargs['rate']) self._cache = () def _build(self, seg, img): """Inserts all ops used during training into the graph exactly once. The first time this method is called given the input pair (seg, img) all ops relevant for training are inserted into the graph. Calling this method more than once does not re-insert the modules into the graph (memoization), thus preventing multiple forward passes of submodules for the same inputs. The method is private and called when setting up the loss. Args: seg: A tensor of shape (b, h, w, num_classes). img: A tensor of shape (b, h, w, c) Returns: None """ inputs = (seg, img) if self._cache == inputs: return else: self._q_sample = self._posterior( tf.concat([seg, img], axis=-1), mean=False) self._q_sample_mean = self._posterior( tf.concat([seg, img], axis=-1), mean=True) self._p_sample = self._prior( img, mean=False, z_q=None) self._p_sample_z_q = self._prior( img, z_q=self._q_sample['used_latents']) self._p_sample_z_q_mean = self._prior( img, z_q=self._q_sample_mean['used_latents']) self._cache = inputs return def sample(self, img, mean=False, z_q=None): """Sample a segmentation from the prior, given an input image. Args: img: A tensor of shape (b, h, w, c). mean: A boolean or a list of booleans. If a boolean, it specifies whether or not to use the distributions' means in ALL latent scales. If a list, each bool therein specifies whether or not to use the scale's mean. If False, the latents of the scale are sampled. z_q: None or a list of tensors. If not None, z_q provides external latents to be used instead of sampling them. This is used to employ posterior latents in the prior during training. Therefore, if z_q is not None, the value of `mean` is ignored. If z_q is None, either the distributions mean is used (in case `mean` for the respective scale is True) or else a sample from the distribution is drawn Returns: A segmentation tensor of shape (b, h, w, num_classes). """ prior_out = self._prior(img, mean, z_q) encoder_features = prior_out['encoder_features'] decoder_features = prior_out['decoder_features'] return self._f_comb(encoder_features=encoder_features, decoder_features=decoder_features) def reconstruct(self, seg, img, mean=False): """Reconstruct a segmentation using the posterior. Args: seg: A tensor of shape (b, h, w, num_classes). img: A tensor of shape (b, h, w, c). mean: A boolean, specifying whether to sample from the full hierarchy of the posterior or use the posterior means at each scale of the hierarchy. Returns: A segmentation tensor of shape (b,h,w,num_classes). """ self._build(seg, img) if mean: prior_out = self._p_sample_z_q_mean else: prior_out = self._p_sample_z_q encoder_features = prior_out['encoder_features'] decoder_features = prior_out['decoder_features'] return self._f_comb(encoder_features=encoder_features, decoder_features=decoder_features) def rec_loss(self, seg, img, mask=None, top_k_percentage=None, deterministic=True): """Cross-entropy reconstruction loss employed in the ELBO-/ GECO-objective. Args: seg: A tensor of shape (b, h, w, num_classes). img: A tensor of shape (b, h, w, c). mask: A mask of shape (b, h, w) or None. If None no pixels are masked in the loss. top_k_percentage: None or a float in (0.,1.]. If None, a standard cross-entropy loss is calculated. deterministic: A Boolean indicating whether or not to produce the prospective top-k mask deterministically. Returns: A dictionary holding the mean and the pixelwise sum of the loss for the batch as well as the employed loss mask. """ reconstruction = self.reconstruct(seg, img, mean=False) return geco_utils.ce_loss( reconstruction, seg, mask, top_k_percentage, deterministic) def kl(self, seg, img): """Kullback-Leibler divergence between the posterior and the prior. Args: seg: A tensor of shape (b, h, w, num_classes). img: A tensor of shape (b, h, w, c). Returns: A dictionary with keys indexing the hierarchy's levels and corresponding values holding the KL-term for each level (per batch). """ self._build(seg, img) posterior_out = self._q_sample prior_out = self._p_sample_z_q q_dists = posterior_out['distributions'] p_dists = prior_out['distributions'] kl = {} for level, (q, p) in enumerate(zip(q_dists, p_dists)): # Shape (b, h, w). kl_per_pixel = tfd.kl_divergence(q, p) # Shape (b,). kl_per_instance = tf.reduce_sum(kl_per_pixel, axis=[1, 2]) # Shape (1,). kl[level] = tf.reduce_mean(kl_per_instance) return kl def loss(self, seg, img, mask): """The full training objective, either ELBO or GECO. Args: seg: A tensor of shape (b, h, w, num_classes). img: A tensor of shape (b, h, w, c). mask: A mask of shape (b, h, w) or None. If None no pixels are masked in the loss. Returns: A dictionary holding the loss (with key 'loss') and the tensorboard summaries (with key 'summaries'). """ summaries = {} top_k_percentage = self._loss_kwargs['top_k_percentage'] deterministic = self._loss_kwargs['deterministic_top_k'] rec_loss = self.rec_loss(seg, img, mask, top_k_percentage, deterministic) kl_dict = self.kl(seg, img) kl_sum = tf.reduce_sum( tf.stack([kl for _, kl in kl_dict.iteritems()], axis=-1)) summaries['rec_loss_mean'] = rec_loss['mean'] summaries['rec_loss_sum'] = rec_loss['sum'] summaries['kl_sum'] = kl_sum for level, kl in kl_dict.iteritems(): summaries['kl_{}'.format(level)] = kl # Set up a regular ELBO objective. if self._loss_kwargs['type'] == 'elbo': loss = rec_loss['sum'] + self._loss_kwargs['beta'] * kl_sum summaries['elbo_loss'] = loss # Set up a GECO objective (ELBO with a reconstruction constraint). elif self._loss_kwargs['type'] == 'geco': ma_rec_loss = self._moving_average(rec_loss['sum']) mask_sum_per_instance = tf.reduce_sum(rec_loss['mask'], axis=-1) num_valid_pixels = tf.reduce_mean(mask_sum_per_instance) reconstruction_threshold = self._loss_kwargs['kappa'] * num_valid_pixels rec_constraint = ma_rec_loss - reconstruction_threshold lagmul = self._lagmul(rec_constraint) loss = lagmul * rec_constraint + kl_sum summaries['geco_loss'] = loss summaries['ma_rec_loss_mean'] = ma_rec_loss / num_valid_pixels summaries['num_valid_pixels'] = num_valid_pixels summaries['lagmul'] = lagmul else: raise NotImplementedError('Loss type {} not implemeted!'.format( self._loss_kwargs['type'])) return dict(supervised_loss=loss, summaries=summaries) if __name__ == '__main__': hpu_net = HierarchicalProbUNet() ================================================ FILE: hierarchical_probabilistic_unet/model_test.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for the Hierarchical Probabilistic U-Net open-source version.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from model import HierarchicalProbUNet import tensorflow.compat.v1 as tf _NUM_CLASSES = 2 _BATCH_SIZE = 2 _SPATIAL_SHAPE = [32, 32] _CHANNELS_PER_BLOCK = [5, 7, 9, 11, 13] _IMAGE_SHAPE = [_BATCH_SIZE] + _SPATIAL_SHAPE + [1] _BOTTLENECK_SIZE = _SPATIAL_SHAPE[0] // 2 ** (len(_CHANNELS_PER_BLOCK) - 1) _SEGMENTATION_SHAPE = [_BATCH_SIZE] + _SPATIAL_SHAPE + [_NUM_CLASSES] _LATENT_DIMS = [3, 2, 1] _INITIALIZERS = {'w': tf.orthogonal_initializer(gain=1.0, seed=None), 'b': tf.truncated_normal_initializer(stddev=0.001)} def _get_placeholders(): """Returns placeholders for the image and segmentation.""" img = tf.placeholder(dtype=tf.float32, shape=_IMAGE_SHAPE) seg = tf.placeholder(dtype=tf.float32, shape=_SEGMENTATION_SHAPE) return img, seg class HierarchicalProbUNetTest(tf.test.TestCase): def test_shape_of_sample(self): hpu_net = HierarchicalProbUNet(latent_dims=_LATENT_DIMS, channels_per_block=_CHANNELS_PER_BLOCK, num_classes=_NUM_CLASSES, initializers=_INITIALIZERS) img, _ = _get_placeholders() sample = hpu_net.sample(img) self.assertEqual(sample.shape.as_list(), _SEGMENTATION_SHAPE) def test_shape_of_reconstruction(self): hpu_net = HierarchicalProbUNet(latent_dims=_LATENT_DIMS, channels_per_block=_CHANNELS_PER_BLOCK, num_classes=_NUM_CLASSES, initializers=_INITIALIZERS) img, seg = _get_placeholders() reconstruction = hpu_net.reconstruct(img, seg) self.assertEqual(reconstruction.shape.as_list(), _SEGMENTATION_SHAPE) def test_shapes_in_prior(self): hpu_net = HierarchicalProbUNet(latent_dims=_LATENT_DIMS, channels_per_block=_CHANNELS_PER_BLOCK, num_classes=_NUM_CLASSES, initializers=_INITIALIZERS) img, _ = _get_placeholders() prior_out = hpu_net._prior(img) distributions = prior_out['distributions'] latents = prior_out['used_latents'] encoder_features = prior_out['encoder_features'] decoder_features = prior_out['decoder_features'] # Test number of latent disctributions. self.assertEqual(len(distributions), len(_LATENT_DIMS)) # Test shapes of latent scales. for level in range(len(_LATENT_DIMS)): latent_spatial_shape = _BOTTLENECK_SIZE * 2 ** level latent_shape = [_BATCH_SIZE, latent_spatial_shape, latent_spatial_shape, _LATENT_DIMS[level]] self.assertEqual(latents[level].shape.as_list(), latent_shape) # Test encoder shapes. for level in range(len(_CHANNELS_PER_BLOCK)): spatial_shape = _SPATIAL_SHAPE[0] // 2 ** level feature_shape = [_BATCH_SIZE, spatial_shape, spatial_shape, _CHANNELS_PER_BLOCK[level]] self.assertEqual(encoder_features[level].shape.as_list(), feature_shape) # Test decoder shape. start_level = len(_LATENT_DIMS) latent_spatial_shape = _BOTTLENECK_SIZE * 2 ** start_level latent_shape = [_BATCH_SIZE, latent_spatial_shape, latent_spatial_shape, _CHANNELS_PER_BLOCK[::-1][start_level]] self.assertEqual(decoder_features.shape.as_list(), latent_shape) def test_shape_of_kl(self): hpu_net = HierarchicalProbUNet(latent_dims=_LATENT_DIMS, channels_per_block=_CHANNELS_PER_BLOCK, num_classes=_NUM_CLASSES, initializers=_INITIALIZERS) img, seg = _get_placeholders() kl_dict = hpu_net.kl(img, seg) self.assertEqual(len(kl_dict), len(_LATENT_DIMS)) if __name__ == '__main__': tf.test.main() ================================================ FILE: hierarchical_probabilistic_unet/run.sh ================================================ #!/bin/sh # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. python3 -m venv /tmp/hpu-net-venv source /tmp/hpu-net-venv/bin/activate pip3 install -U pip pip3 install hierarchical_probabilistic_unet/ python3 hierarchical_probabilistic_unet/model_test.py ================================================ FILE: hierarchical_probabilistic_unet/setup.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from setuptools import find_packages from setuptools import setup REQUIRED_PACKAGES = ['numpy', 'dm-sonnet==1.35', 'tensorflow==1.14', 'tensorflow-probability==0.7.0'] setup( name='hpu_net', version='0.1', description='A library for the Hierarchical Probabilistic U-Net model.', url='https://github.com/deepmind/deepmind-research/hierarchical_probabilistic_unet', author='DeepMind', author_email='no-reply@google.com', # Contained modules and scripts. packages=find_packages(), install_requires=REQUIRED_PACKAGES, platforms=['any'], license='Apache 2.0', ) ================================================ FILE: hierarchical_probabilistic_unet/unet_utils.py ================================================ # Copyright 2019 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Architectural blocks and utility functions of the U-Net.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import sonnet as snt import tensorflow.compat.v1 as tf def res_block(input_features, n_channels, n_down_channels=None, activation_fn=tf.nn.relu, initializers=None, regularizers=None, convs_per_block=3): """A pre-activated residual block. Args: input_features: A tensor of shape (b, h, w, c). n_channels: An integer specifying the number of output channels. n_down_channels: An integer specifying the number of intermediate channels. activation_fn: A callable activation function. initializers: Initializers for the weights and biases. regularizers: Regularizers for the weights and biases. convs_per_block: An Integer specifying the number of convolutional layers. Returns: A tensor of shape (b, h, w, c). """ # Pre-activate the inputs. skip = input_features residual = activation_fn(input_features) # Set the number of intermediate channels that we compress to. if n_down_channels is None: n_down_channels = n_channels for c in range(convs_per_block): residual = snt.Conv2D(n_down_channels, (3, 3), padding='SAME', initializers=initializers, regularizers=regularizers)(residual) if c < convs_per_block - 1: residual = activation_fn(residual) incoming_channels = input_features.shape[-1] if incoming_channels != n_channels: skip = snt.Conv2D(n_channels, (1, 1), padding='SAME', initializers=initializers, regularizers=regularizers)(skip) if n_down_channels != n_channels: residual = snt.Conv2D(n_channels, (1, 1), padding='SAME', initializers=initializers, regularizers=regularizers)(residual) return skip + residual def resize_up(input_features, scale=2): """Nearest neighbor rescaling-operation for the input features. Args: input_features: A tensor of shape (b, h, w, c). scale: An integer specifying the scaling factor. Returns: A tensor of shape (b, scale * h, scale * w, c). """ assert scale >= 1 _, size_x, size_y, _ = input_features.shape.as_list() new_size_x = int(round(size_x * scale)) new_size_y = int(round(size_y * scale)) return tf.image.resize( input_features, [new_size_x, new_size_y], align_corners=True, method=tf.image.ResizeMethod.NEAREST_NEIGHBOR) def resize_down(input_features, scale=2): """Average pooling rescaling-operation for the input features. Args: input_features: A tensor of shape (b, h, w, c). scale: An integer specifying the scaling factor. Returns: A tensor of shape (b, h / scale, w / scale, c). """ assert scale >= 1 return tf.nn.avg_pool2d( input_features, ksize=(1, scale, scale, 1), strides=(1, scale, scale, 1), padding='VALID') ================================================ FILE: hierarchical_transformer_memory/README.md ================================================ # Towards mental time travel: A hierarchical memory for RL agents This provides an implementation of two components of the paper "Towards mental time travel: A hierarchical memory for reinforcement learning agents." The article can be found on arXiv at [https://arxiv.org/abs/2105.14039](https://arxiv.org/abs/2105.14039) Specifically, this repository contains: 1) A JAX/Haiku implementation of hierarchical transformer attention over memory. 2) An implementation of the Ballet environment used in the paper. We have also released the Rapid Word Learning tasks from the paper, but to simplify dependencies they are located in the `dm_fast_mapping` repository: [deepmind/dm_fast_mapping](https://github.com/deepmind/dm_fast_mapping) see the [documentation](https://github.com/deepmind/dm_fast_mapping/blob/master/docs/index.md) for that repository for further details about using those tasks. ## Setup For easy installation, run: ```shell python3 -m venv htm_env source htm_env/bin/activate pip install --upgrade pip pip install -r requirements.txt ``` Note that this installs the components needed for both the attention module and the environment. If you only wish to use the environment, you do not need to install JAX, Haiku, or Chex. ## Using the hierarchical attention module: Please see `hierarchical_attention/htm_attention_test.py` for some examples of the expected inputs for this module. ## Running the ballet environment The ballet environment is contained in the `pycolab_ballet/` subfolder. To load a simple ballet environment with 2 dancers and short delays, and watch a few steps of the dances, you can do: ``` from pycolab_ballet import ballet_environment env = ballet_environment.simple_builder(level_name='2_delay16') timestep = env.reset() for _ in range(5): action = 0 timestep = env.step(action) ``` ## Citing this work If you use this code, please cite the associated paper: ``` @article{lampinen2021towards, title={Towards mental time travel: a hierarchical memory for reinforcement learning agents}, author={Lampinen, Andrew Kyle and Chan, Stephanie CY and Banino, Andrea and Hill, Felix}, journal={arXiv preprint arXiv:2105.14039}, year={2021} } ``` ================================================ FILE: hierarchical_transformer_memory/hierarchical_attention/htm_attention.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Haiku module implementing hierarchical attention over memory.""" import functools import inspect from typing import Optional, NamedTuple import chex import haiku as hk import jax import jax.numpy as jnp import numpy as np _EPSILON = 1e-3 class HierarchicalMemory(NamedTuple): """Structure of the hierarchical memory. Where 'B' is batch size, 'M' is number of memories, 'C' is chunk size, and 'D' is memory dimension. """ keys: jnp.ndarray # [B, M, D] contents: jnp.ndarray # [B, M, C, D] steps_since_last_write: jnp.ndarray # [B], steps since last memory write accumulator: jnp.ndarray # [B, C, D], accumulates experiences before write def sinusoid_position_encoding( sequence_length: int, hidden_size: int, min_timescale: float = 2., max_timescale: float = 1e4, ) -> jnp.ndarray: """Creates sinusoidal encodings. Args: sequence_length: length [L] of sequence to be position encoded. hidden_size: dimension [D] of the positional encoding vectors. min_timescale: minimum timescale for the frequency. max_timescale: maximum timescale for the frequency. Returns: An array of shape [L, D] """ freqs = np.arange(0, hidden_size, min_timescale) inv_freq = max_timescale**(-freqs / hidden_size) pos_seq = np.arange(sequence_length - 1, -1, -1.0) sinusoid_inp = np.einsum("i,j->ij", pos_seq, inv_freq) pos_emb = np.concatenate( [np.sin(sinusoid_inp), np.cos(sinusoid_inp)], axis=-1) return pos_emb class HierarchicalMemoryAttention(hk.Module): """Multi-head attention over hierarchical memory.""" def __init__(self, feature_size: int, k: int, num_heads: int = 1, memory_position_encoding: bool = True, init_scale: float = 2., name: Optional[str] = None) -> None: """Constructor. Args: feature_size: size of feature dimension of attention-over-memories embedding. k: number of memories to sample. num_heads: number of attention heads. memory_position_encoding: whether to add positional encodings to memories during within memory attention. init_scale: scale factor for Variance weight initializers. name: module name. """ super().__init__(name=name) self._size = feature_size self._k = k self._num_heads = num_heads self._weights = None self._memory_position_encoding = memory_position_encoding self._init_scale = init_scale @property def num_heads(self): return self._num_heads @hk.transparent def _singlehead_linear(self, inputs: jnp.ndarray, hidden_size: int, name: str): linear = hk.Linear( hidden_size, with_bias=False, w_init=hk.initializers.VarianceScaling(scale=self._init_scale), name=name) out = linear(inputs) return out def __call__( self, queries: jnp.ndarray, hm_memory: HierarchicalMemory, hm_mask: Optional[jnp.ndarray] = None) -> jnp.ndarray: """Do hierarchical attention over the stored memories. Args: queries: Tensor [B, Q, E] Query(ies) in, for batch size B, query length Q, and embedding dimension E. hm_memory: Hierarchical Memory. hm_mask: Optional boolean mask tensor of shape [B, Q, M]. Where false, the corresponding query timepoints cannot attend to the corresponding memory chunks. This can be used for enforcing causal attention on the learner, not attending to memories from prior episodes, etc. Returns: Value updates for each query slot: [B, Q, D] """ # some shape checks batch_size, query_length, _ = queries.shape (memory_batch_size, num_memories, memory_chunk_size, mem_embbedding_size) = hm_memory.contents.shape assert batch_size == memory_batch_size chex.assert_shape(hm_memory.keys, (batch_size, num_memories, mem_embbedding_size)) chex.assert_shape(hm_memory.accumulator, (memory_batch_size, memory_chunk_size, mem_embbedding_size)) chex.assert_shape(hm_memory.steps_since_last_write, (memory_batch_size,)) if hm_mask is not None: chex.assert_type(hm_mask, bool) chex.assert_shape(hm_mask, (batch_size, query_length, num_memories)) query_head = self._singlehead_linear(queries, self._size, "query") key_head = self._singlehead_linear( jax.lax.stop_gradient(hm_memory.keys), self._size, "key") # What times in the input [t] attend to what times in the memories [T]. logits = jnp.einsum("btd,bTd->btT", query_head, key_head) scaled_logits = logits / np.sqrt(self._size) # Mask last dimension, replacing invalid logits with large negative values. # This allows e.g. enforcing causal attention on learner, or blocking # attention across episodes if hm_mask is not None: masked_logits = jnp.where(hm_mask, scaled_logits, -1e6) else: masked_logits = scaled_logits # identify the top-k memories and their relevance weights top_k_logits, top_k_indices = jax.lax.top_k(masked_logits, self._k) weights = jax.nn.softmax(top_k_logits) # set up the within-memory attention assert self._size % self._num_heads == 0 mha_key_size = self._size // self._num_heads attention_layer = hk.MultiHeadAttention( key_size=mha_key_size, model_size=self._size, num_heads=self._num_heads, w_init_scale=self._init_scale, name="within_mem_attn") # position encodings augmented_contents = hm_memory.contents if self._memory_position_encoding: position_embs = sinusoid_position_encoding( memory_chunk_size, mem_embbedding_size) augmented_contents += position_embs[None, None, :, :] def _within_memory_attention(sub_inputs, sub_memory_contents, sub_weights, sub_top_k_indices): top_k_contents = sub_memory_contents[sub_top_k_indices, :, :] # Now we go deeper, with another vmap over **tokens**, because each token # can each attend to different memories. def do_attention(sub_sub_inputs, sub_sub_top_k_contents): tiled_inputs = jnp.tile(sub_sub_inputs[None, None, :], reps=(self._k, 1, 1)) sub_attention_results = attention_layer( query=tiled_inputs, key=sub_sub_top_k_contents, value=sub_sub_top_k_contents) return sub_attention_results do_attention = hk_vmap(do_attention, in_axes=0, split_rng=False) attention_results = do_attention(sub_inputs, top_k_contents) attention_results = jnp.squeeze(attention_results, axis=2) # Now collapse results across k memories attention_results = sub_weights[:, :, None] * attention_results attention_results = jnp.sum(attention_results, axis=1) return attention_results # vmap across batch batch_within_memory_attention = hk_vmap(_within_memory_attention, in_axes=0, split_rng=False) outputs = batch_within_memory_attention( queries, jax.lax.stop_gradient(augmented_contents), weights, top_k_indices) return outputs @functools.wraps(hk.vmap) def hk_vmap(*args, **kwargs): """Helper function to support older versions of Haiku.""" # Older versions of Haiku did not have split_rng, but the behavior has always # been equivalent to split_rng=False. if "split_rng" not in inspect.signature(hk.vmap).parameters: kwargs.setdefault("split_rng", False) if kwargs.get["split_rng"]: raise ValueError("The installed version of Haiku only supports " "`split_rng=False`, please upgrade Haiku.") del kwargs["split_rng"] return hk.vmap(*args, **kwargs) ================================================ FILE: hierarchical_transformer_memory/hierarchical_attention/htm_attention_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for hierarchical_attention.htm_attention.""" from absl.testing import absltest from absl.testing import parameterized import haiku as hk import numpy as np from hierarchical_transformer_memory.hierarchical_attention import htm_attention def _build_queries_and_memory(query_length, num_memories, mem_chunk_size, batch_size=2, embedding_size=12): """Builds dummy queries + memory contents for tests.""" queries = np.random.random([batch_size, query_length, embedding_size]) memory_contents = np.random.random( [batch_size, num_memories, mem_chunk_size, embedding_size]) # summary key = average across chunk memory_keys = np.mean(memory_contents, axis=2) # to accumulate newest memories before writing memory_accumulator = np.zeros_like(memory_contents[:, -1, :, :]) memory = htm_attention.HierarchicalMemory( keys=memory_keys, contents=memory_contents, accumulator=memory_accumulator, steps_since_last_write=np.zeros([batch_size,], dtype=np.int32)) return queries, memory class HierarchicalAttentionTest(parameterized.TestCase): @parameterized.parameters([ { 'query_length': 1, 'num_memories': 7, 'mem_chunk_size': 5, 'mem_k': 4, }, { 'query_length': 9, 'num_memories': 7, 'mem_chunk_size': 5, 'mem_k': 4, }, ]) @hk.testing.transform_and_run def test_output_shapes(self, query_length, num_memories, mem_chunk_size, mem_k): np.random.seed(0) batch_size = 2 embedding_size = 12 num_heads = 3 queries, memory = _build_queries_and_memory( query_length=query_length, num_memories=num_memories, mem_chunk_size=mem_chunk_size, embedding_size=embedding_size) hm_att = htm_attention.HierarchicalMemoryAttention( feature_size=embedding_size, k=mem_k, num_heads=num_heads) results = hm_att(queries, memory) self.assertEqual(results.shape, (batch_size, query_length, embedding_size)) self.assertTrue(np.all(np.isfinite(results))) @hk.testing.transform_and_run def test_masking(self): np.random.seed(0) batch_size = 2 embedding_size = 12 num_heads = 3 query_length = 5 num_memories = 7 mem_chunk_size = 6 mem_k = 4 queries, memory = _build_queries_and_memory( query_length=query_length, num_memories=num_memories, mem_chunk_size=mem_chunk_size, embedding_size=embedding_size) hm_att = htm_attention.HierarchicalMemoryAttention( feature_size=embedding_size, k=mem_k, num_heads=num_heads) # get a random boolean mask mask = np.random.binomial( 1, 0.5, [batch_size, query_length, num_memories]).astype(bool) results = hm_att(queries, memory, hm_mask=mask) self.assertEqual(results.shape, (batch_size, query_length, embedding_size)) self.assertTrue(np.all(np.isfinite(results))) if __name__ == '__main__': absltest.main() ================================================ FILE: hierarchical_transformer_memory/pycolab_ballet/ballet_environment.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A pycolab environment for going to the ballet. A pycolab-based environment for testing memory for sequences of events. The environment contains some number of "dancer" characters in (implicit) 3 x 3 squares within a larger 9 x 9 room. The agent starts in the center of the room. At the beginning of an episode, the dancers each do a dance solo of a fixed length, separated by empty time of a fixed length. The agent's actions do nothing during the dances. After the last dance ends, the agent must go up to a dancer, identified using language describing the dance. The agent is rewarded +1 for approaching the correct dancer, 0 otherwise. The room is upsampled at a size of 9 pixels per square to render a view for the agent, which is cropped in egocentric perspective, i.e. the agent is always in the center of its view (see https://arxiv.org/abs/1910.00571). """ from absl import app from absl import flags from absl import logging import dm_env import numpy as np from pycolab import cropping from hierarchical_transformer_memory.pycolab_ballet import ballet_environment_core as ballet_core FLAGS = flags.FLAGS UPSAMPLE_SIZE = 9 # pixels per game square SCROLL_CROP_SIZE = 11 # in game squares DANCER_SHAPES = [ "triangle", "empty_square", "plus", "inverse_plus", "ex", "inverse_ex", "circle", "empty_circle", "tee", "upside_down_tee", "h", "u", "upside_down_u", "vertical_stripes", "horizontal_stripes" ] COLORS = { "red": np.array([255, 0, 0]), "green": np.array([0, 255, 0]), "blue": np.array([0, 0, 255]), "purple": np.array([128, 0, 128]), "orange": np.array([255, 165, 0]), "yellow": np.array([255, 255, 0]), "brown": np.array([128, 64, 0]), "pink": np.array([255, 64, 255]), "cyan": np.array([0, 255, 255]), "dark_green": np.array([0, 100, 0]), "dark_red": np.array([100, 0, 0]), "dark_blue": np.array([0, 0, 100]), "olive": np.array([100, 100, 0]), "teal": np.array([0, 100, 100]), "lavender": np.array([215, 200, 255]), "peach": np.array([255, 210, 170]), "rose": np.array([255, 205, 230]), "light_green": np.array([200, 255, 200]), "light_yellow": np.array([255, 255, 200]), } def _generate_template(object_name): """Generates a template object image, given a name with color and shape.""" object_color, object_type = object_name.split() template = np.zeros((UPSAMPLE_SIZE, UPSAMPLE_SIZE)) half = UPSAMPLE_SIZE // 2 if object_type == "triangle": for i in range(UPSAMPLE_SIZE): for j in range(UPSAMPLE_SIZE): if (j <= half and i >= 2 * (half - j)) or (j > half and i >= 2 * (j - half)): template[i, j] = 1. elif object_type == "square": template[:, :] = 1. elif object_type == "empty_square": template[:2, :] = 1. template[-2:, :] = 1. template[:, :2] = 1. template[:, -2:] = 1. elif object_type == "plus": template[:, half - 1:half + 2] = 1. template[half - 1:half + 2, :] = 1. elif object_type == "inverse_plus": template[:, :] = 1. template[:, half - 1:half + 2] = 0. template[half - 1:half + 2, :] = 0. elif object_type == "ex": for i in range(UPSAMPLE_SIZE): for j in range(UPSAMPLE_SIZE): if abs(i - j) <= 1 or abs(UPSAMPLE_SIZE - 1 - j - i) <= 1: template[i, j] = 1. elif object_type == "inverse_ex": for i in range(UPSAMPLE_SIZE): for j in range(UPSAMPLE_SIZE): if not (abs(i - j) <= 1 or abs(UPSAMPLE_SIZE - 1 - j - i) <= 1): template[i, j] = 1. elif object_type == "circle": for i in range(UPSAMPLE_SIZE): for j in range(UPSAMPLE_SIZE): if (i - half)**2 + (j - half)**2 <= half**2: template[i, j] = 1. elif object_type == "empty_circle": for i in range(UPSAMPLE_SIZE): for j in range(UPSAMPLE_SIZE): if abs((i - half)**2 + (j - half)**2 - half**2) < 6: template[i, j] = 1. elif object_type == "tee": template[:, half - 1:half + 2] = 1. template[:3, :] = 1. elif object_type == "upside_down_tee": template[:, half - 1:half + 2] = 1. template[-3:, :] = 1. elif object_type == "h": template[:, :3] = 1. template[:, -3:] = 1. template[half - 1:half + 2, :] = 1. elif object_type == "u": template[:, :3] = 1. template[:, -3:] = 1. template[-3:, :] = 1. elif object_type == "upside_down_u": template[:, :3] = 1. template[:, -3:] = 1. template[:3, :] = 1. elif object_type == "vertical_stripes": for j in range(half + UPSAMPLE_SIZE % 2): template[:, 2*j] = 1. elif object_type == "horizontal_stripes": for i in range(half + UPSAMPLE_SIZE % 2): template[2*i, :] = 1. else: raise ValueError("Unknown object: {}".format(object_type)) if object_color not in COLORS: raise ValueError("Unknown color: {}".format(object_color)) template = np.tensordot(template, COLORS[object_color], axes=0) return template # Agent and wall templates _CHAR_TO_TEMPLATE_BASE = { ballet_core.AGENT_CHAR: np.tensordot( np.ones([UPSAMPLE_SIZE, UPSAMPLE_SIZE]), np.array([255, 255, 255]), axes=0), ballet_core.WALL_CHAR: np.tensordot( np.ones([UPSAMPLE_SIZE, UPSAMPLE_SIZE]), np.array([40, 40, 40]), axes=0), } def get_scrolling_cropper(rows=9, cols=9, crop_pad_char=" "): return cropping.ScrollingCropper(rows=rows, cols=cols, to_track=[ballet_core.AGENT_CHAR], pad_char=crop_pad_char, scroll_margins=(None, None)) class BalletEnvironment(dm_env.Environment): """A Python environment API for pycolab ballet tasks.""" def __init__(self, num_dancers, dance_delay, max_steps, rng=None): """Construct a BalletEnvironment that wraps pycolab games for agent use. This class inherits from dm_env and has all the expected methods and specs. Args: num_dancers: The number of dancers to use, between 1 and 8 (inclusive). dance_delay: How long to delay between the dances. max_steps: The maximum number of steps to allow in an episode, after which it will terminate. rng: An optional numpy Random Generator, to set a fixed seed use e.g. `rng=np.random.default_rng(seed=...)` """ self._num_dancers = num_dancers self._dance_delay = dance_delay self._max_steps = max_steps # internal state if rng is None: rng = np.random.default_rng() self._rng = rng self._current_game = None # Current pycolab game instance. self._state = None # Current game step state. self._game_over = None # Whether the game has ended. self._char_to_template = None # Mapping of chars to sprite images. # rendering tools self._cropper = get_scrolling_cropper(SCROLL_CROP_SIZE, SCROLL_CROP_SIZE, " ") def _game_factory(self): """Samples dancers and positions, returns a pycolab core game engine.""" target_dancer_index = self._rng.integers(self._num_dancers) motions = list(ballet_core.DANCE_SEQUENCES.keys()) positions = ballet_core.DANCER_POSITIONS.copy() colors = list(COLORS.keys()) shapes = DANCER_SHAPES.copy() self._rng.shuffle(positions) self._rng.shuffle(motions) self._rng.shuffle(colors) self._rng.shuffle(shapes) dancers_and_properties = [] for dancer_i in range(self._num_dancers): if dancer_i == target_dancer_index: value = 1. else: value = 0. dancers_and_properties.append( (ballet_core.POSSIBLE_DANCER_CHARS[dancer_i], positions[dancer_i], motions[dancer_i], shapes[dancer_i], colors[dancer_i], value)) logging.info("Making level with dancers_and_properties: %s", dancers_and_properties) return ballet_core.make_game( dancers_and_properties=dancers_and_properties, dance_delay=self._dance_delay) def _render_observation(self, observation): """Renders from raw pycolab image observation to agent-usable ones.""" observation = self._cropper.crop(observation) obs_rows, obs_cols = observation.board.shape image = np.zeros([obs_rows * UPSAMPLE_SIZE, obs_cols * UPSAMPLE_SIZE, 3], dtype=np.float32) for i in range(obs_rows): for j in range(obs_cols): this_char = chr(observation.board[i, j]) if this_char != ballet_core.FLOOR_CHAR: image[ i * UPSAMPLE_SIZE:(i + 1) * UPSAMPLE_SIZE, j * UPSAMPLE_SIZE:(j + 1) * UPSAMPLE_SIZE] = self._char_to_template[ this_char] image /= 255. language = np.array(self._current_game.the_plot["instruction_string"]) full_observation = (image, language) return full_observation def reset(self): """Start a new episode.""" # Build a new game and retrieve its first set of state/reward/discount. self._current_game = self._game_factory() # set up rendering, cropping, and state for current game self._char_to_template = { k: _generate_template(v) for k, v in self._current_game.the_plot[ "char_to_color_shape"]} self._char_to_template.update(_CHAR_TO_TEMPLATE_BASE) self._cropper.set_engine(self._current_game) self._state = dm_env.StepType.FIRST # let's go! observation, _, _ = self._current_game.its_showtime() observation = self._render_observation(observation) return dm_env.TimeStep( step_type=self._state, reward=None, discount=None, observation=observation) def step(self, action): """Apply action, step the world forward, and return observations.""" # If needed, reset and start new episode. if self._state == dm_env.StepType.LAST: self._clear_state() if self._current_game is None: return self.reset() # Execute the action in pycolab. observation, reward, discount = self._current_game.play(action) self._game_over = self._is_game_over() reward = reward if reward is not None else 0. observation = self._render_observation(observation) # Check the current status of the game. if self._game_over: self._state = dm_env.StepType.LAST else: self._state = dm_env.StepType.MID return dm_env.TimeStep( step_type=self._state, reward=reward, discount=discount, observation=observation) @property def observation_spec(self): image_shape = (SCROLL_CROP_SIZE * UPSAMPLE_SIZE, SCROLL_CROP_SIZE * UPSAMPLE_SIZE, 3) return ( # vision dm_env.specs.Array( shape=image_shape, dtype=np.float32, name="image"), # language dm_env.specs.Array( shape=[], dtype=str, name="language"), ) @property def action_spec(self): return dm_env.specs.BoundedArray( shape=[], dtype="int32", minimum=0, maximum=7, name="grid_actions") def _is_game_over(self): """Returns whether it is game over, either from the engine or timeout.""" return (self._current_game.game_over or (self._current_game.the_plot.frame >= self._max_steps)) def _clear_state(self): """Clear all the internal information about the game.""" self._state = None self._current_game = None self._char_to_template = None self._game_over = None def simple_builder(level_name): """Simplifies building from fixed defs. Args: level_name: '{num_dancers}_delay{delay_length}', where each variable is an integer. The levels used in the paper were: ['2_delay16', '4_delay16', '8_delay16', '2_delay48', '4_delay48', '8_delay48'] Returns: A BalletEnvironment with the requested settings. """ num_dancers, dance_delay = level_name.split("_") num_dancers = int(num_dancers) dance_delay = int(dance_delay[5:]) max_steps = 320 if dance_delay == 16 else 1024 level_args = dict( num_dancers=num_dancers, dance_delay=dance_delay, max_steps=max_steps) return BalletEnvironment(**level_args) def main(argv): if len(argv) > 1: raise app.UsageError("Too many command-line arguments.") env = simple_builder("4_delay16") for _ in range(3): obs = env.reset().observation for _ in range(300): obs = env.step(0).observation print(obs) if __name__ == "__main__": app.run(main) ================================================ FILE: hierarchical_transformer_memory/pycolab_ballet/ballet_environment_core.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """The pycolab core of the environment for going to the ballet. This builds the text-based (non-graphical) engine of the environment, and offers a UI which a human can play (for a fixed level). However, the logic of level creation, the graphics, and anything that is external to the pycolab engine itself is contained in ballet_environment.py. """ import curses import enum from absl import app from absl import flags from pycolab import ascii_art from pycolab import human_ui from pycolab.prefab_parts import sprites as prefab_sprites FLAGS = flags.FLAGS ROOM_SIZE = (11, 11) # one square around edge will be wall. DANCER_POSITIONS = [(2, 2), (2, 5), (2, 8), (5, 2), (5, 8), # space in center for agent (8, 2), (8, 5), (8, 8)] AGENT_START = (5, 5) AGENT_CHAR = "A" WALL_CHAR = "#" FLOOR_CHAR = " " RESERVED_CHARS = [AGENT_CHAR, WALL_CHAR, FLOOR_CHAR] POSSIBLE_DANCER_CHARS = [ chr(i) for i in range(65, 91) if chr(i) not in RESERVED_CHARS ] DANCE_SEQUENCE_LENGTHS = 16 # movement directions for dancers / actions for agent class DIRECTIONS(enum.IntEnum): N = 0 NE = 1 E = 2 SE = 3 S = 4 SW = 5 W = 6 NW = 7 DANCE_SEQUENCES = { "circle_cw": [ DIRECTIONS.N, DIRECTIONS.E, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.N, DIRECTIONS.N, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.N, DIRECTIONS.E ], "circle_ccw": [ DIRECTIONS.N, DIRECTIONS.W, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.N, DIRECTIONS.N, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.N, DIRECTIONS.W ], "up_and_down": [ DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.S, DIRECTIONS.N ], "left_and_right": [ DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.E ], "diagonal_uldr": [ DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.SE, DIRECTIONS.NW ], "diagonal_urdl": [ DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SW, DIRECTIONS.NE ], "plus_cw": [ DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.W, DIRECTIONS.E ], "plus_ccw": [ DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.N, DIRECTIONS.S, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.S, DIRECTIONS.N, DIRECTIONS.E, DIRECTIONS.W ], "times_cw": [ DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.NW, DIRECTIONS.SE ], "times_ccw": [ DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.NE, DIRECTIONS.SW ], "zee": [ DIRECTIONS.NE, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.SW, DIRECTIONS.E, DIRECTIONS.E, DIRECTIONS.W, DIRECTIONS.W, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.NE ], "chevron_down": [ DIRECTIONS.NW, DIRECTIONS.S, DIRECTIONS.SE, DIRECTIONS.NE, DIRECTIONS.N, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.S, DIRECTIONS.SW, DIRECTIONS.NW, DIRECTIONS.N, DIRECTIONS.SE, DIRECTIONS.NW, DIRECTIONS.SE ], "chevron_up": [ DIRECTIONS.SE, DIRECTIONS.N, DIRECTIONS.NW, DIRECTIONS.SW, DIRECTIONS.S, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.NE, DIRECTIONS.SW, DIRECTIONS.N, DIRECTIONS.NE, DIRECTIONS.SE, DIRECTIONS.S, DIRECTIONS.NW, DIRECTIONS.SE, DIRECTIONS.NW ], } class DancerSprite(prefab_sprites.MazeWalker): """A `Sprite` for dancers.""" def __init__(self, corner, position, character, motion, color, shape, value=0.): super(DancerSprite, self).__init__( corner, position, character, impassable="#") self.motion = motion self.dance_sequence = DANCE_SEQUENCES[motion].copy() self.color = color self.shape = shape self.value = value self.is_dancing = False def update(self, actions, board, layers, backdrop, things, the_plot): if the_plot["task_phase"] == "dance" and self.is_dancing: if not self.dance_sequence: raise ValueError( "Dance sequence is empty! Was this dancer repeated in the order?") dance_move = self.dance_sequence.pop(0) if dance_move == DIRECTIONS.N: self._north(board, the_plot) elif dance_move == DIRECTIONS.NE: self._northeast(board, the_plot) elif dance_move == DIRECTIONS.E: self._east(board, the_plot) elif dance_move == DIRECTIONS.SE: self._southeast(board, the_plot) elif dance_move == DIRECTIONS.S: self._south(board, the_plot) elif dance_move == DIRECTIONS.SW: self._southwest(board, the_plot) elif dance_move == DIRECTIONS.W: self._west(board, the_plot) elif dance_move == DIRECTIONS.NW: self._northwest(board, the_plot) if not self.dance_sequence: # done! self.is_dancing = False the_plot["time_until_next_dance"] = the_plot["dance_delay"] else: if self.position == things[AGENT_CHAR].position: # Award the player the appropriate amount of reward, and end episode. the_plot.add_reward(self.value) the_plot.terminate_episode() class PlayerSprite(prefab_sprites.MazeWalker): """The player / agent character. MazeWalker class methods handle basic movement and collision detection. """ def __init__(self, corner, position, character): super(PlayerSprite, self).__init__( corner, position, character, impassable="#") def update(self, actions, board, layers, backdrop, things, the_plot): if the_plot["task_phase"] == "dance": # agent's actions are ignored, this logic updates the dance phases. if the_plot["time_until_next_dance"] > 0: the_plot["time_until_next_dance"] -= 1 if the_plot["time_until_next_dance"] == 0: # next phase time! if the_plot["dance_order"]: # start the next dance! next_dancer = the_plot["dance_order"].pop(0) things[next_dancer].is_dancing = True else: # choice time! the_plot["task_phase"] = "choice" the_plot["instruction_string"] = the_plot[ "choice_instruction_string"] elif the_plot["task_phase"] == "choice": # agent can now move and make its choice if actions == DIRECTIONS.N: self._north(board, the_plot) elif actions == DIRECTIONS.NE: self._northeast(board, the_plot) elif actions == DIRECTIONS.E: self._east(board, the_plot) elif actions == DIRECTIONS.SE: self._southeast(board, the_plot) elif actions == DIRECTIONS.S: self._south(board, the_plot) elif actions == DIRECTIONS.SW: self._southwest(board, the_plot) elif actions == DIRECTIONS.W: self._west(board, the_plot) elif actions == DIRECTIONS.NW: self._northwest(board, the_plot) def make_game(dancers_and_properties, dance_delay=16): """Constructs an ascii map, then uses pycolab to make it a game. Args: dancers_and_properties: list of (character, (row, column), motion, shape, color, value), for placing objects in the world. dance_delay: how long to wait between dances. Returns: this_game: Pycolab engine running the specified game. """ num_rows, num_cols = ROOM_SIZE level_layout = [] # upper wall level_layout.append("".join([WALL_CHAR] * num_cols)) # room middle_string = "".join([WALL_CHAR] + [" "] * (num_cols - 2) + [WALL_CHAR]) level_layout.extend([middle_string for _ in range(num_rows - 2)]) # lower wall level_layout.append("".join([WALL_CHAR] * num_cols)) def _add_to_map(obj, loc): """Adds an ascii character to the level at the requested position.""" obj_row = level_layout[loc[0]] pre_string = obj_row[:loc[1]] post_string = obj_row[loc[1] + 1:] level_layout[loc[0]] = pre_string + obj + post_string _add_to_map(AGENT_CHAR, AGENT_START) sprites = {AGENT_CHAR: PlayerSprite} dance_order = [] char_to_color_shape = [] # add dancers to level for obj, loc, motion, shape, color, value in dancers_and_properties: _add_to_map(obj, loc) sprites[obj] = ascii_art.Partial( DancerSprite, motion=motion, color=color, shape=shape, value=value) char_to_color_shape.append((obj, color + " " + shape)) dance_order += obj if value > 0.: choice_instruction_string = motion this_game = ascii_art.ascii_art_to_game( art=level_layout, what_lies_beneath=" ", sprites=sprites, update_schedule=[[AGENT_CHAR], dance_order]) this_game.the_plot["task_phase"] = "dance" this_game.the_plot["instruction_string"] = "watch" this_game.the_plot["choice_instruction_string"] = choice_instruction_string this_game.the_plot["dance_order"] = dance_order this_game.the_plot["dance_delay"] = dance_delay this_game.the_plot["time_until_next_dance"] = 1 this_game.the_plot["char_to_color_shape"] = char_to_color_shape return this_game def main(argv): del argv # unused these_dancers_and_properties = [ (POSSIBLE_DANCER_CHARS[1], (2, 2), "chevron_up", "triangle", "red", 1), (POSSIBLE_DANCER_CHARS[2], (2, 5), "circle_ccw", "triangle", "red", 0), (POSSIBLE_DANCER_CHARS[3], (2, 8), "plus_cw", "triangle", "red", 0), (POSSIBLE_DANCER_CHARS[4], (5, 2), "plus_ccw", "triangle", "red", 0), (POSSIBLE_DANCER_CHARS[5], (5, 8), "times_cw", "triangle", "red", 0), (POSSIBLE_DANCER_CHARS[6], (8, 2), "up_and_down", "plus", "blue", 0), (POSSIBLE_DANCER_CHARS[7], (8, 5), "left_and_right", "plus", "blue", 0), (POSSIBLE_DANCER_CHARS[8], (8, 8), "zee", "plus", "blue", 0), ] game = make_game(dancers_and_properties=these_dancers_and_properties) # Note that these colors are only for human UI fg_colours = { AGENT_CHAR: (999, 999, 999), # Agent is white WALL_CHAR: (300, 300, 300), # Wall, dark grey FLOOR_CHAR: (0, 0, 0), # Floor } for (c, _, _, _, col, _) in these_dancers_and_properties: fg_colours[c] = (999, 0, 0) if col == "red" else (0, 0, 999) bg_colours = { c: (0, 0, 0) for c in RESERVED_CHARS + POSSIBLE_DANCER_CHARS[1:8] } ui = human_ui.CursesUi( keys_to_actions={ # Basic movement. curses.KEY_UP: DIRECTIONS.N, curses.KEY_DOWN: DIRECTIONS.S, curses.KEY_LEFT: DIRECTIONS.W, curses.KEY_RIGHT: DIRECTIONS.E, -1: 8, # Do nothing. }, delay=500, colour_fg=fg_colours, colour_bg=bg_colours) ui.play(game) if __name__ == "__main__": app.run(main) ================================================ FILE: hierarchical_transformer_memory/pycolab_ballet/ballet_environment_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for pycolab_ballet.ballet_environment_wrapper.""" from absl.testing import absltest from absl.testing import parameterized import numpy as np from hierarchical_transformer_memory.pycolab_ballet import ballet_environment from hierarchical_transformer_memory.pycolab_ballet import ballet_environment_core class BalletEnvironmentTest(parameterized.TestCase): def test_full_wrapper(self): env = ballet_environment.BalletEnvironment( num_dancers=1, dance_delay=16, max_steps=200, rng=np.random.default_rng(seed=0)) result = env.reset() self.assertIsNone(result.reward) level_size = ballet_environment_core.ROOM_SIZE upsample_size = ballet_environment.UPSAMPLE_SIZE # wait for dance to complete for i in range(30): result = env.step(0).observation self.assertEqual(result[0].shape, (level_size[0] * upsample_size, level_size[1] * upsample_size, 3)) self.assertEqual(str(result[1])[:5], np.array("watch")) for i in [1, 1, 1, 1]: # first gets eaten before agent can move result = env.step(i) self.assertEqual(result.observation[0].shape, (level_size[0] * upsample_size, level_size[1] * upsample_size, 3)) self.assertEqual(str(result.observation[1])[:11], np.array("up_and_down")) self.assertEqual(result.reward, 1.) # check egocentric scrolling is working, by checking object is in center np.testing.assert_array_almost_equal( result.observation[0][45:54, 45:54], ballet_environment._generate_template("orange plus") / 255.) @parameterized.parameters( "2_delay16", "4_delay16", "8_delay48", ) def test_simple_builder(self, level_name): dance_delay = int(level_name[-2:]) np.random.seed(0) env = ballet_environment.simple_builder(level_name) # check max steps are set to match paper settings self.assertEqual(env._max_steps, 320 if dance_delay == 16 else 1024) # test running a few steps of each env.reset() level_size = ballet_environment_core.ROOM_SIZE upsample_size = ballet_environment.UPSAMPLE_SIZE for i in range(8): result = env.step(i) # check all 8 movements work self.assertEqual(result.observation[0].shape, (level_size[0] * upsample_size, level_size[1] * upsample_size, 3)) self.assertEqual(str(result.observation[1])[:5], np.array("watch")) self.assertEqual(result.reward, 0.) if __name__ == "__main__": absltest.main() ================================================ FILE: hierarchical_transformer_memory/requirements.txt ================================================ absl-py chex>=0.0.8 dm-env dm-haiku>=0.0.5.dev jax>=0.2.17 numpy pycolab ================================================ FILE: himo/README.md ================================================ # Accompanying code for Value-driven Hindsight Modelling `himo_example.ipynb` contains code for the illustrative task of Section 3.2 in the [paper](https://arxiv.org/abs/2002.08329). ## Requirements and Installation This is a Colaboratory notebook: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/himo/himo_example.ipynb) If your runtime doesn't include [Haiku](https://github.com/deepmind/dm-haiku) and [Tree](https://github.com/deepmind/tree) please run the cell labeled "Install extra dependencies" which contains the following pip installation commands: ```!pip install dm-haiku``` ```!pip install dm-tree``` ## Reference **Value-driven Hindsight Modelling** Arthur Guez, Fabio Viola, Théophane Weber, Lars Buesing, Steven Kapturowski, Doina Precup, David Silver, and Nicolas Heess Neural Information Processing Systems 2020, URL: https://arxiv.org/abs/2002.08329 ================================================ FILE: himo/himo_example.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "7lyGjcyb5S8B" }, "source": [ "Copyright 2020 The \"Value-driven Hindsight Modelling\" Authors. All rights reserved.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "BVWs0Qh1HL00" }, "source": [ "# Hindsight Modelling: Illustrative task of section 3.2.\n", "This implements the task and experiments defined in Section 3.2 and Appendix Section A3 of the \"Value-driven Hindsight Modelling paper\".\n", "\n", "#Task description:\n", " This is a value estimation problem in a 1-step Markov Reward Process (no actions), namely \n", "each episode consists of a single transition from initial state $x$ to terminal state $x'$, with a reward $r(x,x')$ on the way. The agent is trained on multiple episodes of each MRP instance. This learning process is repeated independently and averaged for multiple instances of the environment. \n", "Each instance of the task is parametrized by a square matrix $W$ and a vector $b$ sampled from a unit normal distribution, as well as randomly initialized MLP (see below), which together determine the uncontrolled MDP.\n", "Initial states $x$ are of dimension $D$ and sampled from a multivariate unit normal distribution ($x_i \\sim N(0, 1)$ for all state dimension~$i$).\n", "Given $x=\\left(\\begin{smallmatrix}x_1\\\\x_2\\end{smallmatrix}\\right)$, where $x_1$ and $x_2$ are of dimension $D_1$ and $D_2$ ($D=D_1+D_2$),\n", "the next state ${x' = \\left(\\begin{smallmatrix}x_1'\\\\x_2'\\end{smallmatrix}\\right)}$ is determined according to the transition function: $x_1'=\\text{MLP}(x) + \\epsilon$ and $x_2' = \\sigma(W x_2 + b)$ where $\\sigma$ is the Heaviside function, and MLP is a randomly sampled Multi-Layer Perceptron. $x_1'$ acts as a distractor here, with additive noise $\\epsilon \\sim N(0,1)$. The reward obtained is $r(x,x') = \\sum_i x^{(i)}_1 \\sum_i x'^{(i)}_2 / \\sqrt{D}$. The true value in the start state is also $v(x) = r(x,x')$.\n" ] }, { "cell_type": "code", "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "_7-a7M9ANbS5" }, "source": [ "#@title Install extra dependencies\n", "!pip install dm-haiku\n", "!pip install dm-tree" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "grsC1l3BF3eM" }, "outputs": [], "source": [ "#@title Imports\n", "from __future__ import absolute_import\n", "from __future__ import division\n", "from __future__ import print_function\n", "\n", "import functools\n", "from functools import reduce\n", "\n", "import haiku as hk\n", "import IPython\n", "import jax\n", "from jax import numpy as jnp\n", "from jax import random\n", "from jax.experimental import optix\n", "import matplotlib\n", "from matplotlib import pyplot as plt\n", "import matplotlib.cm as cm\n", "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", "import numpy as np\n", "import seaborn as sns\n", "import tree\n", "\n", "sns.set(rc={\"lines.linewidth\": 2.0})\n", "sns.set_style(\"whitegrid\")\n", "\n", "ipython = IPython.get_ipython()\n", "ipython.magic(\"%config InlineBackend.figure_format = 'retina'\")" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "eRFwE0SdIZ7W" }, "outputs": [], "source": [ "#@title Functions to generate dynamics and trajectories\n", "\n", "def gen_dynamics(rng_key, x_dims):\n", " \"\"\"Generate dynamics (transition+reward functions) for one problem instance. \"\"\"\n", " x1_dim, x2_dim = x_dims\n", " x_dim = x1_dim + x2_dim\n", "\n", " # Sample dynamics parameters to compute x2' from x2\n", " rng_key, w_rng_key, b_rng_key = random.split(rng_key, 3)\n", " w_dy = random.normal(w_rng_key, shape=(x2_dim, x2_dim))\n", " b_dy = random.normal(b_rng_key, shape=(x2_dim,))\n", "\n", " # Sample MLP parameters that controls the x-\u003ex1' transition\n", " rng_key, w_rng_key, b_rng_key = random.split(rng_key, 3)\n", " w2_dy = random.normal(w_rng_key, shape=(x_dim, x_dim))\n", " b2_dy = random.normal(b_rng_key, shape=(x_dim,))\n", " rng_key, w_rng_key, b_rng_key = random.split(rng_key, 3)\n", " w3_dy = random.normal(w_rng_key, shape=(x_dim, x1_dim))\n", " b3_dy = random.normal(b_rng_key, shape=(x1_dim,))\n", "\n", " @jax.vmap\n", " def transition_fn(rng_key, x):\n", " \"\"\"Sample x' from x.\"\"\"\n", " x2 = x[-x2_dim:]\n", " x2p = jnp.heaviside(x2.dot(w_dy) + b_dy, 0.0)\n", " x1p = jax.nn.sigmoid(x.dot(w2_dy) + b2_dy)\n", " x1p = jax.nn.sigmoid(x1p.dot(w3_dy) + b3_dy)\n", " x1p += random.normal(rng_key, shape=(x1_dim,))\n", " xp = jnp.concatenate([x1p, x2p])\n", " return xp\n", "\n", " @jax.vmap\n", " def reward_fn(x, xp):\n", " \"\"\"Compute reward from x and x'.\n", "\n", " Note: this is also a deterministic function of x by construction.\n", " \"\"\"\n", " x2p = xp[-x2_dim:]\n", " x1 = x[:x1_dim]\n", " r = jnp.sum(x2p) * jnp.sum(x1) / jnp.sqrt(x_dim)\n", " return r\n", "\n", " def data_generator(rng_key, batch_size):\n", " def body(rng_key):\n", " rng_key, x_rng_key, xp_rng_key = random.split(rng_key, 3)\n", " x = random.normal(x_rng_key, shape=(batch_size, x_dim))\n", " xp = transition_fn(random.split(xp_rng_key, batch_size), x)\n", " r = reward_fn(x, xp)\n", " return rng_key, (x, xp, r)\n", " body = jax.jit(body)\n", "\n", " while True:\n", " rng_key, data = body(rng_key)\n", " yield data\n", "\n", " return data_generator" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": { "height": 860 }, "colab_type": "code", "executionInfo": { "elapsed": 6090, "status": "ok", "timestamp": 1584470940976, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "IIr1786RQQ9z", "outputId": "c42a28b9-bbc1-4e8c-c505-3f90bdc5af93" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACfgAAAaXCAYAAAAg7p07AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XdYVNe6BvB36CBNEEHAgsYCKigi\niBpjwRKj5mgs16gxmIAlEksSY0nRHI0xdkRFYzcWbERFTRRbLAiIKIpSRDCCHQQGkCZz/+CB48ze\nwMxQNe/vee5zz6w9a+1vimTvWd/6lkQmk8lARERERERERERERERERERERERERHWKRm0HQERERERE\nRERERERERERERERERERCTPAjIiIiIiIiIiIiIiIiIiIiIiIiqoOY4EdERERERERERERERERERERE\nRERUBzHBj4iIiIiIiIiIiIiIiIiIiIiIiKgOYoIfERERERERERERERERERERERERUR3EBD8iIiIi\nIiIiIiIiIiIiIiIiIiKiOogJfkRERERERERERERERERERERERER1EBP8iIiIiIiIiIiIiIiIiIiI\niIiIiOogJvgRERERERERERERERERERERERER1UFM8CMiIiIiIiIiIiIiIiIiIiIiIiKqg5jgR0RE\nRERERERERERERERERERERFQHMcGPiIiIiIiIiIiIiIiIiIiIiIiIqA5igh8RERERERERERERERER\nERERERFRHaRV2wEQEb0tpFIpoqOj8eTJE0ilUkilUmhqasLAwACGhoZo1KgRbGxs0KhRI2hqatZ2\nuERERERERERERERERERERERUxzHBj4ioEh48eIADBw7gzz//xP379yGTySrso6enB3t7e7Rr1w6d\nO3dG165dYWRkVAPREhERERERUV0RGhqKTz75RK5t8eLFGDZsWC1F9OZITk5Gnz595NqmTp0KHx+f\nWoqIiIiIiIiIyrJnzx7Mnz9fri0gIAAdOnSonYCIiN5ATPAjIlJDeno6Fi9ejMOHDyuV1Pe63Nxc\nREZGIjIyEjt37oSWlhYGDBiA5cuXV9g3OTkZgYGBcm2urq5wc3NTKYa3XWhoKMLCwuTahg4dCltb\n21qKqGYFBwfjzp07cm3jx4+HsbFxLUVUOXfu3EFwcLBcm4eHB+zt7WspIiIiIiJxYklHNS02NrZW\n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\n78zYlCPHcdTS0qJTp06pubm5//zldruVk5OjiRMnqqSkRDNmzBh0x3IAuBUQ8AMAAAAAAAAAAAAA\nAAAAIAsRXQYAAAAAAAAAAAAAAAAAIAsR8AMAAAAAAAAAAAAAAAAAIAsR8AMAAAAAAAAAAAAAAAAA\nIAsR8AMAAAAAAAAAAAAAAAAAIAsR8AMAAAAAAAAAAAAAAAAAIAsR8AMAAAAAAAAAAAAAAAAAIAsR\n8AMAAAAAAAAAAAAAAAAAIAsR8AMAAAAAAAAAAAAAAAAAIAu5RruAbLZ//37F43FZliWv1zva5QAA\nAAC4BcTjcaXTaXm9Xt11112jXQ4AAAAAYIi4TgQAAABgsDJxnYiA3zXE43HZti3btpVMJke7HAAA\nAAC3kHg8PtolAAAAAABuAteJAAAAAAzVcF4nIuB3DZZlybZtmaapQCAw2uUAAAAAuAX09vbKtm1Z\nljXapQAAAAAAbgLXiQAAAAAMViauExHwuwav16tkMqlAIKB58+aNdjkAAAAAbgGNjY3q7u5mfBMA\nAAAA3OK4TgQAAABgsDJxncgctlsCAAAAAAAAAAAAAAAAAADDhoAfAAAAAAAAAAAAAAAAAABZiIAf\nAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAA\nAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAA\nAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAA\nAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAA\nAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZ\niIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAf\nAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAA\nAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAAAAAAAAAAAABZiIAfAAAAAAAA\n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\nx0mn0+Ie4E2iP6V7YiwWw3EcVaPbb7+d4eFhenp6GBoaIpvNMj4+ztDQkDqOz+ejurqasrIy9u7d\nqxwDJ7v3TX4sm81y7do1Ojs7qa2tpaamBp/PRzAYpKysTIFz1dXVpFIpIpEIsViMsbExDMPA5/Mp\ncM+2bUpLS9m8eTN79uwhlUopcHI6SeewyW3Mb6vf72fjxo1cu3aNrq4uNZflNUTWqaKiQsXrptPp\ngmNPV+uxsTEFatbU1LBgwQK1nYQSM5nMFEiyubkZ27aJRCL09PSwaNGiWzqTer1eFZVs2zZ33nkn\nDQ0NVFdXMzExwalTp1i5cmXBnJTQVyAQ4A/+4A84evQoZ86coa5O3LNtaWlhw4YNBXXKVz68FQgE\nSCaTZLNZTp48qeaFjMXt7e3l8OHDBfs3NDRQW1vL+fPnGR8fx7Ztnn32WdasWcP/+B//g0uXLlFf\nX8/DDz9csN/g4CCBQID58+fzb/7Nv5niNJh/HZP1XLRoEf/23/5bfvCDH2CaJm+88QYej4ePfOQj\nPPTQQ2qcpWOez+djxYoVvPHGG4TDYZYvX86WLVvYvn07x48fV/2WY3vvvfeyadMmmpublePes88+\ny5YtW1R75NdkMkl5eTmPPfYYjzzyCC+99BLXrl3jU5/6FLNmzaK0tJTZs2fT2tpKaWkpL7zwwhTH\n13x4Veq2227jC1/4An/5l3/J3r172bJlC/G4SE3LB1J1XWfjxo289tprtLS0sHz5cnXtklCcZVm0\ntLSwa9cu+vr6lGumfF6KxWJks1mqq6v56Ec/ytWrVzl27JiKJpduk8lkcorrY742btzIb37zG1pb\nW3n88cd58MEHeeKJJ7h27RpjY2Ok02lCoRAVFRVUVlYSDofVdbqyspJsNsvo6Cjbt2/n6aefLhjz\nm62XVCqlIo83btw4xQlWOikmEokp+xZV1O+qDx3wmzt3LosXL6ajowOA06dP09bWNq1zSTgc5qtf\n/Sqf+cxn1MUZpl+U+b8zDIP/9t/+GzNmvD93taL+/ynbtvn+97/PocMtJE2NwMz107reeUI1JIcv\nCTDAFhGPDvx+kJ+T/WAbP428Xi8vvvgiCxcuZMeOHfT13yA9cprEwEkcy8S23TZoHuW8lLVBuN5Z\n6L4Q3soFeMpmY8VvEB+5wJVr1+m7iQOUVH608cDAAJ2dnUSicRxPSIA9Jc2F7leOk3MTS1wXEFi8\n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\nHgjgznWYbL5LAGjpQSgWYTZdAQ465XoaERG7XJoV/Tx9srq7pEsZbvRy050V48pXPqavHurXCxe7\n+YsQWVGG+ZruEDCeGpO4zoiVC4FTAUimyhGuvpgYU8F2ER+cmxDw68Tr0LhROPkpV8IF0cCuyyR2\nSQB70T4WlccLHbtg7FUBf00dgtnTAigMtrljsijaXwK9IOZrbIVwidN80L1LxEwn3xIg2dWfguNB\n0yy8dUvFBykzl0U9vfEy+CvHqfytu46djiXWFjPjzod2lHukGt4eoCTmLOKGzzAM8URUuANnLoiV\nnyM/eRI7P4tdmAfbxKN5cDxhiN4CgVZ0XYPSPPbsScLhAL/2a7/2vuC+UqnE3/zN33D48JvkCia2\nJ4SvcSW+SDsl0yGfTePkJ9HSV7GtLKXpi8JE0syIOkYqQHbdg6b5cawCxWIRLT+JU0pXwL2ui2sl\nDFs5jipvmCSsa6bFnM5cEVCeZqAl30YD/E23Vt1kOY5Naf4aVi4hIuADfmzHpJDuxylZ7lN1jgvV\nWmKdi6/EiS5TH2D5/f5FHXQr9X6h9Jpqqqmmmmqqqaaaaqqppppqqqmmmv7lyO/3X+eCJzUxMUEy\nmSQYDNLd3b3oNvl8nuHhYfL5/HVOafIzKsuyME1zUScqGXcZi8U4fvz4TcEFMmYwl8uRy+W4fPky\n3/72t5mfn0fTNBoaGti0aRPRaBTLshgaGuLEiRO89dZbKiZUwiSVn8dJcFD+XcZ1Vrr9SZDKMAzl\n1ifLJKEoCR7eyAFwodLpNBs3buTw4cM8//zztLW1cd999wHw/e9/n4GBAZLJJAMDA1iWteAzxPJn\n26ZpKqe3VatWsWLFCgUyye+rpDOeBHl8Ph+xWIxoNEpzc7OK8lyxYgU7duzAMAx+4zd+g4GBAV5/\n/XUymQzz8/Nqf+k+5vf7+b3f+z3eeecdTp8+TTKZrIpelRGn0nkum83i8XiUG2E0GmXdunXccsst\n6LquxoosTyXkp2ka9fX1xONxxsfH+fSnP82OHTs4f/48586dwzAMBUOFQiF6e3sZGBi4YdxyZR+u\nWLFCQZvSQTCRSNDV1UVbWxvhcBhAQYuNjY34fD5M0+TKlStcuHBhUShUtpVpmvT392PbNkuWLOHp\np58mFAqpdl2sjOvWrePtt9/GNE0VLR2LxRQ8aZqmApQKhYJyU6uMSUwkEui6TktLC1evXuXkyZMY\n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\nHQEciURoa2uTcZW2O6MdfXv27Fl6enpkX0HANVOmTMlK5Mp08hvOjc/e314vNnCTl5eH3++X8+j3\n+6WTmd1Wj8dDRUUF48aNo7e3l4MHD8rY0mnTpkno1AbNAOkQmAkhmqZJLBaTa9Fea7Zrmx1papom\nPp+PW2+9FVVV5WO6rtPd3c3zzz/PK6+8gtvtprKykvvuu0+CSnb9duSq7cx27bXXEgqF+PWvf83q\n1atpbm5m1qxZzJo1C4/HQ25uLoqikJeXx5e//GXGjRsHCAju9ttvZ9myZezZs4ef//znJBIJCb15\nPB6uvfZaVqxYwdSpU2lqauLRRx8lHo8zduxYli5dSklJCb29vRKcbGhokHOdTqc5ceIE//qv/0px\ncTFLly5l2bJljB49mnvvvZdvfOMbrFmzhmg0yi233CKd3saPH8/EiRPlPK9evZq6ujpmz55NeXk5\ngUBAjn0ikSCZTKIoipxrWx6Ph3e/+93813/9Fxs3bmTVqlXyONu1axc7d+6U0bL33XcfhYWFcj1p\nmoZhGBL6zHRlKysr45577uEHP/gB69evp6amBkVR+M1vfkMkEqGgoEC6bdbV1UkY1B4Tl8vFnDlz\nWLp0KbW1tezZs4fNmzezePFiwuGwBGHT6fSQGGx7PkG4utnx46FQaFhXUBtW9Xg8pFIp2Z/e3l4J\n4jU0NLBmzRoqKiokDP3BD36Qrq4u1qxZw549e7jzzjuHhads90Ofzyfnwu12k06n5bVh6dKlfO97\n36Orq4vS0lKuueYaVFVl2rRpHDt2TLqpDeewmqlYLMa3v/1tenp6qKysZMaMGezfv1/C6Jnyer28\n4x3voKamRqQIXqWKior4yle+QlNTExs3bmT37t0yftnu46RJk5g+fboEqIHLQoVut5sbb7yRV155\nhY0bNzJt2jSCwSCLFi1iy5YtbN++nfe+970AHDx4kO9+97vyHD179mwWLVokY8/b2trYvHkzZ8+e\n5dVXX+WNN97gs5/97FVHHv+pav/+/bS0tFBYWMhnPvOZEeG+TJWXl/O5z32Of72wsa4AACAASURB\nVPu3f2Pnzp3cdtttlJaW/i+09o9Hbwvgd6XOfG+3g5/P5+Pmm2/m85//vPy2iiNHf25SVZVVq1ZR\nU1PDkSNHJAQRj8cJBAISgpgxYwa6rvODH/zgqmLudu/eTWvbeQxXEE/e1eXcZ7oW5eeJF5ceX4A0\n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\nzJfelqCU875bqgw8k7CVpou6oejqpk7R7TZXwNAuAbKhifrC84r1gj03moh1NXMC3pNwn+4TUFZ4\nHsq9TypQI8YhPSQiaZO9RUe8/BRkhyFYU+bMKN38HHBlesgB5uWhkLGBSa8A3wpJGDsuyvVWiOPG\nTgjHPssS7nkDbwjgrFy5SQF5SkCxclnxsegimDoHuSl7DJyAnS0JG2qaqK9isaMPZfMDAooDqGwX\n14mKdkiPQqoPhnaL/euNijrTwwLG1DyAve4lrAfifgmyYhbrTYkPifBG7XZ7RGyukS265zlBSllG\nvEv8XdFWbK+qz9GfSIsANgtJMTeRecUx0P1iTpLCVpqKxcWxY7Z5BtIjWBIGjMxHOQKaJpZpoJV/\ncKd5ivdVLsKaOo9pxjFNk29+85sqctz0hPHX3YY/2oTm8WEZeQqJQZLjnVy73s/N736fq1ev8vTT\nT7/vF9CmaSrn02TWwqq/T1xrNI8DikVEHFfdLpw7x45DagBrDHL1azGzk1iDvzrwmxs7+8H1YTsp\nunLlypUrV65cuXLlypUrV65cfRBVVFSQTqcZGhpiyZIlH/j84eFhVc4vSxUVFXzhC1/gL/7iL5iY\nmKCzs5P6+npqa2tLvjc1TZNYLMbY2BjpdJpIJMLnPvc5li9fXlKeZVm8+uqr/PM//7P67rW9vZ2W\nlhYF0Fy8eJFLly6Rz+cxDIOJiQkymQymaeLxeKioqCAej9PT08MPf/hDNE0jGAzy+OOPc++99ypY\nJRKJ4PP5ePjhhxkcHGTXrl0cP36cF154AcMwiEajM9oHcPbsWb72ta8xOTlJIpFgdHSUZDKpygOU\n81h1dTU1NTX09PTwJ3/yJwD4/X7uvvtufud3fgdN05RDl2zX8PAwr7/+unLfk8DQ2NiYclwzDEM5\nnN3KGW56epr6+nrliCedq8oVCARIJBJMTEwQDodZv349O3bsIJ1Ol6wtJzwm656YmEDXdQVwSUDI\neV+5bt68yaJFi4hGo8rtLxKJKAcwCfc5IQvpmBcKhdT6kji4fNsAACAASURBVC5m0tmsqqoKj8eD\nruvk83kGBwdndRLM5XIMDg6i6zonT55k8+bNPP300wrS/PrXv05np0i96e/v58qVK9x2220KpEql\nUgr2k/Gpsq2VlZUlznG3kvy+To6VpmkK8iqfJzmm7e3tDA0NcfnyZdVP57HldRqGwejoKGfOnMGy\n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\ncnKS+vp6rl+/zv33318CiMnvrHRdV5CUTHJzgh2pVErBRVKyTl3XFaRWHlsrJWNC5Xwmk0lM0yQU\nCtHZ2YlpmrS2tpacM2/ePC5fvkxlZaX6vls6sJVDa8AMQKympqbESc2p6elp2+ShikWLFvFf/st/\nob+/X7mkSac46cqm6zqRSIRsNqv60tLSQjKZvGXssbPfMoa1qamJaDTKb/7mb9LT00NnZyfZbHaG\n058cSzm2sk9OMA2KTomWZVFbW0skEiGXy3H69OlZ16hULBbj3LlzLF26lPnz5/O1r32NP//zP6em\npoZUKkU+n+fcuXPU1tZy//33q/qrq6t57LHH+P73vw/A1atXaWlpoa6ujsbGRjU/Pp9PueEtXrx4\nRr9krPXtt99OW1sbpmmSTCZnJBNKqEz2cXR0VD0mnSf379/Pxo0blcOaBCHlmnAeL9e+nLNUKsX4\n+Di6rnPbbbep8XTuL+mwJx0fx8bGALFPTNMkkUiQSqVK9pU8PxwOEwwGSwBEGcF9+fJlDMOgurpa\ngaPlLoflksdIyDQWi1EoFFizZg2WZeHxePjkJz/JX/3VX9HR0cHIyIiKmB4aGiIajfLUU0/R3d3N\niRMneOONN3jzzTdZvnw5c+fORdM0JiYmOHv2LJlMhv7+fi5cuMDKlStL9r90rJSw4Ze//GUOHDjA\nvn376Onp4bXXXkPXdQWmyj11zz33sHXrVurq6kgkEgpCbmpq4umnnyaRSNDX18c//uM/cunSJebN\nm8f169eZmppSjpPvJRk1DgIMv3DhAgAPPfSQAqYLhYKCbLds2UJHRwfvvPMOq1evprKyUq016Xwo\n57KtrY2FCxfS29vL4cOHufvuu4FSqPdv/uZvGB0dZeHChTz77LMlLo5O6DSbzeL3+3nyyScJBoPs\n3LmT69evMzY2xqVLl/inf/onQLhc/umf/qlqVywWU9BjW1sbbW1tfPzjH+f555+nu7sbn8/HV77y\nFerq6giHwwo+vOOOO3jsscd44403+M53vkMulyMQCHDnnXfy4IMPUl8vDCpGR0c5cOCAci5NJBIl\ne86Vq19XfaSAX01NMRLRsizOnj37odchM87lk3Ft7c+PVXXl6lby+Xxs376dpUuXsnPnTm4ODpEd\nP0N65LQCrDwejYjPQ/OC+Wzbtk2Bcr8onT17lp6eG4Ln8ASLwMVs4FT1Mkj2Y40eJz/VA1gYepCb\n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\nc/jwYSMBS5IkkpKS2Lp1K1u3biU+Pt4Yfv369VRWVrJ///6o6mIjDA4OommasV3GEgh1XScQCISf\nEanDX9Y3mUyYTCZD9hqLhoYGnnrqKXw+H1dffTVf+tKX0HWd559/nsOHD1NVVUVlZSVWq9WoeR0c\nHDRSzZYuXcqePXvIyMiYdH0iy3cpL4xHxo1Upo6kvb2dlpYWYmJiWLVq1ZSnn5KSwrJlyygvL6e8\nvJwNGzZMOPzJkyfp7OwkOTmZT3ziE1Oe14oVKygrK6Ouro7PfvazU17euXPn8sgjjxj7ZEVFBQMD\nA7jdbmP/0TTNSG9UlAvPhkbsS3Fxcdx88828/PLL1NXV8cILL3DVVVcxd+7cYTLm4OAgFRUVlJeX\n4/V6SUhI4KGHHopabPyg4HK5WLduHYcPHyYlJYV77rmHQ4cOUVZWxuDgIPHx8bhcLiwWy6hzTOT5\npMViGXbOkmWZjIwMGhoayM/Pn1DwixyPU63sjhBJWPX7/XzmM5/h+uuvp6ysjJMnTxqVuzExMSxb\ntoyVK1fS0tJCbm4uR44cITY21khx1DQNm81GfHw8V199Nbt27WLBggV0dXWRm5tLYWGhUeU8lGAw\niNfr5eWXX2bbtm0ixU8g+AghBD+B4EPEmMLQyEQoRcJpVsiYlUVOTs6005suJfns/UqP0jSNffv2\nkZubS0trG/6giqrqF7fNmWqKS0rJmJHOrl27jDdctmzZQnFJKe6u01hTlk5JOtO1YNjZk03DfnDr\nhOs1wzHQGnrkwwuEJJVAIICs+kHTxhXixpIsLfHzCDhP4e+svJhs1vOuMY6k66AFkGS4eu2GKSUp\nXkqaIYS3BxfePBuPK5ESGOFKyoRjIcuycRyOFLzq6urwBjQkSUc2KUiShHxB/DSZwxXLF5dFwjFz\nMx4IS37th0FxgHM2xKSj+rTLLvi+n0S223PP/Tfu5iKc867DOXsb7roDBAJupNhsGKtOW9fC1cZS\n+IbS8G0Y/fd5uUVXWZZZvnz5hPPctWvXsH3k/Pnz9PUPINtTsGdeExa5L4h9/s5K/J1V4eN/5IS8\n3QR7a5FkBY83wMGDB4XgJxAIBAKBQCAQCAQCgUAgEHwEcDgcPPTQQxQXF5Ofn091dbWRhjaUuLg4\ntm/fzo4dOyZNOBuPoqIi+vr6iImJmVTuiyBJEkuWLKG/v5/u7m6OHTvG+vXrpzX/6dDT08Nvf/tb\n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\neOaZZxgyZMgNWefNoKOjg8LCQqDnAU2TyUR2djZvvPEGmzdvloCfENcgAT8hxDX19+jTm5mu65SU\nlISb5EJveEJNchkZGTfd83QzNbXdCJFuL7tRAcpI3k/oPFdVFV3z4jq3HXdAxWxPwGq1YraY6eot\nXH+14kl4OXIKCgrw+jWsCRN69P0APg28JkzA2xj8VJ8E/IQQQgghhBBCCCGEGHiWLl1Keno6Gzdu\nZO/evRw4cIADBw5cto2iKEyfPp3FixffsJDOQNfR0cHOnTvJz8+nurr6stumTJlCdnY2t912G6qq\n9tMKe2bYsGGkp6dz+vRpCgsLr9l69nkFBQVomsa0adMYPLh711IGuoKCArxeL5MmTbpmuC9EVVUe\nf/xxzpw5Q11dHYcOHeL2228nNjYWu91OfX09eXl5TJ8+naSkpG6vpb29nf379wMwceLEq247e/Zs\njhw5Qn5+PllZWT0OE+bn5wPB8ocPPviALVu20NLSgtfrxePx8Mtf/pJvf/vbZGRkYLVaO72momka\nb775Jps3b0ZVVR577LEbeu0lNzeXqKgo/vCHP4S/p6WmppKWlobVasXtdlNaWkpraysQHEv87LPP\nkp6efsPWeDM4ePAgPp+PiRMnkpqa2uP958+fz9q1azl+/Ditra3h0KgQ4koS8BNCdEt/jT69Wem6\nzqZNm8jLy6O6phavX0PTjM8CkSfLKCreTerQFHJzc8nNzb1pnrebramtr0WivexCVTXr16/n/Pnz\nlJWVEfB2oF0oQutowJowPhg468abq54EKCMV1LTb7Xz/+9+nuqYWjy+ArhtgdKBVbUUbPB2fIxXV\nbMFms2K12cJBv4HQiifh5cioq6tD0wyszqG92t/sTMVdd5C6+sQbxAAAIABJREFUuroIr0wIIYQQ\nQgghhBBCCBEpaWlprFq1itbWVnbu3EltbS1utxubzUZiYiILFizodHTvF5Gu6/z5z3/mo48+wufz\nAWC1WomNjUXTNC5evEhpaSmlpaUMHjyYb37zm9x22239vOruycnJ4fTp02zcuJH58+djtVq7tV9H\nR0c4FHarTMjRdT08WnbJkiU9CslZLBays7P54x//yJ///Gd2795NcXExLpcLv9/PmjVrcDgcjBs3\njuzsbGbOnBkeh9vQ0EBFRQUdHR1YLBYGDRrEuHHj2LFjB4FAgIyMjGs2zM2aNYu33nqLiooKysrK\n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\nJE+tEEKIu2a320FRMLTQtMYbeggUBYfDMekx8+nI1PkY5zs7z3V0dhEIhtH/2HgOk3KRNyqryMrM\nYP/+/dPuPDd+BPXzz7+Ap6sK1RaL6ki44zjNN4S/6wROm5n9+/fP6N/BTHTd03WdgwcPUnWiBl9I\nwZ5ZgCVu2Q0dCs1RSdiS1xMabcfTVUVlVTUATz75ZMR+/+bieRNCCCGEEDdnsViw2Wz4/B6Cfg82\nx9Rf4vs8oyiKMukFAF3XaWhooLS0lDO1tejaWKGTokBCQgIPPPAA999//7R388+Uzs5O/vCHP1Bd\nXY3PF0DTDcaqzMYW7g4fOULeqlUUFxezffv2Gf3+HA6H+bd/+zeOHTuG3x8krBtY7dFY7A4MXSfg\nu0btuTrqGy6QmLCET33qU2zZsmXKn6MoCn/1V3/Ft771Lbpba1EUhbyNhSi3mYt7tJ/ayhdBD7Jp\n80Z27NhxN1O9jq7rvPjii/z+5ZcJv911Lz4xi+i4ZEyqmWDAy0B3IxcuNtLY1Mzvf/97vvSlL5Ga\nmnrdfY4fP87LLx8mGNLJ3/7npGbevCufophISsslMSWbi7Ul9LSd4/vf/z7//b//90kv7E1VbGws\nigKeawPTGh/wuwkF/VgdFpzO6XUBFEIIIYQQfxQTEwOMHbc6XQMDY9/tJpsT+f1+Tpw4QWlpKZ2d\nndf9bMWKFXe9kWcmGIbB6dOnOXr0KA0NDTe95sUXX2T79u08+OCD5OTkzOjn9/f384Mf/IDGxkbC\n4TAmk4n4+HisVivBYJCRkRGOHTvG8ePHWbVqFZ/5zGem9R0+NTWVD37wg/z2t7/l9OnTbN68mbS0\ntNuO6ezs5Pz589hsNh577LEZLXJ0u908++yzXLp0CV3XUVWV1atXExs71jl/aGiI5uZmqqurOXny\nJPfddx+PP/74Db8rzz33HI2NjROdN2+1nmI2m0lPTycxMZG6ujra29t59tln+epXvxqxNaLY2FgG\nBgbo7u6+IZebjK6uLuCPz64QYuGQAj8hhBB3LSUlBfVyM2G3C3NU0pTHh93dqKoyqeRhPh6ZOt/i\nDIVC/PCHP+T4G5UEgjqGOQojdjXYUsBkxtDD6IE+NHcrl5vaaGv/MZcvX+aJJ56YVsJbXFzM5cuX\nqTpRg6flVewZu25aDAdjnRJCo234u07gsBjs3LmDoqKimZg2MHNd944ePTp2j5CCM/eh2xYtKooJ\n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\n5AgdHR34fD7mzJlzVQcwVVWZmJhg//79vPzyywiCwFe+8pV09KzJZCIjI4PZs2ezefNmrFYrZ86c\n4ezZs0yfPp3x8XHGxsYIhUK4XK537dNTbnCBQICsLCPZ5+MQlawoCv/xH//Bvn37MJlM1NXV8bWv\nfY0vfOELLFiwgLlz51JXV8fmzZspLy/H6/UyNDTEkSNHmDNnziTnuUOHDuH3+1m5cuWkr2uaRiQS\nIRgMAsaY51r1lQLajh07xksvvcTbb79NY2MjJ0+epLGxkQMHDnDixAnAAFJS7/d5eXkEAgFaW1uJ\nx+PpDTvXC/hVV1eTmZmJJEn4fD5aW1sRRZFNmzbxyCOPcMsttzB79mxmzjTGfjfffDO7du1ifHyc\nzs5OBgcHkSTpmgCnqqppoNLn81FTU3NVx7BoNMpbb73FwMAAPp+PRCLBhQsX2L59O2fOnMFsNlNY\nWIjf7+eFF15AkiQeffTRK+6tVORwCsq7/NqCwSCNjY1kZmby13/91zgcDmw2GxaLZVJ7CYKQdnYU\nBAFZljGbzXi9XgYHB5FlOR2hmhr/ms1mVFVFVdV0FHB2djZ+v58jR47w0ksvcfz48fRzQ5IkHA4H\nLpeLQCBAd3c3mZmZZGRkXLUdfT4fBw4coKurC4vFwuzZs9PXs3z5cn76059y9OhR4vE4ZWVlrFq1\nik2bNlFfX099fT0VFRVp0M/tdtPY2MimTZs4deoUPp+PoqIiMjO8Zxc+AAAgAElEQVQz02Wy2+2Y\nzeY00Jf6k3Lx8/l8NDU1kZOTw+OPP57uf1JRtrquoygKpaWlnDp1Co/HQ2lp6VXnSHRdZ9u2bZw8\neZJEIoHX66WmpiZtbmE2m6e8z1RV5bXXXmNiYoK6ujri8Tjbtm1DlmW+9rWvceutt5Kfn5+Osbbb\n7YyPj3Pw4EEKCgrYuHFjusxAGvJMResODQ3x9NNP09bWhqZp1NbWctddd3HrrbdSWVmJJElEIhG8\nXi8ejwdRFLnnnnu4884705+vS0FRWZYpLCxkxYoVTExM0N3dzYkTJ6ivrycjI4O6ujqCwSAdHR20\ntrayb98++vv7GR4eZtu2bcTjcb74xS+SmZmZNgBxOp3p+n/nnXf4+c9/TjgcpqioiNtvv52HH36Y\nW2+9lRUrVrBmzRoWL16MKIoMDg7S399PS0sLS5cuneTo7fP5+PWvf40gCDz66KPvK+mpqKiIXbt2\n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\nVx77lZQSCOM72UJuZtYV9zP+EPWHNI74QzqWD7KS94kzZ85w6tQpDhw4QDweJycnB5vNhqZpeDwe\ntm7dyo9//GNaW1uRZZkvfelLFy0mvlINDg7yve99j1dffdV0cSssLCQ3NxeXy4Xf7+f8+fOmk1NZ\nWRkpKSnX7JivlZIOXr29vRw9epT8/HxycnImHSd6PB6effZZ9u3bhyRJ/P3f/z1FRUWTbPVitbe3\nm2DM2rVr+drXvsbixYtNByswQKmCggJ6enpoaWkBjEn+RYsWsWzZMhYuXEhBQQHDw8MMDg5y8uRJ\nDh48yKJFi66obt1uNzt27GBoaIjly5dPAIFeeOEF2tvbOX/+PKFQaNLj1zSNcDhMMrIzGAwm0pR0\n0tPTsdvtZGVl4fP50BN9yamUBIiSMaJTwXsZGRlYLBY0TaO7u/uqFsQmYTir1UpeXh6iKHL69Gks\nFgv33HMPGzduNKG0SCRCKBRCURTsdrvZBw4EAng8HgRBoLe3l/r6ekRRZGBggHA4THp6ullXSXAp\nLS2NDRs20NfXh8vlIjU1FafTicPhwOVykZ6eTkFBAdnZ2aSmpuJ2u5EkiYULF5KWlobdbsfj8eD1\nerHZbGRlZV10XBf+W1EUE0RrbGxkZGSE5cuXc8MNN5juZMmI3mQUq6ZpKIpiRqGKoojD4cDv99PR\n0UFWVhaLFy+mrKyMwcFB+vr6WL58Ofn5+UiSZI4VrFarCVcmgcELlZ6eTm1tLeFwmNtvvx2ArVu3\ncvbsWSorK6moqDABP4fDgSAIKIpCZ2cnTqeTJUuWkJOTQzgcJhAIIIriRe5gkiQxc+ZM8/tJZ7/k\nsSbhw/FjCV3XcTqdZrtPPrMWLVpkHofD4ZgU6gyHw2Z509PT6evrIxAIUFBQwO23305VVRUpKSn0\n9/ebEbN5eXmsX7+evr4+6urqOHToEIcOHeLEiROEQiFKS0tNSK+pqYkzZ86Qk5PD9OnTGR0d5eDB\ng2RmZrJmzZoJZamtreXcuXNs2rTpslHt5eXltLa20t3dTW1tLdFolGnTppmxucl7idfrpaamhp/8\n5Cd0dnaa14rVaqWgoIC8vDwCgYBphBAMBmlvb0eWZdauXct9993Hxo0bmTt3LrNnz2b+/PmsW7eO\noqIiRkdHGRgY4J133iEvL48dO3YgCAL3338/o6OjbNu2jV/84hcMDQ2Rm5vLV77ylQnw39UoGYG9\n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\nLkXX9QCu8tuV//10aGioDMirra1lbGxszvLMlRs/amtrg7Ybj8cD9S4fQJMkiba2NqqqqtB1HU3T\nmJ6eZs2aNbS2tnL27Fn6+vooFArkcrkASJzrnKXgk59nH6D04StfQdKH03y4cbayZC6Xo1Ao0N/f\nz+OPP45lWdTX11NXV0c0GkXTtADWTSaT1NfXMzExweDgINPT0xw+fJg1a9YE/UzXdRYuXEh3dzeO\n4zA9Pc3IyAgVFRVlZcvlckFf8BeZDAwMBJBfbW0thmGQz+cDG2BVVcvA3tL26tv7+nnzQVsgsOs9\nevRo0Gbr6upYuXJlcP5oNEpVVVVQpnQ6TSaTwXVdWltbufvuu9mwYUNg/+uf099f13WWL1/Oo48+\nype+9CU0TWPNmjV84hOfIBaLBfa1/j7JZJJNmzbR2dnJrl27+OAHPxgoeM5W2fRVIH2VxFwuR1dX\nF8VikbVr19LQ0FA2/tm2zZEjR/jxj38cjCXFYpF8Pk8mk+EXv/gFr7zyCm1tbcTjcfL5PMPDw0xP\nTwcKfLIsc+rUqQCAy2azfOMb3+CHP/whd999N3feeWegPnfLLbfw7LPPcvjwYaampkgkEoGC5djY\nGF//+teZmJgAoLW1lVtuuYXaWvEO8dxzz3H8+HH+4R/+gS1btrBt2zZWrFgRtA9fhXLv3r28/PLL\njI6OUlVVxWc/+9myMUbXdT73uc/xzW9+kzfffJNnnnmGl156iXXr1lFXV4ckSZw6dYpLly7R2trK\ngw8+SCgUKgPvZsepU6cYGhqiqqqKDRs2BHlUVZXbb7+dAwcOsGvXLn7jN37jCit2v978+1PpvWDP\nnj0YhsGqVauoqakJbMJhBnK/5557OHbsGNFolE2bNnH69Gmy2Sy+euq6devYtm0btbW1HDx4kO9/\n//vBQoDSeO6556ivr2f79u1s3br1He/d8zEf/7tiHvCbj/9U8dprrwnlPlMi1v5rKJGrS6rr4Qh2\nVTuGVoE7vBtj8jxKtJ5w3eortn0v1n6O43D8+PF/MTBQKBTAdZGUq6jbXS0CnkUVOJmvKAcQaULS\nYrhmtsQq0gNfXM/iUrnKy6IH80laBW64sUwBSkqswC29cetVUOtZlk6fgQW/jlQYFQpxI7uhej3E\nFwn4ypwuURT0ZjhK1cQkZUapL0iqB3z5MJgxCcM7ryyzOS3KPVu9TZIEQDN5VMAusbaAa8K1IHsB\n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\nxjZMH8AMVMVRls0ltKyZ5LbD5Dv7CdVVYaSyWNk8jqYSaJqBEpTf144qn2nG4DjG+QtY2QLmaJLC\n+QsIIahYtZBYS7OfdyubZ/DFVkRAJ9JQQz6fl/Nvtu2O1VL5JOgu4JVJdHq8pSrcIpG/VwI69e/Y\nSO8vt2OOTjL8s62EFjYSXj4Pvb7KP9EcTZI720v+bC+OYaKEg1TcdCV6dUK2kdJQQdVVHNvBDMlv\nvzNnznD69GlaWlr8w/bs2cMTTz1Jxjaof/sGYotm83oRnFFF/S3rGa+tYGzPMR588EFmzpxZBuZP\nx3RMx3T8vkY2m2XPnj2YplkG372VCIVCNDc309fXR6FQ4NSpUxdZ982ePZsbbriB9evXl0EXu3bt\n4gc/+AGpVMpX6ytVTgN89bNUKsX+/fv56le/yl//9V/7do1LlizxAZm3atXrqXCV2ogmEglisSLA\nPWfOHG699VaefvppAN+6MRgM+vCQl04hhLSWj8X8+3sWl6FQiGXLlpUpFk5VrKuoqGBoaIjBwUEA\n5s6dy8qVK2lra6OlpYXDhw9jGAaqqtLc3OwrQ3kAUular2dL6ymEVVdXU1VVheM4nD9/vkxpDPBV\nz8bGxqisrPSVqqbaPHq2rxMTE/z85z+no6ODiooKPv3pT5PJZPja177GyMgIH/nIR3jiiSc4d+4c\nyWQSXdd9tUcP5PIUx9asWcP4+Di9vb2MjIz490okEjQ0NPiqZ6qq+papXroaGxtpamriwoULdHd3\nMzg4yD333MPnPvc5lixZ4peJB8mk02m2bt3qK7u1traSy+U4fvw4+/fv92Gr97znPUxOTrJ9+3bu\nvfdevvCFLzA+Pk53dzfRaJS1a9f6Vp6lSpOlwMysWbNobGykp6eH7u5u6uvry8DEbDbrKyqqqkpL\nSwvZbJahoaHXbbPet3R1dTVLl8p56PHxcerq6mhubqapqcmHVD0b5I0bN9LQ0OAr9z3//PNkMhlO\nnjzJ4sWLqa+v58KFC4TDYSzLIpPJlPW9qcp+3u+8vHh16wFFXpkAPnxaqp7nwUqltrUeUOWl27O2\n9tJS2gYrKyuJRqNkMhm6u7t9mLO3t9evY8CHWT0Q12u7Hgzl1bUHtKbTaSKRCJ2dncyfP98/1oP6\nTNP0x4ypKpOWZZW1g9LzPKDVu38ymSwDC5PJJLFYjDvvvJMf//jHNDU1MX/+fEzT9K/pqYF6+fLu\n6ZXN4cOHURSFzZs3++Ve+tNL36lTp/jhD39IOBwmEAjQ19fHP/3TP3HHHXewdu1av2w8AFdVVfbv\n38+TTz5JZ2cnuq7zmc98xq+73t5evvOd71AoFNiwYQN33XWXb+laWkaVlZW8+93v5qabbuJf//Vf\naWtr46GHHvLVN//yL//SB+g8UDKZTBIIBNB1ndWrV7NkyRJ+8IMf0NraimEYhEIhCoUC0WgUy7J4\n5JFHeOyxx8hms2iaxsjICE8//TTXXXcdNTU1ZWMiyGfWwoULmTlzJrfeeiv33HMP4+PjrFq1iqNH\njyKEoLa2lsWLF5cB4KZpcuTIEbq6upiYmODMmTOcO3eOQCDARz/6UZqamnxlzWeffRYhBFVVVSQS\nCd8OuXTs9xQdvTIt7TtefZeeM2/ePP7iL/6C7373u+zatYujR4+yefPmsnzats2JEyfYu3cvx44d\nw7ZtlixZwl133UUikbjIFQSkEqFpmkQiERzH4dlnn+Xtb397Gej/wx/+kHPnzlFbW8tf/dVfMWPG\njIuu46V57dq1LFu2jPvuu48TJ07wzW9+k3/4h3+YFoKYjt+b+C9b9P5n7HSmYzr+V8TOnTvJGxaB\nmsUXLdq/UQhcFb26pZhDh6ivrWLGjBkXWfstX778oo+B3wUwsHnzZl7d20p65BTBGcvfcto1XUNR\nwEp2ALYEt2wT4UM9oqiml+qWYJEWkSBNcAZyNtsFqlLnXBU1A4G0jhSAo0URFUukulzJrnCQp/tb\n/MMzgdekUpV378RCmDgp7WJsw53vNHB8QKvShY5KFM9K1bdAQkqjhyUwVXUZxJspW0nzE+Le01dK\n2yqhmtBZV+FLSOjEscGFRhTHRK+cS6BmCaZpSUhnaC8oOnplA8Z4J87gK1KZK7EAJ1hbhLjsvLTt\nHHxliqJgABxXUbDMInO2qyiolduyVi2X8FBagolOqlvmqm6jC2uCpuko+SHyo6ch2QmOiTHRiTl5\n3l9sENhoukZFRRW2bdPY2Mi6dVey59VW0h3PIvR4iXWma7HpWBJC9GyQPetWD+aKLZQwXqYXBndB\n9eqiOpkqZP61BBSGJWw1sLUIW01VYMOt28z5EuCxEUIzYeKkVDPse6EISoJrt7xYwmuOIX8O7pTt\n9cLLEoBKLJHAXrpbquP5imeuSqUHRLn5JdPvticbhCNBz8hM9xDbBee89qRKpUQXICrCdhQtowOu\nwqMScPPsLdB6izlaeTuNNLmqhWnI9hdBV6/fhNwdIIoq4UunZMemr7ZoF+vLK+dwPYyVXEe493Xc\n9NgFipa1Ci6l6/a38jxL9TlXiU3RJeRnFUqsfoVvFU3ynPx3fAGMn5DgVcSDiEvKHu+vTvnvEC7I\niWwLpb/31PocS6Yx3SHrWQ1Ii+mJU1LNcWofFK56XvYCJM/IMrENeV7tlcVxLHnahft0aNgiAUwr\n5/c7mWY3rYoC8TkQiOP0bcUYk/ZWqBFEw3U4HlztZbRUDRNFqlvqcRjYjmOmEZYJioJQgzi2JUvE\nGysU14Zs5ICEX+MLpWWylyZFQ6juGCIMiM/H0SKI4b3SQjwcx8n0SYhYDUhAVmgyL9l+CZMaKRdC\nNSVYKxS0qvkEapa42bYpjJzyVV3SmTy2mipWoRul6nnBYKD47HFK4M6SYgSBU325XCHO9BbrLuFa\nEKPK9pAfhlQnjlcmkVmIuqtde+rSkACtUDSwLali69h0dXVdNBH64osvShDfEETn3/KGCr9CKAQq\n56IGE6Q7nmXPnr20tLRw4403vu450zEd0zEdvy/R0dEBToF1K96ael9pKEJh4ypo69RoWbKKdevW\nkcvlCAQC1NbWsnLlyosmspLJJN/4xjeYGO1lSXOWv/wfBd8StTQiIbhpvcX1V1r86EmHXUeGue++\nb/PFL37Jn8C//vrr+cm/dbBtX4H1K1/farQ0AoEAuWyOvccjpLIKzQ0ms+tNDFPauwI01Zn83x8a\n5d6fVXGyM8hXHpzBvEaDK5ZmSUQtFAGDYxq7j0boG9IoGFLVLxJ2COoOVy1L8/YNGWbXF9/LhLux\nR06SAo5keIIBh3xBkC8IIiEXqrMFXX0CTQsxd+5MQqEw7WdP8oNfVfHR946yuNlwbU/l8ZYlpFqd\n+/ycTCk88B/VDI1rLJ+XZ9OqcrivLAQsm5fnrz40xNf+bQatx8NctjBHTUIC+qpw+PkLCV4+EiWd\nldDdh24z2XCZTb5Q4L3XFfiXnhpOdKh88+48M6pUnn5Z48iZEEfOBImFbRIxi+FxlXDI4QM3jvN8\na4yhMY1HtyZ4dGsCzRWHt2wXanKkguAf3zLOigXlFrYOstwWzSmwaE6BVS05HvxVFU++HGdGlcWa\nliwg0DSd3uE4z+4WvHwoiGEKDp8SHDmjoSkOQkgFPiEgGLDp6+ujs7OTG2+6hRee/w33PzbJ+hUm\nEymYXWfQMkd+mwZ0CcClsoAtQcmA7mDZAtuGd25KMZbU2P1amPt+UcOmyzJsXJ0mErLRNYegDZUx\nm0jIwrYF2/ZHGU+p3HHdJLPqypVXHEfu4TnWHuSnz1UyNKYya4bBdWtSnD5fLUHOtKyToO7w3usm\nuP26JAEpVkc6K6iusPjCXUP8849rOdMd5Hv/UcOVyzK8Z/Mk//5cJae6Anz9x7V84MYJFjYVMEwJ\n7Hltybah54LOr3YmsG1BLi840x1k3XJX3VzINm/bkC3Ic/MFiEUgEoSC6ZDJSSDywMkwpiW4Zk1G\ngl6KhqoHS/Ir342FoiBcNQgvNq02+M1ug/EL7RRyKQKhGEbBXaSIVsrzhIIQ0vJW2us6/u+Ai4C/\nYDiBEAqWWcC2LfSAHIgKuTSqFpTWu44tVfpMit8Ejrd1UV5f1QIorjNCPiu/iYKhqGTyPIUbIVAC\nOrncJBPD3RAQhFqaSLe2SbixOiG/Zgqmq6LnyMJXFGzDwCOQJYSnYru0qFpbUdaXASlnakm4L3u0\nA2sihV5bQeW7NpLed5LssXOkW9tI7z9FaEEjWn2VVBnMG+TP9WMMjOKYFk7BRAR1gs1FxYHc6R6M\nC6MosTCV79qIGg1h5y499kqxOEHsisU4lkVy1zFEQCOxcQXhFrn445gWtmHhWJYsV9P9u1AQiiC0\nqAlzIk3m4GmsVAYR0FDjYex0DoQsHyUkVQPtXIHcmR5yZ3pQq+JEVi3As9gVqoIalCCbEtCwCyax\ndUso9A5RGE9Rcdt6kjtfwxpPMf6rV9Abqgktno1jWOROd2MOjePY7uDkgdoC8gOjTB7rIL60GUXT\nmDxxzv/2yeRyKLqrJFFSRZ71l6qqhIJB1JDsA1Y6V1aRXvu3LIucbVJx6zpSu4+T77pA7nQPudM9\niKAuAcuCiePVgwC9oYb4NasI1FZcar9WsY4UgaLI+RTLsfj2t7/N17/+deLxOI7j8MQTT5AzDWqu\nXfOGcF+xzgVVVy7DSGVIH+vkmWee4ROf+MSbnjcd0zEd0/HfHb29vWSzWaLRaJk63luNUChETU0N\nk5OT3HjjjdTX1/sKds3NzT40UxrHjkkYOplMEg6HiUQilxQk0TSNeDxOJBJhfHycjo4OvvWtb/H5\nz38eXdepr69n1apVvPrqq+Tz+Te1FvYiGAySyWTI5/MEAgFWrVrlK4t56Vi3bh0Av/71r8nlchQK\nBV8VTFEUH9LylME8uEXO+UnIqqmp6ZIqXKXveR64k81m/d95sMuZM2d89bITJ07gOA5Lly6lra2t\nTGnPUwQrFAr+tauqqli2bBmqqjI6OlqmtHapGB8fx7P0LU0HSBW8n/zkJ5w4cQLbtqmqquJzn/sc\ndXV1pNNpNm/ezLPPPsvBgwf54he/yPe//30OHjxINptlcnKy7HoeiOKpyHkAomftWvqntIxK0+PN\nYTY0NFBfX09bWxuDg4N8+9vf5m/+5m/8dqBpGgcPHuSpp57yAcfHHnvMLzuvnD3Y5uDBg2zevJn5\n8+fT0dHB3//939PU1IRt26xatcpXzPMgIw9qCofDvi2t4zjcfvvtPPLIIwwPD9PX10csFiMej/sg\nm5dXLx+rVq2ivb2dnp4eH6orVcVTFIWmpiYWLlyIoij09fWVgWRefuLxODfeeCMtLS2+kp1nwfm+\n972Pxx57jFQqxbFjx5g9e7bflkCCRZlMpgwwK20bfmk8AAAgAElEQVQv4XCYeDyOqqpUVFSQTCbL\nYFEPFMrlcj7wF4vFcByHXC5HPp/37aRVVSUej/uwZ2kfKYUIS62whRDMnDmT9vZ2zpw54wN+Xpv3\nQEJN0zBN0/834F/fa2fecVBU8iwFwLy+7F3Ltu0yOK+0fryy8+7htQEPXDRN01dnU1XVhwmFECxf\nvpxoNIoQgrq6Oh9ay2QyPoAcCATwbG1LlTs1TfOv61nMlgJ2Htyaz+f56U9/imma3HLLLdx6663c\ne++9dHV1cf/991NRUcGGDRuYMWMGQghGR0fZvXs3IyMjZDIZCoUCK1eupLKy0s/3o48+SiaT4Yor\nruDP/uzPLjl2l9ZbNBrlM5/5DH/3d3/HsWPHqK6u5u6776axsdFvK1678ex3c7mc3wY+/OEPMzQ0\nxMmTJ/1nRkVFBcPDw375e+1pYGCAp59+mqeffpoVK1bwzne+01eQC4VCvuqc1wZvu+02Hn30UUzT\n5GMf+xg/+tGP2L17N62trVx++eVcccUVtLe3s3v3bt8e2OsfXnp37txJIBBg2bJlCCF45ZVX/Doo\nHf9Kw+ubnsqrB5iPjo765VZajvl8nvnz5/PJT36SRx55hP7+fj+f8XgcTdOYnJz0y01RFK699lre\n9773kUgkLllH3n28tuuBqN///vf59Kc/DUBfXx+tra3ous5nP/vZ14X7SiMUCvHJT36Sr3zlKwwM\nDLB3794yN5PpmI7/zvgvA37T6nnT8fsSg4ODWJZDINbwnzpfizViDB5mxowZfOUrX3nT439XwMCK\nFStomFlPR2dvuaXqm4QAtMIgtpWWFrqaK41uW0UYSFGlml7oDEyckkpxo0d8GEVOkNs4VgGBgwjE\nUIKVqMEEZmgWllYLeqg4Ae7nR1q6FGEP1x7YNopQkQfLmAXi8Tjr11+FZVnsemUP+cGXoXoNTqSR\n15ulFLkBnOH9UuEqNAMqV5SvZHlCX57NikefBCuLSmmTJ8GaJ3/vGNDztA/SqIlmIrOv8XfTOJFG\nCcgUUuiz1qNG6shfOIhdGMMZOYivEGYXJESUWFi0Vh17Tf6RhSN/Os6lLTI9aMuzLRUlAFD/Vgn5\nhc7gRGYjku1YmXOYhZQLHql+3TqOjWO6ix2qSt6A/sExBkdeZW/rPhpm1tM8p4nz53tIpfrk/UK1\nbt27IJ2vrIYEi3yIzM1u3SZX5axLwo/6MYgvkjCOUEHVAdW1802XwFYusOPDVq6F8lTgcaKteH9P\n8U2PuWqTs2X6LFc1TtGkNemFXdI6emgPjB+VKoihPOQuwOBuCbFG58o2o7gqfblBqRxZAgyRH5Fp\nqlhSBE1VrQgGOhaOLRBqoAgQ2QXZv1LnZJOLzy2mXREl/cQD5pSL/12mtjervE0outsdppxXei3/\n2BKI0lepLCnDwpjMY6jmYsvaS4XQXHDPgexg8TpeGXrtRpGqHKTPu7bCMQnWjh8ryYMqy8MuyOt5\n9tqe5bavcuda/oIs+7I8C4p2yLYE+nCKSnuBGlnHk6cksFbaB0tDCch7CN0dG90ymDglf9ZeVW7F\n7SWhZFjyVDmlCuMV0L9dpn+GTIsPzFolNsdT1SO1CFStkrblGICC4wjQKyA+X+ZHUWUaC6NFa9/R\nw7L91l6JUINFVUZwVWILEKrHUcNYhSQklsvEZ3pln1UjckwsjLvW1CV93nFwhASE7dwohZE2AjVL\nMSa6EKbcXWg6NrZRADUm+8HrqOdZVhZFiQCjkLkAwRr/Ph4omMlkMEwLp/ZKRLoeJs+4zySv3uzi\n80OoRXCzYilcYldWeT27Ow8dSCZTbN261QfybNvmhRdeIJs3CTVtfsNndWmo4WpCs64m2/MyL7zw\nQpl673RMx3RMx+9rZDJSAXmK495bjkTMQeAQCAS44YYb3vT4Z555huHBHuY2ZPnMBwsEp7LYU0JT\n4SPvNigY0HpihJ///Od89rOfBaR11C9+8QtOd2XYd9zkyuVvruKnCIW8FeS5V2NkcgprlliAIFdw\n0DR829h5jQZf+bNhnns1yo7DEdo6g7R1BlGEg65J8CqTU7AsmNNgc80ak5m1DgsbR4kELSouUZ5T\nJyktC/IFCVOZlkMyA31DKgUDFDXEopYlfOpTn6KqqoqvfOUrnGw7yn2/qOGa1Rk2rc4wo6IcCMvm\nBfvaIrzQGmVwVKOx1uCj7x2Vr0+lhEnJXich5Dap2fUm779hgn/7dSUvtMaYWW2SzSt09AUYGNVx\nHJhdb3DrxhTrLgsD0iZqzkyD+bMKdA0EaT2uctPVFic7FQ6dUigYCumswlhSxbSkXW7jDJMv/ekQ\nJ88FeflIhNPngxiWQBGCgO6wbG6OzWvSrFqUw3X7BGBoTD7XQwGbgiGPBdiwMku+IPi3X1fy6NY4\nS+bmOHo2xNYDCXoGBAVTnhMJCR+YKxhScS4UdJhRaWBaBqnxLM88/UtQQsyoa6C/32b7AbnAE4tY\npLMQDMiiKxg+e4WuOyDka4eqyL//2bvHqIhZPLsnxgv7omw7EGX5/Byz60001SGdlWWzoKnAyITK\nwZNhDp4KsXRugfUrMlREbUxLqu/tOBRleEL12+SnPzDCQ09Xoqlw1zvGWLUox78/V8mJc0F+ub2C\n0+eDzG00uHJphvoaS+6hC9v8w0cH+Zvv13GiM8iuI1H2tYWpilmYluB0V5Cv/WgGjbUm61ZkqKkw\nEcBoUmXf8QjdF3QUxaEybmGYgpcORiXgJ0r2kygQDTlk89IaOZWFeES2r3AAjpwOMjqpEg7arFok\noU3bNsEUUsFP9gy3XZbDfQAVcYcFTSZHO0wyyWECoeJmGQnxeRsL5budbZny89T/VnV8gFBRSqc0\ni9/h0Yp6VC1IJjlENjVKtGIGtmVh24ZUYPO+i7w+JASaHvIBwmx6jORYH4qiUVk7R0KrpuHDfagK\nA+2HcBSH4MImlOgUslkIRNBdfDMtCc4pimxsQkhVOc96yPJgyIvnRYSq4ggTxzTJtnUCENu0EjUU\nJL5pJYHZdWRe66DQM0j2dDfiTE/5+bpKcNEsqQRnWhiD4wTqq0ARZI+dk9e7ainqlPQ7tlNumlAy\nHxRomiE/5yIhQouLzhlCU1GEwM5JZQ/Htt1Xe9v/BAwvbyZ7/ByOZSN0TcJ9ikJoyRyCC2ahVUQR\noQBO3iR3tofcyS5p4bv9EPYVS4hd3oJwPdwdu9iulGgYvaGGQtcA2dc6qHrXRjIHT5E92U2+c4D8\nuX4fqlTCQULzG1BjYRACO1cg395HfnicwW37mHjtDDO2XMHYPgkeCMfBzBUIVMZQNNVV0JMLtI5l\n4RhSESadyaAnQiiaijEwhjmeQnXtd31LwFQK23FQwkGqbluPOZkme7yT7Mnz2Nk8TrbgQ5aRtYsI\ntTShVSVQQgFXAfKN598LvcMIRUGJhRmbnODll1/m1ltvpa2tjd7+PogEqVix4A2vMTWqr1xO17EO\nDhw4wNjYGFVVVW9+0nRMx3RMx39jePargcCbfJi8QXjnzpo1iy1btrzhsY7j8PDDD5NKpQiFQm8J\nKlRVlcrKSsbHxzl16hQvv/wy119/PQDXX389hw4dIpPJlCnbvVl6M5mMD2isWLHCh+xKlYvWrVtH\nQ0MDu3fv5sSJE6RSqTILTg/+8VSfKisrCQaD6Lruq1BNjanfRKVWnalUCsuyGBoa8m1Nr7nmGu68\n805GRkb4/Oc/7wNhPT097tpeEQgTQhCPx30FPA8w8eC9S4U3b2fbNhMTE4TDYWKxGLlczocP9+3b\nRyAQQFEUVq9eze23387s2bN9sGrDhg1s3bqV/fv380d/9EfccccdnD17lmw26+fXs/f1wDPLssrg\nNO8YD1b0YMoylWT37x5k44GAy5YtwzAMJiYmeOqpp3jPe97Diy++yO7duxkdHSWXy5VBg5Zl+Za/\niUSCyspKXxnupz/9KYFAgIqKCkZGRnyYTtd18vm8ryjoAWFTVdtAqjJ++MMf5rHHHqOnp4fR0VHG\nx8dJJBIEAoEyZTxPPXHhwoXMnz+fgYEBRkZGfOW4qqoq32YZoKenh3PnzrFhwwYA37K5srLSV+Bq\na2ujsbGROXPm+DBYU1MTH/nIR3jooYfI5XKcP38ex3EIh8O+glcoFCKXy/mKmF47j0QiBAIBotEo\nwWCQ8fFxYrEYk5OTZfXjWax6tsiZTIZQKOT3g5qaGhRFobKy0s9PJpMpg/xKwbCpbbampob29nbG\nx8f939lT1m5K1RQ9BTSv3kv72lRYz7vXrFmzfGvxyspKNE3zVTtLjyu1IvbGP8dxyGQyKIpCbW0t\nsViMiYkJX4HSA/g6OzvRNI0bb7yxrC14UGFpGXpl7DiODwh6cGgprFhqU+6lyVNV7e7uJpFI8Ad/\n8Afous4XvvAFtm/fzrZt2xgYGOCZZ565qDxqa2u5/PLLefXVVxkZGSGZTJJIJBgeHubIkSNomsaH\nP/zhsv7tQW+XWgsIBALMnj2b06dPs3btWhoaJI/gqQZ6drHeOOGNLd71t2zZwrlz5/y8j4+PU1VV\nxcaNG1m5ciVVVVVEIhEGBgbYsWMH+/bt49ixY5w9e5aPf/zjLFu2zFdE9Oy0LctizZo1PP744xw5\ncoSNGzfyhS98gV/+8pccOnSIbdu28fzzz/vjeUNDA6tXryYajWLbNv39/Rw6dMj/c91117F48WLO\nnj3rtwUv76XPJi+vnqqlaZosWLCArVu3snv3bm677Ta/XQshLd+9ay1dupR77rmHU6dOsW3bNg4c\nOMDk5CT5fN4H9T1lxoqKirLn2euF4zi0tbX57fjw4cP09fXR2NjI9u3bATn36NXZW4lwOMzb3/52\nHnroIbZt2zYN+E3H7038lwC/afW+6fh9ilwuB44jVbf+EyEUuT2+dIfR68XvGhi48cYb+fGPH/Yt\nVd/K9azsKNbgfnQVFD1A4cIuRNUqCaqJcBEIEkIq8MUXIMZeg7Fj4JgINYgSrMDOjaIoAkcJEVtw\nq28TnE5nsAoFymx/S8vL+4Dz4DnAEUrRvjTTh8ChoiLOhz70IbZs2YJlWWiaxu49e8mMHcCeOC4V\nqAK1OEKdYtGaRrgwnVO3yQVnXGWyi+Y1p0B+kVmuTWlKQmRW3gfkhB7Dic3HrlzkQ1KWbQHSatgZ\nO0ph9DRCKNimAUKTE6lqUB5vKjiOBWoYGm6UYFm6y1VAtND0EJYI4kSaZTqUKcNs9oL8qUXKyzZY\nJRXGBnfDeBuk+yDbh+0qhTmxZkSoDkULYpt5HBdaE2YaR4AWn0WwbhVWZtC3hNY1CAUDCOHg2AWc\nwT3S2jY6F0J1JeUoiunwylAICdnUbYSxOIwclPaoY69JtThwwS9XBbByhQvRpSTA5h1TGnocEi0S\nEsSRCnBChYZr5XVG9kkFrwu7ZDr1uITHQvWgBWU6Z74Nhl+VgFZhXEJ+jiPPdyxZ18YkRUgOJDhk\ngV4JlcukOmHvr2VaM73yHn5RqKAq8jq2WUTsPIU21zLaUSNSdU64AJpdKMJtZTHlOTlVbQ+KsKfj\n2vr6i1OXWtieCg/i9z8f9IstkOp0ybMSYPQsax1XrbHUjhchoUHHAlRZlsmz8rjYPBzLKB7vqcvl\nx6USI7jqnkoxDx7UJhRX7bIg02f5Xl9FSLA075bpWuOWdm4h+0+6R9aVFpWKdJn+IgAH0ibXsUC4\n11V0F/ScA8FaGHgRzKzsq+GZUiHOu160qfx+MhOUQZbZfmmrbCTByMga0KIQri/pQipCkfZZivsR\n6Hiwmte/Ik0gWuW11VCJ4qXiQ6UourQ5r1gqQdbhfXIsHT0k+6Jf55a/sIlA9unxo4jkGWi8Udbh\nyCEcY0wqZCq6C8zNkwqurtqdyA9DsgMrnyTb24ox0Y2ZGUJzDCxX1UIURiHWOKUdyjyVwq92ZDak\numHyDFQuwVNDVBSVgmdpBQgtJP9/xWKEB/8aSZzsoHw2BSpxaq6Qdae6dslToMtLRnYQhFzwL32+\nHjt2jP6BC9hqBL1izptcpDz0imZy/fvp6x/g+PHjrFy58rc6fzqmYzqm4393qKqKBRimtKf9bcOb\nR30rlhOFQoGdO3aAneVDtxlvCvd5oSjw4XcYHDyZ5+jR1xgcHKSuro5wOMx73vMefv7IT3ngP2w0\nrcCaxW8M+U2k4LuPVTAwqmE7Cs+/GiaoG1y+OA3YxMI+Q0Nl3ObK5Tm6BzUOJsNYtmDJXAkxdfSq\nqKpOOASLm7P84Y1ycjmZUjFNm4LpELxEkQiPqnMcTnYFcBxBVdzCshVMCw6cDIMI8id3/Sk33XST\nPzn8t3/7t/zkJz9h64vPs3V/gO0HYixuLlAVNxgeVxlLqgyMaJiWwLTkNe/+4DDBgFRXU1w1LceH\nqEpeodxXxQ0rszy6tYJzfQG6+nUMSzCnvsDKBQWuvyJDfbVBwRQUCgrhUNif29m0OkvXswGOnFJ4\n6YBKR4+gtsLi1g0pVi7MYTuCx1+KceBkmP1tYVYsyHP5khwrFuR94C4SDuM4UkktGrIlaOk+yx0H\ndhyKAoJl8/OkcxKKDOrSVva6tRle2BujZ1DnoacqOd4hwaNo2GLLigxrFheIRxwKhk3PoFRePHNe\nWiBFww6f/WODyTS8sNfglSMZznVMYtsOigKOIzh0KsxnvhXgqmU5Nq1OU18t31EDmmuf6hQLUbj/\nef8Nk6xfkeVfHq6hZ1DnWHuIk50SAMwXpOJi76DO/3zfCCfOhdh7PExbZ4C2zkD5p4CAGZUWb7s8\nzZYr0yTTCq+dCaEqDlctyxEO2fz57aM89FQVB0+FOXgqzJnuIC/sjTG3scAtV6dYvzyLEPDZDw5z\n97dmkisIwgGH0aSGojiuIqHC2Z4AXQM6ivDUMgSmLe9/3do016xO87c/qONkZ4AjZ4OsXlSurghS\n0dCypY31ZAo/v8++GiNvCBY2FdBUCclm8wLbMnBsC1Ur7SyXmDN0JEAocDAKcnJf8xX3UmXzjPKd\n2lvoteX7r3Px95Bp5HAcC6GoKO7GoRlNyxjoPMTA+ddYsHILilr8f5ZZwLYMFFVucLItE9PIoeth\nEHCh6zVwoHrmAizbkkCgkMAcqsKFztcYPH8UW4XwyvkSTAzoOAUDO5VFjUdk+wnoEuBzHH+zldCU\n4sAEEvYD7OzFdeDdM9/Rh53Oo9Uk0GZUkjnZRfbYOcyh8WIxWxZKIopaFUetiqElogTnzkToGkJR\nyJ7oYuLZvWhVCXAcjP4RlEiI4ILie77QVAmtmZZMJwJMk2x7H9m2LqzxFNZkBqEqhFqapEKhrhU/\nX137Yse2cYRA0VRpq+tCjUooSHBOPdkTnWBYBJrrib9tDWokiJ2Vm8OUSAhiEKtZSvTyxWSPdpDa\ne4L0gVOokSDhZXOxDdMHI715oMDsGRS6LpA9dZ5C3zCR5XOpeu9mRn+xDccwUStiRNYsIji/ASWg\nS1DQrYfExhXk2vtJ7WsjPzRG1789g+I4vvqk2TdMcFYtju1IFwQh4UtF10DXcEwLK29g4BCaP4vM\n6fNkjp8jdqVUSFdVVdohugO4GpIPTC0RJX71cmLrl+HkDSZ3HSVzrAMR1IlvXIFj2jKd7jfOG+2v\ndyybzIlOEFB1xTLG9x5n27Zt3HzzzWzfvp2CZZFYsehii983CS0WJrpgFvmOAV566SVuv/323+r8\n6ZiO6ZiO/93hKdFNBWV+m/DeRTxVrDeKtrY2ent7sW37t1IMVFXVt+jctm0bb3vb2xBCcNlll7Fi\nxQoOHz7M5OTk61oRloZhGGWKcU899RTr16+nubnZV2TzYtasWaxYsYKenh4MwyAcDrN48WK6u7sZ\nGRnBtm1UVaW+vp66ujps22ZychLDMF4XdvGUthzHYXJyEkVRqKqq8lX7hoeHicVifPWrX/XVuerr\n6/nGN77BN7/5TU6dOkU8Hmf+/PmMjo76gJZnc+wBZ+l0mqGhobJ3xamqaFC+Zj05OUk0GvXBu0Ag\nwLx587jqqqu49tpr/fO98vOsY1esWMHRo0fZuXMnzzzzDBMTE1RWVjJv3jwSiQSFQoEDBw6QSqX8\nb+dS617AV8ZzHAdd18sUFb30eqqOyWSSaDTqw1otLS3s2bOHPXv20N3dTUdHh6/Q2NjY6CtkWZZF\nOp1mfHzch7aWLVvGnXfeyZEjR3juuedoa2vzLXM9cOr555/n0KFDrFixgqVLlxIIBMrUr6aWcSQS\n4YMf/CCnT5/mkUce8RXZPDDQA7YCgQDHjh2jubmZiooK3+J3aoyPj9PT08Pw8DCNjY1omkY+nyed\nTmPbNplMhpkzZ+I4DidPnqS9vR1d15k3bx7r1q0jHo9TUVHBli1b2LZtm9/GvTbtwUZeOyot+0Ag\nwMKFC9m0aRORSIQHH3yQRCLhK81NbduRSIRUKlVm0RsMBqmsrERRFCoqKnyYyLPk9Sx/vbK5FEfh\n2eR6itAeOOXBlV59etfwVPc8WHFqu/eu6aniATQ1NVFZWcnw8LDvVudZEntKf47jEAqFyOfzZSqQ\npUp79fX1PtznjSmO43Dw4EHy+TyzZ8/msssu48yZMwBlNtWqqhIOh/269dLr9W2QYFw4HCaTyTAx\nMUE0Gi0rM13X0TSNnTt3ArB582aSySQ7duxgx44dPiTplVFDQwNz5syhqqqKhQsX0tLSguM4tLe3\n09vbyz/+4z/6gF8+n2fjxo2+VbrXDwqFAoVCwVfJGx0dZceOHezdu5eJiQkGBweJRqNs3LjRL1uv\nXkrVR7068SDfUCjEhg0bePjhhxkdHSWRSHDHHXdw8803A/jtJxqNUllZyeLFi/nABz7AQw89xOHD\nh7n//vv5/Oc/T319Pfl83m+zXltduHAh+/fv5/7772fBggXcfPPNrF+/nnvvvZdwOMzSpUu55ZZb\naGlp8WE/7xkzOTnJjh07eOqpp3jxxRd5+umn/TFjYmKCgYEB5s2b50PLHizsQYKeumVLSwuJRIK+\nvj5OnjzpjwGqqpLP5/3699rpkiVLWLJkCaZpMjk5yZe//GW6u7tZt24d1157LbZt+7bXl2r3pdHR\n0cH58+eJx+OsWbOGXbt2sW3bNv7wD/+QXbt2AbwpuH+pWL9+PY888ggdHR10dXXR3Nz8W19jOqbj\ndx3/acDvnnvu+V2mYzqm478coZBUmnMs480PvkQ4ttyR/Vbkz3/XwMANN9zA6dOn2b1nL+mOZwnN\n2nBJu1+QE9vGRBe53j2EdYer129GCCHtWEf2YY+HcWLzEJFGCZHYJZaxVgahaOiVC9ASs8n3tRKN\nhKmsiDM0OoGZ6vcBP29nRJnt79QQSPgtJ6E1EYijaCpgY6c7iYQDfPazn2XVqlWAfFn72Mc+RktL\nCy+88AJ9/QPk0ycxJ2y5M99XCivKUjixOS4EJMEkLy3+S96lHuZCdZXSDktQUNEg1uxaQc4EK49t\n25iGia5rxduFZ8Loa5iT3XISXglIla7ILJnHybM4zrAEyFId0vI2Msu1KJZLbLaquJMICkLVSkQH\nnRJ4CgkfWfkS5TwhYSM1jFMYk8CLGoSaKyBU59obSbUMR40gwvVQfZmEn4ZaMZN9CDVAePZmEAr5\nC0fIZpNkc4aEJBUQZlqCiJk+0KM4sfkQm+8q8YmyBa2yv0dmwehReZxQi+qMjg3YUmVRC8OsWyA3\nLMvGmHSV7TTQExI6C88s1le621WAi0rgSDhQd42037XS0h7YmJQAnhaTSojxRfL82nUS5jGTrk2u\nazUr1GL6CmMl7UiVFsPVq4ttJD5fworDrRIkDJTsRC+F0+wSNZXChFRUsw2ZHn9R1y0rzwq3tAwv\nUvVzF7w8oEuoRcW9zAWp5OY3mhJ5FqvAxZItbnjQqB4rtmMt5gKMPa4aols2nromStEu2nYBSasg\nYTa3Xhy9skSFrqTehlvl76NzirCml4esq94m3HK/lJV2aZ/1zssNgH4JNQGhSbVAx5HtqPcZma9L\nhuEqCs6G2LzifWILZF0P7ZF5NlMuEOpAz3MQiEuluGCNWx7SQpfkWcTkKRwjXbyFnZf9NT5Pgm1O\nTo4viuaOX45nMO5a8LqApNAg0y7LQY1A/WYJ2fpl45WP6qZbcS3HEzCwzVf2JD7/YstohFQzROBk\nehCdj8rxL1Aj61oNQ80aCDcWxxqhutBhg7QKT/fgDO3FmOhCURxQNRwlJCHX5FnZX3xoXJH24B7M\nqqgIEcQJ1SG0iIR00z3y38hnSTYr7QSFGqAMPo80yD+pLkR+TErxoLptqHiPN1WscGyYPCufmVq0\n7Pm6c+dO8oZFoGbxJZ+pbxRCKARqFpMfOcLOnTunAb/pmI7p+L2PiooKhrKD9A4KFs357Tfj9VwQ\ngOpPbr5RtLa2kk6P09xoMn/Wb3evWATWrbR45bUc27dv5/3vfz8At9xyC0NDQ2zb+hz3/SzJxlUm\nW64ymTfl+sk0vHxI5flXNcbTERqbZlNfX8+J40f4xYs6v3opypXLssyaYRAKOGTzCvvawnT1y3fe\nyhjcusngbLdCZ59ONJrgtne8i98882sOnjQYmzSoSshnmLSHujTgBx4EJth2IAZCsHmtXNzbe0wn\nkw+xeMkybr755osm3v/kT/6Ea6+9lq1bt7Jr1y5eO5ukYJioii3V4+RlUYWDImDb/hibLssQ0PHt\nf3mDdctgwGHTqsz/x96bR9l11Xe+n32mO9dcJZWqNJZma3BpsmRbsiaDAdMxOGDjxiHkhRg6pIFA\noPN4q3ut7rw8SHdIgkk6pjuBAAnEYBk8EHmQbMsarFkqzSpVlUpVUs11q+rO90zvj33OubdKErbp\nToeVVb+1tFTr3nv2fIZ99md/v7x4ME7RFmxakePLj48G31s2FC0oFkovrUECYABtHQqmCXWVFn/w\n+Ai1lTZHzod59UiUS90hMnmFg2eivP+eFHHPzrhoCtBdLEtumFMVCX95ewYA6Lyh092nE4s4bFqR\nw3ElHFYoSiU/XXPZuibD3zxXzZFzEWIRh1XRg+oAACAASURBVIe2TnDv6hyG7u8St9FUl4WzLbav\ny9M7qPHXu6roHdT5b9/XefS9Ju3dCgouumYSCTk0VNvoqku2IBge09h/Osqbp6OsbMnzb987RiL6\nixeB58wwqa+2GZ1QmFFjk0ypFIqlp5OiJdhzNM5nHh7l0fvHOXgmyuVrBhMZBU2FmgqbdctyrFhQ\nQFHk3pfv/VMVjitoXZwjEnbkno2wy2ceHuU//88GbgxrrFyYp/O6hDSf2lXNxa4Qj79vjOqEw7pl\neY5eiLD5zgzLFxTI5hRcpE3x9UGNv99dTc5U0DUJhjY3mLz/7jR3rchRnXDYsT7Dzw8m+O/P1PD5\nR0dYNm+yPasLGLpD35BOe69BOqsGVtamJaipsLAdOYUozX8cLLOAT11NegHvymc6FxfLFkEmrutQ\nUdNMf/dphq5foHH+GlzHDmx4/XAcC7doS1VA3ElPhkPXpR1XRU1T8NnMOSvpv3qSoevnaWheTqK6\nbJf+pPPR8NTmHEwzRyE3wUDPWVxc6puWl9T+EFh2kb72t+jvOIGt2MTvXoGWiOBaFkZzPYXOG+Qv\nXiO+YVmQjdBUXNNX8fcgOKEESnRafRVc6qHQ0Ue4pcmbm5VoLqFrFG8M4+KixCOMfP9l3II3R1MU\nlLAOjotTMHFyBZxcAXsig3HXMoRHeocXNgWAnpsveqCaiz2eYejbL6A1VBJdtZDQgkavK6UtcPbE\nZbLnr5byA1zblna/c2bgOg5WNo+iqwhNw7G8OZaQ9rlCVRG2Z6HnuqAqmENjCE3DmNtA1fs3IhR/\noebmHT1CVYi2LkSJhpjYe4KJ/WdQairQquS8V2gKwluQUuNRhKogdGlRnD56kdRb50FR0OuqqHzP\nOpRYWJZJVyW85w9dRSWyqAl9Zg1j//QWdu8QjqKgxaPY6SzZ892EV8wP8pJhSVtcXUNoKqoQ2Pki\n+sJZcOkauQvXCM1rRK+KEwoZZDMSZlVuQd8LIbBzBQpX+2X/2y6Fa4MYs+o8wA/vXHFvu5iV9yDQ\nUE0FVeuWMnG+k4HBQc6fP09XVxeWa5NY/PbWvLeK+KI5DHdI6/PpmI7pmI5f9fDt+3xFu1/GiSGd\nTqMoyjuaE+3Zsyew0323TmehUIh0Ok13dzft7e0sXrwYVVX5vd/7Pf74j/+Yzs5OxsfHAyvGqXXx\nLUQLhQLRaJQ1a9Zw48YNBgYG2LVrF5WVlSxfvpzKykpUVWViYoJTp04FVqxLly5l/fr1HDhwgFwu\nR01NDdu2beP555+nv7+fhoaGAOAwTXMS7HKrcByHoaEhDMNg+/btxONxjhw5gqqqPPTQQwHc50d1\ndTX/6T/9J06ePMmrr75KW1sb8Xg8UMSbamHrW1em0+ngnjgVRJsa+Xwe0zQJh8NEIhE+9alPTVKq\n9+0zp1oi19XV4TgOP/3pT8nlctTV1bF69Wosy+Lq1av09PRMEgkxTRNFUSapj/nwmw9yTVUE80HK\naDSKZVmk0+nAEjkUCgW2nRMTE2iaxpw5c4hGo4EKG0AikQhAuJGRETo7O9m/fz+KojBr1ix6enow\nTTOoow9xRSIR8vk8g4ODHDp0iA0bNrBu3bqb1Aeh9PyhKAqzZ88mHJYuYtXV1YyPjwfqhY7jkEgk\niMVinD9/nsrKSmprayeBbLlcjr6+vkDBKxwOM2/ePBRFCQAyv8+Hh4dpbGwMgLR8Ps/ly5fp7u7m\n/vvvZ9GiRSxZsoSDBw9iWRaf/exnUVU1AKQ0TeP111/n0KFDAcAJ0Nrayvr161m9ejWO4zBv3rwA\nYB0YGLilip6maRiGQSgUIhqNUl1dHcDEmqZNAjt9SG7qZ1MBVF/ZTQhBPp9H13UaGhpIJpNEo1GS\nyeQkyK8cHiu3ry0Pf3z46mRCCJYtW8bBgwdJJpOBBbf/XXk/h0Ih8vl8cO7lcjls2yYajVJZWRm0\ni6ZpZDIZzp49y9jYGJWVlfz2b/82+Xye5uZmotEo165dCyAoH5jzAVr//2w2G8C3APPmzePcuXMc\nP36cLVu2TFLxA4Jx5bouPT09fOlLXwrKFAqFiEQigfLb0NAQg4ODLF68mHvuuSeo64YNG3juuefo\n6OggFAoF/bR3715Onz7NypUreeCBB5g7dy4FT6wglUrxj//4j5w8eTJoK//8q66uZs6cOZOuM+V9\nrChKoDrnK5oqikIymSSTyRCLxXjsscd473vfG/TtraKiooLf+73f46mnnuLIkSN861vf4itf+Upw\nXTQMIwDSfWXNSCTCtWvX+Mu//Ets2w7AwkceeSQAUH0lU7+8lZWVfOADH2D+/Pl885vfDMDjiooK\nkskkr7zyCo8//vhN54cPCvr3wXw+z8aNG3nppZd4+umn+cxnPhOMPV/J0If7ykPTNE6ePBkAm5cv\nX56kivlOBMdeeuklQEKgmzZtYv/+/Rw4cCAAMRsaGpgz593xHCDHWGtrKwcPHqSzs3Ma8JuOX4n4\npQG/6V170/GrFg0NDaiXOyZBau8mrPQNVFXQ0NDwtr/93w0MKIrCE088IUG9Q4fJ9e4j3xfBqF2C\nFp+FUHRcx8RK36A4cgnFzhELaWzatJHf+Z3fQVVVlixZwssvv0xn11XM5BlInsUV/qKDkC+X9Shq\nuBorM4Sb6gnS2LRpE9/4sz8nM3KJUP0dCKGg6RqqqmBZzmTb36kRgBWC2Izl6IkExbEuim6B2bOb\nbwIifMXCHTt2cObMGX70ox/R1dVFwXZwVS14VS93tziI7DUwxyC+ADexABRlyuv820SkAUa9m379\nXVJpzO8DRcN1TE8evrTjHCEtWl3LlOBZ43YoDEHvi9JKUhZM1tn04KloE+Uvom1/J7nigzpuid/J\n9ICVRegJaU/s2h5E5imVoYBRAWYSVEMCb0ZFqT3sklqB69oIoQb2vu6NPRSTXdi5JHZeyue5RhXE\n5wWKXS4gCiO4E+1gZiB5Rtq4NtxdxmEFUoil+ibPgFuUK1G+tao/7p2ihL1GTkq4ygd27ALgeGpt\nU8ZOISkhMfDAIVfWPVwH9eth8JCEUxOLJCxopWHkuLQqrd8o06tYKKEtLSKV0MrDseH6P0kA0Lci\nzvVLC+HEAgg1SACsMCIBwr49nppaM568hzwuNyjVJM2MtDe1PKtkBIRmeZBj2djBhx6DglBSgvPH\ngr8Y41nWqoqEy3zFvYqFZWmUj3MPwguStmRfuE4JGo3PLx1WuUS22fAR2S+hmlI6QdLe34pcFJL9\nckwqZ+ozcItjJYve4ohUXCy3Oa5tRVoGq5NVA6uWyXqLsnr6mbqOB34aMn//uIkrXvlvcW6bGdlu\nuRvy+3IbaEUvQcypDk9Bsk2q9NWulWPFB/d8MFV4VrNOUYK7hWFIX5OwYWK+VMMbOQqZ655aX1TC\nvJEZcmyaExBpDOrj2sUyG2O8RS1Fwn1+2EWpOilU2W5GJb7iTwmWRZ43QhBAeGXKnu7YRalg6AOA\nilo6D7Wov4Io8022yfGnxmHGZpmfX7aya5Pr2ghc3HADNNyLGNiHY6VxUaVtsp0D11O6DCylpTVv\noODnWfcKNYSbWCiVYocOQ8O9qFHZ9rYt7chueR8pJGHoqHwxYcRx7YwETePzytqoNIRuGZkesLMo\noQR69UIKo23B/VVafLgY8XcuvV4eWnwWucFTDA4O/lLHT8d0TMd0/J+M9evX8/MXrvHasSKL5ry7\nTU+2A28c10AJsWHDhrf9/alTp8ApcN8a+xeqCt0u7ltjceB0gZMnTwaAnxCCxx9/nEQiwc9++iz7\n2wrsP5VnbqNFc4OLqrqMpwXnOlQsJwRKiAULl/C5z32OeDzO0aNH2bNnD5cuXWDv8VTp2cm7lSiK\noKFaPss9szcMIowWivH4b/wG9913HwMDAxw7/DqvHDb56P2WB6nnsBxBwbw95DcwqnLqUghVge0b\nXIqmwfP7DIQSYceOHbdd7Js/fz4tLS3s3/8mhiHtZxc2myyZZxM2YDxlcuGqwY0hndeOxdl3Msbj\n7xtj44o8YaP0THe79m9uMOVjhiv40H2pSd+pKijCxXEdHLu0k16qA0AmJ6iptPj9fztC1w2d//c7\ntYylVQQuYUMelysIdu2t4LEHxrEdOe+Ut25ZNl2bvBiRLwp+8E9VuK5gS2uGyri0yM0XJXCYKwjy\nBUEialO0BPGIwyc+MCbV5YT3It0FhATWsnkI6dDUYPF//+YIX/9eLe29Bl/7ToiQ7jCj1uLe1RnW\nL88RCbngCoTiMp5Wee14jENnIpzpCPPNp2v5D78xTGVCPo8Fj3SUHj1ePx7ldLtUFB8Zl1/ouhxY\nQjhk8grnOkP8zXPVfPpDSXauz7DxjhyWA9GQG9gQg1TY/B8/raatPUQk7PD+e1JEDPkbvy93bkjz\nDy9X4jjwjc/1s78tyj++UskbJ6PYDvzWB8dYuzTHsQth+kY03n93Oth3lMsLuvsMQoYE6VRF2mOP\nZzR+9GolT++pZNWiPJtWZNmwPMvRCxH+9O/r2Lkhzba1UtXQsuD0lTB7j8U42xHGdsCyRfBYpgg4\n2xmhuy/D3JnyWqMIiISl7bJpubiukKp1PqzmTYdsG3oHFBxXQQ9Fscw8VQ3z0Y0o2dQwY4OdJKpn\ngbcQI4Tq44K4jqdi7SKV/Vy5yW6g+zQAM+euDto5Eq+hYfZKBnvOcOHos8yceyeqZuA4NoqiEk3U\nUlHTDAJUPYRl5slMDNF+6p8o5tNUVM/EtgqkxvuxinnGhroYHezEcS0c1SF21zLCC5skAOg4hBY2\nUeiUSnexNSUrWaGruJYlx4qu4ZoWrmkhVAFCIbxoNun9ZzBvDGONp9Gq4lJBrwwEc/JFXNOi0NWH\nUBW0hmoid8wjvLApgM6cXIHcxWvkz1/FTmWZ2HOC+N0rCC9sQqmMSZXBSIiKnWtxCybFnkEK3QO4\nRYti9wDFniGErqEmomh1FZiDYzjZAkIR6DNqiKyYjzG7ntGnX8fJ5lEqJFDnOg6OacuBXbZPzSla\ngBXQvU7RxBpI4kxkEbEwRnMDqYNncXNFeR0L6YTmzkSrq/AubBKOFJpGZOkczL4Rche6yV+8RuLe\nlQjDsyNzXU/QX6rjhRc1EVo0m/TBs1hDY7i2Q3zzStR4RIKNtiMtgpXSxdN1JfAoVIXE3SsY+cfX\nwHWxC1J9w8kVyLf3El25QJbNdXEtW0KSBRNhWqjhEIqhoddVEp7fSO5KL+OvHKP2fRtxEwks2w7q\nNDWsZIrkC4fAtAjPqMUcT5Ha10bVB+6S9sneOL+dqrk5PM7EG6cRAipXL0JRVWLzm8if7aK3t5ds\nVm62UiO3hzJ+UajREK7rkslk3v7H0zEd0zEd/8LR1NREU1MTnZ2dDA8Pv6N1nvKYmJggnU5TV1fH\n8uXLf+FvXdfl1KlTmKZJIpF412UVQhAOhzFNk5MnT7J4sVy7iMVifPWrX+XJJ5/k7NmzFAoFkslk\nYJ8KBBBcKBQikUjwwAMP8Mgjj5DL5Xj99dfZu3cvAwMDgeJVeZljsRj19fX09/fzzDPPANIu9POf\n/zwNDQ28/vrrDA8Pk0qlSCQSAQjjK8jdDpr035stWrSIlpYWzp8/z4kTJ1BVlfvuu++Wx2iaxp13\n3snRo0eDevn1zefzAcBTX1+PYRiBdXBfX99N8NPtolAoEA6Hqamp4Z577pn0nWEY5PN5LMuaNB8S\nQlAsFikUClRWVrJq1SouXbpEd3c3lmVNAhB9yMZxnJvU1fyylaftqySqqkpzczPxeJxcLkehUAiU\nsfy2cBwHXdeZN29eoK7ng2OKogRKYaFQiLq6OkKhEOfPn+eVV14J7t2+NW+5qpqmaYFKY1VVFfv3\n7yeTyfCBD3zglkqIfnmee+45stksmqaRTJbsm3z4xnVdFixYECg/9vb2BsptU8G5SCTCqlWrAitd\n3w7Wz98HEzVNIxqNUl9fz9jYGOl0mt27d6MoCi0tLcydO5eOjg6SySQbN24Myj44OEgikQjK5cNV\nZ86c4fz581RUVNDa2soDDzwQ2C8rihJcA8ptopuamgJQcSpcNzw8THV1dXBe+LBVubpaed398eE/\nV/mWrplMhkWLFtHR0UEsFmNgYCD4fXm7+GPIr5dlWei6jq7rAci6aNGiIL9ly5Zx8eJFhoeH6e/v\nJxqNBmnZth2oD/rKf/l8nkwmw8TEBCCvDf7fPhQ6Pj6OqqrU1tbyxBNPUFdXF4zbdevWsW/fPvbu\n3csnP/nJoByhUMh7JnUDaDibzQbXzm3btnHy5En279/Pli1bJllf+2XNZrPkcjlOnz6Nqqps2LCB\nbdu2sXTp0iCfnp4e9u7dy6FDh2hvb+cb3/gG/+7f/TsaGxuZMWMGuq7T0tLC/fffz9jYGEeOHKGz\ns5OxsTH27t3Lvn37iMViNDY2Ul1dzcWLF7FtG13XWbt2Ldu3b8d1Xb72ta9RVVVFNBqlWCwGypPl\n547jOKTT6eAzXxVx7969qKrKqlWryGazfOc73wnOq9raWtatWxeAcL4ypmEYfOpTn+LKlSv09/fT\n3t7OmjVrJrlv+HCpYRg8/vjjFItFnn76acbGxojFYgHc56s3+jbdPuTnWyXPnj2bTZs28eKLL2JZ\nFplMhkJBvrt78MEHmTVrVnBOyQ2xUu3QBy0ty2Lz5s289dZbXLp0ie985zt85jOfCQBGH/icGgcP\nHuQHP/gBQgjmzJnDyMgI3/3ud/nd3/3dSeP/dpueXn755QAq37ZtGw0NDdTW1jIyMkJ/fz/AOwL3\nbxf+se/EAXI6puP/RPwvWfROx3T8KsWWLVt46/CRSZDaOw3XdSiOXCKmq2zZsuVtf//PAQzoun6z\nut3IaXKDp4KX4qoqiOkqs+Y0B5CcfzOcCs1dvXpVToRckICfhrDzKIUBIobKrMZSGgCNM2fQefU6\n5vg1jKp5COSDl23ncJ0iQoRKMEl5lIEVWnwWdm6U/PVDxEIa999//20nfbZt8+abb9LTcx3TViBU\nTah2CVq8EaHqpCfGsDP9kO6WUFGyTcJpdWtBCXuQ2W0mb746F55iVMWiyd97lo+OIx+yVUXFEnZg\ny4qqQ906GD+Pm+4B3MlQUaYXxs9JNTctEUB4XuZ4ZFNpNxku5H2ozYWKhQhVx3U8a05cT9HNlcp1\nQoea1inplmfhTIZs9IQsb//rWNlBqRBW2yohpEl9JnDD9dImN3tdlid7I4BxSuUva8fBQ9KCWDGk\n0t1UsCrTA2PnpIrfwJtQuwZicwngtnK4z3UkFOkrwEVnScCrHAKMzgGtTfZ5qEZa6vrHZHpk29bf\nLVXqkm0l4Mx/053qkJCZk5dlxBsnxaT8l7nm9eUCCfWNHJefDR6Qn8db5LEejDmpPYQmYUTHguH9\nUL1K1tWH5ZSQB7B59kqOJSGp8ggsmuPyGLsgAUwtKqHRzLUSNOqBU6Vu8ZQKcSVY57gSbLMyEk6L\nzCzlk1gkgcj0NbjxsqdQ6AOGnmpgYpE8xrWlteroSYSdlYu9meuIbB+uD1j50JnfdnF/ccOzRg5V\nl1QDM70SPIXJ48+HBV1bll+oMn/FkHXI9cm6+8qGIPMuei8MFKMEYgbpeudbqFbaEWd7A1tbAGrX\nl6yF9UqpnIcjrcB9m1/XkuOxMIoojMDICdncSkiOtfjsKfkhrWNVv799G+OyFZep9sr5ftk2alSO\nyaHDss6OtAFHj8mxFG4oS0OqexBplOPDSstyx5pLSny+2oUrbcZFuB63cgkMH5fnpJGQ55EQJZDQ\nmQx8+CC4Gq2F6kXYQydxHBshTJmvU5TXOqMGQlVeGnYJbnQdeZ1VVAmr5m5IW+HBN1EbN1JQGmXL\nTFWCdR15ng0dRbgmetU81Gg9uZ4DMHpS5heuLf38dip+PiAIhOqWyzSGTgf313w+D66LUN/ebvJW\nIRQdvJ2L0zEd0zEdv+qxbds2fv7zFzl8Nsuj7zWpeOcuUZy+rDCa0mlonPW2i1mA96LSYWbtu1cK\nBGiokZD7VGBACMGHPvQhNm3axGuvvcabb75J9+A43QP+RgcBisGq1tVs376dlStXBi99N27cyMaN\nG+np6Qle1HZ3dzM0NIiqgK4pjGflRpW6GTPZtm0bmzdvDl7Uvec97+HY0cP8/ECR+bMc1t/hBFYx\nuTwIXIwpt5N0VvAXP6rBcRU2rnBQBfzpDwwGx6LMntvC3Xfffds2eOmll/jhP/wA7Am2tpq8Z5PF\nnJmeUgIuY2NpHrzXYWRCZ/fBOMcuhvnuC9VY9hibVuQwdBetXDDZC8uWVrneNJCGaot0XqF3UKO5\nwfJbEUWRt3THdQPlgYGkSsEU6JrL5tU5Tl0O84+vVAAusxtMtq3LcPfKLAOjGv/fd+s4eiFCNOLw\n8NYUDqVHE4QEvvz5UK6g8OSPq+m8blCVsNlyZ4ZcQf5+qoPaW+eihAyXHevTrF2al4yYX03vkdTx\nHslNS+YTDrn8my0p/uhv64iGHba0Zvjw1gl0DalOLDz+yIUZNRafeP8Y79+U4hs/rKVvWJeQ3yeG\nmMTeeJnufivGd1+oJmy41FRYbF2b4e6VOWoqbEwLOm4YvPJWnINnopy4FOE/fltn69oMa5dlSURL\ncF86K3jzdIzXjsUYTKqEDJffeWiUeTPNmyy171mV5Sd7KznfFWIiq7BzvQTp/usP6tjfFmVBk0lD\ntezLXEFurNFUGJnQ+MY/1DCWVlEEzJlpsnpRjsqYg6pC76DOiUthTl0Kc/JihLtXZdm5PsOrR2Ls\nPhRn91txlswp0DNgMJZSURQJdLa25KmK27gIxlIqp9rDFIuC//qDOu5ZleWRneO4qrT5TkQdJjLS\nphpcHMdC9ZTDhRCc7VAZTekYkRpiFQ3gujhWET0cJ5dJ0nvlCEvX/Rq6EZGq0UFnyHBsC9s2peJe\nMctI/xXy2TFC4QTVDfMntWND83JG+i6RyyTpvrgPRdEQioqQW1yIJeqYOW810UQDg71nGbp+QdoE\nOw6psQEuHnsu2HDiChdXExhzG4jeuRBjlrep1IO99Jk1qBVR7IksmZPtgT2rUDyrW480FpqGa1m4\npo0wFDmAVRW3WCDX1kl880owbWmlqii4RRNrZAIcFxHWqNixhvDCklJhsGcrGiK2ZhHR1S1kjl0i\ne+Iy6YNnUeIRjNn1sgiqgtFcj9BUIsvmUujqI3XwLNbQuKyn42JPZLAnMuA4uJaN2lgLmkr+Qje5\ntg7sVBbXsrGGx1EXzEIBnEJxsqKoIoI2DuYsLmSPX5KwY84lffDcTdeu3JlOtPoqwkvnEJrfKNvW\ntGV5V8wnd6GbQucNEptXlRZ5vGPNAalQqlbEicydiVaTYPznhzGHxsid6SLy4CY51kxbtr/jz6NK\nYIBhGJh9SXwLXjUaQl88m8KVXjJHL6JVJ2S5AGFoYNkyPcfFzhVQwgYOFtqsWlxPMXH0hYOYK1tQ\n5s1Aq5x8U7bTOXIXusm2deAWLcIz65j1a1u4vus1cj0DjP/8MJXvWY/eVFd+SSp1vetSuNrPxN4T\nYFrEF86mctVC2QVhuaEul8tJuz8o2Rq/y/CPK19AnI7pmI7p+FUNIQTbt2+np6eH69evv2vA7/r1\n62iaxubNm2+pMFQeuVwugFrezkb3duFbcfoQiB/RaJQvf/nLXLhwgT179gRWmP6ztaZpxONx7r33\nXrZt20ZzczMA8XicBx98kPe97320tbVx9uxZOjo66OnpIZ1OYxgGrusGlq2LFy9mx44drF27NlCA\n2rp1K88//zwXL15k5cqVhMPhAMhJp9PE4/Gb1nvGx8e5evUqoVCI97znPVy8eJEnn3wSx3F44IEH\nqKmp4VZhWRZ//ud/zvHjx0kmkwwMDAQ2vUCQ55UrV6irq2PevHnE43Gampq4fv36JMjvVlEOgyxf\nvpz29nbmzJlDVVUVAFOhPl+Bb2BggEKhEMBAJ0+eZGBgIAABNU1DVVVs28Y0zaB9fPCqPE0f6PLz\n8qEdXwXOBxnL6+E4DqlUClVVmT17NqFQKIDEytvecZxAmc8H4RKJRFD+ixcvMjIyEijQ+QCQZVmM\njo4yNjZGVVVVUMeqqiruvffem2A80zR59tlnuXTpEoZhUFtby/Lly2lubsYwDDKZDH19fZw+fZqh\noSEWLVpEMplkaGiITCYzqW6xWIxZs2Yxc+bMwEFscHDwludQKpUiEomQSqWoqqqivr4eTdMYGxvj\n5Zdf5rHHHgtU03y72UgkwqFDh/i7v/s7crlcAF2WK8n5ee7du5eDBw/y0EMPceLECTo6OohGoxQK\nBfL5fKDq6LdzMpnEcRw0TaOiooJwOMzw8DDZbJaWlhYqKioCwCoejzMxMRGAU+XqjUIIBgYGEEIw\ne/ZshBCTIFNN06ipqQlAOv+48nb04Sq/bLW1tRiGweLFiwNoz0/rjjvu4I033iCXy5HNZidBir7i\naTweD65FhUIhKG9vby/Xr1+fpPRXWVnJxo0befDBB4Nz24dz77nnHt544w0OHDjA5s2bWbhwYTDm\n/XPBH8/l5091dTXFYpG+vj7a2tpYvXp1UC6Qtr8+BNfQ0MAXv/hFZsyYcVO7zJkzh0984hM8/PDD\nPPnkk1y+fJmnnnqKr371q0SjUVRVpaqqilWrVmEYBjt27OCFF17gueeeC2xni8Ui3d3dXL16NeiX\nlpYWUqkUP/7xj8lkMsGYz2Qy1NTUBMBiOXTsg5nlUGYul+Pll18mn8/T1tbGuXPnbrpmvfjii6xe\nvZotW7YElrj5fJ5QKMTWrVvZtWsXb7311iSgFeT1tKurKwDk5s6dy4wZM3jyySfJ5XK0tbWxffv2\nAMrzrwXlafhA4aVLl3AcB8MwaGlpQVVVrly5wl/91V/xla98hbq6uuDc8GFo/x7lg35NTU309PRw\n6tQpvv71r7N161ZWrVoV9Kmfb2dnJ6+++iqHDh0C4KGHHmLTpk18+ctfpq2tjSeffJInnniC2trS\nOlF55PN5XnzxRZ5//nkAPvnJTwb3GK7MgQAAIABJREFU/mg0ysjISABGT1WGfDfhp+HfK6djOv6l\nY3okTse/mlixYsVNkNo7DXO8G8XOMWtOM3fcccfb/v6fCxgoV7c7d+4c+/btY3BwkFwuRyQSoaGh\ngS1btnDHHXfcEpxTFIXVq1cHEtPvJo3777+f733vB2SuH0QNVaBGajBCISzLlruB7AJCMSYrMJWB\nFUbtMszxqyXr4E0bb+tn7zgOTz31FAcPHSZnCsLNW26yJBZhBdRKqF7hQWhHIHsdMQxu7ToJvija\nFIDMLgFQPsTi2HB9twenLSgpbxG8yy3ZEU9clh+oMUSmBzfTK/OoWw9RD/IRSPDESkk4ZfDNwEZ3\nEnAovAxcF5GVEIuE2ppwY3PBKjAZHlMkBOQUJEQVKYdHPbUuXxUNboZsihNe2X37z9rS7108+1hP\nLUz49p8J6N/jKahd9kBIf/HBlZammW4PGFzj2Z6WjzvHUzdbCAP7pRra0FtS8S8+31PyC0uoLDcg\nwbtAAW6WbDctzKTX1ELx7JVPS/W+6KwpZb0m7UjDM0t9Lr2OYORECezSK6Utsw/PufbkMiTPQHFM\n2v2G62CiXbbh6DFZf6F7MNt8TwHRIADDJtplGqMnpfpbTWupLJOgU/dmWM1X20u0yM99FUcUcIse\n2FTlqc6Vt4sLaBIYdO0ASGP4sPy+YvHNeRs1QLdUrisMEsCOCDDHJQwnPN80x5RtiCOhYCFQQhU4\nuaRcmInNlkBgdJanNunXzxuHOLKtkmdkmfSEhP7K6+A6Jetj15Z5F0flmHdNWXctLuuvegth4xdk\nudSoVNQ0bv1CSLaRKiE5LQH9e+VYCF+T/YuQ4yDsLcSF6uTvx86BVQzOr9IZ6fXdyDEYO+P1lSVt\nml0Lsn1QUSE/V4TXh14ZhFY673woM93t2UgXSn1WHua4Z50dl+dhvKUE5OFINbuxc5DtgcS8Uhn9\n8MFRowKRmIerRuW1qTiGyHSXFExdG9e7bvgr8IoiiEWlJP5EdyeuUKVFc916qRg4/Ja8RvTvLQGW\n5ePQsQKAT+T7cAtJFOGiiSLuwCFMQlIVMd4kocmptvGAXjWP6OzNIBTyN47gWlkvv7sg1kRJCbN8\niN8MCBq1S3EKE5Pur+FwGITAtd+dklUpGxOEmGTVMR3TMR3T8asa9fX1rF59J6dPHOR/PGvz+Y+Z\nvJO1pmQKfvCiDiLC9u3b35GVlf/S/5dR7wMJl5WnMzVmzpzJxz72MR5++GHOnz9PKpXCsiyi0SgL\nFiygvr7+tmnPnj17kgVUMpmkp6cnsOuprKxk/vz5Ny0iLF68mA8//BF2PfM0f/XjCR4ZL7J9fYhw\n2JE72fNgWi4hQyrgdV3XeerZKgZGdRpqXGbUOvzHvw4xlolS1zCH3//935/0cr08Tp8+zQ9/+Pdg\nT/CJDxbYts6e9L2g9NK9pcnksx9J8tybcXa9nuAfXqqkrspm3swiiiKV8vw9GZYlsD0gLpsXuK5g\nIKnxFz+Sz1DzZxXZvi7LXXeU5qFCeOoVuTxvnopStAThkENFzOHpVysQwuXR+8e5/64Mitffc2ea\nfObhUb71k1reOBmj83qIrWvSrGwpSGU7L8bTCm+eivLa8TijKZVEzOXTHx4jEoZ8UXjzMRdNgWjE\nIZVVOdMRJqRLSM/xiBZDlaCcWrb3xbKlta/jQiYHu15LEA07bL4zy0d2TBANOyVgT4BluWTyCkUP\nYKyvtvnK48P8l7+tp6NXZ9+JGNvXTQZO952K8g8vVaFrLh/cnOLXNk8QMgLmC4QI2uKhrRP8l7+p\n59qAzo9eruRn+xLMmWkSjzjkCwrd/Tqm1811VTa/9WCSBc03w30AsYjLwuYC57tCDCU1GqptFs0u\n8skHkzz102p2vxXnkZ3jICAaclAEdPVpfOvpWvKmYMGsIh+8N8XcmUWEp+AXjzgIAWMphddPxPj5\nwQSHzkRYuzTPVz85xBsnYhw6E+XohSi66tJQY7FjXYb1y7NEw9I+ORZ2URS4MaSy93iMN07EOHwu\nQiqn8H99MEkRgW5KRVB/HmBbpgfWKbguvHHcwLR1Zs1fJntSCIavXyQ91o/r2KTH++k8u4fFre9H\nUNaBHt6kqDqKqmEV8wz1XeLqudfAhdmLN3nvE+QiyrVL+7nReUyqRBhRKmqaiSZqEULBNgskh7o8\nxb7dOLaFUFQc1wZVdq5tFVGjYey8nLeH5jVSsWONtIf1FdX8c1VTEY5LbMNyJl49RuboRYSmEl3d\nIs/jYE7uIEKGVH+zHdxCkfGXj+KaJq7jUOjqQ4lHiLYuxMmbCE1a2jrjGZSQTsXOtYRbZpUGilvW\nPP6fikJ8wzKEIsgcu0R632kqH9wEgBIyUCKeGtuJdjJHpLWxEgsTmjsDfVYtQtdwihb5S9cwb4xg\n9Y9ia+NSKVDxlPUUwfjuI+gN1URXtRBa1IRbNCWEqKkIj4T2ETzXsil09ZG/cl1a5HoqhOGWWbI8\njoM1MkH+cg/W8Djp/WcoXhuk4r7VoAhcy0KNR9Bn1mD2j1Lo6iOypHSNdwomhfZeACKLJeAgVJWK\nHWtIPvsmxWsDWMkUWnUCxdDA0CS05rrSVth2CBkGLjB2RNr6atVxKj94D1pljHQiQvZkO+MvHSXa\nuojIivlSWU+TC65OoYjrOBRHxj0QshND15kzezaDw0Okj13EOnYBY3aDhPyEwJ7IUOwZCl5KxRc0\nMeOBTSi6RsP2tXT/3c+xJzIknzuAVltBZPk89Fl1qCEdt2hS6Bkke/Yq9ngGISDe0syM924sgQqW\nBUhosbKykr6RIQrDSbT4u5/TFIbGUISgsrLyXR87HdMxHdPxLxH33HMPP/7xjxkfH6e3tzeA394u\nhoaGGBgYIBwOs23btrf9/TuxC3yncau0fCht+fLlJJNJ2tvbyWQyqKpKIpFg6dKlt31Xpaoqra2t\ntLa2Bun39vYyPDwcKNrNnDmTmTNn3nTshz/8Ya5cucL58+c5c+YMixYtoqKiIgByUqlUYO8Ist26\nurowDIO77rqLCxcu8Oabb2LbNhs2bOAjH/nIbev993//9xw/fpyRkRE6OjoCW9vyNvABmcHBQUZG\nRli5ciU1NTU0NjbS29t7yzYsV3fy1akOHTrE8ePHURQlUOLyVRP9CIVCjIyMBHac0WiU3t7eAO7z\nwb7yfHzQT9f1m+yFy8vmAz+aplFdXc2CBQuwLAvTNIPvfZvLvr4+HEduNotEIvjWpoZhTFK/8m09\ni8UilmUxMjJCMpnENE3OnTtHJpMhkUhMmt/ncrkA7gmFQoyNjXHlyhUWL17M/v37WblyJYlEImh3\nX7nv8uXLxGIxNm3axPz58yelqes6TU1NLFy4kHPnznHw4EHq6uqorq5m7ty5gWW2D775qoeZTIah\noaHbKjD68KOvZgYEIFihUODMmTPYto0QIrBC3b17N8888wyZTAZd14nH48G48q1JfZWxfD5POp1m\n165dfPSjH+W+++7jwIEDXLhwIYA2x8fHuXHjRqBYGI1GCYVCAexXX19PfX097e3tLFiwgOrqanK5\nXHB++PbFfnuDBIVGRkYQQtDUVNq4c+rUKVxv811dXR2KopBOpye1TzmM6sNodXV1Ady5atWqSX39\n0ksvBYqXjuMEUKw/pjRNY2JiglSqpPjv2yL7ynQ1NTUMDQ2h6zoPP/ww73vf+4hGo5PGuQ+RLly4\nkHvvvZf9+/fzZ3/2Z3zhC18IID8/HMcJFP2KxSLXr1/nm9/8JoZhYFkW3//+94lGoyxatCiAn998\n800URaGxsZE//MM/pLq6+qbxUg4txuNxvvjFL/Inf/IndHR0sGvXruBeUFVVRSKRIJvN8pd/+Zec\nO3cuSHvDhg00NTWhKAqjo6Ps2bOH/v5+2tragvPPP1cnJib40pe+RGtrKw8++CDNzc0B5Ofbyvrh\nA5Df+c53SCaThMNhDMNgzZo1LF26lHA4TC6X49y5c5w+fZqTJ09y6tQpfv3Xfz1QNMzlcoHN8OnT\npwPg2h8Xp06dYmxsjMbGRhYsWIBpmsydO5fHHnuM733ve7z88sts3749UHz0r+m+ZbIP5128eJHL\nly8TiURYv349n/70p3Ech69//et0dXXxR3/0R3z0ox9l/fr1gXKkECKwPL9y5QovvPAC586dI5FI\nUFFRwfXr1/nud79LPB7nzjvvJJFIYJomXV1dXLt2Lei3Rx99lPe+970A7Ny5k2effZbz58/zpS99\nidWrV7N169YADh4bG+PQoUOBzbwQgo9//OPce++9Qbv7qoE+HOjDz28H8N8qenp6AKbnRNPxKxPT\ngN90/KsJH46bCqm9XbxTxbny+OcGBhRFYeXKlTfZ276beLdp7Ny5k8uXL3Pw0GEynbsJN92NXjkn\neDiWkJ+0kxVCkTDKsITWlHAlhaGzqE5+knXw7dry1Vdf5a23jpAzBbEFD9yynwJVPQhsaLmxB3I3\nEOlO3ESLB/Hdqg9cCWLhSDipMCb/pXsQPkATnRMsSGq6hqKAne4GRUUYlR7cp3tQURUlVS2pAEH9\nRvlZ5poE4TRfgUva4WKmIT+Im+pA+BBL9Xz0mZswLTuQcwcBashr015pP5zwQTrhqY9NXZl1JUSk\naRKusgsShlN0qdwXqpbf+yEoWaX69qgCqcbl2X8ycUkCXL40RuqSrJtvFRyuK8F9gW2mb0dswKz3\nwuhxSJ6VimtjKRg/f3PX6Amp/hafJxXQbqXIFZkBSWQb+hGqlnDR4EEJI/qglzBk/oOH5ZhUdAkF\nRWeVoCs/n1CNtK71Vd48RUDRcA9ULMa9/rIE4dQw1KyRafgN6KcRbpCgaPa6VDXLyAc7atZI8Mv1\n6hPAe2YJVsv2SjBQi0lFPR+2TLWDmQJUsE3of/0WSnXlISQgNXJUqgyG6iCxuNSWru3BmT3y+FC1\nBC5DdSUVvcJQyXLXMQEHodeAU8S1swglhGvUSOVJYUD1ajm2RUl9Qo5PBd/amniLZ3t8A/pe9epQ\ntgCF641lRZYh2ycBOhcJ5TlFCaXVtEJklkw31S7/r20Ffaqi5VQNg6lj5YA83lPqRPdUE11bgqh+\n3xk1JRhU0aWdbuqy/N6cAFv1yi28+iuy3Kl2CVYmFpeBi26JWBDI3ypIdUI8tUMtJgHPyMwyi2EP\nPjXT0u46P+JdY5Dfh+pk2c1b2CKV2zQnWiTAZ1RKgHbosLQGrlgkyy7UwMYL18G1Cp6NhE2mvw3H\n9FQGZ24vAZr1mwiudb7Spa/kKRSwcpAfwk13IawMwjGJJ2J8/OMf57XXXqO9vQN7rE1eD8om8wJQ\nQglCdcsxapcGk3AlXIObGcB1il5+UZlfdIY8138BICiEuOn+2tDQgHq5Ayvdhxatu7n93ias9A1U\nVbzrXd/TMR3TMR3/UvHYY4/R0XGFM1f6+OaP4DO/bhL+Be+uBkYFf/p9ndF0jIWLl992g87UiMVi\ngEJy4pcrZ3JC3ldlOrcPwzC48847f7lMvKiurr7lC+BbxQc/+EFs2+ZnP93Fj17O8Py+IpvXqKxq\n0dDVHEUTegZ0DrRFuNpnYFkCXYehpMLP3oiAEmZ+yyI+97nPBcoQt4qf/exnYKd5aFvxJrjPD6no\n4UioUIdf25JmLK2w91iMPUcr+K0PjmA7Lo5Z/sKfQHy57YpUM1gwq8iMGpsrvQZdN3T+5rkqnt6T\n4JMfSDK/SS6IKEKhPxmms9dAETC73uSFAzFcXD7+3nF2rM8E6fuxelGBP/j4MP/9JzX0DGp8f3cV\nEcNlVr2JrrkUigo9AzqWLcs3eyZ87mMWddXxwHLJtixUFeIRF6EovHUmimULVrXkqYo7AfinlD3y\n+dOxkO4S0l2KluB8p0HPgE5l3ObD2yT4NhWc0zX5WG7bkM0rxMIOVQmHR3ZO8N93VfPa8Rjb1maC\nR7mhpMp3X6jCdeGR+8fZtiZDaAqvWfTaXtckiPk/v3qDr3+vjuMXI+SKKtm8QtgoQawrWwpsbs3Q\n0lREU5lk3Ts1IiH5XTZfqvyGO3L8ZG8Fg0mVw2fls05NhYMQLt9+toZ8UbB2WZ7PfHgUTZUwX3kO\nrguVcYdf25JixYI83/hhHccvhmmss/jkvxmnZ1CnYArmzDT53CMjVCccpPuqQFdLj3Iza20evCfN\n6kV5nnq2hvNdIZ59vYJf3zFBwZQbihRVWuvato1l5tH0MHuPhbhw1cBVotQ1LcPFxbEsejuOoCgK\nTUu3MHjtNMmBTs4c/BGN89dQ17gERS3bYIQgPTZAX/cphnrOYZl5ahsXU998h1dHl84zrzLYexYh\nFBrnrWbG3FWEI5XYtoXjvcNpXryJ5GAX/d2nyIwPYlsFMDT0mgqsVBY3kwddRZhSZc+YXY/qKbBN\n6jV/Icmzh3WyedIHzpA+dI5i7xCRFfPR6qpKj8FCwlf5Sz3kLl7DSedQo2Eidy8kc/gCuTOd2ONp\neVxtJflLPaCrhJfMJtRU9ix7C7ivPKLrllDoHsAaGiNzWIJ8RlMduJA9donMsUsgRACsKYZnH2w5\npA+dwx5NoYQNlLBBaFEzemONhPFMm2J3P/kr17FGxpl47QThvhESm1fgFi1pfztpniYwh8aY2HsS\nYegYcxqI37UcvaH6pvLH71pG/sp10ofOU7w2wMTek1S+fwOuaeM6Dnp9FWb/KE46O6mu+UvXcC0b\no7kerToRKM6p8QjhxbPJnb9K9lwXFfeWFjyFRwsLz7a3UCxiJlM4+SJKIkLlBzaiVcn+jt21DKEq\ngTJi9tQVQvNmos+skTbFpkXxxgjFawOeBbONCIXYtGkTc+bMYdeuXVy4eIFiVx9m2YVJKArxhc1U\nrFpIpKkhmA/p1RVSDdC0UMIG1sgEqTfbygddMJ6MRJTKOxdT1boYoSjY2TzZ3kFSl7oR3uLxqlWr\n6LjaxfiZDmLzyufnbx+u6zJx5gq6onHXXXe9q2OnYzqmYzr+pSIajfIbv/EbfPvb36a9vR3HcQKV\nrNvFwMAAFy5cwDAMPvShD90SfJsakUhkkrXhO1lTmhq+upi//nK7qK6uZsOGDe86fT98pbDyTVC3\nC13X+cIXvsBf/MVfcO7cOS5cuEA4HGbGjBkYhoFt22QyGVKpFGNjY4HCVSQS4ejRo0E779y5k499\n7GO3VTccHR3ltddeY3x8nM7OzpvgPrhZGdG2bc6cOcPatWupqKggkUgE9qG3spZVVZVoNIphGLS2\ntmJZFu3t7Rw9epSjR4+ycOFCPvGJTwTAhq7rHDp0KLCuTCQSARzlA1VTQUJfmawcAPTHhA8o+kCb\npmk0NTUFlqKmaQZgimEYwTjo6+vDdd1gDutDaeXhg16RSCSAgwYGBjBNk6GhIZLJJKFQ6KY2DIVC\nARDo5zs+Ps7IyAiRSISTJ0+yZcuWoD3b2tq4ePEiuq5z3333MWPGjJtUBMuVDVtbW5k/fz4//elP\nSaVSaJoWQIp+mvl8nvHx8aDut4tyNcRyRcTq6mp6e3s5f/48sVgMIQT19fV0dXXxzDPPkE6niUaj\nRCKRQHVrapr+2CgUCmSzWZ555hk++9nP8uijj/K1r30tgA97e3uDPvThOz8sy+LKlStMTEzQ0tJC\nV1cXqqpSUVERKIWFQqFAEa9YLKJpGpcvS5GRxsZGEokEtm0zOjoaAMZz587l8uXL1NbWEg6HA1W9\nqX0fj8eJx+OEw2EUReGee+4JxnIul+P5559ncHAwAPXKld58+2Bf2dAHR/12mTNnDl1dXXLObtuB\nQuTatWtvgvvKzwdN0/jN3/xNxsbGOHv2LF//+tfZvHkzW7ZsCd6P+CBZZ2cn+/fv58iRIxQKBVas\nWEF9fT0HDx7kr//6r9m5cyebNm0ikUhw4MABwuEwjzzySHCe3A7q9cMwDD796U/z5S9/maNHj9LR\n0QFI2+JCocA3vvENrly5QkVFBY8++ijr168P6jsyMsLu3bvJ5XJUVlbS1NTE3XffTWNjI/F4nOHh\nYY4cOUJbWxsnTpygra2N3/7t3+bOO+8kn88HyoR+qKrKz3/+c44dOxbYqj/wwAM3qYnu3LmTkZER\nXnnlFXbv3s1PfvIThBDs3LmTXC5HOBwOLNaTyeQkwG/Pnj0AbN++PbgmgXS6eO6554L7nO/Y4V+X\ngMCq3Ld51zSNxYsX8+lPfzqAGv/gD/6AJ598kgsXLvDtb3+bH/7wh9x9993U1dUhhCCVSnHs2DGu\nXbsWKPo1NTXx8MMPI4Tgb//2bxkcHOTgwYOTrkuxWIwtW7awdevWQJURYOHChYFNvOM4nDp1ilOn\nTt2yvxcuXMhDDz3EihUrAOjt7eXChQsBlJdOp5k3bx5Xr17l8OHD78jFsTx6e3u5fPkyoVDof4nZ\nmI7p+N8Z04DfdPyrittBarey63VdB3O8+x0pzk2Nf43AgKIoPPHEEwghOHToMLnefeT7Ihi1SzDi\ns1BUl2Ihi5PplyCHmQHXRAgF1UkTNrRJtr+3m9Q6jsMrr7xCrmARbt5yWwgzUNVzLGntGKqGegmj\niUwXbnxBSU0wsMP0HupcFzJXJZRTf5c8NjcAE+24ZloqveUGEI1yJ7sAtOIgjlPEFbpUdgMJvxlV\nk9P2jxCatO8M10vgzExJ294x73e+UhqAHic8YwUhD2LRQ5CamACEZ23ptZWZkvmEPEUS1bdFdkss\n0+TVBPlfflCCXlrcU/671UJRmTWQU/TAQUVCZFpMgkW5fojNAtuSSmyuK2GrUM1kYDDoTG8xUnir\nPbXrQK+CwX3yu1CVzFLoEq6Ke2p4eGDj7Wy0hffw606RTI42e1a2Kami57UtqSsluK9xhyzvVItU\nv62EWqYIuFdCXKl2CV4VR0GNTE7Dzk+CkhBCQkbRJtneg/tlGkaNBDP9fBRN2hS5HoBppT2LZjy1\nPRWp7mZLq1iBBBNzfbIuN4FUulT4yw2WVAhdr/3L6+q6EoLMeoBq3XrZbgjPOtgbSKFqz061Xyrn\nWVlca0KCZE4R17Vw071SNUMIOcbC3ricOgYFcnwIRY4BjpXVISrV28L1EhYlLS1cJzqkhSxCKrTV\ntErL5UyPbCc1Kstipj374UbP8lidnPftonxcT8gFLamK55bgPh8GjTV7SoSesuD4edkuii7LH58n\nx60aksfnrkPqqgfjnYD8sAfjKbJPfXAzUMJ8ywM9Y1BfDm6WlX+SxfCREnzYcLfM11N9xSrtpsNT\nvCF7HayshJcjM+V4AznOk2dwzTQi1y8VNSeFr6pikzWzuONlMGWoDGoW6s3XuuQpGC0fCE7Z9UCQ\nyeR47bXX2LFjB6Zp0tnVjRKuQF7zdBQjgVGzCC0+66YJmRquxM6NIiKzwErhmilInkYkuS0gqNcs\nwcr0URxtx0rdwDWzXLt2jW9961vSLkJTyI5cIlR/xy2fB24XrutQHLlETFff9cRvOqZjOqbjXypm\nzJjBF77w+3zjT/+U0+2DfPHP8mxZY7NtnS1tcZG3lPZrgr1HNY6eV7HdGHPmLebzn//8O7bgW7p0\nKSePv8WB0yp3r373tn8HTqkgDJYsWfKuj/3nDN8iePbs2Tz//PN0X+1k96E8uw+Gcd1KHMfFtiVU\nZtsCw9AQio6rhli9+s7ANvgXLfB1dXXR2dFONFTkfXff3iLE38FeLErAD+ChLWn2nYhyrtNgLKVR\nnbDQVRfLLlndCgGjEyoXukJEww7/z28Nk4g6FE04fC7KK0didPfpfOvHtfzOhya4a7WCaUkFvKKt\nIoRLrigomArL5uUDuO/mtoIlc4r813/fz7ELEfYei9Hea3CuMyztWV1IxBzuWJDn3tVZ1iw3CIcM\nQL74dxxHPgpGQPEIvuFxFduBltkFhALxqFNSyyvLNwAZPQXD/aejCAH3tWYxtNLv/d8WTUHBFNi2\nr/4H6ZxCyHBpXZqjMl5J76DGpWsGy+cXyRcE33mhimxeYeOKLPe1ShU7P/w0bEeKmmmeiqKuwX/4\nxDD//r81MpBUWTo3z3s2ZgjpDrWVNlUJJyibrruB6Put1rXyRflhOFS2SKnA1rUZfrKnkn0nY2ia\nw8qWPG+eijGRUWhpNnnioVE0vw386Z9/ivr5uNDSbPLZj4zwJz+o4+XDcZpnWFztM6ittPmDfztM\ndYU8qGB6IJRSvoAiAcTmBotP/VqSv/hRLQfaomxbl6G2UjayADTdwHULWJbDS28pvHAgTN6MsKj1\nfnQjjGPbjA91Y+YzRBI1zJrfSnXDfK6c/ieyqWE62l6m+8I+qhvmo+phHNsiMz5AZmJQVsN1EYpK\nNj0SLHTd6DzGYO9ZFEVjyboPUlU3FxC4gTq2DEVRqZ25kKqGeXSeeZWxkavYtok1kUExdGxVwckV\nUKIhXNOi0NVHdN2SX7gIKUCq9ukqqf1nKPYMUrw2iBILo9VWIHQV17IpXh/GLZjguugzaqjY3ooS\ni6DGIqTeOEXx2iDF7gHU6gTWyARCUQgvnYPrOAjHn2tw++mQAIEgcsc8Uq+fotBxA2FoRFbMp3C1\nP4D7Ku5fS7ilydsk4+IUTdIHz1Lo6kNoKvHNq4gsagIETsEEXISho9dXEW1dSPHaEOkDZ8lf7AZc\n4huXS3VD2wk2FdnZPOO7j4DrElk2h9jGFajR0C3LL3SNyLK56I21jD13gOL1IdKHzpO4dxVOvgCq\nIpUPTe+66bqY/aMBwBhduWBKgkJa+56/Su5iD4lNKwKwzw9/wRggc+QCQlMItzSh1VQERRSKQnz9\nUvRZdWTbOihc7iV/sVvCl4LSCey6qB5gaGYL7PrZT6lKVLBz5066e3uwYwZVa+SCvho2iDTPuKWi\nnhoyiC1oItN5ncjKFvSqOJmznTjpHIoLiqGjV8WpuKOF2PxGEIJ83wjjbe2k23tw/3/23jQ6jus+\n33xurb1iBwgSJEAK3BdREklRG3dZjJ3Iihyvc5JYzomTEyeTyI7jJJOxT+Z4TibnOHYcTzIeKY4d\nO5Zlx4tkWxKthRBJifsiUtzbEw6HAAAgAElEQVR3EgsBNPZGr9W1zIdbVd0AwcX/yT+RHbwfbKrR\nXXXv797qrqr71PvaDm6phEDw8muvYmo6dtGidKEbayyDUZ24bp83Uq6zDyedo2XGzAmOMNOa1rSm\n9U7XQw89xPj4OM8++yyXLl2it7eXlpYWmpubQ0DHcZwQ4Alc6bZu3cpjjz12W/tQFIVFixZx+PBh\nCoXCLSG9yfI8L4wBXbJkyc/dx/+ZisVifPrTn+aFF17g9ddfDx3RA0goiBwNXMACaCwajfLggw+y\nefPmCc5kU2nnzp3kcjlGRkauS7kKFMBHlmVNcJTr7Oxk6dKl1NTUMD4+HoJ2lfGLQgiqqqowTZM1\na9bwZ3/2Z4B0d9+xYwcdHR2cP3+ev//7v+czn/kMVVVV9PX1sXPnTmzbRlVVxsbGcBxnQkzqZAWQ\nTODkFzhihQ8yKwqRSIT6+nqampomAHKV76mcP0E9AjjxZqkiwb5UVWVkZATbtunr6wMmuuUHUa6B\no1UQ1xs466VSKRoaGjh27BgPPvggiqIwNjbG9u3bcRyHNWvW0NDQcJ1DfTA2AQQUAHiPPvoo3/3u\nd3Ech7GxsQlufJXnXzc9t65wZKtU4CCZyWQYHx+nvr6eBQsW8OUvf5l8Po9pmmF07+RY28nbikQi\noYPZq6++GkKjIyMjpFKpEC6qdGEMH8rwwbhUKoWmacybN49r166F0F4wtolEgvHxcSzL4uzZs4yP\njxOLxVi9enXYv87OTjzPo7W1lQULFhCNRjlx4gS6rhOPx8OxC2DiwAEuAPNc16Wvr4+FCxfieR6v\nvPJKCPcF/Q7aXTkvAhfIIC0hON56enqIRCIh+NXS0kI6nebIkSPMnTt3ynEKaq3rOn/yJ3/Cv/7r\nv7J79246OjrYvn07ra2t1NXVoet66EpqWRaqqrJhw4YQBItEInR0dPDyyy/z8ssv09LSQiqVYtas\nWSxatIhisThhHk4e08q5JVMuVnLkyBE6Oztpbm7mnnvu4Vvf+hYXLlygrq6Ov/iLvwjX6T3Po6+v\nj3/6p39ieHiYlpYWPvaxj9He3k6hUKBYLCKEYO7cuSxdupTx8XG2b9/Ojh07eOqpp/jDP/xD5s+f\nHzomBsf6gQMHePHFFzFNk4997GOsWbMmnKOT219fX8+HP/xh5syZw9e+9jW+//3vM3v2bJYsWUI2\nm0XTtNARMNBPfvITzpw5QyQSCR3sgjpomsamTZt4/vnn2bFjRwj4VdYreK/ruuzbtw/TNHnPe94z\noc6xWIw//dM/5c033+Tll1/mwoUL/PjHP54AMnueh6qqzJs3j5GRETKZDN/85jdpb29n1apVHDx4\nkDVr1oRR0rW1tSxfvnzK+5B333030WiUYrHIn//5n3Pu3DkOHjwYxn7H43EWLFjA5s2baW1tpVQq\nsXfvXrZv386FCxdCp1JVVfnqV7+Koijk83m2bdvGunXrbvrdM1kdHR0APPDAAz/3b/20pvU/S9OA\n37R+qXQzSE1LzJKLL24JO3MNa+gsipO/Lce5yVq/fj379h8g+0sGDOi6zh/8wR+wcOFCXn31Va71\n9lEcOkYpdRQ8D0UIVOGBZ2NENZLJWpqbm5kxY8ZNo4MrdeLECXr7+nHVGHp16w3fp+kaqqpg2z44\noqgyJlSN4ZWy0mktMmPSp/wf5VyPhG+CyF6jrgzQZLtlRGauB2/wIF5iE25hBCd1yGfyPDwnL+Gt\n2OxJ257kGCaE7+C1QAJBmYswfkmCaUKVTm+xVrxIIyKRCE8a7JKN47g+LFYBLLn+RaiilQG8yRL4\nLnE+9OfaMkYX/NjXyS57ju8sV7nw6kN+CLmvZLuEq8ZOQWkERk/J+hk1sgbKFAu9nh/LijKxnck7\npHucUKB+le8CVimn3McbyfOfrJoKKkzMlW1Nn5HtL2XL8aQN9/pApleG30D2vbLOHhMdAUfPEIYs\nNdzru+tVbmPyyoPv6GZUQ+1d0klv/IJsW/hWHwR0ChLWGj4KTl6Cg2aDBP6copwv1qiMFI61yHqb\nVyqihI9JN8PJ0uISmExfkC5z+R4Jd42dLcN9M7f4fQligCvaFgCoIaj4hoREi0MSJnTzoKp4tStk\nTO74RahecmMoMzg21AjUr/H7cFFCk6W3mRAPDOAUJbjbuFZGVnuOdEE06vzPjUonSEXz6xoAcy7X\nO1pO0Q4h/Kjno7KOZr2sz/j5MtwX1Cdol+fB0OEKJ8gAxhM+NOfJ1/WE3HZhQDr5ZTvLc8dz/eNf\nl9sM9qdFfSfMpol1mDCvporO9l0CAzmFsm0NyJj0ABytXjQJRlVkfPbw27Km1wF+HuDJxd9CSoJ7\nISQcbEOU/79qoXTf7OuQIGqwqq7FpbtirAUiDXj5XtzMFS5e7ubavz1DVVUC3Yyg1i0k0nTrJ5yM\nugWURq/glcZgzq8hcr3SCdXNoeBOAATV+ExKw2fInHsOtzjupyI7IHRGx/PsfHMvpq5SsopgF7BG\nr2LWzrtlGwKVxq6iOHlmtc5m2bJlt/25aU1rWtP6r1Z7ezv/+2c/y9NPP83lSxfYtrfAtj1FquIu\npg65AmTzKigRhBpl7b1reeKJJ36uOPKHHnqIH/zg+5y8mKVv0Ka54fYjqooWvHFUBRG57Qes/rO1\nevVqVq9ezaVLl+jo6KCzs5NcLodhGFRVVdHa2houWsXjcdra2m4aG1ypjo4O8Aqsu9u5zhGuUoZh\nkM/nsV1ByfbQNem+tnpJgX0nY+w9EePd96ex7ArGxP/pfnV/goKlIITHj3cm+cDDaUzdY91dOR5Y\nkeNb22rYcTjOv/y0msa6Ei+8qXGuMyoXH9Ij9A9raKrH5lUVcF/Fw0aVpxy6BvevyHP/ijz9wyqH\nTkf49s9qyBcVPvyuUTbck6dQFBSLDqapIxDyQS7PQ1fLsbsg3epcV7rzxSPelODbBPnw3vGLEcBj\nwz3ZsJ0BBJjJK35kLGGkccmW+8kX5M3otctyvLQnybOvVDNvVok9b0cZGNUwdA9N9XjzaIwl84rM\nnSmvUzxXugCCdOGrbKamwgMrs/xoRzXDaY3FbcWwH4qQV1AAhnbjY6ZoCS5fk5Ojvkpek5Rs2df2\n2RaOKwFA3VP4xx/UYTsCRYH3rktL50JPuu4FY+WBjF42/Bv3fu2WzLVYOrfIqSsRvv9aEoHHI2sz\nIdzn+BCjEIRxx8EamaHL88jW5hJ3L8rz5rE4//ZSDb/72DDxqNxnOquw9+0qdh3RSQ1LR0OhuvRe\nfouh3nN4Hgz3X8DzHBpb5EJDNF7Dsvs+wEj/RVJdJ8mODzLQc7o85J6Hpps0zFpMw8zFnHvrBXKZ\nIU4ffI6W9nvpvrAfgAV3vduH+8B1SjhOqbzApyooEUNGypZU7ljxMGcP/4TMeD+ekJGvAXkZvXs+\n+bcvYQ+lsftH0JvLDyiG4+5Rvp4Eoota0ZvrKFy8RvbAGeyhMezhtIyv1VQJqdkO+sx66j+4EaEo\nuMUSxuxGah57iMKZTrJHzuH2DoEQ6K1NaDVJuR/LRphG+JwViAn7rlRkfguZ3Sdwc0W0xhq0plpG\nn38TgMTapUTaW8JBFQIKZ7soXupFGBo1jz6APqN8LS8MDc8qSXc6TQFUIu2z0OqSjL6wl8KZTvSm\nWsx5zZJ+VVUQUDh1Bc/vW/zepeXLyZsc21pNgup3r2Xkh7vIn7pKfNUilIguwT7XBU3zI437SHcc\nwbMdokvbMOde77akN1SjxCK4uQJuwZLRuuFcInT7w/MoXulDMXQiFfG/5QIIjFn15E9clgeD56E3\n1aAmY4iIgVqdwGxtQolKeFEMjZM7fomB7kFeeOEFIoZJejxHdHYTZsON3V0DVd85n+ylHgqnrxD7\n4GZqZtWj6xqJRHLC+1zbIfXqPsbPyWtSD+nUqMQjqKqGKFikO/15XbDo/NZLzP3d96JFI1PsdaLs\nbJ6BjkOYqlwUvJED07SmNa1pvVP17ne/m9raWr7zne8wMjLCxYsXuXDhQggiBWCSpmnU19fz2GOP\nsXXr1p9r0X/z5s2cOHGCfD5PNBr9uT4bgFZNTU3vSIha13Uef/xxHn30UQ4fPszu3bsZGhqiWCwS\njUapr6+nra2N+vr6EGIKoiZvJcdx2LFjB7lcjqGhoZu+1zTNMKI1OJfr7+9n/vz5IeQUOKRNViKR\nwHVdLl++zK5du1i/fj21tbU8/vjjbNy4kS9+8Yt0dXXx1a9+ld/5nd/hK1/5Cvl8nmQyGboUuq57\nw4fgKsc7mEuBg18wvkII7r33XjzPw7btsH5QngOT4yKD1xVFuaHjfWU9gDCaN2h3pWzbDqGYYLtB\nBG0Q/VksFslkMgwPD/Piiy9iWRZnzpzBsiwikQi5XI4rV67Q1tYWAi5BxHDQh8p6NDQ0UFNTw9DQ\nELquMzo6OgGSq3SQu1HctWmaofMhENYwcEcLQMixsTGefPLJEMhMJpPhvirnTgBfVkYcg4T8xsbG\nOHXqFIqiUCgU6O/vD98TjEdlOwLF43EymQy9vb3MnDmTsbExent7mTFjRhjPWygU6O3tpa+vLwQc\nLcviwIEDaJqGbdt0dXWh63oYIzt79mwaGhro6uqiq6srjFCtdCCsqqqira2NeDzO/v37eeutt4hG\noySTSXp6eibAfZW1C+oeiUSIRCKhu35Qz0QiIV3Y/ThfIQTve9/7+MY3vsGOHTt49NFHJzgZTq4J\nyHsZQVzq7t272bZtW1jfSCQSArmu6/K+972PD33oQziOQy6X473vfS9Lly7l1Vdf5cCBA4yNjRGJ\nRLj//vsRQoRuiIZh3NZ37qZNmzh8+DClUon169eTyWTYs2cPiqLwyU9+coIJj67rPPPMMwwPDzN3\n7lw+85nPhPM9Go2GkKrjOCiKQjKZ5IMf/CA1NTU8//zzPP3003z2s58NI2iDY/uFF14A4P3vfz8r\nVqy4LcD1wQcfZHBwkOeee46XXnqJO++8E9M0w5jtaDSKZVn86Ec/Ytu2bQD8/u//ftjeym2vWLGC\n559/nlQqdd1+HMcJvz/37duHZVm0tbWFTqOBApB35cqV/PjHPw5B2ra2Nurq6kgkEiH4GICip0+f\n5ic/+QkXL16kqqoKRVHo6urij/7oj27JEQTAeEdHB/v27eMDH/gA69evD11LK9Xf388Xv/jFsH+R\nSIS77ror/F3u7OwM3fxOnz7NF77wBT7zmc/cdP+Bjh07xo4dOwD5mz+tab1TNA34TeuXTjeC1PI+\npIYQqKogrqvMar2149xUWr58OTObZ3DpSg+lsU6Mmrm3/dl3OjAQRB1v2bKFkydPsmvXLlKpVHih\n2tTUdNsw31TatWsXxZKDUb/opmCkQJ7EO04ez7UQwqwAVo5B5qoP+PmQWgAQFUckFOXZ8rXhI1Ac\nlDGTASSoJaBvO066k1zXGzjj3UR1DyNWy/DImA/ntd8YxLmusULCM7EZEs4ZfVuu+sTbJPTiWvLJ\nEtNA4McdgwScKuX6CwmuPTXcFlYmcCr0IbsgtjNaATx6XtmRDGQtFFXW0HN9mNCT+wziYrOdEtxx\nfcDOtWRcrJ6Q7mfRZn+FyC2/pxKcE/jgW60EBYuDEKkvw4XBvoN/TwVNQhnY0xPlfrq27KvZUH6/\nokvQ07UlsBf1b+h7lN3E8P+taNfvx3cE9Epj8m96ciLUWelQOFmKIesTmwmjUQmjDR2RgKOiSais\nkJIAnp0p18tKQ+8r5ZUx1/Ihy3lleC45T0JthZSEN+1cGRrT4xCbUwbFPFfOt76dUL1MQqYgnfv0\npA+mTaq/EKCY5doaNRJUHDzgg4D+2GgxqFrktyErwcH4ZCjXY8J6UgA/JudJN8SB3T705kdDm3XS\nyS/Xg6dXI6oXylFxbTzXLve9f5d0+kMB0z/Og/mqVsCCN7gBAEC0SbrMeZ4fUQsifVbGYDeslfMU\nytvIXJ7oBGlUwKlBBG8wl1xPzrfmzb4TZKeMsY63Es5pz5PAJUDdKgmE4nLLU6/KiOH0OQkQFwYI\nAcdcrzzWc11hTLpItMo+XleDZuDtiXHXwchVHCMi2yWHMZiHoQvhJA3ukxCoFi+7H8qcMXBLeEIB\nowq9YRmGPUi2Zw+l4VE8x6I4eOa2gHgtMQvFTOIUx+U8iTQhIvXEEwn0ikgrz3XIde2SMCBI18dk\nO55Rh6qbxGIGdqaX7NBZcCxcp0j+6nZU4zG0+K0BDCc/TKFnL3FT413vetf/0O/dtKY1rWn9V2rm\nzJl87nOfCwG1/fv3kc6XIC9/p5K11WzYsIFNmzZRX19/y+0VCgX27t3L6dOnyeVyCCGIxxMM5kb4\n7is2/+uHS6i3+VX5450a+aJB+8KF1z39/U7THXfcwR133HHrN/4cunTpEngl7lsxdTRvIIEgYkbI\nF/JkCx6JqORK7luRZ9+JKJd6VAQeqh/1qqseigIv7k6w90QsBOVePZDgQrfBp/6XIariLooCv/3u\nUfJFwZ63Y/z10waqahJNNPJbv/Xb/N9f+QcKVpbZTQ53L5RRWZUueje7hz6jzmHdXXl2H4tzrsvg\nx7uqWLusgKL48U0lO7zZCx6TDCDo7NNxXUHRUtBvAMBVmGXhIaHAQlFBVT2aah3S2fJEDOA+RUDU\ndMPY3qgpXRiLlsBxob7awXElKHj8YgQ8CQKqChw6HeXgqRiuB3NmlNh0T4ZViwsoKmjKFDG7An59\nwzjP76xmaEzl+IUIKxcWiJkuug6ZnBJCc5UwYmVd95+MkisK2ltKNNXZpLMKrr+buCnHMBrxWNRa\n5FKPQa6g0NZsMXdmCdeVIGPRdwA0dSiW5H+bQVsrmrxpdZbjF02u9BrUVjmsu6scf1r0I4gNzZvy\nqtg0JBi27q4c+0/GOHY+wl/+P81EDImclWwF29GwbBVFNYhXRclmRhlJXUIoKkIoOHYR3YxTN2M+\nQlFQhIqq6TTOXkb9zEXkxgfJjQ/hOiVUPYJuxkhUNcnYXiGom7mAwoURBq+dYbj3POBR1dBKdcMc\n7FJxwjmvoih4rofn+kVXFYSqownBrDtWc/6tl/A08HDBA6FrRObNwstZ5E9eJnv4HNXvXisXS3xw\ncsrrEVVBiZoYzXVkRfm16Io7MOc242ZyjL9xHK06Dv6CmzA0VF1F0VXUu+eTO34RrwRCVdDrq30w\nUEbVUiohDN0fxor9T26KEKjJGM54jsiSNpzhNKX+YYShE1sxL7wa95CLcvlTV0FAcsPKCXAfIPdf\nkg8OCkXHEx6e66LVJkk8tILxHUfJn7iEMXdGCAx6jiu3CUSXz0MowUOIN7jWqJDeWIPROgPrah/5\nM53SMbB7AM9xsTpTFC/0YA+nwQPzjpkk7l9WXsQKXERcV7ZFl9fznlWCSsDPccLr48K5LvBArU2i\n1SUl2TrpRy176CzFS9dQogY1v3o/xoza8MvRA7xiCc+Wi6jROTOoaZ9DquMQ46euYKCgCcHYsfM0\nbVlz074DxFqbMWqSWCPjpHe8RfKhFZjGxMV/z3Ho/ckucl39oGvEls8jumgOGDoKkKyqQlVVSuM5\nxo5fYPStsziZPJeffp65v/MoenJqYADAGh2n98e7ULNFFi1YxCOPPHLLNk9rWtOa1jtR9913H6tX\nr+bw4cN0dHRw5syZCVBPa2srDz/8MPfdd991kNVUGhwcZNeuXfT09JDP59E0LYRnAje+25HneWSz\nWUzTZPPmze9oiFrTZEz7f2RU+9DQEMPDwxQKBbLZqd3CK/cfQHOBU5nneQwMDNDS0hJGoAYKALKm\npqZwTFOpFE8//TTd3d185CMfAaC6uppPf/rTfP7zn+fcuXN87nOfQwjB/PnzWbRoUeg+Fzi2TXYp\nuxGYM5Wb2MWLF1m8eLHvzm6FrnGVMbmBHMcJobTbnReO44QPUFW6IQYxnZlMJqylYRjhdg3DoFQq\nhdBZNpulqqqKw4cPhzBZAMkdO3YMgL179zJ79mwWL14cRggHEbGTtXLlSl5//XVisVjo7pVMyocV\n0ul0uP3KfVUqkUiEUclBO4OaBuMSj8fDyNRSqRQCetFoNKxlZV8r619ZJ8MwyOVyuK4buu0FbbsR\niFnZznw+TyqVIhKJ0NXVRW9vbzhvK2OaGxsbMQyD7u5uurq6ys72SOe2WCwWOkbqus7ixYuZP38+\ng4OD4dgGgFPCNxQRQpBMJhkaGmLv3r1AGb4MoMYAqAzmQTAXo9EohmGgaRrZbBbbtikUCjQ2NpJO\np1FVlfnz57Ny5UpmzJhBKpVi165dbNq0KazdzQDNWbNmkUwmSSQSZDIZ4vE4v/mbv0lzczNvvPEG\n+/fvZ+bMmWGkdTwex3Ecli5dSjqd5tSpU2EN586di67rYZTs5GPnRmpokAl8iqKwZcsWXn/9dRzH\nYfXq1dfFlvf09HDmzBmi0ShPPvnkdW5tAXBsWRaxWIxsNotlWTzyyCN0dnZy5MgR9uzZw9atW8N2\nnz9/nq6uLpLJZPg9Wuk2ejO9613vYtu2bZw5c4bu7m4URSGVSlEsFnnllVdCRzshBB/5yEcmwOLB\n8eQ4TvjbNNktNZjfnudhGAa7du1C13XuvvvuKY9Lx3H48pe/zMjICIsXL+aTn/xkGJMdzIOxsbHQ\nGXTdunWsXLmSL3zhC/T09GDbNqlUiuPHj7Ny5cpb9n/z5s10dHSwY8cOWltbWbVq1XVjfu3aNf7m\nb/6GTCZDc3MzW7du5c477wydVYPvnIsXL/LKK6+wZ88e9u3bx+c//3n+6q/+6qZrPgcPHuSpp57C\ndV0effTR24q5n9a0/rM0DfhN65dS/5GQmuu6nDhxItxGoVAInzLQNSj07EE1q24YNVupXyRgQFEU\nVqxY8R+eKZ9KpXAcDyMx2U3qehmmiW37FyhOEaEYeAHEZmclMBTcGPa8crynW5KAXmx2hcOWK2Mm\nhZCgTf0qvP7dWAMn0XUNM14lT6w8RzI4Qp3Enk0Bok2W5/oxporczuABCQBpMfnUS8lG1zUc18+G\nqrypXRyR8cECCdDEp7Cxn9yEEN6bDKKJCrhP+G6AlSCeAqpWdhsLHfp8uFDx3ceC2NrioB8jq4Be\nCzXLJTylaD6I6JX3C1C9AFJ7JTCVlGCVHCtVxsR67o1r6bnSvQ6kW9hkSFGLyHYYNdD0EAzsh9Ko\nhMIqx46KRQPPLYNZlRccQpFObEMHZT8qHRBv5FBY+flg/iXugNFjst2Bm6IIV3x8ywt5IimcHJ7j\nQ3SK7tdOAbOpwrXRX2qJz/bd1AJAz4fnAvdFoUjQD0XWdfR4GdgzG8pQoVBk/4Qqgb8gnkoo8jVV\n8Z384mCVwCvKtgSOhMl2Gdk8eEDCsWZtefymun5TVCiMwPAhuX3FkO1qvF8CtqVRPwLXKF8AClW6\nPITwaUXt9aiMqXVLhJHHk+f0dfPIKY+VakByIeT7pPunFvPBtMr3e+V5F7g4VkqohBG8+LX0HLmt\n+lUyhjd9TsKXgfJ9Eu7UYmX41rXlsXcrhRHD4xJ0DNomFBg+LBfW7Kwsf6xF1jZc0PIBPU862cn9\nlq7fR+gYqsvvHISchyCPl8ntTJ+TDqhhFHbFPKB8rAkhMM0IemIuqllF9tLPpGOjm74tIF4Igdmw\nhHzPAbyB/dD0EGqsHq0S7vM8cl1vSLhP6H708Sw8t4QAIrEYmmmgxRowG5dRGusk1/Umnp0lc/7H\nRNu2YNS0TQkbep5LaewqhZ69RHWP+++/7x3rLjWtaU1rWreSEIL29nba29t54oknyGQyFItFYrEY\n8Xj8thYMhoaG2LZtG7vffJN8Li3PE/wTAMcVZLM2B08qfO1Hgt/5dQddu/H1jefBtt0qL71poOhV\n/MZv/MZ/VFd/oZTJZMDzqErc2vXQjJhywaZkkcm5RE1IxuRveKGokIh5qH50ampE5aXdSXYejSHw\n+JMPDTOr0eafflDHpWsGf/dMPU9+aBDDAM8TPPrQOAdORhkZV6mqimGaEZ555hmsko3tSPBtLKNS\nX3NzELFSjiufg5jVWOLSNYPRcZW/e6aBP3z/ENGIR9Eqout6uIhR6Qr30p4457sMXBfOdxm3du9D\nmnkFaZ2qIvfvIYG+bEEJGZ1E1J1odCwktGZoMt5YgmoeeIKI6RE1XVYuKNBUayMEjI6rvHUuwpVe\nnaeeryMe8fjor46w4e7chKsaqwSXew2yeYWahM1YRmXHkTgrFxTQ/MumSkCx4tGtEPJzHHjtoARv\nHrorw5VenVxBAo+NtQ6aBorwaGm0+euPD/Cdl6t4aU+SexYV8JBQY8TwQogwapbjhHMFQdScOO/u\nXlCQz/8oHne2F0jGXb8vAssWCMoQowf0DWpcG9TIFxVM3aWu2mH5HUVmNthc7NYZzypk8/L7QVE1\n6bqheqjCwi0V0ZQStidQVBPHlueomm4SjdcglEnfSbp064tXN4UFUhQN1ykhFAUhVCLRKlAUFE/g\nOCU0zaSpZQmuUxHRpqgoqo6iqji2hWP7TnSmvPYSpkZNUxuRWDXZ7JAcBAFafRVK1CCytI3CuS6s\nzn4yu0+QeHA5Ihj5G8xTJ5Mn/drhEBTTaquIr1mEomtkjwwDoMSj2JkCTjqLV7IRuoZaFQMhZP8i\nqg+oaQhDR3gabsHCsx3pPqhr10Fo8prewys5EmBTFYSuoTfVkD95BYDo4jnysxXXtqXuAdx0DiUZ\nxWyfNWWfAsjPc1wUU8ctWniuizFbOteVBtOU+oYxZslFtOzhszhjGbSGarSmmrB5nu0gjFvfC4su\nn4t1tY/CqStojTU4oxlwXYpXelFMAzVmUn33IpT5M+WXgX+/RCiivFjsuHgl3yFGn3h949nyvoxi\nqGHcruLHB3u2I+N8/QPWtUrkjsmH6Wq2rkGfUVu+PRMQ0BVfMoZhIBSFps2ruTaew+kaANtl/ORl\nYq3NJBbcfHFICEHTr9xH17d/RuF8N8L1qP6V+ye8J/XaQXJd/YiYSe2v3Y9alcC1/OuhaDT8jdeT\nMRoeuJP4gjlce24H9t9zOdoAACAASURBVMg4l//f56hZvZjqFfNDR0HP8yhcG2Ds2AWyF7sxhUr7\n3Dt48sknbwt6mda0pjWtd6oqAbV8Pk8mk8HzPBKJxG1H7Z05c4Zt27aFkFOlbNvGcRzS6TSO45BI\n3DwK3XVd0uk0iqIwa9YsNm7c+D/SrV9oZbPZ0AnrdhREnAbAXeDgBUy4phVCEI1Gqa2tJRqNout6\nGJeazWZ58cUXURSFX/u1Xws/u3XrVr7xjW8wNjZGY2Mjw8PDvPbaayEYdSN46WYKYKUAjhkcHOT8\n+fPMnj07BGqCdldGvtq2zbFjx8Joz0pw8WYKnNZA/p4H11pCiBCg1HX9Ope9IF45gN8qI1wDR0LT\nNEMnusCB8MKFC1y4cIGGhgY2btxITU3NhBjbIHpZ07QQbEskEhQKhSnByEpwM/i7pmlE/fMZ0zRD\nB8JKSFHTNBYsWMB9993HD3/4Q1KpFIqihFG24bmQrodOdUHtg78F46TrOsViEdu2GR0dDWsZOOcF\noGmgYH4JIXAcB03TyOfz4ZwJALtgTgb9GxkZCd3xgr4E0FU8Hg9hqcnzyTCMEArTNC2E9nRdx/O8\nsFaapoVxyJPB1yBSWFGUsJ6BG2LgFpnJZMLjpVAoYJomixcvRgjBr/zKr/DNb36TZ555hrq6Olau\nXHlT4FVVVQ4ePBg6QkajUdavX8/q1auJxWJ85zvfAaCqqoqenh7S6XQYFTxr1qxwDAOIN6iPZVnk\n83lyuRy2bYdzdLIsywprIISgpqaGRCLBzp07Aaa839/R0YEQggceeICamutdt4N5EHw/xGKx0FFv\n/fr1HDp0iJ07d7Jly5aw3d/+9rexLIt77703HDvXdcN5czPFYjEeeOABOjo6eP311ydEkb/yyivo\nuk5bWxuPP/448+bNo1gshts0DINCoRDWC7jO+a4SYLUsi6tXrxLEbAd/q/zeePvtt+ns7KS+vp4n\nn3wydBidDMwG46+qKrW1tfzpn/4pn/3sZ8P5//Wvf53Pfe5zt3zYePbs2fz6r/863/72t/nmN79J\nsVhk69at4d8zmQxf+tKXyGQyLFu2jE984hNhX4QQxGKxsD3z589n/vz5LFu2jH/5l3/hyJEjfOIT\nn+C9730v69atC0HAUqnE/v376ejokA/nIl0g3/e+9920rdOa1n+2pgG/af1S6/8PpOa6Lq+99hqv\nvvoqvX39FEsOjuNV3FgGz7bw3CLjF7YRm/MgenXrNDBwCxUKMmJSqFNbm1dKQHihHUB+uC7gIZwi\nnp2VsFM+VY40BQkRNd4nIRy9ynfY6gbjtISVPE+CN0gAzkVjLONbuSsm4Ernv/EL5QjeGy0wVa7Q\nBBCZUCRU5JbkvutX4UWasCxLOlCF5zu+A1u2CwYOInAk+5a5DLXLK8CyyqWfSgVwlF9LuygjUgNH\nLYQEo66LmA1uQCvys5VRtEaNdPEyG32nMhuKAzB+WdbXGoTUTtBroGaJrA2eH1F8CexxsAuyhqWM\njI6NzZ7iCf3gdvgkF79ctw9vmjKedPhoGULUkxJc8zzZz4jfRqFCdBYhlOj3J3BI9BxLjkUIz1XU\nIBosFlF2AAyc4qDs/Oe55RjmUka2SWjSZdCoR8Ymuz5854+LYpT76Bb9LfvAZeiC6P9dj/uvV8CS\niir34TlluC1wQAzgSi3uQ3DV8nUnX3YRRPhgX3lhAkX1Fz9sEP7TLkKR8yQxT7oBuj5cF0CH1Utk\nZG62S87nhnslVFZZz3BYXTmGAwdlW6IzoDAk6xRpkv3I9ZUXQPrfvL6eiTsmOTD6czlwTQwjhytc\nKUM3Px/mxK+vEDL2VwgJqRK4+SkTYc18n3RK1OKTorkrFNbO8R39kP+ONEm3QmusHIVrZ3wQz6mI\nGPbnlufcHE4MxiQ5X7qRjh6Xx4QaAzuHKAyCFkGNVOHG5+HG5k36qCrdEF0HPD+aeVLMtnQyCS7A\nFQk+ggRo8eey5xA6iXoepH03wsD9cAJwXJ4HqqqGMJ4arSPScj+Fzp3gFsl3774tIN6oX0JprJPS\nWCci9QbqzPvAi4d1tIZOl+G+WVtAr5JOr8iLV6Mi71AIBaNmLopRRebiS1DKUuzsoNhXhVG/CC0x\nS7qQuCXszDWsobMoTp64qXH//ffxe7/3e+9oGH9a05rWtG5Xuq6HT9jfrt5++23+4R++TC47Bl6J\nliaHh+91mNng4XowMCJ46U2Vq70qO48YdKdKvOchlzXLyuAWyJ/PU5cVXt2ncuy8AWqSjz7xMZYu\nXfof3MtfDAU3XB3nRuf4ZQkEsXgMcvJ6KFf0SGckuJYtKBw+GyGbE7x1NsrxSyZ4svYfe3SEB1bI\nm7h/9cQA/+c3GrnSa/DTN6t4dF0GAXSlZKSNIsC1M4wOjYPnEjNdHN1jcFTjz/5xBnctLPChh8do\nqnWmhO4qXwsd33QP0/CImQ5dKZ3Pf72JtctzPHhngfnxEGnDceDAmQjbD0rHP8v//MnLJv3DKjPq\nggeZyqWqPIXzPBkRrKoeJQdGxhV0DTRVOvQJcT3cN1mqAsNpFc8VxCIuv7EpzZqlORJRL3TZUwR8\nYMsYh89E+dm+BNcGdP7x+/W8tCfBH71/hIjp8vrhOG8ei5MryJ3lCgqWLTjXafDTN5N8+F1jaKqE\n80DgOAJNnTj+rgvffrmazj75IMy/v1YjY21F+X2NtQ4lW9Dgg5euJ9A0j6Y6G131KDmCXFH2PaLL\n8YlFIJOT0J7nQcSQ7ysUZWyvrnoUBNQkJfBULAnyvgNgNCKjePefitJxSI7TZDXX2QSptiDdErMF\nBUOzMQ2PebNsWpsdVMVlPOty6lKEsWwWy1UoeTJmSTr6TXSAEAgfzNOwrQKe5+I68jpNUXUURUNR\ndVRFp2HWIgaunUFRVBpmLQ4d/oLtBlIUDZcSuG7FlahAMQ3qZswnd3EIz5M2iMLQUSIGSixC9a/c\ny+iL+8ifuISbzRNbvQi9vho8cHIFihe6ccfzuEULJ1PA6hnEK/rRbIYuoToho3hzJ6/gOQ6l1AhD\n335l4qQG9FkNEkrT5IKvW/C340cLB2CdV7RkH9Xy9ZB0Jwwi6gResRR+zh5KA2DOkwBf5V7zp6+C\ngOjSuYgbnPsKNXDx8++JRQw8Sz6cZS5oIXf4HKM/3YuaiOLZDl7Rd0xpa0bRNRmH63p4tovQJ9lW\nVu7Hb5sxpwmhazjjOXJvnZcvqiqKodHwrjXULJ6HoqmMj49LuKJooUbk/BS6imfZlAbHcHMFhK6F\n8bkArmVLwA9w/PdVtsBzHISr4SlyfhTOdeOVbPRZDRizm8rzdALYJ18LXFcAhKJQd+8yerteJxGN\nYjsO/T/bi1sqkVwy74buP57jkDl1BUUouFYJ52qKq1//KYnFbVQtb8dzPdJnroCqUL11DUo0gufD\nfVE/bm2yoo21tDy+ke5/fw0nnSP39kXG376IMHWEruEWLYTtoisqSc1k7dq1fPSjH71t+GVa05rW\ntH4RFI1Gb9tlL9Czzz7LT3/6UzzPQ1VVli5dyqZNm0gkEliWxfnz53nxxRdJp9PhA1XJZDKEfwIF\nLn+5XA5VVWlsbORTn/rULYHAX0YF10O3G2kshCCRSIQOYwE0Fjh4xeNxNE2jqqoKwzBC97Mq3802\ncFrMZrO88MILLPSd5APgKnCwGh4eZnBwMIS0AhAngMImu/ndSEEsagB36bpOKpVibGyMhoYGmpub\nQzAmiIvu6ekJY1UDx7dUKkVzc/Mt9xfMzaAeAaBX+bfJcN/k+gY1A3nvIB6PXxeBGsBsAVwVxIcu\nWLCAdevWMTg4yJkzZ7h69WoIQAVtqampYWRkJIT4buTcF7jzNTQ0hOPW29s7ASSrHIOqqqrwc/Kh\nc+mwZtt26JAYmLVEIpGw7ZFIJIStKq8/AugtiNYNthGLxdA0jZqaGmpra6cEs8bHx8NtBeNhWRa5\nXA7Lskin01iWFUJ19fX1WJYVQmM3mlsBiBnAe5XRucFDGMEY33///bzxxhvk8/nwfDCANSsVuOrb\nth2OezAHHMchk8mEcz6ZTFJVVcXmzZtJpVL87Gc/4ytf+Qrvfe972bRpE1VVVXiex5UrV3jrrbfI\nZDJkMhmuXbvGpUuXyOfzGIaBruusX78ekPeauru70XWd7373u/T29k5oXyQSYfbs2RSLxbAfQfR0\n0OcArKuENoMI30roNZfLoSgK1dXVIXwajUavi6AtlUqhA+LNwOugRo7jhHMrl8vR1tZGS0sL58+f\nD53tisUi6XSaaDTKXXfdFc7B4Pfgdr7/V69eHcJm/f39YWz4nDlz+N3f/V0WLlyI4zih82Qw14Pv\nPtu2OXHiBACNjeVUo8C1MzhGT5w4cR10GAB+QS23b98OwCOPPHJd2yuPaWCC0159fT0bNmzgpZde\nwjRNxsbG+Ju/+RuefPLJm7riDQ8Pc+TIEVRVJZvN8r3vfY/t27ezadOmcK4PDAzQ1tbGxz/+8dCN\nNHCDnOo43bBhA8VikW9961v09/fzve99j+9///skEgkURQkhV5DnDI899hhbt2697d+raU3rP0vT\ngN+0pjVJruty9OhR/vmf/5m+PvmD6QkVNVqPMWMxWnIWuDZ2ppfi4BkZCVvKkL/6OgUjMQ0M3EKR\nSASEwHNu7wktISAWj6FpKtlcrhxjWxqD7hcnvllPVgB5/g+uWSfjSlN7YPwSIjEXMXIEL9MDio6n\nxaBmAdG6NlB10sNDEmjLXJXuWUOHZTxm41omxOaK8H+kAse3AEwyaiWslO2W7l5qlFLVHdjiDrxS\nESwLMsOQvgiOdH7wFKMMLma7IdE6cX8yO6din0G/E77TXj+YNWVgL3Diu5nckh+J60m3uBnrKmAk\nH6CKNUvXvly3jAS1c9KFbeCQhPA8pwxXBg0Vmtz20FvS9S3S4ENNARA5OZbHk8dSEBPr2iEUF8oa\nhcwV+TdPxu1IkBEJqKkGOD5gJxQfcvP35doSPLSG5DYCqEwWwe9uBUyHR+jalj4no1bt62NOsUYg\n0wle4JanV2xXyLFJtsvaKiqUchOBSc+Wn3UK4FVN3PYEdzvFj9sNXgsc0/z9ajG5P9eS8J1i3mBb\nFaBZ5d+EWnYDDN6nx3xAEOkQBxLyS+2WIFxyvoQsrTHpXGiN+n1yZU2FDsUxeSwm22V9HQtGTsix\nLQxcD35aI3IfwRgE8GiknhDy8+wKiM9lailyrIMxgHJMbXTGxP5DOdq40sVxsibXLnAm9OwyHDl0\nGEYNuX+nII/ByAwfTvT7FMQM3+jYDL5bYjNgBHl8KoYEBdNnEMIkfse70BKz/JsEk2LMRUUUd86/\nONYrLrg81z9O/P8MY5x9QFbxj91KKDbfK6PAr3M/DCi/cj1N05zQM726jYIeR7EdVMUme+lnRFoe\nuCUQ7+SH0DQFISy8/r2MDx7FqF+EGp9JMXVCXiw2rsJTo+BYkuU0DPlk1hRl1WJ1xOY8SKFzJ4bm\noWkW1tAx8qmj4cKcqgriusqs1tmhC/B/19/qaU1rWv995Xkely5d4vnnn+fNN99AFQ6a5qFrMDgi\n+OF2jftWuGy+1+buRS7vWuuw/YDC0z8yOH3F4FIP1Fe7LJ/vEYt4FIqCc52C1IgOIoJmxvn4x3/v\nPzTi6b9awRPugTti5VPCU6m6upqhlELPgKCp7taOEAK5oKDrOtlMlmuDOo4j6E5pfPUHdQS/w7oG\na5fneGRthtYZZfey2iqX3/v1Ef6vbzaw90SMR9cX2X8qwXdfjuC6Hk11Je5fkWHTGo2apEc2l6ez\n12b/iRjHLkQ4cjbC2asmf/KhIRa2WhPbVtHNkg0lH9DL5RUEHu/bmObA6RjnOk1+tifJ9oMJ7mjx\niBg1lGzpOpjOqAhFEDGgFPHw8BAIXt6X4LffM8atJAS0z7Y432my93iM9XfnwlNfU/emZIgCJsfz\npKvdwVNRbBeeeM8YD92Zw/Uk1KfrHqbuhSZpj6zNct/yPF98pp4zV03Od5l86h+a5XmI7qFrHq0z\nSjTUSBfEq30a3SmDl/clyBUUfmPTGNUJV8YDlwSmUR7/8ZzCs69U8+axGJm8Qiziki9CXbVDVczB\ndgSpEY1rAxrFkuBSj8Gpy2YICdqOIBbxyOYFJUf2T9Okq6CE7wQj4wp7j0fZeyJGOquE50zprIKm\ngmUL0lklPLOLmh6pYZV/+F49AyOqBMAMj0VtRRlzXBJc7DHoG5KOfq4rUBSPgqWQjLncvzzPurtz\nzJutoCgalpXHcz0sO83RsxFeP5Lkaq9KPj/G2HAX1XUTb+5Xon6aEaFk5WXsqiB00Cvm5BxRNLmA\noBlRNCN641PtisXOMmoKKAp6JC63qygIQ5Pue4qskzG7kZp3r2Xs1YMUL/dSvNyLWiPPse3hcbmV\n4Hrdd44L8qG1+moii1sRukr22EXcUencX+oflu56DbUIQ8OzbOzBUayuFJ5tQ8kD06B4tQ/Plg5/\nIVjnuGDLyN4AVCsb6wuErmKPZHDSWYSho1bFJZwHCLPywTJ/sXZUXs8bc5qmLpwchrB2ItiPqSM8\nD7OtmdxbF8CycDJ5FFOXMcKug5qIopgGTq4QVtwrlhCmcdNxEsjtu7kCVlcKoclFu0hjLXXL54fv\njcdijGcyuI6LU7BQDB1F03AtW7oWuh7RhbMlCOmBWyrhWnbYJ69oh5c0zlgm/LdbtGStBeRPXgYg\ntnxeWIrrvr3d6xezACKzGtDqq7BHc9x9110cffsYg68dYuTwGarvXEBycRuqKaFeezxL+vgl0icv\nIoo2NfEE7//o+3n77bc5dfo0xVNX6TlxCduHPqMr7kBLxsFfvI9EIjeNKos01lJz5wKyb51ndvNM\nstmsXGQsugg0ahpq2LBhAxs2bLilo8a0pjWtaf0yy7ZtDh06xLPPPktnZyeqqoauYefOnWNgYICN\nGzeyYcMGVq1axeOPP85TTz1FR0dH6ACmaVoIKAWQmKZpRCIRWlpa+NSnPkVzc/OtG/MLIsuyQlgk\nkUjc1P01AO9M0wzd226lShe4QqFAPB4P4aMgqlRRlLDGlbGxAQgVxJK+8cYbtLe38/Wvf51Dhw5h\n2zau6+K6bgiAVkbIBuBKsP2bXesFYFHQL03T+OhHP8oPfvADRkZGuHLlCt3d3SSTyRCACwAkXddp\naGhgbGwsBIDGxsamdBKbrABYSyaTRCKR0EEOuCncB4RATjAuzc3NoatX0P+glsGxEI1GGRoawrZt\nTp8+zdmzZ8NtBf2v3LamadTW1jI8PBw60hWLxescEg3DoL6+Ppw/QR8mnMNXwH6XL19m7ty5E8a6\nctvBdgIns+DzwVydvG2QczmINQ6c7Wpra5k5c2b4vmw2y/j4eAhb1dbWhnOyMvY0n8/T3d3N0NBQ\nOHfS6XTY1+bmZmbPnk0kEqGzs5PVq1ffMGkhONcrFAoTwMigPZWAYODYdyNNHp9AgetcZZxy4CgJ\n8KEPfQhN03jhhRd4/vnn+elPf8rs2bMZHR1lcHAwnPeBY2HgpggSCmtoaMA0TX74wx+STqdD98ia\nmhpmzpyJpmmk02k6Ozs5efJk2FfTNDl48CBr1qwJa6dpWujKGAB3lX0KHAsDuG3u3LnkcjmAKZ0S\nx8bGyOfz1NbW3hQ6mzxfghhYx3FYvnw5Fy9eDB1Hg3Pz4LjSdT3sUxA1fCvoPADpzp07h67rNDU1\nkU6nWbt2LQsXLgzbEEQGBwChaZqYpollWWEs8bp164DyPazKqOBsNhuOc19fH4qihO+Lx+P09/dz\n/PhxdF3noYceuu7hvOD7LHht8m/Axo0b2bZtG7Zt09raSmdnJ5/97GdZsWIFW7ZsYcWKFaFb6IUL\nF3jttdc4fPgwjuPQ2toaxvUODAzwgx/8gO9///uk02lisRjvfve7J3zXBFHXN9LDDz/M9u3b6enp\nYfbs2fT09IQAKUBbWxtbtmxh7dq1007m03rHahrwm9a0fFU69l26fIWS7QGqHwUpcIppCtcOoJhJ\nzIYlmI3LMRuXYY1eJd+5A1wLxU7j/jcBBm4UXRzEHy9fvnzKfjY1NaGeu4id6UWLNdzWvgSgKCoC\ngVcYkPeA1Yh0tFI06dKXaJcObFNdrMTm+HGXGUjtxisO4ym6BP/MBjxNR41VSS+1iIdn1krXsnyf\nBM6ynYAHjQ9WbL8S7gvc2JAOdyD3V7dGgn7pC2CN4g0fIzN6Up5seD68hIdiJDCbVmINn8fJDcjX\nBw/4jnW1FfubdAs5eMlskG6D45ehajHleNMbncT4jnWuLduduSxBnpqlZaDnulhfIN4GWhX0vgZ2\nHvAhLUUvO69VgmzDhyX01f8G1N8tndEU3zEwjAD1HQZyPTC4X8KDIMe0ar4cU0Uvg4jp8xK0s0Zh\nYDfgtzFww1P0soteEEXrOtJZbfxiefvXFRIJMCmBq50fhzuwWwJnwZgm50tALGxTn9xuyYcNVQNc\nIYHDurtkPUTFWCimhE6T82XthnxgcuAA1N0D2UtTONq1S8gy7FtFm/P9fr2SEpCE69zapuzrVNLM\nie9xyyf4CFXO/8g5OQZWWsJsgVOk4sOQQd3woUrHAbMe4nPldlJvSGc/xZD1nDDGtgTJ0hfBy5Rh\ny/GLcm4CITxaGTEd2rkEUca+q+O4XIQh0S7fE4CXosJFMzieA3gzOsWNtQC484IVrcq/+f2NzYLR\nE0BJjrGWKAOGmv895dnl4/6WMcOerGcAssZaINGKSJ9FidSjJVvkQuMUMeYoKkLR8OyC/O7BleAi\ngOv4EdGVnfCjkD1HziezHoTv4Be0c9wHIAP3w3AB02+rV74RV+meJ0usYNQvwh08RkN9Nel0hnz3\nLgq90ZsC8QlT4777NjJ//nw6Ojq41ttHcegYxb5DuLaFp9dApAmBh6rJm4KGadwUaQ5gQ10v8YH3\n/wbd3d2kUqnwYjr4/Vq2bNkvxe/0tKY1rWn9vLIsi6997Wvs37eHYiFNIuqwqLXIjHp5o3RgRONc\np8EbbwneeMvgwZUuH3usxMNrXe5ZUuD/eNqkq0+ld0hnLG8gwrxEldqGJjZu3Mj69et/bifBd6ou\nX75MR0cH+/fvwyoGD2IIamrr2LBhAxs3bpyyr6tXr+bShVO8frDI3YtuvZgFEmYSfkX3vB0DAYvb\nLGqSDlHDZV6Lxbq7pOvcVFrYatHaXOJqn8F3fhblwEkTIVzeu36cdSuzGIZCIp5A0zVU4bBwTolF\nraM4LvzbthqOno/w98/W8789McAcHx6cDPdl8xIMs0pw8nIE1xXMm1Vi9dJh+od1PvdUI7mMwvEL\nAiHUgINCCKhOeKy/x+HlPaoE/AR0HIrT2lxi4z25666EJpzKeXD3wjxHz0V442ic9XflQve+IFr2\nRnJdONNp0J3Saah2eGB5Dg/pghiLuChiYj89D05eMnFcgS3TT1EUj2TMZfWSPOvuytHaXEIRku0C\neONojGdfrmHnkTgHTkVZuzTHvcvy1CQd8kXBSFrljaNx9p+KkisI8kUJx61bmWPTqgzts0thG8az\ngg7fKXBgROWLz9Rz96ICeNCdktcAEdPFzinyEignP5gvKvz7a1UcPRfB9UAgod2o4VKwFAzdw3YE\nvYMarv8cVjzi0p3S+cK3G8gVBTMbbN51b5b7V+SIml7Ih9kOvHU2wra9Sc51GeQKCjHT5fcfH2ZF\ne1E+m2cJVM2V7nJ4GJpg7QqLNStyfO1HBm+dMzm174e0tK9hoOc0ViGD69iomkEsWc+M1jtpbFmC\nqhnYpWIIpzmOTar7FB4eNQ1z6e98W7rv3eSE8MYzwsPznRKFpuIVSxSv9jP07HbUqjh6Yw1K3KTm\nV+8nd66LwtuXKPUOSehM1zDmzEBvrvVjbB2s7gFK14bwHBdnJE3xch+oKtm9J2UUb02cyOJWIvNn\no0R953fPwy0UKV7oIX+2C2c0g2eV8BRB8eI1Iotbw4kvNBU0FeF64LqyX44bRssKTSN/6oqcE4vm\nyPf7pKpn2+VjyC+WFyyeGnr5GZ7gPZMWsa4rsBAy2lYIUARVj6wmumAO2UNnyB29EIJvQghZYyEk\nmFiwUEwNbnDe7Xk+xFhyEJpK7K52ckfOg65OWNRUVJVEIkEmgPzyRQnz2Q7Fiz24RQtUFadgSTAy\nfPgNhB8dhxAgwM0Vsa4NYrY04rkubsFCqKp0P1QUzHkzr59Pnj8Gvivk5EUgIQSJBXPI7D9NS0sL\nq1at4rnnnmNoZJjRXUcZ3HFEzhvXRbgeuqISUVXa5t7Bb/3Wb7Fo0SLe85730NPTw+uvv86BAwfo\n6urCMzTiS9owdB3DNNE1CYCGEXeA4y+w4tdLUVWqVrQzduQsY2NjfOlLX0JRFAqFArFYbAIMMa1p\nTWta/13V19fHl770Ja5du4bjONTX17Ns2TKqqqoolUpcunSJVCrFc889x09+8hOeeOIJ1q1bxx//\n8R+zbt06/u7v/u462CYAQBYsWMCWLVtYs2bNTeGbXxTZts1bb71FR0cHp06dmvC39vZ2Nm/ezNq1\na6/ra3V1NQsXLiSdTlNTU8Pw8PBt7S8ASkzTpL6+PnTsgjIAONl1rvKz0WiU0dFRjhw5QqFQ4OjR\no+Tz+TD2MnCdU1V1gosfMCGmdrI7Y2U9Ave+oG2NjY20tbXx6U9/mo6ODl544YUQNISJMNLMmTNZ\nvnw5u3btoqGhgf7+fs6fP8+yZctu6airqirRaJRcLsfMmTO5evVqGHF6M9AFJEQ3c+ZMVP+cKoB+\nArBvqsjYYrE44fXJcFVwrlYJRgI0NDRQKpXCGFnHcUJoMIATK4HCwK2x8vzEcZzwfOfatWu8+OKL\n18XlBs5lxWIxrHUAngX7Df4/GPPA0S+IvdU0jXg8TkNDA01NTbiuy+DgIN3d3QwPD0+YH7qu09LS\nwpw5c0K4aHx8nGPHjoUxsYqiTHDVsyyLvr4+stks7e3y3v3OnTtJJpOhmyNImK2xsZH58+fLtdWK\n+QkwMDDA+Pg4IlbuNwAAIABJREFU1dXVt32v5UbR05VjbhgGw8PD/Pu//zv79++npaWFWbNm0dbW\nxic/+UleeeUV9u/fz9jYGKZpkkwmWbNmDU1NTSiKwvj4OAcOHKC/vx/P8zhw4AD33HMPL774ImfP\nniWRSLBo0SIeeugh7rzzzvB7IhjX3bt3s3//fkZHR8lkMhw+fJjR0VGqq2WSVTC3A6A1mBPFYjGE\nSIUQYSTvpk2bwgdhgtpW9jsYpwC4m+wuGbxvqn8H7UkmkyEU+rd/+7e0tLTwl3/5l6RSqdANMpgL\nQAhT3uwcPJ/PY9s2hUKBpqYmlixZwp49e0JnvWCbhmGEUGmhUKBYLGIYBqdOnWJgYCD878D9PJgD\nwbyMx+NhVPWBAwf44Ac/iBCCUqlEJpPh8mW51rZs2bIpnQcrwdapQOgZM2Ywb948Ll++zAc+8AEO\nHTrE7t27OX78OMePHwcIgcRKiHfVqlV89KMfpaqqiq1bt3LixAm2b9/O8ePHURSFGTNmsHjx4hBo\nDI6PStiwMnJdURRUVWXLli185zvfobq6mr/+678Ood94PD4N9U3rF0LTgN+0poU8iX3qqafYt+8A\n2byFo8Txauch4rN9l6YS5Prx0udxiuPkew5gZ1PE5qzDrJ2HFqkmc3Ebumozb14rhmH80gIDt4ou\nVs9dZN/+A8ya2czDDz/Mww8/PKHf69evZ9/+A2SHzmI2LpvSwWkqyR92F5G9ImGixvt9xzEk7DeV\nM1mgIO5y6DBevl8CNzO3gFENTlFaGKfHMU0jfDIBz5VRv1qS/4+9N4+u47rvPD+1vf097AsBEtxX\ncN8kUZQoipKszYtkx5YVxXYSx3EUTzKdSXImk5x0opzOcpK4JyftaVuKumNbUo7jSF5oy6ZIkZQo\ncZEo7iAJEiAAYt+Bt9c+f9yqeg8kJCszbXdbxu8cHADvvbpV995f1atb93O/X4ZeFZBX5KpQCPRv\nTlyXGYpvriNAGMcQ0FZxCBJLkWxdKOw5nrKZ6yK53lNzWcMxixjjl7w6yEhaCtfMwuCrwg417lnc\n3jSz5Qqlv8lzYt9WDvK9noLbewzc/DIcG/IDArhSPftbXyXt3aQu9FHxGSwBJykxAe/5IJsfSgSa\n7oHxU0INcfQEqBeEfWy4zoMAJSiOeOBdVrSbpED9Toi33Aw/hSohsVBAdROnRZ/4traFIQHOldm1\nup5VsDR2UtQTcNW4p6jX6CnK6UJh0UyLuoWrxPaSVoL7ZM2zpZ1/Q55JAoZKLRcQ6MRp0e+SDI13\ni7J8+DOwQfa2lVShyKYlYfAg6GMwuI8bZlLE69leCCWFMqUchnyP2I9re1CfIyyTjbTXr++ljvke\nk5yBLa4r1Of6XhZ1V0Kin9WE6AMlCUwDdgnUSy6GSKMAG20DioMCsLPzwrZ5/KRo6+KI+PxsOSOH\nRN8kFgvQb+wU2FkBPOZ6RU6UhywDZTfbji2UAV0HCgPifFDjJWjPV+CcrX18mFH2oFO/HyTgpgms\nWdrOV4uUVGh+QOT/wCtCkbBc0REI1PVmsxlGTA7h2B5Ei2jTms2Q7cYFbCkSXK9C4fANNuaGAExl\nxbMdziG5FlgFXDPPzIuID/J6+W4b4lysWH2zHbKRFttF6meofYhwg/ZTFGV29bxEE4WRM9TW1vLI\nI4+wf//+ANh7P0D8fffdR1tbG6+//jonT55kYspFrliKGo4EK/YsyyKfy2M7wlqu3OZBkhDlywpK\n5XL0qfP09fXx27/927Mc7VzMxVzMxS9mmKbJ3//939N+6RwRNcPu27LcuTHH4qaZtqxD4woHT8Y5\nfCrGm2dlprIa/+GXTapT8J+e1Pmj/xJmMhvjgQc/SlVVFeFwmNraWlavXv0TJxZ+XmJoaIhnnnmG\nzo4r4BbB0YlHHcIa5IowNZ7me98ZYu/3v8eO23fyK7/yKzMeEN5xxx289OKLnOvIMzJhvS8VPwDD\nNDxFOI3KpMPvfGocTRXbJmNOYIs8W2kSsGdbjme/p/HaqTixiMPjH5pmz7YcmZxQGcjmsuJhvpBH\nA4Q965c+McFXv1PNyUsR/p8Xq/lPXxxBlsXXt2kJO1fTKiXJkTNxsgUZ04L//sMqNq8scOxcDMeF\nWNglGrFZOM8hrFkossN0VqV/VGP/cYVcUSKkyty9Nctrp+L88w8qGZtSeXBHhlikBJXhCrU53ZC4\n0hvilRMJTEsAascvRLllbQFFfk/OSwylihIvv5nEdmDX5pwQAZcgHnVu2tZ24PkfV3DwHWGnFQ27\n2A5UJmx+51PjLJtvYDsShikFItOyBA/syLJigcE3f1zJpe4wr55M8PqZeHBeybIA7vJFGdeF5jqT\n//MzYzTXCVUxqex4XSR2bc5zz7Yc3z+SZN/xBCcvRTAtoUL46XunSMRcVBVMS0KSZLIFla/8WyUD\nowqK7LBtZYHdW3OsbBEKyEVD4syVMP/wrVquXg8zOqVQV2UzkVb4z/9SQ16X2LKyyG8+MkFIKx2L\nH5oKm1YWWd5i8IM3xDFJEtRX2STjDoYpUTTAtswZt9mKoqEp8Osfy/N/vyBxuXuarrZDKIorwErA\nMgpMjaZJT/TRdfEw8xZtpKJ2IWP9l5ga7cYoZjGNArKsMNwr4D7LKGLoOULh+Lt0/EyljiChXCjm\npsQ9pOEtHsPBGpnCGp1C7+wPxsi+1awcCRFdt4TIyhaUZBRJlgVI57pE1yzCms5RbL9O8fJ1Mq+d\nwTUspJBKeEkTFfdsKZUVLP4DORomtmk50XVLSB88TbGjD8ewyJ2+SmjxPORQaYK8HJgTiyBlXNvG\ntW3sySL61T5whe0ugBKPYI2COTKF1lDtFeL98i4gvsrfrGH7bVdqtkDVr2iI5xyqSnhhA7guckxM\nYJqjwo5N+IEjrH5tsRjPKRogyUiaN0Eveblu2VjTOZyCmGhL3rURa2hCQHCpGOnpaULhMFHPIcKf\nUPPVWRzdZHr/SbG945I/fRW9Z5joqgWiHcOaaEvXpdg1GFgZ47oU2rqJLG0G3RRtmcmBC3JIBXmm\nUkWw1swSYxDlXVR9lGgEF6Guctddd7Fz505Onz7Nq6++ypUrV8QzKAXCsTCbN29mz549LFu2bEZZ\nzc3NPPHEE2zevJm//Ou/wq5OULNovpfWDkVdxzB0bK+fZthdl5WjKApaYzWF0TRdXV1s2LDhF9Ie\nci7mYi7mYrbo6+vjr/7qr8jlcjQ2NrJr1y527tw5A5pxHIdLly6xf/9+zpw5w7PPPks+n+dDH/oQ\nmzZt4g//8A/58pe/jKZpfOpTn8J1XWKxGC0tLbS0tLzH3n++4q233uL5559nYmIigCf8MY+u61y+\nfJmrV6/ywgsv8PGPf5w9e/bM2H7Pnj20tbVRW1v7vgE/EOPWlpaWwD7Uh7J8G9P3CkVR0DSNfD7P\nyZMnMU0zgIOAwOZyNltHH0TzobDyz/jqYeVwmw8Q9ff3861vfYumpiYOHz4c2LFWVFRQU1ODpmmo\nqsrAwABjY2McPnyYbDaLqqps3LiR06dP09bWxpIlS6iurp7xne7DTMVikYmJCXK5HIqiMG/ePAYH\nBykWiwHsAjcDSX4Zsiwzb948NE0jEokEr5Uv8vD/tm2bycnJwArzxphNac8H+IDAYlnTtEDFEAig\nm/IyfUjoxjr7n9c0DdM0mZycDAAp0zSDNvYhJv85hK9qaBgGU1NTTExMzFAqbGxspK6ujvr6eoaG\nhrBtm1QqFcB97e3t9Pf331Q/EM/le3t7GRkZYe3atcE1I5/PB6Cl/78PPvrWubquc+nSJdatW0df\nX1/wvv+ZYrFINpult7eXVCrFmjVrcF2Xnp4epqenAzApn89z+fLlm/pktrhRvbD8df81/9zO5XK0\nt7dz5cqVoD8kSaJQKKCqKg0NDTz00ENs3ryZaDSKqqqBiuK9995LR0cHP/rRj+ju7ubP//zPKRaL\nJJNJHn/8ce6+++7AKrhcyXPBggV85jOfYffu3XzlK1+hp6eHYrHI3r17eeKJJ2atk39cPqSm63oA\nCNbX17NmzRosy0JVVTKZDKOjozMsa31Azgf9ZivfzyOYqYLov5fNZnFdl8WLF5NMJnEch6qqKoaH\nh+nq6mLevHlB/0aj0WDsYhgGmqbNAJRtW4g6tLe34zgOsViMJ598kq985SvYtk1tbS2ZTGaGgrev\niupbOXd1dfHNb34zUPX7y7/8S1pbW9m5cyerVq0K7Linp6c5c+ZMsOjHMAyOHz/Onj17AqW/8fFx\ngBnnrV9//3c5lDpb+JbalmXxq7/6q3ziE5/gyJEjHD58mJGRkaDtKysrueOOO7jrrrtmqIrLssz6\n9etZv349L7zwAvv27ZuxiNi27cAS+8ZztLwPATZu3Mjzzz/PpUuXAvvtuZiLn6eYA/zm4hc+HMfh\na1/7GkePnaBgSri123HDjUhqZCYkFa6BylWQ68MdfQtzqps8EGvZhRKtJjp/B0bfEWzb5j/+x//4\ngYD5boxyELKgWzhKjFDNSkKJeUiKhmubWNlBcuPtdHb1MfCN57h69Spf+MIXghUYa9euZV5jA9e6\n+zGnrxOqXPS+9m07NuQGBNikxXHD9SVQZkbcOFDxlKYi9QK0kUMC1vLhKy8sy8a2Czds5wjL29rt\nwpY03S5AQd/K0ilTDwMBkZk5D4SbgNGjAqdxTJBCoCVQqpYTq15ILq9jmwaSMQGZTmw9Q6BIZltI\n8fm4uT7PDjVWUjpDBdcoKZ1ZuZJ63QxL3Pew1gGxL2MSJs+I/5NLvBX32rs8sbdh9Jhnn+rBfWoc\n5t0toC8XAtW2coCoeounYtgubH0nzxLYwILYl2+hq4Sg6f4y1cKyLnXdkmVoYiGEqgV4aeslsLJi\nlTguz2JUkkAeP41TGAQ5hFu7rQzS845R1qFqvahbttuzdwamL5Xgvnl7RB3Kc2OGgqOnsKYmhFqh\nY5RgQUkuwVLlueJfW9SEUPrzrYllbSb05toCMC6OCzhOUmcq9Plg2NT5Uj77Kmzv1u9Bo854Q5RP\n2fuSt3+rIH70MciU2RcrN4J6HqymWAJITK2C4rCoW/6618dxaNzlnY83KPD5+5VV0U+NcQE/OoYo\nQ00IiNMPZ7btEXk99rb4O7nEq5PiWVlPlqnUle/WV4K8cUKrvJ/tm1/z287y7KbUuJfTVml/+SGR\nr5JnAe26nmLhT7AZLo6JsmLzxT7THYCLm1gUXK8syxZWgPFY8EDAtm3c4hhMnELy4eORo0haHJJL\ncMO1AugDkafpDs9i2xWgbb5PnGPlFsTujQBkefWd4LXZHoABSB6IWywWA3DPB/bej4KeLMusW7eO\ndevW8ad/+qdMZzuI1i5GicUwdJ1MJo9tOyUFjXcJS7KRpAok3eTixYszLAbmYi7mYi5+0eOf/umf\naL90jop4ht96dIKGap145GZ708Yam8c/lGbH+jx//0I1bZ0qX9+r8esfM0nEYPdWm++/bjIxMcFj\njz32P6cyP8Xo6uoSqhzpYaLhIndustm9zaaxxn+oCZe6TA6+bXDqcp43Xj/AwMAAv//7vx9A+clk\nkltuvZU3j+znme/Y/OFnDbT38WQmm3f5l1cqcJG4tTWPpgqlOcsGx5HAs2q9AVsKvrqXzTfQLQlZ\nhm1rCtx3Sw7LFhvIkouEy9iUxLFzUa71h8gXxWcrkzbrlxXp6NUYGNM4eTnC6kWGWJNQ9rUrSULF\n7/XTcWwbUnGhAHflegjLkqivtvjwHRm2rdapq00KtS3HJh5x6RnU2P92nOPno2QLMueuhnn8Q9O8\nsC/FD95IsO94gtvW5dm6ukAi6pDJy3QParx5Ns7AmIptQ22FTdGQ+NcDFUTCLltXF4I+mW3tkmnB\ns9+r4lJ3mIq4w+3rhdJ3LOIEyoD+9lCC+zQFHtyR4XuvJ4mEXP73x0rWxZrqEgkJ69qCLuG4kM3J\nNFRb/P4vj3HqcoRnvldNJi8HfRXSXFYuNOgZ0qhMOPzxr45SX2XP6EvbEW3ruKDKEIu4PHZfGseV\n2H8ijiwL5cQjZ+M8cFuWsCbywnJUnv5ONYOjEvNqDH73U+M0VAto16+XaUmsXmywZ1uWN8/GOXY+\nxkfuzPD9I0nSOZnViw1+6+MTswKkfrsapgDMHr49g2FKHDkT498Opvijz44R1gSwlxdCg7iuWHwh\ny95kLDoP7XDoGqjGchyWNFnUVQv1sYm0RP+oimEa6AWD7ouvIckyqhbxQFQJLSzOq+mxHgERKg7D\nPedZsOLWWc8jxxbqdZLvu+w9L7Atg4mBKzi2BaqCHFKRkzHCCxuF1axlYU9k0LuHwHGQo2GSuzcR\nbmnwynBxbbvUsBJodRWEGjYgJ6Jkj7WJ9xQZ17LJvHYWramG8PJmZM23qvUmRC0LXEjeuR7HsDCu\nDWCNp0m/8jYV928XVr2WjeNZ9M4IF+xsgelX3sY1LUKLGlGSQvUzvHw+evcQhbZuomsXI5cBi3Is\nAhMZzMExtNqKYMgrlV1RfCtgHwYsNaqD3jcKjotaXykmrSyb8NImssfb0LuGsHNFlGgI1xIAohzx\n/rbE4krXcG6Ck4vtvbiOS2TVAiKLmhh/4wKuLiaTLcPEcV1s2w4stmRZFoopRZOhA+9gDU0QllUq\nG4XVnTOZJXu0Dd66jBwNi8c6BSOwffbHEmb/mGij1kVgyeJigSs+N9tQo8wmORKZHSxwbXGx9Z+L\nqarKtm3b2LZtG74FX/nk93tFPu8pjSaiAkj0FDrKbafxFjj5XwKu6wY5Zts2blgjl8/T0dHBhg0b\nfuI+52Iu5mIufhEik8nw5S9/mVwux9q1a3niiSeIRCIBkOCHLMu0trbS2trKgQMHeO655/iXf/kX\namtr2bJlC+vXr2fBggWBDeutt85+T/LzHPv27eOFF17AMAwSiQTLly9n0aJFMyCu69evc/XqVSYn\nJ/n617/O2NhYoAgFQtW8traWbDZLfX09IyMjP3G/ruuSSCSYP38+qqfC61uClgNR7xWKolAoiHFC\nuc2nfy/hq/SVq8j5kIj/HLFcqe/dlNBAwCS+yuFbb72FLMssW7aMHTt2sGTJkkCBWJIkYrEYbW1t\nvPnmm/T29jI+Pk5DQwPbtm3jnXfeobOzk+7ubhoaGoKczGazZDIZJicnAwCxsrKSqakp1q9fz7lz\n526CXG5sH1VVWbVqFZFIhFgsNkM5r7zufv0nJiZmQHo32sX6+yhXQDRN8yar3RsX//mAZrFYfFfl\nQF+VCwjASEVRArUyX8GvXLnQt0n2oZ/JyUkGBgZugh5d12VkZITq6mri8TjJZJJ0Ok1dXR2u69LR\n0RHAfTe2i19/PzfOnz8fLKCYP38+PT09WJYVHJP/eV/l0bdqHRoaoqWlBUmSAmjPt5fWNA3HcRgf\nH+fIkSMB/FgOPBaLRa5cuTJDsfDdnnv7kFq5at6NbeLvd/ny5SxbtgxFUcjn81y6dImOjg4URWHB\nggV86Utforq6Gte7N/dhV9M0URSFLVu2sGbNGv7hH/6Bs2fPBtDbhQsX6OvrY/v27axZs2YGPOir\nRNbU1PDkk0/yN3/zN4yNjXHgwAGqq6t56KGHAhiv3Aa4vE9OnTrF888/j+u63HvvvUEubNu2jWPH\njnHo0CE++clPBtv4NtcTExMMDw/T0NBQJh4gBW3qXy9uVCYtFosBjLd9+3ZAgJ+33norly9f5uDB\ng+zYsSPIc38cYxhGcI7450l5PY4ePQrAb/zGbzA+Ps7Y2Bi6rmOaJpZlBbniq0NqmoaiKJw+fZpn\nnnmG6elpYrFYoN537tw5zp8/TywWCxQ7M5kMvm2wDxt+97vfpbW1laamJorFYqBsWa7+Vx6+cqKf\nO7OFn5v+HFIymeTBBx/kwQcfxLZtdF0PVPh+UvhKuTU1NTiOc5PlcHnu+8flw8t+O2maFthLl8Oe\nczEXPw+h/Nmf/dmf/c8+iP9VY3x8HMMwCIVC1Na+PyvRufj5i/379/PDH/6IvCkRbrkXQ6kUK4iV\nWR6sSZJQfYvNg2wPTnECWY2gxuqQwxXoE1fR82lWrFhOQ0PDz74yP8VwHIevfvWrHD12QrTV/J1E\n59+KlmhE1mLIagRZi6HGGwjVrkIKV1KY6mVwoI/RkWG2bt0642boYtsFClO9qMlmZC36E/dfTI/g\njh5Hch2hMBWpKQF+ksTsVpdu6QFsfkAAW1oF1G4lsKR0HZBVJEnFLQzCVBtMXylZ3hZHBKhVHBMQ\njJYS6lwzwEJJvDd2AnCgshXizQKWsQ3xWqQWGnehxBuJJqqQlDCWq+KGq5EqVwmArDAsIDZHQGdS\nrAHJzIiyC8PeMV0VMFthsKTwFZ8v7FNdQ4CF+QEBWGlJb9blhoGt6whb3tETYl+JhVCxxoPjtFKd\n/N+uC6NHRftJqgDxAOpuFXCXD4NJSkmNLLBLRbRfcpn4vzDsAUN2CZjyobaGnTdYpJbBhT4g5x+j\nGhUAVb6vBFuGq5DCYkIBx0bJd+FOXxUw07w9wlq3fGDoejakalxYBFs5kVdKXFjnOqZQiozNtOG5\n6dh8m1rFs2YtDAjVuuRyLzelUr4FMyWaaHtcUY9cr3i/ZptQa0ssFq9bOVE315t91VICZKzaIOC1\neIu4Jlk5UZ5jCdW8cqXJ8vCBrxkgoQezjh3zFAg10WeVrVC1TqjqxRd6wJqn3OeDevFm0Sc+4FkO\nECqeup8kQ35QbCfLIkcLgwIWU1Nezqgz+wTEeaYmhCqla4m+1hKi7x0fOnNLP67tWT2/JdpATQjA\nFNeTRtEg1yPOy9Ty0rnhK/6ZGQ+OrSvVYda2C5UgUV+JL3ddXCtizcKuV5JAjkKuu2x/ZTngg5r+\ndSvIEy9XJNXLQQupdouwpM5cQ3ItpMRipFAFLg6O99BCC2moqoIW0pBy/TjDR1FcnVQyTn19HbLk\nICMAbDLdSNkuyF7zrjkWkhoTIKnrCOvoaJNoZ99eOtslVB0TiwVwjH9dcUuKiBLEojEU5eYHB46R\nxZrqoLmpgd27dyNJEg0NDWzfvp3du3dz7733snv3brZv305DQ0MwkD9//jzf/va3+cEPfsCPfvQj\njhw5Qnd3N0XDIlTbSlF3KBZ1HMebuZdU0c+y6v0tzyQbJFnkTbqDXHaaiYkJNm3a9IFRlJqL/7Xi\ngzSO+CDVZS5mj66uLp5/7huE1TR/8JkCNak8kuQSi8x+OwFQmXRYvcjgzbNRugdktrU6pOLQUO2w\n/4TMwNAku3ff/YGythgeHuZv/uavyU4PsmF5gT/+dYNNqxwSZW5JkgR1VS7b1zpsXWNz9orNwOAU\nndeuc+uttwYPE5csWcKJt04xMJSn47rD5lXOe0J+Uxn4zy9E6OrXqK92+JUHpoiFxTaWd3sRmvl8\necZXIEC+KLH3SIpI2OXXHp6ixgPibEdieELj3w5W8K8HUnT0h5nMyGQLMpm8zOikyoXOCLmigm5I\n5AoSW9cUSxyTJCA1x4avvlTD0ITK8gUGf/lbw1QlHQq6TK4oY9kSy+YbLG8xCYVCwQSIZbk01Djc\n0lqkptLmQmeYkUmVdUt1PnxHjsmMwvCESs9QiKPnohw8meCNszEudETIFGSqUzZ7tuX4/McmUWVo\nvx7mzJUo01mFhmqLVHym6phlw9uXojy7t4rznRFMU+JPfm2UqpSw5NVUF8OShAKgt82xC1H+7VAK\nTYHfe3yM3uEQnQMhdm4QanqlBBBtrsigqi6WJWyV/eFSU61FXpcZHFOJx5xA+XB0UkNV4FP3plm7\nVKxad12wbWGvWzREOarsqQt65a1ZrPP6mTj5oozjSHQPhti4XCeVEJDhj48mON0eor7K5I8+N05N\nyg6OEaCgS1i2OIbaSps3zsToGw2xpEln7xspbEfidz41TlWybOxb1u8AhgW6KeyZJRlaF+u8dirO\n8ITKllUFKpJCXdIFLEfcQ8qyjKyomHoecKmptDhzJYphyvzKgzofuctg+1qLXVtM1i41kSSXiWlJ\ncFaSSsOCtSxcs4uWlTuYv2QbTYs3o4XjFLITmEYeo5ihfkErsnLDSeW62KZnkRWeecKM9VxgfOAK\nLjahBfUkd20kuXMd4UUNaHUVaI3VhBY3oncNguMSv62VyNImJFVBDnkWu44rfnwVA90gf7aTYvt1\n3KLhQYUSTq6ANZnBuD5M4XwXdqaAkooJZTvDCsqQJAmtoUqAbrqBkzcwro8IADHmX1slJEXxLGkd\nih39ZI+cw5oU9r7RDUtRq5JIsoxSmaR4+TpOJk9oXg1KKg62g6OboMgY3UPYmTzR1sWlCVX/O8Bx\nPXU/CSmsea+7uJaDUzTJvnEet6iT3LMFJR4FXJR4FGt8Gnsig6yphObXCRDOccUzN00VP951MZjU\nk0U7ZY+cA9uhYs8W9K4BjOvDuLaLk85RaO/FKRRxFQXbMJFNi0LfKKOvnWLiyFnUokXLvGaeeuop\nHn/8cR555BFwXS5eaMM2TCRc0daui9ZYRXRFC9bYtFDpc1yM6yPIkRBaYzVSWKNwphPXsomsWIAc\nCZWGQ47Xfi6eHdfsSnjTFzpxxtNs3byZVatWzXjPV2UxDOOmycJcLsehQ4f413/9V15++WVeeeUV\nzp49y+TkJHJVAmV+LbphBNCqHFKRQhqSpiJ77VsC/UTImoJ+bQBrbJpr166xevXquQmtufipxQdp\nHPFBqstczB4vv/wyZ86cYcmSJTz55JMBeP1e45klS5agqioXL16ku7s7cKKQJImzZ8+SyWS44447\nfoa1+OnH0aNH+ed//md0XWfDhg3cdttt1NbWzni2JssyVVVVLF26lHg8Tl9fH52dnUQiEZYvXw4I\nwKuhoYGzZ88GKny5XO7ddgtAPB5nxYoVRCIRNE2bYXnqw0zvtvjYD18ty1cclCSJfF4s9PH/91X6\nfFjMBwhvhM5uBNB84NC3qGxqaqK5uRnbtmeoBK5fv56KigpisRimaQb7aGlpYcuWLUxMTDA2Nsbl\ny5f5vd/W0gsDAAAgAElEQVT7PZqamgKFvnQ6zcjICENDQ0xOTlIoFAiFQixfvpwPf/jDPPLII/T1\n9ZHJZALFvxsBKF85zrcPjsfjRCIRampq3lPtb3p6GsMwUBSFVCpFoVC4Cawqj59kb6ppWtAGPjgE\nzLBehhLY5x+brxDn3zv6yn3lSn2+Gpuv2ucr/ZVDen7Z5f2naRrRaJR4PI5lWdTX15PP57lw4UJw\n3LOpl/nAKRDARvPmzSMWi9Hb2xts5+eQ3wdAoK5WKBRoamoK1PkymUwAcPoAo69cqSgKVVVVVFdX\nU1VVRW1tLVVVVTiOE5R3o9KcH36bKIoSXN/KrUx9O+t77rmHL3zhCzz88MOsWrWKlpYWVq5cybJl\nyzh69CjJZJLf/d3fpaamJrA19fuqHAIbGBjg+9//Pm1tbZimeBZgGAajo6Ncv36do0ePcuzYMXRd\np7m5ObCj9UHBWCxGJBKhra0NwzDo6OhgcHCQeDxONBoNVBp9a+bJyUn27dvHiy++SCaTQZZlHn30\nUUKhEKFQiMrKSo4cOcLQ0BB79uxBVVWKxSKmaTI2NkZ/fz+aptHa2npTTuu6HuSXDzQ7jkOxWOTa\ntWvs3buXaDTKk08+GQCaLS0tvPrqq4yMjLBp0yaqq6sDi2rfVtZX3vPz2e/jnp4e9u/fT01NDZ/7\n3Od47rnnGB4eRpZlzp07x+nTp7FtO3i2MjU1xbFjx3jmmWc4dOgQlmWxfft2/uIv/oKPf/zj3H//\n/Vy6dIn+/v4A5tN1HUVR2L59O83NzYyOjlJdXU02m+XkyZOsXr2a+vp6crkcx48fBwjmd/woli04\nCofDsy5asiyLF198EV3XeeCBBwKrZb8N8/l8AOn58K4fg4OD7N27l5deeomXX36ZgwcP0tnZia7r\nbNy4kZqamiB3w+Ew0WiUSCRCOByeoXBYfi0Ph8P88Ic/JJfLceXKFW677bb3tdhqLubi/0v8NMYR\nc4Dfe8TcwO2DH7563+j4NOH5O7HUKizbFmpD72Udq0ZBi0OuF8dIE6pZjSTJuK6NlR1EokTpf1Ci\nHISML7kfLTnvXVdESZKEEqlETTaTH+9keLCfVCrJ0qVLAVi8eDGDgwMMDfSRH+9ECiWRw6lZy3Nd\nB3O6G6P/dSQrjxRrxK3c4AEcPqSHgFBu3L5MSI6J02DnBBwVbRQvOgJokXLdAs7LdArIx9FLoJ2Z\nFvAOTglkiTeXCpZUoVI28qZ4P74QarcJUCy+UMBX+oQAp6wcUnw+kUgYRVXF4M22cV0HKVQlys31\niv0WBqF6A1SvR4rUCptNSUKyikiOsLGhagM03iUAPzUiLF/TV8ApCKAq210CIB1LgEbZbhg7Dplr\n4BQFkFS7XcBJ05fET7pdvF8cFvUrDIrXZE0cU77Ps1ndOvt5IskCqAogP0W0VaRGwIeOAXLMg508\noEtLCTU4vw9dAM/+2FcPkxQPrvL2oyVFfXz4rziMFGsCJQq2KWxhHRPqb8ONNDDjqbavCCgS1tt+\nRNiaKmHRD34db9JBkUp/O0apzrhC8TF3XQB34VpxjJQDfmX798tSvAdFxRHRxqnlAqKK1HlqhUkw\nhAQ20QaoWuvZ5gpVSKKNAugLVQqAzbHEfm9UQgxgRLlkKetHtksAra4jLJLrboFovWhvWfOOp1GU\n7zpQu0VAqyDeD85Hp1S/9BVPva+vBOFKkndeZUQ75brFMalJkQu4Zfnjinrk+gWwhyMsqbPdoi6S\nApIrysv1if7OdXs2va4A0oxxkeN+vvh9E6oUsK8Pj0qqOM5yGK/8AlIOcsoKgTW3DwlPvCP+rt7o\ngXGS1x/dpf2FUqVcdp0SDCt5gKOklv7O94nrkRqH+AKk0eNIrqdgWeiHbLc3TyPhWDqYeex0F4Xe\nI5DpIh5R2HXnTp566ik+/OEP89GPfhRNU7lw4RyOA3KkQpwn4VoBENZuRcpdF23mul7+JzxIWBbn\nhZkWr0XrSvnkQ4+AqipEY9FZrfCMyQ6k4jCta1axffv2d4X32traCIfDnD17lqeffpp9r+yns/s6\nwyMTTExOMzI2SaGQw0XCUBuxJA0xqenlKf5MvORBnR50jJ+bIi+kbDeu6zA8PDIDQJ+LufgfGR+k\nccQHqS5zMXu89NJLXO++zD3bimxvFQ82Q6p7EzB2Y1QlHSbSCt2DISQJNqxwiEbgzBWZyYzGlq3b\nqa6ufu9Cfo7imWee4Xr3ZdYuLfC7nzYJ/4T2ScVh62qbExcc+genSKYqg/FQNBqltbWVd06dp39I\n59DbLumcRF2VOwMY7B2W+O4hlf/2/RDD4xq6KfHZh9IsaDCIhF0Bo5kStisR0txABMxjb2bEm+di\nnL4SYUmzySfuTuO6Ah47cyXCV1+qZnBMRZFhe2uBX7o7zQO35bhzU56VCw2yBYWJtIJlS/SNaGxc\nXqTSA+LCmsOZK1Ge+X41faMqtRU2f/DEGJoG9dUWOzcUqKmwuXgtzOWeCNUpm8XNMqFQCMd2sB0H\n03SRZFjSZBEJOVzuCXO6PcIv3Z3hvlvzbFsjFjaNTStMpFVcF9Yt1/n0vWk+9+Epls0X9+TLFxiY\nlsS5jgi9wxpHzsa4eC1M77DG5Z4wb12M8s2XK3njXIyJaZVCUWbNYp21S3T2vpHk+R9X8tLhFD98\nI8kP3kxyoTOMorj86FiCdE7hifun2bBc55nvVmHaEp97eIrKhHPTuhAQkJ8iu5i2JNop5OK6EhVJ\nm6Pn4oQ0ly88MsHl7jD5okxl0uax+6axbQndlDAMCdMWKoASENZc4lEXj30CxO1O0ZC4cj1EPOpS\n0GVOXoqyfIFBOOTwjZcrMC2J33lsgqaakhqAi9jOMKVgdJOIOaRzMj2DGm9fjGFYMisXGjx8e3bW\n/JYkYZNcKJbUCJGgIuEwmVHoGhAPxzcsF0Cdqgg7Z9cjAYWimYMsuSSiLrop0d4TJpVwWbPECqyi\nK+I2axZmWNlicLknjGGHiSbrqWtahSQLBT9VC5OqbmLe4s2MXD+PUczi2BapmgXIZa4MlmmIsbci\nz1ChK2Yn6Tz1CqaRQ2uuo/qRO1BrUkiyJBTjHDGmtsfTFNq6kRNRKvZs9oA+8Z4UUkWZHpzn5ItM\nv3ISo2sQ17RQq5JE1y8lumYh0VUthJprcQ0LO53DGpumeKUPtSaFkowhqTJKSBPKeiEVeyKDNZUV\nKoLZAkb3EPq1AVzDxs4VsMam0TsHyLx+DqNnCEc3kVUFV5YxOgYwBseQwyHkaAhcF3NgAqN/jND8\nuiCX1KokxSt9OJk8WkMVamU5qObi6J59mTfh6lq2AORsG6N3GP1yL2pVkuTt6wKFcklVUaJhiu29\nWMOTaA014hgAHFeAfLIEsoSkKqJsVQFFJnP4DNbIpIATE1GyR9uQJJnanetxbRcrncUcnaZ45Tq5\nC12kz3VS6OxHyRqkYnHu3HkHX/ziFwNwTZZl9u/fz+DoMNU7N9Bw3y2oy+YR3bSM+MZlhFsaRP0L\nOqHmWux0HuP6MHr3kJhsUxWsiTSSIhNaUA+2g2uYgdoiQCwWm93STzcY2f8WEVnlc5/9LMlkEtM0\nOX78OF//+tf5xje+wb5XXmHfK6/wwx/8gAsXLqDrOgcPHuTZZ5/l7VOn6B8ZZnx6islMmqn0NKZh\n4CgS6rImJFlCiYTESebRv5K3eEySJAH++fnuuLiOS7GtGztXxHEdLpw7z9atW+dseufipxIfpHHE\nB6kuc3FzWJbF008/ja7r/OZv/iaVlZWBItJPWhS6dOlSjhw5wvj4OCtWrKC+vp7Kykr27duHYRg8\n+OCDP6Na/PQjn8/z13/91xQKBTZ70Pp7PU+TJImqqiqSySTd3d20t7dz++23E4/HAWhqaqKqqor2\n9nZCoVCgTOeDIn6kUqkAlvPVnXwYxldJ94Gin7TAzFe7kmUxHvHhLx+QMQyDYrFIX18fXV1d9Pf3\nMzQ0RD6fDyCcchCnXI0NSqBhdXU1zc3NgQ1wTU0NlmWRzWa5du0aK1asoKqqKrCZ9aEoVVVZs2YN\nvb29jI2Nce7cOb74xS9y7733smzZMmzbZnh4GNM0SSQS7Ny5kyeeeIKHH36YyspKFEVh/fr1XL58\nmVwuR1VVFXV1dUSjUWKxGMlkMgD7amtrA2vbiooKTNMkk8mQzWaDn3JVrEwmgyRJVFRUYNs2xWLx\nJ+ZMOVzmQzvlUODatWvZsmUL165dC4AoH4Yrh/r8snzVrRvzzFddDIfD2LYd9KkPauq6Tk9Pz3sC\niSByPJlMEo1GA+Cxu7ubqakpYCYQWA73lV8nXNclm83S3NxMNBpleno6sOYtbxNFUUoqzJ6ic01N\nDZFIhHw+HyjF+cc1Pj6O4zjE43EURSGZTBIKhVAUJbDGTSaTJBIJpqamkCQpgLfKlQr9frtRKa1c\nufKzn/0sn/70p6moqAiARdd10TSNV199lZ6eHnbt2sWOHTsCYNAH1VRVDeC89vb2wGLXdV3Wrl3L\nhz70Ie6880527NjB/PnzGR0dZWxsjEuXLtHW1saaNWuIRCIByGvbNvX19Rw7dixYFNPb28uxY8fo\n6OhA13XGxsa4du0ar7zyCt/61re4du0apmkSjUYxDIP9+/czPT1NIpFg3rx5tLW1MTIyQn9/PytX\nrsS2xbxdQ0MDb7zxBoODg+zevXtGrvlKiyDUP32VwUKhgGVZ7N27l76+Pu677z42btwYLN7x+6Or\nq4v29na2bNkyo0wfVlZVNbDpDYVC5HI5/vEf/5FcLseuXbs4duwY586do6qqioceeoiRkREmJia4\nePEir7/+OgcOHODw4cO0tbUF5/5HPvIRHn/88aAetm3z4osvoqoqTz31FA888AC7du3i4Ycf5s47\n72T+/PkcPnwYy7KCvjly5Ag9PT0sWrSICxcuMDY2xtq1a6mursYwDPL5fHD9lSSJeDw+q3LkO++8\nw5EjR2hsbOTRRx9FkiQmJyd55ZVXePrpp3nppZc4cOAA+/bt4+WXX2ZwcJDJyUm+/e1v861vfYvO\nzk6mpqbI5XLB9clxHOrr61mxYgWqqpJIJIL2LFcC9a8doVAouCZMTU3x6quvBtf9zs5OduzYMef2\nNBc/lZgD/H7GMTdw++DH+fPn2ffKfgw3QnT+rRR1Hcd2kZRym9J3CS0lgBgzhxqvRwmnQFIwJq6S\niEXYvXv3z6YSP4O4EYTUkrMpmt0cshZFCiXQJ7uZnBhjz549wU36pk2bGB0ZZniwH32yC33iKq4H\n7bi2iWNkMSY7KPQewZnuREGs5HHjiwRYJGll0JQHBQWzWWWyBCD6cvyU+GzVegFnuo4AgcbfgfRV\nAaqocaFkV71BgICJxeI1K+tBQ6aAdWLzhCVnYUAATJlOUV68Raja+SpRICCvaJMAi4xpZDVMJDUP\nCQJpbce2cR1bACqhJFJ+QCj/5Xo9O+IaiDUL9cLiiICtmj8kgD5JKgPHXDDSAsSRNQEuFYcErOcr\n/xWHy6A5CeKLhE1v9prYzi6K7eyiBzf2iGN3XajbIWA/My3aKVrPzbNZZcp/wbH50JYm9q2PCKit\nZqtQXJMVqFgp7Fd9ZT8fnMIlANLkG2ZRJUnUozgKSljYkWaviz4zM0KlTI3j1my9gdFzSmCS5JWt\nVYCVFgp1OQ9Iq1jt1fHGkEpgmK8q6Le/EgYcoYyGK3Ki5G9UAuACuC9UguMyneJ3aqm3D0+5T6uA\n2AKhZGdOi23CVaXt/bYOVXgKbENCcTLa4KmtefvzYURZLR2zr9g2elzkeGUrVCz33neYoU5YGIHM\nFdG+tds8SNHxfuQSrOZ4cGWms+y8Wi1yJrVMqDlqSXFeWTmR01YW4vOR1DCSEkIKrGA9lbzCCIFV\nrKODMSFyM9NZglEdUwBolWshsRT0cWELne7wjs/LmeKYaKNwTQl0VOOifa28aMdQJYEsQ5AvflPa\nzFDwzPeLc0RNQPUmwFcg9PK1MCgAuXCNUCX0r0+uTaDYF+QEoE/CyBtiH5EGmG4TcLOioaUWivb2\n2k3KdkO6A3u6A9kYJaq5LFzQxKOPPsInP/nJYIJJkiQOHDjA9b5BQg1biS/ajRluxok0IYV8FUUJ\n8r5Nsw9Tdnk56CtTZsU1wzVnAqtAKCRk+2+8IriuQ6H3CFHN5dOPPca5c+f42te+Niu8d723j8OH\nD/H2228xMZnGIIZWu5Zww2ZCda2olUux8mM4ZkEcU7hWnPuBiiSlfg5CKuWma0O2B0kfQUstwDQK\nNwHoczEX/6PigzSO+CDVZS5ujlwuxzPPPINjpvmNR02iIQvTMlAV3pdtbHXK5tA7MQbHZO7ZbqOq\n8HabzOhUhK3bbvnAqJqPjIzw3HPfRCXD//XrBtH3KUwYi0BthcvbbRJj45lgPARQUVHB1q1b6eru\nY3g0R2efzIHjEq+dUjj8jsLeIyo/ejNE91AM202SqqjFtQtUJYqsXqgTCrkonmiY7Ug4zs0qfn5I\nErx0OMXguMYtawpsWlmkYAgQ7r/vrcJ14c5Nef7Dp8fZuaFAQ7VNRcKhOuUwv95i5wZhj9s7rDGV\nVTneFsO2hFreP/+gimMXYuSKMgvqLf7giTEqU0K5zwViYYdl800SMYfzHWGu9oa4Z7tNWBPqw47j\nMDQucaEzzKWuEJrmcq1fI5NXOH4hQk3KprHGZNkCg9dOCQDl//jlCT65J828OgvTkjCs0nf/yhaD\n850R0jkFTXWZTCt09oe42humZzBE0ZBoqLbZsrJA37BGOq/wxrk4/SMaloOn4ieU/ibSCicvxugb\n1YhoLr/9iQmu9YU4fDpOS4PJI3dlgvad2eDgi0ibloD0bFtCUVxSMZcL1yIMjGrsWJenIuHQPRji\n9vV51i/TxVDSuw1WZIiEXKIRl9As56PrQkO1xb7jCWxHYkWLweCYxpEzMc52RBidVGhpNPn4XWkx\ndHI9KE8XiopIEAu7hEPiRsrfvmsgJCx3d2ZoaTQpf8btUlIW1E1R8bDmYjvCzDUadknFHV47HSdX\nVLh3e0mJRdg6S8HBS7JLPOKiqjAyqXC6PUpDjcuGFSVrHcsUE1DVlTIrFsOpSxKTk2kq6xajhcW4\n3lfqkySJeGUjY/2XyEwN4tgmFTUtSLKMbeq4jiXWgYQ10dEu5KdGaD/xfYr5SaSoRtXH7kCSpeCA\nXVvcs8vhENnjF7GnssQ2LiM0v14AgLYjPJR9+yZNwcnrTP/oBPZ0DqUiQeqezSRuX0eovhIlFUOt\nShJqrCaysoXw4ibsXBF7Io3RPURkUSNapVDcC8pXFaEcaDkgC1jLNSzM4UmM6yMYvSNYI1NgOaj1\nlSRvayW5ZzNu0cSazGBPZih2DVG8cA1jYEyAabqB0TuC1liLkoiK4YllYQ5OYPaPElrUGACBjm6U\n/Lh9K2JvctSaypI5eBpHNwgvnkd48TxxnC5ImoKSimOn85hDExhdAyiVSdSqBOCKuoHX3t6ko2mR\nPngavbMfFBmtsYbC6as4RRNJkYnUVdFw3y0kl7cggWi7TJ6worJuTSsPPvAAX/jCF7jlllsCRR8/\nvvnNb5Ip5Gn40C1oyThoKrbrCJBSU1FSMYqdA9jpPOElTbgFHTudR+8ewppM4xQN7HSeyLJmUf8b\nrKlc1/HO25nqPunznRg9Q2xYu47777+fgwcP8rd/+7ccOfomg2Mj6Dg4EQ1LldBNg5HRUd46cYL2\n9isUTIPQwgaqb19P5fY1VGxYTmxpM5lL3Ti6QWh+nQejysG1Z1bQQhJKj+BijU6TP3UFNR4hurCB\n/NgktmmxefPmm7ebi7n4/xkfpHHEB6kuc3FznDx5kjfeeIOmpiY++clPBsDV+7EKlGUZXde5fPky\nhUKBW2+9FUVR2Lt3L7Zt89GPfvRnVIuffhw6dIh33nmHmpoatm7d+r63q6ioIJPJMD09TTgcnqGM\ntWjRIhYtWkRPTw+yLJNMJgNVspqaGhobG2loaKCmpoaamhrC4TC6LhaQ+ApkiqIEKnXlymizRTmo\nJMtyAOy4rothGFy9epX29nYmJycpFouB4t/09DT9/f1ks1lSqdSMvPCtYX3Qr66ujgULFuA4TmBJ\nGYvFqKysDFSqcrkcmzZtCpTsDMPg+vXrdHR00N3dTTKZpKuri/Hxcbq6uqivr6e5uZlUKsWJEyeo\nqqriqaeeYtu2bSSTSfL5fACKqarKihUrOHnyZNCmiUSCyspKqqqqqKioIJFIsGrVKurr6xkdHUXX\ndfL5fGD9aRiGp7Yu4C2/zX2FO1/x7N8TPrCnesIXAFNTUzzxxBO0t7czPT0dAJQ+POn3sw/23aii\nWG4F7INgkiQFdfDVGEdHR8lmZ1+45Kt5+fBhOp0mlUoRiURwHIeLFy8GAFh5+MdVrtznK0A6joOm\naVRVVWGaJuPj4zP2d6ONsV9+bW0t8XicXC4X5I5vdwsEcF4sFsO27RkLNPyc9K1UC4VCABH6r/l5\noigKsVgsOI5yuO/WW2/lE5/4RPCarzbn1/Xpp5/Gtm1+7dd+LbDm9SEpv39DoRBtbW187Wtfw7Is\ntmzZwpe+9CXuv/9+GhoaqK2tpaWlhVWrVnH33XezePFirl27xuDgIO3t7ezevTtYPONDs2NjY3R3\ndwcWzKFQiKmpKS5dusTZs2dpa2tjcHAQWZbZvn07n//85/nYxz7GlStXmJ6e5urVq5w4cYIf//jH\nTE5Oks1mGRkZYXBwkNbWVqLRKNFolIsXLzI2NkZPTw/bt29HURRM0wzaDkoqiH4eHz16lB//+McY\nhsFDDz3EvHnzgj4Lh8MsW7aM48eP09/fz/nz51mzZg2JRCKw/PVz3o/BwUH+7u/+jpGREerq6sjn\n85w+fZpcLkdFRQVbtmzh85//PAsXLsQwDEZGRshmsyQSCdatW8enPvUpPvOZz7By5coZ5V67do3X\nXnuNRYsW8eijj5JIJGbkb21tbQAjWpbF2rVrGR4eZmBggOPHj1MoFNB1HV3XWbVqVaC+eeN5PpvN\n9nPPPcfY2Bgf+chHWLhwIc8++yzPPPMMFy9epFgsEo1GqaysDBQVu7u7OXbsGP39/USjUe68804e\ne+wxHnroIXbv3k1lZSVnzpwhnU6ze/dukslksL9yJ8Hy8K+3lmVx4MAB2tvb2b59O7quMzAwwOLF\ni5k37/2xD3MxF/+e+GmMI97HI/u5mIsPbrz++uvopk2oZiVSYOUHsy7BvzEkGVLLcCfPYUxcRUs2\nC+U/7+bpgxQXLlxgcGgYR4mhVbT8u7bVKhZSHDzJwOAQbW1trFu3TryuafzWb/0WK1asYP/+/QwM\nDqGPn6UwckY8KJUkFEUirinMW9CMrut0d1/HzfaU7EclqQSyOcJWBncWuM/1gBhJEaCS6wqAbvwd\noSgnh4SKXXz+TBUyJAHlVKwW8M/oW0IFsH+fpyTn5YmWFMeUXF6CuFyHACwJV4vyR97ETXfguhvB\nG2g4uQGYvoZkZr0JB8V7TuwgWVkYfhNJi0NyCVKmU9SsdqvYp63PrCsuJFqEwpccFp/LdnuqhIZn\niRoXyoITF8Ach/QlcZxqXIBX0YYSiOfbApsZAVble8EQk1hE32uytswOsxxmcm2I1ANyqcxwlfg7\nXFcCnQLlP8+q9EYAqjyiDTAJKDHcSFzAkSNviokHEPayEiUYzfFUA4EZlsSqIux4Rz11Q1eGkAcc\n+nCY1y84vjWsX0bIs9v1j6kROCdgKD+PfFAxqIdUUhwDUQaUgDpcbz+Iz5XlEJlrkFgiPmYbZVav\nrlCQK44I4G3oENTeImyUA9DSU4hzLbFtvh8mzgiFvEidAPxcB9yy+sia2D5zVfyfXOrVWxJ5FXze\ng/zGT3nnlSaOOTa/BHs6ptg2Uiugznw/jL0N+QGk8Xeg/vZgt5ISEq0cqfO2l0GJQVUr6GMl++Ig\nrxcL+FbWRF3DFaINrBxMnYNpReSBawlAbfh1oRoZnSeOO7kMJs+J41FTIjdvUKkLcgFPkVAfF+3n\n6GArkL4IIQ8ctLKBSihWDoaPQM0WAeb68KZjeLmgil0U+mDspABskQXkiwOShuuClelDq1yE1rQd\nc+oajp7Gyg0hS7C+dR0f+9jHaG1tnXWl0cjICLbtEkoIwFisaCzgOgaSFIbUCqTiKG7meqnfrRxM\nnPMmsDxlxHxvSRWxLHyJ+nA4RCgcDr5FzekeZLtA4/wmvvvd73Lu/AUsR8JV4kip5SjxeYTCMRTJ\nIT/Zgz11FVwxERyK1xKuXYNUprwSadpOruOHuJkuAY0i3TCQfJfv73K7YcckVNcKjkmh7wj79+8P\nbFTmYi7mYi5+0aKjowPLzLOsxaaxxkWINEm4s913zRItjRYtjSbXh0J0DcisXuygGwLW+CDZ8x46\ndAicIress0nF/33bblrlUJEwGRzo5fLly6xevTp4r66ujj/5kz+hq6uLgwcPcuzYMSZzOuTE/WIk\nEeP223dy991309bWxlf/61c4cSHKQzvSJBC3SJGQUIkzbYl8EWKRm/vOtuFSt/h+jkYcCrrE+JTC\n139YiQs8fHuWT9ydLolpl1ie4LX59Rb/2yfH+a8vVXOhM8J3XqsgGbORJGhpNLl7a47b1uUJqUKp\nzXY8q1pvHcE923KcuBDlSm+Yty+GuGOTzalLLq++leBSlzbjK9z0XEqHJ1T+y7erqauyWNxsM5lR\nmF9n0rqkSL4o6uxHLCLUDC0bdm/N8e1XK1g8z+C+W3JMZRUyOZlI2KG51mJxs8FbbRHyRpKo5FCZ\ncNi5Ic/uLTkaaywkSdjXnmiLsv9EguvDGrop8/y+SloXi0mVukp71uGJaLjSn2HNpaALpTzfDre6\nwsJ1Qxw9FyOVcNA0mFcn4LNoyMVywDAlVNUlpLkz+uTGqEo6RCMuhaLEE/dPsv+tJPtOJLjSEyIa\ndrm1NU+24D20LytDliAWcVC82x9VcYmGXH7joxN09DaSzsmk4g65giyEkUvM24x1FdGwOEYf9gNh\n93+nozYAACAASURBVOsCuYIcgIViH8LSV+SVUKD0518dx38YD5J3DXIdO1ACUNUwS5odbt9ocOAt\ng9G+iyxavQvXcTD1ArKiIisqlbUtLN/0IO3vfJ+Ba6eYGu2hbkErNY3LUbQQcljDlSA70s9I9zkm\nhjqxjAIONhV3b0MOKeA6uGapopKq4BQNzJFJ0adLmkTlVQXJsnFtRyja2TaSIpN54zx2Jo9ak6Ly\nwzuQo2FRlqp4cFzpCqvWpqh8YDuZ185SuNTD1I9OUPv4PciREJKqoABKMga2g6SphJc2kdi1AWto\nAnN4Alc3BfQXCxNe0kSorjKw507etRFsm8KVXlzTxsmXqTjaYE1kmPreG2jza4msbCGyeiHWyBRG\n3xhT3zlCctdG1IYqTyBb8iyGSyluDo6TOXQaJydUwItX+zAHxggtqEeOhHAdFzudQ+8ZxrUd7FyR\nzMFTFOqrhIphSz3g4hgWTrZAsf06xav9uEVDwH+OI5QKXRe1JoWdKzJ19iqFgTGaPnon9Xu24d61\nhe7/tpeQ6fBLv/RLN9nfBsfrT2jiosQE+BeJRLBME8u2sYs64YWNpO5YR/r1c+jXBtAaawjXprBG\npzCGJgTsmCuSPXqBxM51AkwscyCwbYd8oUChWBTWUJEI+vg0E8fPE5VV1q9fzx//8R/TdvEihFTU\nmhSR1QuJLp5HKBYV35mWzdi5K+Qv9eCOp0GSiMyrJbF8QVCXUHUKrSqJMZGmeKWX8MLGMsv0936W\nKWsqhfbruJZNtKmO2js30fuNlzl+/DiPPfZYoKg0F3MxF3PxixYXL14E+H/Ze+8oO47DzPdX3X37\nxsk5ACCIQCIHIgogSACkbIq0SVt+R9KKoqUnWdTq6PisbTmsdNZv33r1nldyfLYVvFagpEcrMdsy\nEwBiQBCRGIRBGGCQZgaT89zcod4f1d333sEApLTyvrU03zk8xMzcrq6qru7b3fWr72P79u03wUPv\nRvfeey/PPfccFy5cAAhgqJ+n5yEpJXv37sW27SBm9yfRkiVL6O7upq2tjV/7tV8rccZat24dq1at\nor29nT179nDu3LkAnBFC0NTUxM6dO9m+fTt/9md/xsmTJ0uiZP1I0XQ6TSaTQQgxa9RiMYyiaRqp\nVCoA8/L5PGfOnGFycjIod6Z7nJSSkZER0uk0a9euJRqNBu5ooVCIioqKANCCghNhcZxsa2srFy5c\noKuri8nJSUKhEMeOHePo0aOMjY2V1Nd3zjt+/Djnz58PHPxc12Xz5s2By5cPh/luYalUipqaGpYv\nX05nZydbt26lpqaG6enpwFFw/vz5lJeX84Mf/CAA+TKZDMPDw4yOjgZl+jBCbW1t0I5cLveOTnjF\nKu7L4uhY302up6cngJz8889vh+M4gUNecRkz5bv1Adx3330cO3aMGzduBE6AM/vWr5cP6fn79ffT\n3d0dOLv5cJsP4xVDRH59/HFULH+O2C+/GOjzQUDgHfuy+PgKIRgZGaGqqgrDMMjlcsRisQDIDIVC\nGIZBfX09juMwOjpKOBwOgDQf7vPhMt9lzh/H5eXlfOITnwAIxoVfXyEEV69eJZvN0tjYyLx56v40\nEokEcJ8Pf+Xzeb7xjW/gui67d+/mwx/+cNA/PtDqR8vqus66detYtGgRf/qnf0p/fz9f//rX+e3f\n/u3ApdN3A/Whxscff5y1a9fS3t7O0NAQWe/+u6GhgW3btgVuoFJK/uAP/oA/+ZM/4caNG4Hbnl+X\nVCrF22+/TWdnJxs2bGDbtm088cQT/OVf/iVnzpzhi1/8Ih/+8IeprKwMxkcx3Os4Dvv27ePZZ58l\nnU5jmiZf+cpXmD9/PosWLQr6/sKFC4yMjJDNZrl69Spf+MIXWL9+PVu3bmXhwoUBeHz58mXa2to4\nc+ZMAAgODQ0xPDwcAKPT09N861vforu7m8cff5x77rmHS5cu8YUvfIFoNMpnPvOZm1wufflx5H48\nrt+/vjMiwOOPP87ExASnTp3i9OnTrF+/nlgsxunTpxkZGSGXy3Hs2DFWrFjBPffcUwLT+ee3bdto\nmkYsFiMUCvHqq69y/vz5IPb+k5/8JNPT08TjcVavXs29997LXXfdFcT7Dg0N8frrr3Po0CGmpqYw\nDIOtW7eWPOtVVVXx9NNPMz4+TmdnJ5s3bw7+drtnIt+99a233iKbzbJ7924GBgb43ve+x549e1i3\nbt1tz8c5zel/Fc0BfnP6hVYx8AAUTSpIeDeQX7QRxk/jetCTdC3wHih+nnQTCPkTSAgNs+YucqOn\naGtrCwA/UF+mDz74ILt37+bs2bO0tbUxNDREJpMhGo1SX1/P9u3baWtr461DR9TLUzulHLHKPJcz\nTQfpOTM5uSLYqUipHgXZ+O5ibh6SlwtwX9PuGXGmRZCgQG0Xn6egucEDqg6aqdzdyu6ESJPnACBL\n3b40A3x3tVircpOzUqTHrmGlx5GTl5B2+hY9pyGEJBLWQOSwp89i5XPIUKVyrQriZf2IT121K1Kv\nXNvstIKI6t+jPlcMA0oJ0oNQfbgx1lLoN3/oh2tU+9K9CmJK9agyJDe76QWace5ohgd1eQBtAOq4\nyjnRdzDzASfd9PowP+Pzt5Dw6+FAzUakeRkx1o6QNlILg1nltb14m6JY1JIuD0HdNuW25lpq3+6t\nVqJpnuvZLF+jwnOfm7mtmPFDcay0tChAfxRsO9AKx8UbQ4HrXbTR208RJIYGTTvh2o/A8qAyI67c\nKKMNCpBzxhS8mbzqQXJW4TzQQl7/F4GQPuBmecCiH3HtRy8Hx9w7puleVU7TbtX/qkE3g5pCUw6H\noXLo34NM9iAil6BiaaGXdBOph9X5rZkKWo23AouLhpqYBQQV6jyp3VyIz/YgVyFMcLNIOwXDR5Sj\nZ9li5ZYXaVDXl4E9yo0v2lgYL1rRiyHpqnaOHPXKNRVsOHaq9EALUTiubk5FgU90qOtXpE79zbWU\ni6J/PKQVHHdhlikQsmwRpG8gh49iTVxTw2H+fWoV3dBp3NFTVFdXl1xfZyqbVRNvwnMWNMNhbNtR\nD+BODqGZULdVHdFkjwJA9ZC67tnTypjQtVTcuVmpAFjhj2aJdG1s28FxMti2QywWw82Okb1xiJDm\n0tPTQyZnIfWoB1Y2I4WGK8C2QAgdN34nRBcicsMwchxr4jppDgRtLfS/LHwXlLhkvsP3dqbf62M1\nBm8FoM9pTnOa0y+SUil1XaypKEx0gALC3uUTETXlDt0DkMpAJge9Qxqg/1zF8x47dgxkjp0b7Xf+\n8AwZOty33uHFAzmOHj1aAvj5WrhwIR//+Mf5yEc+wtTUVLCCuaKiAsMwuHjxIj/4/vcQQjKd1nir\nI8bD70khhETXIRFxSWY08rbASQvCoQIYBnDoTIxMTh3NZFojbwkOdcTIWxqrFmdL4D6gBMqS3s+a\nUA6B//uvjPOFb9YxMmGweUWGravTLG7No2sKYMvnBbZ3G2mGZLAuy5Wwa0OKSz1h/uWgzmuHoHfY\nQHifW3FnlvK4i+MIegYNrvab5PLKbW5gPMGNYQvTcHjP6jSZrIZEeq7oCqLTNYlpSLJ5wca7M7x0\noIyrfSYjE1ke2Z4kkxMBhNYzGOKZfRXEIy6blmf42CMTJGJuSR9Ew5L716e55+4sb1+I8N2XK9nf\nHmNsasYz02wShT+HDEkmL9CFiunN5UVwB326K8KWVRkEkrChOjxnCaJhl7wlsCxBNCwLT6e3mGPW\nNUViGrrg/nuSvH40Tk5qCM2lpc7CmWEirml+nxU9jngwZyImaW2wuHg9rB4b8cBAWQrqmYYC9ERw\nP+h91g3M3YJyi/vFr4iAkpjrgVH1XJWISq//BI6jzjdNLwCgO9ZbvHHcYmzgEq1LtqAbapGl4+Rx\nHfXcWVV3B3eu3M2lUy8zPd5HanqY3kuHCccr0DQdK5sml5nGdS1c1wEBRkM1kSXzFLRVBOwhQVoK\nvpSWV59YYbJeGLqK8PUqaA1Pku8eQoQNKt63pQD3Fbff71j/V5pG2X1rsCeSWP2jZC50E1+7OChf\noDpWhEMkti7HSEQxFrUQWdSMf4KJ4qMQPG4JEttWkrvSj2M5EDGJr16EzOXJXrqBm1ZuHPnrQ1g3\nRkAIpBDIXB43l2fiXw5jVJcTXb5AxflqmnIOvDFC5kI3zsS0Wle1qJnwvDoy57uxBsfJTFzxLiKF\nCdhQcw16eRyrdxhrcBxrcExNBhmG6r/iPhd+5LFBZGETsdV3YjbVYI1MMvHKUXLD4/S90Ebrb+xC\nM0OUr7yT1PFODh48eEvADwquJtJVkeBCCOKJBKlkUkF+mRzhxa1UhEJMtZ3CGhjFGhhFi0fQy+PY\nOQtp2WS7boAmKN+5Di1kFCa0HBfXsnEdl2w2S6ZvhMnXj2M6EI1G+Oa3vkUun0NETBLvWUlkaauC\nWT3HIH9SLbykFfOueeSv9DF94AxjRzrQo2Eq1yiYwppMYk+nkY5D7ko/uZ4hwvPqC2PrNs9E+b5R\ncpdvIB0HN29hVpURmd9A6sYYBw4c4Jd/+Zdvue2c5jSnOf08K5VSC03955fCM9HNrl2zqbKyEiEE\nmUwGx3Ho6uoqKe/nQb29vfT19REOh2lpuXnh7zuppqaG8vJyJicnOXfuHGvWrCn5u2EYbNy4kY0b\nN5JOp5mensZx1PvFiooKhBA899xzXL16tcQlzZcfmZnNZoN4U9M0A9DFdzTTNA3XdclkMoEzmG3b\nXL58OYD7fBVDWf7PoCCZ8+fPs2bNGkzTpLq6OnB88x3PfDDMb1sx3FReXk46neall17i8uXLZLNZ\npJTE43EaGxsDAKqvr49kMolt26RSKS5dukQ6nSaRSLBu3boAIPOBFR/A88vfsmULnZ2dHDt2jI98\n5COsW7cuiLUEBQ52d3eTz+e5fv16icucL78evb29zJ8/n8bGRqanp28JEN1Kfl/6EJ9fByklR48e\nLekrP2LXNM2gL2/nyjgTuovFYjQ3N9PX11cCHM2UH4vqn+8zodHi8784ktn/nD8Gi6OF/c/OrN+t\nYOGZf/NhtmJg0K9H8cL0sbExIpFIAEn5ToV+bKymaVRVVZHJZIJ4YB9e9GFI13WDsemDjo888kjg\nLuU7N/pxu7lcjmw2ixDiJrc0P2raP7/27dtHJpNh2bJlfOhDHypxZPS3mwk2VlRU8Lu/+7t87nOf\n48SJEwwMDNDY2BgAvAMDAxiGwfz589m1axe6rvPggw8Gx2a2fvfLfeyxx/iHf/gHLMuiqqqK97//\n/XR0dHD8+HEymQyWZdHW1sahQ4eCuk1PT3P69Gk6OztZtWoV999/P83NzQBMTk5y/PjxIDZY0zQ+\n+MEP4rou+/fv5/z583R2dgbj3nEcwuEw27dvJ5PJ0NnZyZEjRzhy5EjgIOn3dT6fx7IsQqEQsViM\nRCLBjh07ePDBB6moqODQoUN861vfYu/evZimyQc/+EEWL17MvHnz6OnpoaOj45aQ2mzfbYZhlLhG\nWpbFJz7xCZ555hn27dvH8ePHkVLS3NxMLBYjnU6TTqf57ne/i6Zp7Nixo/CcVfRc4zgOU1NTHDx4\nkGeffRbbtjFNk7/5m78JwO1Pf/rTtLS0BCBuNpsNYM1HHnmERx99lO9+97scPXqUv/7rv+bzn/88\nra2tgHJN9CN3n3nmGe6+++4AXHwnvfjii4yPjyOlZGJigu3bt/OjH/2Ijo4OBgcHf26SSOb08605\nwG9Ov9CaCTzomo4tvPjFdwOyeTCOdBTIYyf70HVBff1ssZ7/dnUTCPkTykg0kxk6ydDQ0Kx/1zSN\nVatWzQpXvPrqqxw5coysrRFpXE928CTSB0x8QEYzPSDMd8Ty4SsNshMKwgFAqphJY4mK9kQouK0E\n7oOSGRTfEVC6Krqzei2MHlMgWs0G78V1PkjlLC1HK8yOeY6PjJ0if+OggkFBwVflnnOe8J3zBmDq\nEtJKkrdsqiqVjT1SIqQNo8eR8QWIeCvoavWQYsFMEM4MJ7Iy1T4ftAMFEjl5BXvV7/BiaGfOvARL\nwBX8Z1Z5bmhpAihpVs14mVx8HulhCJwdhIpPDanVNAFQFpx7mvezUwpsltiKeG5seG1HQH4CpF1o\njTbL15w/S1lcpiya7QqVqXJ8B72ZzoJaqAjs86e+/Xo5hb7xQb/i/fpt9+vlv4DPDKifDc9WPWhX\ncdt9l7lTKp62xEVxBlBYsQImTimozLJh8ixMnqMwM1dUb6Gr6GotXNiPbnCze51TaL+vYoATL2YY\n1HllVs5ouCj6sQjIClepyN+ht2CyE8qXlBwfkR1SU4BGvMihr6g8UTyRNeNh2Yci8+Nqu/rtiHgT\nYauXbO8hNVbsNIyfAc6oc8y11Pk5fLgU/hOaur5khiF1xYNoJSKxQLk/jp9Bjp8icDL0gG/ljnmX\nAvdS3QqUHDtZWk/P5VIg1DkRqfeuC42FvkjMh1AZsm8P1sQ18vEGwrXL3vH66isSiahJO+/7SqBe\nGgAe5JdXk2m1mxHhWnUNyk8pIA5Aj4OZUDHWA29A7SZEfB5+ZpvQDHAdpJsnn8viTnfjjp5AczNY\njo3jSGQojmjapRwpKVxbpWt7E6OoMV92B5gVN7UVwBrv8s4fWXSN88fabZQbV59HgmZgjXdhlrfe\nEkCf05zmNKdfNAXgjveC23Elti3fVUxv8E0v4NBpnWzeZOmyu6mrq/tXq+9Po6tXrwYLinK5HOFw\nmPr6enbs2MHChQtvu+3ExARIh3kNt3fxkFJFuxp6ye0M8xrUfe7MSaOZmi2uIZfL8Td/8/9g5yfY\nsNzm9CWN598op7HaYesqNaljGJCIKbc1x4V0TpDJCQxd0tVr8vWXKsnmBVIK9r4dp2coRFePievC\nttXpm3iQYsDPv310pAI/o6Zk2+oMrx6JYzuCO5osbEc555WUgYICg7Ik3HN3hnjUpavHIB4R1FXZ\nvHdzkm1r0iRiBZBNunC6K8wbJ2Ic7oiRzVuqDq5gz7EEHZcjbFqR5j2rM8QjChdT+5BETIlZ5fDR\nhyf42nNVPLOvHMsWPLR12oNp4HuvVmDZgm1r0nzgwcnC7f4t2Ji1S7PUVIzyV9+r4eTFCBLJ6MTs\noN9sfekrHJKEQ5LJlNp2Oq0zOKYWhSUzmjLo9m6JDF1iO4JsrgD5UdSf/vHJ25DJqm3jUYc/+UYj\nOUtD09Q2sYhLxJTBdn5kcCavgMd41A1AP6nYOiriqhLjUzqagLKYiysVHIr3s99f/v9DhiRvqzJH\nvL6JR90iqI0SqE3TwDc/sGw4eDqKRATxvOolvzeZpRcuRE21Lne22JzvzjI93kdl3R0I3QOsXKnu\nR4Ha5rsZ6b/I+NBVXENiySxWOo/M2woiAyJLW8E0yF/uI7p0XiGaV9cQuoZwDdyc5RGLCkZzcxb2\nyGRwKyvCIbRIWK0HiobJXuwBAZGl89Dj0dLHkxmXD98ZD29SMrZ2MZP9o6Q7rhJbvSioT+bcddB1\nzNZ6tGiksLEP9gWuKPKmfWixCOadTWTPXQMgtmYRhhmiZvki+l46gASid83DGhzHnkwhHBepaWA7\nSMvBHplkuu00aCJwVsSVSNvx3qUpwDFUV0WopY7R7+8D1yWybAHOyCTW2BRIcEancEan1CSmbYPt\nenXOqXFthjCqy9ArEuhlMYzKOJG75qPHCzG7odoKqn9tB2PPtZEbHmf04Gnqdt5DpLGGKSkZHx/n\nVvInIieyKfJjk0TqCwBHwou1sywL6biYrXVU/cZ95C73ke3sxh6dRuYtRCRE+I5GrBuj5C73Mdo3\nSnTZAmIr7kAviyF0DU0Y5K4OkDp9GatvBN0FETKZTE6RzWXRIiblu9YTu7soGUNKXMtB2rYaw4Bu\nmsRWLEToOpN72xlpayexeB5GPELyci9oglBDNc5UiqlXj1H+3g2E5zXcFszP9w4z8fJRcCXC0Mn2\njeBaNmXL7mCsd5gLFy7MAX5zmtOcfmE1EwwxTTNwovKhrXdSMaSzd+9eALZt23arj///Itu2aW9v\n59ixY0xNTWHbNvF4nEWLFrFjx47ApWo2TU5OIqWkvLz8HRMwfGip+HO+A1cqlWJqauq228diseCd\npa+zZ8/ywgsvoOs6GzZs4O2338a27WBhFBAcKx/YKY6+tCwrcCMrrhMo2OWd3qvOdI8bHx8nlUoR\nDocJhUJBjOdM+fBU8bY1NTUBIBSJRGhsbGTVqlUsWLCgpM9yuRwXL17k/PnzDA4OBhGhuVyOb3/7\n27S0tLBp0yZWrVp1E6QWj8dZv34958+f5+jRozz99NO8//3vp6WlJYgcPnDgAKlUimvXrjEyMlIC\nqc3W/u7u7gD0+Wnl90ex497JkycDkMv/fT6fJ5FIBICf4zizxmUXQ2JCqBSBqakp2tvbS46Z3z/F\n0KYPw/lRzz6cVixN04LjGw6HsSwrgEP9yGF/Hz4wWuwqCdw2yrh4PFZWVhKPx3EcJ4jivRVkPDEx\nQUNDQwAV+054PkxWHPnb29uLlJKqqqrgHPChv3g8zqOPPsrhw4cZGxtj69atwRjwAdniNvuupLlc\njitXrgQxwPF4nEQiEfTTW2+9BcDDDz9c4r44m4rd32pra9myZQttbW28/vrrJc5/vgPc9u3bAwCu\nePvZ+tTXpk2bePrpp5mammLRokVs376dBx54gO9///vs37+fiooKVq5cGbh4+mPRX4DT3t7OqVOn\nbnKq8x0QE4kEyWSSxx57DNM0+eEPf0h1dTXLly+nq6uLwcFBdF3n1KlTAAHM5rsq+vsrLy9n3rx5\nNDY2UlVVxeLFi9m0aVMJULt9+3aqqqr48z//c15++WVWrlzJypUrWbRoET09PbO6VfrynQ37+/uD\n8QoKPE4kEoHDoW3bPProo2zbto0333yTw4cP09XVheu6VFZWsnz5ck6fPs1TTz3F3r172b17N1u3\nbiUSiSiXdNumra2Nffv2MTAwgG3b6LrO9PQ0Qih+4nOf+1wQh+uPWz8i3O+TRCLBpz71KVzX5fjx\n43z729/mc5/7HKAW4ZqmSVVVFcPDw/z5n/85/+E//IcgNnq2a5mUkueff54f//jHAESjUY4fP879\n99/P2rVrOX78OJ2dnXOA35z+TWgO8JvTL7RmAg+maSrQwbUVrPBO8oAaoYeQ0iU/2kk8pLNjx45/\nzWr/xHJdl46OjmBCK5vNEolEggmtlStX3vbBbCYIWSwpJXayj/zYJdzcVNB3Wrgcs3oJRqL5p44u\ndl2X1157jUzOJtK6g1DFAuz0EPZUL9KPH43P84AkU0Fi0lYzQo6tHPrGTnqAilRwztgp5TJmJQtu\nf7dc5Vw0G+HDXrFmmPRc1PJjCsQJIn1n3jyK0t9FGtQLcSsJoURRfKlWtDuhYDrpIqcuYNspRsYm\nQWhIzUS4lmpXug8myqBiKcKLLFZ7MlSkcG5MOYwN7FX7iTYHdRLJK0ihQc16MMs8iK64DrMoiIh9\n04t27VcOf7P2121+lx2m4NjngJNRn8mPKkjHB/o0ozR6udidq/gmPTOo/mbEYfgtSPcq5z7peJ/X\nQPcmBaRTAAndPIEr28yb/lCZAsJyw6rdPvjmQ6Q3SXrjyCs/M1gop6T9xdsWnW+uA1NdqpyyOwtl\nws2gsR9J7I9ptCJY0AMikQranPT6WI+DEQE7o2JjhabGXdliGO8Ae0qBczMltCJ41nP1c/MwsN+b\nUDLUOI61KhAtN6qgNyM+a4RryYxecDy9SahYKxgxpDUNqR5EvOAoKacugaYjyhYq0G8mgF08+1zY\nQaENZXcq1zk0LyIawrXLcdPD5MevItAgXImUDsK1QdqI/BS4lqrP2MnSMr2oZwFIoSOzo4jxUzB1\nBU0Po9etw47MR05fVnHKdgomOwp1lQ5CFjkkGjFkpAlRsVQdh9u9NAxXQd1G5NBb5EbOYdbc/a6v\nr/X19egXL2Mn+zFiChwQAmLxWGDpr1bk2SrGOzZftX36EhhRBQOH4ogxL4J5+C0YixVARC/aW2T6\nkVOXsO0UulBtdBwJehhRt0XFMxcOEAgNIQwVUe5FGksnj5itrULg5qZA6IhoPTIzrNwWS1xIZ/Sf\ndJX76MgxVb9YM2QGA+fddwtIzmlOc5rTz6vKyspAaIyM+/5PIlgpn7PeGfCTEobH1Xd2LCJ5dq8B\nWoRdu3b9a1f9XUlKyZEjR3jllVe4eqULZLZwv4TgrNDZt/d17ly0hPe+971s3rx51hfEtm3juNA7\nJIiYUFEmSXim7VMpONCu03ZCZ2RC4DgKXGqoluxY73DvOseLIZW3fbl/Kx06dIjpyTEWNuf4gycs\nnn7Z4Pk3DL76bDUjE5Ps3pgiFpEYOpTHXSwPskpmBG+ejPHM3grSOU25rpkK+rp6w/R4K8F/f6GK\nE50R3veeJAubb12/vOU9bwjYsS7F68finO6KYOiScEiBabajonll0W1ZMYxmGFBV7jAwatBSb/G5\n3xwmEfMmRVyQAt8Xmq5ek8u9YTQNoqajgDUBk0mNyaRJZ7fJC21l7N6Q5lfuTWLoAuntT0OyZWWG\nnCV46p8refFAGQdOxdmyMk1TrUXfaIjKMoePPTJONq9h24VI3OJ1TsUJnMvuyPHLW5L888EEOUtw\nrT9Ez6DB/EY7aN9st3EzHzV6hw2u9YcI6Qriu9avnrEPd8R4YGMSxxW4roL6kml1LIVQUcx+ecVl\nHj0bw5WwoNHi819tYGRCp6bSIRxySaY1LEcjGi5sEA1LbAeyOQ3bVdBeIuYGj1xIWLk4y5GzUQ53\nxNi6OqMieqWC8lwPYtVnPKb4gF/eEhw4qWLJVi3KBkb3CAJnR39dla+3z0eZTum01LssbHFKOm62\nica6KpcL3RLbyiI0gTBDKj5WSpy0mgwTuk5ZZSOTo90qQtdQz2vSsRGxMJW/vIlQXRXTb6n79GJX\nvkBCoEVCyJyFk84iLRuZzTP+wpuI4gnrcIjI4haiKxaSu9Kv+nn5zdBwsKBFiKJH28KYM+fVKgo+\nGQAAIABJREFUoyWiOJMpMlf6iMyrRxg6uWv9CF0juqRVHSLLRgRuNHi5yR6dKfxFXIX9RhY1k+3s\nQQuHlOMgEFvYTNU9dzP+9gWyl3ope89KwkvnKaAxnWX8hYPYybS3hkqq/jVD6BETLREl3FKLk8mR\n7bqBdWOEsd4DoCu3wYo1S6i+fz35fA4rmydz+QbZK/040ynssWmE61JXV0dlZSXX+m4Q3XwX4bvm\nY8Qit34f4UmPhan8pU2M/uANps5fpfo9qxEhHZDBBNyttGHDBgZf+RemOi4T2VVwVPInN/2Ysnwu\np4DDZQuILm1l7Idv4Ooa0ZULSWy4i1DaYmx/O7nhcdLtl0iduIQWDoGhIXMW0lbHw80qp/2cEMio\nieaGCd/ZROyu+aUVEwLNNJCGjpu3lLteLo8eDRO9ez7ZK33krw8yde4K1RuX46RVQkHk7vm4Uyky\nF7qZ/PERwgubiC6/A3NeXcnko9U/SqbjKtkrfeBKIotbyPWNIDN5nGweIxENJnrnNKc5zekXVYmE\nWnDtvxvyYxh90OidonZHRkYABQsMDQ1x5swZDMPg3nvv/det+LtUJpPh5Zdf5o033ph1wdGpU6d4\n/vnn2bBhA4888gjz58+/6TM+dOHHnfruUj50NT4+TldXF729vUE0rWEY1NbWsmTJEpqbm4P5p9nc\n1N5Jr776KgC/+qu/ykMPPcQf/dEfcfXq1cA9y3ev84G7fD4fvOv06+P/5zuSQQE427hxI4ODg/T0\n9NyyfjPBof7+fsrLy4PIUt9FzbbtEme3mTIMI4DDVq9ezaZNm0q+u/165fN5BgYGmJycDAAu/964\nv7+fgYEBTpw4wfz583nooYdYu3Ztyf4Mw+DDH/4wjuNw4sQJnn76aZqbm1m1ahXDw8PkcjnGxsaU\nsQSUAD9+HWa2v7e3l4qKCsrLy98V+Hor+dCdD9X546XYHU8IQSQSIZvNks/nMU2zBJYs7isf5ozF\nYrz88su4rks0Gg0Avtkc3vxj5AN1PiDql5tOp4lGozQ2NjI0NBSAasXHqnhM+OeHrusYhhGAkGNj\nYyX7vlUMeGtrK0IItbhwxt9n1t134PP3GQ6HA/e/XC5HKpUK7nF9YNmyLHRdJ5fLYRgGCxcu5Hd+\n53eIRCLs378fKABgxQqFQkGk9dTUFOl0mrNnz/Jf/st/KflcU1MTO3bsCADWhoaGWdMLih0JZ457\ngJ07d9LW1saBAwd46KGHggjZkZERKisrueeeewJg13d2LHb09M+R4udIwzBYv349r732GtXV1cFx\n/tCHPsS1a9e4fv06Fy5c4NOf/jStra1kMhna29t56qmnSKVSQR9GIhFisRjxeJzW1lYWL17MhQsX\nuHDhAvv37+fgwYPBmPv4xz/O8uXLsSyLkZERDh48SGdnJwMDA8F3xpo1a7h27RqapvGf/tN/or6+\nXr2jewetWLGCRx99lOeee47XXnuNlStXBrHkfkT8bJo/fz61tbWMjIxw5syZEidVwzAoKyvDtu1g\nvNTW1vLYY4+xevVq/uIv/oJwOMyTTz7JXXfdRXt7O88++yy9vb089dRTfOc73wniyVOpVADQ+g6l\n5eXlmKaJZVl84AMfKIHohBBBFLdt26TTaVzXJZ1OE4/H+fjHP05HRwcXL16kt7eX1tZWpqamEELw\n5JNP8tRTT9HT08Mf//Efc++993L//fcH8CAoc4ujR4+yZ8+ewAX2/e9/Py+++GLwneg77iaTyXfs\n/znN6X8FzQF+c/qF1kzgwQgZ6LqGbXswyzvFg3quW5pZhjV5Hc3J0Dy/lRUrVvxPqP07y3VdXn/9\ndV577TX6BwbJWY4CLTygTb94mcNHjtLc1MgDDzzAAw88UHIT74OBw8PDOFaW5OWX0YwoWricUNVi\n3NwU+dHzuLnpm9OCMmNYE9fQwmUY5fPUyvCfMLq4o6OD/oFBXD1GqGK+uild+EtMdXxHxWsOHSxy\nwGsEEQKZh/SAglLySZCWWmkexKF6LlxaCBAw2KYgpfKl6r/gZlngRwNJ158ElBRc1E5D8poHMhXd\nYAcughRmMrziCrYIwosvneFwJr3thw95cbiAWY1MLIBwHWiGakdmEKa7FHw08jYiMwz1WxHeeJVC\nU9G8w4eVY5jfT/EFoOlqOyPh1d0DH29yrPQArkLDCm5oTh6mLkDlcm+7260TLxoZ0oVpFVFA5UqY\nOFeIh52+omJkg/7SC9CcH72MXlqulF55ErJjYI0rV8KadZDqVXGc2SGIeu4xPpTmO9P5x6o4ehUB\niTvVsZ2+CmVLvN3ZBZDTtQt2E8Fm3oyYtNXYAxWrWsx4ukWAX3F3pXsVBBYqg0jjjP6baQESKtSh\nyAFNuTcCjprQwoioOokQSAvyeeXmp5lQt7kA4I3P4so3U8lrMNUJ1pQq054u1Cs/rsaqEQ+APMoW\nF42nGce/uE2BkyDq2JQtUufV9BVkuLZQRn4CIXRC5a1YAuWup5le220CSDAAB2fE9Zo1KNDTxHe3\ncGyH2Dz1ks2auIbMjyP0KDJxB0aiCTF5HnviqjpmASgaBiOKMMog3qQsbKa7wE4ix88gpAtmOeFE\nDfGySpyyteRyy3BSfbhTVxUAmZ9CE1BdU006kyHrxqD1vTi2BCN8e7jPV3we6DHc3DR2sg+hq+3e\n6fq6Y8cODh85Smq0k3DdCvy4dQGEwyZm2MS21Moz13VwXYmbH1Zjo3YLMlyJQBJfsBM51UVu5Jy6\n9o+fVsetSMI7x1wkkpAClI2Yik22swrq0/QCxOlDsrpQ1xfXVsdwRltDZS0KBBQCau5BTJxFJouu\ncWWLIdZYGPeZAQXPelHoIjEPKlfAjZcLToY/JYA+pznNaU4/L1q8eDGRaIIrN5L0DFrMa5AqHiSb\nw7IF2bwkYt56+ys3QtwYDhGLwuEOnRvDYSqqa5k/fz7nzp0LXoL6K5CLVRzzEo1Gg0mZn5Ucx+E7\n3/kOb+x7Hdw0sXCeHesdlt3pEjVVbOq5yxpt7RmuXDrJVy9fpLOzk8cffzyYOBgcHGTfvn1MTU0h\nXfg//97EN/lafqeL40BXj+a5rql7G01IHEfQNwzfe8XgmT0GC5okUhK88Hy3klKyZ88ekFke3GKj\n6/Dhh2w6ujQudmt877UKXjpQxtZVGVYuyhINq4jac1fDtJ2MMTZpoAlJedyluc5i68oMjTUWIQOm\nUhqnL0U43RXh2LkoJy5E+a3HxtmyMlPq7S0EjivJWz4ECjUVDk21NjeGDMandOY3+s7XUt0ipTXl\nuOeALLpttiyBrkk0TfLBBycDuK/QYMhZ8JVnq2m/GEUgmVdvcd+6NAub84TDLqYBndfD7H07Tu+g\nwfP7E1zsMfnM/zZOPOI9cnm3yfevz1Bd7vL/vlzBjRGD5/eXY9sKNNyyIk02ryGlalc6B+REye2Y\nVsRJ2Y5g5z0p/uVQAikFrgv7TsT5zffd3pXRdlQJmiaZmNZ4YX8ZtgNbVqU40xVlIqlRX+UwOKbT\n2R1mUWuebF4QCUuiYUk6J8jmlUNiOKRAzsKxgb3HlZPitf4QyYwq69O/McrxczHeOBHn2LkoK+/M\nlTyXGLrn+JgVWLYgldEo8yKKJbBlRYavv1DFlT6T7gGDikV5XP+RVUIuL4hFSo+doav+SmUFB09H\nEcADG1MlLn+WLUoejwAmpjV+uLccEOxYn5vldvjma0LxZ6Qrkbk8mhlC6HrwXCBMAy0SQRgGenUM\nN5nFSWUQIYPEpmWE6qpA0xSYBQQNDAou1Dtz/jrJI+eRtoMwQ+iJGHplHITATWYUkHf2GumOq2A7\nGLUVGNUzJ2Y81zsIILuZJvpC1wgvaCRz9irO+DRuYzXuVAonqeodqS7HlRJpOYX63eTqIRCGhjAM\n0AQyZ6HFwmqCyzQ86FbBxjXb1oArGW/vZPrNMySPdxJe1ILZUIUI6QhdR69KUHbvasz5DQhN84wD\nPcdMJImtK0iduETmZBduMgNIkl296LEIFasWEauuwkzlYWiS9PAEZYkEq5av4LHHHuML//f/BRGD\n6NJ53tKn271XKChUW4HZUoPVN8r0hWsY8WiJS8qttGvXLl597TWSF65Ts20Nerj0y03TtMB1AimR\nQOrKDWTeRq+ME79nKbquk2iuJP6h95IbGGXidBfJS93IvAXea6BwVRkVqxaTnZxm8vgF8pYFuRwi\nHMJc3II1lULoAs000UIFu1eJGrfkQTouTt5CD5vEVt1J7togU6e7qLrn7gAU1XSNxM51aPEoqfZL\n5K70kbvSh14WQy+PAQInmcaZ9BzZhSC+bgmJLcsZ+e5rOJbD4CuHcFJZrEyWy5cvs3//frZs2fKO\nIMuc5jSnOf28adWqVezdu5cDBw7wyCOPBJGJ6XQ6cKi6XUSoD8csX76cv/3bvwVg8+bNDA8Pc+XK\nFVzXJR6PM3/+/JuusX5crB9He7v9/DQaHx/nL/7iL+jpUXMNTU1N7Ny5k5aWFnRdZ2pqisOHD9Pe\n3s7Ro0c5ceIETz75JBs3bgTUfcP58+f58Y9/zPT0NMlkMgAhTdMMIlvHx8cD56diKCmdTtPX10ci\nkQjiQGe6872ThoeHOXXqFLqus3v3biKRCP/5P/9nPvWpT5HJZEgmkwEM5kNw/v79+vhA1NTUFDdu\n3CCTyQT3D42NjZSVldHS0kJtbS0dHR23fU/olz8xMRFALMUxvKCAklQqFey72H3OX/RlmmYJ3Dfz\nuP34xz8OYJMFCxawaNEiysvLg/HY1dVFZ2cn165d4+///u/5lV/5FR566KGS9odCIT72sY/R1NTE\nvn37uH79OteuXSOXy5HP57lx40YJEDTTwa64vb6GhoaIx+M/9Vj1YSzDMGhoaGBwcJBkMolhGCUx\nyul0OgA2/bhYHwIqbqPfx5qm0dHRgR933NzcTE9PD5ZlkUgkgihuXz5g6AOZPkTolzk5OUkikaC5\nuZn+/v6boMJiGLC4bbquU1dXRyQSIZ1Olziq+VDbTLfA2tpa6uvrEUK8o+u/r5kwqOM4AawMClSO\nxWKYpommaSxYsICenh5yuRwVFRU8+eSThMPhoI9nxhIXK5/P881vfpP29vbApa+lpYWKigps26a/\nv5/+/n6+//3vB+Dh2rVrbzKV8QFYf2zO5rZ3xx13UFVVxdjYGOPj4wghaGtrQ0pJIpGgrKyMXC5H\nOp0mFAqVOBYW97NpmoTDYaSUJJNJqqqq0HWdaDQaPA9Fo1F+7/d+j7/6q7/iypUr/Omf/iktLS1s\n2bIFwzCwbZtYLMbatWv5wAc+EECYxWDio48+Sk9PD9/5znc4e/YsqVSKUCjEM888w+TkJFu3bqW5\nuZnW1lY6OzuxLIuKigp+/dd/nXw+T3d3Nxs3bgyc596tdu7cyYsvvsipU6cYHh4OFuvc7vqq6zo7\nd+7khz/8IXv27LkpKh0U6Oef2/6YP3HiBKFQiPvuu4+lS5cSDofZuXMn27dv5/jx4+zZs4eurq4A\nFgb1fbhr1y6effZZOjs7cRyH0dFRGhoaWLp0KcPDw8GzV/G7QN8RMpVKBU6s0WiUbdu2sWfPHvbu\n3csTTzwRHPOqqio+//nP8+Uvf5lz587x8ssv8/LLL7NgwQISiQSWZdHX1xec//F4nE984hPU1tby\nwgsv0NfXx5e+9KWg/gcPHuSOO+5g2bJlP9P3k3Oa089ac4DfnH6hNRvwEA6HcZwM0s0jRHgW8MmT\ndGGqCwEY8QayNw4RM3WWLVvGl7/85Vs65QH/Q25671aWZfG1r32Nw4ePksnZuHoMs+YuzESTchx0\nLOxkP6nRTi5f7aXv29/l0qVLfPKTn0TX9RIwMJXOIoWBzKdxrQykR8mPdqodaSEFi5UvgVhDAaxI\nDyKnLuHkpnGGTqMJeVPc1Dupra2NnOVg1twVwCiabhBp3kSm9xC4eaQtYew0UAyY+BCjApyk0BX8\nUQTK4doKTpq+rBz1Rk8od7m6rSXHXBZHruLBbNF65aJmJbkZwCoC01BRPgHYZ3sPS6EK5dI3U1IW\n4D4tVHD48yE8UG5y4WqouAvSN2DkKDLVDUMg6rcF0TnoBjRsg6l6mOxEWlMwcRohHdUfiQUE0KLv\ninZTfYpujKWrwKmyxWC1KyAt3Qvxm1f0lch3tEt1K1fB/IQCZ62kgrRsD7a0UwrIizUrSE0zCoBh\nAE0Kz61ORUOR7laOdE5ebWMkoOFeFaUsQqq86S6oXFYA8AKQSFPgoPRcH4thRt+V0U6pSOf4/NK+\n8KE6MQPy0wyY7lFtM+Iq1jUwlytybKPQ7So21IuQLgFMZ37Q/9Eq7Esol4pZQUUfJozUQdUamDij\n+iOUgKi3ekULedukC+WW7NrxIFEfNq2AxB0QboBQzIuTHvQgt5TqT930ooNnTt1RFHmsF/2tqG3R\nRgWK+THQ0lWgplSwdciMYNsCKV0FK95U36J6+5HB3rbKgkX1j5TK3SEUjxGbfx/5eIMHq03C+Bmc\niQ7l5CdEARiNNoNuIjR/Ms4bA4k71BgZbUc6achPk7r8L8rBtGox4fL5OCJD3p5EwyJaVsbWrZtx\nHIcDbx0hXHs3jh7CcTyXxHcTDe/Ffcvx0+THLqFHq99VNPzKlStpamzgyrUbWJPdmJV3lBYLhEIG\nIc+qyZq+QcpOI/1oZNdGN3RCZghRuwyz5u6Ce2t+GulYCD2EZpYRqlxEqvtNZH4CyKtrDgL69wXn\nmwzFIXEHItZScKEUmucE6DnpGpGStobKWorcdV2o36au6ZOd6lowfuom2BBAhBLqmlm+RF2HpMTN\nTzN98UVcO4O0sgwPD3P69Omf2XfwnOY0pzn9W5F6UbadPa+9xN6jeX7zV2w0oVa+p9IpMjn13Rkx\nZ+fQ9x6PIaUgEZG8cdzEJUosFuNz//GPACdY3CK0EKtXr2H37t00NDSwf/9+Dhw4wPTUFP79TkVl\nJTt27GDnzp3B6tmfVlJKnnrqKdr278EQ03zofXm2r3Uo5Tkka5a4/PoumzdP2vzjKzb79r6K67p8\n8IMf5Jvf/CZHjxwGmSMeyVNZZlMec3FcweCozuEzOrouiZqStUuz7N6YZvnCHCED8hZ0XAmz51ic\ns1fCdHQJLOcnjzPq7u6mp/saiWiejcs9qEOD3/uIxX/8G5PJpMCydd44EWd/e+FFrh+nGg5Jmuss\nfvPhCRa15MnbPpijvvu3rsqQzQmebytn/4kYX322Cl2TbFiWLSpLks4qYM93Y5NSRfUCHiSnChRS\n3WbHwjKAx8JePKyC9wSTSR0zJKmtdDxYyD9mygXwa89Xc/JihHjE5bceHWftXaouybQWQG4770lx\n//oU56+F+dpzVZy7YvK3P6jkd//dGIbhPQ955a5ZkmfVomG++lwFe44pGC4Wddm8KhPAfSifaHXL\nWBTXWwy1ZXOC6gqH1YuznLgQJe/AmyfjbF+T5s5mCyFgcEzn0JkYo5M6eUu58FUkbEKG5ERnjEs9\nJums2sHx87HgOMQjDqlsiH96s4xP/8Yo6JDOaIX1PCg4zrYFmqac/4SAty9E6Oo1SaY1JCpa97ce\nHaO1zia6LsW+t+Mc7ojygQcniUfkTYvy4hHJdFq5LuZtQTjkTRKhgNS8JXjujQoWtYxguyJ4ZLQc\n4bluFMqSQMR0efqVKqbTOrUVNg3VBfeTnAeIGjpY3qVheEzjL79Xw9ikzsIWhy0r80F7S0su1diU\nerYzw3F03cB1bNycpYzX/QMpBI6VQ2iC6LIFhJprGX+mDREOEVtxB9JxAYkWVZPs9vj0TfuRUpI8\ndJbM6csAhO9sIrK4lVBLLXosHCwesgfHyXRcJXOxF+m4Cq6b+RznuGpACbwTyfu9v77Ne2cgfOBQ\nSjB0Uu2XgoGYy+cxUO70Piyorq8i2ATpIr143UIggVD71DSvfyW2ZalI8B3rCDdUM/72BXJD46RP\ndZGy1KSbUVtBxS9tQouFkbm8WuSm60i8seTVK75uMVrEJHn4HDJvYacyjL51mtEDJxFhE82V6EIQ\n1g1WLF/GJz/5SV566SUsx6F81WIMz8nBtV0FvL0LxVYsZOLGKNPnrmLWVKALjZaW2VzkC2pubmb5\nsmW0d5xheM8xGh56z60nbYSCUSdPd6nvwKXzlCuQaQZ/izTV0thUi3xwE27OQtqOckkMGbiOgz0w\nhDh1CZm2VL87LlOvHQteC2hRk/AdTcSWL8Bs9NMRlCOlzOSUE6AJZmsdekUMaypNdmAM3RsjbiaH\nEILEpruJLL+DTMcVshe6cabTONMFNz4tFiG2fAHR5XegxSK4WQs3k8PNW6R7hxTMaOiMJ6f5+6//\nA9/73vfYvn07Dz/88G2jGuc0pznN6edJq1evpqamhuHh4cDVyDTNIIIxmUwGQNPM7w7Lsmhra8Nx\nHK5cucLo6CiRSISOjg4OHDhQ8tlYLMb27dvZuXMn09PT7N27l7fffjsAvoQQLFy4kF27drF58+b/\nYeA6mUzy3/7bf2NgYID6+no++tGPzgotbNq0idHRUZ5//nkOHDjAl7/8ZX77t3+b2tpavvrVr3L9\n+nVyuVyJYxio1KepqakSd7yZgIoP9OTzefWdGomwYMGCn6gdb775ZlBP32GssrKSf//v/z1f+cpX\n1HveUCjYDxQALL8Oo6Oj9PX1MT4+Hjj4SSmZmJigu7ubRCLBsmXLKC8vZ9WqVZw6dSqISS0GuYrh\nLL8cvz+K2x4KhQIwzXdOAwIgEKCiomLWd5DJZDKA++rq6rjvvvuoqKgIYFBQrpObN2/mnnvu4dy5\ncxw9epSXXnopAG+KAThd13n44YfZvXs3f/zHfxzEc/rA5mygWrFmutSNjo7S2tr6EwF+M6NsfcBq\ncHAQ13VJpVI0NjYGoBooqMw/N/zj5UOkPpzn/67YmTESidDU1EQoFKKyspJ0Ok1lZeVNgJ8v363T\ntu0AdPOlaRrRaJTW1laGh4fJZDJBW2ZGz/p1FEJw5513YhgG4+PjJfuaCfgJIaipqQneR4+Ojr4r\n1/9iR8doNIplWTiOQzKZDGCp4sjeUCjEZz7zGd566y1efPFFNmzYQHNzczDGKyoqmJiYoK+vj5qa\n0tSuVCrFl770Ja5fv040GmXnzp1s2bKFlpaWwG3OsiyOHz/O3r17OX36NL6b5kz514GZY2fmNSke\njwdwn2VZAUTtlwGFc8k/1/2+9QHSbDYbgLx+nxWDZP7YKS8v5w//8A/5p3/6J9544w16e3t5+umn\nyWQyRKNRtm7dyoc+9KEgYjYUCpUAcH4ZTz75JN/4xjc4efIklmVx5coVvvzlL/N3f/d3RCKRYFxH\nIhEeeOAB3ve+9/HZz34WgN27dweA5a3iqGeqvLycTZs2cejQId58880g/re1tfW22917770899xz\nnD59mjfffJPt27ff8rNCCFKpFEeOHEFKydatWwECt8BQKMTWrVvZunUrlmUF15N4PE4oFCKTyTA0\nNBS4req6TiqV4rOf/WwwRv1Y5vvvvz8Ye7quB4BsLpfDNE127tzJnj17OHr0KE888UQAMk5NTdHQ\n0MDv//7vc+XKFV555RXefvttrl+/XjKuFixYwO7du9m8eTOapgXHKZlMcvbsWWzbJhwO093dzRe/\n+EUaGxvZvXs3u3btelfHY05z+p+tf3XA74knngj+HY/H+cpXvvIzLf9Tn/pUQCYLIXjqqad+puXP\n6edbswEPZjiMbSv7denkEJo5u5NfqgecNEI3yfS/jSksNM1kz959szrlHTp8hHhMrQ7IZHM/sZve\nTyLXdfna177GW4eOkLGEF287P4DkfBmxWsJ1K7Amu0ndeIuDbx0OHkiOHDkWgIF63XIcUYHUvBvc\noUPI3JiKbaxeB/F5CsQoVrgGKu+GVC9y+DCukwlWNb3bdg0NDeE4EjNRGh8arl2OMyNeEz9GVwuB\nHkc6GciNgBaBmg0K2hKCEvAo1qTgr5QC5QKQqe493sdccKzC5wO3MW88+O5hMxXEtRY5vUlXuckh\nVUTlbC+Spy4W4L6m3QoCFFBwAvRgLhHy3K3mg1GmIipT3cipOhXZK4JZAqhYCuVLEEOHVDQxAJqC\nYtSHuAmc8+vrFkFprqXaEm1Q+3Zt1WdGQgGHUiq3rKQHTLqWgs58RzmhqTK1kKpXutfrP699rgOj\n7QqMMyuKoMpiycLv85MwfEzBfbgKfKy5B0zPRjxSD0ZMgWepXkjMBBFFABKpPi36OszcUH93La9O\nCeW2qIUKdSiODvaVn4bxkwqWc9KQ7vEimEWh3n4/SFs5TY4cVX+Lz1fw5MyZnpnQlx//a8TVONBE\nKajoj5OsFzcaKlPjPHlZAW5lS1Q7fGAxlFCga2bIc7rzu1oW4L4ANm3xID3fMVBX57kPmw7sg1u9\nDJDujLaJwj+Df/uTWY5yy8uNevG4aoIxnZxCmsUTDKIAOha7Gbq+26JbtG8f8FOf86MWhBCYtcsQ\n5YvJjlzAGXgLIV01xWvE0ZruQ5gVuK5EShtpzxiXQkC8VY2PgTeQTha0EG52mmzfUeg7itA0NAGh\ncJh581rYvn07P/rRj4Jrmx76CaPhIYAh3dwUTnr4XUXDa5rGgw8+yLe//V1SN95CD5ejR28NT+TH\nLqkjVr4IKW2EgHA4HIx4IQShshZCZaUTaVKqF1EyvhCsU8rNTzoKrPP7TOgK9k33KYCwbDFU3O0B\nfjq4/nniFNrqRepq4XLIjEF60Bt/S5X7Y6oHUt0IJ+M5g4bU+C5b5Dm8CnBtZMq79tgSOzPmfQcb\nTEyl+OKX/uxn8h08pznNaU7/1rRr1y72vP4aB05mec8ahyXzJaZpIlGRfdk85C2JGQIzVGBTzl42\neet0lKmUIO+ElKtX1Ka/t5OomWdBkyRsKtDr6g2N9uNvcvDgm2pFfUxHk3kMwyEahkwOJscmeemF\nH/DP//QSGzZu4qMf/ehP7O7gq62tjbb9ezHEFL//RI67Ftx6wiJswu5NDi31Wf7sO5ItqnK9AAAg\nAElEQVR9+16nvb2dqYkhDC3FllUO967PUF8xja65GIbgv369hrwtaKq1+cSjYzRWO8SiEsNQfWOG\nBOvvyrH+rhzX+g3+8h+r6R/RaG9v56GHHiIUuo17cpGGhoZA2ixd4JbEJddXS/7oY3n+7Dsm6azE\nDLnUVjqUx1xiEcnV/hBSClrqLH7v340SNlV8qgAiYcjmVD1dCZVlLh99eILqcofn3ijja89VM69h\nkPoqB8cVZHLKPQ4ogc2yeXVXEDHdkr+BimvVhHK5s21BKKRiYS/1hhid1Kkpd2issUseiYSAfW/H\nOdEZIRaR/MffHKa13g7uPcyQckbM2wX3uOULc3z+Y8N84Zt1nLsa5p/fTPCr902D0EqWYbkSLlwL\nE4+A7UgqEg5VZeoeUyDRdVV+yAPnfNmOAt8sD4xMpjUWNFmcvBhhQa3NwFiIv/zHGh7ZNs3ZqxHO\nXC6dxLAsQTqnoWuSiCmJRVxa6iwMHZIZjfFpHaHBlb4w8YjLxW6Tp/65iifeN45ntkbRk2AAQTqu\noPOayTdeqiKd1YhHXSSwZkmGO5oUbNhca7Nkfo6uHpOXDyX49ftvBtj845fKauTzCvATAvYcT6AJ\niWVrdF43+bsfVfObj0wQj0iEkMr1L6uRiLoFQNOFZ/ZVcOhMjFxeMD6t8X/893p2b0hyz7IMjqs+\nGDZdenpNDp6Kcfx8lGxeo6nO5VPvTwfnTzAg8CbKXDeIxB0eF1zqNnAxKa+Zhx5SVJ/jWLh5KxiL\nbi7PeP9lXNtGWjbZrl4QELlrHiJsIjNqgU14QSOp451kL/YS37wczfQmaxyH5OFzpE9dRhg65bvX\nE1nUjMzbSMdB5ixERE0QhRqqCTVWE5pXx+SPjyC9ffoxukiJa9lB3aTlIEJG6SOR5xgn/c+FDNIn\nLpLruuFtJHGm0xjV3vOuJhCGjjC8hTQ+0+p6gJ9dyMqWXr9oHpSIlNjeBJOUktCCBioaK8kNjjH1\nxkns4QlEPEL57vWB+x8AjosbXAwInuWEppFYsxh3OkPm/DVCzTVI2yHfPYRMZ8Ew0M0QUhOcvXCe\nz/7+7xM2TWzHJtJcSzisAD9p2fAuAb9Qk3p2tSaT5EcnSegm99133ztu9/jjj3Ptv/5XRrtuMPjK\nYRoe3KScH2eRk8uTvtYPmiCyqBnDMDBnmagUmoYeLfzetm2S09OIiPn/sffmwXFc973vp9fZB4OV\nAAgQBMAFFCmRIimSoqhdlKxcXcuSHVlx4ps4iZ3ESSq+9nsvZSd55eSPpF7q2b6VSpzESZyrWLbl\nKJYtWZIdyZSsjYvEXQRJENxAgBjsmMHsPd193h+nuzEgIYnKUvWuLn5VKGw93Wf5ne4+fT79/aI1\nJHCLFUCA7cyDmYDrOJROD1E+fQmjtZ7E7RvRG+vkIqWmIhwXt2qjmjp6fQJrrohTLBNulS/Ols+N\nEt8hXRW0WJjYljVE1nfjFkryRIFADZnoDcn5/ZUqlC9NSCA2bJC8ZwuqoSNcgWE5FE5fYmJ8mmd/\n8mMOHjzIF77whfdcJFyKpViKpfgghKZp3HXXXTz55JN873vfY/Xq1USjUaLRaAAi+XBCrdqVEIIn\nn3ySmZkZisUilmUFamCFQoF4PE5dXV0ASczMzPDcc8/x1FNPBZ8vl8sBoKRpGplMhoGBAb773e9e\npcj2fuPv//7vGRsbo6Ojg9///d9/V+vHxsZGfvVXf5VUKsWPfvQj/uIv/gJd18lkMlSrVXRdR1VV\nLMvCt1P0VfF8S0cf6rnSgtRxnGAftm1z4MABHnzwwWuuh68YeKVr1u23304mk+Gpp57Ctm1SqRRN\nTU1Eo1FCoRBHjhyhXJYv9Z49ezaw6lVVFcMwAutIkJDIwYMHufHGG6mvr2fdunUcPnw4qENt+IBa\nLTi0WITD4cBK1N++FoJ5p5e/XnnlFQqFAsuWLePee+8N5o4+EOPbDvsQzcaNG4nFYrz88st8//vf\np7e3lxUrVlyVN5cvX6ZQKJBKpchmsxSLxauU5N4p12oBPd/SNhKJBOW5sn38NvLbxz+OZVmUy+XA\nUjcUCgUKc1NTU6iqSrVaXbQctWBWLWDpt200GsWyLJqamgKb7bq6OiYmJkgkEoHd72L79cejbdvy\nWYgQgeIbSFU5x3EYGRlZkPu19fdV6fz+UFWV9vZ2TNNkZGSEbDYbHEvTNJLJJO3t7TQ0NKCqKtls\nlunp6Xesc22kUqkAPjRNE8MwKBaLga04SLB1dnY2sIwtFoscOHAARVG46667ME0zsD/esmULQ0ND\nvPzyy1x//fXBcTKZDF/72te4ePEira2tfP7zn6elpYVcLrfA2ljXdXbs2MGOHTv48z//cw4fPhwo\nsPn5W61Wg7LZth38b7G+9iFYIQR/+7d/y/T0dKDEVy6Xg/OMruuYpnkVfO2fk2rPrblcDkVRSKVS\nQX/7ua/rOvfffz+33347x44d4xvf+AaqqrJy5Uo+/vGPB2PcF47w61EbkUiE3/7t3+bLX/4yExMT\n7Nq1i6NHj5JOpwPw0jRNXNflxRdf5MCBA4yPjxMKhVizZg2lUinY97U64a1Zs4Z9+/bR399PLpej\no6OD3t7ed/1MMpnk0Ucf5fHHH+eb3/wmruu+67rS8ePHKZfL9PX1BcqUiwFvhmEscO3wAct169YF\nMK4Pofpt6VtGP/300zz//PPs2LGDT37yk4GqX6lUCqBe/3yZz+dxHIfe3l6GhoY4cOAAq1dLF7ae\nnh4++clP8tBDD5HL5QL4O5VKBZbA5XKZYrHIm2++ieM4rFq1ikcffTS41o+OjvLKK68wNjbGt7/9\nbU6cOMFnP/vZJYXzpfj/XWhf/vKXv/yfeYAvfvGLjI6OcvnyZWZmZvj0pz/9H7r/P/7jP+bixYtc\nvnyZ0dFRfud3fuc/bN/T09OBLO/7VR5biv81wr/on+w/QSkzjJ5YjmpEMAxD3og6jrRnFc5CnbbK\nDIy/Dk4JRTjoio0ALEfBEmH0xg2Elm3GbF6PnurF1aKUZobJ53MUShaWiGA0Xk+odX4boccp5zNk\nZqY52X+CsbE0N95447+JDn/xxRd57rkfU6wqxHo+hJFoe8ebc0VR0MIp9MRyClNnuXThLJeGL1Nx\nNEIdu4h07MBItFF1NVwMlNKotETUQtB6l7RcvELRLFBMUBQPAGtCKY2Sy85Sl0y8502GHz/+8Y+Z\nmc1iNq9HrQEIFUXBSHbiWnO4lYwHkamQ7JWwkVuBwkUJ9LTcCuHGACpR9NC8upmiSaDErJOqZoUh\nCTupugSjhLNouagW5P71mFSECoAl78uHuHxLXxQJkk0flN8bt8r914YQMLlX/r95h6eCRs0+mYeW\nNM9eGCEhSyMu4RY7LwEu5crJmIDpIyi4KJopFdCSq0ELyzZSPWBQuaIOqlZTF+SxBdKCVtHk7/kh\nad06cxRyZ+TPdgmcguwHXz2xbo20xqzrkzCPHpdKbb76nKLJfiyNyfro8XmQ8kqAy1MuxCnJPESR\nYF/jZuYhTE9tsTwhlesibbK+tRHUzctdRZGKehOvezniQXOltAS4jDrm1ec8+Mhv5+Kw9zkbtIj8\nfHEY8hckgOeXxylLy9uptyB/Xh4/1ukpR9aOdcWD9phXNxMuTO2X8FJqA5iJ+XILTwbDb6OptyRk\nqIWkCl3+ErhlaNgo+8PftxaRuVzNebmM7IOJV6E4Kj+/7HYPSvVyRLgerOkvJimyfQojss9jnTIv\na/utFtgUrjce1fkUF8j8zZ2T5dNC0nZVVCUgpigyL0KNBLCen7fzyJmXtzoL8rYwLNU5wy1SuVJI\ny+1wOIJlVbw3gSz51lzuovy/aiKatkK4OXi7q/bBhD8+FM1A0UwUI4ZixFHyIxKk1nSEqEpgT9FQ\nVAMXlUx2jgMH9jM5MYFdtTGbN6CHolSrFq4r5GevRcXPtT1g10FzLbo62/nEJz7xng/8uru7SadH\nGRsdoTh9DsVMoIaSi0+kJ47jVouIunUounxYEI6E39U0SyDf6qvOnJbnCafi9Ychv3vtIeVxvH5y\nylAel8BftGN+jHlgpoKAuUEU1SDUtA5FM6jOnpc5W7dGQt5CSFvqWCdKqs9T61slwV4jAYqCcCxZ\nnulD4JRRkmuhZRsi3oMS78KINlApZv9DrsFLsRTwwZpHfJDqshSLRzKZZC6X49z5Sxzqd1i9wqEx\nBbqmew+vXQlqOVKFq2zB22dD/PVTDWTyGqpqIpCQUVdriYfutPj1j1S5Y6vDzTe43LbZ4YZVDvuO\nQ7XqEAtX2dqX51MfrvIr/9Xh53Y5/NfbHNZ121iWzehEmZGRUY4e62fz5s3X/HDTD/8hcD6b5lMf\nrrC5bxGl6kWiKQWJmOCNIw6lYpb2xjJ/+GsWt21xaEwpno294JlX4xwdjNDWaPOHvzpJQ9LFdqW6\nmq4J79bGv2dQMHWX61eV6T8fYWyigG6E6Ovru6YynT9/niOH36RneYUt6xbWo7EObljtcnxQp1BS\nyRdVimWVaMRl8JJJ2BT890eniUVcKRymQCzsYuqybLajgFAwPdW2tSssRqd0hscNFBS6l1epWEqg\nYqd7ItiugGxe5UevJ1AU+PCtOcJX2LUq3vSl6ii4roKpSyjsBz9LMjJh8HM782zoXfhQ3HXhGz9s\noFBU+fUPZ1jXbS3Yn6bK/BOuhPH8dbRYRNDVWmXv21HSUwb33JRHVWWF/fuW/f1h9h6P0lAn1d8a\nkg633VhEQRAOCaIhgaZKgbPa2yJVBUOXwKLtSGDxYtpkYCjM5rUlIqbLucshDp6KMpXRMA3YeX2R\nu7YWiIZdhtImIVPQs7zKf7klxyc+lOXurUXu35nn3u15+roqEobLaziutMqdymgMXAoTDbusaK2S\njAkiYWnXaxqCsWmNn+xL8C8v11Esq2xfX0IICV3+/N1zNNQ5KKrkpKIRl4OnIgxcClGfdFjZdvVL\nVJoqlfpcIZUB3zoV4Z+eT6EokIi6ZPMaU1md44NhTF3QuUwuuDkuHvgoOHAywmPP1XPwdBhdgwdv\nyzE+ozM5q3N4IMJLB2McOxvh0OkwLx6I8+O9Cc5cClG2VDatrfKbHysRj7DIfaaQc1ekkj/AC/tC\nDFyKULesj8bWXhRVR9V0Cd0JNyAis5OXGL/0No5tUZ3IUB2bAdshvG4FRmMdcm4mUCMm1fFZnGwe\nLRFBDZkUjwwy99ODVM6Nouoaids3EupsQTgCRfNV1CVtqfgvfSmgxSMUj59HVG3CqzsC+1+3Ul34\nIpTrgqfYEXh+e1E8OBAosFUujoGqEOpuw56eQxGCUG87iqFJpTh/PnbF4FM0D/zz5oeFgwM4mTyR\nvi5Cnc0B/GeaJvl8PlDS0OIRKmcv4xYrhFctJ7qhZ0G5A+UaDy5UNQ3VNDx7ZBU9FaPw9nmcmRyi\nZKFoqrSl7Woh0tWKsawe19QpzMySzxeoVixcq0pqXTeWv/CtKgHM+e4hKBwexK1UMTWNzRs3sXv3\n7vf8VDKZpKenh2NHjpIfmyJz4hyi6mCkEqjmPHhdHp9h6rWjlEen0FNxYjesQtc0CUYKgXblycIL\nx3Eo5POURyaYe/EgznQORVdRIyG0VBwtGZVgpq+8aMv8dgplKoOXMVob0JMx+TjA9iA9Q6dyPo0z\nmyPeu5xYz3Lyp4eozhUxWuox6uOymxxvgTIRxahPoCdjaLEwiqogXBenLM+pxbdO4eaKJHbdQHRd\nF0rIxExESXW1U7ehl1j3cgoTM8xNTnH00GG2bt36vu3ll2Ip/PggzSM+SHVZisWjo6ODw4cPk06n\nOXXqFDfeeCPhcDgAUHxoybcKLZVK/OAHP+DHP/5xYMkIUtmoq6uLW2+9lV27dtHX18fatWvZsGED\nuq5z7tw5SqUSuVyOS5cucfnyZcbGxpicnGRiYoJisYht25TLZQYHB8lkMmzatOl9Q35jY2M8/vjj\nGIbBH/3RH12TKquiKKxbt45Tp05x7ty5QFjFB3g0TQvuG3xAxm8PmAevfJjD36cPxfi2rOfPn2fL\nli3U1dVdU13eeOMNxsbG2Llz51VQXF9fH8lkklOnTlGpVAKIqlgscvny5UCVsVqtBsphvhqjD2PC\nPLQ3MTFBe3s70WiUTCazwL7WB7P8Ovm2qtFolMbGxqv6SNM0qVLs7VvTNMrlMuPj42iaxu23337V\nNXZ2dpb9+/ej6zoPPPDAAqikVpHQV6rzo6GhgXK5HMCQPqRVW6Yf/OAHjI2NBba42WyWTCYTbFer\n+ndl1P4fCEDKWCy2QEHPtm2KxSLDw8Ok0+lgDNm2zcTEBIODg5w9e5bJyUkmJydJp9MUCoWgXWtz\nx49kMkksFiMSiQRQod93fjt87GMfC+ywfatbf+z6YFkkEgngoMXq58OCuq7T3NxMXV1doJwIUuXO\nH0e+0qDfLoZhsGLFCtatWxfYgo6PjxOPx4nH47S1tdHe3k5zczPt7e10dnbS3t5OIpFAURSmpqaY\nnp6+qu39c8+VfdDe3k4kEqGhoSFQlNN1Pcg3kONxZmYmyOG9e/cG+fGJT3wigC5d1w0snNPpNLfc\ncgtDQ0M8+eSTfOMb3yCdTtPY2Mjv/u7vkkgkcF036FNfRMHvP798hw8fRtd1tm7dGqih1qofAkHe\n+ACoH7Ozs/zwhz/Esiz6+/sZGRmhqamJWCxGPp+nqamJFStWEI1Gr7Ll9sNfz/HHeaVS4Vvf+ha2\nbfPoo4+SSCSC/gO5nuErQ3Z0dPDMM89gmiaPPPII3d3dCwBXP3RdD5Q6/bL4lsHHjx/n/PnzOI6D\nrus0NjayefNmNmzYQGdnJ47jMDk5GQCv7e3tdHd3B3lVqzT4bpFOpzl48CDZbBYhBB/5yEfo6el5\nz8/19PTgui6nT5/myJEjvP322+i6TltbW7AWYts2hw4d4oknngiuQ+vXr8dXGvTH62JRqVQoFAr8\n5Cc/4bHHHqNUKhEOh2loaKC9vZ36+npUVQ2UEH1QfGRkhBMnTrB161bC4XAA8vpQ9rPPPosQggce\neIDm5uYgZ++5557gGuxbebe1tdHa2kpTUxPxeBxFUahUKgHg993vfhdVVfmjP/ojOjo6SCQStLW1\nccMNN7B79246Ojo4efIkw8PDXLx4kW3bti2JQSzFvzn+M+YRSxa9S/G/fdxzzz2cOXOGvfsOUDj/\nE8LLd2LUrSAai6LrOpVKRd40u1X5ILY4CrNHUOwiuq4Si0YoV6rYmMFna5XyhBBUJk9IkEGPIRo2\nQbQdJxQmFI0Gj2MXU9MD+K3f+q33deHw3wAoVWzCHbe9q0JTbWiRBvRkJ9bUKSBEYvWH0Gs+GwqF\ncOwiIjsACKnoFWqUP/sKYq5nvegvaAkBroUSSmG27aA8vo8XX3yRu++++5rqFA6HPTDj6oUIRdWu\nsNfMIWaPw/QxhFuWAFDDpnlFN9UARfPE8DzrTt9CF6QKYNNNMLFXgjOxrgAKRNG9h7dCKsb5Snx6\nxLNGNVjwYF3BswG2PCUpU0JpdkGCa5HWqytbSs9bu0Y7mKee/KhpL9dZCINFO+TnqjkJZ0Xb5ssB\ngdqkakRwyrMStnEdT4VNgUWRnVqQyfSU7lwJ1YEEuvSohCLnBuQ+jTjEeyWsUx6Xn2vcIq1qA1VB\nTf7dV97KX4SZIxIK9AG4yQMePLlK1kUxkbbPYxIaqubl73pCWtAWRyU0WDv5UxSI90hgrzgC6T3z\nlseeNZFsVs1bYPH61VfUM5NSAVIg+3xiryxTYtU8fOlUJDiWvyBhOpAgYbIPsidln1dmJfSo1Cy+\n+GPFiEPdOrm9DwAG5fcsZgOQUJP1sAue/W+LLKfi1uSf9/niqNxOCChPwfjP5i2Ohcu8Ha8rwT09\nLnNn6oDcvpqToJ5qSoVOH3YVjiyTD885lRrIDjmG7DmoTHpQra9kWV1Yt8ByWplXjkSRuStc+b00\nJptBD4PZ4NlpX5AAqxaqWUy5AmT1/+bbMNslyJ2X5Uj0Bv3gv/ElJ5IyX5TKtMe3SsBXiXchhItt\nu9hO2VssVFC0d7Buj7Qj8NslBGYDIt6FEm7BjMYxdCWwRXerZYTrUL68n1j37mu3hvfDlYuErpUn\nHo+ze/fuazqnqqrKb/zGb6AoCvv2HaA08irldASzcS16vB1FNRBuFTs/il0YQ6AF5xrHcSgWinJy\nbOiLnjUqpSLV0ddlDoI8TyS6vXFneMDsuDzH2kXZZ+FGsObkeJncK6FsRQOqMh88OFTR5CRNj7ej\nhhI4lVyNOue7gxvCseSYK6YlmB9qgJYdXh5baLpGNNkNrTf8u6/BS7EUS7EU/6vGL/7iL5LJZDh8\naD//z2MKOzbY3HWTTU+HQSKhe29nVxi8BK8eiXB4IEyhbLCstZ1yuYRbzXDnljK/9HM2V7LR+RL8\n7VMGVVuwZkWVz3xkhnhUoKoaggQKKooCfSsFfSurTM7afPXbLpeHB/nqV7/Kl770pfcF+Z0+fZr0\n6DB18So33/AOL+y8Q7guKIqgOVXl//hkhWWN8y8whcNhMtkirx2JghD8xkMzJGPew3MkJFWqSFUz\n3wazXAHLVqlPwq8/ZPGVx4u8/PLLPPDAA9cEkctFG4VSZfH/d7UJ/vz3Krx1UmXPmxoDFzXeOqnh\nCoWkCk++lKQx6bBtfYl1Kyv4zqEhU0ioywM3da8oH9qR583+CK8di3LP9hwhXcJ00dA8UGdV4Sf7\n4lQslU1rSigqVKx5e1eQt6GmIShbEgQrlFUujekcPRNGAHdsKV5Vl/7zIcanNRqSDlv6Sr7Q2Hx4\nLJSjQKGkkoi6wTbrVlZY3mRzeUrn8OkI29Z7cwtFYWRC51vP12E7CnMFcF1F2uQKQTgsZLmVhXeV\ngSqdd3xNlXBkoaQyV1Cp2hANC5JxF1WBWMzh53bm2HlDkbqY4PjZEHuPRzF0wcfumuNDN+exqgrF\nisKBk2GOnol4+1EwdMH67gpnR0wqloIjFIbSBv/wTD0/+FmSLetKJGMuVVthaMzg5IUQrqOQL6kY\nhsv6njInL9QRDQt6O6TFLQI0TdDXZfHwHTmeeiXBPz6bYihtcN+OPK2NzoK2NXRBelrn2dcS/PSt\nGAKF22/M89LBGKoKjgPTWY3vvljH91+uo7ejgqkLKlWVoTGDXEEmRyzi8on7srQ12hRLCj87HKNY\n1iiUVHJFac2sAIYhKJRUohGH3TfNETE1ed+5sLvRdR3LsXEdG6GbpCc1XjtqYrsGyzqvQ7gOtlVC\nN8Komo5ru6AIUBXGho8jFJdQdztusYydySFcQX5vP3oqHijhCcclvKYDa3SKuZePSuhKUaQCn65h\nrmgh3NOOcOULKKLqP0NQEI4rQTZdRdF1tHCIcHcb5QujlAdHiF7vv9goJLSma4hKNTiucCypxOdB\ngtXJDFZ6BlGypNK0AqgqlQtpsB2skUncYgW9qW7B1GdBBPNcBSVk4szkqFwcQ1g2elOdrIeqIFzB\nXC4nF6lURcJtClhjMyiGRnRDt1QzNHWE7eBUrPn9Gp5ChqrW2AMLiIaDxVElZBC9oYfQ6g5Ub/to\nJEIoFKI6V2Dq0Cny/RcoXhpn9JnXaLxvOyWrIpXlrgHyE5Z0U3Ati1Akyv333/+u29fGddddxx/+\nwR/w9a9/ncvpUXJvnmL2zX70RBTF0HHKFk6uiGvZ8iTgLTRbnl1apVKRijOmKdVDaspaKpUoDo6Q\n23sChEBvTBJe20F4bRdaIiLbx3WxLk1Q6r9A5ZK0yFVMA7dikX3+APUP3Tqv1OgNVNe7CKieamTy\n+lVMvX6UwsEBQh3NKJqK60hwc7HFQNeD+6qTs1iXp1AMnUjfCtxKFQUwa9SWQi31LP/oHaR/9DoT\nI1P8xV/8BX/yJ3+yNCdaiqVYig98RKNRvvCFL/Cnf/qnnD9/nj/8wz/kzjvv5I477qC+vl5ewzz1\ntcOHD/PKK69w/vx5yuUya9euZXR0FCEE99xzD6tWrbpq/6Ojo+zbt49yuczY2BiDg4MBKONDXkII\nZmdnmZ2dJZlMsnLlSvbs2UMsFuPRRx99X/V56aWXANixY8dVlpvvFj4Q5YM/PoAEEuLx1ct8mK8W\ngPPr4FtM+sCUD9f5US6X2bNnD5/61KeuqUw+yLaY+hpIe8stW7bwyiuv8NJLLzEyMhKomem6zrp1\n65ibm2N8fHyBQrwPfPnWnr6C2+XLl+np6aG9vZ1sNhuAKL4tJcj7gfb2djRNIx6Pk8/niUajC6xH\nhRBEo1FyuVxgu+pbBDc3N9Pc3MyV0d/fjxCC3t5ewuH5e6va/vH37VuI+v9fv349/f39HDx4kI98\n5CNEo9Fg+1dffZXDhw/jOA7Dw9LFyp+PLgb2vZNynF8ev54+RGfbNvl8PrCpFkKwZs0aotEolUqF\no0ePMjc3F1hvtrW10dDQEOzHsixmZmZIpVKEQqHgc47jkM1mF7SF35Z+Lvrwn+M4C/LVhyqbm5sD\nmKyrq4vJyUnm5uYWVS6MRCK0trYGUOHq1as5fvx4AHJFIhEaGxsplUoBFKbremC3rCgKpVKJ4eFh\nNE1jbm4uqGcoFAqUMDVNwzAM5ubmKBaLTE5OvuPzgVqgUdM06uvrA5gsEokE0G0oFAq29aE5H6y6\n5ZZbOHHiBJZlUalU+Ku/+is+9alPEQ6HpaK3YbBp0yYOHDjA5z//+eC+z1fL84EqH3L2VRZ9FVIf\nXAmFQmzevJlYLMbg4CCjo6O0t7cHbe1DW36ZK5UKlmUF7aIoCi+88ALFYpFSqRSMz3K5HKg7vv76\n6+zevTtQWrwyd6+0yo7FYuzfv59sNktzczOKomCaZlAPP59M0yQcDrNv3z6q1SqNjY3ccsstgfCD\nD3b72/pl9tUD/fPdihUrKBQKhMNhOjs7ue+++wIwTtO04DwxMDDAc889x5EjR/jmN79JsVhk165d\nwViKx+Pvef9dLBapVquUSiXa2toCC91riYcffpj6+nr++Z//mXPnznHu3Dm+9RU6jBoAACAASURB\nVK1vBQqHmUyGfD4fALiapgV95+eGf16sBRJ9BdtvfetbHD58GEVR2LRpE7t27eKmm24KxnKxWGTv\n3r3s2bOHdDqN4ziEw2GGhob4H//jf/D7v//7wZjwz3f+Od00TTo7O1mzZg1nzpzh+eef5+GHHw6u\nW3C1sqrfTgA/+9nPsG2bDRs20NTUFKgK+kC1pmls27aNjo4O/uzP/owTJ07w9NNP89GPfvSa23cp\nluI/O/7TFfz+8i//cv4hQSj0H67g93d/93fBCUVRlCUFv6V436EoCjfeeCOTE+OMpy9Tmb1AZWYQ\nhINumBi6iibKiNwQYuogauEiGlWWt7dy2223ceHiJSqO9o5Kedb0KSqT/QjFgPZ7UKJtCCHVAeUN\ngLagLL6aXnH6HOPpyyTfh+IdwNtvv82/vvAilggT6dhxzW93CSEojx1C2BY0bcVMLkfT5i+Cmq5T\nzV3GzXoKW41b5+EwX0EMJBwTWGVagCAUMonUtVCZGaRSnGPNmtWBJO67RX9/P5dGRhB6HD129faK\noqBHmzEb16FGmrFLGakCJhxZLrskYSNFByO5EIpboI7m1cNISODMLkCkRVrP+ip//pcQnnpcQcJG\npmcPfCWQU6viV5mR8JRbhtR1EL0C8BNCKuBV5yTwtUC9z5MgUMR8G9eqp/nHFo6E6nCl3avi3dhW\nZqXapKhKUNKtMq9a2MLicJ9/7Jr+9fs4PwSVCQ/uRLa3HoGmrVC/EaoZCbypprQZjrTOQ2CuI8Gt\n2eOQPSUtiSszMp98SDS+UkJ+1ZwE7nIXJAyUOwflMVl+PSrr6YN5woH6DZ6yoV98TwUs0iahRGtW\ngo75i55CmyaBHzsPuYswc9ADwVz5mWpW/t9MQf0Ncju7INs4d05+FS7K330lQpA/Fy7KvhS2VM8z\n66RSnqqjGAkUNeSpFqqyvzWTeQVFFra7cGSZqllP0c6FuutkjgQ2tIJAUbE6J/NTuFIxMdYu29IH\n9OyCtNoN8tVT4ytdlpa4wpHlQcgx07StRhGP+ePVWkYLx1t8MiXwWc1DvJvAYtXvj1pr4CD3vW1c\nS6oO2gUPKjXmx6trybYUrrStDjXU5G1Nfi7IXe97cUT2q2tJQBQRqI66cgVfKvCpugRLnaKsR2o9\nRFvnLXMDFUsfkvTsyLx2EcKFyX1ShU6LSFi4aZsEMVUDR6hooTihunZCTX3YxHBKE7iVDK6VI9TQ\ni3CFVI0VjlSlezfIb+48lEbRNYXbbtvFI488cs3nek3T2Lp1K8lkgtmZKSrFOex8GmtmkOr0aayZ\nM9hzI965QpewsxbGdQWO61C1rGDiq+nzoJ8rBIWLP0MURz1b5x1Qf708zxhxqaCpRyWUm1wjx1Zp\nTPZ5uFmeA6yMBDhDjbLPFQWlMAzlcfTYMszUyqCedu6y7NNo2/x4B6lkUtsWri3rYmVh+k256NVw\nA4QaPKBSPrzRPSWNf+81eCmWwo8P0jzig1SXpXjnUFWVrVu3UixWOHdhlOFxjVcPKbzVr3BsQGP/\n2wY/2Rthz1sJxmaTqHodDz74EIqiMJG+wM4byvzqgzaLPX/83gs6bw+qdLRU+dKvTNNYJ+1aHU8a\n7kq72lgEtq93OHTSJT1eAEW7yo7p3eL73/8+I5fO8KGbK6zvuTb1PpC35N98xqBQFHx8d5beDhvT\nmF/E0TSNvcd1Dg+EWLW8yoO354LroKFLdTnXA9tcAeWKglVVEChEI1HamnUOvK0wlXHp6up+R0um\n2rBtm5/97Gfk8hV273DQFmlfTYXpjMK5EcHEjASFpCqfwlRG49K4yd7jUY6dDWPoghXLbGmzLKTV\nKwL8LqhPuBw/G2Yyo9PZ4rCmy5JWser8zKRqK/zjj+qZzWkYhmDL2jKqKsuhX7Em4QqpFDg8rvP1\n7zcym9NYt9Li527JL2h3y4Z/eamO9JTO/TsL8+p9V7zTYVWVAEyzHQVDmwcPhYDjZ8NS1W6DVLU7\ncS7E177bwHRWw3ZUFDWCZUtVuL6VFp0tUnHgnW6jlJpbTUWV048nXqhjMiuVDi+OmsSjgs99Yort\n68toGlSq8JdPNmJVFT561xwP3JLHshWefyPB/3w2xVunokzOamTzGvmSSjavMTlrUKkqOK5Ugbzr\npjwj4wZTWZ1L4wZnR0zOjZhMZnQMDXZtLLJ9fYkLoyaXxkwqVYVU3OW2zUXfNRXTkKqDK9qqNNY5\n9J8Pc37UZM9bcc6OmOSKKqOTBgOXTJ57I8E//7SOwWETRZWqjMJV6L8QJhwSfPTOOe7fWSBfVLk8\naTA2rXN5ymB00mCuoGE7CpomLY+PDoZ57ViUC6Mh8h7U9+sPznLfzXm2ry9x/84C9+/MYVUVzo+E\nOHkhRG97kVTClS9KKkpNuysIIZU5RicEX/9+kum5CA2tq+ldux7HVbxbcxdVNxCOXLi7NPgGM+Pn\nIGqQun8b4fUrMVrqcYtl3FyJysUxQiuWoUZCIECNhimfvIiwbBRDJ7S6Q4J4QhDfdQN6U52E2tQa\n9b4F7y8JaYtbdVB0Det8GidXJLymUypZGBqKaS5U/wsoUvzBSOHQAPbELKCgRkzUWAQ1bHhi/hIc\ndgslzO5Wz5p3fnxcqaoiiyXIv34ce2JW2hSfuUTp7Qu4lo0Wj6CEDBRNQ4uEUFSF8rlRyqeGUMMm\ndXdtlu3v2/K68xWWcKJnBexZwQpg7oWD2DNzaKk49Q/sJLK6AzVsIjzVO9u25cJNIobe1oDaWo81\nMkl1Zg7KFtGVbRIYsB1vnvYO8yEBpdOXqFxIoysq/+2Tn2Tnzp2Lb/sOUVdXx913301vTy/Tk5Nk\npqalbXOhQjVXlHbBqjzfKIZGbPMaVF/GVAiEK+tjedZiqqriOg6ZwUvMvXIMEEQ3ryF512aMpjpP\ncVHWR1FV9FSc8JpOzOVNVC6kEVYVNRrGLVvYE7OE13WB7chHApUquTdOoKoqTbdsQjV1zMYkudND\n2Jkc1Zk5QiuWSfcRvFyoyQ9RdXAdF3tmjrmfHgLHJbZxlbQ5dgWaphKrAQD8MsZ6lpM5eZ7CTIa1\na9bQ0tLyvtp4KZYCPljziA9SXZbinSMajbJt2zYGBwcZGxtjYGCAF198kbfffpvDhw/zxhtv8PTT\nT3Pw4EHm5uaIx+P85m/+Jnv37sWyLHbv3r0o3Oe6Lk8//TTT09OMjo4yPDyMqqoBtOODIrXhKyBF\nIhEuX77Mxo0baWi4NiEH27b5m7/5G2zbDmx3rzUmJyf53ve+R7lcDmCKWvDIMIxgPdZX5VssdF0P\nYCAfuEkkEqiqiuM4zMzMLFBdercYHh5mYGCAUCjE1q1bF91G0zQuXrzIxYsXA1tSHzSMRCKkUimW\nL18elN9XGqxV8fOVCQuFQqAQNjMzE8AttdfKuro6li9fHoBb4XAYx3GushxVVTWwBp6dnWV6ehrX\ndbn55psXXFt9UOqVV17BdV127dq1AEaEebjOV03zYRa/DcPhMGNjY2QyGVKpFJ2dndi2zQsvvMBT\nTz0VgDo+KKVpWqDo9m7uX7VfIJ+jLl++PLBsrlarzM3Ncfz4cfL5PEIIkskkq1atwnEcDh06RDab\nJRqNsmbNGtauXRuAfD44Fw6HCYfDwTior6/nzjvv5Pz58wGo55chFArR1tbGgw8+SDweD5Qvp6en\nMU0zaDchRADAxePxAD6NxWKkUqlAgS0UChGPx2ltbaWlpSWw1r7jjjs4ffo0uVwO0zS56667aGpq\nCqDWWCxGIpEIrJL9MvoKgL5ymKqqNDY2ctddd7F27Vquu+46Nm3axJo1a0in01QqFSKRCLOzswv6\norbd/Rz189hvg1gshuM4gSphLYA7Pj6OqqrcdNNN/Mqv/Aq33norjY2NpNNp0uk058+fZ/v27UGb\nG4bBq6++CkhFyO3btzM6Oko8Hue3fuu3AutrX/nPB9r8tvato13XZWZmhqGhIYDAojUSiQRg4pUW\nt35el0olHn/8cTKZDOFwmGQyGeSK67qUy2XK5TKxWIyenp4F583F5kMg7bf/4R/+gZmZGWZmZnj5\n5ZfZv38/qqrS3NwcgJKRSARVVXnssceYmJhgy5Yt3HLLLQuUSv36+opzvjqk66mzz83N8ZWvfAXb\nttmyZQuf//zn6e3txTCMAJz211VaW1vZsGEDiUSCkydP0t/fT09PD01NTcH+fVBzsXrZts1TTz3F\n8PAwoVCIP/iDP1gUGn636O7uZvfu3USjUUZGRpiZmSGbzTI7O0smkwnKoGkanZ2dbN++fX7uU6Nq\nW3vuq1QqPPHEExw4cIBIJMLnPvc5du/eTUtLSwD3+aqXPT093H333WiaxsDAANVqlUgkEgCvq1ev\nDs5Vb775JseOHaO3tzewFG5oaGDv3r2cOXMmsLz2z49XXrtKpRKu6/L666/z7LPPoqoqv/zLvxxA\n0j6gWtvWiUSC7u5u3njjDUZGRti9e/eS29NS/JviP2MesQT4vUssTdz+94l3Ax7s6dO4c+fR7Sli\nIeju6uDRj3+cz372s3zve99jcjpLqGMXRqLtqv0KISgOv4brWNByswS7FAUFFeFKCxkzFLoKsVKN\nCIoZpzJ7kdmZKe6+++5rhjeefPJJzl28hN64ASO+iFLcO4SdH5XqfZ7KoHyTYeEEq5w+hLB8CK0G\nDqu1OgUJVAg7+Jyua5hmCISDnU+j4LJt27b3LFM4HObA/v2U8xnMpr5F20AIQWX6FOX0YVwr65XH\ns4J0KxJuKo5I8EjYEhBSr7DQ9dXTFA/eKY/L5+2xTu8oNQBRcQTy5ySsZmXBiEloRVGZV2nz4aeq\nVJiaelOCQwKpKqhHwZdWEB58kj0ty9uw0ft/bXgrcD646INV/kqTX4/cefm3RC8IR4Ix46+DXURF\nEDJ1aSkDEqJLrn53iGhBEVRZzulDEsixCxIm08IeyOdBidNvye2ad3hKhXLRkNzZeVvaak4e37Vk\nnZ0i0g7XA73aPgTFS/JnIymBHyMmIaCGTRIuNVOyL5yyLFuixwPldOYhNG8lMrZCQog+pFfyIL25\nQdlm5bTcj5mSuW3UQeGCzKHUBkitg7jXVlbGU0/z+kINS3WyUIMEwzRdKuJpptwu1gnLdkFiJUpq\nHSK+UpbHzsv2K454lrQR5q1r57tdWv2OwNQ+qSQY65CqiKqXb4ESJRJgnDogx19suVTfC9XLtjHr\nJMBXnZN1ja+cX6XMDYKd88C0LbIcdn4eJFzU+nbh23sIV+ZCUapFYtZJqAtFwl4+5Bl8tubcgZDq\nbfmL8m/1G2W7J1fLtjLiUuHNrUhVxXCzbLNgbDK/v9qozHq21/6bpLZUlsv2yxyMLEcxwhL2LFyS\nuQny98aN0qbXsa6GEgOA2Vc1FDK/swOepfGt8vyoGTIHvc/7D4wMw0QNp6hq9YjiZUR5FlUPE65r\nf3dreG/cC7sMU2+iOiW2bL6R3/u931vwdui1hBCCYrHI7OysBPYqZVTFxXWq8nolBKgGiqKihOpQ\nou0oqoaiqMEbuvP1MVAUKE30S2te1ZDnhLBn377g3Mj8KnmtNXp1TirxWZl5u2ivbZWpgyiiSqT9\nJrSQVLLQIk24lSxueUbmjR6V8KyiXAVICrssz8PTb4Fro8Q7IXW9hPtgUevhf881eCmWwo8P0jzi\ng1SXpXj3UFWVG264gZ07b0E3IqTHZ5nJKkxkQkxkwuTLURKpVu697+f4zGc+w4oVK/jud76NoeX5\nv/6bhbnI2kypAn/3AwPbEfyfvzRDU0pC8oEtqOsSCodQrrjqhUxY2e7y2mEYm8i8rwdpzzzzDNlM\nmkd2W/giSH5kcnDwlMrJ8yqDl1TSUyqRkIQKzw4rPPeaTjLu8ujuLKqqLLBEch2XJ/5VZ3ZO4+E7\n51ixzFNF9m5HhADHUajaCpat4ArFu+tRcFwXM2QiUHh7UMVxNbZv3/6edamrq+Pw4SNMTc3Q1mjT\n2brwHkwIeOolncd+pDOdUQmHXHZeX+L+m/Pcu73AlnVl6uIuY9M6UxmNwwNR0tM6fSsraBrYtrTQ\nVZR5OG82pzEwFKJzWZXrVnqqUd4tvW3D17/fwNCYgRASYDw+GEbToCHpEI+IBe9eTMzo7DkU43sv\nppjOShvaTatLrO2yGJ3UOHkxxMClEKNTBm+dClMoqXz0zhyNdY7ftPN1BcqW/IuuSTfKSlXBcWT5\nw6bLy4diOK7Mpseer+fH++Jk8xooJstal9PW3sn4+DgIgarAtvWlhRDfu1zuFWBgKMS/7o9TthTK\nlkrYFHzy/gx9Ky0JSwLHzoR582SUzhab33xolmxB5f99vIm3TkWwbIUVy2weumOOj9yeY/e2Atuu\nKxEOCcandVwhVSCrtsKvPTjLodMRTF3w4V05blhV4eYNJX7lv8yyY0OZvpUW+09EmMxoFMsq8ajg\nzi0FVHWexTJ0CUKubK2ybX0Z21FITxmkp3VOnAtz9EyYE+fCjEwY5EsqK1stPvPQLGtXVPj2T1LM\nFTViYZdPPZDl8qTB6aEQ2byKELKumirV+DRNkIy5pOIudTGXlnqHjavl8ayqwrbryqztsmhvdjB1\nF1WF9T0VxqZ1zo6YHDkTJpcX1McrxCMuiiIXi4TrMjmr8OKBKP+8J8nkrE4o1syNO++TC3KaVKB0\nhUBRNYq5KYZOvsr02BlcHep2b0Gri0mgqi5OqKcNZ66AM5PDGpkksr4HxdTJv3IMZzaHlohS96Gb\nMJrrKfVfQI2FSdx6/fx9oOqDU4qcRyHhL0XVvEYXqImItFOdK+IWK4R62lBr1F4kNOfMnzgUObjK\n50YpHjmLqDrEtq6h7kPbiW/rI7pxFdHrulBMHWtkSu53Lo+5vAXF0ILkDNRdvL4XrkvuteNUBkck\nrOZ1mKjaVEenKJ++hFuuEuldLi1cHZfsy4dxsgW0WIT45jW4laqnYufKY+iatP/VPOU+X9XQcbHT\nMxQOnkYNm6Q+tA29Po7iqVlIZ4d5+zvbtgmHw9gq6MsaqJwbpTIxS8N1vahhUy5QOq5XbhE8OsF1\nEVUHu2yRf/04bq7Evffcwy/8wi+873v18fFxnn32WZ566inS42MIbx5uWRIGUMImDTdvwClWcEoW\n5vIm9PoEiqZKRUJNRbgyR6uWhWEYVEplpp/fh7BtopvXEN++Lmh71dCDuX5tWbVEFHN5M+XBEQn5\n6RpuoUyoszlQ6yv1X6CaniaxqpPk+m65P10jumIZ+YEh7Ok5KkPjqGETLRn1HjN551BVxc7kKfVf\nIL/3BKJqE+pqJbZtnRS7VFW58LzI9VXVNYTtUBqZwK5Y7Nix43218VIsBXyw5hEfpLosxbtHJBLh\ntttuo6+vD8uySKfTTE9PMz4+ztTUFJZl0dnZycMPP8ynP/1pBgYGOHLkCB0dHe+onjQ0NMTRo0fJ\nZDIMDg4C89cDH9xZDHSzLAtVVYnFYmiaxpYtW66pDplMhueee45kMskv/MIvLFqeI0eOcOrUKS5c\nuMDU1FRg9fnss89y4sSJBYphtc8dfYDH/3mx8GGfKxXSXNcN1LBA2iKvWLHiPevT1NTEiy++SDqd\n5s4771wwRwPI5/N87Wtf44UXXmBsbIxsNsvQ0FBggTw1NYWiKMRiMaLRKA0NDeRyOQqFAjDfBz6w\n5CvsRSIRstkslmUtgIdM02Tt2rXE4/EAViqXywEI6EMi/v1ZNptlenqaTCYTQJOrV68mEokEsFU6\nnWZmZoYLFy4QDoff8brrw1x+nziOs8A2uVAoMDo6SiwW49y5czz++OMcO3aMYrFIKBSiu7s7AJF8\ntblSqXTN91KKotDe3k4ymQwUvUqlEkeOHFnQTj09PcRiMYaGhhgbG6OhoYEtW7aQTMoJ+uTkJGfO\nnGFoaIjh4WGmp6cDdTNFUbAsi+uvv55Vq1YxPDxMb28v9957L1u3buXee+/ll37pl7juuuvo7u5m\nz549TE1NUS6XCYfDJBKJoC91XQ9+TqVSC9QyI5EIiUSCZDJJIpEIVNk2bNjAzp07KRaLnD59GiEE\nzc3NrFq1iomJCaampgJIy7cp9S1h4/E4yWSSZDJJQ0MDK1asYG5uDiFEUP9UKhWAvV1dXYyOjmLb\nNslkUjroFItXwXPhcDgAEA3DoL6+npaWluDY/os0pmmSzWaZnJxEURRWrFjBpz/9aXRdJxwOs2LF\nCq6//nr6+/tJp9Pkcjluvvlm5ubm+Ou//mtc1+W6667jd3/3dxkbG+Ps2bPceuutwbnHBxj9ceyP\nHb/f/HI3NDTwxhtvMDQ0RGtrK2vWrLlK3dIHcP39Oo7D448/zuDgIKZp8tnPfpbPfOYzPPDAA9x3\n331s27aN2dlZLl26xODgILFYjJUrVwaQ32KA3+zsLF/96lcZGxtbYNM9MzPD8ePHee2112hra6O3\nt1e+vDoxwXe+8x0cx6Gvr49NmzaRz+eDMeb3sw90+sCyPw6ff/55Tp48yZo1a/i1X/u1QK3Ph2r9\nPq2F0Nra2giFQgwMDDA8PMz9998f9KcP0PrrMb4NdqlUYmRkhCeffJJKpcKXvvQl+vr6rmkM1/bB\nqVOn+Jd/+RdeeuklSqVS0JZ+fTs6Ovj5n/95zpw5w8zMDPfdd18A5vqwp19W27YxTZOTJ0/yxBNP\nYBgGX/jCF1i7du28AnoNQFf7fe3atWiaxqlTp4J9jo2NcccddwRj5Z/+6Z+Ym5vjkUceoaOjAyAA\nco8fP86xY8eYmJigoaGBurq6ADz048yZMzz99NPs2bMHkDbV69atCxQsY7HYoufB5uZmjh07xuTk\nJC0tLXR1db2vdl6KpYAli95Fwz8RAu97gXsplqI2VFVl9+7d3H333fT39/Pqq68yMTERSF23tLRw\n2223sX79elRV5fjx46THxnG1KEbd4hMROz+KW8lJFa9YR83BNHDlTYtdtTGMq3PXqOuinD7IaHqM\n/v5+rr/++muqx8TEBI4jMOPzwKEQQgJ8M4O4lTmEa6OoOmooidmwGj3ejjUzKJ8FJ1cBKq67EGqx\nKhWElZO/+OBWLeTjW536YJ8Pdbg2llVF1y30eDuliaPBm0HvFRs2bKCtdRnnL16mmr2EmVq54P/C\ndSgOv4aVuShvjvSYBJdCTWBEPcW4cQnf2AWpHFeZkoBUoA5WBc2H8pBA06wiVciurGN5RsJ6KFKZ\nq5qV0JoWkRBVdLmEvIQFxXGpUGcXkCppHuhSkhaREmopeLCYp9CGkECeHpKQWLxXlkdRCCAu1S+3\n7SkkqvJvipdDdglm34b8BYRdQBE2hqGxsqtLTnQqloSQ7IKEqmIrFlnJukKRIKj/+Hx9XM+GtGGT\nrL9blW1tFz2bYQ+OFI5UNitI6Xdpc9s7r+znVqWKV+6cB/4VYWqvBHyypyQ417Jrvlx+P8U6JQhZ\nmQahzisTBgX3lQ2ROZlcLRUXS2MeZOjZ/ILch5GC9g/J/Jh4Dd+Kh8gy2Y9zA15OUAOFIvdRuiz7\nq26tPA6K3OfoCxKcQ4CqS5U315afbb5Z5k5haN6SON4t4TVVl9v59r+2lye+IuPcKc/22JD9UByd\n307YMhcbbpxvLy0s7Yr1uKxbYXheRa14TuakFoFlt0kVy+yZ+bFwZSiaXOH11DmlPbAqj6sIaWE8\ncxSmj8jjhZsX9ot/nvAXeoQrQdmZo/L/jVsh1cc8yOrKHIj3wsSrsk3GXpFjOL7S2+yKcSpcmdu+\n3XLIs4A1E/LYdl62e2UGVnxYttvkW3J9zQjj+ra9jv8mmTIPN9aWy3Xmv2cH5KZNN0lwzf+cgtef\nciLmv5AQjUbRIg3Y9Tcipt+iMnUSs7FvcWv42rGogFK8jOIUWbasmS9+8Yvv697HdV1++tOfyodi\nY+NUqg6OI4JJouQvFVQzgVHXhTV9BubOSeVRL+8VVQfXQbhWUJ9INOLZu/ttkJpvP8VXSa0Zv36E\n6uet0ctT8lpp56E0KvutlJb24qEEenxe5UhRFKKdt1KwK1SzF1GmDqAYCdRkL47RgFB0mZOVKVl+\nTxlSiXUiGm4EtyoZQ++tzsUeYf1br8FLsRRLsRQfhGhpaeHjH/84Dz/8MENDQ+Tz+WBBpKurK1h8\n+s53vgOiwo4NDrF3cNDdd1yjXIE1Kyw6l9XM3TXQVYHtyutjyAxd9dlVnYLOZTbDU9McPHjwmu1G\nyuUyCEFUOjnhOC6nL8LLbxkcHtBx3KtfDbh+tYSOBFIdTZ8Xhw2iVC6RySUBQe9ya/7y5t06m7qg\nYkkVP1WFkAGmAcWywPYsjrvbpeqy/3b+e4WiKNx99938z2+e44X9FbZvsBZYIH9/j86zr2moqstD\nd8xxx+YCjqugKpCMuQgBN64p89G75th7PMJ3X0hxoD+K4yj80v0ZuRNPbVAICBmCmAdYlSrzrSQE\nTM5q/OOzKU5eDBGLCL70qXG+85MUQ2MGT7xQxzOvJtjcV6apzsEVkJ7SOTIQpmypqAr0dVkMDJns\nPxFlYlbn3EgoeI/JqiqULVmG//sbLaTiDm1NNrdvLrD9uhIhU1CtShDK0CAWRdofV6HqQNVRqDpS\nAe9i2uTxn6QoWyoCuWjysY99DMuy+J//+A8I4WA7CkfPhBmZ0BfkpWzz+TrXhuPAs28kcF0wNIGL\nwrIGm41rygghbYoPnorwo9cTFMsKmip44sUkRwYiTGQ0WlIOv/7gLKs7F6oVAKztsvj5u+Z44c0Y\nT+6pY2jM5PSFECvbqoxMGCxvqbJ5rVQI9HtFCJmr3/7XOmxbIZtXyRUV4lFZ8KqtYEZcFGTbLGuw\n+fUPZ3h0d5b9J6KMT+uULIWwKThxLsTopM4dW4q0Ntp84wcN5EtSIbEh6fC1JxqZmJWJl0q4bFlX\noi7mYjvSAvn4YJhyRaFsady1pcAv3pdF0+A7/1rHCwfiTGU1QgZULMmEGZq08/3vn5jmi19vYXA4\nxAsH4vzscIxVHZYEPBWYndMYHDaxqhIURAGrOMuBl75Pe9daYokUjquSyeO7iQAAIABJREFUz5eY\nGTtHLjOG41QhrFG3eytGcwpFVVFCErBTXEHi1hvIFt/CnsxQPjOMlopRGRpDCZuk/uvNaPEolZEJ\nEKAlY1JVsHaqIQRWeppqehpRroCqoiVjhLrb0BIREJC8ZwuzT75CeXAEgMQdm1BDhvcOmkeSuvIF\nQ+E4lE9fovDWaXBckvdsJnrDvHq0ooISjxLffh1GWxOZ5/dTHryMPZMnsmEl4b4uVEOXGnoCqdR3\nbpTSifPYU1kUTSNyfQ+VMyPozXWIShUnW8C1qpROXEBUqqTuu4nca8exJ7NyTNoOdqkSkKKKoaNo\n3jzQLxcgTDzlQpvSqYsARK7rQquLUXuWVXRNqht6L2bZtk2lUkE3DERTHaHVy6kMDJM9cY7GnTdA\nsUKlWMJVFZSIeZVdrz06hTObZ1lTM5/+9KffF9wnhOCHP/whP3z6aSzHxnJtjKYUZmMdtm1jFEqI\n9DSKEMwePI0WCQGC4okLhDrnVXYUTUWLmDhlC9dxKRTylC+kcYsVtPoEsZv6JIUshMwhTa25Xiy0\n0TWW1RO9cTWFt06jREKIfIni2xdI7Loet2xR7JdtW7dxoSJUqCnF8p+/m+Hv/CvV0SnmJmYlyNq1\nDMKGBC9n81hDYwjbQdE0QqvaSdy8IVicjcVi72r9lVzfw+ybJzly5EigBrQUS7EUS/G/QyiKwrp1\n61i3bh3ZbJZ0Ok2xWMQ0zUBBywfWXnrpJVzXZcOGDe+4vxMnTlCpVK5aE9F1PVCAikQii17Tpqen\nWbZsGfv37+fRRx8lkUi8Z/l9G8JIRE7SfCvMAwcO8PLLL3PhwoWgnn6EQiF27twZgFr+9aHW7tJX\nmfPtd98rfBBI0zQKhQLVajVQhHIc55rnRM3NzWzcuJFjx46xZ88eHnrooeB/lUqFr3zlK5w4cYKZ\nmRlGRkaYmpoKLHp90HB8fJxwOEx3dzfLly9n9erVnDp1iqmpqaAtfPUzH1YBrnrJLJFI0NPTQ11d\nHd3d3WzcuJE9e/ZQKpUYHR1lcnKS+vr6QMEwn88HqnbxeJyWlhYuXbrEoUOHAiVIXw3NL2u5XObv\n//7viUajLFu2jL6+Ptra2gIICuYtQkulklQVtuRzWh8Kev3119E0jUqlEigfPvLIIzz77LNcuHAB\n3y60ra2NTCZzTf3pH7epqSloF8dxSKfTC555t7e309bWFvy+Zs0aOjo6UFWV8fFxBgYGroJD8/k8\nU1NTRCIR1q5dS0tLC8888wyf+9znePXVVxkbG2P37t2BDa2fuz54d/jw4cBGtRaM84EKX23NB+zK\n5XKgUOaDW1NTU+i6zvr16ymXy+zbty9QGjNNk+eeey5oZ//LByt9m1LbtoP2Xr58OUBw/iiXyyST\nyQXjM5VK8dGPfpTHHnsMVVVZvnw5ra2t5PP5YKz46oY+UKb/f+y9eZQdV33v+9lVp858em51t9Qt\nyZoHa5ZlW5ZtWbIAAwHDNQncmCGJIZdA4vXI8oLc5GVleDxy88iDkEuCV24Y5WCDwTYY21iy5nke\nrLFbQ6vnufvM59Sw3x+7qvqcVsuWSd7LS9K/tbQkddewp9pVe+/P/n4DAVKpFNevX6eystJfSygU\nCnR3d/tA2MKFC3niiSeIRCKEQiFfzbC+vp7Pfvaz/PVf/zUHDx7k0Ucf5bXXXmNsbIwFCxbwhS98\nwbcjBzU/NLF95HI5jh8/Tnd3t79+3tLSwpo1awgGg1RUVPDhD3+YrVu38r3vfQ/HcXjooYfK1AI9\nWFhKSSaT4Yc//CEnT54kEonw53/+57S0tPj3CwQCzJw5kz/8wz/k+eef56WXXmLr1q2cOXOGLVu2\nsGzZsrI+a3h4mN27d7Nz505SqZRvp93R0cHy5ctpbW0lnU6TTCZ5+umnfcW9v/mbv/HB5kKhQDqd\n9v/vgX0Tv529dpdOp9m3bx8Ajz76qG/d6/UvwWCQXC5HIBDAsixfiVAIwQMPPMDu3bt95diWlhaS\nyaSv7jgZfLZr1y4cx2Hjxo2sWLHitp5fL7LZLH/3d3/HhQtqPUfTNJYtW0ZlZSX5fJ6+vj7a29tJ\nJpP8+Mc/JhwOk8lkOHLkCPfff7+fJ8922muvmUyGPXv2IIRgy5YtLFiwoMzWeKL1d2me3v/+93P0\n6FHa29tJJBKMjY1x/Phxv+/v7OwkkUjcBLo//PDDCCH41re+xZ49ezh8+DDz5s1j3rx5hEIh8vk8\nly5d4tq1a74N8Mc+9jHuuusuPGvrW71/vdi0aRP/9E//xO7du/38T8VU/FvHv2siztsZ4cVEyeKp\nmIpfJbyX2dst5u/Zs4eCaROsXagm7CaJcWjuZqU0oQWQjhrATQb4CaERrF1IYeg0e/bsuW24wFvQ\nQjcoFk3yA+ewRy8rmGz86mq+NTeMOXodLZRQSlXgwnvlCxoSNViStqtcNnJGgUWOpeANI67gpGC1\ngigCwXGATmhIu0ihUCAaNEBK/6X+duFBl9///lYyXQfQQxXokRo3fUod0Ry9rmCO+nVKSU26wJwe\nUvkM1SoFtkynUjfLdquf163Dn2G1i+MKY5q7u94xSwrAGVfic0wFxdWvV+Bg8qIChUZOw+g5ypYL\n7by6fvUyhFGNHNivyk4z8BX5pKXO0XRAUyCKnVEgV6ZDlW3FAoi6truajmcbLB13N73juDaxDsJM\nwuhZpGOia4LFSxbz0Y9+lN7eXr71raeRQlewV6pN5ceoUJBNWZTIkHhRGFHqfdJUYJm0FZQWaVLH\n5Qdg6Jiy2RS6gtsCMVUGhUHXstOtozIQD1VHlYsVdDV4zLVV1tV1zaS6plc+wm2R0oHYbAXS4ahz\nJuZDOviqcXZBpSHapP54MXpegYWhGqUENnxSwWt6UCVx5IwCF8GFE+cp8M2HEz2ANK3KJz+g1AuF\nu+vSsZQ1r/scKOAu5EJ+69U10tegWITRdAk46M3+OwqUi7Yo+2MrA8OnJ+TTVvdBKris7p6SdhUc\nv2awGqpXqnpKtipVQg/mq1unYDy/TeLaV5etZpUAkqlxC9dghWpTkSal+pfrU0p+fXuhdjVEp4/D\ncX7+XGvgbDeMnFLtKj5btYMy+10NdNfet+FBBYLluhU0OnrWrY9Gt00WIdc/DvSCelYr5kPPGyCC\n0LJFqfUNHVV11v4TkDpC2BhVs3EKSRxrEKy8gs28fsFLj/e3pqm8S1v1DVbGBVtnlPcd4PaFCkCV\nqIkFz77Bjk1HjkWw82Pk+0/j5EdxCklwLHShI/UYJGZBuAFNE2AmcUZPE4uF+chHPvKO4D7TNHn6\n6ac5dOgIuYKFo0cJ1i4kGG/CtCT5bBqZ70ek23HsLOZwq+IwrYzKY7wEZNd0hAgh7YLanZnvR5pp\ntwya8RVdS2HY0nZUOmDyYF0rrZ7pzHVXjTSAGDqBAEJ1S8oGWVI6mMkb2LlBZQEfDuFIi0L6vLKg\nclylSOkoNcRABKruRCbm+BNYoVCIYCh4a5PyX/EdPBVTMRVT8R8pDMOY1GLKizNnzoAs8OAa65bH\nHH5TkXIPrcnc9LtgEKy8xDKtSQE/IeChu2y+/4sChw4dum3ALxgMIoUgnTUZGcvzvZejnLgYRgjQ\nNIcV8wrUVyub2pGUzqnLYc62CjJ5DUOXNNZ4G5bGr2k7NqZpYloCW8IvD8e51q1UzwQQjzgsnVtg\n7eIcNQmbytj46y4SglRWKUMZRgQYh/7fLqSUrFixgkisgqtdOb73ssOnfk1ZIZ+4qPHyXh0hHH7/\nI8OsXKDmRsYy7qRpyXVCQcmmtVlaGk3+rx/UcfxihLnNRTatzZIvgERQKCrQLpXVsB2lRNgzFKB3\nKMDuEzHOtIWQEqriCsya3WTyv//OAMcuRPjR9gqudQfZdTxGOORuTJIwltbRNHjfhhQPrCrwp0/X\nkM7qtHWECAUdQoZkcCyAEKoMvbnyTF7jSmeQq90Gz22rZOPqDA+vSyOEUnfUBETDEA4pyK9o4gOC\nAR2aG6CzX2fVmvU89dRT2LbNU089hbTTxMKSgO5gOYKvPVvLFz8xSEON7ae5VHTYGw7ZDnz3F1Vc\nbA9iBCRFUxAyJBtWZBkZ09l2JM6JSxEsGwqmhhGQtPcaXGhX7Xp2o8kXPzFAbaUzXjclFaTyJfm1\nDWkqog7/62fVvHIwweqFeTr7DUZTOpmc5g/TvNNXLsjzozcqyQL5osaR81HfEtiyIF/QiIQcsgWN\nfFHgOBANSx6+a/x5HE1p7DweIxCAipjNN56rpavfoCJmMyYFnf0GkbBDyzSL992XYtncHCcuRTl6\nPsJYWsO0Bc0NJo4j6BoIsON4jHRO43cfHSEUdNzyE76yoK7hQqQe3KmhaRLbHdZedMvMK3sh4K6l\nJg/dVaSjV2fvSYu+4QIdl0eQrnp+0XQ3q0hAh4qNazAaa5TiXtAYr1NdjUOjy+aQ3HFCqfRVKBWP\n6Mp5BGor1R4m75yS70+nUCR/4Qa5C9exx27uz9IHzxGc1UB06R3odZUEZzVQaOskf7mDQnsv4TnT\nCS9sIVCdACGw0zkKV7rJX+7ATufAkSTuu7MM7isLoRGa3Uj1Bzcw+sohzL5hrKExMkcuYjTWIIKG\nUufrHUYW1XhEi4aofPc6da/WTvTKGBVb1lJo6yK18yR2tkC+tZOB3mEwLbSAjl4Zxy4UMftGMKZV\noXkPnFcf+LMo6v8BHVmwKLT3gRCEF7gbW0tgQPyFHBQUl1NjiFg0imWahObNIHfuOiNHzzN2urVs\nAVELGUQWzCS6aBZGZQx7NE1m35vEgiHe97733ZatnxdSSn7wgx/w+vbt5GyT+OJZ1C+bR7ixFtuy\nSKVS7t4xSe5SB9kzV7GzeZx8kfy1Hoq9wwQby60R9bDKj207ZC60g4DI0tlKwcStBwz9pn1p3mKw\nF5HFs8gcv4STVvbihavdRFfMJbXrFDJfJNo8jfD0csstO1cgefYKQkIkGFJqROk01qVOLNvGtmxs\ny0JaNnpVnIqNKwlOr/Ptp25nLBmIRQjWV2ENphkYGJgC/KZiKqbiP2VUVlZSWVk56e/6+/t9cOxW\nqj6FQoH29nYKhYIPk3nhzVHZthprBEtUf70oFouMjY2RSCQ4ceIEDz744Num2VO4KxQK5PN5urq6\n+Pu//3tf1SsajbJy5UoSiQSWZdHZ2cnly5fZuXMno6OjPtDipbE0LV54YIRnH+kpd3kgVSAQKIMR\nPdDCA1YmXu+twrZtNmzYwMmTJ3nxxReZOXOmD3ls3bqV8+fPMzQ0RFtbG6ZpTphDHP+uKBQKXLx4\nkXw+z9y5c1m0aBFnz54ll8v5wJln6+jBOZ61aCKRoKGhwVcBnDVrFu9617sIhUJ89KMf5eLFixw6\ndIhCocDw8LB/vgfueYpk3d3dXL161bdPLVWYKrVaLRQKvvLflStXqKmpYeXKlT7o58Ey8XjcB4w8\ngBLwbWiHhob47d/+bTZt2sTVq1c5deoUuq5jGIYPHc6ZM8e3wn2rMAyD+fPnl6lw2bbNwMAADQ0N\nNDY2UlVVVdYeGhoafPCtq6uLc+fOTXofT30tn89z+vRpli1bRlNTE8899xyRSIRsNsvo6OhNoJOU\nktWrV3P27Flf2cy2bRKJBNlsFsuy/Hlg73kIBoO+Ip4Xw8PDaJpGXV0dfX19HDt2DCEEM2bMoLOz\nk46ODkzTJJvNkslksG2baDRKMBhE0zQfJvTq4MiRI6xZs4aWlhb/WfJsWkE9D95z6kFf3nPj2Up7\ntq+eiufq1auZM2cOly5d4sKFC+TzeQYGBsqUJ72orKzkySef9Os6HA77aRBCUF9fz9q1azl48CCv\nv/46Bw4cAOCTn/yknzbvW7EUaOvu7mbHjh0cOHBg0jXeZ555hvvuu4+NGzeyceNGXnjhBZLJJN/9\n7nd5+eWX2bBhA2vXrvWtjnt6ejhw4ADHjx8nm80Si8V46qmnyuC+0jZiGIYPOj/zzDMcPXqUM2fO\n0NTUxPTp0zEMg2QySWtrq68uuGjRIj7/+c+zdetWurq6WL9+PZ/73Od4/vnn2b59O6lUin/8x3/0\n1fAaGxsZHBz0LWNDoZCv/DhZeH3E0aNHyWaz3HHHHb7CXGnZef/2jvf6nWAwiJSSdevW8fLLL/PV\nr361TFUUYPr06dx///2sW7eOSCTCvn372LdvH6FQiA984AO3TNtkkclk+MpXvuIDc5s3b+bBBx+k\nurqaXC5HPp/HMAyGhobYsWMHe/fuJZVKUSwWefnll1mzZk0Zi6PrOrFYjFQqxcjICCdPnkQI4avv\neW3e67NKAVyvXr2/N2/ezLe//W3/mTly5AiRSIRvf/vbAJOO/zo7O9m/f79v/xsOh7l27RpXr171\nYW3vubzrrrv49V//daZNm6bWhlwA/e1i+fLlgIJ1p2Iq/v8S/64Bv8uXL5dNitzO7pWpmIp/rZhM\nKW9iOIWk+kd0MiUstYN3olJeabxTxTtQH4eOlKTHhpCjh5DZbvdiE+AkaSJy/chkK3Yh5QItnsVp\nOX9hFk3skVYFW0lbQT6lK17FUQWjeeps1UvHf1eqVljMI5EMDAzwp3/6p75stqeOeOedd6JpGo7j\n8Oabb7Jnzx53sAOYaVKXfkqoYRWhhpWYw5dcuM+Apk0uXAhY3oypmwnhqvPFZyp1sp43INuNyHZA\n5QKkmVUHOy58Zee8kxHFIWTWVZcrBYbq71WAT+UCBQ8NHFQqb0IoIE8YylI2eUWVZ7gRmW5T1xUB\npZamBVR5EnDLbQ4Ea93yshS4lr6mVOOGTqgyr7trHJzUAkpJS7p2noVBBBJhRAjEm7BTncyfO4uv\nfOUrOI7D1q1b1YehZiiQys4quKpnu4K7Yh54x3jdClFiEXtkvIy8eo3foWCp5GUXMLTdtmVDcUTB\nbrggYONDCuS7Kbx7aRCfpcqmf68C9nxwzfEtfcoiXKfK07EgdU0p9Gm6O2nuAT6MQ35lioeaWmFI\ntY636cyNcYDTzqs05HoUJOfBiQh17NgFVwXQUnkO1qg8p9vVfSsWutkKgh5UNqFQYlUrVRrNpEoT\nKNjSKz8RUO01PscF2ITKQ65vHLCTlgu2mQrAlLZSlvQBPcNt/yXqedHpMBpR9x07r6AqD8pCqPal\nBYGMW/bufVOtCga00jfXgznmwqgJpQCamK/K0srAwKFbqBP2K6DSe67is10wcjLcygX9AhGl5jh0\nTEF8xVEFYI6cufkUI6HA2MR8VVbgwqmaupeRgN4dSDOjBoe1C4m23E+q9WdIaau6jzaV1NWEiQd/\nRUtXMCOovq80zZPlxLX9LRQKJBIJTNPCDCSgMEK+64jqg8tiBJHpRAsl0KL1WMkOokFYf+/dbN68\nedJ7TBaO4/D0009z4OBhcqYg3PwARuVMBZ4C2WQSGTQQkQaoWQ6ZTuTAEXDyqg/oP6zKrBSiFZqf\nn+Lw5ZIyEO6zhv8+KV/RKlktF27dVsxT4KqdVT8vDEJfH9g5tGgdWqQOOz+GdEylRjt0Cc3OEQ8F\nuPfeB3jiiSe4fPlymfKuZVl0dHRQMEE0PYgeqUXT1G67gBG4JdhXGr/KO3gqpmIqpuI/U6RSKZAO\n06pvvRAw6r6GZzXeDAF6/IcjJ/nOwztPQeNjY2O3na5IJIJZtDl9yebC9RitHSGiYYct69I8uCpL\nTWX5+CuT19h7KsYzr1XgOALPzbJ0MrZYKNLRpzOS1EnnNHYdj6FpEikVVNY/Aq2dQX6yo4KWBpPf\nfXSUBbNMJGqvgqdWOJq0cBzo7e3lj//4j8nlcgSDQWpra1m/fj3r1q3DMAxGRkbYtWsXu3btYmx0\nBMu2yGQcfrbH4PRlnU9/uMgr+9VmjMc2JRXc58JfAgVS2baCqUQJFDa/2eR3PjDKP/ykmh3H4rzn\n3iwCyLqQn5SSyzdC5AqCbYfj7D4Rw3t/B3TJXUtyPLYpSV2VKsOADvfcmWP1ohyf/R9NZHIa77kn\nTTziMDim88r+BLoO0pH8389UoWswq6nIuqVZzrZF6BoIEAk5LJ1T4KE1GebMKCIEpHOCC9fCHDwb\n5Wq3wSsH4lzuCPLpD47ghCXpnLtnAJW/cAiud4cwArDuTpstd9v89feD/gLXqVOnGB7qo6bSYjQp\nqK+2iEUk17sNvvztej6yOcndS7PKZrpkOCmBa10GL+yq4OzVEIYO96zI8ov9CQK6Ujr8qx/UY9vq\nO2fpnAKLZhdIRBzypuC7L1cTCko+/egwug7ZgiAakmU68RM/f+++M8f1HoPXDiU43RrGdsC0SoY4\nbiV7YKmuKbthXZMcOBNl4+qMf13LBimVlXChqKyji5bACEiCAYmmwY7jMYqmUhx8+oUaCkVBbZXN\np943wle+P41w0GHZnAK//WsjvH44zg9erSKTn+RLSiqQr2gKDpyO0FhjkSuoZygRlXisUzgofbjv\nxMUwoykN6QiqK23+9Hf6aO8NUzBDSASxiGROs0MiKpHAgpk2D60tcvmGzqlLBqmsUm3s6tPoHAhh\nOTqEdIw6tQgvPFtU79MzoCNtG2N6LVo0jD2SwhpKIowAkYWzxo8Lq29yJ5NDIrGHkoy+cggno8Z0\neiJKaO50tHAQ6Uis4SSFqz0Ur/dSvN5LaM50rxNBmhayaJE7d53cpRvjC5ISpG0rZTUjQOUjdxOe\nP+Pmcp0QwRl11H5sM2O/PEKxvR/HyVO84X6rupc2GmoIL5lFeN4MREDHuerOCdlqkTA8vxktFmb0\n5wdxMnns0RRGRZzpH9pI6uJ1Ro5fJH/pBqGWacqKtnQRtpR8dW9pDoyAIwnOqEOLhNS0B4xbA4vx\ncYDQhLqm7WA7DlrWJLPvLNKyQNNwpESPRxC6hlMwsXNFMmevkDl7hVB9NeZYmrAjWLt6De9///vf\ntrxK49VXX2Xb9u3ksWh8/33E5oyXd6FYUCkMBNCCAeKrFxBZOJORlw8g+0dx8kVGXjlEzQfu89uX\nF5oRwEpmMHuGEIEA4QXNyKKJdJXrRUAvLzf/r/FFLT0eITSrkcK1HmWZbFqMvnoIZyyLCOjEF8yk\nODAKmsDO5kldvE76cgcBCZXhKE888QT33HMP58+f5+rVq2SzWQKBAFevXuXYyROEF86iduEd6Jp2\nkyLi24XmdozZbPYdnTcVUzEVU/GfIVKpFFJKKioqbqmIms1mfQCrFMDxYqKi0WThQUujo6O3la7K\nSqVMOzQ0xMmTJ/nBD35AJpNh+vTpPPLII6xbt+4mm9uuri527tzJT3/60zIXktJ8FQoFH8TyoKbS\nPHngWSgU8t1CvPODwSD5fN4HZmzbZu/evRw9epRisUg0GqWlpYWNGzeyYMECAK5evcqOHTs4fPiw\nr1KXz+f58pe/zL333stjjz3Gvn37SCaTXL161Yf7Si07vfXjUijs+vXrxGIxmpqaaG5upqurywdB\npJS+1aphGCxcqOb4PUisoqKCJUuWsGrVKh8MiUQirFq1ipqaGn7xi19QX1/Pww8/TDgc9pX6QqEQ\nFy9e5I033vChF88a0gNQ+vv76e7u9i1avXWzGTNmkMvlGBkZYcWKFaxatYp8Pu+rn5VCYAMDA0Qi\nEZ544gna29vZvn27X5c7duxASklLSwtXr171IcTa2loMw6Crq0uN8SeEEIKqqiqam5uJxWJq/dHN\nQzqdprm52Vd586w10+k0pmlSW1tLc3OzD115+XUmrPVMhPYuXrxIPB6ns7OTcDjstzfvj3e8pmn+\n8+eBoyMjI/7xXrv1VPg85b1SmE5KtV7pOEppf//+/di2zT333EN1dTVXrlzBcjeDFAoF4vF4WRsv\nTb+3tukp3MViMV+JLxQKYVmWDyF5eX3zzTf9Z2T+/PmsXbu2DLSNx+M0Nzf77a2pqYn169dz+fJl\nuru7fVXN1tZWTNPEMAzmzJnjKx2W3su7T6FQ4O677+bgwYNs374dKSWLFi3yVQdhnLfwlDZ3797N\n97//fT/PCxYsYMmSJT68e+7cOdra2ti2bRtvvPEGjz32mF++2WyWjo4OfvKTn/DSSy/55eU4jl8f\nM2fO5Itf/CLTp4+7+EwWmqbxyCOPcOedd/IXf/EXjI2N0d3dTV9fn18Xuq5z9913s2nTJhYsWOD/\nDBSUGolEePzxx4lEIvzsZz8jlUrR19fH6tWrefLJJ/niF7/I0NAQFy5c4L777isD024Vra2tCCG4\n++67AXx426vz0r7S6w8tyyISibB//3527drl21zH43F/Y42nIvujH/2IF198kZaWFtra2hBC8PGP\nf5zZs2e/ZbpKw7ZtvvGNb9DZ2UljYyNPPfUUtbVqzba03w+FQsyaNYvf+q3fYt26dfzt3/4thUKB\n69ev841vfIMnn3zSf95AgdGGYXDu3Dksy2LZsmXU1taSyWT8PtWDwb17lf7t1ds999zDD3/4Q4aH\nhxFC0NbWxvnz50mlUsycOZPm5mY6OzuxbZvu7m527tzJ5ctqXaqhoYEvfOEL1NTUcOzYMQYGBsjn\n84RCIfbs2cPQ0BDvfe97y56N2w0PaLxd4aKpmIr/L+LfNeD3wx/+0P+3EII5c+b8G6ZmKv6zhaeU\nJ/Rb7xiWjjehOdkx47uYbxVCe2eKd6ZpMjg4iGOZyP5jCp7xlNM8gKtUkCtYC5ULEdku6NmpXqhW\nDkIhNNcKVjo2uRu7kekOBQjpLsQTaVJwi11Q1q3pawqkGToO2W5k00MK5pGA0JGOSXaoHWGZDI8U\nGE3lADW40i9f4dDhIzQ1NjBjxgy6urputo8UBtKxyfccJd9zTCkgoiHr14JRqaAm22Y8g844DOdF\nqR3k2CUF5+kG2J7iloRsj7pWYQi6t41XUKkF60RFqooFClYKVsGMd6ufZW4oMBAJwyfGFb6qVyj7\n0FyPsrj16qbM+tNUaa2Yr0CowSMKxhs8hqy9q4QdEi5ko0H6OkILELvjYYQeIpft9T883nzzTXp6\n+5R6Hyhgx7MpznRA//5yAFQYgKtOlyxRQws3qJ9JW8E6+X4F4sALqg6sAAAgAElEQVQEe+SYKtPe\nHSovNauUQpdTHFdIvFUEK5XK3OARBWQ5chxi8/Psrmp5KntIBXt1v6aAIhFQaYjNUsCbv9Tptgtv\nAJnpVJCeY47Df0JTdS9cXzYtCE2blYVvqrXcqvemkCqdqWtumxLKFla6Vq4eXOgBY9ku9xnVAF3Z\n04ZqSyCvCR+ZQoNoo6tAWCIvUhiCrtfUfaLN4+dObKfCVcKL36HU70bV4JHE3HIQ0IgrWDHXp9r0\nTRbLt1AxNFOuNa9ryRRwFfDsrIIJx2SJXIlnV6xD/d2QWHALuK80NFU2tauVnaudUWCvdy0tqCC0\nxBwIN45fz2s7okSRMFSjyrv/AEiLcPP9IDQFYjq2ep6rl9+chNLVWHBXTt32EGl0oUhUfdv5kpO8\nLIwDz2axgBg8Cvk+pBb0QV8RbXKtvi3I9SKTbdi5UezsIEZA5957HuQzn/nMW1opTYzt27cr5T5T\nEJvzHl8JFcAyLWzbtU32LMA9ILr7DZBZBfp1v6GUUkthYDc/0kyrYglPG7dvFvrNfXD5cvZ4/xp2\nIXhbrdaL4hhC0wkYGsJJk7/2Kp7yn64LYoZOU8sMlixZQjqd5stf/vKkwPiXvvQl2q52EK2sRg+9\n800g7/QdPBVTMRVT8Z823uIVblqq7zcCbz0ZeqtQm3Olv+v37aKtrY221lYKJvxsbxyBoCpu89Tj\ng74Vq89YuH/Hwg6PrE/T0Rdg1/EYo2kNKSlT0DhxUfDtn9XiSKhO2Ny1OMc9d+aoiKtJ2qExncNv\nRjlxKUzXgMGX/n4a9y7L8F/fnaSp1sIICMyCw5GzkC9YZHL9FHL9aO5iU2+Xzrk3T7J161bi8TiD\ngwNIOweyQMiwqIpCIixJZ6B3SPAn3wwhBEyrsXhwVdZzgqRoCc9Vk6LlwmQT6ueuxTl+XFXB4GiA\ns20hls0tgOuQlMzoXLyulNAb6ySBAIQNkxXz8mxck6G20rnpelIqy9XGGpvOfsH6ZVmmVdv8n9+r\nQ9dVYl4/kiASlKycn+ejW8b4+5/W0NVv0FBj8Qe/MUTzNEsJnHufBkHBXUtyrFuSo3swwLd+WkNr\nR4hv/7yaJz4wrCyUS9KRL8L2I1HyRcE9yywyOQDhTzrv2LEDnDwPrrZ5aXeATE7nf/tYP1tfVZbD\n//TzKp7dVsmGFVlm1JvouiSZ0Tn8ZoTrvcpaNRaR/MFvDHH4zQhSKnjup7sq0YRkw8oM778vRV2V\nTTqnoWuw01UzXL0wz8xGi3zBtZmVSkVvYpS2y/tXZdhxLE4yo6Hrkud3VNIzZPDQ6gz11Rbdg0rV\nz7KVNbCmSdI5pXr42f8xnXBQEg45zGsusmFFhoWzigR0ta3IdsA0lULj9W6DX+xPuOqAkmAAhJBk\n84Kf7KxE1ySzm0w+umWUr/5zHV39ARAwZ7rJxtUZWhpMArokldU5ci7CwbMRNKGRyuq8sLuCpjoT\nIaC+ysJ2FNRrBKTaZ5UV/HRXBY4UhIIOVXGb6oQkEc0TMCRCC7htrVwJTtMki2bbLJpt+z97/WCQ\nH283sByN4MxpCjITQtnKln5+ahrCUGPdYEs9uTevgYTQgia02Pgid6AmgRYJYY9lyF/qIL3/TWTR\nxJhWTXTNAoIzp41DUu61nVye3IUbZE9cpnClC6dogRBU/9p9iGiQ/OVOitd6sDM5ZNEat78NGSQ2\nrbol3DfZYpIWMojfvYTRvhHQNBL3Lwcp0WJh9MoYgZqKsuNtF0wUoaCf3mBTHfF1i0kdOIssWMTm\nNhOZUU/qUjvSsilc68XJF9Fj4UnTVVonMu8CANHweHkUJ/TZ3j4fR6IZARy7SPpGL2NvHMcuFJW1\n7PxmwgtbMCrjCsaUEqt/lOy5a+Tbush19qFJwdr77+f3fu/3bkttwYtsNsuLL75I1i7S8N71ZXCf\nWsxSQLYWGL+mFgtT9f71jPxkN3I4hUznGX5xn4L/Fs9U7QwQuoadd1UTYyHV5GwbEEoB0b2HEMKH\n+kplEL2f6TUJuNYDUiKLFiKZI6jpBIwgI7tO4ngqF0BA04lpBk2Njei6zvPPP88zzzzjq9Fs3LiR\nVatWcfDgQU6dPYOw1QKxtGycooUWDNw26CdNCwH+4vBUTMVUTMVUjMft2Jratu1DSf/S+3ibV94u\nXn/9dR/Ge/rpp5FSsmTJEv7gD/6gzLa3NE0zZszg4x//OPv376e7u9tXD/PUkjw4RQjhg3Y9PT0M\nDg76AFMikWD69Om+bajjOP51PAtc0zR9G9menh5fDc6z1z148CB1dXVYllUGNHqKdJlMhmw2y5Ej\nR9i3b58PZXkgugdTemm91fxpe3s7jY2NVFdX09PT44NnQgimT59OKBQiGo1SUVGBruuEw2HmzJnD\nwoULy6wmS6OqqopAIEA4HOaDH/wg7e3tPP/8877176uvvuqPay3LIhgMYpomfX19XL582S9jr15y\nuRw3btygq6uLlpYWZs+ezalTpzAMw4cgS6O3t5fu7m7C4TBr16717Tej0SiZTIZDhw751q2eTbOn\nwlhVVeWr3g0NDfnpDIfD1NXV+da4HvzobcDz7ENt26atrY2uri6klD7c1NLSgm3btLe3Y9u2bzFb\nCvlNBv04jkNXVxeJRMIHRb/2ta+xfv16HnjgARzHYWBggJGRETo6Ovx7ptNpcrkcg4ODfpvzYClP\nrcu7vmmamKbJ0NBQmaWzZ4d75coV/2djY2PYtk1NTQ1SqvmJgYEBent7/fYWjUZpamqitrYWTdPI\n5/OcOnXK39TntYNSJTNP0RHwLcA91dBoNHrLNmwYBkuXLmXp0qX+8/Xcc89x/fp1AN/9oDTPXniA\n7axZs6iqqqKzs5NIJHKTOuiiRYt46aWXOHjwIFVVVTz77LMAbNiwgXe/+91lKntSSh599FHa29v5\n5S9/ycGDB9m6dSuWZdHU1MQf/dEf0dvby+7du2ltbWVsbMy3UxZCUFlZyZ/92Z9RXT3RaWzyCAQC\n1NXV8Z73vIef//znzJ07l02bNiGlpKamhpkzZ96kPO2BitFo1C+PD3/4w7S2tnLy5ElA2cRWVFT4\n/dzu3btvC/ATQviWxvF43IddM5lx5XfvfK/de6Dliy++yM9//nMAFi5cyIYNG7jrrrtIJBLouo5l\nWRw/fpwdO3Zw+fJlTp48iWEYfPrTn+ahhx66rfLy4vTp01y6dInKysoyuA8UW+BBpZ56o/fu+Nzn\nPsfXvvY1kskk586d4y//8i/54Ac/yJo1awgEAj7E55VBQ0ODD/cFAgF/nboUzp0M8vMswD1AOJVK\nYRgGgUCA4eFhvvrVr96Up0AgQENDA5Zl8Vd/9Vc4jkM0GmXhwoVs2rSJO+64g46ODkZHR/0+qNQm\n+3ZAP+8ZnwjGT8VU/FvGvwjw8zzKbzccx6Gnp+dX/pg1TZNkMsmVK1d47bXX2L17d9kujMWLF/9K\n152KqfhVIhwOq8lM+9aLTUJzHzE52THebt1b30M6JghRRsPfKjyFpqHhUQWGFEcUMNL08ATVJe/i\n/iw3MtaCiDUriCzfB6FKXxo427EXJ92hQJ3au1zVNG9FxbXCDVYoSCjXA0MnkbluuP4jqFmt4Ddc\nBbX0NaR0kIm5yMRctIBSWRDFIdKDF7nceoXLl9sQehARTPj2kUI3kLZJfrQDc/iysqm0TQUfheqU\nXbCfPxcacWzXYnRCAbt2kNJMI3K9iEgDEtOvL5m5jpBSKWYF4zgigh1pVgBKIFQOTfkqVC7A6dmi\nFkZg8KgqJ0/NLhBToFi2x4X7SpUHPdDFhbL0oLINRirFtcZNCpbLdikwyVcKkyBtZLLdVSlTg2Yn\n24WuC6ZNmwaM20nrkVqs/BgU+iFUqZQIw9OUAp+ZUjbDI5M0LiOhYEPbVV6Tbl4LA+XqdqX2yKYL\nAhoJBdpJW/0pg/xK68aDv1B5DsSU15Y5At2vKuvOQNyF4tLqOnYOcEE6TVdwqlc/5phqz546YnxO\n+cNWHIPhU66dqlT1O+1+GD0D6RvgpFU6a1YqZb2B/bcHuVkZ1R4z10GEIDFXKSxCibqghMKoghgB\ntLAqTy2oninPWviWMeEd6h0rNBdoZPK2j1Tp9aBHO6sg03A948CgVKBmpkPZ+BaGlILjTRbLJdcM\n1ULlIqVkN3hUwZYCqL8PYtOV4mHqigtTuvVmpRVwV7PaVzu8KXxAr1QxQlfnJebA2Dml6le3TqXd\ns+WeGJ7FslEKeAnVLgOnoThKcfBNAtE6HDOvVO2s7M22tLcKH+QutZ6W5ekGF961QNORtkmuYy8y\n0+m3MxFV0LTPQBKC+FyI34HIdsPwSTTdLttxdjvhOA7btm0jV7AINz9QBveBssOQlLyvvOQHq1wg\nej8CqWDuvv0K3KyYiwy57wLbRJopxlepXLhPC44vqJYwfUrJD8rasaf05/Z7gYDO7/7u79LY2Mi+\nfft8Vb5IJEJ9fT3RaJTz58/zxo6dPgjuA4AuMD69qVENJAEz2UU+exKnkEQ6FkILoIUqCNbMJxCf\nfsuB3Dt5B0/FVEzFVPxHiBs3bnD48GHGxsb8ncSzZ8/mnnvumXQiKxaLkUlqDI8JKmKTj/GjYcnw\nGCSzGvXV5YoVHoj2VhNqqYzaqFFqAXKr6O/v5+tf/xqONUYwoGC12gqbL/zXIR/uU/cbP8d770pH\nsmxegf2no5y4FGHT2qyfrvNXNf7XSwkcBx5cleGR9SliEekr4wUNSUuDyaoFeZIZnX9+vZLDb0bY\nfybGuathfv/Xh1k2N0+xqHH0QgTLFrxrXZL7VuaIhkAKg47+KNsO5bl0Pc2gJolFHNYucdi8zmHR\n7HGorqPPYdtBwbYjYWwb1i7KYVpgWpr/GeQNLUxTIF21uNLQNNi0JsOP3qhg14koy+eNj6V2n4ih\nafCee22e+JAaIyVTSSzLRHMV4QxviDvxk9TdU5Mvanzz+Upu9BlMr7foHwpQsGDOjCKf/8gQP91Z\nQVe/wbQai//+qQEq4s5N1woH1Q/yRUHzNIs/+uQA/8d36rnYHmLfmZiyfC7hZE5fDtM3EiCbF/zd\nswZzZkgkAd8ap62tDaTJprU2+09r9A9pXOsO8nv/ZZiTlyPsOBbjeo/B64dj4+3CjVhY8uCqDJvX\nZkjEbf7nj2qQUuUzZNg8tinJ++5TE9lem3Yk7Dmp2uzmtRlChiSgS9JZjaIl0IoQMrwJ7fK8S6Am\n4bBiQY4TFyNUJWzSWZ3dJ2JsOxJH1yS6pmC5QhHyprKJ1nUFZAZ11TYLRcG5ayHOXQ1RW2nz/g0p\nVi3I+3m73B7k2z+vZjSlYzvwyPo0H9qY5Oi5KD/ZWcHlGyEiIYcHVmb4+nN1DIzoTK+3eOIDI8yZ\nMXF+w2LJHQV+/eExXj0Y56U9FaSzqoxn1FssnFXAsiHogr5jaY2vP1tL71CAplqTvmHVqEKGxLYF\ntmURCAZKtzSVNLQJFeQWonQcpJBEls5Ww+qAPn5yKSMY0JCWhhYOusNpBz0eUeSjF44kNHc62bNX\nSb5xAqEJQnc0UfHwGnXdSUKLhImtXkCwuZ7Rlw9CwSRQW+mDe6HpdciNKwHIX+lWx9gOWiREZO4M\ndxOa26lMUJmZmGcR0AnUVBCYVo3VPwICwvOalR2x14jE+KmF1i4AjOnlivqRJbPIHLuInTdJt3Vg\nZVeRudKlpD9tm7FXD1P1gfVoRqBkjDIJnAqq/D1VCsE4XOmWp3QUhWznCmhGAHM0zdi2o2DahOdO\nJ37fMnWqEEhLKRsC6JUxEuvvJHrnHaoukjlSqdQ7UlwAOHDgAJl8jvCMeuLzyi2/HBe8EJpSGJRS\n+tMTWiREdPUCUntOK0XGgknq0DlSRy4QmtWAXhVXqnrDKZyCiS4E0t08pUWCiBL1GCnH++OyIZH3\nLnQXb6WlFp4++7v/jbvvvpsjR45w/PhxUqmUrzhSLBbp6+ujs6cb07GxpePXe0dfD6fPnqG2uobl\ny5cjHUnywnXSV7vKwMtQfTWVy+aRWDjTVem7OexCkeLgKFERKFsAnIqpmIqp+I8atm1z+vRpzp8/\nTyaT8ZWUVqxYweLFi28CbeLxuA92TLRf98ID2G5ljT7RpnCy8NSGbmd+6sCBA/z4xz/2LUkzmQwL\nFy7kySefLIO1PSioFPSTUrJ8+XIlIOHCeV54wFexWKS1tZXe3t6y86SUZDIZent7icfjLF261AdU\nvNA0DV3X0TSNaDTKJz/5SWbPnk0oFMI0Tc6ePcvrr7/OlStXCIVCVFdX+1afDQ1qc7DjOJw6dYpt\n27b5lrjt7e0+WFKaP6/sJlNOTKfTjI6OUl1dTVVVlQ98CCFoamoiGo3ynve8hzvuuAMpJaOjo0gp\nfTW4yWyAS1XJurq6+PrXv45lWaxdu5YjR474gKanqmaaJj09PVy8ePHWc5OuSmJXVxeWZTFv3jyO\nHz9OU1MTFRUVZfe/cOECpmmSy+X44z/+Y79MZsyYQXt7O6Zp0tzczJIlS9i2bZtvxRmPxzFN08+b\nByiVlqGngBcMBstgT0+J7MSJEz7059V5PB6nsrIS0zTp7e314SEPIPJUDEvbUGn99ff3M3fuXF8V\nsrOzk+eee44f//jHZeCbp5JZGl4aPfvr0dFRotEo06ZN8zfyOY7D8PAwQ0NDPnj32c9+liVLlvDs\ns89y/Phxkskktm2Ty+VoaGjAtm16enq4cuXKTRbT6XSa/v5+IpEICxcupK6ujv7+foLBIPPmzfOP\n8+7f3d3NL3/5S4QQLF26lMuXL/t9hafqOJlt961UP71nNhaLsXbtWr9+Ss/xIhKJYFkWsVgMx3Gw\nLIuamhofcvWUHhsaGujs7GTr1q0EAgE+8YlPsGnTppvS5MWsWbP4zGc+w6xZs3jmmWfI5/Ns3LiR\nWbNmMWvWLNatWweo/uQ73/kO27ZtIxAIsGbNGt8y3KvbUuXNyZiSUCjEvffey2uvvUZ7ezuLFi3y\nQU7vHO/84eFhLl68iK7rZUJRQgi2bNnChQsXyGQy7Nq1ywddpZS0trby/PPP85GPfOSWeS4Ny7L8\ntqdpmt9XeMCfV9bJZJJQKMT+/fv52c9+hq7rPP7446xatcpPV6nggAdznjp1ih/84AcUi8Wb+rzb\niTfeeAOARx555KZvey/dHtRd+kwtW7aM5cuXc/LkSYLBIJ2dnXzzm9+ksrKSVatWUVFRgeM4HD16\nlHw+70O0Xn9SGhP7y4mgnwekSimpqqriS1/6EtXV1ezcuZO2tjYymYzfJ+VyOXp7e+nq6iq7h/cs\n7t27lzlz5hCLxSgWi3z3u9/lH/7hH/y86brO8uXL2bx5M0uWLLklEH7p0iUA6urq3klxT8VU/L8a\n/yLA77vf/S7f/OY33/Y478HMZDJv2fm/05j40fyud73rX+3aU/GfK0otYfv7+29pHVsa06ZNQ798\nBSvdQyA6eceuhSogNwzZvpvtSaWjuCTt1qCGle4uA7XeKjyFpoKtjysn1a4th/tKw1Ps8iYUKxcr\n+Cx1DVExj0AgQHHovLLB1QwFpwWrSyxsJWV2pwjXZrYKencq0GnwqFJ4q79bwVZWRlmZ1t2NxMGW\nkrwEI1qJHh3ELKaQuoGoWYVRNZtQLI5lWRSKRWxHg/g8tPgcnK4dkB+CxB0lcJOO0AMKkLHyLkzj\nQX6l+fbsIM8o6CjSOP67bDfCzqFHa0ks/LD78TW+uwO76NqeTqizUoWwzA3XztaE6CxE5ppSzqt1\nlQZT+9SxdXepsoKbV3XQXHCsqPIQqlYQU/9+SF1V0I+3glYc8UE1iSR75VU1wR8y2LBhAzBuJy2r\n5kD+pFJbTMxVdVi5UEGYHoRluYp2wlBKbp5FLA50/sIrRDeZrrqdnw8PyHIgfUX9OzFP5YWAAoSk\nrWA2TyFvvGIAD4QzFFA4fEr931OGRKoylgAW/gy20EEPq/KNNqtnrTDkAndZGDmryqlmlTo+2+2W\nWR6hGUgpVP3oBtSsUXkfu6BAvnCjUnl7S8iNEsitEwYPg5VFCEeBg75dqa7KxgPhPDtgM6mAQ9yP\nZsd04ShRAn+WllPp/6Wy1wYFQGruPaQDslB+ngi4IOEkfY5dcmywRkFcxaRqD3po/PmfNBRYRWym\nKrOenQoetFxJ/2iT+iNdSGzwEKSy6tkM15cDul463wpw1HR13hiqfqEEaCwlydy0pdrw+6eJ16mY\nixw+RXHwHE58+ng+cr3qOTYSEKoq4/ZKk6qgMrc8rbxqh55SoneCB/YhkXZR/T511QWngwr01SPo\nhk4krBZrHMf2eDU0LUgwsQhRO53s1dc4dOgICxcuZMuWLbcuo5LwFDwdPYpReTOwaDu2+yhp7iuh\nFLZthkAMaWUgPguR7UQWR5RtOCV15IG7HjDrV4EAIScvv9KVVs9WWjpoAjZu3Mi7363UUFesWOEf\nZpomTz/9NDt27CJXsHD06E0guJXuITN0ibarHUg7j+045DoP3PwuyA1jjl5HCyUI1S0mWLv4psmO\nd/IOnoqpmIqp+PcSnlVTNpvFMAwSiQQXLlxg+/bttLVeUt8P0mH8OyvIs88+y4YNG9iyZUtZn7h4\n8WL6e6+z71SB2dMnV5OY3STp7BMcuxBm7gQoSHEGAiNwa0X0I+c0EAazZs1627y98MILpJMDLJ9X\nIJkRXLgmWLMoR0vD5BuyJu4lWLUgRyxSSWe/QXuvwYJQAds2+OaPDBxH8vC6NB98IIVlK7gqEpIE\nDVn2uVZbafP5x4aJR6rYcSzGWFrn735Uw+ceG+Zat0EmJ1i1MMdvf2CUoqlh2gAW1QmT/adqiUYc\n6qtMPvOhEWZM04jF4piW6X4fOFREJI9tFnT0a1xuN1g6p4CHjAQ0SdCAoAGZnILxMjmNeEQBgj7M\nCCyfn+e57RV09gcouMVz8lKY7Udj6Jpg893jZRaPx5VFkJRkchpBQxIKSt9iGRSbNJbWME3BP/6s\nioGRAPGIw5O/McSffKuBkCH50MYkjhTsPR0DIflvHxqmIuZQ+unhhZQK9iqYAtuBuiqbT71vlP/5\n4xr2nYry4OoMmstCdfYF+OG2KvIFjYAusSx484qGxGTOnDnYtk0hn0cISThU5N47C7y4O8G+01Hu\nnFPg/pVZHliV5WqXwdELEVIZDdMSxCIOc6YXuWtJjqAS9eXA2QiprIYQKn0bVmZ9uM9rU5oA04bB\nUR0hYPFs9a2raxCLOKRzGgVTqLYzSXu0LJWxO+cUONMaZvncAhtWZHh5v7LszeQ1plWZjKYDFC1B\nyFBWu7om0XXQhGTp3AKr5ucYSQU4eDbCUFLne7+oYmgsRX2Vzd7TUS61h7AsZc2biDo8/p4xUhmN\nuiqLxbPzHHozRm2lzZm2MAMjAVoaTL70iQFikclhXlBA7395KEVFzOH7r1SRymqsmJ9H11R7TGY1\nXj8SZcexGKMpnboqpeD4J99qYCytQENNk9iOjW0W0I3QbRB+kv5hiSNBS0QwGmvBshVklS+685El\n1rCO+j6XtmRc6F3iFMoX6MILWsiebEU6kmDLtLeE+0rDqK+iYtMqxl45jJPJYecK6J6ioJQ4lo2d\nyvj31hNRBcflx+8vdF35X+vlKoE+uCdUfgI1Cay+EZxsoRxolOPHmgNjmH3DiJBBZG6J3ZUALRwk\nPL+Z7Jmr2PkC6dYOrGyOQE0CoWuY/SOMvLiPyi1r0SvjZUnxwjFtih39yKKFncwidE2Bhto4NIAE\n4QKA0nJwTIvMkQtI0yJ0RxOVW9bi5E2Q0leA8dSOvAW+4IwEVb++hc7ntnGprZUdO3b444W3Cykl\nO3bsoGhb1C2bN+nvVZkIHKckh255huY3kz50HlkootdWYPYMg+2Qv3TDf3ClI8FxcHJFN93jFyhV\n/Ljp6SntR3MFpCMRjuSO2bN5+OGHEULw8MMP8/DDDwNqseprX/sa1260k7dNgg211CyfR2RGHVog\ngF00ybb3Mnamlc7+Xm78okMtYAU0JFLVT0DHKVoUBkbo33GUwX2nqFq1kJq7l940HkpdbEezJUvu\nXDy1oDUVUzEV/6Eim80yOjpKoVAgEokQDAbZt28fu3btor+/X22GdftuTdN45ZVXmDFjBps2bWLj\nxo3+5qeGhgZqamro7++nq6vL31xSGrFYjHg8TiqVIh6Pl0EZpRa3twIAQVnuBoNBZs+e/Zb5Mk2T\nf/7nfwbgE5/4BN/5znd8O8tbKQ9NhCzuv/9+Dhw44JeBaZpomoZpqjHJ2bNn/bWSUsvU0kilUhw7\ndow1a9b4CnheeKDY448/zkMPPUSxWPTLYOXKlWzfvp14PM7KlSt5/PHHqaio8C1APSBs7ty5tLS0\ncPr0aR/U874bPAhN13WSyaRv1VoKq3jpHRgYoKqqCk3T/DTMnz/fV3zzxqAekOdZJadSKcLh8E2g\nn6cimM1m+fKXv0wul2Px4sW8973v5fDhw/73jWEYSKkcQzxwZDKAyVcAduGgoaEhKisrCYVCtLW1\nsXr1akC10QsXLnDt2jVs2yYUCtHV1UWhUKCiooLGxkZfzS8ej1NRUUFzczOtra3Ytu0rXnmbCDyr\nYu/anoKWl6ZCoeCXmW3bvPnmm2VCQB7IF4upzVOe3SwoiMj7vvPUySYCP6XwaSqVIhaLMXPmTBzH\nobu72wefEokEyWTyJriv9Bremq5t22QyGd+aNJ/PMzY2RrFYxDAMQqEQK1eu5N5776Wrq4s1a9Zw\n4cIFRkdHSafT1NfXY9s2HR0dtLa23nS/0sjlcpw+fZply5Yxbdo0hBAsWbLEz+fQ0BDnzp2jtbUV\nTdO45557WL58ua9s51n5FovFMkhsYv5K24wnjiSl5IEHHkDXdRzH8WErry15KoxeGZaqgk5UnAO4\n7777+P73v08oFOIDH/jAbfMdmzZtoq+vj1/+8pdcv37dv7+X7kKhwPDwsJ+HadOmlfWNpc/yxL7R\nu5ZhGFRUVFBRUcHo6CjZbNYHgcs22AjB7t27kVKydu3aMjGvMV8AACAASURBVGU/IYRvr53JZDh1\n6pRv6bt+/XrOnTvHK6+8Qi6X47HHHiMSiUwKcw8NDdHW1oZlWfT39xMOh311TC/PHtznPWNDQ0O8\n8MILCCH41Kc+xYYNG/w+KxqN+n1wad098MADVFVV8Y1vfIMXX3yRe++918/z20Vvby/nzp3DMAzu\nv//+m35f+hxO7I+EEGzatInTp08TCoWIRCJ0dXWRTqfp6+vzy8N7X0xm9X2rKH0HSSlJJpO+1fRD\nDz3EokWLAPjoRz/qn9Pa2srXv/51H/Zbs2YNGzdupKmpCU3TGB0d5cCBA+zdu5eLFy+SzWbRNI3h\n4WGCwSDhcBjPkvjkyZOcPHmSadOm8Zu/+Ztla1FeeGDkZOU2FVPxbxX/Yoved6LG9y+RoZ4sSl/4\na9asYenSpf+q15+K/zhxK4Cvvr6eWCzGhQsXyixhJ1MC8ibVvI/CBx54gEOHj5AZukSofiliEiAl\nWDNfAXLJVqhaVAatSEfZXEy2CwNASofi0CVihnpxv13+PIWmUN1S8n2nQI8ppa63VAMbnxyX4WkK\n6DLTkO3BjFdQGLygflu3TkFcHqiEGAfdygAkoRT16u5WMJpTVGpodkEBedJWqmeDh9V9pIkUOqZj\ng5UELYxo2oQMRCiaJtbYmHqxQ/lMqAfVhMYXGIVu+PkUWkCBNI6pfubn3109CjcAEllMuopRKMBq\n8CgCCNUtKelfQA/o2JZr/+tZuZaCjbleVc6FYZVvgNhMRHw2MtvugmLTlHKflVb/j7aUlf+E2h+/\ntqfoFp2hzrMySmUxXD8OqtlZtx40BRNKiVm02Lt3L0uWLCGfz6sdPIYLbllZlZZoiwtTiXEIa2I6\nvORlOtW99QjYIwrmqV1TAn25dSJtBSV6NrYR7wNTlEOL/sC+dEbb2/EfcK2CNQXtVS5Q1q9W1oWI\n8gom1IzxcnJcW+XC0LhqX9MWpVY4eFQp0hXHlHWunQXHRMRmKCjLTCsYLXlR/Ts/qOo3cYdS4vPg\nvreE3FBpic1UZdyzE2lnEcOnlGqkXVSQYerKuOVxbCbU3wMDh5TqXX5QPWe+0qEBvMUikrRVG8/3\nq/+H690Fefd3kx0PrjWuptT7hOY+TyV9hBDKMnfwEIigC6Pejjy6VJBhzUoYOqosjSsWjF/TU3HM\nDaDatUuwyQmDcGm7z21gAgjqgQbaOKzleHCtl35RfmymQ7UbI65gzYkRaQLOIM08TsGdiKhZhhgz\nlC15zxsu1DljHFgryS62smpH2qqthWvH4UwYz6PugpeOqco/1aZ+X79OKaA6JrqmYxgBDOMWn2ZG\nDeEZ95Lr3Mu2bdvYvHnzbdn0egqewdqFk76nfPWbmzpalMRPxTwYPo3IdSvbeaGj7JJDCE0HYSDN\ntIL0CoNKZVTaLhDtgarutW/1GeiqLAqnQCIRmVRe3lOpPXDwMDlTEG5+AKNy5k15CkTrCNYuInPl\nNex0F1IEwYgjKhZA1LUglyZk+5DJVuxCilzXEaxMP9GW+1WeeGfv4KmYiqmYin8PMTAwwM6dO9mz\nZw/p1BjgqixkC2jCIRR0iIUt7lthM7NRWeomM4Jj53XaOjJs++VL7Nmzm89//vdZtkwpLW3evJnd\nu3aw/1SWxzZbhCdZM3roLot9p4LsORHlQw+m8ESCbAcsW03wGrcYD2XzcPBMAET4bSeSk8kkR44c\nBpnnY++x+Mt/DBIKSu5bmSWd1YiGHQL6+CvaC+/1blpQMAX3Lsuy/UicV/bHaWkY5cwVjUwO5s4o\n8uiDSSxboGsQDTs+ezMxhIBPPDLKtW6Dts4gBVPwdz+qVdaotmDdkhzPvFbFmbYQ6ZyO44DlQKGg\n0Vhn8d8/NYQRcLBMwdiYZ0tV/hItmor/iUfHv6OCBoTdooyGIZ1VUFU6pxENlVvrRsOOW8Ya6Szs\nOx3lhV0VZPMaH3+fyR3Ty9UTfHUPVDkVTEFAV0pyQsCZthDDSZ1cQaN/OEBDjc0XPjbI1a4gAmhu\nMGmuN9l3Kko2L5jXbPoqcJN9gvh5CijIr2gKVi7IU1tpMzgW4FJ7iPktBU5eivCj7ZWMpJStcjTk\nML3exrKhd1jyrX/4B/7gyScVuPP/sPfeUXJd953n575UuToB3Y0G0EhEIDJIAiBAECAIkJRIURJF\nkcqyLFviUpZnJNJrrb32+NjmSuu1KNm0pB0qjG1ZHHtGlBgUmEEQkQAaRGwQaKQG0AmdQ+UX7vxx\n672u6m4ErX1s6Wz/zgGqq+rVu/GF++7nfr8SMuksa5d6/HJPnBPnwpy6aLFyfp6QJZk73Z5AmW50\nqJvJCX6+K4HrCSRKufGu1akyeFIUP0/nNCQQsRR854fPbLmesq/2Fe38trGLzq0+DAiQLQimTXX4\n3AcGeOaVCrYdjNM3bGKZktqEy6qFWaZWungSLvcbHG4J03w2xPEzYVYsyPKHn+phz9EYz+9I8s+v\nVmIaEteDgi1YMT/PwLDOYErwzMuVNL0bIVcQpLMCw5AsmJXjwIkopiH50kd7rwr3lcbW1WnOtlm8\neTDGvuNhUhmNobTGuXYLzwOJYG5Dgf/80T6qEh7zptucaTPZ1xzhtuVZ0lnwPAdpS3QjNM5KNOiP\nnkcma/POyTi2q5G8c9WoEp8sVYaUxaGIG/Q1dyilLHsReLmCguqCBMCoSSJMA1yPyLI512dnKiVe\n3sasq8KcMRW7o5fcqYtEV9yg8gw4gyNk3jmtGluRmWrf/vpLTyoQznVBCLSQydjnOUIIpFAgoASl\njlc8IQnUUNlXJ0ztOwFAeGEjlE6OFTut2TAFjp8H18NR3tbo8SgVW29i4Od7cXqH6PvnN7CmTyW8\nZDbmlAowdGQ2T+5sB7kTrTiprPp9zyBuOodRtKUtW6ima2iGjtRd7O5B7I5ehGlQceeqIpAoFchn\nmnCFawJxgymbbqLnl3t44403uOuuu65rPDQ0NERbezvS1InPGw9ejKO9/eGLr1oTMgnNnUb22Dmc\nywNoYQuzvho9GUOLWCAlUgiyR84icwXsrn6saTV4uTxaWKn4iZITxYRPgFyP/LkOcBxCVog77rhj\n3MRhoVDgm9/8JidaTuFGLaa/dyPhaeXQnR4NY1UmsGqSdPx0O54u0OJRQvMaiCyeTai+upieS+5s\nJ9nm8xQ6++nfdxy7f4i6e9Yhin1Juh5DR05jaTpbtmy5Zj1PxmRMxmT8uoeUklOnTrFt2zaampoC\nsMiHYGBUscg0zeAaI6UklUpx5swZLl26xM6dO3n88cepqqpC13XuuOMOnn32WY4dOzYh4KdpGosX\nL2ZgYGAcxOLDNaXpjY2KigpisRgzZ868poPZgQMHSKVSzJw5k2nTpmEYBtXV1SxcuJBUKkUsFpsw\nnVLoZsaMGUyfPj1QRfNV3RzHobW1tQzumwisKi3b0aNHufXWWwPIzjAMhBAkk0kqKyv51re+RWtr\nK5lMJrBX1TSNNWvW8Mgjj5DNZslms0H7lEY6nUbTtMC+1bcCjkQiQRljsVgZsDTWArdUUc91XRYt\nWkRdXR2hUIi77767rK58FUVQ/SSTyQSQkb9dc3Mz+Xw+UMNfvXo1n/vc5/je976HECJQZfNVBTs6\nOq6qUOZ/7reP67p0dXUxdepUzp07x/Lly3Fdl+bmZt59910KhQKGYRAKhViwYAGXLl0ilUrx1a9+\nlfvuuy+oA9u2uemmm7hw4QL5fD5Qw9I0jVAodEUY1AcNfYjHPzb6+/vHQTq+ZW5pPZf2DcuyyuCn\n0vse/3el4KXjOFRWVhKLxWhpaQkgXb8flqo0+iqR/r591UD/WG9tbQ3eA9x3331s27aN7u5u/u7v\n/o7jx4+TzWbLACtQoOLp06fH3aNdCc5sbm4mHo+j6zq7du3CsixGRkYYGhoK8nj33XfzsY99jJGR\nEQzDoLW1NbD0zefzwbyeX1+l4ZfPtm1Onz5NKpUiHo/zwQ9+MKjzsXXv22P7x/vAwECgqJhOpwP1\nNv8ZwMKFynkpFouxcePGCeG2seE4Dtlslrvuuotdu3bx7rvv0tXVRX19fXAcHDlyhMOHD+O6LoZh\njINIXdcln88H55+JrFT996W/G1s3oMRP3njjDaSU4+Yc/P4xf/58Ojo6cBwnUKJcsGABt99+O08/\n/TRvvvkmu3fvZu3atWzYsCFQv+vu7uatt95i3759pNNpXNelqamJBx98cNwxUQot5nI53nzzTWzb\nZtmyZWzatCkAhP368NtibKxatYr169eze/du3nzzzTLw7WrhQ76rVq0K4NuJ6nMi4BaUil8ymaS9\nvT1Qw1y0aBHV1dWYpomu6wwODvLmm29y/PjxQPU1nU4Ti8UmBAfHpt/S0kJ/f39wDp1ojujSpUs8\n+eST5HI5VqxYwWc/+1kqKirKtqmoqGDWrFlYlsWPf/xjYrEY9fX1bNiwgU2bNlFdrcZEQ0NDvPXW\nWwHc/zd/8zf81m/9FnfccUewr7a2Nk6cOIFpjgrqTMZk/DrEvxrwA656Qh97Uv23DikltbW1fO1r\nX/s33/dk/OaH53m8/vrrvPbaa+MAPglIt1k9DNVMhBUnNGXZhEpAZ8+30fHDH3H69Gk+//nPY5om\nS5cuZVp9Heda27GHLmJVzh6XvhFvQAslcPMj5XaPngtSohs6xhVgDnvoApqbpaFxxjXh1VKFJpEf\nVgBGsqjy5uYVKKT5trpjQhTz49mIxA3QfwjZf4iscJD5EdCjEJsxCucglIUsYx6ClkZR9QlHApoC\npHzQcPhseTakRHr5UZtKK6kefHoFvOJvhOYregVPqtVDUWNUVl56bvAgEs0gUM3yy18GMJXAQZ5d\nAsplMWvmY9UsKq8iXy1P04vWOV7xFZXO8Omi6poBZqWCmhLzkT27VVskim3hQz2JG0ZV1Ca8p5Gj\n5fCBIM1U+xk4CoPHVVs46SLgJIqwZdHWJzELL9fFnr37EEIQCoWUKoDnIioWIvsOQf8hBWOFp47W\nx7go1rdvOQwK8GOwCC2OWR0iNNXeeASqhlrJjagPBk1kQytd9Tm+zamfdq9SarOqFKjlZtU+zZhS\n+YvUT2yTO3BMwX41N0PtBri8U+0LbRR0EyGQw0pBrnf/aJp4gAHWFOhvUtv+KpCbVa0gt9590H8I\n0X9EgZc+bGrElXJiYr6S+EjMVcqPI2cUTOXvxyuoPI3r/6OKcEgP0ueLcKFvNXSN3+R6CKyUPVvV\nU6RuTBkqVHsZMQhNLUJ3V4MNvVH1tthMpYBojyj4NTpNfe/moK8J3DRlJ4HAWtfPp6teZVHtThs7\nmCkCnVKWfDf23CYUcNu7X+03uWAUNCs95or22lK6Cl4DdS6auk5tmrqkoF0jqo6/SP0oIJbthOEz\nqpzShVQrVC4tqZOyhEbbJHURnAzSiCFiM5Bu4aqwd2mYFbPIdTbR0alWXPmAxdXCV/C04mMB3tGs\nqbqXo5NbpfdrkSIQbaeUouGU1YGKpRQo+96Ri4iePcjUBahYPHq98Aol14sS0K80PE/1femiCUHD\ntPoJr3m+Sm3WFsTmvmec1bAfUkqybbtxs32jwGlkGtIIl9sQh2oUeJ9uQ/bsxx5sJQNEGzchhPiV\nrsGTMRmTMRm/zuHbUOzZs1stkvByVCZc4lHJhU6BkFCZcHn/7SlWLylQXRkpU9R7z3qXi502z223\nOXTK5pvf/AaPPfY4S5cupbGxkRvmL+TMqUP89E2Xj79nvIrf3OmSWQ2SCx0ar++Pce9tyj49W5yj\nsSwL7QrPCV7abVBwLBYtWUxDQ8OE2/ixc+dOXDvDivkO2Txk8zCj1mFugx1AbroGIUtZpfprlBxH\nBCpxUsIdN+fZfyLBu60hfvRSBd2DarHB1jVpXFflMxbxFLQlJx4KgWL7t65Jc7HLRNOUkl7eFlQm\nXP75VfXwMVjCIGEkrRMNe3xo8xCW6WGZkmxxHYGuSUIWmP7aKhQ4BhIh1D/pCfIFCFnqcqtrEI9A\nKguOA8OuhqkrxUFdV/atALm84C9+UEvfkE4mr6FrkmjIofTeSiCC8VA05OG4Ck5zXEHRRZPt78Qo\n2IL6GpuP3jXM2qVZQqbkZzvDCE2yfnkGBOw9rmxrN9+iJjYnavpS4M80JPmCoOAITENZ5T77ZgXP\nb0+QL1QwmNLJ2+o705CkszrtPfDJ9wxxtj1E08kevv2tbxEOh8mMCDr7NGbWObxnXZrn34rzgxer\nePTBfpbfkL8qsJnOCp76nzV09hrYjsrX4jk5KhKeUp0ruYUKmVLZ70pBrqBudUrnYkKmJJNX0KJl\nyKAOJMr21y/3SFqjYAv2NUc4cV7Z5fYNGZi6ZFqNw9Y1KW5bnqEqWT6xOpjS2HEoxkt74xw9HSaT\nq+aRB/oJhzz++dVKsnlBRdxlYFhHF5JsQZDO6uw6EkXXJHMbCgyMaPQNGfQMmAgEa5ekqU56ZbeL\nVwr/mNh8c5rdR6N09pl09ZsIITF1WLsky+0r09x8Yy6o8y2rU5xpq+L1A3FWzs8hUUr6eC5OIYvQ\nNDTdCBZ2eJ6H59pI6XHgRIRUVsNomIJVW6VqUhMIQy+ziZWKKkZ6Hu5IlsLFbmXHqgnyrV0kbl+u\ngL5iY+QvqgUoejKG2TBFQYCGjjAnIIVlEcpz1HMeoWlEl89lqKOXbHMrkeXzAHC6B5SyXzaPnowp\ntbeCgwiPjgMEKItaW42JvJytID9dw1fm8xW3vaLqn1Yy+ROcVzyPkTcPUbjUjRa2iC6bW+yjJRNN\nUCyP+qE9MKzSdj30WITqD95Oav+75E63UWjvodDeU15uTykfCl3HmtuAfbmf7IlWEhuWj+ZllJlT\nr4ZO7mw7CEHohuloIStQTwxZ1jU7WGxuAz2xMJ1dXbz77rvXdZ+eTqeRSPRYZPSZUUlIz1PPrr3i\nqGWC9vUtnUXIpPrhOzCrk6M8oBAK5kOQPnya/Ok2QjOmIt1i+0Ustc8iUT52SCSR5M914qXz4Emi\nkQibNm0al8/nnnuOk6dbcKMWMx7eghGf2Lo+3ztI5892IaUkvGAm8VsXFxUeBZ7toJkGQteJLJhB\nZMEM8pe6GXzlACOnLyFMg9qtyjqte9sB5FCa2tr6wC5sMiZjMibjNzU6Ozv5zne+w4ULF3AcJ4AH\nhBCMjIzgFa8FPoQ2FrizLCuAVk6fPs1Xv/pV/vRP/5RkMsnGjRt54YUXaG1tpa2tbULIb/HixTQ1\nNVFVVUUkEiGbzQZgDnBVdb3a2loikQh33nnnNedXt23bBqiFWC0tLei6zrp16wJAb3h4OADAfIjK\nVzHyFcMB3v/+9/P0008Hymt+nXV0dAS/uRrc50c2m6W3t5e6urpAgcqH4r7//e+XzR0XCgVyuRw1\nNTU89NBDAQSWz+eRUpYp88EocKfrurrXLwESfStj0zSJRqMBOOODgH7efeCwurqauro6DMPAMAw0\nTSuzM/Z/66cbCoUCFS7fprVQKHDu3Dlc12X16tXcf//9AZDZ3NxcplDsg3JdXV1BO4+FX8aCMP5v\nUqkUw8PDRCIRdu7cSU9PT9B/fbgxk8lw7tw5vvSlL/HMM8/Q1tbGiy++CMDly5fxPI8VK1bQ1NTE\n2bNnA0W+cDh81T5m2zbpdBrDMILydHR0oGlamRIfEHzv1/PY8MHMUojPrwsfzvPr3XVdLl68SHt7\nO5qmBdCbD6tN1BfHKg/6afl1GYvFgmM6HA4zMjLC4OAgFy9exLbtQGlQSkk0GkVKyaVLl8raphSA\nmghc8uvnhhtu4Pz588H2lZWVbNq0iU2bNgV2sVVVVdx8883s3buXd955h5UrVwZpFQoFbNsO+qe/\nn1JY78SJE0gp+cAHPhDk3e+rpQCcr8TpeR779+8nm80ybdo0hoeHOXjwIGvXri3rc2+//TaxWIy1\na9diGMaE6pV+2f38+MdEVVUVt956Kzt37mT79u189KMfxXEctm/fzjPPPINpmlRUVJDJZHAcp8zK\n1T+W/bK7rhtYopem6XleAPGOtTAXQtDT08M3vvENUqkUS5YsCYDFsW3mn4N9lUj/2F65ciVf+cpX\neP755zlx4gQ7duxgx44dZekUCgWy2Wxg/9zT01M2bzORGp5lWezevTtQxvPbuTQvV4stW7awe/du\ndu7cyYc+9KHrmlfy62msNa8f/jHs95+JzgWJRAKARYsW8eUvf7mszn31vba2Ni5evMiJEydYtWoV\ntm2TyWSIRqNXBZp91XVfvW/+/Pk0Npa7UXmex7e//W1yuRy33HILjz76aJlCbGm8/vrr/OxnPyMS\nifDwww+zZs2a4PziOA6GYVBRUcH73/9+7rvvPl588UVeeOEF/uEf/oF4PM4tt9zC8PAwTz31FKDU\nLKPRicdfkzEZ/xFxHUtQrx2lVP7Yf9e73f+Xf+FwmAcffJDnn3+emTNnXiF3k/H/17Btm+985zv8\n8Ic/4lxrO2nbQqtZSWTuvUTmfwAtWoeHhmdE8aaswavfihubhx6Zgh6qwIhOIVy7jMSiD2HN2Ei6\nALv3vM13v/vd4Ab0rrvuIhIyyLXvwc32j8uDEILQlBvVA7ye/QqUkh7SK6iH/6HQRMgdbrafXPte\nIiHjulYllyo0eQUlfyti04sqV0VQyMkrAEf68ExR/cvJF0EiCRXzMBIzEE4G7/IBpPQgOR8h9CIc\nRBGoKQGHJiLUhKYgNgSYySJAJkFqCsyqXgkNd8OM+2DKTWqfRhwi9Up5zwcJQSnz+WCM8NW7TPW9\n9ILtAiUvPwu6VV5+3x4WOQqfeTZ0vq4gICcNeLhW/eg+i6FrevAwFt0qqlIVga1sV1HZzoL6LTDj\nfQreEmK8ip2dHn0vi3UnxiVXEn67ewpCs6pUmXO94GRV3U69FeruKEJSmipbrg/qbidrC/bu3cfQ\n0JBqy3wPVCxCxBtVfVzeqex6ffBrbEhPgWddb6i6Ck1R6oG+up2vyjbqFVRig6lP2C6jYGOpwpws\n2a60vYrAV2EQMu0qCSOmLJ9n3AeVSxSkYyaLsM5iVf+1t6k+kulQ1r5mEmpuUu1mxBWECZC5hLQz\nxf4Xg6plqi6tStW2blpBhUZMAU1XlB8rKQfFqog2gBFHoiGFAOmoMsdmwfR7lSqhf5McmaYAMjul\n6nvsPj1b1YebU6+lNqi5btUXfOBSs1RfEAajx2lRDc//PHV+1AYYiuDpmIFw6twoVCpESZs4xW3l\n6HnELTmH+HbJiRtG9yNdpZTY16TaxIiOKjTmeifOp1aEwvzzVHCgFGfScz3qb8NfbVQ6Q+L3221F\nG+SZxfOYKJlYodi/RvunV1CgnrTTSM9G1qxG1KxCmPGi1fNR6HgV2n+hXvsPq76pR4pAc0bBzP6+\ng3yJEnBOG23jxA3FPKiVYleCvUtDCA2rZiF52x03mLxS5HKKDhD6FewPg6oLZrTGbOCrPAqlYhmf\nNTpLLUF6LkRqEWYc4RbVQcvab6yapBj9J1F15qQR0iUaDU94zStVqQ1PX39FuA+g0PeuUs4VJjRs\nVfkVmlLvHKsWKTQF3jdsQQoTe7CVQt/JX/kaPBmTMRmT8esa2WyWv/qrv2LPrjfRZT/rlo7wJ7+b\n5ZuP51kyVynQ1dW4/B+f7mPjqjSW4ZBOpSjY5VaVjdMkv/8Rm7vW5vDsQb71rb+jt7cXgA9/+MNo\nZpJX3w7x/HZjHPAmBLx/owLGfrwtydvHw2SySslOCO2KDy/fOqjzsx0W6DHe9773XbOsR44cAVlg\n400umZy6llUlXOJRpWonhBL2yuQEw2mNoZTGcFojk1dwX3HkQVUSvvzxAp7UePt4hNMXdeJRl+U3\n5JCA6avWqc2B4HI+7k5xzZIs0bCkYAt0XSKluixGQgoYfOKRbv7rVzr5zw/3E496TK1yWTY3j+tB\nNi9Qol6SsKXKoOuB4BdTq1wQcK49hKlLEBLXE9i+6z0loE8xj7YjSOdUuY+eCWM7gqG0xlBKp67a\nZdY0Nbb6xS6D/sFyWNOyFNzieCr/iahHJCSJWJILHSYnzoWIhj2+9nvdbLopQ9hS45xUVkFJlXEX\nAQyOqGvqvOmFoN4CNWHK30PxlqM47EvnlMKh68HZdouhtMb0qTaPPNDP9/+4g9uWZ4hFPDJ5ndcP\nxPnYPUPctDBDNt2LruvYjmDP0QghEx7cPMK6pVmGUjpP/Y8a/vvLFXT16eP6b94WvHUoyl/8YCon\nL1g4rsB2BKYOqxbkkFKpIErK10lEw5KqpIuUcPJCeR83DX8yoryt0llNic9JyBUEzefDOK7A89T7\ntm6Tgi2YN6PAY5/oZdNN4+E+gMq4x/tvH+H//EwPlXGPM5csnn2jgtuWZ1m7JEs84jG3wcYyofl8\niFxeUFPhcuctaf78cz18+eN9rF6cwzAkrZ0mCMmdt4wqnwTtVhJygs+nTXFY0JjHMiVhS2IZSrUz\nbwtqq90y99nVi7NoGpxtM/l/f1rN829V8MLOKl7eG+dsu4Hnurh2AaeQwynkcJ0CUnoMDGu88naC\nghYismQ2IBCWqVTTDEORl0L9E4aOCFloIYtcyyWk44ChY9ZWIfM2+bMdZWVyupU6TXj+dDRLPVeQ\njqNsVPMKzJMFG1mw8XLqvbrn1hFhC2tWHcI0cIfSyEwedzDF4CsH8LJ5rIYpVH5wA1rEwh1K4fQN\nl6UtDF1BYYYCjL28raQdS8YxXsGhcKlbDZFrEqNt4XrkznYw+MIucqfbQNeouHs1RjKKpgm/OoLK\n9/I2vtrf8LuteAUbdziFk8khkcRvXUzNx7eS2LAMs7YSLRZGC1voyRiYOsIySWy5ieQdahIye+IC\nhc6+spOQGDPGyJ/vBCCyeDae4+I5SnHHuo7JLKFpJJfMxfZcDhw4cM3tVfolJ+sJwp9MAwnu2LGL\nsiFW4yGILJ2DWVMBJeNK6bpITxJZOBNN18lfuIwzOKJOYJ6n+sa4TKn0JBJZcMi804Is2IRCITbe\nvrHMOgwgn8+zfft2cq5N/XvXXRHuA+h+/QBewSY0o/p4UwAAIABJREFUdxqV96zGiEeKQ2mVllco\nf0YTmllL9f3rQdcYPnGe1KkLXH5pL5l3L5CMxPjiF794VdvIyZiMyZiMX/c4f/48f/mXf8mZM2fw\nPI+ZM2eyYcMG1q1bFzwrLIUZHMcJoD8/fCgtFoth2zYXL17kW9/6FlJKqqqqeM973oOu67z88su0\nt7ePy0MikWDRokXE43Hmz58fKDgBAbQzNoQQNDY2UlVVFSgPXS0ymQxnzpzBMAzWrVtXBnPE4/EA\nALFtm1QqxdDQEENDQwwPDwfAlJ/uLbfcwsMPPxyojLmuS09PT6AG9qs4tbW3t5cBlEIICoUCtbW1\nfOxjH+PJJ5/ke9/7Hps3byYej7Nu3Tqi0Si2bWPbdtA2vpWyr8aWSCSIx+OBTaf/7M4HAv0ohbGE\nEGXqWFVVVRiGQWVlJXV1daxatYqKigqklOzatWtCVTgffonH4yQSCSKRCJFIhFOnTuF5HjfddBNf\n+cpXWLJkSQAUZjKZoPy6rqvFyUWFuNK68fM70bw6qOejhUKBoaEh8vk8HR0dmKbJmjVr+OpXv8qT\nTz7JzJkzCYVCDA8Pc/ToUX7v936P6upqOjs70XWd/v5+Lly4QCQS4TOf+Qx1dXVBflKp1ISwnF+G\nVCoV1IOf797e3sBud2yefbDSt0Eeu0+/Xfzw26d0H4lEIoCxHMcJYDDbtgPL5InCB8Ty+XwZ1BkO\nhwOAcM6cORiGwfPPPx8Ag47jBH+X9pl8Ph88AynN30TtVRpdXV0BOOX/y2azaJpGbW1t2bYbN24k\nl8vR1NTEzp07OXDgAIcOHeLo0aOBbWkulwuULf3+c/78edra2ojFYoFiZjweD44PH270Ydh4PE4o\nFGLXrl1ks1mmT5+OpmkcPHiQwcHBoGwA586dQwjB7bffHqgeZjIZhoeHyWQyQV5SqRSpVIp8Ph/U\ncyQS4dZbbwUIQNKDBw/yzDPPIKXkfe97H5/+9KfRdZ2mpqayvqdpGpFIhEQiEaSbTqfL+ouvXJhO\npwOlUz9SqRQvvfQSTzzxBJ2dnUybNo1HH310wnO+lFItCCq2zcGDB8nn87S1tZFOp5k6dSpf+MIX\n+Iu/+Avuvvtu6uvrSSQSJJNJamtrkVKSTCb52te+xj333IOUkn/5l38J9lnav/0029ra6O3tpaqq\niuXLlwfQ95WuB2Nj7ty5NDY2kk6nA2W+a8W1hLr8Y8m3Qh8b/nnMMAw++tGPBqp8fvht7y9Uevnl\nl4My+6BmaV5KfyulpLW1laamJjKZDKFQKFAdLY3m5ma6urqorq7mkUceuSLc19fXF9jV/87v/A7v\nfe97A2jbVx714VhQ5/cHHniABx98EIAf/OAHtLS08MQTT9Dd3c3MmTP5yEc+csX6m4zJ+I+If9UI\nfdGiRTzwwANX3cb3EJdSYprmdT2cv1JYlkU8HmfKlCksWrSI5cuXTyglOhmTcS0rv3zvCZxUl7KE\nbdgCZhLpja4uiMaioyuMhYZVORs9lCR97mX27t3HggULuOuuu9i6dSstLS3s2buP9LmXCU9fP84y\n0Kq5ESfdrYCDjteR1SsR0QasUBgrVE7WS+lhD11QYIEpWbfu1uuywihVaCr0ny5m3FSQm9CUMpUs\nUZ0bFwqcEUIQblhDeuRi8Tca0qoahXfQmFjFa4Kb2EgtDBT/NmJQKCiAqmYFgXKblAqaEYZSY9PD\noxBi0TpUKfONSdNMQH5QwU3J+QEcJt2CKrN0FXTiQ4l+/nyILN2uQCVHWUgKK4FuhHBTnbg9TaRC\nSeLV04M+YFkW+UJe7U/3ldh0Bff0H1Z/19wMsRJlER/qAgJQz4fafPAwqLYr3FyVfiw0BRGKImRY\nv0mpifkbmQkF4jkO2MNIJ4dZt4Zs1x56enpAOojUeaheptTJJMiRs9CzDwaOK+W4yDRG1clK1PBA\nWeUWBhB4ICxkpH60TstsOHVVH2YM7CG1n1BNeTlK2yQAuEqnIDUo9BXhm1kq7cHjCqSqu12BjuNU\n3Ur2H2sEo1gfmQ4InYPkQhhsVuWJzgJ7ECkd1TerV0Kkodi3PdUP3ZyydwUFYgVWsdd6gFGE0ISm\nlPkGjyuoUHoq7XSrSmPqOrVPiTouPVep6nTvVkCiHgEjooDAcC2BGp8/myxdZTncd7CYx3lFRUsf\nvL1CZDuVCqIQUBhRfclJq2MiUABkFE6NNhQVEosKi1c7h2gGgRpkpE4d//Zw0ar7rGoLzYS6jQqG\n69mr+lhFuX252p3vX1YEcwMFQaH6pw+mCk2B00ZYnU/G9ttoA0xdW2apJRCjxkjZzmK5HKT0kEJT\nEKtVVNaJNSor63yvStNJF9UDPdW/zTjMfECVr++gUro0EhCqClIbB8z5eYvUqnPWVWDvicKIN5Dt\nPkx3d/d1bR8Oh0EIpDuB5RzqugOoNtbG3hZKdSyAAmNLy+UfD56jJuSm3Eihqwl6DyDrE0XrYd8q\nfVQ9JUgYApVF4RUIhSxuWz/xNa9UpdasaBz3fbBbKUet5aeugVCVymkRYpZOvgh/j7mmhKpg6mpk\n9x5yXYcASdTiuq/BkzEZkzEZv47hui7f+c53OHu6mep4isc+VWBGrToBp7Ow7YC6t/nSR/uZO91R\n6mF5Sa4AmXQGEdcwSx4sahp87B6H7v48R84M8sYbb/CRj3yERYsW8Tu/87t873tP8/z2YVouCO66\n1WX5/FEL25tv9Lh/o8tPtul8+9kqNt+cZtNNWWZNj6qFNCXR1Sd4Za/Omwcs0JN87GOfYOnSpVwr\nRkZGAI+6aslQSl10fB4mHFKKagVHYNvKqtVn1zUBpilxXUl3v4ErJdPqPG5Z7LDzHRNDl8yqtyk4\nBParEia+3RoD+YUMydzpBY6dDTM16XDpssnCWQX+90/2EbL8CRw41BJG0ySbb05TmfDIFQS5ggK7\nHBf2HAvT1m2RziqFvUTUo7G+wJ5jEbYfjHHP2hFsRymepbPgWVBwCNT1oOQOsVjuXUei2I5gQWOB\nD90xwuJ5GpYV5Yt/FaKrz+DJH3n8waddqpKqEQ3DIAfYtiASkqouDEnLJYunn69GCLj3thSVcS8o\nlx+eVNakug6up9omZMpx2101hLK3jYQkmlAQ2x98opeFswrBrdbnPjCArkvebIpxvsPiQqfJhzYP\ncvRMiMHBAXJ5yf4TET7xnmFCmuQLDw4SCUlefjvGz3cneG1/nKXzcsyotTENGEppvHMqQjqrUbAV\nnKaAQ4FpeFRXqMw7roLz4pFRG+SwJVm/PM0vdifZ1hRj8Zz8aFF8KKj4zy5aEPsqkgKV9vGzIcIh\nyf/1v13m0mWT7/ykmuoKl0ce6CcZ84I6vFLMqHX48sf7eOK/TWVfc4Sta1NsWpWm6WSYjl4jSG9K\npcvnP9jPtCkOWnH9RVVSKebn8xo1FS7zfDvl0jU1V0neB/4Wzcpz5lKIVQuzGLrknVMRms+F+Poz\nNfzhJ/torLdxHPj5rgSDIzqu1DhwMoxp+I6zHvpeh+lT8mxYmWH14hxWSE0G9A7Af/1JFZf7Dbxo\nCLOxflTpzs/EBFHo7CN74oJS9Cs4RYgO0u+0YM2uV0ptgFeEsrRICGGZCMNA2g7S9dRv8crTEKCF\nrFGrXE1DC1u4BQd3JEOu5RJeKosxtZKK+9aB6xKa10Du1CWyzedJbFwxLq/CMovwnYu0HUTILA6H\nXPLnO/GyeRCC3NkOCu29yIJD/kIXXjoX5D1x5yqMqRXjJnT857SFC12qE0uJVpPE6x/BTedJ7TqG\nFo+AJxGWgVlbRfKeNcHkYL5ngIEXd6NFLMILZqBZJpElc8geP8/QS/uoeM8arIYp4+A+JCrfgFER\nw8vbCCS6buA6jlIjvIY6UaimghGUQsT1RDweR0PgpLN4joNWcm3zPE9NNvnHpeMGanfqAwV2uiMZ\nhK5jVIw+gw6soh0FMIcrk1Qsu4HBIy0MvbSfivtuRY9HVL/RNcbJhEqQts3QKwewuwcQEpYuXsIn\nP/nJcWXYt28fw+kUVl31OFve0sh19ZG73IewTJJ33qTa3dARhZIJNNvFtV2EqSvwVWiYtZXEbl5A\nak8zHS/uIByJUp1I8p9+/z8FyjKTMRmTMRm/ieGrN/X391NdXc2yZcsCIKCrq4uRkRFc1y2zX7Vt\nG8/zSKVSAVzkhw+a+VDF6dOnWbBgAR/+8Ifp7e3l7bff5mc/+xk33ngjS5cuLVNK2rRpU2A9uGjR\nIlpbW+nr65tQESgej1NXV0dNTQ11dXU8/vjj11QOUuMhBVOFQqEAqPI8D13XiUajgcKWDzH5ZdJ1\nPbAP7e/vJxwOc/fdd/OTn/yE/v5+PM8LrHnhVwP8BgYGArDPz8unPvUpNm/eXKao9s477wSCGslk\nknQ6HQCFIyMj7Nixg/7+frLZLKFQiClTprBq1Sp6enqYMmUKg4ODAaiYSqUwTTOAu/zwbWU1TcOy\nLKZOnUooFOKee+7hzjvvZPbs2bS2tvLHf/zHnD9/nh07dnDHHXcEMIoP+BUKhQCcsiyLw4cPc/Lk\nSSKRCB/5yEcmVHTz31uWFdTF9dZnafo+IOhbP3/hC19g6tSpwbZ/9Ed/xBNPPEFrayuvvfYa733v\ne7n//vv54Q9/GIBxhw8fZtWqVSSTSb74xS/y9NNPc/HixUB9zbfb9PuPb8nr59txnKDtTNMMbIeB\nMpXCoaGhwDa2rq6Ozs7OK5at1FbXj9raWkKhEMlkkoULF3Lx4kW6u7txHCeAia7HLtZ3uPIBPl+B\n0bdK9kFEx3GC/JdCYJ7n0d/f/yv1ez9vPlDrq4Dquk4mk+EXv/gFHR0dfPnLXyYcDjM0NMQLL7yA\nbds4jsOxY8fKLFoPHDhAY2MjixcvZubMmYGSX0tLi1oEksuxfv16KioqAqW7K+VXCMGLL74YqDme\nOHGCefPmce7cOX7yk5/w2c9+NtjWr5uKigoSiQS2bQc21P5cemk6hmEQjUaD/pBMJgECIPDZZ59F\nSsm9997Lgw8+yNDQEFVVVfT09HD8+HGWL19ellcfVvTP1YVCAcuy8BXvdu7cGdhMP/fcc4RCIfr7\n+zl06FAAlC1YsIDPfvazZefF0sjn85w8eTJQdVuwYAHHjx/nwIEDVFVVBdeIeDzO6tWruffee4N+\n98orr3D58mVuuukmqqqquPPOO9mzZw8dHR08+eSTfOlLXyKZTI4D2vxxTH19fZnqoa7rQT+5Vt+e\nPn06Fy9eDM791wpfIXGiOSUfdvPPkaVKqKCOjVwux+DgIJFIJLDE9fPow8eglO5ef/31QDn3kUce\nAdQCZP84h/J+c+nSJb75zW8yPDyMZVk8+OCDEyqIv/HGGwBs3rz5ihbGANu3b8fzPNasWRPA8f5x\n76edTqeDa5+vSPne976XQ4cO0dzczJ/92Z8RCoVobGzkscceG6cQORmT8R8d/yrAb+vWrWzduvWq\n2zz33HPB35FIZNJKdzL+XeJqVn4TAQAAQoSQrpL9VVLl5fCdHqkmPH0d2badvPbaa2zZsgVN03jk\nkUcQQimlZdt2kOuMYNUsxIg3IDQT6dlo4UpAAT6idx/CjKNPuRFXjG7jpDoo9J1Cc7PEQgbr1t3K\n5z//+etSDipVaAosCIvKVFIUpR58ta0ArJIKkEtdBCelLHGFQdqwEJqBoQtsTyA0vcS6UmfcU+wr\nhSjWn3QgPgcG00oRbSzIY6fUPiN15VCP56r8pS+Cmyna1BoKZDMrgIvKGje5YHRfnoOU7gSzDaUP\nlD0F6kgPwnWIyhuJVM8mFLJIn3sFe+giTts2Mu6tRKfMQwitZNWEJFCAyrQrmKdEIawkEVVNgRVw\nAUiMQmnexCu4A/BoXPY10EJASm1oVSsYrzTCVTBlDXTvAreAHGnFnX4bnh4hmyuqSzqZUavoutsQ\n4SnQdxBZGFSWvRzxl9ePlkMYqj7zfQgkQg8hpUAY0WI2pSqfZhKo9gkDYrMV0DUO4CpZPe/mGT8r\nUlRnHDmvPkouVOCU0KFmlQKvxsI5E0XIr4/dMHJOQXqJG2DgCOS7VRp6FOrvVCCdahj1uZlQ8GZh\nUL2P1pfkXZa8ljXS6J9+HwnXEoBvdZsUTNZ/CFIX1OdT1kHqDPQfUdCXr47pZBRUVRgoKt7FFCwY\nnzfah1IX1b7cjIITkwtL8lCaz5LIDxQta1HHTap19Lve/QpEDFWq3/lwqmaq9tSNUdCu9Djw0/Eh\nz0CmocQGWwrVBqDaJDQFjFxR9S6tFNxiE0Fbxf7gFVR+fLg4dbEIyUlVl359lvZdM6Ggx9is8ecD\nv1o8V1mGew5oEQVW5rsV8JpuK0KFhoJVY7OgZjWiKO9f6NilQMmKG9X5NXGDat9Mh1IOnLJGqT6O\nPX9LOVq3gUSNIF/IB9YThmlcFfYTmgnFFWXXE7W1tegtZ3FSnRjR8skgx3bwPL9+vPGQn/Qg263y\nGR4j3y5EEfyUaJpOuHYJMteLPdgKXduQU1arthao/qwVVSUFChTNXIK+JoSTwTR0Nm28/YrXvFKV\nWjH2GlJanlQHXqm1vB+6qRT8kEol1hPjrd8j05B6GK8wSDQS4bb1G677GjwZkzEZk/HrGPv37+fY\n0XdIRFJ85bcL1FWPXg93HtKxHVgyN88NM9SYQQCRUHGsZHtksxmMRMI3EwTUZe39Gx2OtOTY8dZb\nPPDAA1iWxW233UY4HObpp5/mROswJ87nqamwuWGmR9iSZHKC5rManmeQzXm8ui/JjkMJVixwuXGO\nRzgEuTwcO6PRfNYALYQwo3zyk5++btA6eDgoIBFTf1/uM3A8iVa8P7EMZVEbrJfw4Ni5ENsOxDhy\nOoxXhM8Q4LoahmlgFO1xkQI0ZW879vZ1HMMuRz8PF0G+xjqb7gGDOQ12APf5vx9O68E2FH8znNJ4\ndX+cvccipLI6mihPVEqlLtc7pHP4dISFs5T6tecJMnll+6ppYGhSXe6kAtQ8CRc6Tc53WMSjHl/6\naB+RsEE0GkMA//fv5/n9/yfMmbYQf/5dl3s3eGxY6Qb3L1JCNicYSmm8eTDOtqYYrqcU2D64cThQ\nEBRCDes0TeI40DekB0puwwLSeY3KRPnCEV9pWXqjZfWbVVkOq+11XbKgMc+i2eVKk5oGn3nfIO+2\nhmjtsHjl7RiPPjjE6sU2u4/agEYqq/GPv6jgkQcG0XX4wMYUnoQdh6IMpjT2HIuiCYnP9ziOv3hH\nvbieoGGqRyqjhL40oW5rXBeG0xqmUbTnFbBhZYaX9iR451SYrj6lkljeZ2EkrQVl9O/eTUOy77ga\na61dkmFmncO/vFYBAu68OU0y5gWw6dhwPWW/bJmqDLPqbdYuybDrSJQ9R6N8cOMI06c6XOg08Dyl\n3PfIA/3U16iG86Sqx1sWZfmfryWxHUHIGrURLm2TicLfrmArqDMaVhbSsbDHQ1uH+cDGEf7xl5Wc\nOB/iz38wlT/9bDfPvFLJ4dMxhB4iYkWorr+BUCShgNBCiu6Os7ReTtH2WoRdh3N8eOswzefC7DkS\npn/YoGAL0PJkD58mftsyit29vFKLkW/tYvj1JvA8IkvnkD/Tjt0ziFGdwOkfYeiXb1PxnrUK6iv6\nLkt/8lUTiJCJKAJd0h4zphda8blLSV0VJRmlgFxRITCxYRmaZSBtQXhRI7lTl8i1tBFZcUMZPBbs\n1jKRWQ/pughpgBB42QLZ5lak64IQZI+eBU0LYEWjKkFk6RxC8xpUg3kygJrL+ks6S/58F9J10euq\nkCNZZMEGKcmdbhu1LC7WpV4RI7KokeTiOYi+FAhBaE6DgvIkxNbciDuSoXDhMoM/30t4boNSvJtW\nHUz+uJ6yHxZC4DkOQqgztOM4pIqTxZZlXXECDghsdq+k2DI2EokEs2fP5sSZ06RaLpFcPCf4rpDP\nq26i60ptz5PKxtYygzb08gXyrZdBE1gzy5VWcN1i20AoZBG+fSX20Ajp1k4GX9xDdNlc1Q5+vnWt\nuPjKo3C+k/Sh0zi9Qwjb5ZZbbuHxxx+fcLJq165d2J5L9fIbrlrWoWNnAIjc2IhW0n4+oGqaaizp\nOA7SVm3hd9nQ7Gmk9p+EgsOKxUv49Kc/PaHN5GRMxmRMxm9S/PjHP6avr4/KykqWL19edm1pa2vD\ndd1xUJEPLLmuSy6XGzep71t/5vN53njjDRYsWBDMEVVUVPDqq6/y7rvv0tzcTF1dHZWVlQghSKfT\n9PT0YBgGsViMG2+8Edu2GRgYIJfLBQIplZWVxGIxotEo06ZN47HHHhtnUzhR+OMhv4y+lWJXV1cA\nXI21YRVCkM1m2bNnD9u2bePixYsBeKZpGtlsFsMwArW20nRKYyKL2YnyVigUSCQSNDQ0lLWFbz2r\naRrTp08PFPKOHz/Otm3bOHz48DgL2FL1raqqqjI7Xx+S8tXX/Db2VeCklEybNg3TNFm7di0PP/xw\nYDs6f/58vvzlL/P1r3+dEydOMDw8zIoVK5g5c2ZQNz7k5ENJly5dwjRNfvu3f5t58+YFYJEP5JXW\nt2maeJ53RZWuq1lYWpZFJBIhGo0SDodZt25dGdwHCqj6whe+wH/5L/+FkZERTpw4wcqVK/npT38a\nqDC2tLRw5MgRVqxYQSKR4IMf/CBvvPEGp06dCixcr5QfP++xWCw4PnwIrFTdz1fAa29vZ+HChTQ2\nNgZ9cey+S+1e/c91XWfGjBlYlkV9vZqb8S2jfbjvesO3/PRhPSEE+XyelpaWQN3Pv68sVfTyyyKE\nuO77Tj/84w0IQNVSWFJKyb59+/j617/OQw89xFNPPcXly5exLItEIsG0adMC1c2RkRHa29u5cOEC\nFy5cYOHChcybN49Tp04Fyng+JLt27VpWr149Li+lCqXPPvssL7/8MoZhcM8997B3797gHnznzp3E\nYjEeeughNG10XtQvg2977LpuYKFbGv7x5tejfyzous65c+fo7u6msrKSD33oQwFcddttt/Hzn/+c\nn/3sZyxevHjcsVEKVufzeSzLCpQLjx07hm3bdHZ2BoqWPvy4fPly7rzzThYsWEChUCiDN0vj7bff\nDoC7FStWcPLkSVzXJZ1O88orr5RZHL/wwgssWrSI22+/nVtuuYUzZ84ghAggskgkwuc//3n+9m//\nlvPnz/Mnf/InbNy4kc2bNwfHqg+X+XXqw3V+v/SBxVAoFADBE8XYtrlWLF26FCEEhw8fZmhoKID0\nYFR9LxQKkcvlyOfzgdqpn8fjx48zMjLCjBkzmDKlfI7JVyD0rzGPP/44TzzxBCdPnuSv//qv2bp1\nK8uWLcPzvLI2GhkZYefOnbz00kv096s57E996lMTCoWNjIxw5MgRdF1n48aNVyyn4zi89dZbAGXP\nE331V9d1A+DWdd1AhdKP9evXc/LkSQqFAvfeey8f/vCHJ+G+yfi1jH83jf1r0caTMRn/VlFm5Tdj\n4zgrvysCAEJDaBbSLagbhZA1DrIwK2aR62yio7OL5uZmli1bhmmaPProoyxYsIDXXnuNjs4u8n1H\nyHYfxn+KquuCeDRELKpsNjLZHPn+I2R7yreJmToNjTO46667AoDweqJUoUkLJSHbD5nLSKu6+IBZ\nKDhGK8Jawy0wfGrUMrbkKbRX8BDSRtM1NCGxQiZ5KYoQSGl+rnFM+9aXmqHU/IY0BRKWhqAcJPKz\nkmpV+XMyxY9Kn8oPgryIkDbSSSk4KFzykFUW86np6jVYeV20iizaQSJMRN0GrHCUUFipZ8Xm3EXq\n7C9xRjqw23cy0nsYq2ah2r9dANdR1qDp1iBvxGYq+1evdGAhFBikKTVB8j2qDsy4grayXeWqdqX1\n4ZW8CWxsi2XIXVavZnxM9YvRvBhxcPuhoFYVWTULybXvAaErUcGe/WBEkUZCKdVFpqv8uBlG+0ER\nlNIMVS7pKrjPSqCHkjjZftW+mlUEvYqQXykYGJ6qrFidtAJ5fIArGMRNAMjpIfWaLgJcZkJtZg8r\nGMyHGksBHylV/lNnFSwqnSKUFVdgqV7MQ7ZL5UlKtT/NVMCgMebmTDMgPlep9/nQnVATKePzfgWQ\nzrck1cPFzT1VtugM1T6Xd8LIWQXcOSPqe6tSqSiGphbBKUf1m1Srykf/0aIa4VRIXyhCuUVr5cIA\nZDvU/ieCn6Sn+n3v/iKQ2gg1a1RftlOqXvK9SvFwymqlWFcK6AVNpJV/JrRR0E8E/xXT9I9rS+XP\nSY9aHYvi8ZmYCwPHinBhqepdSYjicSw99a/Qr8BG6SiLZq+gYFDpqjoMT1VgX6Qe8EYh0gmaKehn\ngDSikL/sN6DqI37YQwFoKRNzsRPzEG5G9YJARdNTKp6gtu3eo/p/8ga1jTBBFiBzWbW70EaVR6XE\nsV0c4QarB0MhC+sKqn7Ss6E4sL2e2LhxI2/v20+67xShqUvKALlCoVC8ROgEappCG21rt6CAaBi1\nXR7NSFAGIQSaEERn3k4GFOTXswepRxTsG55aPJ8Uz6Gp8wgnjZAOFRUJPv7xj3P33Xdf8ZpXqlJ7\ntSj0n1blSc4vOxaE0JE46LoWPJSRnj0e0IjPQQweZ86c2Tz66KOTcN9kTMZk/EbHG2+8AV6WD212\nyuA+gO1NilLbsjo97neRMNiODFa3m0Y5aDB3hmRWg8OFy4M0NTWxfv16AG6++Wa+8Y1vsGPHDt58\n8016ujvpa/YXF6l744U3zmXp0qX09PRw8GATR85kOHK6fBsjHGPdunXcdddd1zWR5YdajSzoHxIs\nmecxpRJ6BnWOnbZYMd9f3T86NDhx3uIffl5F94AefFeVdNE1yUhGI+0C0iFXEJxrDyOFQBOybD0D\nTDAiKrldlCirXSQkYy6mIdV7yn/vc0KGrn58vsPkb/6lhqGUug7NrLO5bVmGiriLJwUdvQa7Dkfp\nHdTJ5AT/8PNKvvSxXqZWumhCQYghU2IYclRkWwBS0jOg8Y+/qCJXUHa+py5G2XCTFYCcVUn4g0/l\n+cvvhbnUbfLMywbPvl7gxtkeyaiJJ6Gr36BOoP5eAAAgAElEQVTlYgjFP0nuuCnDBzYNk86VXzc7\new2Onw1RcAT7j0e5f0OKGbU23QM6h1vCTJ+SKrvFnmgSq2CLsro53KLurxumjoWrinCcDnesSvPf\ne0zOtasJkdtvcth9pICmKXvdt49H6B/WMHTJifNq/KFrksq4h+NCwVE2srpGcTJUUJlwWX1jlv0n\nYlQmIJURnO+wWDQrhxBgGEoErWCr3wJELMmqhTkOnozw1P+o4Y9+q4d4VCplxZI1d/5tqhDKArr5\nfJiX9sZBwtY1aS736zSfCxE2JWsWZxQ8WbLeKZMT7D4aZfs7MTp6jKALJqMe65dlWDk/x66jUd4+\nFuXe9SPMri9wqtXCNCQbVqSZNsUJhMUcV9V1XbXH4jl59p2IksuLCeEwKB8ilX6fL6qF+fNgybhH\nMuoRsSS/9+F+vvNsNcfOhnn8b+sJhUzMcDUNc1dT37gUoWnYdj44turnrmWo5zyXzhzkTEcvX/1v\nKu8FW+AJDQwNCg7Z5lbyrV1EbpxNZPFstFhIHYeOS/5cB9njrdiX1aRBeOFMEptXMZjNY7f3Erph\nOt6JC9iXBxj46Q4iS+dQ7OC4/SWKCF4R7ivKYwpTD9IIQFB/00weL5cHTcPtH0HmChhTKjDrigtM\nDR2jMoHVWEvhYjdDv9hL5f3r0RPR8uVkAoShFaFCF+k4DL95CKdvCHNKJZFVNzCy/Qi4LpHlcwnN\nmVZUzhNIz1OWwhJKG1FK1bezR84G9rFu75AqgmkgTIPQ7DqMmgowdLx0jvzZDtzhNKn975I9cYHw\nTDVBpceLY5KiY0Ri0wqyR86SOXaO3Jk2cmfa0JMxpWQHuMNpZK6ACFt42QJ6NFy0QBZI18XzvGBS\nKRaLTQi7OekcAq6pZDTaTwVbtmzhzPlzDB09Uwb4OcVOqhmGgrtzBaTtKtjVMpCuS/5MBzguVmMt\nRlXRDrkIenoFR9WbpqEJDcdzmXLPWth2kHTLJdIHT5E+dBqrsQ6jMg6awMsVKLR24aWySMclYoX4\n+Kd+i/vuu++KNlO9vb240iPSMHXC71WWJKmWi0hJ0bK6pA50LXhEF08kgknZUlhCi0WI3TAD91wX\ny5cvn4T7JmMyJuM3PgYGBmhqasJ1XRYvXlz2jCedTgfKdBOdew3DCECnUiDOD8uySKfTHDhwgE98\n4hMkk0l0XecTn/gEmzZtYtu2bezevZu+vr7A1tNXEVu3bh319fW0tLRw8uRJKioqAvBE0zRCoRC1\ntbVs3ryZzZs3BwpY1wpfnWlwcBDHcVi1ahXPPfcce/fu5aGHHhoH9kkpA6hmaGiITCZDLpcLQCbD\nMNB1PQB2ampq6OnpGXfPXqpMVQr5lQKHpd/ruj5u0bIPzpWqO73++uv86Ec/Cupm7ty5zJkzB8uy\nsG2btrY2WlpaAjBy7ty5HD16NEjTNM3A0re07aWURCIRGhsb0TSNc+fOkU6nqaysDLZZv349W7Zs\n4bXXXqO9vZ3Lly8TjUaZOnUqpmniOA7d3d2kUqlAsewzn/kMS5cuLVPTklJy4MCBwFrUbwMfWIpG\no2QymQnrbWyU2tcmk0ksy2L69OkTbjdnzhzmzZvH8ePHOXToECtXrmTDhg08//zzmKaJ67r8+Mc/\nDuwuu7q6ArXDUivlUtU+KSVLlizB8zw6OztJJBL09fUpV5qS/Ptt7B9XPT09zJ07l2QyyaJFiwI7\nUb9NxoJ9fj+YP38+yWSScDgcKLyVKuxNVO5ScKi0b/nApw/s+fc/Pljr93m/bnyIsVTF70r3aBNF\nqQIgjIJYPuxZCikeOHAggJZqa2tZtGgRs2fPJpvNks/ng30sWrSIS5cucerUKY4dO8bRo0cRQuA4\nDpFIJADSvv3tbzNv3jzuvPNO1qxZE6Q9MDDAjh072L59OwMDA2iaxuc+9zmWLFlCU1MTZ8+e5dOf\n/jT/9E//xMsvv0xrayubN28O7rfb2tpoaGgI0vTvI4UQRKNRstlsmSqo30a+ZXl1dTV79+4F4I47\n7gjyZVkW69atY/v27Zw+fZrvf//7/O7v/u44yM9XzHRdF9u2OX/+PN/97nexbZt77rmHSCTCSy+9\nRCQS4eGHH2b58uUBGOrboZf2bf9v27Z59dVXA6Dt0KFDgVpfVVUVq1atCmx429vbaWpq4uTJk7z7\n7rvs37+fVCoVlA8UKFdZWcljjz3GP/3TP3H69Gl++ctf8stf/pLGxkZisRj5fJ7W1lay2SzDw8NB\nniKRSNBffWXJfD6v1MgnmKPwocTrHRPV1NSwcuVKDh06xI4dO7j//vuDevGB3HA4HCj4pdNpotGo\nErsoFNi1axeaprFly5Yy8DeTyQS2voZhIKWksrKSP/zDP+Spp56io6ODv//7vyeZTLJy5UoqKytx\nXZfu7m4OHz4c2E3X1dXxxS9+kSVLlkyYf18Ntr6+vgxOHBsnT55keHiYhoYGFiwYFQfyz6G+ImM0\nGg36cin8efPNN/Pcc8+RSqXYvHnzJNw3Gb+28e8C+P2q0rWTMRn/mriWld+VAABAQSeemvx3bAfT\nHLtaQMOqWUi+7wg7duxg2bJl6mdF+fAtW7bQ3NzMjh076O7uJpvNEolEqK2tZePGjcHF6Vrb/KpQ\nQalCk1U9X9kBD59Wql5CG53V8Vxli+lbjxpRVQ/h2lH4ItOGHDmP4yorSrtzD6L+TkAgNO3KllRj\nP8x2FdOIKbgFymGhoFJLlb7G5i+moJKoD8gUrWOHTyMLRevP3v1Qe3vRUlMUgawxanGimE5hRCm4\nSQfQ0AYPE5mzZVT3TNOJzbuX4eZn0NwsIZHF7TtCoeAgpFecqCuqXJlxpUwXL9qVyBIFCulB5oIC\n8jxHQVqVS5UCW/qSgrsqbhxVRCw+cJdjK9cHxYSh9jl8RhUmMW+0bGV1qanv7CFwskip7DyRajZT\nmDFkdgDZ/rICr0qVBEthNOkUbS1tQCilv8IwergCzUoEACnxOf+LvTePsuOq730/u6pOnanP6e7T\nc2seW/M8I8nWgLANtoE8QxKGAMGwgJBAzOLmPV4IK1nJzQ2QXB6wYocxQIDYBGOwMVi2ZE3WLEuy\nhlZParV6nocz1/T+2FXVp1vdMibJBbP0W6vVrXNq2GNV7dqf/f0WpM8sSLuQilnxOglj9Z8GLe6q\nwxWUkxIYbxOect9klbmUq/wWm8e4Ta47kzTWCCPXbgVHQUJlqZtyH68OSlfK8zu2VGsL1+DDoJ4F\nrVDk51oR5AbcejAK4L5poD4vnILjOAX1J1Q5ExeqgMRa6D8p1eLUKFRslKClBxtaWXmOYOm4MtzA\ny+MKcfJE7o8i+0HvsfH+Eq4aB8oyvRMta6OzoGKLTI+naKgGITJDqlL2vuSmw9W+yHRLS2TXxtav\nY6HKNmRlxttN4fU048GoMQlfgmt1rIzvXzRflnG604ULN00NKSqqhGuT12HwnIRRgxUSRkRIWHbw\nvGyDxcsg5ELdjgf3goMzrkDkANkBGDgDdh4hNBxjUOYnUARFcyFYCYGIC6T1yL5npmDoFZzcIMJ0\nV6cpAbdspA2tqHyDTOfINRwjKcFMLjKhX3tKkbk+CCUQashNpI1jm5imhWVlME2LSCRyy2SqmexE\nVQWVlZPUI6aJFStWUFNdRUtrB8ZIG3rJXP87y7bkhJQWwLFdsNTKyXwpqmwTZkr2B8+WG8e1lB63\n1pYrz9JSkaNkHajFiNEmec0dfgWE9zLPAcdBFTZF8Si7du3iPe95z7SrVr0oVKm9Xdg5F8yMVE36\nZvxFYiwewzSkjYBtW/5cp6KoqIk5GMlr6Lp+B+67E3fiTryuo62tjabGa4T1PFtXTVxpnjekDa6q\n2KxeeOvKdwHoAcjmHfK5/C2AnxCwcanFjW6DtrY2H/ADOal03333cc8999DQ0EB7ezuXL18mk8mg\n6zqVlZWUlpZy77338u53v5sTJ07Q29tLLpcjFApRVVXFli1b/Mmp1xJLly6lqeEVjp7PsWqRza6N\nJo8/p3LwbBGrF+XGh0TAycth/uXJUiwbyootdq1PsX1NmnjEBgFjacG5+jDHLhZR3xqgvUfhWz8r\n5v1vGUIRCg5OwQTM9GlKZwVN7RIyCwUdTFOgqrfuEAnJz0ZTCje6A/yv75aTywuWzMnz9l2jLJyZ\nR5nkdv/2u0c5dTnMV3+UoH9E5X//sJz33TfEigU5/3hQsI8DN7oDfOWJBIOj0nY1k1X4zs+LmVmd\nZ/6M8X1WL3ZYvsCiqTNKVc1curs7eemiQFFs9ABkcmCYgqKwzdaVae5an/QV+8ChoS3IoXNRLjYF\nSWYUTFPQ3hegpV3nrrUpztaHePFslHu2JG9xrJw8pMybMgdBXcKRxy5K+GnX+tSUwBlI5bwfvxhn\neEwlmRFUlzlSJ92R9sKjKYUzV8OEgjbhoITmFs7MowccMlnBuYYQV66HfFivptzk/31/L/tPxxAC\n6ubYtPeoHD4fZveGUYI6REM2eVOQyYpxWC/g8L43D9E9oNHZr/G3367g4bcOUV1m+tlUFKm65yBB\nz5cuRPnRwTgO8Hu7RqmbnefohQiOI1g2P0M07LgjEQkKPvFCMS+ejZAzxwsjpEv4bTSt8IuTRXBC\nKg+mMtAzqGGYAtMWRAI2d69PEQvbqKpUhLRsgeKCsPu2pDh5JUIyo9DSEWD+DG9hRyGUif+ZF9m8\nVIpUBNS3BQGoKLEQAnTdQdcdPvL2QT79lWr6R1QMJ8KqjW8lFC1BDUi7Jals707yOQGKKxYRLZlF\n4/lfMDrYgSUChONFpJL9KAENfV4N9mgKc2iM1Jl6UmfqpdqeomDnDCmziATywivnE920VE6iLJ+H\n0dFPrqmTyLpFjB26gNE3jHnkIiKg4uQMss0dRDctQdEDUs3Py3NAQ+gaWLYE/FylPA8MzNTfANtB\nn1tNvr1P1s3SOeOFJSRAVrR9JSPPnsIaGmPoySNENy0ltHAGSkAbnyjVNGzDJN/aRfrlJozeIZRw\nkJK3bEUtKcIeTpG+2EyuqZPw8gI71YL68V41CBfMzdTfIH2+SSr2ufSzGg8TXbeY4KKZroKhQOia\nTMvWFWRbO0mfbcAcGCV1uRXHO4Fty3J2HBRNJbZtBdHVC0lfaSVzpRVrNIU1Mg6UC10+++dau4ks\nn4fQNPd8mlTMc62QU6nUlJBfsuEGmqKyYMGCqS8CU8TmzZv54Q9/SG/vECOXmilescBtw14hSQhO\nDQawcgaOaWFZFtZomvRFOZ4NL5+HYzuuZbLnHDE+HhoZHfUnNkNblqLOriBz6TrZli7yTR04rmIP\nOCgOJOIl7N69m7e+9a2vOjGXy+V8AHO6sHMGtmkhdA2teOr7aKEqzVTntGorGG3pZnh4+LbpuRN3\n4k7ciddDHD58mFwuR3l5uRRHKIixsbFbIJzCKLTmNAzDV9LyQlEUFEUhn8/T2dk5AcKbOXMm733v\ne3nooYeor6/n+vXrNDc3Y5omxcXFJBIJ5s+fz9vf/nY6Ozs5c+YMo6OjWJZ8D7ho0SLWrFnzmoAi\ngGg0ysyZM2lvb+fMmTNs2bKFBQsW0NTUxIkTJ9i1a5efV9u2+eY3v8nBgwcZHh5mdHSU/v5+RkZG\n/HtFJpOhoqKC2tpawuEwNTU1DA0N0d3d7St0Ff5MF4lEwoeCPAW9yeWp67oPVWYyGQ4fPswPfvAD\nH1Rct24dxcXFE+pq9erV3H333Zw8eZKjR49SUlLCypUruXr1KoFAgEAgMKVaVyKRYPbs2ZSUlFBS\nUkI6neaf//mf+exnP0swGPS3e+c738mpU6cwDIOamho6OzsZHBz0leA8aKiqqop9+/axaJF0d/Ly\ncfr0aQ4dOsSNGzcwDMMH5mAcgqutraWpqem25VdozxsIBIjH40QiEWbMmMGyZcumFda5++67aWho\noLm5GSHke2TvOJFIhIGBAY4ePepD/4ODgz50FggESCQShMNhH/LcuXMnDz/8MH/5l38JyAV+3d3d\nlJaW0tnZOWUaPBvV8+fPs379embOnImmaVy7dm3a7UOhEAsXLqSyspJwOMz8+fNRFIVkMun3x8lA\nYTAYRFVVX4nPcRwf3hVC+Cpo3ueFvx3HQdd1QqGQf57JgKMQgtLSKYQJpslDYV1rmjbBMte7dnh9\nwbuOzJ49m40bN/owl9eOvPrVdZ358+eTSCQ4efIk2WyW+fPn09HR4UNgO3bs4Ny5czQ3N9Pc3Mw3\nv/lNotGoD4t5+a2oqOBd73oX69atw3EcNm7cyEsvvUR3dzebN2/m+eef59y5c1y6dIlgMEgul+PA\ngQOsXLnSt/f28uk9q8v37LJ+wuGwn+4XX3wRgI0bN/Ld734XkHblXgQCAUpLS/nQhz7El7/8ZU6c\nOMHw8DAPPvggS5YsmdC+dV33QcWf//znDA8Ps3r1aj74wQ8CcPXqVbq7u7l06RJ33XXXBJjPayte\nHYFUenvsscdobW31lRW9Nvfggw+yePFiv86i0SiqqvqKcz/72c84f/48tm1PsLX1oNHy8nL+4i/+\ngubmZg4cOMCpU6dobW2d0E5UVaW9vZ3e3l5qamr8+5QHHnrA9djYGLFYbMJcxejoKJcuXQJg/vyC\n8d+rxJ49e3j55Zd59tlnWb9+PbW1tbeoaobDYb/veja2p0+f5tq1a0QiEbZt2zZBwbFwf9M0fWgx\nEonwyU9+kjNnzvD000/T1dXlw6VeW7Qsi5kzZ/L2t7+dN7zhDbcVCvOuT5Pv55PDs5OfO3fuLceb\nDBR794rJMWvWLOrr6xkZGbmz6OlO/NbGfzvgV19f/999ijtxJybEq1n5TQ8AyBCKhmPLFVqTAT+Q\nwFSm9/yUXvWKorBy5UqWL1/OpUuXfIjvxo0bPPHEExw6dIidO3eyYsUKHw78r4hChaaiurehBGNY\n2dEC60v3LbwHzykBCdNEZ0582+vYEvqLLUTkunH6z2Gl+6HvFCQ2Ao5fpo4LahSU3Pifji0hNpDq\nTXZefmYkXQvIggGqp2qX7oaRq276dFdJbIYEgQpvxMEyCdYlb0LPIamk13NEqrFF5+LbeE4A5SYr\nmM1CZAdxku0Yg/UEy5f6myqKSqhqDVb/eZYvW0oikeCll15iLJlCDZdjZYdl3s2shH5sWwKISnAc\nQBxrcvOal+kwXBvS8IwCW9Kb0vZzwixWwd+FoJhQXLWxtCwvH7SZIsJVSDjLlu/plYBbvSZ2dlge\n03KVq7QiiLtqZ4prYZnthtEmHDMFGHKb6Cwwr6LoMR8gtUcbZNvyPL+8NuADlkICfrl+WacewBUs\nH69PHxAS8u/MTRe6cm2PY4vGrV2DFfhwnWNC38lbQdBw1Tg06NWDmQIsCcfFF8pyVVQJDKqh8fbl\nWIyrXQoorpP9xbGmV1y8BfRzCtTttALIrWh8O6FCbC4MX4J8XsK1kRkFCpb2+HEVXeY1MkPWQ+8R\n2e6K6ySENdYs9yteKhX8DBdgHZoiqZ7Nb7xuvI+Eq+S2RlKWd6bbtQfOjc/cjTZK4M2/lrpQoaKP\n58exJBimevbgtix7kBDf0IWCtsn4formqt4JFy6cClI0ZLpGG2VdOoZU+6vdN16m8TqpCpfuGG9n\n0ZkFZU5B17JxxlplOzNSSEsoW563fJNUL3RMt/8J17a4TJZx6qa8hqQ73D7luDCc7p/AESDi0g5a\nZLpgrAXHGJPtQtFAiyL0UpzhS1J5ML7Y7Q9CQnCKBraFY+d9iftINDKujenY5AeuEQ3cXoq8MDwA\n/Tvf+R6pjpdQg/FxZdsCaRCh6vK/timvXdlRGDgnyzw2T25sm+MwLOCpOFqWhVUw4UlkHkTmIpKt\n0H8KXZODzV8XZi9Uqb1d+HbyYvLAzBvIy+YQCGhT3t+trIHh/Or2x3fiTtyJ10c4jkNTUxPnzp3z\nJ3IikQh1dXWsXbv2NU+cvB7i7Nmz4OTZssoiFJz4XVrOQxAJOUyX9aAL+BmGMRGSdyMaBhxpKzJV\ntLS0cODAAc6ePYNlpN37qvt8IzR++MMfsmXLFvbt28e+ffv+U3n14u677+bpp3/G2atphscMtq3O\n86PnQ1xoDHLqcpgtK+W1/cr1II89WYptwz1bkjy0dxSlAFiyLHBswepFOdYvtbh2Q+dfnoxxrj5E\nUbiYDz44gqaK8cfSWxQsxv8+filCLi9YNDvH0KiKYQrO1od5aM8oReHx/ebV5jlTH+KlV8K09+pk\n84LNyzI8/NahcQBu0mNnQIM3rM4wf2Y3n/pSNX2DKl/5URnzZ+TZvT7FqoVZQkGHnCG4diPIgTNR\nrrXp4MD8GQZ/9vuD/PhgnMMvR3jygMYj7xm/xwoB65batPXKF/F1dXX8z//5txSFUrzjjSYjY/Dd\nZwKkswpHLxRx+kqEkpiNrjkkMwppV7XQdgQ1ZSa9QyrZnOC7vyjmYw8NkCi26B9WOXU5zNaV099z\ns3mpHKe5rpYHzkTJ5gV1s/PMrJzehqYobFNZapHOKowmNeIxgRCSvRpLKWiqTSxqc++2MbatShML\nOx7fhOPApuUZugdVXjhdxIlLEnB7pTnE6ctyMc621RYv1yt0DyicrQ+zbVUG04JsTrYLPeAQCbr1\nG4RPv7ufL36/nJu9Gn/zjQpmVRlsX51mVqWBpjmkMgoXGkOcuBRhLK1gWIJd61Pct00uYkpnJewW\nj9p+GjM5ha/+qIQrrbKDL5ubY/eGFGsWZ9FUuc31zgAHzkY5eSlCPgvZnEpbV4DOfg1NdVgyJ0dl\nqYVpC6yCob33e82iLHOrDTr7NZ47WTSxPd6mzrKuet9oSnDlehA9AJuWSfV7rwknim22rEiz/1QR\n+XxWPgO71tOW6dk4aahaEMexMfMZ1ECYuvUPcun4v5PPjlFaOY90ckCqsCyeRXBBLUZnP+nL16Xt\nbM7wX3OoiRjhJbMJzq1G6BrCdkAV6LXSWsjoH8E85Cq+6BoiqGNn3cmKnEnm6g0iKyZOnAhVkeew\n3OdiBxzTlJa6tk3mcisgobDMeTk2mmDB6wCqihYJUbxvI2MHX8boGWLs4MskX7pEaPEs1OIoQhHY\nqSyZazclJGdZqPEoJW/djloiIa7o5qWY/SPkO/sZ/skRYjtWoc+rlo0eCi5MDlY6R+rlJtIvN0oo\nTwhQBVpJESX3b0Mrk4CCtG81cPIuNBbQCC2YgT6ritFfniLX1oOTMzAGRny4DwDbwcrkQBGEV8wj\nvHQO1nASKyfHNlo8ip3KMPyLU2Tr2wgvmzjxIlQFRQSw8wa2ZZFKJikqKkLz7KEGRsi291FWFJ8A\nmL9aBINB3vnOd/L1b36D/oNnEYogvmz+Lcv2hKaiCoGdNzCHkow8fwZ7NI1WnUCrLMXOjIPxQq4S\nkuqK7kSxXDkk75r6rErURJxcRz9OzmDhosWsWrWKWCzGwoULqauru+0kVmGEw2EYBjtvQGTqSS1f\nWfI2HfXVzidUVQLHxu3HXXfiTtyJ1194wFFLSwvpdBpVVSkuLmbjxo3MmTPnN528/5Y4d+4cpmlO\nqXI22e51qlBVFdM0pwT8AB8cmeodkmVZnDt3jgMHDtDY2OhDMd5+mqZRVlbG3XffzZ49e35llb7b\nhRCC3bt3853vfIcDBw6wZcsWdu7cSWNjI08++SQrVqzwFws//vjjHDhwgMHBQVpbW30lKK9MPHCj\nvb2d/v5+qqurmT17NnV1dRiGQX9/vw8+TQb8JgMUM2fORFEUxsbGKCoqIpfLcfz4cZYvXz5h27lz\n59LU1MSTTz7J/v37MU2TN73pTaxYsWICUFQY0WiU3bt3U1pays9+9jMSiQRbtmzxgUXPNjIQCFBc\nXExZWRnRaJR4PM69997LAw88wN/93d/R0dHBsWPH2L17t3/s8vJy5s6dy40bN/jwhz/MkSNHeP75\n51m6dCnbt2/n2LFjnD59mv7+fv7jP/6Dn//855SUlOA4DqOjo/69NBAIUFtbS3d3t2/taxgGoVCI\n6upq2trabrE5ncru2GuDFRUVRCIRdu3addv3qnPnzkVRFLLZrA+VeeqJ2WwWwzBIJpNcv36dwcFB\nH2QC/PIuLS1l7ty5lJWV0dDQwOnTpxkeHqa4uJg3v/nNPPPMM5SVlaHr+oQ8eOCOp4w3PDzM+fPn\nfVW1qqoq+vv7feVAwC+P8vJyNE0jGAwya9YsolH5/DzZQhfwgSwPRhocHKS3t9e3DBZCUFJSQkVF\nBfF43F9gXmi36yk8eoDX5FBV1Vd9rKiooK+vb9oynwwGAlRXV/uqZoX1W9h3hBD+dcRTGfTKJRKJ\n+LBfKpWirKyMHTt2cOjQIcbGxli1ahUnT55ECMEf/dEf8Z73vIeTJ09y8OBBrl+/7vdtIQQrV65k\nx44dLFy40AciQS6WPHbsGC+++KJvu+wpd3rt5cqVK7S1tVFVVeXn1YNox8bGJoCVniVya2srzc3N\nRCIR1q5dy7e+9S10XfdhSa9MwuEwc+fO5WMf+xhf+9rXqK+vp76+ntraWjZv3kw8HseyLG7cuMGJ\nEyd8e9tNmzbx8Y9/3C/fP/3TP+Vv//ZvuXDhAl/84hd517vexezZs30LW69+Hcehra2NH/zgB7zy\nyiu+imYoFGLt2rV8/OMf9yGyZDLpW4gHAgEikQj33XcfK1eu5Atf+IJvO93W1kYikfDr07Paraio\n4J3vfCdvectbfLGfUCjEjBkzePbZZ32113e84x0T2ocHEqfTaWzbvgXyO3LkCJZlsXr16lvscm8X\ny5cvZ82aNZw/f57Pf/7zPPLII9TW1k7YxlNlVFWVXC7H6dOn+bd/+zcymQwPPfQQ+Xx+Qn/3bNw9\n9UvvMy8fO3bsQAjBt7/9bfL5PFu3bmXevHkUFRX5Com/Snh14vXv6aLw2js5JsOe00WhNfGduBO/\nrfF/zKL3TvyfD9u2J0Bm2WyWUCjkT66vWLHid1Kh5tWs/KYHANwQipyQsK1pvg7ANIM327Z5/vnn\n2b9/P13dPeQMC8t7Wy4EakMzJ06eoreJoaQAACAASURBVLammr1797J3797/kjooVGgyR2+ildZh\ndp2WMEogLpXARhvG4b6aPeN2mP6q40I4ScUJz0BUF2F3H0Ykb4JeBiVL8OUvCsCQW8KzwQ0USQhs\n5LJ7/LyEpirfMA4Weqp2I5dd+CoANbtd1bBpBtpCgdgcCNwLHc/Kc/WdhOErriVmFeCqyhWqbwEi\nOhsqt0qlwt6XyPVfQS+buBpEK6rF6D2PaZp87GMf48aNGzS13CQ8by/pm0exRm/iYMpjjlyGkSvu\nngWgmx6XUNpos5vvU1C1o8CW9PQkW9Lxl+5y9f94XYyr2jkuoHWbBxAfxFJQFBXLzCBV6wSOcKEx\nNShV5MLVTFBLU3QILJDKfJkuqb5nGzB0GYRATyxCK6qVEzBGUm4TmTEOQ3kWu35aBFRslZ+l2iTA\npYbl8UOVrnLeuGWnBLhMV51ts9tGTPcluWuTazvQe0K2MQ9UnUr1zQNB0zdl2VsZF1ayJHwXrHJB\nLhMfgAW/rxJbJFX/0p0SLosvHofwJtS1998CRTOhymMWQm5eeUiyUrbTQVeVz3HcdKmMW9tqbl/T\nZfvRi6FsA/SdgGwvJNZJwE8IeazEWglnjrW4VsWGvMYFIhCZA6HycZDRu/V76pn5Yan6CLLfhSpd\nW+NO97dbz3InfMjSB728snPz4Pf/mGxjg2fdPBWWn3DhSlXmK5iQaTdTU0OKVk6eK1Qt4T7Fe3xx\nQFEQVdtxeo9Bqr0AFJwnr1tqEJxRnGy3LDMjBbaBUIM4dl7aOFfvHoc4vTJ3LBfSdVUePQvs7gPj\nioiZTtAX++CDY5s4Xh3qCShPuOXlFXkIEIiRegnRZrpknytoR47bnxzH9iXCw+EwWkDDGLmBYmWo\nnT1zWrnyqWLv3r00NDTw0vGTpFp+QWjGNqlw63dXSQ0IVb4scpJt42qJDqCXu8qSXvW5/c1XLhXy\n3ujBvZ4ioV6CEFL6fM6cOXzoQx+acnD1alGoUqtFph+0Cq9dOJMmpBypyKQot4d4Xqv98Z24E3fi\ntzsMw+Do0aO88MILtN+8AU5u/LolBPuf0ykprfAnVWKx2G82wf+FMTY2Bo5FbcWtz9K6exk2puej\nUBQPdhp/4VwYhgUgbpno8mye/uNHj4OdRZBjbZ3J0nk2QVf57VKzwqWmFEcP/5Jjx47w3ve+j127\ndv0nc+zZjazl5TNHeHy/xbvvzXD/DoOnDsX52lOlIGDjsgzf+GmJD/f9/r5R+RjmHsO0IZ1RfIU0\ny7JYsdDhI783xJcfL+WlixG2rMiwZnHe3aLwJf3E9BgmvHBaTkZsX53me8+WYFqCkaTC//5BGZ9+\nTz+6HFayY02aJ1+Mc64+TECDBTPzPPzWIR/Uul1UJyw++4Fe/urrlSTTCi0dOje6xhcfeOlyEIR0\nmx2rMzy0Z4yg7vCOPaO8dDHMK00KPYNigpVzNCzv5ZlMhlmzZhHUg4T0FG/cbPGNnwQIBR2iIZv5\nM/K0dOqMJBW/NEqKbHatT3HXuhSlMZufHYnytacSNN4M8o2nEuxcm+InL8b59jOllJVY1M3O35LP\nbF6q5wkgFLQ5czXEfxyMgwP3bp1CvXtC2QsCAQdFAQeN7gGFdE4ulFBVh5K4zSN/0M+i2XlyhrTt\nLRDiQgioKbN41z0j1JSZ/PRInO8+W4IQsGCWw9wah3QOsnmFpw7HmVtjMLNSqvIFAw7h4MTMlMRs\n/u8/6uMnh2I8dThOfWuQ6506qiKHNo77Y1oC25aA4MnLYQTwgQeGZH/EF6HDtuGbT5dw5XqQ4iKb\nj79jgIUzJz77CCFBzvkzhnnHnlG+9O9lXL0e5CeH46SzEnhMxC0fxnMbCQ4yHbLfwyf/oI9H/r8a\nTl8N8+Y3jFFWbKEHnAmgn4SBhKsAKD+LhBx+ejiGALasSMv2VJA224E3bkpx+HyUXMpgoOsa1XPW\noCiaVMkDFEVzwUsFRQ1gWwZqQKdm7hpu1B8hlx5FQZEMmyYn0fQZFegzKnBsGycvVeCELtXhfGtd\nR4JQQlF8NTQnm0NEQkTX1xFZtQAlpGMOjpG53Er6fCOZiy0E51SjlRXjGCY4DnY2j+eUIDTVPb4N\nqk3y+GXsZAa1OIo+q4L0y43jmS9oHlIZyEEN6cTfuIHc9S6y19ow+0fJvNIyoZDtXB5sm+iWZUQ3\n1KEEdf87oaqU3LeZkedOk2vrZeS50yhFYUKLZqCVFaPoGnbeJN/aTbalS4KJholaHMUaSaGEdIrf\nvAWtLD4+PAhI2VAnb8ryzMnrnlAEsbvWYD39EkbPELnmDti6nHBMQnj5AosjhEBRVZTyYlTHQQ0G\nZFnZxYiAhjWSItfUQWDNQpkV08I2rQnQpI2cNAzoOnogwMDxVwioKtu2bfuV7ai8uOuuuxgcHOTH\nP3mSvudPk2y8KdUKq0pxbNsH46zRFOnL18lcbcNOZXBsm8jK+a7KoAshBjQ3vaY7tFVRAtotcJ2d\nzsn2pwjaOtqprKzkoYceelUF88lRU1NDW3cn6dYu9DVTP68oIXmDd/KGzE+hHaE7ka2+yvtHK5t7\nTfbHd+JO3Inf/hgaGmL//v0cPnyYoaGhidbcisJPf/pTFi1axO7du9myZcvv1OInT0XIA4QKoxDA\nmS4K1e5uF5Pfc6XTab761a9y8eJFHw4oKyvz7VkNw2BwcJDOzk6eeOIJDh48yCOPPMLs2bc6Ub3W\n2Lp1K48//jgNDQ2cOnWKVatWsWjRIpqamviHf/gHHnnkEbLZLM888wxDQ0O0tLT4FpPe2C+fz/vq\ndF56Ozs7cRyHOXPmsHjxYgYGBvx2NBW45EU0GiWRSPjWw8FgEE3TOHr0KOXl5bztbW/zt921axdN\nTU388pe/xLZtNm/ezIoVK36lfK9cuZKRkRGOHDkCSAvb8vLyCdbHuq4TiUSoqanh/vvv91XE3vrW\nt/Loo49y4MCBCSqHXvpBAo/z5s3zobNNmzbx7LPPEolEqKqqIhaL+TCkF/Pnz2fPnj1s3rwZRVH4\ny7/8Sy5duuTDMI7jEAwGWbVqFRcuXJjQNwshFE/tLxgMMnPmTBKJBGVlZWzfvn3a8pg8htd1nfb2\ndl+dzgOWmpubfQCwEM4B2UeGh4e5ePEiK1asQNM0vvWtb6EoCrt27fLbtqZpLFu2jIsXL/r7FwKt\nXgwMDHD69Gnq6uqorq6mpqZmAtjjgXGFNrZtbW0IISgvL59SicuzNB0ZGaGlpcUHuQrLYWhoiKGh\nIaLRKIsWLfIthb2YDPB4Ze8Bf4XpmjVrlm/tPRUg7IGUhWmsra31ob3C4xcqCgohGBwcJJVK+ZbP\n3ufe9UXXdbLZLLZtU1VVRUVFBcPDw1RUVPjn9rbduXMnO3fu9KFAVVUnWK96bS2fz6PrOrquY1kW\ng4ODVFdX8+53v5v169cDUsDpxz/+MQ0NDfzgBz/gU5/6FKqqks/nMQxjgjqlByJ6gPDXv/51ALZv\n3+4/+3rqbZPDu758+tOf5tixYxw/fpyOjg6efPJJfxvTNEmlUoTDYf7sz/7Mv2d5x6upqeF//I//\nwT/+4z9y7do1PvvZz7JgwQI2btxIIpFA13UGBgY4fvw4165d8/NQWVnJ0NAQc+fOnQD3gXSpSKfT\nPtSWz+dRFIXS0lIefvhhvvCFLzA8PMyhQ4dYu3at/wztKRp6fTEejxONRhFCEIvFUFWVPXv28Oyz\nz3Ly5En27t1LLBbDtm3y+bxvme2VjWVZjIyMoOs6mUyG5557DmAClPyrhBCCj3zkI3z+85+nqamJ\nv/7rv2b79u1s2LCBmpoa377WcRwaGxt54YUX/MXSuq7zhje8wT+OrusEAgHfntm7znqKmoV1a5qm\nb4976dIl1qxZw969e19T2svKytA0ja6uLnp7e6cFA7068ODWwnR48N+rMRneYuapnh/uxJ34bYk7\ngN/vYPymILPflng1K79pAYDxLeTX00ymTAcAGIbBY489xokTp8jkTGw1gl5Wh15Ug1ADOJaBmewi\nNXCN5uvtdH7nezQ2Nv7awENhTFZoononRGolnNT1ApRtlFam4KqoTYL7HHscTnJBKsc2UUMJnMRa\nnL6TiNFrOLEFsvz8CZBCmMv9bLLFKo4Ed4QigaPUTQlMFS+W24SrJYyTG5CKauWbXLjvVwi9FMo2\nQ/8JhGPhmCnEoFQLKxhayn8DMal8Fl8kX6xHZ4Eawc6NYSY7CcTGV/NNhjg99aj8YAN2uh8nUAQV\n2wFbQmBm0rXoDEioMeaq4jm2q97XJkGZ3iOQWC+BtHS7BIV8QM09eWFdIGQd+sqDsyXMNV04Dphy\ndY/QIohkC6mukziOGIer1KAEPPVSPDveibCaCwFGZvqqcY6ZQtGKpN2vt7VtSNtYrUjCZ57F7uQQ\nKlRskxDV8EUJag1fwlP+ktsINy02oEjgrP+khAOF5gKPptwn2TIO93n5mC6EIutZCcqyzxdQY0rB\n+SeUoSnrUQDVu+DGExLmSt2Q6m6KKtPoQ67WJEUz17rWV1yMuVbAhWXsuCqMrr1utg/ClYyr2zAR\nWBSa/C7k9hUj6daTO+tr5STIG6mFSI3fdMbBRa+P58f/Fop7DXTB20BRQVt063G0EQbOSvtbPSHr\n2WubPoDqAl0e4GgOF/T/Rfj22DCxXWODIweAqqZhxhZIEDLbK8valBbh8nrkqiFqMZhx76QZdCHh\nOkVFVO2AkXqckQa5/+AFCtukwJbpdGwJ89mG/Ltsnfx/4WEV3d3WdMvORipahqF0tdsnczDaQrBi\nBZFIFNOc2vbVNA0sy5HwXEG7F44hodNgAgIxCZ9P0Sa9ly6KOYbT/RJFIY03vvGNr+m+rSgKH/7w\nhxFCcPz4STLth8l2hWWZBxJguTbBGangKay0206kLbaTH4BwOVJlUMWxXdVGT7VTUW+pF4SCyA+B\nENgoHHvpBAAf+chHXvMzR6FKbbBi+ZTqvABKMD5uIV6guunY0nZ8qhXXhfFa7Y/vxJ24E7+9MTY2\nxpe+9CWaGq+AnSUWybN9jUV1mYR+Bkfh+AWV7oEUP/nxDzl06BB//ud/zqxZs37TSf8vCW9FujLF\no1lI9yx4FboHVKrLplnUxMSnl8Jo7ZQK05Ntap588kl++tSPwR7lnm0Gb9xkUlYycd97tll0D5j8\n8rjBwdN5/vXb38Q0Td74xje+xlzeGm9729u4fOkSL1000RSdB3aOkM0pPHeyiEd/XMpTh2N0D2jU\nVpi8Y+843GeakDcEhiULTHfXleQMOcm1YKbF3o0pnjlWxIEzEVYtyksDUf/l/MR0mBb8y08SdA1o\nlJdYjKUUTBs2LkvTN6TR1K7z44Nxfn+ffOEYj9qsX5Lh+dNFqKrNvVvH0Lz3oberCGS6KxMWO9ek\nOXEpwqJZOWwUegelal4k5FBeYrJ9dYZtqzIT4LOiiMOWFRmOXohy8LTK77/JLDiuzJiu68RiMULh\nMGNJleMXFY68rBCP2nzsoQHmVhsEdZt0TsEwpAVuMGDjuGpsHX0q+0/FKIrYGKag/kaQgRGVWVUG\nbT0BvvC9ct6xd4Qda9KutSzkDEUqKQIODk8fjfHU4RiOAw/uHGP1oqz/rDU5bFsCfpmsQFMdTl+N\n8NwJnVzeQREQDds8/MAQS+e5E1KqZyvmPqWK8X6TzCjs3phiYFTl4JkiTEuwZ6PB1VaFdEbCeAMj\nKl9+vIwPPDDEktl5wkFnHKosqDfDFFzv0gnpNpoG82ryZPIKHb0aY2mVOdV5/uShQcqKLQ6/HOWZ\nl4o4cSlMOquwdWUaIRx6BjUcB85cDXO5JURR2OYv3ttPTfltaF23fX309wb4yo/KaGzTSWUUNE2m\nU3d/2zay/TvSMjiVUYiEbWZVWWxZkeFcfYh/+UkpH3tokJDu+Da+HpzoZVUREAnZHH8lwsGz8mX4\nGzelJmwrCwdmVRkENPlBX8cVqmavwraMcXC2oIJVF/CzLZOKmcu42XCckYE29EiMbH50gqoaIOG9\nkLtwxeunuoLQVKnMZ1kISyrwyUQJ4rvXEVo8y0+fVhqjaPsKnFyebGM7I8+epPiezQSqSrCzcj+h\nKIig7o8j7LxJ6uhFMldugBAUbVmOk8n70Jed9CbLXbgvb4BlowhBJFaEsmgmoYUzMAZGMG72Yefy\nEnazbbIN7aglxcTeUOAE4ReVQOgBSu7dQvryddIXW6Rd8al672TumNq1E0YQ27ma9KUWhKYQnFeL\nXjnxei4AEdBwXHgR05Kgn+0gNIXwyvmYA+dxciZ2Wx/hjfL5WdNcSNOFM72xjBAShPTrJxjAGU2T\nPH4ZNRZBrymbCAh4oJzj4NhyAnLoyAUyDW0kiuLcc889t23308Xb3vY24vE43//+98nc7Ge4tQsn\nHEQtiaIENOx0DqNvxG9+elkJxlgKs3eI6Ip5/nHsvIntlqUSDCBUdcprUu56F0JRiCyYSX5olDMv\nn+Nf//Vf+eM//uPXlO677rqLly+cZ+RiE8WrF00JpSiahl4aJzc4Su5GD6F544ueHcOS46Fg8Jb9\n/G0ch2RTO5qi/JdAJnfiTtyJ33w0NjbyT//0TwwNDZHL5XzIynsn412jL168yLVr1zh58iQf/ehH\nX9X+7vUS/phoindQHuQz3YKmVwsPuFAUhZKS8QFPLpfji1/8IlevXsW2bWbNmkUikbgFnKytrWVs\nbIz29na6u7v5u7/7Oz7zmc/8p8ej4XCYBx98kH//93/nscce433vex8PP/wwjz76KK2trfzVX/0V\n0WiUVCpFX1+fD/d5qlv5fN4vt0gk4gNFwWCQtrY2ysrKiMViVFZW0tPTcwuIVhjBYJCVK1eiqqqv\nghiJRNi3bx+HDx/mqaeeYunSpSxZsgSATZs28d3vfpeenh7i8TgbNmz4lfOdzWZZsWIFV65cIZvN\nsnnzZtrb2xkZGcE0TaLRKHPnzmX37t2sXLlyQpvYsGGDD+g1NDRQV1fnf+fBX7qu++8Kr169yi9+\n8Qv6+vpYsGABf/Inf+Lbqnrl6dmWeuV6/vx5Ojo6CIfDPkDjwTvFxcWsW7eOpqYmhoaGboGfFEWh\nvLyc2tpaysvLKSsr4xOf+MRtwRPPWtNLy2OPPcaBAwcAfLCrpaUFy7Im2BlPrk/btkmlUly+fJlg\nMIhpmsTjce666y6efvppf9/S0lJWrVrFlStXfNhnqvDsaj2IVDqoBXzgybKsCWprjuPQ2tqKbdsT\nADGvTXpqiY2Nja+qyJlOp/36LbTQ9SA+X43ZDQ/wCwQCPuBXWlrKvHnzuH79ul+WXkwFIC5ZssSH\nuianz/u/lzfHcbh58yaxWMwvg6n6VCaTIZfLsXjxYo4fP87169dRFMW3Ro3H4/75AoGAf33yzhcI\nBMhms77CnKZpJJNJLMsiGAzymc98xlfpA6n4Nnv2bP7mb/6GGzdu8KUvfYk//dM/JRwO+wqZ4XB4\nQn0MDg7y9a9/nfb2dioq5KLaXC6HZ22dTqcnLCbxwFNd1ykvL+e+++5j3759XLlyhevXr5NOp9E0\njfb2dpqbm7nnnnt80GxyHcyZM4fPfe5zPPPMMxw9epQrV65w9epVvyy99m8YBvF4nE984hN88Ytf\nJBgMcv/990+56D8SiRAKhXzAz7ZtbNtm5syZrFq1iuPHj/tt31PxLLQI9xQaLctC13X/fhCLxXwI\n9Stf+YrfrwshfG9bTyFvYGCAf/7nf6a3t5e6urpfyyUwGAzy6U9/mm984xucPHmSAwcOsH//fh8g\nBujp6fGB5UAgQEVFBdlsltbWVtavX++3MU+9UVVVX/Vvqr7w8ssvo+s6Gzdu5MyZM3zve9+jtLTU\nB0l/lYhEImzevJljx45x8OBB3vnOd065nadKfPny5QltzQOPPRh1uujr66OlpcW3Ub8Td+K3NdTP\nfe5zn/tNJ+K3NQYGBnyK/bXInP4mwzAMHn30UZ555ln6BkbIOyG0shUEq9ahVyxHK1mAoxWRTQ4z\nPDjAlcuX6O7u+p2ypzpy5Ai9/UNoJQtQAreuOjWTXVjZYQkmhSumOIIDtoWqykHv5MgPNSGyPSxf\ntoRNmzYB8gb76KOP8tLxk6QNQXDmdsIztxAoqkYJRFC0EEogghatQi9fggiWkBm+SVdnO329PWzY\nsOE1DyQnx7x58+jq6qS7s53c0HVpEaloEpZKtYLlKmqVeTdNexzKcdyJPUVDqLoEZmwLRVXQwqXY\nY604rsKXCFXiTICPvGKzpVpa79FxGK10tYSxxpolgFS23lX3GpMKad4MSn4Esv0yfeUbJsJNnmXq\nLdVkj4NJmQ4JWZUsQ9XDMn1CRQSKEOEKRNk6CfGECuxhPTWzbA84NnrJXP/Qdj6JOdzEjNoqdu3a\nxeXLl7lx8yZGSq5OExWb5bG0iFQJiy+SMGNsvgSstJCEX/qOS1U1NQTBEjAz0kbUNuU2VloCj8nr\nEraybbCzLlDWLpXPxpplXqOzoWIzt1gWTygTSx4r24MQCtbYTdduNSDPhyOhOc/iV3gqalrBj+rC\nmC64o0Yg042iagQrV2EmO8n3XUPgqt+luyAQlQDYdPWUbpdQn4NUVwxVyPOYSZnmcBWUb5FpCyVk\nmeWHwBiVoJUxIus5WCGVD21jYj5uF54qpFYkYUnHAlRZV3rxeH4LZ5twxstC0WX7yvW5qoMBF/zy\nflwFO6G4oFNAQq69x+R3pSsh5IFGBeVjWzDW6KZPk3Ced3qcicCkcIE4bwYn2+v+X8g2pEVcS9tJ\nwO1kNcVCkFKoEpbMdMm0z7in4Bjuj56QZZ8fksBiIA6B4vF0CE2Wj6c8mGqH/uNg5WV+ipe5faxX\n2gdrUVn3SIjVA66KiopwHBvLduQ20VmunfBCaQ9s5SDfL1UEY3Mm1q8oGOwKAaEKRHEdwjYRmW6E\nI8Eu4RjoAY2qqkrGUnkoWYqTahu/5ri2YP6PEG4/cFUGC8swEIN0G8LKyeMHS1FCJfIlmG35DKNA\nYNkWlqdA4cKVInUTUm0IRZPaP8nr8hqhRfGtixXdhRvdc6facfqOg5WmsjzBhz/84des+qCqKhs2\nbCAejzE02E8uPYqV6sYebcYZa0IkW+S1wzFQgzHC1fK5wRyRwKUoXeYC3h6ELECV9S+EmAhIgtyu\n9wTCMQnP3Ep2tJuerg7i8RgLFiyYKonTRkVFBSdOHGd4aBARLEENlUy5nVADGEMtsr0Vu/bHtoRw\nNU0lHAlPhSHL5Do2mZtHCAcc3vWHfzjhZcaduBO/TrwexxHTxestL+l0mr//+7+nteUqiaIk731L\nlvc/YLJqkc3cWoc5NQ5L5jrs2WRRN8eiq9+kqyfFiZNnWbdu3e+Ekl9DQwNNjVeZV2uwdN7El+tC\nQO+QoK1LoCiwcmHulv0dB7J5ALmoqdCidywF33xKx1ZivO997/cnFk6fPs33vvuvCHuUj/5fOd60\n1ZrORZCiCKxZbFMcs7lQb/HK5WssXlznrz7/daKzs5OOjg4ikQhNTW003LBpadfZsiLL/Jl5GtqC\ndPRqKEJwz9YksypNcoYglxfkDYFtS1WzkA5h97HZMKVaQjgcpiSa4fDLEa536iyZnaUi4T5jTLqx\ndA+ofO0nCV5uDBEOOrxj9wiPvyBVA99z7wjb16Q5/HKUjr4AezemfJAvnROcvByhotTk9/eN+EqL\nhazTVCqBqaxUzqsstTh6IUI6q/CZD4yxZ2OSfZuTPHhXkl3rM8yfYTCFOz2RkMPRC2HyhmDXxnHY\n89ljGt0DYTZt3saiRYsYHBzi+vUWrndYZHKwb1OKLSszSPZIEIvYBDSwbAlKmu7Plx8vo2sgQE25\nwZ71SToHAgyOqoylFPKGQiYvuNQc4oUzUXoGNMYyCgPDKm09AV48E+U7z5b6NrRvu3uMB3aMTSiL\nTE4wkpT2x5rqkDcFbd0BnjsZwzAFN7tV8gZoqrQ1nlVt8N57R/wyLSxbZVIZBzSHvCGoLjc4cj5K\nzhC8/wGDp17UaO2S+bYsQSancO5amMb2ILrmUFFqoSoSlGvpCPCjA8V862el9A9rlMRsPvP+Pt6y\nPcmeDSlWL8py/JUwDoJ37B0lGnaom5Nn1cIcZ66GudkToChi09Wv0zuksW5Jhp8eiTOWUnjfm4dZ\nNv/VLWMME0xbsGJejsMvR8nkFQRSWXDD0iwh3SEYkMqBEvYTfr0GAw7L5+U4ey1MV3+A+htB5tfm\niYZtX30QQNMgHLRRFfjFiRjff64YAbz7nhHW1mUnpKew3H95ooh0VsGxLUoq5qDpEX8DRZ04HnIc\n24XqVNJj/WRTQ8RKasmkBhHBAPqMCgmF3e69ikACcw44tkOutZvc9S7UWJjivRsmbOeNM/RZlZi9\nw5gDY2Sv3cToG0aJBFEirjK3LqGwzOXrjB25QL6tFydvElm/mOCCWrm0KZPH6OjHMUxCdbPkGCBv\nSiVBISiKRtGDQRQhsEwTNRJCn1FOaF4toblVGJ0DGD1D6LMqCS1yFyYWwn1eMSkCvSqBPruK7LU2\nnLyJVhRGK4pgpbNoKITDEZyITmz7CpLHLyN0jdhdq9HiU08SCyGkEpymIrwfVSWQiJOpv4GTzZPv\nHyE4r4acbZJJp8nlcmRzOTlxm8v5AKjjqvNlr7WRbexAUeU4PNfcgZ030OJR1FgYEQxINTxNxVEV\nzJ5Bki9dJtvUgZM3CIWCbNmyxZ+Aeq0xf/58du/eTUm8mKG+AYa6ejGHkljJNE4mjxrQiC+bR9We\nTcRXLmDkQiPmUJLIinkSUnQcrJyr/hAMgKKgTEHUO7bN6AvncAyTqr2biC+bz9DV63S23WTt2rUT\ngJBXi6qqKo4cPszI4BDBylL00mmsHG2bdFs3djZPuE5CIrZhgmUT0LTbQju57gFGzlylvCTBBz7w\ngd+Zd8R34jcbr7dxxO3i9ZaXpqYm/v7v/57BwUFAggTRaNRX3AkEAgSDQR9mSKfT9Pb20tzc/Duj\n5Hfo0CGGh4epqqq6ZY4nFArRfkpiIQAAIABJREFU2dlJPp+fEk4DfOBHVdVbFox6ClgLFy7kwQcf\n9Pf/xje+wdmz0slkyZIlFBcXTwkYCiEIBoOUlZWRSqUYHR3llVdeYefOnb+2EIRlWTQ0NOA4DiMj\nI7S3t3Pu3DnS6TQPPPAA+Xye1tZWenp6SKfTXL161YeFPNtYD0jx2ooHRHjKe4ZhUFZWRjwep7Oz\nc1qIsrS0lJUrV/qwim3bhMNhysvL+dSnPoUQgoaGBrLZLBs3bgTke8tz587R399PXV0ddXV1Eyw1\nvXKbHJlMxq9HRVHo6OigurqaRx55hLvvvpt7772XBx98kK1bt1JdXX3LMTyluubmZsrKyli6dCkg\nocHHH38c0zR58MEHmT17NseOHaOvr48bN25gWRYf/ehHSSQSPuDigWqetbNpmvT09PClL30JwzDY\ntGkTixcvpre31wfYPJW2yspKKisrfRWsUChEcXExCxcuZM6cOSQSCaqqqvjkJz/J4sWL/fTbtk0y\nmfQVKz0b3mPHjnHt2jUymQwdHR0YhuErc3V1dTEy4o2JhP+78Mf7zFNrs22bRCJBRUUF999/P489\n9ph0DihozzU1NYRCIb9NeeVbVVXF0qVLWbBgAaqqMjQ0xPnz5+nq6qKjowPHcfy+Uqhi6P2dTCaJ\nx+OkUilfDSwUCmGapg/TvloIIXyAsLi4eAI45QFZnl1vYZ/yYCCvTGKxGLquMzIyMgHgKoxgMMiS\nJUuorKxE07Qpgb3JZQzyujJ//vwJym+F167CuojH49TX15NKpaioqCCdTjNz5kyqq6tf9frtWch6\nZfnLX/6StrY29u7dy44dOyZs56Vh6dKlnD17lq6uLg4ePMjY2Bjl5eVEIhEfhLx58yY//elP+f73\nv09nZyeKovDBD37Qf8fe2NjI0NAQpaWlzJ8/H8uySKfTfv/xrjvedaWqqoqVK1eyceNGFi9ezP79\n+xkeHub+++9nxowZ06qHhsNhVq1aRSwW4+zZsxiGQU1NDbquMzw8TCQSQdd1tm7dSi6X4/Lly1RU\nVPDBD35wyrIrVCgMBoP+fVTXdUpKSjh+/DiZTIb+/n7WrFlDNpudAFFmMhm/DXgKffl8nm9961sM\nDAwQDAYZGhrizJkzaJpGbW0txcXFPjjpwYJnz57l29/+tm/rnUgk2LZt2691z1BVlY0bN/og9c2b\nN+no6KCzs5Ph4WEymQyJRII3v/nNfOhDHyIej3P58mWSyaSvHlqoaBiNRm9RsPSipaWFp556img0\nymc+8xmCwSBXrlyhubn5NYtPlZSUcPjwYbq6uti5c+eU/EYsFqO+vp6enh6/rTmO49sdh0Kh25bZ\nM888Q2NjI1u2bGHbtm2/ctruxJ24Xfx3jCPuAH63idfbwO23ATL7bYjLly/T1t6OoxWhRW+doJ8S\nACgMR6pxBbQAuj7xQj8dALB//36eeeZZ0oYgOv8eArGaactSCIEaKkGLzSA90PxrAw8g6/yVV17h\niSee4JlnnqG/v598Lks2NSLBK9tChMoRxph8SV1cB3qJq0rlwUmAUBBqYKLqoW2iKApFRTGMfA4n\n04PI9EgoptBO1EzCWCv0n5gEo22R4F7v0XHQqWiea8WahGC5BGUAxq5L6K+4TiqyeXCNTNykOnJc\nYMNVIxMCUCDbi1CDROfugqJ5WNG5iPgiiM2V55mqPoQKY80IRSVYVrA6axLEGQqFOHbsCEYuIyGn\nik1uUjxFMFdhzlfDc6Qt8GiD3EaPuWpXyG3svISgPFDGykoIKtkq1Q6TrS54aEqwrXQllK7Bs4+W\n9rkXXHvgehfU6pbpGLkqLdEcCZ05QrjAoSEBorL1kwDKaUIoMm+BIkjdRNh51EgF2a7TOPkRHE9O\nxDYlkJdsdduFIj8zk/KzwnZRNBuqdkpoK75QAky5AQlLliyX++rFUvEudUOCZaFyyA1K6FGNyrxq\nUWnr+qtcrzzVOC0qYUorB8JxgcGEqzymjlviOjY+TCdUqQJmjMi2nO6QoKAWLZiZUlwYy+076ZsS\n7rMNCaol1hQW6vifZkrWtWPJ/YvmMUGeRVEnbu+p5KFIYFeokFjt2tpmIDrHrVflllNNCA/mtU3o\nPyP3LV3tnl9M2tGWQJ45JvOfuinrxSPYbEPmY7QZBs7I+ray+H3AcctHKLLNmkl5bXCkxLy3clMI\nCAR0HHf1kyef4qut9p+W54nXyetGQZFMeZ3ND8PAOYQQRGZtJ1SzAXvsBiuWL2FsbIxkOitL2kzJ\na06kdvq25M34eiCsoiHt3W1ErhfsPHa2n7xaikkA23L8VVy2q3BRUPgu/HkcYWfRiufI9mgk5fU6\n3Y4P1tqWhLKTrdB/CpFslTCh+zKiv7/v17pnCyFYsGABe/bsYfHiRQhsujrbsYwcajBOID6DcO1G\nwrWb0KIVKHoMY7gFx0jJe4dejGO5114P7pyuHlJtkGxBDcaIzNqBosfIDbUyNNjPnj17XlPavW2v\nXL5EZvgmWmwGSuDWFXW3pDcQw7HzCCEH95o2/QsOY6QVe6SZObNq+cM//MPfieehO/GbjdfbOOJ2\n8XrLy1e/+lUa6i9QXZrk//lgnkWzJ9pJeiEEVJQ6bFtt0dZl096d58Ir9dx1112vGaL+bQvDMDh5\n8iRDIzn2bLJuuc0l4g4vntXo7FfZuzHN5OzmTVxgKnDLC7P9J1UutURYuXoDc+bMoampiZaWFh5/\n/HEyqT5+/0057lr/6i/YAebVOpiWQ8MNGB7N+Kuwf9UwTZNTp07xne98h8f//QecOfUSrdcbsR2L\nbNaka0Dj9JUwHb0ai2fnaOvRiYRs3n3vMKo6bo+qCAgFIRqS6oYCCWcZpkBRVELBEOEQXO9waO8L\ncOxClJZOHU11yOUFg6MqjW1Bvv9cMT/YX0zvoEYsavPmNyR54oVicobC3evS7NucIhG3udQcomdI\npaLUYm6NhEQa2oJcbQ2yYWmWZfNyWDYUskqFUJttSwvbdE7xAauacpPjr0QYSarsWOtQFAHLktaR\nU4F9Xtg27D8VRdMEb9oqnxMHRuA7TwdR9WI+8IEPEAqFKCsr4/nnD9LTnycYcPjQ24YpjTkYpjxG\nzpCwm4NMtyocnj0e4/C5KIapYFqCpvYgeU+dzxHYjoTycoYglVFp7da50BDiXEOYs1cjtHbp2Das\nXZzjvfdJlT8hYCyt8PzpKF97qpQnXojz3MkifnG8iKePxejoC3Dluk57r47jCGIRC1WV5RUOOjy4\nc4wFswqU/KdYo+B/JWT7CGjQ3hugZ1BDVQX7T2gYpiCoOxSFbDI5mb9URuHstRBPH43xzLEYTx6K\ncfh8lJs9AWwHls/P8Yk/GKA6IcvZcSRkd6k5RO+QxuxqgxkVcsxYXGSzeHaOoxei3OzRWVeXob03\nwFhKofFmkHjE5v33D/t22reLTE7a2IaDDp39Gt39AVTFYSSlsnF5Bk0FTXN8CFJTHSxLYFmyj8Qi\nDkvn5HilJUTPgMaxC1EabgbRVAcFuc1ISuG5kzG+9lQpF5uD4MBDe0bZtzk1ZbmCVLp88sU4eVMq\nE5RVzUcPF+PViFBUClWbFUXl/2fvzaPrOguz39+7hzNrtmZ5kC3Z8hBntDPYcTxkIIFAaJKGBm4L\nlxtomsAq0NWWlW+x1i189LZdBFryteVCAk2g5CahhDgTceJ5nudBtizLkqx5OvPZ4/3jPXvryJaH\nQMuXFD9rybKkc/Z+p73P3vv9vc/j5B2v48NdpOMDVE6dT3K4GzOeJDRnKt59iMg3zPikjyvhMsOS\nBc4rue0I9miSolvnoddWTLwdclxcU8b6BmZUg+VgDY1hjybJneome6yDbGsn6f2nSO05gXGmTzr0\n2Q5C17AGRjE6+sBxUaJBjDN92PE0gelV0k3eGZ9A9yYYNE3DGkmQPTeA0TeCNRzHTudI7TmBm8nh\nmhaBugrUaDgPGIsL+t/oGWL0je1gWERn1jPt0x+heF4j8UOniIWka4ylCvTaCrLHz6KVxCi6feGl\nr33zi5d8qlkIhKZgjyax+kdxDJP02T602gpEKJBfs+ZOeL/XD9mT3SQ2HcTJGkRm1GIlUjhZA2so\nTvbEWcyBUeyxlIz/PdNLasth0gfbsBNptHCQSH0V2bEUh/bv56abbiIWi1283JdQMBikubmZu+66\ni0w6TcfZsxAOUHPvrVQuv4Gi5mlo0TBqKEiudwhzVE5gB6dW4Zi2H+krNC9KehLg4PhZsq1dBMuK\nmLLsevSiCHYmS65vCAXB9ddff8Xl9Sa8jx09ytjpLiIzatGiF94P6WXFjB1oxRpJEphahRIO4uTM\nfOxu+KITvq7rMrB2NyKR5SN3383ChQuvuGxXdVWX0oftPuJS+jDVJR6P861vfYuhoSE0TaO4uHhS\nVx3Ah4sCgQDJZNKPiXw/56gPqjo6Ojhz5gzABX0mhMCyLEZGRnxHn/Plxbt6cJsn13XJZrOEQiHu\nv/9+0uk0bW1tHDlyhNWrV2MYBnPnzp3UCep8CSEoKytjZGSEZDLJlClTmDlz5vuqZzweZ82aNfzw\nhz/k7bffZufOnQwMDGCaJplMhvb2drZs2eI7pXnOTF1dXePPL10XTdMIh8NEo9EJwJHn8hYMBkkk\nEtTU1PhRt17sp67rhMNhKisraWlpYerUqb6jl23bRCIRSkpKeOKJJ2hoaKCuro41a9Zw7tw5li1b\n5rfV9u3b6e/vZ9GiRf7vvL45H6SyLIt0Ou2DiV5s5oEDB3Bdl3vvvRfTNH2HtEtBT93d3Rw+fJip\nU6f6n4GbNm1iz549NDU1ce+996IoCqZpcuDAAdLpNNOnT+eRRx7xwUfLsibEanpOaT/84Q85e/Ys\ntm3T29vrO9J5Y0tVVR8sCwQClJWVUVNTQ11dHRUVFcRiMaqrq7n77rt57LHHmDFjBiCBnFdffZUf\n/OAHrF69ml//+te8+eabrFu3jmQyyebNmxkbG0NVVaqqqiZEjHqAYuE4vNQY9aJRa2ulO3A2m2Xv\n3r0oikIoFPKhPg/0qa+vZ9asWTQ2NjJr1iyqq6sJhULYtk13dzcnTpyYAGel02nq6+t9J7uLlcMr\ni1feoaEhH2K+nLxxlM1mqaysnADtefHEXj+c75rm/c6DJGOxGPX19UQiEWzb9s+jxcXFzJw5k+bm\nZmKxmA/3TeYS6v1cCBAKIWhubp4ANxZGCnswoGma2Lbtn98+8pGPcOzYMbLZLNddd92E2NxC90Db\ntn3gzNPY2BgvvvgihmHwta99zXcc9PZpmibZbBZN07j++uvp6uqir6+P9vZ2Nm7cyObNm9m4cSOr\nV6/mzTff5OTJkxMc+Xbv3k1nZ6f/c2trK4ODgyxevBjDMHwo1XPB9PZ94sQJ2traaG9vp6enh46O\nDrZu3eq7ii5YsMB/VjXZueHdd9/lpz/9Kaqq8sd//Mc8+eSTlJWVcfjwYWpqahgbG6OhoYGRkRF6\nenpYunSpDxtfTOfDsIqiUFlZyfr164nH4wwODnLu3Dnmz5/vf2ZM5nJqmiYvvPACO3bswDAMbr75\nZj8u/eTJk2zatMk/R584cYJt27bx3HPPsWvXLjKZDNOmTaOoqIj+/n5Onz7Nrbfe+hsnNBYXF3Pt\ntddy1113sX//fjKZDC0tLTz55JM8/PDDtLS0EAqFqK2tZc2aNfT19TF//nzKy8tJp9O+g2PhGC6U\n4zg8//zz9Pb2smrVKq699lqamprYunUrg4ODNDY2+ueVK1FZWRlHjhyhr6+P1tZWFi9ePCmsFwgE\n2LVrF729vdx2220+dC2EyM9HTn7OGxkZ4cc//jGmafLZz372N15QdlVXdb7+K+4j/rfPXIyNjTE6\nOkoikSCbzV7WSvdyutxJ+L+z3n33XRkPm4fM1PDFTz5CKARKZ6AGi0mdfptt23Ywe/bs/5RopP/d\nulyUnxarQwkWYecS0nEqNjF64lJRfuZYB4qdoaSijPXr1/Pyyy+TyWTo7OwkY7gEG5ahXKLdC6WG\nywnV30qmaxNr1qxh1apVV/xBfLkYZhQZCSzMEbCT+ahLXTqgFSoP9vkuUeOtIP+cf8CtFdViDymA\nKeGZ4X2TvAcJTRXPkbGP6e6J0bJFTXKDRU0wcgCSbRCpkWW2EhICCtXIfTuG3LEPXeU/cN3z4lA9\nhathBLBTaPkZLMMwZF8qlzjN5aEs1x6f5HFdB2PoBFFdZdmyZQAsWLAAXcu7aRXNyrdb/sG1D/Yh\ny5yHBhneJ2ExNSBh0vFGl+UXQjqvCT1fZzMP9pgIcwwXBcpaoGS+3AbIyNSxExKUGrdOlN9yIxIG\nyjujoei4oTLpjKjmAb+iJrzIzfGyXEyubH/HhVgj7tgRMp0bcXJJXCUgITfHBDsDSkjCUiMHZD+c\nLy0qHQ6L50ycgfL6bUL7ICOkpyyWoFymXwKaZgLiR+XfvbF0ObmF0bmKdIUbPSzhyoR0uQTyoJIA\nVDnD6xjjDn2KJh3eBl3pADiwXdanaKaEzbSQHMOZPkicku0A45DrxZTpGy+Xm4+idQomG70YXU+e\nk5yiyr9ZSQhVSyDWSkDmnHS4QxmPEYZ8V+ejmAtdCtPdsqxCgZK5+I6Afpxvvu2EAlNulmM60Zbv\n50PjcDDe9h1QwxKWM+KyTKMH8ceYY0iQLXMOEZU3wIFgoGAEuujOCPbIcexcHGwT14sDN+NyHyMH\nZURutAGRB8sm9rcjIcSBXQjXRC+dQaCihdzAIVRVUFlZyYkTJyS7aWUkpHr+OXFSCfxjxmvCUPV4\n3aw0bt8mOU5CtRPfp2j5vsg7WQ7ulscMQjrjORLwFHoE18rA8EHgYGGl5Dc9RqR6AWqkinT7r3/r\nz2xFUbjmmmu45pprmD17tox3NyxCVQsnXDsIIQhOmUumeyfuwE55zlIjsk758SkmO4/kRmQ/AMEp\n8+SDjpLpZHt2c66nlyNHjrxvC/k777yT1tZWtm7bQer024Tqb0MvmTbhM35ieXfgKjoiUEogECAQ\nvHg8r50ZJtu9jWjw/ccfX9VVXdUHS52dnezft4egluZr/4dJ2RWY8eka/NnDJn/zQ0F3/zl27Njh\nXwN+WLVw4ULKK6rpH0hx9LTFgqaJ184z6lxmNbi0dSn84NVSnnx4ZAIEaZgA4oJz56lOwavrdXKm\nQltbG9/+n38Dro1l2aQyWWrKTW6ZN4ZhyhXNk35GnKd7l1j8ervBkcOH6O3tpabmChyagd7eXp5+\n+mn6+7rByRIKGMxttImFJaB4ssOhb1jFsgVdAzqDoxqOA2XFNrGwjBjVNQn0qZNdVuS/CyEwTINM\nOkPdFIEiIGMIdh8LcfBkEFWRrI73Dk2DadUG6azCS+8W4yK4cU6GP1w15gNjK25KcqqrjA17oyy9\nNo3jSmhNVaC0SMYompaQDoKKdJJThNyDZcu/efJ+jwvRkIzFzJkawSAYRg7DdAkHLn7pPNldwdpd\nGi4BbrzxJt9hqqGhgbr6Bk6dHKN5Wo6qMgmOhoKQTMv3axoEdYdDbUG+/1IFo0l5v6irLsGAS32V\nSXnM5vS5AMNxFdVxUVT46JIElWU2bV0BTEs6Kp4+F6BnUGVmvcmffHSEooiLZcOLa0pYvydKPhmT\noOYSDUvQMJlR2HMsTDKjYNmyLVcuSvHGliIJSyouN83NyCs77/LOLVhic96aMpARtjlDcG1zln0n\nwry6XkNTXWqnWCy9NsW8xhx/93wltVNMll2fZtuhCL1DGqYl27wk5nBTS4ZbF6aZVj3uolj42Kux\nzuBUd4ChMcVbRgNAU4PJ9bOz7DkeQlXk8qodRyIEdZfbr0tP2NbF+tcwBVZ+PZoNLL02zf7WsL//\n7YfC3LckSTorY5eFkG6HkZBDKqOQMyXIWFVu89U/GmTNjiJ+vSPK4bYgJ88G/DGoKOMVmtVgcv/S\nONc25y6oa6H2t4ZwXRkjbToCRdjj/eCCY1uoqjbeR0Kg6SEsM4ttmZhmlr6OA+iBCFZ2jPSeE0Rv\nmQ+OhW1a8p7du71xZfsVFsYcGMXqG0EoguDMOpyMgfBc2FxXxsx6Q0NVid40h/CCRrKnusme6MQe\nS+LGU+NOekGd8IJGIjfNJnu4nczhdszeYayBMYSm4BgmQiikdhynaMX1hMJBgqGQjGgzLZInzzJ2\n4BTZ/mF/DLq4uKaFa8pOtOMpRn65Cb2mnMj8RgINlTJG17QwOvtJH2nH7BtFCIg0VFNz3xKEqhA/\n2o6G4JprrmH79u0SsM1kAYEIBcYnOPL7PF8i3/4T/yTG44ltF3s0wejr2wg11RGcMw2tNCbbM7/A\nxugcIHOkHeNsv2wLRSF9phcch8CMWvSyGNlT3Rid/Rid/RP2r4SDROfOoPLGuajhID2rNzPU2c9r\nr73GY489NvkAu0IpisKnP/1pOjo6aD19iqGtB6n7+DLUgs+/spvmkuroJbXvFGpxlGCjfG4lNPWi\ncF/ubB+JjQcQAsoWzfVfU7Kwifj+k2zbto1PfepTE+LJLqePfOQjnD59mm07d9D9ylqmLL+BotnT\nx+OMATUUoGRhMyN7jjP65naK71qEXl6Ud6qY/H7IdV0G1+8l19HHlOJSVq1adcVluqqruqoPpjZs\n2MDw8DBCCIqKiq5oAaOmaZSWljIyMsLGjRt54IEHKCsru+z7PshauXIlGzZsoKenh6ampgsAr/r6\netrb23245/xnQY4zvkC5UB6UAvDKK6/4zkyeG54X0ei5Ul1OiqJQW1tLe3s777333vtaFLt9+3Z+\n9KMfkU6nfSelUCjkwyceSJZOpzl8+DC6rvuuWR4s5LlRTfYsrBBO8faRyWQIh8OEw2GmTZtGQ0PD\nhPd4LnEeMBUKhSguLubRRx/1nwWWlJRw/fXXs3v3bjZv3sy9994ro+KTSR/2AXwnLM9dzYOVPMDJ\nkweWeE612WzWB+Y8J60rcbkqBL7ee+89QD6P9LRs2TJ++tOfoiiK7+ykaRq6rvsRpB4Q+vLLL/Pq\nq6/6TmmFcFohcKXrOrW1tdx3332k02nOnTvnOyfu3LkT27ZZvnw5n/jEJwiHwwwMDPDss89y7Ngx\nH1rxwDSvb1evXu076M2ePZspU6bQ19eHoiikUinf8bDQLe9S8mDF4eFhwuEwb731FtFolKamJpYv\nX87w8DAvvPACbW1tWJZFdXU1gUDAX6Dg1au/v98/XgplGAa5XG7S+VgPQk2lUlRUVJDNSndw0zTp\n7++/4PWX6levroODg9TV1fljymsLy7L8cVIIuXpRtt641nUdTdOor6+ntrbWhzq9486rt2maE/Y7\nmQqhNg9GtSzL34ZhGBMWXeq6TiQS8eHWTCbDkSNHfCOY48eP09LS4h/jhS6YXjkLo8k3btxILpej\nqanJj+s9H3z0VFZWxhNPPEF3dzdbt25l9+7d9Pf3T6hnTU0NH/vYx2hububVV19l165d7Ny5k337\n9qFpGqlUiu7ubjZv3sySJUsIhUJ+dPzw8DDr169nw4YNvkOiV95UKuWXZ+/evXzta1/jpptuYsWK\nFdTX16OqKvF4nG3btrF+/XrfofKBBx7gnnvuAWD9+vUAzJo1i9OnTzM4OEgoFEJRFIqLx92xL3U8\nFB43njw4MZfLsX//fnp7e1myZAmLFy8mFov5rrnZbJZt27axdu1auru7yWazhMNh1q9fTyAQ4O67\n72ZgYIBjx46xefPmCftwXZfp06ezcuVKlixZwujoKN/85jc5duwYe/fu/a25mEgkwpNPPsm3v/1t\nTp48ybvvvsvnPvc5/ziIRqOsWrWKt99+m3/8x3/kL/7iLygpKUEIcdEF0o7j8OKLL7J//35CoZB/\nj6EoCitWrOCll15i7dq172tBgRCCJ554gm9+85vymeS3v82f/MmfMGvWrAnH+Q033EBdXR1dXV18\n73vf4/Of/zyhUMh3GpxM8Xicp59+mlQqRUtLy29kyHRVV/W71O8c8Mvlcrz11lusWbPGJ23/sySE\n4OjRo/9p2/swyXEc1qxZQyZnEWpYdkm4r1C/DWT2QdWCBQuoranm9JluzLGzE6JXYRJgQS+SQBFI\n2MJ1UTXVB8U8WZlh0p1bUewcA4OD9G/Zjm27OLaFYxu4gVKyogwzniAYDBAIBi87pfWbAA+mafKD\nH/xAwpw5C0eNEKiYQyBWi1Al2Jce7sAZPQlWOu+qhnwgq8rYR+G5ll1MrpwcUhSFdCqNYXixk5p8\n3u4Y+ICHFpVOSdHp0n0t2w/db46DTpE6mLJoHFYKV+Whrnje7YtxsEkL5yG3vBNeIfBUKKEgFA03\nv4IfIftKQU6IabqGqipYVh5UUi5S1/z2C50LPYizbloD8+fPl9vNX+SNJbO4wXLE+fAVIh/d6kDv\nOgmCeQ5wSlC2T2w66KXSmc8DpewcRKtl3Ky/PQfOvIKw0zK6M9IAxGBor4SyIA+YNUlALg8FkumV\nAKCVwnVMCMQQtoxs8h/Sh6vHy5v/y8Ul8CGx0BTcURcnF8fVolB+vXTZ610nwbHqZRI4S53NjzlL\ngot6VJY/VJUH0wxvdiYPrOkF/VA4nYV8nxbNu75Nl+MlOyBhvLAHV10KVHQmjh+hSgBu9Ij8v52R\nrnKR+vwxouU3k4/adQz5fg+sq1gEyn4Ya5WOfqOH8xNEBXYqkIdcZ49HUE/Wxq4jYUB/jOjjbe3N\n/Dq2nCUtrKcSyJ+jHFmG9n+X48YxoX+bjKGONUoblQldKfxJGdd1pBvf8P5xl0EcORYvUN4SxHUk\n0BibKY/v1BnIDEiIDyFd/ormyBjqXL8E/DzHQSUAahCMfHsO7YNAEcH8Odd1XYyhY+QGj+HkEuOt\n5SKjq1xbHm8gx0LfFjmuiptkRPOE8X8K7DQC0EtnEJl6O+D6wG5DQwOmmX+IYGfzMHThed6d/JDw\nzp8TYpy9mz0FEa5CMcZw+7fhqhHZB5E6WW8rdQH8KYpmQnQq7uBOcNMIXHAVhBYeP3a8yGcthhtp\nQInVEiyRN5r/2Z/ZlwMfcGqjAAAgAElEQVTnAhVzsVL9mKNncHrWyuM/Ok02TB4CH2/CySFLyC8s\nqJhDbugAGzdufN+An6IofPGLX0QIwbZtO8h0bSTbEyZQMQctVodQdFzHxLFNWQ47hejbhFa1mHBJ\n86RnCdd1MMc6yHZvI6y73HrrLVcntK7qqj7kWrt2Lbg5ll5nUVl25QvHggEJmv3o1Szvvfcet99+\n+xVPqnwQpaoqK1as4Bcvn+M/1pnMmWFc4OL2+QdMvvmjAPtOhHjmpTIee2CUSMjFsMCyxQWTWQdO\nKvzzSzqjCYGiWKTi3VSW2TTWObR2KDg23HpNGheDVMr0I1bUi12H5xUNwy3XWGzan2XdunX80R/9\n0WXr19XVxd/+7d+SivdRXZ7hnlttbl1oEy4wGxyLJzjaLth6IMLBUyFyppBAnwZFkcmhvkKZecgR\nIJVKARJSCwWhvMShb0iQdUTe1UpeEwZ1+aD8dHcAF0Ek5LDyxgQrF6WwHYGb98CeO0Nedw2MyKha\nAFzpfuc4EAs75CwZH2zZYNtiQmEF43BiOivfk85JGMswBcm0gqZq+ckBk1TWJRqevL4DI/kHthF5\nvBw8qfDWFh2U8ITJLIClS5dyuu0Y5cU2iTSEg5DOyMukoC7r/dK7xRxqC6FrLtGQg6KAIqRL3+nu\nAANhh6XXSdht0/4IR88EWbMzxuc/PsoXPylXCgkhGEspfP5btXT06ry4poQHV4zx7GsVnOwMIAQs\nbMqx4sYk82fm0PKX8f0jKmt2xth6MMJIQsV1BP3D8v7V41+KIo7fhhTAkRR+L5CqSoBTwpMutiNY\nPC/DH987QjAIAyMaiiohw6XXpllyrbwWVRQIBxwcIJWRO0/nFMhfgqqKS0B30TQZjQuQySoXXI6u\nuCnFnuMhjrSHWHptil/viGE5MLV64n2yd5laeNrKmYJMTvh/UwTMbZRu5h4YuulAlBvnZqkutzAs\nCOr4kJ+uyX5LpBQ0DaJhl4XNGTbsi5AzJJh45LScRJ1ZbzB/Zo4VN6Z8V0q/bOe1rffftXtkJGxJ\nzGFgDPTzJvRcx8Z1pBufVy0zl6G34yAD3UfBdcmkhgGBcF0yB09jdA4QvnYmwZl1KLrmN4hS4E6U\nSafJjSVJrNuHY5gEG2sRuryXd+3CEgiEkp/Aybv+KZEgkWtmEp4/A3s0ycgvN+NaFrFb56NPrcJN\nZYiv2YPVMySjgAUIVaDEIjiJFG7GINfRi7L9COX3LkWoCtm+YXpWb8JKSScNGTc8BaFrOIaF2TOE\nk8wgHFeCi7aN1TdCvG9koklevpG0oE7xwibKFs/HcmyMdJrRA60Iy6GmpkZO6NkuVv+ofEN+4v9S\nmuDI532zLFzLAgSRlmnoAZ34kXbSh06TOdaBVlkqY4wdB2s0iZPMO4WoguIV16OVRBl7dw92Io3V\nM4iTSKNEQwhVRasoRomGUII6WkkMraqMYCjoO9ZVLr+Bs//2Btu3b+dTn/oURUWXpvlt2+b48eP0\n9vaSy+UIBoNUVlYyf/58VFUlGAzyla98hX/4h3+g/WwHZ194k2jTVEoWNhGqnUK4oYrK5TcwsHY3\n8fX7CPVOI7ygESUcuuBawU5nyRw5Q2pPK7gupdfNpnjeuBNToKyYYN0UMv1jnDhx4n27+H3xi19E\nURS2bt/O0JpdDG0+QPH8mYTqK1F0DSdn4pgWrmnh5AzG3tpO6c3zCVzTPOk2s71DDO88Qu5ML0XB\nMF/60peoqKi44jJd1VVd1QdPtm2zbt06DMO4YrjPk6ZpPhC1ceNGPvGJT/wXlvS/Xo2NjTQ1NXH0\n6FHOnDlzwWR9KBSipaWFo0eP+k5vhS5hwATwzXVdcrkchmH427Asi1mzZlFRUcHmzZtRFIXS0lLf\nKS0QCBAOhy/bD6Wlpaiq6js2tbS0XLZ+69at48c//jHpdJpQKER1dfUEZyLHcRgdHfXL7NXPg5OK\ni4sv+UzRA55AAlie+5EQglgs5ruBqao6AQTy3PQikQjBYJCGhgY++clPMnv2bAzD8J35Wlpa2L17\nN+fOnSOZTALjUJV3L5nNZjFN0wfSCuXBdKqqkkwm/ahax3F8l7JgMOjHD3vXAJNpYGAAkKCO67r8\n/Oc/p6uri5KSEm688Ub/dcXFxTQ1NXH69GlKSkrIZDJ+bKqiKASDQTZu3Mgrr7xCb2+v797myXOC\n84A8x3HIZDL09vbyxhtv8NRTT/mJYUIIXn/9dZ577jneeecd6urqqKmp4V/+5V8YHBzEdV0qKir8\nfveAsLGxMbq7u7FtG9u2MU3Tf72iKBMAO69NL3ct6LlzefVRFIWHHnqIO+64g0AgwBtvvCEXrTjO\nBOdMDzo8v9/OH2deYk0heFaowrSccDicvz+Xzn+X02SuYplMxneO80BcDxotdCIrHNvevrwyyuQz\nCW+Njo76AN35YN/lVOgYGAgE/LJ4oN9k4zaRSHDo0CG/THv37vX/9vd///fccMMNrFy50o+5LnSe\n846ZVCrFnj17WLNmDblczj/fnw9gesCi1w6u69LY2Ogf1+vXr+eVV16hqKiIRx99lLq6OlpbW/nu\nd7/LwMCAf94Jh8OUlZWRTCZJpVK89NJLxGIxli9fDkjzon//93/3zyO1tbVMmzYNTdMYHR2dECme\nyWTQNI0dO3awY8eOSdu1pqaGT37yk9x4443kcjk6Ozs5fvw4IFN+bNumvb2dlpYW/1x3JeZTha9x\nXdeP31UUhccee4y3336bM2fOcO7cOV5//XWampp8h8v29nYf+K2oqOCpp57i0KFDvPbaa6RSKbZv\n304sFqOqqoqioiIaGhqIRqPEYjEaGxt991Rd1/2o7J/97GesXbv2igC/dDrNoUOHGBsbw7IsotEo\nM2fOZOrUqQDMmDGDL3/5y/zTP/0TW7du5dChQyxfvpzly5dTUVHBQw89RFdXF/v37+fb3/42H/vY\nx1i6dKl/vBQeZx0dHbz66qvs27cPRVF44oknqKwcN9pYtmwZL730EocPH75iGN5TWVkZf/VXf8V3\nvvMdOjs7+da3vsW0adNYvny5H1E9OjpKUVGRf6x873vf46GHHpr03suyLPbs2cMrr7zCwMAAVVVV\nPPHEEx/qZ8JX9fuh3yng97Of/Yzvfe97/gXbb+vWd1XjOnz4MD29fThqBL1k2uXfUKDf1lXngyZF\nUbjrrrukI1H3VtRg8QXAYyGw4J57T0auRupwHVNOUBTAea7rYI52kO7agmulcQGDGMGKFgKxWrK9\ne3Hi3YiiJlyhYlk2tp3Bsmw/fvJier/Ag+M4/OAHP2Drth1kTEGoYdkFDkYAYb2UZKQRN92DGN4P\nViLPLinjbnCXkOdi6DgulmXKn4WCFq3EsU2c7IiMPrQyEq7JDkjwp1Cey1lspoQt3LxrnQ91WZKv\nUVRcNYBrpQELd4Jr2Xn0iFDG4UQvGhdkzKjr4JopzEQ3WqyOYDCIbWfy8YzB84C8vDK9gIx1hEu7\nOEl7agUUDdfOyTI48oE2SkDCdcN7pDuc5zyIkKBYtl9+efBX/X3ScW1wp4TiACpvkyCWUGVc7dBu\nhJ2Fvk0SqjNGZN+V3wDhurxViBgHNbWojL7N9Ej3QGMMOUOUB7RgPEZ2vEHP7/nx34uCv+chKBeg\n+o7xaOU8WCktAuomAoRexK+/6fOgM9cGOy23KjQudKwT0i1x5OC4C6QX9VsY3zyh3AX78qHBfL2F\nNj72tJDsu+H9MnI3WAauOg7kCS8e1x0Hwcy4BDeVgBzXdk7GBYMEOEOVEJslobNJD/q8RQhCOrlZ\nqXy9LVmG8RMOflSwk3cQJA+XxVtlmV17IhSoyMhYBnfJiObiOYjiWQhFRVEVVEXN3yAqJPtPYPXt\nlvGvAMXeAyMx3u7e/73j1iu/GpKOp9F6ecz3rJXtbMZhaKd8jecUKFRZr3CVbJP+HUC+z3s3YgRu\nRyuqJ9O1RZ6HQTrDFTdDpBpQcK0MItuPSHWAmcyDxXbeRfCg/CqQAJRgEYEp81CKm0hncljxM7i5\nBBYKb7/99rj3p52V0KmTjyu/1BT/BbOS9jgQGSxHn3o3YnA7xtBJ2R5jR2U/cN778udEt7hZ/r7q\ndnl82ynZhj5saCL0GBQ1SpDXNlCU8fK9n89sx3E4fPgwGzdupL+/348QqaqqYtmyZSxYsOCKwLlA\nxVzszDBOqh8GdkhQtrgZcQWQZeHNkBarI9O//4pXWJ4vXdd5/PHHmT17tozy6OklN3SATP9+PPsa\nVRXEokFUJUQ2Z2AP7iA5cvACENBKnsMYOoFiZ4gGNW699Ra+8IUvfOgXOVzVVf0+K5fLsXXrVnCy\nrFhkX/4N5+nmBQ4/f9ug48xp2tvb33c00gdNK1as4L333uN0t8k/v+zy+EMmgYJLwbpKl69+2uC7\nPwuwrzXEV75Xxa0LMiyal6Z2ikM4HMIwBLuOqKzdpXKqSyGVESgKLJ6f5e5bbBbMkgDXU/8rwFgS\nll6bJRx0yRkutu2STCSJFcUuC/ktnu+waZ9JR0fHZesVj8d5+jvfIRXv5ZqmDE88bBKaZJ4mHArS\nMj3F/MYRdhyJ8MKbJSTSgkRaQRGX/OSX8by2XCBhGvKaMhRwyRryvQFdUBJz+fzHR+jsC7DjSIix\npLw211SoqzRZsjDNdbOz6Bq4rsB2XNIZhUjIIZgHunKmXDClKAoVZQoCwZmeIIoicB3vIbwEUMm7\ntEk4TLospjLjaaOJlITZsobg6Z/qXDvHYdXiImZUj2JaDqm0SyQsIa9CbdwXAQTXNtls2a/w3GtB\nHFHERz/2cWbPnj2xTcNhQqEgqqJgO4JEGsAloLlsORjhhbdKMC1BebHN4vlpbr0mQ3HEwbKhs09n\n7Z4oZ/t03toao6Ha4iufGmTzgSi/3FDEj18vpbzYYu4Mg1RWOvHVlNt09mus3xNl68EwjiOoKLV5\n7IERptfISZN0TkHkQFVdwkGXjy5JcNfiBC++U8q+1jDbD0cQuKiqbCjTEuja+PVZ4S0PFKznEONt\nJYSEXnGhrMjmsx8d9UzJCAfl1WU6K4hFpOud48oxlMgUuAwXbFuu5RGYtnSEjKfziyp09wI3vrnT\ncxRHHeJJhfuXJtiVdyi0HUhlJVSqFRxejovvgmh7a/TyAGYo4Bam03JTS4bdx8L8yy/K+cInh5lW\nZRHUPfcJCAZcDEsCgpYFrWcD/Oi1MmxHcM+tSe67LcHX/1c1ibTK1GqTP7lvFO8yqrAO3nIl/5La\nhVNdOsfagygKjCVVEAGixWXkLOmcJ59vuFhWDk2XENVA93FOHfw1jm2hqBrh4kqKyuoQiopt5ogP\nd2HEk6Q2HyVzoI3a+28nWF0unSuEQOQnPZWhJPE1O7DGUuC6Mto3n9U9wd3DcSWkVyChKIiAhist\nIhGqwDUcGaG7/ai02FQVUBWEpvvOak4qA6YNqsA1LDLHz9KVfI/IjBpG9xzHsWzU8mKi184i1FQP\nQuCYlhxIjgP9cZKH2sh09uEYFsVzZmCnsljxJI5hogR09JIYxQtmEmqsw3RsEikZjZXadxJzJAGm\nxetvvCEnWV1B9mwfCLCTGZyMgRK+/HOi8cZxcQwLezQJqkJRUwN2PI0IyPsZoWlYg2PAmP8WtThC\nuGU6gcYalLzzX8k9ixh7eyd2MoM7lkLoeaeU4ThaaYzI9c3o06rAtGXscl56SYzw9FoynQNs2rSJ\n++67b9JiJhIJNm3axNq1a+nr78d2HX9ZoSIUKisqWL58OXfccQelpaU89dRT/OQnP2HHzp0Yp87R\n03oWdA0loPv94RgmmUPtZI93EpxRTXBaNSKgSxfFniFyp8/5J+aym+ZScduFUbd6SQyzTybZvF/p\nus6f/umfMn/+fNasWUNH51lSe1qJ7z6ef4VAVQRFkSjBQIBkOk1q+1Hiu45R1DKd4JRShKZip3Mk\nT3ZiDIwQUDQqikr48pe/zLx58953ma7qqq7qg6WDBw/6z1yuxLHsfIXDYRKJBOvWreP+++//0D8j\neeCBB/yYx0Ag4IMMnuRiYJOTJ0/6cbQw7t4XDAZxHMeHzDwVFxdzzz33+O5RfX19bN++3YfIPaDM\nA+u82MuLyYuXHR0d5cyZM5cF/A4cOMBPfvITUqkU5eXllJaWXrB9DzhTFIWSkhLGxsZ8FyzPXe1S\n8pwKvWhaIQTRaNTfpqZplJWV8eUvf5l3333XB3BAjqOWlhaWLl1KY2OjX7ZCEM4D/bLZrO80VlFR\nQVtbG/39/dTX1/v9oKrqhPHswSCGYfiObiBd3m3bZmhoiD//8z9nyZIlLF++nKKiIj9OsjDyFAqe\nIwBz587lJz/5CRs2bEBVVR5//PELjiMPxvQcuzwgTVVVfvjDH7J582bi8TiZTIaenh5GR0d9cKy8\nvJza2lrf5c9z/7Msi76+Pp5++mm+8Y1vEIvF/Lp4zmT/+q//6gN60WiUadOm+VBdMpn0QSxFUWho\naKCyspLOzk66u7snAF4Xi+ouVKFzY+F3DxZbtGgRd9xxh/96D2INhUKEw2E/qc8534RgEnnb1nXd\nB/3OdwTz4D7DMGhpafGBtvOd+SbbbuFrCuFXrz6eNE3zoUhv/16/FtbFa4NgMMjChQsJBoNs2LDB\nh8Qu1sbnl9EDDD3XTcMwJsSBesec4zj+83zHcdi1a5d/vlJVlaKiIj8O2zAMkskk+/bt4+jRoyxY\nsIAvfelLPvjrld2DuH/xi1+QSCQIhULMmTMHYEKcu+dEer5bpq7rfpkrKyv9Mfrcc8+RyWRwHIdA\nIOCfK7xx6oG0qqqSSCR49tlnOXnyJIqisGnTJkAmNK5atYrZs2f751HPmfLAgQO888479PT0YJom\nK1eu5MSJEyQSCf+4mDVrFitXrmTmzJmYpkkikcAwDJ5//nn/XPH666/7dfPK29XVNSlceql+NE2T\neDzOyMgI4XCYm2++mfXr1/tOcblcjtbW1gn9PnfuXJYsWUJLSwu6rlNdXY2u6z5c5rmP9vf309bW\nxvz583nwwQeZMmWKHxftacmSJbz88sscO3aMc+fOUVdXN2l5Ozs7Wbt2LVu2bJnwOeZp1qxZrFq1\nikWLFrFgwQK+/vWv8+yzz9LV1cXq1atZvXq1D7Mmk0lyuRypVIqf//znvPHGG9x2221Mnz4dXddJ\nJBLs2rWLtrY2QHIWTz755AXzV7FYjHA4TCaTIZPJ+K6tV6rq6mq+8Y1v8MYbb7Bx40bOnj3L888/\nf8HrSkpKcF2Xc+fO8cwzzzBlyhSWLFlCeXk5ruvS39/Pli1bfMfH6dOn85WvfOWyC8iu6qo+CPqd\nAH6GYfDkk0+yadOmCSez/0wC9vcdFty4cSM50yZQMecC2Oty+m1ddT6IupwjkRCCyNTbSYOES/o2\n42phRKwRragO1RVY6bgPALhGEtc2EIpKaPoKAqWN/rZcKw8AResQWggcG9cx/A/LSDRyyQmk9wM8\nXGkMs6ZrqJqGFamX8FHXm9IJK3UOgpdZjZt3MRRKflUOIIxhEAIlWAy5OI6iQfVShGNK6MpM5iNm\nNVw1gohNR4nWIhSBbdn5Ve9GHkSS8KCqhygqK0MAqdFSDGMUUj1QHGF8WTh5VmwcmHMdKx/hW3DM\nZ/sBB9fKkTq9Jg/5zEUPTcc0TVw7h1ACE538XAfipySIUjYLY7T9ki5OoXx8DqrAQkKQgCzXwFYZ\nj4uQ7V3cfJ67WN7By0xKJ77sgHTtq1kFve9JyC80RcJ/mR4JyriuBImchHRKU8JQuVS6pHnlh4kQ\nnVCkI12gFHrX56FJgQ+CXcwRcXwDBe1a8P98XYVegqsXXNzoMQkeZvrkuHLt/GudgnKJicBjYQRs\npn8c9LOz0sGRgvNXuEZCXHYG6u6UDoauI4FONTwef+oX1Rl3f/TaQwkwDqx5TpFFsuypTujflHck\nmwGqPg75eZG5rg2pcxKsszMSNCyTD+lFbhDXTEiorWS+BAXPnyUcz5SSP+aGJYjnN7nIQ7DeLxz8\nSGrHzMN+Lgxsk+PEdfJjrEnGxHoOftk+GTtspRDDe1GznYQblqBoIVwnhzVyikweZgooJqbl4IoA\nqNp4OaFgVnOyseH9VwM1Kvftuc15sKZv6ebI9kp25sttghpG2BmEnSbXuYG0bUt3SSUoI5mj9bII\njoQERTBEoKia8LRFZIbaMHq2g5VGi0xBBEtwzaSMIld1lEARenkzjl6BYRjYqRSuMQoDexCOQdbQ\n6e0fwrHyrox51zxyA3Lsqld6OeTKMZYdkEBuPv41mx0FNYgonSedBvPnRDfvwkdspoRAXXP82A2U\nyljfge0y+rZqqTyXxU/imkkY3IvI9EPF9SjK+ITblXxmXy7GXW1tY/uOndTV1nDnnXdy5513Xh6c\nU8ARrgQtLwNZBqfMI1DRcuHqWkXHdRwGBwd55plnLgkdXkwexL9q1SqOHDniw4teRIi3nblz57Ju\n3bpLgoBRXaVuWoO/vQ/7g+uruqrfd/X19ZHLpqiZYtNQ9f7vDXUNrpvjsOWgBM0+7IBfLBbja1/7\nGt/+9v9k34kBvvUjwUdvt7hxruMDQc3TXP7H/2Xw//6HzrF2jbe2xXh3V1S6imkSEkLoWI5GMmUQ\n0h0+9wmDe26dCFCmMvL6qSRmEwpIZ7lUxsWybZLJJEVFRSiXuEeNRST1463Ev5TWrFnD8FAPs+qz\nfOmRidBiofSAjpJRsB2X5TekSWcVfvJ6CfGUwtEzARbMvPDBJkguI5XBN2p2XQdVkY5nu45Kt7Ky\nIod4UhANuzx6T5xH74njOJLF0TX5PZ6S10TepKBhGFg2pLIKmZz8WyQEZaXS1fjma+DFd+BER4CT\nXTpVpeNtbJouAV2aO1sWJDP4l126JiNwtx6MYFiCmnILyxYcOik4dDLIXbeUc98tw5i2QzzpouvS\npU1VYDSpsPt4CMMUbN6vMJwIghJj1Z338OCDD17QNtFoFEWoJLNBgsGQnIwDdhwJ89O3SnBdwb23\nJrnnliRVZfa4c5wCTVNN7rghzamuAM++VkpXn8Z3fjaFpz43QDYneGt7jBfeKqV5qsn2w+F8RDFE\nQhJ6M0wJFTZUZsH1Uz9xXbC92GIXXAQBHT7/iRGef8Nl2+EImaxCaZGN5cCZngDzGidzrpbyTZu9\ny9r8Prr6NRxXcG2zdAz0Lp0rim2CukvvsEbvkEZ9pYVhCtLZcUBTV/NufQVlNi0hHRctOHAyRM4Q\nVFdYpLIKsbCMynWRDoLFUYd4SsGwBNfMyrHjSJhURsG0BJYl5C2Pd/vg5G8j88UP6hJ8VPK3FMm8\nY2Q46PLYJ0ZIpFVOdAT47s+ncOuCNPfckqChSo49TZXjpP2cztaDEXYcCRNPqcyoM/jE7Ql+tbGI\nrKlgmIJdR8P8x/piHlwRv2Ctk+8umP+nu1/j+y9V4CKoKrPoHIhSXT8LVQtDPn7axZGVcGwsM8tQ\nTyunD8uYtLLKGVRNXUDJlOloesCHAbOZBCN9p+k7e5DkaC/dL66hcuVNRBqqcUyLbO8g8YOnsONp\nQoqKqunkHGucknXci8bTBoIBcjlDwoeA0DWEk1/AqKq4Zn47Qna6yE+eaRUl6HVTsMYSmB19uJaN\n69pgWDh9Iwy2d0NAJzx7KkXLFiIURYJkzvikaqSoiEBFBaVzptO7YQ+Jfa3ED7dR94llFLXMINs9\ngDGawDVMcpksmfYu9OpyXCFdDdMHTuHaDrHmaeSGx3AtA9ewcBIZlFAAN2eSPXGWyHVN/j4vkOtO\nWPPkWjZ2Io3RPYiia8Sm19H583dAKJT/we1o5UVYQ3GcnCnbIxRAqyxBIHAyOX9Q6JWlxG5fSGLd\nPtTiKMX3LMLo6CNz5AzWaJL4un2Ezg0RWzyXwHmT68XzGxno6OXgwYOTAn6HDx/mmWeeIZ5KYjg2\nSlGYyNRqH9bLdPXT2d/L//fKy6x+/XUe/9M/5cYbb+TP/uzPePjhh1m/fj0bN24kHo/j5hxAIVIx\nhZqaGg4ePoRtWhhn+zHOTnyOJ4QgOrOekutmE5lafUG5ZDO62JbFO++8w+rVq0mn076T0s0338yy\nZcsmxISdL0VRuOOOO1i2bBknT55k06ZNDA0NkcvlCIVC1NbWcscdd1BfX8/u3btZu3YtR48dI3f0\nLBm3A3mmFKiKQnVJOcuWLePOO+9kypQpF93nB1XxeJyxsTEMwyAajVJRUfEbAU1XdVX/ndTR0YFl\nWRdATFcqXddxHIfh4WESiQQlJSX/BaX83WnhwoV85jOf4YUXXqC1tZXR0VGmTZs2oV6NjY2Ew2GO\nHz9OOp3243q9WFrP2VzTNBzHoby8nKeeeorGxkZ/Gx485kFbnhtiMpnEsiwymcxlY9m9CFAPkruY\nXNfl5ZdfJp1OU1paesko5WAwiGmamKZJVVUVXV1dWJZFcXExk0VNevLAFw+CAekuVlQkY99LS0t9\n0KOlpcVPQfIAJ1VVyWazZDIZFEXxITbLsshms37kKkhgrrRUzncsXbqU3bt3s3//fpqamvzyOY7j\nj2tFUXxnPxgHjhRF4cSJEwghqKysJJlMsmbNGjZt2sRjjz1Gc3Oz7wAWCAR8yHHHjh2kUinC4TDf\n/e53fXewxx9/fFLQMhKJoKqq797nOZ49++yzbNu2jeHhYU6cOOG75nkSQhCPx+no6KC6upqmpibf\nmU3TNEzTpLOzk3/7t38jlUpx+PBhvw09VzgPrAyFQj586bWPB2J5+wwGg8ybN88HLz3nQA/Ge78x\npCCfMaiqym233TbBeW/q1KkEAgFKSkoIBoPSNTvf1p4897dCeNCDzoqKivz0gEvFW9u2TTgc9iOR\nPYe9yco/2e+8enkufR5c541FD6grBL28Pi502gOYOXMmFRUVbN261Xdj9Mb5pdrVq6PXl14dFEVh\n9uzZE6BIr728Y2bXrl2cPXvWd4ArKyujvLx8gsPiyMgIIyMjDA8Ps2fPHv76r/+axx9/nJKSEpLJ\nJHv27GHLli3+Ns7i2g8AACAASURBVAHfLdCDGQvl/ezV3wOhdV0nHA7748pzBfTazvvSdZ158+ZR\nX1/PgQMHsG1bzt3YNqlUirVr15LNZikqKuKzn/0st9xyC67rymvw/L5VVaWmpob6+nqWLl3K008/\nzfHjx1m3bh3f//73CYVCHD582Hem6+rqQghBTU0NmUyG5557jtOnTxMMBrnhhhs4dOgQqVSKdDrt\ng31Hjhyht7eX2trai46h89vGMAx2797tg6fd3d309vZSVVXF3/3d35FIJOjr6yObzRIIBKisrKSq\nqgrLskgkEj7AfNddd9HV1cWuXbtYuXIlt9xyC5s3b2b79u0cOXKE48eP85nPfIbrr79+AvwaiURY\ntGgRW7Zs4eDBgxcAfq7r8otf/ILXX3/d/11zc7MPB8fjcQ4cOEBbWxttbW2sXr2ar371qzQ2NvLN\nb36TkydP8t5777F7927ftAskBGcYBt3d3cTjcdatW3dBW4XDYZYuXcpdd91FVVXVxQ4JcrkcTz/9\nNCMjI35kcXV1NXfccQc33XTTReN/QZ6PHnnkEf7gD/6AXbt2sXfvXuLxuA/Vz5kzh6VLl6JpGuvX\nr2ft2rUMDg7yq1/96oJt1dXVsXLlSm6//faLOr1+UOU4DkNDQ368diwWo6Ki4qoD4e+BfieA31/+\n5V+yceNG4OKrAa7qt1N/fz+27RKI1f5G7/9tXXU+aLrSKD8lVAbKWYSZRhgGSvwIJE+QKQAAdNfG\ndA2EGiDW/HG0yERAbhz0yj9EUlSECOLacpWWpmkEgxdfDS0UHa7g5u39xDALGHew06OIsgUwfAA3\n0YYom8+kbnYAjoWbj3V1Cpf350G4QHkzxvBJyAxLOKtsHkQmjjnh2BKGFEKS7q68yTUMQ0bHproB\nF0UL4GTH5O+EAnYON34SUdRIIBjy7c1t25avOd9FywPHXGRkKAoUz8TNDmDnEmS7d6KX9qOX34hp\nyTLhiHFYMNkpYShVI9O1DdXJXtLFqaqqCrW1DcUeQQ1XyBUfLtK5LNUp4zjLr5dxsorOOJ2IhPdK\nWqRz22D+9QCVSyTY1LcZhg8gxlpxLRkBNtFtzwFsGNot4cHiZnyIqhBo8xQoH9+uUzB56YF4VyoP\n0ssOyH0EvTGXr1tshqxL4pSsn1BB2ONAm6IXgH0F/SYUOdOXOpMH/LKybhWLpUuh9x7vmHJNCZWF\n62Qb5gYkTHdRYFGRMKfvxFdQf5AOhJU3y78l2/OOZIclYBmukft1cnKsJtvzAGK+HSP1ctzFW8HK\nyhhZKy1BzSmLZbTwBJDU++6M979jgl4CxigEiiFSMxGILHyjlYGhXXn3QB3Kr4NwvXQh9FaEOTZu\nHvoTaengaKcHSJ38FYoaQCjKBJjpzjvv5NVXX6WrZxDXsblg/BSWQ4DAu6l3AG9m0hh3v7PMAtiy\n8Lhxx2E6ock2xaU0f7Pf1zeAq0Wkk12gBGzTP2RUTUYlBYIBBBCpbMZRI1hda7FSfQRC5QSqr8Mc\nacPJxbEzw5hdO3HVCG5kqizb6AGElUHRYwSqryebSeHGTyPMhCy3a0oosqgJXC3fb5Nd+LoT+9G1\n5bhAoBQ3Qq4fJ5eQDn3lCye0gXALrnP8Y7Hg2IhOh5FDMtraMaF0njyWUnKsuKlOhOugz1gxoUSX\n+sy+khh3K9lDaugEbe1dnHv+p5w8eZIvfOELlwXn2traaD/bQ6BmEXa6H8dITIAsA+XN8jP2IjfB\nueET2FaWcz299A+NXhY6vBzod80111xyUcKVgIDz58//0IF9V+rMeFVX9fsmGU/iErv0vMklFQtL\nsudy1+UfFk2dOpWnnvofPP2d73C2v5d/eSVLSdTkhrk2RREwLTjbKzhzTiUQ0KWjnBrEVVQMB4Su\nMH36dHp7e1FFLw+uvBDug/GIUTMP5ygCYmFIpF1sx8HIGYRCoYuWUz4DnxgJPPnrLDZs2ABulj+8\n++Jwn9yaIBgKkslkSGVcPnJLkl+uj5HKKry7M3oB4Gc7kDPkl6yN60MojgtbD4UYGlMpiUHzVJeO\nHoXDbUFumCMnLZT85S1IKErXXExLoAiFSDSCHZawo+047DkewrTls5F9J+SbhsekU1rWEKzfE+VT\nd6cIBAJ+VFDWcHFzslwi3+bBgAQPbQc27ouiCHj0nlFaphtsOxzltY0x1mzXMcwKHlo5hmWZGKaL\nYcp7vR+/XiId5xyF4VQxZVOquP/++1mxYsWkn+WzZs0CJcCRNpVEWiOgCvqGVH76tpyQ+8NVYyy9\nLu3H4F7QJwKapxr8j88N8P88X0lXv8aPXy/jsQdGeGtbjBMdQc4N6CiKy/yZWZqn5tBUMEzBqa4A\nR9uDHO+QXw+tjHPfbUlEvv6GKTAtkeeiXHQN/s/7RznUFpIRucIFV7BuT/SSgF+hXFcCc4YF2w5H\ncBy4bWFq3JEuf0t02zUZ1u2NsG5PlE/fM0bWkBe0ugKRkOMbZHst6rnjBQMu2w6FGY6rmJag9WyA\npgaDRFohHJQgros0hXMRGJagrtJEUcIcaguxeH5GwnwOvkt1njcjoLnoujseRZy/HN19TDqlTKuR\nx89XHx3kudfKWL83yjs7YmzYF6W5waCixMJxBecGNM726f5xoKku8aRKz1CALQcjaIrLPbckeWdH\njF9tLGIkrvLxZXFqKmy/DT0ZJuw4EuHFNSUkMwozag16BzUMU1DfOFcCxYCqBXBdB8eWMUmj/Wd8\nuG/a7CVUTZ2ff50sl23lsG0LRShMqW1mSl0Tpw+tZaD7OP1vb0cLy4lgRQh0RaO+upaVK1cyMjLC\n6rffxB4cgxk1Fw5WWQNAYBj5+07HlV+qwOwZlk5+edc+EdARuoYSkucxJ2tgDY1hDY2hhINEbpqD\n1TdCrqMPciY1lVWcPdeNPq2a2G3zJWDoyHbznG0K3XWEolB9x404hkny0GnOvboRNbxDDoC8O6Hf\n6JoKisDJGGBaCF0j2z9MpHkqwZBG5mgH1tAYrqqA45I51iEjZ8/Pci9ohcKfXNsm29oJrktkVj3J\njh7srIFeVYpeXY4QEKgdf+4gny25uLn8Qk1FoAR0UBRCzQ2kdhzDjqfAsIjdNIfoDc1kW7tIbNhP\n9vhZFFWh/K5bJpRCL4nhwoTJJk979+7l+888QzKXIdBQSfX1c4hMr5ngAui6LpnOPkb3tTLa0cs/\nff+f+OIXvshtt91GZWUlDz/8MA8++CDpdJpMJkMoFCISidDe3s7//Td/Qy4aoHRhE8ZoHCdnoQQ0\ntKIIRS0z0Iujk7YjQOJEB4kjp3FyJidOn5KBCx4MPdhP25l2/uOXv2TxokU88sgjl4Q2hBDMnj37\nArfVQi1evJjFixf7k4ajo6NYlkU4HGbGjBksXrz4sp+9HzTZts2+fft47733OHr0KI53vy6gKBrj\n9ttvZ8WKFdTU1Fx2W1d1Vf8d5cFAv+kzAQ96cV2XdDr9oQf8QD4bCoVCPPfccwwPD9Pf308sFqOs\nrMwHVoaGhnyAzHN589owEAjQ3NzMgQMHCIVCfP3rX58A98G4W2LhXKeqqsRiMd9ByovGvJgKI3Qv\npVOnTvnO54WOX5OpECBKp9NUVVVx9uxZdF2ntLSUkZGRCa/3ALzJIka92GdN07j22mtpbW1lcHCQ\nY8eOsWDBAn9/noLBoA8RBQIBIpEIhmH480T79+8nl8uRTCY5cOAAlmVx5swZ0um0H6nZ2Ng4YY7I\nAylhHOzz4KbBwUHOnTtHMBjkkUceIZvNsnv3blpbW/nnf/5nnnzySWbPni3vrbJZstksY2NjvPzy\ny6RSKSzLIhAIMGvWLB599NELIp1B9m9zczM7duxg27Zt3HLLLQgh2PD/s/fe0XVdBfr2c8rt96oX\ny0WSHfe4x3ZsJ3ZcA4QAASYQEmDIzI8SOgyLBcz3McwiUxgYCCwSfhAYSIFAesPBSWzHvcrdluUq\ny+rlSle6/ZT9/bHvObqy5JIwmfmS+F1LkXN17jl777NP3c9+302b2LVrF9FolAMHDrigxUgSQtDe\n3k4qlWLmzJkuEOlAg6+88gqKopBKpVxQy7ZtdF2nvLycgoIC2tvbicViTJo0yXWacgDKfMgvEAgw\nYcIEN4a6qKjIBUMv3PcXK6sDjkUiESKRCEVFRUyePHmIG960adOorKykv7+fcDhMb2+v6wCZH117\n4bqdn9GjR7vOcQ4sB4NuefnfyWQyrvNXcXEx3d3dbn8YSSO5/DmOl067h8PhIZBfPogIsl+rquq6\nTjpATUlJCYlEglBI3vv19/fj8XiGRFaPJE3TXBC4uLiY3t5ewuEwo0ePdvtOIBAgk8lgmia2bVNX\nV8e5c+dQFIXx48e75xPHedCJonZc4YqLi2lsbKStrY3vfe97hMPhIW0xceJE3vve9/Loo4/S1dXF\n2bNnmTRp0pB2uzDC2YEpnfOZoiicOHHCPWd4vV78fr9732wYBslkkqNHj3LkyBGqq6u56667eOWV\nV2hpaXGhSFVVuf3225k7d+4QKNQBpb1er1uWgoICvv71r3Pvvfdy5swZPvvZz7rryC+vbdtEIhFS\nqRTJZBLDMAiHw7S1tfGe97wHwzB48cUXGRgYcN04N2zYwJ133nnZ6HIYPN62bduGoiisWrWKV155\nBSEEK1aswOPxUFJSQmlpqfs9x+UxkUgMcUJUVZV3v/vd1NXVUVdXx1133cXUqVO54447eOKJJ3jt\ntdd46KGHiEQizJ8/f0h5nNjbCyfLCiF46KGHeO2111BVleXLl7Ny5UrGjh07ZLlMJsOOHTtYu3Yt\nbW1tfP/733ejwp3nDKfMhmEQDAYJBAI88cQTrF27lhtuuIHi4mJisZj795qaGhYtWnRRUM4wDB5/\n/HHa29tRVZXTp0+7+y6VShGNRqmvrycSibB69WpuvfXWS147PR4PS5YsYcmSJRdd5pZbbuFd73oX\nhw8fpr6+3t0H4XCY2bNnM2XKlLccEBePx9m6dSsbNmwYNkZYVVXFqlWrWLJkyWUnF1zVW1dvOuC3\nadMm/vKXv4wI9lVWVjJ//nwmTpxIQUHB1Y72V0jCRgJFe2MzFa8UMnsr6Uqj/CIBnarxk5g+fTqJ\nRIKuri4XACgvL6e+vp62jijBcTcNg/sACYwBrjuY/BBF9SKsrJwVlINURpIE3BT3BvFier0xzF6f\nD9OUMyJEwWSU3sPSFSreBJHaoQvbJsLKizTNV6JZfg8bK92Hp3iidD3sPwlFU4fDgqoGtpy9Yxom\nHo9OMBRE13XS6RR2/AzYWaxEK8mTz4Iio740FWwricfqIRiclJs1og4+BOQ7y+WDY8lzEo7xRBDF\nsyX0lO5AdNdh9DXiAQKVi4fCgpk+6N6FYmdRNUHQqzG6ariLUz5Ecfr0acxMGqvzGHjGym0nzkrA\nTfVI9y1v8cgxuELkYJ5q6R7Xvl5+z38SwuNlu1tJOZtfD8loWm9xzkXOlEBb/Jx0Bovuh0wPlC8C\nVc8duzmA0XWuQ4JmnpAcpTRzN3guiHdhDDIMgZggN6JlyQGDeCMgEKEahgBQ3lLpTmbGJbwWHIMb\nd6r5csteBOJONuf2W5EEm5Kt4Dst6+7Am3buhl7YED0o3c1sB8qaJPuaGyGryroo2sgAq7Bl/UG6\nqSmajEXWAtKFLBuD6CHAcSQTyLhZG8VXggiEJTzXewh8pYiB03IUNzRFrtdMQOc2uf8KJkpQEF2e\nFxwHR2c/+Mog0yv/Fsz1JQcUdtss187xM4NwX8VSCQSCXF7JOVoicrNJAwSLZ5AprCDd+DKqnaK8\ntICqqqphMNPx48dp69iKlelC+Irztu30CUX+FjbCaWPbkCOGwoLOnbhRwW6dq6RjolPn/pODdfaX\ngJGQ8a2KQkFBAV3RfrTyhRAqcU7JqLk4Yd2jX4iFEi4eQzy7ALNtG9nuI2S7j+Uix5XBXiaisr/m\n9QvbMsi07Rk8tvQwdGwBTFm+VJvcD4qadzw46xtyUMg6J1tlPfSwjBlu2y4f0gom4hzvijOK66wu\nPwpY9Q5uR1Fl20UPSTfUYJX8LFwty9m+HpIt2P2noGzaYHtc5Jp9pTHuerAMX/m1GLEmEi3b2bZ9\nJwD33HPPJcG5n//855xv7QBhEapZPuzvF5OwLZLnt5DtPQWKB1uPoJZOuyLo8K91YLgSEPCtojfi\nzHgV9Luqd5Kc84Vx8QnTl5VhDV3X20Fjx47lX/71X9m+fTvr16+ntaWJjXXOfb8CqOj+EDcukg7W\n48ePxzRNDMPA7/dz7Ngxfvgf/0ZJgcl7bxw5+rgwDJ1RONfuccEeRYGAD+IpQSabwef3yevjCDrX\npgLqJR2LAOrq6uiP9TCm3GBy9eUnCsoJT/J5KJWxWbUgwVMbC9jf4OdMi4cJY+TzW9aUrn3ODYVH\nw4WjBJDOwCu7w6SzClYM2qMSxtt2KMDtqwYI+IaXxecBwxysu6bK+Jx0OsOWAyEyWY3OXp2fPuaA\nFSqWrWOYabYdCjNnqsbMCSl3YMBxlZPtKlyoUgCPvVxIR1SjuMBi+oQMmgrL5sapqczy8ydL2FSn\nUzu6kGXzpMt8MpXlsZcj7GsIYFhe5syZw3vf+17mzJnjztpvbGyktbWV7u5uTp48ycmTJ+XL8UQC\nTYUNu+HdiwVbDoYQQuHGOQlunJNEzz3X5Uvk3dqCdGz86h09fOv+SuqO+xmzPUwmqxIK2Nw4J8Gt\nN8SpKjOJxVVsW3535fwEhqnw6p4Q63aGeXJDAYapctvyAXQNdF3BNAXJ9CDwFwna3DgnyQtbIsTi\nGkGfoO64n2i/SknBBdGrygW3fTllDIVDJ/309mtUFJtMGJ1FUQUqg9tZMT/Oxn1Bth0KsnxenHBQ\nuvWFA0P33YXd37Rkv1IV8HlsXt4ZYWpNhgljDBJpFS0HL/bEdEwL6hu91Dd6GUioHDolyzSu0kAI\n6Rioa3lA4QgSAjbUhUDAinnyHt3rgXs+3EvGUNh+WEKMp1o8nGrxoADJtHQOXDwjyW03xXltfxE7\nDnn494dLsG2F6eMzfOa2Pk6e93Km1cvGuiDbDgWYcU2G+VNThIM2hqlwrs3DloMhEmkFBEyuztAb\n0+iNa5iWTU9XO+GSCLGeZoxsCoSNpvsIFVXSeno3CBh9zXwqxl07OKiSTeXBuPKeLxgM4vV6mXn9\n+zi43SDacZqiYJiamhpKSkq44YYbmDVrFpqmcfz4cZ599lmMk80E5k5E0fXBtlPks5CqawjbliBf\nblO2YaJqXga2HEJkTelOV1pAYOYEAlPGSXANsLMG6RPnSR1pxIz2k9x7gtD8yShenXRDM03nz6P6\nvVSuuA4tHJT1yg1qenR92HOJEAIsm9Ils0ieOI+VNbENE60whHd0KYpHxzZMjPYoViwhy2zZeKpK\nUP1esm1R+vefACHwjCpBjQSxY7IfmD39JHbXE140HSVv8GQQGnTaBbAERnuU1NFGeQtaFKZ7836s\nTBY1axB7dS96ZTGByeNQfV6nKbGzJsK2QVFR/R73gFA0lcD0GhJ7G0g3NOEdU4aiqrItg3761u4k\ndayR+DXVhK8Zk3/UDi1jTk1NTTzwi18wkElRMHcypTfOvqiLS7B6FIFxlfTuPkrfrmP8+te/pry8\n3B3cVFWVcDg8JDKqurqaSDhMMhbFP7qMonlTRj7gLpAQgujOI0R3HcG2BVpRhILZE4lMrkEL+hGW\nRaa7j9ihU8Qa29i0bQsNDQ38wz/8w7CBuDeisWPH/res539b9fX1PPjgg3R2d5G1LSxVwp6KpmGl\nMiRjUZ5f+2de+stfWHT99fzd3/3dJScYXNVVvR01Emj2euVAPW81APhSWrp0KZMnT2bjxo1s3ryZ\ngYEB2tra3LqqqkpVVRUrVqxwo9uz2azbDo888gjHjh1j6dKlI4JfhYWFqKpKMpnENE0XdNM0OYE5\nk8mQyWQuOf7puAVeDqpcv349hmG4LnyXUygUkhONctCRAwSVlZURi8Xc5w3Hcc1pEwdqcuTEDwsh\n2Lp1K/PmzaO7u5v169e7gF++nLZzooodWEdVVVpbW12Hut27d7N37173e46b2NatWxkzZgxer3cI\nDAa4zmtO+bLZLOvWrQNgypQp6LpOOBxm+fLlFBQUsHfvXn75y1/y/e9/n9JSmf7S2dnJAw88QEdH\nBx6Ph1WrVrFmzRqqq+W4m2ma1NfX09vbS3NzMydPnuTcuXNYlkUsFqOhoYGzZ88yatQoNm7cyMDA\nACdPnnTBkcspFotx+vRppkyZ4tbDNE0ymQxtbW2uG1ksFnP3SUtLC0VFRYwbN46SkhKOHz/O1KlT\nKSgowOPx4PF43FhTx/WvuLjYdalLJpPumOeVAH6OstksNTU1aJrGTTfd5IJlhmG40NLy5ctpaWmh\noqLChbcuBOVGkjNh2XEDdNz5nFhepy866ujoIJPJoCgKZWVlRKPRIfG6cHHYD3CdBp06AG7UbX9/\nPyDPo07ZFUUhm82iaRrvfve7mTBhAk8//TSdnZ3U1dUB8j6rrKyM7du3u8e/M6bpHF/5joUOWFhS\nUkJvb6/r+N/e3u668DkRvT6fj0gkQmNjI0IIamtrXRDZ6YsweM7XNI1QKOS6NR49ehTTNCkqKqKi\nooKxY8eyYsUKt5/X1dVx/vx5tm3b5oKb+fHGDiTsvCNy6pXNZkmlUqxbtw4hBAUFBcyePZs1a9Yw\nc+ZMt093dHTw2muvsWnTJpqamujs7OTuu+/m8ccfp6mpiWw2y4QJE7j55pvdejjw5UjubQ6I/f73\nv58HHniARCKBruvU1tYyZswYNE0jHo9z5MgR+vr6yGQyqKrKwoUL6ejooKWlhaamJlRVZfbs2dTV\n1bn9yTmXzZo1yy2/064X9mPDMHjppZdoaWmhsLCQ1tZWN+r7+PHjdHV1MXfuXGbOnOnWwwHnhRB4\nvd4hPMDEiRMZN24c58+f59ChQ1x33XWEw2H+9m//lmAwyNq1a/n1r3/NtGnTXKA0v69fWL6XXnqJ\n1157DV3X+fKXv8ysWbNGPB58Ph/Lly9n4cKF/OxnP+P48eP853/+J//8z//slk/X9WHXpRkzZrB2\n7VqOHTvGj370o0sCePlKJpPcd999HD16lFAoxPjx47n55puZNm0aPp+coHvkyBHWr19PS0sLzzzz\nDKdPn+YLX/jCX+2sp2kac+bMYc6cOX/Vev63JYTgxRdf5LnnnnMdQ51JCwDRaJS2tjYeffRRHn/8\ncT784Q9z8803v+UAxqu6vN50wO/+++93/+2cZGpqavjOd77DsmXLrnaq/yb5/dLNSUJar19XCpm9\n1XSlUX4Xc/A5dOgQO3ftRuihi0J1qq9AOtolL3BHGwF0G0lmvBVNUy5pVQuvP4ZZAfehMZvNIoJj\nIHEe0b0bxRPJubEJCYa5MIySF6eKhJB6D0rQSdFIt+7BU1SL4g0jsnHpMhUe3i6KqiNsg2w2iycH\n6vh8XpRUC2mRIVJYQG1trWu7W1FRQTAY5NX1G4i376YfH7ZekGfalw/3eQfLl+0djDstmJT7XCD8\nlTBqGbRvxuhrRA9VEimbhpHNkomewezcg2qnKS4p4rrrruOmm25yreSPHDnCpk2b3Bsxw7RA0RAo\n2LYFRhyRaJFucv2nZJlK5kkHMlUbPjp04UOMr1g6vXVug1hDzlVOyMjT0rkSkrtQgQoZC5s47zoA\nKgpQcYPkiVAl6ORAfsKS7RSZBMY+6ZDniUiYKdksQcP88jlAVz6MJyzAljCTmZDl81egaN7BfqPk\n2j16QJbLAdDUwRf2IyrTK5cH6Vim+aBzOwycgfA10mHDgf6EKZc3+nOOfYp01Mt0y3rYGdl/Ne8F\n27yg3ZPNsh6eMARyUTmKIt3bYsdB88vPzfigM2AmiuItQlStlq5yffuwB84jWl8GYSI8BSgVi1Cw\nEQON0qHNyMGIHBxebz0s3RwT58HOZb/FTsg6GnEJPAoTFF3CmeEJ0H9afrdkziDcBzn4ML+2Assy\nyWYz+CIVqONuINu8haKiIv7pn/5pyPnNtm16e3uxzCzCcbDLHTtun3CaUFFzsGXO6c/KQPdeyEYl\nMFc6V0Kq6gXnN18pFE5xnejIxsBfgcgIYv0DJFNphBZCDY/Bdh6ULmguIYSMSY+exM70I2zpJCLH\nRxXQg4jCKeArHwrD5qKKQUjQUgsi4mch3QPpHoTmh2AlJNvkPuvZL/eNtygHD1/4QJJ3/slEZX+3\nbfCVkW3Zgkicl9vuPy3/Hr4GERgFqjIIMjgAp+rEQOcpMAo4JPte/jbdc8V2st3H8OVF3l7smn2l\nMe4AiqLiLapF8xWQOPMXduzYxeTJk1mzZs1Fv7Ns2TJ27tpNoqcBX/m1V3QtEkKQPL9FguGqD6Vk\nLsGKycNeFF8OOnyn669xZnw7gUpXdVWXkoz10WjvVkhnwP8G3v2ca1VB0dyIoLeLAoEAq1atYuXK\nlZw4ccJ1RvB4PBQWFjJ37twhAIMzmxzkABJ2muXzTS72zu76GRYnm3Q27g1y/bXpvPWApkoXP8Mw\n8HqGDxIKARv3aqD6WbRo0bC/5+vYsWNgZ7hhjnVRiClfCgrBYBBFUchkMiyZleT5zRHiKZUfP1bM\n1z4WZVSpSSZ3W+vRpauarg2+JDVM+N2fS2jp9FAUtlEUwZFTGroO6YzKxrogtywZHi2s63IKghzY\nyE1kUFQa20K0dvspLCplwYIFrstKKBTi2muv5dSpU6z98/P84gkfd6xJs/BaG1UVLiTn80q4T1Ek\nzPr7dUVs2hdE1+CeD0UpDNlkDen2VjM6y53vivHw2iL+vFVnwXSLnYfDrN+j0dbtIxwp5f/52teY\nPn06IGdvb9u2jfXr13P2zGlSqSSGaeLRBV7dxqNDOAixAZVN+4LMGJ9i91E/AsGq+fI+xusRI8/x\nueD/y4osFkxPse1QkMdfKcDnFfzNyhg3zE6iAL0Dqmw3Z18qUBSxuGNNPxPGGPzfp4t5bnOEcZUm\nC6ansYVAaaS6mwAAIABJREFUUwVBvyCRUrFyxmorr0vw8s4w/QmVYKFJIq1x/5MlfP1j3fi9DOnT\nIz3GtXTpPLmhkExWYdHMJIoiCPqlS2V/Qi5TVmgx85oMh076uf/JUr7wN1HGlF+aNLYs+M3zxZxp\n9VBSYLHw2iSv7Aqz80iQayf0kTUULAFbDgZJpBUyWZU/vlKEYUi41LRgY12Iv39/H6aV62DKoIvk\nhXNUUGBfg5+WLp3CsM28qakhf/N7BUGfzSdv6aO82CKRUlEUeOSlQvoTGjcvSjC6QuHvbrPIGBqv\n7dXwe22WzEpi2fD//n0P//SrMtp6dLIphQMn/Bw57Rv2SFhTaTCmwuDIaT8dUR2PDkJYNBzcDGxG\n0zwoqubeQ9vCwjIyeHxBKsZeK4urKDkHxUH3FjnHRpBMJshkMoRCIabOXc2uV5vQNI1vfOMbQwbU\nTdPk2WefxbQsSGVIn24lMKV6sN1yVKZlyUFFJZe97UBz8R1HMLv6UANeQtdPJzhrgoztzTsxKR6d\nwLXj8U+tIXW0kfj2IyT2NhCYMQHF58FOZfCNKUMEfaTS6SH10XMwAOkssaNnGDjWiDkgB4PciY+a\nir+6ksI115GPqwpbYLT3kK4/R6a5CzM6gF4SkYdl7tg02qPOSUk6B6azxPedAAHB+VOkk5+qDD+O\nTYv0uXb61+/DTmVQ/V7iu+sRpoWiqVh9cay+OJxsJrGrHv/EsQRmX4OnOIwwc04svtzzUN66vaNL\nSQDWgNMv5TnPO7ac8PXTSOw8RuzgiSGAnzkg3TTzB7gAnnvuOQZSSUJTay4K9+VLURRKrp+BlcqQ\nOHyGZ555hm9+85sXXd7r9bJs2TKe+/OLxA6fwj/qyhISevfWE919FKEoRBZNp3DmREIFkSHL6OEg\nodrRGP1xOv6yk9aODn74wx/y3e9+13X/eCdr7969PPDAAwxkUqiFIYpmTSIyvRYtLzEl3REldugU\n8YZzbN2xnc7OTr75zW9eNRS4qneUioqKhsSGvl457l+Oq9XbSZWVldxxxx186EMfYv/+/UPizUeN\nGjUExABcmCCdTrNt2zYAVq5cOeK6I5EIM2bMoK6uju7u7iEuovmQmxOPeqHS6TT9/f0UFRUxd+7c\nS9bDcWNznNsuJwdYTyQSWJaF3+933ayqq6s5deoUqVTKjdf1er2uI5YDOQUCASZPnkxBQYEbf7tv\n3z4sy+LAgQO0trYOi4cEXFgrP0ZV13U2b96MqqpMmzaNcePGkUgk3GfT+fPn89BDD9HY2Mif/vQn\n3vWud1FSUoKqqliW5UJPjmNXf38/L7zwAj09PZSVlbF69WrX9c80TebNm0dfXx+nT59m/fr1rF69\nmo0bN7Jp0yaSySSTJk3i29/+ttvfe3p6XCApGo0OAXKcH8eN8LnnnmPx4sV0dXW5xiH58a6Xi8Jt\nb2+ntrZ2SDzzwYMHc+kEUhcCRv39/dTX1zNhwgSqqqo4efIks2bNcqE0pw9nMhk3GrSqqoozZ864\nY3GRSISKigpaW1ul0/Ul3ruapklZWRkVFRV4vV6WLl2KoiiEQiEymQypVArDMFiyZAkvvfQSyWSS\nCRMmcOLEicvCfT6fz51k1t/f70JPXq/Xda5z2tNpn5aWFjfSNhQKUVJSQjweHwLSXUqjRo1CVdUh\nTtn53/N6vSxfvpx0Ou0Cl4cOHaKoSI4j+v1+PvWpT/GrX/3KdYwsLy8nEAgwd+5cDhw4MOQ8mt8G\nDtxXUFCApmlEo1EXtu3p6WHdunUuBJjfh5wI5nA47J6XnOPTgSDz/39gYACfz0c4HGbMmDG0trZS\nW1vL1772tSFt0dHRwe7du8lkMhw8eJBoNEpJScmQMjvHrq7rBAIB0um0G6/7b//2bwghGDVqFPfc\nc48L1+bvg4qKCm6//XZuvfVWfvOb31BXV8dvfvMbbrnlFh555BEURWHZsmUYhoFpmu7+dhzuvF4v\njY2NbNiwgf3797vHRn4s8p133unGRjtKp9McOHCADRs20NHRwYkTJ4ZMKLUsi7q6OhdMs22bvr4+\n7r//fj796U+7x9RIxlXpdJpnnnmGtWvXkslk0HWdZ555Bk3TUFWVo0ePAnI8v6yszHXPc2LeNU0j\nGAwOOz4mT57M+fPn6enpcbcF8OEPf5gzZ87Q0NDAtm3bXBgScJfNfybKZDK88MILAHzuc5+7KNyX\nr2AwyFe+8hXuvfdeWlpa2Lp16yXHiKZNm8aoUaNob2/nwIEDXHfddZfdhmEY3HfffTQ0NFBSUsKn\nPvUpZs6cOWSMKBKJsHLlSlasWMHRo0f5xS9+waFDh3jggQf48pe/fMUg4dtVQgh+97vfyWQT4Npr\nr2X16tXuJEaQ52zH7fz48eM89thjRKNR7rjjjqs81ttMbyrgF41GOXz4sHsBVhSF6dOn89BDD73t\nHhD+t+XEh5rxNvRg2ev+/pVCZm9VvVEHnyuB6rwlky7qaHch6HahhLDJ9jQQ8mgsW7bskmV5IzHM\nioLrnpcquRaRPA9mEtG2XsbJBqoGnfBU+TJduoJZg2CObaJEroFQNaJ7D0ZfI5q/UEI5XbslOOa7\nIDZEUeXsdnvw4c1KRUm37CDk9/CJT3xi2A1CJpNh9+7dDMQ7sNs2Qck8lHA1aDrCzA0UOs59Q+JO\nTZRwNaJwaq5RbQlo6WFEyRzo3k268xC2lcWInkC1UhQEdBYvXumCD/muSK1t7SQSSflQoOgIPQKR\n8Sj+CpRUGyJ2XLroFWYkkKOHBmOKrwB2AaRbmB4CIyZ/NH/OAdCZCXGBxYPj/JXnACjiTSj+Chkr\nK0DG0noksGRboAoJMUWdt/hxucruXRKo8xZLkGzEMufaMBvLwUyGhLUUdTB+1pbudoRqJGwXb4KO\nzVA6L+dKOIIujKkNVUu4DGR7mAkZWxuolPVInJXf8RSC7oNsf65+plyHHgGP86I255Lo3hjnjSzm\nA4UFk4cCVkKCUuhBCUw6X+07BsYAwlvsvtwI1C4ndX4L2Z7jEgIL18htlC+SMbbxc7LthJBtrKgS\ntNT8oAWlA2H8XA7Oky5vwopD75E8sDZXNiMm21QYObhylNym6hns406dFemqZ5o2lpXCNC0CBTWk\ntb20trVz9OjRIee+devWcfDgIbkeMwGpdlmXfLBNWIMOjsLObSPngpholM6HlTnXSmGBrQz2JWHj\nuB/iL5d9u2OLBFNRsJCuY6JkGlbWGNLXTcUim8mgJM6iDJxGGIk8d75BH0+RW5Oi6jKe2IFUfaXy\np/cIpNoRiSb5uQMqilzd0t05KDArj+P2zVA2L3dO1PIih3PdSJgy1runDqwEqB5E4txgX1M9cj1m\nXAKcnggUTEZEJklgFZFbnzbYLx05UdQOWJr/cBcaC3oQOzOAGW/FE5GDWiNds19PjHu+tEAJ/jGL\nSTVv4ZVXXhniYnqhZsyYQdWoSs40tmDEmvAW1V52/dmeenmNVHSoWIoWLMFzkVngbwQ6fCfov8uZ\n8aqu6u2u0tJSJk6azKmGfew4bLJi/shucxfTuTaF0806gUjhFb0AeytKURSmTJnClClX5jgEOahO\nZFk65+LtuWS2xeOv6Bw/56O5U2dshRxQVJAOYamMnNU/EuB3vFGlpctDYUnZZV8KytgRQWnhlTuS\nKEgg3qN70LQMfp8gFldp7/Hw7w+V8e7FA1x/bZKSAhu/LzezHgXDEhw+6eeFrRHOtnoI+m3+8e4e\nLAv+/eFSBpIyVvXJDRHGVpjMmpi5YLt5wFiO8GvrVnjgCQ+KFuJ973sfH/zgB4d85/Tp0zz2hz/k\n4DGV368r5LV9IVZcl2DGNSmCfoFXF3T2amzaF2LzgSDxlIpHg8//TS9Tag2ELR3+dA2SGYVZE1MU\nRyKca/PwhR/4URQvqH5Kyiv50pe+5MaLnTt3jp/85Cf0RTuxrRSptImuC8IBmzmT0yydnaR2tLxv\n++UzxRw84eOnj5eSMVRmTEhTUWxhWAqqOhgLS67q7nyiC7RyfoJtB4NkDJUP3CTjfR3HPpB8kSPb\nhnhKRVNh9qQ0H1kV44+vFPLMpjCzJ6XRNcexQEKQ6YxCJqswqtREUQS2gLYe6Up37KyfH/2+nL97\nfy+FIRuvR0KT+c6DAjh+1scvnimmu09DAPMmp1BV8Oi5yXR+SKali98n39PLt86O4myrl/v+WMpd\n74oxa1J6mJshwNlWD09sKODYWR9eXfCVj/ZQFLFYvyfMvoYAd2VjFIVtsgZsPxTEshRqq7KMLjfp\nG1A50+IhldXYciBIZYnJexZLuDJv3HQYrHiiycuvni0GAe9aFEfPu+23bDjdIo/NqjKTqTUyvrq+\n0Us8qVIYtqmpEoRCYVRF4QsfMdh+UEPTYHJ1lkRaRcHmG3d184unSzjf6cE0ZCcoLbAIBmz8PkFx\n2OT4OT/nOjyYpoJpKng9uShrTUPVPBSVVeMPFaOoKkYmSW/nWRACyzRoqHuBKde9j0C4GGHbmGYG\nhEDVdHSPD8s0sCw5MDQwMEAkUkJR2TiSfdJNYfXq1W6dN2zYwO49e+RduWGR2HMcb2UJnqrB+2dh\n2QjDQggbkbVRNA1F1zB6+onvrEfxeQgvmYF/8liEYSIMC0XXUDQVYVqDrn+A/5rRYNsMbDtMYne9\n/FDX0MeWyTQOnH4vd5yZTNP9yh4yTR0yXTrXKxVNkzs6t2/TjW2ou48TvG6SjAf2erDTBnY8hZXM\nIDIGWDZGWxTFo+GtrUIvLwTLxupPkj3fgciYsqxpg/i+E2TOtuGfOg7/pHGoAQlpCssi09hB+ngT\n2eYuRDqL04nUSAD/NaPRisKoAT8inSF9qoVscxep+kbSp5opWDUPT2WxLL86/GSgOK4WhhzUc4MJ\nFAhOryWxp4Hk+Q6y0RjeEvnOpP/YWTyq5gLKIN9B79u3DxPpdPh6BjBKFs+k/+gZjhw9SltbG1VV\nF3/vtmLFCta+9BLxhiYKZ1yDv+rS72DT7T30bD+EEFBw02x8taPwBS8+udpTEGb0h5bT+uxmOtq6\nefDBB/nWt751xXV5O+rkyZM88MAD9GdSRGZPpGzpnCGRy478lSX41yykeP40Wp/bRMPpU/zsZz/j\nG9/4xoguMFd1VW9HzZ8/n9///vf09fVhWdbrHgxPp9N4PB6uu+66v9ot5/+v8nq9XH/99Ve8vANG\nVVdXu65XI2nlypUcOnSIzs5OKisr3euQ49ZlWRamaY44CbOzsxOPx8OiRYsuOW4qhCAejyOEeF2T\nOR3IL5vNus6EmiYntk2aNImmpiai0agb+5lf9pKSEsaMGUNhYSETJ07kYx/7GPv37+fVV191ocD7\n7ruPb3/728Oi5Udyl9qyZQuvvvoqiqLwf/7P/xnmiPjSSy/R2dmJEILe3l6efvppxo8f78bAOs6C\nLS0tHDp0iNOnT2PbNqWlpXzkIx8hEAi47ZNKpchms8ycOZOGhgaeffZZXn75ZbdcM2fO5POf/7wL\ngm/YsIFHH30UOzdBzYmDLSwsZMmSJSxatIjS0lJ6e3v54Q9/yNGjRzl37hzJZJLu7u5LAm354F/+\nZw7kB9J44sKozfzv5LvanTp1Cp/Ph67rtLa2Mm7cOHdZxwXRsiwMw3DBUtM06e/vR9M0Ro8ejWEY\nrpuZA3bm7y/btikqKuKaa67B6/VSWlpKaWmpC8f5/X7X2U3Xde655x6+973vuc6LZ86cGVYfp06O\na3IgEHAdFSORiOvM6Fy3nfOYA8Z5vV7i8bh7rho3bhyNjY0MDAxctJ0djRo1irKyMtdNMn8/OICg\nx+OhoKCAwsJCFEXh8OHDaJrGpEmT8Pl8bgTtLbfcwm9/+1sikYgb8eqAvsePH3fb39mW44Snqqrr\nFOg4avb19bn71XHgc+qfzWbdNkwkErS1tVFTU+O6FjrHcyAQQNM0FyZ2XBArKipobm7mwIEDdHV1\nuZGuAL/61a/o6upy46H/67/+i29+85vuOUgI4Z4znEhav99PNpvlhRde4OzZs5SXl/OlL32JyspK\n4vE4mqa5kbpOxLCjO++8k0wmw969e/ntb38LSOOia6+91q2Hs10hBPX19Tz11FM0NzcPcUBUVdV1\nSjQMgyeeeAJVVbn++uvxeDwEAgEGBgbo6Ohw4WmAvr4+CgsLWbp0KSUlJSSTSRobGzl9+rTbbl1d\nXfz0pz9l+vTpLF26lNmzZ7vHRTweZ9u2bWzZsoWWlhZSqRShUAghBJMnT2bu3LmUlJTg8/lob29n\n06ZNdHZ28uSTT7Jz504+97nPDYE0L5TjzOhEmztyTIwaGhpYv349a9ascdt3zx5pfuOY1wDs2LGD\nVCrFxIkTh0X6XkqBQIDbbruN+++/34WhLxV9vXLlSv7whz/w1FNPMW3atMtOqHnhhRc4ceIEhYWF\nfOUrX6GsrOyi1zFFUZgxYwb/+I//yL333svBgwdZv379ELjxnahnnnmGTZs24fF4+PznPz/ihABd\n11mwYAELFixg586dPPjgg6xbt47CwkJuueWW/4VSX9WbpTf16Xbfvn1DLqiapvGDH/zgKtz3JuiN\nuOo4ej2Q2TtNVwLV6eHRqL4IVmZguKPdCKBbvozYOVQrxejqsUMuwiPpjcYwO+55WkExCc2HrlpY\ndhqrexdCC0F4PEp4DAgfGIaEffoH40SVcDWUL5Zgl7cA0boeKx1DCxRhp2OI1vVQvlCCKG6/c27G\nZP8yYudIt+wg4BEsXizjv/Jl2zYPPvggfbEB2XftLPTsgb6jiMh4GQXrwH3pjiHlIyTLp6iyrYWi\nyDfBVhYCoxBaADvdi9W1j5Dfx+jqoVG8+a5IybQhZ9iggh6AsoUoIQnUCNtEeIpQjAGU+DlEzz7Z\nJo77mcgbjXLb4AJQz/2TKr8X3Sdho7IFeXAfw78jbBBZQAVvRC7fuR3RVw+h2hyMpOTgodx2LQvi\nzbIt8+JWMZMSZirNAZ6qngP9cuCRsKVLW7IFeg9ItzwAf9UQlzZF9yOMlISXSubKfmPGJUDYd1TW\nL1Ap1y0MSHUOjakNVUP59YN9JjJRukXGz0hgMt0JZkoCZFWrJTCX7Ye2V2WZrIyMLy2ZJ7fjQGgX\ntluyWbo82gaExkFkct6+IeegiASynM9skXNnBCVc487MUxQIjFtKtqcBBVU60tmG/FrJPOkAN3Ba\n1tGWA2NYaek+6MgTkY5tvUek+4Lqy0XHjr+4E50woHe/PA7zXTYt6V6oqLqECG0LYcuHLgBv6RQy\nPQfZvHmzC/iZpskf/vAHTMuW3xFCAqu+0qGgrqLk9p0l286BTGMn5O/SubK+jmOk8/eRIpm9hdKB\nsHs3wmkXYUFuUE66R+gSMLYNRNdORLJFLqeHUAomQaBSAmK2c446iTATMto2nYusjjdCf4OEWYU9\nPC5bUSQQ6h8tHR8T5+SytiH7VOdO6fAYHi/BRGdfpLsgfja33txxqGi5aOJJOVg291m6U0YTG3EJ\nA6a7JPQKg3DshbJzzpuKZ+hIrAKKokHBRETvIbLRk3giYy56zX69Me758hTWkG4bGQjNl/NA+fDD\nj5Jo2Y7mK7gkSCiEINNdLx/MS+eg+Arx+XyX8vcEXh90+E7Qm+3MeFVX9XbSqlWrOHXyGOt3Z7hp\nnsXrOXW8ulsD1ceNN974th3Mer0yTZN0KoWiCIovkZ4b9MMNcyw27tH4v08X8Z1P9RD0y2uaw3KM\nNNjRH4ffPOcBJcDy5cvftMF3BTn7W9U8qKp8+V1ZWUlLSxNPrC9k7bYIC2ekGFtuoqkQS6jsPuqn\nu0/eW5cUWPzDXVEXXPzSR3r5j0dKEahYlsp9fyzmjjX93DQviS/v9sOpsSVg3zGV3z7vJZEJMXP2\ndbzvfe8bUsb29nZ+/OMfk4x3sGhmhmuvsfnzVp32Hg8PrS1EUwvx6nKyg23jmpzXVBl8/D19TBpn\nSdczVQJCHl0QAFJphcWzkjy9sYBE2sf8+QtYuXIlM2fO5Pz589TV1dHW1sZTTz2JbfQzpixDf1JB\nQTC2wuCrH+ulvMhCAKYJmazgb9/by3ebK+iJafg8MKUmi7jM1X2kp6Lxo7P4fTbxlMqKefHcvpIu\ndF5doGvCBdUsW5GudjakMgqLZyZ5cVuE5g4PR854mDTOIOi36Y1pbN4fpKVLJ5VRaWr3EItr+HPO\nh1WlBi1dHhqavHzvwQrmTUlx45wk1ZWGBCNVwf6Tfl7dHab+rI90VkFTQdcFAykNn8d03eX8uTGh\nZFqyTqoiHR87e3V++ngJpQUWy+YkGVVqoqqCvrjGjsNBzrR6QEAkaPPlj/a4UdFzJ6epa/Cz83CQ\ndy+O89L2CG3dOhXFJv94dxclBTaWDT/7Uyl7jvlJZ1We3FhAW4+HFfMSlBWbZE0Fn0e4t9gDSYXN\n+0M8s6kA04Qls1K8Z3F80EBNwJHTPrr6NMqKLCZXZ939s2FvGIHC0jlpigojqO6Ai/xRFQgFNJna\naltEQvDVj0XZe8zP1gNBWro89CU0Ygl5D3wWL0LAhDFZxlVm+fO2CAMpD15/iFE1sykbMw2ff+i7\nwnGTl9DbcZqOpkOkElGO7X6KGYs/ii9QgMcTwMimsC0TW9XQdS+a7sHIprFti3g8zqhx13Iy2szx\n48ddwM8wDB599FEsYaMVhfCUFpJt7abvpV0UrpqHt6YSFEXCeroGlo2dMRCWhTWQou/F7aAo+Kor\nCUyvJdcAOSDQRIwUqqGAf/I4ss2dZE61usBefFc9djpLYOYEFBRUj4adytD30k6s/iSoKt4JVQRn\njMczSj5zCNsm29RB8uBpjNZuUvXnMHpiFKycS3z7UTKnW2RZbFvGBTsHnqJgtHRhJ1KE5k4iNG8y\ndjpL+lQzqcNnsFNZhGlhdMcwdwyQ2HtCAn6qgshksdMGwjTBtFF0Da04QmTpLHzjR2GnDRA2asAn\n43Wn12L2DhDfXU/mdCuxdXsoWHMd/tqq4U+MAqyM7HeKRx8C9ymKguLz4J88lnT9OfqPnaXsxjmY\n8STJs60UeAPcdNNN7qo2bdpExjQIXTMGPfz60kk0n5fIlBoyx8+zYcMG7rrrrosuW1lZyZrVq1n3\nysu0Pr+F0e9feknIL3bopHQ/mlaLr3aUO8h7Kam6TtWtN3Duv17kWH09zc3Nb4uI3TciIQQPPfQQ\n8WyayMxrKFs297Lwprc4wpgPraD5T69y5NhRtm/ffvV991W9Y1RUVMSCBQt47bXXSKVSr2scznHI\nCoVCF3WqeyfKgWsu56Y6Z84cysvL3QjI6upq93zluM+N9EwUi8Xo7Ox0Xdcvp3wI5vXA7I7zXTAY\nJB6PU1FRQSKRQFVVIpEI2Wx2SDSo3+93410DgQBTp07ltttuc+GBvr4+6urq0HWdzs5O7r33Xv7+\n7/+eadOmDQP7FEUhmUyybt06nnvuOQDuuuuuYXDfli1b+NOf/oSqqtx99910dXWxdetWzp8/z6lT\np1BVFY/HMwQacpwAb775ZjfpxDGccWC/srIyKisraWpqwrIs11GrtLSUs2fPkkwmqaurY+vWrWia\nxpQpU2hoaEDXdZYtW8YnP/lJ1yHPiWv9zGc+w7333ktXVxeZTOaSkbeX2lfRaJTq6mosy3JBJKde\n+XGp+THFTixuU1MTxcXFdHd3u2CRx+MhHo/T3d3tgkIDAwMYhuECf5lMhnA4TE1NDZWVlbS1tdHe\n3k46nSYYDLpuiuXl5QSDQddtzOnHDhynKArhcJh4PI5hSJMTr9eLYRhUVFRQVlZGX1/fkFjdcDhM\nVVUVfr/fhZScuOyBgYFh0I/H40HTNMrLy5kwYQK6rpPJZDh8+LALYI4fP56Ojg46OjpGdC/1+/1U\nVlZSWlqKx+MhGAy6TnMOSJXJZNA0jerqatcNLx+AXLRo0ZAkHec9ta7reDwe9/guLi5m7ty5tLe3\n09HRgWEY7k/+dysqKshkMnR0dLiwZHFxMeFweNg78Gw2y8DAAH19ffT19QG4beG0YTKZpKCggGAw\niM/nc/eJoigUFRWRSCQ4ceKEC/gdO3aMffv24ff7mTJlCrFYjJaWFn70ox/xhS98gcpKmYAVCATw\n+/2uI2QymeTIkSM8//zz+Hw+PvjBD1JTU+O2lwMCXigHXvzEJz7BiRMncoY40uHzJz/5CbfffjtT\npkxBUWQKw4EDB/jlL3+JZVkUFBSwdOlSbrrpJsrLy1EUhUQiwZYtW1i/fj2dnZ089thj9Pb2MmfO\nHJ5++mlOnTrl7hPHuc85L+zYsYOZM2fy/ve/nw984AO0t7fz2muvsW3bNkzTJJvNcvDgQY4ePUo4\nHCYcDrtxyE7cummahEIh5syZwx133MHYsWNdeNbZ3i233MKRI0f4/e9/T3NzMz/5yU/4+te/PmIM\nu3P9dfprfrsBzJ07l6KiIjo6Ojh16hSTJk0aAvLlw+fr168HLu44eynNnTuXwsJC2tvbqa+vHzKZ\n6kItXbqUjRs30trayo9//GO++tWvXvSewzAMNm7ciG3bfPzjH6ekpMQ9B1xKo0eP5u677+b+++/n\n1VdfZfXq1e/YMaKOjg6ef/55VFXli1/8IrNnz77sdxYtWoSqqjzwwAM8+eSTLF68eBiIf1VvXb2p\ngF93d7f7b0VRmDt3LhMnTnwzN/mO1Rtx1XH0eiCzd5quBKpTFAVf2TRSLbsRwxztBl+CXyjX0c6n\ns2bNmstemP7aGGZsA1XTmD5tCjfeeCO//vWvSWf6IHYU+uuH1kkIhB5CKZySc27LXWh9xVC+ANG5\nHYSNXliDGTuH6NwmHcoKJkp4SdHASCLi3Qy0NKJaKUI+ncWLF/GZz3xmWF0deCFtqoQnfxAr2Umm\n+xh2ZgARPYAEahT521HOIYuIE82bL8fNTkiAMXaEyvJSPvvZzyKEYOvWrWzZsoV0Ok1XVxex/n5s\nvOiF47H6zkjQZvSqIcCTkospFWXzUdJdEtoSKnhL8nawGHlnuyvJs1Lwl5MbwoLAGAZHApTh7mHY\nuYhJqB4aAAAgAElEQVRUW47o+SsHHe+SLRAcLcuczsGZRr9033PgPk9Ygm2+Eug/LqG27t1ynzkw\nk+YFy8i5zJ2VwJOwUYSNUDTIdqOEh1rtK55AnrtiAEhJZzczIWG9kZ5rPWEomJLbb3mfByrl8kZ8\nqONeZILsT4qW638LoWOb/K5t5BwJAzLONjQmt98NWcdhQOGiPPsQRUJmAxLkIzwBt0DJJjATKJ4Q\ngZJafP5BIMnsb0JBIBQFzePHdgbHFKDgGohMQKQ6JDxmJiQgpupyf4VqwFcB3TtkObSgjGD1l+dG\nMPL6sb9UQo+pNumimGgGduUgP1Uum3NsFLYp+6eqoSg+hCVnHPm95ViWoLOz013tww8/TH9/HKEH\nUapWo8SOIeLnoW29LEtoDEOOM0UDTZWwZd8R2be8RTk4NM9R03EUHNpDBvtyZDzEpCsiqk/2zfgp\nsNMSgLOFrEe0TkYzqx5ZnuBYhJs1llutrwTCtRL0i+6XbZN+YRCq1IPy774K0P2yfPn9IX5aHjNV\nqySA170XrBSKqiLMpDwnxnLbysVzYcsoQKFouf02f9D10MrIvqR6ZARz4dRBB9REk/xb6fzhAKpT\nKRcyDbvNpsj/5I6NUdB7CDsrZyJe7Jr9emPch+wpRR0RCB1Jq1ev5sSJE2zfsYvEmb/gH7NkRDc5\nAGOgGSvdJ68nwdEyysI3snvfhbpS6PDtrv8JZ8aruqq3k+bPn89jhWU0d6Z4cr3NR9ZcWTTVnqMq\nW/Z7QAuwYsWKN7mUb01dzIXN0YdXmRw7o9Lc6eEHD5fy1TuiFBfYF12+I6rwk0c9dMeC1IyffEUz\nSWUMlUpX9MoHsvLV3aegoFJWVsa//uu/8sUvfpF4f5SsCTsOhRi82ZAvfksLLZbNTbBmYZJQYPA+\nZ/r4LBPHZjnZ7GNqrU1Do8of1hXy7KYIS+ckmT0pg99rE+1XOdPqY+cRP9F+L6hBZs+dzz333DMM\n7njkkUdI9Hcya2KaL99hoGmwcoHF3mMqP3jIi21DyC/d5vxewXVT06ycH6e2ypD7RQyNLQUJyWU1\nhdmT0jy/OYI/GOEjH/kIu3fv5qHf/Y5EIoZtW6RSKSzLxucBGwleji43+fanegjn6q0gnet0HXTd\n5tMf6OXfHipDINA0CbZJzklBy3PgciVA5N3eCAGGqeDzShhRVeUyqgqFIXvYI5VHl/XOmgqptIJA\nYcnMJC/vCrPtYBDDTLF5f4hjZ33Yuds3w1KwbcWNNJ5ak2HN9XEqik3+9Gohx8762HU0yK6jQTRV\nAoDprIppSVc+YcONcxIcPeMnltDYUx9g/rShTo1+r7xV7u5TyBoqZYUWt900wMZ9ITqjGs9sGhqd\nJlAI+W2WzUmwZmGCksLBiYCTxmWpa/DTE9N4blOEZzZHUBT46JrYIDCrwoeW93PwpA8U6Tq47VCA\nrQeDjKvIEg7aqAqYlsJAUqW1W3cfVlbMj/OJd8fc41hBPi6/sjsMQjoqOo6D+477qTvuR1Xg5iXa\nENO1rqhC1pDunIYpoUhnH3s0weKZaRbNSNPU4eNEk49kWu7coN9iak2KcZUm9z9RjC10fIECpi24\njUBIPnfrXhmpnZ/PXD5mGhVjZ1C/91nifW0c3/scM5fcgap50DxeLCODZRoy3hcFj9ePkU3J6C7d\njxAMcQ555JFHiMUHUAuClH74JrRIkNj6faRPNdP30i604giBayWIpfg8CMPCbI+SPHSGbEsXIpNF\n8XnxT6kG25ZQmqoirEE40m1gBxTMOdcFZ08ke75LOhaWhLG6YiQPnMIaSBJeMgMzniT20i6s/iR6\nWSGF716IFh7qhKBqGr7aKjyVJZjRfvo37MfoiNLz+1clkKgoeMeW458yDr20EDXgw05nyZxuJVXf\niNUXp3/jfgIzJxCcO5HQrGvwVVcQe7kOO5HKOe2pZJo6sYy8wfNwADuZRmC5ZdNLC1FUBUVVcnO+\nbNdVTS+OUHjzAuJbD5M8fIaBjfvxfKwUPeQfdn7INsnnVa04nBvIHvp375gy0vXnMPsTCCHo3nwA\nDyoL5s8fMkDR0NCAYVsUT63ljSgybTzxY400NDRcdtk777yTnp4e9uyro+XpjRRMn0DhrIl4S4cO\n2MnI2NOgKQSmVaPr+hXHxWp+H5FptaSPnmXDhg188pOffEP1eqvr5MmTnDvfhPB7rgjuc+QpCFF6\nwyx6Xt3Lhg0brgJ+V/WO0qpVq9ixYwfxeNyNFL2cHLhG0zTGjh3LtGnT/gdK+vaSpml8+tOf5oc/\n/KE7Ljpu3LiLvotxHOrOnj2L3+/n1ltvdd21LyYHkOrr68MwjDc0Mc0wDDRNY968ecyYMYP77rvP\ndUkrKioaEvnpOKTNnz+f6dOnD6nLokWLqKurQwjB2LFjaW5u5j/+4z+oqqpixYoVjB8/HiEEPT09\nHD58mL1797qT0j/60Y8Om4gaj8d5+OGHAfj4xz/uTs64/fbbeeqpp3jqqadwomEVRaGgoICZM2cy\ne/bsIVDJhRClE0k8YcIEWltbmT59Otdffz1r165l3759rlufA8NVVlbS2NgIwPLly/nUpz7lXnsc\nSNLr9TJp0iRWrlzJunXrsG3bdVYcqQz5n+Vfx4QQbgSq0zYwGOWaH0/r7BMYdPLr7e0lHo/j8/mI\nxWJuzGgymcQwDHc5Z7u2bdPd3U1jYyOBQICJEycSCASora2ltrbWjcR1nOZ0XScSiXDrrbfy5JNP\nEo/HOXbs2JBrqtMn0+k00WgUwI1l9vv9lJaWUlxcPKT+iqJgGAaxWIxYLOauSwjhRp467aDrOn6/\nn9GjR7uOpF6vl1GjRtHc3Izf73fPWxUVFe5+cLbj7C+nTUOh0JDjRlEUF3z0er2MHz/ebfMjR45g\nWRY1NTWuy6KjxsZGNzo3H94VQuDz+aitraW6upq+vj43xtg5pkpKStA0jZ07d6KqKsFgkPHjx7vL\nOIBXvrNgWVkZhYWFnD9/nr6+PlpaWhg7dqzr5Oe4+Tnt4YCXDkgHg89EQgh+9rOf4fP5mDVrFt/4\nxjfo7e3lRz/6EU1NTXzrW99i5syZrFy5kvHjx+PxeEgkEuzevZsNGzbQ2tqKZVlEIhHmzJmDbduu\n+5zTn/P7rePq50TeLl26lPXr1zN69GgSiQQ9PT386le/4q677mLevHlD4L5Vq1bx0Y9+dJjTWyQS\nYdWqVSxatIg9e/bwxz/+kRdeeIEXX3zRdfGbP38+CxYsoLKyEr/fT0dHB5s3b2bXrl0cPnyYEydO\ncPfddzN16lTuvPNOJk+e7Dp4Lly4kJMnT9LR0TEEvJ0wYQL19fWEQiEWL17MJz/5SRfYc/qScz5V\nVZVZs2YxYcIEfvCDH9DU1MRDDz3Ed77znWHnB8uyOHz4MCCdJvPPOYALHu/atct1Ynz++eeBoSBf\nKpXi/PnzLoj9eqXrOosXL+Yvf/kLDQ0NlwT8AoEAX//61/mXf/kXTp06xXe/+13WrFnD0qVLh52T\nn332WTo7Oxk/fjwTJ07E7/df8fVr3rx5lJSU0NnZybFjx5gxY8brrtfbQRs3bgRg8eLFVwT3OVq4\ncCG7du2irq6OzZs384EPfODNKuJV/Q/rTQX88i/OIGexXNWbo9frquPo9UJm7zRdKVTnLZ2GmeiU\nMYT5jnY55b9/uhJHu5H03xXDXFlZyahRo/B4fWSFHz1ShZ2NIywDRfOgeiPYgXEYeomEvi58eRYa\nB5qMjPSPvh5PeNQgjNd7CHoPSShS2CiaQijoH+aal68L4QU9WIoeLMVbOpV05yHSzdukI4S3WLrq\n6WGIXCOhF7dNBwcVXDlxp/5yRJ90Y/z5z39OMpUma9pYlsg95Fi50SaLbLRBQjgVC4fHDkMOoAoi\nSudD+8bcZ+rghoU9wshnnl9FPgjowDCabxDkcyJdZQVyvwSgg5bnpoaQAFPfURn5asZh4MwgzEZu\nVEv1yPLYhoTWNA+U3yABJ2f52FHoy2+43L/1EJipnLODJd3kimcOs95QdD/YJgJLwlyjVkiXwPgZ\nCYPZpiyHHpRug8ExeU5meStzYkrNuHTmsw25bHhC3vICguMkCGXEJVCXbIdsFKJ10hHRXV/O0VCP\nyOUKp+dc1vKqmWyWbeAJD/anTK90/AP04in4/YM3mmYqSvL89lxskMA00qAEBtvM+R0YNdTR0oU0\nTQmZpdr/P/beO8qu6jDbf/Ypt08vmhlphHpBEkgCCdFUKTJgwO0D49hO4jiO49hkQZL1S+x4JV4p\nX+KQxJ/j8NlxbGKC7dgmwUAwVbJQBTU0qCBpNKNRmd5vP23//tj3nHtnNCMkDP4c0LuWlqR7T9nt\n3nvO2c9+XwWJTVmtgDCv4AqnTXBRG5uqINLuTQoWi9QqQBJUu3gFwE66FONfBVJ65Gwb4Ti0t7fT\n0tLC5ZdfzubNm5HCQNSugEg1hK5Vwy91Cnq3FdwEffdFs+C+2APJ46ptNF3BekIrjEVN1W3sqCjC\nf0GDawrqHDoA0XpVr8HXFKAqNKi+ClKtqhxaSMF34cpgKAefo2DCT1NtbFbB2f8uxmXXXF0AJnX1\n2fLPH65W4J0fEZ3pVK/XXQdTotC7VQGGFXNUf/jOfsJQMKQwkMnjhX67UX0f+SCkZijHTM8liL1O\nTFcQctdLqo7haqhcFLSPEEI5OHolkGnZLHXTNv4rpOBEKF37vL/ZbyXGvVRGools72tjgNCJpGka\nn/nMZxBCsHPnK2TPvEyuK0qoZj5GogmhmUjPxkl1kuvco34PEjMJhSPKCfMCy3Mx0OG7Wb8MZ8ZL\nuqR3k0zT5Ld/+7f5+4f+jme2S1wXPnKzMyaOslRSwrbXdL77VAi0cj784Y/Q1NQ08cbvQRmGQTQW\nI5scYnAUaisn3zYRhT/4uM1Xv2fS0R3iD/5PPSsX5bjxyjQNtU7hAS8cadfYtFtn3xsGHjGmTZ/D\nAw88cEEP96644go2b3qel/fr3HbDxTk0AmzZq4NQD7FfffVV8PJcdbnLb95ls/ewxmhG4LrKkXDW\nNIfm2iE0IYmGz52gWb8iTeuZELm84Hc/YvPsDoO2szrP7Urw3K4ErqdgNyEMzFCC+sYm1q9fz803\n33xOVFp3dzeHDr6OaeT47Q8puA+UK5xpKKe0aMTj//tEHwtnWpglT3F8N7VzJpEKP7ghUxKPuAhg\naGiQBx94gFjUwNRtptY7VJXZuJ7H8KjG2X6TN05qJKIen7x9eAzUWHrYSAiWzMlTU+GSymrYtghu\nZyxbEDLGORJTXDNRekTXUzG6pqEAPIQq75hbOlGsoxAKWtRjklRG44q5OZ7dWUZLa4TdR2IIVDTx\nysuzzJmWxzBUeU6cDbH3SJTjZ0IcP13N+65N8dt3D9E/orPjQIxXD8cYSmoMp3S8wu3csnlZPvG+\nYf5zSwWpjIZlCfa9ESWdHaUiMbZdTAMiYQUlhUOSjdemuOWaFIfbw+w+EmU4pQZqLCyZ2WSxbEGW\nWFgBhaUXRqGQh+sKXtoTxys45P2vDSMsnp0vtqmE6Q02c6bZtJ41uf36UY52RNh/NMKhtgimKUtc\nMxXoFw17XLckw8ZVqWBhkt8nP9uZ4OCJMIYO112hnNv3vhHh//5nNZ4U3HZdkvK4AahB2TUg+eqj\nBp4UeB4cP62z4LJ84TZXdaKuG2i6ydwZGvNmuHiyCIlJz2R4RPD6iSi6GWXu0o3EK6bgORZCK8bB\njVmUhcQIhVl49d28vuMHZJL9DHQfp27q5WiagSsspFT39ULTcB07cDbJ5bJYts3rr7/Oz372M669\n9lp+/vOfI0yd8rXLMCrVxEP5TVdh1JaTaWnDHUqS2vY6qW2vj+ln6XkqmlbT0MvjmE016rW8VcIG\nF/3phGEgTL3Y4IA5rQ69Io47kiZx1XwFU2zaT/5EJ1okhJe3FdxXU0HVXdejhUMgZfExQuFzQmGi\nz6ipoPzmqxn8j00IXcOor6Ji/XJE2AAh0CLqeY4WC2NUzSe2fC65Ix0ktx8k+3obQteIXTkHvTxO\nxcYVDD+5A7tniJp71lGZiOImc3i2jRYycYaTDP3XNrR4hIpbV6DFwkjHQYRMhKEjXVdFGhv6mAmp\nxPWLcYZTWKd7yR0+SXzFgqCphBC4eZvc0dPqM3L5jAlBclH40nMth77Ne8i2nqEqUc6dd945ZrtU\nSo1xI3FhAN146fEIEkkmk3nzbXWd3/u93+PRRx9l889/TvZQO6MtrYQbazAqEghQToMnu5CuS/iy\nRqI1lYVkgAuH1MuXzGa0pZUdO3bwsY997KKjNt8Neumll7Bcl/Kl8xAT5Z6fR4l5zfRv3U9bextt\nbW3MmjXrHSrlJV3Sr5bmz5/Pxo0beeaZZxgdHaWsrOy819o+3GfbNtXV1Xz605++qO+qd7vUIiPo\n6+t7020XLlzIZz/7WR5++GEGBgYYGhqitraWWCwWOLK5rsvg4CC9vb1ks1kikQjr16/nwx/+8AWV\n54orrgigk9K4zQuRlJLR0VFM0+SKK65g69atmKbJzTffTENDA6dPnyaXywXQ0YwZM4hGo0Es7vh2\nmT9/PseOHWPp0qVcffXVbN68ma6uLr7//e8HsI/neUHE6sKFC7n99tsnBDS2bt2KbdssWrQogPsA\nEokEmUwGTdOorKzkc5/7nHJnLynP+cA6HxLzAaTdu3ezZ88eEokEhmEE0au2bdPV1cXAwADZbJbp\n06dz7733TvhZ8EHDO+64I4gb9t3IJtJ4qK9U/m97LpcLth3f1uPLUAr69fX1UVFREcSR+rBib28v\nyWQyiIGtq6ujsrKS+vp6ampqOHLkCHv27KGiooKmpiaqq6uDdvUhs1tuuYXVq1fzjW98A1Dg3tat\nW8c4KPvl8yNi/XKl02nS6TSRSGQMoGjbNslkklwuN2F/+UCbP2ai0SizZs0KYl991dXV0dnZiWVZ\nXH755Zw8eZKRkRFM0wxAxVI4yh8H/n1C6bGy2SyaplFdXU1ZWRme5/H6669z6tQpwuHwOYtADxw4\nwPbt2/Ejsx3HCYBMv398x2bfza20ro7j0NHRgeM4hMPhwAEPGLMQsNTBERRQNW3aNE6dOhVEgfvn\ncRyHfD5PJBIJYD8fEPQd/p599lmqq6spLy+nr6+P+vp6fu/3fg/TNKmrq+OLX/wiP/rRj9i1axct\nLS20tLSc0z+5XI5cLkckEmHlypWEQqEgEtgvs6ZpeJ6HpmlEo9EAzvPrsnbtWl566SWGhob4y7/8\nS1544QV+9rOf8dhjjxGLxfj+97+P67rcfPPN3HfffQEsWNou/ljxgcH+/n5+8pOfEI/HufXWW9m4\ncWPwuYzH4wCUl5czd+5c7r33Xv793/+dXbt28e1vf5vPfe5zzJo1i+XLlwfpVx0dHfzd3/0dyWSS\noaEhPM8jHo/z2GOPBZHN9913X/A95zs5+pHGpW6PiUSCBx54gD/5kz/h6NGjnDx5kssuu2xMXQ4e\nPEhfXx81NTUsWrRowu8dH/wcGBjgoYceYnBwkFmzZrFy5cpgGx/iLCsru6gY91JVVlaOOdb5VFdX\nx5e//GX+4R/+gdOnT/Mf//EfPP744yxatChwhj19+jTHjx/HNE1uvPHGcyDbN5Ou66xbt47HH3+c\nl19++T0J+FmWxdatW4G35sy4YcMG9u7dy+bNm7njjjvek/eU70a9o4CfvzrI/8G8ZP34zupiXHXe\nKmT2XtOFQnVCCGLNN5IBBfn5jnZlsyBcgxBRnEweJ9WJNXD0TR3tJtLbGcO8ZcsWLMcjXL+USP25\nE/627eCkUkVnsDGV1YLISHuolfhlawnVLFB1GzyOlx/FSXeja7B86TLuvvtuFi1aNGkdJ4MXhBB4\nuSFAU6BO4wYITZANJgtwUTCp4P9VcA/TDDXZZNn09PYjdJNww1VEy6aSzuSRtoWwBmHkCNJOqQjc\nSP3kEIrQEPFmFRda2iayAHDpfkzumEL6GxZfCtzGomo/KEJuk53dd1Nz8xCuLTiTdUG2ACsZcTXm\nQtUFKEioSOPkCeWcNvga5AeVM1rZXPVe6iRYw+p1pIKjYtNUzKhUMKEAFYeaPg1lM84tl2Yg9JDa\nRrrKHS3WpOJp/Rha6aj3pA2uU4yZ9acDvZyqj51U/R2frmJgGedsF8Qbv6bc13yQT4ACroqTKmOa\n0s0rYBXlakB+MAD5SMxS5ct0KfjLsyHWhBOZXmDLPOzhDjJntiuHt0KfivwAxBoUAOxH1JaCbQG4\nWYA0NU2BkkIUIm4rCvsxeXwrKNCtdiX0blf9ErhWigLk5xUgZLv4eQCk64CUjIwm+duv/h0V5WUk\nU2mkUY6INwfnlXXXqXjg0WOq/YdaYGgiJ0qp2jjsu0/ChHCfHqI4+1Qi36XRyRTAxUro/rkaV+Fa\nNU5BRVAHgG1A+JUUw3c6EWD1F8DYCNSvLkRde8XxP6ZomhpXRpmCSDOdhfacqSKW+19VMOO02wDl\nKIiUCCScfUbBezXLCnCfD1UWxrH/HeC/BqoOtStUvyXboGJhcawKEAgVReykVRRxpH7ij75XAMw9\nh3Tbs5P+Zr/VGPdi86iIYN8O/nwyTZPPfvazzJs3jxdeeIHOrm7yAwfI9r4WzMDrukATDh4G4crp\nROIXDvf5ulDo8N2sX5Yz4yVd0rtJixcv5rc/8zv8y798i+d2DbPrdYs1V7msucrBN9bJ5GDHAZ1N\nu3U6+03QErzvtvdz++23/78t/K+glixZwqs7+3h5n80H15/fEbGuSvKl37L47pMm+9/Q2PF6jK2v\nRQkZkkhEwVyuZ4CIoOkRVl2zik984hMX7GZ0xRVXUF0zhd6+NIfaHJbMmdwhcLxsB17ep4MWYcOG\nDWzbtg2kzVULXaZUS267wT1nn3QmhGXlydsQHff88eoFOb4FnO4RrFjksXKxRftZwc/36pzp1Thw\nTENics01q3jf+9533vuhTZs2gcyzaonD+FTJox0aAuXUJoQYA/dNJBFcZyiFTYnjKne/SMjD0F0c\nx+XeW2xuv9FhdHQEKT3KY5IntiT48aZyZk21aKixSWchHp348iQahsWzc2xviXHsVIj335gkldUK\nYCMBVDt2odvYY5zsMsnmNWIRL4AaQ2aRApxsXlnXIBbxiEc98pYgk9cpj3vcfn2SDVenScRU7K8A\nElGPm1emGb11hE274zy1rYyf7UqgaXDHDUk+tC7J3WuSWA4cOBbh356pwjQk778hyWPPV3K4PUzW\n0pAIsnmNxzeX8Rt3jJ5TtmhIQYrZvOpjXVcQ5MwmG9tVEGA84pGzBHlbYDsCxxHqMrYAMQ6N6NiO\nwHKgscbl128fZkaTumfUNMZAXquWZDh+poIXX02QKbRhyJQsnZejvkpBzamsxp4jUYaTGq8cjnHi\nbIjPfnCQxjoHgeSZHeU8vV0BbvfdOszhtjA7D8Y4eCKMhILLYIpcLoIn42zZJ/jvrSb9IyqW13YE\n2w/EWHhZvnDHKDDMMJqmF90kRRH+FEIgNJ2tLVFsz6S6YQaJyka8wmJKfaJr2ALhKaXECEWYOmcl\nJ1qep7ujhbqpKv5N0008x8Kxc+dM/OSzo0jpkc5keeyxH/D973+fVCaNXltBeHq9GpeF7WNL5xK7\nYjb5jm6yh07iDCaRlo0wDbRElMjcqSpSN5PHqEoo5zrTRNqOOkpAVvpwnxH0V2mZjOpy3JE0XjZP\nZFYT2m3XMPLUTrKHTiKRCATlN12FCJlj2qBU0ik4Y+gamT1voIUMjClVVNxyNVrIRLquKkPhOydw\nTNE1ootnosUjjDy3m8z+VszGGsz6SozKMiLzm8kebCe9v5XEtYvQoiG0aAhd10lt2ocwdMKzmzBq\nyvFyKtJXGoaCroRQ90OuhyxAWAIQmkZs6Rys071kD3cQW6YgLX/SKvfGKaRlY9RWoMWjSMdVToSl\n9bUcpOeRPd2NJTXKIzG+8PnPnxNZ609UTDRZfEEq7HahC58Nw+A3fuM3uOmmm9i0aRPbt28n0zeK\n06sWuwshCGsGtqmRmN4YTC5ejMK1lYiwSTabJZPJBJDJe0VSSvbu3YvtuZQvnv3mO4yTZhiULZhJ\n7vUT7N279xLgd0nvKd17771ks1l+/vOfk0wmSafTQdSiD0u4rhvAGrquU1NTw+c///lLn5Vxmjlz\nJtFolDNnztDe3v6mLnsrVqygoqKCf/u3fwtAHN+ZS9f1wN3Jh2ruvPNObr311guGKjds2MCWLVtI\nJpPU1NRclGGHcu52aWhoYPny5Tz22GNIKVmwYAGVlZXnuJSBMnFxHCcod6n8KNuzZ89y//33c8cd\nd7B//3527tzJqVOnaGtrIxKJcOutt7J+/fpJF9N5nhe4E5XCfb5aW1uD7S4EDBnfluFwGNd1A7c5\n38XwS1/6Es3NzaRSqQBq/PM//3Pa2tq47rrrAthxonMKIWhqaqKqqopcLhe4H2YymQnd+nz5gJn/\nfmVlJUKIMYDfePeuieTHyDqOWkyXTqfJZDK0t7czMDAQOIn5DoUnT56kvLyc2bNnU1dXx+LFizl+\n/DiDg4McO3YsaB8/7nPp0qXMmzePr33ta4VF5cql7ujRo7z22msTmvn4IKv/Ry24yQVGQKGQuq70\nI1wnqp+uq8UihmFQWVnJnDlzxgB5ftuFw2HKy8sZHh7m+PHj5HI5HMchnU7T29uLZVlomkY8Hqeu\nrg7DMALwT0oZQKt+f8ViMebNm8eRI0c4e/ZsACfeeeedNDQ04LoufX19bN++nd27d5PNZgMnwoGB\nAerr64N+iUajY8pbWk8fOjt79mzQ/z6I59d7/DgrrXcsFiMejwfOdw0NDQHA6AO8PiTpl8eH/bq7\nu/mnf/onHMfBMAxWrVoVOK1JKSkrK+NTn/oU99xzD9u2bWPHjh0MDw+Tz+eJx+OBu+sjjzyCEIJp\n06YFEcr++PVhQz9q169PaRtMnTo1aHvP87j77rvRdZ2nn36a73znO1iWxdSpU7nnnnvGfB5Kr3qq\nALMAACAASURBVPH9uGxQ32tbtmwhkUhw2223cddddwV1Ht8XoIC7z3zmM4TDYbZs2cJ3v/tdvvzl\nLweR3M899xzd3d28+uqrLFy4MOBadF1n7969hEIhNm7cSCwWC6KLfWjNhx3D4fCYOldWVnLDDTfw\n/PPPs3nzZn791389eM/zPJ577jmklFx77bXkcjnC4XDwWfCVyWSwLIsnnngC13Wpr6/n93//98eM\nmVL4962qFLK9EFVXV/Nnf/ZntLS08NJLL3Hw4EEOHDgwZht/bF955ZVvyXl2/nxleOK7hL7XdOzY\nMdLpNM3NzW/pGm3hwoXU19fT29tLe3v7paTVd4neUcDPz2n3v4QuhPi9pLeui3HVeauQ2XtNFwPV\nCU0nNn0NVnzKmHhZIQSeppPVNHRdEDf18zraTaa3M4b5xz/+8XmdngzTQNc1HKcQDTsePhoXGSmE\nwCybilk2FWu4HXFmmNkzp/HFL37xTet3PnjBy48WH4jLCVwUxyxl59xZIKEH8JwMVSKkC9LByw3h\nVV2Op6dBT0CiCawh8E4p2Ed6SNdC6JNEGOiGgpPsYQXYReoUQIZUD7XHQJESpCj+2y9vrg/wFJTn\nO/qJEjfAYiUI3Mv8/2umqpsPzRkxBRLFmgswkKdc0ISmol4rFigXMT8yFAk1hWjYSJ36f7rwfn4A\n8iPBRILwz+vZyP7diFDFxO6GZhnkh1XEb6QAHwZ1KQBXUitAfl4RWvKV6VLb6SGouUpBbJ5FESAr\naYNIrRoP+QF13FCFihoO1wRuZ+T6ipGsQ6+rbWuuAnQVZTywVx0/XKeiic/8d8EBUar42fL5yPwQ\nma4O3OHjSCulYpeEjlk9G3u4DZk8oeBAfyZVDxdAr/GOkoVZ1kyPcprTY+oc/niBAvhVMk5KgVXp\nKejSiCsAL9tdiGUu7DcG7NPU51VoakwLDS1SR9r2SJ7tUpNvZTMJ4mL985TPg/K5Bbe+AhAqHQWd\nmgXXzJ6XVb9pBgHI5497f5xqpirDOeOYIsDqA3pGWRFcHDkMTk6dKza1aNNSOqElCgX2/Al4DUaO\nqrrWLFdwLp56vbQ9x0/whKuK5022KjfMWBMYcaSdhNRpiE1BALqhY9gD5J2MKm98ujqfVxjDQitC\nprLkNb/P483FOO1sF8SmInznv/wQwodMy2YjPRtkAaouhV8zncolMz9MIpGY9Df7F41xl54NhRWX\nFyLfOXjDhg0cOnSIl19+OVh9HI1Gqa+vVw9FugcIRS8e7oOLgw7frfplOTNe0iW927Rq1SoqKip4\n9NFH6Tx7iidfzvHkFgvT8NA0yFsCRAi0CBXVtXzgAx9g7dq1/6+L/Sup9evX8+orO9iyN8edayZ3\nQ/RVHof7P2rTNyT4wXMGm3cbZDSdMq0MgaCypoo1a9awdu3ai14AqOs669ev5yc/6uKHz9nMnmYR\ni1zYvo+/ZJDKhpg+cyazZ8/m+eefBySJ2OQgSPCA1gJDl2PgupCpYDTLFuQsBbzNnCppbnD4+383\nScQizFu4jD/6oz9607K98sor4OVYf/W5kGEmqyAwCbR3hVgyp+gK4TvbAcGlxzm3QwJO95h4Ei5r\ntFg2L89zuxL8dIvBvOk56islhi7RdWg9EyIS8rhpRQohFBSZzTFhGwsBH71lhB0tMQ61R+joMmmo\ndbAdQS6vkYh5Y8oy0WXZ1v0xLFtw9cI8QigoUNfOvXQb7+IHCpg72BrBdgXlcY/PfXiQqxbkkBIy\nOQFSuen5l0vlMY+71yS5rMHmn35SzX9vTzCl2mHJHDURoWtw1cIc+4/l2HMkyt8+VouhQTanYeqg\naZJcXrB5b5zyuMeH1qXG1C8cklSXuwyOarzREWbhjDw5S+AULtEdV8XhRsIqang4pQUm1W6hvgfb\nVUNvvCbFx28bwdBhpLBdaZsIIBFxSWc1LFujpsLh7jVJrluSwTQkmZwWXJ3fvXqUwyfDPLm1nDM9\nBl/991qunJvl9RNRRtMaliOYWufwxJZyBkd1LFvguIK5zXmiYY+ntpYxlDQ42BYhk4N8YY1aPOqR\nzglaWiP0DevUVHjoRghReG4Q3NVIWbwGlOB6khdfCaNpJlOaFxWcBGUAgo2ffNE0Hc/18Fwb3QhT\n2zSfk4e3kBruIj3SS7xiCprQcAFZmBQTmq5gQSEY6DqGrplMn3c1meQg3acPIw1BbEFzcbKk5F5D\nGDrhWU2EZzZRWhFR+IBZnQPKbc4H2AwN36BQ6DrScUBoiJAx9ha+VL4DmSeRnkeooYbolbNJ7z2G\ntB0F0FWVEQyQcR9qKSWyMLDcZAbrTB8iZFK+fjlC0xT8J8Q5kJzfB0IThGc2ErtyNpnXWskd6cCs\nUxPL0ctnkD3YTr6tk7KrFxCKRwkXJmK7OwfA0Igtmgmaps7lOxiGCy5+toOXt5VzoCYKVZCYU2vR\nK8twh5NYp3qIzFLXtflTPaR2HkIgiC+eBZ6Hl/fAstU5hHI9z7V3Im0XzRNMmVLL/V+4n7lz55LJ\nZNixYwf79u0jmUxy8uRJnGyOwZ0t1K2/GrM8cW4bnEf20CgaYkyk1IWoubmZT37yk3zkIx/h6NGj\npNMqSjiRSLB3715e+PlmjPCbx2NOJs00kHmPXC73ngP88vk8tm0jDA2z/OIBSYBQdRkZCclk8m0u\n3SVd0q+2dF3nU5/6FE1NTTz99NOMjIyQzWZJJpMB4CeEIBQKEY/HmT17Np/85CffFF57LyocDnPj\njTfy/PPPs2nTJj71qU+96T7z5s3jL/7iLzh69CgPP/wwHR0dQdQowOzZs1m/fn3ggHUxmjFjBnPm\nzOHgwYMMDAxQW1t7QXCgH88aCoVYu3YthmGMgZsmUygUIp/Pk06nKSsrO8dRTJY8t/NjIZubm/mL\nv/gLysvLuffee9m4ceN5y9bR0UFvby9VVVVcccUV57zvu+v6kNVkzoWTtYMQInBgvPnmmzl58iRt\nbW185zvf4YEHHsCPcrVtm7NnzxKNRoPnA7574ERuWIZhcNddd/Gv//qvTJkyhd7e3gDinEylbmRC\nCBobG9E0je7u7gnd+8bvUypN02hoaAgigg8fPhyAVj6k48N0AKOjo+zfv5+FCxcybdo0Zs2axdDQ\nEI7jBMdva2ujvr6eV155hcOHDweOZJFIhFwuRzqd5p//+Z+5//77WbRo0ZjyNDU1BU5mvkpjYX2w\nzI9NHu94qOt6ADYtXryY6urqAET2j+G3hy/fsdCPrR0eHg6AVP977sSJEzQ0NDB9+nSi0Wjgalfq\nmhcKhXj11VeDaGNN01i0aBHd3d3B+Dxz5gz5fB7LsgiHw2iaRj6fp7Ozk5qamsBxcDyUNr7vhoeH\nSSaTgcOf31eT9b3f/365qqqqSKVS9PX1BQyGpmlBvX0HQd9dL5vNUlVVxQc+8AG2bdvGsWPHKCsr\n4/rrrx/Trv75ysrK2LhxY/C5LQVOpZT85Cc/CcBwIHCvLK237yw4vr/8svrApeu65PN5PvShD7F/\n/35aW1uD5z6lrojj5feTruts376dfD7PkiVLuPXWW4NxZRjGGEjNL78/Lj7xiU/Q2trKmTNnaGlp\nYfny5Zimydq1a3n88cfZtm0bixYtCtry0KFD5PN5mpqaWLFiBUIILMvCtm0ymUzgduqDpn6cuK+1\na9fy/PPPs3PnTu65557ge/eHP/whR44cIRaLsWrVquAz57tY+vU9dOhQ4Da5YMEC7r//fsrKyujp\n6WHz5s20traSSqUYHR0llUrx7LPPsnbt2uB350LV09MDcFH3Hbqus2zZMpYtW0Zvby8dHR1kMhlM\n06SyspJvfvObjIyMXPC803j5UKD/XfBekx8T3djYeMGLAUolhKChoSFwdr2kd4feUcBv/A98Z2fn\nO3m6S+LCXXXeKmT2XtPFQnVCCMK1C1W8bPderO59RCNhmpubA+Bh9erV53VwmExvZwzzmzk9CfyV\nTVmkZyFEAVwKClOMjHyzc72ZzgcvSM8heCqe7VEAV/Cm7+wVPHWfWLk+QCIidVC1GNn5EvbwSVyj\nChm7rOhQ6KQATYFUCAUGCm0crFeUqFmG7NqkHNnK5qrt/AjdANYrFEwUnSgKFVMRtp4L4frCZsV4\n1eJJzl2tH2yb6lDvmbGCu2FVEe6byPUu3qzijbs3Kce0UKWCtvwyFgAnrCHABrMSLBstUk6o9gpy\nZ7Yq97rOF6HumrERtKCcA1OnC45oc0pc1ig6GwpD/fGd/XzQCQ/S7er/U9ZArLGwf4k7Y+kEzNAh\n9W8jCrXXqD4TmgL2/POa5VA+R4GDA7sV4GiNqDZ3MwVgVFPjI9+n2k5K1bbZHuVuKCWuLjANDcuz\nFCwXSmCPnFLHsVPKPTE2tQgWlsJo/qQMKMgzdUL9PwDsJnCn83cWUrWVLES/6oaqz+ABNXZi/orH\nkv21UAHGFWq/giNedOo1GIlGRo/8BC+fhHAdUnoIoTMmBE1oCt6NTuGccei3t2UXPhuUQJx+ZbWJ\nx7EvaRfq5kOAngIdjbhykfTdGc8BqQvHlxTHhdAUTOpH88abOccNsXQWuLQuUhaBSSetjhNrgvI5\niMEDiOwpzMpmdSNqGmQ69qoylM0sOgOKglufmy8Ct+Nfo9AXZXNUNHGyTY0VPPVZ6duNkDZm1Uz0\nKYvI5/O4roKLi23mwWgrmnSZOq2Ju+++O3Dua2lpCaC6XC5HX18fnpMn338EvfmGi77Y92Pc/RWH\nFypN01iyZMmE7nBf/vKX6ewZ/KVBh+9G/TKdGS/pkt5tWrhwIX/5l3/J0aNH2bRpE/v27cO2bXBB\nmBrz5s1j/fr1XHXVVeeskr6koubPn8/UaZdx9lSGJza7fPim87v4+YpHJT0DgvKyGB/40L2sX79+\nTDzLW9X69evZvn07Z8+08tCj8Pv3WZSdZ85fSvjPTQbP7gyjmRVBzJKaSFNOapPJ0I3iREYWohFJ\nyCRIyLQLTeGDf0NJ+ObjId44GaGssoFPf/rTb1off5U9eDQ3nHtdKDRJyJB4Hvx8b4zbr08GfND4\ntSQTHh/YdiCOZQuuXZLl7tVpMjmNra/FePLlEL91p6oTwHBKXUPNmmqTiHqkMhp5G8KhIpNUqroq\nyfVXZnjlYIzN++J8eP0oSHA8SGUF8agcU67S25qRlMaeN6JYtqC20kEA0bBXvJSepEKlV5mb9sSJ\nhD3uWj3KVQvUg17LFliOiss1zXPbc9n8HPfcNMIPnq/guV0JlszOBWtKAK5bkuG14xHSWY3qcoec\nJbh8luT9qx3+9yMm6azGU1vLaO8Mccs1aZbMzqMV1nusWZ7hPzeX8cIrcZqn2Dj+bYkOtqvKFik4\n/fnnK4upOp/tNWg/a1KZcPnwhlGkVCCyJ1V9XQ98kzSA518tQwiYUu3wx5/sY0p18d4rEfPI5jUc\nV0X0zmu2+PxHBviXn1ZxqC3Ci7vVvgJJJOwpiFBCRcIlGpb0Dev0DBo8/0oZ2bzAkwKhqQlPTXgk\noh4VCY+mWo/OfoN//WkVX7h3mPKIUVynVNJPMvhbsu8Ng6GkTiQep7JupnLvC67Zi53uT75ouonn\n2niug26E0XWTmoY59J45xOhQJ/GKKZTshBmKBa51o4NnyST7MUIRZl9+I4YZYtszD5PM9mNOqQ7A\nwuKYE2Nvz0rHYOHfocYa5TiXK9zXeCXkaWFiTpj6Obd4AhHcd8msutYXBVtQadlEF80gs+840vUI\nzym60gXjPbi3VNsDCF0je7AdgMjcaeiJKNIquKHo6kthvGNIaftGF88kc+AE+Y4e4tk8eixCqLYC\no7YCd2CUiCOJFhznnFQG6bpoiQTGlCoFCoZMZC6PdFV0sTANBTm6Ll7OQgsZgZWnEILwjAYyryVx\nBkeRzfVkjpwktfMwSEnlVQsoXzCDXD6vJsQl4Lnqr5xFvq0LTcLHP/Yxbr31VrLZLI888gg7duwg\nnctiey5eYdITQyfZeoZMRw+xmY1Ur1xEpKHmnDaYSCOH2jA1neXLl1/Q9uMVi8VYtmzZmNeOHz+u\nhof1Fu+HpMS1bAT6BbvdvpsUuI/8As+s1XeCPC9scUmX9G6VEILbbruNm266iVdffZVNmzbR1tY2\nxgFr5cqVrF+//pJr35to/fr1PP/88+zYsYPrr7+eBQsWvOk+vmNROp2moqKCL33pSzQ0NBCLxX7h\neLyPfvSj/PVf/zWjo6MIIaipqTnvc0DXdenq6kJKybRpak4QFISTzWaxbXtS0DAajeK6Lo7jkEwm\nicfjQfl9eKz0Hu+NN97gG9/4BqlUiiVLlgTnOp+Gh4cBmDZt2oRto+t6ENG6f/9+brnlluC987nl\n+crlcrS2tuK6LjfddBPl5eV85Stf4cyZM+zatYtrr72WUChEX18fUkqqq6upr68nl8uRzWbJZrMY\nhnHOOYQQbNiwgaeffhrLsojH40FdJroOGw9S1dfXB05fuVxuDCB1IfJd7Hz4x7IshBABsOc71o2X\nDxNVV1dTV1fHqVOngvds26a7u5vm5ubABU8IwW/+5m/S2trKSy+9xOjoKA899BDr1q1j/fr1TJ06\nFYDLLruMWbNmBY6Iw8PDAZTml8d3gvSPK4QI+ry8vDxwtqyoqAiAtYn62XEchoaGsG2b/v5+Wltb\nxwB7fhy2lBLbtjl9+jSDg4NceeWVgbOc/xkNh8M4jkMoFKKpqQnLshgdHeX48eMBgOa3q+d5RCIR\nwuEwjY2NdHd3k0ql6OjoYN68eUFdS8s73nnu2LFjgHKSi0QiY+JtJ5If/eq3pf8ZLIUvfRmGQSKR\nCI7V09ODruusWLGC97///axYsYIHH3yQuro6ampqgmP6miwOt/T/9fX1dHR0kEwmA4dAv5y2bQdj\nczLlcrkAYItEInieh2VZrFu3jvb2dhzH4dprr510/1KoWNd1lYiAgnd9wM4vz0TfD6XjbsOGDXzv\ne99j27ZtrFixAl3Xue6663j88cfp6OigoqIi2O/EiRPous6iRYuCuOdIJBI463meRygUwvM8HMch\nlUqN+b5vbGykqamJzs5O+vv7iUajPP7447zyyisYhsHnPvc5ampqAvjUcZygLnv37mV4eJiysjL+\n8A//kEWLFtHa2so3v/lNDh48OKZ9YrEYruvyve99j5/+9Kdcf/313HXXXRcE7GWzWXbt2gUwoUvn\nhai+vv6c+aVYLMbIyAiZTIaamgu7NyuVD3m/V+eILtZVcSL5+166J3r36B2dyfB/0Nvb25FSqpXp\nl/SO60Jcdd4qZPZe01uF6rzcEPbgMRKJBJ/85Mcv6EbmQvR2xTBfiNNTKBzGcVxlZ+zmEQE8ROC+\n5gMHv0jk8/ngBeVkZQBSgWMVCyaAf84j6UKqXf1dPkc5d9WtQPbuwB0+BpHpJSvoCzN0WkjBOZ41\ncUSxr1iTco5z0kXIS510LPRTLEzxn5kzYBfc4qRTgIMMzpkJGDO7UDKdJaUC4jQTqguRoaVwm++w\nNl5BZOgOBRuVzyeIDJVA+WwFkEkX7BGEkESmXk+oYjr53gNgJVXd/Ajq8jkKCNNMECGE0JQDWrqj\nAL0ZhXaVClTy+86HrPQC6JXuACerXABDVQVXOL/+gqIrG2oc5LrU+aesgUjJxaIWUu3pFSAwCUTr\nof4G6NkK1qA6jmaAUa5AMz2kwMdE4UFWqk251zkZhDNKZXkVkUiEs53doGl4Tk6BYdFG1Y8D+5Wz\nW3RKSZmh6NpY0pf5IVXvcF2hbUogxokkNAIQTrqqrTmgwEJ/HMiSbYOxKiF9Joh+zYtKcDyEpm5c\npWaA9JBSK9n/Ah4eGIlCnHNfwUWxJCoXef6YYVDgJFK59GlGccyWzYbB/YU6lrRjKdgJqh0C50cB\nyePqn2WzizAkUHQQnAyQFWqbstkqjjjdgSibrtpXtKDLHPF4cfLEy4+qY4X91aFjaN2C06Qotr90\nx74WKexnDcHwIfXZczMIwKycgV6/snATOEFZM50IJ41p6rz//e9n3bp1vPjii7zwwgt0dfeQt11c\nV00sSiSeFFj9h3EzvQXYfOEFPRgaH+P+dulCY+4n01uFDt9N+mU7M17SJb3bJIRgwYIFLFiwACkl\n+Xw+eCB76T7owiSE4KMf/Sh//9Df8fRWF9OU3LnaPe+lQyoD//j9EGf7ojROncEtt9zytoEJsViM\nBx54gL/+q7/iROcZvvjPgnVXu6y9yqGqvLid7cDuQxovvmrQdjaEMMr5rd/6NJdffjmAcg8UOifP\nCtach+WIRCLB2MnkIJeXhEPQ2W/gSUEiCsdPaWzerbPniI5HlIrqBh588A8mdZYoleu6BeexiSG6\nshgYukDXPAZHdV47Fgmc6oIo2/Mcv7tf53BbGMcV3HR1BiHgIxuS7GiJcrDVZGBEJxF1gjYDMA2J\noSuHwrwtyFuTu/ituzrNvqNRXt4fZ0aDxVULc+CBLQXJtCBkKkCxdLxk8oJ/+GEN6axymmtpjfCR\n9aMTuvf55wGCOkugvdPkbJ9JdbnLDUuVK0TeFmTyamNTlxO2p5Sw7qq0crTrM+kZNJjTbAXvLZ2X\no7rcJZvTGBo1MA1Yv8Jm7xGdcEiQzUnSOcG+oxEOnghTV+WwcIZFNCwZSmqkMhr7jka5pTdFY41D\nLAqWpcqdtwWGrtq2dB2XpsGzu8oAwdULM7ieIJUVQZkQKg7XCKsdeod0jpwMUxbz+PxHBsbAfaCS\nYiMhD9cVZPNC3X6EJJ++a4iHHqvldI/JB9aOsGiWxeCoRsiU1Fe5XNZoo2vQPahzpC3MwIjOMzvL\nSGbVNYSueVSWufzaxlFuuDJD3hJ89m8aaO8K8X/+o5pPfzBHQ40XQHOly4A8D/a9YfLIU1EkAjMc\nRzdMpPSQrg8Nn7tIyHfkk56L6+TRjTChiHJXc+yxTh6apiO0QuSgY9F+aDNSSmqb5pNKZzAMC09K\nEBrCNArxsn6WtF+C4odq3B04AEZtBXgSu2cQL59HGL6Tn16I6hUqrhbU/ZbtKVe6AgPoZvNYnf0K\nRpxSpa7xPA8tZBJqriN3ohMvW+JKIEvKhFRRtY4LCDzHJXf8DADRRTOUo16x5Yq3pVIWK1FSGb0s\nRuiyKVgnu8mf7CZUV6lej0VwB0bxchbWcJJ89yC5viGkBC1kKIhQgPRK7kU9WQAPC/SqJxXQZjsI\nXVeRvCEDPEnu+BkyB04EXzjlV87FXHwZGX8xiiYC2FIiyR09hbQddCE4c+YMnZ2dfP3rX6e7vw/L\ndYhMq6dm8SzMqjIQgpHefnInzmKd7CHd3knmVDdTbllF2bzpnE/2aJpsexcVkejbej/U2NiILjQy\nJ7uoXrnozXcYp1xnP8J2qaipfk9ezwdRopaNZ9looYtfJOCks8ol8i1EJF/SJb1bFAqFuOGGG7jh\nhhsCNyzfseqtOMG8F9XQ0MBNN93Eiy++yNe+9jXuv//+N4X8jh8/zj/+4z/iOA7r1q1j7ty5b1t5\n5s6dy+/8zu/w8MMPk0wmyWazVFRUkEgkxtznOo7D6OgoIyMj6LpOQ0MDDz74YOBWW1VVxcjICN3d\n3cyePXkUejweJ5VK4bpu4DwWDofp6urCj+Lctm1bAJECXH755fzu7/7uBQEJPsQy2cK7srIyhoeH\nkVJy6NAhVq9efVGuVK+//jr5fJ7q6uogJviuu+7iW9/6Flu3buXaa68N3LigCCyGw+HCgmwFOE60\nWC0UCrFu3TqeeOIJFixYwP79+89xnPNV+v9EIsHcuXMDJ7OmpibOnDkzaR1KwSsfHvTr0tfXRzab\nDeJvfRikNKZzPLjV3t4etMfp06eDbYUQdHd3M3Xq1AA6nD17NrZtB85PlmXhOA7PPvssL774oloU\nOHUquq4HEF80GmVwcDBwtUulUvixqqV959fFd47TdZ3q6uoxTl3j6+3X2bIsRkZGOHbs2IQucX4b\n+PHD2WyWQ4cOsXTpUhKJBF/84hexLItkMklZWRnNzc3U19fjeR7Hjh2jo6ODU6dO8cILLxCNRhkd\nHSUajdLU1MR9993HzJkzOXz4MA899FAQubtw4cIALBvv3uc4Dq2trfT39wPqOqcU3pvMrc4wjCBy\n1gfy/Nd8iLEU3PbbIpVK0dPTg2marFq1ipGREUZGRjBNMwDwfDdCv+9L23uy34f6+npaW1vZv38/\nt912W9BXPnTow5N+FLxfP/+Yu3btQkrJjBkziMVipNNpstksy5cv54c//CHDw8MBKDi+3/0YbD/S\n+PDhw/T39wex0/7YLHU+LK1TqYQQXHvttfzoRz/ixIkTDA0NUV5eHsRm+5Hmx48fp6+vL4idjUQi\nwXj2x1YpkOfDq/73pQ8o+/HNtm3z3e9+l5MnTwLqO+RTn/oU06ZNC2BPP57XP+6WLVsCgLerq4vh\n4WG++93v4nleELfsJ5nkcjna29vZsWMH7e3tvPjii7S0tPDggw8Gjo+TaceOHeTzeebNm8e0adPO\nu+3FqLGxka6uLlpaWmhubr7o/VtaWgD1W/xelH8f4wPkb0V+VPp7cdHYu1XvuFXBr/3ar/GVr3wF\ngK6uLrZu3cqNN974Tp/2kji/q84lXbjeLqju7dDbFcN8IdCFoPhlryA/CzyhgLdsl4LyNJNcb8sv\nFPl8PnhBC5dDZkA5jTkZBS0lplNcWv8mDyHSp8FJKwejaOHHP96s4DA7pZy7zMsKJ/PhHFuBSp6m\noDTpjgP1/AZSbmNiqAUGX0MaCQiVE0wFjIF+tOIMgTUI/a8UQCWp4Laqc63nVVkomf0pWbaf7VQu\neGYFRJvGwn1+2SZTbFxkaHRKYPpHuE7V1Yir8jkZcme2Y/UeKHgOeCAdhAghnbSCo4Zaisf2HIR0\nkIP7VVuYJbOsnl2IDS5xZ5CectULYkp997ZxF9yeoxzsPAmjR9VrNcuUC+GY9vIoRtX67SXVdjXL\noe8V1beRRvAyRfjQ3zzaWHAPdCA/iOh+iVgsRnd3j9pAi0DdSuVeiECcfBzppKB3q3ISUql7ewAA\nIABJREFUjE+l6Ero95lQfZM5o/peGIUoX6PA7vkuhe7E/eaDcJ6NcoSDIAdKNc7Y+koUSNj/qtq0\nbBaWbaubIlkoj+cUXPh0xn6GJvhclb4dbVTOkcl2qFgEjFvtUVp+6RXKKYv/Tx5TfydmFsBSXdU7\nVE0A42njH5SU7O9/ZkShTe10oVwNY0FAMW7fyRSdAkOoz4LQxziT2smzWIPH8fKjOKlupNDV2Aki\niQsnEjoKwJwgdhpZLLP0ID8IdhKh6WjhckI1l+NEp5PNWYWPuFCgsx/Pmx9Uzn/SwfUMHn30MZ58\n8klGRpPk8i6eHiNUM59QohGhm0jXJtXfjjdyAjc3SvbsqzjpXmLNNwZxaZNpfIz726WLibkfr3cK\nOvyfpkuQ5CVd0tsnIcRFR1NcktLixYv59d/4Tb7znW/zX5tHOXTCZsNKh6sWemMie4eTsGWfzqbd\nBiPpKFW103jwwQff9gdIdXV1/OmXv8zXv/512k4c46dbcjz1ssWsqS7xqMSy4XSPRiobAhEhVlbB\nZz7zO1x55ZXBMa655hqeevKn7Ggx+MjNzqRRvwJBLKpWXedyOTzPI5uXPLczTjYnyOY0/ubfoiDC\nCD3K8mXL+djHPnbBq5INwyAUDmNlIJ2DxDh+Y/kCl2e26XgeSATfe6aS6Q191Fa4fgEnVSYv+MZP\nasjbgmn1NmVxdQ1THvdYcXmOna9H2dES5bIGNVETi6j3kxmNKdUu4QLgZ9kqgnii5/vTpzjctTrF\nj18s53s/q2IoNcrqpWlChnKdy+YFOUtgaCCE5GyfySP/XUn72RA5S8Fn3f0m7Z0h5l9mnXsCGGPK\n7D+Xf3pbGZoGqxZnCBkqljdvi6BJJroV9fc1DVizLM0zOxJs3hunobZ4bS2A2gqXviEDxwXLEXzr\nv0xChkTXPCJh1KWdFKSyGtl8iN5BMzifpqs6f/unVTxw3wCg4C7/UjeT04hFPExdYjkCyxZs2hNn\n58EouiZZvSw9xhDc71/LFoRDynHupd1xpISrFmS5rLF4/em4RQdDVeHCVatQwGO83OP265N8+8kq\nHt9cwc92Fif8NAFL5+fYcHWahTPyVF+ZIZ3V2HogwWgGXNeiMuHy4H2DXD6zMPFpSBJxl87+CB09\nIf78WyYLZtisXm4xs8nFNCSprMaBYwZb94foHTLI2WE0rXiNrukGnusUDNtcdOPcjtONEI6VxSuA\ngJ6nxr6mKedwz3ODiF8pwclneWPvk6SGu9F0A92IkEkNEo1XIYSm4nZtBdZKTy1Cu2C0QddU9Kzt\nkD/eSezKwkS4P0ALcJu0bXXsEkkJuSMdASCXPdROfOlc5YDnuuhVKvJO5u0xt/5IkK6LtF1171gg\nKKXlIC0HETYVeOieZ+FY6bEoTpCFGmqwTnbjprJ4tqOiYD0P6Xr0bz+ANTCCdFw811PndFUZgh7U\nBMI0wHGRrkdx0BXOKSXSc5A2yJyFdFzs7kH0cIjo1DriS2YhGqrULpqGZupjooVzbZ1kWtpASryw\nydYd29ny8stg6BgNVTRvWEGopuiqAeDFw4SaavFW2mRaTpA93EHPszvRDJ34rKlMJOl69G3ag6lp\nrLh6BeXl5RNu91a0cuVKHnvsMfq6B8j3DRGuu7ho+pGWVkxNZ82aNb/wwoTOzk7a2trIZDLouk5F\nRQWLFy/+lb420jSNOXPm0PLGYZJHT1GxZHL4ZCJJKUm+0YGpaW8rWHNJl/Q/WbquXwJe36I++tGP\nMjw8zJ49e/jqV7/KqlVq3me8+2F7ezubNm1ix44duK7L0qVL+fjHP/62l2flypXEYjEefvhhhoeH\nGRwcpL+/PwB8/BhSPxJ11qxZfOELXxhzn7Jq1SpOnTrFvn37zgv4+fBVNpsNAJp8Ps/evXtJpVJs\n27YtMHeJxWKsW7eOD3zgAxfslO+PycmiA5ctW0ZnZyfhcJhsNstTTz3FBz/4weC38XygaldXF9u2\nbcO2bdasWTOm/X7wgx9w9uxZTp48ydKlS4P71mQyGUBF/jnz+fyEgJ+Ukptvvpnjx4+zd+9eli5d\nyhtvvMHQ0NCE7QjqfnbevHnBwkM/qrezs3NCKK8UgiuFnRobG3Fdl87OzgAEKt1/Mhc5gMHBwSBG\ntLq6moGBgeC9XC43BlA7ceIEp0+fDmAtKWXgVAcKoDx69GhwHh/qa2xspK+vb0y/+uPSH6f+MWpr\nawmHwyQSiXOcxvz6lsJUXV1dOI7D6dOnx/S/67oB9DZe4XAYKSUjIyNEIhH+6q/+aoxzZTwe58Yb\nb2TdunXMnz+f5uZm2traePnll0mlUhiGwdSpU7n//vsDSDYejweRwz09PfT09NDY2Mi0adOCa6xs\nNktnZyddXV0BkFXapz4Y6UN+E41nP253MkdDH3jzgdrh4WGOHj2KlJKmpqYgztfvN78fLcsaA3tP\nBhmWlqmurg7HcWhvb6erq4vKyrFzdLquB1HG3jn3RJLNmzeTTqfp7e1l9+7dLF++nFwuh6Zp1NbW\nMjo6yujo6Bj3PH/c+OX2jzU4OIgQgnnz5mEYxhgwcDKVtl0kEmH69OkcPXqUnp4empqagn7I5/P8\n8R//MZ2dnTiOE7gO2v5cW0nfGIYRwMDjHdJ88M+HBrPZLIcPHyaRSAQuunV1dQghAvjSB/w8z+OR\nRx7h1KlTmKaJYRg88sgjwcLlW265hTvvvDMYj3796uvrWbFiBQMDAzz66KN0dHTwN3/zN/zpn/6p\nWuw6gXp7e3niiScA5Vr7dmrNmjXs27ePzZs3s3HjxotyorMsi5dffhkgiE5/q3Jdl6NHj9LX10cu\nlyMSiVBfX8/8+fN/pReBz5w5E03TOHr0KIODg1RXv7kJVam6urpoa2vDNE1mzJjxzhTykn7pescB\nv3vuuYcf/vCHHD9+HCklf/u3f8vVV1/9nlx5eEn/M/V2QXVvl96OGOYLhS6EgFg8NuYCRbp5GDmO\n8PK46U40q+8Xinw+H7wQqp6LPXzSD7NR0JJZdi7YNZFygzCwRwF7FYtKHrprxajTdAeUTUfNepRB\nfrgYBazp6uG15yImvOCQkJiFsPqRqVPKIa5mmYKgRAnk5UM/0oNMJwy+VnDvKtTKyaj42PgkKxf8\nGa0A8gOGXi8AhjMLD/jd4nuTgo+F14UoRoam2ovuYrLQNj50p4eRSFw7jefk1b5aGImHdNJoRgwt\nXKYAJ89B6CbCTCDtNE6qC9m1pdAeTaotpadANd/Z0LMh2QFD+9W/49MU+DUGyiqpk3Qh26vATL3g\noCdKHdMcJnbDK8yORBvBiCkHusyp4r6g+j19WjnLlc9TEKTnoGmCwcFBbMdV0GPTBuWC6MuIKTjM\ns5SroVFwNYxMAWGCtFSZk61qOynV7FlQNB0ojA/PVWUKZi9LtvFBOCdTeK3Eqc93nhQGuI4a04P7\nlCOiZkJuABGqRIZrFdjKMOT7VT18V8Xx5yxptjHyYTXftXK8ayFCQX2l4KSvdMG10rNhYK+K1i0r\nPGAP4DOpwFUjEUxcqXHjjDuHP8Z9x0pz7PnOx/6W3qSKwkMZr+D6WIhpdnODpE48j+8GKfEKY7bU\ncVEoYBVvEhPGEii30EfC/z7QTcL1y7FDddi2rbbUSxxSpQfpU4UIXwezZh562WWkTm0imU4jjBix\n5tUTgubRKWVkErORhe8ae/gkGSA2fc2kD7veSrT6hepiY+5L9XZBh57ncfDgwTFxxv7N2+rVq1m8\nePGv9A3cJUjyki7pkn5VtHr1auLxOP/yL9/i2OlRjp3KURG3aW7wMA1IZwWtpzU8GQYtwoxZc7j/\n/vsnfXj4VuQ4Dnv37mXnzp0MDw9jWRZTGpSzwNDQIK2dXuHaGUCnecYMbrrpJlatWnVORMy0adOY\nv2AhRw/vYccBm5uuOX9MRTgUJhQK4dgOQ6MWe96IYrs6tbX1VFdXc80117B27dqLftAGMGPGDI4d\nGeDVgzbrV4wtx+xpkukNko4uwZRqh94hg7/6bh1fuGeAyxrsSS95Bkc1vvbDGlrPhLAdwW/eMTLm\n/RuuzLDz9SjHT4fxPDXhclmDzalukz1HosyZZqPrYGgqctdxi1HEvrxCc3f1KyfyVEbjyZfL2bwn\nwY1LMyybnyUSkuRtONtnsv21GMdOh8lbAk2DqXUu/SPKdexfn6riS7/RR1nMX9k/9rKtFPLL5gWv\nHo5i6JIlc3J4UrnjCcAwJI57bqvIcde5y+ZneWZHgrN9pv+S2g61pshylINYPOIxfYrNuqsy1Fe7\n5PPQN6zz6uEoHd0hpBQYBqy/2mXqFElVmeTHLxqcOG3yv79Xy/9aP8IVc/JEwhLbFdg2pHMaugYj\nSY3nX0mwvUVNJH7sfcPUV7kgVLKpaUg0IcnmNTyPAigpeXF3AtOQrFmWwdBVeTNZDafkmlQvWV/m\nemC7CvxbMCNHPOKRzhpEQ5KqchfLEQyO6ux7I8K+NyI01Dh84n3DJGKS0bSawIhFPO65aTSA+3xZ\nloYZClM3bT69Z9toOZHjcLuNEL6Tn8CVOo5roocrmDbzCs4c34mVS+K6Npoo2Bki8VwbTS+6PQTd\nJTQMM4Jj5/Bch8xon4L6NDUxJgvX2nY+w+mOXfSdOUQ+O4rnOhhEOHviFc6eeIXy6mlq4aCHgsyq\nEkjbRYRKMq9L4coJZHX0qMWJjkv2yEnCc5vQwiVxdlLi5f02EghDVy5/QuCmc+SOnVGOnYZOZt9x\nrNN9VG5cCboeRAu76RwyZwUfAukVClYKzgmhFosJFBAnx03Glbr2UbIf/qEKk1pm4f7DdpGWg5O3\ncQaTeHmLXO8Q6Bp6WQyZzSMzObx0HjeVRS+QyL6zmt9oouSaWkqpBmdBdt+wgh5dD0ydyKKZyCmV\nSJQzoFbyBeNZDtlD7SR3HVbQ7eplxOc20/Gdp5ASItNqqL3jejxNkMtmC8/AdMwCwODYNoRN4tcs\nRIuGSe89RvfPdvL/s/feYXZc9f3/60y5/d7t2tVqV72t1axu9WobGwO2ARviGIfYiAdsAoY4JjEh\nhCT8IMGF8I3BBsPXfG2DaEYYjGyr2JJWvVi9rlba3uvtd8rvj3Nntqi6AeHZz/NIWu2dmVNn7pxz\nXuf9HvU370cLDpyLtjIGzet3kq5tYVhePh/5yEcu0fpvL7xeL4sXL+b3r/yBzn0nKL7xuqtWy8p0\nR4lV1RFWPW97McswDPbv38+mTZs4dvw4Rtb6WACKEIQCQRYtWjTAXu/PLVatWsWJUyfpPnSayNSx\nb0ltLFHXgtkVpaRw2AX2yUMxFEMxFG81VFXlM5/5DGvXruXVV1+lsrKSyspKRowYQWGhXNNob28f\noMK2cuVK7rrrrndsyds/enp62Lp1K4cPHyYWi5Gbm4vf7ycej7tgmgNghcNhZs2axerVq6mouNDl\nY+nSpbz44otUVVXR1dV1AagzOPx+Pz6fj3Q6zdGjR12LztzcXEpKSli+fDnz5s27rD3nxcKx5q2q\nqqK9vf2CzVIrVqzg5Zdfdm1wq6ur+fWvf80tt9xyWVC9urqadevWEYvF8Pv93HHHHe5nuq4zf/58\nNmzYwOnTp5k+fTq5ublEIhF6eno4deoUkyZNcm2MHdvbwXVoWRbJZJKuri50XSccDjNz5kzi8Tit\nra10dna6Fq95eXmUlpbi9/vRNI3i4mKi0SipVAq/38+4ceM4ffr0RcsyGPLLzc3F4/EQj8ddZaaL\nxcXgPidaWloYM2YMwWBwAOA3ON10Ok1nZyemaWJZFrFYDK/XS15eHn6/H1VVKSgoYPny5eTlSTek\n//mf/8G2bQoKCujo6HDrPJFIyE1ziQSKouDxeCgsLCQYDBIIBAbAJ46VL0jrYAeC6+3tJRaLufXu\nAHJOG/Uve/9IJpMkk0lqamrIzc11+66u66RSKbq7u3n55ZdZv349s2fP5qMf/Sj19fXutSORCGvW\nrBkAUyUSCXRdp7y8HJ/Px9mzZ2lqanKhSycURUFRFEaPHk15eTnbtm1zrVgdyBO4pFKkAwU6cFkm\nk3FhSgdoVFWVrq4umpqa6Orqcu2QGxoaeP755/F6vVx77bUIIWhra3OV7xyL7sv1FScsy+LYsWM4\nlsXr1q3j7rvvRlVV91ynrZw2dAA4x2K7trYWkM+yp59+mtWrV/ORj3zEVZe1bZuuri53bsVRynN+\ndtq2f7058Gb//DvQY/++fLGfnedVKpUiGo1SX1+PaZrE43EaGhpcS+euri5SqZSrvNc/HccyWFEU\n93nvKC46dRGLxWhubnZVJcvLywfAfaFQaAAU3draytq1a9m7dy8ej4evfvWrri1vIBDg1ltv5aab\nbnLTdwBBVVUJBAJEo1EKCgp48MEH+e53v0tVVRVPPfUUX/7yly9o14aGBh577DF6e3uZMmUKc+fO\nvWw/eKsxbdo0CgsLaWtrY+/evcyfP/+qz926dSuxWMx1DH070dvby9atW9m0aZOroNk/hg0bxooV\nK1iyZMmA+/vPJXJzc5kzZw67d+/mjTfe4LbbbntL52/evBmABQsWDCn4/QXFew74qarKd77zHT72\nsY/R09PDmTNn+PznP893vvOdIchvKP7XxLsB1b3TuBik4PV6mThhPCBf/pLJ5FXZML8V6EIAXq8H\nj1cuaCXbz2BacXw+L5MmTaK4uPgdWT5fDl7QQqUo3jBmsgfhzcdOdULjRmkzGxjBQGW9fqpwsVoJ\nAxpxaS1cMGdgoo7VqRHtg5zCYyFa288KOAtf2Reld7LnZdO1bTDjMk0tlIW8hslrmCmpFNh7NguD\nZSRMqPqkZacDLmoh8GYH0Rdd0ZKHkuqEZLMEurxFfeVWdAkk2RdRYRuYcWlb24kExlQv7sUzvX3H\nWCkJMOVeg+0fjtCDEmSL1UFvNbYRw4y1oAaK8JctQtF8WGaaeM0bEmiy++pDRMZj63lZaNKAZKuE\nC42sAluwXFoNO/XZX/XQMrOgVQZ6q2TewqPlMUIZpF6oyDREv0UasoCYQAKEXYek8mHxQhAeCYAm\nmmW7Z6ISPks0IvQIqqqQSiVlXRfOHQj3gUxX6JA7RQJZmSh0OIqGgwZDWlAqGmZ6INEkIdIB4ahF\naoNWIJHtYKVlP8qqC9J1LAtn2rKOkq3SXtiIyTI5/TLRgJ1oROgh8BbJwUu0WtrTDlBVvEJYRrb+\ns3lt2w3FS7IqjQ7Ilrl4W6S6JFCKnYUis/WcbIWiQS/ziUZ5f1wQ/YA5RFYF0QH0Bt+nFhd/vekH\nCWLjKiEqmlQojdaCbSAsE1tYsl5UTxZstKQ1cf8+YKX6XbtfeQdAiUKWEwsbRVa1kSReswlbC0Jw\nDCI0AhSvTCfRBD1nBlj4BsqXkO44CULFVrwwbAlJJZ9kNNZXHYocLHs8WWt1UYath6B5G5muc6SD\nxXgLKwbWxnusOAtv3+b+3YAOLcu6pJ0xQqCeqmLnrt2UDpc2K6tXr/6zBP3+HCDJoRiKoRgKJ2bP\nnk1FxePs2LGDjRs30lBfS3e1mX22KghVZ9bMWaxatYqKiop37bmaSqV4+eWX2bx5Mz3d7WAlkd/3\nzgYWHWydktLybB4r3MWTy4EAq1at4uSJo/xiQ5oJIy1GDb/8ZLZAIBSdZ38fwLSCLFgwl3/4h394\nx+VbuXIlp04eZdOeJCvmDLQ/FgJWzTP58W81kmnBqJI055s8fO0HRUwdm2Ll3BjTxydd0OtMjYeN\ne4PsO+4nkRak0oLRw9PMnJQakGZ+RI5lpPIdeDywYnacrW8G2HogyO3Le/DoSLU1S1zwegqQzsDm\nfQF2HfGhqjYjcg06elRaOlVe2hbiDztCKMLZXS8ws5AawEdXdFPfqhNN+An5LVo7Nf6/Zwv5/J3S\ncnawgLm8BnT1KnxnbQHxlELQZxH02Q4fJm2FpZhYf67owrAh6JcHpDKC3FDfe2TGgO6oKt/DdCsL\ntnUzcVSGoM/JAyyakaC2ReO3b4Q5WeNl8z6Vz340g0e3aesSJDOCpjaNH/w2n6JcgxWz45TkZzAt\niCYU3jzt49Bpv6ti+MkPdDJrUhJNk/a6/e2F/V6LWFIhnRGcavTQHVUYWZxhfHka04JYQsHK7iPy\n6DYe3R6o0Z0FFtMZgVeHaeOT7Dgc4COrelg1V47HOnsVthwIsnlfkMY2jUdfKGRYnkFvXHUXSrp6\nVepaNMqG9SkeapqNIgQTp81n4tT5NNaepqn2DKlkHMM0EJoXfzCfwtIKcoeNwuMN0tVSTbS7ifaG\nUxSOmJxtZoFtW1iWmVXmGxhCUdE8fuK97XS1ncfIJKk5uY22hhMoiopppIj3tmMaGSzLQPcEGD5m\nFpruI52M0tFcRU9HHZZlYhtpEsfP4508UnYWAXh0dwOeTFBcMCaz0hkSx86DaaLmhrDiKXpe3Ufk\n+tmoHj3bV+V7ptC1PngOsBIputfvxkqk8IwsJnRdBb2b38Ro7aLr5V3kfmhRFpSzsXrjWTW8ftlR\nlb7fCRAeDTV7fTstF/cwnfkJJETodAr3In393ymqlc5uRPJqqIpC/HwTZm8chECJBLCjCaxESraR\nqmIbBsnTdQRnyo1aTp7c8goJxtqpdD/IUGDF4mQa2qSFsq5jRhO0r9+JmhPEXzEKb1kRQlOxUhlS\n1Y0kTtZKe18gf94U8uZNIdnYJlX+/B6CS6eTSPWzMs6Gqih4vF4CwSCxWAzLsvBPHU2muZNMXQs9\nR8+6NrlGLEnPsbP0HDqDiKcoCOfw4BcevCpr9bcaq1evZtOmTfScqqWrIIe8uddc8RwjlqRh3Ra8\nKMybN++qVWH7R0dHB4899hjnas6TtkwsVRAYW4rq92JbFqm2blqb23n51fW8tmEDH/rgB7n99tvf\nEkD3x4g5c+aQl5NLY3sb0ZM1hCePuqrzbNOkY8dhPIrK8uXLr1pFaiiGYiiG4nKhqip/9Vd/xapV\nq9i8eTNbt26lvr6e+vp69xi/38+SJUtYuXLlu2on2NTUxLp169i9e/cFClFOKIrC5MmTmTdvHqWl\npZSUlFx2w1UkEmHu3LlUVlby4osvctdddw1QNLtYCCGIx+Ns2bIFr9fLpz71KVavXv2OyhaJRJg9\neza7d+/m9ddf58Mf/vCAz4uKipgxYwZvvvkmZWVlNDQ0cO7cOZ588kmmTJnCzJkzGTZsGEIIMpkM\nJ0+e5MCBAzQ0NJBKpVAUhZtvvvmCsjl1E4/HSafT+P1+li1bxksvvcSmTZtcVadLgU+OytePfvQj\nWltbycnJQdd1Ojo68Hg8BIPBAcCaY42dyWTc9cbvfe97ZDIZ/H6/21+qqqoGWJoOtqjNzc11LaId\nZbD+n/eHoAYrqPUPR4XMsfZ1wgFAHEApmUzS2NiI3+934bP29nba29sJh8OUlJRgmiY7d+7kU5/6\n1AWKweFwmFQq5Vr+OhBbJBLB6/WiKAper5dx48bh9XrRNO0CKNYB2QzDoLW1FdM0aWtrc61Qnfw7\nEOTguQinLLZt09nZSTqdJicnh7vvvtsFehobGzlw4ADHjx9nz549VFdXE41GicfjCCEIBoMcO3aM\nOXPmuKqTzvuFx+PhnnvuobW1lb1793LmzBnicSnWoOs6o0aNYsaMGZSVlZFOp9m1axc9PT0uqOeE\nYRguDDc4dF1HCEFra6sLjp04ccJtE0dZ02nzsjI5H2zbNk1NTZw9e5Zdu3a5lro7duzgAx/4wADY\n8lLh5PHIkSPU1dW5QNqBAwcIBoPuO2R/G2EHjHPi5MmTPP300yiKwic+8QlCoRAvvPACGzZsQNM0\nPvrRj7pW4E7dOCGEGKDQ57SH03bxeNwFIJ26G2wHPVil0PnXaadAIIAQgq1bt5JOp4lEIoRCIXp7\ne9304/E4NTU11NTUMHLkSLfehRD4/X4XlDRNk1gs5t6TiqKwb98+UqkUubm5RKNRjh8/zte//nUm\nTZrE8uXL3fmrjo4Otm7d6loC+/1+Pve5zzF+/Hj27t2L3+9n9uzZLFmyxM27E4lEwrVQDwQCbr3c\nd999fO1rX+P48eMD8n7+/Hk2bdrEjh07SKfTjB07lvvvv/9dhdJBfjfdeOONPP/88zzzzDMUFhZe\nVjXWiaNHj/LCCy8AcNNNN72tccrBgwf53ve+5/b7wsJCJk+ejM/nI5lMcuzYMVpaWli7di2//e1v\nuf/++5k6depbTue9jpUrV7J79242bNjAkiVL3I0FV4rGxkZXAfHdVmYcij9t/FFGt2PGjOFHP/oR\nn/rUp9yH0+23385XvvIVFi1a9MfIwlAMxTsOB1RYtWoVR48edUG7RCJxVVDd240rQgqqwKurbwlS\neDvQhQAUowe7fT/hgI977rmb66+//h2X73LwghACb2EFifrd2OlehH8YdqIlq5YWlEp0/uI+uM2B\nYxxVNYD8WRd6NCk6IBCWgW0Z0nY4C7HZmZiE2IJll823bRmInirsaK2cINf8CDOJne6E9gNczG5V\nqD5s2wQUbC2ISHcj9Ah2JgpNDrhYnlVtG7SoYFnS5rVtN64SnGMrjNKn8iYzNyj9Adv9JdgG2eOd\n4wQk2+R5/mIJ/1kZCf1FJmFrXiAoVeDC47ETjdB+ADPeSvTUb1BUqWZmmQZoQZTIWIg3Ymei2O0H\nBtWE1aeGpvikkpvQsup+g9sqa81rm9Li1rb7rIRduE/0KQP2L3NWvQU1qyDoGybLa8RAz+/rF94C\nCXU6YGisDqwMGZGVohcgYrUS9vIP7wPilKziXrBM2iwnmiQEZ0Rl3QlVAm3BUTLtdCc0b5HH5Ezu\nB9b1A+Qce9YLOo8GsXPZthXQ+eagRaesTazqh3CFBFZtU0KBPadlH8v0ym6Vicm8BrL2zuj9VPQG\nhY28t3qzQKbikeWJ18qy5M8E/wgGKEk6bWFbsi7bdsuyhcZA4XVS/a9tl4QisUHPy9aFgOi5rFVz\n9v/OdQb0iWw/0UOyThNN8nngVoUpLZ0vrMR+hUKCnSDhRyzsaLVU7BOKTMN5xggd/6MUAAAgAElE\nQVRFqiJGz0NORTY//epe8fT1vcHAqRCy3VCh4Fps20T0npJqhmYGkTkMPccvyKXiDeMtvAZPgZys\nSbUdl4POgpnYeiQ7adHXTwxhujLxEvTzkCYXO+9aaNtFsnEvir8QRfX8URVn4U9jc5/JZHjqqafY\nuXM3iZRxUTtjI9pIrP0kVdV1NPzkOU6fPs2aNWsuukvyTxl/SkhyKIZiKIbiYhEIBFi1ahUrV66k\ntrbWnRwPBAKUlpa+q4p9IHd1P/HEE5w9cxzsBCOKMqyYYzKm1MLjgd6YYN9xhcqDGk31p/l9Yz0+\nn48pU6ZccfJv7ty5XLdgMTu3v8G3/i88cGeaa8ZeegEkloAnf6Fz9KyPcG4x99xzz1sqx8GDB+np\n6cEwDAKBAOPHj2fMmDHMmTOHcCSfupYYe48ZzJ0yMA+LrjXZ9qbK6RoNj8fmuqkJ9hzzcfisjyNn\nvSDAq9muNattS7taw4RI0OTum7sv2M/hAHCKIjAtgWnajB2RYfTwDOcaNTbsCXHzwugly2PZUN2g\n8ctNERIphZDfojeuoms2QtikMwqpLMwXCVqMKU2zeEYCj8fmmXW57Dvh54NLezhwUirxjRiWoa5F\n55HvFzN7UoKVc2JMHp2We1YsqG7Q2bQ3yK6jATKGLC9AxpTDIgvwuGCcwDAc+6oLtt0AYBgCBPg8\nAz89cc5LV6/CiKIMo0oyHD7r5anf5POlj7cxtsxRKlOwLSgfZvDp2zv5ye9lef79hx4URaabFzIZ\nU5qhrlWnpVPjZ69FcNbWFEUO7RIpBdOSAN+ZWg8Lpsb7gEX6XvU1FQJem9oWjWfW5WHbgnDAQlNt\nF+7TVKk2eBEuDSHAq9t4dZtEShAKWBimoLG97305L2zxoaW93HhdL8/8No/KQwGOnfPi1UwCPqkI\n+IedIdbvDDFpVIrVc+PMqUiSE7ToillEezrJKyhh5LipjBzXNxmezgjiSYFlC/fdr3jUdKKHmmg6\nf5D8EgmKKULBti3MTArh8V30PVEIhY7mM9iWhdcXxsgk6Wo913eAbRPOL2XkpMXkF4/L3v9ygc/I\npGitP0b9mT0kYh1kWrvInGvGM6ZYWt/agN5vo5hTcY41WcYgcew8VjyJEvSTd8cKul/aTqa1i67f\n7yQwawLe8mKEpqB4NBzvcts0SVU1EttzArMnhpoTJPd981ACXvJuW0znb7ZhtHcT3XaYdF0rtmlj\ndPRiWzYiC+cJT3bM6QJ+imtjq/i9WIkUmYY2tHy58UpoCrZhYhumPPeCisS9KdI1cjyk5YRACJIn\na8G0ELqKHUuCquIbV4q/YhRWKkP3+l2kztQTnDVxYCfNgo3YYCXT7phVaBpCU4kdOA1C4KsYRXD+\nNcT3niRxogajrZvojqPEFMUdmzv93z+8kNzZFYTGjcC2bVo27sE2TfwTy1C8urQHdheebGzDwnTU\nYITAHwiQSiYxTBN/xUhSNU20vnGA2LlGaRXc0YNmg1fRKCsfxQMPPPCuK9g5C5wlJSWsWbOGJ7/3\nPTp3HMGIJsibew3aYE/27DmJ2mZaNu5FjSUZO2oMf/M3f/OW025ra+M//uM/aGxtwQr5yJ01ifDk\n0ajegWOdVFsX3YdO03u0mhfXrSMajfKJT3zizwry03WdD33oQzz7/35Cy4bdKF6d4JjSy55jGSbN\nr+zEaO5keEHRu76RbSiGYiiGori4mI997GPcfvvtVFdXuyBHMBhkzJgxb1nB7kpx4sQJ/vu//9uF\nOWbMmDFggb+trc0FQk6ePEltbe1Vq6l//OMf58yZMzQ3N/PCCy/w4Q9/+AKL1P7R2NjIL37xC1Kp\nFNOmTXtLKrO1tbWcPHmSWCyGqqqEw2GmT59OXl4eq1atYvfu3WzevJmVK1dekPc777yTU6dOcfr0\naaZNm0Y6neb48eMcOnSIgwcP4tiTOrCNA/upqkppaSk333zzBflxQChFUVwYaPny5fzud79j7969\n1NXVUVZ26TWiTCbDH/7wBxfEURQF0zRdhT5N07Asy1W4mzx5MitWrGD79u3s2LGDAwcOcO2111JZ\nWenCRcOHDycvL8+1e3XU/wDy8/MZPnw4OTk5rmLZxeb7HNDKyc+lwoF4Bh/jgIadnZ2uamNpaSlN\nTU0XAPO9vb0kk0lGjhzJ4cOHeeihh1xIbcyYMYTDYWpqakgmkyQSCbdvaZqGoigudGeaJolEgkgk\nMgAuciAsJ9329nZaW1tdmMuxJnbq/3Lzn47KnGVZZDIZV7HNgcSGDx9OSUkJc+fO5de//jW1tbUu\njKkoCj09Pfz617/mpZdeYtasWSxbtswtjwMdFhUVcdNNNw1INx6PD4DVcnJymDx5MgcPHqS9vd21\nonUgxlQqdUllSlVViUajKIpCMLupxVGPcyC0GTNmcNNNN1FYWDigj7S1tbF792527dpFNBrllVde\nYdWqVQQCAWKxGKZpDrDr7Q+LOu2zfv16UqkUixcv5sYbb+Txxx/n9ddfp62tjfe9732MHDkSVVUJ\nhULu+V1dXWzZsoWXXnoJwzBYuHAhH/jABxBCUFxczOOPP8769esJhUJ0dHRg2zYnTpxg6tSpLiAX\nDoddQAskUKmqKsXFxdi2zbFjx0gkEq6SodPOTl/sH/3L1dXVxfnz5xFCMGzYMBKJBHv37nWh0Wg0\nSm5uLsuWLWPu3Lls2rTJBeLGjx/v9kEnXQdgdb4THNhOURQqKytRVZV7772XkpISfvrTn3L48GEO\nHjzI8ePH3Xuif1vPnTuXD37wg5SWltLT08NvfvMbNE1j5cqVKIriKvYBbr92LIE1TSMQCJBIJPD5\nfMyZM4cNGzbwb//2b4wePZqenh6am5vd9ObNm8e99977rn9/Off46tWrOXv2LDt27OBb3/oWd911\nFwsXLrzoWkwqleKNN95g7dq1mKbJ6tWr35LqnxO7d+/m+9//PpZlUVFRwY033si0adMGPGNM0+TQ\noUOsX7+ekydP8thjj/G5z33uz079e9KkSUyZMoWjR4/y7W9/m4ceeuiKm8Cam5t59NFHSSaTzJ49\newBwPhT/++NtAX579ux5W4l9+ctf5hvf+Abd3d1UV1dz3333MWbMGBYuXMjUqVPJy8t7x/KQ77Z0\n6FAMxeBQFIVp06Yxbdq09zyt9xJS+GNAF1drjXg5eMFTUIERa5FWvckORHi0hPyMmFQF64QB4I5t\nIWwDULCDIyFn4kUylpGnqLqclLZMCTjlTIK2/VnluSBol1AZNQ3oPg0d+7FtS4JftoktNCRoZYBl\nI4QKelBatkbGga8YUfc7CVvpIWwhwDIRwTLsWC20bJfpRsZLlUGhS2Ao0dxn8wpS/c+1paUPznIg\nvysBTrazONWvj9iWTAMg71pZ9saN0j7Ymw+RCX0T+EKRCopaCLt5KxgxLCORvZCCUDVItmJrYWzF\nD4nsLkY9R+ZdCLmqlWyVeWndBoXzJNw4UG8CF/KK1UrlOkWXYJ1t9QFlrgqhcw6D/i/6YDuQNrC9\np2V79z8mUArDFkPzVmwrA6jYioQt7VgtxOokDJYzUVr5DrZ1DgyXf5ywMn22tgjwlUilRiMqYc3A\niL76BFkeM3URWBF5vBGX9tT+Mug51mf/LFTZX3Kn9QMQnTQLs/CiBO1sMyn7Z/t+2dc8ObKPWVkF\nOkc50aavj6W7oOOAbCstIj/0Fkp4sHWXvE5ojIQYNX/WwndQnw2WQ9F1Mq/BclkPTRtlu4oGmVc9\nLFUQE419Cp3ZPt038BKyvmwbQqPl+b1n5M+udbGjhnipnUZCfp7t7yI0WlraGjEENrbql8qCgTK5\n0GQj+0smKmHC4Mhs3WTb1jYuDZzGamS76SGpmigE5E2G3lppIW7JXWWKJ4xQdRRPGE/+BGn/7uw2\n667BTHRga2HZvlmVS6GouI1lW9iWgWGYmKaUZBeKgOBw7K4gVqaL+JnfomSh1PdKcfZSz/zCwkIm\nT5rAyVNnSL7HNveWZfHUU0+xfccuEhmBr+zidsZaoBBv0RQy3TXE6rdTuX0nAJ/5zGf+7GC4PwUk\nORRDMRRDcaUQQjBy5Eh35+97EclkkkcffZTz1ScoiMS479YMk0dbg2A1m2vGWnx0tcFruzL8alOG\nX/1yLaqqXnQRZ3AZ7r33XlKpFAf27+Y/n40yvtxg5TyDORUWHl2+stY2CzbtUdlxSCNtSLjvi1/8\nEsXFxVcsw5kzZ9i4cSO7d+/CzCToUx5UQOiMHjOOVatWceONN/LLX/yMp180CQXSVIzpg/w0FT7/\nV2m+9WMPtc06PVGVWZMTBLwWJ857ae7QSBkCbIGm2aiKhW0rBHyCu27sYXxZ+oJ8NXdIlbpwEEAQ\nT9qEA/CBxVG++4s8frExQkGOyTVjUtm66l/jsP+Eh/9eW4BlCXKCFjMnJZg0MkUsKcG+eEqhqs6T\nte+VFrDjyjKUF2f41aYwTe066YxCYa5Be7fGR1f1cKTKx+5jPnYdC7D7mB9dk/BbMq2QzoojCwHX\nTkzS2qlR3aBT0+ShvFgqfTmCaboq7XDTGYHXY19A+AkBZxvkOCg3NHAxa9O+ICC4fl6UmxdG+e+f\nF3DwtJefvZbD393ZIfcd2bjKhJoKf31zJ82dGlV1HgzTxqPZGJagqt6DZYPAJp6U79gjigxGlWQo\nLcpw3ZQ4G/YE+f32CDsOB6hu8LB8VpylM2PkhPpgvXONEm7ceSRAV6+CbUvL3Whc2htrKgR8sr/0\nh/tcuNHu+3/AZ2Nny/DmKS933dh3fNoQJFOCj93QTToj2HPMT0GOyQeX9qAIQW2Lxo7DAU6e93Dy\nvJfrpiaYPTlJfVuA+urj5BVcqFCjaY4Uo5MPQeHwSZw/voVYTwuN5w5QXD4VVdOkgp9pYKQTqJoX\nZdB4NtrdTMPZfQDkFI6ko0nCfoqq4vXnUDH3NsJ5zljMUS3J5kP3Mnz0TApKJnB01y/p7Wyke+Ne\ncm9bjF6QI4E405TwnKpgK9nKM01s0yLT0kl051GpsmfbdK7djHfscGzDwmjrpnfTAWIBH74JZag5\ncuOR2ZsgdaYOK5ECG9T8MDnvm4vik5vtlICPnJuvo+Nnm0icqMkOWRWsRIrU2QZ840dkITkVO9XP\nBjdryYtt45tYRvxgFYkj1YSXTkeoKkLX+gA/VWGAHKTbOcBo6yHT2I7QVDyjS4idqiFd2yLP0z14\nx40gsnQ6it+b7Vs2WlGuLO/WQ0Sunw2GhW0Y0upYVbEzhpyPURSEVwchSJ1tJHH4LNg2/skjUTSV\n0HXXEJxXQeLwWWJ7TmAZGTy5YTyFOXgLcolMHYe3qM8isK3yEInaFhS/F/81Y2QdCgWlv0KhB2zD\nxMoYmKZFNBp1x1N6ST5aTohMSxdmXSterw+f6mHmzJmsWrWKa665BtM02bZtG7t27aKrq4tMJuOq\n7ixfvpzy8vIL6/Ei0dHRweuvv8727dvp7OzEMAw8Hg/l5eUsWbyYyu3biR+ppudIFcFxZYQmlqP6\nfRIGbeui53AVZncMr6oxcfxEvvCFL7zlefJUKsVjjz1GY2sLSnEuIz64FNV3cUUWb2Euw1bOJThm\nBM0vV7Jh40aKioqu+P35x45Vq1bR1NTE+ldfpemlbUSmjSNnxgQ8+ZEBx9mmRbSqjq59JzDbuskL\nhfniF79IJBK5xJWHYiiGYijeWXg8HiZNmnTlA99BVFdX89hjj5FOp7n22mu56667LlCcHT16NHPm\nzKG1tZXnnnuOgwcP8uijj/KP//iPjBkz5rLXz8nJ4e///u/5r//6L5qamnjyySeZPHkys2bNYsSI\nES4kdubMGfbt28f58+ddpcD777//igqphmGwZ88eNm7cyKlTp1w7UZDjMa/Xy+zZs1mxYgUTJ07k\n1KlTPProozz00EMu+ARQWlrK5z//eR5//HEOHz5MYWEhy5Ytc+2Co1G5OUnTNHw+nwtJ5efn85nP\nfOaibnItLS0AhEIhV6muoKCARYsWsW3bNh577DEeeughfD7fBfC7aZr8/Oc/Z926dXi9XnJycli0\naBF5eXkkEgmSySSdnZ2cPn2anp4ekskkqVSKCRMmEAgE2LlzJ/v27eOOO+5g586dRKNRxo8fT11d\nHdFoFL/fT1lZmWs7q6oqmqah6zq6rlNYWEhTUxMej8dVohqcx8upDwLu92Mq1af2rqoqw4cPRwhB\nU1MTlmUxbtw4AoEAoVCInp4eFwh00stkMtTV1bnwiKPA19nZSWdnJ5Zlyc3o6TRer5cJEyaQm5vL\nxIkTueaaa3jiiSeor6/n/PnzdHZ2UlJSQn5+vjs/a5omXV1dNDc3093dPSD9K8F9g8vv1IkDF1ZV\nVVFSUuJCWo4C2i233MKLL75IZ2cnkydPdu/z06dPU1VVxa5du9i7dy933HEHw4cPp6GhgePHj19U\n+ctRnuufj/nz53P06FFaW1vRdX2A4pppmiSTyQHwlhNtbW3ufLvT1xyodOzYsfz1X/81gUDALU//\nPlFYWMjNN9/MxIkTee655+jp6eGb3/wmjzzyCF6v17UwduBUp+7S6TSGYfDKK69w8OBBMpkMBw8e\npKmpiQULFvDGG2+wf/9+jhw5Qnl5OXPnziUSiZBKpTh//jz79+93+/HSpUv5+Mc/7uZpypQpfPjD\nH2bt2rW89NJLCCHweDzs3r2blStXkp+f7+alv3qfx+PBtm1KS0sZMWIEDQ0N7Nq1i1mzZrnwayKR\nIB6PEw6HL7g3nLJt3boVwzCYOnUqwWCQZ5991gWpPR4PH//4x1m5cqX7nLv55pt544032LlzJ1Om\nTGHRokXEYjEXBgyFQi7c5/V68fl82LbNs88+S3NzM3l5eVRUVKCqKg888ACJRIJnnnmGw4cPuwp6\nhYWFXHPNNSxdunTAPfqv//qvZDIZxo0b59qHOzCzUz7Lskin06RSKdfK2fls0aJFvPHGG+6ajaqq\n+P1+Fi9ezIoVKygtLaWzs5OXX36Z48ePu+MpB8ResmTJZeFvJ2zbpqqqio0bN3Lo0CFiMbk+6Pf7\nqaiooKKigmPHjvHjH/+Yn//85yxdupSKigrXav7IkSNs27bNBVevv/56Pvaxj73lDUhVVVU8/fTT\nWJbF+9//fj7ykY9c9BqqqjJz5kxmzJjB2rVreeWVV3jyySf5yle+wqhRV6cc/scIIQT3338/3/jG\nN6irq+PrX/86N910E0uWLHEVRZ1wLIl///vfE4vFGDt2LGvWrPkT5Xwo3qsQ9pVM1S8SkydPfld2\n8/V/kXs3QgjBsWPH3pVrgZSMdR7K7/WL+lAMxeCwLIsnn3yyD1K44oJ+Dcn67fh1m0ULr7sqSCGT\nyfD000+zY8euLEB4eejC79VYsGD+FQHCt6o6uHLlSr7//e9fsqy2ZRKv3SohP5A2ld4iac9lphCO\nNaiZQq78KCjhcsy8mQjV10/pLhudR6HzEFq4HCNvtkShHEispVKq8ika5F8LwXKE1m/HjJnBbqmU\nwBRIRTt/MZgJ+ccysnlxdpQoiPBIKFogAaruk9ht+7LwkgZWClG0COwUdtfxPiDqAtANCQlFJkm7\n31SrVI2LTBwIuDl10F9VbDD01nVMwpHBkTAsq6Iaq8kqI4ag7Jas8lhNn1ri8NW4qmqOhS5IxbXW\nHQgrJQFH0d8i1+6z+h22SFrrWmYWhAIaXoNMp6wHoQxUZRQ62GlItPSBYmZSXqtkRZ9VquIZqLRw\nsXpzfpdqh4ZXZR35CmHE+/tguP72srF6aN8tFReLFskyJZ18yBd8ESqH0Cjspm0SHCz/QL98ZBcS\nbStr45pd2FJ02Xbt++TPwxZLwE7Rs33hEnbDqS5o2pQtv569bvZYLQyl10t7Z/fb3AHhBn23pjqh\ncQMYCXmM6oeCmVko8CLPCtuCeAN0vCktqAFE1tLXtmS9mNlrKdm2H6w+qAWlmmBobLY8Wl+/dPqX\nmZKApLcAek+BGpT2v74iF6ITImuaJbQsyGeDkYT6P8g8FM2XkCFkVQkHg5+DIna+D6gtnAvN22Qf\nUz0w4ibw5OFaRgN0n+xrt5JV2f5ngZmWeXEVNIW8BkLWd9MmWYa8aRLw698+RgzR9AbCzuAfMf8C\nC12Q70k9R3+KmYnJ+z13al/9iez7kw02tnz2uNbA/aL7FKLrEMI2XNiuoqKCZcuWuYqzVwtjXyqu\n5pnv0RSCATmZFk8kL/u98E6gw1dffVUC42kIjn3fVavdxc6uJ+jhXVOnfbfjvfq+Hor3Lv6SxhF/\nSWUZiv9d8cwzz7D1jdcYltvLP/1tmtwrzyWy87DC93/pAzXCI1/5KhMmTLjiOaZpsm7dOl579VUS\n8W6wU2Bn0DUbwxTYtgKKF4SPKVOn8YlPfOKKcJ9pmjz33HNs3rQhaymcYtp4gxHDbDQFumOw/7hK\nLOnBFl4CwVxCoRA1NedQRYqlMw3uuD5Dft+aFvEk/PBFnd1HFQxDwlMlBQaRgEXKELR2qqQzUg06\nJwT33ZamvKgT27YIB2xHVAyAx17I49AZPx+5PsPS6V2YloGm2gT9sO6NEOu2hAGb5bNjLJsZY9Rw\nC4d5OnxG54mfFpDKCGZOTFAxJs2Bkz5O13rcVyfnDcyj2+iaTU9MIRyw+crftnHotI+fvRZBU23m\nT42x9c0QQZ/FI59sx+e1eHVngO2HA/TGFPd1NuS3WHxtnGUzYyiK4J++V0RXr8rEkWke+us2NFUe\nA9J1NZaU54b9A4FQB5r7lx8UUdOss+ZDnSycLieOD5328sTPChAKPPb5JnJCFvGk4MEnSkimFL58\nTyvDCwxUVZZLVWwsGxJJhcpDfp5bn4tpClbOiZEXNskYgnNNOkeqvBimYMrYFA/f3UY6I99rQ36L\nbz5bxIkanXDAJpGUGdVUKMgx8eg20YRCZ092TIxgfHmKY2d9hAMmX1/Tgs9jEwr0s/QVfXt1Lipd\nCHzr/xWy74QPj27znQebKMiReY2nZPoezca04KHvlpBIKjx8dysTRqbRNUikBNsPBfj5xgjpjMI1\nY1IcPeslaeaw6IaP4fVl7byyf1k29MaUrIKfQNN9CEWhreEkJ/f/DoGgfOICikdOR9U8YNtYziY2\nBIqqIRSF3q5GTu37HalET3aBU8cwUtiWhS+Qw7RFHycQLhxUaHHRucZUvIeDlc+T6G1HBDyEl0zH\nM6pYqsENmh61TYvU2Qaiu45jJVIoXh3h92In5CKobVnYlg2pDCgiC54NTFPLj+CrGIl39HCEJu9P\nxau74F3Xy7tInZFzC55RxaTONqL4vURWz8ZbPkzuTcqYbgfWAj5sbKy0gdETpeNnmxCqSt6tS9CL\nc0FRsDOGhO0GpdXXONCzaT/JU7X4JpWjFeQQ3X4EK5FGaAr+aWMJL7tW1p8Ake1YRns3HS9uw05n\n8IwuIbJiJiKbntP/EALF68EGkidq6N16CEyLwMzxBGaMG9BEqt9LqrqRrlf3omoqJbcskkNLXUOL\nBNEjQXpPnKfxD5VYyQz68HwK/2q1nEu2yS5mkV3ARJbbMPttTBTuwyi64xiJw1XoikZ5WRmf+MQn\nmDlzJvF4nHXr1rFlyxZ6YlEylonlzFWTtf1VNCZNnMgtt9zCjBkzLuhTIBVunn/+efbu3UvaNKQl\nrmNTbIMqFDyqik/3kJubS3tHB2kjg2Fb7ty4IgS6olGYn8+KFSt43/ve97YUNDZv3swPf/wjjLCP\nsjtXo3ovb7XoRPR0Lc1/2E5ROJcnnnjiksoxf6qwbZsXX3yR36xbR9oyyJgmvrJheIflIVQFM5km\nVlUPiRQeVaMov4AvfelLVw1nDsV7E39J44i/pLIMxf+eyGQyPPTQQ3R1dbFgwQLuu+++K1onmqbJ\nD3/4Q3bs2EFeXh7/+Z//eVXzQl1dXTz77LMcOHDAtf+EPjjJgaK8Xi/Lli3jzjvvvOJ1Ozs7efzx\nxzl79qwLOOXm5rpwTjKZpKenB1VVUVWVkSNH0tLSQjQaJRKJcNttt3H99dcPSKempobvfve7NDQ0\nYJqmqy7n9XpJJBI0Nja6x06YMIFPf/rTrjJWJBJx3w/j8Thf+MIXSKfTfP3rXycSiWDbNj6fD0VR\n+K//+i/OnDlDMBjklltuYf78+eTnyzlGy7JYu3YtL7/8MkIIbrjhBvx+P5WVlTQ3N7sQo6Oolp+f\nT29vL5ZlMXnyZL70pS/x7W9/mxMnTlBSUoKu61RVVbnwW29vL83NzfT29g6Awvx+PwUFBeTm5tLb\n20t1dTXpdJpz585RXV19Qf33V6sbHD6fj8WLF2PbNpWVle4xEydOpLy8nEQiwdmzZwEJAo4aNYp0\nOk11dTVCCBc0VFWVTCZDMplkxIgR5OTkMHz4cBYsWOCqhx0+fJjz58+74NwNN9xAMpl056S/+tWv\nEo1G0XV9ANDoWMam02lM03RVGsPhMM3NzdTX13P06FH39/3f/QdbGzu/c/r03Llz8fl8jBkj1ZKF\nECQSCdJpuTnO4/FQU1PDunXryMnJ4d577yUcDqMoCh0dHVRWVrJ//36EEMyaNYv9+/czcuRIPvnJ\nT17QBplMZoC6nANJ/epXv2L37t0IISgtLSUYDLogpKN65vQhIQTt7e00NzdjWZarDBeNRlFVlQkT\nJnDvvfe6IJpz7qXYiyNHjvDCCy+QSCSYNGkSd911l/vO1L++bNumt7eX9evXs2XLFhKJhAtEOmUC\nXPDTARX7hxCC6dOns3jxYsaPH+8+S0KhEIqiEI/HefDBB2ltbSUUCpGXl0djYyOjR4/mgQceoLi4\nmFQq5YKdjv21k7ctW7bw3HPPMW7cOL70pS+Rl5eHEIJoNIphGKiqSjAYdNcZnDwnEgkeeeQROjo6\nWLNmDfv27WPXrl0uFPi5z32OOXPmDOg7Qghee+01nnvuOYQQ3HnnnaxevZpEIoFhGCiKgm3b6Lru\n9v/nn3/eVe974IEHGDNmzADVv3A4zDPPPENlZSWTJk3i1ltvdTcblZaWEr0JQmIAACAASURBVAgE\nePLJJ9myZQu2bXP77bdzxx13XNCvnWvG43H3PuoPANq2zT//8z9TV1eHz+dj2rRpfPrTn6agoIC6\nujp+/etfc+DAgUsCwc59c+utt15yPuzYsWP89Kc/pba29qKfO/kMBAJ4vV66urouedy4ceO48cYb\nmTdv3iWPuVw8+uijHD58mGXLlrn3+JXCtm1++MMfUllZyaxZs/i7v/u7t5X2exmxWIzvfve7nDhx\nApBq57Nnz3a/n9ra2lyoFmDatGl89rOfvSjkPhR/vHgvxhHvCPB7G6f2JdzvZnon1xl8zePHj1/5\nwKuMoYHbUPwp448FKViWxcaNG3nttddoaGx6x9DFpVQHtUGqgxJCiKNrkJ+XS15eHrW1tfT2RqXS\ngR7EUzQVPTwCoehYZppU8wEy3eekWpWQamNCqAMWkhxrSxEZL3dLIAYCerYFNS8hzDiBsdeTUfJI\np9MSuVGyE58t27F7q0BoUrEtMkEqpNkCu30vJJsl6BQcLiEeF8pzcgGOqha2AaiI8GgoXpy9fiV2\nbzV9s70+ROlqqYgXq+tT/bINCbrpIQlIBUqkmlr9KxL28uRKuEvzZ68l5DlWhoGAU3/lBAvqfifz\nXLxcKs6lOqWampWBgtkSGhx8bNECqbzWHwRzFOoaXoNMtwSYHODQMqDnlPyj58h8KlnFRCwJ2zVv\nlYBkZKJUSBtQj4NCk1LpGFEJOUXGDypj/7jEd0rXMeg8hGthXLxMlt+F+7IQHkDd7/vKHRqJBBrt\nAZazIlgOqXZsIy4BxmD5oPTtLHDZr28oHmjdLu1eFU8/wE7LKuhlFSWd/tMfsHN9ugJZsE6F4kV9\nYFt/oPFSL6zR89BSibAy2LaJUDzYWlAqTHqLZL1YhlRXjFZn28SW9ZQ/W7Zdohl6TvdBl9hy0duT\nJ/ufoks1vtBYCWu6ZXJspVRZdtuE2pdknw6NlfeVEZN51wJZ+99B8KHqlW1hZSRc2p61/9WCULJa\ngneXtG7O1k9/8C5QJlX5zJj8uHiZBFH7t5kTLdukYqCiZxUny7Jl66eK4zxD4vV91sTBcihaKMvf\nH8ATKiLZBM2VCAGKLx9sE6FoKN4InvwJmMluErVbsIUOI94nwVQHIHWyZw8CVB041FFjTHUgGl4F\n20LXPfg8KpMmyZ2Sra2tNDc309PTQyZjgKJi2UqWbbw6C/i3+sz3eVQmT55Ibm4ubW1t76rNvWVZ\nPPzww5w9V4+nbOkAy/crRbqrmnTdVsaNKeOb3/zmn52KH7z739dD8d7GX9I44i+pLEPxvyd6enp4\n8MEvYKbb+Mb9SUqLrn7OYO2rGn/YHmTegpV89rOfverzUqkUO3bsYPPmzdTW1mJlJ5DDkQgLFixg\nxYoVDB8+/ApXkc/r73//++zetQ1NRLnhOmkrXJQ3sAzxpMGOg/CH7V7qWjRSaRWvV2CZJoYp3+En\njbKYP80kHJAWwftOqJytVUlmVFJpE021Cfltx92SiaNsVs41mHONhaZCPBEnlUri1W0C2SFRS4fK\nP/yfYWiq4PEvpQj4TaLRKJZloggbXYONe4I8tz4HAXg9NrMmJ5k0MoVh2fx8Qw6mKZg1KUFDm05b\nlxyP+b0208YliQQtMobgfJPO+UYd24Z4UkFVbUaVGPzHZ1r50Us5vL4/gEezyY+YtHVphAIWa27t\nYtKoFIkUGIac4wkGLNeS98R5L0+9mEdnr+oq9P3dR9uZOCrtAn4AsaTAMAWKkNa1Tv0IAadrPfzH\n/y0k7Ld47AtN6BocPevlv3+eTzKt8KElPdy+ote91rMv57Bpb4glM2L8zS1dLitlWhBLSBU9wxB8\n5alhJJIKX7uvhdGlfYtoD/+fYhrbNe55fydzJielG6wG3VGFR743DL/X5l/XtHC2XmfrwSBHq7zY\ndh+p5/NaXDc1wfXzegn5bR77aQHnGjx8/MYuFs9IEOoHMV4O7ANobNP4p+8NI5lWUBWb25f38KFl\nvUQTslBe3XZti59bn8PGPSEWTovxNx/oRldtRPb18lyjzrd+UkgipZAfMWjqDBLOH8OMBTfI8bl7\nL0BvXMmWR6CqGqrmIZXo5cDrPyadjKLpPoI5wxhWNoX84nGomlzwtWyT3s5GWuuO0dVSTSaTkOr5\nto3uCWBZEuQaPmYm46YPnPcQlxsPAbWnd3H++OsYmRSKz4MS8uObNBLPiMIsUGeQbmgneapOwnwC\nfBWjiCy9FqEpZNq6SRw9R+JkDVZPDBQFz8hiPGVFUuUPUHwePOXD0Irzspty7D4ArR94lzpTT9f6\n3diGiRIJyuvZNorPQ3DWBLwTyuWxAIpAzSrqpVu7SBypJn6wCgFoRTnk3roENShvdDudyaZFVslP\nlf8iiL95mujOY9iWhZYfwejokSqBlo2aE6TgkzehDIIHnOpMN7bT9Ydd2KkMQlXxThiBb/wI1HBA\nwoWWRbq6kcSx85g9MeyMgRLyowR9KLqG8Hnxji7BU1aE0FQUXaPzpUrSNS2gKih63+ZMf9kw0q1d\nZGJyzOkpLST/w0v7AX7OENnGThtShRGkgqCmZsFGmfHorqPE955C6BoaAp+iUVpaSlVVlQQOAKGr\nBEaWkHPtRHyFuZiJFNHTtfSeOIdiWPhUnY/deecF6naNjY18+9vfpqGlibRtERxXRs708fiGF4Ci\nYKUzxM7W033wDOmWDvyqzrQpUxk3bhw1NTXEYjF0XScSiTB//nyuvfbaK8Iblwpn4e5kdRWFN84n\nPOmtqU7U/XwDorWH+z75t6xYseJt5eG9jpqaGjZu3Mj27duJp5JZINNGIFAVhfIRZaxcuZKFCxe+\nY5egoXjn8Zc0jvhLKstQ/O+JyspKfvCDH1BWVsbXvva1K6rlOWEYBv/yL/9CfX09a9asYeHChVed\nZmtrK6+//jqVlZV0dnYCUvVs+PDhLF++nMWLF1/V87Wzs5N///d/p6GhASGEq8o2+DsuHo/T3NxM\ne3s7pmm6SnUOmOZYS06dOhVVVWlvb2f79u20t7e76mW6rrsKRrquM3/+fFauXMnYsWMBOba0LItQ\nKOTCgq+++iovvPACFRUVPPzww6TTaVdpStM0TNPkBz/4Abt27ULXdVehb9iwYdTV1fHaa6/h8XhY\nsWIFW7duJR6Pk0wmyWQyAwA/B1TzeDwYhoHf7+eWW27h5ptv5t/+7d+oq6ujoKCAeDxOLBbD5/Mx\nevRoTNN0oUjHjtQB4trb22lsbHTVFbu6uti5c+cFYFZ/e1UH9nBiwoQJjB49mqamJlc0Z9y4cYwa\nNQpFUTh79qyrZAaSCdB1nYaGBlcFD+QY2rFOzcnJoaysjHHjxvHtb3/bPaapqYmHHnoIXdd5+OGH\n3f4TCAR4/fXXefHFF13VsoaGBurq6ujt7e2fXYLBICNHjmTUqFHE43G5OaOnh507d7pgVX/Q6XJR\nWlrK+PHj0XUdn8/HPffcQ35+vlsOv9/v1vWPfvQjenp6uO2225g+ffoAaG7nzp288sorA6xZb7zx\nRq677roB6aXTaffaQggCgQC6rnPkyBF+8pOfYJqmC7zl5OTg9/tRVRXLsjBNOVbv7u4mmUy6oKNj\nb9vU1ITf7+fuu+9m8uTJbpqXg/uceOqppzh16hSOvfjYsWNZunSpqxDa29vLvn37ePPNN12r4jVr\n1nDddddhWRaHDh1i06ZNHDhwgJ6eHoLBICtWrHDV+3RdJzc3l3nz5rlWoqZpuiqFTplBbu7csGED\nubm5Lvjr8XgoLS3lQx/6kHv/A3i9Xvx+P4ZhcOjQIV566SUOHTqE3+9n6dKlLght2zbRaNStM13X\n3XspnU7zne98h6NHj+Lz+fD5fLS2thKPxxFCsGLFCj73uc9dUGdOnf7ud7/jl7/8JQB5eXksW7aM\n6dOnEw6HXchuy5Yt8n01a9FcXl6O1+vF6/UybNgwrrvuOsrLy9E0jWQyycMPP0xnZyeRSMSdz9d1\nnalTp7Jnzx4X7Lzjjju45ZZbXAjbCcuyiMViWJZ1QXmdeOSRRzh79ix+v99VGfR4PNTX17vnRSIR\nFi5cyLJlywiFQrS0tLBlyxbXijwYDPLggw8yfvz4Aelv376dH/7wh+6zdunSpSxbtsy1ku/s7GTr\n1q28/vrrdHd3Y9s2N9xwA+l0eoAyZUlJCUuXLn1H6nnNzc08/PDDaJrGE0884fazq4muri6++MUv\nYts2jz76qAvO/TmFaZq8+eabbNq0iaNHj170mOnTp7Nq1SqmTZs2tD70ZxDvxTjibVn0OvFuKu+9\n03i3IMGhGIo/h7Asi9dee41EysBXtvSq4D4A1Z+Pb8QCEnVbee21165qcd+xyF21ahVHjx51FZze\nDnRxtdaIaqAQIuNJdVSTadtHvL6R+oYmhOqRgIxlYqejpBp2kFZ0hFARioKqCsKhILk5keyXfhrh\nCaB4QhdYW9qAmlQwDKvPghckoGPGUbxh9FApenbCN51OY5tpEAIRKEX0VgOmBI463pQzx3YWUlID\nEmZyVPwc5blA1lbXzgyEoKw0du9ZhK8IcidD0QKEmcKOnkeuIMSxGzYgCudKkNBfTB+c5ExKWzLv\nbbvBthCqB9uISTvT0Ni+GXehgshalLp2r/3qP14n86SHpaVqrKYfiFQG4X4qJ0KR5eo8KI8Lje7X\n2FmISqgStus8LP/vK8SF4WxTtmdkfD+FM2R5es/JY8JjJFAVGiVV8mLns3VmSFU4x/41UC7z0Lod\nomelKpwD97kz+4MU+/qHbUFvlfw5OEqmE62SKnEuDOYoLoh+5T4vlQ5FFpIMjZR117gRO1aLCJZK\nGLMta1XrKAvSLztOfTh/IpMlPGfGBlncFskyDwDsomAZCCwQHmyBbFfbBk9I2j8PUqq43GKWtMcN\nYqc7EdhoiomZ6cbuOAhClYtmbuYFeCJSNTI8IauAIMCTL38Xq4GmzbKP5U3Nqsv1LaIMCFXDtbW1\nTalsaNuy3F2HZT07ioW2AZlL1I0RhUSrVPrLxGS7amHZH5s29gPvyKaTVfNTNFmkRD207cmCiUKW\nwTb6qjBRL9v4YuqXRQvkj7HaPmXL8Hj5LFBU+ZxJd8h+ZmTzpvog0wv1L2f7c0jeR54CwMT2FIDq\nx053Ycfb+p5TiQ7SndXZvNnSKljpr7xg9/0zGFAdnHchFQUVXy4iWExv2zH27juAqulYtsgulGZP\nsUwUTwA9bzxaZCRmrOmyFvD/P3tvHl3HcZj5/nq7+73YF4IbQBLcRXAVRVLcaVmxpLFW23Emnjhv\nnhK/2InH8pmM7JNMZvyS8eRls5+TSLHi49iO4lWLZa0kSImkuFMkuIIEQJAAse+4e/ftrvdH3W5c\nkKA2K7HyDr5zKFJAL1XV1fd2df3q+95PHG6q6xAXmy+zaeMd/Pf//t8/0AHGuXPn6Ontw9FCGEXv\nLTLSKJpLpucE3T29nD9/nttuu+0DK9cHpQ/y+3pa05rWtD7s2r9/P7aVoqE+957gPoCPrM/x6mGT\nEyeOMzIyQklJyTvvhHxRvG3bNrZt2+Y5ShiG8a4n0lw9++yzHDv6JkE9zpf+Y5b6OTe4giGPnc1k\nWL1IsKRW4R9/Xkzz1QDBANxxm8XZFpXBUY3WTpXmqzrhkIaua6AYxEqKuXfrVrq7u3nrxJvMrU7x\nmftylMXEJMc/t07ZbBbTEvjyjNA/vVQEKKxb5uQjejWikSiJpHz5nbUEdTVZAj6HsaSGZSu82RTk\n8NkgORsQCvNmmbR1+UimVapKbe7eEGfDbWmC/sl1vdJl0HgizMGmEMmUytUe6Wj3f9w3xtCoxvGL\nQTKmiu2AaWn81dOlzCjPcefKJPWzswQMwXhK58p1H2+cCtPZZyCAxXOzlMQc9r8V4gevFPOlTw9O\nAvxCAUEyrWA7kEir+AwhHfGSKv/wnOwPW1aluN4vy3f4bIicrbB+WYoHtk2eTNqxJsm+E2HeuhTk\nP39crjB3oUUJ6wmKIw7L6rKcaA7SN6J7gF/vkE7/iIauCVo7fTRdDspxhQBHKMRTKjUVJumswtI6\nk5ULs2SyCuNJlYypomuCWNhGy69pU1W4syHF5Q4/B06H2b5mYtJN3DgkmKJv7ntLTnyuWJDhQruf\nV49G2LkuiUC6Erpwn6LAtjVJGo+HaWoNYttjGFp+/Rowp9ri9x4e5v/55zISaZWSSJqhoWucObqH\nZWu2oxvyudV25NhKVTUvgtdMJ7h48nmE4xCOVZLLZUmO9dM+1k/H5UP4AxEURcUyU2QzCRzbwrFz\naLqfWOkssplxrEwKO2di+IKU1yyZtJ5N3mNT199V5exldF4+BFYWHyq5sRTJ480k31IK1moJFF1D\nrygitGI+/kWzIT9ZqpfGiG5egZMxSZ+7gqJrBBfNIbisdvKJCguhKCg+GVsrrBxO1kRRVQkAqgrC\ndnBSmfzQX+CksiSONpM81Yq/rhqjshTFJ+N5sx19mFd7ETkHxW+gBXzY4ylGn9lPdOtKfHMqJ85l\n5hA5B3IOdjpL+uwV0heu4WQtFEPDHkmgaBp6dQx7LIGTtUjsbyK2fdXEuHJiPQlGdRkl928mcegc\nZmc/meYOMhc7mBh7FMCMtiMjg7MWdtbCfRtgXutFDfoJLJxFcFkdgUWzMbuHADBmVUDOxhoYJXWt\nBydjoRVHJLB4g/uM2+flufLgZMCQccGiYFEUSBdETSU8bybJ1uuMpeKMt7Wi6CqK4c9fKoVM7xCZ\nVw4TnFFOxfY1VGxfQ9mmFYyeuszIkXP8y49+iK7r3HXXXYCcqPqLv/gLrvf1oFaWMPeejeiRydCD\n5vcRW1JHbEkdqc4+el98kzPnzxGNRvniF7/4gT63t7a2cq2zA4I+Igtmvef9i1bUM/jaURobGz+0\ngJ/rjvPJT36SU6dOMTY2hmmahEIh5syZw6JFiz6w+YppTWta0/pVa+/evYCMKHwvYxJd19m1axf/\n9E//xN69e98T4FdRUcEjjzzCI488gm3bXqzqe/m+yuVy/PVf/zXd3d0YhuHBVIUSQnjRliUlJQSD\nQXp6ehBCUFdXR01NDadPnyaVSnHo0CGOHDlCOBz2PuNra2vZunUrzz33HOPj4+zYsYPt27dTXl5+\nE4Douvul02k0TWNgYIAXXngBgB07dgB4cZdumQDq6uo4ceKEB+698MILqKpKNpvF7/ezbNkyGhsb\nicfjmKbpwX03KpvNepBfPB7n1Vdf5f777+fxxx/nscceo7e3F03TPPjp3Dn5nBCNRjEMwwN5EokE\nw8PDHuizatUqLl++TCaTYdGiRTQ3N08y5nH/7QJoLjBWVlbmwTNdXV1UVlYya9Ysz/ns+vXrk+A+\ngOHhYaqqqigpKfHgu1wuNwmKcyG3oaEhcrmcd81PnTqFoiiUlZXx8ssvk06nURSFQCBAe3s76XTa\n23bu3LnMnz8f0zQnOfe5bn6AlzqTTCaZMWMG169fn9Sv3knV1dXouk4kEiGRSHD48GF27NiBGxnt\nwoK6rrNixQoOHjxIS0sLy5Yt88AxkDG7w8PDHD9+nNmzZ3P9+nVeffVVbNtm48aNXl8tBMwsy8I0\nTZqbm3n22WcJhULMmjWLrq4uMpmM58in67rn/uc6agohmDlzJpWVlXR1dRGPx1FVlZKSkvflWLx2\n7Vqv/YUQXLhwgZaWFq+Obj39fj9r167lvvvu86BZVVVpaGhgyZIl/Jf/8l+Ix+Pous5DDz100/uX\nwucy17HOdddLJBIIIVi4cCH79u1jeHjYi6LOZrN0dnby7W9/m9LSUm6//XYqKysJBAIkEgnefPNN\nOjo6cBzHc/k7fPgwqVSKT33qU8yYMcOLzLUsS74XMU06Ozv52c9+RktLC+l02ovnjkaj1NTU0Nvb\ny1tvvcXRo0c9WLPQDVJRFO655x4qKip49tln6e3t5bnnnuOZZ57x6uveC25fDwaDDAwMeMdobW3l\n0KFDzJkzh+3bt7Ny5UoaGho4fPgwsViM2tpaxsfH6ejo4ODBgyiKwvz58+nu7vaiawvlQoWO46Bp\nmueOWHgdATKZDD6fj9WrV7N//36SySQ+n8/b3i3/kSNHOH78OBs2bODTn/40a9asYWBggO9973uc\nPXuWv/iLv+CrX/2q1+9OnTrFt7/9bYQQ3H333Tz00EM3feaXl5fzwAMPcN999/Hiiy/y7LPPsnv3\nbh599NGbnC9/Wb3++uuAvEffC9wHUFxczNq1azl27Bj79u3joYce+kDL9kFI0zTWrFnDmjVr6O2V\nc1nJZBJFUYhEIixbtozKyspfdTGn9a+s9w34TQN105rWv55+FZCCqqrcdtttvxTUsGfPHuniZCm3\ndB0UQq7MMk0TEaiBqjBK3wGEMPFXrsCIzSGX6CE72AxWAoUc0XCQuXPnevT+smXL2LNnT97hUBCa\ntemmcynIh0/bTiMcE0XxgzkGA8fl78qXeg+XoXAIXdel1XN6CDF0EgUHBVXySnmwTwgHFAPFF0Nk\nBxGFTl6KOhms8pdB0eK849tRCfwMnZRudaoGZWtRUt15OCcnwaW+g1PAXjaYgxBv96AhxVck4SYn\nDUOnpJOf340kyoNqLoBXCDiZYxLmQ0jQqOvFCde8UA1U3HEzHBasghEmu+sJewIo0vzSZW3kbH6b\ngv3NuJwFSvdBolMCbU7+pbwbYZzulQ5/oRoJVkXm4rnXFbq+OVkJP+ohsBITYKPbqQqncVzTwkK5\nYKOed0NMXpPXptSSdS4EIRVFwpojTR6gOTFLpkjAr3ydjHg1x2X9093SFa58nYQRFRXcKQxFkQ59\ndkZex5HTgCZhQGFLQHDsPIwV3CT5NlBct8HStYjofMgOoAweR9hpCUYqCl5crgsQCm4N+SmqhCOH\nT4Gwqauro6ioiNNNZ8jlsihCIBQVgjOheKm8LoXtWRh35LYL+e0LI4q9C1F4bg00RcbauiBhoIK8\nTYa81MJBQfOOL0xLAoDetc2fwzFlWUpWyPjbwaN58O6Q7CPRBbJ9Fe1mR0KRd7j03DHrJIg30iSP\ngSIdGRWQRGW+ToomnfgCLRLetRJyH3fGyy2fsPP1U2Vd3T6PkO6ByU7ZD6Pz5LkjdTB6Xva5srWQ\n6YGxFukO6d5njin7mFGYTajkAcCCe3FSTHT+wgm52tMxE1hmAlQfQg+S8z5nDOlykhmA8RYcK0W2\n/yyOGSc0e7MH5iW7DvHmoSMAXgT8u/nM90qrqPiKa9H8MZJXXuHw4aMsXLjwA43D3b9/P1nLxle2\n6CbI8J2kKCq+skVkh5rYv3//hxLwc/VBfF9Pa1rTmtaHXfv37weRYcftN0+QvJNKi2DVohwnL6U5\ndOgQ99xzz3s+hvsS9r0qkUjw8ssvgx3n879hTgn3pdNpstksIPAbglhY8NinR/i/v1NO96DB/JkK\nn70vx+lLNi8cUGm97scWPjZt2EpDQwNr167F5/MxODjIlStX6Ozv4qWDGX73oZujlzRV8yC/kXGH\np18t4fwVP9EQPLhjwsVBVVWi0Si5XI62Dpu/fyZCMiNfrAcDPkzTIVZUJF0tnDjjCZ10FpbUZfjC\nI8OEAlO/H5o302LezFEaFmT5+2dKGEtoPP1qlD//QpbNK9OcveJH1xTGEypCV8imIHldpaPXQNMm\njmk7ClZOGnJVFOeIpzQud/gxcwpdgzp/88Myfv+TQ8ypysmhDxAJOaTSCmZOIWNKR8Gnni+he1An\n6BM0tfh58VDEe3TduTbBA1vHb3qMnlkhY3lTGVkGQ4espeAIGacbztc9FJDPt5msjA3tHdL44Wsx\nxpIafkNw6GyIrKlg5lQ0BVAEigJt1338ybcrWbskw441CRbXmhRHJ2BFKwcZUyVng23Dyvo0QpTQ\n0Wvw0qEID2yNT4L73DU5N76yO3/Fz94TYVDg7g1xLl71MzCqc/hskA23pclkFfYci3Cx3U8yoyKE\nhCMzpmBwTKUoLA+oKmAYgiV1WebXWLR1+di6OsHB0zA6cIVDu/uYMWchs+qW4qjFskyazvhgJ/2d\nZxjpvwrCIVxUzaI19yKEYKSvjYHuZhKjvSTjgxIQyztygYIvGOW2jb9OKFqGqqr0dZyj9cxrBKNl\nBKOlOE4OVXMnEOSYSAJpU4+JdN1HUdkshnouM3fuXB5++GGeeOIJhkeG5aSN30egfibB5fPwzSyX\nMbQeTZbvk8kM2fYeUFUUTUXxGzefaIphkWLo4AhEzpYAnCrd9RBCXmyXpEMgLAm1ZZo7yVzqlJCg\nLiE/J22i+A1KH9yCFg0x9soxrL5hRl88jFYUJri0Fi0WBgROxiR7LQ8FWjbCyqH4dPTyIoJL5uKv\nq0bRdczuIeJvnCZzqRMtHCSyfqkshzusyNdHL4lSfO8G7LEk6fNXybRcJzc0Bo5ACfjk8Q0NNRQg\nuHgOgXkzUPw+RB7cS5+/ij0SJ9XUhtk1SHTbKtSgH2FaRG5fTLa9BzuewkqkQQicdFbuOzhGbiyJ\nFiuYtHecCVfEgC/vUpif0M6PjQWC7PUBhJkjfukaiqZhVBQTWDgLf10NRnkRCEFuNE76wjXSlzpJ\n9wxy/SeNVN+zifDcGZSuX4YeDTKw5zj//PQ/U19fT11dHU8//TTd/b2olcXMfHDbJAfCqRSaXcXM\nh3bQ9dNGDh05wsqVK98TdPFOunjxIjnHIVJfJ2On36Mi9bPobzxOZ2cnyWTSc0P6MCoUCrFp06Zf\ndTGmNa1pTetfTV1dXbS1tREMBm9yBHs32rBhAz/+8Y9pbW2lu7ubmpqa93wMTdPe15jo5MmTXLly\nBUVRbgn3FTpr+f1+YrEYkUiEy5cv09PTwxe+8AV+4zd+g0OHDvHKK68wPDyMYRjs2rWLlStXekB3\nUVERf//3f8++ffuYMWOGB+EXyo09tW2btrY2nnjiCeLxOMuXL2f16tXedq5Tn2maNDY28vzzz2Oa\npufoZts2JSUl9Pf34/P5OH/+PPF4nHQ6PWUMrivbtj2QyDAMRkZGHAnlXgAAIABJREFUePnll3ng\ngQdoaGjgyJEjKIqCaZqTXPnGxsYmHceFi3w+H0VFRbS0tJBKpTAMw4vMbGlpmQQZupCfqqqeE+Pi\nxYvRdZ1kMsny5csJBAIeADiVex7gQUWFoKn7s0AggN/v98roxrcahsHZs2d55ZVXiMfjZDIZOjo6\nyOVy2LbtQWsgFyn09fUxd+5c6urqvBhb95guoOW6I86YMYOOjg5mz57N2NiYB4q9k2prawmHwwSD\nQQ80a25uZvXq1ZSVlTE0NMTZs2cZHBz0gLBMJkNvb68H37kRsz6fj40bN3LixAm6u7vZvn07e/fu\nZc+ePZw6dYp169bR0NDgAaO6rnP69GlOnTpFb28vhmFw9913c9999zE4OMjRo0c5cuQIg4ODXj3d\neF6Q8cmPPfYYwWAQy7L4x3/8R44cOcLixYu97W+E895u0cP8+fPx+XxkMhkeeeQRkskkzz//PMlk\nEk3TqKqqYtOmTXzkIx+ZFMla2M7Hjh0jlUp5MdhTuXsWbu/Nx4ZC3mcAyHlcF4pTVRXLsjzXy2Qy\nSTqd5sUXX/RcMd3o8HQ6zZIlS/jyl79Mf38/3/zmN2lqaqKpqYmlS5eyadMmAoEAtm0zNDTE4cOH\nvWhrNwZ3xYoVbNmyxYsPfuWVV3jttdd46qmnKC4uvinR0v379ttv5/bbb6e5uZndu3dz9uxZBgYG\nvHdJtm0TCoWorq5mx44d1NfX4/P5SCaTNDXJ+YeOjg6++93veu7Tp06doqKignvvvZe9e/fS19fn\nOal2d3eTSqU4efIkDz/88KQ2du+NQrjvRvX29nrOpydOnCAcDlNfX8/GjRtZvnw55eXl5HI5Ll68\nyN69e2lqauLgwYNcvXqVxx57jIqKCr74xS/yxBNPcPz4cb7xjW/w9a9/3XM7FUJw3333vSMQp+s6\nH//4xwkGgzz99NN85zvfYdmyZRQVFb3tfu9Fbnzt+x0rbNy4kWPHjnnH+TCrurqa6urqX3UxpvUr\n0PsC/D7/+c9/0OWY1rSmVaB/j5DCu3EdFBTAfSAd+4xqqLgd+g9hjbYTqFo1ye0p03WInC2orq72\noBKAXbt2cfnyZQ4dPkryyisEZm68yTnK5/eTy9mY2QxivA1l+DSKyGEU1+IrK7CsBnw+HSXdRXrg\nEKpiUlRa7K34clcx/eSnPyOetsEclXDfjJ3Svcs9yI1SVAmt6RHo3YPIJVGGTsj6CulQpwaKEeYY\nIb/8OM5k4ojxc4gxJT8fkH+T7kZ7Krp0BAMUVUPYKemiVn57HizLF8SNQHVBv3jnRNQryOhXRckD\nTvOlq5gyxVeCkh+Ai4LJVZGfDFQNPFAKJsookJG72QG5X6p7Yn83OtR1I8sMyLheIyrhx2h9HpZU\nJ7u+ufBadB4MvZUHG0skSDkJ7isAslxlR/JgI1C0CIz8S2o7K90AI/Mh3S8d/fKOebI+Zj4q2cnP\nkrmHtmWcrR5EWHEoWipPn+rOA2Y3OLu58JTnOpeTsGL1NplblembABAdS14HRZHlFg6EZyFi81E0\nP/jmwtgFWbZAPiLOsSbFD70t5CecvHucBFIjkQiPP/44Tz75JI2NjdjCgIr1EJopjydsoHBiwJ3Y\nEjB2Kd/mKmhTTGhNmQ+WhyndWFtVn9hW5FAUFSU0A5Hul7vrARQnB0ICfcKIybZL90lgMrZAHu8m\n8O70ZBhRiHy/VUCPSbAtPFu6WLrt5C+V91KyA8YrJqKq3XK7OVCxhRBdKK9bvFX23+ywvG5aQMYn\nK4bsZ7F6Cckq+Tqn8/vkEjIuOjsoo61BRhX3vYGw8jCtaoBw28eRzoPjLfKY0YX5ItkT2076riig\nMlO9EvJzVOk+Wnm7bMN8P1f0gNw3mHcYTV5HDBzDGr1KCgjN2TolmLdz585/M6fZd6v+/n5sW+CL\nvHN84lTSIzWk+0/T39//gZRnWtOa1rSm9f7kOI78LBY2y+c577zDFFo+3+Fkc46+vr4PuHRvr4MH\nD5IzkyxfkGPZfFl2IaDtukL/iEIilUMRCpUlOktqTc9VLxQQ/IctcZ54poTG4xrb1tqsWSpoWGTz\n1LMWR85pXLhwnk996lOee0F5eTlf+tKX+PM//9+cujTIV/42w/a1ObastokVMBmWE2TfSR9vvOWn\nf1hHVRV+49fMmyKD+wZV9h4P8vpbOlkrzJKl9dx///2Ew2FKS0uJx+N87X/+CTgOaVNhTnWW3//E\n8E2ufVPp9mUSIHvyuRJaOv30j6hc79fx6QprljgcO68TLa6hoaGB7u5uBgYGsCzLe3GfSqVwrBRO\nzmYkrpNIQzgI29dZ7D+p0tFn8Mf/UEXDggw71iZYNi+LoUtXuqbWAPtPhbjQHiCTla5+uia4PmAQ\nDgg2NyTZvCpJOCiYauitKODTBWlbwcopGLrAtOTzY8DneI+aWVP+zOcTnGn187c/LSWdUQkHHIqj\nNsPjGj5DRu7OrLCoKs2hKjCeVGm97uP4hQDHLwZYUmvy+YeHCAdlu+o6hFWHVEbFssEwYEa5RUev\nj+f3x1CA/7A5jqpOwH036tSlAE88U4LtwMc2JJg30/Jii3+yN8bFa37OXwlg33C7+Q2BmVP4k3+o\nYvXiDB+9I0FZkYyQziiCTSuTtHX5uHDFzxd/fYh/fsWmvduk5+opOtvOoeoBVM3AsS3snCn/2BaG\nL8SsBbfjC0RwbIuSqnmEiyqxsmkcx8KxBSMDbQz3tqJrOgtW3EWkqAI171QdCMZQVQ1fIAJCYOdM\nFEWVToHec/DUYyLHzuXd/0KgqOi6zvr166mvr+f3fu/3SDs5Sj6+Ca1ETiqKrIXQJ+JtXWUuXgXH\nQSsKIzLmTe5yk3TDLaLomnScEyAcR5KbkB+/KJKizIl8rK6GcGwwpQOdr6YcY1YFyZOXUH0GemUx\nCgrF920kdaaN9IWr2GNJEofOy2ODhAjzRffNrSK4eDZ6VSmKoaNqMlYXAf7ZFagfXcfoS0dInmoh\nsHSujN6FKRfR6UVhopuWE1q1gPF9p8lc7gQhUIN+wusWE1oxD9U3MU4UQmBUlxJcXofVNcj4vlPk\nBseI73sLdBUnbjL80ze8a+ZFE7txa2aOoad3E9l4G8HldaiqguPGEBuaB/fdKKt7CHtgFOE4qH6D\n6OYVBJbMkbHEQr5vUTQVo6wIY/MKIuuXEt/fRPrydXp/cZCZD+0gUF1GbOk8sn0jpM+1s2fPHh5+\n+GFOnDiBKRzmfmzTO8J9rvwVxZTduZKR19+isbHxAwX8ksmknAyOvHcYA0DRNLSgH5HJfegBv2lN\na1rT+v+73HdT9fX1Hjz1XhQIBKivr+fMmTP09fW9L8Dv/aqxsRHLsqipqfHgPjdq1IVyQEI+xcXF\n3nvBcDhMUVERqVSKAwcO8PGPf5xdu3axatUq/uZv/oaBgQG6urr45Cc/6YFC69evZ2RkhB/+8Ic8\n/fTTnDhxgp07d7JmzRoPRlNVleHhYV577TWOHTvG+Pg4lZWV/NZv/dak+ErHcbhw4YIHaAHcd999\nrFmzhlAoxIwZM3jllVf4xS9+4S24chdvvZt3m9lsFsdx8Pv9/OIXv+D++++nu7ubQCDAmjVrOHLk\nCAsWLKCsrIzu7m6GhoY8N7lsNksqlfKgs3Q6jaqq1NXVsXDhQl544QWqq6spKyujr6+Pnp4eL3LY\nMAwqKiqoqakhEol47nAujGWaJiMjI4yNjd0U+1nYNjABaNm27QGagUDA2879vWEY/OQnP+HFF1+c\nBICZpkkul8OyLEZGRjBN04utNU2TRCJBS0sLixcvZsmSJZ4bmmEYaJpGKpVCCEEsFkPXdc9Jsbm5\n+SYg8kbV1tYya9YsgsEgs2bN8q5bLpejsbERXdfp6+vzwMNCMK2rq4unnnqKFStWsG7dOjRNI5fL\noWka9fX1XL58GYBPfOITvPzyywwPD/PKK6/w6quvEggE0DSNTCbjubrZts3ChQvZtm2b97y1ceNG\nGhoaGB0dxXEcUqkUjY2N9Pb2UlxczKOPPko0GvXgwlgshqZpxGIxzxGzEO56O8jPdWh0wbpgMMj9\n999PeXk5Tz31FLNnz+YrX/mK1/9cp7dCwFMIwZ49ewCIxWKeE97bfV4VlskwDA/wy2QyHohqWZYX\nkSyEIBAIeD83TZNAIMCdd96JYRjs37+fOXPmUFxcTHFxMX/8x3/MSy+9xOHDh7lw4QJnz571omfd\nsodCITZs2MCOHTsoLS3F5/N5YK2iKB6g9tprr/Ev//Iv/Mmf/InXD2+ESBVFYenSpSxcuJDx8XG+\n/OUvMzo6imEYlJeX89u//ds0NDTcdE2WLFnCAw88wBtvvMGPfvQj9u7d64HCFy9e5Otf/7q3fSwW\n866hqqpcunSJxx9/nM9+9rPU18s0NtM0vboVfhYVlnnPnj3edSwtLeUP/uAPmDVrFolEwqufz+ej\noaGBhoYGenp6+MY3vsH169f5q7/6K77yla8QDAZ59NFH6ejooK+vj9OnT5NIJEilUsyfP58HH3zw\nltf+Rt11112cP3+epqYmDhw4wL333vuu930nuZ997zde142UvtHJdFrT+jBpGvCb1rQ+hPr3CClM\n5ToohCCX6MYcbsHJjuPYJo5QEXoYJVYv3cFAgjZaCCcbJ5foxojOfEe3J1VV+Z3f+R0UReHw4aOk\nr+8n0xPEV7ZIxvSqBsKx0BLdKIMXJfTj5EAzUAPF2Okhb5tcohtz6BKqnSbi19mwYdukGEqAb33r\nW2RMCQgJkECd793FfREolc5c/YckoFO+TjrXAZo/hsglmT17Nl//+tdvil3M5XKMjo5K+3WhoUeq\nUP0xfKX12Hop6eanJRDU/2beFWzBBFAkLEh1QfxK3rnMliCQUQq+qHQOC1bL7YTDJFDOlciDWIqR\nd1UrcCdT8k5rIj+ZoeoSNhs8nndCU/OAmwDVnwff5k+4tjmWhAATVyW0OHRSgnAVd+DFjCrqhCMh\nQsJ4I+ckqNi7L++YN2uiLJPK7khwzosgniMBQnN4AoYavTDRPjdKUeXPexqhaKFsW4RsA8WBcC2M\nnpNAWPl68LflnRYLADM38rcQEBMaZIbg+iuyLXKJfOxu3hnRHstfCxURngnlayYgLJgAEHV3sCQK\n4pi1iXNNmtDKl9ux8lG4CgoKlZWVGIbB5s2bOXDgIGkniBKqmYBLCx0gmZgYIt0ty+1eJ2fCAWZy\nH5piwteL8RUTkJlqyD5ipxHJLukiqElIVSgKCgZCWPJ8pauh73Xp6ui64ynqBCCa7oXe1+XvjKi8\nL1ynvmC154iBnZ1cLn+pvK/734TxyxOxxFPJdXkMVkJmELp359vBlJBf+XoZee1eM3fw5zp7uv0y\n1e25/AnLyt8nIQnx+Uom9k/3yFhrKy4B18ygLGvhvTiVhCPdIREyCnjGDpRAKTgC6TDpul8WXJt8\nDLXobsQavYoZrsJfvuQmMK+iouJDF4ebyWTyE3RTAafvLEU1IL/KdFrTmta0pvWrUzabBSEjVd+H\nAREAAb/8jnMjg/4tJISQMVoiw851NqkMvNmk0XhMo3cwP4YQOoIACjC7ymLnuhQblqcJ+AVrFmeI\nhm2u9+m0dirUzxHoGvznByzGEnDx2gC7d+/mE5/4hHfOuro6/uiP/phvfvOb9PZc56eNGZ7dl2VO\ntUPAJ8iaCtd6VXKOj4wJVs4hHNR44mcKu4/alJdIHGpwTKG1Q5PPIkqAjXfeyW//9m9PGg+1trYi\nHAvHVtBUhwe2xQn4xDvGobravCrFy4cjXO70se9EiAOn5YTSsvk2J5sVampq+J3f+Z0p921vb+eP\n/uir+NRxPv8Ji6KoYHaVQNcFS2oz/Ol3SsjZCqdbApxpk8/Iugo5B2xbOvjpmmDVojQblqcI+CEa\nclgwK4vPwIvylZGyE89GAmmqljalK1/AJ7By8lFKU6WDH8j9r3RL8HJwVOOp50twHFi7JI0j4NTl\nIAGf4I7laXauTVBXY4ECVt5dcDSucuRciDebQly86uPPvlvB4/9pgEjInQCBcNAhnlJxHJhRnqN/\nWCeXg+f3Rzl8LsT2NUm2rEoSyYOBORtOXAyy90SYy52ybJsbUjy8Y5yOXgNFkQ6SI3GdU5dUDF32\nwc0NKUpjNo6Aqz0GR86FaL7q5/iFIBeuBvjdB+PMqcriODbL6kyEgOv9OmUxmy9+apiekQivHfZz\n4JQPM5sucNZT0H1BMFUc26L55M/xBSIY/hCpsQGc/MIVYds4Tg4UBU33MX/5R6ioWezBfbI9Cp6x\nlfx7ByuDpvtQNR13rCH7psgbpAts28Kxrfy1lX2/MFZINXRClaVEZ1aRzWSwHQdhO2A7ckyi5kEz\nR5C+cA0A/5wqMpc7MbsGCS6pnei0U90UbtdSVekKaDtYPdI1UIuGiGy+jfG9pxBZE8Xvw5hRilFR\ngqJrmF0DWF2DoEBweS3p8+2IrEWufxSjSm4TXr2Q0MoFmB39xA+cITc0hhYNYdSUSce6xXPR8uCX\nMC1Zt8KFbIqCb3YlgfkzybRcJ33hGpH1S6a8J73q5KNwFWPi+sR2rCa46IaYsBucO3yzKih5cAuj\nzx3AGhhFZC3pTqhpBBbMJLisFjXolw7wikq2rYv0uXZyI3ESb54lNzxOdEuDrAMKyi1iC4UQJI41\nIywbNeQntmsNgfkz5S91DWHZOFYOTZuIfVN9OrGdq0FVyFzqpO+Vw8z5T/dIl6BVCxk/28qRI0eI\nRqNkcxbh+TPRoze7lbydoovnMvRmEy2trVy9epXa2tr3tP+t5E3o/RKpOyIPmn6Q0cHTmta0pjWt\n965Cd7T3K3fff8sx0fXr12lubkYIQVlZGZlMhoGBgUmuZK5cB76KigoPYqmoqKC1tZWDBw9yzz33\noOs6ZWVl/P7v/z7/63/9L86cOUNbWxsLFizwjnP33XcTi8X43ve+x+XLl7l8+TKRSMSLYh0fH6e7\nuxvHcUgmk6iqSjwe57/9t//G0qVLiUQiWJbFtWvXvPk0Xdf5zGc+w9atWyfVr7e3F9u2GR8fxzTN\nvDM7nrveO8myLAzDYHh4mJMnT9Lf309xcTFlZWUYhsHtt99+Swf6H//4x/z85z+nvr6eRx55hFgs\nxsyZM3Ech87OTk6cOIGu68yePdsDOh3H8dz7XJhtaGjIi/O0LOum/jFVPVw4ygX93HoXwly6rqNp\nGqFQiGeeeYZXX30V0zSprq5meHiYRCJBMpmkt7eXvr4+7xhuBG0kEmHWrFlUVVVx/vx5stksK1eu\nnAQ3hUIhUqkUPp8PTdNwHIdwOMzy5csZHR2lp6eHkZERr58ZhkFlZSXV1dWEQiGCwSCzZ8/2olvd\nNuns7MTv96NpGnPnzqWyshJd1zFNk8HBQXp7exkbG+PQoUN0d3fzwAMPeBDavHnzuHjxIj09PWzd\nupXbbruNq1ev8otf/ILW1lbi8TjBYJBcLoff76e4uJjx8XGuX7/O448/zsyZM7Ftm66uLq8vuSCk\n6874hS98gZqamknPZ4WRqiChy3g8TigU8sbxN/ZLN1bZdRV0r+eiRYsAOccbDofZuXMnoVCIbDbr\nlccF79zzXrt2jatXrxKJRKisrKS9vZ2LFy9OchydCopz5fP5vOO3tLQghGDdunWUlpbS2NjoxXc3\nNDRQXl6Ooii8/vrrJBIJqqurmTNnDvv376e5udnr5y64+4lPfIIDBw7wgx/8gGw2S319PTU1Naxc\nuZJ169bh9/sRQhCPx29qI0VReOSRRzh06BDXrl3jypUrzJ8//5b1EUJ4EGEgEMBxHKLRKF/96lep\nqqryjn3jfn6/n7vuuovKykq++c1vsm/fPkzTJBwOE4vF2LZtG+vXr/fAymQyyd69e3nzzTfp7Ozk\nz//8z3n00UdZuXKl5/Z4qyj3ZDLJ7t27URQ5H/iVr3yF8vJyQN63uVzOi2N3NWPGDL761a/yta99\njc7OTp599lk+/elPYxgGO3fu5Omnn6axsZFEIgHAzp0739VnYKF27dpFU1MTe/fu5dd+7dcmAde/\njNxy3ApYfifdCDRPa1ofRr3viN5pTWta/3r69wgpFLoOgkJ28ALZwYs42XhBumf+X+YYItWDYkQk\nOBVbCLEFiJEzmMMtGNGZ3nHfzu3JMAw+97nPsXDhQnbv3k13Ty/ZoSbS/RNwlaYpRP0aoWIJ4yVT\naczhs6QHzkzaJmxo1MyZxUc+8pEpHaX6+/vlg68AtAhKePaU/mS3VHgO6E0Ia0xG8463ogB6dBZW\nqtezep8qdvFb3/oWbxw8jFq2kkDlbQjAzGblA3C4VjrDOWYeLGuSkbquhCNBJz0IxSuhaAmTYjxR\n8GJI3TjYQqXzridGJL+N695XANRl8ttoYRg4kncH1CFQLF3Jbowy9lzgHAlVRRfI8wy/JWE5kI5s\n7vEVdcL1TVFlJG7iqnRwcx3zYgvy8JYLNvbmndLyscHhORMRxOkCJxc7JaE613UvWCXPZWckVJW4\nKtvVhaoq7pBRqMKW7m8gt0NIIKxomXQvHDwqgTot/xJGARS//H8hIDcuQUNzZMLV0JMj20bzga8U\n1MDk66LmJ60cu2A3F8ZTJ46n5CE/4Uy4K7rtnl8RtWXLFgAOHDiAo2gEK5eiRWPeINJx8i9evJjZ\n/DWJt8m//SX5yOQ+eS2ZvJn3jxtvFhcGzQzkZyznIXwx6TIphIydjtZ710PYpoxAziUh3SUhOHM0\nf96ygvMWODn6S2HWvZP7nFsmz5GycBJXyD6qhyVIl+6F0IzJ+xUeZ1LbkgcKI9LZ019S0Ag3Wnao\n+c+DKPTskRCuosg6ld8xAQbamXw/CMgY6+gC2V5DJ+R9ImwJDmtTwK2ukp2yzVTfBJTsTSzKayAc\n++b4Jn8JVKxD9B8iO3gBX5m0oi8E837+859/6JxmA4EAKArCfhsHlbeRcGRk9/uJH5nWtKY1rWl9\ncHId6kxLuq3dwpTpbZUx5QKL9+N28X41Pj5Of18vQb+FrsNjf+0nnQEQFEVyLJxjEvA5ZLIKzdf8\nXO/X+acXi3hmX4Tf/8QI9XMsbl+aofF4hMsdKvVz5POKrsk43T/9xwz79+/ngQcemATe1dTU8Gd/\n9mecPXs2H6VymvZe99lPAUVn5eqV7Nixg+LiYl5//XXefPNN2noStHVPOB4bwRAbNmxkx44dU8Im\ncvGRTS4nmF1ps6I+v1jCHVKQX3tQoMJHM0WBzauSXO01eP2tMOmsytwagaEpgPq2TlFtbW3oqsPG\nFQ6rlziIPLyZSmW5fC2E3xCoKmiqoDhqM57UsHISyvMbgnRWYf4sk88/MkIkOOG650pT5R/bATOn\n4NPd52Y42RwEAbOqZVRvNu/e59OFV79zbX4GRzWKwjYvHIjiOHDX+iRFEZsfNxbh0wX/10PDrFqU\nyUNReM6AuiZBs4/ekeDOhiR/99MyugZ1vvGjMv7wM4Ne/1cU6UjY0mngNySeNqc6Szqj0Tes86M9\nMX66N0Y05KCpgnhKw8x3g6BfcO+dcT62MYGiwJtnQziOvL/CAYe1S9L85q+NUhqbuIBZS6E4arN2\nSYZEWuUHLxdxri3A3/4kxmP/MUlNRQ5FyaJpgrGERjylUBzVSGdU2q7r6IaOIgII4XjPisKxUTUN\nO2djZZNY2RSabqCqOsFwKbovgHByZJJj5HJZFBQ6Ww7jDxdTUlHrPV0bfvmslkmOyvcmqoy4dV0C\nVU3Pn1M+vzuOg3ByXmQrCmSSI4DwYtlOnDiB5diU3baAQCBAIBDwJrNMM4udsxFOfhmUlcNJZlAM\njcj6JWRar5O90oOdyqCFAvK2u2nxGQilsNNp4DhkWjpRVJXQ6np8c6vRoiFs2yH2kbUEF872rr2d\ntRj63qtYfSNYXUMEFswkff4q6fPt+KpKvBhdRVUxasoQloUa8FHywGb00tgNZRF5ME6CeSJX6CAI\nwWW1ZFquk7l4jfDahRNjhSlc/ETOlsez5JjIXzeDwMJZcqLMLbwQU7470cIBIptXMPLTN1AMHd+s\nCoo+ejtaWI6Z7VRG1klTCS6cjX9+DWZ7L/E3z5G5eC0PNdajaJoHX96o1KkWzI5eFEMjuLR2Au4D\n6aRo2V5bFEpRFGJbV2J2D2KOJUhd6yFcW4OvOEpwbjXpzkH27t2L6diU3rbgpv3fSaqhE11SR/ps\nG4cOHfrAAL9oNCoj/kYT72t/O2tiJ9PkhMrFixcxDIPx8XHa29vp6ekhlUrh9/spLS1l48aNk9yR\npjWtaU1rWh+sXDjPhaDej9x9fxlI8L3KjYiNxWL09vbS09MD4DlxuWM927ZJpVJeFG0kEmH+/Pme\nw9zY2BiDg4Ne9GBFRQV33nknr732Gnv37p0E+IF0P1u1ahWHDh1i7969dHV10dra6v0+EAiwadMm\ntm7dytDQEI2NjZw7d44zZ85MOk5paSnbtm1jy5YtFBcX31S/TCbjxWFaljVldOeNuvG5MJPJoGka\nP/rRjwDYvn07HR1yTiQSidyyba9du4au69x7770sXbrUAxZN02R8fNw7j67rGIZxU3ls22ZwcJCh\noaFbnmOq8gIUFRV5EaqA97d7PUG6hwUCAWbOnOnBfQsXLqSrq4t4PM7Y2BgXL17ENM1JAI3rEufG\n5Q4PD7No0SJaW1sJhUIefObWTVEURkZGCIVCjI+PEw6H0XXdcyazLMu7Ni4cZRgGwWCQmTNnEolE\nEEIwMjLilcMwDBYsWEBdXd0kyCidThMIBJg3bx7xeJympiba29v52c9+xm/+5m8CEtRyHIf29nav\njENDQwwODhIMBgmFQl7krKIo2LZNIBAgnU6TSCSIx+P4/X4CgQBVVVUYhkEmk6Gvrw/bthkbG+Pp\np5/m85//PCUlJd71cZ/7hoaGvHZ0+4Rbd7dtXZjThWyFEKRSKTKZjAeFptNpzp49i6ZpbN26lVAo\nRCgUwrbt/JjI9GBMgJ6eHhRFYdmyZSxdupSrV6+yd+9eD/DejoBuAAAgAElEQVRzXeFuBbi5UbuJ\nRIITJ07g9/t58MEHMU2TAwcOEAqF+Mu//MtJ9+HixYv5xje+wb59+/jSl75EZWUlAwMDnDp1irVr\n13rnCIVCVFVVoes68+bN40//9E9v6teWZUmH8bw7pNunhRD4fD62bNnCSy+9xN69ez3A71Zy3Tnd\n+fjPfe5zXqzxO0VHr1y5ktWrV7N3714ikYgXc+sCpq7DXlFREffffz933XUXL7zwAvv37+fJJ5/k\nd3/3d9/W6TWbzfLNb36TRCJBOBzms5/9rAf3AV4UsmVZNx0jGo3yuc99jv/xP/4HBw4c4KGHHsLv\n93PnnXfy05/+lHPnzgHy82HdunVvW8+ptGzZMiorK+nv7+fy5cssWXLrxWXvRdFolL6+vvftXuuC\n3LlcjkOHDqHrOj09PbS1tTEyMkI2myUUCjFr1iy2b9/OvHnzpmHAaf2ba3oUPq1pfQj17xFScF0H\njVAlqY43sEavype4WqggptKFevphvAVhJWDwLZTMgBeH6Zjxm479dm5Pqqp6UN6N7nfBYJDKykq2\nbNnCsmXLAN5xm1utUs5kMgg7J6N5Y/WgqrhxLt6M1pRuZfn/KKp0EBs9CyNnwU6h+qPSZVCTKyfe\nqW19kRkIURBzLJAwm6ICqgT1jHA+VtZiwjkO6cYRqZUQmBfn6c64aRIWcmwZi+tK2BMglxsj6tbR\ndVAQDoznB8uqAclr8u/ofBhrlv8ujDKeFKdb4M4XmgG+bdJ5Ldkhne0mRaSqMkY3eVWCXdImAPSA\nBJiGm4DCAXm+nJOifxVZ3nhrPgpXBS0IZWvyEcWFEJ1f7lu0TLrVDR6bDB+qugSyYCLqN7YQUp0y\netWNonWhSQEIM+/UJ+NmUX15Z7laGfmr6vLn2UHZ7rmkdAi0xhAVG1BUXTadEYXsqATQovPk8RVd\nwpfCkbG/b6d0H+DgMwzvobmwj+mGjpGPFxJAzsrlB3C2Z0po22npeVFUjxg8Jdu0aFG+LExcY1cu\nbOj9vwYiC8l2QEVE5iCjgFXwRfJgXgF0ZgClK6XL4/BpCaqmuuV5ixfn2zg/45S4IveJLbgBWC0o\nk+NG2+oT8KJwZDtGF0hQNnHlBsBvCjk5Cd2Rd7+YBNHdCPbd8CN/iYT5xi/Jz8mqrfJzEiHvPXeG\n3HUaVFT5++od0r0y1SUhxuJlU5ctOyKBWxTZz0KzZDW96GLX3eEW/eVWzqp5MK+9vf1D5zRbWVmJ\ndrmNXKIHPVT+zjsUSAhBdvACTi5LR0cH//W//lf8fr8HUFiWRTabJRAIeN8Zy5cvn3a2mNa0pjWt\nfwVpmkZ5RQWDfWNcuqqy9H3E9F68Ih1u3+4Z+91oYGCA8+fPe7GHkUiEZcuWUVFRcdO2MgZEoCD4\n6382cBxB/WyTu9YnWbUog6o6HtiVsyU49uqRCO3dBv/7+2V88VPDFEekq3YyPflZasFsweyqHJ2D\nwxw/fvymSEdVVb0olZGREYaGhshkMp6rRGE81Wc+8xkeeeQRWlpavHqFw2Hq6+vfFrILBALkbAdN\nhQ0rUuiqguMCT7d4Z33jz9ctyfCj3dAzqFMUEey6PceBUxooPlasWHHLc8u2dSiKCgQyfsiyLEBw\n/oqfoN9hdpVFZ5/ByLgm3e4s6SRu2WA7Ctd6fHT06syuyhEKyHpkLYXjF4IcvxBkNKFiWgqhgGDh\n7Czb1iSpKrXZdzKMosDOtYlJdSo0kdt9TE7ElcZs2nt8rKzPcN+d43z5/61GQfDo/cOsXJR3xig0\nT1bkep1QwCGRVokEBY/9xiBf+04lLdd9vHUpyLolabKmwtELQRqPh7nW48MB0lmF7gEfX/2tfgZG\ndA6fC3Gh3c9YQvVOM6syx441CTauSBPwyRNnTYU3m0Ik0yohv83mVSke3jme73sTcmOIfYagKmjz\nB58a5olnSjh5MciTz4T44/8zgaYHsG0F21b4u5+VoigaPYMGWcvAtASaDpruo3zGIsprFuMLhLHM\nFC2nXiaTGsPwBSmbUU/FrKUEw6Uoedc+IRwGuprp62giFR+i+fhzLGj4KOU1i1EUCEbK8AeLyKRG\nGBvqpLRqAaqqYdty8Yp9i/coCiqoCqnxARKjfTiOTVNTE2vXrmV8fBxHCHzlExNIiiIhYTlpZ3v9\n3U5mGFYVFJ+BHg0RqK0mc6WH9Nn2WzveKTcMiRSwx5Jkr/WhOAInnSV18pJ8VlcVL57WhVFVn0Fo\nzUKSRy8Sf+M04TvkGCDT2kV4/RK08MS7H6t3GGHmMKpK0Mti3ueO219doE/RtfyYXAXHQTgSytOr\nS9FKotgjcekQOKNgQZUr9zWIZSNsG6tnGByH4G3zJm1yqw8Hd2iUOtUq4b7ZlcR2rkEN+XFMKw8O\n5o9TMAHsr5uBEvAxvuckqdOtGDNK8c+pvun4TtYkcayZ1Jk2yDkoIT+h2+blTywL70UX5x0eb1w0\npWgqoaV1JI5eYOxMK+FaOTkUml3NeMeA7DMqBKqnaJ93oUB1KckzrYyOjr6v/adSQ0MDP/zRj0i0\ndFC+ZRWa/90vGs4OjNC35zh2Mk3WMPjW3/8dliknghECRdfQDB1FVVHbFU6eeovS4hK2b9/OPffc\nM2mCf1rTmta0pvXLyx1vtLa2Yprme/6cNU2TlpaWScd6P3LdtTo6OkilUhiG4blqTTX35DrDpdNp\nRkakC0EsFqOkpMRztwI857SxsTFGRkZIJBJcunSJhQsXYhiGByoVasuWLbz22mscPXqUX//1Xyca\njU76fTAYZOfOnezYsYOenh7Gx8fJ5XKMj4977/fi8Ti1tbV8+ctfpr+/n87OTq9excXF1NfXv62L\nVCAQIJfLeX9cwO/tIJ4bHcJSqRTBYJD29naKiopYtWoVP//5zz1Y6lZy4yKLioq8yGPHcRgeHqav\nr8+DvG50SnSlKAolJSU3AX66rlNcXEw4HPbec7rtNjIygqqqxGKxSWW4Mf7Vjdn1+/0MDQ1hmqa3\ngGF0dJRkMsn58+fzY7iJ8hS2iwuoDQ4Ooqoqixcvprm5mdraWnw+H+l0mqtXr9Le3k4mk/Hqads2\ntbW1JJNJxsbGPFc495jRaJTS0lIPiAO8uGjbtvH5fN4Y/8bIZje21efzUV5ezsaNGzl8+DDXrl2j\nsbGRj370o95Ye3h4mO9///v09PSQTqc9Z8RcLkdpaSlbt25l+fLlhEIhmpub+e53v+s5DK5fv561\na9cSCoXQdZ1AIMDY2BgHDhyQi/Pa2vja177GH/7hH3rvOFauXMlzzz3HuXPnuPPOOykpKcFxHEzT\nxLbtWzp3unU8c+aMdz2OHj3qQbPFxcWTQFNN0wgGg979e2PfCofDbNiwgR//+Me0tLTQ1tY2JRB3\nq4jbw4cPk0wmKSsr48SJE2SzWSzLQtM0ioqKJm2/YsUK6uvraW1t5dvf/jZr167lpZde4tVXX2X1\n6tWoquqdo6mpCYDNmzdPCV+5sbYuCOnGBLug29atW3nppZc4ffr0lO0IePd+LpejpaXFc8FbunTp\nLfe5UWNjY5w+fZpwOMyDDz7I3XffDeDBu+55XADRBSENw2D37t089dRTfO1rX/Pu0UJ1d3fz1FNP\n0dzcjKZpzJgxw5tbdz+X3P5wK7e7uro65s+fT1tbG4cPH2bbtm2EQiHmzZvHuXPnEEIwZ86cSYtQ\n361UVaW2tpb+/v4PdEy0cuVKWltbef3111m1atW73s+2bU6fPs2TTz5JPB6no6ODb33rW95nBcj2\nd2Hdq1evcvDgQebOncvHPvYx1q9f/4HVYVrTeidNA37TmtaHUL8MpACQS3S/IzT2dnIch3Pnznkg\nXCaTeUeoIZPJIByHbH8TuXg3QjGg4nbPjUqIgrfZgXIZU5mUMZUi0YliW/mV5De/jH83bk+F7neF\n5e/r6+P73//+pPJ/7nOfe89QRiCQd14TQKjqht++zSoM4b0xnoimTfehaD58ZUswB88TNjTPSW0q\nuY6OaMYE3Acomg+cDAJdgn3mCGSzElpyo1pF/ty5pHSaC82ciF1VNAlbxtvBGpeAmGpIgCwyL+8K\nmJT/H7z5pTlCQOKadHATtowfRoBRIo8JeeDp5tVuUop8oe668xnRGyJS8yvx4i0SgrISE+cFWd6i\npXmwsGNyDLEekXUIVk2GvFLXpSOfcKRTW9VmCVoVbiNsJLClyrZ03dZ6GyfDhyI3sd/oeQk62um8\no5sjAUSjMDZZl+5r6R4Zr1u6SroRqoY8p6JKsDBUlQfYOgvijkGUrZPtFZoFiQ4Jt0Vq5XVUNRCa\njK2dBGzl4VI3wtjJQaIdHJucrfLkk0/y6KOP3tI1VAGMAuDP1bjiYCtAYAaKcVnCuqnrsq1uea1v\ngPySXWDGZdmGz8g+4FiyDdN9sm08QBbZ5pkB2R6jF+S1ySXl50hkLt7Bzbhsz1SPbCeRywOZERnx\nHKiQ18eLts1bmzg5CbgGq6QLpvV2rgdCtrOw8+2Zk30kD9FNVf3JgGMeNs0Myn5StkrCek5uAtQs\nPFeh9KDsO4NHZbx00dLJPKVwZBsNHpP9QTVkHxS5ic+wqSDMm8qsTums6oJ5ss/woXKa3bJlC0eO\nHiM5dAl/xbJ35SwohMAcukh28CJ2ahAUjdF4mpHxDoTjIISD61yqqjqKZqBfbuPI0WPUzKhm165d\n7Nq1axr0m9a0pjWtD1ibN2/m2Z9dp/GY+Z4Bv9E4nLiooWpBNm3a9J7P7TjOJDc8nCwT38cKqH5W\nrGhgx44drFixwvsOkKu+bfriKtGQw0fvSPDJXXG5LojJX++GDncsT7NuSZrvvVTMG6dCfOsnJdyx\nPA0oN7kWKgpsaLDp3G3R2tp6E+BXqKKiIjo6OibKL6wCeEVj9pxaduzYwYYNG96Tm0dlZSVCyKjh\nktjNL/bdR7ZCeY/t+UcQQxcE/A5jSZVl8x1mVztcvubDH469bZ3kS2cJFLpwn6o4hIOQyqgoKmxq\nSPK9l0qwcgpmTiESdCgvttFUwbUehayl8OrRCL/1sVH6hjUaj0c4ci5EKnPzM9GVLoNXjkSYXWXR\n3m0QDQk2LE979ZSVkvV6fn+UppYA6azC2TY/oJDOKjz7RoysqbCkzmTtksykdU431U8FQxNYtgQM\n79kU5wcvF/Ha0TDhgM2Tz5UynpSdIha2qZ9t0nLdx/CYxkuHovyne0ZZviCL5V5qVSEccAj6bx6n\nPn8gSiKtoiBYONfik7vGPb7JLZ+Zk+5+qiL7KkgnyUfvH+GP+gz6hg3OtenEwgKBCorK5Y4AhmGg\n6CFydhrN8FE9t4HZCzdg+OTkr+M4tJ3dg2WmiBRXsWjNxzF8/vwzl+yjmm6AgOq5K6iacxsdl96k\n+8oJWv8/9t48uI7rMPP99Xb3i+ViB0ES4ALum0hR3EWJlBxLcixZY8ujVx5bToUeLxNrPJWk4klV\nUjWxrZqX2LEriuV4HMcuv8iRFdmSJVESSIr7LhIkAZIgiIXYd+DuS2/vj3O7ARAkRXmURJb5VUGk\niNunT59zum+fPr/+vnNvIssq4WLxcklJ1QK6Wo4y1N1MpGIBkqygygpGLo2dd+uWJBlJkpFlJe/q\nJ2HbMNJ/Bdu2UFQvhw4fmbZ4It3knk6WFZxfSV6xwO6AcoEV88m095M624pWVoh3/k1cAiQJKf8i\nUG5wnIlfH8FOZ0FTSTd3umXahkn0rVMEls/Dv6wWpSAIEgTvqseKpkhfvkbiaBOSz4OdzhJ9/QTF\nH9+C5FHFtCadwTYtzGiK0ef3Yed0JFVG9vvwzqvCU1uJ7NGQVHFAsqZgZYXLu62byJqCUhDAHI+L\n6Fxu/MTD1sW8Jds5iJXKIPu9aNU3ht1mlCFJmCNR9L4RZL+X8L2rkBQZK51zL5aSIoPjzpcvwDZM\nPNUlBFbMI/lOC9E3T1P4wFq00kKQZaxkhsyVbjKtPaJ/LBvJq6FVRgQ8mHKu5/nI5Xx/3IDvA8C/\nZA6JU5dIdfRjZrIoPi+SR8XGxjJNEbes3hwCuJWcWOH/G2em6zVr1iyWLlnCmabzxC93UrRq4btu\nYxkmQ3tOEm+5hqUbSF4PSmUE/F40bOR4CmM0BkhYtk1oYQ2+qlLiTW30jQ7z4i9form5maeffvqW\nrkN3dPtKp9M0NTURjUYxDINgMEhdXR01NTd53nBHd3RHH0rV1NQwd+5crl27xsmTJ9myZct72v7E\niROkUqnf+PqRTqenueFdL8cR77777ptWvizLLgwhy7LrmAYzoTAnfrewsJDu7m4ymQxtbW0uaHI9\naFdaWuqCJp2dnTdNBJEkiaKiIi5dunTD+kuSxOrVq9mxYwdr1qx5T8/0ysrK3EjO68G+qbCbI+cz\nzucMw5jmovbkk09y7tw5TNNk9erV05y1rtdU+M6B+1RVdctSFGWam+DUegKuy11hYSHRaBSv10tZ\nWdmM/gEBPQWDQSorK103PMel7HrZtk1hYSGyLJPL5bh27RqSJLnxzLqu09vbSy6Xu6XLlQP4OdDi\n+Pg4Xq+XtjZhQNHS0uIeVzAYxO/3MzQ0RC6XI51OU1hYSGFhodsWsiyjKMqMfrEsi8HBQSzLQlEU\n5s+fT0lJyYz5rTM/cFwDQUCka9eu5ciRI5w9e5Zt27YxMDDg9k1jYyMFBQVuXGowGOQzn/kMGzZs\ncEHA3t5eXnzxRRRFYcOGDXz605/Om3nYbtSqAxQ++uij7Ny5k+eee46Ojg7+5m/+hq997Wv4fD43\n2rm3t5dLly6xadMmvF4vqqoSj8fdY5Zl2a2PpmlIkoSu6677msfj4R/+4R945JFHgJnnnaOpMJjT\nFpIkkcvl8Pl83HvvvezevZtnn32W//k//+cNx/L1jpdvvPEGP//5z1147a233nJ/F4/H+fM//3Pu\nv/9+Nm3ahN/vR1VVnn76ab7xjW/Q29tLLBZzIeR/+Zd/4dOf/rS7r2g0Si6X4/Dhwxw6dMh9cb+y\nspKNGzdSX1/vxkpLkoSmaVNSrSy3/qlUagak68hxQrRtmyNHjpDL5Vi7du1NP38jHTx4EMMwWLVq\nFdu3b3fhXaedPB4Pmqa5Y8w0TbLZLB/72Me4cuUKLS0tfPe73+Uzn/kMxcXFGIZBb28v+/fv5+LF\ni267+/3i+Zhz7bhRn95MO3bsoK1NOI9v374dmIzndlwQf1M55byfc6Jt27bxy1/+knPnzjE8PHxb\nkPvg4CDf+c536O3txTAMSkpKXGdEXdfp7u52IURN0/j4xz9OKpXi4MGDXLt2je9///t0dnbyqU99\n6o6b3/uk4eFhWlpaSCQSKIpCOBxm2bJlM+D+31XdAfzu6I4+gPpNIAVHtm2RG215V2jsRrIsiz17\n9tDQ0ED/wCBZ3cQ0bXdBSLkF1CAibEz0eA9IXqh2Yiqvk/PdJskQmiOgrv692Ok+JNu6KSxyO25P\n/zf1fzeVl5eDE6kjadOBxVuCMu5r5/loVfF3ragWSfUhm2mq59Tc8u0sx9FRTyfJ2YE83OcVbWjq\ngCGiZhWviMkN1046wlkGRC8J+Gr0rICctAJItOVd4lIzd5ibECCbpQMyhOtnPu22DciMCQDNzgHK\n5PHlRsR+vcU3BgOvl+tAaAmoy4lITV4ToFIqPwlXg8IZ0BMRMa3RFuG0Vr4VSvMW0JIigKYbLUNk\nx/PQky4+V7YePNPfAhIrInnIVJryFektngIftuRjhQfE72QNjDRIuUngTwmI8t1YYgS0mBkSkatV\nO0Q/WDpuXKxNvp3zqwvBOaAW5MHC7nxs7XzRt2ogH43bL/Zh5aEw2xLHPtWl0SnTRtTZTCNpIQzg\nyNHj4vC8Xt6La6jk9DWGcO4beUeMBTUMvsjNtsp3iyXG4vh5pzABmDptaVsweEDAkY77opNFXLZR\n/Jnszo99S/SpGhTOebErkB3Ow3ND0/edHRfbqUHhfFiwKN9Wjotf3jlPyl+DbH16202VE1uc6hPA\nKAjHwJvBvjf65/SA2FYLiXE/NUZ5WtSyU8aUqGV/hXCf1KPimAOzRH3TAwI0NZL5Vdp8u3mKJ8fZ\n9fVxypVvcEvor4Tx89OcVR0wT/zPB8tpdvny5VRVVtDe2Yse7cJTVPsudTBJdR8SjrO2ja0VIhfO\nRwpWYppgmwZkh5ESHWCksCVQAhVIoSqSY620dfTQ99Of0drayq5du/6vJrN3JPSbvGBwR3d0Rx9O\nbdu2jZdf/hVnW1IMjhlURG7xQs112ntSxbK93LXmLiKRm92X3FjpdJq///u/58L5s2BlUOQsaxab\nlBYLZ6uRCYmzLQrnzx7l/LkzLFu+ii9/+csEAgHC4TCZbA5NtdmyKsWnH4jfEBiZ+m+KAp99eIJk\nRub0JT+nLonvxXBw5vEWhWxgppPFVA0PD/Pd736Xnu5Ot/4LZ1sE/DY5HTr7ZLo7k/zkx1d54YUX\n+K//9b+yatWq22qb+fPnEwiGyKQy6PrkItXNnl1O/XfbFo5wVn5qpirw2Y/p/OPLHpDFg+Zb3ROI\nt9FlegbJLzBZhAICjLMsiWxO4vm3ivFqwjVx6+oUKxdm8GqijkNjCt/8pzLOtvjxey06er0MjqtI\n2MybpbP9riSzynU0xSaWVDjR7Od4U4C2Xg+ZrMzqhSl8eVjOSQJNpCVe31PAmydCJNMyPo+FeDZu\n09Ll4Z3LYl/bVk/2142MPRyHNo9mCzhRl9i0PMUv9hZwudPL/9stFhbmVuk8eE+C5fMy2LbE4JjC\nt58v5Vyrj5cPhnn8vjjOrUjAa6Gp03dm2fDGsRCvHw2Rzkj4vBYPrk8g56OJHekmpPPQo9czvQyP\nBvevS/Lztwo5eMZDYchCtzwEwsWkk2P4C6pJJ8ZQVA81Czcwe+EGps7Luq8cYWK4U0B0NrSdfxOv\nv4BI5QJCRZUCMJuyS0mSmLt4K7Zl0t95lmuXD7FswyeRZBlJUrBMg+hIF8M9zZRULcovGIlIYFXz\n5R+sT19gdT4vyQr1qz/CtcuHOHO2Eb/PiwQiFvb6SNvrJHs1ZI+GmdXRR2N4ZpUSXLeI5KkWog2n\nCSWWElg+74bgl40tXPiONiHJErLPi1YVQasuRfKoWMkset8wxlic1LmrpC60U3D/XfgWzAIJwttX\nI/k9pM62YqUy2FkdfWCMsX89SMH2VRgTCRJHm7FzOiYgZSYXSsxYCn1wDE5ewr+whuA9S5EDXnFC\n6qZw8TMMbE1x280BL6XrYnZtw8DWDWzDInOpE9sw8S6YJexJVWXGhWHau075P1MXOwHwLZotHAvz\nLydKsoykqZNzMST3xJMUGclW8S+dS+p8G1Yyw8TuE8jazLmMWlGMlUhjjidQSwpcJ0BnTNrW5DzP\n1g2kG7jdyX4vSkEQcyKBmcyg+LzYOQMJsQhoYmFlcij+9x4Hb2Wz4v29QOA9b3sr3X///TRdvMj4\niWaCtVVohTeH7izDpP/lA6R6hkCRCSyeh3/RbJTCEDbCOVLWFPShCVLNHWSudJO40oVkQ81/fpBM\n/whDb56gueUy3/72t/nTP/3Tm8aD3dG7q6enh3379nHkyBESabFY7LDXqqyweNEi7r//ftatW3cn\nGvmO7uh3QJIksWPHDv7xH/+RhoYGNm7ceFsgBggApKGhARDfC+9VXV1dfOc735nmwLdmzRqCwSCG\nYdDR0UFrayt79+5l7969PP744zzyyCOu05mu68iyTHV19W3B305EaGdnpxsv6vf7b7it4+h1qznR\nmTNn+OEPf+i+VBwOh6mtrUXTNJLJJFevXuXs2bOcPXuWuXPn8tWvfvW2541btmzh5z//+Qx47no3\nOkfOvzvwVjabdZ9rVVVVsXTpUv7X//pfgIBobiXHoevatWtu/OhUOM8wDLdeThLJVDc/j8dDIBCg\nqqoKVVVdgMk0TYaHhxkYGCCTybjtP2vWLCKRCD6fD0VRiMVibl0cp8BMJkN5ebkLe02Foa5du4Zl\nWWSzWQYHB9163qiNnN85kJ9pmgwODhKJRGhpaXGd9CoqKpg1axaBQADbtikuLubKlSsMDg6iqiqB\nQMBt76lwn1O+ZVl0dXWRyWSwLAuv10tNTc2MemWzWdeh8Xr3zMLCQiKRCLFYjPPnz9PY2Igsy4RC\nIWKxGOvXr+fkyZMEg0H++I//eFqctGEYfP/732dkZIRwOEx/fz8/+MEPqKmpYfXq1ZSUlLhOYU6d\nQqEQX/nKV/ibv/kbent72bNnDx/72MfcfnAgtrlz5xKJRKb1tzPHvn4c7t27l3g8zpw5c9i+fTsv\nvvgir7zyCqZpEo/HsSzrXZ+/OufM1atXsSyLxx9/nJaWFtra2virv/ordu3axdKlS2ecF5IkkU6n\n+da3vkVTUxMej4dwOMzatWuprq5GlmWGh4dpbGykr6+Pn/3sZ7z11lv89//+36msrCQUCvH1r3+d\n733ve1y9etUd66+//jrRaJSHH36YgwcPcvz4cXRdp7+/3z2WaDTK4OAgjY2NRCIRHnzwQR588EFk\nWcbv97uxvc7zaKfNHBh0qhy4zzAMhoeHXUfEhx9+mHQ6fct0BKcdTNPk7bffBsT578CXzribCtHJ\nsuzCml6vF8MwuPfee+no6KCpqYlvfvObM+qoaRqLFy92IeKampppkO7U64ZhGGSz2Rvey8+bJ1za\np7rsOUCeJEm3vB6/mxIJsbb2fs6JCgoKuPvuuzl+/Dg/+clPePrpp29579zT08MzzzxDPB6nrKyM\nrVu3cs899+D3+5Fl2a1bY2Mje/bsoaWlhZdeeok/+IM/4G//9m95++23+fnPf87u3bvRNI1PfOIT\n79ux/K7JNE3Onz/Pvn37uHDhwozfq6rK+vXruf/++6ddW38XpfzlX/7lX/5HV+KDKsdK2KHl7+iO\n/r1UVlbG8ePHmBgfQ/IWofhu5oA2U3q0EyvaxtzZ1Tz55JO3TYvrus5zzz3Ha6/tZng0Ss72oZYs\nx1txF56yZahF87HVEJnEBBNjo1xsbmJgoJ81a9agKLtJ2qUAACAASURBVApNTU20t18FFCjfBIGb\ngF3XO0epfgHcJLuQLB0lVI2nqG7GZrapo49epiAc4IEHHnjf6/9u8vl8HDhwQLhWhOsEwDV5QLdQ\n/veWLqCbRCey6iVQs5lM90ECXplPfOKxW34ZNTc309XTQ872YntKhHOfrIgH4KNnBbij+KFsgwDd\nfBUiulbxinoGZ4t958YF6JfumwT41KBwi4usEqBWqC4Pj+Vd0LBA8UyCarYpfpLdwkHMTIO3REB2\nBQsEgJYZFdBf4SLhSoYNN4tKdeN6EaCR8xA/Myh+chMC+irbAJG7BOSm+sBXCUYMclFxTFqhOBbH\nLVF2FhUkUd9UDwwdzsedWuLzpWsn9ymp4nNWLl9fBxScIi0MiU7Rlt4S4dpn6QLEM6KivW1b1K96\np4CjHMjOsmHwoGgvJSCgxUSniOOV8nG/Tj2mSvUJACzZLWDMwsWiP3JjAmTLjArYS9ZwFz8c+PP6\nts6OiTawLShaDoWLyUWv0dvdSWFBAROxGLYaQg1e71A5U0aiHzMzIYDRwsVIuYlJMNSBSG907bF0\n6Nsj4m9lTXyuaJkYfwULxTjTCkQbO66TehwC1fn2kUV7K14w4vk4agMS3ZDqEm2KlC93KZSsEuM7\nXCfqZSREuZkhsX1gVr7NRRyegN1SwhlPDYnxPANutcRx5CYEXGhmxXgpXiHqJecXxG52aXCugWON\nAmwsXJI/T5zfO1CfWMR3QT0pD9FKMi6MmBkUYyPRIYDd9KComxLMt1FSbFewSLh8ylr+Jx/H5drq\nmIjFtOuuhZYBsVYkWcNbKuLGrFwCY+IqoYCI6bvdMXO9cuNXkTKDLFu6mPXr17/n7W8k5/vuYnMT\n6Ylu1PAsZO3GsIBt26S6Dwq4T1KxS9YilaxGCVRgomErXiRPIVKwCgrrxbUnNYCdiyGrPoLzPoLk\nLSY90U1/Xw/DQ4OsW7fuzhtav6Esy6KhoYEf/OAHvPlWA22dXQwOjTE2HmVoZJyunh5OHD/OiRPH\nsW2burq6D3xbf5jmER+mY7mj3x75/X76+wfo7u7hYpvJPctNPLfBUZ+5LPOz1z0gh/gvn/3ce4qj\nymQy/O///b9puXSOoC/Go9sz7PqEztY1Fsvni5/1yyzuW2cQDhhc68vR2zdKU/NlNmzYQCKR4LXX\nXiXo0/mjT40RvP4ryAXkr7sblmB+TY6Gk0GGx1U8Knz2Y8aM7Tv7Zc62eKmtq2ft2rUz6t/f3883\nv/kNhgc6iYQSPLJN1H/HepN7lltsWmXxwAaT6lKDiZjO0GiakyfPUlFZeVuuHpIkcfHiRfr7uqmM\nmKyuz4jbs9u4HEuScNqLJWXeOhHG54WhUZmLHX4KI9Xs2rXrloBfYWEhDXv20T+U5p7lSSIFtuss\n9+qREBNxBZ/H5pM7Yux6dIL5NToBn03eAIyCoMXcKp13Lvm51CHc9uZU6Dz9n0d5dFucuZU6xWGL\nwpBFWbHJ8nlZ7lkuXoTqGdIYGlMpCptUlRgMjSm8cSzET18vpqndS06X2HF3gke2CPhuzaIMRUGT\n1m4vxWGTT+6MCjhDndnv09pInoQgVQVGxhWu9nixLIlta5LsenSc8mITyxYblhRazK3UOXXJT2ef\nh6s9HsIBi0ihiWVJqCoosnBcvNTh5fm3Ctl7KohpSUiS2P6pj02gG+IzHsUmq0uks2Ie4dXAe4Mk\nuKoSgz2nQvSPKPQNK+SMAHMWb2Vi+Bp6JoEkyRRXzGPe8h3ud/VgdzOXTv2Skd7LyLKClHfay2bi\npBOjjPZfYWzgKtg2oeLKGd/xBSWzGepuIpeOE6mcj2nk6Gjeh20Lt+XoaDcefxh/sBhJklA9/hu+\nJDk+3MmVM69imQaVc1dRPns5oaJK+q9dJJmIYVsW6f4RjGQaSzfQikI3Xag1EimyQ2OireZWopYU\ngmWhD4yR6xkm3dSJlckiayq2bmAmM+SuDTL+6jEyV7qRvBq+hbMp2HEXwXWL8cwuw1MRQSsvxFs/\nG9/8WWK70RjZ9j7kcACtRCxoe2eX4Z1fLRaA+sdAN7FSGTLNnWTa+pBsG6UgQGBFHeFtqwisq8e/\ntA6tqgQ7q2NGkxgjUbKd/XjnVKD4PEiaknfkA2yb9IV2rHRWOAiGJxdbbNME3cA2TWzTJnGsmVzX\nEBgmgTULUIvD2KYt3AFvcnFwsL3YntNgWhRsXyOAPgA5v/hoGK6bofODG6srIfu9GKMxjLE46CZK\naQGyz4NaGMI7fxbBtYvQu4YwRqMAeOaU451bieTVkDRV/MjOfEjAfrZpIl9/ogLpy11YqSwFS+pQ\nQwHGTl2EWIrSkhJSmTRqUQhv+Q1ebn0XjR5vQoqm2LJpM/X19e95+5upsrKSjvZ2hvr6ibZ1E6it\nuiGAaNs2Q28eJ9nZh+T3UvjgevwLZiH7PNiA4vMg5yFVJejDV1eFp6qETHs/ueFxMCwKVywgVD+b\n6JUuxgaHyGWytw2N39GkbNvmX//1X/n773+flrZW4pk0SkUxntpKtMoIUthPKhpjcHCQd06f5uyZ\ns6xevfp9h0P/LfRhmkd8mI7ljn57VFlZyYEDBxgaGiIWi7Fy5cp3fRZiWRY//elPOX/+POFwmM9/\n/vO3DQYCdHR08Mwzz5BIJJg7dy5PPvkkTz31FGvXrmXZsmWsWLGCbdu2uS5VnZ2dXLp0iWw2y/Ll\ny2lqanLjJsvKym4JvU2VLMtIkkQikcA0TRYuXMhHPvKRGZ87efIkg4ODbNy4kerqma7Jhw8f5rnn\nnkPXdRYuXMgTTzzBU089xZYtW7jnnnvYunUr27dvJxgM0t/fz+DgICdOnOCuu+56VyAHBDjy2muv\nuRGsjkPau/WLA/NkMhkXaFq6dCkNDQ3EYjFWrVrFxz72sVuWYxgGp0+fJhqNsnnzZsLhsBst+uqr\nr7rOY24C1BQXMUmSsCzLdSoLh8NYlkVfXx/nzp2jv7/f3S6Xy5FKpRgcHGRkZAS/34/H48Hn87mx\nr6qqEolEKC8vx+v1ug5/8XicTCbjQkognLGcCOGpx3czKHIqDFleXu7WecmSJcyZM8d1LQSorq4m\nnU4Tj8eJxWKuq6Gqqu7fnWOfmJigt7d3Wr9VV1dTWVnpOk46x+E4yvn9/hueP7Is09/fz/DwMMlk\nkurqahYtWkRvby8jIyMAfPazn+Wuu+5yXe6ef/55vvOd79DX1+fWb2JigpGRETo6Ojh27BidnZ2E\nw2Gqqqqm7U9VVaqrqzl27BgjIyM88sgj7N27l1OnTmFZFoZh0N7ezuzZs10gMxQKTet/B1Tbs2cP\nR44cQVVVPve5z7FmzRosy+LixYtks1kymQxdXV0MDQ0RDAZnxOQ6ikQiHD58mJGRERYuXEhlZSWL\nFi2io6ODvr4+jh49yqlTp1zYMpPJMDg4yN69e3nmmWcYHBykqKiIhx9+mC9+8Yts27aNJUuWUFtb\nS319PTt37qS2tpbBwUH6+/s5efKke556PB42b95MXV0dsViMnp4ecrkcPT097N69m7a2NjRNY968\neTz22GM8+eSTPPTQQ2zbto2ysjKGh4cZHR2lubmZwcFBd43YcSB1+mbPnj0EAgEXqHTGp+Ma6URZ\nf//732d4eBhZlnniiScAcS2+lRmAJElcvnyZPXv2UF5ezhNPPOGOO03TXKc+55ycCp06da2pqWH/\n/v0kk0ls26ampoZwOEx1dTUPPPAA69evZ9++fUSjUTRNY+fOnVRVVREIBPD5fHi9XheqBVzAcapr\nJQg3yzfffBNVVfnoRz9KKpXi+eefxzRNFEUhGo2ybdu292zkkEql+NnPfoZpmjz22GPvqzPb3Llz\nOX78OD09PfT09NyUA4jFYnzrW99iYmKCJUuW8KUvfYkFCxa4ronhcNh1epw1axZbtmxx+66xsZHF\nixezYcMG5syZw6lTp7h8+TILFiz4jdMVf5eVSCT49re/zeuvv87Q0BCqqrJmzRqWLVtGXV0dgUCA\nwcFBuru7OXjwICMjI9NSVT7I+reYR9wB/G6hOxO3O/qP0nuBFKbKTI+R7tp/W9DYVFmWxXPPPcfR\nYydI6RLemi34azaghSqRtQCy6kPWAqjBCjyli5G8RTOghoGBARrPnsPWCpDK7r6FlYP7n0lpYYi3\nI5kZPCX1aKGZcKADlcyqruC+++77jeuvlSwSE53xbjra23njjTc4c+YMFy9exOfz3XTiWVZWxuuv\nvUY2lxPgj69cHIazqnVLE798lGeyCykzjBooQR+7jF+z2bRpw7va9vp8Po4cPoyejkF4PpKafzgb\nu4Kd6BJwX9V94K+eUh9FgEty/idYI0Cp7LCAohSvcKQrXQf+clGGrIltvMXC4cxTKAC03LiAw9SQ\nAIlG3xEglWUIuEwNQeqagLsyQwJakiQoXiX248BTknMDdaNjlVzICFkVAJiRFgBo5Xbh2scUawnF\nJ/atT4H8Uj1g5R/823lXw3hHPsq0TfSD4hGrCUXLwFcy6XhnG5MOZ5IC8g1WsyRpEqoy4mLfWggK\nlwm3QSsn6l62EQL5SZhlCWe7of0C7pMV0W5WDsyMKCPVLeqOLdz5po2FPKzmgoVlYvuxc6LO2ALY\nVIOiH2RlJiRoW2IfQ0fA0pGCs5Eiq7FlD5g6ZrKP0dERbNMgF+vFysaQFA+yJ3zTcSkpGvp4uxhT\nhfXYvjIkPZGH/PLAmW2KtrQMAdbF26F/rwAzlYAYe6V358dQAJAF0OifAlSlB8T40xMQmD15/fCV\nCmjNSOUd+3J5eNIryoysmhybileMb1+pgAinlRsXwKADeGJDvBOyQwLiDM12GjEPgOp5577ePNyX\nwo1jLlo8JW5ZwnXPu5FsU8QMW1mIrMyPN+fdfHvmjwPbQv68zgO+iU4xDrzFAuDzlYnzzkxBblRs\nI6sCvlVD+fLzP5I8BfRz3B+vg/z0BMTbULwhvCWLgEkwb1H9AqITE2QSE+J74T3AVrZtke4+hF+z\n+X+efJKKivcOCN5MdXV19Pf3MdDXQ2q0DckTRvYWzKhfbvQS2eFmAfdVbEXyl6OoqnizFYRLqtMW\nkiSuh4EqSFzDyowha368kYWo4VmkRtsY7O+loCDM/Pnz37dj+V3RvzWg/x+lD9M84sN0LHf026Wl\nS5dytrGJvsEEZy5ZzJ9tUXyT5326AXtPKvzjy15suYCPP/o4W7duBcRCSFdXl/uwPZ1OEwqFZjwE\nevbZZ7nUfJbSwgRf/3yONYusGwJOXg8snGOzbqnFuSsGfQNxenoHGB0dpb3tIncvjrN2cQaPZ/Ku\nV2LyDXxnCjFVAZ9Ne6+HvmGVqjKbT9xvcr2OX1C42uNj2fLVLF++fNrvEokE3/rWtxgf6WZxbZo/\n+3yOZfPsGfVXZJhdYbNwjkVLJ3QNZDl8+Ai7d+9m//79tLW1EQqFKC0tveF3e1FREXv3vs1EUmbb\nmiRez+T041ZKZSQMS+LA2QDN7T5sW2Ik6icQLueP//iPZyxgXC+fz8fly5fp6enG77VYU59DkoRZ\n2L/sKUBTbR67L8bvb024dZEkAfepioiZrS41ONPiI5pQmDdL5yufHBVRw4BlS5imiPZNZ2V0U0JV\nYPGcHH6fzcUOL0fOBXnjeJC3T4do6fIST8lUFIu43IsdPk5f8nPuqp/zrT7a+zxYlkRVqcG9a1KY\nlqjUVEM3p55TuE9yhoiQtSyJzgGNlmteKkp0vvT4OEjSpLudDT6vTWWJwewKnQttPgbHVN5p8XOy\nOUDfiMrlTi9nr/j4xd4C3jweon9UQ5Vh08oUvSMeVtdnuGtRhpwhge3E8opK+Ty4joXXy6NBc7uX\n3iEVw9IoKF3ArPl3099xBiOXRlY15q98AH+wiEwqyvkjz9Pf8Q62aeD1hSmfu4Ka+eupmLOCksoF\neP0FZFJRcukE0dFukrEhIpXzkafck0qSgmHkiI/3koqPMtBxFsvUqZizguLy+cTH+xgf6iA+3ouk\nqPhDEeS8O7VtW0wMd9B58QA9rSewbZOymmXMW3E/o/2t9La/QzoxhnOPbKVzZAfGSFzpJnaxA9sw\n8BQXzHCIU8MBoheuYozHCSyrxTYtvFUleEqLMKIJzEQKfWCM9KVrpJs6SOfhOyuRRvJ6CN2zlNA9\nS0X8bn4A2LoBlo3sUVELQnjmVSGpCnrPMLmuITyzSlFCAfFOl9+Ht7YSSVPJ9Y0gqQq2YSJ7PQQ3\nLCG8ZSWeqhKUggCyx4Ps86BFwvgWzca7YBb6wBjmeJzctUF8C2uQPSqSIsowRqKkGltBUQitE3MA\nDFPUzxBzJjOaInG0iWx7P3ZWB1XFO79aQIi2hW1Y+ff8bnCBMC3MZJrUmVYkj0Z483Ls/GLW5Ekh\nIUmy2N75N8tyY5ElRcZKZQRcaNn46mcT+fgWfIvnoEUKiO9vxBiLCWdAQC0vxld73XVGlpAURbSd\naeanXRayNv3+MnnmCnbOoHjdEqyszuiBM4S9fh5//HEuXLhAJhanYPn89zQf0mNJRvefIeT18YVd\nX3hfXe9kWWbNmjW0XL7M+OAw481t6PEUajiAGpiMZc/0DTO8/x0kTaXowfV4ImEUWRYOIR7Vhfum\nSikIoJUXk2ntITswSnhJHVo4iL+mnPHzrQz1D7Bz584bLmbats2lS5d44403OHLkCMeOHaOpqYl4\nPO46Cf0uyrZtfvKTn/D6G2+QsnQCy+so37meyN1LCdZVE6ytIrRwNoWrFiKH/KRGxxkfGuGdU6dY\nt27dbcEo/5H6MM0jPkzHcke/PVJVlQULFnDs2DHa29sZGBigvr5epP3cQBMTE/z4xz/m6NGjqKrK\n//gf/8OFDBKJhDsnGh8fx7KsGdeQiYkJnnnmGZLJJOvWreNrX/sac+bMueHieWFhIatXr6ampoZ3\n3nmH1tZWCgsL2b9/P+Pj40QiETwez7RtHcjoZmCXx+Nx67Zjxw4WL1487fe2bfPqq6+STCbZuXPn\njHPx4sWLPPvss9i2zaOPPsof/uEfUlNTM6P+Pp+PhQsXUlpaypkzZxgYGOC1115jz549HDp0iPHx\nccrLy296jW1vb+fatWuYpumCYe8my7JcCKe4uBhN01wYbsGCBTz99NPvmgxSWVnJyy+/zMTEBKtW\nrXKfp/b29tLQ0IBpmiSTyRkxuk57O5Chz+fDMAy6u7tpa2tzHeOczzjwkOMmNjQ0RDgcJhAIUFBQ\nQDAYJBQK4fP5kPP3DlOjZb1erxsVa9s2w8PDTExMuC5k19draoSxA+M5bea4A9bW1lJdXT3js36/\nn3A4jG3bxGIxMpkM0WiUZDJJJpMhmUwyMTFBX1+fG+caCoUoKioilUpRW1uL3+93y3XczCRJIhAI\n3PT+xOfz0dbWRjwex+PxsHPnTkpKSmhqaiKdTlNWVsYf/MEfoKoqJ0+e5C/+4i+4cOECkiRRVVXF\nli1b2LRpE2vWrHGjYkdGRhgZGeHMmTN4vV7XNc1RJBKhsbGR0dFROjs72b9/P7Is88UvfpFkMsng\n4CDnz59nYmKCQCBAJBJx2zuTyfDOO+/w8ssv09LSgqZp7Nq1iyVLlrB3716OHDnCxMSE2+/9/f1c\nuXKF/fv309TUhKZprrueI8c98NKlSySTSe666y5s22b9+vVIkuQCohcuXGD//v3s2bOHgwcPcu7c\nOQzDoKysjP/23/4bmzdvdp0op7pAhkIhZs+ezaZNm+jo6KC3t5fz58+zdetWF0Crqqpi27ZtXLp0\nyXWXc5wev/CFL/DQQw8xe/ZsIpGIO1YWLFjAjh07mDNnDhcuXKCzs5ORkRHWrl3r9reu6+zdu5fL\nly9TX1/P6tWr0XV9GthnWRZXrlzh//yf/0Nvby/ZbJZgMMhHP/pRFEXBNE10XSQf3chNMpfL0dTU\nxLlz51i1ahVr1qxxP++MR8e1z2l3x50zl8shyzIej4empiYGBgYwDIO/+Iu/4PHHH2fDhg3ous4P\nfvADcrmc274bN26ctg7jnO9erxdFUTAMYxpk6GhkZIS3336bSCTCzp07OXDgAGfPnnWBzL6+PgKB\nwIxr9rvp4MGDnDlzhvr6eh566KH3tO27KRgMsmjRIk6dOkV3dzfHjh1D13UqKyunzb1eeOEFzp07\nR11dHbt27Zr2/RoOh2esPUiSxOLFi8lms7S2ttLT08P27dupqqrCtm0uX75MIpFg48aNN6xXNpvl\n2LFj7Nmzh8OHD3P69GlaWlpcV9UPuqHBv5USiQTf/OY36ezspLCwkI9//OPs2rWLrVu3snLlSlat\nWsXmzZvZvHkzmqZx7do1Ojo6uHbtGuvXr//AQ353AL9/Z92ZuN3Rf6RuF1IA8dBaj3aS7trvQmP/\n6T/9J5qamvjFL37Bq6++yu7duzl06BDNzc0zQLaGhgZee203KV0iOO/30MJVNwd7JAnFVzQDamhv\nb6e9sxu7oB7JVw63ihW+iSOWlB1B1gI3jFW8ldvT7dTftm1yo5dIdx/GiHVjI2HbEpmcwfDION29\nvbd0B5IkifHxcVouXxZQUcGCKcAa3NyxyxYwl23B6BkwUkhWlpBPZdOmDezatetdH2SWlZXxyisv\nk02nkXwRAfPYNgwdFXBP6VrwlubdvZj+41ZPFkBZul9Ac+VbBfDkwIe2mQd8nGORBXjpq4Bkj4Co\n4lfzcFtq0gnMSApIzcwK8MnM5B3NZNFGih/XicxxYJtWsTzUJDkQE6K94m3i/8vuEaDVNEmTTma+\nCgFwmSlRl+xQ3s3sqgDKMnlHMzUknNL0hIDBIqumgHD2lHI9M537pu1aFnXTo6L/C5eCJyT2ZesC\nHnPigqOXob8BsgPis1qBcOArWibaJjhHAIJGUrRpZkgAcsFZ09tJzjsnpgcFHBe7LPo9OBe8RXln\nRseV0YHqTAHVJTrzgGO76N/gHCjdAIl2pNGT+ZhhCRsFO79PMzuBPtGBPtEOgOKfeWMpe8LoE+3Y\nelIclxpGCdcgKR5sPe+Slx4SbRVrFX+m+gBDwIgVWwUkq+RXnW0rDyzKedBUEi6LgSpxXLlx0c/e\n0sn+kiQBtUWviqZSglCxRUBuUr5MyXGOcKA2SfSRv0pAmbkJUa6vNA/5GTB6WtTfyol2tK08jBkX\ndXEAVzODJCtITvx2eJ44t7Amz6dp5+EUSNA2xBi1dAEqymr+g3IeyvVMwrmSlD/kSQjPrWusVZRZ\nulFcBwKzBCwavyra0VcpxpYWFu3itNvUc09WxJjJ11lyz1MEIJsZFHB3Ue00MO/zn3+Kjvb2f1en\n2duRJEmsWbOG4aFBBvt7yY53kB1rxc4Dp7apY2bjpLoPYZsGduk6JH85Ho8Hy7awLHvSJfV6qX4x\n5pLdWLkYnpIlyFoAyRMiO97J+NiIa6c/VZZlceHChdv6Pv5d0/vxgsEHte0+TPOID9Ox3NFvlzRN\n46677qL54hX6BpMcOA0Xrkooio0sQyYrMTQm0XBC5Ye/1Hjnkg9bDvPQw7/P448/ztjYGK+//jo/\n+MEPeOvN1zl65BBHjhzi7bf3cfjwUbLZLJWVlfh8Ptrb2/mXn/8zfi3O15/KUVny7pHAQT+srLc4\n0mjS0zdBNBojnRzlE/fFKA6brmubI/eO80a8iyliUs+2+Ckpgp3rpwN+ugE//KVGzgzxxKf/MyUl\n0++Pf/3rX9N45jhzq5L8yX/JcbO0yO5Biede1PiXt1RiSQlNtfBqwsE4l4nR19vNkaPHOHnyNIWF\nhcyaNWva9pZl8drruzFN4XRXXWqgKFOO6fppng2prCRc4iz42RvFjEUVkLzUzJnPn/zJnzB79mxu\nR42NjbRebWdwTGXF/CzFBRYnL/o4ddHPrHKdz/xe9KZQGsDAqMpLBwoI+Gz+9L8M4/faWDYYpqif\nbgrAzUaAeH6fjSTB7AqdsZhC37BGNieT0yX8XouacoPxmMpYTMFGROhWl+kUhS0SaZlURqG4wGLb\nauEEaFoSan7sQv4Wb8o0RJIgo4v7Po9mc7nTS0uXl00r06xckMWj2gR8NqblRB1LaJpN0G+xaUWK\nkkKL0ajKyIRKa4+Hq90euoc0EmmFopDF721I8NlHJkimFZrbfSyoybG4NutCfdii+/y+mWDo9X16\noslP95AHSQmzYNXvoWpeBrvOY+gZQoWVzF28lcREP40HfkImNYHmCTB3yTYWrHqQkooF+EMRvP4C\nPP4Q4aJKKmqW4w9HiI/1koqPkIwOEilfkI/izbeJL0R/ZyPJ2BCSJFNWvZj5Kx+guGwumsdPbLSH\ndHKc8cE2hrouMNLfwlD3BXpaTzDU3UQmNYEkK9TMX8/s+o1cOfMa/R1n0LNJNG+A8pqllFYvobh8\nHqGiCoxMmlw8TqprgOjFdjyRAtSCgHB9A9SAj0zvEPpEAn1wHG9tJaqm4i+PoM6rwlNTKuJkJQlJ\nU1BCfgHCyTKBVfMJrJyH7NGmkZ52TiymyF4tf08OnqoS7JyBPjCGlcriq6+ZnEJLEmYiTeZqD+gm\nss9D+L41+ObPcsE427REFLCiIMkCEpV9XrwLZ5HrGcYcj2NGk/gW1iDlgbfk6Rb0gXFs3cAYiYpX\njnI6ViKNMTRB6vQVkicuYYzGBPQnSSBLyF4N36LZ+XeUrEkgz7TcHxHra2JncqSbryF7NQIr508D\n9yRNzccg5532VMVtdwf0w7IxowlyXYPYloUxEsW3fB4YJsmzreQ6B1DCAUJbVwoIMZ3Ft7xW9Ic7\nmPOnnyxPgfxstx4A+vAEybNXUbwaJRtXMH7qItZQlK2bN/PYY4/x9r59xMbGBdxZdPuOE6NHz2MP\nR9m8cRObN28GxPU1Ho8zPj6OruuuU8RvIk3T2LhxIyNDwwz19pMbGmP8XCvx1m6SV3uINbWJOlgW\n/uXzCCyYNRlLBihez4zruSO1IIgxHhcApaYSmF2BGvST7htGn0hQUhyZ9tKTruvs27ePH/7wh7z+\nxm4ut7bS0d1FV28P7Z0dnG1s5O19+5iYmKCqxUSIdQAAIABJREFUquoDD6y939q9ezev/PrXpDGo\nfGQLxWsWTQMxHUmKgq8iQnhJLcneIeLDY1xqbnYXuT+o+jDNIz5Mx3JHv10qKSmhrq6OM2fOcO3a\nNRoaGujt7cXv92NZFolEgs7OTl588UX+6Z/+iZ6eHrxeL3/0R3/E4sWLaW1t5YUXXuBHP/oR+/bt\n4/Dhwxw8eJCGhgaam5tRVZXKykoUReG1117j/Pnz1NfX89WvfvVdgTMQDmqRSISzZ89y9epVRkdH\nXTDLAVSuB1uAmz7Lcdyq1q1bN8O8orW1lT179lBUVMSnP/3paQv6tm3zve99j2g0ykMPPcTjjz9+\n030cPXqUv/u7v2P//v2uy5bH48E0TdLpNFevXqWhoYG2tjbq6upmuEr19PRw4cIFFEVhYmLChWRu\nJsMwXPDO6/USDouX6j0eDxs2bOArX/nKbcH+iqLw6quvkkql6O/vZ+PGjWiaxi9+8Qva2tpIp9PT\nnPNuJAe6HB0d5fLlywCum53z44B3Xq/XjWUeGRmhoqICr9eLpmkuLOjAcE4UbywWI5lMous6Ho8H\nSZKYmJhw4SvHzW2qrh8TThyqLMtUVlYSCARYtGgRfr/fhQenQolOhGZZWRmqqpJOp10XQqdNZFmm\nvLyclStXsmLFCvr6+lznPY/HMy2i14lrvVWf2rbN1atXMQyDJUuWcO+995JMJl147ZFHHmH58uW8\n8sorPPvss5imSXl5OZ/85Cd58MEHqa2tpaSkhMLCQoqKipg/f777InN3dzeXLl3C7/czZ84ctz8s\nyyKXy3Hu3Dm6urrw+/3T3ClHRkbo6emhr6+PCxcucPbsWS5cuMCJEyfYt28fV65cIZPJUFxczJe+\n9CXKysp45plnaGxsJJVKUVJSwsqVK1m4cCFz586luLiYsbExBgYGOHXqFE1NTcyfP98dvyCg0z17\n9tDX14csy9TV1eHz+aivr2fz5s1uJKymaXi9XoqKihgfHycQCPDlL3+Zuro6N94ZBPyk6zqKorig\nlaqqrF27lnPnzjEwMEAkEqGurs7tf0mSuHDhAh0dHUiSRGVlJU8//TTV1dUuQGoYBrIsu6CdJElU\nV1ezbNkyjh8/TmdnJ6WlpcydOxdN07Btmx//+MeMjo4yMTHB6OgoAPF4nJGREZqamvjnf/5n9u7d\ny9jYGJZlucdZW1vLvHnzXAjQMAxyuRyGYbhwnuNy2dHRQXNzM/PmzWPp0qUuXOfEafv9ftdpz+Px\noCiKuy9nXDuQsm3b9PT0cPfdd5NOp3n22WeJxWLcc8891NfX09HRgc/nm+a2PXXca5qGoihuXR0H\nO4C3336by5cvs3TpUlavXs2PfvQjEokETzzxBIsWLeLIkSP09/ezdevWGZHWN1Mmk+FHP/oRyWSS\nT33qU26qhK7rxGIxotGo26a/6bP/SCTC6tWruXjxIkNDQ1y8eJG33nqLxsZGTpw4wVtvvcWBAwfw\neDw89dRTVFRU4PF43OO/GUwPsGjRIvbt28fw8DArV64kEokwa9YsGhoa6O/vZ9OmTdPmNaOjo/zq\nV7/iH/7hHzh58iRdXV309/fT19dHR0cHR48e5fjx41iWxZw5cz7Qpgbvt0zT5Nvf/jadnZ1UV1fz\n9a9/nZUrV97wezEYDLJs2TKWLVvG6dOn6e7uJplMfuBd5P8t5hEf3BngHd3R77hkWeYLX/gCkiRx\n7NgJ0j0HyfT78ZQsQg1VI8katqVjJPrIjbYgm2mCXpUNG+5h3rx5/Nmf/Rn9A4NkdRPTtMWDSklC\nudLG8RMnqa6qZOfOndx///00NDSQzhr4arah+CPvXjlA8UfwzdpIuucQDQ0NwopbVpB85dhWDkma\nGhMKEhI2N1hwceIufWUgKVi5+MyP2Ba50RaCmsK2bdum/c6J9btV/W3LJNV9SEQxgnAPK1gIvjJx\nEyNbyHaM5GgLbR099P30Z7S2trJr165pE9k1a9bwyiuvYOejdgnVTcZx5o/Sjda0mYR5sAVIZSSR\nsKiuLOWxxx5jx44dt0WWy7JMQUEB0VgCRk4LQMlMC7hKDQpYyXX5uskXv21D7IoAeUrvEWXM6A8H\n+NFw4zs9RRBZLdzKrCzYknDTM1Nif2oQwgvyMbGqcGsb2J8H/XKgGpNlWaaw0bh+f9OPdhL0k9R8\nhOoUVzonQtdxSZMkAVYVLELKjUDsKsQ7sC1T1N1XCqF5oo0kCRJt+bLzMadT4b7bket2ZovY2NAc\nAYk5CtXl4csjk/tSg1CyTjjQyUq+/pZoD2+xiIFND8LYmXyU8FHhAuiMLdsSYJttQapfAGnBOSK2\nGBk8lwTQpcdh4jxMNM0EbLUwFNSLthg5DsluceRqMO/WGMGW89BYegjiVzFTI6S6DpLuPYHiL0H2\nFuCJLBTXH0nCW7qEVO8J7JGTAhj1548lUAuZYeEaqMfFOSCpAtKTPBBZI9zQHKjNuQbAJFTldIu3\nWACTQ0fF+A0vnOwq24Z4N2CA5IWSNflxPaU/rZxoC1lFktV8ApOdL3d9vtwWcT2QJFFvMyX+bqRg\n4gKTlJ4TmZsH+NxxaYh/T/cJGFWS806SYlHrJgNp+ph2YpVl78wVf0lmMkJax42StqeUPXxUlKGF\nxVgAcZ7LKgwMCRCwYJGARW90HZbyYKWVw7YMJFkV5ceuIgGeyEIA9Og1ZDNN9ZwaVqxYwQMPPMBP\nf/ozkr1HUbwFt/X9YabHyPQeI+hV3bj18+fPc/DgQYaGhshkMvh8PsrLy9m2bRvLly9/z2/gaJrG\nF7/4Rerr62loaKCvf4Ds6DnSQ41g21i2iW3kwFOEEp6Nz+cXbx0mcvkFyltMoIKzQQlgZeMYiT60\n8Cy0wrlk+k/T1z9Ac3MzK1asAHBjDxoaGm7r+3jnzp0f+LeN3m/t2bOH48dPks4D+rcaQ5Ik4ymq\nRfEWkGx/g2PHTlBfX++Oozu6ozv6cKq4uJivf/3r/OpXv+LQoUO09UVp+1UGN8ZekgANZB+za2t5\n5JFHWLduHc8//zwNDW9hm2mwM5QXG0QKARuGxiXGhhO89GIfL7/8K37/9z/O0NAQ2BnuXWtQWfru\ncJ+jiojN9rUmu4+JuBnZtqgq04As6RzYWHg9+fKcP6a8qwDCECuZlikMW8jydJc3R6cuysRTHmbX\n1s5Y6DIMgwMHDoCd4cnf028KZ11sl/nezzUyWRuPZrFxeZpta1IE/AayJGFSwIkmL/vfydDfk+TZ\nv/sen/zUp3n44YfdMg4dOoTPK2MaEq8eDlM/J0tRyELTbDzqJLxmWZDVJYx8/KsE7DkdZCwm7m+r\nZ9XwzW9+8z09tJRlGVWRyWRl/vr/i/DVJ8bZdzqILNtsWSUgukxOwpdv75wOJy8GaO/VSGVkrvZ4\n0A2JrauSVJWaWBbEEjKWnX+fxgYxaxWdpSo2qgK2JXHf2iQnmwNkdYmw36S4wGJkQqUgaLJtTYrt\na5OUFZmO8RiDYwpf+9tKogkZ3QQ13y5ZXUJTbWx7CtyXbx9r8hYBRYbRmIosC3AwHBD3fbYNQZ9F\nPC1jWAJyBQHlbVmd4iMbk7R2e3lhT5hLHV7mVed49N44y+ZlUBXQDQmPJspKZSQMU2wvS8LF0AbS\nWdB1ARlqzjsoCAg1p0voBqSzMjYSs+s34g2EsS0L08zfz0sy0dFuLp34Vww9g+YNsvjuRykuq2Xq\n/E8CZEXFti1MI0ekfB7+QDGX33mFsYE2mo6/QNmsJUQq5qGoHlTNK+J9kZizaAuz5t+df9BvUz57\nOUWlcxkbbKPz0gEyqQlyuSSyLJwdvP5CKuasoHz2MhRF4+LJl4iP96F6/Myp30Rp9WJsy8SyxDw0\nPt5POjFOOjGGZRgYEzq9L+xFCfkJL6klvGI+vrJiyneu59pPXiPbNUj0rVOE712FERALnWpJIWpp\nkQty6mNRJn55GNnrwb+8DklVmHrCWDnx3EBSlRnzgeC6RaSbO8h1D2FEk6gFQbDBTKZJHG2GnInk\nUfGvmIevrsrd3s6DcFZOx8oZIorXgfw8GoUfvYex/6+BbOcAZiyJUhDEGI2Sbe8XjwW8HvTBMfTB\nMWxr8gJm52E9pTCIb1ENkqKSONZMtmMAM5pEKQwiWQKYsw1L1GOqJAk5KBZLrKyOpYuFLEmRkXye\nGQs4knNSKDKSZWFldGzTxEpmRFleDSuTI/r6cQp2riNzpQeAgp1r0SojJE9ewowmyXUN4a3Np0Vc\nd5mXZKccXbgJesRcLdXciSRBwZI6kle7iZ1rJah6XZe6j3zkI/ziX19kcPcxqj+xHV/5u8+HJs5e\nIXGhnbDXz0c+8hHGxsbYv38/Bw4cYHxiAhsbCQlNVbn77rvZsWMHCxYseM8LW16vly9/+cs8+uij\nAug4coRULIUdS4MlgFLJ76F4VT3BwkIymQw2COe+d9lVYHkdmdZeok1tRO5ZhqQoFK5YwHDPMQ4e\nPOjen8fjcb773e9y6UoLOdOAgJeCZQvwRAqQZBkjlSF++RpDg6O89qZw9vvqV7/6nt0/fluVyWR4\n5ZVXSJk5Kh7aTLB2ZtTk9VK8Hqp+fys9L+yhu6+Xw4cPs2PHjn+H2t7RHd3Rf6RWrFjBn//5n/PS\nSy/R2NjIyZMnOXny5IzPOS+9fuITnyAUCvGNb3yDK1euuMCGE91p2zaZTIYLFy5w+fJlIpEIf/iH\nf8j+/fsBePzxx98TPLxlyxZee+01ent7XTDC6/W6+73evQqYFh8L4hmaaZqoqoqmaeRyuRn7OXDg\nAADbt2+fUb+rV6/S09NDOBzmscceu2E9bdvmpZde4te//jUg4I/77ruPtWvXuu0Sj8fZv38/J06c\n4MKFC/zVX/0VTz/9NAsXLnTLaWxsdOG1wsJCxsfHSafT0+A327bdiE0HRlMUhUgk4oI0O3bs4Kmn\nnrrtdgYxJzJNk+7ubv76r/+az33uc5w+fdqFv66XE2/rgHuapmEYBj09PTPAOieq0wGgHCAqGAyS\nTCbp7+93Xe0c50LDMEgkEvT09DA8POwCSiAiMufPnz8NknFiYqc6/zl1mOre5zwfdZzFioqK3PhP\ny7Lw+Xyk02my2axbf7/fz7x586ivr2d4eJimpv+fvfeOsqu6z7Cffcqt06tGmlEfdSGEKqCChABR\njI0Bh4Bb4oKznAAmTvLFzue14tgm2KE4H7Ehy7hQgi2KYwuQAY0khHpBmlGfojqa3uf2074/9j1n\n7hQ1bNyi31rSzNx7ym7nnL3Pfvb7HsQ0TSZPnsyUKVPIz8/3rH/dcehQK2M3TbFYDF3Xvbpyv7Ms\ny7NLdRwHXde58847UVXV+8yFr9atW8cLL7zggYqf//znPSU1N3+apuH3+z0wc8mSJeTk5LBu3Tpe\nfPFFTp48yezZs6msrERRFPLy8hBCEA6H+epXv8r06dO9cvrMZz7DqlWr2Lp1K7/+9a9paWmhv7/f\nq/sZM2awYsUKrrrqKlpaWnjkkUfo7+9n1KhRLFmyhPLyciKRiJfP48ePk5OTQyQSwTAM9u/fz0MP\nPcTYsWNZuXIlS5YsITc3l89+9rN8//vf57XXXiMajXLTTTd55TZ79myuvPJKr1zfeOMNTpw44Vlu\nZsJ9Lvjm5iczAoEAt912G08//TQbN270HN4cx6G6uppt27ZhmqZnS+5aO7twn6tu6bZn95wTJkzg\nvvvu4yc/+Qlvv/22Z7/q2tq62+7cuZOdO3di2/agOnYch0mTJrF06VL27NnD4cOH2bBhAwsXLiQr\nK2sQ3Jd5bbh178LDLhQLEmAaCWxyFft8Ph/JZJJ4PE4sFqO/v9+7H9bU1LBp0yZKS0s9C+QvfOEL\nnjXy1q1bueuuu0a00nXbs9/vJ5lMkkwm0TQN0zTZuHEjAEuXLuXZZ5+lpaWFwsJCD0odP348J0+e\n5Mknn+Thhx8mFAoNO35mpFIpfvCDH9Da2kpJSQlXXXUV9fX1VFVVsWvXLu+eCdIWffny5Vx33XXD\nFrpeTJSXl/Ptb3+bgwcPsmHDBqqrqzlx4oSXDkVRqKioYNasWZ6yKnBBUFHXdZYtW8a6deuoqqry\n4NdFixaxdetWtmzZwsc//nFAwulPPvkk0WgUgIkTJ7J48WLy8/OxLIvm5mY2b95Ma2srL730Ejt3\n7uShhx4iJyfnkvP7pxgHDhygtraW3NxcvvrVr1JQcOEx9cSJE/nKV77CI488woYNG7jllls+UPv4\nU44PHfBzHzAfZgSDQXJycjxv+lmzZjF79mwWLlz4f27l3+X484oLQQoIgaoKwrrK6LHlrFy5krq6\nOl588SXiSRNbDeErnIovqwyh6jiWgRlpHgSy7dixg6bmFmw1hJ479tLSlwE15OVKdUHdH8QAHDOZ\nVnkbOmnjDLzXtzMAOE2CLY47MZARmVDJzJkzB3138OBBmltaz5l+x3EG4D6hQ/FCaVfrAlBmAhsH\nNWsM2cUzMXpPEz27ja3bdgDwN3/zN16He9u2bSiaT64479onVeF8+QMKWN5JrQHAByTk1LVP6qRp\nPmbMmHHJQEIoFEp3Sg1oqpLKbzgZSoKOLEtVkeUbb5GAmRGR0JZlSvU3X+6AkpcbafUukZbdcGxD\nKqsJJQ2TVUDPIUilJGhkpRX8ihakbVNdICVdscFSadOa6gJ/QQaIlIajhqn4MbCNC1lhSwhLzexs\nOh6EJNtNxjEcEydQggiW4fgLoKsaESjCKVkykK5MANJMSJtf3LSkldHslPzMtS51wS4XyDPjcn/V\nD4Xz5DaJDry67q2VKm/JLvm3Foay62U78Rp+WiFNzYC2QmWgLYG296QCYbwNgsVSpS9QMriuCuel\nQbd0/nMmQdZ4CdC1vCvzoGdL21s9G7ImQXCUPHXbVlk3ii4Bt1C5/NxKguMgIicgekq2AUWXEzi2\njRPrgFgnqe4ToGchcibiCL9sV6Sg7T2sgrlpkFKRaQ9mpDvWnIbQXCDVrbeMe4AHzA0BP8MVMi9G\nBBItcn/HhPYdsqxQZDm7VrueHIotgVPHBiuF49iD1RlD5QPHjbfI9tCxWx6v+GqpTNjfIMvVq+O0\nwp6WAzkTpYVvokuCgv0nZL2o/rQVdBoEzLznufXvWFIJzuiVqpp6NogMBY+RQqjy+raScv94U/oL\nRdoTt22WgKkZS5dHuTyXHpZ5jDXKMpIFn3HgDCU/WxlId7QRrBiKPxsta/QwME9RFFatWkVtbS3b\ntu8kevw3BMZcg547FjGCgqtUmj1F4ux2grrD4sWLsG2bf/qnf/pQ4DdFUbjhhhu4/vrrOXTokAcQ\nxuNxaQ3RB2rhNEK5uQggGo3JklAu0DVOq5M63TWkuurQs8dI8KxwKsnOajZv3szs2bM9GfwdO3Zd\n9PN4JLD8zzkuBtAfKYYuMLhYWP5yXI7L8acboVCIe++9lzvvvJMdO3awfft2enp6MAzDW9W+cuVK\nJk2ahG3b/OAHP2Dvnu0oToRFM02uX2gyucLxHrO2DYdPGFTtSrHvWIzXXl1DMmXhV5OsWDDcGvdC\nsXKBxbptSSJRi+wQ8jmmqJiWSSKtXidhKWfQOgXTA6YkWKUqci3M0N5AZw/84m0JMa5cuXLY5Nje\nvXvp6+1kTLHBlLEjw4knzgqe/B+dlOGwcEacz97WSyggt40lIZkCny/BHStUPrLM5O3tJmvWW7y8\n5ucEAgEPHmhvb8enORQVOrR1a/zglUK+eEcXhbkWKWPkfoymwvpdYV7fmoOiCEIBBk2qXGwYhkEo\noDC21OFMq8q3f1pILCHIy7KZPz2OgwT8uvtU3t0X4r39YaIJd6IG+qIqWUGbhTNjdPcpnkhy5lIO\nd/LDsi1iCYWQ3yYUsBk/ymTimBSHjvtJmQq9EZgwJsVDf9FJTjgN37kJdaA032JSucGZFo1DxwPM\nqUzIOjeFVAvOKCr391RK/qLrDn1RQXVtAEVxmD0pMagcHEcCeaYtbXXdc1q2hPamVCT4yxtsvv3T\nIlKmYE5lkkRKEEsKbBsKcywsC46d9mOYsn5sTxFOLgYxLAfTFpB0vLIBCYbFkwqnW30oapD8kolo\nmp/u9lOyry0E0d4Wara8AICq+xk/fRkFJRMGqQNkhhAKmu7HNJIEsvKYMHMFtfveoLfjFJHeVs7U\nbqNw9BRKK65AKCq6P0TZuDkZ14Hs+6uaj9Kxs/GH8ji291fovhBTrvoI/mAYfzAPRZE1XV/9Fv3d\nTfgCWcxcdDeBsFwgZBoJ4tFuThzcQCzSiUCgKCrB3FEIRcUykyRjffS9X0/PnqMIn4YI+rASKTBM\nUo3tdL3yLv5xpfinVKDlZyNUBSuRInmqhejeWrAd/JNGo+iaVKyzZWU6phyLClVF6JocPogMFZGA\nD39lOYmjp0kcOUXW4hmYPVF6fr0Fsz8KioLw6YTmTEYEXIV05BJLy5b2uraNlUhK1UBVBQfUcAD/\npNEkahuJHTpJYPIYet7YgWNZhK6YRPjqmUR2HiFe04CTSE8YKwL/uFJCC6ajF0rrYsWvY7R0kTrb\nTvzwScLzpiA0DaHrCJ30WDpNrwpw0tChkh3EjsRJnW7FN6YY4R8O92VcVrK2FQUl4MNOpEiebMGx\nbbTifOymDoyzHfSs3YoTT6KV5KGPKkAIQXDGeCLbDxHbV4evomQArPSO7SAceWyhCBzbwTEt7FhC\nwoLp66Pt7V2ENB9/ec89nmXabbfdxunTp9mxexdNr26k8NoryJ42XpbzkDD6InTvOUrk4HFCmo9P\nffKTrF+/nm3btpE0DVK2BT4NJSDfOUVjUTZteY+t27cxcfwEz2bwUmPMmDF86lOf4hOf+ARNTU3E\nYjHq6+v5xctrEGMKyUpDie6EuqteeL7QRxWg5oax+qIk23sIjCokOLYUy3EkMA/E43G++93vUn/y\nBFZQp3jZAsITxww7ft6cSpLt3XRuO0DHqRa+9x//wf/zT/80CKT4c43t27fTH4viLysia/LF163q\n91GwaBYdv9nBhg0bRuwbXI7LcTn+/KKiooIHH3yQzs5OzzYzEokAkJWVxaxZszwAoqOjg29961s0\nNTVh2zYFBQUUFhYOAhYsy6Knp4eOjg5aWlp49NFHsW3bA6QuJYQQXH/99Tz33HOkUikPJIQBKCrT\nJtb93P3pQjMugDbSOOH9999n7969KIrC8uXLh31fVVUFwPLly8/5Xm3dunWsXbsWRVG49957WbFi\nxSCwz7IsD3a85557+NGPfkR1dTWPP/44X//61ykvL8dJP+uCweAgmKC7u5tEIuEBSkPLx1UvC4VC\nFBYWkkgkRgTyLhSWZREOhykoKKC+vp6vfe1rRKNRz1rWLVPXLtdVI8uMeDxOV1fXiM8OV1nQMAyS\nySQgYatQKERra+sgy2bX5reurm7EY7W2tjJhwgQKCws9y1LAA/yGntf9zm0H4XAYn89HXl6eBwkO\nzUsmCOTub1kWpaWl9PX1cerUKQKBALm5ucRiMQ/KchUwu7q6vHp022CmvaoLXbmwmBuucmNFRQW5\nubkAnD592iv7tWvXkkwmsW2b7OxsPv3pT5OTkzPMPtkNTdMIhULEYjFmz55NS0sLu3bt4r333mPP\nnj0UFBSwePFiSktL0XWdadOmDWMvHMehuLiY++67D8Mw2Lx5M/PmzeOOO+4gJyeH/Px8QC4wePLJ\nJ+nv72fSpEncfvvtnp0ySBhp27ZtHrDo1oFt2yQSCRobG/nZz37GT3/6U3Jzcz1Vuf7+ftatW8e2\nbdu4+uqrWbBgAbm5uTiOQ2dnJ9u2bePtt98mGAyyZMkSAGKx2CBbXJC8h9tuM9vV/Pnzyc7OprGx\nkbq6OiorK9m+fTs/+tGPPHXMSZMmccUVVwyDh13lPMuyiEQihMNhDzK9+uqrefnllz3L6lOnTvHK\nK6+gKAoPPvggRUVFPP/88+zbt89TzQsEAtx0003cfPPNhMNhcnNzWbVqFV/84hepq6vj2LFjTJ48\nGZ/PRzgc9u5zmQCtYRiektfhw4dJJBKEQqFzqnlmtj93m5aWFo4fP+6Bi4lEgp///OcUFBTgOA7X\nXXcduq5TXl7OlClTOHbsGOvXr+e222475/FdwM8wDGzbZuvWrfT29lJYWMj69euprq7G5/PxwAMP\neHX34IMP8s1vfpP6+nq+853vcM899zBjxoxh17njONTW1rJmzRoaGhoIh8Pcd999fOtb3+LUqVPe\ndrm5ufh8PqLRKH19faxdu5bXX3+dxYsX89nPfvaiFE8zQ1VV5syZw5w5c7znXiKRYN26dRw8eJAV\nK1Z4z0f3Gr2Y+ZmlS5eybt06Dh065H02Y8YMtm7d6o2Jjh8/zve+9z1SqRQzZ87krrvu8hQoM+P2\n229n//79vPTSSxw/fpxHH32Ur3/96xeEJf8cYsOGDQDcdNNNFwX3uTF58mTmz5/Pzp072bRpE3fe\neeeHlcQ/yvjQAb9zvcT7XUYsFiMWi9HS0kJ9fT3vvfceICcCbr/9dj75yU8Osge4HJfjTynOBykE\ng0FP5Wj69Ok8/fTTbE8r4QTKl40IWmihIvwZINv+mgPYto1v1OwRoYzzRSbUEI1G5coeYaffvqZh\nKVuklbqUgZkTLCkB4EJRioZIqwcIdfCDcySoJDM2b95M0rDwFU4dMf2pziMDcN/o6yU0lpkHRcOx\nZQdPT9sDn0sdqK2tDYSGljMaM9KE0/aeVCNzoaaRyijRAh3vIxwTLaccO9ZKe3v7JZUzyI6tovkR\nwRLM/iYJBil+0F1wDPnivOewtGM1I+nP0mp3ThrYyhqfPmLGvdlxJc0VdF0jlTJwrNSAkp/ql8pv\nPdUSclOCaWgtL+NYGYO4rEkSIus/Lm1xXYDLPZennpexj+0OxhSIHJd/Z4/0QtfJ+DkEUrJSOIo+\nAMSZ0YFz2paEwty/k23S3naYil8a9juX8lqiQ/504TDHgehJ+ZmWnbYK7kurgPmlipq/YLBER2YI\nNS2ZkZLwZX5aLdGMQDQlbW09lUYh85ZhHGzzAAAgAElEQVQ7ZQQ+S0hFwYIrobtaKheWXDsAvAH0\nHpPQluKT9edaPbuKiJ17cWJNslY8ZcaSNORnpG2aT0CqD6dtN+71KxASOuvYjaMFITxBQqSKLo+d\naIeu/fL37AkD14qdAfMKRaZraDh4QBVdNbJNBUZJuC96Rn6v+qQCXya8JwSgpiev0gqBtpmeEU2n\nSygyj93V8p8RScOW5bIu++tlfad60nkVEgIsWighVqGAHgJfAaLnCI7ZL6G70Bi5rWuxSwZw6Nph\ng4Q3o2dkmeZMOec9ZFBlu0p7VgL6GtJZVUGkAd+eQzhClaqM7r7ZldC1T7YrLVvWu9smvOafnnBT\nVGmllehEtO+W6n2F0zF6T3pg3tVXL/Ym+T+o0uyiRQuxbZvnn3/xQ4ffFEVh9uzZnqoewDe+8Q16\nj9Tjzy337kKWbQ20twtFcBR01wxSnNWyRhNv209bWxu2bfPMM8+wbfvOS3oejwSW/znHhQD988W5\nVBMvx+W4HH/e4ff7Wb58+YgTOm68+OKL7N2znaDez0P3Jpk6bngfTFFg1iSbWZNs9h21+K+XbfpT\nCoWFNqUFl/7+ojjfYcpYi71HVCzb4fTZJNMnmAghIX/LgrgtSCSFx5U4ThqqSodPh0hMfpkVGvii\npVPw+As6vdEwU6fPZunSpcPOX1NTA3aSpXOtEdcKWDb88BUJ9117RYzP3d47iG/x6xLwc1eUayrc\nssQiK5Tix7/q48UXnmfWrFmUlpaSSCQQAu683uSNLRpn23S+90IRi2fFufaKKKUFsp8jFeGgui7I\nxr0hTjT5UITgM7eZ/HStTjweH/bC/kIhF28KKits+mIqJ5skpJcTtvDrsqzrGn08++t8qWwnYEKZ\nwcKZcdq7FH71Xi7ZIWmt66FhLvSZMSQIBoPEY3FMyyISV/DpDsGAzfRxSY6e9GPZMLrI5O//soNw\nMHNMlZFYAdfPi/DTN/PYsj/EwhlxkikJcqZMqTI4dHiQTMN6ft1h/YEs4klB5diUV6aOIxUAE6kB\nBTxVBVWVeU+ZAtOCSFwhHJL7ROMK0bjATA9tunpVDtQHSCQVuvrg6MkA86fHSRkS/nNw0HwBHNvG\ntkwcxx7IlpA2r+/XhkmkfOQWTSCULSck2hsPoQiVUWPnEOltJdrbJteZ+IKUVFzoGS3PoGl+DMMm\np7CCcE4x0d42gln5JGO9tDcepr3xCJaVQtP8qJocN1imQVdLHV1tDcQjXeCA7g8BCqlEFFXTCYYH\nXhAnYn20nT2MUFSmL/g4wax8751lpKeVY++vxTYN/IEsSsbOprRiFpoewLIMHNsmHu2m/ewROptr\nMRJRrHgEcBABH3p+DmZflETdWRINTWmLXOENeZ14CuHXpBWupuJYdloJL6N8/brXNR86XA6kAT+j\npQs7maL3je3Y0QRqOIijJPGPH4WaHRrcDpGWu6iKhPwMU4J1fpGWrYTgzAkS8Hu/lvjBEziGiT66\nEFRBx4/fxHbBvjSUpQT96GWFKGmFO9JWwFmLptP9v53EqhvQCnPwVZRIW11VQShK+jWQDZaFY0tw\n1D+hjNjeWhJHz+AfN8qzFR7WQgbJXQqEKrB6I5htPWDZ6MV5WG3dCE3F6uwDVSFQWS7tgBH4J48m\ntq8Oo6WL/nf3k738SpS0fbJUE0kXm0DeAFMGZl+U3t/swkmmwHGI1jQQ1nzcfdddrF692kuOqqp8\n6UtfQtd1tm7bRve7++ncWkP2tPH4ywpRNBU7aRBpaCR+shldqGT7g9x3771s2bKFo3W1JB2L8KRy\nCudMJjC62LsvGn0Reg800H/oOEcb6vj2t7/Nww8//IHBN7/f700mtbe3gxBo2RmL4ofKy54nhBCo\nOSHsvqiEXAFFl4v13MngH//4xzScPIGdHaD8zhVoWeeenPIX51P2kSW0bdhD3+FTPPnkk/z7v//7\nMEvEP7eoqqoiZZkUzZ584Y2HRNakcjqCPk43nqG2tpapU6d+CCm8HJfjcvwxRmFhIXfeeec5J7Jj\nsRiPPfYYZ8+eRdd1JkyYMKIan6qqFBYWUlBQQFNTEx0dHViWRWVl5QeChq+55hqef/55T7UuGo16\nlq+uetf55opdaMYFz1ylM4A9e/bwk5/8BIC77rprRACgpqYGYJj7kxtnzpxhzZo1ANx///0sWrTI\n+86F2uLxOKZp4vP5yM7O5oEHHpCLx/bu5ZlnnuGb3/wmlmV5KoUPPfQQjz/+uGcnGo1GPSteVwHP\nheN0XScYDDJ69GhuvfVWXnrppRFhwAtFMBgkGo1y7bXX8qtf/Yre3l4cx/HANRcmDAQCHlTkKt2F\nw2F0Xae7u3vEY7tgiwvAuftZluXZg0YiEXw+H7Ztc/bs2RHhPreeE4kEnZ2dFBYWUlxc7Nm4eosK\n0n2xTLjPtXVWFIWysjI0TWPcuHEZ/TapPumOXV0gL1M10bUOdoGdZDLpKdM5jkNPTw99fX2Ypklb\nWxvTpk1DVVWvDEGOPV3AL7PtuipqbW1t6LrONddcQyAQIJFIUFNTg9/v56abbmLdunWA7H9Nnz79\nvJaM7vGFEASDQWKxGAsWLGD//v1YlkVOTg5dXV2sW7fOK/uh1p87d+6kurqavr4+FEXxrJUbGhq8\n8nNj27ZtdHR0UFxczEc+8pFB9wfXutRxHPLz85k8eTIVFRWe1axlWXR0dHDy5ElaW1vp6ury0j9q\n1CjC4TDt7e28+eabvP3228OgXsdxyM3NZc6cOYPsa93vXTvaTFjV3V/TNBYuXEhVVRUNDQ1YlsWz\nzz6LbdsUFhYSi8VYtWrVsPboXoc+n49YLOZZZruQn6ZpLF26lNdff50nn3zSA6dvuOEG1q9fz/vv\nv+8pLGqaVIgvLy+noqJiEIwcCoVYvXo1b775Js8++ywPPfQQeXl56LqOpmnevdAwDM++t6ysjJKS\nEs6ePcuePXvOKQoz0r3T7/ezY8cOkskkEyZMwDAMDzw9ffo0ubm5zJ8/37vPXH/99Rw9epTXXnuN\n4uJiFi1aNCJw7ebTNE327dvHz372M2KxGKlUis7OTkKhEA8++CDjxo3z0uI6bzz22GM0NjbyH//x\nHx63UFwsxzednZ1s2bKFs2fPAlJB9a677uLpp58mHo+TlZXFsmXLWLFiBcXFxV56amtrqaqqYu/e\nvWzfvp3m5mb+4R/+4QOLe+Xl5ZGXJ+e133nnHYQQg853KUyTu597fxFCeDCyq7D4xBNPkEqluPrq\nq/n85z9/zoWuqqoyb948Jk2axKOPPsrZs2f57//+bx566KEPlM8/lWhvb6empsa7Di81rr/+eg/w\n++hHP3pJ6sN/6vF7yenvcxVZ5sUXjUb5+c9/ziuvvMIDDzzAF77whd9bOi7H5fhdx0iQQma8/fbb\nH8jmrq/uDQklWZc+oIABqMFxHBzbJNlzBidnKgNvo53BIM/glEgARmg48RaE44AWTr/UHqz2lAmV\nZEZbWxuW5eDLKhv2neM4JDuOyOMVLxwG98kkyBfbtj2w2udc6kCJRAIBBMcsItlWI8HBjt04Wkgq\nZ7lQk2Mhkh0SwLFiCEDPG4+/+AriDWuJx+OXUsSA7CwIjmDFOzKUwMiwNJWAFrG0qpcWllBeolX+\nsyxAkaCY4s+ALdMqZzje4Mrn0yXkZxvpVfZqWvVPASwJOA21Qs0E74KjpLqhGYHYWQk82amM7QSD\nZh6cNOwpFAlIGWkwLzgqowScAXtS97yZ4KhtMmBdKmdEHDMGyU4JnyXapdqb2S9hv8hJyJ05sK87\ni+JCYudSXoueTANnlfLcsdNSMU3PhdIV0PyWVPkTQtZBaMy54T43X0IMKBOGxkg1NzMiQblkuwQV\n+47JNGnpSRvHkcpvPQdlHm0znU5VHifRJX/3QC5HHgNk/bnXghCyPNy2o+g4RQsR4Yr0dWgNlI8/\nXwJx8Wbo3Je2abZx9HyEPxdiTYhkD45xgEGKliDrTtFl+1MDA9CdW+6ZCo7erFZG2oOjgBpZLv11\nAyqEWliWz6C2krFfppKlnVag1LOklXBglAQhXetjRZdln2wfgDZdy2q3rrBlmVsxWRZumvOmQsde\nCTLq2VL9b4T7nhAC3BV/il9Cp2ZUptOD8jKbR+ZkVvqnokK/tPwmDdApmg9/4VQSrdVyQ1/BwD09\nPFbeA2JN0FKFKFoEWVLF1HHbeOa5oo3QvR9sEyWQS7L9IKqdIOzXuPrqxXzxi18cBJ9dqtLsqlWr\nOHbsGDt27v6DwW+JRAIcZzBQPjB7feEDpNtEpuKsSCtexuPxy7azFxkXAvTPFyOpJl6Oy3E5Prxo\naWnhzJkznk1NXl4eU6dOvWQFtg87zpw5w4aqd9BEhIfvS1J5DjW7zJg7zeb+j8f5/34eoL1bobsP\n8j+AC0ZelrSnTSYdth8MMndqAr9PPlUME5KGVOyz0qLRHl+vSKDLrzts3hfCcWDquBhHTwre2xdg\n50EN0w4zbsLUQSukM0O+gLYpOQeceKBOoa1LUJRn8FcfGQz3gcvnOFK1Km0NCbDsKoujJw22HYiz\nceNG7rnnnvTLSgkqfv1zKZ55Vae6VuXd97N49/0w5SUGWSEbwxA0d2rEElIROxSAz99hMHWczU/X\n+gZZ8VxshEIh+qMWr2/RCAVscrNsonEFTZXdo/ozOj98tQDbhtmTknzsuj4mjjbYWhPkF+/k4DgQ\n8NsEfA4+Pa2ilwYtPSVFx/ase7AElg3xpCCedPD75D4KcM+NvYPgvkFd2PTPxbPj/KIql7pGH+8f\nDTBrUtJTbhzYUf6IJqQ6nqZICO/tXWGShsKC6XGvi5ZICZJplUSfJvOQKYQV8EMsLkikoO60j2RK\n0Nyh8m8/LkJTHWIJheZOLQ0zOSSSCi+9nQM4LJgRJ2UoWDbYlomq+VDU4W3NMgWb3/dj2D7Gjb0C\ngHiki+62EwhFobxyMfXVb8mJNk2neMx0VG2oakgmuZax0EqAqurgpCgpn8mpSBeBYA7T5t1O04n3\naTtzENs00EP5xKJdNB3fS+vpA1hG2qZVUQeO69hYtsmxvb9m7NQlFI2ehqIotJ6pAcehsKyScE5R\nuu4E8Ug3tfvfwLYMCkZNonLuzaiKjmEksEw5jhWKQlZuKdn5ZVRULubY3l/T39OCbRkINMzeCEJT\nsVMS2hO6H3BQ/D60wlxpc2uYKDlhhE9HOA5OypCQH4DjYJuWVPdz7IExn5BgqBKUKgVOyiB+4ARW\nXxStIAe1IJtk/Vn00RmThm4xWDbJE80kjpzC6o1iJw2EpqJmBwlMHYt/wijU3DAIIe1u40mEXyd5\nvJnUiRbQVHmOnJDcJp7E6okQq24gtr+eQGUFOcvnAOAvLya8YBrRPUfp27if8IJpEmZUlcHsa3oS\nNtXeQ/J4E45hkmpsw+yL4gsMWfDlOMP2lR87xA4cl84KgJNM4Vj2QH9SCLTCHJyUO/GrkL1yLn1v\n7SZx7AxOPEXWounoxXkD96E06IfjkDzZSnTPUazuCMJ2yM7OZkplJbfddhtz584ddl3ous7999/P\nlVdeyfr166mtqyNx6ATRg8e96lCFQm4gzMIFC1i1ahWvvPIKR+pqscI+Kj66DF9B7vDj5mRRdO0c\nChbOpPWtHXQcb+bxJ57g//2Xf2H06AtbuZ4vRrz/Zr47+AAhrZYlVNDW1sbOXbtIYlPx0WXnhfu8\n0ysKJSvnc7YnQndLN5s3bx5kEf/nFrFYjDNnzmCrgqzKS1dmFKpC1pRxJA4c5+jRo5cBv8txOT7k\nsG2b+vp6urq6SCaTHqj1QZRVP+x45513OH36NKqqMnHixAuO2YQQjB49mlQqRXd3N/v37+czn/nM\nJZ/XhcdcyCoajTJq1Cjvs2QySSqVGgSRuX1EVVU9Rabe3l78fj/jxo1j586dbNmyhbq6OkCq+9xy\nyy3Dzm1ZFrFYDOCcFn3r168HYOXKlYPgPjfcd42Z/VZVVbn//vv56le/6inVVVZWevDLxIkT+frX\nv85TTz1Fc3MzwWCQ7OzsQYqEbt4CgQATJ07k7/7u7zh2TL6jz7SuvdgIBAI0NTWxZs0aDyTMtLn1\n+/34/X5s2yYSiRCJRLBtm/z8fHw+H5mWpZl5dYFEV1nMteDNVLITQnj7GYbh1Yu7v1t+mWlqamqi\nsLCQCRMm0NHR4YF5Qxd7ue0GZN+qoKCA/Px8VFWlrKzMazfxeNxThNQ0bZj9s9vWkskk/f39GIbB\n8ePHaWtrQwhBLBbzbH0VRcEwDGpqapg2bRp5eXlEIhEsy/IU4dx2mZne/v5+urq6CIfDzJs3D4Cd\nO3eSSqWYMmUK1157Le+8846n5rdw4cJB5ZQJ9A21KXbzlJ+fz6RJkzhx4gTLli2jsLCQqqoqTp48\nSTweJz8/n5qaGtauXUtNTY1nNeoCdS7ceebMGZ566ilWr15NZWUljuOwYcMGbNtm0aJFgxbSHzhw\nwIP75s6dy5QpUzxg1y1/TdM8uK2trY3t27enFwEKotEoqVTKaycusKgoCtnZ2VRUVPD++++Tm5vr\nWcSapkksFvPacjKZJBAIeCBoJiwLeJalsViMNWvWYFkWK1asYO/evQCD+kNuffX19bF582Z27dpF\nX18fhmEQCAQYN24c1113HRMnTmTs2LFYlkVjYyOqquLz+Xj11VfRdR2fz8fEiRPJysrCtm3a29tp\nb2/npZde4rXXXuPuu+/23uPffffdHD9+nLq6Or7//e/zqU99ivHjx3vlMtQWe/fu3TQ1NZFMJtm8\nefOw+e9zq+ALIpEI27ZtI5VKYRiGpwqalZWFEIK8vDzC4bB3b6ysrOSWW27hzTff5JlnnqGxsZEb\nb7zRU6DMPFcikWDjxo288cYbRCIRD2KeP38+H//4xxk1atSwNBUXF/ONb3yD9evXs2nTJtra2njl\nlVeGbeda7s6ZM4cnnniCeDzO3Llz+dKXvjRMmU8IwdSpU5k6dSrNzc089thjnDx5ku9///v8wz/8\nw+/cBSnz+rmYGGk7F6gMBoNs2bLFU8r83Oc+d1HvUPPy8vj7v/97vva1r7F//36ampp+67HfH3O4\nz8MrrrjiAy3uqqyspKioiI6ODpqbm6moqPhdJ/GPNn4vgN/5bkIX2m6klw7nu7hGOqZhGDz++OPs\n37+fp5566vcKHF6OP92wbZuDBw96inmJRIJAIOCR57NmzfqjUdj5bWzulKJ52K3bMXpOEihbcMnX\nhws1JJNJLNPAiZxA5M0EdQCUcmxrAOCBjN+dNJhkQ18dDg6mkkPv6d2IyInzQiVujAhqpMOMNGEn\n+0ENpe0qR8yBTMmQ28pI6kCBQCA9e2MTGrucVLiUZMdh7GQ/Tu9h6B1+ZMWfjb9oBr7CaVjxTkh3\nbC8lDMOgu7sbyzBxBKBn4yhGGlhSQPigY5sHaFG0AIJjoGMHJNqkMpril9urgQGFKuEwVOUslZKD\nNaEIqeTlpOErt+yFIhXOBmXUndECD1jLnSqhsY5dMOp6CaZhj/CyOAMANfrl9o4lATHHBe/IgPvE\ngLJgxvmF6oNoI07/cWmPayXkvzO/YgAoVAbAs2Q3NL4uAa+sSeAvBNJ2sYovrSY3RIYjelpCVXo2\nBErlMTp2ya+zJ0OqU+4vFPkvexLnVwPLmNwSajp9ttyvu0aWV/lt0lq1Y6cECc0odB+C3kNphUKR\nYSecPqaiSoXHU69AwRypDhdvluCkNsK10Fc70HbSyn5SYSE1MlCZPVFaDrdslGkw+3GsSFrd0S/t\nee2UvLYVnwTq4q0D7Y80NKoKeQ437CQIfaDeB8GVykBb6U2DigVzpXU0DCjlgWxj/XVyO1fJMjOM\nXgmeamGpeuiq69kp2XYUXQKq2RPAX5pWtTOk5XT/8XQdHJDWvSXXyu9zpiAS7TiRM9D6nrwGPWtl\nmRFd19MWFQq9LUdw2t+XaXbhXF/eAHg59DLJhHqTPdC9DxwDoYbBMcCMYXYdxVPITNvMSlE+DbXs\nGpyO3Vh9p3Hat0JXCHImI4KjQOg4TgpirbLc0kqGQlFQ7QgBn8bosnJPSXak+/DFKs3OnDmT9evX\nszMN9/2h4Df3Xj7IEt579A2RSxkp0veszOeOC0QHAoHLtrMXGecD9C8mMlUTL8fluBy/+3BX627Y\nsIEjhw/J5417jxQKefnFrFixgmXLlnlWL3/o2LBhAzhJls8zLgruc2POFJM5UxLsPhxk016NO1aY\nl3xuw7KxbWl9erDBTyKlEPSnF8/o8p9tg51+gW/bgnhKqqYlUoIzbRoHGgLEEoK3dwR4eb2KYar4\nAjlcffU1/PVf//UHmgAC2LBbBRxWzouhXSKTuWqRybbqBO9t3szHP/5xuUJZaBw+rrB4ts1X7jM4\n3Syo2q2yvUalsW0woDNutMOqhSYLZ1r4fbD7kOyPn0/BYKQ4ePAgGzZU4feZFOWZXL8gxhWVcf71\nv4uJxBUsC368VsJ9S6+M8Zlbe1AV2HcswLO/zsd2wKc7mKYg6B9oGw6ySxr0OwT8DomkIGUITFMq\njLkQoIOsJ8eBrJDNzAnJYWl0u2su6OfXHe5e2cdz63L58ev5fPqWHq6YnMCyBxY7OY601TUsiVX2\nRQVP/qKIzl4NIRxyw7IvbpgDcF8oYOPThg+r+iIKG98Ps2lviLZulURKwXGgvtG1mpGgmE+TsKLj\nQFefxg9fLeTn71gsmRNj0cwY+TkmQijDAD/HFjz/ZoCmDj96IJ/80omkklGO7vkV4FA0ZgamkSDa\n1yatToVKXvH489RqBtyXDkXVsMwUOQVjAEhEewhlFzH5ihsJhvM4deQ94pFO3t/wrATrFBVNDxDM\nyqewbCq6P4RjmcSj3XQ015KI9lC7703azx5m8pybaTt9AIBR4+YMSsnJo5uxUknySsYzZe6tCEXF\nMBLyPQYCVfehKJqXZn8wmxmL7uLg9jXEI51kF5bT33UWIxJDBDQK7roONSuIEvB5dqQdL67H6o3I\nsXW6cYmADxIpD/JzkgaWYQ6W90w3LE9JD4gfPinbwrwpJBvkAj+hawPb2zbR9+uIHzyBHR/cVp2U\ngR1LYLR0E9lxmMDUCkmWptPkpCyUgI6vooTgzAnoFcWSUhYCJejHaOsmfvAkifpGEvWNOKkUeTcv\nQqgqWQunyXPvqyO66wjxA8fxTx6Df2wpwq+jAqI/Qf+hEySaOrCSKW+o3rtuJ/kfXSKBwyEhi2Bg\n0ji6+6iXb0VXMZs7UYWCX9VIpAwcIRCahpJWndQ0ldDY0WR97Dpa39hK6kwbnafb0EvzCU4pRwlJ\n1UqzO0L8yEmsvhgYFtnhMEuWLGH16tWMHz9+5GbsplEIFi9ezOLFizl9+jTbtm2ju7vbU8sZM2YM\nS5YsIScnh6qqKg4ePoTp1yi/cyV6zvnVJxRdY9Qt19Dyxla6Trbywgsv8I//+I/n3edCEQ6HEUJg\n9kUHzuOCDZaNuMDDwnEcWU6AmgYz42daUdMKGBs3bsSwLbKmjsWXd/ETNUJRyJ8/jdZfb2Hjxo2s\nXr36j24xwe8qIpEIDg5qMCCVNj9AaFlBeU1Eoxfe+HJcjsvxgSISibB582YPVhgakyZNYuXKlSxc\nuPB3Dhp8kLAsi02bNpFKpRg/fvxF30OFEBQVFdHX10dzczOnTp0apM50MeECRW5Eo1GvTFxVo0Ag\n4EE7gAeluCpzvb29HkD25JNPEo1GsSyL3Nxc7rzzTm688cYLzl2N9H0sFmP79u0ArFq16pLy5fP5\nWL58OWvXrqWqqoopU6ZQXFxMc3Mzhw8fZu7cuTz66KNUV1dTVVXFgQMHvDy4VrPz589n5cqVTJ8+\nHSEEv/zlLwEoKSm5wNkHwnEc1qxZQ1NTkzfnnZ2djWVZ9Pf3oyiK9+7ZtZ51QZO8vDzPktZVyBs6\nx55ppZz5/VD1NReo6+joGAS9ub8PLf/Ozk66urooKChg7ty5HDhwwKvzoTbO7vFLSkqYMGGCZ9ec\nqQjopjEQCAwDcVyr5TNnztDU1ORZjMZiMSKRyCB4x02vC8G1t7eTn5/PmDFjKCgo8OxS3f6Rm69k\nMsnevXtRVZX58+cTDAY5duwY69atQwjBTTfdxM6dO7EsC1VVUVWV8ePHjwg0Zv7MLDtXTXLChAkc\nP36czs5OlixZwsSJE3nuuec4cuQI69at4/XXXyeZTHoQaVlZGaNGjULTNBKJBO3t7bS0tHhw2113\n3cWUKVNobGwkGAwOsuJOpVJUVVVh2zZXXXUVlZWVniWv22Z8Pt+gtjFq1CiWLl3K5s2bsW2bMWPG\ncOrUKZLJJDNnzuQrX/kKfr/fU8pramqiurraq0OQMGdWVpYHogKeCqELfLrbKoriKUX39PRw4sQJ\nTzXPvb5dQEwIQXd3N2vWrGH37t0eWOpGNBqls7OTvXv3UlZWxpw5A+NDF4ItKipi8eLFrFy5kpKS\nEpLJJD6fD5/Px759+6iqquLo0aO88MIL2LbN6tWr8fv9PPzwwzzxxBM0NDTwn//5n5SXl3PNNdcw\nYcIEfD4flmVx5MgR3n33Xdrb24nFYqiqSmtrK08//TRf/vKXz/s8cUHVJ598kt7eXhRFoaWlxfvO\nBVh1XffaldsWP/axjxEOh3n11Vd54403+M1vfsO8efOYPXs2oVCIeDzOkSNH2LFjhwdslpaWsnr1\napYvX+4p350rXFfNW2+9lerqampqajx1u3A4zIwZM5g/fz6apvG9732PaDTKnDlz+Nu//dsLPq/K\nysr453/+Z775zW9SW1vLpk2bfus5IlcpNtNxLxNszrS1Hyk6Ojq847jt9PDhwwAUFRV51vG33HLL\nJSnLFRUVcc0117Bp0yY2bNjAJz/5yYvP1J9YuOOYS7HmzQwhBPn5+XR0dPyfGxN96IDfHXfcMejv\nd99915NZhoEHWE5ODpMnTyYnJ4esrCwMwyASidDc3MzJkycHyfa6P6+55hpKSkqwLIu+vj56e3up\nra31KnGo/OuGDRt45JFH+NrXvqI21BYAACAASURBVPZhZ/ty/AmHbdusX7+ed955h+aWVpKGhWU5\nA0pEtQ3s2LmL0WWjWLVqFatWrfqDT8L/NjZ3ZI3B6QxjGxHMSBN69phL2t2xDWzHIZ5+cSzMuISJ\nstLpEKr3skrCYuCBfS7IEzkFRgRhG9C5X0JsjkU4N5t7772XG2+88ZxlPCKokY5UV508XU7leUAr\ntxM9+NOR1IFKSkpQaxswI81SXapoOr7CadJ+sqsOO9WPYxkIVUfxZeMrqJQ2lemDm5EmVFVc0uDN\ntXo8eqwORwvhFMyVNruuRWm8TUJJscYBQMuXL9XaXJWzsuuhfSekUkNUxTKU9NLAlWOlpGLA0O/t\ndCdYC4OiIBiyksHbNP1LdqWEC6NnoKUKCudJ4CmzHhxrANyLt0gbUduQEJqVkp/5CxiwNRXSLjgz\nXQ7QV4vTdwxS/eltTUCR4JUj8KxR3eSJdAfZjEI0LtOoZ0vFw6zxEvRS9DR0lz7PIJivEmJn5N+2\nIRXScqZC+xb5vRqQxwgOXcnipjvzZ0ak7VElbIgErYQiVf1KlkLbexKUizenya00PJc9WZ5LUdPl\n1ixtX82orPdEWxqqdaTVbWYd2BKuBQaUGR1nBKAyoyxAprFoIbRtlelwLHDiElArvgbP2tk9V+M6\n2f4cIyP7yoByIU76GEOskd1TmlItUKo72rKNBEcNwH5u+3QsaN8u6xSRYTVcmj6XIdtVf4Msn95j\nSF+stNqhFoSCq2SZu5bBdlK2p9BoyJ2RrvvdUumufXvaCllA8dUya5Ez0LY9DVOOg0AxiuYjEAhg\ndR8n3nkMkeyX+Q6MxlF9ss6aq2SZhsozIFzvP5n/aPrcdgqBgsBC0zVKi4opLi7m2LFjxFM2qqYQ\nyM5G07UBfZSsFaQ6jw5Ayd01aZA0k22ToKPPpzNjxgxKS0s9MO9innMXUpr9bWD03yX8NvReDqAq\nKqZIt8ELqcnF5aBZ8Q1MVrn3d03TLtvOXmScD9C/mMhUTbwcl+Ny/G6jvb2dJ554gqazp8BO4NNS\nTJ9gkR2ClAknmwRtnVF++epL/PrXv+LTn/7MeW1zfx8Ri8XYunUr2AlWLrAuvENGCKGwZE6cfccC\nbNqr8pFl5iWBcI4Dze1yrFNW7BBPCJ57M5e/vbt7kMKaEA4KjuzSKlKBLWkI+qKCl9fnkjIEihB0\n9+sYJihCWsncfPPN54X75EtJhY6e4ZNZfVGoqVNQFZulc2Mj7m+n+/BCEZ56nxsTxziMH21ysrWH\n6upqli5dyptvvM72Axr33GQSCsDYMoe/ut3knptMWjoEsYRA1xxysxlmeVy1WwMRuKT2curUKf7z\nP7+Pmexi6dwkd6/sIhRw8Gs2xfkW7T0qv3gnl2hcMH1Cis/e2oOiQDQu+O//lQtX7ljWz9u7suiL\nKTS2aZSXuMpeA6CcQIJ+QkjFRQGE0+uyUibUnfFh2XDFpASq6qoy24O6yEOx0hXzonT0qry5LYuf\nrM1j5sQkS+dEmTctgWGlVQOBjm6VXYeDbKkOE00oFOSY9MdUttSEWXJl3LPlDfkdfEPe4jkOvLEt\ni/99NwfThHhKwbYhGLDRVAj6bXojKppq49cd5k6NU1FqoKlSObCmLsjpVp23dmSx6f0Qn7m1h+nj\nZf9cST+ju/sEa94Jsr82gEkOM666jf7uZhpq3iIZ7yOUU8yEmdfR2VIPgKYHcBxp89t+9gimkUAg\n0HxBcgvL0za6bqlnhkAoqrTgdcBMq+fZtklJ+UyS8X7OHt+NbSbRfEFyCsoZO+UacgorBk+Y2Rbl\nU66ms6mWsw276Gk7yZFdr5JKxvAHssjKK5OTbEAyEaG7tQGhKEyavQqhKGlLXjkW0nyBtDqg21Yc\nL48TZ63k0I6XiUe6qJyzmrr96zCtFGZ7N3phjgf3ASghv7SV7epHz88eGA36dZxYBoRnOx5s5w2c\nHAezsxfHtDDaewEHLTcLfVQBqdMSNnBS6UZrWPS8vZvU6VaZzsIcgjMn4CsvRvg0nJRJ6mwH8YMn\nMDt7idccx06lQFMRmorQNXKuv4rApDHecR3wgC+9OB99RT7BmePpXbeT5Ok2ejfsI3vZHISA8Lyp\naPnZRKvrMTv7iO2vJ7a/fkB5w3EQtoMuFCzbQWQFEZqG1Rej+7XNZC2ZjX/iaK/sMuE+szdCdM8x\nEsfOyIU1U8pJnmjBjiQoLyvjG9/4Bt/73vdoaDxNUNMI5eaiCDHwsqciQMW9N9Gzr5b+w8cx27rp\nbxtiUWfbYJiMLa/gscceu+CkzkgxduxYxo4deRzgvptOWiZFy+dfEO5zQygKJTcs4uSzv+LgoUM0\nNzdTVvbBFskATJs2jYDuo+dsG0ZvBD03C7/PRzKRkEqSPv28a56Mli6s3ihaKIC/WEL+vTX1+BSN\na6+9lrVr15KyTYo/gPVsaFwZSnaIlrY2Dh06xBVXXPFBs/lHHXI8e/EKISNGet8/9Dvpy3E5/lzD\ntWV17SMLCgqYPHmyZ/N45MgRGhoaaGho4NVXX+UrX/nKH1w5Zv/+/bS3t6Np2iCL24sJd59oNMqG\nDRv4q7/6q0vav62tzYNoCgoK6Ovro6OjY9jCnkyluExr21gsRldXlwcA9vf3Y1kWmqZ57yfPBfep\nqupZynZ1dQ075969e0mlUkybNu2cSkhD558z47rrruP1119nz549JJNJli5dypo1a9iwYQNz585F\nVVWuuuoqrrrqKrq6ujy4LhgMUlxc7KmOgVR/27lzJwBLliy5yNKFt956i9dff51UKuWBb+4/V/nN\nha/6+vo8uC8QCBAKhbAsi7a2NkpLS8+7QM+F7TKV8dzjaprm2WKePXt22Bz/0N/dvw8ePMiVV15J\nTk4O8+bNo6WlhZaWFk8Zzt2nsLCQ8vJyCgoKyM7OJjs7m/7+fs6ePcvYsWMxTXMQ3JcZpmly4MAB\nDzx04T4X1HHbm23bJJNJWltbSSaTXhmVlpaSSCTo6uoiLy+PmTNnAlKFy4UMu7u7qa6uxjAMxo0b\nx0033cTWrVtZu3YtjuOwevVqFixY4KngaZqGrus0NTXR1tZGMplE13VycnIGqWsOBSNdEMiFvNx0\nWpbFHXfcQX9/P8ePH8dxHPx+P1OnTmXmzJmD2pm7X3d3N/X19dTX1/Pyyy8zc+ZMbNumsrJyEFB1\n6NAhkskkRUVFntKfC9O59tkjRUlJCZMnT6a2tpZQKMTMmTM5ePAgra2tJBIJCgoKhqnvdXV1EYvF\nCIXkmNC9D8RiMa8t2Lbt3SfcdmTbNqdPnyYWi7Fr1y4sy2LhwoX4fD7PJjkej5OTk0NjYyOPPfYY\n3d3dCCG48sorWbFiBeXl5WiaRm9vL7t37+bdd9/1HCsMwyAnJwfXbvjhhx/2lOp6e6Wyi9/v9+DO\n+fPn88477/DSSy/x0ksvkZWVxbx581AUhQceeIDf/OY3bN68mcbGRl588UWvnl2w1DRNr3wnTpxI\nU1MTe/fu5bvf/S5/8Rd/waRJk0a8Hx0+fJj/+Z//obGxkYKCAoqLi2lsbETXdW6++WaWLVvGv/3b\nv5FIJMjKyvJshd34yEc+QmVlJW+99Rb79+9n165d7Nq1a9A5XKXMG2+8kS996Usj1v35IvOeOFK0\ntMi5D03T+MIXvnDRMHphYSGf/OQn+a//+i+qqqpGtGS+lJg1axZbt25l8+bN3HDDDQgxYNeeSqUu\nOBbcvHmzdxwYfH8fPXo0ra2t5Ofnc+WVV15y2lauXMmmTZvYunUrn/jEJz7QuPRPIdz7Q+YCgUsN\nd9//a2OiDx3we+SRRwC52uWrX/2qB/c5jsOYMWO46667uPXWW8/58gPkBODOnTt59dVXPSllx3E4\ncOAA3/72twdRuo7jcOzYMV5++WV++ctfEovFBpH5zz//PDfeeCPz58//cDN+Of4kwzAMnnnmGWmt\nlzSx1RC+wqn4ssoQqo5jGZiRZqKdx2g40UjTcy9QV1fHF7/4xT/oKq3fxuZOU3Ws7Ak4PYdIddVd\nMuBnRppwbAuBwFc0HaO7Aad9lwSmMixxB+A+kLNaPrAVaZ3atR/hWAhfFqo/B4TAjndhmDYNDQ3n\nPf9IoIYbdrJP/hIqPfcB0ivo3Zf2mTFUHWjZsmXs2LmLaOcx/MUzEUJ2MvXsMecsN8dxMPrPkuqs\nJdVdjypknp566qmLUoLMtHoMjLuBhB3AsU1pCRw9I+Est86LFkq4z3Ggt3bwZ3qWVByLtw4AZINT\nioTi0sCVEAg1ID93bJxEB2CDL20dIzJ2G+mFpACKF8tfoqclkKgGZbpDZfJz25D1Hz0hbW1BglXh\nCrl9fwPkTpPKcJC2xczosDnWAOgo/XTS4FsgbVE8QVqTxtvSqmwhCfD5i6XCmW1KO9bISake2F0N\nyQ4ovCo90ykVaog1QeceWS56DvQelRatIOG+4sUSgDPdFQKKTFt3jbQHdkw8a9isiRJMG6nj6dZj\nWn3NU8qxDVnu+XOhbYvcTgsPh8EAdKSdcu4MiJ6SVrqRExJqdBypPOjNYgqIn5Xp1sIDyoxDgUqh\nDKljkZ7xrBiwyM2/AnoPyzYWOQ6504ekK1t+F8tofw4MWPmKgZ+Z1ssOgC3bCbYsd0WX9ShU0MNS\nkS/eKm1pXbhP0aFokVQrFGn1PzcL/gKZPhfUM03AAjUbylYNVtFzraXd+4MQss61HGjZgBM5Lc/r\n2usWzANfAaK/HseISDtfwBGCqBAIbIRjyTbtAHYCrHTbN+MSmBwKJTqmBMr66iXoCIjgaIg34xhR\ngtlZ3H///Qgh+OEPf0iitQMr2kzcl4uakpLymi4HcheCkhEKRE6yYtm1fPnLXx7eRn/L+G1g9N8l\n/DbSvdzn85FKpXBsE6Gcp3vs2NBXjwB8BZXyI8cm1XmMsC7byWXb2YuL8wH6FxOuauKlquJejstx\nOc4fLS0tfOc736Gvu4nivAQ3LDZZcqVFKON9ruPAkRMm7+xMse9onJ/8+EdEo9ER7ZJ+X3Hs2DFS\nyQiTKyzGlFzaZLmmqUwda1KSb9LWrXO6RTBxzMUfo+4MNLZJ69O//USKp9b42HcswI9+lcfnbu9B\nUwcUD2CA2xGAIhyeX1fAoRN+Aj546L4kY4ohO+zw7P/q7DnSzeOPP86//uu/nnNF64wZM9i6ZSPv\n7VO5YZE1qJvZ0yf/KCsyyQ6NnKeU4ZbDyM+/yRU2J1ssurq6WLBgATNmzuLwgZ1s2G1w29IBmDLo\nhwlj0n3yjLBsOFiv8Pp7KnuPqCCSrFu3jr1793LttdcOswYaGs899xypeBdXz07yuY9ZRPoVUoaN\nQHDdVVHWrM9hS3UIXXe47dp+3HfDW6pDJFKCGROSfOy6fiIJhao9YTbuDfOpm3tHPJdIq/lZlsC0\n5ZDAr0Nrl0bdGT+mJZgzJeHBYQKBgzPicMiNu1f2kRu2+MX6XHYfDlJdF6Ak36SkwERVIBJTONUy\nANPMnRLn3pt6+JenSzl2ysepFo28bBtFSBXCzHAc+J+3c1m/S060BQMOtuMQ9DusnB/hbLvOgXo/\nOWGbjy7vY9mcKKGgg2FKpULbhhsWRjndqvP2jixq6gM8/VoB96zqZWJ5is4ewY5DYQ40+EmZOhZZ\nlIydRUPN28T606vVc0cxbf5H0TR/uo8rrZ5NI8GxvWsRQ8a6QigUllVSOnYO2fmjR3ghL6QzAA6q\npmPbJpYhJ5eKx8ygsW4Hqu6nsGwKU+beOuI4XigK/kAWpWNnk1MwmmN71xLpbcO2DDTfgD20A7Sc\nqv7/2Xvz8Cquw/77M9vdr/YNARIIEGIzYMA2xgabzVu8pYmbxEnbvG2c5E1bp/GTpsmvSZ+nb942\naes0Tpo2ftzmTZrEJnbiLY53wOzGgEGA0AJoQWhD25V011nfP86d0ZUQDmA7aRO+eTCRuDNzzpkz\nc+fM+ZzvFxyHomlz8QWi4DjY2WcTVfOft3/btnBsG1nViBZNJxQtITk2gGnqzJy/ho6WXaROdBBa\nNHvCdoE5lRg9g6RPtBOcU+kd342RBUCWBGSnKuPjRQewbdItZ4XTn24iaQr+udORZMlzvNM7zxFa\nMpvYawLukwM+8jatFGCfty8HJ+gnmBcmUFeF0T3I6OsHsXUDDAs0lbwNK7zyAdhW9r6lKBMuba2s\nkPw7riP23B7SLWfxz52BViYcHbSZZeTPKMUaHCX+ViN6R5+4ZhQF9w5hWBYoMlLGwLZsHMPEjMUZ\neeUASiRIYEEVanG+iD1O62ROd3kwo6Qo5G9cgTEwQvpUN2p20u7FF1+ks7MTyzCINbVjhv2iL/h8\n+Px+4WyTF6Z03XKKr19CvOUMqe4B7LSOpEgowQBmIoXe2sOyZcvel0mU5uZmzpzthKCfyJxLi3VU\nAj6i86vJNHWyfft2Pvaxj112OSKRCNdddx1bd7zByLFTlNywTLgdapqYEDdNZO3CY6Lk8TYR3LC4\nBkmRyfTHSHeeoygcZdGiRTyxZQtyKECgYuqYxHeSJEmEa6aTPtbK2bNnf2cBv0gkIgw3k2msjI7i\nv/T+psfGkCTpsuKsruiKruidtXv3bv7zP/8TEM/amzZt4qqrrpoAIWQyGd58801effVVurq6+Id/\n+Af++q//mtmzZ19ot++7jhw54jlPXSr04DppjY6Ocvjw4UsG/LZu3Yqu65SWlvLxj3+cH/zgB3R2\ndiJJkhebm+uclls+193LNE0WL17Mn/3Zn5Gfn08mk+Ff/uVf6Ozs5D/+4z/4q7/6qwvWa9GiRRw8\neJBdu3adZzozODgIiCi/qeQ4jgdyTjUmKi4upqioiMHBQUZGRli7di1PP/00x44d4+zZsxOimouK\niqYctyWTSfbu3cuzzz7L0NAQwWCQhx9+mOrqam6++Wbmz59/wboNDw/zs5/9jEQi4d3z0+m0B0lp\nmuZFmVqWRTw+nmgTiURwHIdz584xNDREcXExoVCIoqIihoaGpjweMMFhD8T387Rp01BV1YMIJzv4\nTXapc2VZFocPH/YWk1dVVTFjxgzGxsY8t7FwOEwkEiEYDBIKhdi8eTN5eXls2bKFM2fOeAsbcsFD\nd3xtGAaHDh3ynAwty/KcDc+dO+dFRY+NjXHq1CkvrleWZW9/7e3tXpSwYRi8/fbbLFy4kLGxMc+I\nyI0qraiooKqqin/6p38ilUohSRKbN2/mvvvuQ5Ikry+Zpsnw8DCPPvqoV1637NFolKuvvpqVK1ee\nB1y6n3H34wJHhmGgqio1NTWcOnUKv9/P6tWrJ8TS5srn81FWVkYkEqGwsJCDBw9y5MgRJEny4Dq3\nXIcOHcJxHObOneud/1y3xMnlc2FLWZaZM2cOzc3NnDx5knvvvZeRkRH6+vp46623+OAHP+htF4lE\nWLBgAY2Njezdu9dz03QcxwNS3XPi9/snvCNwHIeBgQGOHz+OYRj09vaSl5fHtddeiyzLlJaWEovF\naGhoQFEU/uVf/oVYLMa8efN44IEHPMMVt8/k5+czc+ZM7rrrLrZu3cqWLVtIpVKMjo5SXV3Nl770\nJe++let8Odn9ctOmTViWxc9+9jO2bNnC/PnzvXvI5s2b2bBhA0ePHmXLli309fV5fdgti23b+Hw+\nurq6kGWZRCLB0aNHaW5uprq6mrVr11JUVITjOPT397Nz5056enoA4aD40EMP8cgjj3h9Y/r06fzy\nl7/0TLCOHTvG7NmzvTb1+XxIkkRdXR11dXUMDg6ye/duent7SaVSBAIBSkpK2L17N7FYbMo48/dC\n27dvB2D16tWXDKMvX76c/Px8ent7aWxsZOHChZddjpUrV3qw5KlTp5g3bx4+n490Ou1FlV8IPtR1\nnV27dgECxgORKmKaJldddZV3H162bNllOZJXVVVRWlpKf38/g4OD72px1/9kud9p7vVxqbIsy3Ng\nvNS+9L9dv5GI3ng8zic+8QmampoA8QXwuc99jgceeOCiXpgEAmKF97p16zh+/Dhf+cpXaGlpYXR0\nlAcffJCvf/3r3heFe3P66le/yic/+Ukeeugh6uvrJ3zp//u//zs/+MEP3r8KX9H/SrlOaXv37Rcw\n1Yy1aPlV503Qq6ES/KWLMEbOkOjay569bwLw2c9+9rdGCL+bmDufz4ceKAPn+DgQd5FyHJvMQLMA\npXxRgjOuB8fCiLXjdG+F0muycaDy+Mtg15HKsUVM5sB+JCuJmjeDyJzbvWvVSg1dVCTjVKCGVz7X\n1Uu68ISRY5sC1JjiXjTZHWjx4sVMqyintb0LY+QMvoJZ79A2DvpgI5mBRuGW5diAjIVCe2cvnd19\nv9YJcrLblZZfgZ1IilU7viIRI2qMiPbUouOAVqpXRJPmQluROQJ8GjsloDmvnSa5ycmKAC8dG7AB\nBQdHQGK2JaJ/ndxJrHeYzZIUKF0tYnBjJ0CPQeyoBz2Jz0jj5c+rFe54jgXq0azDXqcAnXLjdbMu\nBh7cJ6ngyxMRql5E8QwY2CfAMMWXA8Nl+56dhef8hQKmch0Ek2cF1JW3QMB+8awTnmOIcuqjYh+5\n5XVdAWwz+2dMHCPr8uVJH866BUaE45+77XhjZE98dpZVUgUg6LaxlRKfV0JQsV6Aarmb5p4KWRNR\nv2pERMZaSTyA0zt1toAoQbSBC8K5140bhew4kOyB+GnhKuiYAsJTowImHItnwciVWTCzFfIXTax7\ntEaAnmOnoKBOlAVEjLJbAc8pcFKTOAhYEWn8j79UlC1cLQDMsVPi51zXytz2mdxAkixAPdkv2sdM\nCPBUi06EGT1HQXni9v5C0c/O7RGQbbh6/FxGZuGEq4Vz4mgLUrJLbCsr2I7jTXoia+NQqHtMKyP6\n3/ARGM6FWW1wTOGqo0WyDqgW2DahYIAf//jH9PadI5XOYFsGzshp7PAcTNlC1/XsIE5MbF0ISnYc\nm7GmXxD2qaxdu5b3Q+8GRn8v4bep7uWqpqIoMqZpZ+OmLzDwSnSClUT2R1EjYvLTGOlAtlJUVs3I\nDv6uxM5ejN4J0L8YXY4r7hVd0RW9sxKJBA8//DCjw90smJXkLz5iTAD7XEkSLKyxWVhjs/2AzY9+\nNcKTP3uCkpISrrnmmt98wRHvHHDs8xzjLkYSEv6Aj+ICi65+jbHk5Aerd9Zr+wQsVTPdZtEchwc/\navCtn2jsOxakvUdj/coE1y9OEAyMPzbGUxK7j4TZdjBMz6BKOiMzo9xm+fzx437mQwYP/xgaO87x\n0ksvceutt9Lb20symcTv91NUVMT06dO55pprePzxx+nsTXD6rMHcmeP7yGQfKyeDYa4cxwX8JC/O\nZrJ8GoDjOQds3ryZEw3HeHq7QVVFhqvmTb3S1nFg61sKL+9TOTckUj5DAQtZdhjsO8XguTYaT9Tz\nxBNPsG7dOu65557zxmQdHR2cPtVC0J/hT+40UBWFUDhEIpEgo0usXJDiZ6/nkzEkZpQZLJglymia\n8MLuKMmMzGhC4Z9/UizqqkvsqQ9x99ox8sKuS0fO418WvPT5HMy0REYXkbavvBnCNCVUxfHcHS/F\ndWnjNQlqqzP8zb9VMJaUSaR9dPT6kCQB4wV8DtcuSrJ2eZJpJSaWDasWpthTH+YnLxfwmQ8OEQ06\nXru6evnNCK+/FUZTobYqQ0Obn/yIxV99dJDjpwMcO+0n6Hd46P4B5s4wvO39moOmOiTTMpYNsyoM\n/vTuYZ59I49tB8M89nwhQZ+NJIFuyhimLGAyxaC3/TAAmj9E+cyrqKxZiaJqoj0kGcvUcUwHWVaR\nFZWC0ln4g1EcB9LJGCMDZxjobmagu5mSyjrmXLV5EkTnMDYs4ld9/ogH9wGMDJ5BVjSi+RXMWbxx\nSrhvXBKK6iMYKWLe8ts5sf8XmEYK0xh3y3Nsi8HekyBJlM9cAjjYWUgRSUbK7j8xOkDfmXoGupsx\nDTF+kWSFcF4ZwUgxidF+YufamLV0A92tB8j0j2D0j3jAG0BgfhXxN0+gn+3HiMVRCyI4GQPHzEZP\nqQqSf4r3FhIYQ6OY/THkkB87G+GrRIIgSfhnV5A42IzeeY6x/U3oHX1Ifh8F99yAVpQ3aV/jnV2S\nJHwzSii4YzWxF/ZixuLI4QC+ymJxDA8KvPBKeq2kgOCi2SSPnCR9shPfjBKxf9sBy0ItziO8cj5G\n7xBOxkApiGDGU8ItVFLRppeiFkWRAz6sZIZ00xnsRBpzaJTE/iak7OIZx7bBtHBMW0CBPofEoWYc\nJBzLxEJm+xtvYGKj2xa2aZI41opti0lUOaDhrywlWCEmtCVJQtZU8hbVkLeoxquPbZq0/+fzhFTV\nm6R5r3XgwAEMyyJv2ZwJDo8Xq7wlc+k60cb+/fvfFeAHYiJq1+5djB49TbRuFv6SAvx+vwD8dFNE\nbU9RxszZfjKnu5EkibzFczDjSXpe2IVfGR9HOjgogam/Uy5GSsCHw+929GwgEGDhwoUcOlbPWGM7\nBctqf/1GObIyBomWM4Rk9bJcQa7oiq7owmpsbPTmDu+9917uuuuuKaElv9/PunXruP7663n00Uc5\nePDgr12Y837LjUK8HEhdVVVvPDA0NHRBWGsqGYbB7t270XWd22+/nZtuuomhoSGeeeYZzpw5w/Dw\nMKWlpUQikQmuXKlUioGBAQYHBz2gbNmyZcyaNcvb9xe/+EX+/u//nqNHj9LY2EgkEmF4eBhd1wmH\nw1RWVlJQUMD69es5ePAgb7zxBnfeeecEUC8XlJpKpmliWZYXczuV3LbJZDKUlZWxZs0aduzYwXe+\n8x2+8pWvXDC6MpFI8POf/5w9e/YwMjLigUzpdJqTJ0/S1tbG3r17qaqq4s477+S66647bx87duwg\nnU57EbwgoAZd10kmk6iqKhYtOxO/OzVN88odjUaJRCLYto2maVRVVb0j4Je7QM2Nzq2oqEBRFA/u\nynXfu9A+XNm2TUNDA/F4nNraWlRV9cAlWZYJh8MUFRWxcuVKli5dit/vxzRN8vPzGRoaoq2tzXNf\nm7zf+vp6xsbGCAQCOI7jgCa+egAAIABJREFUuUE2NTWxYMECfD4fsViMw4cPey6TrlOk67QHot+P\njIywePFibNvmwIEDHpjjOkRpmuYBN5IkMWvWLG677TbvvLkOiIlEwoPVVFVlxowZ+Hw+TNNkYGCA\nWCzGG2+8we7du7nrrrtYsWLFee125swZQMSeumNxx3Ho7u5G0zRqa2uZM2fOO7a927YzZ84knU5z\n9OhRdF3HMAzvc319fQwMDKBpmgeruu3kto1t2/T29nL69OnsXLTl/fu0adPIz89nZGSEnh6xUOal\nl17y6pZ7LW7YsIHGxka2bdvGhg0bABHJ6wKqwWBwyvcSkiSxd+9eHMdh0aJFNDQ0ePCwLMusXr2a\nlpYWtm7dyv79+4nFYixYsIAvfOELE677ybHOqqqyefNmNE3jhz/8IfF4nBUrVuD3+z34NDdyeyrd\ncsst7Nq1i+7ubpqbm1m5cqXnIgkC8Ors7OSFF15AURQikYhnTBUKhVi6dCklJSVomsaZM2fYv38/\nY2NjNDY20traiqaJsbZpmp7rpc/no7+/n8cff5ze3l7PqfLJJ58E8CC1xx9/nMWLF6OqKvn5+Sxb\ntozS0lL82Tmi4uJi7r777gn1OX78OC+88AKFhYXv20KbAwcOAMId9VKlqirr1q3j+eef58CBA+8K\n8NM0jbVr1/KrX/2KJ554gr/5m7/xYpgzmQzxeJxoNDol9/H000+TSCSorq6mpqaGw4cP89xzzwHi\nnZlrXOS6nl6OXBA3mZw6jeN3QYsWLUJVVRoaGjh37twlz/McOXKE0dFRysvLPcfN3xf9RgC/L37x\nizQ2NgKCTv7GN77BnXfeeVn7Wrx4MY8//jh/+qd/Sn19PbZt87WvfY25c+eed7OZMWMGP/zhD/nI\nRz5CS0uLd/Pet28fp0+fvuCX3xX9firXKS1cc+s7RgdKkoyvYBaKP++iILT3W+8m5k7VVGTVhw3Y\nxqW9PDNGOrIxog6+0sXIskJo5o0kQUB+5/aAEsLJmyucwyQNmORG5ZiAhKQGJzwk5UYyPvvsszQ1\nNdHf3086nSYQCFBWVsbatWtZuHDhBaE7aYIT2hTKvrxXVAV1itXJk92BZFlm06ZN/Pd//4RE114U\nf96U/cSxLZKdu0QbgGiDSDVSoIxAKIqmclFOkJPdriTEl7qu6wIQis6GwUMCiorOGYf2xk5lHdhk\n6H4128bZiFUzISC28BTuWW77Z6NiHctE5Ft1ZkEkRzjYXUyEZe4+o3NBiUDvtokRwZIK4dkC/gpU\ngORk41AdUZ/hYzB4QMTTBkqYQImOnRyHuaJzhKueF1FcIKCrXNjLl7MSSpIF9Gdlo2ElRcSvqmEB\neyXPCmjMhfYkRUB1alg46UXmCBhMciOTEJ8zk4Al+rmWJ+Jwg9NyomH7xLkx4uK8pfvH3f9EzxF/\npcWKA9Tg+O8cWzjjyRoULxeQ15Sa5LQXKIWiZeNxwq4jnRuP7F7zwfLx47hujsgiwna0WZR54omF\nTAwQka6k+6Hk+nFHv3SvaFNXwWmizEZcRNuGq8bPtevoyQX6VPKs2KeWB5YhXO9kRdQhUCacGXPc\n8iY4WbpAMUyavc3W1Zc/3j6ZQdEnpnRXnKKdQ9NFfY0x4ayYhfCQlPF43sKlOOl+JMdEDpZipWNi\ncyUkrt/gtGykc7Z/jJ4UcK5lZOtoZ683CSQFh2wMs9kHtomEzcDAIANDY9hKCCU6A4ZPIukx6HoJ\n1BCOGsYMV2OZZZimlZ3UOr+KuZCaG0PwXuvdwOjw3sFvF7qX+/1+LCuFY+tIkv/8+1xmGPoPIAH+\nkoVikJ8aIt21j7BfZdOmTbz22muX/X0M54Plv8t6J0D/1ynXNfH9AlKv6Ip+H7Vt2zb6+zqpKk/x\n4EcNLmZu/uZVFmld52evxXnyySdZsWLFZa1Ofbcaj1S6vO39Pj+yBJYl0dIhsXRqc4fzdLhZ5q0G\nDd2U2HCNeMldN8vmy/+Xzne3+OgZ0PjJy/k8tTXKrGkGAZ9DWpdo7fIhuB6JskITHJWRsYmFVxW4\nb7PB330/xfPPP8+rr76ChDX+bIBC9awa1q9fz5o1a3j15efY8qrJl/5Yxx3aBLOAZiI19T02rYPt\nSF6801RKpkU53ZeLy5Yt47bbP8BLLz7PI0/Ax27VWVprcfqsTDwpIUkQ8DscOqFwsFGscC/Ks7hh\naZIlcy1KioIYhkzzGZltb2Xo6Enw4gvP0NLSwuc///kJq263bt0KToYbllm45kY+zYcVsEglU/g0\nh6pynZOdfhbXZMgYsP1QhJf2RegZ1PBrNmfPqWLcAeimRCyu8K9PFPPFjw8QCkyakMo+mvpUh5Qk\nYdmw7WCQnYdDWA4oMgyNCijuUtgc3ZCwLAmfJs6/ptgYpoQsw+xpOp/54JBXFtMSj553rBmjoTXA\niTY/P/hlIX/xoaEJj7LJtMQzb+SBBB/ZFOMnLxegyvDgHw4yvdTk4Z+KdvzsHwx5cB+MPxLLEoSD\nNvGkjO1AJODwhxtHiY2JuOBEWoFsZG5BaRWWZSDLCv5AlNIZCyiqmJcF7MTiL8vU6Tq1HySJQDCP\n8qqrKJm+gHB0IsSfTo5wrvMYve31DHQ3YWSS1K26ZzwG17Y5d/YEOA7FlbViZKKoWJZJ/9kTyIpK\nxaxl2XcHOQvVJpzE8ZOpKD6C4UIKy2s419lAKjGEkUkiywq2bWLq4pkrGBHjeju72ElRVFLxIVqP\nb2V06GzO/iVv23ish7GhLgwjxdhwD4qqUTJzIT3tb5Nq7JgA+Ml+jcC8GaQaOxjbdpj8265x87Ev\nDPcBtm4w9sYRUcb5MzFjcc/JDttB9vvwz64gfaqL1JGTAOTdvAy1MJrjGnqBG6PjIIf9RG5Ywsir\nByBj4BjWpDHTFE083hQEF1WTPHKS1Il2jO4BHMtGUhWUcBD/nGnIAb+YuPWpWBkdyacSWFBFYP5M\nlEhIrPMK+ECWia5ZQrq9h8T+E5j9MZykKTqqlI0QD/uRVRXHMDEGRrAzBpg2jiKRlCwC5cVoqTRW\n9wAYFunjbWJ7IHGwBa2sgPDCWZQsnjelO93o0dPIhsWcefPfN/el0dFRbBx8xfmXtb2/JB/HcRgb\nG7sk8GIq1dTUcN2117HnzX10P7uDyrvX4S8t8CLOrLSO7NOQtRy3qrP9xF5+CxyHgqvrMEbjnHtl\nP0rKoG5eLffddx/DwyL22IVXL0eOKVJCLgSe/65o/fr1HGs4zsjRU+QvnXdJ53OsqR3Zcli4eAHT\np19aEssVXdEVvbOeeuopbNvm1ltvPQ98mEqapvGZz3yGhx9+mMbGRl588UU+/vGP/wZKer7eKWb2\nYuTCY4lEguHh4YsCFR3H4fHHH/eiMDdv3gzABz/4QfLy8njiiSdIp9O0trZ6UZyyLGMYBqlUyoPW\nqqqq6Ozs9Jx4XJWXl7NhwwaefvppvvnNb55XN1mWufrqq7n55pupqKigt7eXF154gXvuucf7jDu3\nMxUkkese5rpbTSUXnHPHRB/96Edpb2+no6ODr3/96zzwwAMEAgE6Ozu9esmyzAsvvMCZM2dIp9Me\nbBUMBgkGg9i2TTKZJB6P09LSwve+9z06Ojo8JzgQoNX27dvRdX1CBKsbu+uCWLl1cSEid1xlWdaE\n9AtFUSgpKaGmpobW1tYLnttcF7/a2lrC4bDnYOb3+732nOzidyG5UKC7X7/fj67r+P1+1qxZww03\n3OAdz3XOuv3223n88cdpa2vz3OJy1d/fz/DwMD6fj4qKCk6ePMnIyAhNTU1eG6TTac/dMrcsroNa\nrktXIBDg5MmTLFmyZEKEbkFBAVVVVV708syZM7n55pupqamZUJ7W1lbq6+tRVZXi4mJqa2uprq6e\nMMZ1HRUbGxvp6OjgmWeeIZVKeZHNrvvgyZMnkWWZhQvFO2hVVenr66O9vR2fz8e8efMwTXOCq+Fk\nuc+LgUCAWbNmieQDXefMmTPouk4mkyEWE/MVkUjEiyPOBfzOnDnD0aNHJ1w/uf2zs7PTg2TPnTvH\nVVddRV5eHgMDAzQ0NLB06VJvu+XLl1NQUEB3dzfPPvssGzdu9OC+UCh0QQi3ra2Nl156CYC77rqL\n9vZ2799cx7RoNMqZM2dwHIdoNMqf//mfe3BcbpknQ36GYbBixQpaW1vZunUrsVgM0zQn9Jd3kiRJ\nrF+/nh/96Ec8+uijPPXUU+i6TjAYZMaMGaxevdqL43XB1bKyMjZs2MDKlSu9yOn8fDE+GBsbY8eO\nHTz99NNe3LYLRvv9foJBMY/uOlcmEgmvDQsLCykrK6Ozs5O+vj46Ozs9x0oQUNry5ctZv349ixYt\nOq/fWJbFr371K0DAd+/Huz3HcbzI48uNtXdB1NHRSzMsmkq33HILb775Jq2trTzyyCP8+Z//OcFg\n0OvTY2NjhEIhL+rYcRyeffZZXn75ZWRZ5kMf+hCvv/46TzzxBLZtc+edd7J48WIP0HUB88uRC4n+\nrsbzgoDPr732Wvbs2cP27dv5wz/8w0vaftu2bYAYV12J6H2PtXXrVrZv3+7dKO6///7LhvtcRSIR\nHnnkEW6//XZSqRSmafK1r32NZ5999rzPBoNBvvWtb3HnnXdOuGm/+eabVwC/K/I02SntneC+XOVC\naK+99hobNmz4rdxE3k3MnQT4VIm0BLY+hpUauqj6u1CDhAmyhhYVMI8kK4Sq1qGHy8kMnMDKjMFQ\nfc7Rco6tRQQkM9KEMwkudAA7UIGBj7Nnu+k9NyDgFscBSUJpOe054E2fPp3unj6Sk6A72Z8HqaGJ\nsaDeAewsxCFWYE31CDyVO9DGjRtpaWlh7779xE+/hK+4DjszKqIus9GOth7HNlLCHax0FU6gFDcC\nMhAOIXFxTpBTuV1JEiiqgmmYIu51+FgWVCoSkFm8VUTOOhaYYxMrZFuABQP7BYDkv4BjkgdZOJAZ\nEjGmjiXAJX0AAsUg+ybBL5PAstzf24ZweJMAx91GOBoSmiac1hx94i6i84Tj31irgO5KrhGRsK6j\n3Eiz+FzxNSJaF7JgV4HYj/vvLux1fiXH44iRRH38RSKet/9NAZ852c/MuFNEwdpGFvbzT9yPY4to\nWMcAJQzFKwQwJ6kTP+svFu6JybMCKEuIhzxKrx93FnRBPoDwLLEP15nOTApHvuC0Se19/o/eTIyk\nCOdCtUG050gLFEez7U8WBCXr7OeM/ywB/XvFceECsbFZIM0ZEwDe4H4Rixw7Ls5bLuAnScK1cPCQ\nqLuaBSa9Y0+6b7rzdZlh8XmAvHkwJCa3RF+WQNEgfz4MHBRgnK9o3LXSaxdnitl+18URUU4tIto3\nMyDq6LgzWfb4fqaC/MKzIFYPqR7Rh1zpMQGJyn7PEdHOjILswylaBsHKbJnk8T7iLxL9I3FG9HnH\nFPtUIxPb3jZEHxprwzETmKaBHBAvoMxYKyDhyJpwR7R10Ecg2YWjhtGjc3CK6whHwhOqMxlSe7++\nx94NjA7vLfyWey9PtL5MYPr1aPlV+EyxAtaxMkiybxy0THQKuM8x0ApmoRXVosfaSHftI6g5rF59\nHRs2bBDW7Jf5fQzng+W/y7oUV9zJ+k0AqVd0Rb9vsixLxGQ4ae7bZF4U3Odq82qLrW8ZDPT3cPz4\n8QkvcH9TEqtiZYYu8/2eLMuMJlRsJF7YpTG70mHlwgs7VwG83STzHz/3kdI1/D6b8uLxB7LZlQ7/\n9GCGw00yr74Jze0qzR3+CY8ki+dk2LAywZK5Gf7s/52GbjABHLNsi+JoglnTJE60OlhyksVzbIIB\nB92A9m6ZjtZj/H9tJwmE8giECjnVafJvP3P4vz9s4PdBaYGDLxsx2z2gUFkinvUcIKNDWhfuyMFg\nUDgFT5JlwdEWBSSNysrxZ7sPf/jDmKbJSy++wPd/IWFZNn6fcLeTEM6BGV3C73O4e90Ym69J4ver\nYlIoC2ZVlFisXW5xqtPgP56yONVyjH/913/lS1/6kvcC8+DBg2BnuHnlRFDEjSkCqJlu0NbtQ1Ec\nvvHfpXT0aDiORFWFwY1LE9RMF8DjaEJm15EQbx4P0tTh5x9/VMqn7h6iqmLqF/eWCa/sj/Dym1Fw\n4IalCfYdC7O/IcS65UkiIdtlj0SbTnoed39vmJAxJA6eCGLZwj1PyrqYmxa0dvt460SIm1aI8bCU\nfe4MBRw+fc8Q/+f75RxuDvK1x8q4eUWCtcsSREIOu+tDGBYsrsnQH1NxHIlVC5PMnWGwqz5EMiMx\nZ7rBVXMznKfss7aEKE9KlzBMiVDQ4Q/Wj1J/KkA644g4VdsiMdaPoviIFlQwreZqCkqqJ+zMcWxa\nDv+KdHKEcF4p85bdTiCcj4i7NZGV8VePgVA+VfNvoHhaLY0HnmFk8Aytx7cy96rN2JZJfKSXxEgf\nqhagpHI+mi+IbRkkYr2kEzF8gTAFpbNyjp/7oD55UCQqKckKpTMWMtjdgqGn6Gk/zLRZy7LnbeKE\nj5N1rIuPnKPp4HNYZgZF8VEyvY7yqqsIRUuyTg46gz0t9LbXE4/1kk7GaDv6OkXT59PbdhgrlrNA\nyhFtGVpVR6bzHEbfECMv7Sd603LxHD8F3CdJEnYyzchLb2EOjKDkhwmtWsDwz3eA42Al0l6kb2jZ\nPNItZ7ENA620AF91+cRWmAoEcxwByDmgTStGLYxixRLonefwz5q08t0BbBtyJ3ikLISlqWjTism0\n92KNJpFUBSdjYCfSGOeGBcSoGyIbwO8jf/NK1LJC4QwnSziGiWNYyH4ZVJngnOkooQDDv9gBsoMc\n8BOYP5PAolmoxXliUsWwSJ/uInW8DbNvGNswkU2bVJcAH+VoCP+sCuRwQET8JtKkT3Vh9MeIvXGE\nZGMHM+65CTXHojZ+uovBPfWEFO19jZt3Jwovx70PEAswEd/Zk6PzLlWSJPGpT32K0dFRjp1ooOup\n14kunE3+krkEQgLyc3QDyzAwh+OkmzpIn+wCy8ZfWkCio4fRwy34FZUF8+v4/Oc/j9/vJy8vD0WW\nMceSmIkUavjSxzXpvkHk7CTl77KWL19OcWER3QPniB1spHDVxTmQGCNxhvc34JdVbr755ve5lFd0\nRb9famtro7W1lWAweF7M6ztJVVU++tGP8rWvfY09e/bw4Q9/+LcCKUciEQ/8uBy50bmO4/DNb36T\nhx566B3ddCzL4oknnmDbtm2k02nC4fCE6M+NGzdy7bXXsnPnTl5//XX6+/vHvwsliaKiIq6//nrW\nr1/P4OAgjzzyiAfbudJ1nauvvprnnnuOkZERpk+fzuzZs9E0jXg8zunTpzl48CAHDx6kuLjYgy8C\ngQC33norgAdCHz58eAI85zremaaJLMsXPGetra2MjIwQCoU8CCcQCPDQQw/xrW99i5aWFr785S9j\n27YX4+mWPdehznXUy33n5/P5yM/PJx6PE4vF+OUvf4nP5/P6X2trqxcxnGsMIUmS5wjn/gx4YJkL\nacViMXp6ekin055DWnV1NdFolJqaGjRN4/Tp01PCTC6QVFtb6zmMKYqCYRiUl5fT0dHhQaVuGS4E\n+LmAUnl5ObIsY9s2uq57sOfbb79NXV0dFRUV3rOr4zjMmjWLFStWsGvXLk6fPs3w8DAzZ86krKwM\nWZbp7BRzF1VVVXR1daHrOp2dnViW5e2rs7PzgteE67jnlsl1RxseHvb6sttPurq6iEQiLFy4kNtv\nv33CteE4DkNDQ3z729/GcRyqq6tZtWqVB8y5fcNtp/LycsrLy2lqamL//v288sorFBUVsWDBAnRd\n5+2338a2bRYuXEhpaSk+n4+xsTEOHz7s7d/n801wWZwcXZxbNlVVUVWV6upqDyzs7u72+rN7jnK3\nl2WZpqYmjh07BgiodPbs2VRVVXnXSiqVor29nba2NlKpFE1NTVRVVVFVVUVjY6MXu5m7zz/5kz/h\nO9/5Ds8++yzJZJLbbrsNTdMuCDE1Nzfzne98h0wmww033EBNTY0HhsZiMSorKwmHw2zatImf/vSn\nyLLM9ddff55z2lRjItM0SaVSOI7D2rVr2b17N/X19Xzwgx/0nL/dsruOj5P3kUqlWLx4MZqmeaCz\nJEkkk0kGBwepr69H13V0XUeSJGpra/n0pz9NNBolGAyi67rnyOnz+YhEItxxxx2k02m2bNlCIBDw\nQOcbbriB/Hyx4CcWi7Ft2zZ27tzJwMAAhmEwNDTkLbapqalh8eLF3vdCR0cH9fX1HDp0iIMHD3Lr\nrbfykY98xDvvtm3zk5/8hMbGRoLB4GW5612sXAfIyx3LuPfCi4Uw30l5eXl84Qtf4B//8R9paGjg\nq1/9Khs3buT6669HVVVM0/TccRsbG9m+fTsnT570rs/vf//7HgB+2223eWmjLiD/ThD1Oykej3sm\nFxdyiP1d0fr169mzZw+vv/46q1atOg+cvpD27t1LQ0MDmqZ5gPTvk953wM+1s3YfBv7yL//yPdlv\nRUUF999/P4899hggbvJ79uxhzZo15312zpw5bNq0iVdeecW7+R44cID777//PSnLFf3v12SntEuR\nll9Nuucg3T29NDQ0vKvYwMvVu425k/QBFFlCQp4AOkzlpuM4NsZIhwc1qIEwYwl9ArAhSRL+kgX4\niuuI97dixE4juW59siZgmugcCFYI96vR5gkwhOOIFVW6ruOEZ4NxDFvNJ1S1FknRcCxjggNeV1cP\n+flRnJGxiaBG0Tzhojd6UsSCZuvjWEZODKpERs9gmiY+nw9VU8V8xwXcgWRZ5lOf+hRdXV00NTWR\n7jkwDmFlZ0ocxxKglCycxaRAGT6fTzwU5rb7r3GCvJDblSIrmGRjc9SwAJskoH9P1nlOzkbIzhNt\n7EFBvSL600xCz3YBokVmTYKfshMkjg2Jbhg+LLYNVkDqHIy1CdjI1scjXL1aTZ40sMTnHFtE3Tq2\ncKWzsjCfo8Pg2wJg8heOn3wxgyDK50bk9u+F4fB4lKw5JraTyIkjni7KkOo5P6J4Yo8Xx/DKnh2I\nyr5xQC2Tdfezdeh8Tvybr0AAWJPbzHUTVIJQdoP4nLtfF4z0Dp2NhlWj0LtVwFyBUhH3a1vi/Jkp\nUTcXaLT1bEQt406NLrg2GaacEEWb/VvRsvU6KtqzaKmI2JWU8chez1nREedg8IBw2nMjj0MzJgKd\nkiSAxbxasc+hw6INAhmxvZnr+Jd1OYzOE7G1iU7o3Q5Fy7Og2xQP8o4jPjdwQABy4ZmQHhBtISki\njjmUvS6i82G4QcQQR6pz6j9hh+NtlRvR7PaD6FwYzrZPoHRi+4kGQrhguj8a4twGSgBZAIvTbgJJ\nE6BnMuvWaMYBB8eNuy5fK65N2Sfuh05uH8meu+RZAZXJAdFG4aqJ8KBjieNF54qY8/792JmRcRgw\nb142nlgSfUofFMClmcAZPoqRGSQz80YCweB593MXUnu/9G5gdHhv4TdZlvn0pz+NJEns27ef1Nmd\npHuC+Irmo6qFmBbCxTTTjxRvAzMpbrmRaciBAuLNTyNbKcJ+ldWrr+OBBx5AluUrsbOXoIt1xZ2s\n3xSQekVX9Pumo0ePMjTYR1mhwcKadwbbJkuR4eZVJk+9nmHr1q2/FcBv3rx5KFqAxjaVwRGDSzVH\nau+W6B7wEQyGQZb4t5/FWTTHYMM1Fkvn2R7XYtlwtEVm6wGF46dUUPKYVllMbLAzG3U7LlWBVYts\nameO0D8MqYyMaQrorbzIpDhftLMbo6sqE+G++Fgc27G4dlGS1i6NVYtE/K8r3YC3Ggxe35+hvSeF\nLUVQtTzqT0p87fspNl1rcf1Si9VXWew4pLD9YJiP3TqKYUI6A6blrmCHRDyBJEuYtkbvYJBURkGW\noeucxOCoSnllJXV1dd6xDcNgeHgY23FQFYeg32Z+dYbiPEs8So4qtHT4cYCX90UZiAX4zIftLNw3\nLkmCeVUOf/tnGb7+X3D65AmefvppPvKRj2CaJslEAkmyqSie+HznThA5jkMoYKMqDjsOh8noMsX5\nJh/ZNMKcGToBnzPBpW/1khQn2nx888cltJzx8X++X87C2RnWr0gwvcxAUx3GkjL7j4fYdSTEaFJG\nAj68YZT1K8c40hLkTK9GW7fG7OkGQb+NNulR1gP+gHRGIq1LmCbsORYio8v4fTaWJaGqDn7NRpLh\n2Z1RbBvuuCGOpjhkDBH7XF5sEvTbpDIy54ZUnnw9j2feyGN2pU5ju5hUWVmX5MmtBYDD+pVxJAm2\nHxSTGetXTHbhzpaR8SddVXVAlzAsEW1clGdRXaFzIhXAtFVkRcEydCwjQ3/XMP3dTYTzSqmuW0vp\ndNEnxoa7iPW3o2oBaq/+AD5/WEBtjoNlZkTU56R3C+G8MuavuJvje56gt/0wjmXiAIM9zdiORXnV\nEnz+MI5tY1smybF+kKCobE5ONK9bkws5hYh/l2WVcF45vkAEw0hxrvMYlXNWoio+VC2AZWbQM0k0\nfwgcSMWHaTr0PJaZobBsDnOX3oKqTZzwVVQfZTMXU1JZx2B3C63HtzLY1YJlGcK9RBd/5xZNCQUo\nuGM1Q0+9gd7Zz/DTOwnUziB41RzUgnFXD3NojNSJdtLNnTi6gRIJkn/HalKHT2KNxHEsm0xrN+FV\nYiGgVlaAVlqA0TeMv3aGuFFNej6aMBll29i64VGpkiQRrKsmvv8E6dNd5wN+gGNZSDkTME7GwHEn\nZvLCSKpC5JoFhK6qwTEt9N4hUg3tGF39Agy0bcLXLUAtE+N+SVPFuMCwcCwbx3aQZAljNMHoK28h\nqQq+6SVEbrwKJRJEcqO9HJBUGX91Of6ZZWTO9DHyygGsjI5SGCWyaj6BeTOy6wxN71jh1YvInDxL\n4lAz+rlhzv58KzP/cBNYNrGjp4i9dYKQonHXB+5k1apVF+hP717uOyErKcBbd3LbdbyRJOGoqmna\nlE4sYjvhcPJeOGpomsZDDz3ED37wA/bs3UvqeBuj9afwlRchh/1YpoU5EsccGsMxLRzLQlFVrKEx\n/IpKWVEJN998Mx9OW0BrAAAgAElEQVT4wAe8SdlQKMTyZcvZe+AtRhtaKbrm0hbj6EOjpDvPURSO\nToir+12Uqqp84hOf4Lv/9l2G9h0DSaJgRd07Om/pQyN0P7cTTbdYetVSVq5c+Rss8RVd0e++XCeY\nG2+88ZIBvaqqKubOncupU6fYu3fvbwXAXbBgATt27GBoaIiSkkt/JzU8PIymaQSDQfr6+vjbv/1b\nVq9ezYYNG6iqGp8zSyaT7N69m23bttHb24uqql6Moa7rnhMgCHeeW265heuuu86LkrQsi3A4zIwZ\nMzyIqru7G2BCu2cyGZLJJPn5+SxcuJBjx45x//33c/31108o844dO9i+fTuDg4NetOKWLVtoaGhg\n48aNLFq0iPz8fHp7e2lsbKSurg5d10mn0x6gZts2o6OjYuHX6CiDg4NkMhn8fr9YCIdIosiNG43H\n48TjcTKZDOl0GsMwiMfjWJblwXSBQABFUYjH4xQUFEz5TlOSJKLRKIqiMDg4yDPPPMOCBQuoq6tj\ndHTUA7Qmfz/4fD4v6lNVVSzLoqCgAMuyGBgYoLW1lVQq5UWMujp79iyzZ8+mtraWqqoqpk2bRl9f\nHz09PV4saSgUorKykpKSElRVRdM0wuGwB/hVVlZ6cN2vc+1z/0SjUa+f5Lr9FRYWYpomTz75JB/+\n8IeZP38+lmWRyWQwDIOamhr27duHbduMjIwQi8Xw+Xz4/X6GhobEnJ6qEo/HSaVSDA8P4/f7KSws\nxLIsr29NVTa3HO45c6Nw29vbKS0tJRAIeC5wIyMjDA8P09HRwYsvvsjVV1/Nxz72MaqqqpAkiVdf\nfZXh4WHKysq49tprveM42cXqLjCWq7q6OtLpNIcOHeKpp55i+fLlDAwM0NTUhKZp3HTTTfh8PnRd\nx7Zt+vr6cBzHczDL3d+vOw+qqlJZWem5+DU2NrJ+/XqKioqQJMkD3dz9tLe3e3DfkiVLmDNnznnl\nD4VCLFy4kJqaGhobG2lra2P79u3MmjXLq3cuBAqwdOlSPvnJT/Ld736XF198kSNHjrBhwwbWrl3r\n3Q9s2+bYsWNs376d+vp6HMdh+fLl3HffffzzP/8zICCxw4cPM2+eiF+49dZbeeKJJ9A0jWuuuQbD\nMM6L3M6F9VwHQ1dlZWUsWLCAxsZGjhw5wurVqyds58buus+8LvhpWRaBQIBIJIKu6/zd3/0dZWVl\nJBIJDh065N0nFUXB5/Pxmc98xosrd6Nyk8kkmUzGGwPs2bOHF154gUgkwgc+8AHWr18vFtFkgVEQ\nQPeGDRtYt24dTz31FK+99hqGYbBkyRLuvvtu6urqvPuRLMsEg0FisRjbt2/n5Zdf5uWXX8YwDP7o\nj/6Is2fP8otf/IIjR46gKAoPPvjgBPjzvZR7b0ylUoyOjnr3LMMwJiy+c4HiqZ6LXQfAXKD83Wj6\n9Ol89atf5dvf/jY9PT1s2bKFn//859TW1nru5mfOnGFoaMgDMkOhECdOnADE9/8dd9wx4bpftmwZ\ngUCAU6dO0dnZecluhTt37sQ0TZYsWUI0Gn1P6vk/VXPmzOHGG29k165dPPzww3z+85/3rusLae/e\nvfzXf/0XAPfdd9+7ikL+36r3FfAbGBjg7bff9i7A1atXT7Cifbe65ZZbeOyxx7z9v/baa1MCfiCy\n3V955RVA3Hjb2tres3Jc0f9+TeWUdrGSJBlf8Xwyg/Xs3LnztwL4vScxd6EA82vn0dx8chx0KJ6P\nGqlEkjUc28CMd6MPNk+AGnp6ejjR3DolsCFJEk6wDNRiUKeIOwQPLHIBQYccuA+QwpUw2oikaBNg\niVwHvGTXXuzYKIUFeUijcdLZ8mtFtUhaEEdPQPwMTnDauEOZV38wdRMz040ebwcriYwA9JzMCPnF\n01iwYIH3ecMweOyxxzjT2SXcudQgRGbhBMoE6GcbkOkXLnpmEmn4KKo1QnDWuvNNxLK6kBPkhdyu\n3IEqkHVTA2INIiZV1rLgVEU24jWnzf3FkF8ronJTvcJ1LnZUgFfBCgEI2Xo2QvmkAOskWUSjmikB\nJJkJAdCFpue436niOFJ2EOHYWdey7M/JbrGd4wjgSFaz8ciS2G/fLii9VkBksowXH+vYYsW/JIsY\nUzMh3PpsXfwuUi2ALMiCf9kX3PHTOb/7NdeCnD1njinqYJvClc0YzZY12/aOIdol1SvAwcKrhHMc\njLsFFl0tIl9zZ3FsPevQNqkcvoIsVFYvHBVHmsV2+kjW7W5e1tUvC4tOjtKV3P9M4VIxQVmXuEBp\ntn6GAOUiWdcNNQz6sKiXv0hsHm/NiTdefwEHxJzjhaaLPtK3E9J9OedvEmgoISKJzaToE/37s7Dv\nvKzjYRaOc6OMzWydw1Wi7w4dFtcctgDW8heI8ytJAnizM+AvzfZLWUByLsTpOOf3S0kevx8Ey2CY\n8WN6Bc6CmrY57ljhwn1I4hqTsi58niOmA76sW2O8FQYPg5XE0cICwHPLZiMgV9vIzuZLot6JTnEt\nVtws6uVBr2SvIcMrn5Q+h5MDA0qRalB8omdYuii3v0DESqd7YfAQTvIsqTNbcQpmYgy1TAmpvV8q\nKytDbj5FZqCRjGNhpUewLQNHUpDUMFLebJRwJX6/34Otc/Vew2+apvHZz36W2tpaXnvtNbp7eskM\n1YPlINs2jm0LFxcnOzkoq9jJPmS9n7CmUFk1g02bNk1w770SO3tpupCT4sUsMHi/gdQruqLfNzU0\nNICjs2aZNZkLuSjduMziqdcynDhx4l3HBl6O8vPzWbFiJW/t284bBw3+YMOlreTddkBBkv3cfssd\nFBQU8Mwzz9DQlqChNU00ZFCUJ5zAhkYkxpIaSAHUQJi7776bRCLByy/20NIhs/qq8+FIx3Eozrco\niExcI2Ja8HZTgIONAZJpiUgIXt+vsGKhgewIuE9THKaXWqgK5wGEPg1uWGZz/VU6P3vV5pU3HWw7\nn1C0jDPnBvjPZ3V++EuL0kKbREpi55EgNyyNEw1nX5q6Fm44nO1X2X0kzMHGILrpevlJJDMCTqsr\nLCQWi1FUVISu6zz88MO0NB0jP5hg/TUGa6/WiQTSYsLOtACbRFpm37EQWw+EebvJx7d+7PDQJ8bj\ng3NVlA+fu0/n/3ksyY4dO7j33nu9PiTLznl9UkJClmQsxyYSEgCcbkJVucHf/HE/4YBDMiOd56oH\nsHC2zne+0Ms3f1xCY7ufw80Bmjr8Oe0BOJBIy9i2xIfWx7Bt+NtHK0ikJXAknt8V5bN/MIRjy8gy\n+DQHRXa886sbEhlj/GTvOBxmeFTBpzqUFVjE4jK6KZFMKwR8NrLq8PyuKFsPRrhxaYLrlyaJBm0S\nKRnbkQgFbO7bGKO5I8Cx034aO3wkUjLTSgwK8y0SaZnyIpO5MwxsGzp6xRhmxYL0lG2QK1kScKlh\nQjwb5bx8foaTnUEi+dVUzlougNPhHga6mzCNNInRfhoPPMPY8DVUL1hHW8Mb2JZJ6ayF+AMRnOz/\nxGO4g5FJoqgaiiombC1T59zZBno76rEsEVlz7mxDduLEBsdhdLibvjPHKSydBZKEaYrPqVp2wlia\naiw0WWKRjyRJyJKE6gsgSTKZdJzOlr3MrF1DOL+MTHKEge4mwnk3gATtjW9gmRmKyudSe/Ud7/g8\nZ1smBaXVzF9xJ02Hnmeo+5Sou6ZOLF62OyiFEeRIAHMsiTWaIHW8jVRDO3IkiKSJ+Fk7Pu5W7Zte\nSnT91ZiDIySPngZNRQn6sWJxjJ4hfJViDCKpCpIqo5UVea54kioLKC/bVrbtZCN4s/F9soxj2+CA\nViHGfHYiPWGYKflUD8KTnOw5Ncws3Cch+zUkTUFSZOSgDznoB8chMHc6gZpp6F0DjO2oxxweI9XQ\njq+6HMXv8xzsJFXBMU3sjI7s9xHfUY+d1vFVlZG/aRWOaQqnQHV8QZSTMcAWk2yZlrPIPhWlMEr+\nplVohZHsZ7PnxzBxsqBfYN50fDNKib34JvpAjPb/eh7HstCQCasa995zrxfnNzo6ytjYGLZtEw6H\nKSgoeE/GSTU1Nag7dxI7dpJ4bz/ps/2iPhJIfg3fjFKCtTPRCqLexHXuceMtZ1Bl+T2NENY0jU9/\n+tPcdtttbNu2jb1795IcHMMZHEMBJMvGp2hE8gsJhUJEIhHPcWnlypUTQAdXGzZs4OChQ4wcO03h\nigWX5Fg4cvQkmqKwevXq92zS7n+yVq5cySc+/gn++8c/ZnjvMeKnu8hfOpfI3JnIOX050z/MyNFT\njDV14Hck6ubV8rnPfe59iU67oiv6fZY7WX/jjTde1vY33HADp06dorGx8bcC+F1zzTU8/vjjnDt3\njmQyeUn3Udu2PUDuwQcfZOfOnRw+fJgdO3awY8cOysrKPIClr6/Pc0QrLCzkgQce4Ec/+hG9vb00\nNzeft+DLdbGrqqo6D1QYHR3lrbfeYuvWrSSTSXp7e9m/fz9Llizx5j+CwSBlZWWoqnpeqkdhYSH3\n3HMP69ev59vf/jatra1Eo1HGxsY4ePAgBw4cIBqNoqoq6XSa5557jvLy8glxnSBgoRMnTrBr1y6a\nm5snlD0ejyPLMpFIxIP+Ojs7+Yd/+Af6+vqIx+OMjY0xMjJCJpPBtm3PWSocDlNcXEx+fj4jIyPI\nsnxBcCYUCqHrOqlUitdff526urrz4LxcTYa73AhcF2R0wbqp1NbWRiwW8yCUGTNmUFlZOWEs70I2\nLvBnWRaJRAI38nXGjBl0dnZOAOVyj5d7fEmSqKmp8QBBF1p0ne+KiopIp9P8+Mc/prS0lGuvvZba\n2loURfGciwsKCliyZAktLS3EYjGvLxQXF3tOjK7bodv3Y7HYBIjrQu3nurPlRrOOjIwQDAZZvHgx\nZWVlXrRtd3c3pmny5ptv0tDQwBe+8AUqKyt58cUX0XWdhQvHHXndc2eaJmNjYwQCAQ8QGx0dpbGx\nkVOnTmGaJiMjI+zatcs757Iss2/fPjKZDBUVYgGO63DpgmuX8t7FBcrcxXINDQ3MmzeP8vJy/H4/\niUSCwcFBioqKSKVSHty3fPlyZs2a9Wv3X1dXh9/vp7m5mVOnTnnPslO1+dy5cz3wtb29nS1btvCL\nX/yCwsJCFEVhdHTUc0VTVZWNGzfyoQ99iJ/+9Kd0dnYybdo0YrEYu3fv5t5770XTNFKplAfalZeX\nk0gkkGXZA0DdfmoYhrfAxt2/ez+bN28eTU1NxGKxCY6Lfr+fdDrtuey59wXXUTscDnsuidFo1IuH\nvv3221m3bh179uxhy5YtpNNpXnvtNe69914P7nPnet3ry7ZtfvjDHwLw8Y9/nDVr1pDJZLzYXxD3\nq2QyieM4wo372DEikQhr1qzhvvvu88YukUjEuzYSiQR+v5+77rqLuXPn8r3vfY+XX36Zt99+2wPm\ngsEgf/EXf+Hde2KxGMlkEkVRyMvLe8/4njlz5nD06FGefPJJRkdH6e7u9qLNCwsLWbFiBatWrSIS\nieD3+8+LT9+/fz/ARTu9XYzKy8v5+te/Tn19PVu3bqWhocF7JnDvDYqiUFZWRjAYJBKJMHPmTG66\n6aYp4ddAIMCaNWvYunUrr7/+Op/85CcvuixuNDsId7vfB/3xH/8xo6Oj1NfX841vfIOVK1eyYcMG\n5s2bN+F7+siRI2zbtk28wwZuv/12zzDp903vK+B3/PjxCV/q73Uk7ty5c73/7zgOR48eveBnJ6/6\nc29YV3RFcGGntIuVGqkkde6IZ5n6m9Z7FXP35S9/me3bt4+DDoP1pM4dwYvFVaTzoIZ///d/p/lU\n24XdirzxR84XnOMISGysVbjKmWms1BCJjjeQItXoUgGOJCEpfg9mmRogHHfAi59+CXtwmMLCfCwz\nRiYzRKb7zeyqeQfn3H6oWJsFsASUJkkyjJ4SDoJG3CuqBeDYSMgMDAzyla98hY0bN7J+/XoeffRR\n9u7bT8qQCFTdhJpfhWWKFR+maQp7YX8RFC5BSnTBwFtYY2dIde4iVLXugg/dUzlBXpTblRoSwFaq\nV0Bw0zYIaMvJvrifPBkhazBts4g6jR2FTAyMIxM/5zqcyZpwG9NHcyAqXWzrK8jCSrnA0RTSRwTE\nJklQvFxAfKk+4XpnxMW2ZhL6dmdhr2wUqaQIBzksAX5Fs65k8TYBTwIEygUo9v+z995Rdhx13ven\n0833Th5pRqOcA1aWbKNkSdhkg732vthewMu+wMIueDH7x/JwdpfzPHDYZQOGhQdegk0w2IDxyjZg\nkEbJysGSJSuPZqTJOd18O9T7R3X33BmNHABjvMzvHNkzd7q7qquq+1b41PcL7jkyO5jJkc9edtHH\nvW8PpAMIVcv0g6UwaT2+HW2yQebZTksoL9slwa5CPxglI/CdvODIj3Zewp+qIaHB4QsjAJun3GYl\n3efMLf/hizI/sZku6OcuUivFahXjxVhFP/eaqj7yWd9RaTmsx6UyXqYVkpclkIaQP8NL2Bu71xG4\nVrlIAK9yDXTvd8tRLyqDojwpulQ69NQRPWhzYJwkjLhUCIzNgfZfyOtU3SSV9qyUzHfU3T06FrgT\njrSRul54YKyn3qh4IKeNbBOOW3Yq0lbatU/2bYwVWfceEKi4FscoRVXvwo96DLqfk89CqtEtZ8W1\nftXk9bw2UmwtHayQn/tpU6Q8CKSaEOlWCT1O3gR6BCGcET1NTdpoC8eS1whPlgqTXc8h0q2YuU6i\n0Yj/Pr/llls4e/Yse/fupbu7m1wuRygUorq6mg0bNrBkyZLfaVHLcRw5GVTIYveelXbFRX8X+UFI\nt2HrUcz4bNTSuYRCQQKuhfprBb95KnJbtmzhzJkz/v17kwLehIlpmuRyOX9SccOGDSxevPiaMpmw\nnX11cV0lxVewweC1BlInYiL+1CKVSoFwqCh5ub7T+JGIga4JLHey9PWwpNqyZQtHDh+k/kiONy+z\nr1F9u140tSkcOKWDEmLz5s3U1NSwceNGX5Wiu6uDZE4uWBRMi0AgRFVVFZMnT6a7u5upU6ciCHLg\nVJatay16BlQyeTA0KI0LKuKjwb6BYZWdx6LsPhEmmdbIS4Fa8gX44S91fvSsxg1zBLesTHPDnJF+\ntnqd7p+qwl1vsWjpUjhyZpBUKkUooGIpEgps6VIxLYXufp3/+HEFn763l0RUEAwAAr77TCmHz4Tx\nFKJn1RYojduYlkJnn05Xv8H5syf59IOf4u3veCcXLlzg3NmTVCYyfOq+LFMnqyhoQBTLlgsXigJT\nqhzu2pLixiU5/u3Rcs5f0fnONoOP3jn+2GF2nWB2ncXl9iEOHTokFTIMAyunkM5CscujIxwc4SAE\nTKsuYNkK0bDN372vl/KEgxQWU7BsBYEY6R+5+z5KYg6f/2g3X368nCNnwoSDDomog+NAJORQV21x\n4FQYIRQuNIe42iH7AzMmm/QO6lxuC/KjZ0u5922D6EilvuI+r9fyVAUOvRjmmX1xdE3wwP/Tx6qF\nOVq6dHYdj7LvhQhDKY2o4VBRYtHRG+DZQ3GePSQnzoVQyOQUwkHoH9b5u/f10T+k8fzFIN/7RRlV\npbZU4lcE5QkbRYFUVsG2FYIBh6BRtNFmbOaK25DnCwyomkFJXEfTNMKRUipdlb5JU5cwfeEGelrP\ncPXCPsxcmtZLh+lqfpF8bphAMErVlIWomlwElM3JwbFtBALbMrEtk0I+w8XnnyaXGZKLg9EyyifN\nxgjIvmw+O0x/12VSAx0kB9opqahj9pve4qv2eUCgql5vOvPa8ZC3XUY4UpnDtkzaG49jmwUqa+fT\n13GR7tYzTJ17I+nhHlJD3RiBEHOWvhVFkRCcWchgWwVUzcAIRmR+hEC446GSymnUzVnL1fPP4dgm\nWjziZ0dxG58QEk5zhjPSXjdoEJw/jUJj+yioTzF0QnPrCC+eiV6RACC55yQA8TULEJZD+vgFUofO\nUvaum1EMXarVKQpaNIiiaQjblopr1ugNjj64Z+iygRbccUaRTKkaDkqoz3LhOEWVQF3BBF1zr6mg\nhgKgKthu3pWg4Q8TEeDkLfTyBCVvX8vQs0ewB1Nkjl0gsXHZSNsL6DhCIGyp+ldo60ExdBJbV0m4\n0HZGNv4JB8e0/XGe1TNEob0XNRKi5O1rUQ0Dx7LRXChKDegomiohP9tBWI689uYVDD5zAGsoTSwW\nY9XKldx6663MmzePgwcPsnPnTmm7hAdDK1RXVbF582bWr1//OykoVFVVkUmlsIeHUbsHRn855Apk\nh9JkX7yCMaWS2Mp55CtKfEs/IQRDpy4RULXXZKFn2rRpfPCDH+Tuu++mqamJVCqFoijEYjHmzJlz\nXdu08WLRokVMqa2lsbWZ7h1HqL517StagE5dbmX4VANRPfgntZFn69atxONxHnnkEYZ7h+n7zVF6\n9zyPURpH0VTsTB5rMElA1YiqOjfeuJYPfehDr0tfayIm4n96eEBJRUXFb3W+d14qNb6K8msdgUCA\nDRs28NRTT9HR0cHMmTNf8bxJT0+Prwy2bNkyli9fTltbG7t27WL//v10d3fT3d2N4zjk83kSiYQ/\nJjp58iSLFy+ms7OT+vp6SktL6e3tJZ/PEw6HqaysvAYMaWhoYMeOHRw9ehTTNH3luKamJr7+9a8T\ni8W48Ua5sbPYsv163yeJRIKPfexjfPazn6Wjo8MHwzywxTvv+PHjPProo9x3332+ZW5PTw9f/epX\n6ejo8MGz6dOnEw6HyWQytLa2kslk+OlPf8qzzz7Le9/7Xn7605/S0dHB0NAQfX19qKqKYRgYhkEu\nl/MtKHO5HG1tbaRSKaZMmcLAwAC6rl9XbSgWizE8PMzx48cZGBggGo364N7Y8Cw/PbjOU7g7f/78\nqOOuZ507MDDAc889x80330w4HB5lY+uVXSKRIBAI+PfkOA62baPrOrNmzcI0TTo7O18SJgQJf5WW\nlmJZFq2trf48cSKRIBKJ0N/fz+zZs8nn8/T09PDMM8/4efYUs9LpNBUVFdxxxx0MDAxw8uRJGhoa\niMViWJYlx+uFwqh79n4fL8YrE49n8Ppeuq5TU1Pjb65YvHgxw8PDnDx5kkuXLpFMJvmXf/kXNE0j\nk8kwadIkysvLRwFlxcBnNpsln8/T3t7OoUOHfJivtLSURCLhKzGm02mGhoY4duwYJ06cYPPmzdx4\n443+xgqv7scq1BXX+dh79PIihPCBuCeffJLNmzezYMECTpw4QUNDA2vXrqW5uRnHcairq/PhPsuy\n/Lrwnh1FUfyy1zSNRYsW+e8KRVF8JdFi+2+AS5cuoWkaoVCIGTNmUFFRwdmzZ0etr1dWSqXodevW\nkUgkyGQy7N+/H4AHH3yQb3/72zQ3N7Nt2zb+7M/+zIcfQ6EQkUjEh+bG2n57ZeGp2nnt3oPtvL/H\nYjFyuRyWZfnvJ+96np2zpmnEYjFM0ySZlGuSxc+2ZVmYpsnq1aspLS3lm9/8Jrt372bBggXceOON\nfrrRaJRUKoVlWezcuRPTNLnhhhvYunWr/841TZNQKOQrD3rvhH379pHNZlm+fDnve9/7fHXCUCjk\nQ37eOV7+Z82axfve9z4eeeQRmpubqa6uZt26ddx2220EAgG2bdvG7t27fbtfLxYsWMDmzZtZsWLF\nuJt8XkkIIYhGowwNDbF9+/ZR5eWp+l29epVnnnmGNWvW8I53vMMHJlVVpb29nXPnzhEIBK4r+PXb\nhqZprFixghUrVtDT0+ODh4FAgLKyMmbMmPGqoNotW7ZQX1/Pnj17WLRo0SiFv+uFEILvf//79PT0\nUFlZyQ033PC73NIbJnRd5xOf+AQ//vGPqa+v5/Dhwxw+fJjKykrKyspwHIfe3l6f7TIMg7vvvvtP\nFu6D1xjwK5boVRTF95z+fUUoFCIcDvsv6La2tuseO1btZQLwm4jiuJ5S2isNRTXAlRx+PeL3ZXOn\n6/q4oEMmk/G//D2JdW83U11dHYamkOk+jZ3pxSkkEY6FouqowQQiNAX0SvyZ3uGLMHQBYabdzxwX\nfHIoDF6BgSaEHkUpmSdBmDEKf2NDCIGV7gQUsrksuS4LTTcQqtw5ruLg2CaKnUJ01kPVm1Hi0+XK\nTs9BREq+p9CjkJgjFcBAplvopZBppqGxhebvPsyjjz7KcDKFrYRQazdhGhUoloNu6BiGTjqdwXYc\n2R5UDeLTIBBHtNdjDl6hEJ1EsHLhuPcxnhLk9aweRw1MItMkKKkEXCio3FXHs+X/Nd1LYERRzYPt\nguUSPEKRIJewJGSU75dAWKAczEHQ3GuHa6H3oGuxultat4ZrR+rRXzpx08p1Qd9xWZbRaVB6g0w7\n6KmbNUmLXsftZJup0bCXp9SHkGBU6UJpy1oYkBCfHhmB8jxgyymMAIeqwfVBuLGLXQKprGbItoAi\n8xqQdlcEK6ViXKYVeo9IsCt1Wf5NNSA+SwJfHijpwWOeYpywwMrL8vCgRD0qzwuUu4puFuR7XfXH\ntATZ8n3Sqlhx69HKS5BT0UbuYaQVjf+7EG4+3IxZadeieTmEamQ5Wml5bygSuNSjEJ4CmQ55n2Zq\npH0YMakIF6qS96ioMj+RKfJadt61hFJGslHM+tlp+YPqtqtsp1QoFKZ7/bgsl/BkUBSUTId8X+gR\nCSQ6Odlueo9KSDFY7paPm5AalO1ReGXvlYdnxWzI/DpFz5H3sxqQ9eirENr4lsjFIKvXtrJd8ncj\nNrKS5ZWzd3ygBCpWQc8hV3nQ28WnjKhmCluW/1hraVXaWY3Kq3d2slGmVrkGQhWybYyy/EWCzKoO\nwpaLj8EyqfDZexhNFfz9px9k8eLF7Ny5k3/4h3+go7OLvGlj22IE7L54mUOHj1BbM5mtW7eydevW\nVw1VmabJN7/5TQ4eOoyNLtUME3MgXOM+u65y43CDbyVs5/vIVK7EsqTk+WsNv6mqypve9KbfWYV3\nwnb21ce4SoqvYIPBn1IZTcRE/CHCn6QSv53yXrET5R9avc+LefPmsXTZCl44cZh/+4Hg799fYFL5\nS0N+V9oV/qbrtTYAACAASURBVOPRAJYTZ/3GjdTUyA1fsViMt771rdx66600NDSwfft2Tpx4HiHS\n4KTp7UrS29UIqAglQDZnMVxQ+PSXQyNQlRul8QrefEOGrasztPXo/NdPy8gVZB+3tspk0cwc0ZBA\n0xQutxqcaghy4kKYExfCvGNdipKo7O9GryPAkcnBVx8zONuoYmg2oaDJioWCihJwHEFXP5y+pJPN\nQ3NngM/838n83fv6WDijwH/8qIJLLQGChsOGZRk2r0pTXW6RyyuYloIjFJq7ojx70OT5Cxm+//3v\no6pQWWrx/76nn3jIYnhY9Xfny3GKIGiMcCtTJ1k8eE8//+fhSg6dUnnHOoWpk8avly1rLC4/mWPv\n3r1s3LiROXPmcP7MAIdOS7tkL7xJeE2FU5fDhAIOy+blKI3L/p6mSVU6ywbTVAi4dVK8hqMocPv6\nJC9cDKEo8LkP9xAy5Pm/OhgDwmia4Eq7QUnM4SPvHWDhjDxXOwz+5YeVnLgYomeokq2rUyydk0XT\nFGxnZM/OlQ6D/aeiHDsfAgX+fMswKxfm/DJ5/9uHuHVtiv/6aQVNHQblQuVv7u7j2Nkwl9sCZPIq\nubwEZ20bDpyKcNeWYcpLbGbUmOiaVDbUVHlTjiNV+DzlwGIL5lFRNEQYG6qqo+tBLFuVozpt9JSh\nbgSpmbmCeFkNZw4/QT4zRCGXRFV1SiqmEi0pnncTfl04jo1tFchlBjl/bBtWIUc0UUXd3Bspq56J\nbZk+KAcwde5NDHQ30nb5CMP9bVw88UsqauYhHIf0cA+goGr6qHTGhmXm6Wk7S2qwE6uQxXFs0sM9\nOLYcF1kFm66W0wx0N6FpBmY+Q3vTCbLpfhQUquoWU8in6Lp4iu7WM9jWiPKHqupU1M6naspCIrFy\nVE0u4E2qW0LLxYNYZo5AXZU7pJQbgHw7qFzBb4CKqpLYcANsWIqTzSMKFkpARw0HpXKXJAOxh1MU\nWrpRNJXwopkIxyF3sRmre4ChZ4+QuG01asDABoTtoIYCUonasl0wzrXaclxgLWhICDA/khfhSoQq\nAV1aKgcUhKbi5E1/s5GwRzZRKQEJCDqZHGZzNygKRk2FxCmFwMmNnKeGgpTctob+n+wid7md2E1L\n0IyReQo1aOAUIHehGYDQ3DrUoKtKoquIgoPj5dWf0lDIXZRzOeElM9FLYjiZ/Ci7XwBFU9G0gMyT\nact5v0SU0Nyp5F64zOpVq3jggQc4fPgwn/rUpxgYGqTg2Niqgh6PgKJgZ3Jc6Wjjhz/+EU888QRv\nfetbufPOO191X/TQoUP8x3/+J46uogWDBOfUEVk8HTUuF7Xs4TS5c1fJXWrFbO9lsHuAxKZlUFdN\nNBol29CGPZSmpmoSy5cvf1Vpv5qIRCK/83jL28TzhS98gcELzXQ5DtVbZDsdL4QQJM820bPzGBEt\nwJ133MH06dN/pzy80WLt2rUsW7aMQ4cOsWPHDq42N+P0pgCBpiiUxUtZt24dmzdvpra29vXO7kRM\nxP/YGA+KeTVRbC/4esVtt93GgQMH6Orqorm5mWnTpr3sd1Zvby9dXV1Eo1HuuusuP/9Tpkzhvvvu\n4+677+bIkSPs2rWLixcvYhgGmUyGq1evcvXqVf/4dDrNc889x7Fjx3yQSFVVdF1n7ty5rF+/nje/\n+c089dRTPP300376ixYtoqamhlAohG3bnDp1ivb2drZv386+ffv4m7/5Gx/8uZ6CVGNjI1/+8pd9\na13TNLEsy4dgPPjOcRzq6+vp6Ojgk5/8JAMDA3zxi18klUpRXl7OunXrWL16tX+PjuNgmiYXLlyg\nvr6e9vZ2HnroIRzHIZlMcuXKFUCCIcFgEMMwyOfzPvDkxdDQEJqm+cpj49m1goQcvDXv/fv3s3Hj\nRoLBoL8+V3zNYiDPA+9aW1v9duity6uqOi4gCPjA3cyZM8nlcr4FLMDUqVP9c71y8GxcvfHf/Pnz\nKSsro62tjeHh4VHXVlWVyspK6urq/A0SnZ2dfl4ymQyZTIZQKMTkyZNpbW3llltuYcGCBRw4cIDu\n7m7y+TzDw8P+fZ87d44pU6ZQUVFBIpFAVVVfkQ7ks+fVvZeHVxLFz7yn+OadO1YtN5FIsH79ekpK\nSjh27BiZTMYHPOfMmTNKOdO7biAQwDRNTNPk6tWrHD16FMdxqKqqYurUqT5MVhymadLT00NbWxs7\nd+6kUCgQjUZ9kLOmpsbP4/XeWcPDwzQ0NPj2xdlsFtM0fdvWdDrN9u3bKS8vx7ZtWlpamDNnDs3N\nsl8+c+ZMuru7aWxs9AFYL8LhMDNmzPCfXU/tccaMGfT29uI4DkuWLBn3vZpOp/1npKKigr//+78n\nk8mQTCaxLItoNOrXr1evBw4cwDRNFi1axLRp07j77rv593//d37xi18QCoV85dVcLkcgECAQCPhQ\novc+KlZHjMVieNbExe8wkP1hXdeJxWK+25wHKHrPt6qqPoB75MgRTNNkxowZfv2bpkkmk/Hzv3jx\nYt7znvfwxBNPsGfPnlEWwB4omEwmee655wCp3Oalo2kalmX5z5hXlqZpcujQIQDuvPNOwuEw6XTa\n33TrgZWeCp4HHAohWLVqFb/5zW9oaWnhL/7iL7jpppt47LHH2Llzpw8ox+NxEokElmXR39/P+fPn\nOX/+PCUlJdx///0sWzayceuVhG3bfOtb36K+vp5oNEp1dTWbN29m1apVPoh4+fJldu7cyfnz59m3\nbx+XL1/mIx/5iA9dPvnkkwCvudp3VVUVVVVVv9M1amtrufvuu/nJT37CN7/5TdLpNJs2bbrue8lT\nMd2/fz+6rvPRj370T0qtW9M07rvvPt72trexe/dudu/eTW9vL729vf4x1dXVbNmyhXXr1v1J2vIW\nx2sK+HkvQ+/lOPYL/ncNr0Mx9uU7XhiGMQoGLO78TMREvCKltJcI4UjZBU8i9/WI36fNnQc6LF68\nmB07drB9+3a6e3pd8GPQX3BXLzSgYpPP5RBCoWDlGKUEl+0H0TQCz+X7peIUSFjHg5u0gASCMl0I\n1xpW9J1EyfdJZTRADVy7S1o4NpmW5zAHr0i0LFAGsRkY5TMwgiGEbZIbbMHpl0Ch4pjSRrQvAZqO\nMIddyGi1BE2EwIeAABEoxVZUGDyPmUlK2WM1AFXLsdU4dqFAoVBwB3ABbMd2+bZiW9wyqFqN6D5A\nvvcsgYoF1x3kj1WCvJ7Vo+24CmLedRTVBbJqRn73VMg82Ge8Tn50qmu/m4bypfL8dLNUYVMCEqTT\nglIVMFAqz6m6SaadbobuAy6kNmdEvc7OS6vg9BUJinnpVKwEUShaf1Ek9KdHJWToWeMKU+bHscAc\nksdrYRdAa5PneLCbY47+2QOlij+7boxd2XJhK0WVeQB8VTf/FNXNcxw6d4zY5iq6hNuUoq9URQCa\nu6JVkLClB/ephoSyIlNkuk6RTHywXJZntkMqJWZccF2PSNgy3wWhshGAS95E0f9duDLbWQTmmWDl\nXGBSx7da7j0ir6vH5XG9R13QU8h20fZLCZyNjcKAhDw9QDGxoKh8Zkh74+JiHtv0PNhQccHS+OzR\nB3oDck/uItUoP0/Mle+J+FzI9kCmRdpNV66WKnmFQQmJBSvc8nHbvQfrgfxc0dzFJmck3UynW86e\nd54mV4ztvL8wNYpS9K6RbJC/x4vkwP30im48OhUGTrsW150QnTJyr1pAlklaDpyJz8az0Rpt7Sw/\nUxQQmW6EBwNG6+TfXBhQOLa04ioORRv5LDETMfgijiMtp77xjW9w6NARsnkLR4sQqJhPIFaDohkI\n28RKdZDuu8Dlplbav/9DLl26xIc//OHr7hAcG47j+Mqn6bxAVK6V7xpFGw3FehBt2oVoM22IXihU\nrsbJDyA63jjw24Tt7KuPl1JSfDnVxImYiIn4/UQsFgNFpWfwt1uMGkyCbasY4cCrUvn5fYaiKHz0\nox/li18cpKnxPJ/7/+Atay02rbQpS4w+trtfYdcxjfqjOgUrxpIbVvCBD3zgmms2Njbyla88RGq4\nF5wcc+ssbl5qU54QOAIa2xR+vtPAMiFoCIKGw4IZBRJRB9NSaOk06BnUeHpfnKefi2M7YOiCN83J\n8Y43J6mpsHAEBHSpUCeEoGdAZdfxKM8eivGL/TEMTSCEwrJ519oOZ3Lwhe8GaO1SSMQstqxKs3Jh\nlorSIJGwnOy0bZvmjn4Ongqz+/kI/cMan3+4inDQwRFQXWrzwPt6qamwKVgKyYy7SABYtmDP8zrn\nmnSChoNwFHQd1t2QYfqkAo4A2xHkclnyuRyK+47Wx3RFpk22WL8sQ/3RGPVHND74rvEtlBfMkJs0\nvAm8W265hfPnTrPzaI7Nq21/+CMcubFI16RCnmHAumVp8gUFXZOfBw0Hy1bJFwF+Y2NGrcn0GpMr\nHQFOXghx45IM2ZzCzmNR8qaKogiqSm0+88EeJpXb/jmf+UAP//6jClq6DB55ppRouIQ3zc4RMATZ\nvEJLl0Fnn+6XxT23DbFmcZZkWpXDD0WKp5XEHD5+Vx8PPVZBZ59OU1uAD793gIIpAcv6o1Ge3JMg\nHHDI5hV++GwJH3rXIImo7J/2D2lEQ/Ln7gGdVEZF1yASlse3dutMnTR+WSue8LQAx5EKhKqmIxC0\ndqsIoRIIRhjpp4+o/MVKa5i1ZAsXT/zCV7ULhIsfsmKSUv7u2CaXXngWq5CjpHIq81e+C02X7wpH\nseTV3QpWdYOK2nnEymq4+PwvSA93o+kBLCvPcF8rhVwKIxgpSmAkvWyqj/am5+ltO4/jjNy78MA0\nVZOqfAgURXWBPhUhbK6e2+sOs1XSQ92c3POIf74RiKAZARzLpJBP09N6hu6WF4mVTGLu8rcTNoJo\nRoCy6ln0tJ/FGpQKDmMX2zzwzGvMTiaPloiOKP4Vl6D7n+yFFhCC4NypqGFpCZW4bQ2DTx+g0NbD\nwM/2oBjyoSs0dxGoqZDPoqGA7YF+7v17cJ9tu2WioOgahbYehO2glcZG0tdUqaJX7A8uK8ofW2TP\nNyMch+CMyWjRMKJgIqwiNXQcUECvSBCYUkWhtYfcpVaiy+aMvqRhUGiSY7LQohmj5w28g1TVH5vZ\nmRz5Kx2gKoQXzZCLV666oLBsCSCOKngF1f1M2A7hBdPInWni1OlTbNu2jSd+/nMyVgG9IkHZ0rnE\n509HdSFE4ThkrnYydKqBwasdbHv6KXp6evjIRz7yihdcXnjhBb780EMUsAkvnklkxVzUgIGiazJf\nioIWDRGoqSB28xKS+06Tu9jC0M4TlN66mrzVQ2rXCSK6wbve9a43xELPzJkzeeCBB3joK19hqKGN\nK00dxBfOIPGm2QTKElL9MZMndeEqQ6cbsIfSRHSDd7zt7bz73e9+vbP/ukQwGGTjxo1s2LCB7u5u\nhoeHMU3Tt5qbUOybiIl47SMajZLNZunu7v6t7NB7enr867xeUVZWxgMPPMAXv/hFBgcHuXTpElVV\nVdfYzQshSKfT9Pb2kkwmiUQi3HPPPaxYsWLU9YQQ7Nixg8cff9yHpmbOnMm0adMwDAPLsrh06RIX\nL1707U09W9Rihavh4WHOnj3L9773PSzLQtd1Nm/ezE033eS/3zzV2re//e1cvnyZHTt2cObMGf7t\n3/4Ny7IIh8Oj7E+9uHTpEv/6r/9Kb28v6XSanp4ekskksVjMV5ny1oU9pbQzZ87wyU9+0odnFi5c\nyL333oumaRTcNR+vHzc8PMzevXt9205PUa+np8eHfrx7fymYzrOi9eyCr7eWGAqFSKVS9Pb2Eo/H\nWbNmDbt27SKbzY4CHIvV5nK5HPl8nt7e3lF5eCWQX3t7OzNmzCAWi9Hd3Y0QgnA4TDgc9u+1GFYC\n/PLx4Lzq6mrfqthxHHRdp7y83Ie+HMeho6PDB6WKI5fL0dHRgaqq7N+/n82bN/Pggw/6QNxXv/pV\nzp07B8DVq1e5cuUKM2fO9NuNN3fo2bF6imdwfSB0bBQDgt5z4l2zuJ6KId4lS5bQ09PD5cuX0TQN\nVVVHKT0XjwO8djIwMOADsDNmzGDatGmj0i52RDQMgylTphCJRLh06RL79u1j7ty5FAoFmpqaRil7\njVVpbG5u5ty5c3R2dvpQm6fg59WPB38piuLDe5ZlsXv3bkzTJBKJcOLECVKplH8NTdP8+kwmk5w5\nc4bz588zdepU30XR67MUCgXa29vHfZcWX8fjRiKRyHWBLSEE+/btQwjhz5svXryYe+65h0cffZQn\nnniCM2fOoOs6qVSKxsZGZs+ejWEYvi10LpfzyzcajaKqqg+sevDv2bNnsSzL3/jp5atYhbHY2tdr\nKzt37gQklOcpknrH67qOZVkoisKmTZvYtm0b586do7u7m0mTJvnXVBSFzs5OBgYGqKys9EUIxlpf\ne7AfwMmTJ8lms8yePZvp06f7QKBt277SZnEb8UBn7/d169bxs5/9jL1793LkyBFOnTqFoigsX76c\nrVu3snDhQv8eM5kMBw4c8AHphx56iPvvv/8VOy0JIXj00UfZuXMn8Xice++9l+XLl/sWx16+Kisr\nWbt2LS0tLXzta1+jo6ODb3zjG/zt3/4tTz75JEeOHCEYDPLWt771FaX7esfb3vY2stksTz/9NN//\n/vf51a9+xS233MLNN99MIpFACEFHRwe7d+9m//79vmLgxz/+8VEupn9KUVFRwZ133sntt99OR0eH\nb7cdi8WYPHnyxNqQG68p4DfWtsDbzfD7Co8i9+LlvqyLoT5PhWwiJgK4rlLaKw0r1Y6mKdcoRf6h\nwnEcXnzxRRzHIRjQyWaGyVzdCXoUo3w+gZI61Fdpc+cpLl0P/HDMHNnW/RQyPaAEpCJTfCZKtE6C\nUsKETBd4wF7vMXlhLQJVayFS60MwihYAVUcEyiEx31VJO4pINaO4MGGgfO6o/AkhRuA+xYCqNSjh\nyQhhY2sBQsGIFN2yAojgdJR8jwSYrAyYgwhTSNWt6nVSYctTgvPUyIQDvQcRntqaEUfYWakuFpsh\ngRkchGNhWTa2XazeOGZhNDoVtAhOPomVaseITxm3HscqQV7X6tHjoLQAItMsoa34THxb3iLYB8eU\noNJ4SnaKKmGigVNSWUwNSrDGS0RRXJvW0qJzNKi6WYJobt36qntCjJyHImGp+GxZXlAEShVFoATK\nlkvb2HwvTHmrWxcC2rdLwCw2XabVe0TCaEZMQmbZrqKfOySshgKBhIQDPdjrJcPLUxEwWazK5v2t\naEGLQALKlsn8CEvet3od2MlxlQtSTSNwnw9MjpG20wLyWMcasXbt2ivBLzUIdg76X5DXMeJSRc9V\nuXNlISB5EYYuXgvmCUeqMgoBWhTsrITX7AIUkrIcLEuCfooC2Xa3Dj2ltckSeHQKI3bFVlpCa4Uh\nqJKS4lLVT3XBQhsYs/AgkO3Vy3O289o6Et7/3AHzKMtlRbbbqtXQY8uy6D7gqsBZsp0k5rmgpqti\nWQTt4j5jIyqPOtimhAiF48KGxdCnca16nmcHlmmVZWDEpF20sEan56ksCkf+7D1rqcYRwM8vE20E\niA1Pxm9ryhgA1cnLxyx9RX6cmDsCyCkaYI7/nBWHokFsJvbQi3zrW99icCgpLcfrNowLoemRSoJV\nizGHmkm3HWD/Abkr7K//+q9fUWd6x44dHDp0hHQeRPV6CW179WPnZRmrrlW1okJsmmzfHfUS8utT\nsbIdBDWbm25a/4aA3yZsZ3/7+H0pKU7EREzEq4+lS5ey/Te/4rnns7x7oyW7j68i9jyvgxJ43ewj\n+vv72b17N3v27GFwYIBM1iKV0nj8NwrbdussmWNTWSq7Ad39Cueu6KAEQQlx87r1/OVf/uU1FiNN\nTU3867/+C4VsH4tn5bhrq8WM2pFJ895BePRXAQKGQ3WpzfplaVYvzhKPOERDEHC7dqcvB9hxJMqJ\niyEyOZVl83J84q4+sgUV25Fd9bA7PSGAylKbu7cOs2BGnocer6B/WKMkJli5cPR3vBDwX48btHYp\nTK4w+fS9/ZTGbZIZqVqAuw6RL+Qpjdm8Z2OS9cuyfOmH5XT06iQzKpPKLT5yRz8lMYdM3ttkISFE\nEPzXT6poaAsQDDjcuCTDvheiOA7cdmOSSMgBRarWFQpQsMCxRyC8sbF5VYb6o1EOvKBx91ssIuNM\nyYRcdsFbkFm5ciUlpZW09aQ5eNri5hvchSq3v5bNK6QyEnJbOL1AwVJIZ1UiIQddkxCd7UA6pxAN\njQatvN79srk5rnYYtPdq5E2Frz1RTu+ghm1DOCj48HsGfLjPiynVFp/5YA/Hz4fZ/0KU1m6dgy9G\nyOUVhIBQQFASs1m/PMPaRRlK4g6jnFIF2AJsRyEUEPz51iEeerySPSei3LIqhSduZtsKqiK4YU6O\nE5fC7DsZQVfhntsGqSy16R3S6E9qVJXadPbpnL0SZMX8HDctybDzeJTdz0f5i7dd371CQebDy5ui\nqOQKcPjFAJYToKJmftGRHuQngaeSiqlE4pVkhntcBfniTUcjKXjqff3djeTTQ4RiZcxb8U4X7htp\nLIqioBshFFXFsS0c2yIUTjBn6W2cOfRTetsvAAKzkOX0wccorZxG1ZRFlE2a7dr3Cga6G7l44pe+\nSl9JxTQqa+ejB8KYhSzZZB+97efJZ5PYdgEzn0HVA4TCcfLZJJaZAwSqqjPc34qq6lTWLmDyjKXE\nSib5iznZ9ABdzafoaT1DeribMwcfZ8Gq9xAMx4nEK1BQyJ65QnD6ZIzqUoofCiUUGDW0zF1qJbrS\nK2dRpLgnj1EAOynHCYGakXGTHo9Q+vYbGd55AnsoJZXrChbZM1cIv2kWiiqthf168ecQXLivIMtI\nMXRQIHehFWFaGNVlRXWJhOZM65rPAOyhNNlTjSAgOKcOJzeycU3RNJSAjpPN+2mHF8+g0NZD7kKz\nD/gJV/5V2K5Kn6qgVyZGmoY7taBomrQizsnrWb1D4AgCdVVoUfkyUVTPGvrlVZe0WBhjUjmZ7iEe\nf/xx8opD+ZuXUrpi/jWLzoqqEp1ZS3RmLZmWLjqf2ceBQweJxWK8//3vf9m0MpkMX//618k5FpGl\nc4jdtFhafOUKCMvGEQLF0CSUqUjr48SWFSiGRvbMFQZ/dQgBBITCrbe9/TWx532tYvHixXz2f/0v\nfvjDH3L+wgVyZ5oYPt3gPkvu4rWqYqg6UybVcPvtt7Nx48bXN9N/BKEoCpMmTfIXfSdiIibiDxdL\nly6lvr6evXv3vmrATwjBnj17AF6XMZEQwlc+OnLkCLlcDtM0KRQKZLNZ2traSCQSaJqG4zhkMhlM\n08QwDOLxOPfff7+vgFUcv/rVr3jsscewLIsbbriBJUuWjIJwmpqaaGlpwTRNBgcHaW1t9UHHeDzu\ng0+lpaVUVFQQjUYJBAJ88IMfZP369b5oSyAQGLWZePbs2cyePZsnn3yS+vp6MpkMq1evvmYNuLe3\nly9/+cu+dZ8HR4Nc3yq2NHUch1Qq5VuiZrNZdF1nwYIF3HHHHT5QBviqV93d3Xz3u98llUoRDoep\nqamhsbGRVCrll59n3elZ2L6UAuTAwAChUIhkMnldwM+DtTwoccuWLezfv590Ok04HB4X9PfgMS9t\nD+grBvw8yGts5HI5kskkpaWlPuhUU1Pjp2Pb9ii4zwsPhPTUwUpKSigpKRmVp0KhwNDQkK/Y5n0+\n9n7z+TxDQ0OEw2F+/etfc++99/p/80ClhQsX8uKLL7Jr1y48O+kjR47Q3d3N8uXL0XWdyspKGhoa\n6O/vJ5fLEYlEqKiooK+v77p14pWXV06KolBSUkIkEqG0tJSqqiq/Trzy9O5twYIFXL161Qe4xqt/\n7/4sy+LChQt++Y6nVqwoyiigzLIsysrKqKur48qVK5w4cUJuCuzpYdu2bdTU1DBv3jwqKyv99I8f\nP86ZM2d8KC8ejxMKhfx85HI5stmsn1fHcTAMg0mTJtHW1ubXdTKZ9Muk2ELYq8NsNsvQ0JCv5pnN\nZlmzZg0gWY2uri6eeeYZ7rvvvlE22yDfDV5+W1tbaWlpYerUqf61PdtfLzRN8zcBzp071z9u9erV\n6LrOj3/8Y86dO0cul0NRFH7961/zgQ98YNxr6bqOpmlks1kfOA0Gg1y+fJmmpiby+TwLFiwYlV8P\nui2up0BAbrw6dOgQjY2NhEIhFi5cOEr4yit3D8iLx+OsXbuWffv2sX//fu64445Rz+Xg4CAA06dP\nv+Y598BEzz4b5IZUwLd+VRTFf8e/EiXalStX8sQTT/DCCy8QDoeJxWI88MAD44JlkUiErVu3smXL\nFv77v/+bbdu28fDDD5NIJF6Rkt/zzz/Pb37zGyKRCB//+MdZsWKFDyan02n/PeLd99SpU/nsZz/L\n5z//eVpbW/nf//t/k0wm0TSNj3/846MgzD/mUBSFO++8k0mTJvHkk0/S09PDT37yE37yk5+Me/yc\nOXO49957f6tNBv/TQtd1/70wEdfGawr4FctXCiHYv38/hULh97ajf8eOHddNb2xkMhn/SxZeObk/\nEX8acT2ltFcSQjgU+i4QNbRXTKv/vsJxHF9hz7NWtCwHgYKwC2AXKHQew+x6HsWVq34lNnfFikvj\ngR9CCHKdJ3DywxJCqlwlrW0VxWVVghLYCFZA6QJIXoHeY2BnIFQu1Zs8hStVHwFmoAjwSEDHDoSV\nQtVj6LHRFhSFvnMjcF/tFqmUJxywbBzX3scyLWzbce1yZ0iYrL0erJTcpV++Qp7npau4kIkAeg+N\nVltLN0vVsvhs/zihaCi6Do6NcApjFjWKJoUVFRJzEAOnKPRfui7gN1YJ8rpWj8WXtrMIRYXQZJmu\nB8woGijOaIhGGTv4ExKaGkCq7mU7ZL0EyqRNrxFzVebGhKJAbBZEp0OuW4JO+X75T9GkbXBsOoSq\n3cUMVdaB4oGGLvTkwVCRGhgKg5WUinXhSfJYzwY1VCPhp0wbdNZLhTuQkFnFSlkvw5chNlPa18Zm\ny8+STbgBOgAAIABJREFUDdIK+KWeZ2eMooWvyoa8x7HlBbKMIrUuXDgo78FXCyzqOAvXKlkgAUqQ\nanOBsmuv6ZWTorqqf7a050UZsflV3RXPwqD8l26RIFRinrz33sPyMxitrKioYGUh3wPJJgml+Wlr\n0t5VgFIYQIi8/Myzz43UXVt+wXIomS/ro/eIqzwnoHzlyLNsDsKVn0HpIllWSpENa75vpHySl6Vq\nm6Lg28uOWRQU3ruiWFFRCKhYDaFmafttpmQdmEkJU45qt0WApnBG3j2eml+uRZaJsFx7X+80V8nP\nU8P0Q5Vt3YNhYzNHqzB67V3V5bPnlbX3rHnAoncfft7ctqgaeHZcvk2ioozOg6ceGf5tJvwFhKoR\nQ9DR0QlGjOist76kjayiqARKZ6AFE6Qbn+XgwcPMmzePt7zlLS+ZkuM4bN++nWzeQqlYhWOUuEC3\nJr+jHMtVuPTeEe47KlACFSug+wDKsHwew9EEf/VXf/WGgd8mbGcnYiIm4o0WixYtonpSLd0daU5d\nNFm+4GWA8aKwbNh1TAM19AcHsTOZDN/73vc4euQwjp0FkcfQLCaXQyoD6azKYErh0GkVXdcIBgIo\nioYeCLP2xhvZvHkzs2bNugboyGazfPnLX6aQ7WPtkhwffq9J8fxqLg//8cMA/UMwZ0qBB97XTzQs\nSGVkeaRzCnlTEDBgyewCc+oK1B+L8LP6Ei63BXjuhQjL5+fQVKncp/rJj/SDbpiT557bhnj46VIc\noV4Dzp1rUjnbqBIL2zx4bz+VpbbnwOlP5jruwgNAMCCtYT99bz+f+04lfUMaqxdlpcKbu0dHU4UL\n98H//Xk5l9sMyuM2f3dPL0MpjedORplTVxgB3oRAUwWRsErAEiQzMGJHOjrDU6osZtUWaGwPcqVd\nZdGsa9tYNgeg+BsydV3n3e9+Nz/4/sN8578doqE8S+c5qO64Ip1TUBSIhBzCQZnvgqWQzqloqgQV\nPTW8VFYhHHRQ1VHF7CvgtXUbfOkHlVxuM1BVCAYEUydZLJqZZ2zkCwoBA958Q5ab3pSlZ0DnVwdj\nHDwdZkaNye0bksyuy2O4w0tNhYAhUBTBiw0h2np1MjkVTRGUxB0Wz8pRW2XS0mVw8mKYm2/IEAoI\nShM2KGAYgvvfOcDDz5Sx+0SEc1eCTK4w6R3U2H08yrK5WbZ1JNj3QoSbb8hyy8o0O49H2X8qwp23\nDBMZAzcWR8FUisTSFI6eMUhndWJlU4gmvDm20efbtikBlKlv4sq5PVhmjlx64JrjAGxTll9v2zlQ\nYMqslehGcFT7EN4GFcVTEjRQVI2uq6dob3oexzbRdPkZIIHBrkYGupsIBKNMmnYDkUQ1F59/GiEE\nFTXzmDr3JsKxckBgWwVs26K8eiZTZq9ioLuR5gsHyKYHELbF/JXvIhyroOPyUZrO7UFRNSLxShas\nup2gq0zoODbCkYtkgWCUafNupm72Wi6e/CVDvVc5f+y/mb/qPb51sN03TN+j2zGmVBGeV4caDiJs\nB7OjD6dgut1/m+zZq0SWz5FFZ9ojZVFU8k7OHWvqmvuBQDgOWjxC6e03Y3UOkD51mUJTB3Y6R+5C\nM6F57kS4oqIYmgT6hJAKe67lkqLrKLpG7lIrTjoLQpA6fgFjcjnG5HJfUV3RNR8IlLCdip1MM/iL\ngzjZPEZtBUZtOZ6yn+LStSPIsIQWDRdQtJPZa8BDP0+umodsDoqr1gmoilQidC/puPlRw0WKZtej\ni4vCGkyRPXsVazCJ2TeM7Vqqla9bStnKBS97fmTqJGrevYH2J3ezfcd2Vq9ezdy5c68BxIvjueee\nYzA5jFFTTmTlPGm/DGihgIT8bAdhO1LdUVPx5DWjqxdQaOvF7OwHxyEQi3PnnXde1xHijzWmTZvG\nZz7zGVpbW9m5cyfHjh3z1X3C4TCzZ89my5YtLF269A2hTDgREzER/7Pjlltuob6+ngMHDnDXXXe9\nKvu/xsZGmpubiUajPmzxh4orV67w8MMP09TU5NuTepaxHthm2zZ9fX2+gpOqqtTW1rJp0yY2bdp0\nDYADcPbsWV+5b+PGjT5Y40V3dzf19fUMDw/T1tZGa2urb+0ohGB4eBjDMAgGg/T29nL16lXmzZtH\nbW0tv/71r5k1axalpaUEAoFxy1pVVW6//Xa6u7s5fvz4uMDKs88+6yv2eUpgY21LTdP01QR1XSef\nz5NMJn0A8Z3vfKc//vAshXVdJ5lM8sgjj5BKpaiuruamm27i1KlT2LZNMjkyv+spm+m6PgoSHC8G\nBweprq6+xo61ODyIzFsjmjNnDkuXLuX48eMMDAxQVlbmK6AV36e3/l0M+RVDaR74M56SnwdBxWIx\nv048SNAbT46XT8CHxjwlLkVRfNiyWAkR5Fyxp8Tkqch5tqdDQ0OUlpZy/Phx3vve91JeXk4wGPTX\n8mfMmIGmaZw+fZqdO3dSW1tLPB5naGiIVCrlA0KVlZW0trbS1tbG7NmzmTp16ssCfmP7INXV1QSD\nQRYsWHCNOp73c6FQIBaLUVtbS0tLC7Ztj+tiaNu2ryDX0dEB4MN9Xh16deIrmruWvwCXL1+mu7vb\nLztPdW9gYIChoSEuXbpEZWUlS5YsobOzk3PnzmFZFuXl5b7NrVfGmqYRj8f9Njw8PIxlWVRWVvK5\nz30OgH/+53+mqakJRVGIx+M+4OjdS7HtcHV1NZZl0dHRQVdXF0eOHGHlypV+ee7YsYN9+/axYcMG\n5s2bRzgc9pXgUqmUD5Tu2rWL++677xr1zOLwRFG8Z9U7btmyZSxZsoSjR4/y7LPP0tLSwtGjR7nt\nttsoL5frHd4zncvlfNDXe1dFIhFUVaW+vt5/d37ta1/jgQce8G18PSjQA+tAzv0fP36c73znOwgh\neNvb3uYrBnrAsqqq/jkedDd37lz279/vu7gVh/cMj3VO8tqHpzro1Ucmk0EIMQqsfTmrecdxOHfu\nHAcPHmRwcJBsNks+nycQCPCJT3ziZVXjFEXhve99LwDbtm3ju9/9Lp///Od9VcTrxfbt2xFC8K53\nvct36PFUQnO5nP/PMAx/bKVpGh/60If43Oc+R1eXFGVZtmwZS5cufck8/jHGunXr/O+QnTt3cunS\nJR9IjcVirFixgi1btjBt2rTXO6sT8QaJ1xTwG/siSKfTPPLII3z4wx/+na+dTCb5wQ9+MEq2dmwH\nsziampr8nxVFYfLkyb9zHibif05cVyntFYQ5dBXVzlI7rY7Fixe/dpkcm+51FPYinsKeVaDQdx5z\n4BLYJgpQkihlxYoVbNq06bo2d47j8Mgjj7Br9x5MEUCt2UROK8XM5AgEAuiGPi5cpwgHYeUBgbDz\n4Kgoqi7hoEgNTFoP3fsk4DN8XoJyqi5hj/EiUOKqpB2+Zp5WCEG+95ycC65aMwLp4XVe5G+FQsF1\nzHVfdcEyqFyJ6NqPImyU+ExXOWpk5zggVdDSrUVqa2UwdFb+LVz07hBSPULa/AQRlhyYSYvMMWUb\nngwDp3AKSa4X4ylBjmf1qOqV7jy5q/aGAnpYwjHCdhXHlBHY6prP1CLmSZUFVhiUdpnRqRIuUxQJ\niI0HxwkXzFMUCRjFpktbXysNZUtdFTRPSdAFC4WQNqi+bawFiu5ajE6DyAwYOiNhsehUeY4Rd2G2\nXqhYJfOSboHBs/J8y4W61ID8Odsp0w5PluCplZLwYfQ6naJRMJkLHWbaXFW2eFFdC3+S3T9H0aVV\nbP8JmZdspwTf/IUq4QKMQKFP5kWPQmTMjgN/AUcZ/VnvoRFYL1AqFRqDla6inA2FfgnHmUkJzw6c\nlnXs2/+6YJ5w5OdaSKrrlSyU1+17Huy0LOfqDSiBCAw1QM9BqbI5efPIc+WBiogidlWRaUyOS+gy\n3SLzGagYuR87K22J+1+Qdkr+PToj922lIX0VwrWMhuiKwx1ge0p6fh0oUh0yPkcqDva/INUc+0/I\n+guUyXpScEE7MXINRZNllR+QeRSOTKezvqj8NJmGp4bpqSRmWqQaqGNKkDA2x1+MlOd49+r9c+vU\nAxQ9wFC47cQ7xntei62lPWVRlJH2BCMw4Fgb6ZcKISTEO9wg79suYCPQI3EcK4s6Ru59vFBDZRjl\n80h2Ps93vvMdtm/fTigU8u1TlyxZMup75cUXX6SjswtbDeOEJo+UJ8h3v6IiHMttpw5QdO+havnM\nmEOgGdiO4OLFi28oZbcJ29mJmIiJeCOFqqps3ryZx37UwuO/KTBveoHo+IIC18RTe3SGUgEmT6lj\n4cKFr21Gi2JwcJAvfelLtLU0IJwMNRUOUyY5lMYkNDdzikMsLPj1QZ3DpzUsRyEQSnDXXXdx8803\nv+Smvz179tDT3casmjR/vnWQdNrdDa3LhbI9zwdo75HKeZ+6R8J9ALEwDGfk15rtqGTzgmxejjXW\nL82gKPCz+gRP7U2wZlGOyCi4bySEgHROZcX8LM8ejNEzYHDygsqqRSP9pZ1HpWrZ1jVpqkrtay8C\nmKac9NY14asy1lVbrF6YZdfxKAoKsbDbzS1a6LlwNcCxcyHCIcGD9/QypdqivUf2O8pLxqTljokM\nXSGgSyU/05JQmsLomytLONAu4cvx4lSDBP6L52s2b95MR0cHO7b/iod+DFvXmmxa6RA2QFWkll/B\nlKCfoQssW8G2wRJSIc/rdpkWWJaKpkFAF6iqPDedU8mbKvtPhQkHBRUlNomoTVN7gM2r0teMRU0L\n8qb8UNcEBUth2mSTgWGNoKvGN7vOxHKHVJGQQzqr8ssjMfY8H2UwLSvC1/IWEAwkmFxhYVnwwsUQ\nW1fLdKdPMkHAqYYQd9wyzKfe18t3ny6jq1+jo08jldE4cSHMnLo8pqVwpjHEkTNh1i7OMn9agQvN\nAb61rYy/uat/XFVO25Fl50Vbl2Db7hCmE2TadG/SvEi5zQWuhNsvraydz9Xze0EIkoMdZJL9ROIV\n/jlSSU+QTfWTGupC04NU1M5nFNznqf8pysiGQseh8cV6ultfBCAcLaOydgGJiqloegDHsUgNdtLT\ndo5ceoDmi/txbAtND1AzcwXTF2xw+7US7nNsCwVchUCNqrrFxEomc+7YNrKpftqbnmf+8reDqqJq\nOpF4BYvW3olhhF01QfMa8M6LOUtv49KJXzDc10r75SNE4lUoqoSIhXAwW3owO/rk/IB80PAbh67g\npLJkTl4mvHCaV8juXIJbRo7j2++KvIlAuIp63uEqRm0FZdOqyZy4ROrIeVKHz6OVlxCcUimBMQHC\n7WcLS0KjiiHhPrOrn+TeF0BRMGorsQeSDDy1n/CiGUSWzEQvixep+IGTzpF9sYnsmSs4uQJ6RQkl\nt61BDQX8Z2VkD5O8F2G7trku2CYsS4J7vl0xqEEDFAVhWgjLRtU1uSBtjYB/Tk7OaagBHUVz537s\nkXrxF7HGeafmr3aSPtVIoWVkIU3YDooubakHjp2j0DdE6fL5RKZefxOVY9mYyTSKrjLcP8w//uM/\nEolEiEajrFmzhs2bN49alDFNk6eeekouVlkxknteQA0HCdZVEZxZgx4J4pj2SJk4o9+v4YXTsfuH\n5cYvTeXw4cPccsst183fH3PU1dXx/ve/n/e///3+AucE0DcREzERf2xRV1fH/PnzuXDhAo899hj3\n33//KwKr8/k8jz76KCCFJMbCGa9lvPjii3zlK19haGgIIQTRaJRIJIKu6xiGQVlZGblcjubmZpLJ\nJKqqMnPmTO666y6WLFnykpD6z3/+c3K5HEuWLGHSpEkMDw/74FEgEODo0aOkUik6OztpbW0F8OEW\nT5HbUyED+V198eJFQqEQgUCA5557jrvvvvu6FuSWZZFOp9m6dSunT5/m7NmzZDIZHwbM5/Ps27eP\nbDY7Sl1rbHiAWrHwzODgoA+EgRSEKVbSUhSF3bt3MzAwQHl5OTfffLNv3+upgnnHFZ/n2RYXg3XF\nUWyXOt7fQYJMmqb5Sq6KovCxj32ML3zhC746XTQa9YEjLy/jQX9jr6+6IiBjFb40TUPTNCorK9E0\njXA47Fuajgf4FQNpXhnYtu0r7nn2xcXHB4NBSktLxx2HeypnnuLf5cuXqa2Vgh9Tp07l9OnTNDY2\nsnnzZqqqqti7dy8dHR0+0NrQ0ODDWTNnzqS3t9e3h62qqmLKlCm0tbVdk65378X5rKqqory8nFAo\nxNy5c0cpD3r35LUDVVWZNm0a7e3tmKZJQ0MDS5YsGQUFesBnc3Mztm1TUVFBMBgcVT4ebFacl3w+\nz6lTp/y2XVJSQmVlpQ+keXbYfX19dHV10dnZ6adZU1NDJBLxFfpM0/T7Xh60FovFMAyDvr4+hoaG\nOHHiBBs3bvTvKxaLUVkp3e4syxoF942N6upqurq66O7upre311ddNAwD0zTZvn07e/fuRdM0//nx\n2lChUGDfvn2sXbvWnwfwgFmv3C3LIhQKkclkSKfT6Lo+ql0ahsGGDRvYtGkTX/rSl7h06RLf/va3\nefDBB317cq8evHbqqSXqus4zzzzDkSNHfBW7hoYG/umf/olbb72V9evX+8qjXhk0Nzfzs5/9jP37\n9yOE4NZbb+Ud73iHr1habJHtgaxeGXrvO+/5Kn5Wo9EoQghfBdArew/u9ABd7z3stZdi8HAsLOpF\noVBg165d7Ny5k87OTv9zD160bZv//M//5M1vfjO33XbbSwpqDQwMoCgKmUyGgYEBPvKRj/jA54YN\nG9iwYQOJRMI/vrGxkZMnTyKEoKGhgYcffpiysjLWrFnDrFmzMAyDfD7vA9LFkHRFRQVLlizxz796\n9apvd/5GC03TWL58OcuX///svXeUXWd97/3Ze599+pneNJqirpFkSVaxZcuSq0yITWIgwA3kJnAT\nUhzewAok5GVx1125K5fkhkUNxhAM5IaEFsCYZmM1W82yqqWRNUUaTdXMaHo5fbfn/ePZe59zZsbO\nLcG5eTO/tbQ0c2aXp+3nPM9+Ps/3uwMotMXldaHl+N+JXyjgt2bNGtauXUtvb6//hfbkk0+ya9cu\n34/9fyds2+ZjH/sYk5OTJZ3UgQMHXvOcjo6Okt+XZR2XozheUyntnwk7O01u+DSxUICHH374DeuI\nixX2MgYEq7eg5OcxZ/swpq+jqAHUUBnBqvVEmvZizQ+RG36JvGGhquqSMIGnBnjw4EFu3LiBLQKI\n2h3YWgJMG0uxMQxDnjd+dTFcp6jSMtbOuy92hVTe8gZ9wQqpXjb+EiR7UcrbQFtqsisK1rLRFaDH\nEXa2xNrWSo3g5JMSRIo1lZ5LYeO27dgFiM07IrICAjGElULJjct7CP9U+cN8t/yx2J7WA+kWWrH6\nal+u4pxjymMX5s09T9hL7+B6LSXIpawebTWCEm1BhOvcRTMh7VvVYlhSlIJCr/WZJW2IUFSphpdY\nDyM/l39bUh2s6BoeQCZsCe2Ba9Hqwn1aUL6Inr8Gc90LbGPddBszEsJTQ/I6uYmCild8jQT+kn1S\npa72Hghfl9fLz0hYa/Kcaz1rSrArWCXbZPlGCW55tr6hhbsQi/PhgpH5qYIqW9kGd2GgSFlAofDC\nXdUK6niOKCjRISR8JZzCuZ56X2LtYmDSu57iwZhCQnbpoQKsF2lwQS+lcM1QpUxjdlSCs1ZSwlAe\nkAou2FmkVue13cRaqT5467hUnkv3Q/A22e5VHap3SBtiYRfUAxcUnX/9QFS2m4mXZT7jbruINoI5\nL5UXhQG2B8C5SoXedRxTAor1+2W6S5Qe3Xvocddy+ZbM96L2Z0oYrPFNBeXNsROyv4k2FfogWXEF\nO9j0YAHUS6yW6ckMSVi12JoYTYKIuXFI9UtwEUWCo7V7KFgOU7Sa5d0uALZbjqLIFtixKVHUVBTZ\nTvOu9XS4Rl7Lbx+qPF9R5fl+e1kCBlzYxoTwn0Fhpv30Cbe/sLJTpHsPoYYShGo2EazetGgCKITA\nmOokP9mJk08iUMnkba7dGJTKsNdu8PKZszSuaODAgQP+eOyZZ54hlUrjaBHEyGFpQx4sg8QaqeSq\nBiSALWx3cbfYTjmAUr4eZq6ghcowrDTHjx//NwX4ebFsO7scy7Ec/1bi/vvv58SJEwwPXeNT/wB/\n/B6DstcRvhcCfnZC48fHgih6gne/+91vmLJQLpfjM5/5DP29XaiKnH/cmlK4NeV9D0ol3qpyeGC3\nxWP3m3ztGYf+0RkOHz7M3XffveR1Z2ZmePrpp3nuuWcJanke2JVCwcJjSCzbJJvLc/DlGgSCdz40\n78N9IPc0hHTIGRRe5JoWAoeAJvjlu1IcvxhjbEbaqd6xqVQdTgiFvAGmpeAIyeYcuCPNdw6Vc/Sc\n5gN+M0m42KWiqg737SzQcgUhNHdhx5Fjk0DRsMO04Z7taU61RznfFeY/vnmOYLAY4oKjF2IA/NKe\nFCvrLP9zL43Fx8rhj0AoEAkpLuAnQbBFQ1+nUE4LQwgXWlTDJRaNiqLwnve8h1AoxM9++mMOnslx\n8HSeja0aK2vymBbMpTR6hnRqKmyEVw9BgWVJC2EP8hNItsr2xqbAtcEglgWOUNh/e5p3PDjPJ/6H\nfJnd1lpaP3lTIetaGUeCMn+GBaapMOeCe/VVFrbLb8UiDh19IZ78QRU5Q563ssZi27oc0Yggbyhc\nGwxybShI33CQnKnyyrWwX65rmwya6iz6R3Xar4fZf3uGv/7AGJd7whw9H+N8Z5hUVuXS9QihoLR1\nfeoZORd436Oz/Le/q+WVa2G++P0qfu+tM4SL6tm2IZVTEUhhuJ4hna/+OMFsOkJ57XqqV2xg4TxA\nCIHjNjJF1dDcOa+iaghHMDZ4mdVbHsC2TIRj47hq5qm5cRCCyrrVaAs2+Nm2tyCp+/fovXqU8Zuv\noqoB1tz2EDWNbVhWDiEcFOS7xWi8mrqmLSRnRui++FOpXFDTQmubnEvbloHjyMVVBdACIWmBilyY\nC0YSbLj9l7l65vvMjN0gPT/J+NCraFqQ1rZ70bQglpkrAvsUVE3z240QjtzYB6zadB/tp77FzHgf\nmfQMqqqxevsB0nPjjPVdwrSKVL0VBSUeBsNd+M3lSZ/pQI0EiWxsoZjE9GZ/enU5+Z5hjMExwutX\nFqA3VQFVlQpwpk14y2rsVJZc9xBzPz9D/O7biLS1lEwjFT0gFf1sh2znIKlTVxCWTXhjC4n7t5M6\neYXs1X6yV3rJXulFX1GNVhZD2DZOJo85Minnv6pCsLmOsod3owZdBfKSOZEEf+W9JODnwXiKriMM\nEyWk++WpKAqB6jKsyTnyfaNENjRLqBAh7YZ90E9F1QOo0TAIsGaShcVWv1yK3v8IQer0VdKXetzz\nNULrVxJcWSvrMG9hjU2T7xsl3TdCum+E6ru2Unnn5pLvMyEEsxe7mTnfiZ3Ly3tGgliaRtLKk5rN\n8/Mjhzj6wgtsWL+e//Af/gPXrl3jueee4+bIMGga1tQc1pS0zM529KNGw0Q2tRLdugY1EsIYmiDX\ncxM7nQPbQQnqBKoSENQhZ2JYFn19ff9mAb/iWF7EWo7lWI7/m+Nd73oXf/VXf8Xx48cJh8P8+q//\n+uv2W5lMhi9+8Yv09vZSXV3NL//yL79hae3r6+Pzn/8809PTqKrqq/R5VpaeElR5eTnNzc3ouk5n\nZycDAwOcP3/+NVWQrl27xne+8x0uXrxINBpl7dq1PoDk2UPeunWLoaEhcrmcD/d54SnZCSF8KMYD\nUAKBADdv3qS8vJxXXnmFt73tbYsAP9uW61Ae5LFixQra2tq4fv06p06d8h1FTp8+zdzcnG9/6sVC\nwMX7vRhmNE2Tubk5YrEYp06dYt26dSXwkmmanD17Ftu22bFjhw/SFCsNQwH6Kgb2ivO/1Pz49ebM\nlmWRy+WorKzknnvu8T+PRqN89KMf5Qtf+IJvRVoMTiqKQllZWUnePdUyT8HQOxbwQSvv53g87rp/\nSYW3YDDoq50V52MhkBQMBv10eM+JV2++qrzjUF1dTWVlpQ+cTU1N+Yq+uq5TW1vr2w/bts3JkyfZ\nv38/Qgjuu+8+nnvuOa5du8Y999zDXXfdxY4dO2hvb+f8+fO+rawHP4VCIXbu3Mkrr7xCd3c3mzZt\nYtOmTWiaxuDgYEl5e2CjV4dNTU2sXr2aWCzG3XffTSgUWhKW9J6HQCDgw3qe6uPo6Cj19fV+uXvH\nTk5OIoQoUcTzyqn4+fDK8PLly74t87p164hGoyUuhZ7iYmNjIxMTE77qXk1NDZFIxH/uiuFBD471\nYL9IJEJ5eTnpdJqjR49SW1vL5OQkmqb5qnAerOuVQXF/6LUPVVV9NcUbN24wNzdHNBrld37nd/jx\nj3/M8PBwibqnZw2eTqd9e+8vf/nLfOhDH6KlpWXJTSCNjY309PTQ3t7Ozp07/euFQqES0PX3f//3\n+exnP8vIyAh//dd/zfve9z7a2tp88NYD+3RdZ3Z2lp/85CccPXoUgMcff5z169fz2c9+loGBAb79\n7W/zgx/8gNtuu41YLEYul2N4eJihoSG/3fzar/0ajz76qA8NeuVU3J940LNnme59ls1mfUVCRVFo\nbm5GURS6urpIpVLE43G//L1n0suzV4aA3wcXt7fiMpyfn+fzn/88N27cAKCqqor9+/fT0NDgQ7VX\nrlyhp6eHw4cPc+rUKT74wQ8u2sCbyWT4xje+wdmzZ3Ech3A47APblmUxPj7O97//fX74wx+yd+9e\nDhw4wIsvvsjBgwexLItQKERHR4dfTs8//zytra089NBD3HPPPWiaxksvvcTVq1dJp9M+iLpy5Uo6\nOjp8wHJgYODfJOC3MJY3Oy3H/0n8QgE/gMcee4zPfOYzfueWy+V4//vfz1/8xV/wlre85X/5ehMT\nE3z84x/nxIkTJV+C5eXlr/uS48UXXwQKg503UmltOf5txFJKacW2tMUhhIM5N0Bu+DQRXXD33Xe9\noXZUhw8f5vTpM6SzBqoeJT9+ZbEZTnYac7bfhzaiq3+JTN/zS1orFqsBprM5uQgSjEuFO0UqQyC9\nAV4vAAAgAElEQVQchGNhp0bBkGpkSglch6t0JV+ae4NI0zRwHCGhlGizBGesNCIzghJbWQTzuDBL\nMVCkBVHK1i+ytjWmr8sjytaXwizCkQyeqxBV5DVUms74aqnIN38DEWkoAoAUqTJnemprRflbSl3L\nuy1SnULRdN9OVDi2byFUfJ6yJNS4WAnScRxeffXVEsWn8vIEyvw8ppUlO/uqu0plyTLIjkrVMh9C\nVOTfFsFZRQCSokqgzgfyQvLnYqvQknMXAGNKAERe1pt3jq9Gpruw2kuLbWOj9VJ5zHEtW5M9rkWq\nI6Ewx3IBugZ5DysNmVEJBZVtkBBidlSCcFYaLFdN0DEKCmzxtRLISg8tUGVTl8iHCqkBmLkk7x1r\ndm2AF7QbX3HNLTtPPU1RJbyY6pNg26LKdcHGyALlWF8JUS204+T1AtznwXq+dS0FGNEDCUO1oEVk\nWVftkMqFwip9jny4r6gt6OVQdTtMnYdkLyIQL7R730Lbi3/GYjlcJxUkrbRU5wSp5KiGZNnbeQnK\nKpqrMhiQq7v5CZkkOyMhRa+OPABQUeQ9E+ulsmKyRz673kRJC/r9kg9UVrubBzIjEiYOxKSVdLjW\nbd+UtjmQ96y9W6Zv/ppr+ZuUioBcduvKkXl1XKixaoercLmgroulWHy42P0w6+6MCsRc5Uk3f941\nfKC1Byo2Fe7p2zQjYTg1gNBdZbvMLWmFXqQYWdrv2DBxGpHynsGoTHe4ppAvYwYxfx07nyQ7fBYr\nPU60eb9/HeHYZIZOSNVWkGB1xRpEqBotFCEcCmClRklPdXOj7ybD3/hHXnjhBQzDoLevH0coLths\nyvONOUgNoehxKN8gn2lUlPyYhETNpNsHBNx+QlqV2bZYUrp+OZZjOZZjOf7lIhwO8+EPf5i/+qu/\nom90kI8/qfDgHTb37bSoKjh+YNlwoVPl8JkA14d0CJTxvvf99htqk/HTn/6Uzo5XEY5JLCIV6u7Y\nnKOlXlrpzqdVznWEGZ8J8IMjAQ69HODxdxp86+cwdGuAp59+mve+970l1xweHubTn/4047eGcGyD\nykqLu7dmCbk8kiPANKG9R2diRqOqzGb7uhwLBwRBF/CzLZuy8nKy2QyGkSeog6Yp3L8rzT8dLufw\n2RgbWvLSkREPPlP8qUlAk4qAe7fl+M6hcvqGC/OenkEVx4Gtaw0qEwVAPu8OyQMBF5byNkAVpU8I\nqeLXVGcyMhFgcExjXVNh7Dczr3KhK4KiwL07CjvHE1F5n/GZBS8hi6dyQsJ1woG8CeFQ4d5CFM6N\nL+F21tmnMnQrQKKymt27dzM3N8fx48c5efKkVAGwLFA0VC2BYQR5tS/IK9fyWJZU7jt+Kcbb7p9H\nD0jbXVUFQqJ0rweQzioYltwmNZPS6OgPYzsK0YjDiUtRpuY0ZpOyrHVdYDsSWDRMxbdADgcFIReW\ny6JgOR40KFXxUOQxl69LuM4RsH1dnl++O8nGVsMXf/aG50NjAZ5/Oc6xV2Kksir/dDjBOx9Koiiw\nqy1L90CQI+fi7NueQQvAzo05dm7MMZtU+cqPKjndHkXXBPfuSHPqcpQvPV3J1rV5Htmb5GenElzs\nDvPhzzWwb3uG+3akqCxzMC2Z7q7+ECcvx7h6I0TWCJCoWc3qzffLCnPnKCULFEVzZ8eF8wJ6GOHY\njA1eobymhUTFCvcIBRQkKAfoodKKF44tx/LgW9tOjXYzPnQFVQ2w6c63U1a10r+WEKDpIRzb9OHB\nWHk9WiAIQlDfsh3TyKAA+VyKXHoWx7EJBiOEYhVEYpWAwLEthGMTilVQWb+WqdFrDHSfxMhniCSq\nSVSuwLLyrnC5gqYF/fSVZkBgOxbBcJyKmlambl3HnLlFOFZGddMGapo3oWgat3ovImIBqv/jw64S\nniDfO8LcwfNI1Tqb5LHLWBNzRLauJlAl1Q6EW/bhtmZSL18l338LayaFFo/49rdqKCgBOtMCRxC7\ncxMIyHUPkTrZTvpcJ+F1K9EbqlGjQRBgDE+S6xyQingCQusaie+VStxl924nvHkVuav95K4NYY5O\nYY5MSWtfITdjapUJyt90B8EmV9VhaSEPfNoWwBHk+6QlWaA8JhVD8xLy8965RTavInn8Mtmr/YTX\nrXQBP/DsjAHUoKyHYGMNaiSIPZPEHJ1Cb6jy7Xx9pUAhSJ68QuZKL6gq8TvbCG9uRQ0GwXFw8jL/\nge1rcbJ5Mlf6SJ3vYuL4Reau9BCur0aLh4mva2a+s49kZz9CgF5TRuS21ehNdaiaKhdKUznmr/SQ\n7OynvbODSx/7GIGgjikcAjXlhNY3Eagqc+2NM+S6h7Cm50md7yJ96TpaNIydXCxtmu8fxcnLjbO2\nq5KxHMuxHMuxHL/YWLt2LY8//jhPPvkkBw8epLu7mwMHDrBnz54SBbj5+XmOHz/O0aNHmZ6eJpFI\n8OEPf7hEtegXGUIIvvSlLzExMYFt29i2TS6XY3Jy0le2ikQiVFdXk8vlmJmZobq6mk2bNtHR0cHx\n48e588472bZtW8l1T548yde//nVSqRSaprFq1Sqqqqp8qMeD73p6esjn80xOTpZAR14UQ24e+OMB\nf/l8nvn5eeLxOCdPnmTv3r0ltrrFSmGhUIhoNMquXbu4fv06vb29/j2uXbtWAsx44eX/9dQJPQvh\nuro6bty4sUiZ7OLFi6TTaSorK30wDfCta4tVGovHyp66lnePhZCfrus+JLUU6OfZGu/Zs4dEIsHg\n4CBHjhzh4sWLvq2oB5Vls1lyuZyvAhWLxSgvL2d+fp5oNOqDk57Vr5cWx3F8uE5RFFauXEkoFCIQ\nCKCqKqlUym/rxep1xWXkwX2epbEHFRWf45VHXV0dZWVlWJbF0NAQN2/eXGRR7NnMrlq1isrKSi5c\nuMCNGzdYs2YNdXV1vu3upUuXePOb30w4HObOO+9k9+7djIyM8M1vfpPp6WlfpTIajbJnzx5GR0cZ\nGhqiubmZjRs30tTUxM2bN321Ow+CraurY+XKlcRiMSKRCNu2baOxsdE/ZqEyYjH05+W9qqqK6elp\nzpw5w3333eeXYbHqn9eGisMDIj11RZBtO51OE41G2bJlC4FAoOTesViMbDbr16Gn6qeqqg+OeeCg\nZVk+7FkMpObzeRzHIR6Pk06n6e/v50c/+hG2bZNIJFAUxU+zB38ubLMeKGrbNtFolLm5OcbHx9F1\nnc2bN7NixQre+9738o1vfIOxsTH279/Pf/pP/8mvpy9+8YucO3cOkADkpz71Kd7ylrewf//+RUqP\n+/bto6uri8OHD/v9llc38Xgc0zTJ5/OEw2H+8A//kL/9279leHiYT37yk6xYsYK77rqLFStWUFFR\nQTKZ5MyZM1y4cAHbtlFVlXe/+93s3LmTQCDAf/kv/4XLly9z5MgRrl69ysWLF32FSdu2cRyHvXv3\n8lu/9Vs0NDQsaXtd/Dzouk4ul8MwDC5dugRAQ0ODD+95z2h1dTVbt26lvb2d48ePc+DAAUzTRFEU\nTNPEtm3ffh1g9+7dHDt2jJMnT/L2t7/d7zs9e2CQUN4nP/lJbt68SVVVFe95z3vYvn07mqb5tria\npvHYY48xODjI9773PV555RX+/M//nLa2Nurq6mhsbGTbtm187WtfY2RkBFVV2bVrFw888AArVqzw\nFR87Ozs5cuQIly9f5oUXXuC5557z2+a2bdu48847qaiowHEcBgcHOXHiBAMDA3z1q1/l+9//PqZp\nLurPvTKcn5/363qpY5ZjOf69xS8c8Hvf+97HD37wA5+MVxSFbDbLn/7pn/Kd73yH97znPRw4cGDR\nl9rC6O3t5ZlnnuFb3/oW6XS65ItIURT+5E/+xO8EF0YymfSBQO9LcOfOnf+yGV2Of/OxlFJabjRC\nsHojgXgjiirhLSs1gjHVjWpniYUC3H33Xfze7/3eG6re9/zzz5NKpxGKhm1mJXBRtr4ATgkTMmMl\n0IZesYpQ451kh1/i0KFDPPTQQ76sr6cGmDUVlHAtZKckdOFBbUgQRVEDkBmS728T61hsuiQBFOHI\nwUYsFmU+aeN4sJuiSlWs6cuQ6kdE6pZ4GewOjrWgvP8S1rZOfl7+EC1VmBOOtN7x+xM/cYKSZa1w\nLcyBMFML7i+khaybP7mg4a2wJSA/K+GgkLs7wJNWcGxEse0ogG2AEiqAWy7cowYTCzNcogR54MAB\nDh8+zKFDhxi9NUbetLFt4S6wKKgqBFRBOKjKQbgABQeR7JMgVCBS2DnPgsU3IaTSn0yITFt6oLB4\n4wFRHtzlGPh2qh7MJSunSC1QlZ97amSOAbigoQf3LbSNLY5QNZS3SeW0ibMS9rp1FFYcKJS9MGH6\nooTdQpUyf9FGaHmrVFtL9sq8husl1OcpsMXXQDgPuTH3syjEVku4SQ24K49TBatbYUnL1+pdhXQW\nT1qEKIVGffU0Fy6cuigBu3A1vg0yvAYwKYqU6IrU++aK1SM9dUylcI6qg1ALAF9uTNapHi+Aeblx\nWa9mGrBln6DHJfQYrinAcNFGmItK0G3OBfNKbJmVgsVySbhgmhYowJKx1TB7BUwDwlWu+qNSUO1E\nyDoVpiybVD9MzkgIMFQlYT+v3hLr5PmqLsvOmJb3MFPSije6sigpAQkfejbCigrVeyDUK0E5Mwmz\n7W59LGh7gZiERuNr3HO1UoA01SvvaWcllOb1B4ouz1OKVmVfKzygVjjSGhchz0UULJXRQBFF1tJp\nCfqFvf7NvYcL98l6WishxmQPVLS59/FgUa1wbw/uU/WCoqGi+JbFihaE2Ap5jdQgzuRZjOlrmLN9\nqOEqtFAZjpnBSo/LZ772zoJqqpVHBDQC0QSBaA2h2i2Ys4Okbp7kame37BkCZYjy1fK+qvvdlB2H\n+euy/524gDJ/HRwHYRUAgqICBMfEyU2Doi4vaC3HcizHcrwBUV1dzX/+z/+ZJ554gp7rXfzoWI6f\nHDdY02QTCwssG4bGVObTOihhIrFyfuf972f37t1vWBrz+TxPP/00wjGpKrd57N4k+2/PUhYrfan6\naw8k6egL8szxBD1DQT77zSC//ZjJl7+f5dSpU7zzne/0d7BPTk7yyU/+NXPTw9SU55kGbt+QJxou\nXE8DdA36R0MowD3bMtLmVZTu5tdU0FSB7Qgcp7A4pajyuHt3ZPmnI+VcGwxhO+oiAA1AQRANC1QV\n4hGZr2xewmOaCumcvF9FonghBQxTnh0KlS4mLPW6uSJuMzIRYHpeY3RKkDMUwkHBtUEd24bt6/NU\nlTl++tY2GURCgsFbOv2jOqtWyLGsZUHeVD3xLH+fQ85Q0FSBHgAUhRvDOsMTOrEIrG0qTdHIhMIX\nv6eDFmPfvn18/etf59Spk9hWFhUDVXHk1AsFRwmgEkJoEXQlhOOkMS2bM1cjPLI3SUXcLlEIXDic\ntx1p5xuPOPz85TiqAvfvSqNrggtdETr6wiQzKpGQw+SMhq4Jf1yvqRDSBXqgaDe+LsibCuGQw1xK\nYzoZIBE1GZvS+NsfSrjvkbtTvPOh+ZK0FA8jm+st3vvoLM31Jt/8eQU/PFbOmpUmu9pyJDMKtqMw\ncEvnb5+p4g/eNi3LFKhIOHzoXVNc6ZEN9U17UtSU2/z0VIIrPSGu9ISIRRyEozIxq/KTkwl+fjpO\nOOQQ0CBvyGvbDqQyGqFYFRt2PoqChPICwYi/eW6hWgkI0nNy80VAD5HPpbDyaa5f+jkbbn+EitpW\nv/ADulyAEEX2o45jY5tybqoFgniFPNr3CgCtm+714b6F4dnf2pbJ9HgvtmUQLaslVl7P3OQgEzev\nMjc5JDfiFRV6vGIFtSs3UVm7yn0/oVDfso3pW9eZHe9DUTXqWzzFZYGiaASCYfdd4hIJURQ0TUd1\nbX+nx3qxrRw1zZtRNbmA1rzpHuYnBkmlxsnfGCHYXAsoWHMZlJCO3lhDsLGazMXrZDv6yXb0ozfW\noNdXSvW7vEV+4BaOYaGoCtnOfuJ3bHL3FAmpMKiqKKEgihAIxyG+fyt6YzXZV/sxx2fIXOoB5Ya0\n/i3uqyoTRLesIrhmBTg2jqmAphGoTJC4dzuxPZsxRyYxbo6TuXQDNRrCmU8jTBs17m4y81HDpUIg\n8tLaVwhB9mo/wrKJbFkl/2o7iJyBEtBQAgFC65tIvXwVc3SKXN8owfoqOe12qVktHPTV+dSQTmhD\nE9n2XjKv9lHmQpGqXpi75q4NkbnSi6KplD9ylwQSvVcMluf2oLh2wSrhLatQYmGSL75CfmIGcy6F\nEtCYOd+FsG2UoE7Fm+8gvHalXBw3TIQpLaZD1eXU3r+LyrtuY+TnL2HcGMHM5ah+aDfq6gYUXUMJ\n6lJ1EYjevg5jcJzZZ1/GSecQhoWWiBLZ3IpeWwEBDZEzyPWOkL8xgjAtrLyxvOFpOZZjOZbjDYpd\nu3bxkY98hC996UsMDAzwta99jW9/+9u0trYSCoXIZDLSAckFe1auXMmHPvQh6urq3rA0nj9/3gfc\nUqkUN2/eZHp6ehGo1t/fT01NDc3NzTiOg2VZNDU1MTIywpEjR0oAv7Nnz/LUU08hhKCmpobZ2VnW\nrFlTAsp5cNvk5CSmaTIxMbGkwpmmaT6QAgUgyltD84DDGzducNdddy0JyHigFuCDk8XvBtPptK/a\n5kWxnaUH4S2Es4qPFUKQzWZJJpOkUimEEITDYTo7O3Ech9WrV5ec09jYSHd3N4lEgqmpKf+6HmS5\n8B5eWrw0eHahS61lp1Ip0uk08XiczZs381//63+lu7t70XUVRfFhK099zctLU1MT169fX9L2uFjR\nsNiGtbGxkUQiwUMPPURfXx/9/f2+Be1CJTKvXjy1eu/34rXR4vZSUVFBWVkZpmnS3t7O9PT0onR5\nMTk5yczMDJs3b6ahoYFPfepT/OVf/iVlZWUYhoFhGFy4cIH6+nrf4lJVVZqamnj00Ud9m+zu7m5a\nW1uprKykubkZz2bYU6tLJBJs3LjRB1O9svRsYdevX09bWxu2bfv1sbAMi9uU1w50XccwDKanpzl5\n8iT33XcfsVjMP9ZT6ypurx4wBoU1zVwux/j4OIqisHHjRr88F4KiwWAQwzDI5/O+JbJnNe21pWIr\nae//eDxOOBwueT486O3KlStYlkVFRUVJ+bye0pinXug9r8lkEsuy/HdEwWCQt7/97Tz55JOcOXOG\nt73tbb4t7MzMDPF4nF/91V+lt7eXzs5Ovvvd7/L000+za9cu6urqUFWVmZkZzp4964OI169f9+2T\nPcgxGAz6iqGRSIQ//dM/5fDhw5w8eZKBgQH6+/v9fqG4XW/dupU3velNNDc3k0qliMWkm8Htt9/O\njh07GBsbo7+/n+eff57u7m5WrFjhWzInEolFz8fCsG3b77cmJye5fPmyr0zpgZa2bfvpf/DBB2lv\nb+fQoUPcfvvtfl/hgYiexTLAxo0baWxsZHR0lHPnzvnCVsXP/9e+9jVu3rxJQ0MDf/Znf+YrMxbb\nb3ttt7Kykve9731EIhFOnjxJe3u7D3v+4z/+I4qi0NTUxMc+9jHfQnxubs7v57Zt28a2bdsYGBjg\n85//PDdv3kTXdT7ykY/4ttEefLh3717e/va38+yzz/IP//AP5HI5QqEQ69atY9++fb499OTkJMeO\nHaO3t5d8Pk8ymWR2dvZ1y3w5luPfQ/zCAb9gMMgnPvEJfvu3f9sn0b3O88KFC1y4cAFd11m3bh3r\n16+nvLycWCyGaZqkUilu3bpFR0cHExMTAEsOFvfv38873vGO10zDt7/9bQzD8M+pqqpatklbjiVD\n13Uef/xxNmzYwKFDhxgZvUV+6jLZ8Us+YKVpCjFdo7GliYcfftgH5d6oaG9vp79/QL5L1cIF4GIp\ncKqiDdI3ERNnMWf7AYGthhkZvcXVq1fZunUrhw8f5uWXz5I1FWJr3kxm6KQ8P7qUPSsFm9VIfWFR\novhtrqJKJsN7eV8MRIGrytaOJnJowaC76CXfM6uqhmWZEmgrVoKDEmtbb5e/r6AGroqcQAtoBNwV\nD03VsBTX9rG4fNSArE8rLZXDzJQEiZQAGLMS9gkvmJAn1khYLdkj7V8VTUJWjsXSS2YCYeVBlQNG\n5nskfFi1vnDEAiXIPXvupKuri5dOv0w2byO0KErZegjXIRQNRdjYuXGM+V4UO4OmBlAUV3bZSkvY\nK7Fm6XoTAl/5zVNkSw1KC9VgpQTbUn3yOo4hyyszLCGoQsG5Sm5FXx2qJtXYAlHIT0tQK1K3tBLd\na4WiSmirfr+0VvUU1rSQq+QVlIDXrSNQswdiK2VaFE0qr+XGJbBU1ibbZbJX5mP2SiHfwpbHmPMs\ngr2EC9vpZVB9p9uejAWWx8hGWqzQlh1zr20CiqtEdxyqdkkVQCUgP1+o/rhIQdCdIGVvyedroXpk\n8eqfY8rjtbC8TtqVlY+vldBcskfW6cIwZmR9FENtiiphupl22e7BtVjGTXdwcb+yqO40udIZrpPn\n4BSpH4qCaqeZlHBeuFZec/6aLJea3bJPSPUW6m3mMswsupF8RqdfkRBcsFwuEHpjAa8cFSRzWrEJ\nwg0wehBsE7BkOoLlsq1Gm121Rbedp/tdO2Fb1psHREYaYK5TpimyUoKodkY+K/HVlCjw+VXlqRza\nhTrPjIKVRhGWuxDnLhQ7BiUKiWXrC9bSdftlekHa1RbZmSnRRkTAhTPTQz4MqKhFz+b8tQLct+LB\nUuvmYiVKx5J9argO6vYjxk8grDQiM4GdnXJhZUVaUMeaC2Az/n/+tcxgHaJuH2LsBI5joFRsQMTW\nSLtuD3oN1UioNzUIY8cRuQnZ1gJxmf9IMag+CvPXwUrjOJb/8rB4l+xyLMdyLMdy/MtHRUUFH//4\nx+nu7ubo0aOcP3+OnmHDnQ8BaKxsaeHBBx9k7969r7nR7hcVTzzxBPlcipoKi//3t6ZZ3bhYYRuk\ncNRtaw3aVk3x1DMVnLka4VvP6axtsrkxkuSll17ybeW//OUvMzczSltrji1rbX5wJEAsvPSL2nRW\nRVEENRUFSyQpVFYYFHhDlBLFBvdyiaggEnTIGRrBUBnhoOODJpqmksvlyOdzZPNS6c6zB1ZVKQAM\nhf+doiTmDBDCtWLSCvMhULAsgQhR9B2uMJfSyORUnvx+NYrqvmdBqgjmTYVAoHSOEwoK9t+e4fkz\nMY6ej/HeR2fJ5lU/fQqgaaAqAtNWcBwJIoaDgqDucORcFFC4d6ftA2q2La2G/8dPgqTzcdZt2MzR\no0eZnb5FKGixfW2efbenWdtoEAhIi9zOvhCn2qNcHwohRBg9GCGXTTOX0vj7n1Xwkd+YWmQB7I1Z\nPBU+TYX262EOnpGLNY/ule3pV++dp70nzPeOlJMzFLoGQjTUyE1ksbBTYnVcXC6GqdDaYDI8rnOx\nK8y6lQbPnU5gWLB3a3Yx3LdEmJbCntuyJDMqzxwr45njZVSX25xqjxGL2ISDcKErzCf/sYZfe2Ce\njS1SCTAYhBXVFmMzAeYzKg/sTnPH5gxnrkY5dTnK1Jws7JAu02mYKoalENRlO62rMGmosbjYnSBe\n3UQwFJX2traFZebQg9FSpQZ/Mcvh1mA7jm2RzU9L0ExRyGfn6brwI6rq19HQup2y6mb0oJxTZpKT\nCMfGtk0f9lM1HdVVuU/N3iI1d4uAHqK2afOCOpSVaFsGIFDVAAE9iJlLoSgKicpGus4+TSY1JZUc\nVJVERQMBPYRtW6TnxknNjpKcGUEPRlm37U3EK+r9Y3JmDk3ViMQlVKYoKpoeBl4D7isKRVGJVzS4\n5SSoqGktDLcVhfrV20m3HyF7tV8Cfo5DrmtQpnHvFrREjGBTLbmuIfK9I5gjk9IK1888aPEITjZP\nrnOQQGUZ4XUrPWJVKtZ5spCqgiI0Im2tBFfWMv29F7GTabAFhHRCLXVoZVGCq1YQqC1Hi4QwxqbJ\nvtqHMTSOMOR8RQnp6CuqiWxZjZXMoOga8V0byPffwrg5Qa6jn+jt61E0Vd7fsxYWcnOisGwXopMF\nYY5NY0/NIQyL1IVuIuksodWNqCEdYVo4hoU9OYsS0rHnMySPvkL5m+4gUFMmVW5CQQkoUijX8IYW\nsu295K/fJNdYTWh1I4q7ACqEIP3KdQDi+7aWwH04TsEuWAE7W7AdC69tRGTzpM50oJXHCa9tJNs5\ngJ3OoQC5riFCLfUowYK9cHHzyJoGsf3bsHMG+cExZk62o/cNo4SD6HWVRNpaUCMhcBwyl67Ld1jl\nMeJ7NhFsXUEgHi6BMMPrmzAn58hc7iHXOUBXdzcnT55k3759r98ol2M5lmM5luP/ODZv3synP/1p\nzp49y5EjR+jr66Ozs7PkmO3bt/Pggw+ydevWN3R9yLIsnnzySQzDYGZmxofAlgrHcRgfH2d2dpbN\nm+X4yoNgLl26xMTEBLW1tUxNTfGVr3wFIQRvectb6OjoYHZ2dklQDOSmKw9OgQXzHgprwAvhF+84\nDyDzIJlia1lN03yFuXw+TygU8teWi98JLlXmnrJTcbo1TcOyLEzTLFEx885PpVL8+Z//eQn45tmb\n6rpekof6+nrKy8vJ5XLEYjGSyWSJJe1SFp0egKSqKpWVlQQCgRJozHEc5ufnSSaTRKNRdu/ezRe/\n+EUMw0DXdVasWMGKFSv8ebdhSOh/dHSUVCrlQ0uWZVFbW0s2m31NAKa4znRdp7m5mbKyMmpqarj/\n/vu56667mJ6epr29nRdeeMEHd7z/X0uoJxAI+HUaCAQIh8Nks1kqKytxHIeOjo7Xhfu88OxJg8Eg\noVCIF198kUgkQjKZpLq6GsuyeO655xgbG2PPnj1UVsr33dXV1b5dqKIo9PX1MTIyQm1tLdXV1YRC\nIT8PHjDntQVPHUzXdaqrq2lqaiIajZLJZHw4y4O+vPDajmEY3LhxA8MwGBgY8Mt4YmKCZ599lrVr\n17Jx40YSiYRvxZpOpykvL/ehTJDt1bvm6OgoQgg/T8XtxLt+Op32bVo9tUwvXWNjYyVtzh/gADQA\nACAASURBVIMxHcfxrann5+cJh8N++cXjcWZnZ/3zPKtkT7nvfyZUVSUUCpFMJuUcqL7ez191dTXr\n16/nxo0bnDx5kvvvv5/u7m4mJiaor6/nkUceIZ/P09HRwcmTJ+ns7OTll1/2r+1dp6GhgWQyyd//\n/d/zR3/0R9TV1flKoR5I66U/GAzyjne8g+bmZr7whS/4qpHl5eWsXbuWVatWsWvXLqqqqgiHw5w5\nc4Zjx44xODiIYRhS3bysjDvuuIO7776bkZERgsEgf/iHf8hf/uVf0tXVxY0bN2htbUXX9ZI69NQT\nPatxL/3Hjh3zlRO/+tWvsmfPHh/KsyyL+fl5XxV1dHSUp556it/93d8lGo0SCASIxWIl/Z6maezb\nt4/vfve7fOtb3+KP//iPqa2t9dv4rVu3fAbnwx/+sA/3gQRJvXRZluX3C5qm8Zu/+ZtMT0/T1dXF\nnj17EEJw/vx58vk809PTnD9/nkceeaRE3dIL27YpLy/nAx/4AP/9v/93Zmdn+cpXvkJjYyMVFRVs\n376dnTt3ous6U1NTHDp0iHg8zurVq3nrW9/Khg0bfLDbi/vvv58rV67wgx/8gJ6eHn74wx+yc+dO\nGhoWOKYtx3L8O4pfOOAHUib0C1/4An/0R3+0CPID+SXY0dGxaIDsxcLdCcWf7927lyeeeOI1722a\nJj/96U992hfgLW95y5Lyx8uxHCAHIh64d/Xq1RKL1EgkQl1dHffeey9btmx5QyduXnznO9/BtGwJ\nqzQ+JBXNXisUFeItoCcQI0cwZwcIJBrJ58c4fvw4W7Zs4dChQ2TzFuGme9EiVUvDc8XhWODbwOLb\n0xbdVH6+CP4TJechLGKxxd5M+XyeTCaLcAwUJbSkta0PsXgKasJxj5eDYe+W3i4W4VhSWdBTYEv2\ng5OX56cLL3N9iMixYOIklG92Fc0UqY6mxyQMmLkpf/dsU31Ap0g5S5gSLHQMRHoYxUqhBGMogRhW\nZnKREuSePXcyNDTEtes3cNQwovoOiKxAFAFWAiBeBrE1iOwoYvoVFCeLp3LF1AXQKyBc1CaK59Be\nelVNqhFOSvlryjdArEXCNcYMzFyRCmbJvoKim6q7wJoo1CXIzxRH2qCm+uU5ZZth7pr8e7ES3euF\nY0uYqep2CTfNdhTgqPhaWeZmEkaPyHIOVbpWo/USzLMnwJiUCmzx1a6K3aALLFqyPfvtxi4AnYEI\noMljI/UQCEsQ0FeEW/g16ebbNiSk5phuGQRknVtpaR080y4humiDVKlDyDINxFlaCZEl1CO9evMW\nV4tgRa/NWRnZ3nJjMs/gQnwunKYuYYU8c0XCmNU7C0CfsNz2695X1UsWFl4/FFluXkRXFf3JU+1s\nl+0jXFsKMsZbZb4S62R5eeqDXr2pARd4bIHMoGu9e0Ja5EYapXedXIFz8+GWUWZYtiOQ8GhuQkKR\nKx6W5SFslFQvYv56wUK5ODwgUo+DlZVNvnyDhFcnz8GUBxpWuFayRc8+rqWyV2/GHMy8IuE+RXGV\nCiOummSdC8laMo3JXjd9loRdq3eixFtcQK64yFVZXjOXS2BAgUARLiQw1y3LtuaOomfQKfSbuOB0\ncT8WrpHP7PhLEIggYqslzGhnYa4LxU67dsbeyyr3OkA2k5UTwUC5D46KiQsw1yPbk56Qz3J0hayz\nzE2ZdzUs6zPWujifehnEVyGyt2D6InPJFF/5yld4/PHH/1W+f5djOZZjOf49haIotLW10dbWxtzc\nHMPDw2SzWXRdp7Kykqampn+VOXU6nebMmTNEQzb/zztmXhPuK46ABr/71lmm5zWuD4VY3yJA5Hn5\n5Zc5cOAAvb299FzvJhbK8sF3G5xul9/rhvn6+fN4moXDY6AE7vHKyV5iT5CmaugLqLFwOIxpmli2\nTTormJiW86BErPDdm4jJG9yaDEi1vLxUzFNQShYBArrcSW87Asty0FTB9JzGE9+vpnswiK6Bqgrq\nKm1CQYecoTI2HUBV4NTlGKmMxh+8bZqKhBxfPLg7xfMvx3jpSpSt63JsaDFQFQm5BQPC3/vgOIKs\noWAYCrm8wuXrIU5fiWDasK7Jpqtf5dqAwovnA0wndVCjrFqznsuXL6OSo3WFwe89Nk1tpU2xmEck\nKNjZlmXnxiz9t4J87ceVjE9LxemcIXi1N8ynv1XN7711Rqa5qC5AQnSOA+c6InznUDlCKLz1/iRr\nVhqkMiqxsOBNezLUV9r8zT9VcfrVKA/uTsuxTl711fu8/Q6K5KmIhB32bctw7GKMl1+N8qY7U5zv\njKAq8Pb7/3m4TwiZNpBqgi9ciDEwqvPX36ghl1doazVQVXilO8yFzggXOiNEww47NmTZtj5PImYz\nPBHgxCsx3v2mOWIReHB3lgd257g1oZLOq6haiFgE6qscLEfBtBSiYQFOls98swLT1qioWw0oaIEQ\nQjgIx8GxTVdhT4YqpSjJZ+aZvnUdy8yjBUKomoaqBrDMLEY+zfjNq0yOdhOOVqAHI9iWwdzUEMmZ\nUSJxOTZVNb3k2uM3OwCobdqCVjT/dxzLt5sWCGzLwMZA1XQsy0A4DuNDVwAIRcpoaN1GXdOWEktg\n2zKZHO3mVv8lMslJui/+hLVbH6aibrUL8s3hKbYrSGU+WW8LH+6lQ9MCfqcwNz5AorbJP6165QYG\nO05ijE1jz2cwb00jDBO9vgq9rgoQ6FoFgbsSRHeuxxgal6pulo0SDBAoj6M31ZDrHiJ9povUqSvY\n82kiW1YVADsvmQKE42AMjZM8dhlhmIRaG7Dm0ohsnuiuDQTrK3EMC2tylvnz3ZhjC3ZXKQoib2L0\n38LoG8XJmaihAJFNrQRqKzBvTZO5dAOtPE5oVQPCtks7RCHfESmAqmmY0/MkX7wk4UEE1vgsqakk\n6XPdaIkoiqbi5AzsdFba8toOdjLD3PNnid+5icjm1hK4z39u8iZaIoo5PkPyeDvCEUQ2NKNoKsbI\nFNZ0EjUaJryhpdAP2A6OYRbE9h35ICsBTarsqSrR7WtJX+rBnk8TbK0nvGU1xvA46Zc7yQ+OMfvs\nGSp/5W7/pZdnzZZNp0l29JHtHsKeSaIoKo5lYdyckM/MjRFSZzsJr29C2DbG8CRqLEzFY/vQgrp8\n5jxg00ufEKiREPE9m9ESMXIXrvG1r3+dlpYWWlpa/tl2uRzLsRzLsRz/ZxEMBtm3bx/79u1jZGSE\n6elp8vk8kUiEhoYGqqqq/lXSde7cOSYnJ0mlUnR1db2uPaQXhmHQ2dnJ9u3bmZqaoqqqikwmw7lz\n53jkkUd48cUXMU2TrVu3cuDAAa5fl6C8pwD2WrFwvfa15ogeJOY4ziJgaCmFsEgkQjqd9oG9kZER\nABKJgjtSIpHwVddyuRzpdNqHkopBNM8W2DAMf66USCR8uMlT8PMANV3XfZWpl156iY0bN7Jt2zYf\nIFq7dq2vQOhZDy9lu+vBY94/D7zx4JtsNksmkyGdTvvQ35o1azhy5AiaptHY2MjGjRv9svMiHA7T\n0tJCc3MzIyMj9PT0lOR71apVjIyMMD4+viRgaZommqaxYcMG6uvrqays5N3vfrdvI1pTU8Njjz2G\nZVmcOnXKt/T1FL80TfPz6uXdq0OvjMvLy/3jPNvWfy6K4aiBgQGqqqr42c9+5oOXe/bsoaOjg4GB\nAY4fP86JEycoLy9ny5Yt1NbW+sBbPB5nbm6OXC7H8PAwo6OjvjqaruvYtu3DniAZAsMw2Lp1qw9U\nera36XQa0zRLrJdBwpHZbJa+vj6y2ayvGueVi9emrly5QmdnJ5WVlb5d7vDwMDU1NX5bCYVCJe1/\ndHQUYBG85JUD4F9LURQikYj/bM3OzuJZYXtKfcVt0rIsv815lt5eWjw1vGJg8H8W7iuuQ+9aQ0ND\nrFlTECPZvXs3169f5+zZs9x3330cOXIEkPBWNBolHA6zdetWtmzZwsTEBJ2dnb6bYzQaZd26dTQ2\nNvLUU0/R2dnJ5z73Od71rnexdetWTNMkFAqVtPdMJsPRo0f54Q9/6CvjnThxgkAgwAc/+EFfFfL0\n6dM899xzJVCsB0TOzs5y6NAhfvazn2EYBrfddhttbW08/PDDHDx4kKeeeooPfvCDVFdXk8/nF9lz\ne6FpGidOnODFF1/04ejz589z+fJlvy/y7pdKpcjn85imSVdXF0888QTveMc72L59+6L1EMuyiMfj\nOI7D2NgYf/M3f8Pjjz9OS0sLqqpy8OBB/9kpZmSy2ayv3gf4Nt+RSIRgMIiiKPzKr/wKPT099Pb2\n8vGPf5zHHnuM06dP8+yzz/K9730PIQSPPvpoCZxtmiZjY2McOXKEs2fPks1m0TSN8fFxZmbknPPU\nqVNUVFRw7733cvr0adLpNLfffjt/8Ad/4NsYh8Phkrzatk1raysf+MAH+Lu/+zu6urr43Oc+xyc+\n8Yn/5Ta6HMvx/5d4QwA/gPvuu4+vf/3rfOxjH2NoaGgR2bvUbg4vFg4KvUHDb/zGb/DRj370de19\ndV3nxz/+8b9MJpbj31WoqsrWrVv/r1J7dByH/v5+CRPV3PH6cF9xhCqh9g7E+EvYuRkcW+7cevXV\nVxm9NYajRdHL5cvBRfDcwvD/7k7ulgT5CotPi1T0lgD2iiMYCmFZtpxQ2XmUjBzQFlvbqqEyyE5D\nZgz0Cgn3ISdrwVChPwjoATRNxbIcCS4KJAyTHpBgle4qRoWL7EDTN10lsawE5nLjUHuXLPOyjQvU\ntSoKFqaKVwgeyBhCETYiOwHTryBsAydvk+35EQuVIB988EFeeOEFuruv4wSiUH+fhN2KLX9xX5gr\nLiQZX4XQE4ix4yhOCgWBcAxX5W4JO1xvcUI4Lvx0HhwTJdaMSKxzVfsUqQwWroebP5MQVnZMAjmO\nq4KmBpBKXJ63jWvh6ym4WWmYe/U1lOheI4Rn/6tIVbVAzFWUc9XvUr1uY3LrVggJYE28XChvcIHE\n9bJu46skhIlYoES34CWDlYWR5+Vx8TX4EKpjuG1cKz1HcW1p00Myr4rmwkkrgQCkeqQVqzkHs5dd\nFUEX+JrvcVXfAouVEKEAmkUWqGd60C2qLA/PLtlxXBjRlICfGiyyYV2o6FkllSc98C0zLPNc5ilj\nuPXpWSz7trxLyXQuDE8d0j0uPwaB5kIaIg1AuywvKNRnYl3hPqoi7x2pL8r/gsW0iAsjpodg4oxs\nJ2XrZD179q+ZIpARRSrO1d4Fw8/K8k0PSoht6iIiI18MLbIFLgYizZSEgdWghBMjDRIyzAy5AN4O\nef8F5a0oCqqmoGRHscfPg51FVRUEKsLJo+TzCLPdbwOK92wKG1RNWsILE6bOwexVN5/FwOaoVAUV\ntoQ8XehRRBsRqDL95sJnUCoKKoDivRgSNn6bdxV+iLVA4LK0zA2WQ+MvSWXOyXOI1JCskZo98jRV\nI5/Pk8vnsU3LVWLsAyuFUNzrefVuzLrQZEKCe5lhCb823C9VFXEW1LmQbd1V+FT0GM7EKU6fPsOG\nDRt4+OGHX6dNLsdyLMdyLMe/ZJSXl5fs9P3XjBMnTqBg0LYqz6bVxj9/ghsBDR67N8mnvhnk2oCK\ncOTuaICjR4+CyLF/p000DFXlcvzTc1P3Ia7iiEfluHViJlDg+9wDFaSqXkF1T0XX3QUlUxAOQTqj\nkDNUVBXCS7zKUBWVWCxGKpXCtBx+/nIUy1bY1VZQ5Whb5RAKQs/NIN0DAeqr5Hd6JBpFDxRtjEIh\nFAyRzWXJGQpTswE+9c1q5tIa9VU2d2/N8Oa7UtRUyGsrCgyNaRw6G+fM1SjdA0H+4uu1fPQ3J6mv\ntmmotrlne4aDZ+J89UdV/P7bptjVli9Jvzd6jAQFuqZw6VqQr/6oivm0hqoK/ua7ERRFBSToX7ei\nkW3btvHTn/wERI5VjQZ/9t5JAqrALrhoyjGMC9QFAoK21jx//OuTfOqbNYzPCBRVQVWgsy/Mn/xN\nA7s2ZnlgV5qmOpNAAOYzGsdfkap20/MajgP37cjwq/uSXmHJ/V4Ctq3LUVVmMz6j0XMzyMZWA8uG\nrKGQMxQCmvBVAh1Hqh62NJhEwg7zaZW/+2kllg23b8j5Zft6kTMUBEh4EIW7bsvy7KkE4zMBIiGH\na4MhFEUQDTsIIVUIHQdevhrlxOWYHEoLuNAZ4a33pYnHAqhaANsyWFFroWoKgYDwITkd4dtPDwyH\n6RvRMUybaFmtnyZVC2I7OWzblLCdp9wHWJZB76uHsS2DULSM1VsepHblJjQtgBAO06M3GOg+QXJm\nhPTcmASdHBsFhfHhDtZseQBFDSx6tvIZuahSXl0KLjmWWYCp3KdOILBtE9s0pJ2wHqaibhUbdjzq\nWgKXXlwLBKlvvo26ps30dxzj1sBlbrx6mLZdvyqvL2fUGLkUlNf7qoIFgpdF1yymR00j47ZRhYnh\nThrX7JJKbYqCFggSiVdhzmVxsnnMMaleEt7gQoC2kIpyilTqi2xslr+7Q2PFXbSIbF4NAlJnOslc\n6iF7tZ/QmhWE161EiYTAsjHHZ8l1DmAnpap7sKmW8l+6k8zlG6TPd5F88RLlj9yFOTZN6vhlCZSF\ndMIbW4i0taKVx0AFJ5Mnd22I7Kt9CEcgLIds5wCxnRuI3dlG6tRVkscuYc+tJ7ypBTUURG4mkuUR\nDAUJBnRyfaPMv3iBoOEQraj0F4YzmQyOaSIMEzWogxAEwiGiG1uJrWkidW2QdP8IqdNXSZ3rIrKh\niUBtBYqm4eQNcj3DmCNTYDtEQmFM0yJ1vJ1c1yCRthaMIbmIHNnUiqIpYLuKgo6QouKhkFTxUEDR\nNZkGr5b1AJG2ZjLtvWQ7BojfvYXIxlaCjTXMPHMSY2SS5EtXie3cAEhgIj03z9yLlzCHJ+U8KRIi\ntK2JQEUMJagjTJt83wjG4DjZzgFEzkCNhKh48x70ijiOaYHhIEyrFPCzCurrZdvXoedMsp2DHDx4\nkPe///0sx3Isx3IsxxsXjY2NNDY2/msnA4DDhw/7oND/DNznhWflGYlEfGhpbm4Oy7I4duwYQgge\neOABFEWhsrISRVEYHx+nubl50bVCoRCKohAKhUqUyLzwgBEP0tB13YfsPIhEVdVFymhe6LpOJBIh\nm82SSqU4depUie0nwI4dOzh8+DChUIjR0VEfwiq2sAR8CNBTqaqsrCSRSGDbNrOzs4yPj/t2v8X3\nr6uro6amhs7OTlKpFHv37kXTNNauXUtnZyf5fJ7W1laGhoZeU0FRVVUf7qupqfGtiycnJ/GsTePx\nOFu3biWRSPD888+jaRotLS3cdttt5HK5EoDG++cps61ZswZd1+no6OD/Y+/No+yoDnPf367h1Jl7\nnlvq1iwhCc1CCCGw8AAksTGGGOcldhKHEHjxy4tNnNws35fcl2Q5K7mOY/vGOPa1w819NzgWiY0d\nMwkJIQkJJIEGNKOx1fPcfeYa3x+7qvqc7hbgt9bNyw39rQWSzqlx7111atf+7e+zbRvDMEgkEmia\nFjozjo6OYlkWQojwvJqamojFYqTTaR544AHmz58/4xy2bNnCkSNHKJVKJBIJ8vl8CAhOBxoDwMx1\nXWKxGIlEInQ/7O7uvmGbLFd57O34+DiZTAZN09B1nXg8ziuvvIJt2zOc91599dUKyLKhoYFcLkck\nEkHTNLLZbAiKlscdB4Ccoig0NjaGkGLg/hjUT9BupicXjI+Ph5G28+bNY8uWLbS2toag0/Hjxzl5\n8iSZTIb+/v6wnAL4L2gP5QpcK4UQFTBrAN+Vt4MA+MvlcpimGbb/dDo94xoIpGka6XSaRCLByMhI\n2Barq6vD7TqOE4K4Qft9rwqueyEEx48fp7W1NYRqg/tnAHpduiTNLrZt21bh6qkoCvPnz6elpSWs\nr+Aa9jyPz372szz55JMcO3aM7373u9TW1nLbbbexcuVKotEouVyOY8eOcejQoRBUvO+++/joRz/K\ntWvX6Orq4sknn+T+++/nhz/8IQcOyES7lpYW7rrrLjZt2hRGHXd3d7Nnzx4OHjyI53l0dXXx9ttv\n89BDD3H58mXOnDnDX//1X/Pggw+GHEF5CmU0GqVUKvH888/z7LPPhi6bQbRyNpsln8+TzWbRNA3X\ndWlubmbt2rUsXLiQH/3oR/T19fGNb3yD+vp6brvtthnRtUNDQ2G59/f38+d//uesWbOGrVu3hue2\nY8eO0MExaCtB+w7SL5PJZEW89qpVq6ivr2doaIhz586xevVqfvEXf5H58+fzrW99i6effpr29nY6\nOjpQFIVMJkN3d7dMx5iYQAhBZ2cnmzZtoqqqCsMwGBkZ4cCBA/T19fFP//RPWJZFZ2cnjz32GIZh\nhPBtOYwNU46xhmHw6KOP8md/9mf09/dz4sQJ1q9f/57b55zm9O9J/2qAH0hC+yc/+Qnf+MY3+MEP\nfkAmI1+kzmbjOV3lPyJr1qzhC1/4Aps3b/6ferxzmtO/NZ06dYpSycLTUojEzI7VOyoxD9Q4npUD\nPAqFAvv27aNkOUTqlvmDLNPgOaNu5nb0lHR/KwxARM5Sq3Dx89wQ/ICZLnoU5MNsObBXLgGhBa9Z\nKuJNvo1wSiAU7PwwQtFR440wdhFv8gIkOhD+7KR4PD7DS1A+GBTwbFPCefluGf1au06CLGqkjCkR\n0pUrtUiCfSNvSCAFoOE2CYBNnAdzVAI19ZtluZYruFX5IJ0YOgKeKcsEl4a6NM3NzaET5IoVK3ji\niSc4f/4CntAQ9ZvxZsB9wYZ9B8LAwc2oQ9Rvwht4FeGWELFGKAzB4Kt4IfzUhBAR8Ip42d6pGF7P\nQegJvGRH+biEHPQRioTBRt6A0Tchcqesd8+dctWbUXGKdEiz8zB2SoJo053oZpU3tU2hyn8nOyUY\n51qALuGfVBng5Ji+w+ClqUhhhHQZKw3JevUCWEgpg9WCcixrJcV+vzzsKTc9ochlPHfKRS50I7Cl\nI9vocfnv2vVQs2pqk8YG+Vm+R55DEOMLfozysO9aN8uxBNCsUga/hnGq3tS/hQBPQUJ+ftSvEvGj\nkKuDCplZ1EKV7VVLQv8eCaqpfsdU6HLbQcTy1EqV+59VAgr+LDwhJEAba/bBSiG3XV7Plg98xZr8\ncylrVwEw65Wdm1D9WG1XRiirMQm9maasB/HWzEPSUxLITS+R+0gvg5GjEm6M1EBp2AciN0uHv7Cd\n+nVi1MlrIHtFuvW5pnRmjM+T7odBewtAw9RCGT2raKiKh2aP4Yy/jeIUiMc0li9bR3V1NcPDw+Tz\nefr6+shkc6AZKFoUoeookRSR2iVoSdnZNUfOURo+g1vK4I2dlK6QYbtwEa5JVTpFe3s7Xde7yY+9\ngTtxGpFaiJuX91kvtWiqnXjSbSYSiUgOs1iS56Ea02DgwHXxhKzLRLtss3oa+nbL2F+9BpFeiOu6\n5PPy/i7vr+XQ5EL5G6H6kRgBNGlOyutA9YFUo84HVX1YOLheA5DVb8tqrI5o+1YK3fvZtWsXd911\n15yL35zmNKc5vc/keR4vv/wymuqwbW3+Z17/pgUmjTU2/aM6jkP4UvW1114Dt8QHNspntlWLXFJx\n6B7Uudits2Re5fPvqoUlnjuY5NWTcT5+52QYlxvQgJYFHgJN01GEgtCCiBsPy/LYd1z2dVYudGdE\nyQbSVI1UKsXgcI4jZ2PkCgr7j8FYRhCPQsmEYklQNOGVNxN88kNZ4vE4EX0mMRgxIhRLRYbGFL76\nVB2ZgsLKhUU+fe84McMjnajsd7Q1OHz8zgwfuSXL935Sw8WeCH/1VD1f+rUh4lEXxYftJrIKf/N0\nHRuXF9ixMceyDumo7ht4ce5ahJffSPLmuSiWo5CIeeQKCp5SxdJly6irq2Pbtm00NTXxR3/0f1Es\nFUjFXf73B8dQhYftP0KXOwZ7ngTZbFP2PpvrbD7zc+N84we1ZAsKa5aaaJrGsXMqh8/EOXxmysHN\n9cCyZPwwQMxwOfhWnN5hjR0bcixfUETXQAgJ733olhz/uCvNf/1xDf/h08O01FuULAXLBtMW4VNy\nWdXTVGNzocvg2IUo8ajHrasK79oui+bUMUU0D8sWbFhe4IXXkjglgRBQk3b4wIYsG5YXScZcTFtw\n8XqEPUcTnO8yKJoKnqtRtBR+tK+GX/k5uV/Xkf0LCehJOC54tyZjgwQ7dycwbQ0hVM4f+RFL1/88\n6do2FKHgCIHnulhWEVWLIIRCPjvCxePPkRnrJRJNsXLLA8QSNSiK6m9bUNe6mLrWJeQyw5w9/EPy\nmWHwgbzB7tPUtSylpqGTqX6GPH/H8Z0iQlc/D8e2cIO+sSgvdUlj5rPDCEUlWdPC8g0fQ3nHGfwC\nIVQ6b7oTx7EYun6Ga+cOYJZyCCEHr0YHLlLfurRinbKavuF2h3svgBBoehSrlKeYnyCm1CAMCUcq\nfmy25zh4lh9PnIzJKFvf2U5oWhgxKzwPt2ROgY2GLqOi1y1BrUkx/uNX8UoWxbPXKF7oRihKRRdQ\nTSeIrVpAfPVChKoQX7uY0qUerKFxxp45gOfH0sZWdpK8dSUiyM32q0NNxojf1El06TyK57rIHTlP\n9rUzeI6DPZoBPNyiSe6N8+RPXSa2pB29pR7F0NCFSnE0w+Cpy1AoEVU1Nt+6lUceeSR8PzQ0NMQf\n/If/QN61aP3EB9BTcbREPHTqSy3vIHexm4mTb5PvHqRw5hpwLTw/17TBdlhz88089thjnD59mh/8\n4AeMDU+Q2/8WTslCRFQirfW4BTMsGsV3prD9QTBUZercy2R0tpA/eRl7PCNdEhWBVpWk+t4tjO7c\nS+HMVWIrO1GMCFbJZGL3m1gDoyixCMnbVskIZSFwCxJEV2IRYis6sCdzTL5wGLN3BL25Dq0uLetX\nU/FMG8+VzpnCH0z1LDlRVQIUEYyNK7h++gqvvfYaDz30UEW835zmNKc5zen9od7eXs6dO4dlWQwO\nDv7M78b6+/vDmEtd17Esi5MnTzIxMUFLS0vouLVp0yYOHTrE+fPnWbt27QwQqb29IkRjbQAAIABJ\nREFUnYGBAerr68nl5Lvecge/wPkvMGcxDKPCRa+2thbDMFi+fPkNjzWACF9//fXQPfHJJ5+ks7OT\nSCRCJpOhWCyGkbABiDZbmQQxv5qmhXDf5cuXuX79OrquzwANc7kcZ8+eJZ1Os2rVqtAVbdOmTRXu\nZslkkkWLFjE+Ps7Y2Fj4Hcjf76qqKmpra4nH42G8cBBfOm/ePDo6Orjzzjvp6uria1/7GiDdBW++\n+ebQvawcfAue5QMQJoChJicnuXbtGp7ncd999/HWW29x9epVUqkULS0tFe5vQeyqpmk4jsPOnTs5\nffo0GzdupLGxMdxfW1tbCDOCjHG1LCuMGJ0Nagz2oaoq8XicUqnEwMDADes4kKqqFecphGBgYIB0\nOh064qXTaRYsWEB1dXUISg4MDNDb20upVMJxHCKRCDU1NSE0Zdv2jGje6WUZiURobGwMYb6XXnqJ\n7du3E4vFQje7YrEYAq2e53Hp0iVee+01isUiixcv5o477pBjk/456LrOpk2b2LRpE+fPnw+d2wIw\n78qVK9TW1obXVXDOQZlOL4/pEG05jOq6bhgpm0qlKsDA6SZLwWeqqlJXV8fw8DCWZZHJZHAch1Qq\nRSaTIZ/PU11dHS7/XiC/ADYMrr+enp4QzArKEghBvnKQMZ/Ph6BZEEcbXLOFQiEEDg3DIB6P89u/\n/dt873vf46WXXiKfz/PMM8/wL//yLxV1DDJq/e6772bNmjUA/Nqv/Rp/8id/wiuvvMK5c+cYHh4m\nEonw67/+62zZsqXiXIUQzJs3jwceeIB77rmHp556ipMnT/JXf/VXPPTQQ2SzWRzHYWBggO985zs0\nNDSwfft2mpub0XUd13U5fvw4hw8fDh02f+M3foMPfvCDYZ3t2rWLnTt3snjxYn7913+dRCIRwpYA\n69evZ+/evezZs4fh4WGeeeaZivLOZrN4nscDDzzAvffey86dO9m/fz9Hjx7l6NGjFAoF2tvbqaur\nC3mcoH0FDpWBc99szqrr1q3jxRdfpLe3lw0bNgAS/O3r6+OZZ57h2Wef5dFHHw0dBL/xjW9QKBRY\nvHgxDz30EEuWLAkndwWg7j333MP58+f58pe/jOd53H777eG9MajzIJpdCBG6VQZ1kk6nueuuu/j+\n97/P7t275wC/Ob1v9a8K+IG0D/693/s9Pve5z/GTn/yE3bt3c/LkSUZHR2+4jqqqLFmyhI0bN/KJ\nT3yCFStW/Cse8Zzm9G9H+/btk5GtqQUzrSTeTT604Y2eAM8mFosxODiI43hEki3hYpHaJVjjV2V0\nZfXymYBWaiFkr8Pk2xKAofJ7z7VDNz2odNHDsaTrlL+fGx6qgHgiDvkeLCcvB76yVylMXgVP+g4I\nzwY7i1LqJ1q3mIgRmdVjLGIYmKaFNXpOum4pOjRum3LI8wch5Lt6TzpqCUfGfzZXS0e83HUwLvjg\nmN9xcUwYPATaCQmfxZtARCQIVBhAZC6CI2fx6zWL0NLtWD0Hqaqq4o/+6I/CB90XX3yRV189iOsB\nkRRetLEM7psW/Qty/2UObl5URgd7JQshDCLNG3HGL0xBQaO+U0MQHeoGI2WahB4H9vtQ4wIZbxs8\nq6eX+HGp16F/rwShYs1lTm3hAfkwYx/YRUIIzlOm4l/DiqVyTMRzKiGuoAajDYRgXsNm3yFNmyoL\nHTCqZVss9EnIyy5IGG/4CGhpGacMvivZbAchJKg18sYUMDnw8pQDnqLJY/PjXEPnvuw1GDsuP0/M\n86+B8vMKBqkUP8LVgtKIX/Y+JKalIDpLhEPg6BfAbhVAZRlAG+7Kk+5yQoe6DX4M6zRocOZOpJtf\n/SYZw5q9IsvNqJHHmbkC1StvXGazyXMluCUE4McG48nzDdwQoQyU9KEtRZf7Lm8DQTsQKqhKWVyy\n73ioqbJtTlyQ4Kxry+tVS8rY2yCeON5eNhrsSqc41wGvJME8LQEtO2RZzOigelNlH2+TYNvAPgmU\nZq6CoiFSCyWYNnwEzxxHjJ0AoSCEgqKqiDKHziDyvfzl0smTJ/mLv/zP5KwIqWX3hYB1uYz6FUTq\nlss479G3cc0MnmMhFA2nMEwsHuPxxx9n9erV7N69m127dtHb108pdw6zkMcTmgTsPHlPVjXZCZYv\nwCb9OtFnr9dYM3BiyqUSZBup3yQjhjMXIbVg6uXCyJsS7lN06e6X8F0DnaL8DVEiPjS5XIKKY8dB\njfvOn/gxxT5Qq6rT2r4XvkDRIx0U+47S29fP6dOn/0057M5pTnOa05z+56tQKDDQ308s4rJyYWnm\nT/i7SFFg88oiP96nY7uCRCLB+Pg4tlWivsalqdZ3N9Ng+waHn+5X2fV6giXzxiu2s6LTpKnWZmBU\n5cSFKOuXF8Nj8YCSBSBhDPk3+TuWz8vI3T1H44Bgx+Z3jrsCle/vqsNyolRVp7E8h2MXbILnMleA\n7RR5/XSC29dr3HQDk0VFyMGMnxyIMZlTWdZR4rMfHSNIvMzmFZJxCe4FoJquesRj8LlfHOWvnqrj\nWp/Oj/el+PCWLEfOxIgZLtvWFnjtrRiHz8r/Gqsd6qodPA9GJlTpcCgEigIfu8Ph7q02n/+rKKYr\nX6wHM/ifeuopxkYGMXSXmxaUqEnaWA6hY19En4r/xXdHLFkKtiNBu2XzSzTWOOSLCm9d1Pn672X5\n5XsNXnlD45U3VK4PyFheIWSU8E0Li7TU2UxmFS73GrzdrXOpu5qqpMvDHxtj9eISCLh7S5ZL3RGO\nno3y5b+v5zP3jrNuWQHbVnxYbuox0rbh8Jk4XQM6QvFwHIHjehgRF8eF8nRR4Zez40DREmE0b9zw\n8DzZL03HHRQh2+yv3DPOppsKKIrcTsxwURWoTRdYscCkd1jn75+t4dqARqGkcOgtA0P3eOCuvL8/\nIeGvcP9y0KJYgu8+E+PCdQOhV5OIR8lnRnjr4PdJVjXTtmgj6Tr5TOfYJpOjPQxeP83Y4GUcu4QR\nS7N0/S8QMRIoSuWrxUJunIGutxi8fgrbLPr7VfDwsEo5zrz+NEvW3ktje+W7vSCW17FLhHCfI/sK\nqhaRkwiFwPNcXNvCcUwK2RFUVWf+0q2IGX2/2SWEQueKOxjpu0BmrEc6RaganuswPnQVs5gnljTK\n16ACLJwm13UYvH4KgFiyhmJ+AsePDvYKJYSqYpsFPE86JXiWdJJziyae6SccaBpCV8PNC6GgRCNy\nGcdBOH7/SFEw5jXK73JF6fTneHgC1FQcraGa+NrFGB1NU44qJZPiua5wf87wBCIaIb56AcnbVlfG\n33ounuXg2XLCnFAkHKjEDDKvHCfzyklENIISj5JYu4js0Qu4mQL5k5cRp64iVIGmaqhCIaqqzOtY\nwAc/+EHuuOOOcNDIMAza29tZvWoVb7x1glLfCPG28klmsp0ml8wjuWQe5sgEmQtd2NlC6GiXOXOF\n6toaHn/8cdJpOYly27ZtvP766+F7Zg+BoqsogKppGEYE3Yeg8xMTsteuq2XvgqbqVvj2qp5pU05i\n6w3VROY1Yl4fpPh2D/FVneTeOC/hvniU6o/dhl5TNpk1uFH43WmtKoHneigRjejyebglC0WR16hQ\nFRl37HogPLySJf+OHCSO6BGoNoh1NJPvHubgwYN8+MMfvnFDn9Oc5jSnOf271JUrV7Btm9HRUWzb\nfsd0s9lUKBTI5XIYhoGmacTj8TA+denSpeHzw6JFi2hpaaG7u5urV6+yaNGiiu2sWLGCU6dOUV9f\nT3d3dwhgBODU9Khc6WyuhwBcKpUinU6zadOmdzzebDbL888/D0BtbS1DQ0MMDQ2F30cikdD1amxs\n7IYgkq7rCCFobGzEcRwuXbpET09PCFUVCoUKh7YgrnZiYoKzZ8+ycuVKrly5Qltbm0wzKRbDKN9i\nsUgkEqGuro5isRi6aQWRsZqmEYlEaG5uxnVlslYymeT3f//3Q+Drq1/9KqZpEolEWLBgQQXcF5Sj\npmnhs7xt26ETV7FYpK2tjZ6eHkzT5Nq1a/zxH/8xV69eZffu3SEgGSiZTNLW1kY8HmdiYoLe3t7Q\nba6zs5NPfvKTgHwee+ihh/jmN79Jf39/CGAFcFJwLNMdy8p1I2fDQNOdAIN2AzI6N4hMXr58eQhh\nBp9FIhFaWlqoqakJAUfXdYlGo7S2ttLX18fw8DBABfhVDs5FIhHmzZtHKpWira2N0dFR+vr62Llz\nJ52dnaxYsYJYLBbCVBcuXODSpUuMjIzgOA6dnZ1s27atAsgLtt3X18eZM2e4cuVKBWDpOA6ZTIbD\nhw+zfv36inYXPC9PdxoM2kLQjoEQsgwgrwDaeqeyng75pdNpRkdHQ3fGZDJJJpMhl8uFgN/0dWfb\nLkCxWMSyLGKxGKZphtd68PdisRi6sJmmGdb15ORkaAIVgIDBNoO42CBSOLifRKNR1q9fz8GDBykW\nixSLxRBabWpqYuXKlfz8z/986KgIEo4+ePBgWGb5fJ50Os0jjzzChg0bKuovcJEL7mvJZJLHHnuM\nv/3bv+X111/na1/7GqlUimXLlrFy5Uqefvpprl27xg9+8IMQoC0H5tasWcM999wTAs2KohCNRrnz\nzjt55plnuHz5MoqihLHhgeLxOPfeey8f+chHOHXqFKdOnQqhvP7+fs6dO8dNN93EL/3SLwHw8MMP\nc//997N371527dpFoVAgHo+Hjn3BdROAqwH8GrhtltcnEF5zAUgd6MMf/jDPPvss586dY2BggLq6\nOr7zne9QKBS4+eab+dznPhfWVVAO5Q6UtbW1oYPrxo0byWazpFKpsO6DZR3HCe+FQBiDffvtt/NP\n//RPnD59mqGhIRoapo1Dz2lO7wP9qwN+gaLRKA8++CAPPvggIGnugYEBMpkMk5OTRCIR0uk0VVVV\nLFiwYIb97Zzm9H7U4OCgjF8MILB3dUebplgzIJ3HGhsbuXbtmnR1KovL1ZKtKEYKp5SRcbXJ+dO2\n0SKd36yc/D5R9r3rgOehaiqaHkRPlrnoZa8i7BxKNB26VN1IbmEUZ/AIyUSUD951D/l8nsHBwbCz\nZZomV65eozR2HK2mGcEswJS/fwQSzgGoXSvhvuAlvVOacg0D/6WuDyFF0hJsG3wVJs9LSMUpgF4t\n4cfJt8HKwNgJGJt66S8HowSKkcKov4lI3XLAo9R/rAJMcV1XPmgV5TF4qQVTRx1G/04bQBDKFGzm\nWvI4kwvBOoGX68Ju2kyqaRX2ZDeF7v24pUmZpitU6Qxo1EkQz83LP52idCQcnYDSGDRu9ferQMOt\ncp+567IMtBgkFkgAT9EkjFMcmnIFJHCbC21M/PL1t+cFwFUZpIg8NunM58d7BQ52epV08yuPpBXu\nFBgmFBl5G6mFvt3g5OU2+ndLh8ZY8+zXiOdKJ8fhI3J5NSbL0spC38t+BPICSHSAqs9ynp6E++o2\nTIMvPci8LV0e7ezU56rhg3muLO+en0iYsm7TVOQ1yMhoc8x3x6yeAt9Q/PYQNDEfhCr6s9+0BESb\nZ57nOyk+z49CHpP1YfrAl52T7oOJjndeH6aqOdct11PjErQMYl8DyC/X49+vNHn9BLCplZ+q66AN\nIKZGPUMI0I9LDsrac+QgixPAgqoPkqkQa5PlbWXAs6Rj6ORFHzpUEcKV4FvtWnm8rkXo2BiCfcHA\neVAvKahZA8OHZSRu7TqoWgJ4eI6JGDuBgkNNdZr6+nri8Xjo0Lly5cpZZ42uWrWKluYmLl/twZro\nIlLdOXsRC4GeakNPtYWfmeNXMLv3M39eO6tXr0ZRlBAiPH36NPv27ePAgQPkig5axECNRGTHTZcx\ngpZl4zj+78d058Jwx369uNPAg0S7bDd2Dq84ALFmRK4LL98j66rlLglNQiWMGpSvUOS1oRgSKg7i\nnYUK+O29HPr0yyCIXxdApG4ZpZET7Nu3bw7wm9Oc5jSn95ny+Tzgkoh5qAqYtoTxfhalEw6OC56n\n0NHRQakkQaJopPJl9Qc22jz3qsrhMzFWvGHygQ1TjoGKAjs25nnqxTQ796RZ1lEiHpWTkIpFcFwR\nviQNFLhWvXAoQt+wRm0V3LzkxnFaJRP+9p91TrwdJVXVxJe+9B/xPI/e3l4KhQKGYVBbW8vhw4fZ\n9eKzfP37k3zukyYrF82+zYmMx/ELUcDjFz84gapMQWeuC5mcIkE63UPxoTrLkRTbr/7cOP/pvzZw\n4EScVMKmaCosmWfym/eN8cCOCfa+kWDvmwkGx1UGx7TwKaomDXducLhzg02NNKni1ptt9hzN85d/\n+Zc0NDRQLBY5f/48paJFOuFx+9p8CPdFDVkv07tDqgoR3cVxIFdUcFy4dXWe/pE0kzmVV48L7t7m\nsXiey08PqKQTLgtaTT50S47GKotXjic4ciYmY3E98DxB3hTkiwp/+T/qefx/G2bNkhJCgUc+Pooi\najh8Jsa3/rmGdKKKLavzLG03MQyXYknh3DWDQ2/FmcgqlEwF1/V5IE8CfJm8gqbIWOHgcd6yRRjj\nLJDQnq4hHQ4Bx+83NVTbfOiWHKYlMC25Tq6gEDU8iiW5THsTfOFXcnz1f8Clnij5os7eNwWXulVu\nu1mw8SYTvYxVy+QFh07o7HszwsCYTtHUEKKAbfmOErbFxPA1Jka6UBUNoek+oOThOCau45Cua2fF\nxvtQNF1OVBEAMjbqyuk9DF4/TfAsF01UoxsJXMeiVJjELOZwHYuzR/6ZrvONdCy/nbqWpSiKSjRR\nDUPXGBu6SrK6OSQoNc0IHfAAhFBRIioj/RdxbItkdTOJdAOuY6GWRVS/kzQ9Sn3LcvquvonryMHD\n4Pm159JhFt384XdNGgm+7796DMvME0/Vh9CnHomHjomFzCj5iWFc02T8hSN4po1QFJyJLIhmhK6G\nMbzBdsPYb13DMy0Z3arKQRJnUvY1ha7h2Xb40sPNFbFKQ+QdF/NyL2gqbr6E2TXgg3Gg1qVxJ/Jo\ntWniG5bjlUy8gFiFKRgtPBgPz7QwFjRjdrVQvNCNVpOk+iObUdMJRCzKxO43EbZDQ20d7e3txOPx\nMCpr2bJlNyzHD3/4w5w6c5rR105hNNcSb2+adblIXRV1t8rnfqdYoufpPcSMKFtv3Uo6nQ6XMwyD\n7du3s337dh5//HGu9HaTiMUxqqoqINfASUQ68ylB80aUQX5BeQlNregm4UFs1QIJ+F24TnRpO8UL\nMnau6u7NaNU3cNQL5555OONZEAKjoxnw8CwHYShT+3ZlVK/n3yRCVyH/+/iCViauD9Hb2zv7vuY0\npznNaU7/rhWAOAF4EgAaP4vKwY6Ojg56enoAwmhSkM8jt99+O//4j//IwYMHqaurqwB+qquraWtr\no1AoMG/ePK5cuRJ+FzhzlcNIIOEMx3Ho6OhA0zQ2btw4AwgrV39/P0888QSTk5OsXr2az3/+81y9\nepXx8fEQJGpoaOA73/kO586dA2Rs6myxxa7rkkqlQqAoiI3VdT10wwsc4ALIJAASAwjOMAwuXboU\nRpim02nS6TSlUil0PYtEIhVOefF4nKqqqnDfnucxODgYQniapjE5Ocnly5dxHAdd16mpqQmjSmOx\nWEW/MlDgZhY4nAVxuyMjIxw7doyhoSEWLVoUuoclk0lWrFjB+vXrw2jZCxcuhOCYbdth3+xb3/oW\nn/vc58Lx+Ycffpi/+7u/o6+vj1KpFJ5jeRxrxH//HLSd8nakKEp47uWQWHm7nR5BG3wvhKC+vp6q\nqqqw3IO6ClwhhRC0tLSQTqc5efIkQdxoa2sr8Xg8hBPLZRgG1dXVVFVVhdBQALp6nodpmpw7d463\n3347jKoFCRwF1966devYsmULlmWhqmp4bplMhpdeeomhoaEQ7IvH4yQSCWzbplAohODS/v37aWpq\norOzk6qqKhRFwTAMisUiY2NjoVvzbNdTAJEFcc+xWCzsR0x3Qyyvj/K/R6PR0A0RZOxrUM75fP6G\nbtHTn+89z2NsbAxFUWhqaqK7uxtVVUkkEiGAePbs2dB59A/+4A/IZrMkk0kGBwdpb2/HMIwZLnJA\nCNIG0F3QzgYGBsL3LoEroG3bDA4OkslkKBQK1NTU4LoufX19XLhwIWxXLS0tTExMsGPHDhYvXszE\nxERYx0E7LW+rjuPgOA6f+tSnuHDhAgMDA9x222188pOfRNM0BgYGOHDgAKZp0tHRQV1dHYlEgvb2\ndu68884bAmipVIpbb72V/fv38/Wvf50vfelLs5a5qqqsWbMmdCK8cOECf/EXf4Gu6zMm/NTV1fGJ\nT3yCW265hT/8wz/EcRzS6XQFSAuE10T5fX865BcsM/0eFI/HueWWW9i3bx+HDh1i0aJFDA8P09zc\nzGOPPTbrPSvYrud54W/OihUrSCQS4XUVtPHgGgzcG0H+fgTHmkgkWLp0KadPn6a3t3cO8JvT+1L/\nvwF+09XW1kZbW9u7LzinOb2PFVhBC0Wbirz9WaToeIAqYPv27ezcuVPOgHcqrcON+hUUeg7jDR2W\ncItRNnNACOlaNvymjLvUUhCtkTO9XRnLZBhGxTvQiGFg5oaxR2XUpRpv5EaOYJ7nYk1co9hziJju\nsfXWLXzmM5+Z0VF1XZdvfvObHDz0OrnLzxNt24peNX9WJywn2yOBHy0p3eDknqb+DCJeFY3QNS+A\nTGKtIdDC5Hm5XNVS6USVWioBouxlhJ2RsI+ioUWriTYsQ0u2lj00CSJ1yygMHuOJJ56gvr6e0dFR\nenp78VwXVCBS5x9HxB8VusGAghASlhK+w5lRDygI18TNXMeOLcMavyQd+rSUdN1yCojJC3i5rvIN\n+efsl0HmEliT0HYPoZtaw1bpXjjypoxmtk7KMgpBSP9tuKL7AFd+6hhdH2qbpVMtVeZQGEbqMgXv\nqTG5TbUMaPQcadsRtB+hSKCoYTMMvOqvb8HQa7Le0kt80E/3gS8/JtTOTjmEuT5UVg7iTV6Q9R26\nyvngl1Al4JVa7JOcfhvyXOnOF0Q6awk/VrhJlo2Vg9KgdMgL2lLmCtTcDPEWeXxGPWSvyn0nO3wA\nqwx8AyStqcoyyV2Xy6QW+FXhvHfoVyjSAXH0mF+2pam6DFwQjZp324h0QRw+LP+ZmO+DsLpsw64f\nu5q9LMu6MAA9z8u2JhQoDch7R4Vz33SgVZXtxHMJ44pzPWXnGtSNBeY4jJ+E8VNl5SC3J/QkxJrw\nJi/KyOd4G+/cNilr40igc+IMnp2XUdSOjN0WsUbEhEZ7WyNf//rX3/MLtQDK+/u//3/I9RxENdKo\nsdkh5XI5hVGKPYdIGBof+tCHKvanKAqrV69m9erVDAwMcOrsRWKxCNq0mXumacqrR9HwhHSJmeFa\n4QWRyWW/MZ4Pm6YWS6g524WIz5PtFeR9JnKDNhPsB0+CtCDvreDDm/5sY88FzyxbTcyIX9eSrRQG\nj4cvXeY0pznNaU7vH8mXvQLXk7/RluXhGkxF5L4HBWCVEBo7duzwXxCKEJYKVF8Nv/JzNv/tJxr/\n7adVFIqCD2/Jofnvm+9Yl2ffsRg9Qzpf+Yd6/o9PjhDRguhWORNZlD3LCwSvna7imX06+aKCEB7f\nelpnxyaH5Z1u+BM8NCZ4+ajKvjdVsoUosWQ9v/u7nw/d7qa/M1m4cCGTk5O8/toB/vN/z7B2mc1d\nmx1uWjAV/+s48PTuBPmiwvrlBWrTjpzOVOY66HlTUbGaAooiYTTXhboqh4VtFpd6Ihw6mQDhsX2d\njOGqSbncd0eGn9+WoWsgwsi4godCTZXOonmRsLw8ZATPhmUuLx1WuHb1MmPDV2XUDg4eAteDljoZ\npRmLzoQup0tVIRV3yeYV5jebKIqH4wpefC3GvBaL//KPOo7j8YGNOR7ckeG7P67i4MkaXE++ME4n\nPKqSDnHDZWhCI5tXKJQE//d3G3jsE2N8cHMOXYdHPj7GonaT//5cNd2DOj/Zl0bTJAgpxNQxzmuy\naKh2ePN8lEJJQm8j4xqiw8R2ZaxwuYSQkbwBVOm4YPuPpgOjGghoqJFOftGILI9CSVAyBfmi8N0W\nBaqqkdDhkfvz/PG3NbKlOI6S4lJvlqt9Kj/e7zK/xcPQ5fpXelRKlkaxJMtL0zVU3SBV3YyqRXBs\nk8x4P7ZZxHFMvGIJRdXQIwksq0A0UcOKTR/HiCaxrWL4uOw6NueO/piJkS6EUKlvXUbT/JtJVjfL\nQUOriG2VmBjuYqj7DJOj3eQnhzj/xo/RI3E0PYrjmFhmnqHuM7QsWI+mRaac+8onkfmaGL4mnVja\nV/rHYCEUZYaj4I1U17KU/q4TAMQSNRTzYzi2xeD1UxjxNO2Lb3lXyG+wW8b8ArQt3MTl03sAiBhx\nVC2CbZsM95yVToSaihqP4hkObrZI6WIvic0r5D6C7u20/ZVHtwrXxXM98m9dkZ/hoUTlIEcQ5+oV\nbEpdA5g9QxJO8xWZ10h81QJyx97GKpjEVy9ENXRcy5/cFPYJQCgSLMT1B7Z82DC2eiGlq/24RRMR\n0fAsGy2dQFUVWpua+frXvz7roNx0BbFm/f39zG+fx4W336Zn527q79xI9ZrFFTBeuUrD4/Q/dxAx\nnqdzfkfoVDGbGhoa6OrvxRwaI9pQ2UdxfScZoQaDXF4I+YGHQGAPSJcbJR4NQVM8uVxkXiMIgTOZ\np3i5D89xiMxrRG+s3I9XDksK+YvgmracZKupvkNjScY061pYDzKyWSqIIasYzDV0PDwfep/TnOY0\npzm93xS4KAUgxP8XwC+ArdLpNOvWrWNkZASQY0/l2rp1K2fOnOGtt97ipz/9KTt27KClZSoJauPG\njWHkr23bdHV1hSC9qqozTFtUVWX16tXU1NSgKApvvPEGsViMbdu2UV9fD8jfz4sXL7J//35OnDiB\n67osXLiQ3/md3yEajc4a6fv5z3+eP//zP+fKlStomkahUCCfz89wjwsgkN7e3hBMC5YJgLVCoYAQ\nIizn4PPe3l7a2tro7+8Pyz2ZTIbvLgMAMnArC+JSy8sgcNuLRCLkcjnOnTt3OeiPAAAgAElEQVRH\nLBbDtu0wLjeIpQzcrd7t2UrXdRRFIZfLkUwmQ/jx6aefZunSpbzwwgt4nsfHP/5x6urq2LlzpzQR\n8Z9v4vF4CIZNTExgWRZ9fX386Z/+KV/84hepr6+nrq6O3/qt3+Jf/uVfePXVV9E0LTyuchgvcCUT\nQlS4ypWDeLOBYeUwVXlbjsfj4frlkGAA+AXPQgHkVV1dzcKFC7l8+TK1tbUhHJlOp0M3Ns/z0DQt\ndIoLALgAdquqqkIIQbFYDF0yA3gsmUyiqiqO47Bs2TI2b95ccbxCCEZHR3n22WfJZrNomkZraytN\nTU1htG+hUMA0TUZHRxkeHqZYLDIwMMDIyAiRSARVVSkWi9i2zcDAAMlkMowXLi+/oLw8z2N8fDw8\nvqCdBTDXdNe+6QrOO2iDNTU1DAwM4DhOGAFe3oanA4PBZ0NDQxSLRWKxGFVVVfT09BCPx4lEIiGc\nd+LECSzLorq6mlQqhRAC0zR58803WbZsWcVxTncMLI9u1XWdfD7P3r17yefzRKNREolECIkWi0UK\nhQIHDx4MHTSD6/TWW29l8+bNfOUrXyEajfKRj3wknIwZgGTl0c3BdRl8p+s6t99+O8899xzFYjF0\ns2xqaiISibB9+3YeffTRG1+wZbIsi+PHj1NTU4Ou61y9epUvfvGLfOELX5jhmBrIcRwOHz7M9773\nPWzb5gMf+AAbN26cddkgAnpkZIRMJlMBaAfbCs6pvLzLy/3y5csAVFVVVVynnuexbt069u/fz8DA\nQHhf/OAHP1gBDJZvL2g3QsjIbZDXuGEYFAoFSqVSeE16nhfC7EFs8/TtBu6CwbbmNKf3m/7NAH5z\nmtOc3l3RaFQ+NAoXx/Oks9l7jKEBwCkiPI9oLMrKlSt55ZVXUC9cws72ocXrw8UidSuwc4Myqrd3\nt4SnEu1T0Ex6KaI4hJftkm5pdRvxYo0IoYROS4ECYM/tO4QmTISm4k5cJpPrJ1LnQ3CKjudaMopy\n5DyKUyBhaNx66xZ+8zd/c9ZOqqIoPPLIIwghOHTodQrd+yj2xWbdptd3BPAkCKVGEELF8xymInr9\n/1xr2l48CZ+kFsLYW9LtDCGhrQCGiTdDvBHPtcJo4ngijqjcCmapREmkcW2bnt4++ofGpdW2qwK+\n5bai+aBcOdw3bQZ9IH+WvoSppm7l3ugxCs4k3vhVPKFDy50wfhYve02eC4oE2dSYdIyLtch2lL0k\nIcjSkISw2u6WbcsTUBomjDk1qgldthRNxpcmF/rgpAfDr8PEObm8OQKxhikwyys77sAlMHBLLC/7\norRORy+brSJUSaY6JmGBhJGvSEc6PSnhoUSHhBXNcT8O9K3K2nAteXxClcdftVTWqfDd4gr9EgK0\nfAhQ0QFVwnU1N0N6sTz2wKHMYwruU3Tp+hgvu15AQmVGtYSjCn0SrLPzMPoGjOk+AOWXg52TyyQ7\np8C3ior326stB1ZDaNW1QI1MW/5G8nyg1K+DquUweVnCVU5RXtdBXPFsLm+eK537hg/7ccXzZfsA\nCdIqCnjKlLsfLqhJ0AzZdqyMjDuuXl0J0sHUAArI78L4Vh/wzF6R+08tlU6LAQw7eV5u029LQo3K\n+1Z6sYQ8B30ANLUE1Jh083OmufX5zqhCmzZ71AMvvQQxegKR70JNt6IoKpqexvTt79/LyzTXdTl1\n6hT79u3zZ5kBVpbM+X/GaFqH0bTWH8Cctvtp4POtt27hrrvuuuF+GhsbZ723Aziu41el7Oh75feY\noOwL/fJPLcGUI6OveBOMIeu1NCjdXLWEbCsVBx28RAvg1AAm9AesVINKeBOmRjZBU1UMIzojfl0o\n0kVmrvM2pznNaU7vPyWTSRRVI5tXyRcjxKMlSqZHzHj3dQNd69NxXEF9Qz2LFi3CNE30iMHwuEL/\niKC5buq54AMbHQol+MGLGj/YneaF1xPcuT7PtjUFatIOn/vFUf707+o5fy3Cf/zbRm5fk+fW1SVa\nGmNovtuY48LJtxX2HFZ561IERUuyclUnvT3dHDlb4MiZEjHDJhED04LJnALCABGlY+FCHn74Ydrb\n2290OqiqyiOPPEJ9fT3PPfcsxy4UOHa+SHXSprZK/sYPjQu6BwQxw+W21XniUYjoYFlgSwN2PPzH\nrQAyc6d+fR0XblmZ5+3rEfp98Kzej+L1PPm95SjUVznUVbk+nK+X9WY8crmcfJmfEigCknGHL366\niOsUmMxZ/M3OWgTSkTFwEvSZoopHw9mUiLlEdLmQrkHvsMZf/r0KnsetqwtsX5vnd7/ayMCYhqbK\nuF9NBcuB4QmVVEywfU2OdNLl0FtxrvbpfPtHNUR0j9vX5fGAc9cMPA/qqmwWtlmYlqBoChIxl5Y6\nm+3rcixqsxAKvN2l84dPNFEqCfYfj3PPrVlsp8yxT0goNXD0Awlb5otTz5IHT8ZRhMfG5YWK849G\npFOkacrnZyHkhCcBNNZ6rFlicviMQUPbTah6nMundlMouYzngwl48jgcx0EoCsmqelo719HQvgJN\nl8+/nufh2CZDPWfpu/om+clhhKKSqmnBHbFpmrcKRVHxyvpCngcXT77IxEgXuhFn+cb7SFZVurGp\nqo7nOtQ0LqC2aSFDvee4dnYftlnEMgs4joVrm3iei20WGBu4TOuCdbPUeNAfAsuSg9DRZC1C0XAd\nC8cqgUaF499MedhWiUhUgrhCqGz60G+RHevn2L4nsa0i3RdeIz85ROvCjSGkGJ4wgnx2hP6rxxno\nOgnA/KVb8XBx7BKJdCO6kUQIsHJjDPeex3Fsah7YjjG/Cc+2GfmH3TiTOazuISLtlfG00+OvhKbi\n2TZuycY1TUoXe/Bcl/iGZcSWz/Mn13nYQ+PkT1/FHhyT60UjJDcuw5jfhFadxMkWsPpHEbpGdFk7\nSkST2/bLU0bz2hI+m8UeVbQ1oNVXYQ9P4A2ME13QipFKktE00un0uw5Al0olDh48yJ49e7jadQ3b\ndzRxBbiWw8BzBxl++SjpVYuo3rAcNWbg2TbF/lEmTl6k1DOEoWos6OjkC1/4QjioM5u2bt3KydOn\nmDh5ifRNC2ct3/JBpgDywwPXc8mfki5ExsIWPNvF08rcZlRFuieWLIpnrwIQX7XA37j/v3DCoxfC\nfQgZGQzgOS6eQDoIuq6E/Jypfei6Hg5qT5drOWFSxpzmNKc5zen9p+A3N5FIhKDZbNDNjRQAPYqi\nsHXr1jDSEqhwdAM5/vKZz3yG733ve5w5c4Znn32WhoYGli9fzvz586mvr+f222/n5ZdfDt3Sent7\nGRsbqwDUg+jJ+vp6qqurqauro66ujv7+fnbv3s3u3btJpVIhuBNAdoqicNttt/GZz3zmHX/3amtr\n+dKXvsQTTzzBqVOnwsjOAMwK4khVVaVQKDA6Oko6nQ4BI9d1w3IM/gxc2oIyLhQKjIyMhLG7wfEF\n4E+wjQByC+CmQNOjVIUQ3HTTTXzqU58im81y9uxZfvjDH4ZgVjgO+B4UwJTBc4Nt2xw6dIhDhw6h\nKAq/8Au/wOTkJN///vcxTTMsC0VRME0T0zSpqalh3bp1lEolLl68SDab5Wtf+xq//du/TWNjI5Zl\nhbBPAE0FIE4kEiEWi4V1CDA0NMTIyEjolhasG5TpbDBRAHYFZdvU1ISu69TW1lYsp2laCOsFxxM4\nHra0tHD16lUymQyf/exnOXjwIEePHsUwjAqHweDcVVWlpaWFJUuW0NzcXFHm2WyWixcvcunSJQqF\nAvX19eTzeVzXZcWKFTiOUxFbms/neeGFF8hms6TTaZYvXz4jGjgot6amJjkhpauL0dHR0CEucCgM\nwD3XdcO2Px2QLG+vAcAWOK65rjsDwpzu7Be0y2C5+fPn85WvfIWdO3fy/e9/H9d16e/vp6qqinQ6\nXRGdG6xfKBQYGxsLnR3Xrl3LtWvXUBSFZcuWAfKZ9ezZs4yOjmIYBt/+9rdRVZXz58/z5S9/mQMH\nDnD//fdX1M/0/pCmaeH1ls1mOXnyJMPDwxiGwaOPPkprayuKomDbNkePHmXfvn2Mj8vx16VLl3L3\n3XezevVq4vE4L730Eo7jsHbt2vDeV+4kms1mw3Ivd6ILjmnHjh288MILHDt2jE9/+tPhhBzDMKir\nq+PdNDIywp49e9i3bx+ZTKZi2wMDAzz++OO0tLTwsY99jPXr12MYBrlcjmPHjrFnz54wdnrbtm38\n8i//8g3v/fF4nLVr13Ls2DH27dvHRz/60YrvpwOV5Z8F6RFnz55F13VuvvlmTNOsKKegLzY5ORk6\nnG7dujVcP9hm4A5ZHmMdtOmg3QTxzkHbD9afbbJTIJnGMdcnmtP7V3OA35zm9L+QAmhDWKO4WpXv\nmGe8N9cuz8XL9yLw6OzsRFEUtm/fzmuvHyY3ch6jYWXofieEID7vdvIgIb/BV2WcZQDKKLqMGC2O\ngDmGGHwV9ARq1RIitR24RWsGsJc0NLZsuYPFixezZ88eevv6KY2coDB4PJwRrqqChK7SOr89jJx8\np46Mrus8+uijLF26lF27dt1wm3imdIiKtYSxNoLKF6We68yM5gze8EZqfQjFls5kQilzpws6e8xw\nmgo2kc/nZYfSlbCWoiWILbybXMHENUuIwVckZOeWObC920hWOBNc9SNsAVVHWDnckZMStqrfCEOv\n4RWG/JEk3wnOc6SDnZ2VII+ekvWpGDByVAJ9Q4eg8TYZOZvrkmBW4+3SLS8AflTpeFIBftXfIl3d\nikMywji9tNKBbvpJhFHD3tSx5eTLdJILKuujPLIVkHBaAASVOYt5lnRcy3fLc1N0P4pVk1CS50jA\nseEWCSWVA1WeJ2OM00vkeY8em2oXQpPx2MGxgGwXmUtTcF/LXbO7mAX1KhTpHqclYXC/hPwUVbYr\nK+Mv7MLocdnujHdwdQtBqeBlgScByPLI6VnX88s8OG8lIuOYEx3Qt0eem2vB4MFKJ0KhyX2GLog+\nYJiYL8uy+1n57+RCWS1WRp6Ha0l4suUDsmydEvQ+78cBd8u6Ah/0m9buPa8SMMz3yZjfSC003iqP\nx7Xk+dZvlu6KxUEYeUNCt0L4Do5iqnxjTbL6hCqz6YLm69oh4Dez/kDEmkGcRKVIKpUCwM7npZvF\ntBmp0+W6Li+99BK7du2ir3+AkuXgOJ4/oCUHO4t9Ryj2v4Fe1YnRtA5FjfzM4HOgG93bg2IMT4qy\nTn7o3OHKWGOQbcK1pUWOEDJmzI/vFZ4NGf/lTGpxZbkFADpUugAG7qMg602L+zSB76IRQOJlkcLT\n5bnWeyrzOc1pTnOa078/6brO+vXrOfr6Xl47nWTHBpOiCYrwKJtfdEONTAiOnI1i2Qr3339/+MJw\ny5Zb2f/K87x8xOJTd1fG0997m0NjjcfTuzX6hzWe2ZfimX2p8HvHgXxJoTCo8Mz+al543WNph0sq\n7mFa0D2oMDKhgzDQjCS/+qu/yrZt2xgbG2Pv3r3s3buXifExCpZ8INEMnc2bb2HHjh0sWrToPQ3U\nKYrCgw8+yIc+9CH27dvH3r17GR0ZYjwfOBUreGRQFJfOVpuoX1ZGBMpfhUrIzwuhPwEI4WFagsYa\nG9eDTEYlGXcpmJArSDdFCa5J4CxqRInGoqF7oYdHLpvDsi0U4ZKIKigKJGNw00KXbM7CskwaaxyG\nxlXyJUGLPjUx6N26RCAfL0xLOtqlEx6jkwol06Mm5dDaYPLF/9KIAJIxl6XzTVZ0ljAiLoWSwqlL\nBl0DOi8cTqKr8BsfG+VyT4RnD6b47o+rqUo65AoKR87ESMVd/s9PjdBaL8sicNWrOEYPlsyzeOTj\no/zN03V0D+qcvGSwelFJxkmLimlceB7YNhRMJQQaJ7IKJ9+OoiiETonlihkejiOwy2CgYN071pu8\ned5kuO8Sq7c+xMRwFxPDXdS3raamaSGObXLl1MsgTOpalrJ4zUcq3O6CF/qqFqFp/mpqGhdw9cwr\njPZfZGzwMoqikaxplt0F15+khsvEcBcjfRdQtQgrNt1PIj0zIidwZZMDCAoNrcvxPI9rZ17B9Rzq\nW5Yz2H0aRZPfd53bTyJdT1Xd/BtXfrmzmlvmvmKXcBwLVdXk+YUDFi6uY+E6QR9+Kl4YIFnTTPP8\nmxnsPo3rOowOXGJ04BKJdCPVDZ2oWgTXtZkc7WFy5HpwZnSu2E7rwg289epTADR33Cy7H2aRiyde\noFTIgKagN8u+naJrxG7qIHf0PJlXT1Fz3zYU/8KcPpglV5ATZTzXIff6OTzTJtLZjNFaR+HMNdyc\ndFJU4lESaxch4jGy+0/gTOQonL1GbLksQycrJ8hoNSmUYMBZgCTNwHNkP7/c+a/iMBSB3liDMzKJ\n5siosfzwJALeEbYDOVj1la98hZ7+PkzHhqhOYnEHajwKrkthaIzClT48y2b8jXNMHL+AEtERikBB\nEFE16lNV3HbbbTzwwAPEp7mUT9fmzZt56qmnGBgcpdg3TLSlbNJT2B6mrkfZLmX5m9eHcCZyKHGD\nSHuDPxHPRagyySAA8hBgT+QQqkKkoyl8NRJ0Lz0riPmdaoNCVVESUdxcEWdgDLW+CkyfrvYkFFCV\nTt/QxRCg2DeMIhRqa9/dAX5Oc5rTnOb070+rVq2iurqayclJqqurGRsbw7KsGfGdN1JVVRWGYWAY\nRgh8rF69murqavr7+7l06RKLFy8OlzcMg4cffpjnn3+e/fv3Mzo6yoEDByqeWVzXRdd16urqqK2t\npVQqhSCUqqokk0lisRjxeJz29nZ+53d+h9bWVi5fvsyePXt4/fXXQ9AFoKamhjvuuIM777zzPf/e\npdNpfv/3f58rV66wZ88eDh06RLFYDI8zAINKpVIIRwKzRgTbtj0DnCwWi+RyuRD8U1W1AqYKJIQg\nkUhUgEHT4b5YLEapVKKtrY0lS5YwPj6OYRj89Kc/xbbt0LHtnZzXpiuA3lzXpbW1lZ6eHlRVZcGC\nBZw6dYpTp06FkcHz5s2rcKq7du0aY2NjjI2NkU6n2bFjB0ePHqW/v58nn3ySRx99lOeee46BgYHQ\nKS84psDVbjqwV1dXR7FYJJvN0traypUrV2aNTg5U7jgH0m3RMAzS6fSM58wgrjYo//JoVU3TaG5u\npr+/n3PnzvGJT3yCixcvUiwW+ehHP0oymaS7u5sDBw6g6zobNmxg4cKFs5ZxMpnkpptuorW1lSNH\njjA0NESpVMIwDBoaGkKoM6jj48ePMzk5SSKRYMWKFbNO1AiONYCdOjo6cByH8fFx4vE4NTU1dHV1\nhcudO3eOVatWEYlEZj3G6ddhucojlMsBrumuicH3tm0jhOC+++5j7969YQTu5OQkExMTFS5qruuG\n10Pg8rdu3ToMw2BoaIhIJMK6detCSPDFF1+kVCqxfPny8L6wbNkyOjs7uXbtGk899RSf/vSnQ5fG\nG7URx3GYnJzkRz/6EYoi3+tkMhl27drF5OQk0WiU6upqHn30UYaHh/mHf/gHLl++zKVLl7jlllsA\nGB2VTt0LF05NAgrKJ4Asg2uwXMEyTU1NpNNpJicn8TyPWCwW3r/erU90+PBhvv3tb4f3kXnz5rFy\n5UpisRiFQoFTp05x9epVhoeH+da3vkUsFqsAhQHq6+u555572LFjx7veG+666y6OHTvG3r17uffe\ne2cAp9MB20Ce57F7926AMErdNM3QYVQIEQJ2gRPgihUriMfjM+4Fs0UBByDklStXQsg0cMsEOc4e\nOKTOJtu2Q2j4vUCVc5rTv0fNAX5zmtP/QgqhjYlL6OklWJaN55QQSuSdnfxcB88pIrJX0DXBQw89\nBMgOYUtzE5ev9mBNdBGp7gxXEYrK/8veewfXcR7m3r9tp+Kg90aCYAerGkWJolgtW5ZtSY7kxHHT\nZ9mJnZ7YuXFmksnMtceT5KZ/mc+yI9e45MZFcZNZRFLsVSQhkqCIRvSOg9PLtu+Pd3dxQIJUSezI\nCp4ZECCwu+dt23/v84SaHyQfriE3eQUrl8COtgtHNADbRrIMMXPYJyFJWazkFbKxy68K7L3tbW/j\n8uXLHD58mPHxcTKZDMFgkOrqarZu3UpbW9vrjrrcuXPnLbd59OhRUlkDFO2W25FkBVuSb+KLsPKz\ngIrr+qenZ93KEM9qNc2B+wqNyCiA+5zlkGTkQAlqqBLJSIAUEvATunC8CzlOeK/Jhc1RfhKwkJUg\nlpUUD5XlgOir/JQAvrTI3MhYNzI10eWAWOcFqFV9v3A6S14XMNaM05/lGx24z7lR8KA9z/pL/F+S\noP4h6P22ALhSfQ5E50QKe0+9LeYAlZLi0JDDAnrTIo4z3Q3t4Dna2Te3U7DAWaxktXDBsy2o2y0+\nO34Nps6JiNVCEG8+exDbFiCerwxGDzowm+zUm9l2MHWIuRGl99w6otQrpxNL7CuBsg3CAc9Ig5QX\n29RKRTRuZgRGD8y6AcqFY9OpvwtK6RnwLpBtB4B0449vbHMTcN025sYUEKwDfwnkkwKuzE2KsRG9\nKNr1RmlFULxCOOKlB2b7LVAt4MjJ0wLGwwLc/kcAiZFlYruTpwXs6C+/zRtcp+3yMYhecMpaI8ap\nnpjdR7Vi0VaBOqjdCaMvYCcHkAKdwqXRgXG9PiyUzSxkdqtjqbNeYaS5kRxGUSSqq6vnXwcxS+mZ\nZ57h5MnTZHIGlhLCV7ECX1EdkqJhmzrZmQH06WtgJNFnejFi15EVH5Isv27wGW5/bJ/dZQr2H4nZ\nF/GpQSQjBVoYgtWOo4c9Cwl68b3aLDQZKnRoccBdHFjyRmBSKxJuqNkxB2DVAQtJkigqKkKbxy2k\nUK+lzRe0oAUtaEFvXe3YsYOzZ05y+HyWt28Okc+nSefAtATkp8xzijQt4Y538FyYTE5m8eIWdu/e\nPWebRw4f4vD5DO960KDoBob8rtUWd67K09Erc+CMwit9MqmMM3/AkNBUlTvv2kQwGOTChfNc7c87\n1zViEkpVbR3bt29n69atXmxOWVkZjz32GO95z3tIpVKk02nvIWbhy6DXo9LSUt797nfzzne+k7Gx\nMVKplHd+/cxnPoOeHec271SQEACPTyqIXgEkl/V3/m9aEhNRlSX1esGa4PNp+AP+OdHE2WzWg/uK\nQtA/qggYKOi8THDX1SwMU+VyT4AVzbrnDvgajUh4uTuAYUqks+BTRTmryky+vbcEv2azqS3DO+9P\n0FKvz1nviR3QPaTx/IkI564G+ML3y/nQwzO8fXOCPScjfPXHZeR04bD3rgcSNNfoTgwz80cIOwDf\n7nvSnOsIcvZqkG8+X8rvv3+SsiILTbW92w7DlNANyYtK1hQBV35zTym6KXFPW4aKkrkd5raHTxOQ\n35x+ApY2m8iSRTabEM4QTW3EpgaITQ+yZM0uul/ei2nmKa1azLL1b7/hundufSzTQJYVWtftBmzH\nhS6Pooo+diE5G5vRPnGNXtdyJ+HiqnldFwrv29w43qr6lUwNv0Jssp/RvgtIskRJ5WJCReVMDF6h\n48xztKzeTlXjaufFYeG2bFTNibpKTREurnTayLkntS1MI49JnvkkyQqmmfeqbdsWkiRTs2g9kyOv\nIEkKFXXLmJm4Tio+Tio+7jWTjY2iaFQ2rKR20QbCxVUM954nMTOCovqpqFvO9FgPfR2HSSemsEwd\npSQChollWkiqQnBtC7nuYYxogpkfn6D04U0iDvYWsi2L1OkOcl2DAmKcihPbd/am5bJX+pDDAQIr\nmsh2D2FMxUkcvUTJjo0COLMBVSnYt0Rb2ob4m+S4AdqWKSb43HBQdeE/y4HXElevo8oKy5Ytu2XZ\nx8bG+OxnP8t4dBqpLEzlXaspWtaIdMNLTyORItreReylV7CzeXy2RF11HeXl5WzevJn77rvvVcE+\nV36/n61bt/LDn/yY0T0naXxyF6rTvt69lGXBDRM/rWSG+KHzSEgUt7Xi8/uFQ4xhIjt11ydjAvgT\nuexImiaAPNuefTpiWtimxXzAZGB5E+nznaQvX6f4wfXYgphFQiLg998W7jMzOZLX+ilSfJ5Dxi+T\notEo7e3tnjNKOBxm5cqVXgz9gha0oAUt6NXl9/vZsmULP/jBD2hoaCCZTHrOR64z23xyo2br6upQ\nVZXHH3+csjLxHFtVVbZt28Zzzz3HgQMHbppopKoqjzzyCG9729t46aWXOH78uPf+RdM0YrEYgUCA\nRx55hM7OTg/acAE5VVVZs2YNO3bsYOPGjR5k0traSmtrKx/5yEdIJpPk83mCwaAXS/pG1NLSwkc/\n+lHe//73Mzk56d1nJZNJ/uzP/sxz57vdPVchXAezoFTh79yo2BsjWgOBwE3bTqVSHnwWDoeZmpry\nQEB3vYqKCkzT9Bz1ioqKboKwbifbtpmenvbWcQElF+ALBoOsXLmSlStX3jRp+o477mBgYIBLly4R\ni8U4ePAgDzzwAGfPnmVycpLvfve7tLe3Y1kWZWVl+Hw+Dyq9sa3cssqyTENDA93d3fj9flasWOE5\nRN64bKGrsqIoaJrGkiVL8Pl81NTU3LLurqObaZpz2rykpISRkRFmZmYIBoNs2LCBs2fPMj4+zrp1\n6/jRj36EZVls2LDhlnCfK13XCYVCbN26lYMHD3qxrK7rmAsk5fN5rl27hmVZtLa2vqqztTtWcrkc\nTU1NxONxotEoMzMzHvw2MjJCPB7n5ZdfZvny5V6sbeGYcEFBNyrWHY8uKFc4huYrQ6Grmiufz8eD\nDz7Ij370IxRFoaSkhPHxcS/6tlAutNvY2IimaVy4cAFJkli5ciWapnHy5EkOHjzoxa02NzeTTqdR\nFAWfz8ev//qv81d/9VccOnQIVVX5tV/7tdu2XSwW44tf/CLj4+OoqspPfvITD8Yt1P79+2ltbeWh\nhx7i+eefZ+/evaxatYqNGzd6UeQ3gnMw6wqnqqrnPCfL8k3t5K7rRnKfPn0agOXLl9+y7MeOHeNL\nX/oSAHfeeSfveMc7bjrW2rZNT08PP/3pTzl16hSZTAafz0dVVRUNDRlMcEcAACAASURBVA1s376d\nNWvWvOr4crV69WoPeH322Wf52Mc+NmeMWJaFYRhz3BMBzp49y8GDBwG8d1HuMS8QCGDbNt3d3QDe\n/ZkLThf2hRvZXhjrDeI4XV9fz/DwMOfPn2f16tXArNufGxt+K509e5ZEIkFjYyNNTU2vqS3eLLJt\nm97eXnp6ekin06iOG/6GDRu854ULWtBr0QLgt6AF/RKpENrw6ZNIvmoBj5l5sCSkeSAq2zIEjJce\nRjYzLGldzNq1a4FZOO7rX/9XUkPHUfzFKMHZWVGSJOGvXIWvYqVwkZruxMonsPUMZm4GTZV55JF3\n88EPfpCOjo7XDOzJsszatWu9cvxX6Hbb7Orqovv6ILaRQ7qNY+9cJyt7NhLUBYPcds1NQMCZGWAL\n1wZd10mn03Mgv3wuNwv3KX7P7Ur2RWY3BwJO0k3x95LVTh+6LwULFyxUgdtWoseLa5YkGVuSBLCY\nj4ISFlGr4eabQRt/hYhmTTtRq6l+wIKy9TB1BiZOiuV8pU5Uqwp2DpCZ6xB3I4QniW1EX4Kp8wLg\n8pXcotFlsV1JEcDh9AVRt+LlN7/Rc9tCVmf7Zk5bOTdylgGBaiQ1DEYK23GJk+KviAfulXffDOLN\ngfsK4CR/hVh+7OhstK/b/iAgJSMpnO7CjXPLfKOdR2EdAEL1AqLKu+CZKlwyS1bA5BnRH+PHxLaL\nl0LAiRG2deG8mJsS5cyNQ8CBLz0Iy3EBmFcO/Jebdurp9KUkCWBv6iVID0HtduG2l+wRccW245Sn\nhoSzW6BGQLP5aTF+sJDUIuyhn4g2sXQk96WjJIGREc6JsirqmJsSY68QZJzPPc8yRdRv9IIT0SwJ\nh7kbx0c+JpwU1bAYPxV3CyfK2CvCkdEFdS3de5ks4UbUzoKPAuDTQZLFS0+3fbzoXwf0sy3yU68Q\n1hS2bt06b0tblsUzzzzD8ROnyOgSgcataCXNcx31gKJQJVbdenLTveSGTyBbWSJhH4sXL6ampuYN\ng8/zHdsVWcGQTOZ1K8xHkSbPIEkSwZq1EA6TTmewrTy4brGZMbGsGnFiywHJjYYuOHaCA6He0E+R\nVtFP8S4x3hwpioL6KnDfa2nzN6MKo5ndByKBQMA7R65Zs+YNP7hc0IIWtKD/aVq1ahW1dY2MDqX5\n9xfC/OrbIJtJk9MhpwtIyjVLEhCVgPAGx1WeP1GEJIf48Ic/PGebLS0tLF+ximtXz/OP37b5ow/k\nb3IElCThOLd6iXO9YMNPjip894UAwXA5Tz/9NJWVlUSjUQYGBkin0567QUtLyy2P87IsE4lEPHfg\n/wopinITLFFdXc1g3wRTMZnGapNbnXYkt7KCNyGVkTBNJzoYqC4zyORkznaE2HFXxmljG8OQ0PU8\nyaQlXshJMja284DcJhwU8OWRC0FAoq3VnVghrhPqKg06B/wcuxjiPVsTwmS5APK71bNd2xZlPH05\nhGFK+GUByfk0GJpQUWX4lZ0x3n5vyovxnVNfCZY26vz2r0zz46MRvncowr/+rJTf+pUpznUE6Rvx\nYQHVpQb3r0/PAezcz3cb7sYiPvWuGTquC4fA//f/VvAbj09TWjR7fe6uqyrgdyKJ/7/vl3Op20/I\nb/O+XTFvuWxeIq+LmGWfBj7VJus+PHcaybJFG6sKkLeRsKhpXM5Q1ynSqRm62vcwNdIJSLS0bbsJ\nIiq8dbEsE8uZ1KKoPhav3sb0WDeGkSOXmqHIceiTZJl8Jkl0vEfAcU1rxD31fC+RChsLcV2HJFHT\nvI7kzCiWA5SVVi2icek9yIrKWH87PZf2M3DtONXNayirakFRfZimTmJ6iJnJfkwjx+TwK1Q1rPYi\nUTVfENuyME0d241JdTpcllVkRcRLTQx2YFkGsqJ51+eRsnqqGtuYGLzMzMR1lm18BCOfJpOaxjTy\nyLKKqvkprWpB9QWQJJmhnrP0Xz2CZRqUVi3iwuGvk0vHMc28qBdg5w1s00RSRNwuSER23EHsZ6cx\nJmaY+s5BgquaCaxejFoy6/xg53QyV/rIXLmOEU1g6waSpmDrBmpFMYEVzUghP8ZEDH1ogvzIFNZU\njOTxOFJAwzYsMtf6iWxe7RHQdi6PmcqSvTaAGU9h5XSQZZRICH9rPbZdMJkRkDQFSVWRZAk754yL\ngM+BzQYoUnxs37795j5HvNT5m7/5G8aj06gNFdQ9sgXZN/8LdTUSpur+9URaGxl+7kVUEzZt2uRN\nUH29evTRR+no6OBaTxdD/3c/te96AH9FCT6fRjaTwTJMURZn59XHZ5j52SnsdI5gYzVV967BliQS\n8TiWaWHldGS/RubydQACSxvJXLkurFxh9sRj2Vi5PGB77Vao0OrFpC90kesawrx7hYhJtsT5wPcq\nEVPxS92oNqxbu9aLFHuzy7ZtOjo6OHDgAOfOnSNn6BQeDVRZYfWqVezcuXMO9LGgBS1oQQu6tdyI\nyMrKSuLxOKOjo+TzeS/ms9ANrTDGs7GxkdLSUqqqqnjsscfmbHPbtm389Kc/5fLly+zZs4e3v/3t\nN32uz+fj3nvv5d577wXEef5LX/oSXV1dtLa28sEPfhCAgYEBpqamyOVyBAIB6urqbnve0jTNgw3/\nqxQMBueAHxMTE17kZi6Xe9VJVYXxki6c5K5fU1PD9PQ0lmVRXFyMaZoYhoFpmh4A5gIquq5jWdYc\noC8ej+P3+2lra/P6ye/3Ew6HmZmZYWhoiIqKiluCWfNpdHQUXdc9Zy133ampKYLBIFu2bKGurm5e\naEZRFBYvXkxDQwMvvvgiY2NjnDhxgrvvvpsXXniBc+fOAcLtsLi4mHQ6DQjYdD4nOFe2bVNSUsL0\n9LR3f9rV1XWT05wLBCqKQigUYsWKFQSDQcrLy6msrPS25bqeuVGxhYCSu4wLN4KAryRJYufOnbz0\n0kucO3cOWZZJpVKUlJTMcaqcT64DpOt8uHr1ak6fPu3tay7AKssy3d3d5HI5ioqKbgvp3NinbsRx\neXk509PTXhs2NjaydOlSjh8/zszMDO3t7YTDYerq6jyQyjAMJicnvbjiTCZDSUmJ58Tn9/u9sXmj\nU1shDOwCqG5bA7zzne/kpZdeYnBwkFwux/3338/09DS5XM5zbPP5fJSVlSHLMrquc+nSJS/G2jAM\n/u7v/o5cLueNR9cN0O1L0zSprq7mQx/6EF/96lfZv38/HR0d7Nixg82bN8+Z2DM2Nsbzzz/PiRMn\nSCaTZLNZwuEwiqKwfv16Nm7c6MX+vvzyywwNDXHx4kXa29spLS1F13X27NnDhg0bPJgtlUrR29vL\n2bNnicfjHrTa0tLCunXr5lyTukCi66SYSgmn/VAoNAc2u9WY6uzs5NlnnwXgve99L4888si8+6Ik\nSbS2tvI7v/M7LFu2jO985zvIssxTTz3lQXCvR7Is8xu/8Rt8/vOf58SJE5imyUc+8hEvQtwwDC8m\n1z1XHD58mG984xsAPPHEEyxbtox8Pk8qlSKbzXrnlxdffBHbtlm9ejW9vb0enOeed/L5vAeE3uiU\nKkkSO3bs4F//9V/Zt28fq1atmgOE3+5+wLZt9u/fD/CaXAzfLMrlcpw8eZIDBw7Q19d3099VVeXe\ne+9l586dtLS0/DeUcEG/bFL+4i/+4i/+uwvxZtXU1BT5fB6fzzfn5LagBf13yT1ZXbl8iczMAMHy\nxai+MLZteV+4UbOOU5cEKGYCJk9TFFR573sfn3Oh0dLSwsjIMKPDg6SnupF8EWR/8ZwToyRJKP5i\nAaYofox4P+GAxoNbH+Dpp59GURRqamq455572L59O7t372b79u3cc889t51l84uSmDnWh62GkQJV\n80NEriR31roDkCFBZgiyE8ihGrBySEYaqWw1kqKJL0nGtk0sx8JZcx5YCyt6W8QCSxKMn0SydYL1\nd6P4izEME9MykRI9s05nvtICGM5115qv/ZzfpQcE4GebgIJk6w7bmRdOdTUPQrjh1m/FJEl8XrBO\nuO3lZwTUZiTBTAuXrtLVAkaznShdDyS9hdOgrQuALjMKRly40akR4e7mxeoiti37ZusxcVx8ZrAe\nyu8U60cvwswViF8V9cyMivUU56KwMP7TSIpl1BBExItUKTsOmVHhlJbsE/BXxV23GQOuA55TPkkW\n5U71gpkV7RVynAUlFWYuCRezktXCuU6a3czczbpAlTTrnOe6IOYm8ZzOyjcIh7NQo4hANhLCPTAz\nJqKAE53ie3YMEDE+mFkBzLnbl/1zoT3vy3EgdNts8qTjulcCpQ5o5SsHPSbGQapP1LW0TTjgFS8X\noGGoXrQxlgC1Jk6AmUayTNDjSGYaGROfplFUFBYRAaYp6uWvwHMTDNaK+rlgXvL6LLRpGaI/k9dF\nOZO9YIkXxKJPikSbl60TjodGSnxZeTGG0gOQGQcUMLNIgXJsPSn6SgmJz5m+ALErEHPGVm5C9Kni\n3Dy6x1PbFN2a7IPsGGq4Bl/pYvTYdaxYN4ua6nn/+98/73Fu3759/OQnz5PWJcJL3o4Wmf9Biugq\nCS1UjlbciB7rQ5Ph3e9+F7/6q7/6ho6jtz62y+j5vLixlxTHvdDpy7EjSJaOHGlCq74Dn88n4gZM\nE9s2kWxg4pSAJCs2iDYzsxBpEfCmbc1GbkuK45p6Q7nVsOhXIyWOPap4uBUMBlFvEQfm6rW0+ZtJ\nlmWxb98+nnnmGfbs3Uf39X7GxqeZjsYYn4zSPzjIqZMnOXXqJLZt09LS8qav04Jeu95K9xFvpbos\n6JdfbozNiRPn6BnMk8zIbFilIjuz1k1L8qA+w5SwLJmeIT9f+EEFWT3CA1t3zPswta2tjVOnzzM0\nmuFyt83SRoviWzyXT2bgu/tVfnwkAHKE3/jNT3gztYPBIDU1NTQ2NlJfX095efmb4tg+PDxMZ9c1\n/JrFysU5NG3eq/hZ2ZKA+yxhJL33VBGjUxpv22wxMqkwEVXY1JalokQAZ5omYErTchwxfD50Xcxm\nVxWboB8yOYl/+Y9SDFPm6UcN0b4S5PM6PYMa1wb8GKZEfaVBU81sVPLtAD+AnxyLcOW6H0UWrniG\nJWNZNn6fzUP3JnnbppTnGDi70bnblCRYsShPIi3TPegjkVZYtyzL5V4/PhV23JViU1uWrBOlG/Tb\n3vrSPHBf3hCRwSsW5Tj0UhHxpMKZK0FiSYWKUpPikIVtC1Awm5PZc6qIf/mPMnqHfWRyMu95ME59\npcF/HI7wzA/Kee5whJ+dLOJHRyMcbw+hGxKVpYYDs8oerJfX4fljfnQ7SN3iO7Ftm+q6FkYHrhCf\nHsKyDcprWqlbvGG2IW6QZRqYhnAuUFSfA7T5SMXGySSnyWViVDe1IckyqhZgauQa0YnrlNe0UtN8\n6wl8lmVgW6aYiGZbWJa4xi4qrWW0vx1TzyHLChV1yykuq6e0ajGBUAnZdIxcJkZieojxwcuM9bcz\nPnCJ2EQ/pmlgWQZGPktVwyoUVdyHK4pwVJMVFUXVUFSf+FJUZFm4L5iGTlf7HvRcmlCkkobWuzzA\ntbRqMen4BOnEBFPDV7GxqahdRk3zOkormwhFqjD0LOMDL3P9yiEmhq5g5IUTRCY1g55Ngm0SDAR4\nYMsWAFLpNEU1lUTqqxx41Ub2qQRa6jAmYpjxFProNJmXe8j1jpDtGiJzqZfUqSvkeoYx42kwTSSf\nhq++iuLddxJctwRjPErqxBVyPSOY8RSSLCMpinDesywwLeycjj4RQ2uoIPNKP+ZMisylXvKDE+gT\nMxjTCYypOPrIFJmOPsx4GiUSRAkHRFkt4fBnmyaJY5fAMCm/axWxC52Y41Hu3LCRXbt2zdvvhw8f\n5sWjR7BLQzQ8tu2WcF+h1KIQgbpKope7GeofYPv27XMinV6rVFXljjvu4OqVDmbGJ4levEZ2dArF\n74OgD9O2sXSdXN848SPtJE9dwc4ZaFWllO26C9mnoSoKqqah6wIWNdNZEofbwbIp3rGBXNcQtm7g\nb6lDCfrBNAUw6YC3cuDmODXZr6FPzGBGE+ij0/gX1SKrCuFQCPU2sEFmcJzxF84QUFQ+8OsfoLa2\n9nW3yS9arpv9t//tO/QO9JOxdHyLawksrkWrK4eiIKnpGGNjY5w9c5aOK1e8eLcFvTX0VrqPeCvV\nZUG//HInB/X29hIIBOZAPIWRtIUxs83NzbS2tlJRUcEnP/lJFi9ePGebwWCQhoYGzpw5Q2dnJ6lU\niubm5nldrkAAZV/5ylfo6emhrKyMT33qUx54VFJSQl1dHY2NjdTW1r4pXIkCgYAHS0WjUfL5/Ku6\nYJmm6cFPPp+P5cuXU15ezpNPPklHRwfZbJaKigo0TcPv96MoCrque/CXpmlkMhksy/Kc/VKpFMlk\nkqamJu/ZputCd/ToUWKxGNls1nNEc3W7e0rLsrh48aLnKJjJZDxYR1VVtmzZQlVV1atC9Iqi0NTU\nxODgIIlEgvLycvL5PIlEAlmWqaqqwufzkcvlxOTwYNAbby70U6hCtzfLEhPBqqurURRlTnyyqqqU\nlpbS3NzMkiVLnGfEKqtXryaVStHX10d3dzfDw8MMDw8zNDREPB733P5gbvxnIpFgamqKpqYm1qxZ\nQyQSwefz0dnZSWdnJ5Ik0dbW5sU/31hu2xYT1Vxw0IU1i4qKPJBP0zSqq6tRVZVAIMC5c+eYmZmh\nqanptuNd13XcqObCn4PBIBMTE1587cqVKwmHwzQ1NSFJkge1TU9PMzY2xtjYGBMTEx5o5u77LnDq\nxhi7To6apnlfiqJ4/ZXJZLx42QcffJA1a9YAAt5bt24dFy5cIBqNMjQ05Ln11dfXU1lZiaZpJJNJ\n+vv7uXbtmgfJ2bbtmcCASBrYvn07w8PDzMzM8NBDDxEOhz3Qs6amhpaWFq5evcrk5CTt7e0eWHr8\n+HH27NnD97//fa5evUo8HvdcoHfv3s0nP/lJli1bxokTJ/je977H5cuXSSaTnrukLMseZDg0NIRt\n25SVlXHu3DmuXr3KkSNH6OzspL+/n8HBQfr7+7lw4QInT54kn89TX1+P3+/3QNJ8Pk9nZydHjhyh\npKSEnTt38uyzz5JIJHjsscduCWZ99atfZWxsjF27dvHEE0+8pmdES5cuJZfL0dnZydTUFFuc+8rX\nq7KyMlpbWzl37hx9fX3s27eP6elp79jlxi0fPHiQZ599lmPHjmFZFjt37uQd73gHsix7+5lhGOi6\n7jm51tTU8NBDD3Hs2DFyuRw7d+4EBBzr7uNuJPyNda6treXAgQOMjY1hGAbLli1DluXbOrjats13\nv/tdTp06RTAY5Omnn37DCRi/SI2NjfG5z32OY8eOEYvFCIfD3HvvvaxZs8ZzKx0fH6e/v58XX3yR\nTCbjAeALemvo53EfsQD43UYLN24LejOqENrITHWjBUsJFFehqZoTq+TaBsuoioJPH8caP0HIB/ff\ndy9PPvnkTfDexo0bmRgfY2xkiFy0l9x0J7ZtgqRgmzpWPkk+2kVm4AhWrJuQX+a+++7l4x//+C/F\n7NpgMMjx48cwc0nsokWO0+FtTo6W4UAqjlvc5Gkk2yDcfD9WZgJbT80F8SQZSVI8yM+1LM7lciBJ\nAvBL9UOyB8UfIVh/jzcbR8/nsVN9wilNkgTAFqwDNcisM90typqLwvhRDxiTbMP52YlvrbxLAFqy\ncgPoNc821aCAplIDArwJL4LsKEgalK8XQJ3tvGiT3DeC88F9llhOUiBQKSKALUPUKzXgLCQJCNDK\nzQJciW7hzmY7kGPsMiSugR4XAJGVF9/1uADP0oOinn4X2JTEtrJj4K+EUAO2VopspiA/g53sF3Uu\nWQXB6tmyF1bBNh24z4GT3ChXSRLlyo4JGK1khYDvZAViHaJc5esd6O1WY8qBngrJP1kTO2yiR7SR\nJAtHRSUgPtNfCZHlDhRnzZZJDYto09K1AsYz0qLN1LDTt874lhTnZ/dLdvpdcsDQblHnUAMULZrt\n01CDAOHy0ZvBOzMvxvLUGaTp80ipfiQrjyKD3+8jHA7S1NjIXXfeyYc//GE+/vGPs2LFCs6ePYOR\nS+GvWuXdvEmSJGBOxSfqYKRFG98IMhqpWfdAJQTVmwUAmp+ZHTtGWrRlYX0xxBizddFvRUvF2MmM\niHoVji0rJ+qcHhRAr6w67Y5oe0uHqbPItkGw/m6wDDL9hwj5ZR5//LF5Z2e57n0TUzH8jVvQInW3\nHh8FkrUgkq+IXPQ60elJdu7c+YYu5m91bLdMHdNyXPaMtLMPnnLGgwWheuzyO8gbBoYzc02WZQH5\nJcVxDFlBirQKF0gjKca+VjJ7jHDHt+coe2PhEP2QGYVADbIvJB4C3qY+Zmb6Vdv8zSRd1/nCF77A\nT37yPBNTMfJ2ALViDf6aO/BVtaGWtmKrRWSTM8xMT3Hl8iVGR0e8GYcL+uXXW+k+4q1UlwW9NVRR\nUUFTczPnXrpEz4DB0fMylu2juV4lHFQcgEflyvUg3z9YzI+PRTApZuMdm/jN3/zNeY+zwWCQ9evX\nc7G9g+GxLAdOS1zplVAVG8uCZFpiYEzmhy+q/MtzProGgshaCR99+mO/FDGJFRUVHDx0mLEpgy3r\n08iSjXabW6JsXphMy5IwGv/GT8tAkvnEEzq5vETvkMzolMK9azLi/lNyID9DRCKDAP0syyTgF5dp\n39pTzNU+P+GQ+NC+EYmSIomAptM9qNIz5MO24HJPgOVNOSrLnHucW9wO2TYcbw/yrb3insyn2aQy\nCpYz56W0yOSj744SCtj4tBtuhZxtuJfGrlrqdfadLmJ0WuVd9yc4ciGMLMHWO9LUVxnohljY77Nv\nCx6mswIErK8yeOF0ETldQpGhf0zj6IUQJy6FOHkpyAtnBLT3Sr+PnC4RCdmYps3guI99p4voHfGh\nmxJ+1Sbkt7EsiURG5kqvn0MvFRFLyixvzqFqwsXi5S6Ns1cCqMFqaprWYNk2mi9MSUUdI30vI0sK\njUs3EQiXCjDQq4CNZRoYRl4kAACyIsA4V7KiMTV8jVwmTk3zWnz+MLKsEJ8aJD41QFnNEkorm70G\nlZyJc+5nGIbjaIYkXO1sEbErKyqTw6+QzyZBkigub6S4vFG4nBRXU9O8jpLKZrAtZFlFUX34gxHC\nJVU0Ld+M5guSSUyRS8coqxIRWwL0u80kOaD/lWPMTPZh2xaLVm6huFxMihPllqmoXY5p5EnGxsgk\np5gY6mB84GVG+9rpf+Uog50niU32kc+lsG0TTVWpqChn8aJmHnzwQR5//HE++MEPsn37die++wKZ\nRBK1pRbTMGYdzDQVX2s9vsYqJFnGnElgpbJYiQxWOoutm060rgUBH8EldZQ+fC9mIk30B0fJdQ5i\n5w0kn4paUkRo7RKCqxbhX1KHVlMOhoWV1zGiCbLXBrF1E0kWsbH+JfUE21oItDagNVaCJGPGUpjR\nBNnOQZRwAF+9c963bLJdw+S6hghUlwlnu/PXiPiDfOQjH0FRFM+RQ9M0z7nhy1/+MuPTU1Rs3Uig\npvzmLrmFtOIw2bFp9Ok4xZHIbeOubqdAIMDmzZvJpNJMjI6Rj8aZudJD4kInmYtdZC52k+sewkpm\nkBSFwIomIlvWYisy+XyerONSoigypq4T3/8SxnQcSZaQi0JgmpixFLZlodWUO7G8s+79IvpYwH7e\n3mbbqFWlIqJ5Ko4+FiXS0kCoZH4nV9u2SXYOMPbT4wQlhbe/7SF279793/LCx31hOzo66jkzhUKh\neV/CGYbB3/7t33L2/EtkZZviO1dS89C9lKxtJbSollBzLUVLmyhZvxQ5HCQ5PsXU2BgXz19g06ZN\nC5DfW0RvpfuIt1JdFvTW0MqVK0mn0wwNDREMBikuLkbTtDkuSD6fj/r6elasWEF9fT0VFRV8+MMf\n5sEHH5x3m/X19dTU1HDx4kV6e3s5fPgwExMT+Hw+8vk8sViMzs5Ovve97/HDH/6QWCxGZWUln/70\np9/04Lksi3P75cuXsSyL4eFhzzXuVkqlUsLMQdNoaGigtraWNWvW8NRTT3H8+HFisZgHuoGTTqKq\nnsObCxeBcPoyTZORkRFs26ahoYGJiQnGxsaora3Ftm3OnDlDNBpFlmUmJiaoq6ubU775zv2WZXHh\nwgWmpqaIRCKYpuk5prnA3rJly/D5fK8pPcSF5lxX+iVLljAwIN7pFLoVuo5mbtvOVy4X8HLjbIPB\nIKFQiNLSUs/Vsba2lubmZurr6ykrKyMYDHpuYlNTU4yNjRGPx7142Gw2i2EYZDIZotEo0WgUVVWJ\nRCIeuDYwMEA2m/XgGdM0WbZsGalUimvXrqFpGuvWrUOW5Tlgohtz67owAh5s6NYzkUgQjUaJx+O0\ntbV58N/ly5dJJBI0NDTMCzMVbr/w/+5nSJLkjQ1ZlmlpaSEQCHjGKq2trRQXF3vX2j6fzwMmN27c\nyOTkJLlczhvTLth3O1mWxeTkpBe7+vGPf5zi4mLv70VFRdxzzz1cv37diw/u7e1laGiI69ev09nZ\nycDAAIlEwoMhA4EAVVVVLFu2jIcffphHH32UD3/4w9xzzz309fUxPDxMIBCgqalpjpNjeXk5Dzzw\nAE1NTWQyGcbGxohGo0xNTXn970YQRyIRPvCBD/Doo4+yb98+/umf/omrV68iSRKhUIilS5fyjne8\ng/vuu4/169dTX19PPB7HMAwuX75MR0eHB/gWFxezfft2HnjgAe68806WLFlCPB5ncnKS7u5uzpw5\nw/r166msrPSg2e9///sMDg6ye/du9uzZQ29vL7W1tTz55JMkk0lSqZQHWIKAu775zW+iqiq///u/\nf0toej4tWbKEffv2MTY2xt133z2nf16PqqqqWL9+PSMjI4yNjdHT08OBAwfYs2eP93XlyhVSqRRl\nZWU8/vjjbN++3TueuMcxd5x+8YtfZGZmhvLycsrLy+nq6mJmZoaGhgYikcgc10jLsubEHbuSJInq\n6mpOnDhBV1cXuVyO9evX3/IeIJfL8Z3vfIc9e/YgyzK//du/Or3LPAAAIABJREFUTWNj4xtqj/+s\ndF1nZGSE0dFRZmZmsG17juNkoUZHR/nc5z5HNBqlvr6e973vfXz0ox/l7rvvpq2tjbVr17Jlyxbu\nvfdeZFmmt7eXrq4upqam2Lhx4wLk9xbRz+M+4g2ROS6FWyhJkjxbzFdb9uelW5VhQQt6K8m11ZUk\niRMnTpEZPEx2JIivYgX+onokTcO2dBGpO/UKmBnCfpXNmwWQN98Ft6ZpfOITwnli3759DI+Mkpu6\nSGb8gvcwUlEkwppCfXMju3fvZufOnb80kYJr1qxhUXMT17r7IT2MHW5Ekn0C0JpH7ksNZA3SQ0hG\nCiVQjBZpwK5cRWboNPbEaeHs5nfs4yUZSfZhm3lyuRyKIovHurIK2UnsiVNIZh5Lz5Ds/BGyvxit\nfBmyXISphkGaES53RhJGX3AiSxuYG4XrFVAASpOnBaSjFQuAyXGes5EErBesm399V5KEF/ULEG4S\nkJiRKmgbx23NyhWs5/zjrD63bG7bKSAHBAwoawIg1BMQbZ+NuS100dMiAmiLvSLgM9knyhJZCsEa\nsQ1Ld5zsukQZoy8LyKtqs9hWokuUK7JMrG/pWOUbxefFe8CWhUOdF+0rOcyd6TleinIVwH2ugrWA\nLNo4MyJiRqHAjU/l1o6GBdu+qQ98BW3KbLSp+ztJEo55obqCX1oCCEUG02mHyTNQvWV2PN5OuWmx\nvOVAc8UuKCUhLNoUqLpPAJrxayKed+qC40Io4qRwo2tl1ZnFo+DTFOrqatm1axe7du3yjg+rV68m\nGPCTSMbITvVghxudceOMoUgrFLVCfgYp2QNGEtvSxdjBguwkYAqHuPqdYryPHxOuftiir7UiZ6zU\nirKZTj8lesVYyU2J2GksAf+pITFOgjVO5LMxO7b0pIiWzk5ClYicINErfi/LmHqWTP+LBFSL5cuX\ne7O9boxdtW2bkdExLCWEVtL86v1SIK1kEdmRswyPjHL58uU3HGdeeGzfu3cvPb3X0cdeYs44dfdD\ntw3DLWIc2GAYJoaRFi+wjARW9LwYA6YBw/vEepYu4naLWmbdIW3LASfl2bHiyjYh1AzpESeG+gj+\nhvvAjsw9JriL2xZ6rI/s0AmCms3mzff+Qq8t4fVH7L7WaGY1VIm/qg091k9q6DjHjotY9E984hO/\nNOfXBS1oQQv679LGjRv5X//rT3j22WcZHRnkuUNZ/uOQSiRsoyrCZS+vayAF0AJhb6b07V7g1NXV\n8ed//uc899xzHDt2jGsDca7155i9jpPEtZvkZ836dbznPe9h2bJlv5D6/mfV1NTEypWreaXjLPtO\nF/HIlgRGSkB+ijJ72emefrLOnJeA3+J7PyvFsCTuWGlRUQIPbzE4fVmh47qfL3y/lN94bAZFEbeN\nAR+ksvacFxemCf++P8K+U2HSWRmw2HtCXIt/d7/K8kVllEdyqIpNyG+R0yX+zzcree/2OFs3pggF\n7ZuusKMJmb0ni/jpCeGOsOvuFPtOFWE59yY+zWZTWxq/z75lHLErCbCd+5risMU9bRmOtYe40BlE\nUwVUZ1oiJhd7Fuqb7zmrboBuChdJCbFhn88mjMWf/T8THG8PcfRiiLFphbyuoak2RUGLTW0ZdtyV\nIqfDnz9Tg2nZlBaZbF6XZsedKc/R0LTgUrefA2eLaO/yc6w9zPCkxiefyBAOKRw+p2FYPhoXrUPV\n/BiOi6I/XE2oqJJcJo4vGME0dCzTuLkCTsUURUNW5j4uFFCghG1ZjF6/wJK1uwGwsW+Y/OXGF8/e\nLFqWAbblOEuY3jZn47xmX6zFpgZoXLrJW0aWJYrLGygud2OnJTFhxcgjySqhSCXR8V6iE9fpufwC\nLW07YF64b/Yzh7pOM9LzEoaeQ1FUqhrbCv4u6iDJEotXP0j9kjsZG7jE6PULpBKTYNvIioqqBQiE\nS/D5gliWQSY1QzqdY3BwCFVV2bVrlxc1FwwGyaRS2Pkc6Z5h4dgmOzue47ahVZbga6gkcv8arEQa\nMyv2ocThi+jjM4CCVl5M8e67yA1PMvNTESUrqQpKaZii+9bgb6kTzn2uLJvQulbyY9PEX3gJM5pA\n9vsIrl1CYPUitPLiOcRraO0SzHiadHs3mZd7SBx9GduyCW9YigVkLvdi5XVyUzH0yRgBWWHRokX8\n9V//Nbph4AKcpaWlbNu2jebmZvoG+iHoo2jp63/5UrJuKWPXRzl48CAPP/zwG74+DgaDPPXUUzz0\n0EN89rOfZXhkxIlOdsaoLBNa10rR/WuQNdVzK8SejYOzMlkSL7aTH54E3cQyLZLHLoEiYotznYOE\nNixFCfqRNUEUW3lduB+6kKYnG1lT8S+qIfVSJ+ZYlPHvvECypY7idUsJVJcjqQpmNk+qa4BYexdm\nLEVQ0dj24IP82q/92i/8RU86nebo0aMcOHBAtJ+370J5aRnbtm1j27Ztc+IVv/a1r9F++RJ5n0LD\nYw/iryydd9uK30fp+mUULRXRzAMjQ/zjP/4jn/nMZxYmPi1oQQta0G0kSRIf+MAHqK6u5rnnnmNm\nZoaysjIPgHIhv0AgQCgUoqqqig9+8IPcddddt93u5s2bqaqq4oc//CHt7e2cPXuWM2fO3PTZgUCA\n++67j0cffZTS0vmP8W82bd26leeee450Ok1xcTHxeNxzYyuMNVYUhXw+j2EYyLJMOBympqaGUCjE\njh07UBSF973vffzzP/8zk5OTnmuhC1e6LncuFOPGwk5MTHixsZ2dnXR1dSFJEt/+9re54447CAaD\nBINB/H4/6XSaY8eOsWrVKqqrq+c998/MzNDR0cH09DThcJj169dz9OhRD5ySZZnW1lbv59eq5uZm\nz5GuMNrVBchc3RjJC3jRnHknPcZ1KJRlmfr6ejZu3MjLL7/sQXiuy2AwGKS2tpb6+np6enq8v7uw\n1/j4uAeRKYpCZWUltbW1hMNhcrkcuq6zfPlydF334pi3bdtGMBj0trNp0yYOHjyI3++f4+w2X9vK\nsuwtV9gGxcUi+SyRSDAxMXGTW5+7rfnilV3ICZgDt7nt5NZNkiTGx8cpKSnxllFVlUWLFtHc3Ox9\njusO6fP5WLlyJefPnycajVJcXOy5fN5KlmUxPj7ulWnJkiU0NDTc1JelpaX86Z/+KT09PRw8eJAj\nR44Qi8W8ZVzYUFEUD/6cmZkhlUp57m6uS5zrRPjCCy+wceNGKioqvGs9N/Z33bp1bNmyxQMKc7kc\nMzMzfOlLXyKbzRKJRNi5cye7du3iW9/6Fs8//zzpdJpwOMyaNWv4lV/5FZYsWTKnT/P5PI888gin\nT5/mK1/5Ctlslurqat71rndxzz33UFpaOmcsP/LII1y7do0f/OAHXL16lb/8y7/kM5/5DIsWLaK3\nt5eLFy+SSqU4dOgQqVTKa4Pf+73fm9N+S5YsYceOHR4gu2nTptftZhoKhbjvvvs4dOgQBw4c8GLQ\n34iampr4kz/5E1588UWeeeYZz+nTHX+RSISPfOQjbN261QP7XBdY1xG2u7ubL3/5y0xNTWEYBj09\nPQwODnoupAcPHmTFihX4fD4vqtmNdXajvd2JYADLly+nsrKS/v5+Dh48yNmzZ3nggQd44IEHqKgQ\n5huTk5McPnyYY8eOkclkUBSFj33sY6xfv/4Nt8Ub1ejoKAcOHODIkSNzHEphtr83bdrkwZ3pdJq/\n+Zu/IZFI0NbWxu/8zu/cFFfsqra2lve///1s2LCBv//7v+fo0aPU1tbyyCOP/NzrtaBfTr0hwG9o\naGjOTgjzzx641bI/Ly2QrAv6n6KfB5Any7K33OXLlz2QIZPJEAwGPZChra3tlw48kGWZXbt2MTDw\nNdLT50EtwvaVgPeM1bVfcI4htiV+zseEe58k4a9cLW7QKlZhpMbRZ65jD+/HrrjDAencNrE9G3Ys\nE1KD2NPnhVMWErapY2SmITONPnMdSStC8lWIVx+2JSC71IAAmFzALVQrYCdbF45XcQdwA7F8dqrA\nIc6Br4oWzwvL3KwCSk+SxOdFLyLlxp3aIOAn738Fx9nCw7rr3Oe+sLFMEZUqSQLea3gI0sMCoEoP\nC0BNiwjAqqhVfJ84LpZXglB5N4SbxVvGws/xVwiXu/SAgNRcV8BQkxM3WyTaC0k8bDdzUH4XpEdF\nPWRlLkQ3pylcB7gCuNFz+tNmgcjpCwIU9Jc5TnFuG81DPNr2rT8PS/Spu31sAZn5K+a+JPM2a8+2\nNYjyFC0V8JoTr0rFnbfue9sSDnWTZ0T72+JlBv5K5oCe7raLV4hY3vSQiGU1UrMwXdFipFAtRSWl\nYOoYyRFSU6/Q3TvI8Nf/lc7OTj7+8Y8D8MwzzxCLxbEtHXv6PJKvFAIVXsVsIyeAsmA1dqhutr65\naQG72qZon6pNoJUK18pkryinWuTAsI03AKOIyOSS1cKhbuIkWFnhAFix0XEODMxdxxtbgwKeTfWL\n35esgugFsA1swyLXfxCfpqAqPq5d6yJnmJimPXvsvdbNyVOnkbBJZ3R8NWtvArteTZIk46tYQW7q\nIocPH37DgB+I49/OnTu5evUqff2D6EYeSQ1hGxkxNmVVuEGWrcWL3i6M2rUt7MQwZvQCkpkmHAo4\nN3k6+CJg2GJfz01CZLH4UMsQoLRtiWgwbtgHJJCLGiDdj2xlMUeOkRh/CV/FCtSieiR5LqguvwZQ\n/VZ6vXDejevu37+fffv2MTI6Rk6fv6/rbwBb9+/fz8mTp8k40cxK8NZuJZIk4ytdjOIvJtXzM06c\nOMXy5cvZvXv3a67jgha0oAX9T9WyZcv4/Oc/T0dHBwcOHOClc+eIZxw3aySq62q92div9UFqcXEx\nH/rQh3jiiSc4fvw4Z8+eJZFIYJom4XCYpUuXsn37dmpqan6udXs1WZZFV1eXN1M/GAxSV1fHokWL\nbrnOjh07ePnldvacLKIoaLJ1Y1qc1256jCIuxmQJfnQ0wosXwmiKxLu3ivN5RQn8wa/n+auv+Th1\nOUj/qMYDG1PcvSqD32c7D4ktDBNe7vJz5EKYzgEf2bzMlg1p1izJY1owMqly6nKQV/oUbCtE3pCQ\nkNi0JsOZK0H+bX8xP3gxwuY1GVYsyhHw2aRzMu1dfs5dDTpOgfCru+MMjqlk8yIWV8JGVWzuWJl9\nze1ZeBW/qS3N8fYQA+MBZFlAdcn0XMjENCVkyWYqphBLyeTyEqoC5SUGasFlRSwtkcnKZHIS6ZzM\nEzvjvGNzgvYuP1/5URnFYYu//O0xwkGxrc9+pYpQwGJVS47ffGyaihJrTuEUGdYvy7F+WY6+EY2/\n/04FvcM+/uU5m3c9oHO1T8OWglQ3rkaSFVRfAD0vHqQrmg8pK+P6iNk3uIpJsuJE2xbeC83eD4nb\nE1GYsYGXCRVXUrd4I6omZtjns6kbWtIB/SwLU885nzfnT1iWgWxr5HMpJFlBkhXiUwOkk1OEiiqc\nct7YSzamKcaioqiEispZtuHtXD75XaZGrpFNx6hfcieVdSvmQIq2bREdv87o9fPEJvvR9Yz3rHKo\n6xSLVm296ZmiJEkEgsVUN6xifOASqhZA1QJUNayksn4lJeXVhIJipn42HWeo9yJDvRfp7Orlf//v\n/80f//EfMzQ0xBe/+EVkWcPUDRJH2tFCYfxNsy43sqGj61ls3UD2+1AqSpB0g/jeMxjTCTBMpKCP\n0LpWrGSG+N6z2Nk8kqagVhRT+u77UYqC3CRZQvJrWJkcdiaHHPQTeXAD/kXi+GXl9NkIWdvGBpTi\nEJEta1ErS0gcPE/y+CWU0iKyr/RjTsfBtjETaWRNw/LLdHReQ7dN5KAfSVWxcjqpyXH+/fvfwzZM\n8pZJZNVypDcAaoUW1YFfZWJyklgsNgcee73K5XI888wzTMdjqFUlRHbcgRwJkz7bQeZqP9lrAxgT\nMwRWL8a/pB7Zr2Kms5iTcTLXBsj3jQk3PtNCDfqxdANLN9CKi7EDfsxsjuSRlyl7ZLMHWSpBP7Zl\nCcDPNMVYdga0MRYl1zlEJBJh1cqV9PT2kO0bZ6xXOLe4e54iy/hklfrqWh5++GF27dr1up99J5NJ\nDh8+zJkzZ4jFYhiGQSgUoqWlhR07drB06dLbbnP//v3827/9G+lslrxlQEBDLQ6DJGMk0ww5/f3D\nH/2Ih972Np544gkmJyd58fBhsrZJw3u23RLuK5QaDlL/ngcZ+M5erl67Rnt7Oxs3bnxddV3Qgha0\noP9pkiSJhx56iG3btnHq1CleeOEFrl+/PgfwWr16NTt37nxdiRFLly7lD//wDxkfH+fgwYNeZK+i\nKEQiEe68807uu+++WzoW/aKUzWbp6OggmUxiWZbn3nWra4aSkhI2btxINBqlra2NixcvkkwmPchp\nvvNhMBiktbWVsrIyWlpa2LRJTETZtGkTU1NTfOtb32J8fJxoNOq5z7nXmLquY1mWB5gZhoHP5+Ou\nu+6iuLgYXdcZGhpiYGDAi8U0TZOysjKqqqoYGBjg3LlznuNZJBJBkiSy2SyDg4PEYjEURaG0tJSn\nnnqKr33ta3OctoLB4BtyCnKd/9x+BzzIp9Dtzn3nr+u6B0S68bCFTIAL+MTjcYqLi9m6dSvJZJL2\n9na6u7uprKxk5cqVnnPh2NgYuq7T29vrOS0WyjRNxsbGGB0dpaamhiVLljA4OIiqqh4g19bW5rmu\nAR5c5MKcbp0K+92FYt0YWxd+KgTw3O+maXLo0CEikQiVlZWea1/hRLdC6bruAYo38hJu9CuI5xGp\nVIru7u6b0msKx6dpmt5+rmkazc3NpFIpLl265F3vFRcXEwgE5qxnWRaJRMKLunXBusHBQS5cuMC6\ndetuKrskSbS2tjI+Ps7Ro0c9oK24uJiioiJKSko899BkMuntD4cOHWJ8fJw/+IM/4Otf/zrnz59H\nlmWi0Shf+tKX+PSnPz3Hkc51AsxkMp4z3MDAAM888wzJZNJzL3znO9/JCy+8wN69e8lkMkQiEe67\n7z6efvrpeY9xPp8PVVXp7OzE5/NRUVHBb/3Wb1FRUeHtT4XHMkmSWLFiBZ/61Kf44he/yOnTp/m7\nv/s7/uiP/oh//ud/9tz/hoeH0TSNYDBIf3+/5wgoSRLxeJyenh56enrIZDL4fD42b94879h4NW3e\nvJlDhw7R1dX1htYvVF9fn+cmuHXrVp588kksy+ILX/gCQ0NDfOMb3+D8+fPs2LGD5cuXoygK0WiU\ny5cvc/z4ca5fv+5BsZFIxDv2trW10dnZyZUrVzhx4gQPP/wwIMBUv9+PruvecaAwSv5nP/sZsViM\n8vJyD6Dcu3cve/funbf8S5cu5cknn3xD7u6Dg4McPHiQjo4Oz2UxEomwYcMGtm3b5gGF8ymXy/Hl\nL3+ZU6dOeb+rrq723ArHx8e9/v72t7/NRz/6Ue644w6OHj3KxMQETU1N/O7v/u5rcihfvXo1n/jE\nJ/iHf/gHfvzjH7Nz507PJXZBCyrUfypb83Y0+q2W/XnpFwEQLmhBbyb9vIA8WZZZu3btfwoo+Xnq\njTgpuYCGrufAsBwQamMBmGcXvjkQUEpmFGn6ApJtoJUuxlex0vuzEqpEn+kVbnvjJwSIV9QCgSqQ\nVWzLwMxOCAjJSIFtIPkroHqTcLWzdUiPYcc7sfUk5BOiDEYKQhsEmBR/RTiGRS+KrxvfhmgRAV9J\nKiT7kLw4XxmQRXTta5XzQB8bAdpFQbYyWJKMhAW5CexAufM+xRaAXvK6KJ8bnaqGRaxvoNp58WMJ\nWM02ID8N8U7RRv5yyI6LdpM14RQnSeLvqUHhrFa9RUTOetDlDcd3SRbwnxqB0QOQ7HNgLAdK88A4\nNx7UmnUAtIy52xE/MBthO7eZZ8eEPjtGzJz43Mq7BWCWj86CeYUbKISkJFlAaoVOiK5rHIh1c5MC\ngCxZKfrwpkK46zkQpaSCYkH5RtF2ZkpErc5cmnU+9MDQAudD28ZzorEtsY7bD25zFDo0pvqEo54a\nEjBdsBaw0Hw+VL+4+ZnPicy9WD9x8jR524daVPn/s/fm0XVdhb3/50x31CxLlixZlucxthyPSWwn\ndhIHAiEDj0cZStsFYS0IhLb8Cj/or+vX3+t7rA4MJQ19pCF9hQAhYIbMkMR24niOZ9mSbdmy5lm6\n0p3PuH9/7HuPJFvO4JC2UH3X8rItnWGfvfe5d5+zP/v7xc0MI/pehYr1EJVQnqIZCNfKwWa5vpgH\nEZ2MLKtRKrePt8i+B7LPVd8KgTeY6FENfMdGLQSVm8ejtT0rFyOrjV/rpL61U54r1S4rJVQB2WEU\nXFB00lkXT4sQKF9MoKA6dx3jsKOXGUaoOmilBCe4vbxV6QWzyAycYGBg4O3tOIVefvllDh16HdPV\nYdYtiEAxiqLD0CFEslNGTafapZtieCYoARAmpHrk55ibln1FMTBt0DUVXddwEQQrV2EOnkEMHZF1\nGywFVZdR6MJFeO44lJr7O6Bk8EYbiUSjrF+/lu7u7t+6c+y1wnl52bbNI488IkE903nDtp4Itn7q\nU5/ipZdeImM6hGq3vCHcN1FauIxQzQ1kul7jpZde+p1yyZ3WtKY1rf9IKYrCsmXLWLZsGbZtk0wm\nfXghEolc83uIcDjMrbfe+u/uGvtmSiaTvPbaa+zevZuB/p7c4pr8c4BO/dz53Hrrraxfv95/eRiL\nxfjBD37AiRPH8VyLpKWwY1cRbb0Gt6xJMb/GkkMwFFwXXE9woSvAK8eiNLWGUFWF+++zmVszPjYd\njEk3u2Ra5WLWoHOgmKf3FLJwtkUoKLAshbY+g5ExDdtRKIh4/F8fH2L1InPS9Xxke5y9J8P86tVC\n7LhG2tTQFHjwwyO8eLCA5rYgrx6P8uqJyZOHqgJrl2S5fX2S0kKXHTtnYjsSsvNy465oWI473vKr\nogkufgAZUwcUHFflREuEW9elQRGYtuDQmQj7TkXo6DPw/QUFFEZdNq1Ks6UhTVmxy9GTYRwXXAHf\n+GE5N63McO/WMdYvM9l5xKF7UOfMpRDrl2X40W+KGU2qrJhv8qm7R9A0GZMcNKZ4NAHqqmz+7z8a\n5H/+nwrOXgpyoTNA1tQom1WPpgX8LRUUUvEhzEwCz3OwskmiRRUI4UkI0AhdZVHuxOcwhWx6zHf9\ncyyTCydfpK/9FJW1yxFCEOu/iGObPvCHELieg+fk3DtUDSMQwrYyCH9sKIgNXMI2UwTDhRSX1zHY\n1UTvpWPMv+62KZspH++LoqCo8nkvFClF1XRsM0VqrJ+Lp16kvflVisrr0PUgrmuTHO3FzMQRnofj\nmKiaTjBUiGNb9LYdxwhGqZm/FsjF9Oba1bYyNB3+JVY2SVHpLBav+UDueUkQMMZd30ORIuYv38yc\nxRs4fehphgcv8bWvfY1MNotpOsxbtgXLTNHddpKRF/YTXT6P6LL5GKWFqLqO6mp4wsNLZ7G6Bkmf\nvIgzEpeLZRRQgwFCi2aTeO0knmlJx81ggOL33TA13JfvAUKQOXkRFIWCG1cQmledi5EFPA8va6EG\ndNDUSS0eWVKHMzRG+lgLo0/tk7/RVIyZZdh9IwhDwwnrFCytp6i4AFyB5zjSAc91yfQOkzzbhhAC\nV5vsTPJWpSgKWiSESJh+XNS16qmnnuJCaytOxKD4vRtQIyG0cJCiravRZxSTOtaCM5Igua+R5L7G\n8frzPKQlp0Jwfg0Vm1bhjiQYfu0EdiyBHUtSsmYxqbZe7J4hYs8eoPj2NWgR6cygqCpKUAUMhOPi\nZC3s9n5S+08TUXXuuH07H//4x4nH4+zZs4cDBw4Qi8WwbZtIJEJdXR1bt26loaHhbbvZjY6OsmPH\nDg4cOEDGMrE9Fy+3sE9RFNq6Otm7fx/1dXP4wAc+wLp16644xs9+9jOefvYZ0o5FqLaSiusWEJ1X\n40OMQggyXQOMnbpAvLWbZ59/jqGhIcrLy7E9l4LFdYQq33o0s14QpmT1YuL7G9m1a9c04DetaU1r\nWm9RwWCQLVu2sGXLFtLpNOl02neeeyeR55WVlXz4wx/+LZb0t6Pu7m527drF3r17fVAJ8J0F165d\ny7Zt21i6dKk//mhqauLHP/4x7e3tCCEIhUI0NDTQ1dVFX1+fD/nl32erqsqMGTOor6+nvLyc2bNn\n8+d//ud+vKbrusRiMTnWcV3f8Sof05t3rss72amqSnV1Nffdd9+kxWdr165ldHSUkydP0tjYiG3b\n9Pf386lPfYqxsTH27t3rx4Xmy6coCqqqUlJSwoYNG9i0aRPNzc3EYjEA341wolPU2xmL5esnD6zl\nYTfbtn03NsdxGBwcJJVKTYrjBAmcRSIRQqGQH40shGBsbIwdO3awbt06amtrWbNmDW1tbYyMjPjA\n2rlz58hkMly6dImOjg7/eFcre39/P67rsmjRItra2nxIb+K4Jg8ndnV1+aBlPnrZ8zyCweCUsalT\n8Q/5/iaEIJFI8OSTTzJ37lyKi4t95708VJk/r+M4PtwXCAQwDIN0Ou0fNw8I5R0XW1tbicfj9Pb2\nUl1d7Z/7cigQ8GN4g8Eg0WgUVVX9vtjf3+8DVoqi4Lou2ez4IjjXdQmHw1RUVDA6Osp3vvMdvvKV\nr1BfXz/p+hVFoampiUcffZR0Ok1lZSVVVVWkUqlJUcB5YKqwsJB0Os358+dpamriq1/9qg/APvjg\ng+zYsYOenh7++q//mjvvvJNNmzYRjUaJRCIkEgk//vTQoUO8+OKLpNNp36mwoaGBoqIinn76aSzL\nIhwOs3DhQj75yU++4Vh5eHiYo0ePEggE+OIXv0hhYaHfjvn+GQ6HJ72L13Wd+++/n/b2dtra2vjS\nl76EEIKKigpisRjpdJpwOExdXR0bN24kEomQzWYRQvgunEePHqWxsdFvh2t5Jso7OeYh1WuVEIJH\nHnkE0zRZs2YNH//4x32H17/8y7/kiSeeYP/+/Zw6dYrGxsZJ++Yh3qKiIrZv38727dvZu3cvTz31\nFIlEggsXLvDBD36Q5557jp/+9KeYpsldd93lfxYGAgGi6ReDAAAgAElEQVQ/ejudTpNMJnnuued4\n9dVX0TSNL3zhC6xatYq2tjZ27tzJmTNnSCaTgIyKvu6667j11lt9B8u3o/Pnz/Pzn/+cc+fOXfG7\n0dFROjs7efbZZ2loaOBDH/oQs2bNmrRNOp3m61//Oq2trRiGwcaNG9m2bRtz5871tzFN04fs29vb\neeihh/jjP/5jdu7cCcA999zztr6LV69ezaJFizh//jwHDhxg27Ztb/u6p/X7r3cE+L0dqG4awJvW\ntN4d/WcH8n5buhZYw3VdH9BIZ20cVwVcCUINHpoQ61mZg68sGRuZB/PwMEoXEJm9ORdH5JLufE26\n9wlAi8iX4G4axppgDMZhQQ88R0IuM9ZDydLJhE+wHEqWSDBr8DC4GQnDDR2G6ttg1nzpUpdql850\nwpFlNApyMGGldDjr34MibNCCcoJPDeT+zkdl5uNo36LyjnROBiMQAOHhpjtQy5fhjrbgjbXk3Agv\nkzUmwT+9AIoXSle+VBu+G+LwUek+WH49SrQWjCjCTkmQK1Iro3kRsq6CuRhd1xwHsCYp930SLJWO\ndQP7wc2CEpRtaA7nwLYJgJIdl/VgDUv3OJGLas3XU97BbtJXlTL+87Fzk5347CT0vQJqUIJ6iQtQ\nvDgHS3pTRP4GLj+4vMZEi/x38RIYOS77XbpTQmZTyY/7VXP9SYfsYA7QFPI8TioHhk6xv6LnYEVk\nBLQ1KuHIUAUULxoH+/KKn5cAmGpA9TYJXnoWClzx4Hu5E9me1/aCENgEKZj/HtRg8fj9M7BPuukV\n5WJ1EeCY8lpSbeN9LH+NRfNle4yelfeCFpJ95Y3gPpB1Em+RbV++bhzuk7/MxVrnY2Tzsc2e/IzQ\nomAnJDyrhVGMKMIcxvVAeAahmhtRNB07dhF79BIid7+rwSJCNRtId7yGcDI4rnxwiUQjbxAWNkVT\nqQYIcYXd99uV53k+cKaUr8UziscjyitvQgm1IEbPSmA5dmpCv8nBsa6FoqiIsutRShYQZJRs934U\nxUX1MpjD59DC5RLe7Nk5Cd5E0aRbh+ciPEs66lgDeMPHCBuCG2/cyGc+8xmA3yqofq1w3qc//Wn/\n5c61RuwODw//h0czT2ta05rWf1UZhvGOAJD/7Dp+/Djf/e7/xszEQZiUFdksmO0RDAiypkJTq0rb\nxVM81nqeHTt28Kd/+qcEg0G+/g//wMhwN46TQUHG7pq2wtGzYU6cDzGnymZJfc4hL6vSeDFI96CB\naSu4rsL999psWDEeIfTiQY0fv6ADgmXzLOZWW/QMGVzsDtB0KYQQkoexbAXHlRG1qxZkWTnfvOKa\nIiHB9g1prptv8rc/KKd7UGfX0SjzZ1s8+AfDdPTpvN4UIZaQoGA05FFV7nDjdSkKooJ4UuWhn5aT\nSKvMqhAMjsrFIooiuSghZDlCAfHmiy1yw+mciQHJjIyq1XSd7gGFkWQpfUOCx58zyFgqCoJISFBR\naqOpMJZUGY5r/PpgAS8eKmDL6jTtvQa6DpuWpmm6FGLvqQhpU+Fz/22UW9emefyFYp7fX0DdTIuT\nLSF0FT5z3wihgCBjKaSzKp4nCBqXlT/3WFFR6vIHt4/xzz8vIx6Xz0xDvS1kUj8kGC5CeB5mJk46\nOYLn2AgEw30tVM5ehpVNITy5GEPRrv5q0LbS9LefouPcXjzPQdMDKIqGEJ6E6Ua6QZGxuQMdjVTV\nNyCEOykCWNMDuf0mXETu333tJ+RESc1SSmbMYbC7iYHO0xQUz2Rm3UQHCTHuBghomoTrHDtLy8kX\n5HUoGgKB69i4rs1w7/nxvT0PgSeBLRRUVWfphvvIpsZoOf4cnS0HmDl7OYFgdNL1d104RDY9SrSo\nkqXr70VRNVzbRNU0dN3gcul6gJU33MuJvT9jqO8iQrjMXXITC1ZsRgiPQDBM27mDZBovkTp9kcCs\nCoyyYhRNxU4mMTv78TIWCIFWXIBaEMLqGMCYVY5wHLIt3eB6KIZBcGENenH0ijIoKDI6GekU5wzH\nUcNBwsvr5QZ5wE+Vzz6eaUlgUtdBAatrkMyZNqyOfh8wlG6PCnb/iPx/cYTo3FoSTW242Svv7UBJ\nIaFZFaS7BnAdl1QqRUE0+vZXPeXKmp84vBbZts2rr75K1rUp2rwaJRxEDQX8hW3R6+YTnFuN2TFA\ntqUTdySBZ9komoaqa7hjKdSCMEVbVuEFDIqW1BOuqaRrx07swVHGjp8nXF+NsF3sniGGHn+R4Pwa\nIsvrMWYUIxQFL5khc7Gb7NlOxFiKqBHk5i1b+OhHP0o+1u+uu+7irrvuuubrnKienh6+8Y1v0DPQ\nj+U6hOdUUXHdAoIzilE0DTeTJXm+k/iZi5xtvUD7w//Efffex9133+3fpy+99JKE+1ybits3ULS0\n/orzKIpCZPZMIrNnkukaoPfZvRw4dBA8gYVLxXULrtjnzVS0bC4jBxo51djIwMAAlZWV77Q6pjWt\naU3rv5TyC51+H+W6Lk8++SQvvPACmUyGTCZDIpHwXet0XaeoqIhdu3Zx4MABGhoaeOCBBzh27BiP\nPfaY7yCVd3nTdZ0FCxYwZ84cYrGYH1lpGAZlZWV+9GgoFOIv/uIvfHDLtm0efvhhjh49imVZlJeX\nYxiGX5Y88DbR5c4wDNasWTOls3xJSQk333wzM2fOlO9wMxl++MMf8sUvfpHVq1dz4cIFzp49678j\njkQizJs3z3dba2tr41e/+hWWZbFy5UrOnDnjA4Z55d0D36ry+w4PDxMMBn1orKKigqGhIRKJxKRr\nnOiGl4cBk8kkBQUFWJbl12ksFuPAgQNs3LiRVatWUVtbS0dHB93d3X608ejoKH19fZOOlQeFpoLu\nhoaGKCkpobq62nfg+8EPfsCePXuIRqNkMhn6+vr8MjuOw8jICPX19aRSKSzLQtf1N3z3PDo6ytmz\nZzl37px/7nwk7dmzZ/2yDQ0NkUwm/Tqb6GgYCoUwDMN3zcvXV96RUNM0Fi1aRDgc5uDBg7z++uts\n3brVd7mb6Jho27bfh4UQvstaHqaaGI+ch/omtlG+3err6/nkJz/J888/z9GjR3niiSf46le/eoXr\n37/927/5cF9tbS2ZTMY/11TAWiQSYcmSJTQ1NdHW1kY0GuVzn/scK1asYNGiRXz729/mwoULPPHE\nE+zYscOP7HUch66uLpqamvw463Xr1nH8+HFs22bVqlW+KzXIe/7OO+9802eF3bt3I4Rg/fr11NTU\nkMlkfCc6RVH8OtV1nUAggGVZHDx4kN27d9PV1eX3dVVVGRkZ8aN5GxoaCAaD/OIXv5h0v+W1dOlS\nysrKfPDaNM2rRrReTfn+8nYX+1yu5uZmenp6KC4u5qMf/agP4iqKQiQS4ROf+AR33HEHhw4d4siR\nI8RiMb+8eUD3+uuv533vex+hUIj77ruPuXPn8u1vf5uxsTGeeuopVqxYQXNzM0899RS7d+/m5ptv\nZtOmTZSVleE4Dt3d3ezdu5eDBw+STqcxDINPfepTftxuvj/+trR//34ee+wxXNclGAxy4403ctNN\nN1FWVoYQgv7+fl555RWOHj3K8ePHOXv2LA8++CBLly4FZN1/5zvfobW1lfLycr74xS9eAQDCOGS/\nefNmnn76aX75y1/yve99zwdCGxoa3nbZt23bxvnz59m1a9c04DetKXVNb0imWtX329h2WtOa1rSm\n0rXAGufPn8fzPA4eep20BWqwDMUbRhBEKaiF7KAEzGKNOaBlooOfiyJcUDT5U0WVqwvycJJiQMV6\nRLQGUCS4lmiVgIxnATlHMCsunRGskakvTFGhoE668fW8LKEmNyudw8rXSIgvPEX8l/Cks1jsBIqb\nQY9W4bkOnjkGehjFTsl4TJCgmaK/9RfpwpZYj5MlWhChpLiI3v4R6H0FMsMoQiDy0cHhmePOeL5D\nXBKGj0tXPTstYb2SVTB8WEa9AlRtkTDc0DHp0laSlfvp0VzUqiIZNuFOAWDlm0oClIQq5X5Wzikv\ndkr+QboqCOHKNtKjKG4WEpegeIl0jfDsHISkXGmLoSDtPxLnYey8dCFUNcDIucEFciBYVpbFGpV9\nIFo7uX0Vbbz+J4LuiibhTjspnfGC5VA4T/bHoddBL5IA4+XtnocM89FZ5ogEAxHyPK4py6aF5M88\nLxdzLOTvPCvnuhiAio3SNXDwEEr8PBQvmgz3CZEDL5FuhYFS2SZCoOkaujH1ECLvRJZu2w2eRXju\nLb6LWaTuZqzoTMyhJjwzgci1lyJkewtycGTeSS87KMscmCFjlp0cqJnvK5drstFIbp9c34rOnuCo\nmHNsFBNiZIWAZCskLo4DhmrAj0cSqW7pRgcIo4hs31GElbzSZzEXvy08R94vru2/KAgG3/qLFOHZ\nkItTeCc6ffo0vX39uGoYL1Ql+2K+/yiK7HfhGlnX6U6wU7k+YoARhUwfwrUhUCR56oJaovPeQ7L1\n12hehqBq45gjyHsyA/17ZX0XzYdQpXS1cW0UcwAl1YYiTCJTxO3+tkD1dwLnAXzmM595RxG7J0+e\nQij6f3g087SmNa1pTev3S/v37+fRf3kE4Y6xtN5i+0aXlYs8tAlfNZYNh087/OaASeeAyf/6X/8T\nwwiQSQ5QXZ6lf0RBVwV3bEyybU2aV49HePV4hI7+AB39AX+oKoDiApdgQDAU03l+n876FS7lxXDo\ntOrDff/9tjHu2JjKOYlDz6BO77BOIi0LNaPERVEE/7yjnBMtYR5/QfDH7x+b8vqqZ7j8+UeH+f8e\nrWAkofH488X0Duncti7J3VsSeFOsF73QFeCJ3xTT0RdgRincf5/F1x4LEMjBcH3DBhWlLp4HtgOB\nK1ksX3kzc4DeIbnhWBIUNcyaNatoPnOM/73DYSgHEC6osdi2Nsm6ZRkMIzdWFLJMO1+PcqQ5zM7X\no2RMhcpSl8/+txjtvQbf/HE5x86G+eUeh9vXpXhmbwEdfQbf+PEMPA/Wr8hQXOD55claCllLwbQU\nAobA0IVfXtdTsGyFxXMsSgs9spbBzNrFxIb7ScWHSMeHcBwZjRsMFTJj1mKGe88zOtiGlUmiGUFc\nx8Kxs+iEJkTzSimKQnJskLNHfoWZSSCAguKZlFUtJBQpAkUlkxhmqKcZK5vCdW1az+yioKSKcIF8\njpkY++u7BOY6mqYZjA13MDrYhmNl0I0Q4cIZzF2+jUtndtF6eidWNsmseWvR9ICMkMpF/SqKgqbq\npOKDXDj5G9LxIULRUmbOuY7Bziay6VEJ9HkuIudiKITAcx10I4iXe1YWnqC0Yg6llfOJDVxkoPM0\ntQs2+HXgOjb9nWcAmHfdbaiagWNnQeENx/WqqrF49XaGfv0vuLbF7AVrc3WqsmDFzcysXULXxeP0\ndTbhdA/jdA8D4NimjIFVQDF03FQGkZvQUQyD7NkO//8ojAN7l7XbxOfOzJk2AEJL61B0DYRAqAp4\nAjUgo7SELR23vUyWxGunsNoHZKdWVUKLZ6MWhFE0DS+VwWzrwzNtnIFRRgZGUYIBAhXFGNXlKLqG\nZ9pYHf2YsYR8rnNd7L5hGctkWW/LucA1LZxkhpBqvOWY9al0+PBhxhJx9BlFaDMkTKmoEyYtHQdU\nhdC8asJL65j4UCwQxH76Cs5IHLOzH6W+GsdxMAoj1NxzCx0/egEvkcHri+UW+QlE1iHb3E72XC5l\nIP/p4noEdYOZFTO58847ueOOO96VtJtYLMbf//3f0zs0gFpZwuw7NhIoKRy/JiFwM1lC1eUEyotI\nd/aTOHOJn//yFwSDQd773veSTCZlLK9jUbF9A0VL6t/0vOHaSqo/sJnun+3EzZgEq8oJVV096upq\n0sJBIvXVOG0DtLS0TAN+05rWtKY1LUC+73v00UfZs2cPsViMoaEhhoeHJzmSgQR+ysvLmTFjBq+/\n/rrvHmbbNhUVFb6r2bJly9B1nZ6eHgYGBgiHw5MAHV3XiUajvrPfk08+yZ/92Z+hKAr/+q//ytGj\nR3EchyVLllBQUOBDbvnI37zbViQS8WNLd+/eTSQSmeT8NFFLliwhlUqxd+9ekskk//RP/8T73/9+\nli5dyqJFi64AiLLZLKdPn+bZZ58lk8mwadMmqqqqaGpqQlEUMpmMDy3lozHfbOyRh8DGxsYQQjA6\nOkpBQQHl5eW0tbXR3d2NZVk+vDbRvS9/bFVV0TQNz/MYHR1FVVUqKipYsmQJHR0ddHR0cPjwYUpL\nS1m+fDnd3d20t7djGAa2bdPX1+e3Qd7Zz3Ec37lwIuSXB6+6u7uprKykpKSE9evXc/z4cVpbW33X\nOkVRqK+vZ9asWRw7dozW1lYWLlyIrut+LOzlDm75a2ptbeX111/HsqwroE0Yj8vNg3NnzpzxF6sr\niuJH2k6MBs4fIxwO09LSguM4/vZr1qxhcHCQ1tZWXnnlFdasWcOsWbN8R8V8nG8e+Ors7OTYsWO4\nrsvy5cspLCykqamJbDaL53lX9BvHcSgtLfXhRiEE73//+2lsbOT8+fN0dXUxe/Zsf/vTp0/T29uL\npmnU1NTgOI5/X7zR2D6futbV1UU4HGbFihUAFBYW8pWvfIUTJ06wc+dOmpqaOHz4sF+2bDbru0UG\ng0HOnj07yQFx165duK6LqqqUlZX5cNjV5DgOr732GoAPSuUhvnx5TNP0Y6a7u7t55JFHGB4eRlEU\nysrKWLFiBYWFhaiqSnt7O2fOnPGPaxgG0WiUVatWMXPmTB8CPH78OM3NzaTTaRzHob29nTlz5kzq\nC29FPT09fjnfiXbt2gXATTfd5IOMEz8Pstks0WiUO++8k3vvvXfSvgMDA3z5y1/mxIkT3HPPPaiq\nSigUYvXq1XzsYx/j+9//Pul0mubmZhzHQdM0BgYG+OUvf8lTTz0FjPd7x3EwDIN58+bxkY98hCVL\nlvBu6OjRo/zLv/wLANu3b+eee+6ZBL/bts3g4CDr169n2bJl7Nmzh4sXL/Ktb32Lr371q9TX13Pk\nyBHOnDlDYWEhX/rSl5g5c4q5+glSFIW7774bz/P4yU9+AsDGjRuvCc5cu3YthmHQ1dUlzUN+T8H9\naV27rgnwe/zxx9+Vbac1rWlN63JdK6zx6p69eK6Dq4YJlC2SEZKKAbNuleCUECiZPgnz2MlcPKiO\n0CIQrUPoUZT+PThj7VjDZwHhw32iettk57BwtfxDDqIi56RmxaFvJyLZiRJqkQDVVAqWSjeygX0S\nSnMt6UqnR3MOZzMBVYJO2UFItqLkAKRA+SIiszcTP/Pj3ERAAcJJS6e6YCng5Vz8NCbTW3lNmM1C\nQGYAEKgIamZVs23bNh599HvYyV7QI4iK9dL5zY+/zV9DuXShS3dJF8JMnwSnnACMnpLRxE4GUh2I\nWBNKyWKU7KB0hxs6JIGjwgX4kclqIAdfueMA1lRSdVlHsUaUYDlCC6E4SVTFQ5hjcnKjYj0iPBv6\ncxBlpk+6xnnO1V0CPQ8G90OqU/7fKIbCeghWgh4mH+NM4sJ4/xk6CMatEJwxDpDBOFwpxldnYScg\ndkLu52Qg0wOFi3KOel25COD1EK2RbS/cyXG/KNJ5b+h1+fNonYQp8+6TE90GXcZBtkCZdIv0HOl0\nGJop29VOyvshMm77TqZXQrB6JAfTScBQUeTD2xu+DojUIPQIWPYkRxBFUQjOWEqgfAlOsgdrpAXP\nSiBcGzczguK5oIUlmJnpRXFNhGpISHHsXK4v6xP6yhtIAEkZXyC310AV4/Wo6oCWAzVNGD4yDqHm\n771gzlIfkYNYW8FJ4aW6UVBlvyheBJEJcci5+G1EEiEslJFjiKqtmKZJIBh4yy5+TrIHTVPe8YTG\nnj17MG0XpWgxQlGlq2heniM/bxRFwqkFUzjOjTZLR8hUOyJciWVZRKNlhGtuwOp6jZKSAoqLi+np\n7SOTNXFsEywThuMwIeJM01Qi4QCzqt9+3O7b0RvBeUKI8X5nxsddF0NlpFP97N9/kIULF76jiN10\n64ugqoQLqt98pyn024xmnta0pvX7rVgsRltbG6lUCk3TKCoqYtGiRf5L5mn97mtwcJDBwUFaWlr4\n+c93oHhx7rnF4p5bnCnX7gQM2LTaZeNKl+/9SrD3uM1wRmHFfIdIWNA7BFtWp/mD2xMoCvz32xLc\ne0uCE+dDDMY0TFvB0AVFUYcl9SbhIPzzjjKa20I8t1fnw7c7fP8ZA4HgD24b446NyUnnn1XhMKvC\nIZFW8Tzpzmfogj/7yBB//3gFrxyLsKkhzYJa+8rCA3VVDmuXZdh3MkLGVPn1gUL2HI9y06o065Zm\nCQU8LEehe1Bn78kIbT0BUBTqqgVf/LjNSBwcV6Gk0MW0NQ6cjuC4cLE7gGmpBA1BYdRlzZIsC2db\nk9bfTFyHs/tYFMdV8ByVkrJiPvGJT/CVrzTR2pWmMOrx0e2jbN+Q8rfPN4WiwMLZFgtnW1zoTPKt\nn5STMXWGRjUe/HoV4ZCgtMgl3qvy0sEomxtS3H/3CN9+spzWngDRkMeW1ePHDRoCTRWYtorjgpkD\n/ZhwZgHomsqNK02e2x/GCEZZteljpOJDIByajzyLqhmsve3T0lFPuAz3XaSt+VUWrX4fCIHr2jh2\nFlXTUTXDf85OJ4ZoOvQzHNukoHgms+avobCkJudyoGIE5SKUuiWbGO45R8e5fWRSMRr3P8Gqm/+I\naGHFpFgnAM9z/EfP5Fg/F06+iGNnEQjaml6lr/0UVXNWUj13DT2tR+hsOUjPpWOUVy+krHIeeiCM\n57lkkiMMdZ8lOdYHAoLRYhY1vJdguIjKmuUkYt0MdDWRScZwHRPHMbHNNHogxJpt99Nx7jUGu88y\n1N1E7YINVNYuJTZwkb72U9TMX+fXwVDvOVzHpKCkmmhRhRznCpGbEHljUE3RQpTMmENsoJX+rmbq\nF2/0f1dYMpOla97DgutuYajvIlY2zchgO/3dzWizSinZcj3Jxhaybb2IZG7S2nWxuodyru0qakEY\no3Jqx9KJPKwzJKHa4Ly804CCoqkSfhQC1dBB1/Ash7EXj2D3DqOEDCINCwgvqUMNBfCyNoqqIDxB\ndP0Ssq29ZBpbceNptEiQ4vdtRI+OL0oSnofZ3k/6eAtm9xBmez/mpT70BTVvC/BLnG1HE9L54p0A\nfgcOHMDyXMKL6+TEsD7+7C8cF8/MfSbpV74zUVAIL68n8dopzNZeQvXV/uKtQGkhhYvnYJ7tZNG8\n+cRiMWJjo9iqi2NZuKaN8OREejQaZcHiBdx5552sWbPmHTkSvpkeffRR+oYH0arKmHXPzbKNAc+y\nSZxtZ6zxAubQ6KR9hOsSTyT4weOPs3jxYs6fP0/azBKuq3pLcF9e4VkVRObWkGi6hBK+9khIPRrG\nRJBKpd5842lNa1r/ZSWEoLOzk/7+frLZLMFgkMrKSubMmfOuANTT+veX53l0dHQwNjbGK6+8wv79\n+xkdHeXSpUt+fOPlchyH/v5+RkZGmDdvHul0mkAgwPr16zl9+jSe57FixQrfja+0tJQFCxYwPDw8\nKU43FApRUFBAIBDg8OHDnDx50ndI27t3L5ZlsXjxYqLR6CTALR/9mQc68scBfMivrq7uqsDHypUr\nOXbsGMlkktHRUZ588knKy8u56aabmDt3LqqqYpomLS0tHDlyhHg8jqqqbN26lU9+8pN897vfRVEU\nSkpKSCaTdHZ24rouiUTCjzmNRqPMnTt30vhqoiNeOp2mp6cHx3EIBoOsXbuWhoYGvvWtb/nQWL6u\n8rrc8S0PvBmGXFAyMDBALBbzwaJsNktjYyM33XQTDQ0NHDlyhGQySSaTYXh42D9W3m0xD9ZNdL+b\neO68o6MQghtvvJF77rmH/v5+zpw5w8svv8zq1av57Gc/SyKR4Pz584yMjHDp0iXq6+tJJpO4rus7\nihmG4b+zvnjxIocPH8Y0TbngaML5Pc8jHA775bJtG8/zSKVSnD17loaGhikd7ibGQXd3dzMwMOCD\nkj/72c+oq6tj2bJlWJZFZ2cnBw4cIBKJUFtby4wZM/wY3qGhIT92WFVVFi1axNatW9E0jTVr1tDS\n0sL58+dJpVK+o6LruixZsoT777+fv/u7v2NgYMAH+lavXs2hQ4fYtWsXf/RHf+SXd+fOndi2TWVl\npV9PIOeH3ujdvhCCSCSCqqqk02m6urqora3123XNmjWsWbOG3t5ezp07RzKZZNeuXfT29vKhD32I\n2tpaXnzxRS5duuSPv9PpNBcuXPAd2VavXv2m8NTIyAiJRIKSkhLmz58vF4tpGqqq+vBjPlK6o6OD\nb3/726TTaWbPns373vc+1q5di+M4mKbpQ6jDw8Ps27eP3bt3Y5omDQ0NfP7zn59UH6lUin379vHs\ns8/S19fHT37yE66//nqCweDbMnTYvXs3IIGva1U2m+XYsWMoisKGDRt890XAj821bRtVVad0+qys\nrGTFihWcPn2a06dPs2HDBh/U27p1K08//TQgn9vywKqu676jaf4zsaioiBtuuIH3vOc9zJ8//5qv\n580Uj8d55JFHABmPe8899/i/GxwcZNeuXezZs2fSs4YQAtM0yWQyfOMb3+Af//EfJ0XsvhncN1F3\n3303Tz/9NOl0+prBTF3XKSws9B0jpwG/aV2ud++NwrSm9S7I8zxOnz7tx/hls1l/JcCWLVtYsWLF\nuwIMTOvfT5e3cV9fH4NDw3hqmHD9dozCiqsCMnknJTVYRKLlOXBMAuWzseMd8iV3xfpxVzRFkTBT\n5DIIw3VyrnEKVKxDDOwnO3jGX/UvKtZNhvsmFsbLZ7wqEj6aAO4xdg6KFl7VSU+JzkboUYSTQglX\n5NzdxmD0tPwzcVtADRUTnLGMQPkSQOA5WVBUjKLZWOl+lLFzCHMk58blSGDOKJDRueGqy8qRn9ny\nZGSsZxMKh7j99tvlIFdRQA8jKjdDaMbUYJUCoErQsXIT9L8mQTM3DUKuhkHVwLVg+IgEuEobpMNZ\n/AIINecQ58jjKEL+7ZdvQt3m61fNQXSRWRBrRHxDizcAACAASURBVAgHpWI9gUCASDRC4uwvcM24\nLJOqohQtgJFTiMHDKLNulTDnVC6BgnG4TzWgrEEew79uRUYi+1Bjt4QUnTT07oTKLdItLt/PQE7E\neDlYMd0jgak8DOpZOde+JiiYByETsv0wsFfCddG5st5VXYJ5l8fYRmdLx0dFlX0sOyAdHvOOkHbO\nKaV4KZSvhbFm6XKYapfwaHQOjJ2B+IXJ90OiVZavcL7825VwXyAQIPAmTnS27SAK5qKMnsGOXSRQ\nNHvS7xVFwSiswSiskdsnukm1voQwimD2+1HSvYjExXHA0nMkFJmb0JrkbDnRte9ydxc797LH3169\nbENF/mz4mGwX1ciBlbUSCMy7NCoqGEWyLjK9MHIc4VooofKrx28nO2DosLwPh4/gzliPYzsYV3E+\nnCghPKzhc0QNjS1btrzp9m+kgYEBXFcgQjNyt1ButaBryXrN18MVUdg5hSuly6mdzJlCyhcZ+TjZ\ndCbLAw88gKqq7Nmzh/7+foaHh/2H/Wg0SllZGTNnzrymuN23o4lxxBPhPCEE1nAz5lCzdI6camfh\nkkxm+NGPfoTriWuO2BWK7JCup17TIPu3Fc08rWlN6/dTQgiam5vZtWsXx44ewXMtpO2xHBsVFpWx\nefNmtm7dSkVFxX90cad1DXIch+PHj7Nz507ONjcBLolkmoBuc9u6FLety2I7AQzDQLnKU5GuwSc/\nYBIbszhxPkRJkaCxRSVgePzB7fFJwxZDh3XLJrteZC1BJqvguvCx98T5f74bZN8JjZoKQSoDc2dZ\nbN+QG2MpEx6HFPko5eYMpPWc29yCWpvb1yd5/kAhO1+PsqB2MlgyvrvCtrUpDp6O4HiKNBRWNfYc\nL2DP8ctjSBWiEdi82uXumx2iYTjYqOEJhaypYrtw6HSYM61BVGXyN/+vDxRQO9Nh25oUm1almDg0\na+uVUcPprEJRUSF33303M2bMkPE1IcE9W+LctCqD48p6vvzRzhOQyqiUl7h89oMjfPvJGQyPaSSz\nCqajMJpUcT2FgVGd7z9bwifvjvG5Dw3z/z46E0WB8mKXRFrF0McjeTVV4LoKHoBQcre7iqqoEspT\nNeqqQcEjnc6gagaVs+aDZ3NO09GNkHTAcx1q5q9jbLiLod7zaHqQucu3oQKea0tHeNdBUVRcz6Xp\n8C9xLJOSijnMXXErqqqhqjKaVyDd8FRNR9N0Kmcvp6RiDqcP/IxUfICTr/6Aucu3Ujl7OUZgfPLC\nc2yy6RiDXU0MdjXjOhYKCsFIKboRxEyP0t78GihyPOw6Fo6Voa/tBP0djT54JzzXP391/WrqFt+E\nqhl4nouCoHjGHIpn1IPw6Lp4mN5LxzACERavuYtguICZdasY6jnHUM85Zs1bR7SkGiMYJZ0cpuvi\nEQqKK9GMIIPdZ3PxwUtwLDk203SNgoLom4IDjmNTUbOUseEOBrpbJgF+eRmBENV1ywHo72pG0XWK\n1iwjVF2BUVmClUhgX+ojvr8RZ2gMJSSfwRRFQZ24cCjvjgiTaVUk1AWgTnp+UyZvqygk9zVi9w6j\nRkOUvP8G9LIi+Q4kN+klPOm+qOg64cWzCS2oYew3r+MMjjL268OU3bsZJTfGV1SV0NxqgnNmMrbr\nOJnmdsZeOYZeXkg4EnlLcJsQgrFTLQRU7R1HEsViMTwh0MqL5ONQbhLQsx2/flAV6XA4Xjv+M4Ne\nUQKAm8zIvj9h8WHxdQvobm5jaGiIb37zmzQ2NtLX10c6nSYUClFeXs7q1auJRq+MUn431N3dzekz\nZ7BVqH//Jh/uS13qof/XB3AtWz5ShwMYlSW+66LdNwKKQjqT5n/8j/9BaWkptudSufLtR+wWLKwl\n3tSKl5uovhbIRghZx+80imxa05rW76dM0+TgwYPs2rWL9vb2K35fW1vLrbfeyg033PC2oxCn9Z9D\niUSC1157jd27dzM4OIjneYyNjfmOdalUimAw+IbfE7Ztc+7cORYvXoymaWQyGRzHoayszIf78goG\ng1fELmazWT9edc6cOVy6dImdO3f6cZ5VVVX+9/vE6FiQfVTkFoXkfz5z5kzGxsZIJpNcunSJBQum\n/o41DIOlS5dy7Ngx360tHo/zwgsvXLGtoijU1tZyxx13cMstt6AoCu3t7Xieh2EYmKbJoUOHUFXV\nB8jycNPJkyepra1l8eLFVFVVTTruhQsX/O2j0Sh33XUXyWTyisjXyxfz5JV31csrEAhg2/YklzrH\ncbh48SI1NTUsXLiQsbExTp065bvKTXTqy59jovOdqqrouo6maX6UcjabxXEchoeHWbhwITU1NX6U\nanl5uQ813X333TzxxBN+3cyePdt3WcvXuaZpjIyM+HBf3qUPJLSZP1ceZNQ0DU3T/GPE43GOHz/O\nggULKCsr89+Fe56HbdvE43EGBwdJJpPScT0YpKqqikQiQWdnJ52dnZPAQdM0fZhTVVX/d67rUlJS\nwubNm2loaMBxHD+GeuXKlaxatYpMJsPzzz+PaZpUVlbyh3/4hwQCAdauXcuePXs4fvw4NTU1XHfd\ndT60tnLlSjnHFolw4sQJbNsmGo36QNRbgdTykbbFxcU+YJYH/Caqurqa6upqYrEYO3bs8F3kCgsL\nWbVqFd3d3TzzzDMcPXqUixcv4nme/zzxVsbY+XfshYWFV/SpfH8Fec8//PDDZDIZVq5cyQMPPOAv\nTsqDnfn7ory8nHvuuYe1a9fy0EMPcfz4cZ5++ulJIFk0GmX79u2sW7eOv/3bv+XSpUs8/PDDfPnL\nXyYUCr2lMXJvby9NTU0YhsGmTZvedPurKR6P43keZWVlFBcX+4DjRNdRYBLcOlFCCObOncvp06cZ\nGZFpdfn7Qdd1brnlFp555hlKSkr41re+xdGjRxkdHcW2bSKRCHV1dSxfvvzfbWy/Z88eLMtixYoV\n3H333X55d+zYwfPPP+9vV1NTQ2VlJYqiEIvFaG1txTRNurq6+Ku/+iu6u7sJhULccMMNb+v8qqoy\nb948Tp8+7TtFXovy/e7dXBw2rd9dTfeKaf1OyPM8Xn75ZV566SV6+/oxbRfXzcW7KAra+YscPHSY\nWdVV3Hbbbdx2223ToN/vmKZqY8fxcO0MKAaivIG0Y2DGEwSDAQJv4CAm9CIoWw2Dh3CS3Xh2NhfR\nOUWk52VSVF1GYyIkOKZF8LJjcpJBLxyPBZ1qACZysIyq41NHkRrQowg7caVD2kSpqnQMGzkhASIt\nSHDGYoRr+Q5nimagBgoJlC1EL5jlDwKt0bZcHK3AS/eCcBC2OQ4qApACKyaBKaMAihZBYR44zG2T\n6gA7iarApk03sXXrVr7yla9I58Py6yFQNH7MPFyXv05vQnxsoFjW//Bh0MJQtU3WTaYf4i0yMjV2\nCqwRRNn1kO6VzmeqNtl5bnLlSuc2NTAZqhSQ/ypTPMd/8FBybSm3sYEAavECNC8unRh7dsrY2XCV\nPMhEl8A8WKYaULlZXreighrMRfLmtldU/ChZvRD6XpZQY/8eWQdFC3IwpSH3S/eMO+wBCipCCUDh\nXBmV66RgtFF+rglX/nFNsONI6DHnbihcCQsaBVCyQrblxHaM1sl+mndTVAM5CHCt3C48UwJbTir3\nGapK8DLeIsuoh0GLIqwReb5AGXiW/xCcr983kuu50u2QJjwr8SZbgzXSIpuyaKHsB9FZECyXl5zq\nQVjD4/cX5FwXp4BUL5d/T+bcjPzZmgnbx8+Pt3fenfPyC8xNMEigtFbWSd9uRKoLJT6FO6eiSsdH\nLST7Q6oLEZyBFVz6lgA/e6wd1c0wq66W5cuXv+n2b6RsNpu73ryjk3IZ3Efufr6Kw6eSmwzMfS6O\nr0odj5Pdu3cvDzzwwH94pGw+jnginCc8dzxeHUCLyH52mesi8RaEnSAWG0XVAwSrri1iVzUK8OwM\nlpkmWPDW3P8m6rcVzTytaU3r90/JZJKHH36Ys82nwcuiKibL6l2KC8B1oXtQoXsgyfPP/pwXXniO\ne+/9IHfddde0e8XvkDo6OnjooYcYGuwFL0tAt6gq92hOqRRGPN5/UxzHkeCQqqpEowXoV3lB6rgm\n995i0XQpyJEmjYAuuGFFhkjoKmOmCQoYkDUlrFZV7rCozuJ8R5Bf7tYAwbY1KTkM5srhg+PJHxha\nDlDLne6W61O8cKCAQ2dCfGS7SlH0SnduAdRW2ESCLmNJlXXXOXzoNpdDpzVau1XSGQnVFRUI1i93\n2bDCJc8smRbsPSEBtHgagoZHJOwxa4bN5oY0xQUuwlPoHZbuf10DOj94vpj9p8I8+OERiqIeyYzC\n954qJWMqGIEg227dzh133MH+/fuxrTRzZzncfH0a2wHHUdE0xkE8AY4LlpOb5ALmVDm894YET+0p\nZNXCLJ+4c4zGi0FePlxAe5/B0bNhdA3++H0xCsOeXEOkChxXOhFOrD8BCKGg6QaaHphU70JAvhsI\nzyMSiRAIBHFdOY5xHFO69wHRwnJWbryHk/t/Tn9nI8n4ANX1DZTPXJgDlxyE8BjqbiabGiVaNIP6\nFdtQVQ3dCKJpBq7n4Nomrmv70bsAgVAhyzbcx8k9j2Nm4rQ1vULn+f2UVs7DCEXwXIdMYpj4SDee\nJ0FCzQiColK3+EbKqxYwNtzJUPdZzEwC17XRNHm9qqrhOCauY6HpBo5tkYoPIoTIwYoBKmqXEYwU\ny/6QjjPQdYbBrtM4tomiqMxfuZ2ymXLhUmFpNYqqYVsZzGySWP8FsulRPNfhYuNLuTGgwHNddCNE\nICxX3QcCBpHIm8N9AJ4QhKISDLPMFCODHcRHenFsE1XVCIYLqKheQCAkJ6XSyRhCEQRrpHu3oiio\noQDRFXPJNLVhx1NouVhZgZBRvRMnqJj6iUjR8ot7rnQ7yT/0OGNJMmc7UDSVkvdJuO8K+TAgKIaB\nGtEoed9GYjtexe6PYbb3E5o7+V2HoqoU3bwKL53FvNRL8sg5ohVlb2mCYuTQGbxYkvIZlVx//fVv\nuv0bybIsGdU8IdPcs108yxlfn6lpV7Sr785p5G4w1829+hj//ApVlaNFwyRTScbGxli3bt07Kus7\n1a5du7A9h8Jl9Wg5B73EuXb6f3MQzxMYVaVErptHaN6syfWRtUg3t5M+1UosFmd0bAyjvIhI/dt3\nJQ/NLENRFNxEGts0CVwDXGPHEr4L0rSmNa1pTdSFCxd46KGHiMfjgAQoFi1aRCQSIZPJ0NLSQldX\nF9///vfZsWMHn//859+1+L9pvTvavXs3P/rRj/xIztLSUgn+j40xMjJCLBYD5Pe7YRjyPfVVxmaJ\nRILu7m4KCgo4e1Yu3Lgc5LuaDMPAdV0sy6KmpoaLFy9y7NgxH6yaMWPGFWBfXrZtoyiKD/jlwbry\n8nJ6e3tpbGy8KuAnhKC6utoHtR588EHKy8vZv38/Q0NDfpRs3vBk6dKlfhna2tro7+/Htm3fuc91\nXcbGxkilUj5gV1BQQElJCZlMho6ODlasWEFDQwOqqjIwMEBTUxO2bVNYWMhnP/tZ6urqePjhhwH8\nqN98WfPXN7H8E5UH43Rdp6ioiGAwSCaTIZ1O43ke+/btQwhBTU0Nzc3N/v6Xx8pOPF9BQcEV48k8\nVJhvn8LCQjRN89+vxuNx/9hbt24lHo/z3HPPsW/fPurq6li0aJFc4GDbfgRxc3PzJLgvX3e6rsvF\n5JaFaZqTQOK8Y6HjOKRSKZqamggEApSWlqJpmg/qZbNZhBAUFBT4cbQf/OAH0XWd5uZmWlpayGQy\nuK5LIBAgHA7juq7viBYIBIjH44yMjJDJZDhx4gQACxcu9Lft7+/nxIkTtLS0AFBWVsaf/MmfUFxc\njBCCBQsW+JHXfX19HD58mFQqRSqV4m/+5m98oDPv/Jiv/1Ao9Jbg6Xx9h0IhMpkMsViMgwcPMjg4\n6NdbVVUVDQ0N6LpOf38/AHPmzPHHgKqqUllZ6UcIHz16dBLomb/Xrtb/8m2S33aq8uX3f+211xga\nGqKuro7Pfe5zUzrZ5ftl3qF72bJlPPDAA3zzm9/k+eefZ/v27Vc4rZWWlvKFL3yBr33ta1y4cIGT\nJ09y0003vWn6hmVZPPbYY4CMeX0nC4bykNnEcwoh/M+F/DVN5Tg58Xf5Y10O8a5du5ZnnnmGzs5O\nioqK2Lp16zWX9Z3KdV3f9fD222/3+/Fjjz3Gvn37UFWVG264gW3btjFv3rxJ19vd3c2LL77I3r17\nOXfuHIZhcPPNN1+Te97y5ctpbGykp6fnmhY9JZNJEgk5r/rvtVhsWr9bmgb8pvWfXrZt88gjj8jI\nPdPB0yIEyhcTKKhG0QyEa+Mke0kNn+PipS56fvBDWlpa+PSnPz0dUfU7oqu2saKR7TmE0KIoBXMQ\nwsNxXFw3g+O4uQe4K49nWRYiMgvFKMCzcnBU0cKpnecul0LOKc1GeK50fRt6HUEuFlS9LJp2ovIQ\nELkZL5FzmiucL4G2yx3S/P2EhPrSPb6rm6LrCMckUL5oEsx3udzMCNnuA4SCASzLxBm9JEGlQKEE\nxyK18v+enYuUzUUSDx+TTnAVG+T1ZIdg6AiKsKmqruL++++nqalJwjJqCEITyy3eAMRT5PkK58FY\nk4TInLS87mC5hN5SHTByXF6vXEIvwUHPmQyqQc5Rz53gPCZkvU6qP1s2mxEkEh2Hz9RgEWRGJEBY\ntABN04nM3kwaCUUysG88ijVUIdvNNWH0jGzLsgYJ90EOEBM5CNHJRToH8GfegqUwY4N03fMc6Zw4\ncgo4hQ8E4o1DVaGZCGsUAgVQtmq8DdLt466LaLK/CXJ14Mi+aafAS4GThXgutjY8U4JYws5FyV7w\nQUKidVCxcbz/K9IhDDsJvS/J46kaAlVel2UDo7lrDIKqoekaoWDorUfMCmRZhcCzkqTaX5kciRos\nmgSqeqZ8MUck77Qn61VE5kCyGxKXJOCZl2df4U4xpZSJkCdXznoJIesQpHNfsPSqrKAv1YBQmQRE\nB/a/oTunEpqBKG2QoGX8HG7pwjctcv6ejgZ1br/99ncMq4dCoVzZcvb/npPrh4r8ufCu7t6HAkwE\nlydX+3+2ONl8HHGgfDGKIleh+XCfYkgX12jtld8FvutiO6LvVTwPbL2UIFf9tL+qtHAZnt2Fl+qF\n8jeHyi/XbyuaeVrTmtbvlxKJBF/72tfo7W6lMJzi1vUuN69xKJ0w7y0EXOyyefmwzcHGDL/4+U+J\nx+N87GMfm4b8fgfU0tLC17/+D5jpYarKsty2weXGVS4/e1mno09hc0OaijKBbYNpC1xPkEwm5ASD\nduVrHcuymFnmsnyuybFzISwBm1en31JZVEUhYAiylkImC1sa0jS3BegfVphR4rJ+RRpFmfo70s4D\nbsr40EgIqCh1WTHP5NTFEIfOBLl5dQZNG4eSOvs1dr0e5dCZMENjGqoCR5p0zrZprFro8YEtDivm\ne0w1LMpa8Hf/ZtDeKydTwkGPxXUmd21OMHeWhaFDNDT+8vneW+IcPRvmpzuLuNAV4G9/MINPfSDG\nvz1X4sf5zp8/mzvuuANFUdi16/9n772D7DgOc99fTzppd89mAAtgsciBCARIggQJkEQgL31Fmzav\nJVNWMOWSTKlcki0/q6RXZVfp3leS7y2XZT9LspL9ZMkyFSwTJkXRJEACEEBEAkTiIodF2Jz35En9\n/uiZ2bOLRZIpCyXvVyUtuHvOTHdPzznd07/+vm1Ir8CDy3NomkQX4PqK9fH88sUE9VPX1Pl0Hdbf\nm+Pl3ZUcPx9HiCEeXZXnkZV59p+I852Xazh2LsY/vVpNzPIp2hq5gka60scKL6kATaCgQq/cZWBs\nG+Tyag6VSKai6FhdN0lV1pEd6WOg+xzpumY0TaNuSgur1v0OR/a8QHaoi3NHX6PN2km6dgaaYeHa\nRXrbT6BpOlOal6NrwcKk7+PKUtmCisRzSuhmLCiXJJ5M0zBjCV1tRzBjSVynSH/XGaTv43lq/O5L\nD4GguqGFzFAnppWgtnEOQjOomzqfhulLxi7SBO/1fXdMxfs6z3D2yL9TzA3SfuEgHRcPTdifK9JT\naV60lnRd6CiuFmI13cSxC7Tu/YGKYhM68apqYokqhBDYxRzZoU51DdCCOLMktzo6FIDvuXiuQ3a4\nl7d3/gCkjDzpEYJTYitTZixi5tyVeK6tzmWZo9dYqgUKa950nCNn8fMldWN5Pt5IHi9fRBsXgzp+\nKqOl4njDOdzeYYzwS2PcgmmhtQ2A+PwZmPXpsQtj4xdXhUCYOgLQk3GSK+aS2f0O+XcuXgP4AWim\nQcX9i7Ev91A8c4X80jkkFs6+brtJKRk80MrQgVYqzTjPPvvsf9ixQG1QE8iSg6hUfSp07hOGHsCS\n13+/tINFr4Ao9jwv2mwMoMUtZLEQOZj/suR5Hrt378b2Rp33Cu29dG/Zj+9LUvfMp2L14gnHBFrc\nomLlfGJzpzP08h7crgFExc/nemXWVKEnYvi5IrmLnViLr3+9J5I9OELxai+1qUqWLl36c5VhUpOa\n1K+mTpw4wZe+9CVc12XWrFk8/vjjrF69esz6j+M4HDx4kK1bt3LhwgX+8i//kk996lOsWLHil1jy\nSd2qXnzxRTZv3gzAsmXL2LBhA3fddRef+9znIhe/qqoqSqUStm1HsaMVFRXXfL+FcFtXVxezZ8+O\ngJy6urpbKkt5hKcQgoaGhuj5Z3V1NbFYbMLv1PIY2XIAUEpJTU0NHR0dXLlyhYGBAaqqqqLnvp7n\ncfHiRVpbW7l8+XIEI33rW9+iurqatWvX8pu/+ZvXBRQvXbrEF7/4xcitzLZtent76ejoiKJFwzHV\nwMAAHR0d1NXVMXXqVI4fP45t2zQ1NbF3717y+TxSSu6//37uuusuBgcHOXToUASXGYYRgX4TAVXj\n6x46yhWLRVKpFJWVlSSTySiS96233mLZsmURFAkK7Cq/tzVNu8Y5cLwMw0DTNGprayOnsJaWFgBa\nW1sZGRmJnB/f9773UVlZyQ9/+EPa29sjMCl0NxsZGaG9vT0C3MIylEqlKK43BPlKpVLk9CaljOBQ\n0zSpqakhl8vR39+P4zhj2s00TebOncupU6eYN28eqVQKXddZs2YN69atG1O3EDYNYSxQsNlLL71E\na2srnZ2dDAwMsG3btmuug67rLF26lCeffJKqqqro9/F4HCklbW1tfPOb34xAvjCaWkpJJpMZE2Oa\nSCSiut6qQlfD1157jS1btoy5P3Rdp7a2lkceeSRKoSjf9B621ZQpU5gxYwZXrlyJromUkosXL163\nD4ZKp9MIIejr6yObzUax2uExQgAsjGN96qmniMViY45bHs0cRk+HfWz58uUsWrSIU6dOsWfPHjZt\n2nRNGaZOncqjjz7Kj3/8Y/7xH/+R5cuXU1t7fWOAfD7Pl7/8Zc6dO0dtbS1PP/30zZr5hgoBtfDe\nDuNow1heIUTkWHqjMgFRtHd5Xwx/V95Xflk6ffo0/f391NfXR2YUmzdvZvfu3cRiMT75yU9ed44x\nffp0fu/3fo/Vq1fzF3/xFziOQ21t7c8F6D3wwAN873vf4/Dhw+RyuTGR6LeinTt34vs+y5YtmxA2\nndSkJgG/Sd3R8n2fb3zjG+zZu5+CI4jPeBgz3XyNq46RrCfWcBfO8GVy7XvYvWcfAJ/4xCcmnfzu\ncN3oGucu7UAiFDyjB2CR7yF9O9p1UA50hfJ8DwX1zYP+wwqASk7hliV0wFHgS6IxeHhLEPN5I7hv\nNOJmdLlKKBe3wWNIZwTconKWC6NgR87A8BmkG8RcaZbiuXwfe+iicvKKVRKrX4xVt7hsUuhjD7VR\nvLILIUv4uo7no2Jn61Yp90FVmMDtTC+LlL2qImFzVxTok2gKImPVAGxkJMvf//3fq11BjoesmI9E\nQ+iWcpeKgKDyGKCgrnoZElM5Tx03e34UbNQM5WpoVqoY31ybOp5mQKkX4sEkW2gITVfnkR7SLamy\nTvBwXxS7QQiMeHrM1bFq5+MMteFnziMq56gdKJpOsvkRPKMGd/C0guAGjpVdR0/BY1a1iuUN5ZXG\nX3AFJWrmKHiYnA5GhTpm9VIVjVvsUz+lH5QtWMm0B1XrVbSoOmomVDZD5ayJOpdy7AudJaWE3r2I\n3GWkPazg0cEJ3mZWjnNqDOSXFPDmuaq+ZgVUzELEGwIY1FUxvwPH1FWVHoZuqPab4DQTSSIVlOeX\n8Esutjuu/QoDOENtUd/2vQDAE+r8MgBIZaxBxRS7ucBZLwDSCt2qP99MZoVyriz0gFWHijEM2pQA\nrHVyQRTyjAkAwPFOF1rQ94VyRTSSSCd7fXdOzYCKZgWNOkP4/ceRlWsmdIaT0scZvkSxfS8JU7Jm\nzQNs3Ljx5nW8iRobG9HPnEcW+yCVHoVMNZMxrojXU6ELECqiGPWZHYVl32FxsmEcsVWhroXdf3IU\n7mvaOBrRPpGEBhWzwKxCunlcT2KXbGI3iaMeL7N6Ns5wG/7IBaS857ZcAN/NaOZJTWpSvzpyXZe/\n+Zu/obP9AtPrs/xfH7SpTV/7OiFg3kzJvJkO9y3x+NqPR3h966vU19fzxBNP/OcXfFK3rO7ubv7m\nr/+aUr6P1UuKfOxpJ4qNPXFBjTPXriigCYhZymEvX5TYrk82m1XuBNoorC+RKk4Tydq7Cxw7F8d2\noT49kYPXxNJ1FQDseIJ0hYcfjJHqq11i1sQzItuFsme8AcQUDK8kNDU4HD8fZzirkyuqIxRKgudf\nTXPsXFztPUAyo9ElGfNxXEH/iM7h04KjZ0waayW/tcFFF+p9ric5dlbnQKseOA56JGOSexYV+PCv\nDRJwUrgejOQ1LENimRJDh/vvKrCwucT/+ad62jpN/u+/U3PFoi1IxWGw/yr/z//6X3z0Yx/j/Lmz\nxEybexblo2N6DsRM5d4npXLc8zy1N6cy6UdD7+oKn5ULihw8GefImQTr78khBCyeZfNHv9PP//vD\nOvYcS2K7ELfg8Jl45BIohIpQtgzlXJjJU+PwbwAAIABJREFUK2BMN64dmxw+beJLg6qasePR6XPu\n5vSR1+m6dIzq+uZoMaa6fgZ3r/sgPe2n6G0/ST7TR3+XcnbwfQ/pe5iJKmqmzImO5Ze7PyPJDHRh\nl7JI38ew4qSqGkhVNTCleTndl4/h+x6z79pI9+WjZAY7kMHiqGnEcT2bkcEOpO9RVTsTw4qjGxMv\nkgpNw9BiSGnhOkV8X8FV9dMW0HPlHbJDXaTrm8ln+vAcBcCZZpx0QwtTm5dTUT02cixcwLELGQV2\nGVA7ZS4NTYuorJ1OqiKFHmzqO7jjnxgZ6MKxC9iOjcxKKipSTHwHjFUhO8DpQz9BSg9dNzGtFHXT\n5mGYCXzfIzfczVDvJdrbjnH1wmHVqpaG7zhIKfBc5TonJcTmTSd39Bx+QdVPGDr4PoVTl0mtHLeB\nyPeRnh/Na2Kzp+F09FM40UZ8wQyQfhS7i5RI16Nw8jIAiaXjQSz19zHtZ4SfNaoN4ouaye4/iX2l\nB3coi1F97cKFNaUWs6mOUlsXfS/txl50lfSK+SRmThld+C05ZE61MXzsHP5ghgozzkc+8hFWrlx5\n07a+mWbMmMHp8+ewr/SSqE/jOwGwZwQu+RO6G46qdKETAKM+HWzAk8ppJVhokZ5y4PxlL7zk83ny\nhQIiZhKrV+6RfW8eUc6ey+dQef+Smx5DT1ik7lnA8L8fQCIolkq37SwuhCDWWEP+UhfZ1gvUlAF+\n5SDA9VyPho+dxwwWt38et4xJTWpSv5rq6Ojgy1/+Mq7rsm7dOp599tkJo/5M02TNmjWsXr2a559/\nnjfeeIOvfvWr/Nmf/RnNzc2/hJJP6lb15ptvsnnzZoQQPPvsszzyyCOAuvY9PT3k83my2SyapkWQ\nUTabxfO8CeGJcie4wcFBGhsbr4l9vZlCwK9QKBCPxyPYL5FIXPc4hULhGhgkdLnTdR3TNPF9P6oL\nQH9/P7t27WJ4eDgqdxgn6nkefX19vPLKK2zdupUVK1bw6KOPUiwWcRyH4eFhDh48yPHjxyN4zHEc\nLly4QG9vb3SfhHBZGGvreV7UrrOD6M1Tp05FIFNlZSUHDx5kcHCQe++9N4osBrWZPASFQiBvPDBV\nXv/QAS+M6Q2dDROJBLquk8vlOHDgAFJKKisricViEcCpaWqjjWVZ+L4fwZ3jxye6rlNVVYVlWcye\nPTr2mDp1KosXL6a1tZV9+/axfv366PxPPPEECxcuZM+ePezfv5+RkZGoXqFLWXj9wr5U7loW/j6M\n6tV1PYIMDcPA932mT59OQ0MDR44cYXBwMIrjDdvpzJkzSCmZO3cu8Xj8uoY1oRuh53kUCoWoL27c\nuJGLFy9imiYzZ86kq6sL27axLIvKykpWrlzJfffdF4F95RoZGaFQKESw36xZs2hsbKSysjJyDLNt\nm5dffjm6tuEawK1AfkIIhoaG6OnpifqHZVkRHOu6buQi+fzzz0dQbVi/QqFAqTS6prRu3Tqef/75\nCJ70PI9Tp07R0dFxDfhaDlNqmsaSJUtobW1l165dPPHEE2NiUz3P4+zZs/T09FBTU8Pdd989Bu4L\n+265xtd/w4YNnDp1im3btrFx48ZrPh80TWPjxo28/PLLDA4O8tnPfpb169ezYcOGMRHZ3d3dbN++\nnV27dpHL5Uin0/zJn/wJNTU3WNO4BaXTaSoqKhgZGeHSpUu0tLREbZtIJMa080TyfZ+3334bUNBs\neP1CZ8uwPX/Z8yGAvr4+ABYuXIimaQwODvLTn/4UTdNuCPeF0jSN5uZm7rnnHvbv3x9B27e76ayp\nqYlYLEYul2PPnj08/vjjwNj5EEw8J/J9P3Ih3LBhw22dd1L/dTQJ+E3qjtbrr7+uXN0cQWrOE+iJ\n61PtQmhY1S3osSpyF15l7979LFiwgMcee+w/scSTul3d6Bpf6+oFaDpCxJCeGswbhnEtgBF+Pyam\nEuydV+DQLUoIER1ChqtZQijHtmtUDl9dc6AADjTV42/pAVLBS74H/QeVix0oJ7nKuQpi0gwFOZV6\nkdk2ZHGY/NW9FDvfBiOOdPJIt6COJzSEplGyHaSeginrVDzsmPLZgKbc54QWgEkV0LUdcpeUo570\nMVJTiE1ZTqFjP7v37CNmGbiuh7Tqg/qXReiWg21eSdVTM4kWO4RQ120QBVCNJ6fMKqhZoZzNZEm1\nR+aiggKFFiw8uEQxuEFdhPRVOaLq+TByDoEC+splVDQhdAvhZNGKXRjBrhghBFTNgXgzwhlUsblO\nVtXNySI1FBwqtMB+RCdyZ5RSgYiZ4D3SVS5xZqVyLayYA0PH1DGlH7joSYTQ0RK1xOqXYPefxMv1\nqP4Ua1RQ5A0hIDEaoeopZwfSi5GFLgWmxepU7LH0lIufWaHKkZg6CvZFK6xStTmoKN761QpklB5W\nLBa4UgDMJkcee+gistiDHYBREwG14yV9D3oOQKYNqanyiKoFo5GofgmZ70RmLiALQ+QvvxmUz0C6\n+TKnPgG6CVULleOjPRT0DVc5FKYXjW036QfAWllfSzUrkHXkrIIdyxcmfQ8yF9S/Q4fPaHAdALr+\nuMUeTR9dzxNhrPYx5Yx5nfhtYcSRlXNg8Chy8B0yxQ6suoWqf2om0ndwsx3Y/afRvAKpmMGaNQ/w\nB3/wB+8KoP7www+zb/8BnJELiORsBU2HnwfeTQC/4P4CVJ8KY7wcF9M07rg42TCOWOjKwafUd1L1\nhobVN4b7IgnlWimKSE/twLxl18pAWjz4nPFyOMOXMatbcB21U9HzQzdS0DUdy7IwTCM6/rsZzTyp\nSU3qV0cHDx7k/LlT1FTk+NMP22Nc+66nexb7fOy3SnztXzJs3ryZRx555I75rJ7Utdq8eTO5bC8r\n5hd57n84lK9V5gpqTFJbVb5jHJIJkAWJ4/rKCSE5NrJDBuOh2rSHEBIpbzd2Pvg/qaC38CvMKBsK\nhfJ9KDmCoh249wG+H252Gt32pAdG6LphYRg2w1nJV35UTUefQcySPLA0z/pVOWrTHn7g2J3Ja+x/\nJ8GeY0muduv8n3+0iFsyOqdpSGKmT11aks1rzJ5u8/u/PogWDHvDTQlSqteXHIEWuAvqOnzsNwf5\n399poHdIQ9fg9550ePQej+/+1OXoWY+vfOXLeJ5DusrFMiFmBmbXQX1ilgKwhnNC7f9IjMJ94c+p\ndS4IyOSCqNRguDml1uW9G4f5h5dqKNo6tiPZfSzFwyuLakuKlPg2lBwV3at+5SN9D63MtbF3UPDO\neRNfxJk2a+zD6mnNd3H68BZG+q+SG+6hunp0PKTpBg3TF9M0exX5TB/F3BCe5zAy0E73lXeobmgZ\njcjVdbVYWMrT236S7svvUCqoBcjRKw0V1VNpnLGUWKKK3HAP5469ivRVmXXDxIpX0NSyjJGBTno7\nziI0HdNKXBfuG9snBYYZw7WL+Kh5tW7GEJrO1JnLqKydrgDC2MQue+XHv9j6Br7vYsaSLFj536md\nMhfXKaroIXM0lqihaT7ZoV4Gey9Q3diC4zrk8wWSyeSYBT7lCKghgvNmhno48daLOE6BqtoZTJ9z\nL/VNi5BSuRHKYI5RKmTobT9B16VjOHYeWXLJXrxMLIhFFZquHBRrUlSvW8Xgzw4hCyWwDISmUWxt\nI7l8LkLXkK6HdLzReWsga9YUxP6TOJ39uH3D6FWjwJR0PdyhLLJko1dXYDbUjC5kQnDt/NH2FCDC\nD6jgV1rMwpo1hdL5DpyugQkBP4D4gmbsq71oro93qYeui52IuImejCM9HzebR/fB0nTq6ht59tln\n3xW4D1QM2843d5E/e4X48jmR+54wDPXcAYgo5nGSjkvhVABALmlRUKDjUbJtTMvCK5Rwh7PEjRjp\n9AT0/X+iwoU5ERDixe4Bil39CMug8v7Ft3gUgZaIIQxdRSsH8Wm361ihx2PgS0pXexlpvUBi/gxK\nto07bnFUNwxisRimaSKEoNDey8jxc6Q0c3Ixa1KTmtQY/du//RuFQoF7772Xj3zkIzd9XqbrOh/8\n4AfJ5/Ps3buXF154gT/+4z/+TyrtpG5Xtm3z/e9/H4APfehDEdwHyhFqIsAmjEvNZrO4rhvFnIYq\nh7NCWOtmTl/jVe6+F7q2XQ8SdF2XYrF4jcNaCNiVR/WGTnW6rtPe3s62bduiyOGmpqbIySwsbz6f\np6enh/7+ft5880127dpFPB6PILgQoAvV3t5OT0/PNa5cvu9j2/YYoCSMip07dy5SSpLJJF/84hex\nbZtvfvObnD9/nq6urgjmCd3LwmOE9fN9f4wz23iF7R+CYqEsy4qibkHdu01NTZEzW3jcQqGApmkR\nwDgesqypqSGRSLB06dIxwBSoseChQ4fYsWMHDz/88JjrWltby1NPPcUzzzzD6dOnGRkZwXEctm7d\nysmTJ6P2qqioGFOHsFxhu4dufq7rjinX0aNHMU0zar9UKsWMGTN46KGH2Lx5M/39/SQSCaqqqm4p\njU7X9SjyVko5Zpz2gQ98IIIubxbp6XkeL7zwAqBgzjAytlQqYRhGBDMZhkFtbS0DAwPk83lSqVQE\nBYawavm9Vg5e9/X10dXVFbkVptPpCCazbTuCdUN3wlJJucWfPn2arq6u6BqbpollWWzatImzZ8+y\nb98+8vl89IzrjTfe4EMf+tAYAHT8vb5mzRreeecdtm/fzqZNmyIgTQhBoVDg9GmV8HT//fdf8/0S\njbGDe1jTtGsA81WrVmFZFh0dHRQKhQk3qdTU1LB06VL27t3L8PAwW7ZsYcuWLdTX1xOPxykWixGc\nBjB37lw+8YlPUF9ff8NreSvSdWUm8Morr7B7925aWloiZ03TNKP2CAHc8Tpx4gQ9PT3U1dWxYsWK\n6LPOcRxisRhtbW2Acjf9ZSt0+gxjpHfs2IHv+9x333237A4uhIig8OHh4ei+uB05joNhGORyOV58\n8UWWLl1KbW1tFAFefi7TNCN3USEEmzdvpre3l7q6OpYvX35b553Ufx1NAn6TumPl+z5bt26lUHKJ\nz3j4hnBfufRELfHpayhc3cXWrVvZuHHjpIvfHaqbXWMZwjjj4TyhITQL6dkTAxgRgBNAUT5EEZ23\nJLUUpGngl7umeQWQZQ+spRcAQOEEKljeCMC70depcxtWnHhFhbIz7zqAzHcgNVNFfSZnquOUg4Kx\nGqichyx0Qv9hPCeHsDOAUCm1WkwBXr6N1HwFscQbGY2CLR/I+mPjdYxkBNgJv4SWmkrFgqfUDqN4\nDbkLr1LID+FhIjVDuQ5O2FR+sIgQOptR1v5WWf2DX0aDa6lcBo2UWiXTLdW+pT4FZYVtGx1fHUL6\nNkKUAXG5K+Dl0WKVGBVjd+r4xUGkV0JIF9l/GL9m6mgfC1f7ElOQ8YbRc3S+AfZw4PYWOJQFUbPK\nbfE0ciJg0RlWzohaDHwXUepT7aHp6MkpxKfdh1k5nTC+qpDrDq5D/CZwX9TQqo01M3AONFQFhKYg\nvYgaCuNYr6OR01DqBz0JUwNHs8CdcPwOG6tuAc7wJRVbWjU/AGp1NE0Pdu25weWUwQROPZx3Onfj\n564qcLF2JaKyJXIGVNBmEHddMUf17YHDKsZZ2ipOOV0VxB8Hq8DphapfZC8H95tU4GT+allfcRm9\nD8sUqx91AMxdKXPhlAHQmVGvC506y9t7zL0ddhht9J8QQMTHFOx5IyWnIgaPY+iSpOlQ6j9KoedI\ntLik64KUqdPUPIPHHnvsXf3eWrp0KdOmTuFCWzt+vkM5TWqBC2F0X3oT98PcFXVtzIrA0dJDSjd4\n6GTccXGyYRyx9BQ06Zcyqq+nbjUqV4KZQjjDyFIvXrwmghlvVV6uE8M0EUjyV3YjHA3fqIrci0K5\nQj280HWdWMxC93PvajTzpCY1qV8dbdu2DfwiT65zbwnuC3X/Up83DricuTLCnj173hVX2Em9+xoZ\nGeGttw4gZIkPvWcs3Aejw7rxa1ECSMRUdKtjO/gJHy34LhdBBKmUY1mfvmGd6soJxksTKDyfYRj0\nj+j4vsD1BAMjOsWSCE2scD0VyxsWLx6Dkg2OB54/CvUhYTirqylAXOJ6gm9urqKjz2BancOfvL+f\nhloP2xEUSgJdV057mvDYtDrLo6uy/OiNNHuPJynaCtKrSvosm1dk7Yo8L+6sxHFNnnwoo+oYAH22\nIwjMtTA0VSY/NB+XUFvlce/iAtsOpljQLHl6g4cQ8KlnHL7xr7D3+BD5oo9WC5qQKlY4mKJ6QVPa\nrmprQwvqGx4++LuuKdLQCxrJ90fhw2XzStSmPfIlHaEn6BoQHL9Yxb1LVJyt57l4nosbDIER4DhF\nLJFAaDpSwr/vtnB9iykzFmPFxi4kDA904Psevu9x9uirVKWrqayeElzj0NXEw4pXYsbUIlAhN4T0\nPQzTAgS6YSIQ9HWe5uzR1yInv1iiiorqqWi6ieeUGO6/Qm6omwtDXfieiy99dF8jVVlLZc1UGpvm\nM3XmYnTD4uzxHfS0n0agI7m1uJuwvLphIR21EOm7qp3Kb5zruRyGckp5Oi4cwjBizFvx36ibNj9y\nyyuH+wCmt6yg7dReBrrO07L4EYTQgmgyB89TDv7lYzyhCaTncnzPj/Bcm9rGOcy+awPxZBWeZ+NH\nm2sEmm6QrKpnVtXD1DTO4dShl7ALGbIHThJrmYpuWOi6qUA0ILWoBem4DP3skHLV0yVeJk9m51FS\n9y8huguFUBBeUA/d0InNnU7x9GWGtx4k/cRqtJiFMDSk5+NlVdSSloxFYHDY3n7J4ZpBbPjII9g2\nhBDoSbV44peu/8xFi6uF4FmzZrFhwwZ27NhBX38/ciRYgBEmi5cuZv369dxzzz3/4Vjecs2dO5eW\n5lmcunCO4pkrxBc1IzShwEgpABfpecplctwYPN/ahizZmI01mA3VCMBzPFzHwfd9RlovYCBYsXz5\nbccuvduKx+Pq8tgOUkqGj6uNWvFFzRH0d3NJjOoKtEQMbziH3TOIk0zelhuHly9SuNpNIpFAIuna\nup/KXI74/BnqY6zse00GC+GapkHfCP1b3yIhdB7btImWlpbbqf6kJjWpX2ENDQ1x6NAhhBC8//3v\nv+XnJUIInnnmGQ4cOMDRo0fp6+t7V0CJSb37OnDgALlcjlmzZrF+/foxf7vROFHTNGKxWOT0VQ5I\nlUNcoRzHua2oxfC1YbxsCHTl83lKpVLkDB1CdqESiUQEwIRlCl/rum7wLDDG4OAg27dvp1Qq0djY\nGDlOlUolPM8jFotFUNjs2bOZNm0aZ86cIZfL4QRjEdu2GRwcJJPJMGvWLFzX5erVqxHYJ4SI7pkQ\nTBofr9vX18eMGTMwTZMPfvCDzJmjXLz//M//nC984QtcuXIlAizL4T4ggh7LN77catuGP2OxGKVS\nKXLAa2pqoq+vL4LiXNeNIpfD95RHM2uaRkNDA8lk8poNAlJKTp06heu6dHV18bWvfY1Pf/rTJJPJ\na/rGzJkzo3Z57bXXovOH8cblsabh68ohv7CvlPcx13VJpVK0tLQwd+5cHnroIZYsUa7KW7ZsYWBg\nIALHbrXdQijLcZyoLOVj57CtJnI5DXX48GF6e3tJpVKsXbuWZDIZxauOd6ebM2cOg4ODDA0NkU6n\ncV2XfD4f9enxZQ/jlC9duoTv+8Riseh/mUxmTOSxZVkRuJnNZsnlcmQyGV555RWefvppKioqIsdF\nIQTPPfcctm2ze/fuqP7btm1jwYIFLFq0KCpLCCmGbbt8+XLq6uro6enhu9/9Lk8//XTUPp7nMTQ0\nhJTyGqdDx3Ei8DA8dljechmGQUVFBQMDA+RyuQkBP9/3o1juX/u1X0NKyd69e8dAfYZh8MADD7Bh\nw4boPny3tH79el555RXefvttNm3aRGNjo0rsEgLLsnAcB9u2r4kf9zyPl19+GSkljz76aPT5FUYv\nx2KxKBp6zZo172qZfx6F4GehUMB1XXbs2AHcnhOelJJ58+ah6zqHDh3i13/910kkEre1XvPWW29F\nIPrg4CB/8Rd/wcc//nGampqi/hz2K9u2I+j19ddf5yc/+QmapvHhD3/4hvfxpP5r644H/AqFQpSP\n3dHRgeM4NDY2smrVKp566ilmzpz5yy7ipH5Beuedd+js6sbXk5jp27NQN9OzKHYepKOzi9bW1ihr\nfVJ3lm52jSOobCI4T9PBV7uQxgMYuqbjCi9wrkM9hM7fYqQnqNUYAaZp4Qz3BYiPr+I8zQlWVoUW\nxO6KIErWKwOwUHGiAEYK27ZxB0/jZ9sV9DRto3LtA5X1BAg9iHrxHUAbjX7t3gVeHoSO0ONQf696\nKNq7V4FyyZkBpKOpRQ4ZAoNyFJYKYcVywM71SUy7LxqghJBs/sIWEFK5fIXwT+CuFwFBUdxnuate\n8H9R+xuMLgqUwZChA9rgcTAqwc2o6GAzrcAzYRBF5iLRhBo8S6+E0CxwRqD3LQQQq19SNnEfjTpN\nxk1qqusYGs6Qu/Aq8ekPYqSbkcGKm/RG7biV415e/Syvj+9B715k9kpwHZOq3PEpoJkKIMx3KVc5\nN6fqKHRSc38Ns2rmmAGxlD6+kx97zgDyuq7KJwyaDjJs93DVtgyalB6jDngTHGfwHfX3ulUQqyV0\nlVSOGGPfZ1Q0ocUq8UoZRLEXGW8kl8tf59AS33dwBk7C4EXVtxvXBm6SmmrnyD0vdJPUA9fKWuh6\nQzk9Dp9Wbnph/xIBhNbwoPqZuag+D3xbORHq8bJ7ssylMurrvoIJB45A/1vQuA6RaFDX33eDPiqv\nhYj9cbBtmWtFsKIV/HfwvokcPMdIA6GsuZ977jl27txJT08PhUKBRCJBY2MjDz/8MHfddde7DnZp\nmsZjjz3Gd7/7PZyBw+qzJN6o6qEZKpLK90aB6FClQXU/IpX7oRCADr6rotvuwDjZMI7YzXbiFfrV\nZQrdGW9F0lex2fkORPYismpeBDPe0tuDNknG48Qsk76BIfzOn0HtKkRFM+jB90LQN6Xv4joO3sgl\nxOARUjHxrkUzT2pSk/rV0JUrVzhz+iRxy+bBFbcerxpq42qXM5eLbNu2jQ0bNty2A8+kfvHauXMn\nnpPn7gUu9RNsdq5ISjI56B28Fs7TNTANieOqB4LxWHz0b7qO6/p09evKkFrArsNJ5s0YvqVyqQRL\n9aD34MkUjifwfegf1nnnosXc6aNjH4GKko1ZYOoKoLMdsB1BIqYgoKIjePt0HCmhqS7HjoMmbZ0m\n9WmXz324L6qb7ag+mrDANCW+KZXznhC8//Fheod0jp1NkEz6fPi/D7NpdY5TbSad/SbplIL1QuPq\nuKUiefNFTYGQXtlQZ5SF4uGVOfYcT9I3LLAdVQ9dh4897XDuquBiu85ITm3yEKjI3KI9Wr+wzJYp\nrwExAQYzOhKBrinoUEbnFhi6YO0Km5d2JdATDZRyvXz3ZZ+KZI7FLV7gnmfiuTa+F4zbAdsuoOsx\nXtuXZM/ROB5JmhfcF53TdUpcvXCECyd2kUjEqKmuZmBwkLe2/zNzFj9E0+zlo4tSrpoPSSnJDnfT\ne7VVQYHB+VzHpr/jNOffeR2A6vpZTJu9knT9rOAzRaAJgeva9HacovPi2+SGe0BKFq56nNkL7w/K\n5NDTeZ6Oi0fp7TiDpqnd6dmhrmBhsGzzyTjJcP6KcrUTmobnlCjkBvE9F8tKoekG0vfwXAdNM64B\ntUK1XziElJLqhhYamtQikO+5IEd3+YeKJyupnzaPnvYzXD6zh+YFD6m6eL7aKiN0NbITao4tfUnn\npWOUilkqqqcye9kmNKHhOMVgTieCa2qMdRxpnM3CVe/h5IF/wxnI4HQPIabUIDQNvWxul1o2DxG3\nGNyyV00jizaF1jak41L54FK0RGyUMo2kk1qzhFJbJ27vEMOvHiC96R6shhq8Yima3oxxsPMlfsmO\nficM/Zqo3tEpURgJrgDHCa+fPxr1O23aNH7jN36D97znPQwNDZHP59F1ncrKSiorb4Nivw0JIXjy\nySdp+7uvkn3rFCIVJz5nGoQuOoaOdF2k4yFio+1XvNBBdl8rAMm750V1FJpA+hLfdRl+5zyWZtwR\nbnPJZJKqqiqyA72UuvrJX+pCSkgsmnXLx5Cuj9B1Kpe0MHzoNMXTl3GmN94W4Ddy4iKGFMycMZ1L\nly/jl2wybx6neL6D5PI5xOc0IYJ+6jsupUvdFE5ewr7cgykFax5+mN/93d+97fpPalKT+tXVzp07\n8TyPlStXUld3i8/2A6XTae69917279/P9u3bee973/sLKuWk/iMK4ZCJ5qwVFRXoun7d7yLLsiKY\nrhxqKneWi8fjEYTW399/y6BnCJQZhjEmPndoaIj6+voxZQ0hmRCOsW07cnkLyxLCTSHks2/fPkql\nEg0NDSxatCgqYwjnhaCK53mRi9jixYs5fPhw5FTW39+P4zhUV1cjpYzAuHLAMYQKyyN0wzKH6u/v\nJ51Oc/Hixeh3NTU1fOpTn+Kzn/3sGCgrbPcwSlXTtBu695X/PixDORQXOrSFbeN5HosWLYrAPNM0\n0XU9ggxDsC6bzZJKpZg7dy7V1dXMnj17jAN0d3c3//qv/8qBAweoqKjAsixOnTrF//yf/5P3vve9\n3HXXXVH7hOV3HIcjR45EDoLhucK6hkBf6F42EdgYAoFhVO9XvvIV0uk0UkpGRkZ47bXX2LZtG+3t\n7ZFjV3t7OwsXLrxhfxzvfOg4Dl1dXRGEGJ7bdVUqzUSQWagtW7agaRrz5s2jIjAkCesyfqNNc3Mz\nx48fJ5/PMzIyojZxlLn2hX2i3OGwu7s7iuQ1TZW0k8koo4Uwbnj8eSzLQkpJPp9nx44dPPXUUxQK\nBSoqKsb0uz/6oz8imUyydevWKOL561//Os888wxr164lHo9fA0XF43GeffZZvvjFL7J9+3Zs2+YD\nH/hAFFsbqtwJ07btKLI5vJbl0b7jr0vYh64HZIXObbquR5uePvCBDzA0NESpVCIWi1FdXX1L8cc/\njxoaGnjggQfYu3cv3/jGN/jkJz97JB9zAAAgAElEQVQZOVOaphndx+Vgsud5fPe73+XkyZOkUqlo\nDaj88/Xy5cucPXuWeDx+RwB+oYNna2srly5dYnh4mPr6ehYtWnRL7w/v8/nz59PU1ER7ezvHjx/n\nwQcfvK05Ufi91tjYyMWLF+ns7OSv/uqvWL16NRs3bmTevHmRy+rIiNqYvWvXLq5cuRLBrCtWrLj9\nBpjUfxn9wgE/3/d56aWXxvzugQceuMYmdyLt27ePP/3TP6W/vx8Y/aA8f/48e/fu5etf/zp/+Id/\nyMc//vHJxYpfQe3cuZOS42HVLUTc6uJ8ICE0rLqFlPqPsnPnzknA7w7Vza6xFquCwsB14TyhqYjI\n8QBGaO0t851BTI6mIjqrF90S6CF9Vy1UmQZ25mK0zCCzbQHoMgq7iRBUGi1UANYFkJ/0IXMOCbix\n6chSCYbPqtfWrx6F+2TgFiY00NSOIGWNEYBGVhqSTcjMWdBjiKZNCoLr2qXeXzlvHCQmAgc5oSCm\ncVE96iUGVM2FoVacofNY6VFg2kzPUpCW9KDUA6nRmCDpu2UQYzix0Mr+HajQpX4aCRUtq+ljI1J1\nS7mCDR5XZU82qcjiztdV2yRnqDroqg7hDiXPdZAjF2DwMMK3MSqno6em4eb7oqhT4eaJGVBTXUNN\nTQ3ZbBbyWfIXtyD1JLJinnJt00xV7mKvill1spHbHKCAzf63VLk0U5UrNSOoL4EJmkDE65DViyB7\nBfoOIL08xc6DYCSQUsMu5fFyXarc9hDR4lUh6NvRSl95Rxx/vYLJomYgi70IfKSbVY6DIaznO4yN\nNS7TyFkV5WumlfNd6GKHmpyP/xYVQhCrX0yh/QB+3wFoDOOfRXDttYhVAl8BqmHkbe3dUVS0DBwC\n1fvMMve4QPE6qL8/AFgLqq1TMxQLqlvB+3QF+cXqVbS1X1IwZdfPoG4lpIL+WtZWBNFuGKlReLN7\nF7L+HkTFbKQogyHLAb0yqHTUNdHhGqdOGIVYtRtY6PseeA4CQW1tLcuWLftP/07atGkTZ86c4fU3\ntuP17Arur5mjfSWCdoPPrNwVBff5tuorlfMDXll5g0h5Z8bJhnHEuf7TESg9JuL9JpK+i4g3osUq\nlftfvgPfvPUFsbBNNFMnXyip7zXfVp8hQ60KDE5MjfqUKHSp+9LJIqVLdeM0PvrRj066901qUpOK\ndOLECZA29y72SPwcz/juWeyTsBzar15heHj4jojLmNRYHTt2DGSJR1Z5+NKP3BpU9KlgcUuSjt44\nOw4nmd98LZxnmeC4KqaoHPCzLAvXddl5OIkmVJTt3ncS/M5jIyTjN3YH8HzlyicQ9AzGOHvFwpeC\nafUe2bxgz7EUi2cNIYSarliG+hkqjLEt2QIjcOLbdzxBoSRoabKZ2Wjzjy+nEUje//hwBPcVbeW2\npwkwDAUNCQHxmDpGpiAYzuok4z6/sW6E9ffkkRKu9ijn3LsXFDH00b0zQqgRezLukytouN7Yv4Hk\nQofFSFYnbvkMZ3UOn9G4/y4Vs2sa8N/WeHz9xwrwO9EWY82yErquoopdT0F+frDfRtdH2zWclpUc\nwcGTamFuzvQSRVtEe60QYJgW82dJtN0+umFR23QXA52tfPWHgiceLLJ2pU1VCgwjjoeNF2wI6+w1\n2LI/zsGTMYqOQcviVTilAr0dZ+nvvkjX5RP4XkmNbXRLRU3ZDo6T48Shn3LqyBZqpswlXTsDTTfx\nPZv+rnPkM334rgtSks8oJ4HBngsR3Ne88CGa5txbNneXUV0Nw2Jq83IamhZx+tBP6O8+x8mDr9B2\nai+abuLaRVy3hPRcPM9BN+OYZpxCtp/MYDtVtdOv0yPL2pUwCsyk50orrl3A910yQ52k0o3KuN/3\ncJ0ihhW/5hmDXcpz5cxuNN1gSvMyJBI3cAMcHykVavaiNXRfPUX35ePousWMefejGyaaZpRNaQRS\n+nhuid72kwA0zV4VuWpK30cIDcOKo2kTL/jUNM6lsraJoZ42Rl4/SM1vrVPTIEst+qk9dJLkvJmY\nDTX0bd6ON5RB+jbFM1exr/YSX9hMYsks9CAmV5YcimeuUmhtwy/YKpK3Z4iBH/+MWMtU4gubETE1\nH/aGc0hbXXvpBZncQqDFLbWRsdx6cvTygwR3UC3Wadf5ovJtB28khx64xnznO9+hq6srWshqbGxk\n3bp1kQvLL0L3338/bW1t/OvmF8hsextvaAHJ5XPRk7FRwM/1kLqGbzsUjl8k9/YZ1earFhCb01RW\nNnW9+3YegUyBqVOb7ohnjpqmsW7dOjb/5CWGjp3DLwZRd5XXX9wtl/Ql0vfRhaBm+XwF+F3opLR0\nkNTsG8e8hXIzeYYOn0H3JFfbr+Lpgqqlcyhc6cHtGWTk9UNkYsfQKlTkmpcv4udK4PsKKrVizJ49\ne9KpYlKTmtQYnThxAoB169b9XO9ft24d+/fv5+TJk+9msSb1LimXy3HhwgVM0+T++++PXKFCECyZ\nTDJlyhSGhoaoqqoaA+PAKCBm23YEspX/XghBOp2OIL+Ojo5bAvzCqF3DMMbEjNbU1DA0NEShUCCd\nThPG7YbnChWCh7ZtR5tI+vv70TSNBQsWMDw8TFdXF0KIyLkvdIgDIsAmhIuSySTFYpFCoYDneTiO\nw+XLlyMoqvwc4fvKQT7P8yIXuvD3mqYRj8cjqMhxHFpbWxkcHKSmRq1ZNTc3s2DBAg4fPhy505XX\nL4yrvZHCWOMQZnNdd4wbWiwWw7ZtisUiTU2jCU1Llizh6tWrDAwMjHld+N50Ok1LSwtVVVVUV1fz\nxBNPcObMGYaGhti7dy/Hjh2LYnMty6JUKpHP5zl9+jRf+MIXSKfTPPTQQ0ydOhVd1xkYGGDfvn1k\nMhkcx4nKHEa/ho51Yb2vp9BZLpFI4DgOH/3oR5k2bVrkUlcsFiOgrrq6OoIK161bF0FvYw0jxs7f\ny+ORjx07huM4ZDIZ+vv7mT17NplMBtd1I2OB8Xrrrbdob28nkUgwa9asMfG4E8UEG4bBggULOHLk\nCO3t7UyfPj0Cb8dDrr7vk8vlKBQKwNh+HP53KpWacMwf3qv5fJ5MJsO3v/1tfv/3f598Ph/NE8L7\n4bnnnmPp0qV85StfiQDff/7nf2bHjh2sX7+eNWvWRPBaV1cXO3bs4M0334yAwF27dkXQVvlrOzs7\nI3g2fC5jmibJZDJy6wyjqsvrNTIyEgGME8Ujh32op6cHwzDo7Ozkq1/9KsPDw3ieRzKZZM6cOTzy\nyCO/MMAP4Nlnn6Wrq4tTp07xpS99iWeeeYbVq1dHkG2xWCSfz1NZWcmVK1d44YUXOHLkCIZh8KlP\nfYqqqqox1y6Xy/G1r30NIIIrf9maN28e06ZNo7OzkyNHjgBcA2TfSOFnjGVZbNy4kW9/+9u8+uqr\nrFy58pYBv0OHDnH27FlKpRK9vb1MnTqVlpYWWltb2bdvH/v27aOuro6qqiocx6G3tzf6XCiVSlRV\nVU2am03qpvqFA34HDx7kc5/7XHTzxONxdu3addP3vf3223zsYx+LqPxQ5Xa1ruvyt3/7t3R3d/P5\nz3/+XS/7pH656unpwfMkVsW0n+v9RkUThZ4j9PT0vMslm9S7pfJr7Dhq8ub5XrTgIRIzYajt+nCe\nUE4Kvj92N7lhGmgaeJkLgK9gDTcPuatQcRM3SF+t/OiGDvl2hJdTz7CtSnw3iJC9wTGEZgRuZQFo\nlbuqQCQjhYw1KpDMzQeOe2Fs5ChohdCjB+UR2CQ0cIvq3MKE2pVgVanPwjAatDx6lGDVKlzBCmNd\ny9pMRZ5eVC5dbhFn8Dw5wKqdj1HRhBAaZu087N4TyjWtZmng8KWPhRjL4nPHQFvSV8AcQGo210QE\nhxGsoQOa9KDuHvXvfAf07AYjhQiBGDSkW8B3etGybUg7qwAZXcPPd1M496JagNDAxANNIqVG78Aw\nXb3KYltqFtJzkU4WMXgYOaQHdRrtV0K3VNPbg6pNh0+Nwn3TNoIVLowHu5Qoe6+mI1PTQV8HPbvw\n8j3kTm8OXPeC90hXtU1Y78w5SJf17YnWWwOwagyBl72IQGWMye4A2EpMUQfwSqq8IohmCoGt3n3q\nPJVz1U+vNFqP67gtmLWLKHYdATsDPbug7j5IzSxrs7BcGtjdqj8aqSDONeiL4SqQHmNiwFYql0qz\nQvXH/kPKlc9Kl4GygWVKeoEq/5WXwBlSjpZ9b8HQCQW5JqaotpWOgidDV0Whq/hkLw89e5GDx1S/\nDF1CC13B+cqirYUegHvh/URw7UKHwOB9SOWKN5Gkr2KlSz3o+uiuvZ6eHorFIvF4PHLvW7p06S8M\n7AonvocOHaJ/YAh69iCNlGqzePBQy/fAHlD3rass+Uk1Q8MDoAXRC+H9bg9R7L7z4mTL44i96DP1\nBvBluaLPfgOrYQnF9v3IgcP4sTTcgpuIVxig2L4XU/MplTwcYlQs+C28fA+lvhP4pYzqd4PHxrxP\nAFqsAt/JMzycYefOnTz22GO3WfNJTWpSv6rKZrOApK761uJaxsvQIV0hKQyph6yTgN+dp0wmg5Q+\nyXiO4eEi4weDDyz1eH1/nP3vJHj/Y8OkkmOHhHrwH+Mf+luWxZk2h/PtFpYJi2b7nLkk+MHWKj7y\n5PANzaNL4bRBN/n+qxaSGJYlSVe42I7g6Jk4HX0mMxodPB8KJTVU0nUF+xm6gvxKDuQKGj6SV/ZW\nIhFsui/LmcsWvUMGtVUeKxeoeM6iLSjagXtfzB/TDEIod7y28zEGRgwaajw23JvDdpRLX6Gk3leR\n8KMpUHlzCCBu+eSKmtr75MP2t1PseDvFUFbNjUq2huvDV35g8u8zJRvv87h/qce6lR7ffVlSsgU7\njyR5YGkJIVT9XA8KJYEfDFODfT9jtL81Qb4kmDfDZnGLTaEUgIaArhvoukHMDMvp0rLoITTNpPfq\nUV7cafDqHoeVCx1mz/CJGSYjWYfj5y0udsSxXY1iCayYSfv5Q7SfPxS1l2MXkRJMy8JxJbppkqis\nxHRtSoUMvufS13GK/s4zGEYscrszrST1sxfRfekouZEeivkR2s8fAGD63PuYPnc1ZZPVshYe/ZcQ\ngjnLNuG5NoO9beQz/RFoZ8YSVNU1M9TXjtB06qcvoufycbrajgSA3/U+64QCM6NzCXqutAab5KCt\ndTueU6Rpzr0gpHJ0twvouommq8XWzFAnpw/+BN9zSaaqSdfPwrVH7zntOvOhUiGrnDucEp1thynm\nh2iavYqqupnRXFA979ToufIOxdwgyYo6Kmumj1n4KY/hGb+4EDoUTpt1NyMD7XjZAkOv7KNq3XJE\nk4FhxsZ0arO6koqVCxnZdRi9ugKRiOH1D1M4dp7CsfOjFGs4/5agp+IkVi/C6eyneLadwukrFC90\ngKapSFdfUjx7lViL2owtDB1hjaYSCD2E4FyEFXVa3IEMTkcfQtexZjZe036+7SBdj+KZq/iOx6G3\nDyE1Da9sA6IuNLbt2M7sWS08/vjjPPTQQ78Q0O9973sfly5dYveePeQOniZ/9DzxuU2Y0xsQmsAv\n2jgd/ZQud0dtl7p3Ecl7FgTXL2hO1yW7txX3fCfpRIrnnnvujgHS1q9fz09feYXs2cuj3wu32JTS\nURtdLcvCSiZJtUwje/YKg68dIPU/UsQaam74fjebp+PFn6EXHTzXxTd16h5ZSfXdC/Bth8ypSwwf\nO0upfxivLM7ZqkxStXweWsykf8fb/Mu//AurV6+ejNGc1KQmFUnNifi5PxfC94XHmdSdpWw2G0Vj\n2rYdgUHlevDBB7l8+TJ1dXXXAH7AGAexcsViMWpra9F1ndmzZ9PR0cHAwMAtxTWH69Ke59HW1hbF\niS5YsIBjx47R19dHTU0NUsoI6NI0LXJvi8fjUXRvsVjEcRxGRkaIx+MsW7aM/fv34/s+U6dOjcC7\nEBwLYbZyl7TQ0e/s2bN4nsfg4GAUkxq6xYXlDRWOO8Pj+L4fuSHW1tZSXV09xkHZ933a29v59Kc/\nzb333suGDRtYvHgxTz75JMePHx8TRRzWNQQrbyRd19E0LYq4LL9O4yN/w4jSgwcPous6qVSKYrFI\nX19fBKFpmsaUKVNIpVJRORzH4R/+4R+i44aAW7n7Y0VFBdXV1eRyuQgie/nll7Esa0z8ZnNzM3Pm\nzGHr1q3k8/no+OXX6GYKXxvGNV++fDmqZ0NDA/X19Zw9e5b6+npc16Wvr48TJ06wfPny6P0TqXyM\nPDIyEjkNFgoFvvOd7/DMM88wb948CoVCBKOFLnqe53H48GF+8IMfoGlaBFMWizfe8ARE8b2u69Le\n3k5dXR01NTVj4lzD+vX29kauguWQ5Pgo4YnaLHT3KxaLHDqk5re//du/TTwej+6TUGvXrmXLli2c\nPXuWBQsWMDAwQEdHB88//zzPP/88hmFEkF54/Llz57J27Vo2b95MV1cXL7/8Mlu2bEHXdTKZDHv3\n7uU973kP8Xg8uudC4C7sxyHoVw717tq1C8/zWLp06TUQmO/7ZLNZOjs7OXfuHPl8ni1btlwz3zl+\n/Dg/+clPuPvuu3nyySff9YheUHzOZz7zGT75yU/S2dnJN77xDX70ox+xdu1ampqacF2X4eFhDh06\nxKVLlwDlEv7JT36SBQsWRNc4dEP91re+RXd3N9OnT+fpp59+18v780gIwcaNG/ne977H/v37J5x/\nX08hiAnq+2Pt2rU8//zztLW18Xd/93eRe+SNdPz4cb7+9a9Hn4vJZJLPfe5zzJw5k56eHrZv387O\nnTvp7++PgGyA+fPns2HDBo4ePcr+/fv59re/zec///lJc7NJXVe/cMBvy5YtwOhg4j3veQ8VFddZ\nCA9k2zaf+cxnIkp+vMbT6z/84Q+56667Ji22f8VULKoYE6Hf4uL8OAnNhGBwM6k7U+GAOJcv4evZ\niIGKZNQi9ISCTbJXoXI8WBc+ML/2t4bdg+/lwHcxq+di951A9h5Q4FDsOg8mQxhHgCnzFNv3YmgS\nacUQiTpkpl0dw0gizaqxrnihm1/o2ue7CjDqUwsiVC0AIw79gc155bwAlCtzCxPKDXDsAD54OG/3\nKzDQrIDENKTnBg57YUTu+N0D5ataOhCcK3sxcHLLRa+RmgkS7KE2nKE2tFglsfrFmLWLsHtb1Wtz\nV6BydlDVEGK81pI6Uj4AG81KBYRRFhcclUkAZeUXBtTdh5a4hMheQNpjgRjhe0gkyYTFjHmzWLJk\nCblcjt7eXgqFArFYjL6+Pvr6B7FdkHoCUTUHkWxE12MgPfyRqwpY9PKRS58w0xCrgsq5ql49uxXk\nVLVo1JGu/r5Rt8Wy9pXIsoUmQHqIWDWifhWye59ymvMVwKPHazGr51DsPoxfyilnQzen2uo60Og1\nYB9Arh3h5ogFCyuFUg569yiwrqJFudxpRgBs9an6urnAoc1Uf4+AT139/jprafbAKXy3qPqq70Dv\nXnU9Qpgu7IOFLug/rK5z5exxIF8A+fn2KPOHGAtXCk25xDmHVZv1vKlcAJPTg74SvVEBk5qpgL2K\nWVAaUPUbPAqD49sP1S6Vc5EVs6H/bcicVSvXIRzru+qeqGgZhfc0Y7SPiqCsMoiy1cPo8FGIVVbM\nUt9X5dfL99TnifQh24b0bE6cPIknNTxPRgCufuY8+/YfoGnaVDZt2sSmTZt+IcCcaZqsWrWK7T/b\nhY+B7+Vh8GjUk8fYyZhVkF4IVfPVgmxUJxfyV/Hv0DjZ8jjikWxmFPa8mco++2OxGFblYtzhyzjD\nl/A7d2Cb6zDTzRM6zZZHgidMia6Z5Aou8ZkPYiTrMJJ1WHWLlLvowFl8O4P0HIRuolmVEVTtDLdR\nvLqLrVu3snHjxjsGmpzUpCb1y9W78SAn/IqffCh0Zyrcse25DgIf01DOcSIwx07EXBa3lDh1KcY/\nv5bmo08Nomli7PhzAjmO4IUdaWxHQ0pYt9LjQrvJzsNJEjGf39mUYaKvmqKtXOccV/D9f6/iZFuc\nquop6Lkc3f02zVM9Tl/S+Ovv1/KHv91PU0PZYo4DhQB+M3Q13MoWBd/6tzqu9hjUpz3unl/gh69X\nI4CH787heoJccRSSS8YlRplJuCgbWu06nEQgWb8qi6aB7ULcAjNwznPc67eJEZiC73knwY9eT+MF\n07hpdS5zZ6hxcb6gceZyjEsdGv/fiwabtxt8+gM2C2b5vH1K553zcY6ds1gx38Y0wXRUGVRBrz1n\ntiB4+U21YLbhniy6Dqm4Ag1dT7m6ARGg+P+z9+ZhdlQFGvevtrt339737mydzr4vhEBWgizCoAgo\nLh8qyrg9Aoo6jsOMgp/OOIPL88yngow4LiOj6CjLAFkaAiEbIUun09nTSe973777vbV9f5xb1UsC\nBCWO+vT7PEl3cqvqnjrn3Lp16vzO+3o8Gl6vRN2syyksm8pQ9zEGe0+z60iW3UdMJMQD56xuoao+\nbrjxRmbPns3Ro0cZGBggnU6jKAonTpwgYVtYtkJBeT1lNfMIhUvd+5hEdJC+zhYGu0+gZ1PYtk1J\nZQPFFTMpLJuGaeiYeoa+9iN0nNpDMjaIqvmoqb9swsk6EyViAYzzv6apI8sKtQ2riA51AjazFm+i\naupCvD7hvPDik99Dz6apqFtEf8cRBntO0tt2mPK6hWO9snPDhvG93bZtzh17mUS0H49Ho7CwjM6u\nbtpP7qb77AFKq+cQLpmCqnqxLINkbJCBzqPEo31Yhg6ShNeXJ1zpEYu0sMbmN4/KskyOHdiMLCuU\nTl3McF8rkb6zRPrP4g8WES4V72OaWaKDHUSHOgAoqqh37+WEQ6KOZZnomeRo/UkgS4qI681tW1TZ\ngNK0GcvIYkfTRJ7dg1qcT2h+PVpZEZKqYmV1Mue6ie4+DIpMYEkD/pk16AMRUsfbyLb1YWdy7uOK\ngqe8kPwF9SiVRVjYMG8aSBLpkx1gSKAgFo3pBunjbXinVSB7PUy8QIy63FlIYx49pFrOAuCdXgmq\nPDqRbFpYugGmhd4zJNwGTZOsRyE8fwb+unIUj4aVNUi29xI9coajp0/R+shZjh07xoc//OE3nAD8\nQyRJEu9+97s5cPAgKSOLlIMa0ydFu9mmBaYpztHvwT9/GoGF01EUcV7GSIJk81lSLWexU1mK88N8\n5jOfYebMmW9rOf8YlZaWsmL5cl7Zs5tkKonkUbFiSeSi/Dfcz9KFg6EkSXhyk5iBaVUkT3ZAIk3n\nrxsJL55J/vwZaPnjXUnMdIZoSyuR/cdR0wbhUB5R4kjVRRQsbgBA9miEF9aTv2AGRiyBmcqCbSP7\nPGj5QfczkO4cIH26ixdffJFbbrnlEtTQpCY1qb9kvR7wcqn2m9SfRg7U50ShOiDd2PuAtWvX8vTT\nT1NQUEA4HCYSiZznHHYhBYNBampqUFWVaDTK4sWL2bdvH0eOHGHevHmvC/k5IFk2m+XYsWMAzJgx\ng87OTgYGBvB6vQwPD3Py5Emqq6vHQVGZTMYF9Jy41EQiQUdHhwsYqapKe3s7tm1TUVFBJpNxYRBZ\nll1wbSzgBwKu6u/vxzAMIpEIIEDEseCT45Z3oX7v/F91dTWlpaWu+54DCzoQnmEYNDY2snv3bpYs\nWcJHPvIR1+HPifF0QKyxMbUXkpxzcJYkyYWmHEDIiXSF0WjUYDBIMBhk1apV9PT00NbWxtDQkOuw\n5mwrSRKVlZXcdNNNhMNhmpubicViLlDpRIYGg0EWLlzIggUL3KhX0zQ5d+4cTU1NnD59Wrjh+3xs\n2LCBFStWUF1dTTKZpKmpyYWcnPq/kHub8/uFFvHouu46Vt95550sWrQIn8/HsWPH+OY3v4nX62X5\n8uUuaFZVVXXBfjnx2JlMht///vdks1lmzpzJiRMnGBoa4ic/+QnFxcWsXLmSiooKNE0jnU5z+vRp\nDh48SDQaHddHHZDV6asX+iwNDQ1x9uxZPB4P5eXldHd3MzQ0xODgIMFgEL/f77pEjoyMjHOhdPqi\nk7iWSqXc153zctzjnPcOBoNuuQ4dOkRzczOLFy9mw4YNlJWVIcsyQ0NDNDY20tzcTDgc5s477yQU\nCnH48GF27NhBa2ure4xAIMDixYtZt26d66S4ZMkSvvzlLzMwMICqqm7bJpNJdu/ezaZNmy7oNOj1\nekmlUrlEOc3tjy+++CK2bbN69Wq3XztR3c4c+I4dO8hms6iqSlVVFRs2bKCmpgZN04hGo+zZs4d9\n+/axf/9+Dh06xJ133snq1avPa48/VsFgkE2bNvHUU0+58ePPPPMMMNpndV3HMAxqa2t5z3vew8yZ\nM93P7fHjx9m8eTMHDhwgm80yZcoUPve5z70p+Pan1OrVq/mf//kfurq60HWdgYGBNwX9nHhoB4R2\nnFlnzJjB/v37aWlp4YEHHuC6665j1apV5zktdnZ20tjYyAsvvODGjSeTSd797ne7bnxlZWW8973v\n5eabb2ZgYIBEIoGmaeTn57uuqcuXL6e5uZlz585x5swZZsyYcekqalJ/0fqTOPiNvaHYtGnTm+7z\nxBNP0NnZeR7I5/V6ycvLY2hoyP0idY79ne98h+uuu+5N4cFJ/eXI5/OBJGGbFzE5fwHZlnh4eyEb\n4kn938uxnrUsE1vPghJCkp3ZrNxjfdvCzqsXQNHAHtBCSL6iMUdxBjnjj22mhjD79qEpIGse9OGT\nKP5izNQgdtc2KM3FrI6FNcbAOGq2D31wP37NZvasBRw/cZJ4ahjZG8ZM9mN3NwoXPX/lGOc1S0wS\nOO52iQ4YOihAMgcOSg+IOFUQrllmBjf2U1LGQHpjXPgcxc+Knw4Y6M56ObCR8zlx6m5CpUgIp7Nk\nl/i3GhRxkb4yUXbbQsoOY0dPYmZipDr3ouZVgawi2Tr2wKtIngIBR8qqAH3GAo6usxnChW0s2ChJ\nwJi4YMfJDjXngCYJEDDnNCiH6wnVLMacAMTYZhqMBHPnzuErX/nKOADGMAz+4R/+ge6ePizZh128\nBPxV2LkymU695jcIx7x0H+IoVL0AACAASURBVFL/Xmwri60FkUovx7ZFlCpqQABjkcMi0nac2+LY\nCs2dCrmbQ8vJ/QLbVymOa0Bw+jvw5I9aKmcHj2HpKaTQFOyR46Ku1DzwFb755LtTt7ZBWVk1BQUF\nNDUfxZa9uTIfGe0bto0AK52Ve7n/l3PAp+MOaVrnfYZsIJNOk+ptxkYS8bxWBkaOXwCmy+1s6aIN\n/VWiL08EQO1RBwnx0xxTDiXnvieD5M3BhHtG+6m/MufEZogyZIdE1HDRErFvqgcS5wQEa+mi36oh\nvMUN+IqmYBqmWFFYsQIz04+UjYg+Z5uQHcE2EpDqzkX9jr01ysVQSbIoK06UrTIKsapB8BSDZeVO\nLbeNnYssS3eDERcW/lYAb8lsPKFKJEXDNnWMeDeJweOcbu2g66c/5+TJk9x1110XtMT/Y7Vu3Tr2\n7H2VeFYjOGUV+vBpzHQUy8iIOjAzOcjYQrIN4WTpRBSnerCjJ5CMBH6fxhWrr+Cuu+46D0SzLIvm\n5mZeeumlP7lTIYzGETe+8AKGaUKi+4IR76MFzl37yblVeD1IgBKqwIy3o0hZsh0vke724ymeJRxO\nZQ3b0t1IcNlMEfSqNDTM5PiJk9hqEC08Cu1KkoSWV42W93rRcyIWPd29j67uHo4cOfJnEfM1qUlN\n6v9eYmwrMzD8h8F5ugEjceEsNTlO/vPTK6+8Qk9PN17NJpaQyZ9yHlODBrz/2ij/72PF7Gzy49Fs\nPnhNBFUT0JPlgnCjfSSVgf/vVxpnuvxoXh+KZPKz/4VV8w1eOaTw/O4QJ9s9XL0ywfI5aTRVxPJm\nshCJy7za4ueVpjz6hv34Q6V8/vOf5/nnn2frluc42WZhWdA/rPC9/y7m2svjrFmUJC9okdVFxK6A\nBOHgcT9b9obo6NNIZyUGbLj3u1WkcjG14ZBJKufaJ0siSlfLGTdfaBq25ax4gHrl4iQwusirMBfx\ne7ZbG3XYcm7hnJ0l2HEowONbwkiSzdLZaa5eEWf2NHG/Go3L2EDAC/uO+nlud5D2Xo1v/NhDVamF\npikk0zbff6KQz39giIY6HU0VgJ/znrop4ZVFoeJJie8+XkLfsEJtmcGKuSmxnksSkF8sJecm1EwO\nn/Jh2QqBvAK8mk1Wt8kvqqJm6hyy6Tg97S2kUzEsQ0eSFTpOH8Dr07jhhhsoLCxkxYoVgFg894//\n+I+MROP4QsXMXHQdXr8ADC3LBsRiKW8gzJRZVzJl1pWcOPi/jAy0ER1sp65hdS4C2Ka0dh597UcY\n6DqGomiU1c5HVhzyctRFL1fbLuRnGtkcuGgTyCslVFhBYqQPnz8Pn3/UHUTz+NCzaWRZZvr8qzh9\neCtnmrdh6Bmqpi9HeZ17RdM0OHt0Oz1nD2IaGeYsXEJlZSX9A4OoHj96NkXP2UP0nDsknkHaomyW\naWDZ5mg8riQhyQqykounzaUIJJNJnIaSJZnejuOkklH8oUJmLr4OPZOk++wB+jqOkIoPkUoMjSuf\nlDu+L1CAonoxjQzWmOdZovZs9x+WbWBZBpIkI+dif1WPH9u2qJi6mM5Te9G7hxgZPDBKu9oIIM+0\nUIIBgjOnoHi9UGKjFi9AW+8Tp2DbGJaIFwoFg+6kXTqTxr9gOtm2PiRVxrJsJJ8HO5kh2z1I+nQX\ngQVj3CLcNUASkixjWxZ2RkfyamS7BkgdOSvOuaEWO2tgy2J8KWLGwcroxPe0YOsmoVl1VP7NGuQJ\n4F5gSgVFq+YTO3aWwe0HeOGl7di2zcc+9rG3HU6vr69n+rRpnDh7hoK1i7HSWbKRGEY6A6qClUqj\n949gZXXSR86RPnIOSZVFnVu2AACzBmWlpfzd3/3dBSdcDMPgtddeY/v27fT29pJOp/F6vZSWlnLl\nlVdy2WWXXXS80x+ij3zkI3R1dXHsxHFMwyTZco78K19nbGGDpevYuoCIA4GAG78XP3YWfzDAzOkz\nOHO2lfhrJ4jsO4Z/SgVaOASyhBlPkjjThWqDV1aZM3sOkUiEwdgIpQvrz3s7SZLQ8kNor8MbhhfV\n032yne3bt3PTTTddkjHxpCY1qb88OeOY/v5+pkyZ8pb37+/vH3ecSf35yLIsfvOb35DJZBgZGXnd\n+M6SkhJuvfVWfv7znzN16lRaW1sZGRlxt3PgsLH7+Xw+pk+fTlFREZqmEYvFaG1tpa6ujra2Npqb\nmykrK6O6utqNnbQsi2w2SzKZpK+vj4GBAWRZZtasWdx7773cd999nDx5kkAg4MIgHR0dlJeXU1BQ\n4EKBDiik6zojIyMMDQ258NSxY8dobW0lFou5jmAO3Kdp2jgnuYmQ3sjICLquu46AY7cxTdOtv5GR\nkQvWtyRJNDQ0EA6HyWazdHR00NXVRSqVcp3WnBji4uJiSkpK2LNnD9FoFE3TXOjQAf0ceO/1AD8H\n3nLAwQtBmU6ssgOd5eXl4fF4ME2TKVOmMG/ePAYGBujq6nLBy1QqRWdnJ1VVVbzzne8EhJsbQGtr\nK//0T/+EZVnMnz+fTZs2uQCmA5Hatk1dXR0zZ84kEonwX//1XyQSCdrb27nppptIp8U45corr6S7\nuzs3RmBcnY91HRzrEDfRsdtxPNR1nYaGBjfC1LkexWIxVqxYwalTpzh27Bg//elPueWWW97wWheJ\nRHjiiSfo6urCNE02btxIJBIhEom4/MSzzz7rlsmyLAzDcMs/towej8eNL3bawzlf5xyPHj2KbdtM\nnTqV2bNnM3XqVM6ePUtvby+pVOq87Z0+4fV6XYh0bFLjxP5imiaZTMZ1vlRVVbjCT59OWVkZL730\nErt27eLQoUPj+k8qlULTNJYsWUJ1dTW2bbNo0SKWLl1KIBBwP1dO/3Y+5w50t3btWjZv3kxhYSHR\naBS/308mk+G5555jxYoVrrvlRMdJ5/OXzWbxeDz89re/pb+/n6KiImbPnu0aDjmujwCnT5/mlVde\nwTAMPvOZz7B+/frzrnPLli1jeHiYJ598khdeeIFHHnkEVVVZuXLl6/aFP1RXXXUVmzdvRpZl7r77\nbpqbm4lEIq4zYV9fH+3t7USjUR577DF+8pOfuJCm406ZyWRYtmwZ99577wW/X6PRKC+//DJ79+4l\nEolgGAbBYJCpU6eyceNGZs2adckWIgcCAe6++27+5V/+hUQiQU9PD0ePHmXu3LkX3N5x/DQMw4Ws\nJUliYGCAM2fOEA6HKSkpoaenh8cee4zHH3+cJUuWuBG77e3tnDhxwj3emjVreOmll1wXwInSNI3K\nygsnV3o8HtauXcuzzz5LY2PjJOA3qdeV8tVLmG2bSqX453/+Z/ci5vV6eeCBB950FeaXvvQldwWC\nbdv4/X6+/vWv82//9m98/OMf5/bbbycWi3HkyBH3ApBOpykrK3MtbN8ODQ4OuhfpyWiAP72OHDlC\nW0cHthpCDZa/5f2zw6eQ0r3Mmzv7knwJTuoPk2VZNDU18eCDD4r4ZMtESvciGTFQPAK6cSJlJBnJ\nV4qUHRGgSeIcqCEkT7543TYBC03V8Hi0nJPSWVJtL+LXbNZcuZqpU6fQ19OFnkmIiQdbF/BdrNV1\nv7ONJGSjSIk2pKH9KMk2Al6Z1atX8dnPfpY9e3YzNNAjnMycON1UDyQ7AUmU2zZBT0D8HAzuE055\nZm41im1Buk+4wRlx3JhUJRdTK2u5SNWxNzQTAL+RFjDTULQwBwJKAoxK94IeFfXmLxu/vyMbGNgt\nyitrUHo5FC8X28seATRpIaRAhYhA9RRAsgcrHUHCRJZsAfQlOsT7OGAUdg4wtEYhqGS7cF+zdBHv\nWbh4zByQhOtaCIAsYmMtPRc7nAcI2FBTNTR/AZ6CqXiLZ+EtmYMaqsQcaaW0uJCNGze6p6frOvff\nfz9Hjx7HUvxQvg4pWIWkeJBkLTfRIo3OAmKDJx8pWCPaKxsR5fIUjNZ5uk+0sSRDeO5o/O0Yx4UJ\nVhICaJOcWVaxWo50PxI2noKp7qZGvBszHQF/NZLqFdCe07e1/Au6RwhotA16d4CVQZZh5YoVhEIh\nOjp7sMOzsEMzRFtIioDhlFxMrxoU0KJtjPY9Tx7Iioj5tS2QIKvrZDJZMpks6VQaPdqJHTsj9i9Z\nISCpYJ34KUk5KFUVr/tKc1CbCQVzQPGPaWcp179z/dwBC21yfUdMAmLbIlJXC0HhQtEGekzEWsfP\niNdip8X/SzKE50CgShxT8UGwFqlwDlLBbKS8Gdj+CtCCeH1eFEXG49FQZBU9I+KuZUXNuQraOdBv\nUICcqn9MA4/xEJFy7WBb4jPXt0P8Hp4jwFfn/HPno6gKkh7F7tsFZgZPyTxCM65BC1UgawFk1Yes\nBVCD5XhKZiN5C0hF2unu6qC/r5fly5e/7YOc0tJSdu/excjwEEpeHf6KxXhLZuErm4evfBGyJ4il\nxwW4mO4V9R09KX6mugXc59W486Mf5b3vfe+4+znLstiyZQsPP/wwz2/ewumzbfT2DTE0PELfwDBt\nHR3s2b2bPXt2Y9s206ZNuySDOEmSWLJkCadOnqS7q0uAi8EpE95LtLlwIjWRJDF4CgQC4qvFtki1\n7yDolbn2mndgGlkyyShGvJvs0En0wWMYEXGP4ddsptRWcfPN7yaRSHDmXDtq8Xy0UMVbLrdtmxjx\nbiSsyfuWvwL9NY0j/prO5S9Nfr+fbdteoHcgw1UrDbS3uDxvd5PM3iN+6qY2cM0110y6+P2ZKB6P\n88QTT/DjH/8HpmGimxJ7W/zsO+Yjk5WoKDbxekYfIheELKZUGrx61M+ZTo39J/yATVWxiWGCaUl4\nPF5SGY0texT+43cezvX4yQtXcP/995PVTc619dLWIyFJJoYhMxBReO2YjxdeC9LS6uHVFh+vNAX4\n7Qv5HD6TR0rPp6Ssli9+8YtUVlbyu9/9juGhXkoKTO545wgBn01Hn4fj5zw07gvRPaDRN6TQ2u3h\n1ZYAj28uYE+Ln4GIgmlKeDwWuiGRSMnouoSm2Syfk6a2TCfgs/F77XFw48RhkWHA77bnoypw61VR\nMrrYwOexKS4wadwXom9YZdnsFPlB67zjHDzp48dPiYjqD143wu3viFJaKICWrC6hmxKqAgEf1FUY\nrFmcpGdQpa1HpXtAwePxgaQRT5rsO+ojnZXIC5j4fTYezca0JCxLOBG+fDDIo08W0tEnYoi/+KEB\nQv7xC9NsG0xTIp2Fnz+bRzLrZ/aiNXh9ASxbHCuVHGGg+ySZdBzLNNA8fsLF1aQSESwjzeWXr3JX\neQM88sgjvLrvNfzBImYvvwlvIIyejpNNx9AzCSxTR9F8OSc/QW2VVs8mNtxNKjZEJhWlsHQaAJrH\njyTJDPe3oigq0+ZvwOMd79oFo5Na2GAa2TEwm4QsK8iyynBfK6rqoax6lrtnLNJHLNKHonqoqV+J\noqhE+tsYGWyjr6MZy9TxBcIoqiYm8RLDdJzey8mDz4kIWzOL1+vjxhtvYM6cOex99VVk1cfsZTe4\nDa8oGh5/CH+wkHBpHSWVswjkl5KM9qOoGlXTl6HIyhgoUUwuCUdNE13XOXdsB9lUnJr6leQVVqOo\nGqFwOWU1c8krqiYUriCvsJLCsmmU1y5A8wZIRvspKJ1KflEVlqm7k2eyoqGoHlTVg6JqOWDSWQxt\nY1vCPa3rzGtYlsGc5e9C8wSIDrbj0YL4fGE02YvPF8brDWGYafwz6wjUi4VklulMDHuQFQVJEWNg\nyzKxAY/Xi6woZLM6+DTSp7swR+JIioKvvlo47Okmes8Qst+Lp3zM4jPnhyJhG2I8lO3oJ7plHxgm\n/vnT8NVXCeLYstxxt6ybRLa8itEXwVMcpvqWjSieCwNbkizjKyvCX1tG5FgrnefaKQiH3/ZoKuec\nmpqayCSSlL/jMvIa6gjPnkq4YQoF82ZQuHQ23pIC7HQGM5Fy43oVTcU2TII+Pw8+8ADTpk0bd2zT\nNHn66af5wQ9+wPaXX6K9p5vheJR4KsVIIkZvfz8HDhzgxcYXSCaTNDQ0XJJoX4/Hw9KlSznS3Mxg\n/wBmLImvoWYMQW67ro1mRgdL9NFAMIDHI0DqTO8QkVdbKMkv4Bvf+AYLFyzANk0G+/owInH0vmGM\n3mHs4Tg+WWXposV84P3vZ+XKlTz1zNMYPo2yjW99PKuGAsRPd5AdiTFn9mzKys6PfZ7UX5b+msYR\nf03n8pemaDTKkSNHSKfTXH755W95/1//+td0dXWxdu1a5syZcwlKOKk/RJ2dnXz7299m7969WJZF\nKpVi27ZtHD9+HI/HQ0VFxbgFwvX19WQyGTo6OvD7/fh8PkzTdIE8EOPnQCBAeXk5NTU1FBcXs3jx\nYr7whS9w7NgxBgYGGBkZQVEUdF0nkUjQ3d3twny9vb10d3fT1tZGOp1G0zSWL1/OPffc40JTiqIw\na9YsPvShD9HX10c8HicSiTAwMOCCVMlkkqGhIXp7e0kkEliWhaqqqKrqAnpOXGl1dTU+n49AIDAu\n7nSiJEkiGo3S3d1NPB4nFou5kaYejwfbtgkGg3g8Hnp6ei54jOnTp1NcXEwmk+HAgQP09va6EJQD\nG/p8PmRZJpFIMDIygtfrJZFIoOu6C7M4oBzkUtgYD1fKsuy6XymKgtfrJRQKuQDYRDDOqZNwOMyS\nJUtQFIVsNutGEff29pLJZFwXwOrqatra2lBVleuuu859X8uy+PKXv0wikWDBggVce+21rntjLBZz\nndT8fr97Dl6vl7lz53L48GG6urooLi6msrISSZKora2lpaXFbduxkNrYdpnYZmMja30+n1u3M2fO\npKZGmEgEAgFefPFFIpEI9fX1rFq1iq6uLnp7ezl06BBnzpxBVVXC4TCKomAYBm1tbWzdupXnnnuO\nWCxGJpMhGAxyxx13kMlkaG9vZ/Xq1Vx99dXouu5GDzsg67Jly1i6dCkej4ehoSEKCwuprq52YTlr\nwpjI6cstLS3Yts3ChQvxer34fD4KCwupqamhqKiIoqIiSkpKqKyspKGhgcHBQTKZjAurOm6NTpyy\nAxU6/cNpO+fzI0kSmUyG2tpavvSlL7mf3YqKCvLy8ggGg66Tn2VZ3HbbbS7gl81mXaDU+cw57nyO\nK5ssy27d7dy5k6GhIfLy8liyZAkdHR3ouk5TUxPz5s2joKDgvDaVJMkFJp988kmeeeYZZFnmzjvv\npKioyK0/Zxx46tQpfvSjHxGNRrnuuuu4+eabX/dz7vf7Wbx4MbIsc/ToUQ4cOMBll132tgPqoVCI\nU6dO0dvbS2lpKe973/tYuXIll19+OStXrmTDhg1s3LiR/Px812nO+cz7fD7S6TS1tbV8/etfd6FV\nR8PDw/zsZz/jP/7jP2hubnZdHZ1rbmdnJzt27ODVV18lFAq5n4m3W8XFxdTX17Nnzx6y2SyZTMY1\nVHDAV13XSaVS4+LRQ6GQ2y//93//lxMnTrBq1Sq+8IUvUFFRwcjIiAtAnjp1itbWVgYHB10w7847\n7yQSiXD8+HGuuOKKP2iOp6ysjC1bttDd3c0NN9ww+Sz3r0CXYhxxSR38zp07h2mabuebMWPGebaV\nE3Xs2DHOnDkzjiK///77ede73uVuU1RUxAMPPMDIyAjPP/+8e/ynn36aD37wg5fuhCb1J9XatWvZ\nvWcvicHjeEvncaFovNeTbVtkB48T1BTWrl17CUs5qYuVZVls3bqVLVu2cK6tnXTGwJY84mGxmYF4\nG8TbkbSQgMwc5zdJgrLVSH07sRPtIj51SLh62Z5CJFlFUTTSfafGOSldfvkq7rrrLnfQtWXLFjq7\nukmlMxh6BrIZGIwiJiZAQkJRZAJ+D1WVNVx99dVu9KSmaWIKRPEiFa9AsjIQPYmtx2H4sPgDuMvb\nzSzCmU8C5xxt0wUKxaa2iBid2K8lcu5744KJ3DhZ17FPyv0Vmi7ic6MnhTPdhfKhYifFNrIGlVeN\nRs3auO5ukutmIIu4WC0PurZiG1kqKsoZGBhENxICMFMDEJwq3P/UgHBNS/dB4qz4HUQsb+llo+V0\nzy/n0GhbkDw36oDmKxVtkYv/TQ+fI5tqx8pEsS0DSVaRVB+WObqKyOlXP/zhDzl27Di2pCIVrwBM\nAQ7qMVFvsgpqSNSVr0y0g2VgKwEoWYnU9wp27LR4XZIgVC+gu9hpsOVc2dyGy/1wAMwcHGbpuQk7\n4UgiKR7hOjd8GCsbG9ccnqKZ6JGz2LFTUHO9aPJ4G/S9gq0GkfLrwV8xzjmN6Ckwk25MVTAQYN26\nddi2ze49ezHi5whMeyfpYOX5q+ZsW7TP4Kvis5bqBk9+rqwCRrNM8WecX4rrGjkjB+TlLEoClZA3\ndfTYjrqeExCqE8Usq+J3Sc7125xtCfIoHGjlIqptU7hdYovzDjcIaK7zObGtt3DUITAzLLYLVOci\nsU3Ok6yAJazhDd1AyxER2WwW21eGhISVjeacEwsEzGZmoKcRSsY4fNoO1Jn7advCuW/4oPicB2uF\nq6brxCkcPCVspGQnZt8+MFJo4akEaq98g4c0Mp6CqSjefBJnnmPXrj00NDRw9dVXX3D7P1RjI2wT\nnTtRvPko/qJcGSS8JXMuGCcLYKWH8Pv9fPSjH+Ed73jHuOPqus7DDz/M7t17SWUMLCWAp3jW/5lT\noaZp/P3f/z2f+tSn6O2PYCc7sYM14+2AciYoiioeNDnOfQD6yDlkM0V1XQ133HEHIBYdOK6EqVTK\nfUCydu1a5s2bhyzLvPzyy5imjSd04RVYbyY1VEWq76CA3yc1qUlNCqiqqmLO3Hkcbd7LjoM671h1\nge+8N1DjqypIPq666qrJB0J/BspkMvzyl79kx44dJOJD+LQsis9GkW0MU6J3UOWJxnz+58U8Ll+Q\n4v3XRAn4xJfXwvoMf/ehQf79iULaezV++kwBv95qUV2q49FAtzy0diqYlhdkH9V1U/jsZz9LeXk5\nd911F4sXL2bbtm2cOH4URU2TzRqkUhaxlE3voFghr6gqmuZn3oIFbNiwgWXLlqGqKo8++ijdnWep\nKjH4zK2DlBcZrFua4mhrkm2vBjl40su+o37Aj2VDNiu5AF5JgcHfrIkyd1oWj8fmwUdLGYoqqIqI\n1A347AsOX8bJHv+r61qIuLX0eWxWL0zSuC/I1r0hPnxDZPzuNjyxLR/bhnevj3HVisS417O5snq1\n0cU8mgp/++4IsaTM/mM+dN3mbz/xCX74wx8wHE3z+5fyeHpHiDlTM9SW61gWjMQVjpzxktYlsKG2\n3OCe9w1QFLZGve5yZfdokNFtXj7gJZ7SCORXIntL0Q2L6MA52s60EB3qRELCHlMBkiRh6lkURaK/\nv98FjI4fP87WrVuRZI3aWVcwMthG77kmUgnXchsARfVSWj2H0pq5eH0hLNNg+oJNHNz+nwz3taJn\nknh8QSRZpWbmKtpP7gJJQlW8GNk0sqIiy2qummzXhdAB2eQxk3WK5sXrE64HejY9rhw10xfTfa6Z\n3vZmahtWUz1jBd5AmNaW7aTiQ5w50siZ5ka3oaUcLCjLMqH8EuIjfeTnh7jyyivx+/1UlJfR1tGN\nKtvMWXoNmUwaM+ci5ygZH6SvoxnT1EnFhxjuayWvoGI0zkxRXYc/Q89gWgbRoU4Rz1sz1z0v2xJO\ngMUV9S4s6byNU9/J2KA4pqxiWroL9zmdWZJkJAlkWcFWPVimjmlkSSWGMfQ0kiSjaF40XwBZViko\nqaNhyTvdGNOOk3uIx/uRA2Ofr054fpA7J4wMhq5jmSaSLGPoIulC9nlAkgjMm4ZWVUzmTBdqUQAz\nliT20iHSx9vxz5+Kd3oVkqqABJZuke3sJ3X0HHpHP1bWQCsrILB4pjsOkjUVPRIn3XKW9KlOrEQa\nNeSn5tZNKN43d63zVZZQunE5A5v38vzzz7Nhw4a33f179erVPPnkk3QP9NO7eQ/l77gMSRl9D0mR\nyWuoI6+hTrS5YWKls3Q9+RKeYYklCxdRV1c37piZTIbvf//7vHZgP2nTQC3Ko2BBPYEpFSKKWDdI\ndfYxcugUvf1D/O6pJzl58iT33HPPJYmzKiws5MEHH+Tee++le7CfxGsnCK2YfZ47qowYO3lzbikA\nlmEy8NIBPLLKunXr8Hg8zJo1i1mzZnF75Haam5uJx4VDfTAYZPbs2ZSXi0XZhw8fFjFsRfluf30r\nkiQJT3EYYzjhLvyf1KQmNak1a9bw29/+lqamJvr6+t4S/Ds8PMz+/fuRZZn169dfukJO6qLV1dXF\nT3/6U1paWojH467LG0AikeDQoUO0tLRQWFjIDTfcwNVXX+1CNbfffjsFBQX8+te/JhgMUlxcTCKR\nIJFIIEkiycuJDPX7/axZs4aPfOQjaJrGP/7jP9LY2EhjYyMDAwOuG5VhGK4boFOW/Px8Vq9ezcaN\nG5k+fTrpdJpvf/vbKIrC4sWLueOOOwgGgyxdupRdu3axbds22traiEQiLjjiOPmpqsrMmTO56aab\nqKyspL29nR/84Adks1nxLDYHTF1ovP56UbsTtwEB2pmmid/vp7CwkOHh4XH7+nw+ysvLMU2TgwcP\nEovFzoOWHEc3R9lsljNnzrhxvHV1daxatYotW7a4AJMDWgIuxOVE8o5tEyc6GMY7LlqWRTweR5Zl\nampqXJDPiad0AMmxkmWZbDY7znEM4LHHHqOvr4+ioiJWr17Nzp07OXjwoAshOiouLmb58uU0NDS4\nrnEbNmzg2WefZceOHSxduhRJkggGg7znPe/hm9/85jg3trG6UOynA545wKRpmu55OlJVlfXr1/P7\n3/+ePXv2cNttt/HBD36QrVu3smvXLs6cOcOpU6fGxTQ7QJyiKJSWltLf38+SJUsoLy9n48aNvPDC\nC+zdu5dbb72VZcuWuX3QkWVZtLS0cPDgQTKZDOfOnaOurs51ZnSARCfGOJ1Ou/2ouLiYYDA4Du70\ner3jFpw5ckBVwzDcthkb0Ty2zzkwqGVZZDIZTNN0P8/5+cLyuaCgAJ/Px7ve9S7WrFnjHuOBBx4g\nFou5202MtB5bHsMwB7CN8wAAIABJREFUyGQy7u+2bRMOh919vvjFL/L8888TCAQoLS1lYGCAr33t\nayxbtoyNGzfS0NDgfh6TySQ7duzg5ZdfprOzk2w2y7XXXsu8efNcJ0SPx+MmHB0+fJhEIsEVV1zB\nhz/84fPq60K68cYb6ejoYO/evTQ2NnL77bdf1H5vRddffz3Nzc089dRTlJeXn+c0l5+fz/XXX8/1\n11/vtk9rayvf+c538Pv93HjjjectVurs7OShhx5iaEg43S9atIj169dTV1fnRhHv3buX7du309XV\nxQ9+8AM6OjreEHr8YzRv3jy+8pWv8NWvfpWDBw9y5MgRGhoaztvOufY5/R+go6ODbdu2AcLxUNM0\nrrjiCq644grOnTtHa2sryWQSVVXJz89n4cKF7riusVE8y5g4ZrxYlZWV4fV6yWQypNPpP6v440n9\n+eiSAn4dHR3u747975tp+/bt4/5dWVnJzTfffMFt77vvPjZv3gyIi3dTU5M76Tqpv3zNnz+fyopy\nzpztRB9pG+eA9WZyJuer6mqYN2/epSvkpC5KE+EPHT924VSkQLV4wGhmReRm7IyA5gb2I6X7hdOc\nrIg/5VcijRwXkaZGAoYOItkCGNJVFUWRCGoKVXWjcJ7zZez82wE0ent7GRwcdEGxYDBIUVER5eXl\n42ANgM2bN9Pe0YWkBqBsDbYnjCR7IDwLKdUjIDA9DpYu4mCNZA6aE6545NcLlzFJg+5toI+Ih9+Z\ngQmOe8DEx61jE5Cc2FArC4p39AV/hYDXjIRw2AvWTjiGLSJNQbiweQpHeaWcA6IAsCasHPcWYhct\nQRrYjaqqrFu3lpd3vEImk4WsDnpTbp8xkJttglYgHNzynGjeC5yfrIq44sF94t9504Wzomlgx1sh\negLDSJ6/f84lr6Ojg82bN7Np0ya2bt3KK6/sFLFTqgaRw9j6+Ek7IOeS1y7AxfyZEKgDTPBXYKvB\nnGNZfw7sUqBstXAjtB1oM51rAzl3yraAFK1cHSJWupmmJcotKwJGg/NixtVQFbI3DzMTE7Bd2RVI\n3lLs4SbhVDmwd0zbSwKOk2QUXz5KoBRrpJXqqkr32uZcJ+V0L+GCqRi6QTqdxjB0iOac74ykcCyz\nDOEk6UB7TrtIqgCxHOAOCYzUaB+D8yFTGAM5IvphZlgAid7i8ccf2wXcZpVEnUpyDjzsFRuouRVJ\nkke0hRaE6mtHj9H+lPjMOZHWblT0hNVysoptCbt0B/AzLRGvK4ohYVduFPHfkgaBckj1CYhYDeQi\nrHOxwUZaQJLxVtFXrFybpgdh5JiAQBUNSVIg2S2iro0E2AZqXhXBaZsuapCi+IvwVV9OquNltmzZ\nMu469nbJibDduWsPiTPP4atejRaucyH6sXGywhX1HOnOXQQDfq5YvYpNmzaNO55lWTz88MPs3LWH\nlC7hq1k77niO1EAJ3tJ56CNtJDp38srO3QB88pOfvCSRvaqqcsstt/CfP/05icgh5EAhaGJy35lQ\n9Xg8qJo6rueYqSFxvl6Vq6++2i3bggUL3jQ2N51Og20jKX8YtCjJGuSiJiY1qUlNytHGjRs52tLE\n0y9nWDrbpKTg4vZ7+YDC6Q4Vf16YVatWXdpCTupNFY/Heeihh2g9fQzbSrBwRoorFyVYMTeNYYpY\n3TOdHnY2BTh00seOQwHOdmvc94EhCnIRtDPrdP7ts33sOOTjxdeCtJz10h9RUVUR5YSksmjpYjZu\n3MiCBQvc7zBJkrjsssu47LLLaG9vZ+fOnQwPD7sP0EOhEPX19RQWFlJZWUlFxagL7dDQEK+8sgOZ\nOPf9Pzr5fuEYmEjZzJqSZd6MLEMjMgdP+BiOyWzbFyCTVSkrMvjIDRHqazOEfDZer4jrDOeJeFoJ\n2NMcYNOKxIT7wzEas+ZJU8Gj2WR0if5hBb/XRhlzS7pxWYLGfUG2Hwgwf0aaZbNHJ3FOtHno7FcJ\nhyyuXz1+4U0qI2KFZYnzHDJVBd61LkbzaS+6JXHFFVegKAqPPvoIiXgM07JpOunj2DkvpilAQcOS\nmDM1w41Xxlg+J4U6Zog1dj5IlmxaWn08+XIeGUOjpm4RmazFiYMvMdhzEpCQFZWSqlkE88uQZQU9\nm2Sg+wSJkT4M0+CRRx4hPz+f+vp6HnroISzLxuP1caZ5m+ukp3mD+IOFSJJMNpMgFR+k59xBes4d\npLiygSmzrkRVPRSWTWOo9zQD3cepa1jtLv5SPX4sQ8+tc7EwjCwS2fOays6NBxRVxTANAeS5ToHn\nK7+wkvyCckaGe+g8vZfKKYuJR3qwzCySLCPhuH2L/YULnUlpdQOGqeNJDbNq1SqCQeEqeNVVV/GL\nX/wXxw5sZsWGD5KfX4BpGpimRXS4l9PNLxId7hJ1LyuYpkF/xxHyCipG19PlwD07N7awDF3cF3v8\nqJpwJXBc8iRZHXOvK+UcoG2KymfQfmIng13HmDL7SiRZQbLeeAzguPuBxMCZ1zANnaKKemRZwco5\nqsiKNg6WchfnmaKsdi5iWHIWSI49tqxiWQaGaaK6r9nYpomkyHimVZA8fBoroyN5dZTCPIyBEbJd\nA2R7BpG9h5GDPrBtrFQGK5nBNkwwTPEsZmCEwV9sQQkHBQhomBiRBLYT+6qp1H3oOrS8iQ6Qr69Q\nQx2DrzTR3dNDS0sL8+fPv+h9L0Z+v597772Xb3zjG0ROddCVSlO8eiG+iuLzN7ZtUu29DLx0ACme\npq6qhk9+8pPjNjFNkx/+8Ifs27+fjCZR/s41BKZUjBv/KYAWDpE/dzqpzn56nt1J89EWvve973Hf\nffddkkVPPp+Pz372s3zrW99ipOUcqs9LcHG9O6EqHHU8o9HVgKUb9Dy7E6N3mKqSMq655ppxxywo\nKLhgzJQjwzDEJV1VXnebN5OUmyh0HIUmNalJTSovL4+VK1eyc+dOfv7zn3P33XdflAOqZVn84he/\nwLIsli9ffkEQZVJ/Wp04cYLvfOc7RCIRLMuipKSE0tJSSktLiUajmKbpxuP29PTws5/9jM7OTu64\n4w4XELv++utZvXo1mzdvZvv27XR0dBAKhcTiXY+H/Px8rrzySjZs2EB1dbX73oFAgBtuuIHrrruO\npqYmmpqaXFeqbDZLRUUF06ZNIy8vj2nTpo1zzNq1axdDQ0PU1dXxqU99ynWDchyb1q9fz6lTpzh1\n6hRdXV00NjYiSRJz587l9ttvp6SkhLy8PNdBzAG1DMOgt7eXKVOmuHDcRE2MU3VALwfcGvtZiMfj\n5OfnM336dA4fPuzCRpIkUVEhFrb09PQQjUbHvZdTt87xxyqbzdLV1cWUKVPw+XzcddddGIbBrl27\nSCQSblSvU86xoFggEBgHDDqvj1UymSSbzRIMBqmpqSESibB3715isZjruhYKhdyFCLquu6BcNBrl\nm9/8Jvfccw99fX0899xzKIqCz+fj0UcfdWHLvLw8/H6/C9k52zY2NrJ+/Xrmz5/PzJkz2bZtG6dP\nn6a3t5eGhgZkWSYQCOD3+91Y4gvFEU+M5nWAubHn7rTDWK1fv56nn36alpYW2tvbkWWZSCSCaZpu\nvY6tt2w2S15eHitWrKC5uRlVVd2Uq9raWmbNmsXx48d55JFHuPvuu/H7/RiGgWma7Ny5kyeffJKh\noSG3DTKZDH19fe5CDad+/X4/6XR6HGDqRJaOBfxe7/61srKSwcFB1wVzbN9w6mYiGOnAkOl0mkRC\nzO0tW7bMLROQS94Zc3894Z7R2W7i94NTBgdKdc4pmxXj2tLSUiRJoqWlhWQy6V5H+vv72bVrF3v2\n7KGgoIBgMIiu6wwNDZFMJslkMhiGgaqqNDY2sm/fPoqKipBlmVgsRiQScd0vGxoauOeeey56DkSS\nJK677jr27t3Lyy+/zM033/ym5llvVXPnzuW2227jV7/6FY8++igdHR1cc801F/yuTKfTbN++nd/8\n5jcYhsGaNWvGJayBeHb0r//6r0QiEWbMmMEnPvEJSktLx22Tn59PTU0Nf/M3f8MLL7zAL3/5S556\n6il8Pp8bt/12a86cOdx8880888wz/PjHP+auu+5yWSXnejrx2tfR0cFDDz1EKpVi+fLl1NfXjzvm\nlClT3jBG2+mTb5Zm+kbSNM11PpzUpC6kSwr49ff3j/v3xayu2bt3LzD6pXjjjTe+7ra1tbXMmTOH\no0ePuvucOHGCRYsW/RGlntSfi97IaeiN9HqT85P6v9FE+EOrvAJdKhTgjupDsgwRk+gtElGXyS4Y\n2IsdbxfP2suuwHXyK5gNwSkCqhs6gCJZlJWVUlFRcZ6T0kTJsnxRgMbEsm/ZsoV0xiBQsxbdUyoc\nwMwsSBKSrzQX3SoJ+KnvFciOiIjP4uUC+pHVUSBP9Qk4CFucQ3jOeIe7N1qQpebl4KnuXIyx47gn\nQXgWDL4mwDA1BN7czK8EJHtFLLAaFPGjruxRSEm+wFeBZQoHOjXESDTGmjVrUBSFnTt3ixVeNtje\ncG5/TQBkZkocU/Fx/kyd43xnCQe0/lfF9nnTIX+W2G9wr2h/yDnZzRTQlaQJADDRhR07RSqT4qc/\n/TknTpwQKyVSaZAkbCsLupWDs2aKtpFyLnKpXgG66TEY3C9gvqLFQC6ydrhJAH2hKTk7EAU8RQI8\n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\nNm1C13Wampqor69/S7DW/4Q0TePAgQP89re/JRqN5lyh+vv76enpobGxkV27dtHV1YXf76ewcLz7\nsc1mY9GiRbz00kuEw2EOHjxIOBymqKgIn8/si3c6neTn57N//34GBweJx+O0t7fT0dFBNBolnU6T\nyWRIp9NEIhF6enpIpVJ4vd4cRCcIAkNDQxQXF6NpGufPn7+uc19WkmS6rKfTaQoLC3E6nVgslmtO\nSpNlmUwmQ0tLCwMDAwBjIK3RgGDWtc1utxONRiksLMRqtSJJEnl5ebjdbmbPns327dv57Gc/y9y5\nc8e8X02fPh2Px5Nz0b7rrrtuabJcY2MjL774Im63m2984xs3lfbh9/uZOXMmhw8fpqWlZUy/wN69\nezl27BjV1dV87Wtfw2634/P5OHv2LLquk0wmc2VuGEYuGlLTNNLpNMCY+GOXy4Xb7eauu+5i8+bN\nrF69GqfTydDQUM75TlEUJEli+/bt1NXV0dzcTDqdzjkcBoPBnIseQGVl5ZjkgNHmQoZhoOs6mUwG\nVVVzsKVhGAwPDzM4OIjH42HevHm5uozFYjknSIvFwqJFi/jIRz7CQw89xD333MOaNWtyIFpFRQVr\n1qyhsrISj8fD0NBQzskwe/xZuDO7L1nHwyzc53A4qKioYHh4mL6+PsLhcC7ed3BwkN7eXnw+H36/\nH0EQ8Hq9nDlzhnA4zIIFC3LPterqarZs2UJRURHhcDh3XUWjUWRZpqCggLvvvpvPfe5zrF69egxE\n1NPTw9GjR/H7/SxatOimz7fRam5upq+vj/nz5zN9+vRbWtZmszFz5kw2b96MzWajtbWVWbNm8Z3v\nfIe1a9fS39+fgx4XLlw4bnmPx8P69espKCggGo3S399PIBCgo6OD7u5u+vv7kWWZlStX8rd/+7fM\nnTt3wv149tlnCYVC3HfffdTW1vLaa69x8eJF5s6dy8c//vHctTxRmyjXprZaWbJkCW+88QZ9fX0s\nWrSInp4ezp07x6xZs9ixYwf19fX09/fT0NDA66+/zuXLlzl9+jQHDhzgueee48iRIwwODuagVLvd\nzrZt29i+fTtOpzN3n8me51mXSqfTydKlS2lrayMQCNDS0sL69ev/JPri3s+Kx+O88soruN1u7r33\n3re0jt7eXs6ePUtFRcUNJ29P6tb0x2hH3Pq0UuDSpUtvaWMvv/wy//zP/8zQkNmpaxgGhYWFbN26\n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\nlmUKCgpob2/nySefTEZHJ5SIb961axclJSVve4LTtVRSUsJf/uVf8vzzz3Py5Ek8Hg9ZWVlJ6l6i\nHV0uF+np6QwPDyejuEtKSrh48SJvvfUWGzZs4Atf+AJPPfUUZ8+eJTU1NRnLm2iTiVRDWZaTpkjD\nMHjllVe45557cLlcRKPRZBzyleS/xD5dqQSFMBHpLQgCc+bMob6+nv3793PfffdhGAbnz59nZGQE\nVVVxOBwUFxdTWloKWBPJPvWpT92Rdp6OEsS9tra2W1p/dHQ0aV6eDtHx7UrXderq6pImyYmSJIkV\nK1awdetWKisr74jvJ0FpDAQCt7R+Yr1r0R5nNKN3Qr9xg19CGzZsYMOGDUSjUerr6zlz5gxdXV34\n/X7rpSeQmppKamoqRUVFLFmyhEWLFr3tzsWMZvTbojtlerhd5rnKykr+5V/+hWPHjt92o9gtRYEC\nemSEaPdR3HaZe+65J9k+n/3sZzl37hxd3b0w8CaMnLFIcM48EBVMI24ZjgIXQbPienAVYmYuB1ND\nECSIDoIoIbmz0YO9EA8QGmgmJW/uTcdSXWk+vBlNpK/90z/9E509/dgyl+LImR6NTRBElIxKQr3H\nOV1Xjyk6cRRtmJK+JruysGdXoY51EOo+wptHjgFcM7Z0OpqKmJWYJW8Z/Kwo28sViAkrm5D4WhIM\nazaOpmsYUiam4kGIjSKIAozH/AoIYM9ClEQw4phaDEO74sV1ZIS4rw1BcUNqBYJntuUHTMTrmrp1\nzUiuSdcMhgqRPvCdw1SDYPMipBTiSfUS9NWhxwKTo2cTdMhE1FIyDssyo5kmVoSwFkJQPONGxisk\niOApxxw5TbS7xiIGTpRpghGnqamJXbt23Vby4kRNh2CXlpnF4NAQ8fGYMVvGHFRf22UDZNZqhEgf\nphqAwZpxOuIccOUCCphxiAxcvjdNw2oHLUa0603MzLtATgHGI8PEK58tE4x+iWrbpBlzJmBYccqC\nFRWnizI9vX3U19cjCMINn8G3i474dnQnyKx3WnfKID4d/W9stxnNaEYz+l1RT08Pe/bs4c033xyP\n69S5bHaScbrTqK6uZuvWreTm5k778zdt2sTLL79EbVOMnUcN7ltzY+qTacJ/vCLTO2QnPSuHpUuX\n8vzzz7Pz9VfACJKXqbJ1lc6axTpuh7V8/4jAgZMqh2ojtDaf4VtPdfL5J55gyZIlN9zevffeyxuH\n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\n/OIXVVJSEufUAAAAADB+hmHo3nvvVWFhoV5++WV1d3erurpab7zxxseuczqdWrlype6//35lZmbG\nKTEAxBYFPwAAkJBcLpc2b96sRYsWqbq6Wh2dXQr1vKtgoEmybckw5HAYSnY5lF9UqKqqKvn9fsp9\nAAAAAKaNuXPn6vvf/766urpUW1ur/fv3q7+/X7ZtKykpSUuWLJHf79eCBQviHRUAAAAAJtzatWu1\nZs0aHT58WDU1NTp27JgGBgbkdDqVlpamVatW6dZbb1VGRka8owJATFHwAwAACcs0zcvFvZaWFtXV\n1SkQCCgYDMrn8yknJ0fl5eUqLi6m2AcAAABg2pozZ46+/OUv68tf/nK8owAAAADApDJNU8XFxSou\nLo53FACIGwp+AAAg4ZmmqZKSEh43BQAAAAAAAAAAAACYUVh1AwAAAAAAAAAAAAAAAABAAqLgBwAA\nAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAA\nAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAA\nAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAA\nAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABA\nAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLg\nBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAqLgBwAA\nAAAAAAAAAAAAAABAAqLgBwAAAAAAAAAAAAAAAABAAnLGO0AiC4VCkqTBwUG1trbGOQ0AAACAqWBw\ncFDSn84TUxlnIgAAAACjxZkIAAAAwEwWizMRBb9PEI1GJUmWZam/vz/OaQAAAABMJZfOE1MZZyIA\nAAAAY8WZCAAAAMBMNpFnIgp+n8Dj8SgUCsnhcMjj8cQ7DgAAAIApIBQKKRqNToszBGciAAAAAKPF\nmQgAAADATBaLM5Fh27Y9YXcDAAAAAAAAAAAAAAAAAAATwox3AAAAAAAAAAAAAAAAAAAA8HEU/AAA\nAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAA\nAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAA\nAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAA\nAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAA\nSEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASEAU/AAAAAAAAAAAAAAAAAAASED/\nH2K/HkndoEwZAAAAAElFTkSuQmCC\n", "text/plain": [ "\u003cFigure size 1800x1200 with 6 Axes\u003e" ] }, "metadata": { "image/png": { "height": 843, "width": 1276 }, "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Visualization of example trajectories\n", "\n", "FONT_SIZE = 26\n", "LINE_WIDTH = 1.1\n", "MARKER_SIZE = 70\n", "ALPHA = 0.9\n", "GRAY = (0.3, 0.3, 0.3)\n", "SZ = 6\n", "N = 2000\n", "scatter_plot_settings = dict(s=MARKER_SIZE, alpha=ALPHA, edgecolor=GRAY)\n", "\n", "x1_dim = 2\n", "x2_dim = 2\n", "\n", "env_key, episode_key = random.split(random.PRNGKey(14))\n", "generator_fn = gen_dynamics(env_key, x_dims=(x1_dim, x2_dim))\n", "gen = generator_fn(episode_key, batch_size=N)\n", "(x, xp, r) = next(gen)\n", "ind = jnp.argsort(r)\n", "(x, xp, r) = (jax.device_get(d[ind]) for d in (x, xp, r))\n", "\n", "plt.figure(figsize=(3*SZ, 2*SZ))\n", "x2 = x[:, x1_dim:]\n", "x2p = xp[:, x1_dim:]\n", "plt.subplot(2, 3, 1)\n", "plt.scatter(x2[:, 0], x2[:, 1], c='b', **scatter_plot_settings)\n", "plt.title('Start state', fontdict=dict(size=FONT_SIZE))\n", "plt.ylabel('Direct Learning', fontdict=dict(size=FONT_SIZE))\n", "\n", "plt.subplot(2, 3, 4)\n", "plt.scatter(x2[:, 0], x2[:, 1], c='b', **scatter_plot_settings)\n", "plt.ylabel('Hindsight Learning', fontdict=dict(size=FONT_SIZE))\n", "\n", "plt.subplot(2, 3, 2)\n", "plt.title('Terminal state', fontdict=dict(size=FONT_SIZE))\n", "\n", "sums = np.sum(x2p, axis=1)\n", "sums[(sums!=1) * (sums!=0)] = 2\n", "plt.subplot(2, 3, 5)\n", "plt.scatter(x2[:, 0], x2[:, 1], c=cm.Set2(sums/3), **scatter_plot_settings)\n", "\n", "# Visualize rewards with colors\n", "plt.subplot(2, 3, 3)\n", "plt.scatter(x2[:, 0], x2[:, 1], c=cm.binary(r/2.0), **scatter_plot_settings)\n", "plt.title('Rewards', fontdict=dict(size=FONT_SIZE))\n", "plt.subplot(2, 3, 6)\n", "plt.scatter(x2[:, 0], x2[:, 1], c=cm.binary(r/2.0), **scatter_plot_settings)\n", "\n", "for i in range(6):\n", " plt.subplot(2, 3, i+1)\n", " plt.xlim([-3.5, 3.5])\n", " plt.ylim([-3.5, 3.5])\n", " plt.grid('off')\n", " plt.tick_params(\n", " axis='both', which='both', bottom=False, top=False, left=False,\n", " right=False, labelbottom=False, labelleft=False) \n", "\n", "plt.subplot(2, 3, 2)\n", "plt.axis('off')\n", "plt.tight_layout(pad=1.4)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "WT-tzJHQ2Svn" }, "outputs": [], "source": [ "#@title Network and loss definitions\n", "\n", "class HindsightValueNet(hk.Module):\n", " \"\"\"HiMo value estimation architecture.\n", "\n", " This defines the network for the value function and hindsight value functions. It can\n", " also be used as a model-free baseline with the baseline_mode flag to control for capacity.\n", " \"\"\"\n", "\n", " def __init__(self,\n", " hidden_size=8,\n", " phi_size=4,\n", " baseline_mode=False,\n", " name=\"HindsightValueNet\"):\n", " \"\"\"Init.\n", "\n", " Args:\n", " hidden_size: Dimension of the hidden layers throughout the network.\n", " phi_size: Dimension of the hindsight bottleneck phi vector, and its approximation phi_hat.\n", " baseline_mode: boolean, whether to use the network in model-free mode as a baseline.\n", " \"\"\"\n", " super(HindsightValueNet, self).__init__(name=name)\n", " self._phi_size = phi_size\n", " self._hidden_size = hidden_size\n", " self._baseline_mode = baseline_mode\n", "\n", " def __call__(self, inputs):\n", " \"\"\"Network definition based on inputs.\n", "\n", " Args:\n", " inputs: Network inputs, tuple composed of initial observation x and next obs x'.\n", "\n", " Returns:\n", " The predictions v_pred (only uses x), v_hind_pred (uses both x and x'), and the phi/phi_hat\n", " vectors.\n", " \"\"\"\n", " x, xp = inputs\n", "\n", " phi_net = hk.nets.MLP(\n", " output_sizes=[self._hidden_size, self._phi_size], activate_final=False)\n", " phi = phi_net(xp)\n", "\n", " h_net = hk.nets.MLP(\n", " output_sizes=[self._hidden_size, self._hidden_size],\n", " activate_final=True)\n", " h = h_net(x)\n", "\n", " phi_hat_net = hk.nets.MLP(\n", " output_sizes=[self._phi_size], activate_final=False)\n", " phi_hat = phi_hat_net(h)\n", "\n", " v_hind_pred_net = hk.nets.MLP(\n", " output_sizes=[self._hidden_size, 1])\n", " v_hind_pred = v_hind_pred_net(jnp.concatenate([h, phi], axis=-1))\n", "\n", " v_pred_net = hk.nets.MLP(\n", " output_sizes=[self._hidden_size, 1])\n", " if not self._baseline_mode:\n", " v_pred_inputs = jnp.concatenate(\n", " [h, jax.lax.stop_gradient(phi_hat)], axis=-1)\n", " else:\n", " v_pred_inputs = jnp.concatenate([h, phi_hat], axis=-1)\n", " v_pred = v_pred_net(v_pred_inputs)\n", "\n", " return v_pred, v_hind_pred, phi, phi_hat\n", "\n", "\n", "class ModelValueNet(hk.Module):\n", " \"\"\"Model-based value architecture.\n", "\n", " This trains a value network that depends on x and x' (in this case can be interpreted as a\n", " reward function r(x,x') that depends on that single transition), and a model network to predict x'\n", " from x. The value is estimated at test time by passing the predicted x' to the value network.\n", " \"\"\"\n", " def __init__(self,\n", " hidden_size=8,\n", " name=\"ModelValueNet\"):\n", " \"\"\"Init.\n", "\n", " Args:\n", " hidden_size: Dimension of the hidden layers throughout the network.\n", " \"\"\"\n", " super(ModelValueNet, self).__init__(name=name)\n", " self._hidden_size = hidden_size\n", "\n", " def __call__(self, inputs):\n", " \"\"\"Network definition based on inputs.\n", "\n", " Args:\n", " inputs: Network inputs, tuple composed of initial observation x and next obs x'.\n", "\n", " Returns:\n", " The predictions v_pred (uses x and x'), v_pred_test (uses x and x' prediction), and the x'\n", " prediction (xp_pred).\n", " \"\"\"\n", " x, xp = inputs\n", "\n", " v_pred_net = hk.nets.MLP(\n", " output_sizes=[self._hidden_size, self._hidden_size,\n", " self._hidden_size, 1])\n", " v_pred = v_pred_net(jnp.concatenate([x, xp], axis=-1))\n", "\n", " xp_pred_net = hk.nets.MLP(\n", " output_sizes=[self._hidden_size, self._hidden_size, x.shape[1]])\n", " xp_pred = xp_pred_net(x)\n", " v_pred_test = v_pred_net(jnp.concatenate([x, xp_pred], axis=-1))\n", "\n", " return v_pred, v_pred_test, xp_pred\n", "\n", "\n", "def vnet_loss(hidden_size, phi_size):\n", " \"\"\"Computes the loss for the model-free value network baseline.\"\"\"\n", " def loss_fn(inputs):\n", " x, xp, r = inputs\n", "\n", " hind_v_net = HindsightValueNet(\n", " hidden_size=hidden_size, phi_size=phi_size, baseline_mode=True)\n", " v_pred, _, _, _ = hind_v_net([x, xp])\n", "\n", " loss = jnp.mean((v_pred - r)**2)\n", " return loss, (loss,)\n", " return hk.transform(loss_fn)\n", "\n", "\n", "def vnet_himo_loss(hidden_size, phi_size, model_loss_weight=3.0):\n", " \"\"\"Computes the loss for the hindsight modelling network.\"\"\"\n", " def loss_fn(inputs):\n", " x, xp, r = inputs\n", "\n", " hind_v_net = HindsightValueNet(hidden_size=hidden_size, phi_size=phi_size)\n", " v_pred, v_hind_pred, phi, phi_hat = hind_v_net([x, xp])\n", "\n", " v_loss = jnp.mean((v_pred - r)**2)\n", " v_hind_loss = jnp.mean((v_hind_pred - r)**2)\n", " model_loss = jnp.mean((phi_hat - jax.lax.stop_gradient(phi))**2)\n", "\n", " loss = v_loss + v_hind_loss + model_loss_weight * model_loss\n", " return loss, (v_loss, v_hind_loss, model_loss)\n", "\n", " return hk.transform(loss_fn)\n", "\n", "\n", "def vnet_model_loss(hidden_size, model_loss_weight=3.0):\n", " \"\"\"Computes the loss for the model-based baseline.\"\"\"\n", " def loss_fn(inputs):\n", " x, xp, r = inputs\n", " model_v_net = ModelValueNet(hidden_size=hidden_size)\n", "\n", " v_pred, v_pred_test, xp_pred = model_v_net([x, xp])\n", "\n", " train_v_loss = jnp.mean((v_pred - r)**2)\n", " test_v_loss = jnp.mean((v_pred_test - r)**2)\n", " model_loss = jnp.mean((xp_pred - jax.lax.stop_gradient(xp))**2)\n", "\n", " loss = train_v_loss + model_loss_weight * model_loss\n", "\n", " return loss, (test_v_loss, train_v_loss, model_loss)\n", "\n", " return hk.transform(loss_fn)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "uE4XpUWCbkwa" }, "outputs": [], "source": [ "#@title Training loops\n", "def get_update_fn(loss_fn, opt):\n", " \"\"\"Builds and returns a pmapped update function that runs on all devices.\n", "\n", " Args:\n", " loss_fn: the loss function to be optimized.\n", " opt: the optix optimizer to be used for loss minimization.\n", "\n", " Returns:\n", " pmapped update function.\n", " \"\"\"\n", "\n", " def update_fn(params, opt_state, *inputs):\n", " rng = None\n", " grads, loss = jax.grad(loss_fn, has_aux=True)(params, rng, *inputs)\n", " grads = jax.lax.pmean(grads, axis_name='i')\n", " updates, opt_state = opt.update(grads, opt_state)\n", " params = optix.apply_updates(params, updates)\n", " return params, opt_state, loss\n", "\n", " update_fn = jax.pmap(update_fn, axis_name='i')\n", " return update_fn\n", "\n", "\n", "def train(rng_key,\n", " loss_fn,\n", " data_generator,\n", " batch_size=16,\n", " learning_rate=1e-3,\n", " num_training_iterations=5000,\n", " report_interval=100,\n", " mv_avg_decay=0.99,\n", " logging_prefix=''):\n", " \"\"\"Traininig script.\"\"\"\n", "\n", " num_devices = jax.local_device_count()\n", "\n", " opt = optix.adam(learning_rate=learning_rate, eps=1e-3)\n", " update_fn = get_update_fn(loss_fn.apply, opt)\n", " reshape = lambda x: jnp.reshape(\n", " x, [num_devices, batch_size//num_devices, -1])\n", " gen = map(lambda x: tree.map_structure(reshape, x),\n", " data_generator(rng_key, batch_size=batch_size))\n", "\n", " # NOTE: use the same key on all devices to initialise parameters to the same\n", " # value on all devices.\n", " rng_key, _ = random.split(rng_key)\n", " params = jax.pmap(loss_fn.init)(\n", " jnp.stack([rng_key] * num_devices), next(gen))\n", " opt_state = jax.pmap(opt.init)(params)\n", "\n", " for train_iteration in range(num_training_iterations):\n", " params, opt_state, aux = update_fn(params, opt_state, next(gen))\n", " # The loss returned by `update_fn` is an array of shape [n_devices].\n", " # Take the mean to get a single value.\n", " aux = tree.map_structure(jnp.mean, aux)\n", " if train_iteration == 0:\n", " aux_smoothed = aux\n", " aux_data = tree.map_structure(lambda x: [], aux) + ([],)\n", " else:\n", " mv_avg = lambda x, y: x * mv_avg_decay + y * (1 - mv_avg_decay)\n", " aux_smoothed = tree.map_structure(mv_avg, aux_smoothed, aux)\n", "\n", " if (train_iteration + 1) % report_interval == 0:\n", " message = logging_prefix + ' - progress: {0:3.0f}%'.format(\n", " train_iteration/(num_training_iterations-1)*100)\n", " print(message, end='\\r')\n", " to_add = aux_smoothed + (train_iteration,)\n", " tree.map_structure_up_to(\n", " to_add, lambda x, y: x.append(y), aux_data, to_add)\n", " return aux_data" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "cellView": "form", "colab": { "height": 712 }, "colab_type": "code", "executionInfo": { "elapsed": 2867818, "status": "ok", "timestamp": 1584473852216, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": 240 }, "id": "ejSJXzTCgiAo", "outputId": "005d2791-1581-4403-b772-2de3dbb616c9" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running on 1 devices of type cpu:0\n", "Num runs: 10 -- Batch size: 64\n", "Training vnet...\n", "Training himo...\n", "Training model-based vnet...\n", "Done!\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMIAAASiCAYAAABXg0X6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8VPW9//HXOTOTHUgMCIiyyBLE\ngCKiWHCLWBUue61LwQ23qlXbchVtf73QSlUq2larVW+tXgrixo5CBUStWgRFiigRQZF9MZA9s5xz\nfn9MZsgks4WEJeT97IOHzTnf8z3fk0yG8Mnn8/kajuM4iIiIiIiIiIiIHOfMo70AERERERERERGR\nI0GBMBERERERERERaRYUCBMRERERERERkWZBgTAREREREREREWkWFAgTEREREREREZFmQYEwERER\nERERERFpFhQIExERERERERGRZkGBMBERERERERERaRYUCBMRERERERERkWZBgTAREREREREREWkW\nFAgTEREREREREZFmQYEwERERERERERFpFhQIExERERERERGRZkGBMBEREZGjYMKECeTl5fH0008f\n7aWIiIiINBsKhImIiEizc//995OXl8eQIUOSvmbGjBnk5eXRu3dvSkpKDuPqjk2vvfYaeXl59OrV\n62gvRUREROSQKRAmIiIizc6oUaMA2LRpE+vWrUvqmrlz5wJwySWX0LJly8O2NhERERE5fBQIExER\nkWbn3HPPpUOHDgDMmzcv4fjNmzfzn//8BzgYRBMRERGRpkeBMBEREWl2DMNg+PDhACxatIhAIBB3\nfChY1qZNGwYNGnTY1yciIiIih4f7aC9ARERE5GgYNWoUzzzzDEVFRbz33nsUFBREHec4DvPnzwdg\n2LBhuFyu8DnLsvj4449ZunQpn376Kbt376akpITs7GzOPPNMxo0bx7nnnluvdX344YfceOONdOzY\nkbfffjvqmNdee41f//rXnHfeebz44otRx6xatYoZM2bw6aefUlRURGZmJr169eLKK6+sV2+0xlBa\nWsoLL7zA0qVL2bZtGwCnnHIKl156KTfeeCNZWVlRr/v3v//NjBkz+Oyzz9i/fz9paWmccMIJdO/e\nnQsvvJArr7wSwzDC48vKynjxxRdZtmwZ3377LX6/n+zsbNq2bcu5557L6NGj6dat2xF5ZhERETk2\nKRAmIiIizVKnTp3o27cva9asYe7cuTEDYStXrmTHjh0AjBw5MuLcV199xQ033BD+OCUlBY/Hw969\ne3n77bd5++23mTBhArfccsthe47aHMdh6tSpvPDCC+FjmZmZFBcX8+GHH/Lhhx+yfPlypk6dimke\n/uKAb775hptuuin8OUxPTwegsLCQwsJC5syZw4svvkjHjh0jrps5cyaTJ08Of5yeno5lWWzZsoUt\nW7awdOlSRo8ejdsd/HG2uLiYq666im+++QYA0zRp0aIF33//PXv37uXzzz/H4/Hw85///LA/s4iI\niBy7FAgTERGRZmvUqFGsWbOGd955h5KSkqhN8ENlkb169SIvLy/iXEpKCkOGDGHEiBH07t2bE044\nAcMw2LdvH7NmzeLpp5/m8ccf57zzziM/P/+IPNPf//53XnjhBXJzc7n77rsZMmQILVu2pKqqiuXL\nl/P73/+eBQsW0LNnT26++ebDuhafz8fPfvYzduzYQYcOHZgyZQoDBgwAgplvDz74INu3b+euu+7i\n9ddfJyUlBYDy8nKmTp0KwI9//GPuvPNO2rVrB8CBAwdYu3Ytc+fOjcgGe/HFF/nmm2/Izc3l4Ycf\nZuDAgbjdbvx+P9u2bePtt98mJyfnsD6viIiIHPvUI0xERESarSFDhpCamorP5+Ott96qc76yspIl\nS5YAdbPBALp27coTTzzBRRddRG5ubjgw07p1a+666y5uv/12bNtm1qxZh/dBqh04cIA///nPeDwe\nnnvuOa6++upwcC8tLY0hQ4bwpz/9CYDnn38+YW+0hlqwYAEbN27E4/Hw/PPPc95552EYBoZhMHDg\nQJ599lncbjeFhYW8+eab4esKCwuprKwkKyuLyZMnh4NgANnZ2Vx44YU88cQTEWWqa9euBeDmm2/m\nwgsvDGeKeTweunTpwq233sqVV155WJ9XREREjn0KhImIiEiz1aJFCy655BIA5s6dW+f822+/TXl5\nOW63m//6r/+q9/wXX3wxAJ9++mnDFpqkxYsXU1lZSf/+/WNmoPXr148OHTpw4MABvvjii8O6nlAQ\n8Yc//CFdu3atc75nz54MHjwYICIQGeoZ5vf7OXDgQFL3Cl2zd+/eBq1ZREREjm8qjRQREZFmbeTI\nkbz55pt8+umnbN26lVNOOSV8LlQWef7555Obmxv1+srKSmbNmsWyZcvYtGkTJSUldTKt9uzZc/ge\noIY1a9aE/ztw4MCY44qLiwHYtWsXffr0OWzrCQXa4m0YMGDAABYvXsz69evDx7p06cIpp5zC1q1b\nueqqqxg7diznn38+p556asx5LrjgApYsWcKLL75IUVERQ4cO5ayzzorZiF9ERESaJwXCREREpFkb\nNGgQbdq0Ye/evcybN4+77roLCAavPvroIyDYSyya3bt3M27cOLZs2RI+lpGRQcuWLTFNE8uy2L9/\nP5WVlYf/QTiYDVVZWZnUPQ/3uvbv3w9A27ZtY44JlT2GxkKwnHHatGnceeedfPfdd/z+978HgmWR\nAwYMYOTIkeFsu5AxY8awZs0aXn/9debOncvcuXMxTZOePXtSUFDA1VdfTZs2bRr7EUVERKSJUSBM\nREREmjWXy8Xw4cP529/+FhEImz9/PpZlkZ2dXSfoEvLQQw+xZcsWOnbsyP33388555wT0XB/8+bN\nXHHFFTiOc0SexbZtAMaPH8999913RO6ZDJ/PV+9rzjjjDN5++23++c9/8sEHH/DJJ5+wbds2Fi9e\nzOLFi7n44ot5+umnwztfGobBlClTuO6661i8eDGrV69m7dq1fPHFF3zxxRe88MILPP3005x33nmN\n/XgiIiLShKhHmIiIiDR7oYyv7777LtzPK1QWOWTIkPBuhjV5vV7eeecdAB5//HEGDx5cZ9fJ77//\nvt5rCTWA93q9MceUlpZGPR4q39y0aVO973s4hHZp3LFjR8wxu3btihhbU3p6OiNGjGDq1KksW7aM\npUuXcsstt2AYBu+88w6vvvpqnWvy8vK45557mD59OqtXr+aZZ56he/fuVFRUcP/992NZViM9nYiI\niDRFCoSJiIhIs9e9e3dOP/10INg0/4svvuCrr74CYpdFfv/99/j9fgBOO+20qGM+/PDDeq8lFEzb\nt29fzKDNunXroh7v27cvACtXrgz3ATuaevXqBcC///3vmGNC50Kf/3hOOeUUJkyYwA9/+EMAVq1a\nFXd8SkoKBQUFPPHEE0CwlPW7775Lau0iIiJyfFIgTERERISDAa/FixeHM41OPfXUmM3kazZh37hx\nY53zu3btYubMmfVex6mnnorH48GyrHDGWU2bN29m6dKlUa8dMmQI6enpVFZW8thjj8W9z5EIlF12\n2WUArFixgsLCwjrnN2zYEH6WK664Inw8USllWlpanXHxrgmNT2ZuEREROb4pECYiIiICDB06FI/H\nQ3FxMa+88goQOxsMgplbvXv3BmDixIls2LABCPbp+uCDDxg3btwhrSM1NTXck2zKlCl8+umn2LaN\nZVm89957jB8/nvT09KjXnnDCCdx7770AvPrqq/ziF7+ICNJ5vV5Wr17N//zP/zB27NhDWh9AUVFR\n3D9VVVUADBs2jO7du+M4Dj/96U/D2V+O4/DBBx9w2223EQgEyMvLY8iQIeH5ly9fztVXX81rr70W\nUVZZWVnJyy+/zJtvvgkENzoIue6663jooYdYvXp1RFnpV199xYMPPggEG/N369btkJ9bREREmj41\nyxcREREhGES68MILWbp0KbZtY5omw4cPj3vNgw8+yA033MCGDRsYMWIEGRkZWJaF1+slOzubKVOm\ncOedd9Z7LRMmTODjjz9mx44dXHPNNaSnp2PbNl6vl9NPP53rr7+ehx9+OOq1N9xwA2VlZTz11FMs\nWrSIRYsWkZ6eTkpKCqWlpeGG+p06dar3ugAsy0rYcP6ee+7hjjvuICUlhSeffJIbb7yR7du3c/31\n15ORkYHjOOEdKzt06MCTTz5Zpw/bmjVrWLNmDRDM6EpNTaWkpCS88cDFF1/Mj370o/D4srIypk+f\nzvTp0zFNkxYtWlBZWRnOAMvIyGDq1KnhHmwiIiLSPCkjTERERKRazQywAQMG0K5du7jjzzrrLGbN\nmsUll1xCq1atCAQCtG7dmquvvpp58+bRvXv3Q1pHp06deOWVVxg6dCg5OTlYlkX79u254447mDlz\nJpmZmXGvv+uuu5g7dy5XXnklnTp1wnEcKioqaNOmDRdccAGTJ09m1qxZh7S2+urSpQvz58/npz/9\nKT169AgHsnr06MFdd93F/Pnz6wTlBg4cyKOPPsrIkSPp0aMHaWlplJeXk5OTw6BBg/jDH/7AM888\nExHU+v3vf8/PfvYzzjnnHNq3b09VVRWmadK1a1fGjRvHggULOPfcc4/IM4uIiMixy3CO1H7eIiIi\nIiIiIiIiR5EywkREREREREREpFlQIExERERERERERJoFBcJERERERERERKRZaNRdIxcsWMDLL79M\nYWEhtm3TpUsXxowZwzXXXINpJh9zmz59OqtXr+arr76iqKiIsrIyWrRoQc+ePRk1ahTDhw/HMIzD\nvg4RERERERERETl+NFqz/MmTJzNz5kxSU1M577zzcLvdfPTRR5SXl3PppZfypz/9Kentqi+44AKK\n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\nFVxfIAAlJVCdtt0QoT4Jtm1hO3bwmWKM87iDwbBDaZgfWR5ZpvJIERERETli2rRpw9SpU/n5z3/O\nlClTeO211+jRowd79uxh9erV2LbNT3/603BWT8i9997LJ598wvr167n00ksZMGAALpeLlStX0qJF\nCwoKCli+fHmd+11//fXs2LGDF198kSuvvJK8vDw6duyIbdvs2rWLzZs3U1lZyfPPP0/Xrl2P1Kch\nJtM0efrpp7nlllt45ZVXWLhwIT179qRdu3bs37+fHTt28O2339K6deuI0snBgwczceJE/vCHP3Dn\nnXfSuXNnunTpQkpKCjt37uSbb76htLSUSZMm0bdv33qtafTo0axZsyZcGhprx8/Ro0fz0ksvsX79\negYPHky/fv1wHIfVq1fj8XgYM2YMb7zxRtL3TU9P584772Tq1KlMmDCBGTNm0KZNGwoLC9m+fTs3\n33wz//u//1vnuvbt2/OXv/yFe+65h9/+9rc888wzdO/enezsbPbs2cN3333Hnj17GDJkCFdccUW9\nPhfStCkjTJoOg/jBLcPANIMhM8cgqWCY4zhYlo1TnWlWOyPM8aaHp4joExbaObLm7RuxPNJlmFi2\nRcBOUB5Z3TDf2+DyyPLEg0VEREREGtHgwYN54403GD58OAcOHGDJkiV89dVXDBw4kOeee4577723\nzjWZmZlMnz6dW2+9lVatWvHuu+/y2Wefcdlll/Hqq6+G+4lF88ADD/CPf/yDoUOHUlJSwooVK/j4\n44+prKzk4osv5rHHHuPss88+nI9cL+3ateP111/nN7/5Db169eLrr7/mn//8Jxs3biQzM5ObbrqJ\nJ598ss51N954IzNmzGDkyJHYts2HH37I+++/T0lJCf379+ehhx46pMDPkCFDwg3+PR4PQ4cOjTqu\nVatWvPHGG1x11VVkZGSwYsUKPv/8cy699FJmz54d7mVWH+PHj2fKlCnk5eXx+eef89FHH9GxY0dm\nzpxZJ1ha04ABA1i4cCG33347ubm5fPbZZyxdupSdO3fSuXNnfvnLX/Lzn/+83uuRps1wGmurhmas\nsLCQsrIysrKyEm7HeyR98sknQLCuvqnbs7+CLTtLcbsMWmSkRB3j4FC4bQ9f79zDid7vySopJdAq\nB8zY8d5Kr4ULyG6VQnqaC8dxeHJZBb4acaW0M5djpPg4I7UbgzLOCB83330P8/P14Y+tAefi9Dur\n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\nCVdWkt8NdyIRQgghhBBdIycnh0ceeYRrr72W3//+9yxZsoRjjz2WmpoaVqxYgW3bTJ48mUsvvbSr\nl5q1vLw87r//fq6//noef/xxFi1axLBhw9i1axfvv/8+V111FbNnz04478UXX+SXv/wlhx12GIMG\nDSI/P5/KykpWBQx9AQAAIABJREFUrVqFbdtMmjQptrNkKvn5+dx333388Ic/5LHHHmPhwoUcc8wx\nVFRU8P777zN16lRmz56ddKfOjjrnnHNYuXIlt912G9/4xjcoKioC4LbbbqNHj8zzmS+88EJWr17N\nnDlzYp+nOu4Pf/gD69atY/z48Zx00kn4vs/7779PIBDgoosu4uWXX874cW+++eZYgfK9997j6KOP\nZvv27axbty72NWxLa81vf/tbrr32Wl544QUWLFjA0KFD6du3L3v27GH79u18+eWX9O7dO+vRyaFD\nh/LXv/6V3/72t7iuy+23396pX6/uQjrCRLdSmB+gX68CigpS76jouB7vf1rO+s17KN8dprLKiXWF\n+YaBrw1UktZaRaQGlknwYWnbnLBQPrVew16FJiaMR3Zwxj6gg9ieTdixknbOaa2gVWD+gcosKsIL\nhbHr6nD24a4sQgghhBDiq+f4449n/vz5XHbZZbiuy+LFi1mzZg3HH388999/P/fee2+7u8UfqE49\n9VRefPFFxo0bR2VlJUuWLKG2tpYZM2Zw5513Jj1n2rRpXHrppRQWFrJ69WoWLVrE5s2bGTNmDI88\n8ggPPPBARo992mmn8fzzzzN27FgqKiriHvu73/0uAKWlpZ31VLnyyiu55ZZbOOSQQ3jrrbd46aWX\neOmll1LmbqVy3nnnkZsbyVAOBAJMmjQp6XElJSW8/PLLXHrppeTn5/P222/z8ccfc8455zB37txY\nflemTjzxRGbPns2pp57Kjh07YuOQ9957L9OmTUt5Xt++fXnppZeYMWMGw4YN4/PPP2fx4sVs2LCB\ngoICrrnmmlhnYzaiHWGu63LKKadw9tlnZ32NrwLld8Z2Bwe59evXU19fT2FhYUbbzu4vq1atAuCk\nk07q4pV0rrpGi/Ldqbuv6hotZjz5j9jnwYDiwgn9MLWJUb0Hs3IXfjAHPycn7jzLcnE96FEcoCA/\nfbPkoo/DrN3WkjcQGPgpZt/NXFNyPnk6J82ZqaktWzFefS32uV9UhDv1O5EOtizVhuvJM3NoqKwn\n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\na/n5z3/OzJkzOeaYYxgwYACe57FhwwY2btxIIBDgpz/9adw59957LzfccAN//etfWbZsGUOHDuXQ\nQw+lvr6enTt3snHjRjzP4/LLL491440fP55LL72UF154gcsuu4zRo0fTq1cvPvroI8rLy7n88sv5\n05/+1KFwApsxAAAgAElEQVTX6PDDD+eEE05g9erVvP766wQCASZNmpT02BtvvJFbbrmFhx9+mNdf\nf52jjjqKXbt2sWrVKs477zxWr16d1Zjmueeey+zZs/nkk084//zzOfHEE7Ftm7Vr19KnTx/Gjx/P\nkiVLEs7rqveT6BzSESa6Hcf12FZRT8We5HPcUeefdiRTzz2GqycNY8pZR5OXa6C1xmsdmG+Y0KYj\nLGAoggGDDJrOErTNCfMbIkWTTssJA+jXF79nS3C78n3UJ59mfZmADjR3hNmx20xDYTs+tuN2WsDk\nV0GguBi7tg67eo90hQkhhBBCdJLx48fz8ssv881vfpPq6moWLVrEZ599xmmnncaTTz7JtGnTEs4p\nKChgzpw5XHfddZSUlPC3v/2NDz/8kAkTJvDiiy+m3Snwzjvv5I9//COTJk2itraWt99+m5UrV9LU\n1MTYsWN54IEHGDVqVKc+x6uuuoqHH34Y3/dZunQpmzdv5utf/zrPPPNMQrHHNE3mzJnDD37wA8rK\nynj33XdZtWoVo0eP5uWXX44F3rd22GGHceedd3LGGWdQU1PD22+/zfLly3FdlwsvvJD58+czduzY\nuHMKCwuZPXs29957L6NHj+Zf//oXf/3rX1m3bh2GYXDZZZfxu9/9jpyc+B2/Zs6cya9+9SsGDRrE\nqlWrWL58OUcddRQvvPACI0eO3KvXqfUGC9GdSJOZOHEizzzzDCeffDI7d+7krbfeor6+nrvuuov7\n778/68cNBoPMmjWLyy+/nJycHN555x02bdrEt771LZ5//vm4HTfb6or3k+gcypefdvfa+vXrqa+v\np7CwsN3tU/enVatWAZG5+q8Sx/XYuLWa8t2NHFrWfheU43ps3VXHvyqr8AONBA2ToBEEQDU1Eago\nR1th3KKWjq3CfJOcYPZ14rqQxxN/a2q5QbnknrSEAcHefKvojNQnZkmt/Rhj2fLY535BAe5VV8YC\n/6O2b9sBwKH9E2foAapDtRQFC+ld0JOAjvy2p6K6iZ7FuQzoU4hpSK08KlReTqC4mLzDDus2XWFf\n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\nyxAql6a5fpqQ63plp83xUJBpZjkuXCGC8jRFlqD6ZWUhTQkGCgDA2u4UVGV+stAWiqLIWNGZgGU7\nsJ3x7C3HnySYiOrBsIjRrIGQ7mU3Dp9QICDQ0RL1gl+KjOUd8SAwE9K9tVIVObhemRBwBABFgjcd\nc3mTF/jys8aA8UyrWFgL7l9NlWHZbsVtlP+rTOhrJ4SAqiqQJwacpfHA88Q1a02F0ZoKB7cZNKWH\nF+yaGFRa3ZUKShPLmVjjmZjjpaXRsIY13VOzt6re/2fwuUO1MRBGREREREREdVdupF/m9RfzSigV\nWQp6o7muN2CgHARzXS/Y4fqBl/bmKOL+toWShULJntJbqVqwS5/h9NEzgZe1Nv02TYkQUnEdjisw\n0qdDQOCs5U1QFWlKZlK5LPRkvADSzO7HmQ5wkCQpWM+ZbDv5+1rJWQvd043OXAyEERERERER0bwr\nTwsNT4rByLKEjgmZXNOJhrU5TcxsdJLkTSLUVK/xFYNDRFPxUUFEREREREREREsCA2FERERERERE\nRLQkMBBGRERERERERERLAgNhRERERERERES0JDAQRkRERERERERESwIDYUREREREREREtCQwEEZE\nREREREREREsCA2FERERERERERLQkMBBGRERERERERERLAgNhRERERERERES0JDAQRkRERERERERE\nSwIDYUREREREREREtCQwEEZEREREREREREsCA2FERERERERERLQkqPW8sZ/+9Kd45JFHsHfvXriu\nizVr1uD666/HDTfcAFk+9ZjbbG+v3sdBRERERERERERnvroFwu666y784Ac/QCgUwqWXXgpVVbF1\n61b88z//M7Zu3Yr77rsPiqLM++3V+ziIiIiIiIiIiKgx1CUQ9rOf/Qw/+MEP0N7eju9973tYvXo1\nAGBwcBA33ngjfv7zn+N73/sePvjBD87r7dX7OIiIiIiIiIiIqHHUpU7wG9/4BgDgH/7hH4LgEwC0\ntbXhzjvvBAB885vfhOu683p79T4OIiIiIiIiIiJqHHMOhPX19WH37t3QNA1XX331lOsvvvhidHZ2\nYmBgAM8999y83V69j4OIiIiIiIiIiBrLnANhe/bsAQCsX78e4XC46jbnnnsuAOCll16at9ur93EQ\nEREREREREVFjmXMg7MiRIwCA7u7umtt0dXVVbDsft1fv4yAiIiIiIiIiosYy52b5hUIBABCJRGpu\nE4vFAAD5fH7ebq/ex3EqDMMAAMRAHtIAABJKSURBVORyOfzhD3+o623Xw2I8JlpYPAeWNq4/8RxY\n2rj+xHNgaeP6L21cf2qUc6Acd6mHOWeECSEAAJIkzflg5nJ79T6OU+E4zoL/TCIiIiIiIiKipaCe\ncZc5Z4SVs6zKGVnVlDOwytvOx+3V+zhORSgUgmEYUBQFoVCorrdNRERERERERLQUGYYBx3HqGmuZ\ncyCsp6cHAHDs2LGa2/T19VVsOx+3V+/jOBXnnHNOXW+PiIiIiIiIiIjqb86lkeUg0P79+1Eqlapu\ns2vXLgDAxo0b5+326n0cRERERERERETUWOYcCOvq6sKmTZtgWRa2bNky5fpt27ahr68P7e3tOP/8\n8+ft9up9HERERERERERE1FjmHAgDgFtuuQUA8KUvfQmHDx8OLh8aGsJdd90FALj55pshy+M/7stf\n/jKuvvpqfPnLX67L7c1lPyIiIiIiIiIianxz7hEGAFdffTVuuOEGPPLII7j22mtx2WWXQVVVbN26\nFblcDldddRXe//73V+wzMDCAgwcPYmBgoC63N5f9iIiIiIiIiIio8dUlEAYAd955Jy688EJ8//vf\nx7Zt2+C6LtauXYvrr78eN9xwwylnYc329up9HERERERERERE1BgkIYQ43QdBREREREREREQ035ge\nRURERERERERESwIDYUREREREREREtCQwEEZEREREREREREsCA2FERERERERERLQkMBBGRERERERE\nRERLAgNhRERERERERES0JDAQRkRERERERERESwIDYUREREREREREtCQwEEZEREREREREREsCA2FE\nRERERERERLQkqKf7AGh+/PSnP8UjjzyCvXv3wnVdrFmzBtdffz1uuOEGyDLjn4vBq6++iqeffhq7\ndu3Ciy++iEOHDkEIgfvuuw9XX331tPvOdn0Xej+qzbIs7NixA7/5zW+wc+dOHDt2DKOjo2hubsb5\n55+P973vfbjkkktq7s9z4Mz38MMPY8eOHdi3bx+Gh4eRy+WQSCSwYcMGXHfddXjXu94FSZKq7sv1\nb0z33HMPvvGNbwAAbrvtNtx0001Vt+P6N4ZPfvKTePzxx2tev2bNGmzZsqXqdTwHGkepVMLDDz+M\nLVu24PDhw7AsC62trdi8eTM++MEP4sILL5yyD9f/zPfss8/ixhtvnNG2v/rVr9Dd3V1xGc+BxtDX\n14dvfvOb+N3vfofjx49DCIGuri688Y1vxM0334wVK1ZU3Y/rP3eSEEKc7oOg+rrrrrvwgx/8AKFQ\nCJdeeilUVcXWrVuRz+fx9re/Hffddx8URTndh7nkfe5zn8N3v/vdKZefLBA22/Vd6P1oer///e/x\noQ99CADQ3t6OTZs2IRKJ4MCBA9i3bx8A4NZbb8XHPvaxKfvyHGgMb3nLWzA8PIz169ejs7MTkUgE\nx44dw/PPPw8hBK688krcf//9U15gcP0b0wsvvIC/+qu/guu6EELUDIRx/RtHORB2wQUXYNWqVVOu\nb29vx9///d9PuZznQOPo7e3FTTfdhMOHD6O1tRXnnXcedF3H0aNH8fLLL+PWW2/FrbfeWrEP178x\nHDhwAN/85jdrXv/CCy/gwIEDWLlyJf7nf/6n4oMxngONYc+ePfjgBz+ITCaDZcuWYdOmTQCAF198\nESdOnEA0GsW3vvUtXHDBBRX7cf3rRFBD2bJli0in0+Lyyy8XBw8eDC4fGBgQ73znO0U6nRYPPfTQ\n6TtACjz66KPiC1/4gnjiiSfE4cOHxfvf/36RTqfFk08+WXOf2a7vQu9HJ/f73/9efPSjHxXbt2+f\nct0TTzwhNm7cKNLptNi6dWvFdTwHGsf27dtFPp+fcvm+ffvEZZddJtLptPjhD39YcR3XvzEZhiGu\nueYa8aY3vUnceuutIp1OiwceeGDKdlz/xnL77beLdDotHnvssRnvw3OgceTzeXHVVVeJdDotvvKV\nrwjTNCuuHx4eFq+++mrFZVz/peOaa64R6XRafP3rX6+4nOdA4/jLv/xLkU6nxac//emKx79pmuKO\nO+4Q6XRaXHvttRX7cP3rh4GwBnPdddeJdDotHn/88SnXPfvss8GJ7DjOaTg6ms5MAmGzXd+F3o/m\n7h//8R9FOp0Wd9xxR8XlPAeWhvvvv1+k02nx8Y9/vOJyrn9j+uIXvyjS6bT45S9/GQRHqgXCuP6N\nZTaBMJ4DjeNLX/qSSKfT4rbbbpvxPlz/pWHnzp0inU6LjRs3ir6+vorreA40hlKpJNLptEin06K/\nv3/K9X19fcH1hUIhuJzrXz9nZkEnVdXX14fdu3dD07SqpXUXX3wxOjs7MTAwgOeee+40HCHNxWzX\nd6H3o/o455xzAAAnTpwILuM5sHSoqtfCU9f14DKuf2N6/vnn8eCDD+LP/uzP8La3va3mdlx/4jnQ\nOEzTxKOPPgoAuOWWW2a0D9d/6XjssccAAG9+85vR2dkZXM5zoHHIshy81hNVOlWVS2Gj0SjC4TAA\nrn+9MRDWQPbs2QMAWL9+ffCAmezcc88FALz00ksLdlxUH7Nd34Xej+rj0KFDALweMWU8B5aG3t5e\n/Od//icAVARGuP6NxzAM3H777UilUvjUpz417bZc/8b17LPP4u6778Y//dM/4Stf+QqefvppuK47\nZTueA41j9+7dGB0dRVdXF8466yzs3LkT99xzDz7zmc/gq1/9Kv74xz9O2YfrvzQUi0X893//NwDg\nPe95T8V1PAcah6ZpeOMb3wgA+Pd//3dYlhVcZ1kWvvKVrwAArr/++iAoxvWvL06NbCBHjhwBgClT\nRSbq6uqq2JbOHLNd34Xej+ZuYGAgmCT2J3/yJ8HlPAca02OPPYbt27fDsiycOHECf/zjH+G6Lv72\nb/8Wb3/724PtuP6N595778XBgwdx7733oqWlZdptuf6N68c//vGUy9atW4d77rkHZ599dnAZz4HG\nUR6Ks2rVqqrTQ7/2ta/hHe94B774xS8Gb0C5/kvDli1bkM/n0draiiuuuKLiOp4DjeXOO+/Ehz/8\nYTz66KP47W9/i82bNwMAdu3ahUwmgxtvvBG33XZbsD3Xv74YCGsghUIBABCJRGpuE4vFAAD5fH5B\njonqZ7bru9D70dzYto1PfOITyGazuPTSSysygngONKadO3dWvAlSVRUf+9jHgqmiZVz/xrJz5058\n5zvfwVVXXYVrrrnmpNtz/RvPhg0b8OlPfxqXXnopuru7kcvlsGfPHtx77714+eWX8aEPfQiPP/54\nUBrFc6BxjI2NAQB27NgBx3HwN3/zN7jhhhvQ1NSE7du346677sLPfvYzxGIx3H333QC4/ktFuSzy\n3e9+NzRNq7iO50BjWbFiBR555BHcfvvt+O1vf4u+vr7gus2bN+Oiiy6qOAe4/vXF0sgGUq4vnjhe\nlxrHbNd3ofejufnsZz+LrVu3oqurC//2b/9WcR3Pgcb0uc99Dnv37sXzzz+PJ554AjfeeCPuv/9+\nvPe9763oEcf1bxylUgl33HEH4vE4PvvZz85oH65/4/nrv/5rfOADH8C6desQjUbR0dGBK664Av/1\nX/+F17/+9RgaGsI3vvGNYHueA42jXPpq2zbe85734Pbbb8fKlSuRTCZx5ZVX4mtf+xokScKPf/xj\n9Pb2AuD6LwWHDx/G9u3bAUwtiwR4DjSanTt34tprr8Vrr72G//iP/8AzzzyDrVu34mtf+xoymQw+\n+tGP4v777w+25/rXFwNhDaQckS1Hb6spR2vL29KZY7bru9D70ez967/+K374wx+ivb0dDz30UEV/\nMIDnQKMLh8NYt24dbr/9dnz84x/Hyy+/jH/5l38Jruf6N4577rkHhw4dwic/+Ul0dHTMaB+u/9Kh\n63rQQP03v/lNcDnPgcYx8f5673vfO+X6c889F5s2bYLrunj22Wcr9uH6N65yNtj555+Ps846a8r1\nPAcaRyaTwUc+8hHk83k88MADuPLKK9Hc3IyWlhZcddVVeOCBBxAOh/H1r3896BvM9a8vlkY2kJ6e\nHgDAsWPHam5TTrksb0tnjtmu70LvR7Pz+c9/Hg8//DBaWlrw0EMPYfXq1VO24TmwdPzFX/wFvvCF\nL+BXv/oVLMuCpmlc/wbyi1/8ArIs48c//vGU/lCvvvoqAOCRRx7Br3/9a6xcuRKf+9znuP5LzNq1\nawFUTg7mOdA4Jt5fy5cvr7rN8uXL8eKLL2JwcLBiH65/Y3IcJ/h7cP3111fdhudA4/j1r3+N4eFh\nvPGNb8SKFSumXL9q1Sq87nWvw7Zt27Bt2zasXr2a619nDIQ1kHPOOQcAsH//fpRKparTHXbt2gUA\n2Lhx44IeG83dbNd3ofejU/fFL34RDz74IJqamvDggw9i3bp1VbfjObB0JJNJqKoK27YxNjaGtrY2\nrn+DcV0X27Ztq3l9b28vent7kclkAPDxv9SMjo4CqPyUnedA49i0aVPw/5GRkarDMkZGRgAA0WgU\nANe/0f3ud7/DiRMnEI1Ga/aN5DnQOI4fPw4ASCQSNbdJJpMAxv8ecP3ri6WRDaSrqwubNm2CZVnY\nsmXLlOu3bduGvr4+tLe34/zzzz8NR0hzMdv1Xej96NR86Utfwre+9S2kUik8+OCD2LBhQ81teQ4s\nHdu3b4dt20gmk2hubgbA9W8kTz31FPbu3Vv133XXXQcAuO2227B371785Cc/AcD1X2qefPJJAAim\niAE8BxpJZ2cnzjvvPADAM888M+X6sbEx7NmzB8D4OcD1b2w//OEPAQDvfOc7a5aZ8RxoHOW2CLt3\n74ZlWVOutywLu3fvBjCeNcr1rzNBDeXJJ58U6XRaXH755eLQoUPB5YODg+Kaa64R6XRaPPTQQ6fx\nCKmW97///SKdTosnn3yy5jazXd+F3o9m5t577xXpdFq84Q1vELt27ZrRPjwHGsP27dvFT37yE2EY\nxpTrduzYIa688kqRTqfF5z//+YrruP6N7/bbbxfpdFo88MADU67j+jeOPXv2iKeeekrYtl1xuWVZ\n4tvf/rbYsGGDSKfT4re//W3F9TwHGscvf/lLkU6nxaWXXir27NkTXF4qlcTf/d3fiXQ6La677jrh\num5wHde/MQ0NDYlNmzaJdDot/vCHP0y7Lc+BxjA4OCjOO+88kU6nxV133VXxetAwDPGZz3xGpNNp\ncdFFF4lMJhNcx/WvH0kIfxwANYw777wTjzzyCEKhEC677DKoqoqtW7cil8vhqquuwle/+lUoinK6\nD3PJ2717N+66667g+1deeQX5fB6rV69GKpUKLn/00Ucr9pvt+i70fjS9X/7yl7j11lsBeJ/2rl+/\nvup2a9euDZoml/EcOPP96Ec/wh133IFkMolzzjkHbW1tyOfz6O3txSuvvAIAuOKKK3DfffdNSUXn\n+je2T37yk3j88cdx22234aabbppyPde/MfziF7/ARz7yETQ1NWH16tXo7OxEPp/Hvn370N/fD1mW\n8fGPfxw333zzlH15DjSOL3zhC/j2t78NTdNw3nnnoampCS+88AL6+/vR2dmJ7373u1N6hnL9G89D\nDz2Eu+++G2vXrg2yQafDc6AxPP744/jUpz4Fx3HQ0dERlEy/+OKLGBgYgK7ruPfee3HVVVdV7Mf1\nrw8GwhrUT3/6U3z/+9/Hvn374Lou1q5di+uvvx433HADZJkVsYvBs88+ixtvvPGk2+3du3fKZbNd\n34Xej2orB0JO5uKLL8bDDz885XKeA2e23t5e/OhHP8KOHTvw2muvYWRkBEIItLe3Y/PmzXjXu941\n5YXPRFz/xnWyQBjA9W8Evb29+O53v4tdu3bh6NGjGB0dhSRJWLZsGS688EK8733vqyiLnIznQOP4\n+c9/jocffhgvvfQSisUiuru78ba3vQ233HJL1d5hANe/0Vx77bXYt28fPvGJT+DDH/7wjPbhOdAY\ndu/eje985zvYsWMHBgYGAHil05dccgk+9KEP1ewbzPWfOwbCiIiIiIiIiIhoSTgzw3dERERERERE\nRESniIEwIiIiIiIiIiJaEhgIIyIiIiIiIiKiJYGBMCIiIiIiIiIiWhIYCCMiIiIiIiIioiWBgTAi\nIiIiIiIiIloSGAgjIiIiIiIiIqIlgYEwIiIiIiIiIiJaEhgIIyIiIiIiIiKiJYGBMCIiIiIiIiIi\nWhIYCCMiIiIiIiIioiWBgTAiIiIiIiIiIloSGAgjIiIiIiIiIqIlgYEwIiIiIiIiIiJaEhgIIyIi\nIiIiIiKiJYGBMCIiIiIiIiIiWhIYCCMiIiIiIiIioiXh/wPW26OWTXf2fAAAAABJRU5ErkJggg==\n", "text/plain": [ "\u003cFigure size 1000x1000 with 1 Axes\u003e" ] }, "metadata": { "image/png": { "height": 593, "width": 609 }, "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Training example\n", "\n", "# Shared hyper-parameters\n", "hidden_size = 16\n", "phi_size = 3\n", "x1_dim, x2_dim = 28, 4\n", "batch_size = 8 * 8\n", "learning_rate = 4e-3\n", "num_training_iterations = int(8e3)\n", "rng_key = random.PRNGKey(14)\n", "num_runs = 10\n", "\n", "\n", "def execute(rng_keys, loss):\n", " stats = []\n", " for run_index, rng_key in enumerate(rng_keys):\n", " logging_prefix = 'Executing run {}/{}'.format(run_index+1, len(rng_keys))\n", " generator = gen_dynamics(rng_key, x_dims=(x1_dim, x2_dim))\n", " stats.append(train(\n", " rng_key,\n", " loss,\n", " data_generator=generator,\n", " batch_size=batch_size,\n", " learning_rate=learning_rate,\n", " num_training_iterations=num_training_iterations,\n", " report_interval=100,\n", " mv_avg_decay=0.99,\n", " logging_prefix=logging_prefix))\n", " return stats\n", "\n", "\n", "def process(stats, index, *args, **kwargs):\n", " it = stats[0][-1]\n", " stats = [stat[index] for stat in stats]\n", " stats = np.stack(stats)\n", " mean = np.mean(stats, axis=0)\n", " std = np.std(stats, axis=0)\n", " plt.plot(it, mean, **kwargs)\n", " plt.fill_between(it, mean-std, mean+std, alpha=0.2, *args, **kwargs)\n", "\n", "\n", "print('Running on {} devices of type {}'.format(\n", " jax.local_device_count(), jax.devices()[0]))\n", "print('Num runs: {} -- Batch size: {}'.format(num_runs, batch_size))\n", "\n", "rng_keys = random.split(rng_key, num_runs)\n", "\n", "print('Training vnet...')\n", "vnet_loss_fn = vnet_loss(hidden_size=hidden_size, phi_size=phi_size)\n", "vnet_stats = execute(rng_keys, vnet_loss_fn)\n", "\n", "print('Training himo...')\n", "himo_loss_fn = vnet_himo_loss(hidden_size=hidden_size, phi_size=phi_size)\n", "himo_stats = execute(rng_keys, himo_loss_fn)\n", "\n", "print('Training model-based vnet...')\n", "vnet_model_loss_fn = vnet_model_loss(hidden_size=hidden_size)\n", "vnet_model_stats = execute(rng_keys, vnet_model_loss_fn)\n", "\n", "print('Done!')\n", "\n", "\n", "plt.figure(figsize=(10, 10))\n", "process(vnet_stats, 0, color='g')\n", "process(himo_stats, 0, color='b')\n", "process(himo_stats, 1, color='b', linestyle='--')\n", "process(vnet_model_stats, 0, color='r')\n", "plt.ylim([0, .3])\n", "plt.legend([\n", " 'Model-free value',\n", " 'HiMo value $v^m$',\n", " 'HiMo hindsight value $v^+$',\n", " 'Model-based value',\n", "])\n", "plt.title('Value Loss');" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: iodine/Eval.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**Copyright 2019 Deepmind Technologies Limited. All Rights Reserved.**\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " http://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License.\n", "\n", "# IODINE Interactive Evaluation\n", "This notebook can load checkpoints and run the model.\n", "You need to download the data before you can run this (see README.md).\n", "It includes several plots to inspect the decomposition, iterations, and inputs to the refinement network, as well as prior samples, latent traversals and code to run on a custom example.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pathlib\n", "from PIL import Image\n", "import matplotlib.pyplot as plt\n", "import warnings\n", "from absl import logging\n", "\n", "# Ignore all tensorflow deprecation warnings \n", "logging._warn_preinit_stderr = 0\n", "warnings.filterwarnings('ignore', module='.*tensorflow.*')\n", "import tensorflow.compat.v1 as tf\n", "tf.logging.set_verbosity(tf.logging.ERROR)\n", "\n", "import sonnet as snt\n", "from shapeguard import ShapeGuard\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "from main import ex, load_checkpoint, build, get_train_step\n", "from iodine.modules import plotting, utils\n", "\n", "sns.set_style('whitegrid')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Adjust this to load checkpoints for different datasets\n", "configuration = 'clevr6'\n", "#configuration = 'multi_dsprites'\n", "#configuration = 'tetrominoes'\n", "\n", "# Configuration values to adjust\n", "config_updates = {\n", " 'batch_size':1, # to speed up interactive evaluation\n", " 'data.shuffle_buffer': None, # to speed up interactive evaluation\n", " # 'num_components':4, # uncomment to change the number of components\n", " # 'num_iters': 5, # uncomment to change the number of iterations\n", "}" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Successfully restored Checkpoint \"checkpoints/clevr6/model.ckpt\"\n", "Variable Shape Type Collections Device\n", "encoder_net/cnn/conv_net_2d/conv_2d_0/b 64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_0/w 3x3x18x64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_1/b 64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_1/w 3x3x64x64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_2/b 64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_2/w 3x3x64x64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_3/b 64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/conv_net_2d/conv_2d_3/w 3x3x64x64 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/mlp/linear_0/b 256 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/mlp/linear_0/w 64x256 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/mlp/linear_1/b 256 float32 global_variables, trainable_variables (legacy)\n", "encoder_net/cnn/mlp/linear_1/w 256x256 float32 global_variables, trainable_variables (legacy)\n", "factor_evaluator/repres_content/position_mean_var/M2 3 float32 global_variables (legacy)\n", "factor_evaluator/repres_content/position_mean_var/mean 3 float32 global_variables (legacy)\n", "factor_evaluator/repres_content/position_mean_var/total 3 float32 global_variables (legacy)\n", "factor_evaluator/repres_content/predict_latents/b 19 float32 global_variables, trainable_variables (legacy)\n", "factor_evaluator/repres_content/predict_latents/w 64x19 float32 global_variables, trainable_variables (legacy)\n", "global_step int64 global_step, global_variables (legacy)\n", "model/iodine/initial_sample_distribution 128 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_counterfactual/beta 1 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_counterfactual/gamma 1 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_dcomponents/beta 3 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_dcomponents/gamma 3 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_dmask/beta 1 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_dmask/gamma 1 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_dzp/beta 128 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_dzp/gamma 128 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_log_prob/beta 1 float32 global_variables, trainable_variables (legacy)\n", "model/iodine/preprocess/layer_norm_log_prob/gamma 1 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_0/b 64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_0/w 3x3x67x64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_1/b 64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_1/w 3x3x64x64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_2/b 64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_2/w 3x3x64x64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_3/b 64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_3/w 3x3x64x64 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_4/b 4 float32 global_variables, trainable_variables (legacy)\n", "pixel_decoder/broadcast_conv/conv_net_2d/conv_2d_4/w 3x3x64x4 float32 global_variables, trainable_variables (legacy)\n", "recurrent_net/lstm/lstm/b_gates 1024 float32 global_variables, trainable_variables (legacy)\n", "recurrent_net/lstm/lstm/w_gates 769x1024 float32 global_variables, trainable_variables (legacy)\n", "refinement_head/residual_head/linear/b 128 float32 global_variables, trainable_variables (legacy)\n", "refinement_head/residual_head/linear/w 256x128 float32 global_variables, trainable_variables (legacy)\n" ] } ], "source": [ "sess = tf.InteractiveSession()\n", "\n", "# create a sacred run\n", "r = ex._create_run(named_configs=[configuration], config_updates=config_updates, options={'--force': True, '--unobserved': True})\n", "\n", "# restore the checkpoint and get the model, data, etc.\n", "restored = load_checkpoint(session=sess)\n", "model = restored[\"model\"]\n", "info = restored[\"info\"]\n", "dataset = restored[\"dataset\"]\n", "inputs = restored[\"inputs\"]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# run evaluation and get the info dict\n", "rinfo = sess.run(info)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Decomposition\n", "Let's plot the decomposition at the last timestep.\n", "Set `mask_components=False` to see the full reconstruction for each component" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plotting.example_plot(rinfo, t=-1, mask_components=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Iterations\n", "This plots the decompositions for all timesteps and an additional row with the ground truth segmentation, as well as the predicted mask-logits." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plotting.iterations_plot(rinfo, mask_components=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot error and metrics over iterations to see how they improve over the refinement steps:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Errors and metrics over iterations\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "b = 0 # sample index inside batch\n", "\n", "fig, axes = plt.subplots(nrows=2, ncols=3, sharex=True, figsize=(12, 6))\n", "\n", "axes[0, 0].plot(rinfo[\"losses\"][\"recons\"][b], color='r')\n", "axes[0, 0].set_title(\"Reconstruction Loss\")\n", "\n", "axes[0, 1].plot(rinfo[\"metrics\"][\"mse\"][b], color='orange')\n", "axes[0, 1].set_title(\"MSE\")\n", "\n", "# Plot total KL and faintly also the individual object KLs\n", "axes[0, 2].plot(rinfo[\"losses\"][\"kl\"][b].sum(axis=1), color='purple')\n", "axes[0, 2].plot(rinfo[\"losses\"][\"kl\"][b], color='purple', alpha=0.2)\n", "axes[0, 2].set_title(\"KL\")\n", "\n", "axes[1, 0].plot(rinfo[\"metrics\"][\"ari\"][b])\n", "axes[1, 0].set_title(\"ARI\")\n", "axes[1, 0].set_ylim((0, 1))\n", "axes[1, 0].set_xlabel('Iteration')\n", "\n", "axes[1, 1].plot(rinfo[\"metrics\"][\"ari_nobg\"][b])\n", "axes[1, 1].set_title(\"ARI (ignoring background)\")\n", "axes[1, 1].set_ylim((0, 1))\n", "axes[1, 1].set_xlabel('Iteration')\n", "\n", "axes[1, 2].plot(rinfo[\"losses\"][\"factor\"], color='g')\n", "axes[1, 2].set_title(\"Factor Regression Loss\")\n", "axes[1, 2].set_xlabel('Iteration')\n", "\n", "print(\"Errors and metrics over iterations\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Inputs to the Refinement Network\n", "This plots all the spatial inputs that are being fed to the refinement network for a given timestep." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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+we8913gF4BXjjzmlcBPFz//CvDFzrmFnQ852QWCRURERETkTLrzBbe+/fvf97obp3nspz71qQ3n3AcqN93rvb+3cv0O4C8r1x8CPm/kZfqP8d6nzrkrwA3AEzNv/BgqrEREREREZOXuueeeV8zy+C/7si9b1qYsxOILqzjr/DuyVu5WfnV138xzX8k6iXyr8qux+K1rM7RGZnRfVHa1Fu9WflJ6GHhW5fqdxW3jHvOQc64BXCSfxGIhFl5YGTPP1HNyUuJIIaz86qWan7KrF3326k351Zu+O+tLn716G81vwf4QeJFz7gHy+RzPAV8y8phgVRMZAAAgAElEQVS3Al8HvBf4SuD/8d4vbB9SV0AREREREam76uISZQEXnXP/BviA9/6twE8CP+Ocux94Cnj1IjfAjF0j6DgvqDMHtaIzP/Wms671pc9evSm/etN3Z33ps1dvo/l99M/+c0zD+ameu9e76+1Hjclyzv0N4Hu8919aXH89gPf+++ff4tmoxUpERERERFYuDds8/+bXT/XYP3n4FyfNHjjNrIBLtfTCKnv07mW/hcwgue3+mR6v/NbLLPkpu/Wiz169Kb9603dnfemzV2+T8otEOnGqNaq4fPnyjROmWz9xarESEREREZGVi0Avhqkee+nSpSe89y854iHTzAq4VCqsRERERERk5UKM7MdsUS/3h8DznHPPIS+oXg18zaJefBp2lW8mIiIiIiICRYsVcarLJN77FPjnwNuBjwC/5L3/0HJ/g2FqsRIRERERkZULwP4Cl7by3t8H3LewF5yRCisREREREVm5fIzVMtcMXi0VViIiIiIisnIRQy+enpFJKqxERERERGTlIob9OF05UoeipQ7bKCIiIiIip0yI0I3JVI+tQ9FSh20UEREREZFTJm+xak712K0lb8siqLASEREREZGVixh6TNdiVQcqrEREREREZOUChv0wXYtVHaiwEhERERGRlctnBTw95cjKfpMsBhIz/XSK/+STX0DTBDaTHoF8fvteyJsKmzZjJ22RhoR2kpIV898nJrKZ9ADYy5rsZU3+z8/4Ta5L6tArc70pv/pSdvWm/OpN+dWXsqs35VcPMU4/xqoOVlZYzbJzv2sv4XPOP8Ttzae5lOxye+MKTQIbJgD5Ks3daPl02GI/NOmR0IsNroU2T6XbXMk22c1a7IYW3/v4F/Aj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56435Vdfyq7elF+9Kb/6Unb1pvxqJkZMOD3dNTUroIiIiIiInAhziiavUGElIiIiIiKrFwGtYyUiIiIiIjI/EyMmy056MxZGhZWIiIiIiJwMtViJiIiIiIgcQ4yYVC1WIiIiIiIi84uAZgUUERERERE5jghpetIbsTAqrEREREREZPUikKnFSkRERERE5BiiugKKiIiIiIgcS1RXQBERERERkeNRV0AREREREZFjipGoFisREREREZFjyrSO1dSS2+5f9lvIEim/+lJ29ab86k351ZeyqzflVy8xRmJPLVYiIiIiIiLzi5GoFisREREREZH53fmCW9/+/e/9zhunfPgTS92YBTAxxsW+oDGLfUFZqhijqV5XfvVSzU/Z1Ys+e/Wm/OpN3531pc9evY3md9osvLASERERERE5a+xJb4CIiIiIiEjdLX6MlZpk62W0SfZ+5Vcrdw/y+x2ngd4AACAASURBVDKUXZ3cx0h3Ft6k/Gok8q3D+b0J5Vcj8VsZfHcaZVcn90WGj1vM/cqvTuLdp7oroFqsREREREREjkmzAoqIiIiIyMp99M9+Mqbh/FSP3es99+333HPPK5a8SceiwkpERERERFauF85z103fPdVjP/zIr0w7LfuJWXphddcbf3jZbyEzeOC13zXT4+96y48saUtkHg+88junfuyf/4iyWyd/5Tunzw7grh/uLWlLZB4PfFdzpsc/p/vGJW2JzOPjrddO/dg/f6O+O9fJX3ntjN+db3zLkrZE5vHAa1955P2RSCemK9qa5VOLlYiIiIiIrFwk0iOc9GYsjAorERERERFZuRBhPy6msHLOPQt4M3ALEIF7vfc/upAXn5JmBRQRERERkZWLQC9Od5lCCnyn9/6FwMuAb3HOvXCJm3+AWqxERERERGTl8sJqMUtbee8fBR4tfr7qnPsIcAfw4YW8wRRUWImIiIiIyMoFDPsxmeqxly9fvtE594HKTfd67+8d91jn3LOBFwN/cOyNnIEKKxERERERWbkIdJmusLp06dIT3vuXTHqcc24b+FXgO7z3zxxvC2ejwkpE5BSJBkwc/Fwy0/VPFxERWZkQDZ0wXTmyNcVjnHNN8qLqZ733v3acbZuHCisRkVNoXJf10dtUbImIyEmKGHpTtlhN4pwzwE8CH/Hen8higiqsREROmdGWqmjGF1qTXkOFl4iILFPE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T6x+FbeMwQoAALjtDgdnrHZ57MpbLnoJLtBjr3nz6pfATXrRm7Vr9thb7lz9EjiHf37WldUvgZv0oit+dzZ77MprVr8E9jgccviKM1YAAADn4owVAADAOdz7bff82S89+pN3n/HH/+NCX8wtYLACAABuu/vvv//7Vr+GW+nkcDisfg0AAADVbvkZq5OTE5NakcPhcHLjY/263NhPuy7ee9306+Z3Zy/vvW5P7fdMc2n1CwAAAGhnsAIAADgngxUAAMA5XfhdAZ91+XIuJU/6744jj8/63NPtZxrWf/aXv3yk2JPp9/Raf08/7Z5e63vvda+vX/f6fnf2ru+9173+3n7t7rjwFS5duvAluED69dKum37d9OulXTf9WMhgxTb9emnXTb9u+vXSrpt+LGSwYpt+vbTrpl83/Xpp100/Frr4weqOi1+CC6RfL+266ddNv17addOPhZyxYpt+vbTrpl83/Xpp100/FjJYsU2/Xtp106+bfr2066YfCxms2KZfL+266ddNv17addOPhVxjxTb9emnXTb9u+vXSrpt+LOSMFdv066VdN/266ddLu276sZDBim369dKum37d9OulXTf9WMhgxTb9emnXTb9u+vXSrpt+LGSwYpt+vbTrpl83/Xpp100/FnLzCrbp10u7bvp106+Xdt30YyFnrNimXy/tuunXTb9e2nXTj4UMVmzTr5d23fTrpl8v7brpx0IGK7bp10u7bvp106+Xdt30YyGDFdv066VdN/266ddLu276sZCbV7BNv17addOvm369tOumHws5Y8U2/Xpp102/bvr10q6bfixksGKbfr2066ZfN/16addNPxYyWLFNv17addOvm369tOumHwu5xopt+vXSrpt+3fTrpV03/VjopnbfGONSkq+Zc37h6A/75KCbfr2066ZfN/16addNPxY682A1xnh/kh9PcjXJXyW5a4zx63POd24eaIN306+Xdt3066ZfL+266cdCe85Y3Tfn/MIY4/VJHknyU0k+kcRg9UymXy/tuunXTb9e2nXTj4X2DFZ3jjHuTPLaJL855/zKGONw9CgbvJt+vbTrpl83/Xpp100/FtozWP12kn9J8ndJPjLG+JYkx6+xchFhN/16addNv2769dKum34sdObdN+d8d5J33/DUp8cYrzh6oE8OuunXS7tu+nXTr5d23fRjoT03r/iGJL+Y5PlzzleNMe5L8p1Jfm/zQBu8m369tOumXzf9emnXTT8W2nO+9D1JHkry9tPH/5Tkj2KwembTr5d23fTrpl8v7brpx0J7Bqu755x/PMZ4a5LMOZ8YY1w9voLvulbTr5d23fTrpl8v7brpx0J7dt+Xxhhfn+SQJGOMlyX5/NGjfHLQTb9e2nXTr5t+vbTrph8L7RmsriT5UJIXjjE+muR5SR48epQN3k2/Xtp106+bfr2066YfC+0ZrP4xyXcnGUlOkswkx3evDd5Nv17addOvm369tOumHwvtGaw+Pud8aa4NWEmSMcYnk7x08ygbvJt+vbTrpl83/Xpp100/Fjo6WI0x7knyTUm+eozxklw7W5UkdyV59vEVXERYTb9e2nXTr5t+vbTrph8LnWX3fW+SNya5N8mv3vD8F5O87ejRPjnopl8v7brp102/Xtp104+Fjg5Wc873JnnvGOMH55wP717BBu+mXy/tuunXTb9e2nXTj4XOfL50zvnwGOP7k3x7kss3PP+OzQNt8G769dKum37d9OulXTf9WOjMg9UY47dy7ZqqVyT53SQ/lOTR4yv4rms1/Xpp102/bvr10q6bfiy0Z/e9fM754jHG3885f26M8a4kjxw9yicH3fTrpV03/brp10u7bvqx0J7B6r9O//zPMcbzkzye5BuPHmWDd9Ovl3bd9OumXy/tuunHQnsGqw+PMZ6T5J1JPpnkkGtfCdxmg3fTr5d23fTrpl8v7brpx0J7bl7x86d/fXiM8eEkl+ecnz96oA3eTb9e2nXTr5t+vbTrph8L7brCb4zx8iTfev24MUbmnO/bXsFFhNX066VdN/266ddLu276sdCeuwL+fpIXJvnbJFdPnz4k2R6sfHLQTb9e2nXTr5t+vbTrph8L7RnrvyPJfXPOw64VbPBu+vXSrpt+3fTrpV03/Vhoz2D1D0nuSfLvu1awwbvp10u7bvp106+Xdt30Y6E9g9XdST41xng0yX9ff3LO+ertFXzXtZp+vbTrpl83/Xpp100/Ftqz+372plbwyUE3/Xpp102/bvr10q6bfiy053brf35TK9jg3fTrpV03/brp10u7bvqx0NHBaozxl3POB8YYX8y1uwBed5LkMOe8a/MfsMG76ddLu276ddOvl3bd9GOho4PVnPOB0z+/9qZWsMG76ddLu276ddOvl3bd9GOhs5yxeu7W/59zfnZ7BRcRVtOvl3bd9OumXy/tuunHQmfZfZ/Ita8AniT55iSfO/37c5L8a5IXbB7tk4Nu+vXSrpt+3fTrpV03/VjoLF8FfEGSjDF+J8kH55x/evr4VUlee3QFG7ybfr2066ZfN/16addNPxbac770ZXPOH7v+YM75yBjjl48eZYN306+Xdt3066ZfL+266cdCewarz4wxfjrJH5w+fn2Szxw9ygbvpl8v7brp102/Xtp104+F9gxWr0vyM0k+mGvXXH3k9LkjK7iIsJp+vbTrpl83/Xpp100/FjrT7htjfFWSt80537R7BZ8cdNOvl3bd9OumXy/tuunHQmcarOacV8cYD9zUCjZ4N/16addNv2769dKum34stOd86d+MMT6U5ANJvnT9yTnnn2weZYN306+Xdt3066ZfL+266cdCewary0keT/LKG547JNkerHzXtZt+vbTrpl83/Xpp100/Fjrz7ptz/shNreCTg2769dKum37d9OulXTf9WOjMg9UY494kv5Hku06f+oskb5pz/tvmgTZ4N/16addNv2769dKum34stOd86UNJ3p/kwdPHbzh97ns2j7LBu+nXS7tu+nXTr5d23fRjoT2D1fPmnA/d8Pg9Y4yfOHqUDd5Nv17addOvm369tOumHwvtGaweH2O8Ickfnj5+Xa7dzOLICi4irKZfL+266ddNv17addOPhfbsvh/NtWusfu308UeTHL+hhU8OuunXS7tu+nXTr5d23fRjoT13Bfx0klfvXsEG76ZfL+266ddNv17addOPhdwVkG369dKum37d9OulXTf9WOji7wrou67d9OulXTf9uunXS7tu+rGQuwKyTb9e2nXTr5t+vbTrph8LXfxdAW3wbvr10q6bft3066VdN/1Y6GbvCnhI8rEkbzx6lA3eTb9e2nXTr5t+vbTrph8L7Rms3pHkh+ecn0uSMcZzk/xKrg1c/zcbvJt+vbTrpl83/Xpp100/FtozWL34+lCVJHPOz44xXnJ8BRcRVtOvl3bd9OumXy/tuunHQnt236Uxxtc95YzV8eN9ctBNv17addOvm369tOumHwvtGazeleTjY4wPnD5+MMkvHD3KBu+mXy/tuunXTb9e2nXTj4XOPFjNOd83xvjrJK88feoH5pyfOnqgDd5Nv17addOvm369tOumHwvt+iLq6SB1fJh60gq+61pNv17addOvm369tOumHwtd/O7zyUE3/Xpp102/bvr10q6bfixksGKbfr2066ZfN/16addNPxYyWLFNv17addOvm369tOumHwsZrNimXy/tuunXTb9e2nXTj4UufrByEWE3/Xpp102/bvr10q6bfizkjBXb9OulXTf9uunXS7tu+rGQwYpt+vXSrpt+3fTrpV03/VjIYMU2/Xpp102/bvr10q6bfixksGKbfr2066ZfN/16addNPxZy8wq26ddLu276ddOvl3bd9GMhZ6zYpl8v7brp102/Xtp104+FDFZs06+Xdt3066ZfL+266cdCBiu26ddLu276ddOvl3bd9GMh11ixTb9e2nXTr5t+vbTrph8LOWPFNv16addNv2769dKum34sZLBim369tOumXzf9emnXTT8WMlixTb9e2nXTr5t+vbTrph8LGazYpl8v7brp102/Xtp104+FTg6Hw639B09Obu0/yIU6HA4nNz7Wr8uN/bTr4r3XTb9ufnf28t7r9tR+zzTGegAAgHMyWAEAAJyTwQoAAOCcbvk1VgAAAP/fOGMFAABwTgYrAACAczJYAQAAnJPBCgAA4Jz+F4NEn6pxq51HAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plotting.inputs_plot(rinfo, t=-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Latent Traversal" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "sg = ShapeGuard()\n", "_ = sg.guard(rinfo['latent']['z'], \"B, T, K, Z\")\n", "z_placeholder = tf.placeholder(tf.float32, shape=sg[\"B, K, Z\"])\n", "params, out_dist = model.decode(z_placeholder)\n", "img = out_dist.mean()\n", "highest_kl_obj_idx = rinfo['losses']['kl'][b, -1].argmax()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABAUAAAN0CAYAAADMIJGeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9SZMkR5ag9z1VM/dYcgESS6FQBVR3dc9kzxymOdJchMImeeCBwwNleOCdwuk/wRtPvPHXDEV44YEiFOkDZU4jI71kd1dVVxVQSwK5RkaEu5mpvjnoYmru5h4RmRGJDKQ+IMPdbdHlffpU1Z7pIqpKlSpVqlSpUqVKlSpVqlSpUuX9E/NdJ6BKlSpVqlSpUqVKlSpVqlSp8t1IdQpUqVKlSpUqVapUqVKlSpUq76lUp0CVKlWqVKlSpUqVKlWqVKnynkp1ClSpUqVKlSpVqlSpUqVKlSrvqVSnQJUqVapUqVKlSpUqVapUqfKeSnUKVKlSpUqVKlWqVKlSpUqVKu+pNDcR6F/+5V/qyckJACJyjSHPbJ+oe88ie85VARA++eTjb//sz/7sk3Tku+I3d0Xld5G84/wkHKz85uXOnbv8+Z//VxnSzbGDi2DNsgPqrrW75G3aHlR+1y2V3+2Wyu82y9tt+2AfsNpvuaq8bduDK/Oj2t5u2eaX5EacAicnJ/xf//bfolxUOHTygWwfKmVXSOW1u6ObO7GjxFz87PMWRadxv1ZCdPpNwRiDqiLG8Bf/5t/8srz6JvhdIpRw3TXz02myvgO5YX5i+Iu/+H7z+27l+vhp8TPx+9f/+n+aXPnusbtMrbs/ad+d3Cy722F7V+T3Pa0730d+F1z5FuR28ttMauWXf75WGJNbb7jtS4cv80j6/WSn299eOxG6FYYxgipv+NyQApTx8w2e3kN85ZEi3L13zR/6Lu0t/31NW7uIuRiBHfyS3IhTAAGMIBdmTCYfuw5dMpQLz20nZ8edM4cvTs92i3JdhUtiYG9g21v3qiqqCt7PR/g94Sfbh3bILeXH+8HvYrmt/DbO3HZ2r5WO28ru/bC9WnfuTNk7ze8ycWyFXvltHb5EKBeeq/yKQzfY9m0evkQoF567XexSjHot7LYOKdfw3FCmM7G8Sq05H9L02Hh0Pjm7YV0tJdfJT8a/oq8RXpFr0Xk/yz5+UW7GKaCgzr8RaEjK2Xnmskl5S1LWSjoeeROjLMMVEC08SVcKQqaVXFmO50pO5Tceqfx2nbmUVH7s5bclld145B1nV20vSeW3FW3+M3vmUlL5UfldSm4nvy2p7MYj7zi7antJbpBfQqj6GmHJFoaS2Sy/KDfjFLgm0fxnFElnZPvouyNCmfDpr9eQ1zXq3QGC3rzOKr8old9blsqvsotyC9nFWCo/qPzeulR+MZbKD66XX1Jqbft2SGVXRlVK5fcm4RRhXCKwd9IpkOejzJUO2OdKeodE5j5IhK4EOupj6rV7/aJS6vcmtFj5bQZV+b19uR38rlsqu82gqu29fan8Kr8UVOX39uUd5SeQ3z3Xtm+H3A521fZ2yTvIT6KDQsmein1avDmnwI5YZw/LjrOvUQi2b9n011wU3iWVrnt/7hHJkCZ3X7HAbC3kofA6g0x2R3CFw5Vf5bfzlsrvylLZ7ZBbwA4qv51S+V0YbeX35lL57ZBbwK+y2yG3gB3cUn5XyP87x+/y9C67I8QNjhSQmJDtYzcS096CdJV4L3ntXDnekstCv4YCIzCZAXQZY5dNw9kIkMqv8rtYKj/egN+OwLZOV3Y7A6u2tyf8ym/+nspv/12V32Wk8uMN+O0IbOt0ZbczsGp7e8K/bLxXSN87x6+gd1kHz15+N+gUuBjYxvVCHN4ge+/Yn52rx3u9opOvOgt9z72TwnCJe/d5iTaNfXKbBq+R6s5rKr/Kb1e4lV+65c357bi1srsF7KrtlVL5VX5JKr+3L7eP345bK7tbwO5t296F4Vwx3uuVN+M3NYU34LeDXQg/3HERP7ghp4DMfJscka0j4dtltDjJuE4+3qRQzN11aW/NXCizYEOI8/XhXGG4wGs0Y0iXmXOSh5HsUFXlR+W3M/LKb7zl+vlVdtxadtPDld9ciJVf5Rduqfy2UzHK+8jvRtmVcVd2t872JF84fQDfEfil5a3x28lje5eAq/K7iJ1E/eTrLlDVzYwUkFEzkkFeHloqfHOZVS0L0QWF9A0Ky+vduekxmg/x8oVg3uD3lYG5eSO7Cs1Ob1HlV/ntiLfyu2F+ld3tZZcSWPlVfpVf5Vf5vTtt3ySkym7rjmuzvZTWm+JXhHeb+G3xGC+++PorsFPYNQ4kXXfRmIwbX1Ng+/uOq0W2itBWBbz3frKCtwp4Kp+zYW9euCk7aOwx3vR1PtVzBWHeiHfFMU37/gID2/pIw4BUdY9mK7/K7yr3U/ntkKvzq+xuL7uYptnvu+Oo/C66Llxb+VV+ld/3mV9ld3vZbcd54RVvyA8B+Z7x2+ayPZpg5+gAIT/0z11zGX43vKbADrOXrSs3vu0+sju8OQWHk+n068mOG3fC35TLzhm56Lpw8o0KTLoj3bAnA5VfksrvIqn8NkK6Cr+ZTFR2Sd5xdruuCRfuuH/ryh3BVX6VX+W3dUfl9/3hV9u+PfKOs9t1Tbhwx/1bV+4I7v3mdxnnzdQBcvE1E7YXZODmnALJA7SjgIzXAUj2oFyV4YVeJQHJNZBu3PM6MW7KqOxdc342Ie/25O0y4HAetMjFjtSkxUD2JlmDEnSn/VZ+RfiV30X377mz8pu7KPObbRIruxz+u8yu2t4t57fjkspvDP+d5lftb/x2C/nVti9++87ZacSyP0/jQoPviu3tueu28Zs9d8mU7OBROgLy1IEL+MFNTh9Inpry0Mb5yYl9jfTk5ssVtssenyblMgVlszCM9+y3g2S4wm6PUQK3cUYL09m6d+ol2jbGGS+SlPHstO7Kb+a+yq/yu15+M1LZzd737rGrtrcdzu77Kr/Kr/KbO3dx2EG+b/xmpLKbve9m2c0vdrfJTqrthW83wW8nn4tHDpQLaO6yRy28Dhc5VG5wTYGUgIsVLql0EBKcvE0XuU4uytzW+Ut4SfadC2m6bGGY3LXTcMvzuwxz/yIgFxWa+WFCYW7JxXmo/Cq/3WGHuy99vvLL9yZ++6Sye7fZVdu7SCq/3WGHuy99vvLL91Z+3w9++6Sye9fYjWFW29ufvuKu1+Cn8f9dfPZN+yjPbTgIkmPoEvxucE0B2cdtvEqiq0hBjGCNwasiCl49g3NAqEiMGBAwIkj8V0ajWdFK2CvSIBPFkBXzenniEnkqZbcXL52HOUh7CgzsMPire5b2GVflF1NU+VH5bR6/Tn7bUtnFFL3z7Krt7ZbKr/KbO175vY58P/ltS2UXU/TOsRvP3yrbk3eN3z5nwdyogYv5zI8U2OMguCBDNzh9ICVgjzYnpVoRsXivDMPAq1ennLx6xcuXz3GDC96QCNYYEwuLIMZgxGCMoW2XNE1D27YcHCw4ODhgsVxgjCW7nybKeb1CcrHsMs6NazTNv9m8d97gdxck2F0Idnn8Lkhf5Vf5VX6T4zfBb1Yqu1vBrtrebMZi9iq/ym88XvlR+dW27wJ5W+xGJ8H33fYkuQzeGX7MMAr3zjlz5o/BPLfptdsjCPRifryF6QNzEoYwJM0I6j1ewahydn7Ob3/zG548eYJXNxbSufFGksqgxP+DF8lYQ2Mbmqbhh5/9iA8/ekBrTTQkmRaKeN/1yAhh/xCNaNg5/eX9uw37dQvHLmMPC5RcPe+VX+UXk1L5vTG/q0ll9y6xq7Y3SuVX+VV+lV9t+64ub5tdzP1F7FQZtXd7bS/FfdP8FIEL+O2e7nFZh8DlHQdT50fiLhfyu9HdB1JB2vLMFGkSwBthdXrOV19/xbMnT3DOxfsMYmQsnPGPFuHkwsEYj/eeoRtAhEd/9zf8wR/8IV988SUGRYzZWSDe3IMUC8feghHzoJtYNo1Vc5Dj/JIxfMpjms4k4Ju2FI7P29d8Qiu//ddVflR+18Jv5lhlt/e6d4ddtb1pxiq/ym8Mq/Kr/Grbdxm5fnZbnOaOXcROBKHa3sVS6G5nUOHkVJfpvqlzbfbYpi1O2IVj28633SM/9jlEbnz3gVmFl3BU8ao8e/qMkxcv8N7HexRVD16ysiXfPoYpKawN4KPXRnKhkjj8ZCsNc+m6ULYtZf88oIvCkY1jm/kej00NXSbXXM4LuLf0kgKo/K4STuVX+b0Gv7m0VnZXDKfaXuVX+VV+KTmV39XC+Y74zaW1srtiOPPsNvVdbW83v3Dqu+A3PzJklh8jq+nvcOyyIwguk88bcgpIBrZXFLyC6weev3hK1/eoBo+PqscYgzFRSQoqo/KTJ6osGKUnCQH1nnbRhJ8y4ym5kjFv53HryGxQ84Vo9OSUBX009K2CMTOPaPOaiz1OxXXxinkvWeU3yeTmkcqv8uN6+G3no7KbZHLzyDvErtpecaTyq/xi2JVf5TeNa+O6fEVt+1K6ZjO5eeQ7Y1cc43toe2OBvIS8Hr/t0RyX2cVh/rr9v9PoitepO4PciFMgwcs/NiWNaRBQVdbrjrPTM/p+QETwLiwwERZKsDkciZmPRSJ8imSo6n28VHJhaZp2krB0PJaffP31yXxhKCVFF2Bqvk2LAjcWHpjOI9o02vEaioIxW0FM7kuXz6ev8ktZrfxSOJXfeOz6+G2nrbJLWX3X2VXb28jcRlYrvxRO5Tceq/wqv9r2bWVuI6tvm11xz1w4RfzfS9u7FpQjw01+m+q42CFwlTglf08P/lN7vFzdmeQGFxrc9FSMopGmSFh4YrXqWK07vPMoivqATwNrjAgqoSAYDNF9FHwiPqEOBc0YizEGVcVaEzxQzoNG0xGZGklO7VWNXHcclcnp+SDHWDV/1TkzC4V+YtjlVbpxzbwRp8IypmeuMt+Ou/Kr/KDyu1F+s1LZxej23PsOsKu2N5M3Kr/Kj8qv8kvX1bZvmovdeeM12BW6z/I67DbviVdqiqOI/722vV0y6nhT29si7CoHQdk6nt4IbH6UwC4ur1N33qBTwJiw6uNW5DETyXPRNA2Dc2HVSNugXvHe4aPHaLVaZQ9SvJ22bWmaBmstTWNpm5bGWsAjRnDe471ijMQ9L/ugDjGxgIQ/ybBCJVZ4n4pk90NHrwNn/Rmvupd02gHK/fYDjhbHLJslgsWKJXmypvnehl+uUqnRAtKxLZlU2NFwSQVhrEi0+DKtpEPYs57FPatQVn5FhrdUUPlVftfFb1squyLDWyp4l9hV26v8Kr/Kr/Krbd802W+LHTA7qoCSQ7W9S/GTIuH9sL4Uv8Y0Jb1JhjVFMndWixPp9sm1aU2HcrFAimPhYFqH4br4wQ2uKTB6ZrbjL70bAjTWcnR8HIaBqOK9D4XDe6wxDM5NCohtbNiDUgTnFNUBr4oRjzhhcD4Cb2J8wTsV1UfWcioQKb3JBSPBqJ0f+Pr0a55233Dev0Jx8Tbh8eprWrvkXnufDxYfcWdxj0N7CBiaZBhzmY9HEmedFMVNGeGlwrBZeKeFYTuUcDSemyk48xFXfhNdbGun8qv88iVvxG8udZXdfOZ5x9hV26v8Kr/Kr/KbDaW2fW+HXYpeJzqN2k/HRPey2yT43tleTOtr8xNDa8rH6Rhv+db/Iin0lVS8OTKArWPXWXcGuRmngMShH8FXUSR0rFjSGVWlsZamCR4XEYn7V2qeK2KHIS5CEQuHNaFwRO+QGwa6zqF+oGlsSICYXCDGlS3HdKgmg5Kw/QVK5x2Cp3MdL85f8O3573g6PCZMaomYJdzvxbH2Z3zbnfO0+4alOeCzwy+4097joDnAiqU1ix0GWxqHjIVmAjocSIU5hFPkIRfwsaJWZcv4pxXJNAoVJnqp/Cq/yu9t86vsbi+7anuVX+VX+VV+te27GXab/Eb/w4byZh4Ux4fHUftzToK5694n2+u9g2vkt2wOCpVIcAyUaGL8io5KTqd0tE2FwoYTBSWPDij4XUvdGeVmFhokRjpJDUgc5jI5LIJtmhGUCBiD0TD8wliLiYoKi1CAevB4DEJjDO1yAcD6PIYs4VqJ4XvvpgnUcUiG9x6JJeW8O+Hb0294svo95/4Mb3xMaPL6pFTrxJCcOM71jF+e/T0NLYfNMffaD/hg+REfLj9M2ZzR0kQ9RSEZ40l52Ej+dnixYExCTAVg88JiAZK5wlH5VX6VXzhy0/w2z1Z2t4ddtb3Kr/LLoVZ+ld/kWG373oTdgzH/k6kWISyDGZ0z+bBOrtktoyZDejbue89s7+wG+H10+HGhl5T/kmM8HtNcwMjOgdKpNzoJZKrJK9qeF48xsHtNj5tcaFBmKp6ozJxBQuFu2yZ7dzavN2KwJswJUR3naYikAqhAmEfStA2geEDVZwjB2zSG630oDOoVh9K5jrP+hJ+d/A09Q/Ag2VgAYkI31F4wkbj+heLif+thxfP+Cb85/xVfHv8xDw4/4sAe0NAUxUKjmiSnUzLJeePWmPlZz60UhW/Gk7tdeEIjsOVxzPmr/Cq/yq+Um+A3K5XdrWBXba/yq/wqv8qvtn03yk42H9Oicj3bx5N+t45rcW5kVfKstneN/PrA76g5ojHtthr3iWp0RCjWBB0Fx0j4F5wdMrE9Sb81jqxQLUZehGkYTh1oh2A5Or67M/obcwrIRuHQze9Fhtp2IxnxQtEwxEPUIGixNokUcQRFoIoYpVh/IyvHe082Cg0rVfbDwOn6Fc/X3/K0+4YzPUWa0TimBiMbeYgmIbtMQ1GBTtf8/PRv+Hp1wFFznw/aD3lw8CELWbK0Bzk9bHnXdhn3dqlK82Z2/SYZVFlxUwzv2WnblV/lV/lthnvt/Gaksrsl7KrtzUjlB5Vf5Vf5hedH3c1vRiq7/ewOmqNSGSHknJ8yn5o/JsqJnoRqe2+f373Fh5Oyn0bnpIf+9IkIoopIWGPCeY+Ndqou6MO7AfUO/IDrV3g/4N2Adz3ed6gf8MMK9T3qB0QH8Ervepqj+7T8eB4gN7amgGDETOZSZFVoUFx24Qi0i0X0GMl0+IkU21IYmz1ZabiJiGAMwSPiHajD4/E+eImGYaBp23DeebQJBf3RN3/F789+gzaOVOJEBPEyNYxocNk7Nc3iWDgkZ41kOkAo2I2wlhXn/pRvV79GTuFgOOK//vK/D54swEwUNIklhjumcSLZozT3Ow6VyV61DUn1yWRxkzFzlV/lV/ndPL/tKCs7uB3squ1R+VV+ld+t5Kco/mb4FQ+UW74FqG3fG7JL14sJOxeEh0spwguKKONIx0VMtb3vlN+/2tJldgik7AuggWvf95w8/hXdi69ojGPRGky8R4vdGspkRhXmqRjjCBAF49Hz55ycPd/mF+Vm1xQoJTmyhHFoRnAdYcSMpWcsm+kPaZiTlEpHMCYWEhtvGcjenuz1iaF49dmAfnfyGwbWBC+TgAkFwGLAxIUqjMR7PaqS8yTJ9uL3SaJFcx0oAhhwviesXhlyoB5Ou1PcRmVbaqvIOqDbuozK1FQ447FRQ9NKYnJn9gjG67fCrvzi6cqv8uPm+U3PV3a3iV21vcqv8qv8biM/neUX9Dwq7rX4zcGjtn3Xxk5D3rOuiofLnO8MMaUnPjhe0faMiWc0PHQjaWHCanuvwy/fnBwBGw4BJChIYwaGruPp41+w0DWysNC0o4oEDJKXB9BCd3MiBKdN9CrsvO7GtiSU4MoBUiGAcfuLVPh0hExZUCkKU6q4xlJlREhAgiINxpIrHKLnJP0DxTsXgAK96/DqwCiYCN0YpAXx8V4jqJigRDSkmRivSDaWkErN31PSvLowxEMHVA3OhXRZbMhGNuAimKy9nL3yS75HgzKLSpjCmINudXK+jKSolHcWoMqv8qv8vht+ld3tZVf5VX6VX+V3y/htMqxt3zvNTiA/IKd55SEayZyMMfHhvdBLPDBhR9S3KqphDn54C+3p+3VIh+vwwznee47v/wjT7HpsrPwuxU+2S3+yjMQpWYnzjqFbAQNoGClgrZlWsdGDUGgmpiqEJ7mAEPVucW69g+GNrymwUevo6BFR0TB3RJjWTlnXmnWeoRM9RPFfOhemXlgaa/Heod5hJG5fEdMwuHGvSVVQH4FHozKqeCMYG6N1HhEP1sRCJfiYNhGBuF9mhknImOJxfsD7AQGckzCExftQtKxBxBTGI/ne4qNQRqEKKbHHAlTcKCiqkr+n88lANOl7rJ+zHiu/yq/ye/v8NmOs7G4Pu2p7lV/lV/nden6ZwdvlV9u+12MXNDTmI2RZ829jTM6790EfRgyKMPRriHl1bsAPPUN3gncd3nWo6/G+R32PuC6HHYbqewwDR/d+jCzGbfcqv8vzM2YcaZFGc+SFFNHgSMm/wznvHc4PDBi891gjJGOSZLhb00dKScpNIxMIazvskBt2Cpis/Ow10uR7ETQNu9Ax0dMw4pH4Jw/jEBPLU/gdjABs02CGHi8StrQwY3huGMaAU3zFEBv1ihsc3gvGSvAYoXg3jMNVYngeIO2BmQsuqPrgiVIPGLyGjIcdIGSMMhWKVHR38kmVro6ayXV1UQHH46ESTr8Lj62Ww7XC98RlZ8yVX+VX+cWPt8uvsru97ILuK7/Kr/ILH5XfO81vg02hgfxRcgofte37rtgZiUPAYebhb0zm4Abc+Qp1A8OwDm/6h1P86hluWOPdEONTTLmNgSo5++nBVUNpEQPrZ1/huhUPPv5J5fca/Ih2UrLLIwQonQIaw1JcWCwB45XBeawxWDuOnMgp0WRhksNMNlqWlOAY2Flx34xTQBW6AbwbAYsINs0BiQnzPg1TGUger3g2hyVGIK1CmQuI5MJRgrPGYm2LRG9R+Be8M13XZ+WVgBIxBQYfC1BkLkYwTbhfrBSfBkwEG9M8AhVUbYhEFfx4nSCoU6zaqJc9LVvWVExQ8XV6fiaMyWEFESQldSxC4Zds31/5VX45/MqPm+S3dWtld2vYVdsLaa78Kr95EDFBld87yC/OoU5pSqrMDyQFgzRp+Qr8kp68d4TJ6AbikOxdUtldzC688dciq9EyEkuUwfU8+c1X+Gd/w8HCYm1YnM6oR+LDKqbUVrFoYDzoY2bDQ3zBf+joX3zFt69+D/yvld+V+RVTB3RqaRMECh5P33X4wSHqGRDWqw71jrZtaBsbpxIE542S0kTe5WFUfMqfoRHBLnY/+t+IU2DwylePV6x6UO8xAq2Fw4VwdGC4c2TycBTvwjAWIRXEMhdltSPRQ5MOpgIy3mKMwVqLQBhCYgzGmji/Juxp6XwsDBoKaAhPi2Ai8OgJUqf4Qr/hM3hrEMlgVUF9YaxFgQieWUU0GN+472gsnBv5GFkWJzY8OxILtxY35WMS787XxPNJtUXbOte0V35UfpXfW+G3KZUdt4Zdtb3Kr/Kb5qPyux38po6dko+E40nhSmYy5RfnXHufEoD3HufjnGo/oL5nWL8AY7HtHRYH9zBNW9u+N2CX3zAXD5T5TXM8JsDpybfIaoWhpW0tNj5EF2qJcRYGlYOe/i71GR68AV+8ga/8Lm97AhKdbGE0TZhOkaZVpPUTEkc3DHjnMKKoh25weEI+kkoaKzmhJdbkBFFhdKooWCNhi8MdciNOga6HX38jBHdUUIgIGKMsG+Unnw7cPQLvPM65MDwiFI+c2ZCzWEBkUkSiwmPOxxOxwKb4wvwbIyYDkqyypDEmNpHSmSQXIAU82WGqAt7HIRiSAig9SGOYuVCphJUiVbFx2cych0mdXFS+OSHjL90IWMpz8d7tBrbwTkkqJeyUyo/Kr/L7TvhVdtxadlD5jTqv/MK9ld9V+YXh6el35Xcj/PLb4TEBaS76OIJAEQkPVmEPdAfe0Xcr/NDhhjVuOMcPK4buBHU96IBRT3jGCgu9eVWkXdIffcThvS+xB0eV3RuwK+eip8/sEIh6H4YOv+5obNhBwEgYIaJRF0rpttuwz5w9zbpLaRMkOBi0mHJQ+V2aX3IU5CSohPDmHAPR7kZdCINTnPqwu4F6hJa2abYI6ggs5DwmyKhgRJEy8xtyI04Br8rggvJszIwqDIMyDMrvnnsODxrUn8V9FonOlzgUIw6x0I10p0KSCoYIRSUW5lgYYyF+j+5QRIS2bTMpayy5PG6KpuMBdPK2oOS1WXKhKW/zbBUMZq5DgoHGHyRwY0CyWV6njW0qoakAjD+zsW82uprm9aUb4ni8yf2FVH7jZ+VXZr3yu3Z+G1LZjZ/vPLtqe+G2yq/yY+TzRvzG5BNVVfldM7/wwJTCKvMnOO8xKLjwsNOtzhi6M3x/wrB6ydCd4vpTRD1haHcIQAg7neX51jl+DUOmhxXDi99wsjrhwy//s9r2vSa7FGgZlo8g07NpGKIfpm4Mg2OwLkwhID/eh2+SdKVZZ2O8m4TG4elIWKBvUyq/8XMXPxkzElQpOjoGGI8jQSfe9YjEXQ+UsCWll+BoE4cxwtEyTLNARkpjQBvplUVYVLGfs8AgN7PQYFRKauBVfdEAKGfnymrtWTbp8iKBU5cRSFGQUyuRCsYm3VhQjJmu0tm2S44ODzOoRlo6zsfEFgkv0EzykwqKaGmQoSlL5yVlOBtbDD1aq8YGLaSt8HqVBUgmH0XrF01SxgvH9lbHaV8qo0Y3jxWNMHP6K+Ks/IrQK7/0lcpvvPBG+FV2t5cdVH6VH5VfmbxL8kvXCmF4spZBV37Xza/kluLth45+3dG/egnDK9Sd4F59A+pyWq2Ef2PaxxRHX0AcTq3kIdnxWqPgzp/Snz6nvfPBZk4ru0uwS46c8RE96jo9WANp5ID3yuAcvXPYISzK1zZpmX3J8fi0vL7miIFyJMGYv5R6UyxDUOa38itCn7O97BDQOOgpOAQUCXFISocAnqHvwvaTonhVvJrMvxfoG4dqmKqh6hBV0toLTWOR4OJDNSxYuO57bNNkv8Sc3MxCg4QCKUaDZ0OitqLGVp3n25fKTz6xeBGcc7lMpNUagydrukbq6CmS4vsYrzGGpmmzJ0lVaeyCH3z6GXfuHoetJYDD9pCz/uVWmrckeqLGOBL5VERJW3LmgpcLMkwAaxFHY9pJuucWzMnGKan4SvE3JWWjYhJDoXAAACAASURBVM7HNt+4zBb5nVL5VX6VX/xzw/w2o67sbg+7Oan83i6/0JmKh6SIfxJY5Xed/IwUV0oKu/wsA4odXtIw2rBNF3i8D8NjnRvou1PwHerX4DsQMM0hB3e/CFvoXVIqv4v5qfdT+1DwKOevTvn1X/9/HEjP0UFD21paa/Ji8ikskl43JM8Nz8VBovrjA6ZAI4YXv/xLhoNP0T//8y09VHYX152lH24Sfaz4vPcM/RrvlPVqwA1hUb/louHu0QFNExwEaXs+KQIqV6UfMecEIQiL1tLI9vSByu8S/OIbf4wgPtpG1JNKcgyET1QZ+hWIweHQaEtISIiRsLKHd37Mu1e8ehRl6EenTPRP4Jxw3jms290m3txIAe/BhL0xQ6FIFUbwhvSDx5gWpcdag21anOtJc5hCY8JsIdiUsWMhiIngxKDqOTw65P79exhr8EMY62FNk7sKqWsxhpX+zDRwew6kO1J/ZqdqFFrb5ptk17WS/1DuKamb52OEqTBuHoPS4HTMpM6aQ46k8tuhmspvO6uV3/Xxq+x2yjvPLkZS+e1QzXXyS6+XY2enXGRLhMpvS5+7D7wOPy3sJHTWTc5n0H/onLu+A+9wQ8/Qrxn6Fd3Zt/jhHPUd+AFRhy0i9urDHt+A6x13PvwDxJox8Mpv69dV+KWH9/Etc3iwGoaeYX3G2ihWgo4aWy4MmLY7mw9bYvwp3En6UqYJC52tTn6D+n4jkMpul0zqzjINUhyJD5gKqB/yM3nvFd+HtR0OWosQV62XuFykFIEy1qUm54mcWxHCVASdUWzlt1MSv+T0CHnT7MTIFxXp8t6jPqzrQdo2MqZRkrGlNjC2c6RrdUxTDjU6arxqMZVrW25spEBYZdLFRMYGPmVDoXeKxyIy0FjLsl3SrU/jPXGYSFnqi0ql/FnCKJWgMZwHHz5gcbAI22CkTMe5OROGUoZfnCmGdiCymYx4+XT4SVGHToJPF7R2ETpFu1U4lVT4VbfjKDpIY0coniga7vKYUHijZlJR+c0EU2Sl8qv8ro/fRlYqu+1giqy8W+yq7b0VfgWLMehxOKdqeRTS/OjK72b4JZ2LjKt9i0B6JafO03dr+vUpp09/wbB+hbo1+B6DxxA3QZOw73oYHmui7pW8bRrC6snPGdZn3P/BP0OapvLbyvDV+Xkf3iSG/6P9qOK8w7mw/Vk/QDtYlotkT2XmJUVdHNRCIeGElOqTMc8ihoPWohsr2Fd2M8EUWWntYjOEnJdwXXjDHaYOeAyCC0nBuzAffdW7sPq8CQsQAmFNQC1yJiERafG+VL+qgjcGawSG2nd57bYvDiUYRz4UFydTUiWMqnJFexb+BaerxjAKG5ZS42Rng8bvo63DNr1RbmakAKB4VMNCE2nxB02VkIQFKQanNBIK3937d+nW55x3Z/ghzmGSME9k+aMFr4YXdKzxOBDFxBUnW1lwaI+4ywe8+OoECgW11vLBgw+iF9SFfoGCETvWbZuvKxIkicNIlSm4GW1q8Tl2R6bnxyCEhV2SB6leEPY0bZJr4klBLDq3k3O5M7TR6R1r551RVX7T85Vf5fe2+FV20/O3iV0It/Jj43iK4LX4FSyAMOy1fBMZO0e5Y6iEPmnldyP8RkeMxCkAHX61xruOfvWSYfUUt36O9udYdbQ5XRvMkPzA6d0QOsGaOrOhI2680r/4imfe89GP/kVa1LzyewN+E6dAfLBBwiKDznuM+jAXfXCBgci2DWlIf155XSlOhEg305LTobBsF3G2c2V3FXYXt3NhgUFVjyf66VRABa+w6gfaRli0IZ0isSxIiiuMBYlWGdMRHbCAaoMxoMzbX+U3Pb/d9o0XGjEggVMyn+QM8F7DdoR+CE5TDU7TNK1BJDhOU1rTuWyGMU6dpCSNJNme+lHKjTkFiIkJhTN4sEiFQ5W0QiY2KOLevbss24bVas3Z+Tnn5+cc//CAf3jxN/jVEIaHmDBMxBjBieARPD2r4ZSn7hs+++LHdF/7sG9lY7l7fJeDg2Wo3GJD5n0ahrErxdNOo6R8IPk7xbeyf1NUidMAk0cprq68mPH45TTtNHqdvWa2w7N5bjMKIc/D3C+VX+VX+Y0BbV9zc/wqu9vLLtxZ+XE1fox9te2wxrjTmxKNsYbfPqZOIK+QX/ndBL9yUbPedaxXK/rHf424U4w6rChWPWpCfOlNY/TUFFkIMLxqdPSkNEyH1BoG3MuveCJLHvzwTxCjld+b8mMcIaCqeDFxPjI4H0YKmK6n73ukbWmsHR04cS56ilA3Ypfii2h6uBqnHYgIi8W+xc4qu31152ZzVdZrAN65sG6EgtN4knDeueD48d6DDYvyGTwiYeV+a8NK/iKCc2GNgGSf4dOj6qejRyq/K7d9Er3YYZRUXEsg6c2HLRtXq3P80JPdNFKmMKQhbR8qObXJHouyQZiqoCo5N/vk5kYKaOFFJH7oWIE4rwzOs4jttzGGw6NDDo8OaVzDk6e/4+vnv0CaIax0aWKbYiTufRICTB0B08Lj/isWHy/55PiHfHHwUw4PD0JBMbEwDo5hGHDOj0M3JCVRp7XZJDPpOt2p1IsbqXS/oTXzHSMpoy4C1Hx2vnObD5WvS7ZOlj839ymdSWvlN3NN5Vf5ceP8Kru5a66XnW4xqrZXaHKqwBvmlx4QwwN9+p5u9OQHF+/wfgj7pLs+DD/WAWHA+BViLaa9i2nuYBfHlJ23Ma7Kb5vNxVLyK6dsOOd48fjXtKffsmzTugKF1eWO8xi3jGfDyucJlExTrxp2IggL1Tm6l//IE2l58PkfVn4bl1wkW/anYx6SzpxzefG5oXegsF53IXlLaKzFGInMgi43k12MKSADlRRHutbQNuP8+Ek6K7uZa0p2xQOfbLRjMYowUmB01Uh6ODVxfnqhYxOn7niv9M7TdQPpbXkYZaAjAxG8M6zWK9odc9Irv7lrRn5lcyQi4W2/xHz5uEjkMND3A+dnZ3jfl3fk72G0wJgXRtXskDgCQghOij0V6I0tNBg6XlGrKVkpVSjOCSdnA3cOWrzvaRcNv37yj/zixc9Z6SliFWklpFCIHhViIUnKkNwZFBGkBUfPb/0v+frlP7J4suS/e/g/YptwXlXpzzvWwwpjojda0qCLXKuNH1nhaR6HkLQ5qfqScaYfk47IGLaqYsVyuDzKfdBpWZPRimRydGw4Y5iTLXrydbGYb3WEpkEnFpov3pDKr/Kr/Kb6vyl+cw1RZVdeEb69LruicxJWDNbxLWTZ2GrYZqna3s3zM5gwJNnGZc01PFz03Zr+/BXrs2d058/w3SkMrzDqc9BGBNsYrLVh/3OR2JFypGeVwXk4uMPB/T/m6MNPK79r5tf3fXhgF0PXrXn89d9x15xzfLRkuWzDImak/E3jzA8ImkZ6RB1AuiMrPDzYSL7b4lg//yueuI5PPv8pfm7USeV3Ib+s8/h6WQmjObrVebjDWAbnGQbl25M1h4uB467lcNGwWBgaa8EUuw2MDWRWdpoHnR8SixQZa1i048iDyu7y7MRI3PKRaTumqY3z9Ot10K2xuf0Lz9SKQTES7M97xUVLTSN1EJMwhK30cq8msmuEfhhQHUdjVX6X55fquqwbhKax6OAZeke3XrNarViv15ydvsIPXVx/xUT9jv2b5CcxM2Gqak7OZKyDpJp5pu2LcqPTB6LuY7KiUiVoUVUZfPShGOHrJ7/mF89+zjmvwGpWqS21GCsbSYUhgoNYYE2IVEKdxZpzvnr2K3784MuQWbVYa8fGKN0Ye5ljR51CZ2VDtZ3HeCf5zg2DGK8TVMBKw6JZXBBHSshG77RI3K4HkHzpjuOkgjwJZV4qv/K6yq/ym4QWontDfruksiuve312m51SxmznPIQ5doZEpNreLt1u6+R1+Tn10A3hdZR6Xj39NcP5N/jVS3BrjCg2JjLxSvm2AqjPQ2HV+zC0VUNsRsGfPees/9vgFKDyu05+zsfVrSUMJXfOM2hwzLRtg7Upj7IdroShyNMkZSghNikfLDRfIiIsrOHk2T/w1CoPPvp0O1MpxMqvuG6m/twIx6vSDx1IsAuHgBp8D2G4uMNaofHhwZAx6VHXmnmPO0hqfmgqm1NVg910CBRS2ZXXTdkZE1bXLx0CGh/w02ffrbMSExNBRx3EeNL1RtLWeUJmFpOU86UQB7hvZ2ZDKr/yujnbS9cpCIiRuM1rWCDSu7Dgp3dhbYiUVIX4sB9dpVEfkzzNpjOrsbhkt/3doFNAiWvMFr/jt9R4x0a6aVv+8dnPOfWvwLgMzKQKJxUQ2cxKKHQiZKd/blAMmFb4+Td/xdHhMQ8OPsJYwbY2skgeI3KDE0KMA100xTcONpQiG5vPDFt51xRaujOktTFtGDol8/ePRX1Ta8zes9nZ2ToOW71cKa/fWTYqv8qv8rtxfrvSX9m9JrvxVF6QrnyjEjsBoXOROipTHtX2uFF+3dAzrFcMpycwvED753D+HIunEYUmZljL+CV3NH3ci9l7D8XidJoVrGEu8/oF3ekZi+Ojyu8a+fm1xnhDh9UjDM7R9Y6mGTBGMK3JC9SppDfG5LCnCZC83EA6I8WPlD9FsUY4so6zpz/j3nLXglmV3976028TUPW4vgcxOHV4FRCDqNC7sGr9ooFlY8Kb5hR6zLsRE95YCkheoI6xbtXxgXLtDcaOD4yV3eXZBaeAEhYODGtAhDnoPuweMTjWq/OYNxN1nB4ii4friXp1TN+cR3wupTudOpXfXttjMy9BW8aE0W/WGkzcLjJNAxnfYujk324LmiawJLqzySvkRtcUAI0NQ6rmk2YNi9Zz0BpEDC9ePePEn6ASVp8cO2xQZiMUkuj9SoUllPawp2acf4aOx8/sKb96+jM+/PxDBKFtG6S3aNyOAx0901NPCsWPYIRlNopyxeQuLQtOcV8s2a1ZhOFXaME6N4OjpEK7mZStA/GwJIOenpTpn2iYaRVKdu4VXflt3Ff5VX5l2JL97eHy1+Q3J5Xdxn2XYCekHoLmIAVlGHq8H1DvYiPrMPQYHMKAiGKaJbQfI2aB6vigUW3vZvitz885ffxzePV7Fq2ntYKR8KQysbNsY+Tujwi4PKeZkPE4zDU7BBDCStXCs9/+Bx58/qcsjg8rv2vgZ9Ti49urEJaCGLp1n9Oe3mSZRYu1TXAIeB8cOZHhZMePmJ2y76tJTTJyV0La28aCc/Rnjyu/q9qfaaIip/eGNQV6QPAaHuvDA1R4aPFxLrjzHpEm5Fl9GI5uhGUbHmoQExYrdGnBtOgMSFlGEC94N+/Qqez2sItrOqAmpxcNa0Gkeeh9t6Zbr6Kmy/0dyrfLjHVrzEN53SiFQeZES2ptK7/X6ruUIjnf1hratmWxaAPLrgvbKxLzHSOP2c8c0+8phDL8MqbcRM7cNMqNOQWElAJCpaCxOAkcLJRP77fcOWpRWfPNi9+GgiGKbE6QYAQxagTy8DQzFm4RwMTVbn1QoG8935x9ze9OPuejg09B4Xhxh6frb5BGRk+mpAJN0VsI52VOgfktRlmxlufCKYnbgQSAlqP2mMY2Ie05mkhqc45jEXx5RidHxvjHdI5Xzw2dTd7Aaeq3o678Kr8UzPvMb6xMx+FtaOkN1lxJF9qPSdnPb04qOy7NLmTJgPd41+PcgB86hmHN0J3h1k/B9whD3CM9sHZx+Ln3HhHD4hPFHnyMbRdFmqrtXTc/Kw0nL5/w9Ou/586BYKVFVGismYlou46cIkksJPW90KIzqiiy+oZvf/PXfPTDf8byzlHllxm9Hr+NreXDvHIFNygr36GGOBc5zHVtjIkxxdoyRRvTlR0CxQ8RLerXMT+Jr3o4WFisX89krvLbx8/4MIxaU7o18dK8J7qmpw00z0UvhykbsVijMfwwGuv0vEekj+1lGn2laNGmSmwkvRNOT19t1a+V3cVtnxEBa7DJ0Qb0fU/Xdfnf0K8R9fPT4CTqM38v07ad3KKGzeGl9SLmpPJjf98lK2mqYYOhaSwHyyXeeYa468CY+RwJEv+l9QQortg7vUPLPO6WG3EKLFr44I5n7QANw4qaBg6Wyr0jyw8+XNJYwdqev/v6H/j1q1+AcXElzAg+FZK4+qRIyhWTQqJMrxcJK2qqDd5IqwYnHf/hm3/Hv/zBf8khx/zxT37K0beHfPXkl5zoC2jG4TWJWuh3xsKtsYsRt5ZQDZ7TOSvSWCrGcqZYDAdyxA/v/ZiffvxTrLUbBS780PJ3Ll2bEbBRsKYXjPVsaoRlkq5wDLIrfkYqv8qv8tO48PnonU0PE9OHijgfTyUuYvNm/Cq7i9g1GB/Ccn3H6uwZ65Pf415+FbZWyjoOXZmlDfsaN9Zim+Cp7/oe7xxGw1swVeH8639P7wzNg5/ywQ//yWuxq/wu5rd61fPixVPOzk7At6gfODxcYOyi6KxKti+JfMjp0bEzGIEII49yDQlFOWyVvvuab3/xGBYfcf/jP+b4ww8rv9fk59ejXQhhkUfnFaTBK3Qr4XTdc7J03F0PfHzP0TbRBk2sK/1oSwmDMaZgKCPDmKY0+gARfNNyeLTED68qvyvyUxdtJN7gNcxj7tZrXNdhjMULYeQOguDC+h4yvv313sdFCg3EPdXTSvVZUxpbya3+j6ISRvv4jSxUdpfptwhWBNOGtPtVmC5wvlrRdT191zF0K/Kw8/z0q4TRUwZjCCzT+ZSGjXTlEVXpd/wRHvK3K9DK72J+ynRyxajssLuHPTigaSxtY3l6eMz6/A7On9MYh2iPeo+IYg1Y2eaQBjrOOjQ2VLlLLnQKPHz48D8H9NGjR//u4cOH/xz4V8DfPnr06P/edU/bGP7o8wN6FyoOawRrhMYKTSMsWrDGc951PD1/QudWqCgm0WX01OTEpwIRM1wWFmUssOltXygwBjUeYw1ucDw+/R1/cOePOFgu+fEPPufu0R1+9/Q3/ObkKzqzxrZmVLImo9BYkclYQOJGx1okLX2fOD8VGm2509zlR/e+4LMPPmPZHoROjKbCN8Y3kWh8c8fLwrcpuTBkT3u4XlJPKsVbGMGmVH5ZbZVfme73gV90BqSGNGojX5bmTap61If5tMkh8Fr8KrsrsdOV43z1nP7sKW71BLoTjO9Z2PjQkN9MhYyGua6hGe77AefD3NmxD6s58kaE/uk/8MIecP/TLy9mV23vSvx8Z8LCgPlh0tMPjnbwHCyLjmqR5TQcdcxxHAkgRV4THp2mKo0ZaKzhSAa64QnPHw/cvf+f4u2i8rsiP+NblPAGMgYTpuRAHHJuEDU4VXQNxjjuD2GBOouPapD4eivOiTUhrdaMac/1ctH/1mywjk4DU+e3u6+V325+y+YA78Pe9WG9lbAfunOO1dkZzvVhhXcvSKwzg02mod3hn/cKEutFDX2Z8gF/6tDZEEmt6rZUdnvYxX7LmC/BxnnoxoT1O9T7PEVuM/xkTBL7pSm5+Zpka6kyLdI4DWG3VH5X4LdDwlSChuVyweHREeenx/Rrj0oHkp74pwzziIeslSm5nMb8337Z6xR4+PDh/w78D0Dz8OHD/wf4L4D/F/jfHj58+C8fPXr0f8zdZ4xwfCfM4bN5KVJF8LGCGVAMp6tXnPUnOD+QugKSro0lIw8XYRzyErUSOwSSFWNUiCOaIL5R8DEsY4Xnq6eYe/+EwTmW7YJPPvqYD+7e54cnP+RXT/6Rr0+/wlgJi3nEAihpGohPTVUotSIS93QtFZ8qQ0FUsNrwB3d/yqf3PuX+8X2axSJ2UoXNO5NI8Td/3aJYdEi1PK3lJTmUyVxnIXh5ScrcLiKV3/XyU90+X/m9Q/w05s7HINTHh/64+qsfgLCVj4rH4DDiEXsALEGasVG5Kr+N2yq73ezWLzuGl7/Dnv4Kg6MVBfGIHfMhRnJoEnXsVeNUgdAR3uyUqmocVae09Kye/C3WLrn78Q+q7V0TPzENZ+fr0HkzBueDk8YIWGs4PFqErQrjcPP0cOj99hoPqUOUHQgyPoggyRWQtKmIGLwoVj3iX3D64gnHH36Kmu1ttSq/HfbXLOjO3KgoCQ+WbhhAwWNRia/3NOwuse6V9eBpW2XRCNaAaHwDLWHFbSNhK1A7mUs8OlTDi06JDAxiWrS3IFLYZuV3mfqz8S2DGRhcqAeHYYhz0XvOzk5Bh5hnQ1qENdtZ1seo6+SvG/s3Mk2TUJ4kDSdHdRJOZXfJfkvSSew2GCM0TcOibRn6nlXSd3qyRif/0mibqJbNrkdm+LpS+e3nZ4vRUPs0n7geHR1xdniMGzq8c0gcYyAQt2eUwv5yKrPZxdOjTE7uTsdFIwX+Z+A/AZbA74AfP3r06OXDhw//T+D/B2adAgI0RuP3LqanqBxibXK6OqUbVng8NtYX2fNDqoxGD2VZWEJBMSnAHPGY11hBxfusEdZuhZow9Cl5gpaLlh98/AMe3H9A88uGxyeP6YZ1ePNnBUzyzqT8hL/ZU5OHYkFaXMKq5cje4bM7n/NHn/1R8OZZizXprZXkjk/+kBzFvEL3nCvzPAkzfhsr4FiIopJFyuHO0+gqv+vhpwoaV/slP4xGr2Pl9x3zE4yPjYt39Osz3LDG9Su8W4Ffgw5YuuAEQBGvDN4xOI89OMIcfwLNA2RxZ/KceFl+ld3l2HWvBl78/h9xz37Jh3dT41o2yUT7oogr2h9hSHlatbm4PLeTUtjmwp3z8vFfAYa7H3+yk121vUvwM5Z+pfT9unjbKziFvkvbLsHxYYtZhhE3xoTpPd5PZ2+WnaaQtaSXNKwzvtUpekMiYQuvpKAjUc6e/ZLj4ztwcK/yu4ifteBMdAiM4STLc26I6ZScHYl1nir0zofV7sWGYcvBfRCGv9rQ+bXG4LyEUTzOoz4Maw8BmkggrgYywND3nPkBoxsLHFR+e9s+a2zIf9/jfZi3vF539F1H163Au1wXJn6JtuTsyJjPWKemNMx2UVMbl0YP5MNFOJXdpfotVszEmSIitE3DwcES5xzrbk2/XscHwgRQieMZEcIgnaIHlNUwt77DrCQ917bvyvxM3g2CIsz0TSe/jLUcHR1yeHzE6vyMwa3imaiPKcHxOT/pUwrdl7YZR/bMdl6iXOQUGB49euSAs4cPH/7s0aNHLwEePXp0/vDhw137wcRUhEYkJyznYOxcdf06DCcsVg/W1NjnBig19hlJVki+SkZkRQrCvUlZInh1rPs1C7PMIXtVRB1N0/Av/vBPeXl6wuPnj/nm5DGn/St6twKThkqlAqy5gKaOpqhg1HJgDvn4+FM+v/8j7h3exTZ2HMK6Yy6q7Pm1dfgi25XJB9NhzIDkZUNG79uWVH5vym9cHTalf/wM55lU8JuBVX43x08A6y3qHcP6lG71kv78BW71BPEdxjsMGipzazg4WNA2DdYavFe6QRm6FasX5+iLZ9j7n9Eef8ni+N5r8KvsdrIzFj8IOkC/7nj6+19wqGd0Bwd5JeaUvjB9Y7ujmTOUzm1cEEnETnDQeGOFdjjh+eO/5d6DH6Amcai2dxV+vjcMgw/xxBSrhC204vsj3ODwXc/pKqx8bgSkGRc2EyNxbHLUiSSHAEz2Ri+cOnnLqayP6CxQBSO482959fz3fPDZsvLbZ3+0+E5mOpCjnn16kDRBNxKHlRujwfEdG7qwrochOFYHnFOc93R9F8MJ07GUNLVOMu8ca0guXoWh92HnysrvUm2fEN9UNmGxOu8dQz9Eh0DH0A+oFo4fKXNDzqOkzG90RC/qliKSR2MhgeN29VnZ7eq3iJBfaJRiDBweHuK9p+871ucrmFyn47/UfpWJmkEwMiuwbFwwPwi98tvHrxzZtlOS2gSWyyXHx0e8ermgWxnEE23ZkxyxuR+ige+onFhZlj+j/mF7PY9SLnIKdA8fPjx69OjRGfBn6eDDhw/vA3ucAlFpUgzUTIkQzcXKq88NeOiQ6Qi4KEwy+ZZ6BCmOQjHpXPw1eszSaaX3PUtzMLUtDWFZa/nogwd8cPc+n59/zjfPv+XRt3/FIF1cWEVyPsLbXwFvEC8szQE//uBLHhw94Hh5h2W7xBopDFlGT9eYtcLadpcU2fljqttZzrJxS3xIGd+0zJeOyu/1+GUvXEyzxAZ0fJkilEYpRRiV39vhZ7WhO3vO+uT39KffQH+K+IFWfGx8Je4bK7StcLxswBC3iunxbqC1oYLue8/621/T947F8Z9ent9Es5XdJjuD0J2FPeiNKP3Qs16dYk0YpWGMyeFOugYy1WvSWJnkNMUgmF6y2/R2M7xpXljB++c8+/2v+PDTL0JLWW3v0vxwgnej7lMnTpSw1VJcRWpw4J3h5HxIymO5bGisCSMGot7Q0Ykm+Z+Uqhp1nb8X7IUw11QMLR2rV4/B/6jy21l3GugNomOeU4SqIf/eeVzXh+SlvAiEt5LjcOXcq45O2cETykbxFi40mTEuKbM3No65adXgkHAz0wcqv+22TxBsnDaHNVhrEI372/uwpoD3jrxK2bZGR2dc0Z5pUu1WNbiRwe3gdkplt91vMSJYsXltnJzN+GexWODcQN8fcHbaYuwCN6yxDDmdOfspq5rNcfcogY1+6eSyXbdUfrP9zuycm6+yUsonH23TcHR0yNHxMacvnzM4pZWyz5LYhX/jCIA0inGElHQfHK+gex7fL3IK/DePHj1aAzx69KgMpQX+l303KmGe5rTe1gxC1NCatkxxEBHEhE65MRLnYci0kPnoWTJjsRnjlKzYBEXVYxDEhI5GCifPWZEcRBiyKIa7R3e5d3yXn/zwS16dv+KbF9/w+NVjXrmXeB0QhbvNfb744Es+uvMRbbMIQ+2IbzsAVDCSFgIxjHNh5ktGLjAbD5pb180c0LnjO0VJhXWncVd+F/PTMT+hQU2rn4cOEfGBprFhHjrq8Fg8C5w2WNPk7Fd+4fCb8hNk5KSC1SVu3dGfPacfnqPrZ+j6FQ09RpQl0e4aEEJeTdaB4J3j9lC4RQAAIABJREFU6bPn4U1WdPaE+jY1ZrAwCie/5vlvj/no83+K39frGTOf81/ZLRA1uF7RFazO+zFbGpwvznm63mOlY71qA6OFFEPzyrTn7mr+EECMiW8xTV4Y0qvmN56xx4FXxYqlUaV78e/5zfOfcffTh9z7+IdZZ9X2NmzPWEQt6sCvyjylTl0CIfR9hzcLeu/oNdz39FQ57QfuHnruDY7jpeVgYWls1HXxlqWxxI4WlEHnXQryJ7FeDts3iRHEWM7XLaerl6xW81vavZf8Nto+IwbbNAzDENbiIDxEeu85X60Y+oFuvebli6cYCU661PFM0weMSZ3zsJd6HzmoD11S9RTTBArng+ZMxqwlHSUVhjdlc2sKVH7Tvos1lsY2tKYlOAeEw8PDwMQ7vB8Y+h78gKpGjj4+XPjIM5WJ4DAfYYw63ZTRLKeMlDS9p7K7DDtrLI1p4tSBeZ21jcUcH9PE/o/3yotnDbp+EvKsLvdVwoiq0GXNs/7HqnmDxQydZJ47Gr/Kj4Kfyc8PjTSYmX0HZOvXOC2haSxHR0f88LNPaazwu69/ja5WaNxnyREWDW2ik0WQ+KmxfpxO7VFVnNewls4uRxAXOAWSQ2Dm+LfAt/vuHWVXz0njvo1C8m4kFY1vABI8Gd/OhFuLB2iNt0WF5k7gGEJUEwbDsl0iLs0tmRpCCKY4oEpjLfeP73Hn8A5fuC/o+o7z1TmIcufoDgeLg7gASHxcjOmU2FEdPUTjA+W8accU5Eo2dYLS5/7HxtkzRc9aiwvLFOyqaGYC2Tj8fvMTlzqeHu8GvO9x3SvwHaIDMARHgHjU9/TehdEBTYs5+BCazyZprfyuiR9C2iMWMazXK9bf/hJ/8lsWzRC2xCEMXk750JjjcZBz+OO9j1s2FUNaY8XvJzYa8rJ68nc8kYYHn/1h6EFdht/7zk4MfgDX+6LDEe73E/0JXhr6/ozzrsdaE+efm9CZsCbe4yed1Px2WdKiZpK3pFRViA8oRiSr0kTNW4Glgug5589/ydHREc3xB0XY1faS7Vks6iWSGst72U+LZoJzDhGLSho2Gr4771l1ntYMLKxhsQhTOfJw0MivMSY6BtJuIEJYGWrUUdJHqLcNiuCcZ9X3aOwAmpmFBt9XfnNtX9M24SGu1/hwEdYQWK9WYU/0dYcbeoTwMJke8EfHbExS8bYjzwSJb/uTiguLndQBmwQ0aoPN/M6D2nH4/eBnJawj0EgzpknCw8bB4QHODXgXphBkrYvkAVB5tIdoXhQy6yFmP+G8kqhWdpfsd1pjc/9znxgjtG3D4cEBx3fucH52zmpl8wOkIFudjXHr1j39kGyimt9MaxwOv18qP4ncLsOvFIkP9BAWbGyXCz788EP6bs23v/odRg0muDsKbkV9upE3zZ+KVxn7Ojvkwi0J30Sy16hIYEqwAsvFkkYaBu2KWkZywQurgEvYicEUvYpUaNLXOIRCCaum5oKhEFZsdKCClZaD9gDnB7bMoFBmPhPfBokEb5M1lmW75M5hWFQsLX6RAObFMJJRp05rrExzwZg+IYwNox+PS3E6nCyHrhaJ3AN39NZtOCImPbbdAVR+G/yQsF2PKv3qJcP6Fa57hbozxK1p/Dqspm1M2Gu0bVksGhyO876jW63p+h5jntJ8dpemXeyGt5dfzKyMFfv7zS9eHp0B3ie9OM6eP+fl13/HnSVYbEhHuVBZaZcbScoDQGJuS02XlbzB4kU5MD2nT/4eVeHBp18ibXro2GN/O+R9YIcKrle88ykxRXUogI+dkvBAIrbFreH0bJ37EiJhv97Gmlw/RsPIuhtXOQ9pCf4azfEZ4lw4GTkHFYY3ngfiORuec/biG+4fHII9mNbN7ym/se4UDAaX+JXJ3VKMxr2WBY2rnCvhDTIQtil0yqCKYMNiTXEEliFsb3WwbMEYVAlz051jGIbYaS0ylR5aomPPeY8nOPtoGozd3f15v/htt30ihsZa0lOf1w51YcX6rluHBer6MJUqvJmKtpMeNGK+ymHnmX+y6c0SslVmUm2QwkxZVdhYtKvy2+y7GKxtaE2zNWzZSHiAPDo6DCM4+n5Gl8GYRNIbZsaROSnNGUqRgU10WyK5bOzqulR2Jo8SyNM+ZjVZfhessSwWC46ODjk4OODshcGrQdUEB2yRtjRyIDFI9Xh6+aj52JhNimt1x9S5ym98bkiOnfAAv91fkLkfcZRbqjeNhGkEHB3yySef8NtfWhZDh21bLGmnnujIE4NPL7uKOjNlc3yxpajfXXfeqFNgU5KXJhWag8UBB80h6/48nNX0D9SHjqJ6jzeCaHwgk1QsRppj5y8eK+uopAiFo+aYRbtktXZsiRTaG0tHPBaHUOWHh2kpKh/609sMiVtQGNkYBhN7k6VNKYQVeieXpAJHfvDJ9eyWm2te8qnConVyYiOsC+R95ScS0m4Q/LBmdfaM7unfI8MagwuLlYqwXDS0bctyueDo8IDlssUDL168YmkUu2xYNIZ1N7B6+g+gf8LyzvYK2Bupn+FXlKb3mV8MN8xTDg8Iqj62FaHZe/HiW7rVKQuzwBjPAosQFqkj2lZqZXKjEsMvK32kSFbI7bTTo57GWg6Gc86e/gz1jo9+8AeYZbvf/i4p3y92IRXeUXQoNTe04dowJDA5xlK592I46z1+5fDSxSiTo0dyFKkMTB5Kyno1d2bDw4kUdXK6X6M6FDgyA/3qMYYfk9rTq2D8fvEbT6e604gNe2QXvcHcXo1PEEGf3sUOl2Biw5YWpgt9PYXoOGibJrJyoMrgPK/Ow+J0Gqf0hDnuZfpHMkmnPl0jYcSAOTjc6xTYlO87v7LtM8aEIcs2PUyGhQCHvkd92tt+iNsROvLQVYq5xIzRJefrqMtseoWCy/ElkxCIii/uNmXhupS8V/ziKJjWtOMWn2V0AlYMbXyAHIYeYxs8JtjjJG9p+kD6b2wXE8dJslPWZ9gUzWBlx/5+Z5o2UDoELmpvxEgYBRL3uA9rb0BYeHB0wgV9yiTLmvs8pWYoTC+68TQ8hOu+leo25H3klx0CeZTAVgeySEPxEWAEPNFpnkaBHN+5w4OPv+DZtz9nOQwc2SXNoWT9xao62mVkHL8r4D04FHWKmN0vJG/OKZA7XBtScF20S+4u7/Gqf0latRIlLIYQOxd5Hq8HMeFtQfYsxeCiHidKyL051fDCyQv3lh/QGBuUvZW2ole4kdyxkDAFG3/njlEayirpjVQ5bGTTFysxX2MPKhTA4lOS5y6suJsWidj7HKgzP4uOUig4uSrYE877zC96+8RinAH1+KFjdfaU/tVv0dVzWl3HoavRi24Mi8awXFiWbVjZ/uXJmtVqTbc+B8bh6QsLq5NvOKdhcfCnmNZO03QpfhfI95yf+lDJqde8hVXe0zx3WoSu6+iHgWEwuEbwjYnz6aQwpLHClknjmM5KvCR+yqhGTQ+XarDAwiqiZ6ye/5wnfuDBZz/FHizZyW/Olr/n7ELdJ5Rr1ZYOgXEhoUkqw9sDY+kHQbs0JzY8IDaWvOJvijDXpSkOzadSF2dMYU5bbFxFUE1rDxiGoWdYP+P87ISDu0d4PLJr+Pn3nt/4O9Wd1oaO4rjuhub8KsFG05ZzfhgwcXiGz/YUpvSkNz7JgtPDolfwzse5n1G/RVzZpNJ6AlF81GNwDIT0OlWa9hBjdnR/3kN+07bP0MYhvsYY2rZBVen7LtSPmqZW+Zj3qXrGDKRROrGq1WnVN30AkYJ7eTzlL94wyeaOjlDlF980m5nwRmmsZblccnR4xGJ5wOr0AK9rZCuyaTLyZ7Lzjcs3c6KT77rtEJpc/D6zS2+Ypw4B2bp5O/qUKmMti3bB8fFhrPuiZYkF4loeqU5MRslk4mSOZa6b6Z2i+6akv+f8ZMMhkLYhvPjdXbpAc5KMiX0QrxDr4R99+VNQx8tnv6JpBh70LWqi7rJzRWNrGp3wEsbZqVlgjj/G9+ccHn0HToHQ59suwGhoIDTOdPnRgy94efacM/8S58JibQaTPVdpr2JjQqDp7Q1KeLse3xCFPSjHvSjVh16Ac6BO+cA+4Mv7P0Ek7I2b3yhuFJF5b/WY/PSnHEaS3npYY/NvSA8Yo0lrfIgJETtEPcQF6FCHoceIpzGORhxWu7B/ur2DM3cZOMCY9kpvh6emPpujWXlf+IUHlIDE9WEbOjVCNwwML3+HnP4cGdZYE8ysTZWoxEpAgncQEQbn6c9WvHx1hnMuvMmaJC4ZLCwbRc++5unffkXz4E948Pk/Rc02j138xjeq8/J945cqae+VYXCsV10II+qivGqqh4au6zlvkk2COTCICftjh4pds04hDmFjLC/W2Lz4jbUGMYSHm7jwlqqGdQoGxRpL65VD1vTnP+PxL77h83/+326ny7uo1O8/u1KXEDqu2cGJ5reRpIZfxk9BcD4MEVcaHAv6/8jemzVZlhtpYp8DZ7lL3MjIqqxisarIZnPY3WrJplsv0ot+i/6ifoBkepsXmWzGRtaa1vSQTbI3bkVWZeUSce89B3A9OBYHDs6NLHZldWZkIi1vnAUHi39wh8MBOMCYncHJMe6cx+00wRpgtxGDXFw1QIiddDTcBednsZyUMY+zAlHbMQRYa2C7EQ4GL+8Ydj7j9vnX2Bw+Trz/LuJX931iEB3RWYdpmjFNkyzVnz28d3JyxPmM6TTheDzCTbfJ2GIQ6RKc0yW5KgPPyc2guBog+D8TWuVSK9iSET3KAtETA11CfO8Y49VHsH3/Hr+ou9js1EwrsQSSs7Y3RuJYg7vbl+Iscp4wI2wFCY52xdmuh4FsCbExj4RVxLIts3N/1xoIkSyDZhZr0kp931n8yIa/JmFXJsDlLYCh72GvD/jok0/AbPDy+VP4+aVUkR08dF5hrOUjJ3EYdK7oKCpLzheIq3xa4Z3Ezthk0MmDV1Lf6bTqPifTFSw8N449bm4e4eNPPsMXv/4n+OkMIg9jOjBZGSwyKyMup/KUzuk4/JXgmeFYZprXwjuLn35GRhxDLowBSq8sH6ln+YG1Hch4eG9A3oO9xwdPPsDNB/8zjnd/hdtnX+J8fIbr62tstjt0wwBrOxgTtt1ZG4kORljt5c7ohy2m07Ra39dmFDBEwUIhjY6B7CEyBAZj7Dd4tHmEu+NzgAgctIRkTWTKDZODUSfixyx7fqs0w0UQYEDnBny0+x7GbiOzSp2F9yRMUQwIWkyHErjQwUVP1rohGL2EFZQ+ZOeT0kns4N2E+fhU9qL7IwxPsOQxWtnHZw3g/Izb04TT6QwyFnb/GNh9Cu6uLy97pLq5Q5ZfqsCUG+caKzxs/CjMNLNagipejb2RfRzHL36F8+9/hsOOYQ1E2FAqGizJ3FaiIsvgxbOXmWuvMm4XByCgt172ocPiw8//7NXxYw8is2qxfWj4EYKvAD/Du+hMruw40xK0VGAC2Q6TB86nWTpNI7Oa4zCkAQ3A2YATfih1AgRrSfjSinGAwfDOqQGt1NUYqROMLNsbicF8CzMfwd2mxO+CQeehYZf+BNlpTAfHLsvOWMdQ5KRAxOKw0FtGjRZkGLKEWOp6nj3uJoex64BBzkM3YcbBhlMkZDabYAnoOxPktzgKCvpUwXhEBt4Dd8cTTtMJ5+kM5xy6LhhlSzjeKfx036dnJQsjyTRhxiw+AqYJ5+MJp/MJx9MJQDjbnoKBiBhxtqfoU4FczlBG7XWiodspeZjjpJmxSFMidMMGtGKUe5fwi3pLb/vF3vP8nfDDMHRg3mGz2eB0OmE+n8JeVq2xS+HJcFKKk4xMdUtEQM1F7e4s70OPWSAaBxrh3cKP0soOQzb3W+rbOjFSlBaRarDf77E/XOF4vIN3JzAmeBaXvFnPyV8Sx5S4gaKS3RWikYTea2Lm8K5hRyQTDXLkoB4/LIm6qk3qJfChLH1n8eSjJzif7vDVb1+AeIb1LM4nQ/4iTWP/xzrFesFVkR+1GxeAdxM/oyYh0nbjZAilZZL34aoiGZiwW4rgIUoREWO332G73QD+Y3QdwdhchridjpXxPK4gAAymKXr/aYfXYhQQq4zFPIWGETQ8TkUJwsXLWbe7/gp0a0DGZ8AlBtKSEA/ZxssIijcQTqZJMwyi4EWw5b+ZLR7Zx7jZPg4E8xiGXs5odXmmL37U4oM8QIh/8//YnCj+4xAvWmicgwHDuxPOd1/DHb8ET8/Rz3fojDiRGIYe280GH374CJ01OM8Ot3cn9OYOgwW+fn6Lu9/9M+zhFv3Nn8MqD9hN+gvpigoUt2laJcuTh4qfXg4eraPx22gljRZv7z2cYfjpjC9+8zNs/QtMfQ/uTFB6hZaxrJrihKx4csq36pw5KrgA4GUZqzXY+gl3X/093Ec/hN2MTfz0I2J1ymhLlj04/IJSmKy8mSeXgRGXHMsydIOZCafJYXIODgAsYbtxsIYQ99ZR4IW0NwsEMnnG2Fi5BzjMcijFlrMzJk8Eywwflr5vaMb59jmGR1uFn8+a8gPGTuOkZachCzYsZY6dO0cASixFYfFwfhb5asSBkMwsi1HGe9lr7gFY08F2FpbE77IB0Ftx/Gk7C2bCNDm4ycG5SY4kVDMbcesCWLakTLMYizwznAfGfmzi9u7gh+B8NS5TjjMilJwiRYXofD7DOwc3O7h5xjzPmOZZ+FjRq8441oliv+VzvdSoP33X1F1TnGWbItOhHzbBKFTn/S7hl5ebt5yZaSMPQfahj8OQjALH4x3yfBMrfDjlTfltZu8Yb10vbYY0XuAg4xtGgXcHv2wQMGEfczG0UbRdHUxGnABshgH7qz2eP3uG6WjBLCd2eJbtdmnPuepfV3FKIOc/6TLqXFyystT13cEOET9SM82hjrVqU+BHy2fMhAKRkM/1o2uw/wzz+Q7P//BLbHvAcmM4mHRkzgmEv4kugTaL/fVFMu8YfqHO+ZSBrPPr+qarlq7euMk8LP2fgYE3LKcisUXYKwAiC+riWUmCn8xdSgo+EjSxonwzO3/RJ8RrWikgjQPMmGeOrSl30KHWznucpzOILToMAhY5eESv0JQtQqFVxn0njNBAQ+Ngisupg6XEM+AM9nTAk/EJNt0Gzrlw/qVYR40xaaDIQQmMvRYXtUFmAs4NL6isiEururSMBCFND56POL34PaYXvwHOz9DxDEvA0Ft0ncU4EHbbHlf7EZY8bm+PuLu7xXyWvbK9IRy2PY7W4Pb5H3Dkn8H2f4VuuKycIhdXyqiFc6AngeIEzcPBL2IU/sZj5djLftQ4k++cQ95/wwFXBnnG6XzC3cuv0fWM2Zvg6ESsqkbRtpTcceDKSQBQITgUHixHg8B7kGd0ljH6O3z1u3/ABx//Cexms8APwMInCuV+/eHgV/GfLGmT/cRJ2sYeIdVWKYiKKFE4Mlk4AKfZYTp6eJqwH88yQ907se6mWUNW6cZOMNDQe1l6F/wYgDnPlCHsywu0seFbD8Lp5e8xHG6Sc5cEgVKaHyJ2kYbxJ63MYMBaK7xJMhMVzVwxfpSvUh4HN8lgUk73QDYKhH3o3geHZ2nWLOyqm2ecZ4fJMXCaxcCQeL9WTLPiG9+5QH+G+HWxw2bNnvNO4Eckq2bEgW7msRBDnF2FR/Zo5W2QsSKDHZL2Fz/Vg4jwPLF4VNgiXiFqlotFIuuBQ1wGYDv0YaXQu4xfMStZf1MrtOHCWoP9bodpOuP29iWONMDzWVc04ZHaRnqse7MGRPc9D4oLB3nMTeXloeMXt7MFQ86rDibVwxJZqW/Xd9huRux2O9w+/xoy+jKA6WQlDxl4QqEvFenzEtvyOupYYYVmwyD3LmAXB5X6mOsshr65QUCjWE5WMsZhwOPHN2D/Y/zyfMSzF/+MT6Yd7BBW53HEM+KXZ/jjIyGfxHHMcKGM3dgafzx8/EivBFD6fUKPiq/lqsGIBQ+u4ArkLcKG8ooOcSCZV8sy+2QMoLiCinPL0BptPl57PbymlQIIZ1EiAOVTw2IoZc85Oe/2OGHkLTx7nOdTUBA9mEyxbBsgsAmVjo2GQl9BCMt2Y8MgGO7w8eZjXPUHyZlkz01sa1GpMZZS+hIyw3gfG01+BuS/Ul9CZzsAUic/O7B3YHfG8fd/Czp+DYsZhuJ5rxDrLskydEPixOerZ89wOh7h5int24r7fCwD24Fw++w3eEEbPP783y/o3sI6LvNiNaKUpSiyF7C9UuDtxC92OD4weyy79z47ufIuGwWgZzckQWNkADrPDjOptBCFUSxsRXvdHgIR42yXCUuYY/DMoOh5nWS1AMHj2dN/wDPb4/qjz2HHocAvJszJnNrs8t9q/Nr8JxbPJIARhbOqf+x84nUUtKFDItPBMTAzwTkLd+uxG0/w7LH1Fn1vYdkidsqVzUHO6IYPShGSQI7iNq7DodDpxPZkyIDBOB2/BHkHYwCHquwPGDtWb/TKqiRDvU1GOxSOgaWc8zzDOY9pmnE+HmEgUwRhPIpoTjBggEkcTapZ6LSCgBmAT4NMHxwalKIv1CwpQrEDlleeAZBB148Zv1Zn/6DxiwpRUl8L6sVHlgyoJwxDj+ksXuzz0a5aTSFIZThhGZVCfSZ63S7q4UdUits9YJ0CQN1GtoE03j90/GpfGFoUJXq3mrd6tt1tMU0T7nZH3I7PcZzPMOSkjhypnL8puljkvnKJ7zLE77h6xqG91OGh4lfoE9FnQIEdCsDq+/tCZ8Vr/dXVHs+fbTGfX0oVTRcGX5Qmk9KgI7YJipgGPSyClP7kukT6N3XVh4RdRZ+0msqoozQpRlG/NYbViyakSbcvVzAbYzCMA548eQLCf49f/tTjGZ7hyTQAXXAaGHVmyCpHByvr68jCDFuYboTpRthugDUWbjqDecb+avfu4Iesvxiz5q9DX1KiR0WhJl82oiU8pfzhOyOngyQjRhibUJho4ciUBKFjxWQRg3tmNV6fTwEimQ3abm0gchhozTNO5+gkTDwSn84nmHOPvbnG2M2Y3Akzn+F5hiNxImEMQIbCkpQ8cwuSxiwDNgY5gwEbbLHDTX+DD/aPMQ4bbHdbbMdN9k4d29xS71CDy7DMHAhGgXKwGTsnQwbOeky//RfML34F625h4GENoye91DjPOMlyV4fZHfHy7gjPHm72iXYJXPbBq7oMQjY9YXr+93j6myvcfPLjZceQq5Ef6l6ZwiVLQ2+L57cTv1zVOCslA4p5FudX8zwLbtCDeFJMKFb42XmcnEXPdzid+3DmryzPMyY4MgsNJZGWxEMqEYR5g2O6ruuwGQcwYntyMvPJsu7AE2C8hzUWN/YOx2d/h6fzS3z46Z+Bxq2SZADHfdhAEoRrPf/biF++jQMPWTblHcERwCx18az3L2saRKHIso8NBOdmwIzwvsNMDLDF5IDfPpvw8uxxvbW43lhsR4vd2CGZHsL+WjkjXfpd4rT2AJ3hVN5YlC4467LWAiT53J1POD37Uo5B6/NKk7x8a4nfQ8GuiKTFDGWnjbaz6KYJd3dHMRBAaDPPM559/SwsUz7idPscFrNs6TCU5Jkorkh7/dzsMU+zeORlD+cRvDBrp5+UeLfGEIiDjjBUJTXcHPbox02eGVjpXB8iflTFivVcfh/wJcLhcIVh6NH34Xg7APM84YR4yoQPOAbndMSwhtBFT86UwWD1vy5Hq5ShmtmAoAxSm+vvoR/GNdH54PCrsStxuzA7SdV9CJvNiM7coO86WNvhd7/pcfvsN/BgeHYwjOA0lwCKOk80+lBhw9VYxYtaI0mzzMi86R0rpb6iw4PFD3mAUKNV47eIh0LVgaIpICtAdrstjLUYhw6/+meLr774J5j5BWzfozNDWJmQJ1IYAHuf8ouDqhqzqPeC8zYsmLbu8mCxa8rS/E31ZJUfV1p8kUf0Wh8Hid3W4tMffIbvf/Z9/Poffo6741MMPeHq+gbb/SMM2z1MWH0SnWbrvi0N7JkBJswO8Dy3S/LO4bcE5pK8pUb8dpoAqOIREv1RVnmYZChhH1bRKtMbYIKtKPJh7DxZDBseq+E1GgVK0jAZcYhgCLObMTtGZyx22w2ejwNevnwhBfYGfbeB7S1mOuPsjgAYTBQU/axQR/8VwXcQOrYY/IA9HbDv9hhpgLUWw7jBZhxlCQYHBziNMsclJS4YBOL+c20MaBkFPHnM7PD1r/4OA50w9JT2KwdfVmqJScgr/HjO1rokyHWbicpRKLPz4iH/2e9/CjI9Hj35DNTZRU9KORfkYzuUWhxp94Dw0/SNtWcuvcTXdRPMg8mFZSDgmOGpwzx7HE+TDO6tgbUeREF4wovjO4RBA3OoT1ziZ9B3Hfq+g7GUHOuQYlwKZSGS87o7kj3od8ff4e7FE+zHbapUrHeW/5Qr+UDwaz4j4SEDA2sZ3sdjXrLCkTer6uugPHoPsp0IVI4L1IDZAcezQ28ZozUYBxOW1Ur9xJeAYNNbgg2DUflvwWTDYEVlBqnf8ewwTSecZwfnveyBM3IkUJotX23BDwe7tQjx0pBB3wmNxWgHsHOyTNHNmM5nnM8nnM9yCosQktNSOmEM+WuUjBUDHCvDX5a3hWEgDxmTPakM2fAHADTsQMamTn5NCj00/C4pOfnNUjHqrAHGEey9HOk4zzgee5wKWnP6T+ExqaQiQmmAv24HXQ3ZcCvX/eZKjH5r9X1g+K1HLA0C1Ii3SDeU23YWm80Gh8MVnj+/wstn4q/DswFz6EOjAq5nkZkz2wbjwJI3Y9CDzCxr5a8BmkvQHxp+qsG3wEBj0NGw1i3Tl74ydpcEWaI89h0O1wd875NPMJ1uMT39Gh0DxhtYxGPy4nCTUl71rGTKVFt7wnNjg9O0lhx5qNg149Y0WOFHUu9aiaWBbkIS4qK/jGqsxad/8qfw8wSCR9dZdH0nhgCFafLlAmRjLJBn0GFWa/1u4YfU/tv8dR/e9+XfyJsM4haBNBZNxQ2rV+O2qmjAi3xIMplJolCvhtdmFAAQjYe5A4BttKwYAAAgAElEQVQ0mu1mg9nNOM8zrswVnJvx7NlTTOcT+ATQRKDZYug3gGE4zPDswMaHZdhcMIElC0s9dvMV9naHsRvRkQED2Gx22G93YR9JLlMRwr0L5yDHc885LDtP/gE4v/NhloMTsYHj7TOYURim7yxkptOkfcdxFjJQJ1haA5CIypAyAkiPCiILsbAzAFGaB9zixRc/gyGDq8efwA4tKKOjprhaIdCOlBBfswq8TfipAhsDeE9pRj0abnKFsgLLHAdpnAZ4HPbcsOlwOjOe3Z7giAArs8fWOHAYLBobli1Fp4XheZoFtSZ4pPeyrcS5YGzy0EWSQY486MFgHHF++TtcP/4Qzm4QLXx62XIW2xdEytuG3yJED9Yyc8jGpL3ocVtNqisCzqEX42Bw805WVyDMPuZBBmOePc6TxzRYEBt0/QBLXnw9sMye9J1BPwzwPuyFmx3cfMY8zwtFiFW+LhoNCYCVGRiGOCNszZQ9POxUXVbuCAAZQk/AMAwAZCYBMyeZG7f8yCbDoLYEuagVzthGKDD9YpmqKjfXwEV6KJlYDkJktUE3HsJe+nvAw8PC72I9Kw1WK7IEQmcNxs2I/byHm2ccNxs8q2VWMtbGPrARymUC3zgw8h73YdyBzGViPBT8qBhUZhpcmo1EilO+1JqLMbJ/eLsdcThc4fe/Fud03ssKOOfl8DFG1Jc46aG5GozoFyBxasM4oGcqOX1JYLOuvj4c/Or7jOelGeZycFkCTVHfWYwqpc/bjCM++OAxnPsh/v4PP4OBRecYxB4Eo9qBLmG15rSQpXHCJbPwzADItuv81mPHNdUDpTgCUFAu3l0y7qzxYrzJJtX4a8CkHc1J4W3Xoes6gMUnT14HRylqnCQDtMjlsM+f0uTXWnh38FujwXL1R+tZjWl1uZp2lWpwxCiVpDA5mYHLsl+Kn7cbrIXXaBTQy4yiVUMGQ8YYDHZA3/eyBK0zePrsKV68kOWi8zxjPnrwkWGmHjRY+H6Gtw5kCeRlkGzJoqMOPQ8YacRhc4XeyhLgrhtwdXVIDQO8AmGglfcc9thkg4BnDsu9fRrM5f3qeaVAGH7KGc1WZpLZG3gbBgCmNAdk+gjTcmIc7cQC6a/EiUquBzvGxgLwL/D8938PawwOH30WhANKZTncUjLJ51I0leO3DT8VoiA1UXBFOkK0TS1oo6EmGwayUgoCjLHwZPHiNOOMGbNH8No5gL3HOPZicQsD9pi/IZUO1MAmtqOAY5QtxLJfynsKS9ItDDNOxy8wTz9Cb0bMoYyRAoy4PH5t88fbid+9uJq4WsAqIc8pUjScxeVpznvM0xkGDCaGtaETZIBip+gZ3s3wgJSdGMCcVpicJ8ZpOmb+D8bBtK+Lcr1kmbrMkHkfO1zA9BsYY0NNKFh6L1HjgWHXuCuUVjIYhkFkVZC5RMEpU4xPvkghtv60D50o8R6Q+8TWWJKgdyNz8WbZW4acPKMfr6RDDZ3uOlUeKH7lOHI5CFEXEV8DQt912G43cjTh+QzQCM8TijWMCaTlFEaUsJz4/XJttCEo4R8+Y2Y5jrCJdf7w7cevohMtsSwu12a86u/SY4KxBn3XY7/fBket8X8HhAFHPEar3kcuPJj7zlhkzZcR72KmEiI7PQPd6kkgDxO/CoDytjWARDVwSVgS0iqB0G8SSAxlLIaBcTPiex9/jF9sPsTTu99h3HTYnTuYgcJe5jDY1yeDAMgGHKmBIwPx+mLBpoc3PYzp0Y9XsN3QrPfbj91lrBYYNRmsjWc7OQp6i6xgTcPBqMyGtqQ5MBpFZSdH6OOSfC3lYpzsWBtHlOHdw6/gq+b3ZRkyD64mv14U0ubtwMc+rx6IhgGEicbsSi5ey0qBSyO/12cUiA2D1fL7+CIoxMYYbMYBfWfxgx9+jq+//hovXjzH8XiH8/kM52acpwnubgZuZZkLWUI/9Ohsh6HvMQ4jNuOIvuvQ2R7WdNiMW1xdHXC128txH+mczCX5xTIWHQrmLQPROd35JOdTx3e5Y8rgxtnmaZ4xzYy+63KcuMQtjBRLpTXGiYPSMCtq4gBIHAM59mE22oNZPGd2bLCBA/NzPP/yH9EPG2xuPqyqWTVVQiUwLjTItwS/XLU8sDeG4JXTldIra64eIQtL6RSRBt9EBkwWMwz8ZDE5j9N8wuwYN+xhLId9SmGQWUxxMeBlWwk4+hEIsxyRjml2THwRWCs1MEaco83THZ5//QwffvxYGRli8sFxJJd1egj45Xv1G76Nx2Yxs8y88wxWxyPFgbwcfTZhmhzm8wnGRD5LhIGBbBEACM4xvJ8lnbgSyHHyPxGXn0WDQCFROQ/+vRqEqO4X3bAHyCQcmWMnvkKSh4BdeySx9lhWVpEoid57zNOErpO96HLcVrScRo4NBgHi4MA18+6CnI0eMLNNQ+UKVnU9bPSe0Y9x5mH9SEnJEA8PvwK7xqyWulAqS6grYRgGXO13mKcJdthjPr8ABa9R9SxiImGkl1Zs4kuVwZptW1Ed0RjIDPR9HIw8YNl5oX02sUOJ49rXugc1htD1HTbjiHHcwk3H5CDSmHCiizFg3e8GAUmGysU5oRFkxMKvjgMtXwn99tAu5APF7xvhQ2sGAf1AEZdkDUAc+BkimO0Gf/YX/yN+/nf/GV989VvgyQ0+mizm4MSMQJhZPILMZgM2I0y3ge1HdP2Ivh8wbrYix7te+E7O7QWoh+n6ZQXeYexSlNUVAlVulcopNybgGo+wYyUuKQ3WY2dKYDEMscj0qKNKklxlRKuyNoV3EL+ytwvPVuRv/bylhlxqHwzKu0SCgmLC3GRaPZsmPlntJIjXYfvAd38kYWyMnBtGamhxMIaw11b2pz25+QDXVwfcHe9we3eLu7tbnM8nnM5HRItydLjXdeLMS5+329ke2+0eu+0O2+0OQz+EM5P1zEPinKqsSMeMZU/1DvM043g8hjPtSwd1Jp4Lq4Tv7DzmmTDPHn0XVJE4yA8zWbqL88GKpWerpS42OGeSfcg8TYAheB+P9PLg0OC3PONu/govn/0W28dPmjjkvbZISlVaXr+mF71F+C0Y2xBMMJ4kQwtFZyV5MJYGZxwdiqlBBRl4suICi404hjx6kHEgA2x6wHZGPG2TAcEEByAe7AkeDoxwhF00AIQfgywcKPBwPGqNqQcbgOYTptPLcEpERYPQn0NV50HhByjBTKG9BjloDGCtGN4Cn4riKAN/7x3O0xmn0xmn4wnzfMIQ6BRT5MCXZOTkDyYkx5SEfOJInPl3uqPk2Flqay2S8lp4jQh1sON1ZZjSKDxc7EoF5rK13BChpywPvfcYhwHnvsc0nVOHlogdPBWLYQBhMLIsIsdpYk3s+7SyNAglxWOEftjAkMx+yh7Flc8fGn6VItQ2CCwVVp1HnH28utpjuz/ghXPwsweEuwKNqMAp81quAuuyVLDqmqb3ykIXn3fDsKhH8f0DxG811IMNpc8sFWBFyyBPOyO4Hg4HTMfn4NmD/AxiAwvKXr8Z6QQkFkGtBXIxSaJrHPNi9RcgcDdi3H/QrNJDwa98uHKrMKLyp4i81gRSb0RhwBGfEMGC8f0ffI5xu8U//ey/4Pb2X/AVDDZjB2c3oOERunGH/XaPR48/QNfJXm4y6rQRY4rcxKDaYZrVdkgVHhx2DXoX9xVeVOPV4M9WOsv+leDFKpD/I/NPkqzVOID0u8iMwSZfKpvter5r+C14c+XzBc7VB/epJMV3Sm5m5hdFpdhWG1cNQHRRUaEkjjfrOb5Go0A8H16Ajc0p7ctgAMT5PEoiDLbHsO9xc3UtaYAxzROcc3De5Zk6ksGzNJB4ZqvJ57eG+3j8B0lWIf8cavkZ9wK74K3+fJ5wnqaqXtLQ59klK1g8quL52ctS5TigALAZB3Rdh85aAB7sZdbYxXPOw4AVBhiGDuMwYBgGWGvCiQSz7EOGWiprDCwzDAMdCIOZcLr9Bcz8Y3C/04UFc9yPUzyGnoF5q/FbCNTQ+OMqi74v6hM2TNW1BTjsQWcnHuvJynEszGDI7ODkZnz1YsLpPGFnLa4PHcbBordhdgTROZ1Y7ywxrJETDRAEGTMFXDjIahmAutnh2csTnD/Bg3GaPLpHPRCOkcoYSP28HjQ/MPzye9IvwqXw2tXVHufzgPPpJFZl5zA7h/PpjOPtHe7u7nB7dwfiM+TUBjHixP6RvAwkrRX/H8YYzLMLghOIznrSVoH4WGqjKqEGoxwrmrVYBrC9/igpSSCpgw9em1vovR3YVR1qq9NLikqJXxEnXBAIMAQblheO44DpfAIAzG7C6WSQZ3vFSEvsw0qbSjEOykTkrziA0YPFRaBI+/g3fGfkeCS2PTa7Q+HkcG1h4tuBX41LdR8eFtyo5auKrz8tKEIZj7iN4HC4wqc/+By/+meD50893CR9rvcTbDiyM256857B4ZQVjiOX0kwQUkeFKadnHF8RAJZ+dxw3MqH2DuC3eBoxVMxH6ZWWa0vZROFhUjpZ6rLbDPjJX/wEXzx+hH/5xU9xfPYvGJnRewvLV+FMdqTJl0hDvX2RVb6CgfyN27QSz5GB6zb44PO/xvVHH6MVHi5++VmJIZZ41mk28ASrwSDJOgFWHs8JjHE0+PSzT/DpZ5+E47YndB3Q931Ygh5X6gWDN2cs88Aw8igHSRAn1Zbh3cAOhWwtB5JUpKdlbdlfrgSS2X8wZGtqGI9EfktGchUYyrsEc5jMiMP4JQHyFoJleBfxq/vJEp978skZLvO7GPLKjrgtIBpW0289Y8gZEXshp9dkFOBFA4zKQSpds1AE3dqIZNmhXrJftMbQkUVi22hBAuV/K1lFCERABed0QBqwxb3fBZDMubEkq3f8z5g94Tg5TM5hYsAbg/3Ow5oZxoTZLGNhieGmqWgUhmT2s+tsWA7i4MJRHtGvQVx6l0pEwmxEhA08ji+eYny8RRALojin2cncRige2RY3lb3F+LWexnRBYo203sNaG1aASBnlfTkzEVeJzPME9i60DTGsMAW7pWNM5wmT9zDcoe8G9B3BsAMxo+9ssmgCclrE8TTBuXPYllIJ5NBpepZtAxwEsWPG2G9UtbLgkWaYlYNlePvwW94nbaVZUlluHtiRgPNZykZAcRZ3XGIuVtNcRemPhHcshTqkwYdWRBXJqsDVi2QVZy6o3g2jHJkXHkW5UsvsmOrbgV19v4agVm6qOLpdq47UGjnjfrvdws0z7u62OJsejoMBNclBTnWNtWOt6aoqr+gwRbyszCLxYexIqRthbSfl5LrjLxN6O/Cj6sFSWSmw1HEuriQgHUWFsKLDEPa7La6urvDyxTO4+YTotX72gIeVWYzAJ8l3h1Ivc4oluKx+4nWiXVSQPYJfiJLeupxvJ37t24yR5sPqbYV/xpMqHCM9ohCNcpaw22zwvY8+gncz/vFnLzGff48O0aGZV9/o5CinGzFUJIp86BmYYeCoA2jA1Qc/wu7wBMY2lp8/WPzkp5aVZSxtsMsR23IKWZYFXNJe5eVYIhjVO9iug0E4xaeSreUWkPDMR7lclnPR5kJKDx47KeBFTKrPqm8bPW3Noxx9aiFUm5C2ini516bV1AZS2VgmrygfIRr5XaLQypF27yZ+RRJ1X9jgv5pHV9vCShlT4PA1acoKLfVvkQ7rm3Z4jSsFyvK8gloGQHU4yOQyRh+REVS/3EYlJsXmoO9RpLNG/njUWL3vfCG41BINChs5LIudjYjAZDCxeCg/3s44eYvteMJ+tBjdjL7v0NkOSXKGpA1lT/UA0ln285w91idjQCCPMVEoMxCW0hxvv8D2+kNwtxEP6ojWpFx8oWEUEnWnn8PbhN8641E4TtDCWQsTjStVuqIsMqb5jHlymE4nwE0w5GHDebpiJPJyNigY83yGIzke0ho5YYLdjNk5WQVCspLEORc81WvhlksbDUqewzYfisxs0A2bXJdQH8QSc/WoCm8bfuVlBrRWflKahLBMLLfh88nCWIMuHAVprRG/DunrYOhDmGEmhP/lyQSx/0yYJdJl7Dikl5Wg8FzFJ4ixp+uHtNojFp4fEO8tLiuD1XLmo+qaqfyWEM7N3m4xzzOu9ifcvdhhOt3BY0bdKnSIY0gCFgrqIm7zWX6qlRE77mCCoS8u0VvbN/i24bdQcIp+r2yn8VpHWaTdug3t3xBhHAYcDns8e7aDO98BZMHowuDBAmTh4zFZzAX/Ce0DTnpQEg1xHDmzGrEAacUHkV5bsgxvJ36av6ovLiixBZ5VesvmrbVK0SEo7BG3XYftfofPP/0M5D1+8d/+M768e4qPpj3MKEpI8rlSOafzzHBEcTMQGOG8dNvBbh6j3xxw2B8wbncwxmLcHEB2gKE2Lg8Pv/K+SKvIKyWDOFgoJG3B63HwGAZ+KlVOv40nJPjIvXxDiKvpKp6EoiZlvC/K5AeOXcGLdAHLul+tZW0lt+tCxf4vDfLjOxNXympeXqYRPW0hTmCEZ1I2AzbvJu+9Kn7hdllLKu9bl0X8dsmLb7jg3uo9t3AuxyB1eD1GgaRMvWKDUP2MfE9Vmy2rzJwbPSnQYvPIzuIIJew6m5IosvSEkmGg5ZwuE5Pznm6EQ1qCoYBh4ZjA3MGfCb97dsIHVz2u2YPZgXuXS0txVlPSdt4D04ToMC15q/e+KAMBwflW8PdLMpP9/PQ15mlGF06cILOsqTBVXinQ9IL+luFXMjbphzDWomOG9x2cc/mYyTQlIQaB2c043h0xnSec7m7BPMEYTls3DAAOK94sDOZJltI5P6JjUVSdZzk+LZaERJg5dexkpi0lWiRKU45CZIJ3ZVpIl6JdPiD80vOqAyT1TJeIoB3UEY7HEwYfMHYz+q7DmTlVMP9GJ3X5tIhUMV1JZfWuKdngrGWcMHi0tpMOLvdwylhXVextxo6qGFWnKc+q7qvVMYcUx82I3Txjnia8vLrG6e4IN9+Cccq0rJs/aymtbsoozRBJz0CSD3JN6IZdkrm5Dg+M9yg/XWKVFRodN1GiQYrFo1CnfhCP9Y8OB5xvn8PPR8w+G+ejD546UfYcDicglSQrzPQ7Su85EM6D0G2uF0rusowPBb9l/tpgp5XrGk/9UZE2p+FCzj1MkBhDsPsdfvijP0Xf9fj5//cf8RQzPj6PYOMxhz2VEww8GbAdALOF6XfYHW7QDyO6vg8ORi2MtRjHLYztZLk5Sfm9t8mAvggPHr/yOqFJOk0qZe+y+0wPY1UJ0Qin+8McVy8xB6ggE6e2tDTGEZHiTTQIrsI7gF3JcrS8Xtay5E1qlGDl09wPxjoyfHJECJTEKgiX5WPSM+MPF/RZZPgeP3nU0Nmr2lf5tkq4+KT9ODuEuPCh1m2x3mjwmowCUQiUcrtdiAuskBJLlpBQt9zQgTjbnQfasWEg3LdyUqUKl4YAYw2MN8lAYMIRgYv6xUbJUC0bIJJVAEwGbHo46vDiOIFoDgNEOXO7sxbWdEieQiGDDzfPyjFdnlmmUPXcAQC9DctmjIHzhNPsMd89g5sndBtODuwyDfO30cHe2qFabx9+BXunOESyFBnWousZvTa0qNF4pP3peAyGgTtYnsV4gjyYJMjMiCXpFOUMdQ/vxYFOdE6XfBeEr/MqASwESOxUiwoxA7aH7YeGYQoolp+vyOa3Eb8odbVoXPfWmjuE3hJoJIzjAMQTCJxD3/c4Q3cdeYBAFBw+rlCgmKC8l1rhHZdfxLzkOMJSDhOo2Xe+fdjpxwVyGtXivU4mfUFVLgT0vRxlN88zDocDXr54ieNLB49baG/yUQ3hOATkbKBZGztk+iwelf1nwLQb5OSBtBVyZaXH241f+G4Z85UHkGXcUInqdugstrstHt1c4+7lc8ynF/CnCeQNDAws5YMJORI0Di58qXSyjqcqpY06eYBiMRyeFHWsw0PCr7im8r6URVVsJYOXumxJnAXHW2C72+CHf/oj7K6u8E//7/+Br6nDfrDw1sB3V9g++hSb3V4cg40bGGuT4ZTIVLLEJNEq2MTjeQOBq/Cw8Csel2+pjhnTrJ5RSYclby7jl3KxHLm1hpB5Vll9EZLNS89jcqT67jK8q9gV1w3jzrJ+NZ+2w0JvRPQZqHSh4n1GVcY3lN8QwgTihRVyeI9fqc8uMVg9lUDn3Iyy3meVL5TJtmLveMsXygG8ziMJo2RZ2dxxoUwVwVHIfgKlQXnRCCCD+DTbH1PhBqMV+ef7vuvEGGByCWY3F8u+0x5wL89kZb8MRGzXgzgcEQELJoPTbDC/mHB3OuPxrscHuwGHg8V2tIgbrjoDWMPo4rLmNCFFANmcb8iLmXE8i0M8Wa7uwWA4bGD7Hhys9qkSka+ScpR9KDTGJSG8DfhpEZk7m7KcYuTpOouh7zCOA06nM17evgwzyoB3TowC5xOO5yMwn2B5AjxgTC8exz0AknNgO2Nkhhqy1WOmaF4xshok7fYo95ZHskILjgBMVnhkmaUfD+iHEbazBQEZET85mzQtX1iEtw+/4hmpd1SVJ1yk5k0GgyHc3FzjeDeko+zAHrd/6AFMic7xOLu4QiCWcblIIGtG637m1TfxfzQAUX7edd3FejRTe+OxW+ZW4hi/1Rhj0aFqHOu0O2thdxtx1Np1IGPwq38GXpyeY3YO8B7eBEeq4UMXHDim7VUKhxgq2014z0kRKZRiFmVoe/gonPzCYCIY8AUc3h789G8TI6owJhWX1Le1TkNJ/QgkEa2OWbaGXO222I6f4ObRNX71q2v809/+B2zA6J0DzRuYfoAhI9zKWV2t+6y8GoQCVrURlkDWwFOHbv8xHn/vx/ErXDj/463Hr8So5rdSxsbrIrUazxA4vuSKDulG+sJxM+LzH3yGTz/9X8FuAsHBdhZ9L85zU2rJiKPkbnwb5XL8G+tlKO2Nbod3BT/1dbPvzMJ1ycM6Pie6Z78AnPSSlsDUk5PcoHdpDMi6Zowfne4uw7uB3VJ2NnCsKqzvSSVygSQhzYiJMFOp60Qlp9Qx05WOG34J0UDQCu/xK9JX71r3Ocv7UNSpLtPQMQLa1SJikpMIKGK3nt9rNAqs13P1ufotrqr4esAggi80iNQo8r+WIr4ACpAjGyh49rcWXdfBeQ9DBo7VvuSk8Yog9ezgZjkbHexAkBMIwgnM8PBws8PZz7izDqehx7Uz6PoecDPYM6wldNZg6G1abu6cF8+b7gzncv5RADsf8+e8lM524gxLlzN9l0mR9sOWG3SWeLxx+K0IzoVwzEyti0A270E/n06YeAaRTx5Nu7BCBGGFAAiIY4t4gIMIIbW8NWBgihJVI8xKcgtvRhGbFdmYAzPDdFtxTqeUrfw9hY6cLsqStwa/FCfiqIGrSqVwUJ8AEO/mvBmTTw43zyAzwDsH0xgAlLTlQmkB2oPHVqijSZ8YPf+KzxAhVuY5VeNmePOw0/lr7ICERjWALK50PPU6p7vsKCk87zqLzTjicLXH1dUVXnxl5dhPOXMJsydwYNA0KAxGW50eo/hRxt7KKITcBpwH0I3YbPdq4ITi7PVWeLPxA2osyuvIpyUf1mlQ4+NyMJn5i9NAMs/0krXYh33o//jTPSb3HFcwMDMAlm1xkSk1qxZ8GfXWNKgRyngiOFj44UPYYYvd1TUePf4Y4+4q2ysuhIeA3/I6XxScqg0CpPPShReCRadk8oeK+uWaZeLargN1soKSSI5hNhT4FJSiLo2yZeVqyO7D8MHhl76lV7jOMleXoORNVSiFY4KVUR7h3AhF7aozkomW8EiasZddl5/vEnZYeX6xn1WFWZSSFtUGoFX9FcZRWBcx1qK/x08lfhm/Ou/ys7V6r9P31QLpRezQffB9nd9rNQog5r/mCjIGKkhVXtGy+cW6URB0sWFonwB1OrR6p0GidNyf7yw6J0dd1LN/RLJSwDNjnmdM04zpfIZhB0Ny/JkhSkKVSTzbn88O5+mIicNSVG9AJM7vZkY6H12fNpAHjJTICUZYAo909CEYYSBpA7NkCpTUL+y1F5k7R38T8NOpUH5W5L0cJBflIIDIgkhmMvgozgM728F3Dv3Qw54s2IW4oMxIFN3/IZ29nNJm6UjLwb0OLd8NrH7ruB6236SjnGJNMhQZw3uFxxuDX5Vh/KWM5bIjrEqV5HC7A7TGYOg78GYjDjqdQzde4XQ7A5gBNI6jDAkkWRnIqgeMdSggjgUI3+jONPItmXyufZQJ0nbvGZm8Udg1EAw/ESv9JRXv1DUudZiN/pAI1hC6vsN2u8X19RV+ZzsQhSNeER10Ro/ycQ+raEFyLjYlfo1+d+oZydQOGgPObvsI424PECBrhQDiSysF8vdvJn5U0VnzE6GO3pxxUYVPHFx8o7JjQlquGvpY5rwda3+4wo/+3V/hl3/3n/Dl7Qt0mw6HmWA2Bs75wFecTm7xLEZ3DwNPFgwDsqPsPe9GmH6HzeYK26trXN98EAz9Pch28D6uOngFi9/bjB9KLEvUljJ2KWsXJQf0zG+kjT5BQOdb8XCarYQYBoiEhwrv4gykpa+VXE6rtbTMvI8BHyp+tLxeDHhovR73bTEoOkL1TN+VQdM4f0egUh8qmhChlVKZ5LuAHQrsdJwcdcmvRUkrdmuFmObFeUAFuVwqwBZ603vee3X86vuqnK1ndbHX6HhpkK9laJLZ96SH78IoUFV48bpRyMXgIFxRxik1AFINoliuumggFZA69aoBWmvAbOF7OSIQCE4AARnkg+DZY54mnI5HnE5nTKcTZNY5DA4o9JdGmIu8gXczzqeTHE/nxtAZmmAUEK/aBIQVAL5aTqcGkcoYoDtRM1zJ7HJYTqvFe/w4OoWJs8336kZvDH5lftkgUOercqbl9yBCR4TtZszPGOj6HuMw4tgdMc8Npg2EF2GkPtSJ6CV4xeuW6aWxq4soLZe0/TacbR/iMquy6IrdI5zfGPwa/Nfq4Fr5a8wX5S7zstZiGAc47+Ccw/7wCNP5DHa3EMXGtT+l9TsAACAASURBVGc/goIqwxcgKkE15RafcsGZTRN7Xl0UUw/vVpfgqSTeOOxWBvoredXx0kMqa7aqY4R231uDcRxwfbjCMAzw8wnwZxDEAGuTclB+K39KTuNa7BWNKRr34qsOm8PH6Lo+0y0oVuvLz6u6rr3+N8dPIUPt64VBIOJW8G5tEChASM1d+p1cbrmRE1x+/JM/xziM+Pl/+b/x5ZdfgT6x+Pi8wRyA8CDMsPCmh919jH7cYTtuMAwj+mHAGPamGxP2p9twdrWN2+/kBBntfPdes8BbgJ++bxpLqZVGu5wR11W+VE4Gs7EcuGScLmwGsYyUFVWhDWeeVPELUVokGHWYt5///jj8qFn2xfOF7K0NswU11mFsMQvrC8VTeuQReL2UvpLYwjDRyvOdxa6sn86zzr9ORRdghSNX39wXKzUDLgrYDu/xW+Sh7pZlqJ7Vqa+GBp0X9hvOF9lF7Hrqr98oAKAQHAvClUSixW+ogAKODKnGEWIQhXhUNIDlQIIW6en3BNkAYC3Qg2VJclAS5bx6qQ57MQqcT2ec7o44nY/YgWFIvByHzMN+VwNjrGwrYMDNs2wJUHt8vJdTBmJfm/dzVUSD6jwZ0qGGwtvxAATniIUCF8cr4T7uXU+FvDe8KfhROz1axkn31QWFTIchnHGsVmMMfY++7+DPYTMARYLlbynPWSTKxLdx/2sZGvSNjyIu1TcMoOs3yMs6UbWBMGCtlm+uhzcFv/w8KyiqnVZlKuOpoAVqVR9CWG6+GeGdx1VwUHe6k+09DCOrNpLSKWVmxMGjesdB+Y3DfgVTSx2NfBgNDHJrcxkJSGszce+QUqX6b4WdSq/ATl0XBbuglKYyVgN3aL5u1T1QwBDGvsP+sMfV/gru9AIwDvAOhg0MjSldDjPJBfm4TK/MTSLEGekkc5lg+gGbwwciVwHAEMgH9O4z6hQFeJPxU3eFXK3LW95o/o3Pa6om2hZPOdEy5rbb7/Cjn/wEV9fX+Mef/S34/Gu8sB7b3QYYHmHY3OCw22O73WN/eBQMpuJoVzzTk6pDrD3JMYSIkFJhi7tvoY6EtxG/mG4RoXreSrc2CNSMWh9cF7El1UeyTiBd1r4fSgma6144iExxyrrGzy8ptjk8VPzKa8oR0vMWT0tZSrolREtypHT1xjqJGCMth47xsTbwlDhVhvKL4d3A7lUw1XnU+df1vhSWdFe4ghCF4mK+kET/MTH2e/y+EX5l/jWeyzItqXJ/UCiisKpSfE/iV+CeRL8Do4AWRurJ2uDtUsMIf2NDoOgQMDWU0DjqDOO7lB6t5sckZynLES0y6xhp61zwLA8P9gzvPLxzmN0E5xzi8mQiAsJ+cGYCMcGSRQeZFYkrAFKeaitAYtG1ZXmxsNEgEE3sRLD9Ftl6VhK3FN/CNvwqFr83AL9aOK4ZAZqrCzTTq2fi/C2yjyzZH4YewzBguuvgkM/jzXUu6RCNN5G4r7oHXRck7V9HTFOuun4M9eFAEzUwDTRaPz+iqmy8eiP4DypOJfRr/EqZWtR0odhEYU+AJQBdh+12xH6/x3a/x/l0B+/OYDbwTIg2uThYICJZnmziECLCWuJTX6dn2sATBx8AYDvVfinxrthz+B6J/6Zgp1KlMo/0TSVTlx1xzYeljNLx4mW98tRag/12g8dPPsJ09wwvz89AxsHCgXxtrMudYjyyZ2l6yzI2GX7Dc6GRAW0fYbM7BIMRZxom486l8Cbil1JO95n/lvHq57lsKu+Yv65TCUYAlEDVktKYtCFg3Iz49PPP8OjmBs+//C3gXuDT73+MfnsN2CElhUgHYxAlo/aXlVfYZUevSYLq/O8TnQ8Kv/Ddgi8b/KuuS76kLLs43aotbSU1Ur3Scy1Xa+LH1TkST0RoKS8kWh5U3r8F5KHit7zOn5GuwOIZNdIsr5YD/VZYUL628Vz8OuhwFyM9POz0h/cNItf12ppuZR/b4qxWSIa1xRL/WABt2SnRbuGwDO/xy2X4I/FbkLiNbcOdeetjFHtHLuD3WowChJoQKMq4/o6qssp9XB4Sr+OZtZTiU1Lsi3RTg1peL8qUngcmsARjDQ57wmYccDqfcTyecD6f4Ryj6yy2mw2Yg0NAP4POnBsoEUBGjAyQJesDWXRWcnDOw5rY0ONOVe05mRJxYn+rO0EO2o88kz2a4/YKne2yc98UN9Yvd8oMCnaHZeP4bvGjzPiLdFcUlRUmo/InXdbMIsUh2CGcSjD0GAdxSNdZCwLj69MLeH+WySyWHawETkuUCWFGkuOsfYVdpbIUYlXjyQELlrYjfy3GzV5WmYQy620icTk0o2zzmnbfFX4FjlVGqwNDJYx1eQpB3yhrjeWqEYEIfWdh7QZPPvwAcany0y8d3MlhCv4GyABDT+kAB+d9kpvs4+FzZSi8NEPhSuomtAPngfHR93InFn6j7aHl0+M7wS6mo7Ar5CRU37HgrwK5dYU1fEDqY1rEq7EvSFFiHcptDOEv/vwn+Pz7n+AXv/x7/OoXfwPjb0GTB0agGyD098iruiKf1ZjlPQJwJEvTudvDbm4wbPcYN1t89MkPQcYK3zMHHwVhi1bDCvg24FdmuyJXtRz9I+RyjJuNLGJwj0dJxQikLgiAsRaPbq5x8/gRAIiD0FD3mF40hHvlTDL5Ao4yhyjaypM/l5K81LTuvcn46fy/GX51Ge+Ryeq6UIojFsEqEPs9UOatOqQhR0VIru44rXrLb0KORUj6mbSWRX5vN37192v4XUpX8ftqv6rLWxEofRy20kX/N8nGmo2tC3N5S8mpgvbV8zb1fTr/7xK7i9fxV6dbvqwCZaNa+bMIDF46quP8tzU8fY/ft4QfVe/vCWumgsC2OV50EnvPCsfXfPqAFCIVW1e2ViA08XVcouK/fpbjVopqvkx3baAbANe/nc35h+fn8xld14G9x+hGnPoTzmc5i5xBCK1Y8ufceONj4c0IDld7Xgnx2LSo1RTCN2u0UsA4C8aQIxFJvg/aUFKMYtpx9jPNMV9oIK8bv0z7PGgqsYPC9h6GVy8XacQvCkaWv8Ya9OjAmwFD3wPMuNpf4W77COfbpyBMyqwa0kxA5q0Hl7yRN2eWww8j/0/BWNhesIxO0EjFz/W8vDfv28YvYrHkQ41gmfarKrG6EBq/+HcNx5znUnwaEoeSV/s9rq8PuHv5HH46w2CCGNIAICw9DgI0OfUkCmei54LkTQGcMs0lZvj4PuBkTIfN9fdSnJQa5fTWwneJXfwyf1vLycuD/By3PdhQsQpwi2rU2CvqxDqLUsCgvsfh5hH+7Cd/gd4Y/MPf/Scc2eFqJhjIaTHRESvHo1mY4QDxSm9GkOlh7ADTDbDdiKvDh9juD9js9uiHAdZaGNOBYWNzENnOC25thu8GP03ZBmaFfKQSsxWeuqjAaIyKPrf+LlzoLioqkmpmqvheFUjjzmHbRqS6tFMGUzwaK71I8rJ2iRZ5WxKnRK1LKL7Z+KGiv8avrHeTl5v8GdO/H38kyrRDSf2VkMALN6RSXQFG2gPnzL9D3eVNxG8dS5V+JeNruZ3fVY/KMwcvgKk4qWCq+zhsPbzHroWdzlcXpvF9eVOGQhj+seFig3iP32vAjxpXOSwBTZOI2mZHCpML4fUYBagEMD6kupJU3DUUSz2YzgNJivs7w0eV2MtlSI1BxVjkoUuwfGbiHn0qyz/PM7quQz94jOOI4/FOBobxv4KXqA0lgOxgp7K0E6JcXlpiF9ZzEi/bne0SreoK6nFtNsrzgklj5t8JfoWSWSZXDDIr5qQics1wOo18Qajih19DAFmDAT02mw2Ygf1+j7vrx3g6TYB/BoasNY/z9UlAESWjQHTClFePR8GYQ21IX7BymHUhO6Dr+oKmwBI3ZfMtw2vEL6aZMWgMGBWNiycKk2VZyrZQpluXsYy3pEKm7NBZ7PYb3Dy6xu2L53DnW/BswE628lhjYKk8+jE6Q6v3UnKh8JSNajlRRqB+xPbwOPMjq8hEeX9X+dlrx674q2Vkg7Y5m3xdG3PoAnZFKmv4a95VF6RnEJlzu7MMaw26R9f487/8H7Dd7vAP/8//Dvv9Dt1pBJMc60pEOKIHdVvYzTWGzRXGzQ6H60ewXS8D/+icruvFMZ0xkKVWUhDvK+GhiskrL75T/AravwIOa/xUYNpWeJZpoGoXRcUQvdPLIB7RormgQYseYa4qp5XkqopXjSmzA8kal2X7Wt149Ubjh4LeBU5aAV27jvVLAJZ56ypRVa8yjcagIOGrgtq/SlUEXV+5VzNYNa2LNOs6VOFB4Lcsl063rPsrDE4azwsSrMgx/eaeYSDahoEcSgNvO8577FbyqsrZfF7xQ41wAZ4GtRlqtIU3y26/3Wbe4/ct41eRucWDLT2k3M2lblheNnWXEF7bSoEMXPW8VfnUEFSscG2CQl0MKnMmRftKzbDobJblWDTSOi31MsxNgawuN+N4PALWou8shmFA33eYQSHFNjMWZVchrhQg1DPBaTiiKsh5QKmxDisFhF5hPYCaTSmYMS3/WyvRd4DfWscUGa9MvCzHIv/yQcH6dfkXwkOeWWux2W7CUZAeV4dr3L68xfnlS4gPCQjNjHxoQl0YgGevLHKK4YjyKpB7pk9iWmDxDdF13VLJ1pUMM9p1/Rb1/Cb46esV/Mo0lmaAmv7qoeLPOv8aEzXQaHyP5jd1W2KAGcYYbIYB1zfXOB2PmG6fw52eyXYftjAwYRsPsoO64KU8GesyI1YFl6C3jRAAGANDFmZ3g3F7lWiXVxogDHK+Ke+VD78RdomGpOilQdF/NG1LPn3lDjTnkBJOrUfjT0XGNSWQ1ldU+RIIZAB7tce/+/O/wNe//zXM9BvcesK2sxj2I8z2Azx58oMw+z/CGAsyBtZ2wQs9KdpFXy8hkyhjtUxT5ZCtO22t6vXil9Mo+KylINU8WsnWGq2yHI22Un3XxLFKsVwlAKxronU7yKnE+Q2xpXERN7YQjgbVxGOtBkVZbl4qyXeFX0MpeVX8Wn3tQu9pPpeP8+evkFf6KVJPQfRMQjktVX+TE2myuqrT0lheJtFo/VU6DwC/Rp+o07/Ip9RIo8XLmjYVvhLCZEf+NIUS3nWTQVPtiTeN/u9hYLcsl07/m2Ony6jj53cFZer3jbu1R3qG/49ZUPAev4oOizL+MfjpumIRCGjop1zHKAwCl9whvSajAGXCrlVCUxZYxBeiUtiPSwqMFGFJVAV8FbXOXZWjBm/JTGQQjqGy6d0w9DifGJ3tMPbioG4OSxNzCDPLFLKJN+ktWlOMjUDVtTIMqLfG2jD4yPRsy2tO085NufCt4Yd1/PTXa/gVaaeSldeagVbwb9ajYnwi8R3B3sN7j91uh+1+j9MLC+YZDAN4D+/DedkRzzCQ0MeYpdDCNlgI2gt+CI4Z/bCDTUaBglIqEcm8PbD8FvCLgrghnFWMlGCVXJlR0c4u4bfkxfr7pfDWqQZAdBFIHNRd7bbwH32A0/EO093XmOZnsPBgRyDXSSfEakAhI41w9FaDifT+9Ig9UfCKbuHMgO3hE9huKMpOQPKM31wp8JqwS7TTcVBeV9RvPNF5NsEuyqeLqQeV9fdUxgghnqoSf/JQL7cbEgd12xF/9T/9L3j+9AuQe4mrrcX1zWN0m2ugG9N+ZzHOmCQjkxGA5fSXoi6VLMntgpO8aovu140fFXE05ZYKR6OPVPnV5SnkpX6uiktVWmW5i2rJO7UajWO/o2mx+KbMTBvL5a/kp/cm52+yQlsnnBf5xETXBpWvAb/iftnaSXOgoqXmmfI6X6TUNHZrPLammC7Sb/N5gdditBcmIgrKvEoICbXaRetBVm5WwtuDXxMznUZjoFKUV9Wl+F7nWcmDugyXg25j32IoylS+eGjY1WX+V2FX8X5OooXmH4udfMH1FaHSg1opv8evyPO7xG8RsTrdqjaoXwivcaWASZWiqnZVu0DdmOpBZPEXGbAl4Bo4nW553QSi+b2KGx5aa9B1HfyNx+3LO9ze3cJai66z+PnvNjB+hhXvdDLjSAxD4iDLkoEJKw6is6TWgJIXF+UwktV/gJLS2/dDKGqumzbgZ8VInom+tnTWI1XO+LWYvMYwGXECvVo4anoWTJXSfEXmXSg76uuK8XSxlx1rWZ7tZsTQ99iMI8ZxBBnC13/4HdzJY57F0aBncQgpH4qjQec9wCYQvF6YE7AtRhA1t7Oa7Rrw6OOfoB+GtL+91r+ik0jPfpXFXwk/dZGEb/23udVjZbChSrPsHFaEr/rRbarkxRLLZRvS5CwraowMBK0x+PDxDW4OB/zw80/xH/7P/w2dO6H3ABwAJnSdOAHMFlVhEr/AD2Ay8t9YsB1hxht88P0fY7PdYuhHDJsdYMIZ6WA1OJJVJh5IZ6bXIfLkWge7hl0pP4VPincFZSNZtRzUdL4fOymjbhcqfZV2+ckKH9ekSKNAAinFhIr0cxqHm2tc3zxK3BJILTRI56BzckiXnXxmORWrkJEuSl0849VBZY1fWc8i1W+En6p7hVPJt9X7qpz3LTN/JRxX0tT8qF4m3pEyNoyn6rsMOwV8FY0Q4/Ais+wtpx2WxboQ91+Nn3y8il9jcN6UqcWzBsYpqVeRs8vrRX7Vte4v01XJBjG1bHgDihmpRVgoN1T8uS9o1NbmU958/DR2Od8Sx8j/Or8ynYIrFv3hsq2s3zepo4JWRNsrBxbxAGVkr6PwqjuINxm7lv74bWBXr5ZryfKcRoHgsvxrcS68yyxZ9XyqvnoCkwvjQJ38e/xeG341z4fQwm+ZR35Ni5dleH1GgfBbDrDbBJLLNuh1vIxESZ66saF4t8x3rXEugSgbBUAwhjCOA7yXkwdOfMJmu8W4f4zp9imIXfCLyxCv9bINgSguO1fGAJSiVPeZXD7Jd2kKTd75wKQyS5nLHPrm5fmzaaHAmlq0hh8KLDRNEmOFOPVfnX+FTP0QVD+oytHMP1zXCuxiEKOSrtmLSM64BwZ4ZszzjGHcwk0nECYwK68CQWjFcnmWkwkaaMXEi7pEHMUPQcCSDOzmCtvDI1Fa0yRbWwwQ06IORT0bdFtT9GrhHKlTolD+XRMsLawahSsLoK6pfqcgLJen1bwZuEJ5lScYkDpexxiDRx88xg9//Nf4x//2H/H7l89hRovdeQR3DO/y8qq4JWAigqcOsANMt4XtNxi31+gHGfxvtnsMmy3GzQbWWhBZ+Pg9RT6lzJCI8u4CdtTAriLukv+0HCvTb2FXDe3K92tB81IDx0VzJZWyui760fTT6NRqnPWzmEYqSJ6VRsGLBBBnr+nKe2eigXZ6tqhulKcEKGc9a/vyvlX8qucFM2iaUl3y9FW+WzUINMqT0izlacmfDcUIZfHqUKqTdf+zbD9x73/6TkfQqwXuFToxQW6WqywFXi9+ZRXL4qzQMQ0kNU9T+aSV30L3KdqMKgtdaitliZrkUyyYtyaqsGCvJb+/Skg+exirkP9b40f18wZ+lwYlLd23wGjF2FDzz1Knbd8v6rAIit+ackatpGqu3nn18CZjl75/DdhpObtIp06rTqd1v/asEeo8dIjGgFj2+47Bfo9fI506rTqd1v3as0Z4FfzkdX5/aYH6azuSsGwApSRpz1C0GkFKrRRk7QwVCBX4leBrN5gyj6WilEoGMkDfdeBxhHce7D2macbh5gmeTjPYvwTD6ZFfmlym4O08Ha0Uo2hlhduitKVCacVXnGS1lKgGweIsWaMh1fhpeqD6pmaY5fdLZogPWsxd5tPIW6dH6knFmFXzacYvyqWCtQabsYe72uH6cB2c092BHcMAsIZkH7pRiYTTJCLksewLHGPmnE+YkEcGhnr0hycYNzsInuEbbagPhJFTLdoK7hK/mr+Kn/sxvKBw13SumCvnvlbO6neBjUqGqjZZF023oWhoKdtQ4A1r8Zf//q+xvzrgF3/zf+Hrr56i33T4cB4RV5GfycLbEd14jUcffYbtbodx3KALDups18s56WSCMc6AjFX70i82wnR7X+eZSr0ij2L0NcXwghBoEK5+oGnX+mQNO82T+aLm8YVhJ0iu9kx9WSwqM0gv00yzGn2GlpDfRhkZZ604f6/Trk0UBMhMWVWPMtbyxZKvyjKX+JXXKudWaRpB0Zqq56ncFV1XsVsrU7s/aMoVdSErZmI6y5n9ulR1WMxPxby4jnUp0KKcyyS/bfzqxMKF4o8lPy1KXD57BazWytRSWFvXmj+XdW+UsWUQaNva0EDzlUNtpCjLUURYPPsu8CsiUn6b/mgeKZ5Vea/0ya/EqzqfMvsS7/jFq0BxIQ7h8kCj/dE6Tq1n7wx2qmxldep7lWYRpQKqahf3B65mleW7dDzlqgzIcVvP3uP3HeInfxb4qWxXw2s+khAoqaBtNhV1asEFYPl5YwCovim+TYDXBG40GFXWBbEaDZoAWGsxDLKEW7YC3OL6+hHubu9wejGBcYYsW53zsUlJIQoO6MIMpp74r+Vq2XWGSJRfSnIGYDEKrA3026nyxcYR82wNytO1YiIdq3W5wuEtoJvj0SJaxZg6EjXTKEXHkmmjgUb+WmOw34z48MmHOL98Bnd6CngHQwzyBEtDSj8bd3zCspyQKhs3x3/J6RWByIC7EZurj0FWfFeQMWngUgTmeLLWK2Dd4rWqZBeNOkXRCwK2jDDU+F0fQJS8VfJYhVdhSKz+aoaoy1sIbwmGgKvDFf7sv/tLXD9+jH/5+X9FN/0Wthux3e/QHz7G5vAhNrsD+mEMR30akDEw1oQU838GFI/nGeRYR1Ylotg26NI6HUWve7HTcdoDnm+Gnc7mkkFuDbuljNZKfEsuF8WN2wUoyLoqFG2zkD15WWuWbioJUt9xNj1wTd8qr3I1ACGd363TvhDa/VxNuxynlKn3Jp55rM6i+nxdnmpaVu1HpV/k1cSzVa8crx4CJlhWaFgPSNu04PIdl5RoTk4jOvW9j7jxk28DP2pWhYp3VEZrAFavkqqxKp9hUaYFfi2Ft8qrLIKKr4NiugLn5rh/1UpQvG2uGmrIk/vCvx1+Kj2VT3NQork4wX5pUFLiXBiBiiJVWnKjfRUUXBgLvlmQvi02hn99eI9dWQeN3b246TRbQb9qzFyV6t9SZr6KAeg9fmUdvlP8ijjfrM97rUYBAAVhckGpilO1nFbZaeVmkV5jYI8MVPOb1Bja8VuNwJDks8GQjqUbTydcHQ44H1+CZwewh2dxYuUJxUrHOKMYZ4tTdsWscGU0qAY9PtrkmcFsZOY6eWGGTqikREqL0Cb2kh4FoRQdljE0kze/WjBwm9EbObcU2CrfOo01/wPLrBTxwwjPGIOPPv4Qd8dbnO+eYnJ36OFhAcCLr4hIy7xUHElisko6kjw+kygyw8xEmMlivP4cu+snajRDyZLaksHUEibFe13xxWVFU9XWiw/qHNZyrAf/y8+L4ix4S7ebCuciXS3Ua+FHeYo4LfPmnGbIggL/jtsRP/jhD/HkyYd4+fUfcDWccX39CHZzANkeIDGyyUoAyYTD0ZPeA+zVwDLysKGFcS/Xp2SMBa31N6+EnaZbw0zakI2rocWQxWvFX6vYLQclOVllEG7I1aIcmnH0VbNaVEcFgKITLI7c1tsEVPn0lpO6ODrxeGwaqXRbYR2/V2j31XWRThuee14u28ACR5T9M+kykPoqg6gvm9+vtd0UXmGy+LLNc4VGl/KMaTJwyaD6reNXJEXLdFu8sqBxprX+cB2/nLDGu277Ld5c5KWvlhfhMuoj+dlyV3m7z8qfFApP/Wkphy5xwhuA3+I0iEb5ikFFjVNzUFKWPT+r6NK8Dt8sxEE9SFmnwX0h6rYpnXo+I0rmhe+lMg1djnz5jmN332ByjS8q/Bdh8SjoNaoflrKqGegLTeM9fm8ufvH1JZvOa/cpUBMw/VkAk+MviFgJLsqvc04xjm4wTYuPSknlm9tCRf6FZUg9M1ZWDPQ9dpsNAISj5Ay++uLXmE4vADfBeQeA0dlYFAazD2dp6zXihLz0o1ZeM2GiMYGIBGA26G4+lfpW3MqqbpwfgojgvV9VjBJd1JOaCZoxaOV7rXgU9C8bxaUB4CLdlTaU06jaxuo3mS7xGZMBmPH45gaPDge8+Pwz/PSn/xW//uXfgOczjO9g0aHvAXac/UMEp5F5Gbl4sGeS88+ZOsCO2D7+E1w9+gBX1zfohwFd18F2G3jPeVtCNPAEZ3+phRCUEeISfpfwqbHSfLf2vGoDFTYp5ZbcalgMFmm9Al+u8mQI+jz0OOOsy0rqggAYa3C4vsb19XWKw4ZSHgTIMZWI6UaBS7kerAeIy3aV1Z/YuLDKd7o+i2F+RYMct+SztecX5V/8u4SpjV3Fk622tcaXq6sEdB5rTnOoekblygxGxf8qPutK1TORq3isLXFfJLGIs0hRt1ctk/RVQZBSaah7wPQb0ypgUsi2+Lk2runyFNhV7Xl1wEqLNlHzQXzQWobKi4vW961IZdCUqR6GT8NGkmbDK6N/E/waL1HHkLvyvsSmwjD+rUZx63rPH4ffNzIKtBhRlb+ewHjVgaXEUssN1iIVy4D+7fArea+Fn6bjClbpWxIMiiJQiZ0qb8vRdvbWnsu1vI7pljRZYKS/bYRLA0Ku+jau5DiHCRdesai+x+7bwG5J20uYLcN65MR693z5Hr/6+v9n702aJUmSM7FPzT3iLblU1tINdIPoBkByBICQoPDCE3nigcMhKRwR/oPhP8Rc5jZXcuZAEXJmgMFgRy+FzqqszHr53osIdzPlwTa1zd0j3ovcyq0qX/hipqamn6mamdrinm4qk3eN35Jw9pUC1VDlmdLneUOYp6Uyaq1T1KhvBXBJmkCrMpDMikFEQNdBKYUnT64BBvbP97h/ewM97DEOCkq5/eME+4k+omKQEbOxubDovPqT/eOqAvdLtkIrtcX1i5+6iswubiqmZDk72e0LczPNsklAvAAAIABJREFUUnCF/LI4LUiT38brehSq/00UtWI4KL2W6fOyVA2XkyuBQMRQCuBO4bMvvsAf/fF/jW3f42//w7/F62GHy8MG242CYY1Ru7QuvSYF3W2BzRNcP/8xtttLezDdxSUuLi9x9eQ5ur6DUrbuAAqGOfCcL+6Q7IVPSogB7zEh75DXkCigI/mMGslSupTRKuimQGb5RKBzgy0JpKXnhGSJdW6wswEfkfsEoaMm4hK8w0Hmz4k3VrIdfXqnYdQKpURbcVrYLaXV0si6TsY4QsZSfhk5ib/kE8WMfb0LUtbhnGcKqdNy5pZxPpC8ErMlx8DalmZ5XcePimeLcktIxwFhfJW55Ch7UtGd6plAmaNP0pvgLqKRbGIty3CKlavll5qbU+pA/W3dlEmbUC9PwoeMksnVXhdwJjQS/JLfmKnHv8Cacv4oyaPC7Qy2J9q8Kb2qKcbC8Nj4pZc1/Pxvpmu5zUswiviIV6m+5oOSEGcC5yTvyGAObVUnCt2bkSQBcqYyqVfudEjbF50aWhYsTL5dsatjV9PdYwLJvV0snO+Ewmk/SWfm7Yrfu8Wv1Ok0vBOngAQdqajmy0rpda2hK5JkDoWUXJk+J1H1umfZJX1Wsnk+uboEEUHrEfvbWwy7W/DhDRQYHQG9UujIflvbKxaH43Td98tzJQC5WeHoEPCfEiSloKiD2V7j+vmXsIsOVOSrJcdgnGfWAbVCqYfTz+Uzyh9IJS6fpQ/ThAUuE+lLTMU7ObhLjEQ0JF3X4bPPP8cf/8l/iydPn+Nv/59/he1Fj68OlzaBYez6K9DmKa6evsCzZy/w5OlzXFxdYbu9sIP/rnN1U6HrOgAq8fFYloIJyz79I82G31owZ5jnda2FYfmyTEzF30aSbMBA4oayxLle1hwCNYcdADF7JORS1B/3rNLpBvwKDKDmlSGIFQHsPrnVEGD0LVQESlzR87lQliPWFP+8UtYWnYItqupfvkpAyjyxj8mv5IsSXYyYVupEXgZw2JoxVRWjFkfoar8hdlFnJvTIg04xvtVNd2jeRCjHN7llr+Q1G1p6WItZt5Xhp2paRYSKPibWMdQR+ZvjWjc6iWvmmHboaL3Jk08ikIQafvGnxUVFv6rZlbaDsqvqrH2RN8nHSOx8DT/hGCJBAjJ9nici/VrhTqy27XhTKwWS6w8Jv9IO11ZYNXnILvLsU+zKelzT0/KZZ6WsePUZyxon+XsbuNZeWuWO/Rsiu1KH5l0CK3b5M89KjlNFFhPYzZrZZGm5lAGC4zZdcdcks+L3IeM3Ed6BU2BhA1KpD6mA6wkou6/lRemf+FQCVq1MLvekLlX4ccLu+845BhiHwwG7t9/D3P4anWIoNlBsP0kICr5U0eEld09+A4FolJ1hFbOSpBSgOgzqAtunP8H28qmljbRznDEaC8ZcVtCa8ArRzdXKLFom91Q9W7TaWBY0C0UsFS95HyOl79z3s5MZOfK03KoKRXj67Cn+yR/9Me7evMRm/A1Mv8X1tsP18+f4/Od/gs3FNZTqAbcihMg7ACj8Y1DYj27vvWcp5zgtZ1oiPyhpyDCzg5MhN1z5VclaPUFih70+5fEo/KYw1o2rICh+2rOQkpHUoVCxJNVRsP2xfjjKxoNiljhoWLsO+3yL3ZPuU5KVrzgXZZh9Pn1bLzdS+U6/zegW8hfaJXHz8YS+yXpFVVoysJOTfFd6OjNTgFarmSAlR6TTFUkQFjcU68biZK0XLd1bRJvyB/ZySkdTYcXiZ/fCmia42iamtLU1vcwdkVGPXDyxKqSmCUtM12T8WQLTEWpv6/o1xwOVjxBlmsepjNmKVAlelYyr9lR4b2S6xKknnyW8tPmrMlB7swiPGQedC1xa1UUcnYJfPlNZx69No46nhD21oT4Ryd8kfYlTrqdCkYX8s+FMBUjpCMqZnpJ3tU742ck8rXcCThBcsXs87I6a9yuwEhopJtHmRpYrfh84fhPhPE4BQgNtEo8i92VlkPHiRTJgyy7qM1vyt+XpEe8KFkqwKXnvgl9uzAZKAU8uL/Hjr77AbneHty//AluCO5xOg03nQBHLJckTIUhtK1fo2APPNCnc9z/C5vIZnr/4El98+dvYXl4FYnJ8kw48PNNuprn1zeZG5SyfUgFGhnD6jPI0Uo5UeVbyVCp1RjOZXSlnoj2VSaMl4lk6KjxXRLi8usB/89/997i9+Q5kdnhyqfDk6TNsnnwOt1wD/nwHe3YD3BkDfkWClX84E4/i6o7Cy5eU2z9zziOa7xhlJStJ18FowV9i2niWvy3ySmLUDKkfgEgcCuYTilx5VhjaWt125Y4aaHOUp9nHxCzyLu1IaW7zWIRw4EsLvAKu3NJP28wm8Qnw6o51gdqUt50gaEYMaw6BVCcrNjk1UeKmUabwppRRLpOCyuItAKXjYnKlQMWmNSIser5kZpwqV+HJrJNU4iytTUUfRQ7FXndBpFTVeENAIvtwObG6bZmdK0NN3WepnoLfREY0Ey99VKOdWs/SAZPilVCmVP6pqsr2tLSx5XXJ46yosrzn406SiIELpipxHwe/GEXYwKxu1voxeX6pCc1lGGlGW5ga5RLaVCElnajL2TOU9qD1LGXhBNAICC0ie8j81tmG8V2x+zCwC0ljHzPZKjkLz4rfB43fRDjjSoFalxmT/FDjuhWzpF+C3aQjQMsdCmXaFNjUaRGX4hP8Xn3gyfUVfvbTn+Jv/sMl2Nzignp0RCDqoIig/HBd5BkHjVlJVQdDClpdgLYvcPX8x/j9n/8B+r5Hv9lCdRt7QJ3s9lIY+kdigjYv2JN+VFVsgpdj0kJvefzKnKOrW5XVApSmqA4eAjGCmMdKLE5+/sKTp09wdX0F9p8pVARSW4sj0sMGmblSZlvv8lV3MhcW8ZLk7kyB5kqBquFrlbl9G41bagDnDH/VyGXGs6Ad7pOLiK8oE+XpoqQgh37NsghcWaQqHYr5p9TmR5ElfjGv+MI6i2bXcdWyauhWcicbocr7aTs7h12JYfJEYijjQeqkxDRPBxFHrKaZmkDM6mNW/ZNyNGrsBM16VOImsQbNBla5cKeez9aH6RCsRVaHKPwtI+f6KO1hiLrU0SMvKa6gIQBoOaiz/NvFnV5z7tkNOxWmBpUzOaVv5+xvZDy3dTV6rZmtSKPFi+SoErGiX5naVB0CNWfA3EqBCRMV+StC2ndpBeuH4waNmYyrbyfwkzhW618h1NIW1RxnCbEcvfTGRpEPvK1M61VtEkvqbqu8rba6wlUZLX9dnUCWfPLCnUIrdufEblL+nPwkdIiKl60cFr5d8SvCB4DfebcP5LjFxwXQEc+ysZJAZP1KJJUhwTsFnyQdCV5RkbL4VAc4SeeW4qtO2ReuB/vi88/wP/5P/wf++j/9Of763/1fwM1bfNV/gevNJbgHtOGQ3gDQ2+foLl/g8ondj351fY3NdovLqydQXQ+llPvXBX79wFMpWd5UZmEo498xQGy/1z6pwAU42asWhlFtMnnlSiHiZ7h6DCWWgUSIU1dESUvOQqczXYR4ToNPH5fxB9oFY/Y5g+wZAX3EQhtqlNNvFrFYpzpJojxxeJv/TWUhthtMWIjMJsqfModM7zITmsROnuX6kxgh+St1UOSR45c5dqodVUkn4TIftKedWkr/hF+ZSs5mxKK1FGHaSVCmF+kmdCvVn7R+pHSz4lQZaCcuPdFSR7zMszpSYECNX5E2H0BmNHy+US9dZOEJsGnmVwzUip6XMiPaeCd4TILbEzs1hs31Xz4qKmS8KXBtUG2SEO9a+CXlkoN5mc7hmOpjxXmedZgSPKvXGW9xE11FR+rlW/KwfB3tR+oUqGZZD2XHI9OpiquaqOAqtatZeyHsDFGpNzLOIpta3NdtbEpf1h3BaY7fBAZUPspiUeWdvGlvJqGi/VwYTsFPPEt6NJQlLWR0PH6J/iHVv8hi5sDLdK6GXb2fXNq1+dnKSKcZqtWitlJ1llKdiRW782GXRUljpu3usaZzxe/jwu/9fH0gZ4kqJSnAR+VBTXA5+VqnJMsgoSN5aVTGEDmf1ncVR6lA4tmL5/jD/+pPcP30Gf7q//s3uP/uJV5tevx4ewUywLi9AG8/w8WTF/j9n/0BtpdXUJ0/lb6D6uxhgnaJOcWZTQYMi8EhKBOGi5eJI5lTnVh+ThNXVIknxTeFl1QiITb32zIaEo7cZGTxkt8om8KQVOuNNAKVkheFTM9vYI7yDh1PeGdAZStHVk9lFpwJKDFSRC6jdveorfQVGU+GqpVBU39qupeDmCukf1bprAa5SByFAQ7KIONW+JXymw1HLCtf8qiMQkAqmWNJTKZpO3SmaedOpEr1RIEBZfEpLVltsFGjUXN+QNjZ4Cyr9DHbkpyGPNHvObUQ9S91Zj0kzFNYpMc1dAv8StnHJMKm1uxecpnh6q4jmbZDoLS9ArnElHGeqC2HWEXaLIt8/cq+6dnmIuWieM3Ii+qKtH3TJNv1s0JvisWKctRKXu8bLctr+l09tHEBmMjtnpsy0o+PX/VhRYeACn4NPCn909Q/ahBp1ouKOZiyb+39zbXYjTwrgSsx7NlNU6lW7Aq+z41dHo3zS0peTuvzil/B90eF3xmdAkKk7qqU5HwdqEgfJXCtfEvgUnSiUF38iicprSx1fvyzpGPrOkp9p9A/e4L/8g//EJ9/+SV+/Xd/iX74DV58+QzPv/gSV1/8DjZXn4FUDyg78FdEIKWcc4HAJi6f9XwwGESqvjXLs0GWp7If7aqK+NZ6KxRvF1bYuTDfLGTalf6EG6HSWVli+lQJGhg2OUw9fpKOdAh4Oftv1suZxGQpT1ugSZxWHSeHfSzUgsJksmvYq6PDpB7W4UtTUKpfuT6mt6VnNt6mRi/Np2SgZR0kBcp+y1it5HXq4R1B4DcRTgVmMl29dSrbPEpeSB1LMBDxEz30OkNpHEuyjmMKU6YnXIi3XcLWQGcunbyqxA31zC07X6h5DwuS8YryznWAUvxK4pJkOhCLCkl53BzXxKFfsdXhOn+XM9/QsqQOTYSGOjdxpcdEsKntE9GPyLsx85HrYtnHouJvlb+kbnk9zbOm+n2VNJW0a/k2dG0qEHP4NOzj6R9Vr1v0U1Ws9C8aKdIoU/nM2KCCT0po5jqbXyc0G21tKxxTdWvRmAmUrNB8aFiIXdWMrti1I9ZyBPxZVo8XVvzifasMVdbbYQF+U2Tez0qBY9rD4u8MyayOFYKsPGg2l/mLZhvmhoQhP5/edR6JcHGxxU9/56f46qsvsbu9wfXW4PLqCpuLa1DX2bhE8IfOGQaMyYxnuGWfY+in5uoir3Oew6fUFh9UVy3ySVGbsp54lCtVy1ETJCCcOxLucjayVBCPX6mAFflW6pKcsIrQzWykq2p7LgTBU+gQPZ5xlvozoRH1tKG615CWAq842nLFzVYL1BwCAVdJO1stIKIvCFGaednDggyK91WyYo9y2aCV2MZ1PO8glAyVOlVbpeMvKyu5vGyTRrEGuaAtl9ClZFO9LlimHBNO0lVDox4ntOdUMsvbqh41l/u9i9DOWfDZ8BYQIlQxSQpq6aSTuKb1O80mwzjBMgW1NkGQP2jJf3HI7HxO4NSv8TaySfRpMdlqxAUI5/AW8SryLWxmaatrDtSEhGCgZltb6efoFvlMvLPH6TjbeRb8amRz/psxph11OSxCiIswq4VZGdR0zfOW6VwF1BrOCzMWId0G1jpj8NhwFHYLYqzYtYLopwT9e3hY8ct5fYf4TZA4s1Mgaj+DIzMLWuSZPoN9RK2b+co118DK91mT2QhZY1u62qGUwtXVFS4vL6FgoBSBVQdFCiDnBEB62KCtsJQZUsri2D9ccp8XwqeG/yzafAe3ZcHLJZ55zkuq7lSceXNwTD4krutp653VMmIcGJYYT2gymoJqxWk8C3hPfZJQhgTCmRY5HwWfEJbi5vOz4vPna0wnaNqF0NuQrphSZ0tDX7+WJsraroztCXtTOA441xVHnCslepT29gT8JpNMYeOWxky3M0XItXGp3Vi0o5ja1nrpQDAUNWuriNytcAJVsp9jL89llpN5O5l5rpIEZT5UfzxB/5h4xUYRUf3ztqiSS9Wc1u13ZVNWclc4LkI1nu+DsLQgDVnlq4rAbB1H04QRlpTV9GkidbtlWYhSo2tQ+gTTFXJzTVx7hU7j+RLealHETOVcmR8Pv9z+tTEqurbVqFMbVyq2lAQmABLHefomDi7E7yyex85YHt1GiQS15XeVsGL3oWBX0lvyOdAVv48Xv7M6BQohp/IS8dLfMkyfNpunz2Pm+RcebxenisdEGy1n+whpZfGVQVAOv6QIBHsoITOgjeVJUWdjKCSD/voWgRpTZcmpGZfd9oS2dW4vfMmeHTkGyZVOPkvVTNYXqsSPChYVk5L3Mm1NDJJuaRTcrDRltH1chtjj6OILG1YpyYQ8KHtQj5/MpqrGt+5ZxvYD5ZpVllZ0gfOn4Hk6aVUPM/yieKyelKsOMmNc4CSwDaM1pGkLZkpmZT89aDZH1nIpp/YoNXKFxzqv5M6eUdcVfFSxSwagcvAnnAuy4uXghMGHaIZrzyas7GTtzWRLlbuijku6EdgS0yL+nKGR+py9WeqIrpVH1DsAIAWYJhEGSCH/QKV9lXibBG6V52LQWD0gL8c67zgVva6JMi8IM1bgaOp1u5c9z1WnUd+qOQld9oEBgG3bx7VPWhBAcFvzBN3KYhmhzpzUrbCxzO8hq81suy/IyOXUXgOTDrU3RI5+y2cb0iR1R9QhzmgJ28GiovhDNGWlia2M58kxK2Qb2yHxLBjR1A6XtjQQqSp9LjaYum3wkUv8qMSP6i1zabvFX/LvK/QQ7QMF+ul9kq+sm+T5rlvOwEOWZ3mAGlVSV7ik2nVq3/KQ2sZjrEZOiGE024OxCwP9yNgJXqvYVcr+IWJXx6uNY3wqL6YxW4IoAzDG1LFzRFb8PmL8XDiTUyB2h1QuTXkjK0cOHPJKkIMu38X3ImFRIcTDtCLk6fLBX/KbZhUrbWvwEiNL/4yB78xQWI7DrjJHvjkM6XzgfJCQdBASLUnLKWsdM7QeQaSgdbVrCwNAAVllrapyqVjiunrQmJBvei/5r+NGlWc5finTJWi5jkXxpW4QH48dbzUnd9KFI+kiEmlrcssxq8o5L46oP2xApNxhk1kgwICd7uXaX5Fxwgdlr4X+uWfJgD3jLTkgUMRt6WKuX5N4Sj4SPIVuFuWV7FDxLKQX5U2zkg1JeR9i16CtPrDdfsOMTnVVeAwYKuh4PgKo6UjOUFrfKHtWbYzyRq6pa7VB8tyvoJMUoyG0BoSTgTJ05X2OfQJX63kgk8UhsLGjktbWSgNAtY65z3QuikfqXaU+ZnKNsOR6RkjEn+tfjpv/oSxtfFjhu1GkUjFmIKYietJ2u/uWPrUwzPMKTwgg9s4c23ktgntP7tPCPm0csCcWIuG5dR3sqEtXDizJ4pRjUMEv/Y18JHbUP671k/K2NtfnrBilfY88p2LP77P8gMpLyX8WKjbAPwpb/hbhR/5xagOajrKs4BVdTOJWni/5YOKxEynHhJT1FLckXn5dU/ETsWoGpmgWi3cPwa5pkASt0gK9K+xa0YsaVcFuLl3TNGc0qLiopau9FC5BRda/2Yi24id/3zV+rfxq+LV5O49TwH0nzziPvG+MAUod2GK5SJzkYOfcpsypXfF6V2a8KmY72vkar6Etq1SyQNs9kw74osjWy+4PwvFx7CAK0Tfgyub3S9vfeC8oVtqc0FVPQK33TTOFkp1OBrbdBloziBqzlQ4/pUgMiGtTT3HWwDbW5OTkzz3IZjCK9OKWEctclCS7p4i2/1vz0CXPGs6UMDGSCSHhMnO+ULBR/lpiKGUf4yRbPnJak4FieZ2cOtVBa6CrqTBbURujoZTKDJQseMW6hxMSK/rnjXxIVuqff0nZvSiJ0LRc83w549ti5YdMIGgksgrlFLDWQHa30aw4vgOJYLhiUuJYleEdfZyUgRP+xF/R2G2Ugjb1JozYOn0idg3MmisFGnrqnxWrBFLJBSYqlrFWVQk5du6Zhysb8FYdRV4S1LgWIUM2ps7lnqfPTI59lNIpW5FY53weqlMwpsaZizqFX3Yd82vHqWLYyFu+I3lfEYK0o5S8jfbNYxTeV21cOdD1163BY4p9C7+S13bInUK1GJamAmCY8hQhknL4+b5LZE3qq5zPX4adOAnI3rsBkjwjw2+zjCpqdTxtf2sFS+8TXY3gQdrUVF+l/rbxhEwfySKmTP5UcGtozSS2qV2BcjORtb3NZCeijDGgzq2EDI4PIb+WIQsh1bWiDbRP40oPyOmBLG1GWnZDpnlo8HlMvCSvGq7I7HNKrK530r7M558n7aiTw5Tk3enYte1kjhqSWI04NKFxx2JCRfcx5YHK5yFqjp10kiZ2uSRAFYBqPBR5tp4QQflPgtbmElf8SpIfIH4AwPW5YABncgp89uLFN//z//K//d05aK/hLOHn8uazFy+++Wcrfh9TKPBb9e+jCSl2n63YfWRhxe/jDgV+/3TF72MKJX7/7H9d8fs4wordxx1W/D7u8PPaw7M4BXa73Vc3NzdfAaVX+eGhPtvXuE18T2uoBcKPfvTVN/LJefEDpkAr8HMOwxW/Vljx+5jD06fPkvsVu48prLr3cYcVv487fFj45bcrftPh3bZ9FRRW7B4Q3rXurfg9dvjRj370Te35WZwCNzc3+Jd/+qduacVc5ciWRNb2SC+g4EM9uxYPE3nNOBvOF7h+dzIDbrlPll4ptyROKfyf/+JfJN69d41fQukx8Ju3H2cOXF49FL+MxuPi58OKX57bufH73//5P09if0q6J7l7t4FTVk5ioE3jh2A7329nasUvhuPxe/8d4feM37/8U7fcf+nAROB4ovAeBb8PQvdSDmp9x2NoTPU9q23fydjhQfpX7oXg/GGWZ/no/eMGvCvsHk/3ZLYnMFuF6pg+Lz5I7ICHVOfT8PPhPGcKEADVPoipjCx+T6hMUynku5Kd5Rsz5rni4vI0TLN9JbUBypH0iMsz6u2xDwyYyuaSd4xfTqn1bDF+tb09s7k/Fn5pbh8Pfv52xe+d4pdb/k9I9ya22mXhMbGLOT4MO0fjB2o7j+Nkxc/+fBj4Hc/FJ4Yf6EgoBI4nQvgo+J2kexn1R8QPYHF1Go2j276A3dSgvMYrHqR/JdVIayl2p+X+kWI3q3tL8ZPpH0/5jtK9x8BO3D5Gv/O94OfCmQ4aBFhPfTdmWaDwp/pmKSvvKEjjxPHJg71QsaUgf0jE0STSw33Szx02vJ4rfit+4U/1zaKw4odJ/IqwYheffODYrbrnw4pfkW34U32zKHxq+J1E6xT82OAYOVezDX+qbxaFFT9U8JugUmB3qhs+v2g+mGLlHYWPE7tluvfA4fEHj1/uXHhk/DyEj4Bf/Mysv29TPNMnCR8nZOUA4OXEGR6P5yF8nECQjKd3J4RTO0RVWu5P7eTeRw4rfi6s+L3jsOK3YufCR4idzEqGFb8HhhW/BeETwI/xYLGu+Lnw6PjNEHss7LJ8VuweQqcu03OGuv6t+B1Pw6dnyJ+p8EE6BcJ+lFrNAKbcuB9QoNoPPEpHAZ18ls1ROXXDCQHBf5Tr2COFFb+c1CPjJz7NueLXCh8Hfo8dVuxyUqvuvfuw4rfi50mt+L378OHih7m27yGidZ/nDQ6AKu0Vu1NYIgB8Zt3Lsmw8XPE7lh1Phf3nxmfwO59ToJFrG+zK2xMqQZkkt0BT9I4QOE/eTgQSQInUR1aY4iAPBk5cZNLI4IjHK37vFr8lIl3xa4SPAL8Vu0b4CLCbiLPit+I3m+2K3ywLp8ZpJq1hteLXplLgt7zn+ZBdOYsGii19XEJ7xW4m7REZ1dI3Hz6Q8GIyrQgfKX5HjvlooZzPuFLAMkCFop0pp8lasTTfI/irtSFFWAr6I1QYykBfUmH8dztaBLHit+I3H1b88AD8GsSK1yt2TWKr7k3Q/+Hhl++frKdZ8ZtOueK3JKz4Acne86UDlbXtm0j5frBbpHcuzZTulSJ9X/gdRemkqO8VP2k3F/VZ/O8Ufmd0ChwLGJGrlDTtz5guzmNWlFMCJ5dcBX0ibVIZFqSd8vLlHd0kGVuPE3Mzzorfil+L7oqfT/Jw/BpJV+w+AuxW3ZPhw8GPJmTwPvGbpXNkvo8bVvxW/Hx4AH6TttPm9ZhtXzCKP2DsUlHOp20tQW/pnXQWLNO9I2QY8LM3D8Lwh4DfEXpXc/LM4QecySlAlavkCRVP7NVSOxAicvLzEKWupVrsbatRqQJrKdZ1slYZZrxGFUO4ZM9JkF9DVCt+WPFbkv+K36Pjt2KH94PdwhmuVfcWUHkv+C1bSPk+8Ysd5rQT2SC+OHwK+C3dK/ve9c//YfFbJ744vDP8mni8G/ySQdsjtn3HiL0a9QHY1VK+a+zKujuNXb6FYA47j1uIN6t7U3QqsU8UPbUvTqPjwuPiF9vpY/BrQnJEn1Pqm/UPTOPnw3lWClCUDIVGcDlgvtLWCptSmmkgHlnZ50PuMapTXK7EdWM9pcPFniFMVJopwa34fRj4TQxWVvzy8OHhN9XgVvFbsXs/2FGJx9HYeQZX/N4Dfsc56Kbx87yeC7/5DvEnid/k6oBc9zKeCurvHr9AH4Lkx4RfoU8x8uPjNzPQbHkFHojdrHNigffn08NuuZNg0mZ6bKa8Ag/Ab0lYgs2HhV+0F3lbBrSdrGk1XdbnnG7vELGZKeHZzxQorxuxiYoqFAWzUJEdIMXAytfPKu08Yh4agp5oOP1lneuagh7TATquwgC50ts03oC2Jbvi90Hglw1WvOKv+H0c+LU6S9P4rdh9vNg5nqrX7XxW/NJ4j42f7DDN4yf5OT9+PtYnj1/huGnjl8xyZQ6CDxE/Satg5BPFb8kAsrWEuY4fib/p1VQ+Ert0LPqpYMezh2dnAAAgAElEQVSNtEuxy+NN6V3dZsr3c/2Wh+AXaC9dupPQms/zfeJXbBOo8lPHT8ZrrwyYxs7HmbOdZz5ToFF1qIiZXbWftOnVFATRkB1fx6Z5aBrePCzdM1LGyztArQpZTC5PGmvHg/ipxouRGzSSmA1yK37y/ePglxqgZjwbuUGjiNkgt+In358Fv0ohVux8eNfYHeEkWHVvQfhw8Kt2+BvhveBXS/EDw2/ZXmcOrLTC+8Kv9vJTwa8GTapTrTguXx9LLmE+S9u3TDizA8gPCjtqpK0PNuexO2GQKTM6o+7VVjrX6czEKxyQx4aH4JfjQp6lmXg27hx+S1blTDoIZgpwPqeA9wDNgOwB9mwfC+SsR5cAChaIszSn5JiHKPClsxvtBrJWSeJ7UDVhQpt5XubxsJ6m/q74CforfnPpJ1Ku+JWxBH7V7uiKXaD/brGr7e/L4+AD073pHtoPBT/b8ZnGT670WPEDPjT8puTNIWNa8Qvh3eFHNO0w5Qk88lU677vtWzao/PCwq64AAGawmcOO0SpLgpvN6L3r3iLsGvHeHX4elzTu+8JPYjGHH3DO7QMVTw1l75MX3IYpxXdZZVv6PGVlSUXJK4MU+Hw6ZkLd22Q7pTU6UTnnDqVYdmhF2Bs0pWArftV07xq/KS/gil+a5sPDb3qGpcnvil013fvHLsZZdS9N8+7xSwc4x86erPilad4HfhKiuVlnyjL+MPGbwuiHgt/czGZtgJ1EfjzsHohbpPFhYFdrv6beLWvb5LspnZSDzJT/JDwSfg8Z/Kfv57Bdkk9aoZfjJ/SuGm8Kv6W698j44axnCsAxsABYXztgGfbepumZnSUVInu/wEsy9c7ytFSZk1QnVozWzOMxndn6UiG7t2S+DCt+7xK/+QY1rOBa8fsI8GvrpsdvKqzYfSjYlY3tqnvT/IlUZ8KP/P/Zc89f3W76d+8TP0r/NPLO3n+C+NX6JY672TbxveI3g52tl9n7BfjVB+w2fDz4zS1Np/O2fY+Nm3+B07AL7JwDO/az8vV0LUxPxc6v8jir7k3id4S9zF+eoHs17GJec4EBtGQ1j21rxWltRdwxjrsl+J3xTIEJCydjkXMVMUCK0CkFwwxiwLDBqDUAu7RMkQIIUK5wRGnHgIOwGfZbkQokheL+LKmwdW6xoEwytD2wocodpdjHK/xUZ2lKkVb8HEdN/Oz7o/FjgAuMYl5tXC3z8v2K31x4V/i1n085CVpiWLFzHL0j7ObtZjpIiTx9JLpHK34fEn5Y8cvyycs1PekReXpP+HmeJvEji59k5YPBb2pQciR+zK4O1PGbnq0sw4OxA2BMAzvH+5TuGRCIFMjzInM9ATsqLpaEhdgVomqla2BaYOcxdixPYncm3cMcflO207j6qaByJk7QvVOxs7xM4TfvLGiOFxNmjnPcLbGdwFm3D7ifKSASyTCIOhjDGMcRb9/e4ubtW3z//WvoUdsK6YBVSrnKQiCloEhBKYXN5gJ932Oz2eDycovLy0tsL7ZQqkMchAsWTzTQ82EKXBErbzRc2rJCtSqafw7kHZ+52TCiGf5W/Gbw46ZhLjtLLUO+4nee8A7xcx2l+LyFqc/TXnn8qmHFbhY7MIEfCbtj9M4/X3WvWTBXvPPjd4rdXPGbC+/Odrbxm1/B89HgRx3ID1s+GPyy4ou0rUFlEz+i2O6FAeX0KquPpe0jpRx2BFmIDw+7mcFkRScL7DClozZI7D4K3VNd4TiY5e3kEAftkzPxTkeW655PVLGrRQNat59A2h+dq19n3z5QC3YJg5ccgY2BYUAx4+7+Hr/+1a/w7bffwrCOlbK2riTIxFdm60VSnULf9ej7Hj/57d/B519+gU2nglcsqRQu3eOEhRUDU7PClefVilR3HhyzPIi8K/vIsOI3jV/RWXp0/Nhdr/il4eH4VQcrU/jJuH6WCDVMLV8lfseFFbuZAcmJ2NUPqms1sqvuleHd41fayBW/08OZbCfqg5h5/Pwgszbb9fHh5/M+N352APuIfc/q8xp+yHR6CX7HhfeHHX/g2M04eQpcUiWVExXTeX2cumdtp0rL8uj4UUOOaTyu5trGtd1e+lynaNQdDXP4nfXrA97IF54ZwRMBMIqwu73HL375C3z37bfQWrt0CqTIdbZdOunzYVE5EPMxxmA8jAAR/uNf/Bl+7/d+H7/7uz+DAoOUalaIh3uQoldmmlTu/fbpGh6ewqMHxAbUG1//TMaxwdOs61ed0RW/6XjvGr98tiRerfilBTsFP/9MGt/l+EWfDYESPH28crarvBJvV+wm450DO8v/sditupcW7LHwE/FW/D5a/MpBYf4s4lXi5+mt+C0L0uZNx2vhVw4AW32aciWAXILuddTjl+tkeRXDDw87WygGMD/WXtLvnHoOhJn3hCZl6QBpY+UzHz4+3fPleSz8WFyR5WkGOyA/M6GNk3+/zFFX3pd0Uz2ccoic/esDVYFL5WKGYcZ3r77DzZs3MMaEBoLZAIYKL6QsEHlamcJGoChUKnLLTwoeanzNhsKyVr0y9XRU3MfG2NFNlou0n+Wd4frsc/nMhglGV/yOoJPPrvCj41ca/RkmV/yOo5N4z5djWjPOtUY34UkSrvG6YncknSl7Wnv2AOxW3cN58XPPJ/Vxxe+Dxw+USdrZT9HW5fcrfh8YfrWBTiL+ucEJCvklBH5wbR+Xdx63ljyS2GU7t0QdJmlUVg20+zwLwkeJ3xL0WPxFwM2RPBK71rMlYQFmhe7W7HE7nMkpQAGwycCAYUAPI16/eYXDMIDZenyYDZRSUMoVmgGmaPi8J0pWDOlJAgFsDDbb3lXq1FjVKtSxZSyeVEllhiAx3vkgMCphLr7CuDqvz3HeojRPoPVt4BW/pJD5kyDTCn7u/XnwE/QDzyt+4ckD8LO8xE5StXF8LPxcqblajhW7pJD5kxp2IX2to1Tv4Ob4HqN7HrtV98STR8PP0o8Qrvh9PPjFAkx3SstO6pItBuEZVvyKJ4+MX51WiaF8v9iBw59Y2xcb85lA5d0RuPkylP2WPO2yLwTE2OlV/b27409Q9xapoeOBk9t2AZM7Co8KhxmW4ZRTn82+ZY/d6oup1RFncQp48MJNHoI0AGbGfn/A3e0dhmEEEcFoe8CE3WfWBTrkCuaqhP0lCkrJxrioFCpL328SxvxzKbeHL91KCpcVNTMERUeG07iJTs0PLEJ+YcQS7+OgJc0jLW69gVnx80VtN8BW0biIO925eQB+Va/til9WuKyoy/HzxlPGQeEQmMNPpEGKX14/qs3qip0o6jHYAQG/rF8yO4A8GbtV97LCZUU9Hr/4LiPbvK+/LFbeZR3lFb9aeCh+QClT31NPX9WcBjJNrc2UcVb8auFY/Mo0TR1sZdeMk++fFnaU6sk+auweDGO9HyJYiDGXYEMooZ3jYLKdjFx+Errn6KUFiOXyb1j8nQ9pW1MhG+LNHfb3kBAxytvCafx8OONBg+1Cs0OTyB48sdsdsNsfYLQBg8HGwscWaygiMNmKoKDg3Edg73IKBoehVAelFJgZXaesB0obgN0RYJR25mVzc5yBrlcUf9BYzTPUpFQbiDiuqo1nQDbeW1ub37fyqA1k8rDi57KbSO+8lNW4ZUfmwfiFZyt+j4bfROMrMa6TqeEHLFlV4OPVw4qdy24ifYldmSZXpHLwkeLLBXZN2/yD1j2ZOi8bHoRfLV2KWuWwpsyeJp0g2Tlb276iNHm52+1Znq6N33TaeZ7ywWQ501ZpINPcfyD4pSUTLRDAS/BLNetYFmTqqo4yAPL7wknkwZ9O20eVweUDQq3XWMYgEVMGCu9aMY7hw5c31ik3ifkp6J7vT5NAjxz/SWns3yjLKalSkNfj1AhyZS7zWBrK8SNm8DujU0Ape+JqkTkD9vAfW3n6vseotT01suvBhmGMhnEeo91uFzxILjk2mw36vkfXdej7Dpt+g77rABiQImhjYAxDKXLfmx2sONz3R/0f36jZDrvwPgm2h/GAgUfcDXd4e/geBz4AYHy2eYHr7RNc9BcgdOioAyGvYFnBkzsblw03lMhVLmnlPc9yAOlesbhIByguL0rvLY+t7QMrfsfgF+IW+ioMUBR+6gCIjyvvMY9fQ7s/DfwIw7g/H36MUK4ijcCMc0xDn0ZiIuLm+BEVeNr86sZ9xS4rdCEGiZ3QIxIqOIFfoo/w+in3NKfYoYndqnuEDj11QBO/BAx3l+OXJUrsaG5D7TPO8CWPHwB5WCv9wPATQ7wj8OtFqpZYZLd4Gr98VtOnmsbQ3ztb6WDj4t7l9UnjZ/8uxk/1QfuC7Wt2+l0/Eq7vUgkRPwJzHqfUPcDWBTF8DNlP41eGjw47kPt0YRqWYrdRmyxl5LfS9IU4JsNOYpbG5IROjqefmY9VxiHknOOBYujzfFq6p8h+4jAX5DDsTsRPFBhtHIu+y0yQuFmaXLwLTj7nSEgdAl4APIkfcMYzBaJnpsyfOTbcBKDvOlw/eWKXgTDDGGMrhzHolMKodVJBur6z36AkgtYM5hGGGYoMSBNGbZyx7V1+HDxCiUC9Mfb8UtSCYTxAmxG/vP0lXh1e4n54C4Z2yQi/2f0Sm+4Czzef4cX2SzzdPsdVdwVAoVfdvIg8pgpp3QhYW2Mq61MBstf3fJCZZVPOQMdOU1DiJKz4zYZaX5ac4RQYlh3iVJxVJ08Rv41fa2/Xip+UYE0IFXGLTnXavWlj+BD86o3+il1d0q2QD0ZKu1nGlw2ql+cJ2FVZW/E7LZBnK9z6QeKcDZ0OK36Pg58c5rl2ztTeRz1McStxTGVaeY4fmP45Xh+C36brsj5IRT4OQ9NSItEO2k5NmR6IENgylsL+4bR9ttUBgMO4Pwk7IoVe9Yl824FAyiRdG6F9pUwbeph8iSA/vA4/DN2z8SOjp+KnqEOX2E7XnoEn9HF5K2b1sF0vpNPAZxeKxaKqhJftrM7jFCC39APlQjBfCcNMKzP6rkPfW28nEbnvV3LYK9KNozuEwlWOTtnK4bxDehxxOGiwGdH3dtYCpEKFiCdbRj6cPtg4ynJ0MBoEg4M+4M39G3xz/zVejb+B3dTiFJ9sekMae3OHbw73eHV4iQt1id+++l083TzHZX+Jjjpsum2mrBIJrxxZFzYBa7ohtTPFMW76LP71FJK64OJu+konYMWvgV8JjV8K5Z+V44uyEQ34IRrJ0/ADVFfR7hU/gV/D+knLKfDzsq36WoLcfKNa4ifv5/BjquTzkWI3GA08Inbbbiul1cZPtHZS1kuaW+kQOA27T0f3zodf2QMh9yeuAKXwkASfQh1TCmwNrZeJVWFa8XtU/C5K2SSyZRjlsMhei3VRTT30jgA/oFzxeyT8eA6/KF+log4VYMkmkdLHQavZ6enJ+H0K2AGDHh8HO6d7F/0lpgeTgIIChwG25BHJ4NHiV+pJsJ1epj9Y3QMOenh0/KRQCLBYSVWT44aJwO5PoocCEA4R5FohauBnwWvi58J5DhqEyzRrzYkl2/4hoev7CBQRoBQU26Gy6joo9p1wCyobwMBAgdArhc3FFgCwv3eUfWPj6BujUwY5LnsyxoBcTbk/3OCb25f4dvePuDd3MMoknRWmiEr0bjM0adzzHf7u7j+hxwZX/RM837zAi4sv8cXlF0IqUkgkR4YR/chkNhMcYa7ObnkrnT0rt4+IigFC15UrBVb8cvxKBbL0AhiBrzRqhqHrzCZYBO3GCfgBXVc6dVb85vXPG1lmjsviHG8VuBPxgwjMJp0dORG/Gl8fI3Z37xo7uEYefmDovP4cy+HYTfpEoVMrZ7dOxK7WsK74Sfy+RC5BGRRxWMKcdN6YQ0csStVLLxQjtoErfmfErxUowS90nr2MMj308gID3uETdDC0iyt+j4rf1ZdBbLVAZJdZg1NZ8lQiWQ7gQfitbV8buy+vvkJwDFTgWDqoLORmi+GKyydjt+rePH6pbKhwDFSatXjr/pCMh3Q9Krt2j/yNj3wifj6c76BBKtXe78MlUTgFhc2mD96dPL4ihc7t2fF7X5xjxFVABmD3kfSbHgDDAGA2ocNovU2RrnH7wNkwNBgHfcDdcIO/uvkzDBitB6lzFUD2O5LyOR5B7vwLhnb/7ccdXg/f4lf3f4+fPfkv8MXVl7jsLrFR2yQ5y7/20pXP5lbDreYQiMuAKN67TAIKRceJoUhBterGit8kfp5EKlHx28SQXGcopjwVPyJC1wJwxW8WPy8n8o1P9irORHpcIPB8uP41w4rdYuzAJsg9D0W+7t4IG3oydoxmvit+y/AjEAzFk6Nd8VI5sOwYeQe2CRRW/N4zfsqE61rg2MNFcPQwEGeYseJ3LvwGi99Vd4m+Zj+dDFpidMVNmirytwSQGySdil81rNil2PVX6GkziVFOXorWmsfIRXSkssBx1b1z4fekfwLlthXkMotO1EwZskxZPMv5Ivj+DD0OfjijU4CyypF3h0k05ptNxoaLSGyXeBArEFhMsvoK7lsYd8qk4nByJeAqOdu9KkFV2J5UOYwjbvdv8Xr/DV4dXuKOb0F9VI50n1TeYXEipXZ3lAk48B5/fftn+OXuEtf9Z3ix+RxfXH6OC3WJy/661GDHH0QHCcxQRCClQiVnUUi/b6Z1X1V+xJmYlrdxxW8Kvytc9lfVlJ5HiSFJr3rIMfJ6En5MUMob/DKs+E3gR5e43FyXkpG4CRzkMuW0iaCT8WNG06GzYnccdqGzkeMXOYfETToETradKckkrPgtx8/OEomCJxgiDhwRHsM3nMw4Cr/QcWJBphJW/Nr4XaorXIS2j532xXLJmTqnZbAnhuf44Sj8OtWD2R5GtuofTsbvqnsys7UAiQ66UWXmEI9FwgL8VKdCufKl5XlYsWtj97R/jk5ND9nyfouduCcg4CdbxWnsrA5HvNa272H4Pd9+ns3Qc+jBSN59+cQYP+qZ3DJC1tHh27XH6LsAZztTgKAo7nlJeGCOy67di8126zxGbhmJcIOEz1KoTnTOKfxTCnYvitEAaxgYGGO9ROM4ot9s7HttwL0V1H98+e/xj3e/Avc6CpkIZCgDjWwFIGTPHUa+cgj76UUPwFbsnrCnHe7NLb7Z/QPoFrgcr/E//OyfxsZTdmB9fQdiJ5cIWmscdjuMuzsYvQfpW4DHpMdEFPfVeAEyKJzo6f8BDFYjLrbXUFfPVvxOxM/nyzFxEjyuquugjbEuPa3BxoDNAGbtDJuxHk6t7S97549tRI3WMGzcgSwazAMYO1xcvQA9+aLId8XvCPyccfVGVXZcvPT6rrfmm+Vy2c7i6BogZgM22v7T2p6kayzW43gAmwHAAOg9zHgPo4CLq99C4dRZsTseO9dx8BKTDWTfx0OHbA6A0cKZ4LHT2uFrYMwIM47QeoAe3gJmD9Y7mMM9xvGA7fPfwtXTn0BdPEERVvwW4wcQ/O6n3DkdBpGc9V+IANiBIUu+jPusldNHPQ4Yhz304Tvw8Bb6cA89DmCl8PTLP8Tm6ilQO1Rvxe84/Milk4PEIB7LMyOu8bDkTYkfG9eOGjuTpw8YhwPM7a8w7N5CjwdA9eivP8fzr/5zWwNqhySv+B2Bn6ct8IPo0wCA8dsLMtbAYH+qu8PNtoMa43DAeLgDxhvsX38NY0aw6tA/+QKX17+F7dPPoXVySuWK3SNiZ6k57Hw2FN/bZfWRZzIaDIvbsHsDs/sO4/2N1blug/7J57i4/jEurp5jDDyuuvdQ/FwPBnKlQNQ9spOJ0jHgGJB4KwXwOILNiHHYYdjdQO/fQB/u0W2v0F18hs3lZ9hcXgPoMbotFVX8XDjvmQIy+E4bIS6BsCNfKBJLmCjG962LFVT0cpCyFUkpV0l8x2KM3p7g9XFUjFtmymB8ffMrjNg7LxMBylaADgpQ7qAK5QEzYKZQJiKvZCQMpde4CC8RAAVoM8CeXmlLwAa4PdzCsLHl9uXjUBVC9QpbCpihhwNuXv41xtt/REcavTgLgJ1wZeViccFB+N7b4AzD5TU686MVv4fi5xIE54Bn2gVjNIbdHoebV7aTOt7C7N8m+EXHgry2b0kCSpHmfv89Njis+D0Qv1DGTAc95VGP4FHDDAcYPcLoA/T+NaB3MHqA0QO00bYRdY4esovZwtYEz6sXqzEau2HnnAUrdg/CzttMjyFZASmlXFzXwBorSDOOYD2A9QAz7jEO9zjcv4YZ9zDmAJgBxBrEcpuPlYliYP/q7zHu7/HlV7+HPKz4HY+fT8PeE+BMqFIE1Slbduaw/5lZQesR0CPABkZr7G6/gx7uoIdbmOEeMHuQGWOni9nuV9XA/Xd/AeLfx5Nnn6/4PQp+BPu5MU8/PleOJylIRmcnKvToBp0G+7tbjMMd9OEG+vA9MNyB2MCw7cQqZvA4YHxzj1tFuHr2U9DF0xW/k/Dj9DNsAr9w7wThBw+5TC1+GsTW8b27/R7D/nvo3Stg/xaAAcNOhCgw2GiYm3/E3e0rdN0fgbtL5DCt2M1jl8z2NrALfUY34PaPLS8KRApsRsBNYty+eYnh7iV4973tv8DaWQUGjxr6+1/j7uYl9tcv8PzH/wQHrdF35UrZFb95/IKBFCN7Sm+F+UydD16WdqRhwHqEGXZ48/Jvrc087Nw7+8/svseAl9h1Pfrrz9Bffomr5z/GQQ/YdPIwxDSc7ZOEZF05tiyuMsQFZQx/wEUAOavqsTKRpxhqlTVo/jkAUlCdr5C2A2C9PD65nW31Qh70wTY2igHlQFcKtAHIuLSKwKRc4+eHbS5fsjwHRkOVcEtPCDCsYfQI5tF1YixfHTo7q5W0oNlS5ayWMAP3d7d4880/4HrDUNsuOQuAIxlIx0AUkIxkZToyY9zf4f711yt+J+JHyssiippdWcMgBYAeR7z5zd/j8PrvcXkB9J3CpveGzGHue8IZfgTvbPB1IWamDzvcvVrxOwU/WzShc0F0TvccrwRg2O2xe/1rmPuX4PEOMCP6zjUdboZSMaxOEuxAUjSGiTxdXooAs7+DGVOnwIrdct0Lxc3wi1voCPvdHvr+zjlw7mGGW+jdd4AZ7aoOJ2cFRud+vcJ5fQbbMvh6o1hjvPka97Uvt6z4PQi/pBNEBD2OdoWVYTczZDDsbmDGO+j9DQ77t9DDPRTvoVxnsINfNutZFDwC0Hev8f3hz7HlP1jxOwU/RNsZ8aMoc58bKSsnD4RbzTsc7sF6gB52ONy/wWH3Bmb/GgoaytlSn1E4bMznRcDhu3+A3t/ii4pTbsVvSdvHFpsKfkFmLo5SYhDEHr8doAfoYY/93Wsc7l6BD6/RwdgVIc5Q+lV3UawMmAPefv3vsX32ExDnqwVW7I7ptwSpco6dDUopW2aKZdfDHqQHjPt73L/9Fofbb9CNb6FgHeB2ItLK2jBH2fIA8/Ylbswem+vfwqYrHaorfvP4RSeNtJ8Q+MUcI9ZOPxUBZoTWB+zevsHd919j3H2H3hzQg4HQ5omJRdKA1tA3v8F48xLD3W+wufoKF6qGnw1nPlMgrbxhbxkAJrZ7R2zrkUQLrXmiBN5wxX/+nbVvHfquc0t2tT1ET3UBhFHHb00yA2wc4G5wrphhFEF1LlttQGSATrlKReETSkQEuO9lWs48owDDQJsRxs1SaE12CYsxtmp1yhnbTgxKMtl5EYirw+FgZ7Y6BaPJ8mULBBLxwvKCApBUvuQOGRyH/YrfCfh1Xe+SxFnlUn426HHE969/jY3eQY89urDNw5WfAM4/7STkaQ1g9AbbNPak1nHYrfidgl916bBvf0ioC+Ptd9/g5uu/wNWWsd106DtlG1BwaCQ40TvX8NnWLW9aLJ+GQMaAOTshd8VuFru+653O5DIT8mWA2eD221/g8OaX6DGg7+05DlswDDFYuc5Kor6pHtrDidz2BKuyMAAUDG5f/6rAbsVvie3skKzMcXwlomCG1ho3334DGm6gsAPrO2DYgccD4A6U6gH0HnTfsYoXCAY0wZihhjt8/+3frPidaDul/qWrrKIYjDE43N2CxwEwA8x4Z1fJ7V5DDzvAaBDZTmg45yPwJPBk94bsDZsB49uXuKHSdq74PQy/8JfstlN9GOzWKj1Cj3uY4Q76/iXG/VsYfYACYwOAlNU7TzPY1NCQ+gcMfbjD7tXfQo9l33PFbm7cYFdOsRCwXykQTJygb7S1hoMeMB7usf/+Fxh3b8DDDgqMLTHYp2cPEzuz6TtEPifGcPMNDrevgeEnBXYrfvP4hTFfVk7vDIAbUQAIE8edW62jhwO+/83f4HD7EjzcoSPGluyaHO9fC3Qp9ongywuDw+tf4f711+DhZ1X8gLM7BVQQfvAaBU8I2cpoS49QkoRG7OTFigEnXP8Mboka0PU91DjAENlPWojZCD2OkbDPTygWG4YeNYwhqI7CLLDRY1yu4ugZAPDfwAwV13ZCjd8nDgXDtuD2c74Us2QHdKgIaUieEoHZQBtL1xiAWSX9HNEdhpgmkwQzynYWu+86jJzPVPpsV/ym8FMkDXMZvFwYgDYG4+EeCna/U9cBXdeDQkxy/7NwDnBGy5c04tN1HYxe8TsFP69AUtesTDxucRXH7dvvMBzu0bGCQg/qO/cpT7+0jWJvWFALe+hifyjk4/Uv09QVuwXY5Q4BGYLeOdl9++u/xBZ70HZjbS6pKC1H19vMSFM0ykKgXiKKFOxKoMq+2BW/Wfz8LEyCmqfFUu6MN7/4f7FRIy63HTbOIaeV7wQ7G2z7nbE7JZwNvozBqxN0lsHD3YrfiW1fgp/QE4bFjxzNN7/6c9B4g40y2PQKXUdQbKAUgyldaefbOTmLTeBwernc3gU2OLz9dsXvJPuZ9TFqxtTZ0Ddf/xIYv0NnbtFDo+sIPRsoMuDOD5jsrHJIJ3DwgzG3REj4BuwWrhW7I7HzvX3RBqbwsXNkEw5v32LcvQUPr6GG76H4gJ4YPTFMr2y+xvZPgx0NnRSKfRvE9rPpc6oAACAASURBVBTMID3g9tUvyzqz4jeLXygj4mRi1m1M4xrG7v4Gu5uX2H//NdTwBr1SoI7A7JwJRtDJibl2z89Zaa1BpHH/XR0/4ExOAWbgYLesBIDtIAaBeXuSrF0SOAyjFXQoVSwZKQL8KZShglCoHBK4TnXoug38TLz9Z5dAHQ5D6LdHofuOiIVnNK4COcxJEVTvllB1JH4VoDgoklUlZ/CYwNwhuN1MjEcgsGZ03IV8fAWVp7OGdtLxxYZhtMFhGNFRj23PIbnsAJFfv+zE6KsKQ/IaRayUgoJQmhW/4/DLcIuG1dFkhI7MMIxgcwCht+dBbOIgI2AJLxd77Q0xu1NUQ1Puyt8pBehytmTFbx6/YNJZYBg6NJ6W/R31iP1+B6MVgC2ADfp+C6lrBGQHZ3m+nPxjc2uLyLYRWrF7uO7Ja+nM6ZTC4f4tRh4wHBSuLre4uNjictsnHVeva4l++fdOpkKq8LMUqrLKY8VvGX7s07rfeF6A74ASzDjg9uYVFBnsNh0uLza42G6x3XYuneu4hqKw0DhXtqTH7NtKBVKMrjLTvOK3XP+A2L4F3XNplFL4/tUrfPfrv8LFhrDZWKfOdruxp46z67O4DqthBtgPRIQtFnbUi9bLcNOVTrkVvwX4kSwmRwvHCIdSKyK8+vqXePV3/zeuNz02vT0tvt906DcbeDuonIX0Rw5GR3hsUwWCCSayuVyxW9hvEc4AAIl8mQGjNUgRdm9v8Js//9e4uuhwQQR0CtwRuO8RDiR3PHddnFmXdEP/U+AJsuXpxQqCFb9j8EsnE2OfU/RhnFPn1//uX4PHt+gUozMMJsL28tKthrArGcDuMGXPkruwdGOb6sun9QaqV251XT2cxSkwGsYvfrPDbgDYGCgCNh1wtSVcXyo8vVZhf6DRGlrbJRfB2ygqSOSdnIfGP8yMCttBbudm35TqQEpBdVaAtqEiaOMrOEKll0tkvHH0niDWDPd5S8GPcbNOFCoWM8JBVpZQrBBEdkhAbD3gPfnlr6Eb6pKkBpQdHWaGNgaDZmwNuzIg1O3gWSv0lKMoY70Iy2DBQJdb5hW/RfgVgaO4PU1PwzBDGwXSGtp0GF0Zwr5an6f3KkYNzzq1tgBehLbxLllZ8VuKX9oQRewEf+y2NGuGIYNx1Bh7Oyixe+IEBYEZu0bHt0Q5jDL+it3DsJMOHc+bXyZo3Bc9FDGGcYRSChcb22nwXCmQXYIXBpWOPiPwGEVpy29FWQK44rcUP8G+t52CHsG2eeM4QpHF76Bsr63vqdwrG07adrMnvoxZ2yplvOL3SG0fOOaNKPfd/R2GcbADAe7BvAGz3cJjO/iddYwyAcY62pjhPiUGgP13xjPZMts9wRVOVvzm8UvaLFGG0O90srj57lcY93vcmQFb08MYq5OkCP7AurgNVoW0xtgBiW9PI++xHSQq0Vuxm8cOOXoU+yleuGwYr/7x73B78xbDPXB5vcXFZouN7u25OWRAbvDcK4udXPZvZ77twJ1hsTAQfIHC7uUVvxNsZ0sBXVBKYRgO+O7br9HxiMvrS1w9uUbHBEUdNtsttttN6MPoUUP7Ly047GxZ40os/2vPmeiDo6YWzuIUOAzAP7x0hoL96aWAUoyLnvHzH494dg0YbaC1dg06ATChwwXRGEgD4iul9xiJF/B7bmwaZSsHqQBQ7MITonVCAlAy2ecrEMMeyOnHcAT3fUgOlQiQHqRIM1Qqdl5V5rCnnJJKmQVRfob71IZb6jO65T7KySGwLMqS6llK3Xp47TJAqsxWrvhhFr/Cyy3S+Cfs/zLA1LnBpR1YamOgPB2q0fHGJQoowEgOQyJ0fWmdV/wwi1/apYwNEcc/4Y2f/TIGGEeDYdAYtcYGnW18XMNskOmdCGkx7cE0qjJbsmKHBdjJwI1rq3t+lsMYYBwMFI0Yxh6b3s6Q2G1AkKvLRUnZlzhhyGPXqVX3TsWP4NnIWz7R5mnjBogGWhHGQYMAjBu7fadzh316PNjPwsi2k1MM2cuRCJ0qZ5pX/DCLXzFb6f7ER3Y/+jgcXL/FzVi555tNh07ZM3HA1kHXu16qHSAQ2AAGduskuVyke05RPre54nes/cxxDOnIOkmH3R0Md9jvBphRQ18YbMwGXdeh6+wyalYGXd87XSSAAUMG2gAwxkPgygP4gVgNvxW7ZdhRmw0w2fh3b75B329xGA4Y39zjcDFge7HFE1yh6xmK7XlGXddjs+lBzsvGTk+VYRgiO4An3z5afhV1q+18yLjBD9Y9/143QttHGA8Dttsthj3jzZs73N0dcHl9ic+6Hhu3heHi4gJ930OPI4ZhxDiOVq5aI67ScX1X5rDNoCMF1dj6CJzJKWCYMWorvM6NepiBcWSMI+Pr1wZXlz3Y3LnlSr6iO08iUW0sGyqJrxh2siACr4iglO3w+5kEuDibzSYg1akOoT7mIfQgLNBOrvbapQmVRiZzJ+sGGp5EWYgwGJSHyxGkspPI3/0aA4adZR41Q2uDrlflwIJEnpwu4bLCsJ1de+AMhWVfK37H4hcz9waNxYFkycCS3ZcISGFkgtKMcdRQsF8i8HugjPFLmCMDYbaLU/kxFHpFqO1KX/Fbgp9IG/IE7BLW0DtytMcgC+228QzD4HTWLlMnAmDk7CMHEpK+lyGD3IGFKXsrdvG3iV2Qss8wjefVjwGw8fubnWN11HbZomfVzVpaRLxuedI2J47Z2w4TAX1P6Kl0Cqz4xd/ptq+WebwmkDtHx77xe18xAodhxMbYpZrsPiWlVJwBZbL7P213kwKuIRe2S1rzzyICK35L8BPG0j5GbO6kXmp9QKc6O8A3jHEYAWYcDqM7X8Dua2bu0PcORycPAwYMQGFQafO0+3Rtm1nr2K74zeNHbiRS6qBN6JoysNHYbBSM2YDZYDhosGbs+w7bjXMEuMGl7YfGgWDnVnIYk26c8+MpVVniuGK3ALtgO0W7x4B3mfmzrthodB1A1IPQYRwNtNlDKYWt6dH3yjq13UF4foY9DqDZ6ab9FwrFdnVqbZXVit88fukz2O1TAkdfTm1GdApQF73bBjHizZu32B8GPHtyjaeHazwdR1xdXeLi4gJKEbpOOceAss4cY1cNGGNA2rgDJWWh6uE8Bw06oYTqxUa0I4y7e8Zub3DR++hCgH6EJSTkk/pKESpGjq6rKEopV8FtnM3mAtdXVwGonjY44D4yKxgPdSMrj68oxHJpouueuvfkCyw6PezLxLCeNobljYRSxwIgnnQtS2eXwaquBxNj0LCfveh66xEjJWTtFNoxReQaUgRdcRcEpVAdVK74LcAPFOyyX/Fh90fa01X94WUEsp9FYQ0iBWbCaIBh1OgIUGTPBggDEpePLyuRRxLBGFq+7F6nFb+H6B9CwxTYIAaLkhEAo4fQCBlY/HaH0X1ipgf1doma8vyTJxf/+gbbD06MP+A2L+2K3Sx2QfX8wXFO3uTumchhY+XHgD2Xhawzbn8YAlN9r6ASHMjqs++seKkFvbOy6pWqbr1a8VuAH0RGgQWhhK6hMuLkaMA7Te2gknuGPXnahPL6ikDE7tNoiCtEHZ7+k3qdUuhqsyUrfgvaPmEuRfzgqvO6Yqyeqc4vLSdobbA/DGDusXVcGLZf9Pbtauy7iM+Cgt1hZfZdp1TVqbPit8x+JnoXpypF0e32RsN+ZtSWSRtY/MDYoncTExqHwz2IuuTb83EAIv7B6mDNKbBit0T3hOEk1wZ6o+Z5IED1PXBgwG3jsCuCFQ57v53HHtraKQX7BSQ7jvCyAKy9tU4BMbHIdltADb4VvyVtH4XxAtx4ITWmcGWxrlEQ0HXAZqNABjjsD3g1DLh5e4vrywtcX1/i88+eY7PZhK+KdG6yybZ3tgCG7fYCM2qgN2D9jp0CDLuviBRDR3dQkNjuYPDN94yf/6iDIXLLHZyt8oJxxkpWgOgpInEd81VKoe83YfDEzOi7LX7rx7+Np8+ewK2ewNXmCnfD9wXPRXCeqJiHR95XUcRPQfhBnE8KxL37SI+r6tUmKF6gzO5bl2Fg6dMTDGscdrfY9r3dy0Ma1AEXPdyMhwbg95e7BtnXWX9Bvrm1NdhAoe8QlpSs+B2LH5zCOxPhBFA4Bohwf39rP5eiOjAI2hB2g0HfE66UQq/YMkImdm49iEjl5Acqhm06Hlf8TsPPyiR0al1C6dAB7Iqa8bCD6ruwPcAYwu3OYNADnhKjVz06RUBnAouR5cgXuyIwAKM26Lukd7ZidwR2wV7CdoyIRB6wHVp28utcD0YzQxtguB9xf9C43A54crnB1bZH37sGPOmoeF7lUjxA0wZ93wFD5aCzFb9Z/GwaYd4QE/qZEyLCOB6sI815tZntCrndfsAwjBiGDhfbHttth14Z+EJKrVLKZ+ZmvBgAbbDpO/BhtZ2n4cfhX4qhlbw958HADPd2pY6CPT/HZTAMI4w2GAZC33fYbjpckgnbtGwHmpz8nIOHTcCQ0WPT96h9OGnFb5n+ydyT7F3ZbL/QQI+jdZo6R7rVSwOjDzjsB/S9Qt8pXF32UDRCiwEkKRV6nAoAOfwMFDZ95WyRFbtZ7Dj5z9OW/NhUfd9jfxjgxvmh7IaBw2HEcNBudplwubXbseykheeHnEyt/lkHHcPAYLMBeFht5yn4hf6mIB1XCshfdl9OsOO67UZhC/vlJL/y6vb2Dm/f3uLly2/Rd3b1znbbY7vZYLvtQSAMo91WQC6zmzdvQHiKDSoOVRfOt1LAGEApaxK8x9AVmAkYRgOlNmAMdn9gv4HWA+xsqq1IDFQrQR7iANt2IAhwdAyurq/w2WfPoToFM9q1Hp3qRfcRkTefH1HyzJHOcy3uQikr9SyIhoFNt0kocFKGtFMDAOy+wUmud0RE2G56XF5ucdHZTi+5QzXiDLP1Ntm9NrYzNY4a46hhWGM0wGbbY9SVEydW/JpB4ufsF4QZrSbVw+CcgO5zaGzLp9yBKB2xXbWh+mDYFCl3oI/lzBiLoV0SZHAYDbp+A2MasyUrftWQ4Cfz9OJJaDrZs4af0WJQWJtsnHEGXCPGBgR71oc9/VaFg2nsci4Oy7nGwetzVrAVu2aoYefztWbPdShcq2yMcfrkZj3cIMavxOkUYxgIm46w6QmAAXHcRmD3rdtDJQ0jYLjfj9hwfi6FZ3LFrxVa+Hki3paSo2P0aPGTBIjBhqBZ5mqCw9zO6FgcAWCjOveZqQ7MHTQzxrsR220HedBUZHLFrxU8fmm82ClmcWGY7edySST2+RhAswYzhWWundpg09sDzKwfxw4gCewcQwqgDoZ73N/aPe6ofP1jxa/Nq9S/sGS7Rghst6s6/JgBMmy3ibtRnCGC/ySa1gZKAZtOoe9tf1QpAjEwjHabnV3WrUCqx7gfoMcVOynyk2wnp/1NgseVwXqAAYOMlz37jqf4fKtduboH0HfGbSmwjoK+s4N2Y0YrV6UA1UEbxjAM9YHjil8zpLrn/okEMimDoccB7iMECJ/SJYdlZ1fadKzstixtMLgzGoZxxKE/YHvo8eKzZwDb8wn2h4PrvwLDcAAVzsEYzrZSwJ4yqQHR8Q0CZGDQDIMORCP6rsPF5gKH/a1L45aJhFYGoreQ3kow/LVteCydLz7/AtvLresUukJThxQSRyz2PsRzt5zYeb4yNlz0dPlJ1l4G8j7CptsGj1KQi48bRpkcXjLbgyW6rgeRdidHMna7PXZezjDwkvYeNXuYkv2evafIxp4Lqw3ZASWXWrfiVyEjirLptnCj/IBXGJj4VR4QnzgzGv4zMHYWzH95gAGjbbeW7DL1cIYEOFSK4HBF/NWGobYKasXvAfpHiIoX85OHznnlZFhfQBKVLKLeym96u8/ZGLtM3ZjBkRAnoru046gQJt1kUVbsSjKiKB67vPlO4ArFtvkaNjDuMCPfGbCfQbMDfTYGhC6cZG8HNBZDwO1rZ79wGTCasD8c0Fc6ASt+FTKiKJtua9snyYMEMwDJMOPoOkXeoeNWh7i2jWFntroRMKZHr2xniY39fjozsB+065t65O0+1/14QG9W23my7YwirQQrfNYHt3rRD0BtAY3j1w4qrVN7HBU66tBvbJ/FGAOtCcaQm322h2eBLH6H8YCOS4f4il+FjCjKptum0uI0sqdjjAaPB2Fr2X5mDQiOVq+DDIVh8Ft9FLqNOziSDYbROlUHw3ZyC9p9Xntf1J8VuwoZURSrewQOuAnB+BsC2BjoYRfp+nwYtu9Jtu/jDxO0K8mV7fsQoYf9zJ/ts9jP3RlmmEFDjyP2BwNWsh753Ff8CjKiKFH3ODDMnnHBFwEYh13wUUiOPT379fn4acY4GexZ8+MM+3B7cQHVdVC0g+ERoHfsFAAAhnFGH+HwB+8dYbIHUoya0ZP9pu2zz57hsL/H/eHOeoHBrtAKF7+zxdvxDQ7Yw0ADxOFbjRva4qq7xjO8wJtf3CAYOgI2XYcXX7yAUsp28NwYQFEXjFsxW+ARJvLjgdRbVWkIpX7WOqxphSJsuwvbseEKuaS2u46MNnavVr+xh1wpa7RHtgd6dH3v8vWfZfI52RPR/d7MoDiwneHdfg811veWrPil73P8CkOQWCh5aTuzSm1ApKFYg2A/sUWwB9f50aY/OIlEaruPXTLFoZyHwwFdxeFuY634IXvuM5D61yTmU/kGijoQWZnaJxw6R362JLZO6Yodn2808oDqFA7jmDdRLucVuwyFkMG2u7AybTh0onrI92k8ix2FvGxnws1+uSXMYQ+lL4CoL6pXGI0GTP27Pit+6fuq7STEPHxc3yY6IloPjgZHLD1B9/k6NnblDTPDGIIfbPrOIPmMRH3pOmW//sL17s+K3zR+oeceHC0ifw+TMXGlQOjOSMruMEG2+161MdBGwRg77DHOsRMzd51fMLrOOgpUYwnsit80funghos7gv3MGWv3HfnYkxER3XNjn2vDUNpgJP+pXt+vlCet2zRdp+wXKSphxa7Ewmfg+y2+n5E7dHwwxsCM2d4aN4D1k1mBDNkBP7H9YoTSwEgEpTSMcTaWORxapxx2rS/arfil7wv8xDvvEJCOAbj2bzzsypwY8aw592tXhMd+jz+jrFO2L6OIcHmxtee26BF9T9BQbl9dPZzNKeBLYfcQuf1hvnK4TpcxADpb6Z4/f4aLTY/dbo+7+3vc39/jyU8u8Zdv/gxmN4Z9aeRmAzTZQ78MBuzGW7zSL/Hbv/uf4fBLY5ft9h2ePXmGy8sLDKP/RIP4Bi61OBadlHDtvEbFU4SaIDuYBcHgqbM0tsHjFyn5fi7gTn51/4GBcRxt/qoDeIT3XAVTbdhVFleh3YAzrKnxRsTFN2xnyrTRqHxZZMVvCX5uvEjsfbei8eSIHcN2XOG2BrA2oY8q+bQzKkrgZJmz0EW6gDs6htxp3JXZrhW/JfhZAGpjy8R76zKx23NiLv4QLPL4uFmTlAqFOuCjBfrE4QTeFbvjsfP/koGGEDTDOk7tFg0j5O8VL83NY+UMaHzO2S/8ORScaGpNGit+qOOnCIrtwE7KVqgdGCZsH/CbNKPMIw8GCHrErtNkMeaQd+A38O0waCvfit8Efv7zj0H/vJzFtTHGDiozuv469n5sGru1ykAbCv0b35uXvMbHq/491H5y0D9h5Fx8PQ7uYEcZqLykKFdjjFuBaqBtB9TpGAez6wduzBV+V+zmsSvk5G1mtIzGWIcO4EcZjRCIcXSwkrGf7x2jzH3/hgC3wnWSKlb80MYvTOUjyMXnJPsvetgJopTw4v/a/iuFA6yJYFeGu23jevTbf6x3hwC3nRVisqoM51spwL5CuXv3h500tNsLsXUuJ6UUrq6vcHV9hV73+PbV1/jl678B9fagEyg7xg1HX7qOHTshqQ3wm+EX2H51gR89+Ql+9/IPcHV16fb1uso4avfJBoNwaAUhwBIrTCYwb8hEFSnKu0QmYBAUNmqbeKHi/huEygRmtxSHcdjvoyzZeeCcseVAF0Wt5qy2JrYfsMuMKsvPbZwVvzKOxM977PysY9r1YWY3i8XQWjuHjtuMLkQQDw4UzjvmBMu802zjM1hxOESl4HXFrxInxc/ioMBknAGPwrJ7Wv2ZAYA9fTlI35plXwa4k9GTg51jjUi2hABhb1eL6xW7WhyBnf+UKtuW0AhDF2f5bSfVG0bfGfX8iQUAztb6LT1Rx5ijnKTu5Y6CgtcVv0qciJ8iBVaAgusgQgzQfbvGdl+lhywMJkABPN8Z9gI2bPcxQzoJfMyAX+msK3hd8avEyfSPrWNADii9fth2zdilvIi61pI5+//YzVoah4GYTU500dNqdfBX/KoylvgRZ46BNDs7oGB/+HWDqOzDMsOfMWAMw22KjIOxEK9RzoTOil0aZxq7RLhknTJgk850J/mLgSmJX5eTMQxN4mBWFwx7qa1tn4wyF/J+p3Wqxn6FFKZ/lq+yEq6AwGm4dmXyZ3koZUUV8PONIRD7To3yAGc8aBAMV2lj5sHrD4bWhJu7EU8vNzBmwGbb///svUmPJbmW5/c/pJndwccYcnwvX76hqrJaEqqgRqEFQRsJAgRBY2+01aL1AbTSSp9B0BfQSlvtSuiVVlppIaDRgrpKFTVl5suX+fLlHOEefv0OxqMFp0Maze71iPDI8HQyM66b0Wgczo+HwzEaDZ99+wk+fvqPuObnIM2glmwOyVmLCK6SeLB+YuYE0wI9tvi9+RSfP/sE3bcz/Mcf/ZfQDYISbVcbrHfX9t3DYAET+ZR/vOy8JUYMSEQ/F582+pMEZoybmaFJYzFbhkkJDNznkwg9nLW8t5V4u91is9ng8vIC/mkXed3wes3++WRaBr/MOW3y7UWbTb+8pLxRXeW3n58iwO7Nap/Y92AY0wd+u+0O680G6+uVy7/nZzdUIkrZeFsAA24Xbp8DXyifUSsPMFtjQ+V3Y36KCKwBIvv5lh6Mfueednh+ux7bzQYEA1LavXtuI1bK2E2xMl2EG9z6PDhaTuzWk1zhis1yZXcQu7Abdk+A6bET7Pq+R7/rcfX8wr1jbt+XdIWFf33Hft9Y8PMDWPa5zBj4wYiXXYlg5befnyIQKRjlNrPqDfreGQJMD9Mz+n6DzeqZjV/0cMYJ079T6fMHUDCWy8Gy07iYH7ZPr8YGeZXffn7a654hmN4y3BkDBsP01sB6vbqC6bf2s50sJvO+ffRnTGFc7vvGyKCAh9m22aDyxKTyO5hfb1dWo3ebPfoHUSBgvbqE3TjXRpFE6fQoCje2oSGvEE+ZBQdOMl3Z3bzt9J+1i+zyV95227X92lWAl8maxD8vB8R+zY8tvXE1snPcaWSlQOV3UN8H0kBPoL5Hz+y+asVhvMgw2G2u0uhkvsS56wKdMYDiSgGhkz6wfW1S2c2UR7o/ABPfJXgFTloFw8IHAnyDsTPOhqIIn3/7GT7+/h+xMpdgZWDA7gubEJXXWsjIVQYVKo3Da797AtKAaoF1u8Lvvv8tlLa7vDeNtrtJS1FzTIAygWcHKZDES1wQVrI0nKWkVYOu6UJlSyxXbJe59LsddtsttpsNtpuN3XCJ7ZYuvvNM6kdar9OiyRMWnrIBGHGVnwyX8UPkJzf7YMdvu91ivb7Ger0G+841iiH+K8h90Bj4cobGlsQnm8Zd5SfDjfBzX+5QbpmGMcYa5DYbrK+vcX29QmzgY2cYOtFE99KEix2n4EAYqQCo7NJwBXZkJ4FKuy+scGS32WxwfX2N1dVV7ORFi5kMYINMRgEkcURzQNW9V8FPB92zBtXddofNZo3r1Qr9bh2id3NHF73XXoS+0w+CxtpT7NG33FV+MlzKD4AzqCmELxyxNQj4hxnXq1X4kkfeo6VDEQ5pKCcjmT/5z7MYPCEtuMpPhpviZxmChVF1t8N2vQLl711zpIa0JKEMfinzIOPSbw++yk6GG7adXueUsp8RjMvyrXFnu9kI3UOiRHlWgm4lfeJ0M5lUg7HrIfeV34CfnzM4fjFL0ZBm3H46xemZYFn858c1g6zLOcM44Vs0CqTWoqQbcEBcWwTdtPjk+3/Ec3MJg97tFp1av8qVmmJn4kYF4Xu4ClAt4R+//it8t/rWKpAm6FYD7GDF9i1WXu8VGDMSHWBRGi4bPJ25TAT3cSs0qkXbuE8SkgRIYDYwYpXAzn1j0jgrPMCuoU671TA4mnLZdXItwbhRoPKLwQv8JDuKHWvf99junEFnu8Vut4V9bcDxEzhKDXR+lHrJEL5Bq/yKZT+UHygZ2PZ9j637hMt6s8ZmsxlOEG2G08bXy0aUKZUUMuiUe6T5r+wO0j1F7rOPYPRuZcf6eo3r9TU2m3WUNcW8CRFkOU+dpCPbWD8gGG9zK78YfA8/lzcAgd/1tX231Ow2ScFtukOhWzZu9QAyZlmYfcacmFLlt2/sYo1yClrbYWTf984gt8L6+gp+CbNvG/0rArIn9FlIBvwQnonE5N9i5kVBK799/LTPl/ucdd/34WGGf1JJ3upWTCLt7OJ4iBCngymSpK8suspOSBQldgp22T35cQvgNpJz/K5Xzlhabu0o+xskIsYzKHFHSZaFMlR+07oH3+9Zww65hP2muf1uJzb5LE3u4xjE/yH5L5RnQssmDKu3ZhSw70q7DfSSxoMBVuhaYN4qECk8vXyKC3MBpt6iIIjJb3Te6hKW3hNC5VdEIE32W6oKIA2QJlzp5/jtd/8AdttetG0D2uo4uGA/IY85jIUQBzI7nj37CsLJPSz9wyMOm+FWdfZzLb5MwgpmrbU9+n4Xl8H2vV3SxbErlVuapdg5Pc7Bj+h5yVV+h/KLnSGDg6V91+/Qm8jP9qGeIR/GQbSL4SDvZcdurfwO5mc7WcvPGuW22HmjXL+LwqeYqfD1AfiBk5BT9rRLHufnJVfZ3YCds7oDtu30r1xtNxv0u62I3xcYAMdNIg95MhI72MMmlZXfTdpOCgMjY3psttaos1mvw9OSIHc2mAAAIABJREFUnEQ+nCEgGASEtBCZZeHDxKXsKr99/FwbSHZPFv953b7fYbNe4/r6Grv1SsjOswCsZH20op30T89c0EQ/szj8hKXyezF+4Y1s8pNLq399v8P19TWurq6w214HUQcGPjr2FG2isR2Ny5YDWskyV9zK7sXYOTlrbSe8BPuFsc1mg9XqCuvr58nYJO+1GOkqgrS1THWOsn+V38vz8/qhlTWqEtl7dv0uGMX73TbqkS+zYOITHXKZeFhRKmvB3ZpRgABEqwkHQREI8w54+6zF8bIF0xpfP/09mOwnJygxFVsnx3WxUrhKEt4zcZVZE6ApbFDBrcHXV5/jy4sv7G7tDBx1x+Ce4sZSXljBTBRrwqhBhd37NtH0Ha1MTjFCfG73SQWNZXuERjcJTK+8MWq7t4AxPXrTg8OTZgO76/kerCzzPRJWWuIKrvI7jJ9np4igAKfgrnE0dpIpO1CryPGfFEsCJMt43jDvU+zKb5pfIndXFruUy0YWluP1dsukcElIf19HObxm79g3sazsDmfnDQMk2Bnu3bvqO1F22ZXaX2nQK2tUFFrOmsRv6a7Kb5wfi+IoAjSpsB+AN8ptt1u3UV2WCaJkUhKMc8lIiH3QIDwqMKz8Xkb//NM698SZCGCD3W6LzWaNfhe/k56gIfnlpJAh0f7mg18K7fO+9jYkIQpf+ZX4ed1xr/D4iYnpsdmssb5ew4RXdyiW1wknf3GAEXu1w8ymTqCF8lV2h7GDY6eUBpE1CqzX9rWr3WYVxqW+fF4Jk2wJkZFgPdm7+cZ7ZARa+e1vO52k4ys8ZFeJ77ZbrFYrPH9+CTa7qFMUdXCfbpUNAtnYhyfKh1vaaLBrgfNjg3UPgBUUAU0DzGeM06XGOw9maDRB6y3+9vO/x2eXHwOqd+9mOyGI5SCUb8omKgkjDW+tnwTWBNMbaFboaYP/9+v/G//uO/8+FjjCH334ayy/WeB3336KC34KNJwokVWO2Pgx28EHO8jMflfyoWTZST3MuZmhoTCnJd47/Tl+/fjX0LqJ6Tgt01ph1rXuXuPer4TduCdMIg0IPeyXJqWF1qdeUHwW16jgXagcld8B/OCE7zkohfl8Lni4ZUDsu0wGs2VHZKBJg9jKJsjENbg2bUr5CHa2DONaXfnt46eH/EB211pyk0zYHZg3xrjNHHvYjzL3INhNBjXFDXG9eHznEDvPDF7MaWX3wuw4NnoMkCIsFovAzZge2/Xafqs5TCZCjlw7ai3iWkxGbB5sp+6733EtK3fPld+B/IT8SAHzxRwAY7fbYr1eQRm7hBIs1YjEqMazdO+1S1giazT0ctWHiggrv/38soW1UIowX8xhTI/nl5fodxvw+gKa/CcLEfJmB84iHbL51Z6h5xN4+9CIfaTT+dLnByq/m/Cz0w6tCLP5DNvNBtzv7Ksf6ytoIhiOXw+QuiT/kUMVNm6FneR4joOciua7snsxdn7y3mhC27XYrNfYbdd4fnmB/uopWrI9HsFuckzMA30iht83UDAc69kQePqyVH4vys+Xy/Lr28bx2+D55TOsri6hdm6VHKUjEY6JjfZh0osL2ZVxlNyNjQIfffTR//rkyZP/dipM2yj85v05tj0BpMKOiI0mNA2hawGtDFabDb5bfYtNfw0mtp9KcJXd1+E4IIiljROvtIJbcuTCEEgpsDJQWqHf9fjq+Zf45fFvMJ/N8PN33sfJ8hhffvcFvrj4HTZqDd2q+MTBDRwYbDsyolhBiOO4xCfrjhNZM9Bwi+PmBD87/QDvnr+LWTtHtKm6u8kqr24atMz2U4RubwGtN9j6RtT4AS2X6kKQRTbmSi+Gln28UlR++/g5bPJuAnSj0XEXnjD3ux026w02SXfq+XGsB04WgV0JoPAaJ1f5Hap/sTi+UAytNbpu5r633GO7tZsNloZDRBw70BxV6BiG10I8IxAru/3sfIEoCBlotAJmXdjTY7O+xlpp9CEF/zeuEPArDChe2q9ce1zlt59f1Bl7NwFotMZsPsPRbontdo1+dWVHhSHOoSJRkIfPt8jbqO5F2ZUCVH4H8vOFcXc3jcZ8PsdiscBq9dzpnS+TTJCShLwmKyGjkqM8fyOu8kOIY5yf1EEbuG0azBdzdF2Hq0uxGjWTuZ/MSFahRpA/ljfl5+Ousgs4Dhi3CLm1DWazDm3jVhKYLSgSDK0sga0RIBe8izQZDyUXK7/b5NdojbZr0TaN+1pSnzz0k3EPXs/JSPl2snT9UDdpFPjoo4/+spDuf/TRRx+dA8CTJ0/+q9J9ShGOjhdghtsECrDV0i1/px0YCs+vL3G1vUBvdqFCkg/raoZcuuQHAb4Gy42DmOG+nYuwvIMAGBeX0oQfrr+DOv1j7Poes7bDW48e4/zkDO9dvIfffvsJPn/+u7CbdbCg+VcgDbtxhpU4EdlPgYTSiV8mEBM0N/jlya/x9unbODs6Q9PZbzQ3fnOJRKywT1GcUaA31ihw3azjJAO+sS4raV4xi51syXSUucpvmp9WWg6NIj+lgKZB13VhJ/Tr63VAEb4e4fORxeJzMqrUkqnvswsoK799/FRRNxQRmkZjNptZo9x2i9XVCvazk3K4431cNI5LmIxIUBOTk5IWVnbT7JRS6aDBD3mI0DQNFvMZTL/DZn2Nq6bDlhWUYtHuMfwQqdS5su/1qczH5pFHmVZ+B/BDzHvkB7RNg+Vyie12g9XlJUgvYHgdYueQD99+KiGjSDc0iqV5zZ7xbeW3h58vE6V9lyKFrutwfnaK69UV1nqGHRO0HDkDyWA3iMMb5ySfnBMnd1V+L80vyoxgV2rMZjOcnZ5idXmBdSizW+2RAEkNQ94wp0ARKjgJHTU3DGYruxdiF7+h60XYKIXZfIbjoyM8v7yA/V6S78R4SE7g9xKy/WHsE1lgio8gyxPVyu/FdM9LVSuFbtZhPp9hPpthpQiGY/kkiQDIycFLL6iTVDO5iYeMh8v8vNu3UuDnAP4awP8ikvsLAP/T1E0EoFHsjjcuT7JC2Ubm+fVzbHbXMDDQLMrhheY7HyFM2YGQX3stanBsa5ylzN2nFWHdX4OVcd+At5KZdS3eefwOHp49RPNpg68uvsJmt7abV2kClFs+Rb489tcPKoPSMeA3l9CssdTHePf4ffzm3d9Aaw2ltXv3TkGVvi0POymB1miaBp1pses6dG0jOlI3oGXOCzucjAxOy71saRl65TfNT4c1/0OntELbNjCmxW7XoW1bgFRq2BFKGxcqp6IYdWGgOzZ6qvz26p/7znUuNQJDKcdv1mG7m6GbdQB1YO5thwDPUIUJpRwyldQw58cM8MiuS5Xdi7MjIjRti8V8js3yCM8XS1x+30KRASkD9FZQfpDhBx3gkDz8fL9Ex1/3xyXEld8+flQUHLkyt22Dk6NjXJ+scPHDOTZPn6HRLhFiwPjyugEsolHAFov3qd/oWeW3nx95Q0wiMSsTrQjzxQIPHjzA+vIt/HD1FKq/DHwsG7+sGUEmcONcKeOc4aC3K7w6UPkdws9N3rNWlEBoG43T0xM8vzzF9ffH6Hfr0FayW/HBLiMMLw8ImVAWa4RCiJu6BfiV3Y3ZUYgplVzbtDg5PcFqdYXNs1P0m+doyD7pzg0DCOUT/7J2tOxEO1vbzpfQvZQfEaFtGiwWcxwfLXF1OccltWDewc4RrNxyjY2Fl8clbpyIK7Iou31Ggb8A8N8D+B8B/A9Pnjz51x999NHqyZMn/+f0bQyw3SQoVIqQWT8IY2y2a/TGuAGyq7zkmysPw17zzVj8L3ZH0XJGMgf2XvZtEMFwj/V2jU7NQsyGGcQ9mqbBn/3qz/Hs+QW++uErfH3xFZ5vL7HtrwEVJ3K2AnOooGEjDSYo1pirBR4fvY33z36G08UJdKPDYBbsPn8mLX0ZRKUIjdYwWqNtGzRNg50xobw5c9l52krKVqFKASSesWuV3yQ/IvsZNCENyBNiArRG2zTo2g5dZ40CBipKgTiUncMSpfT9S06jTZtgFp6V30vxSzi6NtUaBlrMu5ndJ0J34N0GgAZgN6/zExKvcwGFOI4D2Bze6MXKbpIdJg1yIGt1b7sWR8slTs5O8c0fljC0AWEH9/wAfgDky2wHCmJAVNCpQR86ulqg8pvip1Ay6kSn3VOv8wfnuF69i8+f/gEEAyiAuQdjF3VVDBSTHdEdzrzdDAYdX5bK7+b8RiZ+Xm2UIpyenmD79rtYX19h9c3foVEAE8EYm+e40iYd0XAYlMQ4/XUizgx2nNGt/Pbx8zrj+7lUarZlbLsWjx4/wvrqA3z/xQrt9iJM/hlst9VBzEMotzD8RJaps+XweS+gq+z2sksNcjHXighd1+HRw4fYrt7Ht9fP0OwuQU5G3tAmRUok+cULfkwjJB81jQjMhPKksvLbr3vl3k87fqcnJ/Zz5qt3sLv4zPZ9Tp5+lbgK7SB5sUIad4IsXL7tXw5U2MU45iaNAk+ePDEA/uePPvrof3N//7DvnpghBki8+x5qpM+O3WHfdxDhUxaykroDSo4oVGD2E2DZwYjb7WWKPRYxtmaLmZqnrSLbuLTWeHT+EOcnZ3h/9T6+/uEbPPnmr7CjjZ3s+bgAsHH5MQpkCDM1x8/Pf4GHy4c4mh1j1s7s5jnklx67nV5J22HRyLiIQCCtoLVGo61RoO97t0uz2E1AjGrYLZmRnPMGQPpzEqJcOSq/EX7KLwMqis0VgaAba9Tp2g7MgDF+mZO4USIIWJ0ME78iIKHipcuVn+SHoH8qGAVCtjNHRNDuPa/FfA7dtNjuNMht78mgaFWH7zAQG+g0tgRARD7eLFd2ZXYqZ1dyBLc3RIfj42O0syOYje8GFfwniSjR4XTQJHkCwwFsCDuy2qPyG/LzA9qyQZUQRnHOcLeYL/D4rbfw+9+doe+voMgARDDwBnI3RBRtJLuy5GIfMuTJFVmV32H8oiP4N5iVVUA8ePgAff8h/vab34LNFqQIBgoG8YsSFMRBgR0hZegb1WhG94XG2GKBym+EnwJNrrTyeV8ul3jnvZ+BjcEPn/4rtDpKgb2q+qe4vuxB9sAg+ozDVJjKboId8teOZZEZWiksl0u89e67YLPDD7/912gpls1vohvnH6LxDOUpRO6aZvvDkVPBVX4j/MjrXipb2Qc2WgPzGR48fAAw43dX30Pz2hrD2YDZQGNnR44EaKF77KYCXovDaJNj3+jLyxP8gAMn+E+ePPkdgP/mo48++s8BPDvkHgaH3S2lr88YsUKr2uAdHBFIuU81KHLv/1JayYyzLKlYbWKaFCqyh8LsntMqsXTfVxyvIC4qY+zS4JPlCU6PTvDhe7/A5eoSXz/9Gl9dfoXL/hkM70AMnDRn+OD8F3h0/Aht07mdlSluQMYERRpa2X+Nauyu82ONpsuyBgFtgxkbLOdzgBi73rjvXGoYp1jKROXIQfskOMgiis9auQzs7QYlV/lJfirjNwUQYVLZdR2OjhbQjcbmGmBDYQdSA4bfh9sYYzcYCYNV8YpBJl7AWjnhOI4tQ6/8Un5KaTTUoFH7+QF2tYCfWM6XS6xXz8E9QbECyDabLDqeMJEEBEMrCE70zz0pY3s8gFvZDdlRbD/VPt1zcmi7FifHx3j4+C18+1WP3boH2H/I2L3+4fZ2CZN8OaFMjpH4ewu86avuHcpPKYVWNVbuk+zcarm2wcnJCT741R/jyy9+h83VUys7agDurWydjJQST64cy6CLQXYUdI+NXZ3Vc+379vFT/pU5134q8dpUkR/sBKZtW7z9ztvY/JN/hi8++xibq+9A6BFv5lBMciN5Y3KjAAEQjNwyXdP3YKXBpvI7lJ/dy6qBnuBnc03QRDg9O8PR8RE+1hpf/vZvQNsLaEX27R3/hJYBJTo9ZvsZXyIEA481NwhldJxZqehf2e1lp5WemDvYjBNsuU9OT3G0/Ai/bTt8+dnfAZtnUOQm4zDQBDQEsS+Sk7lht5YumzQEdkBv2H6Hqa+6dzg/jYY01Mjcwbd/IKBpGiyXC7TNWzD8Z/jmD19i9fwHoL9G32/Q73ooZdAqRqcZjSFoaLCy6yDBBEMQRrtUTrue7doDM9Q972709YEnT578SwD/8ib3FEe9AMDsvvdOiKZD361QOLLwyFmVyd8q+haOowkxAJcx+IUXCgqzdgbq/bslSJTMDyjTPGqcHZ3ieHGMD/oPsNlusLpeAcQ4Xh5j3s2hVNyIzOeT3PuTUqnHOtTci11sSik0rUbbttjsdq5syv0zofNkX8HDvfFvOrFMZi2wilNgM8hNyfs+8dPhX1GpCxIj2MFt2zSYzWe4ugB6A7DbPpTRu3CRiZOA9Y2CSBD4yYsd4IoOd9RVfopsh6qUQlEBRcmlphBZ6+1yucDFDw02G5tnpd1CrvB02ctFnk1NLGE76Kml8CEXJe/7xM5uTqeLT7iy9OU5AVorHJ8c4+LpAuvVJWAYfp2BHeNweHriI4hPLdxARmilHdgAbAxYqWCcG3eVH/n+j7Qom0izKCk7lVCKcHx8hJOTM3yzeg5j1q7tIzcJicvRjUkVzL9LG1vYyNAYA9YNpp6WlHKVyuZ+8JP/0tU1Y/xcG0h2/HJ+do7N+n18+cUOu9UPTmZ2qm8MwxDAyvZnho0l78SS7vbN8AYfY9i9TlL53YSfkrOgkFMWOfCGGisXIoW3330PRIQvPvt7bFffQ6skJIjtcmbfjrKflHluFAD6eaU1CmTjmspuD7vktSsS6SLKgdykma3+PXr0GKY3+MMXH+N69YNbaazshJDZLo9Xrk9zjWMQaRB/qtnGGQ72Thsqvzj3C3shpS5kP2TY59r+t1zMcXr+ANvtBleXW8AQmDWMIfTE2BmG0ogPmcJ8IBuzuDIbY4129kHi+Njzxp8kvIkLViNRbi8EBjDrZmiowY43rsVgwL2vwkwAGzATyMB9iyG0NAj4g1LY5aH2fW1XMRiwX7/tASZoajFv5+jNLmYkZjZ4hSvuSSCRtTZppTFrZzheHNtK4KwxYTJAFP6FwaxbJaBDo5ylMeJ8/I1uMJ/Psb2+hjG9mF14RWEYtu8URT1m3y6POuMGV2NPmq1IKr/AL3vCXOYXmyJ28WmtsVwucdF12Dy/dINXDeOaVp+2YWtEGETM+aELbwyY9KRRp/LzlmfXMA+61aHE5DGBobTC8fERLo6OsL565p5ywC2FZbvahk36nfS8aGJQ5Btp4yaWY/gqO8eO/BOSaFCdbDtdeXzaR8sFTs9OsXr+DJvdymmofQ3EcDTuGD/G8PfDv1LAKUP2HavCKLzKT/BT7i8l6Q4HSG4kGuRv45zN5njw4AGuVys8/W4F+xaB52Zf5bGDWtuWBv32BvOMoTcgsMLY2x+VX85vMCkZusDPTSi9zJtZh4ePHsGYHn/4osfOTU58tg3bf+wHr46Zve4nDkj49cZORKdc5Zfx8xvVUZ5wRpGi/MGMtpvh8dvvQDcNfv+7T3F98RVa7ML40hj7eCOZVDqGQTxJkna8ipFVHpXdCDuiVBCF9N2gE4BtH5u2w6O33oJuGnz5xWe4evoVGtrAENArsu/IG7Z7fjj5EeKKVafRAaLxbeeeSWXlV9a9QqdXOgwGVa0Vjo8WYPMIbBiXlwYKG8vIAEy+7TQwTCBjVwnYzXxtenGPD9vIOvvB5IrLWzUK5M5bLHylmXdzzJsF1lv3EQ1hbbRLwwhsDIwikCt0tBxFmr7yKflir1QU57dsjtC1M1yv+2Hm5HrDWDucn1sKFUalaS2ym0+IiqGsxSguO9fZu7BB3Sadn1QeHS2xXl3BXF+CzQ6EuLycXCdsmEP+2BenxN0rEsMq99iLeaVb7yk/rXTyPlfCMEEZB5/eTymF46Mlnh8f47vVUxjeAAYiLt9YiKddAySis0WUcTZm2uvuLT/SsWMdpCsFREEOISsELBcLnJ+fYXX5DNfPVwAbEDUINvPAwnUSoISNjA8c68j+J10ia/eRHYmde8c6sZBXoYgcS9bNZnjw4Bzr6xW++XIF7ne2QydrkPFDU7mngIgkXHNFCQYEq/qV3xS/ZIUcKL81ywMQdwd0k0pmtF2Do5NjvPPuO+j7DS6/+z3sppGWoYFYtSP1KfSFXu6xiIbJ9aG179vHz6/yyPfRKUvOlo2IQGxXQzVaYzaf462334ZSCl9+/gl49XXoQy0Pl08iwZGCfrH4sf0fxfpyoLvP/OJeLKm8xqQXVoSQ3b297To8evwWum6O338+x/Nv/tHuGs92pUdvnEGO7LvTwi475ODHLnXcciN2NqxINj/Imj4it1K1tUa5xWKBP3x5gm8//xs0ZMctBgSj2O535V+pgx+/xv4wGong2lr5ycH97v7y03EPq5D/NCoRHYT5GkSErmvBzDglQte2+O67Gb79cgVit/lgWGkFsAGMsnu6+KGQ70NtUWzsXq/DFxwK7vaMAsGKkznBtWtnOJmd4nL7DH7XSjCcFcQdc/QjZTfJCJYlF13oH1wn4e8JNdgAbAins3P3TrHCcOE1xQqSZTdWEoiKE8995VBK2fdiKD7lku/Bhl9CIaL4J6RNdtOs46MjrFcrXG6egXntLGFO88Xgxlv6gn6EaNOITawr4/1q5ecU3A9qs/gkQ7LDGxYTE6+QRMDR0RHOzk5xdfkDdlfPwYbd6wiOHyxPw8Y1FumANsbpRCz+jbrKD0TKvcuVTioHHao/dUWLHaM9ns1nODs/w/p6hT+sL8H9UyhoaDcISuLjOECiIgH7rlsY2JbcPWdH+YQyGxBlCdhDVwZbjGhEa5sGy6MjvP3229htN/j+q0+heQsNuCeguehtxtL0ol7b2BUUATzWeFZ+4j1Y/xm7gpwSnbTKxq5vI9h9lxulgVkHOj8HiPB7MNbff+LeiTUg6CSvciCUKxgHNuR0vfKb4icNAqONVWCYPxn2T86sDipa4K133kHTtPjkr7+FVju7izYzwPEjeUSEnnth4BGtqJMpKWVPxga2ld9wUgkq6yAQxpFppij0mVopUNPi7PwcXdfh33z/JXh7iU4zFDPgDQHwEyRg11sh5EnavlG5F9oLGarsEt0LE8+hpEZc1BvlJu5EDY6OT/CLX86xev4Uq2dfAWbjdicDDBGgEXgT+/fTRZ/Hlorvi6lpR5Kv/OLYRW4qL2LMYCapcxy7NG1n5yBNg6ZtMZvPsble4eriOxhzBePaSTmWJBItJnvRclBvRWR7zW5egOfSHb3yko4J8ZvC3rmKQQRYOxXhZw8/wLOrH3BlnqHvDezCXBV2afebz9h+gPxeM/bHAKRcQ8Rk4/QbCrl1aX0PcM841w/xi7MPQURomsYNzH1EIt/D6pxk3/+QrxT+n6KwxFy5p1xKqajQVIgrPyNXsb1CsrXUPn70CMvlAt/OW1x88xlMfwHWHEXqf8Ik0ykJgMTi534MM3q2lq1+ZGB0r/nJ95jJD1eG4HKG/h1ID4Vh0zhaLjD72Xs4OTnGF79d4PKH3+I9AkAcNvywYZXjb0Lstn2jhKMxcNJn9CPLuO4zPyIKE8q4TOoQhu5pFez0wqfRtQ2as1McLRZ4+PAhfvvx34K3v8dcd1AtxPpXgp+YsEmX4AUjnHvSbACQyXubyi7XPxnDXn5hCaHtoKEIjVbQ8xlm3SOcnp3h6fs/w//3r/4P+8nQ7Qxtq6AUYHYc2s+wGsCXK3Sudl+QHRGUMWhny2JZ7zs/8u9RqtJ7lCQilIfu119WdlNPVoSWGjRaYzGzn9z6m78iXHz9CZbo0WhlN8BTZJe2elUU0OwrBpZrz8CmXUCxweL4tPIr8qMwKQHhQIaRH3t+UFBag8hupNs0Gov338ds/h/iy8/+AZdffYxFax98NG0HGIPePymEf6LMgWfPQK87qPOfAUQ4Oz+r/PbxQ9SpAT/BkMLkiOLkz01I2BgoZWAM4eTkGH/xH/wn+O7bb/D7j/8Ku2dfoesUGt1AuU1cTd+HCZrcFNkw0JOGWbyF2fwIultUdkV21pgadY/SuFKvoQzddaXtHMS2fQZtq/Fn//TfQ9/3eH5xga//8DtcfvMpmDcwTNj17jVkNmH84svJDPREoOVbODp5hJMHVffGxy7pg8Q0jhFiYbWE+we7yli1Hdq2Bc/nYGacnJ5it9tifX2NZz/8gKfffYXN6gt0bEDGjiuZTKg3Pi4G0EOhPfsZTs/ewtHp8Wh5b80ooIjAFC33DMQdIoMoGLN2jrP5GVbXFwAR2L2c6/t0Xxs8R/L+gI03zp9CnO7AGosM0PQd3lq+g1ljBds0drMGNmLBBvtJdoGc7AO9pUyprILYd0DSTV3KlYHGTlh4unhB7hWC5RJ4622w2eHyO4Y2z+FXBtilfexWENgnKL5KsiubNKL1htErBd0zVNsNy4t7yk/591/l08lDjDqIs78wKuKk4WiowenJMcz7H+D3ZoPr9ZeYd9o2iMaG7WF3BiVCeCfWR+snkgYEwxpGtVCmx2wx7FjvKz//7rJS7h1YymIcm0xmEK1hQDT8sMY56lqcn5+DP/wj/N2/+S26RuOsaexHtnr3vp1jyM64APbHyu4BoRqQ7mDUDNhdg7Su7CS7sKEZhQjGBkKDdtSt1CFY+cl47NckWjx88ACnD3+JZ99/CnW6w6NtBzVzu2obhHbSgOwkRHUg3YL0DKqZQ3dzHLUzmO01Fsvadkp+fvlweDKZRbJXDz1DsnlRityGjsbtaK3RKoUPf/nH+Lxp8Oyrj6G3O7Rdg5YJvbHCsh8VsEzXqgOaBZrZMbr5MRbzBR4tlmBj0Hbl4c/95BcHteRW0OSTyUPbUqtzdlKjlLKv6ASGwMMHDzBr/xSftx2efvF3UNg5YwDD9Ize2PELA1hTA7RH6JYPcHxyjuXxKbquhW5mpQwCuN/8yO+dQ16PCpGVoCWh3L1hDGpfPdDawBhG1xLefvsdzOZzfP7xE6y//hSMHsbtPWHY7k7PIOxIA3peJ2mUAAAgAElEQVSGZnGG5fEjHJ2eYzZfgFQLXXjafD/ZFdrOwqCzNA6V/mG1hvgvis6/d28/Xdg8eIDl0RF+OH+Eb/72/7L66cZM7DakM7oFqwa6XaBbnGFx+ghHJw9AukXblR9G3Vd+ySeTKY1tpJkKcfPIBfJydLkjAtq2tZuXdzMsl0d48PAhvvysw/ryG5j+EjM2dhUjgA0aQLdQzQzt/BRHR2c4ffA2mm6GpnnNrw9Yq4zGbusqBpGrIH45kf1lY2B6g2V7DLpSIGUicBsiLgkxcDvO2koL9x6FmzeHJW4Rtv2ndhpn+gHOFw+skrBB17UwxqDvjd00Kj7GKwIKkwvx1ysyQuWg8LmzZAg0NpAttM/xKwKu93Tx240rGpyenmE5n+Hi4UM8+/4rtIpAyi+ftJNPYoYxPbb9FmzNZQApkGqgdAulGrRKoTc9+u015ovhpORe8oN9YhEnk/KeAxmStcyFBp38QMs2iqpr8eDhQ7Ra45N/uMJ8u0XTNEA7g9IduvkR2qZFo2098uWyFt8GummgdQNSCn2/w267RqOHJb5//Gz9Tyzunl/GaRwmwj3xNRxv1LEF15qhqMWjx4/xzYNf4fvVl+jBWLSELVpg/gC6W6Lt5uhmMzSt/VxN23bQuomWewDG2KcpTZsu47qv7Kx1ncSAaJzfAKcfc7if0I16duEzWdaw85s/+Xfw+adzPP/+Y3xPO5xTizU0erUAtUeYzY8wXx5hNl/i6OjEctN2smTlagDS6HfbQnnvGT9XZv+6jvITClHWqT6vyJBdwuQ+G2nc0yDYtvXk7Ay/bP8EXy2O8P2Xf4/L1RVaNQcbwoYUuF2inZ9icXyG9x6/i6Zt3RNr5QbPBkq12PXDd0zvNT/4tpOK0PZyJCAY5mzBQMatxDHkBMHQDeHk9AS/+vVH+OroBF9/9gSr1RZto2EM0FMDmh2jWz7EB+99iG42h24al2/39JkalD5JeG/5CWNqmNQPCe1pT53yuQaYlAKx/dKVnWwpKGXbP02EB+fnWPzpn+P3Jw/w/LP/B7xTaFu2k0rVoDt+iMfv/RHmi2O03QxKazdGMjBcWEV0X9n5B1GBW4HZAdy8AZzJzwXIopN1QVkhaSbo+Rxvv/M+Ntd/jouvPoHZXKFVAJoZmrNznDz6AF03t5PItoPSjdU/EKi05P6+8UvGnSqcp/cX4i2chxdtfNzsH0zB5tOVk2ALr1UD3djPns/+6J/genWFq8unWF9dgPsNtG7w8OQB2naG1vHTTQNS9gHV1Jj4llYK2MoBZux2jpKrIG7EBgDojcFmuwGxRoPOwqLefSvTbZrgLUKMUHGYnP3ETbaIrB/5CsJu07Ze4YhO8Hj2GPNmjr7v3fcvAaVVXFrjNkoxPn9IK4kccJKvDH6XyfBUObXu5Y1vVOxCJxsuefmIERLJd4OAtjnG0dExHj9+GCagvnGxhgEVOng5OA5WNwCGe/S7LRgKu+36/vLznahXaDGZLPJJYRXCuDJwDONXCti+ltB1CuePHuLfPvpn6PsddENom9btNqoRLI9+EOvlBC9+a8Xd7bZQqsX2HvPzBhc5GJITyhLEYQcrm3FO5Y1o1GF3VSlC2xF+9ad/huvLn2O9vsKsa7E8OsLy+NR97UC78ulQv+TSMMO2UyLVBqPevWbnruUD2VKnSoWTSFDyc8svyQ0k2Lh2Ejg9P0U3+7fww7ePsL78Cr0yePedX2C2PEbTtFDaTUCUCjroSxaX92mAhgbV+8QvGDzh/2LIcABtjKH0c0QVQKygwG5QaJd+6kZheXKEn3W/wsnpKZ59+yWILrBYnuLR6duYL0+gO2uQU2Eljm9DGb2xX54ob7Z0v/j5Pi9MJscYZpAGqklpWlZuCkq7jcwcQ78kh7TC4miJn33wIc7OzvCHT/4aTUdYHp/i6OwtzJenaLoOum1hDeSubMwgKPS9KQ7kK78hvzGGg1MCEqMO4IzYBGPsOkUrQvvpDmLCYrnAL3/9R/h4t8X2+bfQDbA4eYDjB29hsTxBO5u778q7TLGLe2jPuVfsSn2fC1m4vySpkk9cOWzcygAok4z97a78MZe60fjgw99g8977uF6twKZH13XoZjMo3YZxMfzYyrMr5ut+8CvPG1KBHGoQ8L7RyOLqg/KGAXePyx/cgwl7bucW88UCs9kMJ6dnYNPbsSXBjT9jnAw/hpnIIG5tpQDctyjhQBnIdxv84Mr0PTabDTbXW8x4AcMGm90a7BZKM7lvaooWjZWzIvlKQ/Cv8gJKVgyC4gZvz9/GcXviBMrwX31zMrVKpCnEb50bhLAXYCyXV2I/8UaIJ96fyzu1vKcppcm6yu7SZFfzScUq5xVgPluCYSuAYbvcTmu3qZOiMCHxkQcGzEDPQNNA6VlhUvIT5ufkV+IXOAkZTDEsDYoctNj/ITYeXnIgu3lWd3IOgKHIuO8z+8bFlYABspaEUA7/niwbA1IaDAVSwyV494dfAi89LzJMAhYYOvk7K7dlrkCK7Xo0Bvx768cnxzg+XgJsQGSgFUFp5bMPsH3H2eahd0wlR+XepavsxvgNZDPFz3d+Tm6+Y1VMMKwA97QZbAcGy6Ml5vNfwOzeBXiHxWJuVxWIShONcez+RnbGl++e8ovSzvkJUgWUVLgwDGYTtgMbBYZ9smgLbGz7R4Ru3uHRW+/g9Owc6FfoOvtUxL6Sw348GSaUflIJkPvSyxDgfeYnyCXyKDIc3BfT9zfaNO1KAYbfp8MOxl3XhrbrcP7wMRaLfwpig7ZtodvWjl9U1L9oFHByA6E0s6z8Mn4DYFMMhzcoUjDK5p0N3Ctyoi8kgqYGv/qTP0W/3YDAdkVj0zgeIqUwN1TFjN0XduW+byiLkht4Z9ztfE9BsQGz+2yuM8T5PNkHhlaiBEA1GnNtV8YB4qssWQdXmDIP8nw/+KUDkH39YHJU5MoAxwdadn8cZ9QJ7d3IfZ68sq8/g7UvZRi3JMERjShj7tb2FCCyy7EXC+2EbLDb9djtdlhvNmC2n8XojcF6s4batDhSp5g1O2z7NXa8geEderKbSCgFu/TBmocQvktJdvdMaz1iUK/QYY4Fljhvz/Hw6AFm3RyL5QKL2Rz+04DwdS6TjVcuawCIjVcKdaDW4Z7kXATK7y8i8dYAsi2wYrvUmH0b7GBbYx2BjQbYbujDsJtrENykP+swXTUBM6wRQWlstrv4GbzKL1PoGE8aNw5mqBhh4xQ/obf/c3jn2bjled5gE9JjRv4sJA6MGAz7tQKTK77Pxn3k5/5Q4pt6xHhKccRAtiNQYGfB5WCccfJmA0CDSHaCXu98pwpIPfRzE2+YLj4sQWUn/cuGnam44qCG3LuwxMYOKkzcdAls363UreXndU05wyyz27UnDGkQ2mLQcC+lJI/3mF96zXMopZNGUowPbl8BUiBmsDJgo2DILf1kA2oUZo0GeBEfYjEA8qvljCuyHXjZvT1dRRtheP/4CZ8xhpO8IHQ3vWInsAqs3HjGMPpetqVWX+fHZ/ZY6hr7uuN1ku1EAFZeGNkkufIrX8/1rsQwOCd70trqHjuGhtGb3m2Q7MYzxHaJedfFm/1YBUgml3bTzzg5G2Th3rE7QO9G0xuekGvXiLRt/9gadfzmgcbt3eEbQN8c2mj82EZOKr2fvc5gwK/8KLj7xS9CK14p1e+iB8X03EMHpQx6osBNtpeehMi1O0z1jjJ+tmNUTo5lfsCtGgVSATEpNI3t5Hf9Drue0SiN5WKOi1mH588vATCUUWibOXSrsaMNNv21LSTZ5RQAEHZs93072crYsEZnOhzRCY6aI8zILiHsZnPMZzO3s6atVCWRjIuJB1cHZ5mWDiaTNKhKyYmsVOFJF+C230TWsLo0lGtg3VNMv/xmjLf7aBAI/knJeInvI7/c72UYihFNeCcdbBtV8pd9nGSvc98HzDnD2IwTjK8frgMoucpvOPKRDItpZY27R2jfz0tfAWC3DC/kTBGYXcmk8UBCIjHFJKrsBnJPPYcGORryHNzm5cohDnJGU/+0wbiZo39qHPIokBD5p83ekOdKQ3HgNebuI7+S/7gxYKQdHaRrZWnL6fo6cm0oW32LAyUOkaXDJrvUGWEO6eQIuwy95O4fv7E2cWiUS8IJeabBonJEWbrVcsp+xk62pZaP1MX0d1iiaHgvucovDUnZxYPaX3eTGMaA4FYNcGxLo3FG8AsvsXMyDoojUB6Rwn1jFwVfCjWpe+JkrD7AjTsVO2Oqcka3XK1EfxnvT/cBsP0lwX/3qvKLHrn2TbeZU/FJXVEI0wbYV05h7eAAOJEz5FjT6W0w8Pj+jnyfaeBfexhzt2YUAOLgydc5gq00i/kcu36HzW6HY3WMvt/h2bMfsN2swWuAtgTaaXTtHFCMHjv7TUZlP20TKqx7KqtJQ1OL5e4YR3qJWTNDQ/Yp+3y+xNFi6d4j2T+gS50bWOblEoNIe55eTQezaYtL2UGxkg5GU7IC5IdkXwFgBkwPb2EfxC0GTIYR3vOashjdT35Opi/JEOTTJSgSi7XCACi19YFgl70yAC69LxmXw4Lcp1u4UFfSLNxbfvlAZ1ROE4Ol8F6lXzHA4p9Yfmw7HK+mljGFjtZ3pjIRKYCxzhX3hF25mz5I/4THsK2TN1DCjsIM0TMkeGNdyD35vEXOPv/shDE2qfRJ3md+ufchDFP/eBTbSTuxVH5CwnADHTc5AQJHhiwsJcUOk5KJgdH95ueuFAe3ezgWfeXqHQCswiAXbHUzLk0u6Jr3F4bU8n4QIgeV3/jkZHJiItMXfZo7Ua4NNW6lzpRBIB3vuNw74w/tedp8P9gVS19qPovt1Xjz5dn5ECoY44KuCWOOn0cMxyWy7/NQ4h5qY+5+8CtIYICIBkORwmnhim0v7V5W3hDnNuh0O0dyEDAGhaOQ28iPwhiHXPjxXNyiUcC9l+EqYVy26T4PpbvweQXdKPzw7AdcXj7Der3GbrfD7tqArxlq24I6DdPuYHQP0gQydmmMJo2GGrTcYUYznMyP0eoGBELTdDg+PgkVAzxVjQ90Y42sPx4ZHw0OqVil0vsZbuDJMApuCZdVZs511wWH0nbYJDvSwRGBFAtVH+tc7x+/Epd8MhkZHtAo+L7SmfzIvavEoDDJjANe14GCAdKBilV+P3Hx+s9C1Ss/eTLgNzaIPWTFgHtNg9y3cv3yOSYOjXOcVAK2MRcJsWyehdKy4zpq0KnsovcYvyTEiEst6t42ACg3qQwe9m+yo7LoUt1kJKzzCXmt/OTJmEZNTiQnJzf54NarjAqflYpPQKKBJ9zLcmDkE7L+fvPXsqv8hmEPYXhI4rY9VQzBELEtZcEP/omXa2MZYUIwbRSo/EqhR1fujEXofjnrqkjFd9a9cc41lAD5MYtnFycsflLC4Al+95VdefKwd7VA5mGl7ds2zlZaeWOqH1PK8aeMSM4bvF66fLoJ5bhU7gs/2acUDAgFcKU2s3zqVuiElR5ejohjR38Tyxg4i8XnNPID1J628zaNAr5icHxf2jcNvuFXSmE+69A2Gh/84ud4+vQpLi8vcH29wmazQd/vsNlu0a92wFVjlz1oQtu1aHSDrm0x62aYz2ZomwaNbqFVg/lsgePjExwvj+znIoL1cqrbKkz+psDmE8BSnPkyyZFWuTwxiY0qicoXagYAKUsiO9GMT7EQwvil6oGAr1NEY6/l3Ut+U4od78u63r0MAbefajAEEPtNlzJFjrP+xIjjpyOAa8/9FUXiMy6Zq/zK6jZmDCjps+fnG1SPi8luvOQmGBxWBoRpjOONOKIS3HxCikY+DVPZFQdKN+ZXTMUbblgwghvMxsGUjTBCSx6IAbZjHZtU3lt+WTxjcRTb1ew8O4sTEzdQVungNg0fQcmnJV7+dqsJCstSB67ys2cjRktKfw4edIdl6G6VjRkwlDoXWQYTuFvCTLD6N5pu5RfkXE5veJLen00usvwrpeymg063BkbvwNE1muQmOfADUR5s6hrcvWWX+e3Vvak8cBLQm2IAx45NUDti/4BqmCNnAgdcfBRW9KjxlZf3nt+Y8a04QBnNGfm9ydwvE+yeSPapr2BRio3Fry9jNND9aBsNcmIp4vD02tl87bEBSNnPYjw+f4jT4xOsrle4Wl1htbrCZrPGenMdOna/SUbTaPu5If9tZEVodIvF4gjLxRKLxRJd26FtmswqktrFvDu0YgzCyHNKL5IMNzIIGj6VziJ1eqQgli+7BjdYaMU9JCaVgJ/8+/Ahypg/otFy3jd+g4aWsksDA08h5YHee0Z55WAow6ExHs4tCPKCGNImeSX/yKXgKr/oOaWDpfQ9R/YTxMTI5tj4F76SwWzUvbCywBnysgdgIJAb2A7LWdkVLt+EX+L8hCIb1MqnJmGyISeXLP7aAVFsW6efVFZ+I/fciOH4xMTvBG03YULQsdDJhUjjBJMDNxf3xKSy8pu4L29XxcXpVG0gq0Z23KGY7WcmCWEz5diWikRF42lRs/siUx27lDymbh/VQ+nh5S0vcha3Uu4JpgEz2a/zQJYy6USDQceexCfYuavshp6leKfjESeMZIKplHKovFHcjVsGhgGrp37Vh/Xw/eX4CtV7xS9v87LzvasFxuJxnmHI4fs3xfHzvEzWMJBxc70crEFHjEd9HGLsOeZu0Shgd0b3u5TGNt4BYtjBWPjEBKHTLbqjFufHp66AjO1ui77v0ZsexlmfQPazDbaC2EqiSEH7Y3fuPx9BNimXfnR515YrpKwkKXxKjikcprGnA5ksRRpLP03HgncDVnaS5Kh80g9+wONvD/WF3bHf5C4OlEcfllR+CSM5IJLJDGKnLAfhsyKUyD6s6oA32EgDQWoNCI2pC+f/EqkQX+7uI7/B5D3TsZIOlvIxzE+Unh+UBo6SIbPQPguT/DHinMXqq3taUnCVnWQnUpP6l0U8bhjw/qLNy/jJ8xCW4zHH21N2ZdWr/Mb4iZ+cYUH7Bj7e+U+ysbWYW35GPDkRwDhh6S+xe32gnEblV+aXp5PGWzwcONt+en4MOAOdIbfkzfdx4Y7hZIUrv3B8Y37pT5nVMKOiGyQ3wfftpzOwkhro36B5dPKzG2mrYuqV3f62cxBv0UP4h9XE7GRv5WjcV3iYM1ayw0OqfszG7eRfdY8K3vviG8ZZ8BPx+NWLkl0yZmExf3AuTAULbafZww+4NaOAHGi5wZjPZPhbFANkKYgIXdcJ6xOS61Z54uRbewuSqxIEAo0kNUCegy0dDwY0E8+o0vqTelMSS9YI5PHEkBxSz5tbwvCpiIjXWwLzCqbUyLe1Kr/IJDUIyAC5cpfjGi4nGlxHMNeIjHKMMLHUuokp7Le6YUqR309+Uzz26mAWZjw3Y9dHdBIQnbLt8PySPeWemKWuskvZFfRHREqZ3zipKMVBdJmhIG9PCR5hZDe+BK/ym+aXGlWHWljMbHTs9Si75Pb9iO0m2ck/pOGbw4Ke6XeaK79J/YvRyVDDQCNO8vN//eqdkE/2UwqRGa+fnl8xycov55ee5/GMZmMs4/YpZaKDBCj7CTlGyjAa5xD6OoL4elLiKruD2s5BFmSgwnh+BLYKe0Kw0LeY37DKI4ldTRjk7gG/nGU5AXlb4kkZi3GdE/LL4wDBwFip+RUAoGDMIXl3tupKGWs0Kc36vLvFlQLI6udUNqKjpEhWEErFhZ3yyZwUsN8Rk5JzJPGMoqQUURH+lGJTFveIFWkAOEs3Dx8cu8UgvlGWOU3ewUvlZsO6Rpr94NaPisxIwxySrPySe8OlLI2yepNo50S3iOK7WF6xEx2WibIb61J8Tx0KiqhsE0DllzShe3QwS3mPyz4H4+TlJ5ZJ5xri42F4AGPvxVZ2Mm/DEg6OR5uxoS8hKTySdpP8hnUiUjEw8rtpU/guYdlVfjJvwxLKm9M0DtBAHwEnf1xatm+Lg1tyhgE5SEJ8FaS2nXv4lar5nonK5GDcOoYYtIvwVv9sCMtJsBSZia/ylGVS+SWnw1Jm/OLvYS7c7202BBi7G7Zj5i4SwuRR+IY8l9Ks7GTehiUstp15pgqHsklM4iS3PN/nJYw/s35S6uXkq3P4afPDofwwRDGIqxCmcBZEHwuWGnSQGuMA10bCj1lEtOrH2lMgWHYOrBCDMTTFDsNdSOq3L38QlL3uq0eoKKLwSUOZ+SRVJ1e6EZDFipFXEpRvolJYmsCUVLaRXteFE1odSmEb4tx44DYLKQ1uK78YlMrH8RYqX0/CpPkdJ0ju/5Rh/LSPE6s7JSIU2+fKLwZNVGyog0ns6Z8RN3015CE0yiITfoLi9LQYU2UXg2Y3UjH+kTZ3lCVlA4vsqnsElkwsATG5pCj02nbegF9BF0Wa4/1m2Y3aZAjpZFJOJCG6QAAovRdb+cWgNHWeD5zz+Md5UvGy0y6CfS3ET0CQ6WNWzoGr/GLQPfyyJAduSiNZpMbwW+zYtpHgGSIVMAPybedCpKjsnFd246DvyzK3t/V0ATi/n/0qHXs15HFgkHM/PLbKA5WfDEojx3mmhqkgCsDnMJ3w+/mDXOGYGON8ok7fZKwETL56BdySUYBhAaaTn3ImxrIW/F2HEAb0HP6EyksBiqwYQK5MpVRLE70cUx7FWGVIJ4gjx64caRxpAsUBT+gYyfMWlVwqIQltg5CXa7DZTkqIDcaellR+mOxQfbgphlMuPq3M2Yk4xHb2kR8QlgrJBjxzld80v/G4Sm7Edx/mwVPK6DflKjuE9ON5znI8/jy3JR+/8dJQxhwOKfmGM0bYDSeVld8h/LLz0ZPp1jR54pzdVHzKLPkxUFLiyu/m/IapFrJddCOTQwKSTVtLPCu/V8wvz2cxy9aJOcpQ/ayEhC01i6fUjoZoK7u97EplPpAbIN8iFm0nIdkI0o8t84lmDI7a943xm9I1Kqc1EEbuMSVNAmBC1DnDcIc3yPm8Twxgb++ThOC85iVualBNuRA4vRZX/4lKALKbTJCoIO7e4oQuI0LJVQSBerkm1UWek7hXQEiOswJTdl9SVzJJhFsTJYUb2EY3tuGc58D5sas8rEduq/zSFEca6/0M0/uSPGeyHWXI6cZLwao7MjDy4Sq//Hyi8c6EUriauSHDwbtvzuWb2O3nV9kl8Q/YZecjQhlnKNtlZyAIchKaxqXVHI7f1HKDyi+Nfw+/mGRZMGNkp/hZ8Rd0EbDtKU9/K73yy89fnN+k83kVbSenP4nzbWfl549d2NfJT2ZHrAgocSv6hb0hSulVdkn8B7GjkqjKTuqbK2jQKR+m0BcCVfduyo9EfLH8L9lukmcXdlwB/LywOIbJz7mYD+lu0SgwXtZRf/GbHGXh5YTMKoSrEKFSxP9KA/0BOHcxPabhcbi3oLAj/kPjgEh3IAhK85G75Fo8mhyfgpC8OhB2w0epz03vrPxG+cXDAsOszOPqZ694vR1lmLBKwY0sQhd5v4G/+E2OfiL8BtdSz6yYQ0UsiS3If1IH81iiAo4ir+wONAaUSp9kdI8jwS4byBANnmrJpnOqY638xvhlpS0xTQPvcTShe2lbObha+YnIXzW/QuFLLjzliKfhVrlaoOAqvx+R3xi34DnFbeohVmU3CFM6z+4dFDcXVi5usp7ydYJAbQSf7A6r7r04P0o9S0Ut+hxyaRDUpRuNAY7hBL9bNQoAmLQaBUcDcSWCy+8k8o0QgQihYihRSfJ48vgD8rwG5pUh8RcxDSpAodGlPB3ZGJcrSFlKU7WABxXwUDfxdpcMVPkFL8mvkKtRhtMytlGNy3jsipfhpKv89vIr+R3KME1yKOcpye+xyVV2L8guz+2YT3oplfOo1MWFqYFRDFv5yXRuzC8RgDsZGeD6kz0Sj7ftC1T53Q4/YDCpHIxGDlDAyu9183OuKNKBpBAgExIDzwB9yVV2Ay43ZpcUfujFWY6zR/ODdlbSqH3fa+aXucAugYLRQaXdfwAADPY9wbp9o0BW4MHlQutTtKq4iuD9gtVIVIhkg4lBBTmssRxWBnmcxVFsOSmRtwyT+Gfpp6c3qSD7Q+xdSbA3+sovT5PyBJCf3kzJ81BSt6fb1srvhfmV8pD55bFPOxrOVw6doZSjm7y5ssuuZ3557FMuX7Mx2ASp6Kru/Sj8RjwTZAW9s+NU2RlWfj+a/g3YDCcB6fXSbZXfm6N/uXuZjs/fWtndiu4d7Ahjs8y9RoHKb5CGODuIX55CMifwHiK6uMpjyC0sDnCvGvxorw9kWQKAguBSIdHg14lNgCNFonK4EEQuHCUVYLpipEBK1iFKAxT99x3LCWRaKfIKMaLMJYAHPWb0t8f7hwaCQ5qOyq/UkIwp9FC8e2RcWqolLyT85Cfx9lYCEa7yE2cj+jjMU3YQzsYkT3usAvHMH+3Tv8ruVbCbkvJg+BqecqR33pxdelfld3sD3PIaHXtnOAqBKj8cePy6+A1dYeWHOLBGhMrvjePnA8p+UDw1TljeQKsru1tkR0gXdewLj5THuKv8yvzKrBKRUnIRg7MpmxthYBiIZ04+P65RICYehSVOhqGS86RiuL/hHRJFSVxErnLkCYbDJAPFilEKl0aVgd5TGRLLlTxO4hH5GaskuTtI06NjAP5zIgwGmFxF2RdR5Rfz8JL8vEdx+WvJxQuSnzsscpiKo/J7QX4FEdPgAk8uq2T34788IT8BNO4qu5iHV8cu9xSEimEG7JzvPs2r/F4PP+uzp1HNJib7n02ncVR+r5af9JZUZJjEOX5e66jyuzv8COXmdRJfZRfz8GrZpUf5Kx5lXMNoqu7lx6+Hn7jGhwS0TphnnOqN33MrRgFCLggk+R6/Rlmdsed+eYg/VkrFeESFifJOgeYggrUpesTKOKgQw8qxP94DKkcuA3lPEmkiDRzq8s/3eCVi2G9agthNLIdxVn6viN8Yu4MxMpK5o0vTrxZgLs5CK7/b5ld0aV6i4+z1Osr4DWKp7F4huyy3E66kn9qv8ZEAACAASURBVHKHX3vBP6NkU34nq/J7A/iF02l+paclld/r51cMk/MDEL+d7trQQryV35vHL3hwJMo0NKpWdq+fXZoR6e/HntGT2T/QqH3f6+CX+JXcyKWgdf4Lc0D4Eg+TgmIGFT4p6d0tf32AfJaSSmCPKQsbjtKwROGfhxggEKUAJ0CG65InSZEL6DeoIGOVxZcxL2vin1eu/P5CJUniKbi46I6iRzj0BgF3zmklHaRR+b1yfnmTYN1wciiX+gyvUBJqzFV+r4ufd8P3uACa3FdgTPsqux+XnfVxaeUqRyEzhXhcCpXfm8nPOzUWj0uh8nuz+BVvq/zuNr+yq+zeIHajrurem8hPSD27nm7AO8X2dowClAL0npQXkpKzAIJEAF8BQgXBMO7EApQc5/HlcNJ8pRadYb5kvBLkQRVkkLcR/0GFyTM/7ZIgqZk9nIQ38igts4yk8nvF/MpiTo64dC191CUa64n3Yiu/clqvkF9JFQeb1VnPDObY3fFSZffjswOQbSuQsRtDWPmV03pT+LHIYMmmWvmV06r8kjgrv9S9EL/BDZVdMa03hV3x7jTyyu92+YkiBcdJqZDh4hiPaC+HhoPobm2lQASX+WeeZYhR2IooVDYv+KQSJDWuUElk3O6iPyPhOVVBZL5k/Gmlo/JxAl7mMatEMs6Y0fS6PBtjmswsi9PMcEZqvHJUfpkcBnl8EX4DrU9cotBwJ5Rcjf7hvPILod44fhjoYPr+ZWUXQt0Zdj5gmV2S78oPItibxU+smBvEVfmlchjk8cfhF13Vv58qv8ouk8Mgjz8Ou0PGLUm+Kz+IYK+XX0nvGKBkT5ZxhrdkFKAo2LFCSMkCg/ChIvjKkZwPC0YReSJUEifpcZ6/Ydo2X7JCxDyXKk5yv0wzgUxJ+sm1vCINwh/gaHgSVDlri1UhtVCCyu+N4xf3Fhi9IfhVfkjyLe58jfysxzi/0rt5lV2S5pvCDnDt5/SEpPKr/Co/Ia1XyM8PbAGamFdWfkmabzS//IbKLknzTWFXHHeWI6n8kORb3Pka+dmTfN6Xri0ej/kWVwr4TSH8+aDIyUEUohWyF5a0FPlwqSCF5KTFhWI4mRaJiivzN1ahifL0YjwhvyJsqUwHVwSZ17EwY2EhJ4+p2S+XdbhMlAcV0Vd+t8YvS9e7m/Kjys/nIC3jHeJX0u3K7g1k504iuzximXTlV/lVfoMwIhOVX+VXQljZvYHsKL1cdS/kIC3jHeEHGp83ALdpFHCJ5xVICiae2x8aCHVYMcQNiXDGhJxXDOk7VTESsEnFGK90SRrFCpLFlcdTOh/zK7g8DekYCLXCV+KRTURjXJXfG81vb1yV353kV9kV4snjyuMpnY/5FdyLsBs1yPl0K7/Kr/Kr/Cq/2vf9xNhV3RNx30F+U+7WPkmYZ3Ao5OQKSAjY+kqJ5vDFQQhGoEFIEsEyaLKSJX5Z2qIyyHIklVqmUawUWQUZnIs4kyAlzSr4jzqO1j1RBg6VpHxX5fcG8bN/ivxkmQfJVH53gl/uKru7w67qXuXnL1V+adYrv8qv9n153n867Kru/fT4eXernyQMGcglIcG4n9GKkVUEZN6UXMuEngvTpVOsGLKKhcoyVTFkBZGVQaYlwgnPmL+8QhSwlypJdj24QXtLGXz/lViSXntd5ZeW4bXyS8JUfj85fntcZZeW4S6xC7FUfoX8VX6Vnziu/Cq/UgyVXSF/bz67EEvlV8jfG8Dvx3h9AIiCH0JNK4aUWCrKoVByQSf+BcEnu0pm8eUWovhXXixVjDTveQWXFXZ4LOIZPU/lVC5yocIMvCz5aCDyeeVwmQvRiGwN4q38RDyj55Vf5Qccwm/MVXZvPrspe1zlV/mNZ7HyG7jK797xG3OV3ZvPrureHedXiMa7291TAIX8kvgjhVu+iDyEPcuqmLwNFCuljMNDJhmGsgoiz+GgyQoTcyM3lwj5oRetHAVFKPmF/B/qbhS4eGfllx/7eFOZVH6V39AdELgQpLK7I+z23Fn55cc+3lQmlV/lN3SV30+eXyFIZXdH2O25s/LLj328qUzeNH7Aa3p9wLvprFJSJyj1HQprcEhDf+8lrT6yYsgYSKYpb07Ph9fSyjOoDJSmk8A90FJEeaAbOpLfrWSEb1UmFfaQePZcrfwqv8pv6Kb4HRpfZffmsau6V/n5q5Vf5Vf5DV3t+36a7Kru/XT53bpRwL7LIF3aKJQzNwSdXwon2Xk4DRaiQm0Zy0N2kCefwM4raziTFa3k57OSxZ5XlKR4Q0HstRwlS3xSTSK3ruSA19Erv4Gfz0rlV/lNuFfAr7LL/XxW3nx2PkzlV/mVslL5TbjK797zq+xyP5+VN5+dD1P53U1+t24U2MvXedDe61QMT7nHSBwDFvJv/AElkfuKMARXtmSlFUPUoqTSTlaSkNcXqBBpBtMYZGUJ1q/96l35VX6VX7kMk+5AflNRVnZvNrsDotnvV/kV8lr5JeeVX+WX3P/T4DcVZWX3ZrM7IJr9fpVfIa8/Pr/bMwrQ4GAsQOY1LYEchLyVJtN0AhnWCnk1eEX4MpGsksiKkfwRFYIKfhirFOWyT5frQEexEZYbUIyH3xem8hvksPKbSLPyO5hfZXd32SWXKr/KTwap/F7IVX73h19ld3fZJZcqvzvJD7e+UmAf6IlwiWRLAETAjFguzFToYmmHTCePN6t4eSXJKwaFdGUlGFtGkpWgVCmomKvsvtFLwTxUWkpCB+wAm98zfbXyG7jKL4Ss/NJ4DuNX2d1ddtNpZzGOXKz8Kr/KL0+z8rsP/Cq7u8tuOu0sxpGLld+Pye+1bjQYSkO55BEgSQGmAk6PpLClEGXFIEoFT1n6JNOkmBeZsqwY/phkXkjcH/KVxZ/lKbkvEU+Z9tB7WulkkDQkJxeH7/3si7Pyq/xc4Mpv2h3I72BX2b1x7KruVX7xb+VXcpWfT7byk76177vb7Kru/XT53aJRgCbO9lwpBS5GkNcQWRGykPn54DZRFSmJSYQbRjIAXExgeHxIxaBBZGU3GozzQ0ouUu5VjnVPDio/G3XlV/llFw7hNx3jntQrOxt11b3KL7tQ+Qn/ciSVX+Vno/6R+E3HuCf1ys5GXXWv8ssuvBS/171SYNKVpTjIO6X+AumElGRIeTqRTok88koi76ckziRfheMkTsrPx8pQzPq4m6iMYALTjey1hydW+Y2UoZj1cVf5lWOp/MYTquxGylDM+rg7gN0h0RzmKr94PlaGYtbHXeVXjqXym06s8hspQzHr4+4Afq/GVXbxfKwMxayPu6p75Vh+Qvym3BthFBiKegTW5LmIJ7tEWcTJ5QRooUJQirvo9oIqVzSbt/0VY7wy3FQ1RWUggHg8XzdxlV+e18ov8a/8nHv1/Cq7PK93h53MReVX+QGV37ir/IruHvOr7PK83h12MheV35vF79aNAgxGsJWMvMzgvcNlZvDg3Qt3NQYqR2ZvTytEMejw3Y7kSqESiSoE+W5I/hZMACz+hhAUI5R5vLHV6IWUMpfofotf5Vf5JaEqP3H9pm7Ib8pVdm82u6p7lV/lV/klISu/sbuSs9r33W12Vfd+uvxuxyhAAIFBpASXKIwoHylgcXuWYykoonge4pNCljCIBudJuhTusMeUV5kB9pDRkO8sE8kGF/GuJL+HHctcyIPpWnFInWEAxhgolWtAjKTyq/zS88rvVvgVIqjs7gi7qntJJiq/yi93lV/lJ13t+3xUd5xd1b0kEz8Jfs7djlGAAQOAmBOwtqJQEm6YOUk6rTokKQ7CpxFxhnksnwdJs5y7Sf+0zownMqkUyQGN+I/FWbootp1QBHBamWWwyk/+fd38xtKr/H5y/PKwld3dYVd1r+hf+aHySw4qv2Jx7ju/2vfdXXZV94r+d3re59ytrRRQIBhjQFrB5cKVURAp5UtezxaYxCspVXl1EIZy/zSfY/kvnlOWcl7Py/XUeombiBDlgfS4VJlSfhn6ico9vBRrrGJbUdiUb6z8sigqv8pPRP6q+JWCVHZZFG8ou6p7Ig+VX+VX+VV+o5dq3/dTYnebukeVX3ZvvHar/Jy7FaPA2dn5N//pf/ZffHobcVd3K+5DeVL53TlX+d1dV9ndbVf53W1X+d1tV/ndXVfZ3W1X+d1t92HJ81aMAtfX148vLi4eA5hcpnAzV7Au8uRVANHeVN2YI7z11uNvpM/t8ANehGHlt8+9+fzGrlUHHB+fJOe3xw4YUKjsXtK9Tt0DpvgVTiu/ve518wNuooPkOr/Kb8xVfnfZvd6+D7gxOwBjixqquwO6h8pv3A35eXcrRoGLiwv873/5l25pxb7KwQC71pMooVhc+lGOIbhycmOxlCc5P149Ssv+chkR+7sW4lGK7G6dSuG/+xf/IrHu3Wl+PksHpHs7jsUvXiIjIp7b5gfHrfLDQAdTrxvHNRaH5/df//N/nvi/EDvJ8MY5FDG8InYTV1+Du339e+W69xL8kpgqv3I895BfnrvX517VGGa8HtwXfntC3pK7/f7vTen7kph+EuxiirfNrurebbkfj593t7anABTZ1zoOCSzfpxB0D7U1TYWT14bZKb0Ecni6qePB4c15ZmWnNLKbxSc33Bh+AIYZYGbAFF4uucv8ZJZu5F4FP5c4RPr04vzi7y3zAyK3yi874tB3vYg+WxWe4Jd3hi/CrqB7h+cw/Vu6BtyM3cTVEfeq2MWUXwU7AKApdq9K916CXx7TmF/lF9194CcP9+fq1fOzR5Wfdy/Cb0/Icuyvmt8whRvFNcnvR+778pjG/O4Ou5jirbOrujeM/a7zc+7Wvj7AvXkp0EA61yxcOTQrr8nJ3pijzwt1iIV4qdxBHhZFuiOnbIu5ZKGr/KJP5Td25SD3U+PnorxhFOP8Bq6yiz5vOLuqe95VfoNkw0/xykGu8kPld5C7m/wGrrKLPm84u6p73v2E+Dl3O0aBV+Q4/ESXPEHIfN8c58zjxbMXcC9aKYpxuR++fZlVfs5Vfq/ZVX6VnXN3kJ1MSrrK7yVd5XeAq/xkUtJVfi/pat+3x1V2MinpKr+XdDfg90YaBcL7KKXaAUyZkt4gR6U/8CakG4F28kitPi9YVQggplBjb0OKlV8eVeX3+t3d4PeqXWWXR1V17/W7yq/y81FVfq/f3Q1+r9pVdnlUVfdev7v7/G7PKDCSatGbRq6+QCUY3pK3QFPx3UDgPHk64cj/n959wwoz2MiDgYMXpx8i0spvxFV+e5Ot/PZm4UWuV3Z3gN1EmMqv8tubbOW3NwsvGqbyuwP8KrsRdwfYTYSp/O4IP9zqSgGbAxqAuqWUJivSoeneIH+lejxwh0J/BRWGgGRrwUMsSpQrThYhKr8fj5+LY/Keym/6zrvAbySyweXKbjSyqnsT8d8/fgcNlCq/PXdWfoe4yg8vwW8kssHlym40sqp7E/FXfuV7pvjdolFgP7AsPLnBWLY5QineqSLfNN1X6zg55CL0iXuTynDAvRMb1019EoSZ7XVmjEm78vux+bk4irdVfmV39/gV701/9rrKrurei6T7at2bw28wUEpuq/zKrvKr/Lx7PfxGbq3s7gC7qnvS/XT4AbdkFKDCUeJDAx97dCDPOOHl5M/LVIrSXQdba0qxFMFOWYFKlWGP1Wiwu+RhOQ7yGxFV5Ycfhd+ksie3VX57Yxnjh7HxyJvBr7LDnWWXeld+pRgrv8rP3pLzw/4nXPj/2XuXXlmSLUHrW2buEbH3OSczb+at+6q6j67q7o0YgBA9YUAjwaQRYswvYICQYMoPQKglRi0kBkhMGSEEE9R/odUCWrSa0qnuvvXKvJU3HyfPY+8dEe5uthjY0x+xd+x9zsmbWeWWyrMjPNzNzdZna9my5WbmK7+zcvld8OM8/3Pt++7J5XvKbnx45beU43edX0rvZ6aASCYtearC+dBS4ZcqOs7pnkb6Fo3lcVdOI0YLOZ5qNOee/5DZAfd0tCejRSu/3wm/hyr7ym+azuDHUif0AH7o6dcqvQt+Um64spvn+J1mlwq48lv5rfweyG/OZOX3kPQ75sfc/1z7vnPTXwN2qYArv+8Iv0m5RrnfXcNv6e0D94tZRGZNqNTznOvJAp4NjlP7XMz7vnKeIHEH/PRxudRLDeEBjWDm/JzX0U4biYiE6SQnLp1ldN8ZK793z4+xLGpjufL7HfFDJmV/H/zkxOfT91jZjc/73bGLZVr8fPo+K7/xee+eX7w/K7/vIz8oOrjy++vMb2X3/WUXy7T4+fR9Vn7j894Nv3G5zuf33vcUOKH2Mjtz8un0kdP5LQk4/DiRzwPTiQtPwp+mKbwT5Vw477xGMD7vVISvbiT5nDsqsPJL6bvBD2qjt/L7XfA71SGca6wXO62FSqzsUvqOszuRVn4pfZf4xftXRTmVVn4pfXf4wUQHV35npO84v7XvuyN92+zO9T1Zde+s67+f/OB9BgVSBOhEAynnAUiu9EMZzjr72Qkg2QJpdU11wlulAuLcCM9pyKd+K7/fZXTzRhJ3/A6BSdhw4qT+rvyq/L8r/IoBWfmV9I753ZEPchJuvE4X7rd0DpnfYpe4ssv5f1vsgm49jN2qe98vfsl+frf43XHlym9+VuojV3583/n97vu+O678G8fufpl/93Rv7ftS3u+KH7zP5QMpUlMfmvw++kFPYxrzP6+xnXt8XJRzGsq0MZRr7nNIwjXC6YjR0m/1QPLuyOy4UcwHoNNGc6dirfwWr/td8ptev/IbX/NO+C3kUyKwdxv6c9bl1eecLO/KbvG6d8suFKKU6P6nXnN2q+7N8zl93Tvn9wDbOj1n5Te+5vvBr+jgym98zfeT30Ja2S1e991jt+rePJ/T131v+PEt7ClwX/QCQFLrIBQ4RZvujo7cX7nZ72dESe76LZTp3MYwuuok+Pr35QHHXQ1i8ttJJ3fZwdV7ZJHOuy+t/E7wWzweflvkd4eiTweYK79vi9+SDAu/saE/P8iT+N2VVnaPZRd+u5sdEwfmrml8y+xW3bsvvWd+d/ZxK786fb/5jfu/ld/3kF8VPV/7vrvLV131nWBX/77q3l9/fu9xTwG5i1s5S2KoSEGMYI3BqyIKXj2Dc0CY9mDEgICRMH1aZOyUaxa0Et4VaZASbMmRp3Ma7HJpOaNOdTodBbq70Sw9dS6DlJPQTzq5yx3sXcq18osleht+o+Nn8LvHEZree+V3X3qX/NLxUIiHHZ/+VvObp+8cO76b7NA0VXHym8I8mPo+2H1PdI/vGr/w+8rvryk/lpzdx3KN5ZciqVKmld/p9O3xu5trKn8S1tr33Z++W+yKbq66d146gx9Lg/P3zY+qTKcr9B6XD6QC3CHNkVQUEYv3yjAMXF/f8Ob6mtevX+IGFwZIEawxJjYWQYzBiMEYQ9tuaZqGtm3Z7Tbsdjs22w3GWIojWRXxkY3k/nRXFKg6azFis7Q26yGDlLuOEfMIv91ZvpXfI/idVuqH85vWb+7krvxOVixW793p3/kO7TnR3MJvMa3szmI39z9OBFPfE7tV9xYrFqt3F7+7llot8FvMb+X3ftLb8ZsPVkp+9+vlyu/t03n8UEHfEb9yPB2Dte97TPods4NFmzpluureyYrF6p3Bj6Wxw3Kg4O34pTzCp3v58a29knCcwhSGVHtBvccrGFVu93v+6je/4euvv8arK8Zkab5RFkgSTogiGWtobEPTNPz0J7/PDz75mNaaCELGjSJe925SBIPA4oCjnHd62sjygHJ67tKmZvNjd0SeUrTuEXVf+Z3ix0mlnp0bo5p380vXw5zrym+eUhnvmyL1cP2bOcDvjN/D0sruHbBbOHfVvbdN74Nfqfp9NnXl97bp3fCb20kWHeDZuQv2dOX3kPQwfks2cXGw+UB+08HL2vedk85nd2dA4G3Zjc4t7Mq5q+4tp3fAb/Hac32a5ZnJ8wDrefze69sHUmFmkZmqTAJ4Ixxu9nz62ad88/XXOOfidQYxEhttvA7NCNCqcVDu471n6AYQ4fmf/DG/+tXf4uc//wUGRYw52SDePoJURWvuzGo6vSMdW4rQ1UBrJ0lOHqsbQzg+n05SPi0XdOV393ljeS4FX6Yd4pgVIsi9/NL1K7/zUpHn3Vmdx29J/1JH++74zdPK7u7zHs6uPga1Tq66x+j6x6d3zC/nJbNjK7/vEr90bJlfsJOTYwv8sj3NOprOW/mdl96e33jw923wm6eV3d3nqU7l9nh2d/kyq+49JL0DftTXLvueJ/lRgmxTftNj1a8nS/ne3z6wKPAajipelW9efMObV6/w3lcdvAcveZAm+fKqcimvCfDytFdyo5I4/WRWhiqvZVO1lGaWdQHuqeumJyx1qlKdGb/rtOHMpwstd86TaNP9rfd7ye+U0i+nd8XvNBumPN8Vv8U2NEkrvzuuO49fQVjOGXW+74LfUllXdndc9xh2nHCcpkG85aj8qnvT9Fh+S/ks8Bsdi/ca6dpb8Fv7Pt4tPx7R153mV8tqid/9r+1l5Xd2yiP6ybH3x2/t+94Vu5TXwkWjw8v2dNofLj9pXvu+eXrf/O4b+z2M3/TYvfx4b0EBycDuTApewfUDL1+9oOt7VEPER9VjjMGY2I8rqJRKpkhU3TDqSBIC6j3tponGbNzAlxrUQ+s4O7KY1bQRLQOeBdUmvsvdjm84Nn9atrx2RWOtk1yW6rbyqwtTfRsp2mnFmw1fJvzu70CXB52pDCu/R+rfxLk5aUzl2+E3r8fKblTJyXW17ZzqIkw7y5jLnQ5uyWt8TnAwVt1bSo/lV/d1y/yW+qypcxjxPI7f2vfxrvmFspQB5r2+ylvwY+XHO+eXr58OQOKxhSnPS/3hoq1c+75ZHWdHHsWu5HXa91zi+Rh21Xkp11X3ypF3xi+dd5c+3scvXrewluR+fiG9l6BAgpe/TFOe8weqyvHYcXtzS98PiAjehQ0mwjpBm/ORKIzYJMJfiZXX0BjCqZIbS9O0o4Kl40Vx7hbQ41JpEEsbqpwGnK6dtpL60JLiUzWCyrkatYu5skv177R8K79U1XHe57C73+jK5Jqxwcj3lTHj6QB25beUxsZ4pn+VTizxu/9p47vmNyneyq6q6mnbOXuSvNB5nmI3tZ2r7r2r9FB+C3Z20mctOqzZpVv5fVf4Jf2rz0nO6ezhxYTf1HdZ+T02vQ0/WLah0x5PZ/o2j/gszyqo77/2fbPKTar6kL4vn/GIAMDUl1maubWOG+5Pj+G3lMfdZVqaVTctw32zIk/xS+k9bjQ4da5L0khTJGw8cTh0HI4d3nkURX3Ap4E1RgSV0BAMhhg+QlPIKVdcMcZijEFVsdaECJTzoHErDZk4FLm0j20kU8VM9Qs/3Z2lLFwvlG0/yh1G2eQD8YMmuzz9Xi449VTmdNv4m8Bvzq7Uj3v5iRQ79+DbTvjV32eGfVaWld9IDrO6lZ/uz7IamGRntf5tqXPjYfyWnGWAhY4jnvnXnN39ehdvd8f1QQ7zp13Tc+7J423Y/Y3VvXfDr7ad83PfBb9TM7lY+Z2sG4/iNz8/nsPYDynfln2Xld856f3wm18zdSSXdbIcjbKZXKKc4LeYVnbxdndcH+swmRV3erB5Rz75mnP0b9W9t+cXbzpSvnPvv6B/D+r/zuH3HoMCxpjwYXpzhbCBRWg8TdMwOBd2jbQN6hXvHT5GjA6HQ44gxctp25amabDW0jSWtmlprAU8YgTnPd4rxkh852UfxCEmNpDwT+ISjFYVfcrFFvrhSK8Dt/0t191rOu0A5cP2Iy43T9g2WwRLI0WUMvtwOumSZYao9PPPAfSku9WqqY862XRISlRYqwZ8xy6Uf/P42eoqluu+kHy0YOFUk4VUYx0zPo8fE36s/O7kZ8WSIsmL9a4FkO6JxI4oyizh0PH5S99l8bvOovjhuzDjCTB7UhPLsbJbSFp9Ck8PwvriRRHmMxfZyeT77LeK1Z3sVt07j5+OP8X6n+r76utO86v068RvaYCy8nsbfmNGb8sPkn2tmZRzV37vV//Ct2I/c5oMLuuzT38f+yvlCeXYfk590XC/te97NDsIfku656QTLOMFTX/KbxneRBfz7I4xq3Xc8G59l3SST36nUF9dXaHVZZXOqY5603osMbKfj+QH73FPgRKZmd9ftTQ+ARpruXzyJEwDUcV7HxqH91hjGJwbNRDbWIyxiAjOKaoDXhUjHnHC4HwE3sT7hehUdu+qxz9BoaT6HL72Q4fzA5/dfMaL7kv2/TWKi5cJXxw+o7VbPmg/5KPNJzzdfMCFvQAMjbHvQIKSVHr0uciuGlBKaRjTFJtL+G10bv5x8e4rv/OSYFKpKuWWoHhavmaRZ8Ut31n5fYv8suszk41U+IrlHX2ZibzmeTpSfwe/pfKt7O5Od/dpY1mexW5p2ciqe2/PrzaAS0TuS3efPX3KNfudld/b8xsL4E4iE9O6dPbUXq593/u2n+cZSymjplHA576rR4zu+m3t+x7Z9411KH8b+S1THU3jhXPt50LfyKp77853mQtLjIcs/4XfqcZ89RknkE77wsfxC+n9BAUkTv1gPCFX0dgJkH9RVRpraZqGtFZEq8YBYIchbkIRG4c1oXHE6JAbBrrOoX6gaeITXzG5QZSdLUs50hMGEQmvv0DpvQM8net4tX/FV/vPeTF8QVjUEkAFGSteHEd/y1fdnhfdl2zNjp9c/Jyn7Qfsmh1WLBu7XXQ0R1CDBT5LpvV1OcIn2ZTHTja/cXR22agtpIayNIpZ+WV+9yVTyaIS7SQYN9XkNK2nftK58nv3/Da1xCYiiibT6OyJ1wk7Xf8aaqFpJ+x68DMeCN3Pb57995Fd5x3yXtkVuWehnms7c+GF9IRqzK7K+0Hs/vro3rvm19rNxCq+fQqBm8SvOJjJdtbf078rv/fIb9qt1ccXkmaru/L7duznMgwhyA8t9jOVMQ1DTrFPDDVGdNIDqsfxW9k9Cy0gVwAAIABJREFUrO+r+CW/ReakRvI7MQCsedV29W+i7n2bfmdKBnPnLP7xW1YKjcRKs96+Q34xvZ+NBok3nTRI0WJ48mERbNMUUCJgDEZDnMRYi0lRSw1Q1YPHYxAaY2i3wQAe9zFniUKN+XvvxgXUMh3De4/ElnLbveGrmy/5+vBb9v4Wb3wsaGzIWZDjqW5OHHu95c9v/yUNLRfNEz5oP+Kj7Sd8cvHDmWyIoiGWUSUfyPJh1CjCRUHZaoWufp+PREsDGFeeet3XUuNY+RV+H198kmWS/Z/KEUrro8YYcuZjoWou/srv2+K3+2Qmn1pOKhLuT/KPpl7uWIgJ43jqujya31KH/31kt//W2KX8gp4tjUlKUZdeXyYVu1jnVffeE7+PJ5LJwgCd285pmjqXKR9VP37CsvL7FvhVssgqU55mnZU0XPz2/DQPJGZlY+U35jeXUZKT5vfQl6epoqUec4FNubyd/Vz7vsf5LbBsO8uYYib4STW06N9qO791vxMqfpMHG7HGud9LQQxmZXj3vktK72+jQZmrfVp7lJ/SESImbdvk6M70fCMGa8KaEE1OYJSlZIGGdSRN2wCKB1R97rBCtKnk6+N6HPWKQ+lcx23/hn/95o/pGUIEyUbh17If1S+WEYn7Xygu/nccDrzsv+Y3+7/gF/3f5uOLT9jZ3cKTZ4k5RNloZZgn0ATw1TXpG1EuQSekfI+nZgqzxhMds1PWY+V3kl9gdcIZmrCrjdSsDNU5K7/3xO9J4deaDdOUtGn6JXWwIKPBfxioaHXB2/FbTCu7e9kVm5kyqzrW+Hn8lKAuQ+H3Vrp3qmNd+d3JT5A7beiSczs2q2P7+lB+ySle+b2l/qGTSlcfF3RwVgAeyw9ETj/NXvmd2/dNgjpLvssSvzJSWfu+3xG7aQoivotf1NioO2/d9626dz4/u4nST/+MZTXiVQGYPXgqZ/Le+PEegwIyaRw6/VxVqG0nxYgnioYpHqIGQau9SaS6h4LGXSaN5p0rIQpJw1qVTEPDTpX9MHBzvObl8StedF9yqzdIU4Q7iqYloZc7R5t4epKVCnR65Nc3f8xnhx2XzYd81P6Aj3c/4MI+YdPsxlKZtb7iHJVaV/sMSO3g3GHIk0LVjYeqQz2p2yu/U/x25pJts1u4aiwjFjrVJIJ0eOX3u+B3wba5mMll5BTFzzVH1aKD70z/FtLK7jS7rdmxay6zMDKuJVlVvfD86Yk8mh0KYgzWLNdg5XcHP9mxay8n9ZXcz9XObd3/jfUtXPNYfs4NWGOwduU3Tw/kF3NMDmoqQ81rKtd01eP1LwZ1Fsu/8juX30wu1efS541GMeMA+dr3/e76vtmlSzYzfUx3N4g43gm7EwhXfuf5nVVhA7ekb+kYY37pvuPL3j0/eG97CghGDFrtMJrLoDp+SiDQbjYxYhSnkSQKUr2WwthsoNJ0ExHBGMJaFO9AHR6P9yFKNAwDTduG351HmyCo51/+C357+xu0caQWJyKIn05Jk9AAZNqhRT6pceTOEJLogdCwG+EoB/b+hq8Of4ncwG645O//8j8eKXFpAFWKDcYYi0cxgPcOY1qMafBe8S7UzXvFDX3YrMO7vHlHWEejqHr80DH0e/p+z/F4w9NPfsGHTxaMzMrvPH7MHaAsscpIW1vq7p3D2AZj27DjqtPA0Xt8XkPl0biWKvPzDu96hv6Wobvl2B24+OinfPTs6crvkfxmszhip5Cqn441bYtP/LzDYLFNGzoe5wMzr2FTHK8Vv/CbG3qcGxj6A313w3C8ZlDPkx/8ATBR+pXdvez+/V/8g3zfcK2WHjR3siCiNE1bAnEEZ8MNLtbbo85n+4h3eO8yL+8GhuGI+gHvjvhhjx9u6FV58tEv+eCjHzFLK7+z+BW9C0GWNFOutpsCoQ6Ra7K1aRAa+rmob25A3YAbeob+iHcd3g/44YDqAL7DD0d8f8Q3losPfo59Nl7at/J7uP6dGkAmMbRtW/Vh4ahIE2yj85BspXfgPc71wY9xPd73uH6P+h60QxO/dsPuyc94+uHK7634xcw0Drw0cVMN9SboH6RBViqvzbvFBz8z2FKJsvDOBd3zDtcfUO3AdzDsGfo9ZveU7eVPMGvf93B2v/wH2WWYBt6m7KxtQIg2MpxjaYLtdC76KZp1L+hk6AMDuyMwgHaIOzD0B9onH7O5+IRm94RZWvndy+/v//I/Lg8WYoan+BljsyMazlEEE+rpXLadozGDd2Es4RxuiPx8h+gRP3Rsnv4eze5DpD0RXOJ97ylQp2h0EMrUjCAFjJjSeqScn1q/JMNVCx3BmNhI4qaPOpRoT476xFy8+uBMoHz+5jcMHGOUScCEBmAxYOJGFUbitR5VyXUSKTBLFeMHKYNCEcCA8z1h98o48djDTXcTv4VIWHKCQhb1hK5QgtSBuu7I8dhx7I7cvvqc7nBD3x1wwxA33Tjg3YD6qPAxkhYGKz4PbJz3qD/y4Y8+RX/+b6z8HsHPq8fETU2AkeGqBykC0dAqruvouo5+6Ll9/RX94Zq+OzAMPd4NdMcDzvWxsw1Kj5bOV32YGuWcR/XABz/6Jc2v/s2V31vwI/2S5EO2w7nuQ9Kfvqfregbn6G5f0R9vGLoDQ9/hXE/f7fFDcGY1dlbBWA/ZqUpPKkWU4+EV3g0ru0ews8aOBiQlMh6FIyAEdngPzjMMPcfjkf7whuF4ixsOuKHDu3rw4QAX19Zq3PRIs+0M9tjxZujYNBNOK7+z+SXdE6Q4PowHl4LgIj+NgRznHP3xDX64RYc9rj8yDB398Qb1PaIOyY+NStAv5a+qDPuBo3p2m/lu0Su/h/Jj5NiOhSn0wxA24x1cDJ76wModAr/hiIv8vO/AD4FhLI2RVCDJwSF/vObgenaNmd9y5fcgfiGHGJyL8skkRRgSP1cGIMPxBvUdOhzw0Yb23S3e9VEQYeM9VMPAPxYxDZ764zXD8Xa25ntldwY7H3bmJzGrnJaRDyNC7xwWwGscIDv67hZ1HbgusHNJ92Lfl9ihmOrxexqUHrvXdPtXfPyDnzNNK7/7+TnvsGmwj+YYyZyfYfCeJgpM45sY+uMt+AF1Hd4dce7I0N1E3Uu+S+AXHiWH+3gNmXfDG/rdD/now5/O+KX03l5JKCGUE4oUG0OK/4fGHKSQIWf0MeXGJCnH3KpM7CRI/4rB2NQgNTqK5P8hDIxThKd3HV4dGAUToRuDtCA+XmsEFRONZ3DmY7MHCWXOBc0oNfVfeHVhgK4DqgbnQrksNk+Hib4Kld0MKiDldxCcG3j94iu++uz/4/r1lxz2e7quRwjvBU319l6L3JKTnP6pGpz3Hh3g5Tdfofv/Z+X3KH4ycmCDfCbTsuLfYeh5/dUXvPirP+Hm+msO+1uOhyNU/ASy4qbyjP2sciw84YSXX32O6Q4rv0fwSzJJdUtmPT39SkxQGPojr7/+gldf/Jrbmxcc9rd0hyNIiGgn+ZVBCCNZ5n4vQA7fvfLyy88Zuv3K7oHsarmOVEQkOx7pDn3XcfvyK/YvP2V/8zX7m2vUe0yUqcTyGJM6/nBxzjcOJkNRNTgZAjevXtDInzBPK7/z+j6J8qkJRh2SIo++7zm+eYG7+QLXv8Yd92gMpIXAd+g8bdK9LJjyIT9lic6oWEN384rX/Hrl9y75iZCCdOkOXdfRX3+DP3yDH97guz3qumhby/pfS2A4FmSxx6pxYzCgMYI7vOH25V+s/B7T91X8oAxMUj9Y8zvsD/Q3r5D+Nepu8P0N9KHvG+tf5Ff7L1L7MUH/gpQ87vZlGJyu7B7GrnJcar+ltp0pHW5uGW7fYNwN+MBO+gNIGjzHXf7j/+PeNJS9ZocA7kj/5rfs5/G4ld8DfJeTKeuesr++xu1vMH4P/hYdbpD+tmIT7eGUnRB9FS1yiWe47pb+8Ck7xg+j6vSe9xSocYcGkUSsomHtiJAbQDotG5ZRBxSurKeQpN9C0NPSWJufshqJr6+IZRhcedekKmHaTBQYAkYVbwRj422dR8SDNRGU4GPZRATi+zJDybJVDQbPD3g/BB1yEqaweB+aljVIbnQkaaSK5kBAkEU43h0OfP4X/y8vv/zLqMwpgh4Ns49i83UgoBJ79TVNdR48bDB8/dvPV36P4BeitZW8KIPJYMeKuT7e3vKbP/tnXH/zeSi7KuFyAfW5XCUoULWBOmng51VxDloxfPHZZyu/x/CzKcysVR3Hko8uDfvra37zp/83t6+/Ag1x9BDpji6Or52hanAZMys5a5h2qeAGB23D0Pcru0ezS2WqHFkBDYYRgNtXL/nNr/8vuv2ruFbRYs3E3sZZHElWU83LXX90gp3zOAdvvvlmxm7ld47tLE/oR/wiwCCCkPP1N1/x8rN/zkZ62sZgjMGY8ASo3mxX6r9TgNUgJ7xE1qN9x/U3X6/83pJfcl+K/o3XxV5//Tk3X/xLto1j01qsEcQG5kFPqy5PqzxJ5Qt55WBtoId45Xi96t9j+I3fpx5tnlT+S5S5orz56lOO3/w5uw1sGkNjBRrISyVVxvwmChie1IZj6a0R3nkMivfzgcnK7h52tkFK9zauZxzISvQlX3/xZ7ibz7nYCJvGsLGC2iIqzZv0JpHV8lR83tpcYhnDZ4NyePPljN3K7zzfJbocY7lFGacaO+d4/dtfw+FrLraGbRMCEho3Qky8UtBm5GVmd7SaKRfP8CoYddy++WKRH7z3oIDJws9RI9XcuDRNu0gRjUlvLsmhTp1EdBxETHYgRNLTVrBNgxl6vEh4pUW1EZQbKgNURVDinVCvuMHhvWCshIgRindDma4S8/MA6R2YueEGp9FrnPaNwWuouAHSawdzVUdlYRRxr50iFJwbOFx/jfoB9ZKPp7LX+dSNIJymOUKlOq56XEq0mFZ+9/NLd6+doPBR47lBJkPfcbz9BucG8m7pdYrn1rKaVhWCoQ/vcQWvaVa0zvNb+d3LTxKn6m/BUfEToTvccty/xg1D7BKDcOq1YEl80cVCqkaSpJDeuasKg/NYO7/3yu5M25lt2pxdOC+wu735hsP+Nf3hgDUNyIC1EjaaMyas36tkJRM55q9anqj1/YBXS++Wo+0rv3v4lcvu5KfA629+y/72Nc4Ium1oG1vdc85p3DeSGaTDoT6Wtm1xfvqkcuX3UH6M8c34vXzxGf7wBmkbBEvblLpJzFs0XSmjDEM2lfMS2QhBf71OXjm28nsr/Ut9Yi33Vy8+xXQ3WBoMDWByMDwNZEgDOZn6pkrZLCTZVgmDIzMPvq7szvBbar9jkV0cNKry5pvP2HBkoMHSIFSD6iSoiKj4K6FchdhYwTO7E4+9V373+Z01vxpeKmKcAaDKzau/YmcczjQM0tBU7xnMfookHYvXh1oxbhlkf8iYtOxr2XbCewoKqEI3hEFnAiwiVA94CBsFaVhj1g9B0NmiVFUyAmkXytxAylOFGpw1FmtbJEaLwv8GYyRPt0/+YvTsScQUGFLkMjIXI5gmXC9Wqr8GTIIXylw6Q0HVkkfgvpwnCOoUqzbo46QhlOjr+G+IgClGYNAwMDHWFlscpw2UAX7VSKp7eK9YsahRXMgYz3we0Mrvfn7hNhUnLdN1aqdIAO96BMVI2FBQxNA2QfW8lii9d8UYp4pkfjEKIMbiDTEqoOjK79H8qivzYL3ml8oy9LeI9xhR0BCNbtoGNM7ukMApvwInd7RS5O01dBaEmQaDF2TyypyV3Zm2M2re2G5qtIdl8C4CQ3cT2QE4jNjg1KqG9eo5KCDxc1nDSJVn8m4UOB57pBH643yWx8rvHfELakXf3XLcH+hF8X7LdtOw2TSx/JXDE53QETsqB5PwmxEB09BebqtzV34P41fkcIqfaphJdTzcMuwP9J3g/QbdbrjYbWIOZZASzWgRY8y/WNBYN0I5rRWMW/Xv8fwKp7v4dYdbpD/gncH7DbvNht2urcVENaTMn5LNlEqm5ZwwAFvZPcJvqXzMml3xOcNnI4LrD3S+Q12P9y3b7YbdNg750tP6WK8kudoup+U6ySsNm/8ZxCjiV917FL+kC7XtnOqfj7ZwONKpA9/jfMt2s2G7aTK3MAOjhADynivxr6kCSJjY2xkT9k1YmKWT0nsJCgxe+fSLA4eevH6ztXCxES53hqeXJm9a4p0LG2/BaDOn3KnnXGMHkn2B0qjTJcaU6RnGWMQYjA1TDsOUbQlPVrUoVchPq2wi8BgJUhem+xbHAiBu9hGdy9TgNE8jTgfIDVpRRMMArpG7xZ50RHM+4Wm/EUMYi8R9BDStAQsbdhgZS02jAqhqKJvR2F7L2ptawiu/8/mVoM6od5yATHmHKURWDLZVUEPTBIbqQ6EUwYnPNmXK0eMRTCiTKiKWsDZsftuV3/38gIrhuB5ZAlHvggyFRizYkGfbhOlg6sP7cdEw0M9LeXIdYrmizFKbUdJGeSu7d2I7Sz9NcppC5iGy3xgbOkMxtK0NNjOeoyL4HFGtn40IUHQy1dFrWD87LMwUWPm9Db9wXXFKY98Vfxu8o/GBXXAaowJnRa5lWJVZhBL0CQH18tRp5fc4fkpd1+zQVvzybDYX7GfvHNY5duh4+Z2EBxqpSiUIVyneSJ7hp5Xf2+rfhF/Or+KnIE7x4hkGR28dW21I68ELM0a6WtClOo0ZKso0rezOYBe6pLG901yCBAKNchEffH/nAj/dNHlAXSQ2trtjNEmeMpJr/TR+5feWtnOWUjmJHMMDw8E5NmrJ+8jFc8oM4hJcSPksmEhEwMyfJeb0XoICXQ9/+aUQppGYqiDKtlF++aOBZ5eEHfWdw/k4MooOmAClhZMbMERh54ZRVVmIkaJ0PxMah5gMSLL5qkYDwohN3eByA1LAk2dpqBDXoGpuRAFk3ThK9gCi8V0DGp7Wz25cpSiJ/E01dKqttWAsiqE7HDGNxUpZq+KzYpcGhYa3DaQGXp5oC0Jcz77yewS/+tdiyNIUyPoI3mHFQNPE6UnBaDZNgzQmGHlj8I3ifMUv/j84n6OkaVCS7rvyexy/NI6oby8x77o8wci6EHluGsTGPQVUaVrBSBONsdCo4pwWHSQYdJfeBBLbhcs6WjbaWtk9jF26RzmxKlflGBF3HzbWxqdTBlGl3djwukKncY+VsFdHmTESUujvCyUXl+4YVQY3X3u18juD3/i2VRpPfAy657OueucZ4ut3W2sxbbCd6pS86Vl27ohOYvAm02y6sjHvWIQprfy4l99YcDr5OOaXuHgPw+DpjWMYHNIwWl9b63RV05k9Tj2sMRJ2DZ+klR9n8BvfZ5zGB9Krrb0HN3gGMzAMYRmPsSY8iNIwMBn1o9WAJDGUKFyR8NR5GtRZ2XEeO0n3GMuvFKmsnwfiHlQagjr9QNvYoHvJDPpJGar7a5KdxM8SZNIujCpXfpzHrzqvrp/WHVcCHG8TXjnv6QcHCk1jsz7ppDHIOOORcTUikMaSJ9J7CQp4VQYXhGcldMaqMAzKMCifv/Rc7BrU30ZHjNjxR4dMJPl1o5TXw8SGEepXwIedwEOnlSpPPKdt2ywtayy5PU5T6o2ic5EDcsE/qRRyajyZNQwWzkMEkx3b0jKzQVXy1GPVYEC9C9NsGtsgRsEY+r3ghwG7aWmswVpBMeTpOfFvrmaSL5pl7tWz4Neu/M7iV7GresO8S2tUckFwQ9htuUkDEzHsb/YM9LSbFts0WDE4wPrAJ71z1fs4AyTrtea16d473MLSoJXfGfzizfPtIOyWrME854oqeHfEAGItYqERw3F/BDyb7RbbWAyCU3AmvS9X434Pio8yQIOT7JyP+0HMlw+s7M5jp7ku6ZrQgY5i4xqW7hiquhpBfYPvHWbTYJoGP3jES+SiOTgQHNkiT+89zms+xy0Yz5Xf/fyQWvsohakdNiTzSw90nHMMfY9zG6yBtrU0O8vQu7B2NF6f/KAy5TTII/Sn4TV5iGSneeX3MH5jBzp1eoWZVM6tdz14xUsYlBgRun7IjKwxschlqUDRbQlrkSd1DX2pwS4IYeVX/t7puyhZzlrrXe7/Ij/vsDEv5zx9HwaWEk831qSbTXS65BcN6ajdNHY+U2dldwa73PeF36enlcEqpOk3KnEgbiQE5OKp1pqYR2U30wdCXyrJVsfyIyEg19h5UGDlV/6e7PtI+lDOl0q26c1mioJXxJSxXJrtkfZgsUZymRMjSZmoMFYwjfIVjIHGTBtOSe9no8EolFRvVV9AqHK7Vw5HT17eUhsS1QIHKgeiNIrcMKZ0Y0MxJkSL4pm07ZbLi4sMqpGWjvQqsFo4WtrGpD6poYhWU1CSisbfsz4myCn36GBqfB+MVK8RTIpT/NtUAs31df0BQbEpMmtgd3lJvz+GdeatxxgT1siGwo0UPTSatMNz2JvAi8FrTz8sRAVWfvfzq7rAenBSyyIddv1tMFw2TGFGlM3mAtd1OHGYHWBbjNNwjzSXMmelWX4m/h/4DSu/R/JLNxmZzWSr615QBN8fMEYw2LjjrWKbLb4fGOiRC8U2LTa+fkbjO5olGuu0rjL1V8aEpUDhXbYru8ewq0RSfYl55roq3nVh3aHYmLeiOFS3iLNsLxrYCYebfbiPj68+S0WLHXL9v5gGp0rXL0TkVn5n9H2pupXhTNVDyAhNDArEuilhN+nD8YiiGGPZtBuePduOsghOZpim2vdDmCnn4x4SwP7Q0bYWv7RR5MrvPN9FU9+nUHMUSMNDEUHT7t+EKbCduLAnR/RJSGt3k/iybmsUqea8UkaqgjWCvWfT3pUfy/yQ+CaAXPhygaRn/GFZqlbLqrxXeuc5dEMuVKsmbNCW8q85kexokZkC4sNrJWcyXNmd3fcl2ynpKVR1HukOqllXvQZ2dkhvFAh+SfBF4n3rcX5dodHfsJ+HnUZ0YOV3bt9XvbGjBATicrnJBo7Z1nrFGeidIrjIPYwHrVT7CqTrTMp3IirCmxbMEr+Y3s9GgyTnSXElHJQldug8X71Wfvl7Fi+Cc65yyJNTIKT3WeYKxcZRbzhR180YQ9O0OZKkqjR2w49/9BOePnuSp1pftBfc9q9nZZ6lGIkq9ygKGBoexFdyTgbhqS7pexoWxMZp2mw802yA8DlcKJOGdbx9iXpHG9fJoIqaA+bDlk37hK0xbFrl9fU1t7cHhmGIm3mE92ofjnHnj1ga72G/b9CN5+Y4H1Su/M7hN7abquVCSTu4RmNxvH0J+BjUiUa6OWB3LZvNE3bGcnFhOHQHrt/c0nVHhmEIT8aco+tTRy35XjfXBrZw080HJiu/8/WvZheu0Zx/6t2O+zcIYR1sCuZZe8RsDNvtEy6bHU+ftdgGbq5vePP6mn13ZOh7+n7g2Hvy67c0TD9/+Vqx2+BoreweazvJzmi+S7xYUDCG7nAbAmnpiSTK/rin55bBXCL2Qz756Cl/8JPf4+b6hus311xf37DfHzgcOm5vjziNMwh8mFn19Zuey8sLlt4ksvI7k1/V7+XcR0+dgxPVdwdsY/L+Ah7l+nbPzf6WbfuGm/0Fzy4v2W6E4+HIfn+g63r6Pv3v4r0kBIeswbYXfPzxs0XnZ+V3Br/0u0IeAsjYWRcUMYL3A82mAR9ecOad8uq2Y98NXGwtTy9aLrct1njUuzyoSI63bSTLI9hOxZkNbSP447zeK7/7+SVWo6eZM34lQ9ta1MOAgodh7zj0jsut4+muZWdMec1rVQ4ofWkJEIAzDY1NdRrLYWX3MNuZZupM2WmoGNaG2cODKuqg3zvaVrncKk+MxYqM2NWykVFmoazOG6wBXZglt/I7j984IJduIfl1jfmKOAPce8+goIMyKLhWwIZ9jawIIq66+6gapUxE++nDQ+GTr53jfc4U8B6Mic5wEE34LQyW+sFjTIvSh466aXGuD9HJ2JAUFhvBNBUHX4h77sV8PBeXF3z44QcYa/BDmOthTZMHdJoKnPNK/0way+z+MvuWa7nQzrJoFFrbVtfJQsPU6pMy9PtgCIjNTECdIG5A5cDuw0/YGcuw6bhom7DWyzaoGrpBeXNzYBjCANM5j/OeN90R3xvsdkGwK7+TqeZX3yXZPyblAWXoj9TblyGAM+AGPHs2H33C5WbHYb/nyW7D04stKobBQdd73twccd7hXVoSopjuiPfC5mJBhVd+J1Pit3CHk8m5vnKS4hN/b9DBMegt+uGO1mz5+qvf0vdHVD2bzQbTtGFjyc7lKLNq6DR2wwGRJk/hKwVc2Z1Kc9uZTh/fUyhTjp0bwgMQTcfCE+a+G3A3t/RtQz9c8K+f/5rb29f0w4BzwqCE1xRtduHd6hKDCkZodx22bdgsTKFc+Z0u65jfkgYmmhKDO+HpvlHNmyl5AUVQ5xnoYGNpzA6j0IjjciPs2hZlC8bSbrYxICQ5kHtzs6c1FrELhV35nUyZX+rs4oXjvq84+cHehR98/D996Z2nGRTnDKoWYzxiNDj4tuwirqQ1yMFvUe8Zjj1btciSYFd+J9Ny31ee8mdfBuIgrRzxacNVBFEQF/ZUcd5VwdlQCoE4pTsNSskboXlV+s4RHktPKrayO5mmfV8ud8Uu+SiKhBnExqB4HOBV0PjGAeM93ofBppoqCCBJl4Mcw+x0yU+dVTQsN5a4Ue+skCu/U+kUv3yRMFo6jg8zdTwa+MVNBK2kpQTg4yut8yqCFExJPEn2V/OSg7DJvIUlfjG9t5kCYZdJF28uIxGohmkQHovIQGMt23ZLd7yJ18RpIkq+trT68dcaRvqsgMZ8Pv7Bx2x2myjUWGmxsZRVkjr/uofTaAhD7zcpRjx9PP0kXz3pKNMJrd2Ussv8gvxvPO6GfjTdQyRsNNEPSuM9Hz9r+eEnH/Hy1Y6X19fsb/ccu46uG+j6sLGPEvY7N0ZpLXzytMVvGz7uLqe1WfktZVNVpbWbZLXy+1frC6YGJ7xScjwdylpD33voB55slI8/2YH5mFdvbtgfDnTdkb53DM4hHpVUAAAgAElEQVTnKc1GAj+Ajy4tfmORYTetzcpvKZuqKomfVB2QxnzGNQzXaHo3rSrx3XYxggu+H7gwAx88a/D6Ea+v9xwOB1zXZYPcGIqDHKP8nzzd4NvwFopRVVZ282yqqrR2MxuElJPHvbIQ5J5md2i8UWMNtA3qHY16fvDM8OOPf8nL61tubm44HI7hafMQN0OqbmaMcNFsMLaZ14WV39l9n8zPqe1ocm405u/V502302uoGiNYgbaBH3z4lH64pO8H+r6v9ocYcF1YSqBeUVH8AM4qZph7cSu/hWyqqiR+qfzjv5rZ1rNgNclVA1kjaSljVGRVGmvx3jA4x7Hr8f4YBpcmvtFFYx6Ad4b98UizuHpn5TfLpqpK9l3GBjSfWAYmZHuZdzePtU6Dx3R/NExhTjdKS64GN0BX+tZ4Km4Q+mFcRljZnd33ZX5zAyoENmnRjtO0WW6sexw4hg1AJb/VTOLT6zBTR/M90/5kSf/coEgjtEuvwl75zbOpqjK1nfWJtR3NVRfBaXkLCJLsaGCHCqISNjGXqnxRefMDZEypd/RDlzZpTen9zBQAlFDw4EcHK5INu4QNKQanNBKiw88+fEZ33LPvbvGDCyKK0cbt72+4Hl7RcQxxL1FM3HGylQ0X9pJnfMSrT9+EykcBttby0ccfYYxhGFx0MsCIjQrCuPeCItk4iIttoq7YQl3L3zH08fF0g43dFgN8MrfwWQibvRgT1iIn22utIIT1XNfXb1DXIwiNOqw66Dt812HUc9EEWRljw1MvIzy98AzSMCytSV/53csvBRXv5heS9y53pGnT1szPGG5vb3nxVbhua8PaIacO53tagd3OYo3BmsQRjoPHYZfXNbPyu5cflIHJJKI9y189Voiv8gnHjJHwajvg2HV88+IbjDHsLKglThHztA3YXZvZWRNep9YNDqeGZuHVPiu7+9jF+VXLBnScf5omJyVvY4RNY2PEHF68eM12c0t37PD9gFHHxirbxmJMQ3p9XRioCv3gcQLDcf6u5pXfOX3fiUHJicw1ebrR4BoJgZ3WWKxtcIPn5atrvHNx8O9zHQXBimKsoCZt0iV4o7hhrnvhtis/JsfTDZLvMvJiZ/lqlpmQQEgqGsaANWEgKcS16gMhaBMHBGk3cc380wfFNIbeO9QvO7Yrv7v5JR8ynDs9u/6mCPGpr1SjJxkHBgI3CeqpadCSChTrQuo7FWMNvXPT4dnK7hx2se+bq93kW6xM8mwUE8umhCibJQ11jUj1TnsfA7GSg+n1/mcighsGzIlXy6787uGXFEeXGE752cwvDO4lLMPyAmryD8kvTUuCyrKgaf8mIcA3DNjZrIWS3ltQIKRgIHxsyqTGEQvuPRCnQHzwwTO2bcPhcOR2v2e/3/Pkpzv+1as/xh+GMD3EhGkixghOBI/g6TkMN7xwX/KTn/8B3Wdh0z3bWJ49ecZut6UfXI52+cpJXC5x+al8jkoyO0puCXl8sZRhiihpyGNjN+RpHlo3rer89ARaFe9cvPu4BI01bBqLDo797R6NIfXWKM+ebHh6uanqWtbjgLLz0DnlcFjYbGnldxY/Fc0MsyJO+UF40pzuH6AihNkCbWMRVbrjEVXFoFxuLbv2slJuyFHU+HXrhc659Lb7ld8D+SGM129p5SBpfCal6XKd5SmE9cmtDQN751wwtqI82bVcbCw5jpy4SZktstm0dG4Ydzwru/PZhUcm+aoxu8KzdKhZqkGPTGC3aS1GYBgGjBG2G8vGx44720uKw4ti7Ibe92h3+rU+K7/T/JJfVMcGdEQoyS/dLZ2crgsMrQ2b1Hn1iAZnMT9JS9y95vWqxCnOtrGoDndazpXfXfzC4GC88LHSwySrOAU28YtDDPIGrDIeWCK1rOtc61ZBHGikVyuv/B7FL77SKLgvle8CWSnzDDmSrQ3/Cz77MamEXtNwNXk3tR1OPEq5k0xWdg9kZyTuvTJhl9GF717DEg2N0+lHfWIe/MdAgFbapaUAZQySyhjqoHGgfzqt/O7iZzTKMACbl0XDm8XCaCDsR5UWj3stdUrBF7Qsj0uyV4KPVPuvqgpxltZd/N7fTIE0UKrtjaaGFV7XNTjPJvpVxhguLi+4uLygcQ1fv/icz17+KdIM4emqIcxISduvJwEQzJRp4Yv+UzY/3PJ7T37Kz3d/yMXFLj6di41xcHEDt/Le9+IwatVgJi1H03njDTCmp9wrE0LktTUbsp9SOUea/osdnsZXlrmhIze9JMMI15jyf3g3aNhRtOzsTDVADce8Km3TgHG4/kS0feV3Jz+EqIixo5Q0xW7MEA3rmtNqpiQ/JbxSxNrCT1I1NL7SRRKvcUEVpW1siLwurWte+d3LT+Kgz0jq5IqDkxzafMy7kkO6URyYFP1LQQaCM2xT2yh2PzNQDdOfl9ZVsrJbPmfOLpWjHlhm5yP6rRo3OBMoMwskORqlRPmvCJo3lCTrcHrzkGpQy/A2kRP1WfktnDPmZ8SE2TRSDw6ig5qdHh3rTtZTKYNKk6Yr+/y0JPWtGu86AqHlVrIwSwdWfsvnTPmFmRfia34hMx8HGtkRDwqXSyfVk2aJA0SvGvf+KPXQZG/rAHvyzfV0uVd+S+cs8/OZXxk4lMGbJxe0mg4eHlBUe1xBDuqkOiRbORqQUGzoyXKu7BbOmbAzBiUs0ch6oDW70O/N2QnhCflYYUtQqAQCyt9ShjRGKTwWyrryWzin8DPBaZzxq/Wu5qeYGOROuuerfMnMqkFkTt77cg7JLkvVjy6n97bRYGqktaDDLJRg0Z0T3twOPN21eN/Tbhr+8us/409f/ZqD3iBWkVZCCZMTJ8RGksBGVMlBbMHR81f+z/ns9Z+x+XrLf3T1n2Kb6Oyp0u87jkN4xVgS5mjFSP0nschPactALdVKKTzyl8oPocpbVbFiudheZsOccSsM6vAuNOBhGOi7nn4Y6I+3bCrxCiDGTKY0ay5EWidEaidCbhgaD0h816htFhr7yu9efmEwCRLX5jgHqIubIg1hY8e+D2+CGI6zshlrMFT8knJHN1aq6ZM2IakZJn5LA5OV33n8DOQdalD8EHeYd+G958MQ/nrXj1/XI2DjOrzMz6chSNpoqbz2cGz0Q5BHiNNnp/hWdg9iF7J0i+yGvkfVoVIcnFAkCdOXbZhSOQyOxkraLiKwowQEamcoOziqi+9qXvk9hJ+Nzlbg57yP/V/sA/seIymkE3a7Ck6dz85x6kNLUCCUMA8oKY5tKnzQz/TPyu9x/ELgzEngN1T6F+ymo+uOGBMcYnzxU6QOqCYbmANAOrp9ELvkpZbJXobrVn6P5mfv4ecc3eEQ97KypIdQoBjxcSNBMoPRACV/rytVClq/tnBl9xh2IGLjU/Oga7nvi/yO+9v4oNCO7itSlrImDF7LRnS1zUx9ZtJJ1bic+dSAcuV3Lz8RwVoQY/FOcEv8esfh9pqwaWIpSxgbeFJgoBzW8OYW0hhBsi6WIA6oeoTwJpjFjSJjOv3LO0il7cRpJNRTHJTBxxiKET77+i/5029+zd5fo8bjCRMn4uXxr5AiPWFQnRpKxGsIxsuCaeHY7vn0m7+Iu/EbmsZibZrWmwpZbjDqY2T2YW7EypXjSi/oTGpY1jRsmk1uQ+GJlYnTuTQq9UB37DgejxyPB1CX650VIf0N0hxFmsYyK2VUHRdPMpfltPKrz1viJ8U5zU+sIr8u8DscD6A+s8pGTaR6UlWxmxjcWflS7ZODPC/qqCql9Cu/ml+4X1lPF171GQYXbhjoup7j4cD+sEcqjcn6lJxSCYbYq8+D/rpIU52ri3lXWtnV593DLnae3o3ZHQ77sFHQ0o1zhx9lGl/hmgb9vn5qMiqlFht84klzqkop/crvJD9bdE+9L7bzcGC/v83yrgtZO7V5enOsTwrg1Nhl9Dcr8LygVVr51edN+j6SD5JmSRXbGR5mdBwO+8iv3CubxuT7VJ9ThUY+9UJ5s+2dVXqcVn71eQv8CPbLxL1uYMJvvy/6F6+f3jzLI1dmWrelEkvheCKt7OrzTrOzC+y6Y80uDCNjKCbfMW/yORJ6kXuZWVyXtrazyvSMUVYrv+q8ZX7J55zxS7bzsB8VVSv1mndf0W9Js35qPqlY6dqM8DS/9xgUGLtStdHQCCSOg7FNy59982tu/DUeF3caXhjkypSPZAGLCcKXNMXEgGmFX3/5L3ix/zoAsIJtbfQzpEBM3ymDrMJYq5KXDwnUsmzLD1oVXjA0pqVt4ivtpG4gYVDpnKPvOrruSNd3DEOPqOYckjJLVdcwXTaVUsdlS45SbCjht3R+VaGV3+P4SeEHBH59T9cdOXZH+r6fOTPZGYpVTXyKU1QFcCont7Y7teFdTiu/cvqcXz2oyEEdwv4dY34daeuI8k8VlIv6GAaU5Z6q5KmZuaxJalJVZDGt7MrpZ7CzAoSAXN/1dMfArus68tOAqictOiilk6S89i4HebKkqr/LHsS8Diu/8/hJ0b3Q90V+xyNdd8zElp4K58FlxbCUTUeFHNtfyfyX08qvnL7Q9034WROWLSbf5Vjxy7JMA/kkEqn5FT3Mdai0L/s9o3PuCoiv/Mrpd/Aj+C02rDet+B3C/91xVN9S3ljNSv9OdWm17RSZHFxMK7ty+ml2hhLUWWLXdV2+Z1W68L3WvfibUu67VLTUfYa9fJbKXld05XcXvyRHYwRjp/zCg+C+6yb5zMUuUv9WAgFp+cZ84B8EHzZfPg3xwUGBq6urT845Lw1CQ+OrKKCghk0Lu9YgYnh1/Yo3/g0qcUdSAZmtfYnopOogYuMmDszExmmJBsSCWOHW3vAXL/41Gre9aNsG6S15zX3aIKWCXipRfaiLk9hnv0NH12h9PO7KmjZqac2Gxlpyg6k6V1WfZwoM1VQgskyqTrTkkBtAPW2nzB6Ir5QhlTmUNU8BqvYeWPk9hF+sUzLSJvCrl3+E6UADUvOrouv1TqReiyGs768V27pu6dgpx3bl93B+aAgKDH1P3/d5GnPhJ/n8oofFYNdlGa8Rq037uJxL/FZ2b8Fu6OmHPutgEXwceEh17ZwKQF7rlwqTNW9y6qp774KfzPn1hWEuXF33dG1iOiewyKX4UMqJC8PVK78H8isB1WEY6Puu4kcylhRphoNpd/JTrKbD/hgeGMlzKa38zudnSA80an5h2eow9CRdmYq6DsjNwjOLI6aaaA7Lzc5a2Z3HDqF6GDW1nYHd9Gl+uF3xRabql3+uyjjjk69eTiu/M/lR9X1Q+HXBdrphGI3nJgLJR3NAXMMPoyXGdVVqzifYpnRnUODq6uofXl1d/TB+/ntXV1e/Bv7J1dXVn19dXf0Hd10rpaSkAWoCsdvAjz5seXrZonLky1d/hUp45USO+FQpV0CoGkVsJHmdSWzkVgiL7UEMaOv58vYzPn/zm/jOaXiyeYo6ydM/c8PIYaLSEk4KT8tUjVqJNP2W6wxpl1eD5bJ9QhPfcZ3MZHBs01TYCFrDGi/v0xtH49mpntXoJAcA6uJ5yhTYNDBJ58Sylo1kVn4P5VdcFKGeyizJ6dSyRo/qbCp2I6OcAgD5azWFWQODuqwQBi+nBiYrv/v4Va6JVFHnKn/vQ2AujyYSu0oWRfwVKx3PEsiDy3EfMuu0V3ZvwS4YzZxZ0L20w3z2IiaCrnSw6tDrTnNaBckHTztGK79z+BXHtHZuw/U+287yaqwimPraEieYKNcSlSqIV5FaOnPl9wB+SQeLDYy+y6jvS2KIGpk3qiv+TinfHYROq934lJXfWfxG9an5ubA/0nyLtVK+HBCYymzGY6pzpyq2snuQ7sG471MlPJgaUDd+1XjY66jiJkn3ZNTZnZ5WLmMTe+K0ld9D+ZFtZ/ZbBpfHfZObA9WbW7K8S8mzD0OFS2tZznrLWbpvo8H/5Pnz5/9N/PzfA//Z8+fP/+nV1dXfBf4X4O8tXbRp4aOnnqMD1GAEmgZ2W+WDS8uPf7ClsYK1PX/y2b/iL6//FIwr71tMDnqQaNgLLNUeRlJVxuenAbZawTuPVYOTjn/+5T/l3/nxv8cFT/jbv/xDLr+64NOv/5w3+goaLQoSLaUI2WlXDUql+RUu8WnSgmg1Nq4EQVSxGHZyyU8/+AP+8Id/iLUNtS0Vwg7ol5eXWGuwcRMYry5OI4mNXfLZOUKfpvMoCh58hO41bkYhRdHrhosqzvnYIFd+D+VXiy0FBi4vLvI6ISMSpjMfD5kfqRNFi5yykgbNVh+q4NXHdjEuY/qWpjjLQlxv5XcGv1QP0uASLi922KxX4PxAdwyvhgk71QfdSxwNxTjXHapGPnPNqiEum+WV3X3sbKlHze5yhzXFJrph4Og8ZTPCxC1OexVh7IcoUD/JhPoNLjOYqgsHV37n85NYndCXXVzsRoHVwM+RNgIVDU+TwvnxfdVpkC+E10NEdjUZqf6tpHjSK1r5vQt+yjD0gZ+JG66qJ73DQ9D8AGTkfyiV/pXjtZadULuV34P5pXOY8APB0/cd6hxhQ7LomESGIhrGX8LIhi53a2MNLOestvPR7GrpinBxcZHtpqqn7zrUu7BZddzrKLMj+PxhDF3CNWkwOU8TTneMJld+5/Cb2jZhd7HLgZqwBPIYdM8Ywvsbfej71MdNPgM7G8cPSnmQkfzOuoRalTH1jieDHtwfFGiurq6a58+fD8DF8+fP/ynA8+fP/+Tq6mp76qK2MfzRz3b0TkBMePWaERorNI2wacEaz77reLH/ms4dUFFMohsLnVlBaRCQBTjqQpKsoyMXGoxBjcdYgxscX9x8zq+e/hG77ZY/+PHPeHb5lM9f/IbfvPmUzhyxbXkVFdFYpgG0ipQGErfC1apoteBzUmi05WnzjN//4Of85KOfsG13YT3QRGYi0FiLbjbVTpQD/bGnj4ZZJrgrkZTyaNWgpRqo1BY7No7QQOaDypXf3fwSvSlD21i2ukG9y9OBuuORtKtAHlRW32R8u7jLciyfpO+Mzrprk5CV3zn8wkVjfoK1ls12g/cubhjZ0x0SP3JUPV1PPSgpqhU2t8vy0NnNFsu6sjtb9+Q+di44tcfjniPRdla2MN23CKMGWLGrk9Z/Tuvfyu8MfiPxhk81P+dd4Le3HMVAfqnkyC/M6Op+MXVzKvUVVfn01Pycld/j+emYX1ofu7cE/8KXTElTi6VyxsuvRSh3QFI9ecrK7zx+SWvitvPB96z4dV1HtzcM6Q75RikwJ8GPrcqc/Mp7+Z1IK7v72aULa/E21kBiNwxhP7Jbg49T1yUOKkExojmAIAuMkvwek1Z+5DxO85M7+Q19z/F4pL+V8CrypH4abScL/DT9P/dO7h4pLKf7ggL/I/B/Xl1d/UPgH19dXf0j4H8D/kPgn526yBjhydMLVImb0ITiSYwyigwohpvDNbf9G5wfxoYqGp3QVpLhKU+FsmClmDhVMCphKUcUkBBiLCJhl+OXhxeYD/4Og3Ns2w2/98kP+ejZh/z0zU/5i6//jM9uPs27IcfXOSIpOOdzjAVShMYXB6PGoSqIClYbfvXsD/nRBz/iwycf0mw2YWOeSbS2yM3QNA3bzSav7zq0B7y0OO1oUyucNCrJdU66MfJgZ41k3FDmzWbldze/xpix0UpyI+x0utlucd7TDz2H9sCNbPDah7qPPJ9w1ZwfuaynlDp3vgtp5XeP/hmby52TJH4N2+027Abb9xw2LTfS4nXAAmlmTn1dGpRkG17pXZJn2btDY88718SV3SPZEZ441uz6oWd/u8fR0ETXtvIvYv1Lqtnd6RMt2NSV30P45cc/p/nFfT1u21s8Nuqdz6/NEmrZMH46UoFZYjR3m1Z+D+c3lZrEp4KFX9/vuG1vuCW9Eq0EBoQ0W2eBzx0zrHTyd+X3cH4m8isyllznxM85R9d33F63HAiv3hUtAyURKEslT0C6M61932PZpYBaLcvEbrfd4lzYwX7f3tBptW9HNWg0srxuvB7YapTr9MhdHeDK7wx+Waq5xxrzi0Gdw3WDOwS7SlU30utcKx3W6v/K6RwjqlVu/qRxlO4MCjx//vx/uLq6+ufAfwH83Xj+3wH+d+C/PXWdAI1JzSrtolhKkXZavznc0A0HPB4byylVpSQ26NxAqsYSGopJGeYb18ZOQyYgYI1wdAfU+JGB225afvzDH/Pxhx/T/HnDF2++oBuOYY2jFTC+CBKqRhyNYnryoJA2l7BqubRP+cnTn/FHP/kjrLUYa8MrRMRgxZY6TgRnjYG2xTnHdujZbDaouWTwHV41zUKfd8xSxhrLnWdVzgJi0QNe+d3Dz8yDOomJMYa2afCbDcN2y36zwdtLBn1NG/mNk0J8mpm+3vUsK9t2SRzmaeV3Jr+SIamoBqFpGzZuw3a7ZbPZ4s0lg17TMHZYJd03fUmby0x4CeXEbMCX/aKV3b22c6JB2Y6G5Rxt2+Dcht12G23nDs8eI478NGEu9pGc9Y5z8nknVHTldzc/I3ZRtuHJY+Dnt1v6YWCz3eJli+eIEQ+46vwMI9jCis1S0GiWVn6P5Lc0zzHqnxR+F30f+LHBSAcSl8NFl6N27It4K/074dxqktkJxCu/++3nMr8w0G/bMDgZ+gtudlte08aBiR+dK3V9s+sSZjGOAuc1w1DtXNyV3cPYnda9UL+mbdhtd/SXPbe7HdfSYmSgnqmT9/JY4JKMqU7Y1WXVeHzJfK78zuAntWDn/C52O/r+ktuLCw439TLl8dKrUQ5J/1JANSlX1UfW/WMR+HK6b6YAwOfA/wT8k+fPn1+ng1dXV/8A+MfLlyioi0Uo4PIHBRWl64847+O6aQmCFkhP3sLZ4TchI0Hyd0oDyGflEoRrU/8hYY3+sT+yMducs1dF1NE0Df/W3/q3eX3zhi9efsGXb77gpr+mdwcwGhtCkqfmBpo30lDBqGVnLvjhkx/xsw9/nw8unmEbmxsEKnm9+Sm3JUS3DJu2Zdhs2W63SPOE4fgG5114J6dqlkERb1xbcsrbifItwqkb+8rvfH7hTRFjQzTmZ62hbVu2mw3bXeJ3g9Mh2qrIL9Y7+DgyoreU93iKUpTvonKv/O7mV4zmVM4igjWWzaZlGKL+tU8Yuj1Ow272Jg08UseqsSM7we+URi4HdVZ2p9iJRN2rZFLLWSTY182mxQ1bdrtdYNd3GPWzc0WEssNvZR9nORe56OjbUlr53cVvGtQRGX82xtBuWnbDNqyVbS7xbiBMgR1inYrDqCT7SQm0SfV3yksTmVNPpFd+Z+lfzRAgDjaS/u12Oy4vL5HmAu/DWlhlyJzrvk9Jy3sog8oxtdqrJV+4CHDld5ofi/xSbZL+BX5bLp88ifxAUlBOXcUv2M+lAX4t+HE3l+S9snsou1lAfCLExO5yt+Py6VNe2G20iR7FFVlI6u9qOBr9mInh1OLTaGYEy4PKld/dupdKP2cH4YFwu2m5vLjg6bNnvHqxKfKJ10mdR+zw6pzq7q/Gle8Yin3Se4F7ggJXV1f/FfBfAn8M/M9XV1f/9fPnz/+P+PN/x8mgQBSaVB1vKoWU5zE+bYIh4fxRlL9qTDL6JJUPp4SIUrpARs5idtaz36f0vmdrduMOJXZG1lo++ehjPnr2IT/b/4wvX37F86/+BYN0SJpXknwLH8vjDeKFrdnxBx/9go8vP+bJ9inbdhs2vhJDatbGGBqxo05vmoQylXLTtmy3W0yzZTi2DH7AACYN6FPbqMSVIn658U7EP2W02Eew8lvkJ0IjTTZOp1KYDmTZbDbstjtsc0Ef+YVNsnS0yUtlbstAUWrJ6aRjLeeeakorv2V+ViwGc1JuEG5jrc3OrW0uGLrCDxSbOqlUUWoHqHZsRyY6ggsfTs30WNmd0D1j43TIcRHG7CSzu7i4oGkv6ONURUNaB1tsJ2lQkrHozD5r/mfMbjkgt/Kb8iPrnilPfs7it6PZXNDf3iIMqMb2YCiMksMmQpg0GvMu/0QmYxSnHduV31380qDylP0MDzUCv8uLi8DvcAQNU4ep9a8grDWw4JnIvxq+VAOYeVr5LfMzNb8ZuMIv6N8m8tsxHHpgiIyqwVnip4wGT3X+S11cmWk1/3Fldxe7MbXaPwxVCOzazYYnl5c07Q7XhWCOYlBNwdQi2tTnLSbVOaE4qDyVVn5zfimYOg7qCDKVroQHipvMb4vvlcBvIL3NYMQv/zOq1uTDwq8nkMP9MwX+c+Dfff78+fXV1dWvgP/16urqV8+fP/9HnO7X4z01TGWX8dEEQtTQmnZeQBHExCfqRvIaxFEj8zGyZEqzKfeMDUTTcUHVB2fQGEyaOpwaTuyk0g3Ca94Mzy6f8cGTZ/zyp7/gen/Nl6++5IvrL7h2r/E6IArPmg/5+Ue/4JOnn9A2m7hXQLWrtQpGLNZYGtvQmqZqLHXJ0weNH0Pj2F3sUFV2l095vX/Kod8jraeV0CGKhPVeqJanzVqUL7WeevCRnSPv8V4xJ1rHym/MzxpLa9s4hasmp6NvRENljWG32wZ+T59xPDxl3x2gcbRxWWZ2jjQOMip+wWRMlD0PSAANr+0yZr4j7cpvmV9jGqzY0w5t9ckaw267RZ8pl08/4JvDGw79ATVKa5T/n703aZIkye78/k/NzLdYcq2qrm5Ud6MHggaGAwI88MADKbwRQpkDPsGc5nPxQ3Dmzgt5GVJkODICQAob0Ut1o5asyi3Cw93N9PGg29PFzD0iwzMjMlSr0sNMTU2333u6PFNTm7dhY22AwVqDSEEL6600y8mG2jwd03Yn28rudtkZi/tsNsP52SlOz87wYv0Gm90GHTEaZcoeVmu5Cb5C+DRRWrGi3bT6qTVDjRlUKz/Bz6TbqvYggzjgnnjNcH52htPzc3x/dYHddgNis+8HyLy/6koec3KtpmhBBVY3CNUaUKrq38H8qEXjjHKj9NxqAcJsNsPZ2SnOzs/x/eYSvd6Y8qExkwa/FNqO3LVoJ4k9008AACAASURBVNmMb7w6inGs+2SoBkC1/TyMH4U2dJyfKA0RZrMOZ2enOD0/xw+bKwz9FuAGRPYz1naC4/VKvGdtnvyKvi/iZ350WveV3TuzM9VAmHUdTk9PcHp+jpcvttBaAaxA1ALUI91RgIWS+WMipEYB97lKBtlxTu4qP4zwa0DZw6h4DuEeSLRdh5PTE5yenePVDzvLz+ieX10RqtUUm6MTgELbGfV9bFppDp/rydw+o4Byrwx8+eWX//zLX/7yf4YxDPxMlGiPKwsPmNE25qlreNJmogxPYh08a112QmBlNpy4sOGJqozBVIIZUMy7OWhw75YgguQaxDiPDR6dnON0eYovhi+w3W2xvloDxDhdnWIxW5jNWxCsOOYJovLW9UY1dkAUDAI+ywVHMEqliNC1LZYnK7x5OcdmrdCgh+rssld2isxWoMS76b5eo+KYOrInmseWUEZ3jXg/MH6qFV+NSH6jlkvkh8yKj9XJCm9+mGM7EBpoqNYtWzZ5LPMLKcjGOQyMrIKP4BGVMOL9MPi5DV7MgDZfITDVRhMR2qbF6nSFVz/Msb0kUKOhWsSGNkMFsEvUXXU6a7gc1LrwWh/Cr7Jze7CU2Pl0C44UoW0anJye4tUPc6zXDJAGtebDTK5+w4BVu1qwHpQ1oZay+Qa7HaRMu8pPUYOGGvOUpACQsjOTY6N7DU5PT/D6hzku14yG7co2sq8NOM3jUI1O3Yi9Vsoimb+aLb8yHnHHiPfD42c2OStrW+pLNm9t0+Lk9ASvX86xvnoD0uZTdoB77UPoH8u4nL87Cz+GtQZDjU5MRCWMeD8kfrb/o/IGrVH68tzp38kJ3rycYb156/kxkZ0YhjpwY8owFOKIgDSqas3gMYtqqIAR74fDjjy78l4CUfq2zhimXG3T4OTkBG9fv8LV1uokAPcYUHPQP3m/eaUO0ZjTTyzZ9H2sWvAYHxFX2fvh8XN7QRzyQIPh2s4GJ6crXLx9jc32CtKY4fmJenZjF4LZdDGMOVnwM7qHphl9IAXsNwp8/ctf/vIvvvzyy/8XAOyKgX8L4H8D8Gd77oW3GsnCUyj8fDZHSy163rrZDsD2aSkTzDc2yexxogghMis0vjbcEMHulOoEgwGzfZHZZKqhDotugUH3iFHYDJHIJ2DoWBhkJxbzbo7T5akRAiKE91LDuVsuopT50kCr2njnyVH9JpCETICyDfOr5QnWb1ps+yu0isDcmHqi0HHyMHhF8HLhdA/hL5gxaPOZp6l+tfIzFsYwoUzyPUox1JlSZPitTrF+02Gzu0JLDGb7ZHKEX1B4skodDW/NO1kinZKr/Mw9jR3YyiX9UerkMpACZKjG8FudnGH99jtsd1doyW77IntUa2STjbZ/WOIbaBfU8NMTQlTZKb9KIJ2QxPRKGmDqTjUKp6crrE7PcPH6Bbb9lftAYTIfZOiBQcq1hw5aaB/DAImhBw2msTVWLnzl17h/ZJ+SIEmjUGvhj+FxenqCk7MzXL75Hv3g+Clox8a2jZrFax9uQCv6PhctM2MYBrBqIsNe5Zfyc0/t7MRSaN1E1xfwAYbfyQlOz86wfvsSgwbMK7bKfjFdPPXn8AKBn5iQGNB6KsAwaLCq+ncQP2fUoTApmebnlIpBSuHkZIXTszNcXb6GHjZQIPiJJYxxjdw/y9Ps9WFHMLFKG6OAe6BR2U2ya9zGkMIgPsVOGtZIEU5OzLvpm/Vb6MENaxQ0O3YMZXG71yLTsrEjYttZx622nYfontxgkEb5+SGH+8uG32q5wunpGXZXawx6a+u+gWYNbfVI62zdRygMlyL31Tbq9pnr/h3MRoPeffnll/2XX3757wD8T3vuzZwRKmvNYsZitsCiXXqY4QmoWY7L2vw1laDt07W4gO7IdCbpCA5BmBhYtSeYdXNQ6T/KooUTQrA5MhYg8rtJetDSKktiMOSXvboulYpSQeJfXCjzzvjpyQpn5+doZyfY9oyhH+zAJwilckLK2lzLW2NRUwxtjQJTyzlT9/D4Kb9s2W0SMlVbeRbMQPVktcT5o0foFmfYDUA/6NAYYoKfDSM7WOevBw1g2oKcuofET0U6aAwCrlkmEbXoCUSeQzkIwGq1xKPHjzBfnmOnYSYV1lTr+hTTSWiw5RcYclyv9p/hV9ntY9couwdEFK/kR/ZfnG+nM6vlEk+ePMHq9BG0Jmg95B2iHcSy1u5m8SSFPVfzypX2Brlr4HuQ/JTKJyRR3JKdGDm6LovI8Hv65DFOzh5bQ6rrt8LQxcTtOPlhbKxvOvDTOqh45TfGrxEG1ZFVAsWBi82IneQvlws8sfyMRYABKIDMdq3yZle3Mg6pe65O/QRlD7M4Rw+QH6UPNAou0T1fIOuzsPxOzx7BfKfNPo2E4weLihEbVN1h3A9C6OWh7qGyU6qB2vPKVaGyjGEGhPligcePH+H07BHIfmOPSMEYBsImrcZQA+Q70NkactXDIfx12s+HyM995Wq07UxT80HY+80Xczx69AgnZ+cg1dhwCmzWG/sHU65+hOYlNQQvF6bvm249932S8LcT1/6vyZJ6K07inAWDgFk3x9n8HG93r+F2rQTDzIuclZiDHyk2w0NnWUJo09j/hHu81GuANeF8/thOEIy9k9OMFTauIfHrE/RltLeRETCllH1fVXkre6NaL/ypbJRFhaJ6M8KxwLOnT3H55hO8uPoeg74yg1uNaEAcrFeMqKJlhhlwlripJYGVH4lVAsnIZ5Sj6S5d1O5nNp/j6dMnWF98im/WP2AY3kLrwTawIYc5PxerbIRDA6BUOtiWZXvI/MJTkla1uUGg4EI6bAc74VnybD7D0ydPcHX5GX5/+QP64RWgNVgToBTYxq9IhYmJXPLn6lzqHwy/oqvsQCRe+RAxyvFrnI45kIMVgmH35MljbNY/wubyFYbtC5AeoGzXZ9Jn/3SLWcO/75waVi0bhtuToPKb4tdSaw0CGcGEoW03C/y6WYdHjx9je3WFzfo1hstv0fBgNo30DDi0naaygsqJQZY7Z9g81b5vWv9GDQKU8DMPL1iuW7Wum3U4f3SO3fYzbK/eYnfxNRomNLCyEWXLvuvK8baDcayW32hLjgfPj5Tyk5K9BgF36HTPHjg9nHUdzs7P0O8+w3Zzie3bNRqYJdnmHeoQiWwmvXcCkjXDbXhXdJVdmGCSfJhRTMDGZ9tAX9WmELOuw+nZKYb+E/TbK1y9+QYNBjvJzVTYrByIuKSZDqmMvnhc+cUGgYNWyMVV5H5nsw4nZyfQ+hmGfoP162/R0ODbzazas4xSiI1MIBciL3Fwh3yS8EaOCfk7lzY3ZnWG+W7tT55+gdeXL3GpX2MYNAANBeWXxWvtNq8xkXpjFgPQACnTwJhvUIZvUbJmQDOGAeCB8bh5ip8++hnce95m8O4iEvmeqC4SP3IZiVlmYj5lRm7Zz8g7zKW4gl/SorJJZ9Y2ePr0MU5O/w2+ff4JfvMP/xU8vMR81oFbDd1rq0BmExi/BQzLv+6QwRpoGgJBQ1FZBB4uP/IWdqf0Yw9JRk/YDJJg4561DR4/Osdq9Sd49vwT/OYf/hqD/hfMuAO1bF4b0CV+7Ll5L8tPKTJLLpvyYp8Hy4/c0ju77Fw271SIL6sfMpZnJjCZycasadA+OsVq9Ud4/skn+PU//C02m3/GCc/RtuY9O9inkbBPRd1ncRxDj9JiJUUg1kXZeujs3D4C8WRyHz/L2ZaRbNvZNQ3Ozk6w/MUv8Oz5c/zmn/4O69df4kTN0HUEkAYP9tUPN8gVlvSIG4yl3SSiQe2sWNaHzI/8gFZFxlSKIhrj514BYD/o6toG7ekKy5//DE+fP8dX//yPuHjxX3GqTtGtFKixT5Y4xGg2PbODSudn206tHZ8BNKv8cn7kxy5hgkB7+Dnds0piDS7K8TtZYbn4CZ4+fYrf/fZXePUv/xlnzQlmrYJq2PMjmz//5NKVS3SFg3abDA5oZsvKr8AvGAQkoRxcrH9W9ywIsv1Y2zY4OVliOf8cT54+wde//wovfvv/4FQtMW9bqNaU1RkU3FNhaFE60RVqTeiJoHR5pVxlF/YRiOOIocVDTjPVc78urq5t0DYrLOZzPHn8GN9++zW++dX/jROaY9G2aBoDhbVjZ/TLAfMGAKt/moGeCMRAU/u+cX6WIaVxmAFGzs/nwaVh/rVNg2a5xHI+x+NHj/D995/i9//0n/Bs2WHZtmgbsvM+86qdW+goIzR6ZzwHDeyogWKGauej5T2aUUAR2Q1JGN5CwRTVBoMx7xZ4tHiE9dUbI5jKXmHYEpEvHNjKv58kOYGO47QHfrlEO8zwyeozzFuzm3/bNtCawuABoeKKdjkJ0lppSKlEQJSBKCaTpVnHIZ2raaBtWlbAQMB81uHTTz8F6/8Gv/ry/0Aza3FOCjsA/TBYoTDapwnQvpOFYUENQC3QttCqg+IdFqerys8NZpvCZHI8uuwiuYz7mQms9dA0FjNq8fzZM7D+U/zDf/k1VNfiya7BoBrLz05IyDSCmkzDbPgpgBpAtUA3g1YdGt5iWflF/MJyLgqxTTJM/JzO2Ltdw69YoetaPHn8GPyLP8Hf/Ke/h3rS4pPdDKpR2OkhLM2yumts4GQ7VwVWLdC0gJqBmxmgt6Amb4IfJDvx/rJvPyMmBXYFfqb5ozCw9eyAx4/OQb/4Y/yX//Nv0bRX+KxfomkVdqyhh7DEkYkwWG4MsrrXAqoDzWbgZg7oDVZn5UnJQ+XnJpTFlTkHMTTtX8SPCFAKbUc4PzsF/fxf4T//9m/wfXOFHw0rzJRCr7XZ58FOJpmQ8LPtpupAzRzczKGGK8zPKz/Hz+ieNcr5XbIP1EHnYeuI7Hgj6KCRjZPTFX7yxc/xza//Gt81G3w+W2HRKPSs7etU5mklw7Sd2ute49tN1c6BZg7urzA/W1R+KT/X9/mxyb4xp/MgP3Y0p26SY14VoJawWi7x+ed/gK9/9Tf4brvB512DRaOgoTGY960MPyK7Z4TgZ3WP2jmaZg70a6i2q+wSdr7NS+lNsTPKZ4edYsJq42maBovlAp999jm++c05Xmzfom0Vlsps/jrY2STb3f01kXm9gFpANUDTgdo5VLtA28zB/RqLVc7uIfNzuuI3FYyioTy+gvOtrY/b3t0ozBcLPH/+Cb756ilebn5A25iHl9QAg2aQDrYYbfWPVWv7vRlUu4DqFlg0M+jdGvPF+NT/KEYBY5Vp0O/YT3Lc0xfRzZj3RgaNVXcKulQgpQNwEyIsCTGvUJsJkmZzbB7MgezkywzmHWzzT/UNHjVP8Hj5BATz3u9s1pl3QwfzjmF4/75sL/JwxF8nCKlRIJ9MSgVHJhHp4MjXD5vyEkxHDTbXFss5fvyTn+D73/8UL7cvMKgWs4YwzOegxVO03QLdbI5uNkPbdmiaFm3X2Q27Gv85D2aNvu/Bw9WD5ucUUBFlrwrkBoFDOljTQIfO1TQazHZqOO/w2Y8+w7e//SO8ufw9mBQWROi7Jej0GZpugdl8jtl8ga7t0LQdum4G1ZhPnJDdYIlZQw8D9LCp/OwkspUGuTKc4EU5teDcE0vyn8lhbTa36maE5588w9PP/zXWr3+F7xRwgga96sCnz9DMlpjNFpgvFui6GZq2w2xm+Cm7aZ57msJao+3ige3DZAc0jf26h5yMjPWeAWLCL33apSJ21BGePH2MT3/23+Lti3/Ed9sB52gxUAu9egLVrdDNFpgvlr79nM0Xpl2wBicmeHZ62BbK+9D4mVbRPV0GhVay1N9FXiU1JbL4zOZRnh8A6ho8enSOH//hn+Pl13+H7zY9nnAHrRT62WOo7gTtfInFfInZfI62m2E+X1jds7IA+KdFlV/Mj4Q+eopT/MQJiR+GG7cQWNv1jwS01OD07AR/8Iu/wPe//xLfXW3xDB1IKVy1p1DdKdrZEvPl0vR/3Tzwaxo7QbX8AOh+V/ml/HzYcYbj/FzbCd9+EmmfD6IGq5MlvvhXf47vvvoS315d4DlmaBqFNc1Bs1O08yXmixVm8yW62RyLxTLRPzavvkKh6eKnlQ+VnbLjzmuzsx6ubhy6MKkM/ShTg/lygS/+8N/gm6/+Hi82L/EMHbpW4RILoDtBO1thvlhhtViimy+wWKzQWHbk2A09QArD0BfK+8D42TLLLwxIHpP9XMSPjDGD3OwhzClhc0aKMJvP8cXP/xTf/u6f8HLzHQCNOTdYYwZuT9DOTjBbLLFarDCbL7BcnXjdIzIrsIahB6kGQ5/zc+5IKwWMcIAZfc9+kAYH2tbMoDW2uy2IG7SYGVg0QMM9W6NgETK9gX/vhAELxwl9GMi7zRcwKJzQGZ7Pn2PRLjAMg/3+pdmZ2k3W2G7UoF3+EAuJ7PCcBUfuLunzkQhFfn8SZ3IS+5HZQZsI2j7tMlXAmM07/Olf/A/YXL4Gc4/FYoH5Yo6umwVh9UYLo9DG6sbWijaY94dUh+02Nwo8FH7u8yGhMxXMEo3eq+BUDA3YSaU2H8YGMaPrCH/y5/891m9/gO43mC8WWCyXmM8XvsFx+XNPWmDZG35mAxalOux2uVHgIfDz7FRYFaASRaME0OEMydeZIgVWyn5Xmc0rG0T4kz/773Dx6mfotxeYzedYnaywWJ14Zsrqnek0mmAIYNjNczRUY4wFD5adH3jC62CZXUJwlB/5OjJtIIG0MtvpCnZ//K//DG9e/hjb9Wu0XYPT0zOzmY9lJnUvsDNxuM2PSM3QP2Ddc4bUyDA+CUe2oTQWBIDb38GlY9pNsFkiipbxiz/+E7z59FNcXbyAIuDk7Aznj595o1vM0AyszGDR8GNm0ANvOzN+fuxyCL9wNsbPFY4sO2cZaBrGT3/xCzx5+hTrN9+CeYfT0zP8wdNP0bSt/+IPOX7R2MUa48Ag6tD3uVGn8hNsim1ofkCWm7vJfQrdvOKmzP459hZqFH78xRc4Oz/H5auvoYcrLFYrfP7Jj9G0nX140YCa8DoR4MYuDGbDD+j8tQfNzo07SSBxTMb0T5xIPzd+NZNKY1QFBDsCPv38c6xOTvD25dcYdm/RLub46ad/gG42N4b5phH6Z+NjBHZtA1AHKhjkHjQ/G5aye0dcys+2vaaabNvpeQZ+T59/gsViiTcvv0Z/9RLoGvz4s5+imy/RWv2T/SC7cll+qm0AtAC9Z6MAEey3KG1HbK0ybAvoGng9DNhut9he7TDnJTRrbPsNGOYdEyZlrEOi5lhZK5ITGoJdrgtAScEgKG7x6eJTnHZnJmViv8GG7aNAIKgmQgk5iGB5RTTCjX0qEnWjSaPs6iKrn+TCtLIrO6nkaHB7cnaK07MTsB5ArlzKKCBzEpmre3blgm2QCaqwfPlj5OfKRXBPEENHau5MFVv8jjJMwkXONVbW+KBCw0psllKenCzNOifSnp+p8zSqlB/D7EIKkEonlR8ZP9GZBH4UveKRjXRKHWwCaV8HCzfJUQBpCjoIY6ZerZZYrX5s9oFwm/c0FMomGLonWxk/WbiPnR3g286InYhL1oGM8xB+cRhzpqDASkNrBb9xJBEWywWWyx+Dh88MO0VQjUpI2EGHZWcMArDMXN3m+3lUfqEewuVcwUb5+RwSICYltvMDw+zKPP/sR4D+BMw9lDKDUfc0RDq2j59CmUzcZv+Ph8wP0cW0F0vHLSnDrL+TcbjJgJ+YwNUcAGA+n2P26Sfg508Bbfh1szbEKttOzaFMLg4mDOn64coviidry3JQWX/n/FyyCmYpuB28wD3xnc1mePr8GZ48eQzWOygFzOezIDSuskV9w/FgAFCWX2UXIxlrIGVRynx9xROBoABljajs2Jl3+duuxaOnT3D+6Bw8bEHKfCEkjdGXIRp7mnZ4GIZ8jFr5xXGN8nN/UoLs69BEqECK7WeQtDF+gNC0Dc4enePkdAXdb6EUY7Va2Rspio0HbdtLywMaBGVeVS4BtO5oewoQmXdZlsvGC1TfD+j7Hpvt1g62zPe6N9sN1LbDiTrHvO2xGzboeQvNPQYywq0UzHekjXkI/ruUZN6hMNYjBg0KMyywxAqPu8d4evIE89kCy9USy/nCLHG0tebqP8q3/TUTkPLEv4TUCVo4DhdG00kkJVFLOCNEgxZKaWhW3rrFegDskyxnCSLXacq2ma1g2XpznSqRMt92HmlePnZ+8a3kyxz5ipvStOIOteAn43QbnGhTj+6JBwgg96SY3Q7OobN0DZRrMLwas2k0NId0Uvdw+SVX3pEhgQ0/zVBKw3wWzXR4BMOP0MX83IDIG+gSftryS6GJPD8cdvas0LEWJybX4WfbTnLcXNvJ5h1KpRqThu8gnQHA/AyDP/Hs2I5EtO1sS67yC/GU4i/rmvBwZXRPGZVkF/hRo4zuAWHwY0ZAkd5JF/gVL5tsPER+MRoXU1nfxh5oCE8CmUEtAPcpycCPTb00DQhmwzIzFjGFY9jBv5xdWuf6PDtfKbrKz51mSpmkWxr9hT09wIQG5FfXIOWnGhDNADAGM/dCmP45WKmRzpgWeET5KruETVH/Cn4yFwQwN6G+mcHOOMAaxDArAWYzEBi9GYra+8IU3hkEnHOGucHv+pe7h8fP+hT6tFH9Ewd5S2rGnNyYjDKxH3MCYd6glELTzUAE7LTdXNJC4kK7CRjb+j5+wFGNAnFxmRTa1rxn1g89+oHRqgar5QJv5jNcXLwFwFBaoWsXaLoGPW2xHa4AMJjIWL4Aaz1GeAfDtmEtN5jpGU7oDCftCeY0Q9M0mM0XWMzncN+Cp2JjONLBmZRQwidPJGwpOtca2Ebx2QNmQBHACsoCN1Yfly8Xp22syU1M2F8FTIMdbPaWDxcy6LLxEfOLw9Iks/GOdSy+PF1FAENZa6d5v8ntCelaKf+UixoA4n2nLGaO+I0bdR4Kv/LJlDEgOk3Dpa2lt7yzs7IBzHbRjgirJD83cSmVyPJTZAe+hS7mIbGL9C9cfTdjDhBWethXr0TbGYxtcRyMBmSfqoRPLrn8B+NAbTuTs6yJTPu4GNJ4nyfPTR0rsntwqGAQMCs/7KBVJMVuQBUNaJNJCSq/g/glAQ8ft9hftuVW7oVg+LbTPKQIjOQDZgJZHXT05KfWLGMi+ySv8nMehV6kwItKaBMPsmNFaxyQ7adjh/DP65M79o2pM3kH/TN3mApLV/T41Cs7ACMGVfsznl5I06Czbaf4Lw7HPgP+ClFxYinZTU0oHx4/KvoTjdw3Ej6kBz92IbtawO2BwwxAyRWmjHBkYvV7Kvl+0MXMB/EDjmgUAGz5Xb6shYaIsFws0A89tn2PU3WKYejx+vVL7LYb8AagHYH6BrNuASjGgB6aB7DSMN/2tkM2+/KT+Z5uh1V/ipNmhXk7R2uXVy8WK5wsV/Y9kpCnw1zUzAmSQZkiuP6cQvntOUX3HzAwEpVItgMkMTgC3MA2GdwyQHZi4iy3cQNsLPhhyjmuEh8dP1/mEX5A0hinHWtpsITshBIPP35hMp0lmyVIFE1OONxPZnLi/D1vlwslmT9sfqGWy1VSfloZX8iabxGvMbSR7+Dc4MgsvkmeSHp+oiODa80Tfnl/k5fhAbLzZXd1NTE4ivyK6bvOOW47zdewROWKbhWWnafn2bmWPRhb83dikzI8SH4xs5JRNb4xTSNu2zxq0XYqaPPEXzIkR8yu7iHLKtI9ya/2fa5q0xAxsrEVH/HNxXGLuBa1ndB2RC/aT8/PtrdeN9nXP6Pyy/mVlWtKB6fHLC5656Nsme20UrlP78KuuikZBgBCY/iKiYkrl2s/x1ruyk6euQoR53HwfPwCIDxMJPgZJWtAK6t3kpep5DAkcW1ouuLKPfgYm17bUA+cX+otGRZrjUK9+xwIfO4VkNSgapXQGE5IFM8aBsT2iz5uP9+YmDcc0ShgBSp6QmOW1iqlMGtm6LoOXduiaRVevn6Jt29fY7PZoO979FcafMVQuw40a6C7HroZQA2BtNnlv6EGLbXoeIY5zXG2OEXXtCAQ2nZmNpCyggGeEuPbcTL+vQPbOFBR2QEAXgmFP1uBZDip8UoOCgpswrKfvPhmgN11sxyn7D5CfsUIRFOY9IwHGXXSzjeK1/qT6wAZBAW2g1kmswxPWv6iTtb5y2UeCCzl7qSlcj0EfrHO5c14fHbNwZGIM3QThhHZ/T3s97ds6MDPxeWeXYbrAutojTw8dqX6yNvN6/BznaCNx6OzAx7XXroLrh2N4gm8TWRieKRoXPUqP+s1wmtsgFSIQ+qdazvdpp9hYilGfMngNuUX0qp93z5+o2OXAycpzqBqMDiGdgJCgR8kP3fk8mPb2GhuArGZYdFVft679MQyHdcUHfv7A74w2YjZmV7P6WngB6+MZX7ldCs75z3WfqZ+hXGnn7gzAjoVGeQQGQYkOwGNkLWvJuyYQfyh8isHHJXzkfFmfl9oN5nMRrnSH36eYJw3AlCJn9PpqXnDMY0CTjDku2Tugm1IlFJYzGfo2gZf/PQP8OrVK7x9+wZXV2tst1sMQ4/tbodh3QOXrVlO0RC6WYe2aTHrOsxncyzmc3Rti7bp0KgWi/kSp6dnOF2dmJ1Q/RrDcfHIBzTIR6WIFdM1h1FPmNyWWf1E2KkOtRSBVN6wcZ0ZFJHsXKOnz26pHcLkk0y8ilQkUJF7MPxG4vOMbjKwza+kAyQ/qcwUOxxHc02CbWjtQM01+mONzoPkVzbwlJ5WUvxT5OijTAYxBIRlXGK1jgkaGmtvgBN4hT0O8N8DLxTjgbHLztP6Lk1EUsaZ46xzNW2n8u2m0ymhZOPsZLs91bFWfpMGHYovFO8P8SSdKZtX5NwgyfR9iPRwip8jVvu+kWuiqsfiPGjcgoQdfNcHct8Y82OnkpHOTlHc+MVeZVsXamoZbOVnw4zHu4+3DBEb5iD6Pscuvc/xC/ebv+apJoDwjnfqKjvjVzLm2Lin9U9w82NO8vpmbNkc3wyhYMIvnJp2NgxtpeVZJAAAIABJREFUat+XX0viGeVXSHWk/XStoWs33byBmINRFfAPGQOThJ812bEtm3ngOF4nRzMKxO9wsl+2YApqj+0GwE3b4Pnjpzg/PcP6ao3L9SXW60tstxtstle2eHbZEhht24TvZ9qd5Numw3J5gtVyheVyhVk3Q9e2yRLPMGmQ7iDBGD2lGKocw0ShKLmG6KZxRC7fqaA5xXTLRKQgyA7W3u8fmZlz01aMp/rR8cvuiU/keXRrypPK92d+aXruibM14ChFpqF1E0uCn6S4tU7uSYn73qvpEKRhYHxg+zD5SRAU1Xsp7unONbohzj0RyG40yJJbdJOraTF4ApnXQlz6SpVy8bDYpR6ZLh7Ir6iDgRtYGghC2ynHRJFjCp2tS0+ym3hS+aD5+dsFo8zAk1xP4pF+OTt4o05kCPB3BgtAzI/9a3im/6v8xjym+CUJTcflB6quvwLAZDdsle2mHK9wYIe0P5R5HH91p/KLPbPz5GBqxZq5PxoEgbSCf50gYWeQh/4u6KPTOScPKmvbTbDKbirOnF0aSWgPS32n9nt8MJxBJ2YIfxz2Z3ErhuwYlMg+fc5d5Ve4fI3+Lo5LjjsNI9P32dUe4KRkcjDjjsPd/lwpjO5yjaMaBTQ0c/ikjM+qa+wBEIfvURJh1nSYnXR4fHpui8DY9TsMw4BBD2EXVAKUIisgRkgUKTTu2J67TycR4FfVJ+PPyKfYeBYHoEkjWfK2SiQHH8X49jbMMnRopCOFY6vc7vNZxtPf7Z+ayGOyQleeUz4gflTkJ89Lg6TrKHcaJ4P8awNu0Ct5QvAyl7lwLD9rl7vKr6SPE3poT/ZpIVudce+4SR30LNKOMNU9ezY2sH2Y7JLYZbsa/+Qs40xlDCU3ojKzMMlEXN8JOxdCVd2L28GoTZT8RpjZn0zfUh12N9sJ5mjfZzpA0WyyL3eYrAQate/D9fiJnzipiZFLFNBNBhGM4RA6GLGD2FPH3Fv5RQH98Y35iYgLqcQBZJ0DAGk73szbUXLhhe6ZMO7MsDYG8dxVdnHfl7afZXZRIpmPud+suFH+E61B58bGnVLv/Bm7cWcxmcpvkl/SWo4yjF14oOj0jKxdR/SB5iC6Lx1vsu9D7SvMI+5IRgE5yUkaC/93rBEKmSUizGYzYX1CdN1UPnmojbMgWZEgUDBYFlJCAVDpNFZE2Ske/r5KJmgHP+3KA4QiifoiwG9I4eM3QkFwS384HLuBbbFnrfyowIJGPLI4poSCC/HA1JX2O/vGnbFkGRomtyFTKbEHwM9kcLyq4/Y79qY0zsM12dw/Vn8yFIdfyvUQsMu4Mst0ZRf45Ero/NN2c2/HGv/4Woy+bW9mLMldjgHZB2CCXTHVh8lvikeuf9fnV258bQH98klZhzZSxwvwe7j4gVExocpvnJ/URxoJM+ZivYuuOB2Uuif7vMrv6PymdTBcMQs37Eor216GZ8pS96RO2qCweygRm9c/at+XRxFxoLyKPMI8D1MqaLglhfL8RG37NjOk4iaQjt24Qa7ym+ZHyZ/DGIbJPInAwUAe4qCoDTVjFmcwcBmz8ehxaTniSgFkVqdDHEUiajKuFAWxshEzx42d2RCFPHQS4ITvWKKRsJD4GRWM5Fp0ZUzuRdxlWdnbs9pwnCQi6iwSlETJhdAQpga2D5tfPootxHGTga2Iz78LK5xZ2WXrzxUiYUniicrUu10fPT+a5kfhMEsrVcaJdrvoGLEcuc7OP4UW7GzzneuhM+qU4q/s5GmcE6lnJX5J3jKXNJ1h7ED+ovskV5SBArsxLJWfzFuUVKE9nSRYzvJYcIIZuEYDyLwNTTU4dZWfzFuSXCFumf4+l49dZNzpp+oI8Tvr7tyNXcqu8pN5S5Irxn0oQ7bNH/l8+3k/p7qX9HkIAd3Ys/Z912EXzn2o+M+ko5C5xN9+rk+u1IkMciY9c2jbzTTfwlV+Mm95CUvx7+M3xi5cTx5slNgRwuorovF9InEso4C37BwoEKIdMffLFsdckFXix92MqJFz4uEFRUx65f2pTyQ6UuD8eSJWFAUTSpqKXwoytdQV4i7clsdC2eA2Cl+wIHmlt4NeP7Attszu56HxG29Agm/BBEmlXE47zy4VCRKGAevhPy0ZAtjGmVBMs/IrlzPLxL7GeUIWiEemFjE7EzTWPfZGhELklV0ISuXjLB3ht1cDyQ5tIr2LKizkJTEOSGMBRQURrvILQSU/caNMKx3gpvktuUm9E+yiNhOIDaqV3+3ySzI60QpnA3tZ18HYFjTNVZjRPwJowqhT+YWgyY1hUhlnqqSDhdPMJxsJed1LJ5iAN5C7SUvJVXYh6Ci7mFWmB2WUsMVOcp/OEUR/J/TONqsJu0IKlV8IejC/NJeFtBCqNjfyWaMOSb3L2QEIe5PZ+8bcUYwCDJN2LoS5G8ua97eC6jsl9n9suU2Fe/HwggFIGCXxAJJKTgUj946vJsIQ3UP70iic0mG1ZIoW2e5G7omVPjztcn/Kdz5cfjLe8nE5K1S+lp96J6YW+51pkcNdjmWatoi78ksb6bwm8qyN1EbJ233q5hCAkVEO/olKqUOo7KbZFcvp282DtKnMLWkufbwcjVG8Ho6lV/kdwK9U99hfX9HVfa/wuDpIJyjidYKSq/xuwM/HV/AsBS2yEwro2RUmKXJ5bKFdqPyuxy+Or+QKVPfqXqJ31i995zl1ld1tsyvcOjEZBCH/mETJk8vxVH7w6Yfz2+FH4if0YIk+ZTqWt5nhtvEUj/dJQjjpKDcg07KZiBTH15ylORICmE/sKRICYu+NJwSUpE/Rb+wdBv6RuFAJKEUCMXYsokbsEceZXMoD+1SNtvinX6Ky0ndx8o2xppZRVn5R3FljHUWXKHa5ISg1OO4TS6acztAT/XgX87N8VOU3zi+OY6yx9jnIOBUqSaqftGjbwk6xi2NjNz8puMouij9jl5wnlZJoKsZdyGO6KY8/YtvGSsd+rcdIvJVfFP81+RWuFpyM+zp6B8uPQRPf2q780vPb5CfjMnXMBd0D8jFLtKnWKIjKL4r/nfiVfFyqgUH23rfxTewA4nyUX2UXxX8r7FJfjuIpsSvNFXy4EaOAC1f5pee3wS+5bn9MVe/XOyBwNn3i+PsDRzQKjAvAqL/4jY6S8A42wUJyAuGFIvxXGixmEwZ7MT6m/BgoCEAIV/LPJ5ci3Vje8vORs8iLZdyJIpK7ztIjXJ9U7sovO07DFSuDovIWaiMNPXE54ZW46YlJ5Zcdp+FK51lmSmiocIERL0tP2ZVZjtGr7JIw6bXYc9RvpBoiZzpWmg5Uvmv0auX3DvwS/RupCu/y10HSu4SRxwWrfV+I9QPyG19zM+IkzspPRH58fjIMy7NR+0yseyZeDvPGchKVXRomvRZ75kWdmnnL0OyCF2gQ5U+d3eQScdmy2Cu/d+M3oX/eOXb5zZB6FkJxEmI8gaMaBQBMWo28o6y6oopL7yQKgkkELxhKCEkaTxq/r5ZUAlNhiPxFTJkAxEInw4SgIoY0jyJrpcY5rz15gSM/f7an2s24aI/0VX4j/Aq5OrCRLtWkMeKl8cfXywQqv9vjV87p/k4WyF8nCHWe1n58ZSpOVHbeq8xu0i9OPLik2se4lVzctlbdOz6//Cx14dY9dZ3ety9o5Xd0fiFZTn0madaxy/vkl/tQdpLXc7HmD1XRyu5o7PZ5H4ao6t7741e44nUuvyM85Jh6KDWeyvGNAkmBs8spHCQVLyLyEIBgNRICEW0wkQnIGLD4PBcGeZzEUch77B+XT6ZZEsz4NBfn+ObEn7NQQnBoVNGnLEaFjOaXHyw/im+TNTnKr5Redot1QeHT9nV8ujmWVOVX5FfKQ+KXxh47mVA6wReESlaBUhzF6Cu7W2c3qTI03XValofYBCq/PA1x9o66V3LJix6lJ5hi2fLeSWXll6Uhzm6ZX/aSTnlOEflVfveOH4A6bsnz/iHZpS9YFexzBVf5fXh+JkRZ7/bp2Pi14xsFAMhGIK+4uJIo+7XVJsCRIiEcNgSRDUeRAEwLRgykZB2iOEDRf99xPIEcTz+6PuY35kYDyEmlNBA4Joc0HZXfu/KLTg9yoZPNlFwagA6KtPI7Pj9zdbyBNmEyE91efpVdmV2cZuJzLXZFc05huVVuXj1E+Sq/98kvZudOJD+kofe4yu82+MVHwRUNcCNLHXOSld+H5DfZboIRJYZU/w55Hl3ZHYNd+fEFEr2L74q/tXSt5R4mpsrvnfi5s9La0n16B8B/oWByKxbr3oNRQAimrAfKCyyPioJh//p3SBRFcRFZ4UgT9IdRBoqCUQoXR5WA3iMMkeVKHkfxiPxMCkleP9IVFyMzQEJQojkKeK+AVH63za/oUXThu6LhHqPUclK5L67KL+Th+Py8KSfqV8l77TXgjqRT2d0Wu9wz0LEueRoZxkquRz10UlL5hTy8J36Zfo3xG428mE7ldxx+4ajEL9ZMika0hzSklV/Iw+3ziy/x6CoOtj9uY0J3Po2vsgt5uF12GTf3Z0TvwiewwzYDdd6QH78PfsVqn9I7wPCj8DjDNKPjAI9iFCCkFYGoNOPXKJEZc+6Wh7hjpVSIRwhMqO8YaArCW5uCRxDGTCBy4dgf7wHCkdaBvCcSzlRdxt1IG5AZkfznQLkcZ+X3YfhlzqbBouEmcsu92PLM4638PiS/+F5BzxsEPD+dx1rZfSh2VDjk0N/a9wW8jy6b3Cu/D8wvCjrCz22+W/kV4r3j/PwnW8qzysrvdvlFfpMuzo9xCT/Yb6qDwCp/hFXZfQh2Jb0D/LiFQyHC0+aqe3eHXxw+uDI/TPBz7shfHyCXq0gIzDElYf1RHJbI/3MQPQSiGOAESH9d8iRZ5QL6NQRkTFhcGdOyRv6pcKX3F4UkP4odZ2cESvpQNzvhSEhTV/m9b355RznNL85b6iq/u8DPplXiN46usrur7AorQEqu8rvD/ET+x1zl92H5cYh14qly5Xef+Y3Rq+zuELtRV3XvY+V3HKMAxQCdJ6WFpOjMgyARwAmAFxDkcUcWoOg4jS+FE+crtujk+ZLxSpAHCUiWtxH/TGByP1GcyHHhSvx6kHviHGUwj6jyK6d1dH65735+BVf5ldO6D/wqu3Jad4XdqNKFy5Vf5Vf5vRu/HFnl99Hzq+zKad0Hdi65yu/+8rPuaCsFArjEP/EsQwyVrYi8sLmKj4QgkriCkMi47UVvrynBLQiIzJeMPxY6Kh9H4GUeEyGScYaMxtdzqYlcxN97chQiGG2nl5BUfkk9ZHm8C/xGIpL5rvwggt0xfpWdD/WRsIvyXflBBKv8Kr/sMPI6iN/+AW7ll9RDlse7y6+yS+ohy+PdZRflu/KDCHZv+AFHMwpQqNixQsiaBbLwXhCccETnooJDigGdqFQSJ/Fxmr88bZMvKRAhzyXBie6XaUaQKUo/upYKUhb+AJcFFJ+KYZfO9Ht5ld994Ve8QZSl8rvb/ErvNVd2UZp3mV3VvcoPqPxCpO+B3/5IKj9E+RZ33i1+te/L75dp3mV2I5FUfojyLe68B/yMO+JKAbcphDvPihwdhEo0lewqS1qKXLi4IkXNSYsLhXAyLRKCK/M3JtBEaXohHp9fEbZUpoMFQeZ1LIzIROofhIDz4OIg7CBKpVcx7bXKr/Kr/LIwIhO3wS+LG5WdzNtdZld1r/Lzuan83jM/VH73nF8WNyo7mbe7zK7q3sfJDzimUcCmnshEVDHh3PxQVqm5YIgbosoZq+RUMKTvlGBEYCPBGBe6KI2igCRxpfGUzsf8Ci5NQzoGvFQ4IZ7ahLLyK8STxpXGUzof8yu46/Lz/mNxVX53nt9oPJXdnWdXdU/EXflZv8oP+/wKrvJ7ePxG46ns7jy7qnsi7o+IH3DETxKmGcwrOboCEhVsfGWNpvDFgQ9GoCwkiWAJNClkkV+SthAGWY5IqGUaRaFIBCQ7F3FGQUqaVfAfdeGzFLIM7IWkfFfldz/4yTJnyVR+94Jf6iq7+8Ou6l7l5y5VfnHWK7/Kr/Z9ad4/HnZV9z4+fs4d9ZOEPgNpTUgw9mdUMBJBQOJN0bWk0tPKtOkUBUOKmBeWKcGQAiKFQaYlwgnPkL9UIArYS0KSXPcua2/jPDphOVy4RCyVXyF/lV/lJ46PwK+yi8twn9j5WCq/Qv4qv8pPHFd+lV8phsqukL+7z87HUvkV8ne3+R3VKOCtERnUWDBkjcVVmRcirejIv1Dx0a6SSXyphSj8lRdLghHnPRVwKbD5sYhn9Dyup3KRC4AzLyMtwUDk8sr+8tQyksqv8hvPYuWXuRvwG3OV3d1nV3Wv8qv8Kr/Kr+RV+74Q/8fHrurex8vvuHsKoJBfEn9k5ZYvIg1hzhIRk7eBglDKOBxkkmEoERB5DgtNCkzIjdxcwueHbiocBUUo+fn8H+quFbh4Z+WXHrt44zqp/Cq/3B0QuBCksrsn7PbcWfmlxy7euE4qv8ovd5XfR8+vEKSyuyfs9txZ+aXHLt64Tu4aP+A9vT7g3HRWKZIJin3zysoOKfd3XtLqIwVDxkAyTXlzfJ5fi4UnEwaK04ngHmgpojTQNR3Jb1YywEjKdmg8e65WfpVf5Ze7KX6HxlfZ3T12VfcqP3e18qv8Kr/c1b7v42RXde/j5Xd0o4B5l0G6uFEoZy4HnV7yJ8m5P/UWooK0jOUhOUiTj2CnwurPpKCV/FxWkthTQYmKl1fEXstRtEQk1iSy60qmlpCIaCq/yi+7FDITn1d+1t0Cv8ou9XNZufvsXJjKr/IrZaXym3CV34PnV9mlfi4rd5+dC1P53U9+RzcK7OVrPWjvdSqGp9RjJI6MhfwbfkBR5E4QcnBlS1YsGEKKIqGdFBKf1xsIRJzBOAYpLN76tV+9K7/Kr/Irl2HSHchvKsrK7m6zOyCa/X6VXyGvlV90XvlVftH9Hwe/qSgru7vN7oBo9vtVfoW8fnh+xzMKUHYwFiDxmq6BFIS8lSbTtBWSS4W86r0CfJlIIiRSMKI/QiCo4IcxoSiXfbpcBzoKjbDcgGI8/L4wlV+Ww8pvIs3K72B+ld39ZRddqvwqPxmk8ruRq/weDr/K7v6yiy5VfveSH46+UmAf6IlwUc2WAIiACbG0MuNKF0s7ZDppvIngpUKSCgb5dKUQjC0jSUpQEgoq5iq5b/SSNw+VlpLQATvApvdMX638Mlf5+ZCVXxzPYfwqu/vLbjrtJMaRi5Vf5Vf5pWlWfg+BX2V3f9lNp53EOHKx8vuQ/N7rRoO+NJTWPDwkWYFxBcdHsrJlJUrBIIornpL0SaZJIS8yZSkY7phkXkjc7/OVxJ/kKbovqp4y7dx7WulkkDgkRxfz9372xVn5VX42cOU37Q7kd7Cr7O4cu6p7lV/4W/mVXOXnkq38pG/t++43u6p7Hy+/IxoFaOJsz5VS4GIEqYRIQUhCpufZbUIUKYpJhMsjyQAXE8iPDxEMyiIru9FgnB5SdJFSr3Kse3JQ+ZmoK7/KL7lwCL/pGPekXtmZqKvuVX7JhcpP+JcjqfwqPxP1B+I3HeOe1Cs7E3XVvcovufBO/N73SoFJV67FLO8U+wukE7UkQ8rTiXRK5JEKibyfojijfBWOozgpPR8rQzHr425CGMEEpunNXq7nKr9wPlaGYtbHXeVXjuUj4nc7rrIL52NlKGZ93FXdK8dS+U0nVvmNlKGY9XFX+ZVj+Yj43Y6r7ML5WBmKWR93VffKsTwQfnfCKJBX9QisyXMRT3KJkoijyxHQgkBQjLvo9oIqC5rJ237BGBeG66qmaIgJIB7P13Vc5ZfmtfKL/Cs/626fX2WX5vX+sJO5qPwqP6DyG3eVX9E9YH6VXZrX+8NO5qLyu1v8jm4UYDC8rWTkZQbn7S8zg7N3L+zVEKgcmbk9Fohi0PzdjuhKQYiECEG+G5K+BeMBi78+BIUIZR6vbTW6kVKmNbrf4lf5VX5RqMpPXL+uy/lNucrubrOrulf5VX6VXxSy8hu7Kzqrfd/9Zld17+PldxyjAAEEBpESXEJlhPqRFSxuT3IsK4oonPv4ZCVLGETZeZQu+TvMMaUik2H3GfX5TjIRbXAR7orye9ixzIU8mJaKQ2SGAWitoVSqASGSyq/yi88rv6PwK0RQ2d0TdlX3okxUfpVf6iq/yk+62ve5qO45u6p7USY+Cn7WHccowIAGQMwRWCMoFIXLMydJx6JDkmIWPo6IE8xj+TyoNsu5m/SPZWY8kUmliA5oxL8U51h6YtsJRQDHwiyDVX7yb+UXTiu/W+WXhq3s7g+7qntF/8oPlV90UPkVi/PQ+dW+7/6yq7pX9L/X/Kw72koBBYLWGtQo2FzYMgoipXzJ68kCk3AlpiqvZmEo9Y/zOZb/4jklKadyXpZT4yVuIkKoD8THJWGK+VGcxIRw55eCxCo2gsK6fGPll0RR+VV+IvLb4lcKUtklUdxRdlX3RB4qv8qv8qv8Ri/Vvu9jYld1T+ThY+Fn3VGMAo8ePf7uL//Xf/urY8Rd3VHcz+RJ5XfvXOV3f11ld79d5Xe/XeV3v13ld39dZXe/XeV3v93PSp5HMQpcrdfP3759+9xYUSZMGgBSqxDAbrXDtV1ktQGSeKfuOsz7htm6244Inzx//p30eid+Y1bgA1zOz2dy4o7DvD9KdsA78uPoj8coru6jL2+32Sll8oA7Y++Pllfizs7OovPbZOe8p9x+dmOxVHa30nZ6UHHbGXGZjkFmp5TJA+4sZ+mjd0fs+2rb+R7ckfs+5z3lavt5c3fMvq/q3pHdRzxveBAMC/ycO4pR4O3FW/zv//E/3InalWJx3OzkPcrtpBciu3F8nO/1SkRgZhAR/v2///eRde/NxVv8h8qv8rsFV/lhkt9f/dVfRf6V3W2mV3XPucovuMovdZXfMVzlh9r37XX3k13VvULs95yfc0cxCjADPOgp0+lBrvCahbxyWF7eKQfXcSJPxMHnna2H4T0cKkA+LIp4CwpplOOSha7yCz63zM9Gec0oKr/97n7yy1xlF3zuOLuqe85Vflmy/qd45SBX+aHyO8jdT36Zq+yCzx1nV3XPuY+In3XH2Wjwlhz7n+DIXaHc9+64eD1Tsrrp+u6mQlGMy/7w8eus8rOu8nvPrvKr7Ky7h+xkUtJVfu/oKr8DXOUnk5Ku8ntHV/u+Pa6yk0lJV/m9o7sGvztpFPDvo5SkA5gyJd0hR6U/cOW51is0tj5iq88NRYUAYvISe4xa/Oj5XdcKWPl9AHeH+UHW7+26yi6N6njsqu6Nucqv8nNR1b7v/bs7zK/2fXvc/WBXdW/M3X9+xzMKjKRa9KaRqzcQgvyW1F4zFd81KpwnTyecBR1l4/oCk23kwcDBLxccUqWV34gj9398d+U3ckvld213L9kBB9fgx8wOuKf8qu6FBK7hXfnVvm/0ltp+XttVdiPuHrAD7im/B9J2HuiOuFKgNPm9HuhrpTQpSIeme438leQ4c4dCvwWBIUC+QcJj1rbonlRxkghR+X0ofgcpe+W35877wG8ksuzyXWd3jbAfDbuqe+N3Vn6HuMoPld91w340/EYiyy5XdqORVd2biL+2neV7pvgd0SiwH1gSnuxENtkcoRTvVJGvm+7tOo4OuQh96naJ84B7JzYepIk6cLtPghljtV35XZdfqszvxi9T9ui2yq/s7h+/kVsru3vAruqedJVf5edc5ff+3f3jN3JrZXcP2FXdk+7j4QccyShAhaPIhzIfc3RILUaF5ujPuwhF6a6DrTWlWIpgTYyjr4VkirHHapSGP/DrBH4JykhVHZWfTP+j4ldS5uvyO8DKh8rvoFg+BD/goHe+pvhVdri37GLvyq8UY+VX+ZlbKr88F8E9RH6VHe4tu9i78ivFeNf5OXeclQJEnjT5pQqHQ3OZ31/QPUL6DsJysztTi1E5xlwJxoSmLDCHGxWm63DUWkQh0dvmF8f0EfEbC38tfjmTyu867gPzg+y4ZNTlG4r8Kru7ww7j+ld1L3WVn8xD5fcB2k6XwcrvbvDDNfWvsru/7FwGK7+7we8mbad1R/36QAZxKixRJkLXgevqhLlQQU4+C+HzgKkbITEB3x2Wc14ShJLQjAtMGu5QYZHKRkRmOcn4nSPH4+mU+R16P3x57yW/g5X45vyAwLDyux/8TLxSB8090/wqu3dldxttJ5DUh+1oq+7dE91D2v+Zeyq/e8LvRm2nvbF4PBK68ns/7SfglzDXvm/k/nvNzuapeDyeRuUXhztO23novOHoewqMqD1lIZOjcZ9yPFTwCx60P6qpVEa9D4syhVcShEPCvbuyZ8tvJgrwPvjF8Y3Uyz3md2wjT+V3iHvf/GLjWxZaVgahWIjKzrn33XZOs4s62qp7B7g7rntj4ULgkTiikCPRVX7yeuV3E3eH2k+gMC65ZvsJMX6pfd8ed8f6PiTsxsKYgCP3ZyFHonvY/I7TdorAewpwPKOAswCNCEgIBwDkC30dhnQIdT+QI7iqHRPOm7kA4lALTzmsCzduKQIVpSOKmzkXlnIYAnhUf98LP3n/eIA7yG9UScfYmuu3wy9YbO8Ov4k7Hxy//XUu+RW7xMrOx3+b7KbxXZ9d1b37rXuVX+VX+blwe/iBRSnKeal933Vc7fsqPxfu7rSdwDFfH3CWGumVXI8u8DimeN64T9jK16cmn3sFLHKpMIR79k3GzT00EpZ9fOMWoNKEURoRDnnqHMJMTsg/GL9ymDvFj0op8Sjb2+UXZLzyi++5e/zK1tuYX8FVdsX73pVdfu80u5L+Vd2zR/dA9yq/1FV+WSYrP3y49rPgKrvifXePXdW9PJ7x++7euHM800fdU0BmZDKMkw6YDDtr05R1hOKfw9I+wEoydc3k6VBhiO6aMAbYMFySmDE72phA7F+K4q6bd0v2l+FY/FzYaX7J9TvJL1wfU9y8Dm/GL98TovLb7z4kv/TeXP+mXGX3Ptml18avV92vVCaDAAAgAElEQVS7o/w43VopaT/to5rKr/ITKaDyuw6/qcnK9drPKVfZ3W12Vff2ubs97pwqwxH3FKApbiEUWVMRA6QIjVLQbJa7aNbohwGAWfagSAEEKCNBpuAiGfYVzTDfiiRQbCwzfw+jWsgtDiiTdONWIHfd5Dcuh7/GbilOHr4sSNezKE0p17H50UH8VOCHO8ovY2T9UeLE9v/D/aWyp3tCVH773HvkVwzv8hBKkOtf7io7m6O9bWepg5tgV/R3aZkMHjpQqrq3z30AfpQ+pUraT1Fhld8+V/lVfiX/Uhlu2n7mrrKzObrz7Krujbv3Ne4Mad3WvA846usDLgMTtRlJNYOogdaMvu/x9u0F3rx9i9evX2LoB2PhsmCVUlZYCKQUFCkopdB1c7Rti67rsFjMsFgsMJvPoFQDcqJTnGTdtpvqAGWYMauNvQaJblyQcqUOjcCYshPtyd8d4+fB3SF+NzHmxOGDsgd/5wekTFMlr/xGC2aLt0f/mAoLdK7Jz/kn4fdZdB2/oqvsDmOHUqdaHiyVGJl0gH16FsdT285p9478pnSv6A8cxi/XvcqvWDBbvNviZ/wrP9wPfu+x/Sy6yu5esKu6VyyYLd77GncCt9524j28PlByZgmDEwwCaw3NgGLG5XqN3//ud3jx4gU0D6GQpfVGvqJcpRkrkmoU2qZF27b4/Ec/wZNnT9E1yqcdCYW973acy+O+JRpjiu3iSO8fMxIgsR5dbwBlNri4ftk/FD/G3eE3Zp0rKryd5BcbaxnWWzpjzmWjD1V+mbum/o01zNfhF/mXWY1bbAt1usdVdtfpVI1/yfJ+GDsgfjevtp3j7i7qnuRX0r3KL7gj8bs1/av8pt0t8JuYVN6UnxnTOJe2n9dzlV3t+2xWPk5+d6TvO+rXB1xmMsuMyBMB0IpwdbHGb7/6LX548QLDMNj7FEhRaFjsD4t4vHAgpKO1Rr/tASJ8+Xd/i5///A/xxRc/hQKDlBoViHe3IIXJ93RU1uo2dS0ThFQInELIdKWwxIYA6S/1bEwxKr/pcHlbNcYEAFHu5xVVxEUE8sYe58zkP13KJa4Wc1j5TYfL9e8W+FlW+/lBXC34VXaT4a7FTnAq+nlWzsgWj0OIkPAU16ruJQV7/7p3CL9x3av84oLdUf1DmWHllxbsHfkB06xKfnv4uTHNyNwu96vsJsNV3cPD4fcB+j7gPXx9oFjhEg4zNDN++P4HvHn1Clprew+DWQPabkpCoTJlgcjFlQBnkBEeIi9UZJefZHkQcZWbqpLLa3v6PZJ3cEKZxi4WVxZkfihYDkfcPeQ3pvRld1v8XDyU+O1jUuJReiWhbO3dK6eV3zXjmeJnw0TW+FviV8prZXfNeA7QvRF2sjMuW+BznlX37he/2nam7n7xS/0qv7szdtnPz8Rf5Ff7PluUu8qu6l7ubplftDzguH2f/yThHnckowB5YJOOAc3AsOvx8tX32O52YDYWH2YNpRSUgqkkBphCwZ0lSgqGtCSBANYa3ay1FZosoSgIFAgl5qNlzHyK5S1FuE+xpvKRK+ZhBoHEz1rhykJyT/ldy92cX1C2oIzhfpd5mUSJSc4tnWDGaSV+LtbKL/i8M7/S5D9Ek7bfcZgCPzad1BS/vByVXVTI1Gcfu7FO9brsorQSP1Tdy3yOpnuVX+WX+KHyy3yO3X4madzG2KX2ffD5KhYy9blD7KruCZ934UcIJSi0nfkrxjcbdxrm+/gZdxSjgIPnT1Ln1jQQwMzYbLa4vLjEbteDiKAHs8GEeSei8fGQFWYrEuYv2RpjIwwmKHlhadsuypjzt/Ljw4cwt1QJCIqa+oDHBMmE95siyjxx6USWIpyXJp+A8WNxQkn+fAr3md87u1iZSxviuOSyJ8nmambhjMOa8LkiJ5ofcQyNsky/8iu5Q/k5BuxvY4SKJRFXcXmX71bSTnTiniK/PG+VnSvqPt0rsANinYwmJGV2IUCpcy532FX3Su7D6F7ld1vuhvonw1Z+94/fddvPpK+7Ob88b5WdK+oN2k7EdT42BrkuuzruPMQdp++L5gi4+bgzn+KOl/2IGw1SUS4AVwlmKQMz4+pqi6vNFnrQYDBYG3xsWEMRgckIgoKCNR+ZqbN2qI2gKdVAKQVmRtMoY4EaNMC26impVJ/b2xASKRgU+7D1IQQesRwl945enAyXGQSsGDljgFuiYy7ShGx87PzK9esV1LVfo1Ga5oXBvh7J+17HuXiExCQdKGd5qfzejZ+obZEBSuMsPfUCidvL5/ut9YJf0VV2NrmJe0mw41wNbJ3HHWSZHXv28jyEiY18Vffumu5Vfh9Y/wDkG8dJVu6+6/Kzd1Z+WSnGy4br8xtpP92fm7efNqoxfkVX2dnkRu5N287xvu+22s467oxLUfZ5l74vjbe80rvE78bjzokiH80ooJTZ7T9LnE0H4qwXbduiHwaza2TTgjVD6wHaWoyurq68Bcnejq7r0LYtmqZB2zbo2g5t0wDQIEUYtIbWDKXIfvNyZweIygqI+XFgTMUF6xOJjO/6DXbc43J3ibfb19jyFgDjUfcYq9kJ5u0chAatakFQGBeawiUC2IsUReGJ48AMQPbCcmdQMzE1fkTyGoOcpZdCRMEyFfXakbvP/EK26WB+DTUgSSFvaZMzE5Y1hzRD5jwTT4jjuzkRCnMulwuFwnFkyHlI/IBdv31HfiV9JFsPALseKKms4kAmmmDEDbwPx268ExpgTnlG/HJX2YkCZ1WQs3N+kcsGS2V2QU0Du3w5X9W9Y+texvBA3av87ga/qO30GRMs7H18LX62n638Pkj7GVfhMfjlrrITBc6q4FB2Uu9EnmvbiWPwU7KwN2o7AYi5Y8kgsG/cGe45dNxZ5gcccU+BYJnJ05dLlwhA2zRYnZyYZSDM0Fob4dAajVLohyESkKZtoFQDIsIwMJh7aGYo0qCB0A/aAm9tesY6RXAdlq0oJxAuv0I4dv0Wg+7x1cVX+H77Lda7t2AM9jbCN1dfoWvmOO8e4fHsGU5n51g2SwAKXRNXq6yHKH1xdRyRFYt0CUAojQXuDAIQqwEo+i012uWE7zE/m6l34deqplwnqaIn9SctjgQCE2e3lOIK9ZnDqPxuwk8ldT3uXEOZhnJZ8R0IS3/BI/XL4t/DL3OVXVQXE26MXVpfPnTSELOr7puyq7p3a/zCoC1mJge98t3Zyu9u8ZPhCWwMo7KZGxnUVn7vl58ceVy3/QQhviNiUvu+D6Z7haGpzG7W96Hq3ofmF1+n+K+YN7i2M115EBsBKBOBm/Ez7jhGAbJLPxDegDB5CQ2Lf9LKjLZp0LYt3LsiLIQDAJq+t5tQWOFolBEOax0a+h7b7QDWPdq2MRkg5QUi7GwZ8uGsLERkPn8Bxk4PADS2wxav1q/w3fpf8H3/jYFEturJ3K9pwEZf4rvtGt9vv8VcLfCj5Rc47c6x4AUaajBvF6WqMU9+OShHpM9s4UkpSCCyvM/FQ0D0ropoNLgUjROUVNoqPyxaw2/WzOKKj4Y/ZuBDnL6aEfJIfplOudUOCm9VWDSaD5HfVg+gW+TXqVmmRrYKfEWq0FRm7WRmh0uuxU+jKfE7lF9lt4+dtKEadq7tJJThRV1iXPMc1+W7sau6dzN+ELVQrMIUZUTg9nSv8nu3tlOhtNIxq/CEIdvI5ESl8ns/+geEMUa5/QwepfEIbL05LxJha9/3gfq+GI/NqavBePIQxqrhxqp7R+Tnf+K2E1NtZ1T7sTtq22ndcTYahE00mcySe09JehOhadsAighQCopNlammgbJCYTahAFgDGhoKhFYpdPMZAGCztjGTCUs2fq2HOIMclm9rre1TeOBy+wbfXXyLF1dfY60voZX2JAnwu2DCCZft6AYasOZL/Ory79Giw7I9wXn3GI/nz/Bs+fzwinMSC7H4R0wa8/BW/U3mkC0LcQKQ3UTevyQclV/g93TxLK93yDhNfcrxD5h9Q5LVlzwXvGEV+yHzWx+B35P506he8vbXbnPrs27fWfPxH+huyC+9WtlJdk9cMRNXqjkWRyQmMKLGijxwY3ZV9w7TvfBEI64phWBQzSpxxIWJSsyq8vsQbSfEgNeNWWx/ONL3FX0rvw/efro+T/qWxp1FQ3nt++5A3xfqKPR9WfZvjV3VvQP7vgKHvN6S+Z69h0MOxm++RX7OHW+jQSo0PLYyXSUQjLW561pv3UnDK1JolHlrg63AuAG7EUAGYN4jabsWAEMDYNbeEmOsTSFebd8DZ80YwNgOW1zu3uAf3/wtduiNBamxAmAzmjWPvtMju/8FY7D/bforvNy9wO/Wv8ZPd3+Ep8tnWDYLdM18pJOET8CUTzwFIUDu7AvAri4x5fZVQE6AULTk5sLDVgBHhKPyM/xODL9Fs0CnZnk1gXw+beVHLa9pd6SfUXK3/wNgB8aV39H5tdSmsYBg3j+DknUZN8RpZ2pW5Ggf17vwK7rKrswuqTIz/mAfaWKay6uZIGrPXq669x51L60nAFocx9h8WV0OSn1n5feB204LkEKkSUVkt0Wu8ntP/NDKHs1WUxi7UD6LiEPbHzdm8ddq3/dB+j5FgHbsoDynUHtsyxH0MjXyVN17X/w6pI7IjDujdtPHn6bqeMa94FH44YhGAUqEg9NjUaCuS7JhAxKbJR7EZpFv2JuERBoMsN1lUjHk/g3MDLB5V8XXOpudKnd9j4vNW7zcfIfvt9/iki9AbahcOWnzEELK5i+NVa1ZWr7lDf7p4m/x1dUCq/YRHndP8HTxBKvmFF0jJpi2Lsx3QI3kc2iJQ8psy0zJrdEklGMrkFMoKTw2PqUoUpoIQeU3ym+uFli0q7xe/CA2KKhvv2S5vdZSxutgfgVZiBBUfqP8ZjT3/ACYMoqYKOTWp8ksUvf5ynkdym+qUa7sptnNm2VeZxG/MNiV9RVVEG6BXdW9gruO7oXRFxHZ99BDXk0/GA91477vhvzsE5PKr+Su2XYibjtdWo6j7P+I3JL0UMab8PNjnsqv4A5pPxc+P5BPdmXHB8CsuGKYMams0VDGm7afI8POyu4afR/5v6HOOI4upJ0kePNxJ8miZa7yO7ztVFD5/bKcgkFM+V3aTjLlG+EHHG1PAYIiZZZWOy+ZWdn5E9DNZtZiRPHyExKfpVCNmGiR/6cUzLsoegB4gIaG1sZK1Pc92q4z1wcNbk1FffntX+Pry9+B2wH+HR0ikKZkWQUZASAk/rZjc8LhOznANXsAjGC3hA1dYa0v8N3Vb0AXwKJf4X/86V/GkbmBK8NbgJw8d93MnjtBB4gaMCvwoME82N07e2AYoIcew7CD7nfQusewuwDrHaA34H6DYbcFLZZYnP4EZ48KrzdUfgfzc42Ea0xYNMTub9t1DqyxVjp+msF6MEzZHMPWhWHYg3WPfrcG9A7gDbi/wrC9AhYrzFc/wul5WOJZ+V2fHzOjcRtLsuv4ohyg6Vqvl2G5s6kPo3/2n9Yg+1frwXIc0O82AO8A3gL92vCcLTFffpYPjyq7A9j9L2AGNGsoUr4Td+zcxI9gliGy1b0w3zQcWWu/yZH5azc8sgxZa+x2G7DuAexAeoN+dwlqF+gWz7BcnSBzld8B/P7ShGUCGvGUy9dPSEepBvD82FWM6e9YIywtZWjbP+pBm79aY7frMWg2T4eGHrt+h6YBVosVTk5PK793bTup8cfBOUNP4Mfa8lMw9SH4gc1TPPNPYxgGDJbhdtd7lkPfo+93aDvCarHC6el55XfD9lMzA+Kd63jiF7KgXH2xfRJr8WoGmMnuFo/wT+qhBrY9Y9BArxW2g8Jmp7Fsr3DSxU9xK7vr9X1m3GK4hftDG0pEhp2FpcFgVgAp2C7PMATsOUNr+B38B83Ybhk9K+yGFtudZTe7wqP5DidnuWG+8rtO2wm4/TrS+Z6LWjXGKGLGIzZ+1RpeMPrHDAwantkwaPSD0bnNltFrhd3QYLtT2PUai/kGTxdbnD0KxonUHXdPAelcW0MISzOMFEORCtJDIbyrJbfMiWSlwzzpJiKQG9P3YsDnrD42FrdUg8H4lze/Q48NjJXJtHxEQAMFKLtRhSJ7rzbWFTihhJ8IhiLaAxKLWQmAAga9g9m90pSANXCxvYgsOwREmw9GdUmEfuihAOh+MAquNbabt+B+De4vMfRX6Hcb9NtLM4DlHgTzzgwhCDIAXyfD20tc9lss29RaVfkdws9NSCQn33hB6DcR+t7w437wg6Hd5gIYNuBhjWG3wdBvsdteQOsdoHuAh8CQbOMvQPSv32LYrrEofCih8juUX7xahsk+RQR7nkSEvh/QAGA7UGWtsdteAnoLHjbQ/QZDv8Nuewk9bI0BjgcQm3SVaO2djPTrlxg2F8YQVNldi93ADGJGo1RcaLevin2aQUQY9ADFZIw31gBnjGw9oLfQwxa632G3W5vjYWfb0AGEAUp+No/NQLZnxnbxGi1/gdRVfofwM++Flp5suHy6a7u+N598sgZVPWhsdls7aWQ7gRyw3W2h9eAZRSMsmwP3BGm3HbDbbqL2u/K7XtvpBueypilhCBC2u13Ebxg0Ntutnfxrz2/n+TE4Yef4wV67Wg/Y7Xqowispld9h7adJX5lyyQELhygBoO8HEBQ0mx3ftWZc7Ri9Jv9vGBibXW8mI2aICs0EMIH901Az7oHW2JDCBW0w6JhzZXdg3wfx6T9baLOcnf04n2DaTmIFzcpOGBnrncZuUNjpBv1A6AfGZtNj0MCgCZo7MCuYVBrAjoOYjdH8ajfD23WPH1Pyvn7ldxC//EGGi4KNEcTPAQm7XQ8wYWAyBpuBcbE1/La9wm4g9D1juxus3ilotMbYbqyvtiy27WSN7YXG+qrHT1TOz7mjfZKQjCkHgBMCVwXuiY6REg/Zo7fOC5MT8iBVysxyrT8AUlCNE0jb4BH8P4ChhwHOwrMbttA8AIpN3ZHJL3UAaXuvIjApO3BwHZVN104mfEZFi+qyptk87WXuwawwDCZfDRq/HEZOJJ2pNYgE/AYX26stdhcvwduX0P0bDNsL8G5j0vLv0JCFybmi2fidFZgANAQMV29w+fJXld878DP1Izo3a9yRBp/N1Qa7ty/Bu1fg4S309hLoN4axeAeqAdC4vJCteJsfthMhZ49siDGsX2H98teV3w34MTPIrhBweQTHExL3d7teY3fxCrR7DdYX0Ls1sNuYmmSzYy5g9pP1zz2TiQkjMDSsNfr1S+hhW9ldk50f0IpJnRgPhXIzY7O+Qn/xCtS/AfQaelgD2ysQmacKmsMSQ8UxP98au2M3IINGv/4BV8n4p/K7Br9G+VLLJ0HJnATbbY+r9QZ62KHXO/T9DnqwYd1u1YkxPZhP476VXD4B9MOAN29eVX43bDsjg7iIzfR/QRc3mx6b9RUGvUM/7NDvdmawHfFDyAfZ+LzqibaUzVJ2Y6jt8frNm8rvpvoHM7H0Oging4DXINZYbzReXQ5YD62ZTPYErTuAyBtZzSRMhViY82PWginhsu/QD7HeVnaHsXOf5TN1xCH/vt8z/usrxvcXA9Z9h21vnvYzFiAiaM3WgBom0KHyADcZZ7MkBK7nAxq83S7wzaseuav8Dmk7oci3aT42m0fXfgKMyyvG9281LvoO253hB5qDSPmHiyZ7gZuJi30daSsznh81uNjO8fXL924UcKAkbjfoNr7uqZwJRlGw0AnIuMydcgmJu2b6pwZt0xhrsx6gyH6+wuahH8K3Jplhl2Mw3MRLMUMrgmpssoMGkTbLG8mIrrZ5IyLAKqbJWejQGBqD7qF1DwIwDGSWsGhtRKsxg1lp6ZNNoxcMf5Hx5sXvsH7xj5i3Gl2r0CoCtcpOKAl+I8JsSBUaDiHaABmrIGmNqzc/VH434OeXnLtqZth0GLANitPVN999havv/z8sOkbXGX5oQiPp7UKCWfCwg15ySTmmAxQYV28rvxvxaxrT/nrlI9+ZeC82cb/59jfYvPwNljOg6xQ6ReDGWaUtE9kou3qX/BwNW2960OajNDrvXCu7/W1nEz0pgS+TeWICH/Obb3+N7avfYjVTmM0UOqXAjXnipRTbsOSbzkgH2SyFNeMSNzgx7BowNhdV927Gzw5qozL6aHydMGu8+O47XFy8wXw+R9e1aFRj3iG1T1YUYI3nYmDk1U+s3rK6bgbEGgTGxfqq8rtp2wk3cQwNn4vTxEWG37ff4HJ9ifl8Zvg1bXiVgOwXKJJBLfxEwA5qwT49IoIeehAz1leV3034kVJQsEu92dQtKdd+sq8DBvCrf7nE67XCbNGh7WZQqgPc61VMJj4wzLZ3ZFbF+ToD3Mqd/5+9N+mVbUnWhD5zX01E7O6cc/su78vMB0cloYISTBgwQDBD1AAJxAQkSgyRGDGqGVOEGIDEhAHiJyA95kjMqh6ihJJ8p/Re5svM2717bneavXfEWsvdGJiZu68mYu9zM28hsde69+yIWI0vd/vcGjc3Nydyeopk2QJk9nPF7s2wc8kZzkUbs10IpREz47df3uLFTYN6s0NVt3C+liUDUbLrExyIuOBh0v91EGnnFTsiVoesw4vbefK8Fb+78au8Tt2S/REyjChGQGTGb7+8wYubFnVbw1cNfFVDlgwIfk6yY0s9Rks2KNMSOdYitQUOr/bzKDk7fmKngEvET16jNEAVZZAVi3WbsgwzEuRPCuMowi+I1ONJgK8quKFHJJItLVwuLwyF8W3vK5iBIyMMATESnBchyWDEMORwFS0vAnk91kQARg4QT5nTECrOhgsXTQVQrlEuZztsEG/nfvj2M9D+NVzjQexBVW4bKSNnb1BxpLLTLekZl9rDWDpW/O7GD/Y1ywapi87oW/VefPcZ6HANxx6ECqgcfBIsKrCAInSoKBu57NRaEmXsHVlrVvzeED9XKNYJ5ZSXSvy+gOtew3ENhwpUOVjTxnpNnp2oRCt1hl9FU4qv2N0Lu9GygfJg/T+HEL747gv4/hoetRi0lUNpthjvJeXJuSweoabEVGPKeYCWrNoVv3viN+a9cubL8AOA77//VmarIJhzVRjCiUBstqdBl9ta6MDycERw1VIfWvG7Cz9a4L05flK37198X9g7QFVBZ/xg7CTXMP2Cgr4YAUhKO/YLa+ew4ne37qMU6VE65Izomf8cvn95wDA0iAhoEeF9SPdkAwaAJclGWaeimZYshAgMEqfu9N0rdndj57xSmCbGRaaJ5V75/mWPfqgQMYC5hq+CUXDMd4SR3svNncpOAsjBOyC6lfd+DH5jS7CgK4oxn+m+Fz36UCHwgKb1cN6N7VbCpD3WTvljk1aj1yh+vLQbkB4/iVOAGegGqFdJ60IEk+HW+BhZkzkNyDMHiXrSDkeAZaFMHYRS5yiB887D+xo2GyH/HJwjdF2f4JgBpB12sFk7xZwcwVXyPHkqPh2gsxUJAFOETGD2WSLGfB+BwIHh2SeHQHYMcPKKs1bSmKg73ACHA8IAxE0D5hqbTZ3akDvfWKMa4xHs/SUDajviNHx5xe8++GUis96qWMKwk/MOhMP+BjjsEXpCjA02TQO/EU9rWooAJFGtogYEm4lGGuQkugIgT0CYhwGt+N0PPy74La1lNYNHH3ek+HW3CKEDxxabVvjPZplNgYkCpHE5WMBP6zKZ7F6xuyd2jmydI9L7kwGTsGM457Df38B1t5rrocWmbbDZNLAQRjNlswItBzWKmfG1kRjSL2RbyhW/N8VPbdixvDyCX3c4YBgihhAQwgZt2yp+IjvJAVzORDELDzLnNoIn4w9B3S04VFf87ik7jdalHWMIakWdc+i7DmEIGAZJutq0woPWAtBU93HCAZwRtPsUEeFfXvH7cfJTF0kt8F2iI1h1X49DF1BHKH4btG2TaJYiDDRJa+bncq/RTPtE4gWHwIrdfWVnoatK3ZTsDtFP3WHAvrtFFyT3StNu0G7aTCPSsgtRmUlpJ4FyFpojdHA+N15W/O4jO9XetPfbdyWg8Q85Qt8H7Ls93MAIMaBpWrSbvHNI8kuUrKS/WdtJxBiNHJhALi90XTp+EqfAEBmffb3Hvgc4RjgCag9sG8Ju43C+c5o5MiKGgBAk5MLW5pYdJDeH1ENjJ2ksV1g8RxLaph4158S74pwaGSTJTYqBnJRXshUXQovBQQbreSgNADF7OpNRCl1/YwXlDkE6UCAWICqqUt1Tk9VQGc1OaYdhZllDApakZ84DEYVHTAYmEVaf8vnyJXZ/pu2CbF7xuyd+xv9ZsSLR385H6P6oISKQJK3rfUDLVfJ0ysOElB0itU9blKTZGD8w0oz1it+b4YfyNqOvfjflZQOLwAwKjOAi+mGA9w4t15MQdtKdJUwxZ4wKJh/jt3Cs2N0fu1Ipzx06ls1cktP5IImXfOWxYZbMvskgAWLUGQLwJPgm0zJLUTGkVtn5x+IHpEFlwq84x4wQoySLDA5hGBAqD3Ajuk8nTYgkgza0TZndlvnMsHQLwnPF7574MY9wyrpvjF8MASFGuBAwhAE+VIn2lCAjRORs9HP8juC44vdH2S7T95aOAWYGu4gYBwzRg4YBw9DBeYe2rSVZWhHxI8ubtX3JVmGUVCwPXri0Ync3diPUpnxX4BhBiDFgiATorh3Oe7TcyOBW4TGUeNQPphw3tjtZB5bTY8XvPvgRgJjrkngGRZkMF4EYA0J04DBg6Ds45wr8KFXMVoBYHyi/j2lpVRQnx7HjJ3EKdD3wh+cECSOxMCXAOUZbMT59d8DFTtZmBlUaRizDS6mkz466iBIcGDWXgHKtflo7RS4BRKWgso5YWnsYG3qpAzEER73GJAM9Ik6dyJh0qsdSp2JdP8e2jQ+N3mcd1fppnvmntAYvMjAMEc4N6AePuqrgvUtC3s1fb28Z0cnksXNOMm+u+P0I/PL7ysemhzE5VHgYfsNQoa4A533ZKvEwFsycdSdlZatCxxFQLQjnFT/cid/ktWyqYXgAACAASURBVBNFWHxLQl+zZw8RvZeZL6owyk1gRm4uTKM9THBjvDbW0bi9K3b3w+7koXQ2pRijJHeMgTH0Eb0b0DcBNQGV9xIuWIJW1GHMd0V9SGZiVt77E+Jn4cXJwIU6dmJy8AxDgOsH9MOgus9rpIDwmfkFzEmbyDSSz8Wsk1/x+1GyU1+UlzwWFTHDdoofR8HP9RiGGnVVgbyXnFvMGf/UgII2lgC2sGaIXNrOcsXvx9ieC7ROP+VEVKec7DwgOs/5XrZ8S/znFHNKT5Yzk4UZm2lADjKFNVZ+K3b3wW75SLaHlsEY814I4hgYhh5VVYvd6UiroHsU8rg80HRZK8EiBNzKe/hxslP5o2jn7GCIk9QSIXNU/uvRK35id5KqzJwseVwi5QKLhhKQkmwvHT+JUyAyYwhCPE8EQGZWhoExDIyvfojYbipwvEnZZ0mVgwgQC+kclztdS0iErOBBusWYCD0nF7XTEOq6TjTyziP1x+nByL2TMTLyWZ8pDY/0WMZl9Dm9D0RwSbGW1xRgzbRZbi/CcZDBIglDDX1APwRtu2zNlUsrsixbZ8b4NTYwqb1TfMbHil/+PImfygIqJLIlEEkBrSQeP1KnTjD8evGSEpAcO5bRxPDTx5P8SEKSZGaz8g7VwtYiK35342e0zQVko2ZGzzDARYhTJ0RQP6Dve9jaPO/VvEmV1VcZsWyQYvQAAZEV9zERVuzy51HeQ84DIJUcGzSlxo/DABdZ6Rrh+gFd3wMQZ4E342bkjOPUvlQSZdOCmeC98N/0WPHLn3fpvmxrUnrnjJ4hgHXWZAgO1Pfo+z49550z02xMq0RYJF4npS0iZaN4+r4Vv/R5VHYWbUp8mG4d2zUhRsUvyjICGhQ/Qk2UZy3TM8LdbHJSbaKUCYQAigRfEbAQwrzilz/vwq88P25wxnAYAhAA9kEHlg7D0BtDwUHanHaR4NwwGXRmnZj4PiqtJjRYscufp2VnwS3Mx1gPQ7CBZcAQAkidAkyEigjeCwZ5optmMpmUrslMYaHP0qByxS9/nuI9Sn+Enjx6OLczRIso0Gi5YcAwDIBuN+i9yM6IcZ9INiZsGtHsTnkfnFuM9LDjp0k0qETJRlQsiMC4uWXsDxGtRaKVPXnsMkrGmH6FSiPFfYKudhSnjdY7UdctdtttAqqiGh1uc2WLiqe+MWmPdZQc2m3k5nTdbBvrQKl09SRZll1KYeOUm0zFu7ItA5BkS3ZKh8jAECO6foAD4OBBFadwPGixZTfJfJ4uIEaCdwS/xCErfnfjB1LDJRsz6YG0jodB5MAhSFtYPI19iNh3gz7FAFzCz0hUIsd6zvBjFnvIe8Kiv2/F7x78l3lP6s6Z6YpZKyKSbL1aWoyMfoi4PfRSB2aAFT8q6pHqwGP8rGQS/ltq64pdUfoCdiMFRwwzRBk8MowIMph0DEkoFCI6R7jd94IpV6jZw/QjcVagZSgsFdF6Crfw3sKgZMXvfrqPLQO13WP3E2VDV3WfFSp72wccDl02uupKBh/aFRKPUS4XyMu0CACcJpWathVY8XsT2Yli9w5w2gUiReUm2ekSfkMY0HVdwqKqKxnbK+5EyNtzAbKGGToAML3oGN6V6dLG7V3xK0o/qfs4OdBSicSFj1UzqDOBeUCMDiEQum6vxRIqT0DCwmjDWg+pHJnfR3mSvCQ7m9Fwxe5e2BmNAMC2LQdrFCLl7zHKLDNiAMcBIQBdv0cNgHT0IFvwkepSoxUnLOwcJd52OhZZee+Pk535JWbLlBGlovusjChLCAgY+r3SQf85cRAkWWwyUitHQJKdAEAcNB/Sv2CngISuMMgxQnYHJYrtu4hvXjI+fccjkoQmWZ+wbI2kWr7sANlTRMX3/F7nHKqqTp2YmVH5Bu+9+z7OL840kR+wrbe46V/O6jw7tPPnd2SqS8cTngOQOl7qyEh8BhWT6R2VqyeCGYVjQJkPlDoHc4SvbG9K2U4w7AMOQ8QuepyhxqbxcP5INuzU8aQOzED0NaqKwN283St+d+MHSjquJPS4vVoHBsNXklxS0wtguA3Y9wG71uN8U2Nb4seliDIji9MlJiCiRu0B7lf8hC5vyH9WWiazCmWVzNpyIQfD14JfzwAC0N0E3HYRu82Ai43wX+Vi4rFEt4LuVk8GEKhGVc1dOit295OdaV3glP8K/KxAV3swgJ6BvmccwoCmC9i1Ay62FbaNh3eZxtmOYaSFhYXsBBpU3gPDQqKzFb+7ZScIRDyWnUAaoIwaBoKvvBhNMWAYZD1q33kMmwa77RZN28B5kvVzMMNKraNi5pKNN0m2tIzDfDvQFb/78J/eZ4asSbwSu8KoF/wgobAD4+YmoOs6bDYNttiibWoJR/Yo+Fnp7qb4AdA1xGFYSLK74vcGuq9IyKnGjDlFUdzj6woEB+YBoe+xD9foqwZ1e4Z2c4662QKuUhKXui5XkvUEM8tElufRvSt298MOCTeFTZ8350DJgwSMsItDh8P1NYaqwdCeY7O9FOx8XTgaKNfLimJIvitmgIIm25s3e8XvvraLXcn3kNksAHRNHACRnZIUMILDHoebG/RVi7A5w4YEPyozOUJpaA4/Pc+Gn4vihC304vT46SIFYgScU+VcCACW0LB+iHCuBqOH9w6+qhFCD9K9U5P3cqETTI8cgkvJKynlRGx3W1xdXcJ5hzhIrId3lcFsQ62iLGROGL1k9tbZr9TKhX6WSMNA7WuM3zA2ktI1KmknzoGozBMDQIjoPRBqB2aCo5iYm0jWvXovuQciS3hPjBExMvZdAGkYyrySK37HjlP4gfO5LOikzkSS7ITN7mUGBQnxCjEgMsFzBLNGhZBsm+c1YUpkJOxijOi7ATWWs8Cu+B2vq+GXeWteRvpOGHnljYc0gg5DkHC5Qfdshq7/8iDJYEsaHgsNr9Qw9hgZXT+g5oU4jxW7o0fCbqk4zpil72ZxKP2j/iYYdhFDiBI1BQYQdbsuUsPAgb1E94hDT2TwMPSK3QJhV/yOHkl2EiCRAmUI6bgwIpJBpNLAnGkUACbZFiqGiBhlKyhip2NI4T2bSRFyity0UWUIA2qboZ5VcsXv2JH5L7/Dvo0+iXS5HBsRYLPGkQnEhEhBl4YEMFdiGjPLWmAy/CSRnfGfyE/RlzVquIWlcyt+x+uadd/kvoVXyv2caMCIGrUTQWBQIHDoEOMA5gGyhpyAIsSd9KV5ZwKxT0MMaGhBfq7YHT2mdqe9av6IKDiOEeaYY2i0AAVEMCgSOHaIsQejAdhDQtI10z4o863mJQDLUoQQIypfFbQrK7nid+wobZes75bfR6y5jkn+MUcwBzgEcboEAocGHAbBRXnJIiVcGZFgiR0jAxwQAsPTEfz0+MkiBaQyARobZu0VAjLQB0aEB9GAynu0dYvucK3PaJhIIhyyxsH4ZwmGfWcArOU8efwEzaYRxWKNJt0aoqw0leUXV2jsBZ9UQ28fh5+kp8tiiqbUvpE2mme2rEuhXdMVls8Iy9TJcCnZhRKUZQsgC2sR4csYQo/DoVeaaAgMGP3gQJ5RxUmnxIrfffEDj/aKSDdaRHOGUgclYBk8ar1ohh+B4OVnjOhjQNcNKOVrmmkeHLq+Q7UQHLLit1BM0ZTaN+l1S71fDFvBzWop5hDr+i3O5ZkiiywhyeTAEZKQMGoCHRucIDv+QhD8ph73FbuFYoqmLGI3agjnh2JO7Cg7e2gyImTes8GGNIsQAqOPQWQlUNyn9xLA0aPre9QL3vYVv4ViiqbUvhk3pLyJ5zxpsx6pcSY+Sc4JfhHOSwhlVCOIoyBuzxv/AeJM6IcObmlLuxW/eTFFU2rfJKfOTHoWGGb7xt7Bea9yQh7URAY4wpMMJCJHcHL2mJrl3AVI8ir1fQeavh8rfvfjvwl2czJq0RrFqtgBESBdzkMmE4XXvGMETYgmCe5iWg4i/MeJSMQRYYiYKr8Vu4ViiqaUdiePbxshShB7RUhvi94DGAHQ7BzaWIAjnGfJdB8YfW/YjetoWHEIGGhhFxms+N1PdhbROXajGpxkVCzGFjoYgCT2CJJcVSeGdUSIygEhMkIYEIeYlrsK/kIYLvBjMCpamFwxOh298kce4hWk5L1HaRgTp1m2imQwe3F1ge5wi9vuBnEIMI3gnEP7UYPXwwt0OCAiACQeZeccamqw9Ttc4BFefPZKiKo0r73HoyeP4JyThCkqyBz5pJzKbSkAZITNy6aKqWjYQlvz59JgY9yhCI1vBdfMAeP+gXHHz4OKopoEOGLockopguWfZR1NZWknorSDDMFXDn0YwGF5bcmK3934CYYYJ3uZvkAryja9bDgTJwwFOwZHpwlYYppZscrbozZIcZVDHwIQV/x+DH6LN5blaSPEMLJZEPWiQ2Y50+4BDJnFCjIwSUYQSGcjhUkttJ1ZsvcOKqBX7H4EdgulmMMsGTDMmlCHIPvXKXbJpJJIjRgZQ9AGFjQQXqNpJUCOMMSYthqa12bFD5Pz9gKRnRolYLxjcFj97dkovDee1dBZ5OINrFtcSTSHOHmAImErtK36DnISujrvR1biih8m5+0FJX5HC7OfSXZaPSwst2Qm0Xdms+SZSePhSfvUeT6EAL+0Hy9W/O7Eb6mUQmams6zbdhaFyHpyyy6vg5MYEEKv4xce4YfEdoVMBiGE+dIduX3FDpPz9gKzO80xUN48orH+cc7wZIgj3LSf7VMveQd4GJT3IE6EaSXsKzNATrYTPJKobsXvHvgdMzwngDqSSWBHpT5TW4YyfhiGFIHKRb/gUbGspDXd9y860WA6VOCrMoB1DjWaYwTgpbNdXl6grSvs9wfc3N7i9vYWZx9s8Ncvfo24HyQ8xImR7RwhEMlenOixH67xXXiO9z/5GN3nUbbaqzwuzi6w2bToh5C8zdGShh01CPKl/D3NOUzOIuFrMM+gZiB5lNQb1PhGGQbg5DkqH4AOLiyE0jpCnvka+a4I2j7bhgMoN9uOE4OLtcKRGWGpb6743Ylfmf10lNQqSQr5EmMsBhc2ijQhwqOmyPJlykK/qGeJnQksXvH74/Czp5IyLcW80ipGNWxViOYFY8ijGXlSvPM25LSyqSiVEwZEyqFH8VuxO4pdySM8fcqMT+M9w26sohN2Wr4U4wCOSP5/zn0i8R8XaK689yN5D6nExXoUstO5nCQwGV80NngiuNjrGskItOuZ7/QELWe5nlZ+xQ+ndd/IdslPl/iJU2e5cDZ8WBxz8tOis1RuMmfceFxvPgngit9d+CUnanF7+lQHjSNKy4+F9zgXnejMQIxJ5xmC8voRIxZXTqi+FbuTuo/Ao+cYuQD7HmOEd9CINx5XvdBlLFuDpPcTkJa4Tp0M5e+48t6Pxs9RQeMSj0JxRY5wDnCsuk1fX9ZGQRQMQdNhwwjD1Bq9Jy5Eydnx00UK8ILXohAKQbf3anRZrXMO290W290WVajw7Xdf4fMffguqBskObc4RR8jT46Y+CK4Gvu4/Q/N2i3fOPsAnm19gu91IR3HaGYeAYRgQQkRKWpEMDC46zKTnsN03ToAxveVOmoBBcKidCmYHOKaUtddsXKMdMyMG3c+VkLw7pH/E+1dkIuVxG0zop9ARY84RHkfquuK3cM8YP0cO7BgUbYBgdC4FYMiDGNLQLRCIZD1kaoPRO1m8lLAbGUcjDBfF0agOK37lPVP+IzgmxKlxWwjiGPO6ZiGCfCcKKVok0TvG4kSejx5jZ/qCjxq1K3ZL90x5T+Smhdoljiholw2BHOEhP6fYRcToNKeZ3Jf1aR782zlzzPGRmq/4Ld0z133EDkQRGbep7Cz2jzIVaEgWAMq9tiTEzDRKGIzkZmE1rfgV7bvjGOMn9HdOI+Cghj5KA5wRQsh1TYf9prHs5GI5HfKyran9YjU5VecVv6V7luVnynauBDYeFDpFEAG26Wdy5qVIHdIBBsOZ7VK0opTJqXz7b9V9uX13HDPsnORPIYoj2iT5qdiBtO3MObLH5KbxXgTg2W4cVchsF8MlWy+Uzs/quuK3cM+C7oMDWRLO0sYvx306xnNgoMSvsGUi26JIqb/l6TGHABeYZp47LT9/skSDSMKlEBQEWMxgCIRXNwPONzVi7FE3Ff7w7d/ity9+gz1fgzyDapIaEjR5ELSTGLCU7HUiAtVAQI8v4+/w+cu/RfNti3/n6b8PXyF5RvvbDodhrwqNtYyinuVHoj+NBGJxmzxpPGI/zC7Jd8g3Znjy2LY7EBG8edwDIUTZD13W9si/oQ/our0wB3sBXF/haIBzUobxioT+mJGcGXKEQVEniSpY6Owrfnfi54jAHiDyCEQAAoYhb5s1DAFhEPzEAPY5OzYAR+oJHOGXuLmQuUl6oSC/9IEi8mDF783xS1vEBAAhIgRJZBUNvxDQ7fcS1aOpsS26wFFUPUVpGUFSooUTYNqocruuRTWzYnc3do7SDGQgWWNs2IUQENQAOOxvc54OYAG7Mrl5aRCXyn4iO4llGcgRo2jF7x74iQIDQfALITsBRHYOGIaA/X6viTqlLHuvbBFJOalgegeSEcSm94oEL3KfOBoYY3xW/O6PnzkEzHYIAQACQijxG7C/vc32RaI/CqeC0+0ki6gAk53Ia2+JclWk2Zade8XvR+HnZEJDyo4IAYhxQIySBDAMov9ub/fKZ1KWTUAxVP46S3Ssc9eFo5uLmiYThQi26fvihMaK3T2wc8kBQwEIMYIHibQxu2UYBuz3B8FOB5RpsJgSeXpZX0BaWeYsMxXD0smao4IiIo7MMq/43Rs/Io16CEHGftFsl4B+GHDYHwDFjxFhy9+YhPec8h6RS68U2ZnraXmxRtYMAYhx2fbU4/jCgj/BUQ5sbKaGVMAwM4aoPhRH+PzbP+C33/8Gt/E12EVN6lWMhgAFibJSSZ1G4XUQBvCAq4FDfYvPvv89nHdw3qGqPLz3GM0QFIPm0fiKZl8WdRBNLxResvF90rG8q9BUTXrCkYTFOCfgxRgxDAO6Q4f9/ha3tzf5HZQ7mb117omftm1a2YxD+nnkWPEr75vjRxCjVLySwkqGX99N8bP3lJuRZFkyWidrBpB+L+tIWKjzkWPFr7xvAT8dWHjnMv+pUdt3Hfa3gl8GYaLoCMkhkHDh3LrFYeOoOccxXLGb0GkJO8u0W2LXyz7oGTt9RwlSwq5Q+kvHgt2acTh9rPiV943xA3L9DUNmIISIPuG3x+3t7aicsmijQ668Gj/HnDXjB++Unit+5X1T/svtMNnJLLqv73scDgfhv/1+VEpBUsGOUukL1Ruhbf9nu2XW6MnTK37FfUv4kdqdY/yGfsDh0OFW8bMh/hgjSvQo6TIHYV751HcWbi+bUdyNFbtlu8U5J84ddaj2g8jO29s9bm9tP/siSqB4r9iblq+F8uA23TVtFCU87pKeK37lfcv4ZdlZjhsCDqb79geYTjPaASh4zhW6jDAlGUq7puBT491Tx0/oFBh7i0oLyzxSjuS7r2r87fe/wXV8jYggs3UoQkGB1C/HzRGC2IwB0qe0zNWE3zz/Fb67/VYYyBN87dXGz4RMv4vunjGe+DS5aM1RGyRfKIbvIDhUrkZd5a0pSJnDO/EJhRDQdx0OhwMOhwO6Qyc1mHRW1aepjFOClorPcX84xeArfvn2BfxojJ+TrC4T/PboDofkSUxtZ87Pm4E0Jst4QJLoNmbq0wJ6xS/ffgI/U65ehXOQPbQPh7386w65rVOYSvxO6pA5UuUM2mL9V+zuiZ3IzsR7fYfucMA+8R4jDxoL5Zn4F8uyk/Mjcx16Wqmu+N2l+1hpUOBnuq/vcdir7Ow6KcF0HMp3ZiPRdOHyURiUmZQ4AmzR0BW/Y/hZOC0RQE62zS3xE/47oOs6VX1l3fLOLaVzYUQdTipzRK/ExzRt8UIbVvxO254YOwYMv65Tp85+j67rYaan7fZhJ8q8EhjhRxglISjPL/5bqP+K3R3Yme4z3oPanRIhsD8ccOiHyTtybUbYjfCZHhMZacoSxrNH2rDidy/8DEOw7qjSie4T2dln0yVRNONnjgGrv901rdbUjZPHi8dtmJ/MKWBrW6QSBQpggB2aGtjUEv7w4vULvIqvwKTZuKkUQvkwr0sywpM80g7iSZKiOoA8QJ5w46/x++/+BqxpL+q6AvUeaWs4FpJxAXpuRPGlrI5hz9ZBePQMl+dZOyFLhWvXoPJ+xIuyzkQ9fjZTOXTohx7D0Of3juQoZx6dMc38SIbQqIMcN4xW/O7AL9EQcCgiPQy/vkOvYZTJQzmitZwzWTYzgDB5RGmVhIQ9dAT4Fb/745eFs+SAGPoefd8Lfn1fIEL5JckwPmKgciLRhIL57DGjdsXuDXjPsAM0UqBH1/cY+h7DMIzuHdMjY2/XpmGPI+qNPO2mWBduxYrfffAr626DksR7g/BeCCEZkqXes+dL43YkWRcNtkQw+3VUZ6743ZP/QBrpWPDfMCS9N4QwJUOqWpKdhVIrqzI2YkeElN+r7vujbM+k94hkO09GWvrRdcJ//ZDzHpUDi0wRTWxtV0btoNGdaSCiPDjl2RW7+2Jnbcl2C0MGlWa3iO6TTP6LJj5RUc5kCDjhVyGT4UXp98p7fzx+pe4LQSOM+wFDPyT8DK6CijD+yYQo626abXotn///zClAQJLyKbGIArFpgHevapzvajAd8PzFl2CSLSeSx6c4Eu1H7dWGpXUmSm9PgKeUoILriOc3n+OrV19I8g0GzppzcFDvUlF+TpCRyb9sYMgF6SC54+THuWgzYHtQOnjs6jNUPqdysKZKLg1K72ZdI2TJsjJLjpkmGTdWUOrA04oXw5ETHWJUrxW/k/iVtM+DBtayBb8gCy4XmLdQtlSUNcH2GDZH21U+u+J3B356niyUnNL7Db8Yg5xaUISFbp0oQWvDEWzuYL8Vu/tiR8jrmzPdOUYEXaOXsBsRhgvMTDLOabYEE1kTTxwrfqfxGzWJSENBLQmr8V48nTE6yVu5YW5KHjmmdtKxW1b8TtsulA1zG1waczCLkZvwmxGjaPOM+5YBSU4gvfvUMyt+97E9C/lZ6D6ZpY2aHyKO2j0m8kT5McDzm/IZGpPx2LFidxq73JTsVHPmVNNiRfdJEP6c1oa7zjJTAU6yYJJ2nRPwDgRX/O437rOKpwmp/ALJL6A7QpAZHKXoVGdOGekx5710c3rPKDr1BBOeTDT49OnTHYD/QmqF/x7AfwzgPwDwVwD+62fPnr1eeq6pgUfnEYcAgCWrc1UBm5ZxufN473GLyhO87/HPP/9r/OH1bwEXknFnhoJSFLZ8IlGm6CSM8f1EskafPSGGCM8OgTr838//Cf7Be/8mtjjDn3/6C+y+2eKzb3+HV/wCqGzWPTOJyLncQQgMVpCZbQudec9h7VzJsGSGh8OGdvjg8mP84u1fwBeDyvRJhM12WzA5Y+g7dCFIQhBE2X9Z3VGyTzrlAY3UDEalUiDMOgwbPZePFb+78POjZ+zd2+0mYWL4cQySkCdJkAggwk3xozJb9kQIpJpmRMdXV/zeHD9hAlN8noDdbiO5d5y8r+87cLBt7ZT3EAGOIDAcSfpB4b9SyYyxmSI0UnaTqyt298POFBxpxXe77Zz3QgA5r/wjfFfyni8HM6k6Y047pT2XDIcVv3vgR8Z7cnjDz0lbGEDf9bKjgMu8l3LpGJ1IEqYRmWHHi5iUKB6z9Vb83pD/Ctkmum87yq3T9z3iIeOX35YjrHI+EGNAVvPG1tEuHYVls3DPit/d+Mn7MgFd4j9pLDPQ9QNi1C3hUtlyjcmDyItsJQ8ip9tex7lDtQCSyp6QBmErdvfHzhxyc96TNeYSNdAPA0I8wBGDobuQsc6KOwe4SrBzHrC9JVK1pk66BSZjWuTPFb+78cvIZSg32w0scafgFxD2AyQ5pOb7ALQeHjDecx5EJDu/HNF9M5iY5B8t3KzHXbsP/M8A/gBgC+AvAPwawH8D4B8C+B8B/CdLD9WVwy8/3KAPBJCDdwTvCJUnVBWhqQHvIm67Dt/dfosu7MHEcIauCp+ElbXOdAGNOwtD20jaaFiHcWAX4bxDGAK+vv4Kf3b+S2zaFh+/9yEuduf46rsv8MWrz9C5A3xt3hfomEGzpDJL1kfrIJYJsqiafR8Bw0DFNc6rC3x0+Qnef/Q+2npTNmUMhndA2+gOBAO6TYfD7W1qfDJ+kAclliyreCWS6+qoYl02aFf87oufCs5k2LLi58EJv4CuP+Bw6zHAKWYmcGRTJYkOWQJn4XsCWZn/BFOv+N2N35Ly896jbVuZpdTcAt2NQz/SgIKfDSyXQ5eP8x8vfFuxe3PspkfCLgaEqHk9bm8xkL5BB42J9xS3EZ0W6rAsQ/kIeit+98EvNycTN+MXddeWA/aHLuMwASWHns+xyTWbfpuWNT9W/DKdjuJnDaP8tPceTdtIwqww4NAdsN8f0gBfapNfUIYkGx3MIXD84IWKrvi9sfykUoYKAt57tE2TIgS6vsf+EBQ3deywSE8bsaVEdZzfuVixE3boit2bYjfRV4Zd26QIga4fcLMfZmCIO06z1sNlwhhb3TVoGL13zoMrfqfxc6khJdUI3nk0zQS/2x7gCM2iqC9Su5WK+s6BOQqhODnuPu5yCvzLz549+4+ePn1KAL4E8O8+e/aMnz59+n8A+GfHHnKOcHa+BTOS51jESYRkwxzAcLjev8ZN/wohDslIMBVhCr9cy2lGnHHGSKkw4JhsRz6ARXxFLct5wg/77+Au/yUMIaCtG7zz1tt4dHGFD159gN9/+7f4/PozOK/rdLQDkk0KR2MZ6bVEBI6ZNbj8ywRigucKf3bxC7x7+S6uzq5QNQ0cOXinhc5sGoKvKmzaFlGTZt3WNW7ZwdM4AywV/0YH45TOnN27dKz43YWfm2BHqc1VVenA0vC7FvxcQWwzlAhJ0FsCJtGrXNBSazUF9QTGK36n8ZPtXBbopvhtNjK4SDdzAgAAIABJREFU7PsON69rMHuQC+qUy+/J9JhAo5WaXpqON8uyVux+BHYFDzo4VHWFDW80i7Zgt0/YUdE24T9zyM0jPI6z112idcXvPvgVBqnRjQhV5ZPu6/oONzd7JCtxgkDJezYWYZ0tyYYjFU/cD8QVvzvwK8KOrd2A2K4VxLETgmTRvrneKwxmqShSiTZTTBYYcHLPXbbNit/dtueCypLIqbrChtuUyf76pgPxLeBsNpl0tlIGJiWANg9V/k5XlRWNT1fsfhx2lfOFVYjUciLouGGDGFiwuz6AeA+LHpC2EXSh8nxQWUwknhhXnuS/Fb87eE/2SJzRTfAz3Sf4vX69B3gPcj5BI7ynIRS68r+0XRLPnZSRdw8O73IKAADUEfC/PXv2jIvfR0snAFXak73TquTbWWdsrvfX6IY9IiK89cmiR5KOnMpZgexhBlKSjMIKzyTX9TH6nHeEQ9iDXQRx9gS1TY333n4PT66eoPpdha9ffY1uOEjiOE+As3WN2RhRVhR8mbM+0+QSnj12/hzvn3+IX77/S3jv4byXLSjIwdN0UJkPR4SqloHltt+iaVtEauCpByhCNlU3o5Yycxfcaj7B0/Dz5DMfK36n8UuG0QLdHElSk5jw2yBSA4cOVOCXmma2khXHk993Hit+fzR+hYHrAaAWx9zQb9FuNnhBtQwgKQIckuIxOpjSNcU2goYwPav15UWMV+zuid1EfhJB5GpdJ+w2mw1eUANHvdbBZGcekCSlnpRrXpowO6ZW7YrfG+M3jaxJNSZx7NSKX7fZom1vEg0AArOGJystRriMftDC91TRfHbBwl3xuwM/aLsWUHTOoa7FqbrrtnjdXiclR6CiqcZ/JjHNqF7gvyNGTKL3it+b2Z7OF40c086DgGR7Dthub1HRNZjy4ise0WbOeke5L41e5OTS4HLF7i7sJmvSiw8HSrw3DAM22xYVXSNSBEAj7Iw+maY5J8sRzZexA46x5IrfCfw8eXiqZvS10h2JY6dtG+yGLba7W9T0GgFVaq+1K9kvMzzmCE6xSs67E96du5wC//Tp06fnz549e/3s2bN/ZCefPn36SwCvjj/GYjyjCBlLdRUCMjG6/iAJFaxHMIunBrnFpA0lJEhA6XcmFNJdqQbyLOuriRA54NAf0Lg2lRyZQRxQVRX+/s//Vby8foWvf/gaz199jev+NfqwBxwnEKQDcx4QMAPqIXLssXFbvH32Lj68+giX2wv4yidjVtbi6DrII5QjiHJtmhqbzQa73Q7kt4gxgsiDMUhLC8NIq6D0KCTzApebN03my46lp1jxuwu/ZeTUWTPDb6PGTgQSfpwSxBgupmStjnxscGI4n7i64ncMPx085mpPYCQ45xW/FruzHajaSioIRIAGLacwXpWeYvhyMmwXEeLcjhW7N8fOcgAsQgfA+8x727MdXCW8B+M9JWmSwCoLadFQHVu9nD5PmU8rfifxK8JWaUQbJNlZNzW2mxa73Vb2l9b3SOZofb+uRRcjh42E2U5M5Y5BnYxNVvzemP+WHeKJQk4cO1vVfbIOOoKLVosONduFQWzUKDls/JYRitmyXfF7E/wcwZFf0HuKRWG7bDcb7LZbtPX36KOEMac2JRtoQT4WkT1jipTwMZa70IrdMeyc5m9ItJjQT2Rndgyc7bZoa8YhDmB4I/xMds7E5JJg5OLLyVCdFb/j+FmE3Ai1osWGX43NJuB8t8WmZtyGAYA6E/T9kphQeRamG3kZuyMwnbrvpFPg2bNn//n03NOnT/+XZ8+e/adPnz79t06+lxkgnnc6Sn5hRI5JQKStLOyJojPR6JsyBNk7qPA6Z2YR4ESAJSIQo489WrcZE4WlLO893nr0BI8urvDh7Yd4/sM3ePbNrzBQJ4qrcI1y1PpEB4qE1m3w8aOf4cnuCc7ac7R1C+8K4QnS5FZl1sgxg1Hx6bxHU9fY7Xaomg2GfQfiAEZW0OSWFecYc8pt1C9cnOAja9NX/I7hN3YKLPGWhC3JwHK326JqthgOPQiD4ofsBS1xOyWY7b5CLjPYllLN713xW8QvzTYfFYqiCLyXdV677RZ1s8Gw74EZfmNcTgrkYjCS+LC0g8tbV+yOYudpOfy1bLE33lPs+sMAgspO0Iz3Cjv2KIzlcCXJ0pX37o2f0Pz40p3U4gnvNXWNQ9clgKxduQil3Clb1dpZ4EOKx+KtK35H8DvmEM8HITvmdrstmqZG13WJKAykCQ1rRplYcClSh4u/eULj+LHiN8aPVH5WVIFmG47R+BuJ/KybCrtti03jEQ8RsRhAlqHdJXmXS10+mHnxuRW7BeycU+wIp4QnGXZ1jd22xbbxGPZRN+UjAJbcupSeBRbJS1C8Y2a3pIcW67DiN8dPIgXqokVFQ2mshpx3qKoK222LTevR3QTNRmZ9QWUxJk4dqG0yeUvZVsOMk8G6fNy1+8D/OjlFAP7tp0+fPtLf//DYswwGMSaDFk5AEDvUrs4VTm9Qj6ZzcI50/XbRUIas8yCkrSWycFKvM1mZQkzmKDuqOgdn6/mt40A7lxYVI4PI4WJ3gcuzC3z6wc/w+vY1nr94jq9ff43X4SUiDyAGLqorfPLoZ3jr/C3UVaOZeSUUhACAxTPr9b2Vq1CR3ENFvedE0DD0psbF+RnOL6/w/WGPEDuAPQhRepJo14y3gi6MoYyTGH5sFHFq6xHmXvEb40celfPwrhoJ1WOHI0LT1Lg4P8fF5SW+/+YWIXQAOxBVAEWkihud0zSXyjMWJk+DSINABWlkQKIPVvzug59XHlzCb3qGHKFpGlxcnOPi8grfHfaI0fCTDOppWx9Va1xswSXsVwwgp/w3w2bF7k2xWyYfwzmHtmlweXGBi6srfP98jxCtojooJTOU5DTHTMgkO7EkO7P8LJ9Z8TuNn0v43b0LsnMObdvg6vICl5fn+Pab79AHCYC1mZJyG8qs75BovABKMoDBhAgGplvmpVtX/Ob4OXiqjjtUR3RwaBrB7+rqAt88/xZD0GVXRHDepazhNiAoIzzK/DqjolXvgWVdb0RY8bsTP7FZKlcX4efH7ReCzFg2TYOL8zM8eXyO/usf0HcBklHep+TWpRVb8pzJz5LuCRkbmExpv2K3iF3la1SuKRx0y6gZKcjszrMzvP3WBQ5ffY/+EEDs4Vwlmw8Uui9jZwPGMe/ZF5OdZPovrrx3N34Val/DuxpkdgcWHJpkikvyHNV1hfPdDu+8dYWu+xbdbQBxpXSZJycf8V6MmAloLu4z2/OI7gPuXj7wCYBfAfiftGgC8G8A+G/veG5eo9lp1n03SSwtZITGXda81FkIjWWOGgNmnKdxVdHpFQgHh7ZuQcHWlozpJ8UUJ5hReY+rs0ucb8/xSfgEXd/hdn8LEON8d45Ns0nhHGprSv3JFTOTXteULHR0+1LiqBLTPH9nZzu8+qHB7QGgyPBE2qacPGuhUFWiYwSM/zlGCU8/YthOKrNw+mHh51SwHPHD5fcXVCOS5Fln52d4+UODfv8aFI2pHWwJR1ryMTFmk/osByX2GSNA/m74VvxSgjNPfjYLNUczC2gioPIVzs53ePlDg9v9axDnZR/CSgxmM3BRYGi0ULpM4GCOYPhj6Ixvnp1+iNiNkyMd50KlGxF85RN23f41EGXHFpObbG2msWK1+o9kZ+JBc+g4xCOzJaN6LJ5+OPhZdMBdYedTuiXdd77DixcvsT8cAGaUy0ltqU5CamTcivzlEkA9ohpOpzPdj58Zn35Y+EmEgD89MCnrwgxyhMp7nJ+f4cUPL3A4HACOcF5pVeJnztPSuC1HIxNIghq0d8K34gfnZHDpUuj5fY4cLXd+tsMP7TWub2/ALInSSLfllRwfXp/gESApGqfEQT9iZDg3tUzndVg+/TCw85pDwC9Gd5TH1J4psDs/w25zjdc31+L/9LY1tmGXZaXpN4LxYbaDSkhijGqqrrLzNH7Gd4JfrlVGbEyhPAlhjtOL8x3Odq/x6uY1YgQIXvCd4AdmzJxyhl8BhzgDDPMf7xT41wH8lwD+MYD/6tmzZ//X06dPb589e/a/3/Gc1kO9RqnZSBRhAG3ToqIKA3dIgyK2dbmkgodkOagj5MK009hXNvPcgSiHohBDGSoATPBUY1NvEOKQK5Irm06lK0TagcTb5J1HW7c4355LJyBSw4P1dkr/zJi1f16NovKtWjwSgBMGJDCcI5yfneH84gL7m5eIAbpBjGQVDWBULGN70mfMIEqqtSjajKnIDL7DMFrxowI/L17H6TuOUM6ITs7h/GyX8AvhoGjL3r5RGZVdiT+nupe4GSbMoljZFxdW/I7jp04524buNH5jejpHONsJfrfXLxF7q5bgFxjwSidjtjwg4YK1x0I7xgj2xw21Fbspdq7ArlCrZVW4/BTnzW67xdn5OW6vXyAOgifErFXsWPNFZGIzUTI6SvYyYyhGBtNph86KHyVnQF6yMzaK5jQb4+A84Wy3xcXFGW5ubjAMAZ6zc2HsFJiLQltnOec9QJZ6rrLzfviZQ2BsOy8TLlPbOSf4XZ4rfjKjl+16xW8UpaPvKHHj3DeSYUtuhOusGg8eP3lGZOc4j8BMZE5HKSpWnXPYbja4utjh9es9usMAOGunpB5Ms8yc7U2aYGbAsgHMccXuznFDpVGpht0S4x1nRnKE7WaDR1dneHW9R3czgKKHowhCUBpxxqdoC7P94PFlZpmMchPFODlW/MwZV43slhlG+neJksJ7Wzy6Oser13t01wOYKxDFGe8lKEYFccFzeoYZzEFk5wn8TsbyPXv2LD579uy/A/CfAfjHT58+/R9wzx0Llg4Z0NjMKGPTbLCptnMlr52Po3xG1n+x9IgUikT/pVB4Hr0U0tOBXXWGpm5BS/9NBSP0OX2WgLQep8ykDCB3BrIsoSaUS8G8PNNFyF1dvE3jqhMRttsNnjx5jPOLKwAe5mHjNNsM7QM8Zmg7bx0kMZGEnt/taR8fDw8/i/CY44eF14wkn+JAADYj/JTliIQ5KWd+NdqOZbXSTD3zgmNU/PiNMHyw+LkT+NHkX0ErI+5mu8HjR1c4v7gC24wLucR/GNFvUrbiVRrA4pTDScE8PR4udm4ZO4KOHuaYJhFIwGazwaNHVzi7uEKaZiYPJOz0mUJuJjWtBsscuyxL73s8RPws27lbiNCZvgYokZS2EgibTYtHj65wfn6WriXohXDp/tQAvZi0nbIyMwq5yW8C34PFzyWHHKW23odaYJmx3GxalZ3neskMaRS/jXaT6utl1i9c6LyE4b1r9NDwc2npwCy5Z/kWWpKgdo3Qtg0uLy9wdblDRcqXxJBlizHhabOTZPUu8eMkSsHliXseDxO7SvPn3I/nRtVgwbXVJTxPrs7RONbINosxFsfAnPdym8a4ocDgXlUqSPnQ8JOlciP8TsA4GhUqgASgaRs8urzEk8cXaD3A0bCLII4SkZXGB0W9tT2yheiY9+7Df/fdkvAzAP/h06dP/z0AL+/zTBL2SxRQg62pW1y0l3jdv4RlrQRLXx2FlOk5ciyBGMwAW35KLTL9yc8kakSAI+GyfSR7fZKE0fC0YgszByNRyhiDq78t8YNzTjO85myT1QmHwOKh1TDmBoCmqXF+eYF33n0P3eEG3au/g8cAD529ngh8M3DJJH7K7pvrbTx2tG88cPyo2MLHaUjQ4lGctglG+2I0buoaF5cXeNfwe/138Aw4eFHXJOoUaRBpiZemhU8qfupY8TuKH82+FD8LD7AdTV3j4uoS7/Y9usM1utdfw0N2McjryErS54GLyerScy50OaHuV+zuxm70HiWM8Z9Rj0V2Xl5eYuh7dPubhJ0oens2sd6c1mOya99wc/4sjxW/kUPAFc4bmr9gRm9Ofznl9Xj3nbewPxxwe3OT6iqzNuMqmSEHovEEU2FUMui4PAdW/CYRAuU2oMvvKIo13ae/Bb8LvPdOj/3+gNub6/SMzbqVpE2DS+Wv1FailB/pTu234if8R+oQoCO6hsZfSzPRnGx1U+P8/Azvvj3g9jDg+Q8dwBVkA0OXojoy3Qm2ZptTwjkGM4FSsjnCUSfhA8dOxg3izDnGc4svK+0PpUfd1Dg7P8O770Tc7Ad8+d0BQA2GteWYTam1N7lpzWDhyJX3cBI/V+IH3A/D8j6tTl1X2J3t8N47T3C7H/D581swG36UaEpKcWYk3pOy2D7SvVxie+R4o1n/Z8+e/QWAv7jPvUyYr1e3RhDAmhPzoyef4OXND7iJLxGCeB8dZAYV0AQQAJyTQosoXdkhzLIxMkmZrOu0NTY7BIAD45F/gp9dfQpZ510h7Xk86SIL3XlUfftThpFImAnBO59+zw3aiVF0or+YUWRGT115VGc77NoWT548xpdffIbvP/9LnLst2qqG89JWBlJYCxtjlIaW/owRCESgGOHqzWJbHzp+acnAaEAy0aKY4qeOGOHOVFZVeZydbbFpP8TjJ4/x1Ref47vP/yku3A5N5eHVCyjOACFQjEJjAyMbTECIurFhjPArfsv4mee2SGy2JKTn/JcdMlzit9ti89EHGb8v/hIXtEVbeTgPIGqGZqVPUKWUSjV9pdgORHC8bN6u2OUlVxPkTmBHSPwHWTrAJOuahfcEu6+//BzffP5/iuysHZy3CADAHEJ8CjsmDAB8jHB1s9jWh44fFTMnE6mJpR8Z28wPrMqv0nXN27bFk8eP8cUXX+Dzb77CE6pQNQ6oCAh5JkmwmuKnLWNZtgMQYiC4I6t3VvwEwzTTRQtl2bfptaT7pDaVdzg/22K7+QBPHj/C559/gc+/+VLwqx1IdV/Kbq8ziqM8WOYMYIZEyxGYaZ5xa8WvkJ8aoTPTL3PM7LwULzxITtpVeY/ddoNN0+DRoyt89dVz/LPf3+AR71Cd1eDagwcU/DaNwtFRmjnlooQ/cziS5PNBY6dh5yQD2PTYrLD5FU6w5rK9d9htWrTv1ri6vMD7X3+Dv/zNNS7jGZrzBtx48ECA0moefaMDcxs4cIDjHpEdar9fbOtDxy9Hxrl5GcuFpjG7VEEdZorfdtOibWpcXpzjva+/wz/5m1e45B12Zw3QeMSBwANrkcJnnOzKEj+RnR4dYvRH8QP+iKUAdx1mlKUKATlDpB4MRltvcLW5wu3+lRhlTq+oLLHeYDiSnQekXNHxozL1SzLAq9Dgnd17aHXP6qryiFEy2Nr9aX3IksQsxxIkd5Bzkw4iRpANKN1kNuluo9bOFLPERecDAF957M52+Oijn+Hr3/0K33QH1LXHzjsEADFwop3wDiGAwOQA8oCvAd+Aqhbeb8D9LTbn7YpfEsjjBGd4U/xsRGjvS0palnpQRdjtdvjwo4/xd7//Fb7pD/ig3qLyml9A8YtKb1GfJOuXyQO+AvkGVG3gfAsMt9icLzsFVvyEf0b4HTVuixOc7y+FP5xDRYTtbosPPvoYX//h/8E3fYcPmg1a7xCYVLlB8SPY6i8mD7gKcBXItXB1C+caYLgF+bkIfqjYUYFdnkmiGXZHbFrYVBdB6OccIToC2MFXwG67xfsffIy/+8Nf4dv+gA/qDbxziBwRQtTJhYwdK+/BeZCrQb6Fq1o4V4P7PZrzZafAw8VP97FPSQWPOQSOzTYRbB7IaDjSfbstPvroQ3z2xWf4odrjnb5C7RwCWHiPgcgxO/XAqofVyes9nPcgVyH2QQyrFT/FT78j8990NpfKb0dexUSyppccyDEoKn7eKX4f4fMv/oAX9R5N79F4j4EZIWTD1d5rqlSMbwfvK3jvQK5G7AO2u9V2meI3Xu5xoqyFC6kWJHWRiIMoKx7JYUMN3n//Hfz1736Nl0OLx12D1gM9CDFGHZREkK1bR4R3gHeMyjMaz2gqIcwwMGo/r8nDxE5klDkDFrG748gTHuoQdwQX5RMgbDaE9999G+e/+TVeDhtUhxYbT4qd4gbDbgAZdp5R+Yi6YrQVwxNw6D3Odssrzx8qfhZZZdEDxeMLhS2+Jjl2SPVfBAFOdGrbtnjv3bdw+Te/wsu+he9anFWEDhrZygxwgCvwc4afi2gqRlszag90J/ADfiKngM2uDb12DCKYB7gkF8eIGCJ29TnoxoFczIDLHdnrGAE4bXtk+a67L4gxIuTMYMs/N3hc+cd4tH0sJgdHNE2NGMUQjHGSxXGxPVLn8tMYWQbuAuTI2160884Byai/UI7YmShneZ3H7nyHT/78H+D5Z7/GN/sbvE0tKk+4oRaozuCbHdrNDtt2i7ppsNnu4H2VkuYx1OMOhzB0K35/SvzKC8fwO9vhk1/8a/jmi7/C88Mt3qYazhNu3RmoPkfVbNFudmg3G9R1i3a7FYNW68cAmMOK3wQ/mR0RoVzas2+Onw1NZGDJ7GStG4BKHXMf//zv49sv/zme72/xNhzIO+yrc7j6HHW7xWazQ2P4tRt470WhiOsbMQQwCFUzduo8OOy0zaMM9cmGmDsE5i84hp0TA8kpdvrO3dkOH//Zv4Jvv/prPD/c4C1UgPc41FeoGsNui6bdoq5rNO0Gzvu0HIzBiGEQh0HsF9r7cPETvlOjKMnQEr8lY2l6YuIYcJTaY7Lz55/8HH/3/Av80N3iMW1AjlD7CnVdoW5qtG2LpmlQVRXatoXzkleEnJQ8DEFeyfMWP1T8bJcBw2+kxk7ihfm9Wq4jB3YanUGAI4na+fSTn+P58y/woj/gkWvhPKGuZH/1uq7QNC2auoZX/Lz3SX4CQL/it4ifLVM1/hshQws4Ti7YdQYkXJsAdtJwWb8s+a2e/vx9fPbVd3gdKtSHczQV8Gh3i01D2LQem7ZB02xQVx5NUye7kxyBY0Q/DCAATTMefjxU7JwrnQFLQE0xmjIgJdxsAO4cgZ3TnR5Edm62G/y9X36AP3zxHV6GCvXhAk0FPN7dYNswWsWubSpUVYumqeG99SsZQA8hwpFDXHXfCD9XOMKP8tqS0Vn8NhuGgLQ9o0W5kZf8On/vzz/G7z/7Bi9CjeZwhaYiPNpcY9sy2sZh09Zomgp11aBpGsFP68zMCDGiIo8hzMcNdvxEkQLSOcCMYUgaXRHL9Agxous7EHtUaAQsCojaiRwoe4RkJJTWnTCg4GjRZKGj0vgYGQgOZ3SBt9u3sak2CCHo/peAU2JNE0iZa4pHrcl/yAYhZDNbeeCXDdoMOC30jrGNNPVRWTsAhiprx2lPZVO6H/3sU1xeXuH6xVeIww2a3Q7vvfsRfNWIA8C7NIi0BFusrrdomUepwjDUK34z/DJKd+M3xVCHkyYfHIHYATqoJADkHT769Ge4vLrEzcuvEcMe27MzfPj2B/BVrYMQHYjoYAQQoSztNPxqDMPSbNcDxE+v/WnwywrBHDtwqo2Y4D3jw599isurK9y+eo4YO5ydneGjt96HryoJIVMjViJOxBEgCkvxA4OowjTM7CFhZ/gBeY03lZjcA7ux9DTs9JxzIDUkwBpiSIbdI9xefwOOA87PznD15B34qlK+K3lPZbHxXoxg1Co754bRQ8PPHKil/Byhsshj5fkFA8r6gnNwbCH/SO/++NOPcfX4Cjc3LxHJ42K3xaPHV8J3xY4xpUPWltRFjqi8hHmGxRDmh4vfGLdSio7PLWM2/ukgUTrEJGHBOjhg7/CzP/sEjx5f4eb6Jdh5XJzt8Pjxo9FuTWl9PNkkBifaeC9RH3FY8ZvjV+rAXMgCmsvK0fqAqrzoHBxHGYh5gnOMjz5+D5dXF7i9PaAnwsVug8ePHqcBiDlQHWUZHrWtMQb4iuBpafXHQ8RubHvOUJpiObk2+6l/HMQhB+SBMhHho4/fxeXVOW5uOnSIuNxt8fjxJbwjkbcqQ61eQj5tZ4hwfkDtCCEszTQ/LPzMdhk74o7rs3xtqvzyb4Y55MQhHtUxIu8mfPjRO7i4PMP19QEdAi52W7z1+D04T8lmcUUdwbmNMUY4F1B7QhWO9qqfKlIAuhclsiGlHg/5Z50soOs6dPseLW8ROaIbDmDbcoGceIcKw4KdepGs0xAkapQAuLJjEBxXeHfzLs7rC3kzcUoMxlIcCKR75+oJAKUBz0VnTsYP2cwIRhengE9lLo1vnNyd6wMYDzmAYhrYC12k2zZtjbfeeRuPnzwCxx7OAW3b5Jdy+QZOv3MGSkKIxoYrfn8q/AxBk4cOEk4F9bib17RpGjx55208fvJY8SM0ba2MnIY3+p2TVzOv+3Jpv+YVv/x4eW7as3MzpkK6fL7gH4IMLJnVKaeDewj/PXnnbfCTx2AeBL9GkstwwXNyd8ztSVjSIn4rdsvK6o2wy+DBuQhmhxgJol0Nu7fAbz0G4gBS7EbK2YyREW5A2g7N2vdA8ZNzS4Jw6hCYOr1RYF08WN6UZCd0GYjRWwjetg3ad56A42ORp05mmg04hgxCCMjJ6TgPLIlkBi1O176u+M0xNKIs37Z8P8RYF93nwC4Wxq1ktH/7nbfAbz0BI8I5HUxo6xhCI1l5EEZtiswyUxksm/qK3xSYkv8WpSktIDYxdiQxIFKkXIQM8ghA29Zomit1shFI8Rs74KKuD1c9qOciR3gCYgwrdhPaz/XZ7OwMJypfAkAXzwFkDjkkvcUk0RlPnlzh8eOMXV15LdfokHpBGlTaZIYnIIQBxbT+it+9bJLRyaOHqkzlO5JkiQ6qt4Cm9njy5DLhB+dQVxoJAAJYdZ+AkGhu/OeIEUIQm/bI8ZPlFCACvPfYbn2q0DAEDMOAQ9eJ0ICEMxy6A1xX48xdoq0G9OGAgTtEHhBIZnicg4QfiXsIaV9KAqJ5RYhBwaHBBlvs8Kh+hCdnj9E2G2x3W2zbTU48xhmAUb31rzij8rryqaEzfzT3IBqdnXcCGv9Z6COcPFNMXhmAwWz7SzJsv1DvGhA1ABiBjV+yAQW2wUkuOxaXcKRvrPjZzx+PnwIID8qz+6VxyhY61iRcJBGqGkb6fQpSwg/LAxNgxS+f/XH4wbwtzxqZAAAgAElEQVT4YNkF1Dn1LNsAX0LeMn55IILk+jGwxiApS2LZpfOwsRtfo9l7xr8XBpwFDaUelfCaOgegxkqJHVGR6Mx4DwB0nXM+Mr+FI04Be/dDxm+GDi3/Xnhk/B4ieIwH9DLDI85sckizRjZgMZFpjpzUYHuTnsrbSi68/sHhNwKpOLMsOGl2bumnWCLey6DScUyGvfAfAR4gMhPUkp0hOXGWdJ8YuqT4zRohb17xS/RM948GkzS5fYEL9V3ei83pXB4wUchRj0nQctDdPkhxoQJHbTQgW6kRifycv/UBYjcXhlP+osUbppgVZZNGj3ivy3c48R4VjlCLBAAGTdRHynI6IFUJatMcpCPywHx0ULniN8eLaOneZfzyZfntnOk84T+imGSg+HEYzAMIVPCf8Z422F7HAQQSB9+CQ9yOn9ApMCYNk0NVyRrdIQwYAqNyktn0Vdvg+vo1AIaLDnW1ga89BurQhT0A1gQ2UiZrgywxA6tcqtijiQ3O6AJn1RlaauC9R9NusGlbWaPI0qmWjJFFA0XeNLs6+0VH7pj1malAXiqUki4kymvz8oAEgHNJ4ErthDm4eIcNXHIrzGuLtL7yWKsfFn74k+KXoj1YnQOO4LiY7bKBIqmTAEZvTlgSA0yxcAxk80gEQla+S8eK3/zkm+IH1nZDt7IpDKMY3QQ/edJqKjOUk2w4MK+5EOy4UfvwsFs6P9WbVJw8XQZNFCcy/+kay+Sg0/vtPjApdhOHgF5jq4Px9sKx4je+RpObjpY2YhVOeNt6yDRjBeOv4tHUL1SOjpirfKnJ5qXKjsuyu///j98Rnpo8cHxmelHyIu0mQQDxONqDbfSf7pUyHCg5dEb2SflBmPkKxs1Z8Vu4fOT3opCVD87OcZmUYpkgdnlyalyoDR7NKQeFf8yLee54qa4PDbvjZSzhZHbGrJDJKYFOecrW5HO+Zg63FMkKkamq2iCDzbIOLAlET2An9Vvxy7RYvvH4VAbMdNHnKeER9YKLTpZMjAb8KhBJbJc4wy63BgTZbeJEFX4ypwCQ5EQa1xCkAdvNBkMY0A0Dzt05Qhjw8uUP6LsD+ABQT6DBo6k3gGMEDIgcwE5CzUz4mNLx5OGpxm44x5nfoa1aVOTAADabHc62Ow1BzHW635GG2+N2WWc52iFowqe0bOBOfszP6RlHysMFd9u0shKXi0c4FeGVuZWRlZuIyuHn8ePh4LdAhYmcnc4434kfSgHptM1q7FjyJRglFhwDBBArfgkEeyKr2WMDE+CB4zfhuR+Dn3nc08WCBx2ieNNpQuDy2ZR113jQbij49QgHPnTs5rbqEXl7B3a5Fsp/TsMjDTeTjVSUZ7gXhm/+S8WAc+W9E7EacxgnOnHhY0LA+ak0C5mcN1LXkTGq34X2PPleDDdX2XknfvoNI4Ro4VxxLVchz+zlAT7r5DIXjgHO9XAAca5VqfsMOeO/Fb/78J9pGi1vSXiOvpbnlMcII3xSSDoIWX7S6Nk8C50xSFKUc29YrPmDx24u/hZnmxd+ju5XQ9Lkpsz+xwSZyUSneTvKZ5NqtBaxneeEx8m6P2T85ubLcfzGF4/cSylSJ5kuZXso1w4EOLU7S1kJFudQeugEfj+hU0DDu8zrq6EkUjmHxjeSbbaq4CuHH17+gNevX+JwOGAYBgz7CN4zXF+DGo9YD4g+gDyBouy/6smjogo1N2ipxcXmHLWXdb1V1eD8/CJ1DPApFrzncYcOBM07ynQwkp7Jf07Uy5RfMagkmy2JRSeXHpJVqwrfct/nUs2mfnGKIit+dnJ5xjI/fbpeuhQExsgioQnK2YnDSwRLLztMRmlxJg2Oz1Tae1f87PSYBwvosPxEeeRENiUPRkbGjjiF26H4m9dYIgnpzLOmqZbf+TCxW75xsZ/fid/CwEH5j4AcDZAsGC4UbZ6l5gKvHKAus9fqrl9894rf/CId/X3itSPslQdNKNqgRbhyQXIDlgHbDhuOLM+45btW/I6XsRQxsPhUYawSSB0Beo7lHJcWLmFWmO0/Piv6/2XvTXpsSbL8vv8x9xvTGyuzsiqruoZmN8kHaCFBAkFAC24kQCI0gNxppwVbgCDoC2injRYExI0gQB9BCy0EgQIELcmdoAYECUSjEd3s6u7qyurqnCpfviEi7nW3o4VNxya/N4YbL27kscwX193cxvM7Zm523Nxc73035tfyK+OmoaUcU7pj64ajyR5eOPbtkxCe0LpzeXfs81N2VdhGx5b1pY2UXTPjKl33eezwBD5n5cYonJoioeg7xeqt7gz7u8qvk0vvWpe5aG1i/iZvYxzanmyAJHCFeMzhlhkbKwN+I8m+hWR/RoGgGP5d6ricCFETYYzByfERVuOAn/7sJ3j9+jXevn2Dy8sLrNdrzPOE9WaD+WIC3rudumkgrI5WGIcRR6sVjo+OcXJ8jNU4YhxWGMyIk+NTPH36DE/PnrhPEcUndn31qCfzaA7axVi0g1OcU+t6irgtfAwRTF1+UBsGRmGCEmeQAXQc3bpfaTuQDyz9NiRVHV0a+M7z64ZpLdfrDnLLW6rvWMMSvOxps4yTGrEn7dPhuNzLkGnt94KYofJbTHd7+xOhijZI4XFJMOU0zLdxCbqcXIo8wqd+KvedZVek00uj0/5yv8DNExKGHeM/cxcMdKl9pdFQfEJJSKs8RIZuQ9COTJRfklErt05H22sK4NwAWm48mALmMUPcVh0orKltOeXnPdv9ZDsNyg+5uCIGuBm/NEwpEHJsu8iTS225JxLlJ+RUCsaHbLXBMv1yTOKDhFFjNKqGYWccrYS4acwCylQAcS+Q0ik7dJJo+MubXqs1JjYhX2vcfSussiKE+1s03aXbmp9UuiFMUgb3kKvznfvvLL8i1bvkJ/tOEm0vFIariBCNEuXDi8WxC/ZoFIjvhTFnN/AwBAPgPnNigGEc8P2XH+H502e4uLzA+4v3uLh4j/X6Clfryzhgc0uuGeM4+O+2+0+fGMI4rHB6+gRnp2c4PT3D0eoIq7H85JfolYTbVTGqMAse8klEK71cD7ZYs0im5GRn4qQymI3Km2oIG35dgPj+CcgJvzMwUn65Z3UuTrfbIoun+gSQla8U5Kzc/VTeRePsJONH5NfytXJUfotpUnHQZ8gxQRki7A4b22DV3gBweBLmB09iokmBXyNfZdeJU/ap4qCbI6UyRgxiWAtkQ2UfiWP7Y99ncsYOTjadTJVfL2Ijt8Yga5fyEIJNJyxxpuxeVrTEGCak5/YpaOes/JZjtwa2raeZpUerBoRgkCtGt2WXGttkKKMpBzwpqvJbjNmx1RUnXKfLIrJvgNkrPGgZv9PYJTZaYr33dTx2m0z63MuboHBcXAoPpIyXont+Ee5p1G1LIYls3mmou0hO+TXiVJwWXuMpXPbqDhCHLmFYmaSbd5Uh2YodgLgJesft0Shg47dJ40QH4tbgLRjxe5REOBpWOHqywsunz10aYGymDeZ5xmxn8X12NygfxPfcDRn/nWITz92nr8Jy0SQUQB6LiQIV58mz6DMpO6bWcTbgkZ2x8JHJbB0asU/DdbzsHxFXm/e4gyJ+mGiKM3Ydc28HZuXX4Cf+lO38OvzcL1fs8nftpJUnhAlnnp/prxRQfpKfyK3Fq8mwGt3Eczf/oLzdMXs+YmUOWNw8UxsMNztDbYuOsmuzK/Np3VcXb+kEhPecyz4zGXfQ5BeMAiGEIdN/0Pyd51ee522t+YrPlsGYDJdtEul/0745LlxmHpCDpzgOpsZ90sdQfn1+6LHqPx0ry9Qas+Qbfwon/cRx2mi3dsqvPC/5RUnl11odaunFiPc/t98R+Xufu1gySfsO+FGNv0+Saa+SU3blvU9IsmUcpbpkXRfuf55HNvZ0WeQ5Zq9EUmx/7hWE9sBT+bX4pdczstx3YCd948JGTg8pHDvqzhVC7gGwa3v9vhPYm1FATniKiU78bd9YpGYSEY6OjoT1Cdn1MMAIUIdgQfIqQaBsyVKZU79DbCkRItReR1z2qdm1MqsyrSJMr8St8zhQkgll1L2dUL5qQL6Tsa1MlV+fH7XTasTplSjcI12fmHZG9VISiQlevgwM9ylDJnadc3NeqfxyFh3LbIuh8G+6cJOpmqNvc1ln6wvhgYc2SPEVINNISNmV7Frtqm6Oi52nKIIbwIaHI5TJrXw3PV0jkH/I5c+p19iV326D3Bi0XcgFFzYxi1GjWFKf2fb29z1fk3oXAkD5ldf2w6+XWPlViczPH3f7bQDKr7y2zC9NNmVhezJy3mnrSH/PE/FzKfoeNXS2rmiwbGCaOqDsclYtdl7OlJ+3y9nwLVefivDlPJGi0cdf94HIv4JQO+VX8srVPO3JUOW61IVGw0YKFwlSGHaKeYPwT8X3hjsKRp1+hntcKYBCyxZME8LJbiWI3sTP5yEqXOyLQkgK6iDPkaXTHThSriwk/uykGFSkXXTKWTnL8NnPbjdX935PWALr5CU/2xTKAKAyDrh+QYTpLj+H8otlKbJrpr1QvrK4rR4rdLjZxkq+YiVDf1teerqm/GTZ6hpW6WXlWHCxWdV6EfPOOmlkPXSYXLqVOm2JKLvstK5lw69Vrl6B25cI8AYbJy/RR5YG19D+Ojkov+y0ruVCI9uJrRxccqpDHIb6x0PREOBP5DmlCHXqyk+e1rUsO83yrLwxFo55YZPckL9ctSP8WMbrJKH8stO6lt32VxoGigSySQYV4Yv6sDS1uj+hGzVlmWUJlJ08rbOMfkL2VFFoOgb8e/ZtA1DaCDQVkCCMAf447c/TyEP5ibK188xOdwEnw7ReK/bplE//qymgr697GNzPbj9GgWjZ2VEhciMH0ocoY4hcLpw6HjlBC+oRFUUob9bYCp9MdaTCxfOFyYNUjEZnl93D6kLkae/YuLNQmZwQjQNVpiy+PxA0KK9wcsovBc1EnSLKvPKOIRdF29Gi0ZTg+CTx5QxZjGibHZ7yS0GLiM0xZYvjFheRAHUsQvq2bjm4EuZbZbeN3fJ52XeWri59uOCegDSfJhDyyWQQVOQic1Z+t+Unsmlea7uliU2Iy5El4HmG7zsH+bbSUH4p6I35LfejO70qEoxvLEVJ9ci3dMovBb0Rv7Jh5JNP6ZJhvGVM8GIUT5SzYWddM2Ung25lBxA4T7DbqYnyUoyJtN4qCbKaSIYQqUttltdFCn+U39K4EwivEyzxavuHB4p5TE55cC192e44lG2hD96LUYCBuJK2RFC6rSJhN7COEzJZOQDwHVNUj6gYQA6jVg+gkE2pGLV3frVQhux4oVFTKZWsz+3DytPrK1R4XzI3+hUak2lI7pTfDp1yxiyk1XK7NO6sJwwB4oqOxUGR8kMrVsg/nS/zLDv/hdPo0sRSSiQNipr3xowhVakru+uzy7PYAV74TJG/1hjS1tEIYhVPyEnbXivWTflVuTeD5aTiZ3iz9lZMZLgRveOU32341YPo8nrmxGO/urtsj29ak5YylvIr87lt+2v0ipmAqfZsdqRhRWs7b2V3G3bpc9Y1lyJknNx30qqaXtgKW/SpjcGN8tuFn6iglGq7QA3npdCZu9UNj2MZ8ybbz2N/nySMBV/u3FuumjRzfi3cSzIlALlNJkgoiI/bmpCXSkPZ1eCRBhxlZ5kriA8rFEKmTyK9VP+iTFRKqRBQJS9K7Z/E5LHscUvjAMQ7OtxMOIZTfuX5QuMvhNKQWPM88aPEpXD5ZpBiiVe+lqqMpfxQnvf5pSzbgmn5yiSigUAIK4q/bIEBoHxskodQdijPb86ucmXXGnc1l/1ouNrhyQx0NopUfkX6d82vShtwX/qQ1zk75MIv7OPSdsovS38v/Fz4iK/5PXEW7IQfQh+q/D4YPypS8GNJLvxydgQ3fvHG1WZ2yi5L/1bsmpaZPA9GvT1Axc17y3ui3vvumJ9kxeXVwlHKp+QXV6jmLh9qho1B226PRoG+AnT9xd/sqAgfd3CHhxQUIipF+q81Uasm7P5ifkz1MdBQgBSu5Z8dl+EqYeQ97dYuuhRQtB7J1kSFoSBdd822n4vyW27UlHvWtS/rjbbjMr1FR5CfoFy0+iu/Dr+itmWYOnDfcZV97ormWEbt5aDsbsuuUfmWS48eALQ/m9aKoG1PpPoh+TWdoLgdaNMpv3vk12TkR7u9JLZwVX634Ner/JIjpIdUEM+bKiuBr+zCayDK7rZtb9d21zPMlC4PtK1LVX530XcGV0ibi8OinHXAlF94PNzdD8u7vRoFXAmA5XcnIMC0FbyMSZQmtESIimGEkpTplOlHUZYkSmXI/EVKlQI0wFOZT1shCt0o6kstz2Z/6/KrZV3vMyAjb+kVlN9Wfot+nbPmlYace+OlWK1tNwDlV+VzbX6ZAPxJ1ufmRrfq0hZEXafs9sMOQLKqNQOi7GBbKLaOvZTfHvkBERCnMnIjXNPcs0u7VH575oc4MSmaWwybSz89FluyF8jgyi/PZy/tLxxSHlI+owrtkgEYYljbnsrk6Sm7u2G33FKqtkfI9/IAcgMCyzJ3nPK7Pb+UuXPb7ln+euthb3wVY4eE9m8UKCpcXW4obiZ4kVCEACSrkVCIbIOJSkF2A1Yrgzwu0mg2utwKQ4084lmpTNlprc65K7BXu3Ykt6wCW1q38qvyEGd1GQq/MvVl50JmU8ytg1fl90H4UX1StcAGu2vZCJRdlYc4u2Xbo6WLu7ltIyPlV+Uhzm7JL0sw88knl3mrjBsu0dLrAzKK8tsfvyyTBjvkPv4VEScp5VeW/YO1v0bAdJ9LZrroR3k5+0kru/22vfpQPivMDQMyxNaWp/z2wY/ap+Xz3bS5rghQNbj+Sp39GwViAaRgIY5zIVH114tNgCNDQjl8CCIfjjIFWFaMHEjLOkR5gKb/tuPSANDLv6kMjcbVbmrOt0LNAJWmvaUnZE2n/Nr8rtfI8yPnWk2TFqwC+c2WUKfYcsrvLvjtIuncpQlJPMq+67xLqsrug7EjoHhhT0xFdjXvKL/75FdORkKaLEKQ991haAvl92HbX/pEqPCH8sOOxx+CX9YGxZIO1w4dP0OUA9mSkrK7z74znAVm6YBAsFj6yn07ReV3j31nhCZd6dFP9R6MAilzknIoOgQqjpqK4X/jOySGsrTIdzRJpmXeWQGaitEKlydVgN6iDJnlSh5n6YjytJQkD5YCNWaUVF7IEy1c31pUpggovxvz64MsLpVLmlOIclKZlsRuc8ovleHu+eU+2zrefCHz4l5ZRXxld3fsWj0ri0FQjCj4EJA+EQx448AivDw15SdqeRt+bak3+WWx8q6VuimVsUL5hY/yux9+5Wsh/oCw+JntLK9UfuGj/PbGL4+y0L5o29hF2aUy3Hfby89C+6MYbnvPqfz2w6/0XpoHhHBu3ELIt5zvE9yLUYBQCiIvQ/8aFTrjzsPykHBsjEnpCIVJ8s6BliCitSl5JGWsFKJWju3p7qAcpQxknEw5C79cPB3nLnD429SZ1NRbV5Rfo653za9yZYcBhC47vR1CcedsVn73wq8o7YKjxmn+ETvXHJ2PaVjcld2HYdfuX8vbKCFskEVsmukqvwfED5wt9HDNkQCw++JEMx3l92D4ifYXrwaP5tcKlN+D4uctOPnCR9f+Wl+bUHYPlx0Bou/spaP87ptfN0yj73RtjmEXvjwA7P3rA06JYnVlZXMtyIUvwxLFfwFihECUA1wAGa9LniSbg4B+DQXpKUuoY1nXzL9UrjJ+oST5oZTf0luUPQXYvvxV+d0Xv+A6CyUXUfUZKr8Py8/5+Lxabwv0vuoDZfcg2SG9TZDl0XDK76Hy2+2dWOX3UPm5X+Nf5ek55fcw+AHIJpG7tD9ld7jsXDGV30PgR+UlCg+jlteI78coQDnA4EllJSk7iyBIBAgKEBUEddqZBSg7LtMr4eTlyi06dblkuhLkTgpSla3jXylMWfiWo/ZZbuaLXinnzmxT+bXzug2/Qsztpt3gmCHa8T105dfO6575ASj2/wxrzxfas7Jr5/VQ2IFim+wtwFJ+h8CPlV+ZxgHxk6/ylIkrv4fPrwlP2bXzeoDstO8s0jgwfktWgb2tFEjgCv/Csw0xCdttSOKVwwspU4JM4xpKItP2F6O9pgW3oSCyXDL9XOmofZyBl2UslEimmQqaX6+1pnaVZShFiH0xyQ2z2gkpv0IOVRnvnl/WfqNng+EOxgHlV8ihKuOH4Zdcf/mHsivkUJXxA7KT/WdvGaXyy+VQlVH5yXxkZspPevb5NROJRVF+mRyqMn54fr1VHsqukENVxofBTvvOmMJh8quTiW5PRgFKgu1VQkoWqMJHRQjKkZ0LAaccEzohVBIn+XFZvjpvVy6pEKnMLcXJ4ss8M8iU5Z9dKxWpCr+Do/okTiHFE66mwgk/5Yes3CLmPfJzHrF5cyX2biLKD1m5RcwPxw9wDLOGWEZQdlmeD5pdOxHlh6zcIubD4beQiPJDVm4R8+Hw0/Z32PxEnjK8skNWbhHzYbHrJKL8kJVbxDwAfs7tcaVA2BQinFdVzg6SEJ2Qg7CkpSiEywUpJCctLpTCybxIKK4sX0+hicr8UjqxvCJsq047K4Isay9MLyyEsYhzs1Ep63iZqAwqkld+e+NX5BvcdfkRobYQxqyV34Pj508kv1bbVnaHwa7nlN8B8GsmHrJWfg+en7a/UIK8jofCr5U2lJ0s20Nm14QH5SfLdoj8gH0aBQAPt+2fn7s/VAm1VgxZI5l0T8ilYkjfJcXIwGaK0Ve6LI+mghRplem0znt+DVfmIR0DUSuCEi/ZjZRfI50yrTKd1nnPr+Guyy/699JSfg+eXzcdZffg2XUNqiFf5af8lJ/yU35673tk7LTtibQfET9gj58kLAtYCzm7AhICdr5SoiV8cRCDEagKSSJYAU0qWeZX5C2UQdYjU2qZR1MpCgWpzkWaWZBWy2r4dx0X1iEXj4OSiDSrbJTfw+Dnfpr8ZJ2rbJTfQfArnbI7HHba9pRfuKT88qIrP+Wn976y7I+Hnba9x8cvuL1+kjAWoJSEBOP/dBWjUAQU3pRdK4ReCtPn01QMqWJRWZYUQyqIVAaZlwgnPFP5SoVoYG8pSXE9uqq/pQJ++EI6Sa+tTvnldbhXflmYBr8dnPLL63BI/JRdXodDYhdTUX6N8ik/5SeOlZ/ya6Wg7Brle/jsYirKr1G+h81vr0aBOCGtoOaKISWWi7KuRCnozL8h+GxXySK90kKUfuXFlmLkZS8VXCpsfSzS6Z7ncmpXuQG48nLakgxEoawcL3MjGVGsKl3lJ9Lpnt8jvzoVWawqXeUn0ume3x+/nlN2D5+dtj3lp/yUn/Jreem9L6X/+Nhp23u8/Pa7pwAa5SXxI4XbvogyhDsrVExGAyWllGkEyCTDUKEg8hwemlSYVBq5uUQsD91UORoNoeUXy7+ru1bgZkzlVx6HdHOZKD/lV7sdAjeCKLsDYbclpvIrj0O6uUyUn/KrnfJ79PwaQZTdgbDbElP5lcch3VwmD40fcE+vDwS3XFTKdIJy31pY1SHV/sFLWn2kYsgUSOYpI+fn9bVceSploDyfDO6OliIqA13TkfxmJSN9I5aul5ryU36txJTfslvit2t6yu7hsdO2p/zCVeWn/JRf7fTe9zjZadt7vPz2bhSod7jPO4V24WrQ5aV4UpzH02ghamhLrwzFQZl9BrtU1ngmFa3lF4pSpF4qSla9WhBbLUfZEpG8JZFfV7LDdgLKr/ILRVF+ym/B3QE/ZVf6haI8fHYhjPJTfq2iKL8Fp/y+8/yUXekXivLw2YUwyu8w+e3dKLCVr/egrdepGZ5Kj04aFQv5m/6AssSDItTg2pasXDGEFmVKu6gksaw3UIi8gHkKUlmi9Wt781Z+yk/5teuw6Hbkt5SksnvY7HZIZruf8muUVfll58pP+WXxHwe/pSSV3cNmt0My2/2UX6OsH57f/owCVB30AhReyxIoQciotJinF0itFfJq9ErwZSaFkkjFyH6EQlDDDz2laNd9uV47OkqdsNyAoh9+WxjlV5VQ+S3kqfx25qfsDpdddkn5KT8ZRPndyCm/7w4/ZXe47LJLyu8g+WHvKwW2gV4Il0m2BUAELIiVwsyFLpZ2yHzKdAvFK5WkVAyK+Uol6C0jKWrQUgpqlqqI170UzUOtpSS0ww6wZZzlq8qvcsovhlR+eTq78VN2h8tuOe8ixc5F5af8lF+Zp/L7LvBTdofLbjnvIsXOReX3Ifnd60aDsTZUSh4RkhRgLuD8SApbClEqBlEueCryJ5knpbLInKVihGOSZSERP5arSL8oUxYvE0+bdu293OhkkDwkZxfr9362pan8lJ8PrPyW3Y78dnbK7sGx07an/NKv8ms55ReyVX7SV+99h81O297j5bdHowAtnG250grcTKDUEKkIRcjyvIomVJGylES4OpEKcDOD+ngXxaAqsbbrBuPykLKLVHq1U91SAuXnklZ+yq+4sAu/5RS35K7sXNLa9pRfcUH5Cf92IspP+bmkPxC/5RS35K7sXNLa9pRfceFW/O57pcCia0uxKjvl/gLpgpRkSHm6kE+LPEolkfEpSzMrV+M4S5PK814dmkXvuwVlBBOYrmWv3T0z5depQ7PofbcDv12S2c0pv3Teq0Oz6H13b+1P2aXzXh2aRe87bXvtVJTfcmbKr1OHZtH7Tvm1U3lE/O7GKbt03qtDs+h9p22vncp3hN+DMArUou7AWjwX6RSXqEg4u5wBbSgE5bibbiuotqK5sm1XjL4yXLdpio6YAOJ+ua7jlF9ZVuWX+Ss/7+6en7Iry3o47GQplJ/yA5Rf3ym/pvsO81N2ZVkPh50shfJ7WPz2bhRgMKKtpPMyQ/COl5nB1bsX/moK1E7MRc8Vohm0frcju9JQIqFCkO+GlG/BRMDiN4aglKAs47WtRjdqlKVEt1v8lJ/yy0IpP3H9uq7mt+SU3cNmp3CvLAIAACAASURBVG1P+Sk/5ZeFVH69WNmZ3vsOm522vcfLbz9GAQIIDCIjuCRhJPlIAYvoRYmloIjSeUxPClnCIKrOs3wpxnDHVKpMhT0WNJa7KES2wUWKlZV3t2NZCnmwrBW76AwDsNbCmLIFpESUn/LLz5XfXvg1ElB2B8JO215WCOWn/Eqn/JSfdHrvC0kdODtte1khHgU/7/ZjFGDAAiDmDKxTFMrC1YWTpHPVIUmxCp8nxAXmXjl3kma7dIv+uc70M1lsFNkBdfx7abYuim0nDAGcK7MMpvzk733z6+Wn/B4dvzKssjscdtr2mv7KD8ovO1B+zep81/npve9w2Wnba/ofND/v9rZSwIBgrQUNBr4Uvo6CSKtc8nqxwCRdyanKq1UYKv3zcvbK3zynIudSz9t66rxEJCIkeSA/bilTzo/yLBaUu76UNNawUxS27YjKr0hC+Sk/kfhd8WsFUXZFEg+UnbY9UQblp/yUn/LrXtJ732Nip21PlOGx8PNuL0aBFy9efvkP/6P/5C/3kba6vbifyxPld3BO+R2uU3aH7ZTfYTvld9hO+R2uU3aH7ZTfYbuftzz3YhS4vLz8/ps3b74PYHGZws0dd09LG2TIvmecVEf45JPvfyl99s8PWIImT5XfdvfJJ588CH4tRNTxV+fc06fPsvP77Du1Td3W3Wff2YC1cN9zpetfUwcov0N3yu+Q3f3d+5Td3Ttte4ftan7B7cUo8ObNG/zv//yf+6UV25QjXypym5FqtpQjc70ydPJa1sF7cpzne+MCcDMNY8jt1mkM/uCf/JPMuncrfuAbl/X6/EKs7d4flN+tMt/Cjwz+4A9uw08mfgsLzLW5yXy3XLqdWt3S8S0ZLvP7R//oH2ehb8ZOZrdQ0Gsldx292THkB7xDRwrXLkPN727aXlEeqr2ka6XUM4DfLHbf+8NhK/Yov1FBOD9iwBgDZv7g/Mqwyq+dRnYk+d1q7LI7v11HH8qvnUZ2JPj9o39803ufstvutO31U1B+LX7B7W1PARhyr3XsFFj83sLC1HxVRRzXxenk1Xo3ZGvutenqdgoV3iEpwN4gHeL6AzDMADMDtvFyyW34ga45+ahT6vm1i7Mbww/K71aT2i38UPOja/HLy5sSuBt3Y37lpa1qddf8RNa3Mkhs45dfuRm7MoG7cdvZlaG2pNcNytXpnd2MG7K/RuSmIWOp7e3ed1L20/PaIYWdrh/Wva/I+zb60IjLzA+C37awyq8dN/K71dhF+e3i9sqv7FyVXSe/mzlte84pP+G1xM+7vX19gGd76wEqxT/NK7sW5Z6cnFRx8rn1ADe1FgqbRFw7iXxfStkXc3PUq/yizx3zu1FaHX4sT4rryu8O+QWDxD74FY4ZYGtxY8tayDL+aV7ZyX0Qdt6IFtjduhyZ7Pma+lB/Kkj7zpbTe1+VbfzTvLKTU35Qfju5w+RXOWWXfB44O217wT0ift7txyhwR47jn+QoXKHa9+E4gix4fnYDd1OlaKbl//D+Zab8vNsTv31LTfl5d9/8GLcW6WNhd6futjfqKFTtO/vuAbe9kJLe+xac8vO5KD/gIPkpO+8OkJ3PRfkBH4zfgzQKxPdRWtoBLJmSHpCj1g/CyPRaoL08cqvPDVWFAGKKGrsPKSq/Minld/9ugR+2PLGoktofv16Ym7rvArsbT+6D5fzGKz48u7yUd+oePb8P2Xcil6/y6znlp/xCUvvjd9dO2ZVJadu7f3f4/PZnFOjk2vSmztUbKEEdpRx9L6V3DYHz4umCo/B/HvuaClNt5MHAzkPdXUSq/DpO+W3N9qHzA4oVbtc3FOyd367RvoPs6vbXz6jJtFhWdy0jwaNte8DOJA6579wpg2t4Kz/l142i/K7tlF3HHQA7QPl13YHww15XCrQG3zccDe+S06Ii7ZrvNcrX0uPK7Qr9DhSGgGyou4uyUNlwigSh/JTfdvco+KGU1X3x27U8yu76LuwJ0DEOxGCC3K432cX3Jg+R3zXCat95Z075QfldN+yj4ddJrLqs7LqJadtbSF/5teMs8dujUWA7sCI8wQ3cyqc4jXQXx3fXzPduHWeH3IS+EDdThh3iLj3hKpUli8bO4sTcDaP8rs8vn3g8Tn5b07lmvnfrDq/9daIqu2uxW0oHAOoNA7uGggVuQNn22k77zsNoe3rvk075Kb/gHt+9T9nJKNr27tY9Hn7AnowC1DjKfKjycUc78kxLKDj7uY1StGJd/ykVZYd1mi7Fdn/YUoYtVqNGQ9rlnZMov46olB9uxK818dg7v0bwffKjGDDvCDuJ7+zujV+Xxx20vx2XoS99w1fZ4QbstqXTMgDk7XXXd/Uydo2K77XvzG74j6vv/E7c+5SfiKL86lIk913kp+xwsOxyb+XXSvGh8wtuPysFKNWS4iB0d2ih8K2K5iltUdJbKMvNYpYWo3aKu08e2wqzxL+ccCwpS9dapPweDD+Xbm8a2+yBPL9Q1n3xyzvCdjoLF3cpx7Vj7MCv12nvFP4ay9BDjKX217obVuyu53rsKKSdzqrDshgHww69G26Km0TZZli3u2UDT5fNPvtOln2P9p1VjAaTXvv7IPc+5af8di3HtWM8An7K7nDZhQIqv8Pl593e9xSojzuhiSoVqpRgMT6igCsBBf1spl0GLF2HxAL8cNgudUsRrqME5RPpmxkJiMgtJ+nH7Bz381F+ebi74OfSTRF251cksi1El9+OXSQB9Oj5XWMZeoixpf114/WTbOZRs7vOzRiH3fa6ZUJjcp8YLlrXCwOPDLuNnfadt297vTyu1Xei3f703qf8yjyU37ZwLuz++Sm7w2Xny9Q87ueh/LaFc2Hvh9/e9xToNHuqQhZHfZ9+ei0BIw3urjPK3qUMXfil2/Vd8zpcqQS7KcvyYHfb8tfskvLDXfLb9bUD5bdDGe6UnwvQ59dre2W4Vn5F6IJfC9HdsFsqQyPGwbJrhZNRMpNaFi6/aV7TEr9QB217wd2878zDtdqnC3edvhMQHLXv3MEpv21O+RUpXYff3u59yk7bnvKrYuzAD9inUSBYgLY8sQpgQ3Wuy3CrVYkAij0QF3FukmPpEohdnwz3J/c9BXDX46PYhbK4ZTbLdUobTnTbr/IT6V+L3+LkcZt17wb8OmHul9/yXeLh8yNfru3W18WSuB1zum0qhUHk17wl7pkd5X8WAz58djLcTfkxmJe5ybQfVttbiHlQ/Lbc+8CiFp3ShH5xscj+pqf3Pig/Vzbl92H4fYh7Xx5/IaayawXSthfd4+QH7PP1gewJjfcqrmcXlgZZWeTdlG1X/7wouyhKqQwpzrZBpYtD6FuMwuSkuMKp6dR5yIHwbk8tg/IsTuiUXzPeVn7VtWU+qRzt68qvdPvl15b/Nq4h/yJEA54M0y3vXbK7Jbfdrm1P37l9snPpNdOJrxD0jAe7bDqYh9G2l8e5j3vftjZYD4oa/af2ne5I+aULyu8D8Ws4ZdeM9/DYadur0+nHOxh+2OueAqEc2wVOQTvgChysTYumEWyvXHV9ByvJ0jVXpl2VIYvVBS+v9yb8y8CXNtHqTzLduyXb66D8bspvaaLCWceyK7/8veaezuRuX/wo/9PJu7h+cPyWXiHYvnxLfmWjNiCkMvXc3tht4eZuQMX1g2KXrrvFG+UrBMvGt91eK/hwbS+Efbxtz13rrZrqG8m33f+A9F6l3vu2O+XXT9vF3vm68otxA78lp+weNjtte9vc4fLb454CtDjujKHIm4oYIEMYjIFlBjFg2WKaZwCuMoYMQIAhAvl/MhuOgma4b0UakBzs+T/X2YQrLy12qJN0fStQuA4Oy21Kf4C74HtLU3ZVlNQQexVSfr5EWxp1j19r4pEmlbtzbU9WGFH2H4gfvkP8wmsBuUhDXUX5upPJlnEnLRsr3d7ZhfIssqPEjh4aO3e9zS6P3+e6sIInrixoX3MeH67tHX7f6a4DrQFKb7CU2lvfSL59pdUuq6yUny+R8oPyK/3vkl/tlJ0v0YNnp22v7w6XH7DX1wfygjRdJhUG0QBrGdM04e3bd3jz9i2+/fYbzNPsBtIerDHGKwuBjIEhA2MMVqtjjOOI1WqFk5MjnJyc4Oj4CMYMSJMAUcQbKsl2t2QFSmH6y81L/wVl8caAFH6XVQTOf7F8ym/rk3gxV1yOFzurVlhgG6eev/LrVsxX77r8XNxqhUAWQrQ51J16i11rBYG7H3ZHRjHcYuHviR2F2+6DYdfrO5filwaBhZsolSsLRLAYSdtep2K+esv8usbwzmCpPchqDYi2v06nfeeSU37K7374NZ2yOwh22vaaFfPVO2B+uIfXB1rOLWEItSewtbAMGGa8v7jAX//61/jqq69geU6VbK03ioPCMEB0ViQzGIzDiHEc8aNPfwff+/gjrAbjQVCuFD7e3bg4qmzAzcP1l420ln34VFvKIgbG7Y3O2sqDYK27Qd2VX49f0d+FTqIqYbuhK7/buv20v/L6dY07zRUERCA0ZLrFfSh2Ie+HzA5As13tkvfur/+ENqdtL3e78wMTmErpLQ+Kdh8QLT0xSde07yyd8lN+983vek7ZPSR22vaSe1z89vr1gVCQyjIjykQArCFcvrvArz77FX771VeY59nHMyBDAMsnVWJpJwvlQMrHWotpPQFEOP+TP8bv/u7fwk9/+jMYMMiYrkLc3oKUJgjLSdVLO2oFkGlR8uNwRT71kuVvvTLQyi9Irl1Q5bccbplfOUGRE0cgMAlZxi7F51nyy8ycmb/yqyt2h+2PvUEnMPUdussj3Qhc2dvtLpSndHEpV6N0ym45XI+dK0cvbGuVQHkzXe5fQzoixWYJld9yOGYUJSj5yb6x7FOBPq9We+vd/5RfXTHlp/xSWvvn1/BTdovhHg47bXt5xR4HP+Aevj7QFLiEwwzLjN9+/Vu8ef0a1loxubWA9ZuSUBKmrBCFtArgDHLKQxSVivzyk6oMrXJtdbWkb/qUyv2ICvrWk5QshUnBghKUFqOWYaEVZkshld810ymauuwgfOPNJ5z+ObGQSzLupHBto5Dy2y8/rtta08Kb4veWq6fy5OGkHCqn7BbiFZxC5s30W/6pLdVGoJJx21Lfhiac8rtmOiXTst7t+2G+aqdlGOqvslp0yu+a6Sg/5XcDfnrv81U5QHY9p/yumc4D44e9GQUoAlt0DFgG5s2Eb15/jfVmA2Zn8WG2MMbAGD/BYoApVTwMrKViSEsSCGBrsToa/YQsH9y1FOq6dax8mkm1lSgAju9WEUQN6qUklaJU76V0BrkQyhQnlC6dIJdW3ZSfLEzh0+IHID39z2WXN0XfyEu/DGbOqtURKL898qv4tBmm9PJ2mOeR5xPypRiyLLSyyyqZneb9Wc5Ohg8Dj0ZWzfti+VpI64adwmnb23PbK9tT4x3MMsx2Y7gIB+VX+Sg/5efTvi9+eu9DLFezkqXPA2KnbU/4PBp+zu3FKBDgxZPSxUeiADPj6mqN9+/eY7OZQESws9tgwi3RHWI65IXhVcL9ihkuW+uDUlSWcVxlBQv+cmx4++UjWeWKqvaVyMEV4VmYBQrFQAZdTlpKJagnkO1Bb2gW7fIpv1DVHr/QGDlGixvHZf2iLKlnx+iwWmAHFA1f+bXdDfkBnfZXd8Ilzyzvrca6WIrmbUnZyaoWaRdtImcHpKtl+ODb4tZg6NsoULfTUF1tey13w3uf7DuRy3x5dVwKU90fqzar/LY75af87pNfXTZlF6r60Nlp2ysqV1T18PgFt8eNBlsDYefCczIit/HE5eUal1dr2NmCwWDr8LFjDUMEJqcIBgbefAQGO5NTrDjDmAHGGDAzhsE4C9RsAfaiJ8qFHEt7XSXhji9ll9tJplxZJkNtVOWwtboSA7SVovuKQXs9dCyM8lvi50shCtDeOK5XphYrNBo0FXGg/LKYrbrh+vx8IagKB1S+sVOnClF+2mq5RftrOmXns+vEbbNrHPZjSzQ79J+pPK2bcemUn89uIa6491HrOxyubeWDorIvlGHEQArKb9kpP+X3APg1nbLz2S3EfQDstO016oZHwG+PRgFj3I7VjTEx3OYHTnnGccQ0z27XyGEEW4a1M6y3GF1eXkYLko+O1WqFcRwxDAPGccBqXGEcBgAWZAiztbCWYQz5b15unDjIeAVxfwIYJ0hhfYrFJmymK2x4wvvNe7xdf4s1rwEwXqxe4uzoCY7HYxAGDDQgWLLqepeKlAaerl7tyUeMnY1+Q0PIj4PytJ5C55tNiEa7sAvl4+AHbKb1nvnZzL90batdeezOlzYqdOHSOUDfAX57bH/w95is/ZXOt6rsMnfbXtbZIw+DVpjODszKrpZhcpKdxe4u3bTjlkXiOHz5o91/5ucuucfe9u6i76z1O73zmfgFv8plAyY/CILo/3wWLA7yQZJLu72aS/kpP+Un/Sq3d361U3aiwpUIHhI7bXuPkR+wxz0FkmWmzl8unyAA4zDg7MkTtwyEGdZapxzWYjAG0zxnCjKMg/t+NhHmmcE8wTLDkAXNhGm2XoCjz89ZpwheiHEZi1eIUF5KmrGZ1pjthM/efYav11/gYvMWjNlHI3x++RlWwzGer17g5dHHeHr0HKfDKQCD0Qyhpm0BLMltB5cGrrFGW8IFRYxX0k8zS+WXy3WJy65sW/H67CSbyrAQLH3Kr8PPNGR9dy5vS0AEkfEo4TTOm/iVXSWP0kVR3n3ba1/psNO2t4VfLSAp3zBIaVNMAo5GuDh2E4OiOBCqU3G+qW2Wgyblp/yU3wfk1yqdsmtXHg+Mnba9R8jPuf0YBcgv/UD+hXYWlQtXmBnjMGAcR4R3RVgoBwAM0+Q3ofDKMRinHN46NE8T1usZbCeM4+AKQCYqRNrZMpUjPOEjIvf5CzDWdgbBYj2v8friNb68+A2+nj6He6kFrsTk4luacWXf48v1Bb5ef4Fjc4JPT3+Kp6vnOBlPMNCA1XC007DVMdp1gEuuPIGvmDDKp1zt95hFnl4xmktnlJ/jZ44WZeicQXzyiLyt5ZP5vl/L9Zo6y6U/yu9G/OLT/dS/StFl4YAeL9nFp3SoPIo3QkpzybAMjhppK7suu5pH3vai6AtK3a6V4O6W7RFq7RhAxk7b3i78uGQSB4aURE+phMEjDOSogBhXzomBEns2cuCUD8LyLJSf8lN+H5qfsjtcdtr2Hh0/7/az0SB8psXMhvzSy8ybCMM4JlBEgDEw7IZ7ZhhgvCDcJhQAW8DCwoAwGoPV8REA4OoizHRdWPLpWzvnBeS0nN5aC/KacrF+gy/ffYGvLv8GF/Y9rLG+oF6RoyDzZfozzbjg9/jL93+KESucjk/wfPUSL48/xkcnH7VlRGHCQLChrA1XNrAkYc7kyFGBfHm9VtTD3aAVoRx1zsov8fvecZ9fFFZnFfN2g4Bb3uPqIptxFiteyww9PjHld31+mcgyftwI1+88w1XusCsNdk407iAxyNNXdn12zfsYFwdVmELKVF9t9pEL3MNVbXvb+H0vVLMhpVzCHG9WKZ9Qh6L4dXp+UJSlmN/mMs/gr/yUn/KLqd47P733HS47bXuPj19w+9tokBqV98IkMSg2MFitxmjdKcMbMhiMeyeEvcLAC4fCzBruPZJxNQJgWADMFuEpkrM2pXStdcrAljGDsZ7XeL95gz9788fYYHIWpMErgC9oNUz0JwzyD48Ys//varrEN5uv8OuLX+JnT/42Pjr9GCfDCVZmlUUmr8TlgtlYf/YGgaYipN9kEKAYL2QTKVTK4xSxu0JB+VX8RlqhdATAUnpe2brZRXkXXQEAtFd0ULoOgDKDQPB3FJTf7fi5eub0SrkVgs2PxaqdRG2LC22xF1jZNdg1blVEfnOiKCDR5xWZLfoIuVVtSpQ+Ata+M9ZmV34YhbqzFxPFclIcxdRtEfBVRefJCSUWeu9TfsrvMPg1nbI7CHba9h4pP+zRKECFcnB5LCq0WhXF8AGJ3RIPYgMCi71JSOTBAPtdJg1D7j3FzAC7d1WiwNntVLmZJry7eotvrr7E1+sv8J7fgcYk3HyiTUUdvEipJ1oGE7DmK/zi3R/js8sTnI0v8HL1PXx08j0c0TFOV0+y8E4YQdmL1Aq/+D4MpOUqhaXcw9VcKg8YCJPMbttWfkv8TsazUJyYTkqr3+BS3XzIRtCsI2qeOD1RfrfhdyrkmPf+2+m1HGFpok8oLlV3GxFW2e3ADjU7aom0luWi8POiFKOV4lz5NYW2jd/xcBLLg+rJUk5KplsPlvJ73a73vlhy5ddwyg9QfvfCr+GU3YGw07bXcIfPD9jbngIEQ0Y8gRNlYPavcSarxuroyFuMqBrkxc9SmCFOjsNyEyKCMXDvotgZ4BkWFtY6K9E0TRhXK3d9tuDRCer8iz/C37z/NXicETSOiEC2XI5NTgEIhT/8hCwoSawagugBOMUeCVd0iQv7Dl9e/hXoHXAyneEf/OwfirQGl4afYMblJN5IEBqBa08EkNcpQwAHa1hB2Ss4yFnI2DcgBsPOMwCL8egYoMY6BeW3A7//MHYiJszOSXQeWZpCbkgNONl68k7Av7YsUSK8lx74WwDGpI5L+V2fn9vp1tUxS0jm0XKRjxNUzLfaqT5FcE0xde527r9zoux2Zcd9dpWXHKyI9sYu1yCfzADLqTweIBjk2BFA1aaIUH678rNuUyhTccqlJuudOWaxrLM852isbRnZg4yVH5Sf8vtg/OoslR1wGOy07eHx8fNuv3sKFIWJlgtfMFd4hiGThJPqFv4gLLUgKXQQjPFK4jf75wlxohatPj4VyxYEl85v3vwaE67chNsQYJwCDDCA8RtVGPJxrRvsIyhlGHCmiV8stFxGTgAMMNsN3O6VrgZsgXfrd5jZguCWyUjBhVcGgooxgGEYfIKMYAEbyH2T01r43Tst5mkNO8+w8wZ2nsB2A7Yz5unCH6+BeQ07bYDjExyf/QhPX3xf+d2IH4fZemrXoYOTcvDCiLX3cco9IKTlkInjQ+dQf4h0XUfqdMA2ehXltzs/kvwakizFmAkU4kbWdcFYUAT0CZfpK7u7YudbzMJNV54xivbmb7RZmwVAYN9My4FESkv5YTs/IScpLVF1ANyQMfs+UrKXEmI0Xqh0V6SBXfnlhVZ+yg/3zS+/ruwOiZ22vcfGL7i9fZKQnCnHFwhOKeKwKhSeE2RQXpeoTEF4Savik9nwlwzMgFhp+AlX+Af4p+NemJt5DcszYBgwHroxoBVA1sc1BCbjJ+3uCbtXe4DIP6X1BY0k05Juy7ObmPMEZoN5duUaMLhqMLs8BZz0BJnF6NT5T9MEWAueJvA84+riNXi6AM8XsNMl5mmNeboEeAbYwi27CQqIOID27RHz2/e42FzipKkBym8Xfql6Lq1Qr4A0zvMZblIYG7SXXy5yHxApHKdSg1KnS6kaYmmV8rs5PyG3Uo6Nfjm7gVHbM7Dvuf41ZXcjdoxYxlzOCxBCZ9i6i+aBCtS+DTed8rs2PyFK0Z3mXHwc9h0hyYjyncxsI7NWYw2DKOWn/JTfw+Kn7A6XnfI7fH7O7XlPAYnbFzoUj9i9O0IQEoKQNcd6R+jwFiJKlg4HFgAGjMMAa2ewnWHIf77Cl2Ga07cmmQG2HrifiBlmWEMwg892tiCywGC8UhGsLxsRAf57mUHULnGAYTHbCdZOIADz7JabsnXPdGkwIDIwxv0jROa5/OABE2GaJ6wvr7B+8xVw9TUwvwNvLjxc928AMACuAXntiumGNhMaDgBDDHv1Du9/+0vldwN+qfPzJQz18q02TQp9g46doVsdwn6BSKoHpQ4DALP/FAsz2Fr/uRYLZ2ElGL/8J1tpovxuxC/KLJNdfRyEx3CyC8vkyHnGm1fqj9NNMGfh02VU/sruhuyEGLr8pJzAPk8xyBABgvU9DWyK9LmTNpTftfnlPxJSY5CYPFlEDJuxxkGovx764PhqTxofKT/lp/w+ID+99x0uO217j5MfsHejgInCj4Or+PTTDaqdHgSNoCIN7+P/xGUcZHyF3bkx7nwYR5hpA0vkPmlhUnrzNKWEQ35i1syWMU8zrCWYgZzFCAw7T2m5ik/PAkD4BmaUNsBsnSWKLQAD6yd6BnDvfHDKmoxBUK2W7Dhg95fffPUbvP/iT3F6TDheGYzGKaUTr1cXOSlBAs9CyaIfMQwz1hevld9N+BG5huel7+qWJujhe6TMoRW6H0POOjlPE3i2sSO084T1xbeY1xeY50vwvAHz5MrCFgy/+sMrhVk9wdnzT7E6OlN+t+IXo/ubgJSfb1uiQ022Vh/b83Nz/2YPL9KXSSWjgrK7A3aCWcWvEnDsXaubcRiXxKBF1PjuXv+eqvxuyK+Qov/hJJl4GxMDIO/vBkHhXDwxYblU2XMPK7J6OSs/5af8/M/98lN2h8vOyV75HTI/YE9GAWZgPQF2ToCJCEN4BwSAex/ePQXdbCakJ2dBUZxzm+n5XSijglBUDgluMAOGYQXy1iL3z8AYwnq9AcW8QxbexyvsZL0CeeZkCGZ08Wkg8WsAw/5JritzmKCDCcyDy4QZsCkcgcAzY+DBLYXhECwoV7BiIf36J8XffPlLzO++xXRFmE+P8OTsBIZCDcLQl2L5UxpBWdJ7NgS3IYhZkdtnQPldm5+TCwEg/+kUih2dZMgRgTue2WJzdYmv//z/gbEXGIlBsEluQd5IG5GYONnxHZZl2Pe/xevXv8Lp0/xb7srvuvySy6zQAUS8mInFy9PAWsZsZ5BlzDxH1iky52ki8ABQ5K/sbs4Owq8y6FRCrr2Z4C37XAfkJFW5y2/L2q78bsivBSkUSBzm1xtpZN4MEImPguSNWPm5Mis/5dcG4Qu0J35VVGV3MOy07bkyPyZ+we3FKDBZxq8+v8TlBmBrYQhYDcDpEeHsxODpmfE7R1rYecY8uyUXNlpwkoKkopO30ATPoCApijEGwzCAuRGMOQAAIABJREFUALeExBiYwS3TZ3bftJytVwZ2CurSY5GMl6K3BPHM8J+3FOWxGIxbXhIUixluQBmrkBQiPvn3a8ZHGqvuMW6S4fNPyuYa0GwtZjvDWIPNNPuym2RVA5DeUy+eeHFLni6AaXTSym87v1inkCohphXKkSaIqRMBgHkz4eLbL3F6PGIeCINJ1rzwzdLYeVCSaDDwGCJYAwwgXH37pfK7BT8fKNXS33wk3dieCKKTBeZpxnqzwTzNgGWMqwFprYhoVwS/bM0iCI182ZXd3bBLBoHEMWcomFCws4vyWpuVnTxw9nlQiC467tZtVfndjF+oR2pxslHm7SSxSZGiX+xHQxjlp/yU30PkVzplh4Nhp23v8fELbi9GgfUG+KsvCG4ZiRMIEWAM43hk/PwHE56duScz8zxjtuEdC/d5vViJoCCUqYgXOJBVjYDwrr6L497fMGQiIIpScVBDPNlJSYWLCsQALOKcm8l95o+IoxIB0oKESvjEBAMCM2OgwdUkLjEPUVz8qKDeUOD12U0sLGOaLDbTDIzAOJj4JDk0KbdkXX7yTJRLiowIw1Crh/LDDvwQ6xAm8K5kwZgDn2YoqkvfkME0bTDPE9YbxjGNriMTuaWJDEV9EOKM18bBAJiV3y35xbCUWKIoRziInTED0zy5pWeX72DnK9hLBlv/ygcRyIwwZoQZj0FmALwlm+HaMo2DsrsjdtIvtZ7E0eUkbrscKu7iTb5q9Q2WUhbE6O3uG5zyw435yQFQLAqnMy4SJnkt7O+h/Jw8lJ/yi2I7DH7KDgfLDlB+SeaHyS+4vRgFLDOm2QlvIHIFZWCaGNPE+M03FqcnI9i+j98Kd8YXP6HyT3LKB2lp2SYAryBxWQnIb8DmJtzu+9XklYawWq2iQAYzIOpj6Tj4O9BxgseI+0NEpZHRwgpw5L9lOBDB0BCMTaI+8BDTO8sxbXarBZidbO3slt7AF5VG9zoCs82VMio+IWx2Rl4XDdyy91Vjozrlt51fkHKog+MXuwn3X7BMirIw3CclmRnzbDHP1i1P8sudKFaLUiEkz1hgt6yptc2g8ku/2/gB7m5Eol7u/7xweXt06VrLuPz2G7z98k9BfIUh2/eB4N7vMTDDCmRGkBkBswKzxXj8DE++9xOIblvZ3YJd/Bvq572yaz7xIncwCJYZq3GFeZ79Z4wA+M0k02CFYiMX9+TMKb/0uyu/lFAavqU4YrBUroQTXWS8ZxaDJuUH5af8QiUeFr/CKbv0++DZadtz0R4Rv+D2s9GgF0qoJLMVlWC8v2BcXlkcjyG4EEVuMgJIPPkJI72gGGXNvKIYY/xGfi7ManWMs9PTCGqkFda4SIUVBY+6UdQnKAqFiZ7TYjfQ9NcpVJiSYnOoE8NZdBjVpwhDELexhLMqQQxu3URyimKZLePKGwVMkIsJ0gg18AoRNvXwsgnOWmA0hKGlHcpvOz9Rh/BEMlnspFHHZcy+t2MgGgWYGbO1MLNLYzBCIlWnIupFofwMUywvSlkqv5j6Aj8XOGRK4maTly6+NsCBp9sA8v3FG1xevMFgJxwfjTCGUmduHbR53hRsLC7ffgELBqzYCCdeV3Yx9a3sOKtnrBmlX1HJol2lDAcacPXuEvPmCuGG7ZYhjnBPH5x8mIG5JT+RpPITqe/CL9Yh+0EavbgwcVwEEuMljv7E4W4p0gp+skErPyg/KbV0Xfl9QH7K7nDZAcrv0Pl5t5+NBuGeopFhzMkcFIVwubb48lvGzz8ZYIkwz3PUibBbo5tocVaBZCkicZzyNcZgHFfRksTMGIcj/PAHn+LpsycIe0idrk7xfvNtVebKeUsUZaRC+Xx5/Sr9oHhRkQGxWsNbwHweo1llE3Rm93TRvU+e1DOkYecZdp4xjAOYgY1lzFeM9TRhPVs84RFnxwMGA5TvoIR0XH426ClmdisFeKrDK79d+IUyk/80iuuU2FpYadyREHwJps0GMxtYS7CT7zTIYsWhrKFn8Z0VSY1wZeXZglaEKJRCFspvN34EuG/WgtzkL+abrltwbDdhBUi4J1gGptmCeIKdAbauvO4G5ZpjeEKd+nWGwYTp2z/DvLlUdrdh5wocBwIpb1kWkboDCgu3qSDzDGsZv/j//iVW/B6G2BnnjNMHM3gDLpEPb0FHz/HRT/4NYPWkqrby252fy6YxQGH/h5C1nLwoocxU+JEYSoly7+iUn/JTfv7PnvmVWSu7w2HXcsrvsPkF1/7I+W0dA2zdugqGn8SwOAawmSyMGd3ukYPBMK7AcDs7pzghQfIC7HUuCUl4ouM+D0c4PTvFixfPYYZQVcZgxig4Cc2lFf6UmSx7hDNXdrRUzV1nYDWsxERP1iMlRvE3NB4HeGbGzISZgckC08yY7AxmC0NuJ3viGcQTDE8YyeJkRTgeCUcDYTUAK7+DJpm+Yiq/tgv8QIidECFMSvw5iYYsj/3feZoAIlgLzP4fA1iNBuNoMA6EwTCMYYwDMA7us6mDYQzEGBA6Wgaz8pNnO/OLecHfAEjwLHOi1CbZldeLP4bgUAjjDEWGgAFuU0gDv6IHIZLjN1CWSKyAsmu7ip2P7GoXDgQ/3xaz9hlumwwwuw1crbXg+Qpg61/Tsr4g7nUQsAXPE8AzCBbYfIu3b74Arb9qFFL57cIvtqdmpRA6V8GtcV32qg2/1P8W/XMvX18J5dcRjfKrq6r87o6fsjtcdr4Syq8jmkPg591ejAIM9rtMuslqBM1JeJuZYTGAiDAOA45XxwDYxQELwVFItMgj/QZjFHsPZvd0HQA++t5HODo5cp/B8HFGGkIpU4KZ9KW/D+U1tQk9PNFFAbBIPlxcDUcoJyLSURFnnjZONgzM7J5O2jA58RVmZhhyrwSsRoNxGPzum8DVesLF5RoXl2tcXm5webXBtN5gnmegMalUfo1kRFUiv9hp+TBhEhIMA6FhB8MAuVLP8waz9RxB7k10Iv+UkuPkf/T/VoYwGj/J9DEM+VUKjT0hlF8jGVGV1XAUj1M7DFPHhgttVGTAYFi2mOfJZ0SAMRgGZ9QZDRANdHCTSSL3tQ8Cu+/2ZJuBpnSVHXZil91cybOM5Vm6AZKrA8M//Wew3w8CxIiv5hiCNA64fxaGZqzf/Q02F1/X1VF+dTKiKoHfLoMTF5niYK05QKoGQlgcNIXBkjjLq6P86mREVZSf8mslfBN+VVWUXZ2MqMpDYqdtD4+OX3D72VMAAMOC2b2DGTZ/cAAZTG5Diml2kx5jDJ69eIb11QUu1u9hpxkAA+SWZB//zhHeTq+xxhUsZoDcLu7GGKzoCKfDGZ7hJV7/6g3CYA8ErIYBLz96CWMMpmkGCL48bgdwJ6sCd5CVFx5z5BIq1qhr+g1IuLiekiAcDcdROYgJVGpRceoU3Q9LKeVACE8g4b6LaZ3CW//0KyVCsWFGL0O4Wl/hiOsd0F2ZlR8K/5DB0XDss/DTEEpxCM5qaTiwYlEGVyZrZ8xsQAP5T5z4Zes8Y4DbQJBpADPDMvvNzzhuNslg2JncKyXN3kr5beMXnhhLg0C9aoZjnMjbt79w05unNew8gw2DyGAcgCNyrOBlS2b09xYnG8uujQqTuLK7Abvgl6/O6d3sUqrxqUAYd4QnGgZulQ4ZDIbgTHYyL28wsAY0vcXFG+V3K35b0s7LRrG9hGgcTjjlGq+FERFz7hfVpj8oUn75deWn/O6Ln7LLrx8SO5eu8kPhHzI4BH7AHo0Cvihgtn5oRUBQDj8IsxbA4AZlz58/w/FqxOXlFd5fXODi4gJPfnSCf/36j2EvJ7fU3b+/bQxhJvLPTDe4nN7h6/kLfPrTn2D9mXXfrRwHPHvyDCcnx9hMc7RaxclyRy4SZDpmpLdcpC8gGTMafBmIFiW/w+SRf9LMhLhSwL0LE74ewDFXgLxRYADM4B4uijCpLuG7mk49KRgCKBUjFgcAGWBi/+6P8rs2P+M7rjDZd3/Zv0/klzMxED4PGTqZ0OFgWIGMn5QG3ta9GrKx7pMtjLSTvZxUMtzEcr2ZcExLTVj59fgBqd31l1UlriCCIeN2dA1tFvCWccYMC2OAo9FgBQ5f5PHZOwOA+7Qop+/yatu7MTsXfYdVHiJ0vHmS26XYIt0fGYAZDI5WBiMhGn3cV104hgmvgBhMWF++WchP+W3j18HTKVkdpjngKa+VWRDSpqGLTvkpP+WXEqrD7I+fsjtcdi6m8sPB8tvfSgGvAKEEfk4D9iKcLWOaLY78g2pjDE7PTnF6dopxHvHV17/BZ9/8OWicYPxLuWTgPvNlKE6EHSqCWQGfb36Fo+8f45MnP8JPT34Pp6cnTlH8O/R2mjFNE+bZIm5aQaGILBSm0BwO4fINMMogW2UCBsFgZY7SZNJvcmbYKXtKiZ1SMWOaNp6q37kMgPs+fai9l6qfebpjlxb7iYhj4mKGjdPccaesyq8RRvILExGZnmNBRIAxXoZzjG2tX8Uxs/s0HSa3bMqEjislF40BCF+RANIOJuxL49JsllX5NcLk7Y/Ef5lr9KoEV3cDgrUkZAxYGPc6iLVYrydM8xQNByG2f2kAYIaFCztSZ5WOsmuESeyAhkGAqpwbck39Kxm3Imee4VdWIX3Bha17/SO2YWTGOLYWZA3mae7ko/zqMDm/0sU+rkiQ49X24Ch6+VVZVWGqwZToU3tlVX6NMMpP+WHv/JRdK8xhsAOUXzvM4fAD9vhJQjAQNseLhQoTGzDmmfDm/YSnJytYu8HqaMRfffUX+PPXv8AlvwMN7HZXH10SbiMJeCUJYCkKlIhAK2DGBn9t/xKfffsXOPrqGP/+q/8UwwiEXSk3F2tcTZduibafRBNEOeUPhX8UJxHyHY9Q1bi6I5xkMFLazO7TV6fHZ4CrCpgINBj35Irdd+utf1I8TROmaca7N69hCMAwgKzLzJB7r3wwqa2kBhnUPTxhzj+RR+zzzWqi/K7Dz6+MaqzEcR5DzBPYrNe4Wq9xdXmFqyv3j2gAzxsw2diJ2vCtUmZh1HHs5NNK9v7EzjSk/G7Y/uJKgZYQpehSnmQGsGF8++413r97j2kGeDiFZcJ6BgYwjvySOeu5ym0f2IFxqwcwRK7Kbnd2IVhYnpjjo/xIXIyrAtj1gRgMNhvGxeV7rE4/wkwXuFy/wQozjN+E1YTMELhYWDYga9oGOeW3Ez/k4nEnYQRJma/3T7lmn1iK4Xz/SKV/nnRgwTFw4ZSf8lN+ufz3xa8ceyq7w2Gnbe/x8fNuP18f8C6Nd9NTVfI1ZWZM1ttQDOGzr/4Kf/7bX+DCvgUbCwt23/F20f1vGsS7AVtQFI/Xf5KPBsCsgKvVBX7121/CDO7TUuM4YBgGsJScEHo2OaDqoOrDRMy80o2xYlCswYw4GuUSWC8d4wagBICtxTRNWK/XuLq8xLRZy1REPN8oZMFl3kIbwtM035Ji3CWn/GS4nF81mWs4ovA0csZmvcbl5SUuL96L/R5Cj5LyjoadspQUNSWmvbQza6hKKr3yq9pfR3z+ftD9Zwxhs9lgs1l7loFbse6GxW9msGt8srJwyk6G67OjrG6UcSqzp5haumAIYDsDZNxqAXZydSt3PFcrVgv48207+So/Ga7DLx6QOGw0ymIAFUP0yrTQpvNU+k75FbJSfsovpbZXfsqukNMBsQtVSSGV36Hx26NRoDSHpAlQeHodNncexhX+4re/wDv7FhYzLFu/xF1MkLw08uo4pTPkJtWIv65mZkX4xRd/hK8vvoIxBmYgDKvBG2QoG7RH5Q1ekTGLkqcDDmGa4/p0IUzJXdoGo1lhNaZPU3idcVeN+ya2tRbTZoP11RUury7j1wcoUvclCu83Q0LPrQK5vlOmeC5eT0GUXwpe8+tN56j4Z4xxEw07Y54nbDabOJEsZo15AZGXLbIjWcvFWyuU30L7I1QMCd7QQiXFPIwxhNVq9FZfi/Apu/gJO59lKLeQfEpn0SCn7FLwNjtRjaw1lF8AkV8CiU3IDy5CvIEIZliByCR/JlmUVHbmWC4yvdun8kvBt/DLagSkrzw0LrbCL/k3RkntAWCjDspP+Sm//GIr/G34NZ2yS8EfMDtte+26Hzy/PRoF3OApTFrlyIoBNjhaAScrAyKD129f4419AybxWYrGN7zDxEh+Hoy8FAwRaCC3wZcBaABoILwf3uGXX/8Z2G97sVqNoM2A+H13dgrGAnqqhDiQxQnsOSgIZ3HkU6UwuHTLNQgrc4RxGOq6UfjEHMDsXh+Y5wnTtPGf+HASSH+jCKJhIJd/m0uKEzWn6ZTfLvzyOpbSDHIeVwOGcXBsLfuvCITeJxTcyZtlmbPaUPwPoB2eVCq/JX7kZZ7lGOssS1E0JAKIDJ6cneH05AQ0GLB7EQjuE4TcioUqEXlzKpyy263v5JB2M9/Ssw7I1gLWvWc4DCsMw+An+n5AIAwDVVlBMMPCnhDKb5FfstNwvCeJysafyr81EKL2xXhvDHIL989oXG075af8lN/++bWcsjsMdtr2Hic/4AZGgVevXn28SzgCkKwmHAVFIJwcAT94scLTsxWYrvDF678Gk/vkRLT4CBdlTxBK4Ssb3zPxQhgIGChuUMEriy/ef4bfvPk1Zut2939y9BQ8e+uSSD+fqHGed+nYT+A4KU6KzqLO8PUGDAacrZ5gHNJWDqJKbnOMYXDWrbA8xk8i08yfIcsXANf9bBJaXwG2XFF+XX6lla7ZgP3E/fjoGCfHxzg6WrmVA/CGAXjjQPikRNkZNdMNjXzZKb8t7a/oR/POlUR1/X8U/rl32U9PTvDs2XOcPXkGmCMABgacYjbNyTJTRiVoZbdj20v1jGHDcYwr/3XKAQDkvpdshgFgAmMAk4mDm1QlOUAgMBPItLfkUX478IuVAarPQ0UhVlUvfESYIANKbbVKMrbx5UGR8lN+QlRVJZTf/vgpu8NlF68pv4PlB2zZaPDVq1f/FMA/Oz8///LVq1d/D8D/AsC+evVqBeA/Pz8//5eteEcr4OVTi6sZABsYAsYRODlmPD8b8MPvHbvvQQ8b/Mln/xp/9fbPATPHJ+VElC0HIRMqxZWkGHl4IvfEnQeCnS0GNphpjX/1xR/i3/7hv4tTPMHf/vnv4ezLU/zqq7/EG34NjN5iEwebrhwsFITAbiDoz90mUzVQ9soVlIqYMcDghM7wo+c/we99//fi+y2mwGOI/MTxCcbBYBwMmGe8ZgaRAdh/cYAtiNhtNOjaBzLUoWiUq5K87CvVdMpvOz/49F13lws5EysRTk6OsRoHjMMAnhk8bTBfAbAMorBkKIcRNkNBqFeztG2Aym87P/IJMVvXtnbsMB0PYBgGPHn6BD/+nZ9gIIOvv2AY+m26aSDJLN94h1JBG/cDZbcrOx8WXracfx5Ujicyj8iQYMyAYTA4Olrh5ccf4+1vGeu37ksv4zDBwA0mXA1DfZxQmUaY1TPld1N+iUSBh9IArWyMHItY0hX5p9Riv8nSDwhfcan2AFF+B8Wv5ZTf4fJTdofLDlB+h84vuG1fH/iPz8/P/xt//N8D+M/Oz8//8NWrV38XwP8M4O+1Iq1Gg9//8Qk2MwFkMBjCYAjjQBhHwtEKGIzFxXqNry++wnq+BJOfJHtLSpgTZTLwJ8EyEgdqgDO4hEojKIwBGwszuM9Hff7uN/jdp7+Pk+Nj/OSHP8azs6f4zde/xq/f/Aprc4VhZZKVhV0a7E1Bbrd+ryD+Y49y4BmOMwsTAyOv8HR8ht95/lN8+vJTHK9OEJ4+xsjpBwTCOI44OTmBtRabzRpEgzchzDGv8Ok74+Mgz/ZWTvklQfb4Za5gWDo3iTQ4Pj7G6dkp3r1xT5Zdr+c/kxIKRG4DOm6lV4Ll+Cwzc8ovyavLj2UwBny6rhoNkr5+Uh5EhKOjIzx9/hTv3j4Dbb5BeB+uTiEKCPHJduN7oMpuN3bBIBf4ZekL6Tfbkc+ZDGEcV7CWsRqP8OT5SxBPmN59icm6/SHCGIUQZMugYYA1xzCrp8rvFvxipcoujFC10ZiZGHhVRIPAmERUsRdPyDcOAGvNUH5RbAfAr05D+UWxPXx+RXxlF0X28Nlp23t0/ILbZhQYX716NZ6fn08ATs/Pz/8QAM7Pz//k1atXx71IxhCePD0FMzDEzZj8O7fEIJrAMHh3+RbvN28w28mLKA3z4rsPFG7eflgWKhmuhRgMGCb3Kgc7DwJgfVpmIHxz+TXM87+DaZ5xvDrCJx9/Hy+fvcCP3vwIv/zqL/DZu1/BDG7DP/YKGD8lbgNKp7VxaX+snfjLBGLCwCN+99nv4QfPf4AXT15gPDqCIQNDJrQB0TUmlIaCYeAY83SKYXWCjZ0AWC+7IE8J1ymu0+WF78BWuSm/6/MTHVDosFqCFJ2bezLpDANHJ8fu84NM8B+mjK2a/ZNmTu1X9DiiI4mTz5qk8tuFX0wt1rlDsYYa6kSEYRxxdvYUz1+8xPTlr8GYYa2fTMZ8got3MACmuVhA2W1nFy35PtVEs02rT9KtFjharWBPTzAM7vWt9ckZ1u9fg6dLWN6A/MosAgNmg9XZC5gnn2I4Oq3SVH678yu1n8TfeFh1b+Kel7UflkHSXZVFYILvc4Mwa+1QfofET+99glyU18HwK5qfsjsgdtr2JLkor0PmF9w2o8D/BOD/8K8R/J+vXr36HwD8rwD+PQD/by8SARgN++O1L5aogqOHd5fvsJ4uYWEx+ErKBz3kTUNRQYSyOEUxIcFKIB5j7HwGQ7iaL8HGgjhZgo6PVvjh93+Ij158hPEvR3z+5nOspyuYuDbfP86jUB/3N07I/VNdMBA2lxh4wNnwFJ8+/TF+/9Pfd/sEDAMG4w0C4r+e/IwxOFqtMJ+c4OT0DPM8gecZoAnABMB/Q1s0DhBiWZhyWYYiCggtX+W3Az9k9BoU6/tdlMdgDE5Ojl39vFGAxX9hsp8kniY96a+/zoBtPG5Wftv5BXG2W2DHhRUcPpIxBgMzjk+O8fzFS3z59TFmvsQAC8sWBklWMYlSPkUJlN0ubS8TZCHZaxD1sjDjCkfWwpgB42rE8ckp+OXHGIgBuC9LuH9u89dhdQIaT5MiyCSh/K7Dj0PZe2OUpfFLUecsTX+UEJG/LzohuwFnvaWS8jscfq2nZsrvcPi1slJ2h8FO297j4xfcolHg/Pz8f3z16tW/AvBfAfi7PvzfAfC/Afjv+jEZ4f33qBSNAq43V5itjYV1yzWC6AIMXxFEJKB4jqQAMVQSTliSTT6M5RlXmyscmeOYsmUG8YxxHPFv/q1/C9++e4PPv/kcX7z5HO82b7GZLwHD0bjiFJijgsaNNJhgeMCJOcX3n/wAP37xO3h++gzDOMTVAW6JslsJ0OgTM0cAzOCeYp0+eYL11RU28xUY7lUCxIYjpc7xt5yqRgVGakuMns4pvx6/0BiDFbPHrhapK8MwOGOPMSOsHRA2JUmbpSFb6eGW/FDC4ju1uEy9CVD5bePXB5VK33W+4TAzjDFYja6Nnr74Iaa3n2OeLmCsRdhAhwp+1gKTMQAdAVROTJTdErvdWKV6t5242xKBGBhXK5AxsGbAMM7xCyFDuIt7dmxd+S2M9p13wI8WzirvhYGMDBdTyZZSwrVHL7n+/Vf5HQ6/Vn7K73D4lU7ZHQ47bXuPj59z21YK4Pz8/F8A+BcA8OrVq38A4O8D+Ivz8/PNUjy3UZpYxh5KSGnqatnvvk4ufDaZFcpE2ZEXMIU8SFSSMuG4y5TGjcTY2A2OzUkuEz/AH4YBH7/8CC+fvcCPL36ML775Eudf/hEmWrulFyEtAGx9eawBWcKxOcFPXv4MH519hCfHT3G8OsZgSDyZTJav7GlldIRyKTjBGQZOT0/xdrXC+nKA5fAJNIqNQj70lymEakurUAzK/v0U0xnaKr82P8GGGm29e6/zh4MxWK1GrI5PsLFrEFkwz7BcRRFyYJEOR3YeUdMpv2V+S53i8rUQJKTFbr+Io2M8//hHuDo+xXTxGna+BHj2YSykIQcMPP3oZ7A0wgz1W1jKrs9OjjH8yGA7q6ZLAxBXdYMhLCG0A6y1mO2MeZ59MAbBgI3bZBJMqV0WTvldh19W4Sal9kku2yaJsn/2AyXXbzc67xBM+R0IP21/B82vlZyyOwx22vYeJT9g+9cH/u/z8/O/74//CwD/Ndwqgf/21atX/875+fk/7cVluKeYnJcsgiA2WJlVXSsikKH4Wb7BuKfimZJZb1kySW1SniSE7lBwWMprDIwZYjrxnRVBzFoGkcGzs2d4/uQZfv6jn+HtxVt88foLfP72c7ydv4XlCcTAs/EFfvryZ/j46cdYjUdusAiKm1OBCYb8JwbJYKDB//PfHejrA8KszxjCs6dnWK9f4OriPdZX74GZwOMxLBgTAyt2Tx+9+HydgfAGS2kUYGZYy7BEwNxp3Mqv4hfeZZLvNNVyQ/XaRqgjwX0v9fTsFJ988gl++zUwX77GYBjGbyJpiDBHM7o33ET5uGPLwDwzyABTzyig/Lr80g1HWKAbVufKCUMAhR4WBBoIK2Pw4uNPYV9+AjvPYJ4xDGL/EN8a2bKzUhMAMhhXK2V3TXYZkuK39O/izAwKnOREA8gMMMwYpCEnj7j4LV/lh535iaoXIu6Ea3g0u9uuY4SBWns0pfyUn/K7F36NWMoOh8FO296j5AdsXykgR6z/JYD/4Pz8/ItXr179MwD/F4CuUSAvSMub3XcbQX7WmoSWplwBHmXWRW8oQjoJYTlOgGUKDGclMTA4Xh2D5vBuSQ7EJSM8mDEOA148eY6np0/x0/mnWG/WuLi8AIjx9OwpTo5O/LfnPXZfTvIbS4QlJPIfQMskizHoarXC2ekJTs/OcPX+DSwA8t/rsP4/WfdQm1DHmKQ/dUYBCzYDeEk7qsJI7+8WP2kQSHVtQ6wMA8FSaAwMu9cHnj5/Bjtv8K29gt1cYhgJbvf7tLTO7TmQ5B/OGAwa3AZnP1NXAAAgAElEQVSFdnF6EkrT8v5u8kslq13TvyyfqJW8QgSsxhE8DJjnGfM0uafNsG7vD7bOKOBFPZohGvL6TtltZycGCOXFpT42yiDVND0RCEaC4M/JP/YBzriz7JTfrm2v1dCod70fU5Q/HbAIKEvQeq+5k0jhrfxqp/yUn3C78OummCVQeCu72mnbU37C3ZLfNqOAefXq1ffgHozQ+fn5FwBwfn7+7tWrV9OWuMlqJCtAqdzHR8cYacTE6zBbRViW6XbSt2AmkAWcGSYkJoRMPh4YDAOK70644O6jfTPAhIFWOFmdYLYTKnGKSVy84geJRAQyBoMZcLw6xtPTp04JyClueJIUN8MIShEsX8Ig0EMhVTnIi/1/42rE6ekpXrx4jsv3b/H+2/+fvTddkhxJ8jv/agDc48jMOrp7pofD7h6KUKSfgt8pKytC8hW4b8h9jv24MtJc7lKG09VXdVVXVWZGeDgA0/2gdpsB7nF4ZHikWlWGAwa7f6pmBoXBcAvYCYRe8kdYEwC/Dp3c7p/hXfXEOMDM8J/bXJvWKj/hlxsE0m6s7dJ2Sj2JZLdzEOH6+lpuFgl4//2EafwB2AzgaYSdLUDSqZWVk3sT6ewmNugv6m+lxyZRfi1+vg6U1iHPeekw8Ux9OTAhA3TOSmzde+kc7v453nMakwyKtVN2a+xcTj5Pzk6bbvEaITDxxQbcRjxhk6Hkxa5QV1pbgaf8juXHRb4pmOqo8Fhr/0Sns/gJkKXXPySY8nvp/KD8zpvfUlxl9/LZqe69Wn6HjAJfAPi/fDK//e1v/+F3v/vdH3/729++aZX3kPNWGi80F5sLXPSXuBtv5WpYrgk3kSawtbCGQEwgm1qOIk1fPRM2rkDReOJ31V9jM2yxu5vrwvkZXjZP9zDl9izApVyKsmXlRDBGLEZdaRCgRKjTrIszomTZOAO9MdhebPDui3eY9nuMu48w/D0MMwyMbJYZCwNmC7Bt5OSrw7GeK8JVxftM+UWrWmLzo7YCpB1g7k+Sr5FtHDabrex23nUYhh4//LXDfvcDmAh7S5jRA9QDRnYv9R0UEcF0HYbtNS6GS2wvr5ZwVe5z5QdKNUHqAPaDS6ElBbvjOjnfybtBzXsZI+NZMAD46jBABNOtbXiWO2UX2zm/GU91MflbDvQZybzTkxbJR1uZF1AYP8m1D6dpHAsPyi9EKvkVbdhu0YV2Xmn+cInDnzivDFkrv3Pmp/p37vyW46dO2blIL4qd6t5r5Xfo6wP/tHDJAvgva3GjFadwCdfNsMXb7Tt8GH+C37USDLCF7EzJCDewbAEyLDe/3rLkkiNArCNuQh5uetmVwwJsCe+2X6I3HYgMqCpbSSwWNwoJ8oZ15144jDHyXoy7gStfGyAkVq4DzisAiTZg6HpcXV2CfvEzzNOI73//J7yxhAH+/VYnnAAsknagcvtCn4EPu+CUX9OQQ4FiDXFJzyi7Luabru8BIhjzBsNmizfXb/Djd3/AxXaDr67FT4wAxq36oCwDYsBSD7TpKr8Fg044ptSv1svjh7yisIxwgymreFxbhHJwKNPiTYmyW2EnbRmziwN1NgA3j0u/WOZozKcwmLoeWIy0zp+Sei7KiPJb59c4b+fdvLTsuHGaKDYBiKtzFvrNEEb5KT/l9+z8lN35sgthlN/Z8sMRXx9oud/97nc3AP7nahkJqLZUd+WRpzDyJPsfv/4Vfrr5ATf2J8yzBWBhYMCuUa2VyZkxkijHORtgET75Jd+gjN+iZMuAZcwzwDPjy+5r/PqL34CI0Pc9mK17eJeXsSHOWfH9H/JC4f8ZQme6zE82FzQhfDO9cOLheYkDwAYGsts1k4UxG3kf/c0b2PkO3/3pv+MtW/zd1RbUE6ZxBjMwg8FkYNHJZJaM/DM9yAygboClHjTvcHl9qfwa/ARJYgAgUWdPiRyzNb1tKbfE69CRvEpgO4tuGLC5uMCXP/s5/BNl8nVhXyP2FYzvMjOBFpYBKT8UBp3kb2nBrY6SMzq2b3arBCjmIaMayUCUVIuZF3MFlJ003xK7mMZCLgd82ld9dUj+JNfKGQGSOAv+ym+d34F+86nc8vRnPXflp/wA5fdY9xB+yu582QHKDzhvfsADjQLHOEMEJv+kTJo87BDpHIOxHS7wxcUXuN29B4jAxl0JFh+RhjBp8/6ApCurTbI03YEYiyzQzxv84urvse0vwMzo+w7WEthyCB/eD2k1GiU/Dqo8xU0FxLjlIwSCbDYRhKNKMsmFUt/Uwz1RNEbeTwakMgT01OPX//Tvcbm9xA9/+R/49vYWX24GjJt3MJs3GC6ucHF5jc3mAv0wYBi2wZpFZMBgt0M6YG37y5KfM7+YTnpe/F1R7uyeoryWgjcGhiAWTUBe+/CV92FcPmFvCNe2HBJrZ6T8Ut3LNavKp6GM9++4fV6+PtHPLdgJ9SRvMFhwyq5mlx5V+cQuc91ROrNoJOH+xCBhJgNvLIibfy4ZJpTfvfiVWR5iuOaojl4aTTn02wsr6KD8lB+U30PcPfm1nLI7D3aqe6+TH3Aio4BYZTpMoxMMNzN2izDhW4OthZ0troY3oBsDMjYClxBxSYgF4F7NZctybOEAiTBKZeOknBkwU4cvuq/w5eVXIMj79pvNIDuDzzZsBuYjtRrLA05//UYSQVi8gHhh8TUN4AsBWZjX5j7srFGyYsD6ioFxdX2Ff/Obf4evfvYz7G7+BoMZv/r7fwPTD9IWbum5LGnp4BVO3t0RjbJsMM21UeBz5Aei3JCTtEUjxeaQ1jL+JK1VtTERuZsM6UjnGQBkkxWpSewVkyqKF7lvobb6MuV3gF/ks3a1LkPDcUU2Cc/OIJBvSiMrBdIRJ81H2T2Y3TEwi843lDkZQH0QBsnA6o7BAPnvLZFbGVLVV/k9SvcOMFx7ohOip0Eo7309TzluxFd+ys+XVPlV7in5VXGV3dmwU917ffy8O9FKAREOMGOaHCUnIGI6klCztdiPexB36LERWDTDOiEyoGgRYgTBYXIWKCLACQcTBzDyyT0GZoNreoufb3+Oi/4C8zy7718CppMn8LI7uAihDXdcefNT8kdu5gDyn5vw/1x50sl+qgh5OkXaxUkRA4YMrHHtwVGYN9sBm83P8OVXXwJssdn0TcGy7lMDUj13owLCzIy2JH5m/Dy7QpFXbxmpPCzjLh6Ic+UkIlcPch0ahZ4ts2YGLSaQayuipc8RKj8XeqF9Fpvt/vGDnrP/P0+BhF9pGEhvQssEld3j2QW3Po4m6plYzz0nIExsfD3YGQTiZKFOUfndk9+xQfl4nXTBw9/Yfcb4DZsOlJ+Pp/yUX+GemF+dsbJzoQ+38VITLjnVPeV3kJ+4E60UgPsWJRwo92kuV0x2liA7z9jv99jvRmz5EpYt9tMdGPKOCZMR61CcuYGNsyJ5oSFXQQJgUsEgGO7xdxd/hzfDW8mZWL5w4cohE3qC6SikLy59qh69UyEwJmzvl1S8PEz+FhDS68VP4dh9317azTLknZ2wGzaDjLT1zOKTWb4YqLYTZHkvfemd2M+W3wKE2mtZo1YNhFUSXgrkRh9gWJblTQjWUr9KwHWI7piMGKBaDJXf4umq7+Mc+f9RGgj8uOgHD2ZeLIKyWzxd9V10zeBl/1gETSzs5CY2onacsHQGgjI75bfe9I/RvRCVq0u1j+8r88E1nfa1n3Ypv4XTVd+jnPJTfim/MryyW2ybNd+jnOqe8jvAz7uT7SlAJBvkXV528EvWp2nGNE242+/BbMFgzNbibn8Hsx9wbd5h208Y5ztMvIflCTPJJhLGAGTIPblxT0uFLqy31hCDZoMNLnCJK3w5fImvr7/CdnOBy6tLXG4vZMm1tJC0VROmswrBhECUBSA0oqKEQIV/mV8WP0uXiwuxfoYNrGF5N4ZZJq3OYBASDPlzUETvvHKC3OQW7afNny2/ht4uq/IRV47pBwgASydlGEAXmUmnGu8wvWKHbmxBuZVfmeaae0RnXTkO5aCATdrLs0oXCrSsv8quTHPNxQF9/bp33ChTW4/CJMIHc6s9vOFvaYmg8ivTXHNpiOb05mAKi6mkAIuwK3Mi5bfQrgutlRwrP+X3OH7Krt2mC62VHH96doDyW2rXhdZKjl8GP+CkRoFYVALAZND38i3HaZ4wzYzedLi6vMD77QYfP34AwDDWYOgv0A0dJtpjP+8AsGyS4D894Xa39PtXMIkw9txhYze4pre47q+xpQ26rsNme4GL7VY2wWARqlZzLyPg6moVllYEJl5OfGtBosaRxJX8/eexDLtbe8vIPuGRGgbgVwLI82RO7UTOiJC97lBVR/mt5rDI7oGOkNfK3TmGZefkapHdvdT1itGVX9tRM4EyXtVx8uG0c3MN4ljhVuVIERnM7njBoqPsllzNbqnPbOcs4dJ+sChC5pmu7vBPEUQfg3q2S6n8Ftwav/pspXcL1/ODxlXKg/h2lDme6p+r8IE0ipjKT/nhKfg1UlZ2C+6lsVPdcxU+kEYR84XzA05oFABce/mnZW5STUS4vLjANE/YTxPemDeY5wk//fQDxv0d+A6gkUBTh81wARjGjAmWZ7CxMEYSjRUjdNShowFX0xtcd1fY9lv0ZMAALi6ucH155d4jiWU6zhVPlXy9kqeBaIaIIeuHSVR1iI0gmX/+jWwHlgzIuPdhEGep8dY/qWhZZ/LlaJUvCab8KjhHK/9a2NaFqLkI29D5Ow9vIADCO87HlEb55fwOs1sJe9gDzT1dGW7XVzegOYMAh8ZYyF/ZPZjdoTi0GoCyFR3wPao35CTlXyuT8jsdv+r6EkegnB9lk6HW6x8hmPJTfsrvuOsP5LeYrrJ78exU914vvxMaBdxyWY5L2Jnl22vGGGy6DYZhwND36HqDH376AR8+/IS7uztM04RpZ8E7hhkH0KaDHSbYbgZ1BLIdyAlFTz0G3mBLW7y9eIOh60Eg9P0Gb968DYIBXkZ4tGskQMUJLQV0/rQkLOSuN2NxuO59jJEbC8McXiOIN4wOPlNcSZBqqrtJITIriqL8jkowdBCPdImWh3sPb+xZdNFI1Lqm/A6lF8M9umwsqVTqRHEwiXYAx011r2inhYDN9J6QHaK6SdLJ4AlCtMUmBjtgZYKr/A6n97T8gJxhnEAWYZLJECm/7ET5Kb/HuPvyW0pF2R1K79OzU93LT14Pv1MaBbxguN3y/YYT7g4VgAjJxXaDoe/wq1//W/z444/48OE9drtb7Pd7zPOE/Thivp2Am16ejneEYTOg73pshgHbzRYX2y2GvkffDehMj4vtJd68eYs3V9foTJd8J3PFulVck+B1+NRCU1uS6jwW3zstEqgNBAse7IFSSN+3b7mulYld3QuzndtFg8yKUUD5IU2CF0Osu/vHcLlRUO0QuzQB5Mub6ySUX55E2Z5P6ij7yZzvjH1HzG6gYuKFCFB2eEZ2KKuY97fplz+iEvLyBFf5oUzi1PxC2g2GnPzJq6X88mvKT/k93N2fX8MpO5RJvEx2qnv5tVfCDyc0CvgN0oJgcBANhKW0FiADdH2Hn3/5Nd69eYvb3S1ubm9we3uD/f4Od/sdRKxkN0uA0fcduq5z34w0MIbQdwMuL69xdXmFy8srbIYNhl4EKilVszGOFYwqzIrHUvQy7ZxTy6rly5yuBaGYiWtXInLtE/0JJHqYbI7F4LiDPRkkOw3kuSq/7MJialTn/3hX5JkuNQ99q39m2c5b+dUXminSQcL3d5z9JFZZv1qAXUsou5bHJ2XnHGcDaZp+YiBYjKv8ygvPzQ9IGIYsWpOlVjzlV15Qfsrvvu4gv2YcZVdeeJHsVPeaHufODzipUcDKZ+/859Wcf3gvwz2BCd+jJMKmG7C5HvDlm3eu8IxxGjHPM2Y7wzrrEwgwhpyAiJAYMuj8sTs3xsBvLuHn5SmCEko5AUyFJEOXvQOQLielPDa1RSPNJ0+3LqNrnMJXbhIpNCW7G38JwyX1RDHllEPdeFG5P3d+5XlBpQXuVC7bUwBuwxAGL3R2gPKrz5+RX6HHqY7FbSIoDJilU3bl+fPrXqwPF/xcHwtefHtA+ZXnn6bvDPlwPQcqqps55VeeKz/ld393iF/zEZiyOwt2qnuvkx9wMqNAaiXiWJB4W7pQKkJaBSLCZrNJrE/IroOkY/FQO29BciJBSN8HrXPKLlDrenHs8lkShpJ3KhgtAxTlf44TEQLCezIExLb0bee/pZ20pRdwdpNZohCvnafyWzfwNDJEqfAHXGiGMtLCjWLWSaVPmluZKr/78rsXuyXH2U+SNuVhlqsNZVdee152xSGqvttNTsIWyI2ElN/L4pfnL42yZJBTfuU15af8jnBPwk/ZnS87ua78zpmfuBOuFEBRwvWCeEeJgPjmNSZu4OUFLl1RDRD85/UoO0eWztItcGy45G8lCOV5fi1LuxCMlnWIqDiPh2XR6rPgycg2wiLAvS9QGwZ8OZnCLWVRkMwpv+y0rmWzKGvqHx2vXVy4QADCig8S5ryyWYjyy07rWh7gd9++OmVK9ZX4U5a1kZOyy07rWp6QXX7IVcBgnFvJRPllp3UtPyU/X88VgMovO61rqfyUX+IezK+RkbLLTutavhR2S+kpv/S0ruUL5wecyigQLDtHCoQP5ssaPkQZQmSN5R/WIAiIXPfiEQSFCDn2NJsSBCVCUZ4XYkVZsHi1FBLUglEaCPI8VwS46er4oSDeMAAKN5O1WzCnKb8YlNbP6w6l5WjlzLtaiasQ/oYkfVqp/J6dX+14OYT/xm4sImLDUp20sotBPzU7UG7TISAsg5RRtpUclJ/zeun8WjGVXwyq/KD8TsmvSgrKznm9eHaqe6+On3MnMQowBGCedbsQS0UL/gy45+GhPlm13Pejg3gEwYA7b+WUlKrpTe3QVFwthIGqdNPzQ0JS5NpomPW2bIOWtko0jQC/mkCi1HGU38P4NXM/pNdpQF4+DR0AR+PAUuer/J6bXyNQMuBJWyWswtLzmp+ye0HsgGRTz8SDIKuwFqIqvzKfF8qv4ZSf8lN+jWKvxKjcA/kpu/Nl56MqvzKf8+Hn3ek+SRhuOhduVlfKlTc4sooS4ve+MyEAySYTlAiIi5uC8GmXQkPZVe9B/qcClguIC5sIRJV+JSz5ecxyHdiyshEIDC7yjVa12Ij+HR1ZkrOUn/LL0n8ifquOFk6dqU9+/AZn/jWQJaf8svSfg1+VWFaC0I7+tY90qVvulF2W/otkhyWbHJRfkb7yC9eU3xFO+cXzV8yvnZuyy9J/oexU914rv5MaBZbrueif/M2OivAeNsFB8gIRhCL+B6rTS8GleeTHVB8DDQGI4Vr+baEoaluGqQMfdlzUJ0ssf1YZl5Hk+VZRld/D+S1V/liXbXmeXvAnawYdF1L5fUJ+4U90ZZorG74ouzNgt9I/Kz/lV3i5+MrvoFN+9XGI+4r4LThldwbsVPeSxF8Xv5MaBaQAwOJWkN5R1lT5EdU3ukT+lohAhCAYJhGSMp0y/YC8bLBSGDL/JKVKABrgqZ3PukA02qBVzrJPpZan93HliVYBtzSnyqV2yu/x/NognePmYaq0CTZ37pZVHWEYUH6fil8MW6lqsmHkqlN258vOR1Z+yi8NrvwSp/yykMovT0/ZnSc7H1n5nSW/0xsFigpXlxstkDV8khBFTtFqlAhEtsFEJSDHAauFIT0u0mjSS/3z+qV5pvkUPpVUNFtvwXPVVuCsAszxlvKgU35VHsnZw/kVtWsFzFd2pB5ZbVZTV351HsnZ4/SPi6tH8ss2jFzjp+yqPJKzl80upKn8lJ/yy5zyU3469hX1e0XsQprK7xz5nd4oIMVB3rBIjvNGouqva7YEHBlKhMOFIHLhKBOAdcHIgbSsQ5QHaPofOqYYscj/CYQkcTVqLjz9iwOp56FU85SV3+n4pS5yAoqt69FQ+6NSA5Tfk/JbARpbnFf5HRYKZfdi2R3llJ/yU37KL/orv6yiK07ZvVh2Rznld478nsEoEAtAaRmJlkJl55lguN/wDomhLC0iJxxlhuEwK0BTMFrh8qQK0AeEIbNcpcdZOkl5VoUkD1/7NNcJBFcaDfxSnHWn/GIZnopfu9XTjQMXugMfUH7KIjSd8otleG5+zcgZv3Wn7GIZXh471b36WPkpP+WX56H8soDycxCesotleHnsVPfq49fC7yRGAULZEMhKsXyNCpmRc788xB8bY2I6icDE9s6BliCCtSl6RGGsBKIWjsPpHiEcZRukcTLhLNVlzTXCEOf2ocSAZLgtZsrv0/BbUnlQ8dqQ+6Tk0l49yu98+JUxlN35sGuno/yUXzxXfllpF53y+/z4lTGU3fmwa6ej/M6Zn3cn/vqAFCIUO61sLgV546dhicI/DzFAIMoBroAM11OelDZnAv0eArIkLL6OZV0z/1K4yviFkOSHC4JQ+bi8FleOLAud8nsZ/ADETSIB92mRdleQOuV3vvyU3fmyk2IqP+Wn/JRfkrLy07HvlbOTYiq/c+Z3GqMA5QC9J5WVpOwsgKAkgBeAICCo084sQNlxmV4JJy9XbtGpy5Wmm4I8SkCqsi34VwJT+yXVyRw3fNMvDlRrtwgteVJ+L50fyPW53Iyj/BbyeoH86gjKrpnXi2Snuqf8lF+Wg/JTfj6cjn3x2Nfv1bBT3Xt1/Jw72UqBCK7wLzzbEGNjG6IgbL7hMyHIJK4hJGna7mKw17TgNgQkLVeafi501D7OwKdlLIQoTTMWNL9eS03mMv7Bk8sQzq0LhvIr2qEq4yfklyr20lIu5Ze3Q1XGF8Kv4ZRd0Q5VGV8Gu8VllMovb4eqjMovzSfNTPmlnsrvNfNrOWVXtENVxpfBTnUvpPCq+AEnMwpQbNilSqQtC1ThgyB44cjOkwaOOUZ0SaNScpIfl+Wr85ZypQIRy9wSnCx+mmcGmbL8s2ulIFXhj3BVwGL7QQYovaFsJqz8sjxfKL+VoVX5pXm+YH41IGWX5fmC2anuRX/lp/zyVinDH+GU32fFT8e+Rvw0zxfMTnUv+r8efuJOuFLAbwrhz6sqZwexEaWRfWOlliIfLm/IpOVSiwvFcGlelAhuWr4lgSYq84vphPImYVt1OloQ0rIuhUkKUfoHISjMQFSc+MstxY1ZK78Xz6+ZuM9a+Z0DvxY+ZXce7FT3lF8ojfJTfiiOld8qvxY+ZXce7FT3Xic/4JRGAcDBbfvn5/KHqkatBSOtUZr0UiOXgpH6rglGBjYTjGWhy/JoCkiRVplO63zJr+HKPFLHQJCKVFHXdhJVfspP+S34NdxD+C2mo+xePDvVvSRt5ef8lB8O+TWc8vv8+C2mo+xePDvVvSTtV8QPOOEnCcsC1o2cXQElDSy+aYuW8JODEIxAVUhKghXQUiHL/Iq8E2FI65EJdZpHUygKAanOkzSzIC3NavgvOvc5Qs7bnxOJaPXRyk/5Kb/n4Vc6ZXc+7FT3lJ+/pPzyois/5adjX1n218NOde/18fPupJ8kDAUoWyIF4/4sCkYhCCi8KbtWNHrZmC6fpmCkIhaEZU0wUgFJhSHNKwmXeMbylQLRwN4SkuJ6cFV/m5fRC8vxwpWkovwa5VN+yi85PgE/ZZfX4ZzYhVSUX6N8yk/5JcfKT/m1UlB2jfK9fHYhFeXXKN/L5ndSo0CwRlRQc8FIWyxvyroSZUNn/o2Gz3aVLNIrLUTxN73YEoy87KWApwJbHyfpLJ7n7dSucgNw5SXSEg1EvqwcLq+sIlF+ym+liMqvcg/gt+SU3ctnp7qn/JSf8lN+LS8d+2L6r4+d6t7r5XfaPQXQKC8lP2njti+iDCFnhYil0UBRKNM0PGRKw1AhIOk5HLRUYGJp0s0lQnnoocLRUISWXyj/se5egZsxlV957NPN20T5Kb/aHRG4EUTZnQm7AzGVX3ns083bRPkpv9opv1fPrxFE2Z0JuwMxlV957NPN2+Sl8QOe6fUB79aLSplMUO5bN1Z1SLW/90qtPqlgpClQmmcaOT+vr+XCUwkD5flkcI+0FFEZ6J6O0m9WMsAo6nZsOgeuKj/lp/xqt8bv2PSU3ctjp7qn/PxV5af8lF/tdOx7nexU914vv5MbBeRdhtTlnUK7cDXo8lI4Kc7DabAQNaRlqQzFQZl9BrsU1nCWClrLzxelSL0UlKx6dUMctBxlS0RyTSK3rmRtCUmSjPJTftWlWJj8XPk59wT8lF3p54vy8tn5MMpP+bWKovxWnPL77Pkpu9LPF+Xls/NhlN958ju5UeAgX+dBB69TMzyVHgtpVCzS3/gHlCXuBaEG17Zk5YKRSFEmtKtCEsr6AIHIC5inkApLsH4dVm/lp/yUX7sOq+5IfmtJKruXze6IZA77Kb9GWZVfdq78lF8W/3XwW0tS2b1sdkckc9hP+TXK+un5nc4oQNXBUoDCa70FShBpVFrN0zVILRXp1eAV4aeZFEKSCkb2kwgENfywJBTtuq/X60hHsRNON6BYDn8ojPKrSqj8VvJUfkfzU3bnyy67pPyUXxpE+T3IKb/Ph5+yO1922SXld5b8cPKVAodAr4TLWrYFIAlYECsbM2/0ZGlHmk+ZbiF4pZCUgkEh31QIlpaRFDVoCQU1S1XEW7wUzEOtpSR0xA6wZZz1q8qvcsovhFR+eTrH8VN258tuPe8ixYWLyk/5Kb8yT+X3OfBTdufLbj3vIsWFi8rvU/J71o0GQ22obHkESGkD5g2cH6WNnTZiKhhEecNTkT+leVIsS5pzKhj+mNKyUBI/lKtIvyhTFi9rnjbt2ntd6dIgeUjOLtbv/RxKU/kpPxdY+a27I/kd7ZTdi2Onuqf84q/yaznl57NVfqmvjn3nzU517/XyO6FRgFbODlxpBW4mUEpIKghFyPK8ipaIImUpJeHqRCrAzQzq42MEg6rE2m4xGJeHlF2k0qud6oESKD9JWvkpv+LCMfzWUzyQu7KTpFX3lF9xQUw59+sAACAASURBVPkl/u1ElJ/yk6Q/Eb/1FA/kruwkadU95VdceBS/514psOrarViVnXL/BOlKK6Uh09OVfFrkUQpJGp+yNLNyNY6zNKk8X6pDs+jLbkUYwQSm9c1e7ueUXzxfqkOz6MtO+bVTeUX8nsYpu3i+VIdm0Zed6l47FeW3npnyW6hDs+jLTvm1U3lF/J7GKbt4vlSHZtGXnepeO5XPhN+LMArUTb0Aa/U8Sae4REXC2eUMaEMgKMfddAdBtQVNynZYMJaF4b6qmXTEBBAvl+s+TvmVZVV+mb/yc+7p+Sm7sqznwy4thfJTfoDyW3bKr+k+Y37Krizr+bBLS6H8Xha/kxsFGIxgK1l4mcF7h8vM4OrdC3c1BmonJtFzgWgGrd/tyK40hCgRIaTvhpRvwQTAyW8IQTHBtIz3tho9SCnLFj1s8VN+yi8LpfyS6/d1Nb81p+xeNjvVPeWn/JRfFlL5LcXKznTsO292qnuvl99pjAIEEBhEJuESGyO2T9rASfSixGlDEcXzkF7ayCkMouo8y5dCDDmmUmQq7KGgodxFIbINLmKsrLzHHaelSA/WpeIYmWEA1loYU2pATET5Kb/8XPmdhF8jAWV3JuxU97JCKD/lVzrlp/xSp2OfT+rM2anuZYV4FfycO41RgAELgJgzsCIolIWrC5eSzkWHUopV+DwhLjAvlfOo1myXbtU/l5nlTFaVIjugBf9Wmkv5JdtOGAI4F+Y0mPJLf5VfPFV+T8qvDKvszoed6l7TX/lB+WUHyq9Znc+dn45958tOda/pf9b8nDvZSgEDgrUW1Bm4Urg6JkRa5UqvFwtM4pWcanq1CkOlf17OpfI3z6nIuZTztpyKVxKJCLE9kB+3hCnnR3kWK8JdX4oSa1gEhW07ovIrklB+yi9J/LH8Ol5YQKns6iRfKDvVvaQMyk/5KT/lt3hJx77XxE51LynDa+Hn3EmMAl988eVf/+P/9r//yynSVncS95v0RPmdnVN+5+uU3Xk75XfeTvmdt1N+5+uU3Xk75Xfe7jctz5MYBXa73c/fv3//cwCryxQe7LhpZzwc7YmL8Toc4Re/+PlfU5+T8ytJNMAEy1xqlVOADffy+KWnpPxW3Zs3b7PzT8muxOOzV25L7mXpXsVvwV+dd8/N73h2Urrla+oA5Xfe7pOOfQemoMrukHvhY5/OXQ64mp93JzEKvH//Hv/nf/tvbmnFscKRLBl5CMhmNsfkfWRmDyzW4xwnf/GIAnCVhjEku3Uag//jv/7XzLp3P375Up/HaGG2FCdza2VYyG/B0PB8juujF8vPu+fmt5LXYbvRid3z8PtP//k/ZyHPnt0n17uYI9de906nxf519J2H+X2a+dTpxjzvnqPvbC5bPZTCE/H7tPPg0/abwMsa+zINfkL9ewkMT81Px75TuOdhd95jn4912PtV8EvSWePn3cn2FIAhea3jXpHc7xMamdKk2sU5MrODxapnU48XKFEacok9Qj5qLwaYGbCNl0vuxa94oeYRFsLmq0bJ8b34td7vWc39qflFW/N58POnz8nv+BejDpfqTPmVg+G5s7u33hWpPyE7ShJ7WHoEarz/+jr6zsP8ji/NU/Kj5C8/4jmBe1/zWfj5U1q6cmwKi9fuw+/+UvT0/OSoYSC4Z1rPo3/+9P4tV2jwYur31b/7leTE/eeD0zvAT8c+nC27sx77lmLV3p8VP+dO9vUBnu2jQAOuee5tAaqK8kwunU1x9HnMzUSaLgHkN5e7dxL5vpRpX8wtC53yiz7Kb+nKUU75YZVf5ZRd9Hnh7FT3vFN+VbbhT/PKUU75Qfkd5c6TX+WUXfR54exU97x7RfycO41R4Ikchz/RZU8QCt+X49zjjebZA9xDhaKZlvvDp28z5eec8ntmp/yUnXNnyC7NKnXK75FO+R3hlF+aVeqU3yOdjn0HnLJLs0qd8nukuwe/F2kUCO+jtKQDWDMlvSBHrR94E9K9QLv2yK0+DxQVAogpSOwpWlH5lUkpv+d358HvqZ2yK5NS3Xt+p/yUn0/qifkhtq/yW3Lnwe+pnbIrk1Lde353/vxOZxRYyLXpTQtXHyAEdZRy9r2W3j0anFdPVxz5//PY9xSYaiMPBha+/toswkPDKD/ldzBb5XewCA+5ruzOgN1KGOWn/A5mq/we75TfgjsDfspuwZ0BO0D5Lboz4YeTrhSQwlMF6kQ5rQrSsfneo3wtOa7csdCfQGAIyN4gOUZYqFScIkEoP+V32Ck/PILfQmLVZWW3mJjq3kr6yq8dR/mtx1R+xzjlh0fwW0isuqzsFhNT3VtJX/m146zxO6FR4DCwIjxBXqEoNkdopbtW5fvm+7SOs0NuQl+JmwnDEXEbu0vm0RdEllksTsyLYZSf8ltKV/n5KI/ntxBV2Z0BO9W91Ck/5eed8nt+d378FqIquzNgp7qXutfDDziRUYAaR5kPVT5ydEwrZpXm7OcxQtGKdbS1ppVKE6yk2O4PW8JwwGrUUKRj3jkJS1AWmuqk/NL8lZ/yq0oR3efIT9nhbNnl3sqvleLJ+K1NlLJoyu9gKqp/h/NXfjr2LcT6HNnl3sqvleJL5+fdaVYKEAXSFJYqHA/NF75VUeZUiA4I6SOE5WExS4tRO8VaCZaEoC0wa/zLd07WhGXRWkQx0yfnl6Wk/KoYyq9M/R7uJfIrypWl3poZKbuzZecLqPyen989J0rKr3QvT/+AZYbKr3SvgJ+yO192voDK72XwY2DJTL6+JuPEXx+oIK6FJapE6D5wvQwyGg3k5bNKu0ql4bdAYgW+P2yXvCUI9xECKsr+sJtMIpLlJMsxn4jfsfGh/FqhH8Gvfbycj/LLwz0Nv7xcx/FTdufLLo+j/OqIn6LvTA08yu88+AFFe7iJrvI7U35AWMKsY99C/BfKzvefz6d7h+OGsMqvFTy7gzue38n3FFhQe6pCFkfLPstptRpYAtxDxlo5LHofl2QJb6GcjXClECwJZGUkWntCQrkAL4aTwAtpVCEXkruHYiu/GFL5HS7Da+HXqISy8+6Fs1sKJ4EX0qhCLiSn/NLrx/FbnihVE03ld4R7WfqXTXSV3xHuhfFD0ofq2HfAvSx2Wf+puneEO09+wCmNAt4CtCAgMRwAUKj0fRketCqFgYQQnxQUAR7lIohjLTzLkHk1HVAzYpa2vF6xXqe44cSi/iq/JH3ldyj+SkzlV4dK+DWHRGUX0n/J7F6G7mnf6dNmridKdRi8MH4rMT87fueofysxlV8d6kWNfdp3+rTPU/eUn0/7qfgBp3x9wFtqUq/ienaBlzHl/I8TtmP986IcIyilMMQ4hyYkEoewbDGiZjrRAtSa9KSWpuOenHjhWVUs5deMp/yUXx0Pi9db1tucX8Mpu2Y81T3lV8fDwvUWvxhG+eVxXh6/8rovp+of8Fr4NZyya8Z7eexU9+p0luOdDT+ceE+BtCCrYbx0QArsrU3r1pHDlauuH2ElWbsmZTpWGLJYi+DT60tg6zZcEojDS1H8dXm35HAdlJ/yW05bYh99/bPjV8at+a05Zae6t5y2xD76+mfNL7+m/F4iv/La8nXl9zr4rTll98zsuNyWLr/OYNcGqntnyY99Ox/md8I9BWiNWwxFzlTEABlCZwwsM4gByxbTPAOQZQ+GDECAIQK5f2k2HBqaId+KNKBobAmWp2MEtl1aHFGn1C1bgfx1oAVpSWDY/d/wb4b3ZYg1SK+vKdeL44cXyo/9cqnCH8pP+fkyxBrU/Gqn7FyJnovdqn+sgerefWI8Hz//5Gb5BiU3EMQyKb9ldwJ+TX+flxTw2JtM5XfInWDu2fT3eUkB78evdsrOlei52VH5hL8wpCYNdla6R8pPykHJMbBWoRO+PlAXpnJZqzCIOljLmKYJHz58xPsPH/DTTz9gnmaxdDiwxhgnLAQyBoYMjDEYhi36vscwDLi42ODi4gKb7QbGdAjTu4WGelq3BjEJsziotgWmXoKyZI1amRC5iS7RgfIpv+P4VX1gi2vC6ZH84tNK5bdSMVe9l8+v6ZTd87BzN5nR34cFgDq86t4x7jh+7eWUD+N3H73z/spvsWKueifQv6Y/cIhV6a/81twj554L/qfg13TK7gnZqe6dFb+1+z48Ez88w+sDLSdLGHztCWwtLAOGGTe3t/jjH/6A7777DpbnWMnWeqMwKPkJg1iRTGfQdz36vsc//PIf8dXPvsbQGQeCcqFw8Z7G+TIeWqKxMqiuCMYxwtK02IalJfnESja4uH/dld+BSW3pnxhiqjRwmN/Su0XKr3RPoH/Pzu9+Ttk9Ibs0rH/KgBZPKZf4sztW3cvd/frO+vrj+ImOHbOKQPm13Tn2ncovulPxY7RX5+jY9+LZAY30VPdi1BfErxn3cfd9D+V30q8P+MJUlpmkTATAGsLu4y1+/83v8bfvvsM8zy6eARmKN7XuDyfpBOFAzMdai2k/AUT43X//Z/zTP/07/OpXv4YBg4xZFIjHW5CkZOuC4erAtWA0LUKMpFPmxDvxY3/FT3YKXSICZeGSSwvCofzWw9V9VTlRTTgQ1X734OfL0u4flV9esUfq36n4NXRPYjT8lN1quKdkF8fNVh8pPHO9o/Rqs4TKbz3cU/ad8QlIVDLl9xD3cvvO1rjnYrT9ld9quJPyK8a5dX4NP2W3Gu5e7Ir7hsWx70HsVPfyij2SH9K4nsU6v8fp3nJBT/71gWaDp3CYYZnxt+//hvc//ghrbRjgmS1g3aYkFBszrRD5tArgDBLhIQpCRW75SVWGVrkOurq1198jOZRWGUn84hV3HtrCC0rRIbSWEDkByzuOA4VUfvdMhwo/Kpo58ssV/TC/9vIh5Vf5PDG/vJMv2bT5ta24lLVfNTqWTtndM52HszvEqf1+n+pe5XNqfgt9p/JrlOugezn6d0zfqfxK94L5HdC/8Fm0MlvvlN0903m+sS9jt+SU3z3cwn1ftprguPuGJ+OHkxkFKABbdQxYBuZxwg8/fo/9OIJZLD7MFsYYGANpEAaYYuN7S1QqGKklCQSwtRg2vVOIvIFaAnXfOlY+zaTaQpRbe+rBEE64Qa1zn049gJaCUS9XccLiU20WWvlllSx9En7pu3FUsFpWbJ/OGj+XbwYv6dCh/CqfR/OLA21zYC2atMWPWqxW+NX1UHZZJUufp2DHXneix0PYqe4lPk/cd+Z93nF9p/I71p2B/rl5kfJruZfPb+mpJpGOfZXPC2eXrsZS3XsqfjGt8r4vDn+OXxrm3vwAuBUXh/mJO4lRwMMLJ6ULUgYwM+7u9rj5eINxnEBEsLNsMCHvRHQhHXIC70RCfskJIYswSFAKwtL3Q1Yw75/OOx6/fCSrXFHVdSHK5j+NlAr9zoSlnDhVZSgtTsVAS8nfsnzKz1d1mV9pvXNXKwtnHlbCZ4YhoMmzXBVSdhDKr+Xuyy8Jz3GAWR5YyxuOkl+LVYyTpt0cVpVdUtXj2dU3mC69FrswJXgsO9W9onJFVU/dd7r41axX+T3MPaX+LcxBUOtf2Ze2l0Mrv8Pu6fvPJos1fsUcs07D5dEovbJLq3qiect92HFrPwnVvbZ7BL8YojZ+I21pTvi588aKj/wcrv5pLvFvy51wo8FamLxjR5NINp7Y7fbY3e1hZwsGg63gY2ENQwQmEQQDA2c+AoPF5BQEnGFMB2MMmBldZ8QCNVuA3fN4KpQilPYhQlKDZeRE15OkZhoh6ZW48bI7Ch7lDaX4HX4KXZftdfNrt3vg5/uvg0nmiloqdXPS2mh0R82dlK8QoOLpwym/Vt1wBL9ET7yrmjNSaScTdU9QlOdJyOLGRn6WCqfsXHYrcXN2ddiHsav0rNJF1b2n0r16knNfVzIuJ8LJPFT5ZbVYrhsO8FvSvzLNsh9sz1Na85bqxgbKr6zFct3wRPx8ydJ4a7xq3QOWXv+Ajn3NuuFB7FC0eQiDQkXuy67qm1X3nmrs43YyVd+3fN9wjEFgRfdWqnwyo4AxRg7KzFk6IF/gvu8xzbPsGtn1YMuwdoZ1FqPdbhcsSC46hmFA3/foug5932HoB/RdB8CCDGG2FtYyjCH3zctRmoOMExD548HIoJNYn0KxCeN0h5En3Iw3+LD/CXveA2B8MXyJq801tv0WhA49dUCpREfIGnsNaN0oppLDyUYbYP8/omK4biAMopwEpepcslyeMn9u/DrqQCm/5k1GfkYgsI1mIAqF41zpS3bwk9U40HLonJHcpED5PQm/mh1c/aVey+2Ys2zwcj+cHNyPX+1eBztgnPYnYEeuHVJ2rcaS0PdhVz29DhMl1b3H9Z1JmwJhspn3neWEp3VcXwNiXxoN3wkvIuCz5PcU+lf3T7n+2eRKa/6SsPBlDnyiLvrJuupfXuwXwY8W+FXLmrl6Ku35Letf7V4Hu9PMW3zeNbsyctoveh8Z6Gpdc+Povdm9Zt075X2DrHxozl1yfGBwpiYMgJL2oAC4Xnlcr2Q9jh9wwj0FsiULRf5pZ0MA+q7D1fW1LANhhrVWhMNadMZgmudMQLq+gzEdiAjzzGCeYJlhyIJmwjRbB7x3+Yl1KkwPkscHMhmh5FhOx2mP2U745uM3+H7/LW7HD2DMLhrhL7tvMHRbvBu+wJebn+HN5h0uu0sABr3p7tFWBvd/XpJMdLL2bHTsaA3CqVYspK/8Vtu81X5xYkuod71eiJcxUX6+UE/Dr+h0k7MazZH6V/J6LL9WOT57dmnDPIZdHTpTvfImpXCqe0859jXINftO34bsgpfxdOxzDXYifqZo66p1ktZfW4nTarf8PL8RUX6+UM/FL+xl1WrGtM3cn3gTiYSdD6Fj36nnLbkzK+GW56olS3ebWuFQ3TvNfQNB2hK2aKBEn5ZuG/LGRB6hyeO+/MSdxihAbulHcbPL4FD58LSAGX3Xoe97EAQQJ8IBAN00uU0onHB0RoTDWYfmacJ+P4PthL6XJ/YgEwQi7mwZy+GMYxLGSIlGOwOw2M97/Hj7I/56+yd8P/1FJigEKTFJfEsz7uwN/rq/xff7b7E1F/jl5a/wZniHi/4CHXXYdNsjm+tAt8wsy2hiBQQy+w0kJBXprPOuPh8EUKdBjbyVn+O3Qa496bHr3IhCvbIyFpOgLBq5WgjEQOpz57e3M+gJ+Q3d5qgJ6/rgmxAInas7Bp6AX52dsrsPu9jWh8LIJMHVI5mgeHbpuf/7ueje6fvOsl0ZZCh5SpWWEYceZhQMld+T65/ZNMevfFyLNyZpn1dOa1sGgewplvJ7Pn5JOxr3QKrF7wj1Q8Yv/M1T07Hvice+fDqStdMaJUrYllcexu716N5z3zcQADb1fUNYzRFQEeoVNX4ew1mKT8LPudNsNAiXadGzEPvKJ95E6Po+giICjIFxN7ym62D8kgkWqGwBCwsDQm8Mhu0GAHB361ImCUsufWvnvIAcn+Jaa2UZBgE3+/f468dv8d3uz7i1N7DGuoI6QY60soFtphm3fIN/ufl/0GPAZX+Nd8OX+HL7M3x98bMjWisBzAjnq++6MMCUKF9rJpXexBSe3r+Vh/I7zI+Scvo8fNmw0K6xdbnmpfxwexJ+X7cpkJ+cxs656dIZbTUgP55feVXZHcnOtckquzqmy98bB1T3PtXYR3DLU31ZXdsgKbs7zW8oXftlDJXfSfTvq22tf1mTJf1hfnMSDXCLxvEn6DuV3wP4hT+Shm3yiw2VT2/8DR/yGz8d+55v7IPnkox9WQcaioqsKb2uBi4eMD573Xvesc8rHy/0nUWbSwslPgIx6M8T8vPudBsNUq32/h0ViiIJA4Nh6IN1pwxvyKAzJkwEZOIgyZMfdSDvkfRDD4BhATBbeCuoWJtiutaKMLBlzGDs5z1uxvf4f9//M0ZMYkHqnACkupPVz5UR5Pa/YMzuv7tphx/G7/CH2/+FX1//e3x9+TNcdBcYzCZrovLGopysRqXPVwlIeZJ9RJ1wUxUPK8IjQrkokMrvIL+YVMohUeCSX9JDM2wkofyeid+QRSZK2rrhPM/ADuQGWje6PoH+NZ2yO8wOCGVMZkqx/gIiscKnMeP7mKp7n67vJBQqUPafyMdHuNazyTip/J6HX09DFZ+YYGGX2/EIp/yen59XMfm8o0XdWpVmJv4yd/EvKejY9/xjnxxyGMaIKI6FaTsA7r1zSvKVF5a17/zUY1/ZdzLSO3n/6gNnMZDPaU7BDyc0ClAhHFweJxUahqIYyaBDhkBsQEg3XaAkDwbY7TJpGOn+G8wMsLyrEnohlp0qx2nCx7sP+OHur/h+/y1u+COoj42b36BTUQfXpLTUtAwmYM93+P8+/jO+2V3gqv8CXw5f4euLr3BhLrHtL7NJkE/bT2Z9/dhrg8/Vt437y4mQ+LJnViCvUKnweMGgmF7plN8yvy1d4GK4qts6LbevHyO7eZGOkR/NT/Rc+T2GX9YqxTwo5ZAZDohi26PmdTw/Zfc4drE6FCY4CROXR9BFd55GfHjfKcYh5ddyB/iZS1z0l41YeRuB/RPJomFAmUFAx77n5behLS6d/skNRksR8ql0YhvPrj+478wnQZVTfsfx86nVKcXcOPXy4R+pf/7msOWU3SF211nDxIfYsT8LOsKcPOWW6+axuuc3IFTda7j7zF046TsZ6ZcCgkHAz2PyBnbh8bCxL9ShWQEAJ9tTgGDIgJP3HuJ4wGHZoL8wbDbOYkThRsq3V/gshemymy3/zxjIuyh2BniGhYW1YiWapgn9MMj12YJ7aZbffft/4883fwD3M7zEERHIUnGTJ1oXrFN5FaNwBJiAV0kAItg94Y52uLUf8dfdv4I+AhfTFf7Dr/9jAO+TSDvKWFf55iaDwZaDoHQ0SIaWwWwBa8GzBVsLnmfwNMG6f/NuB0wzzDSB7vaw+x3m6wHmq1/g6uuvlN8T8Gs5r6h934tCOn4yse0cP8eMGcj4zbBz5EfTDBon0P4OfLfD9GaD7quf4/Ir5fdQfsJBOmSfXRwY4k6/a/zYOt1jBs9eD2fwPIv+zbPjN4GmCeZuH/iZr3/uBmlld392Md10EA1N5ZLuh0HSDewAoi7sdiybHNnwa+dZdkGeJ1g7YR53YDsCfAdMO8z7HbC9xPbql7h+q7r3GH4+b2/kZM/NTWZTfjLJ87rXSz/p+DEz2M6Aaws7T5gDv1vAjmC+A0+3mMcdaHuN7dU/4M075fc4/WP474nLPJzDsc+y73swW6dvcqHvB5evdf/cBB8MwIJZ2oPZAnwHwghjRhi6g7U7jOMF9uMXuLh8q/weyc+k/JzBLL2R2/Q9LLs6WL+0e+vKLvwocPTHMwB5zx58B2MmdGZE341gu8fNbY/b3VtUn0FUdvdgJwnEIc/rnjMIEND3HSxzwo5guo1rdwtO2ZEF8ZyxI+xgaELXCT+2d7i5HXC7e4ftxTtUTvkdzS/OPX1CMvrJ9NKNfU732DLm2QIgdN0gZaek7wy6NgOYQIHhneM3oiMZA29uN9jt3mF78UXNz7nT7imQOtfZgBCXZsgMAIZMlB6K4b2gh4lD2uggGOOExG36yFOc1IfJvUvFsizVYDD+9P4PmHDnrEwEGBGADgYwbqMKQy6uFSsOvFC6IlK07IRCU1zEQwTAALMdIbtXSg3YAh/3H2HZwrhNMYDECOBrTdJARIRxmmAYwDS7wdXC7m5A+x1ovwffjbDjiPH2FjxOwDyB5hlkLQwYm2SUlqZnzB8nTDc7cJfuVqv8HsoPoU3SgU4yC/zmGTzLjSTvboDxLuM3eX7TBNgZxr33tIF7P9M1OoMxf5wx3dyCSfk9hp90zq78yeDjl2YBon8dAJ5sMOLY3Q0w7oXffg87TphubmAn4UclPyD+ZcZ8MwvvOX/vTdndh50Pn/BK1I+IME2TbIcW+s4Z0/4GPN+B5x3sdId52mPc38DOI8AjwDOIhVO2GaEDMd29x7y/xbZWPeV3LD9jAitfNp9aQJjy8wZTazHeeX5ykz9Pe+z3H8V4YycAM8jdZJpQRG80Ykz7D5jHHS664qZE+R3Pz/WdaSO5KUvQR69/fUfoOgCdvxn5KJNV2oNoBHgC8y3AE4gmgNwkl6zoH4VbHrkppVtMd+9B0y+V3yPnLulNZa57kvI4jegM0BsAxi3NpvfozITejOjMBKIZhB0AfzyD3E2L5+fLCAYMiQ4ST8rugex8XHJzTgrtgjAXHaepYGcduzFjB+xA7maSKGWXFlNKaLDDNH4ATTk75XdffhLf84vpRaOJ1z1DQNd7fj+hIzGwGTM5bjsAM4gmEGzgZ8hD8U3LINxh2n+EmYr9FhJ3sk8SkphypDBOGOI+lwy/s2KAHNDD1wDh5lhSDFJlKNZUQBmYzgskC3RC+Acw7DzDW2DGeQ/LM2AYMA66MaABIOviGgKTcQAZfumFVETKHAoaRMItPSHAsjyxYJ7AbDDPUq4OnfSN4aYDsR4hJRFjX/dpt4f92w/oPrwHdh/BtzuY3d7FkXQNgG1Ii2OR4AZVdktOnMIMBIx/+wnz8Afl90B+ZICmPlO2U0TB7wbY3cLsRpnsujYWfgU3j488Chsy7AFMyu+R/HxvmXbqcULrc5hu97j74Qd0H9+D7m4Ap3/CT/IP+pcahTIDEeCXuwFATwD/8CN4HJXdY9iBQzP7wT+wI2B/u8P+ww+g8Ufw/BF2dMYcEt3zA3IHoAs6FwdmfyMiEw0f1mK++RG35n+hdsrvEL9Yp3RC5OrLcRkkAbjb3WH8+COw/xF2/gA73oCnnXS3yfujvS+PXAAXDcrOyAPHeb79Ebc/Kr/HjH1+0Iv2uDhhDvWhCXb8AGM+wJgdiHa4uJhdfBv6T1+O0BNzcs6QTZV9uw4zLi8nYPyj8nskv/zTybFdYnOO4OkDTP8BfbdD1+1xdemXbNswjyVfljBtcccu/WgcIAy9xds3I4DyxlLZHc8OsY18SoTktUSO7LoP6Poduu4OV5cMU4x9ornxgyYAWwAAIABJREFUmH3C5BlwGE+HzYy31xbj7V9QO+V3H37l9BCu3pGF8Ou7DzCd52dzfqF9Y+PF2ayXg3g2DBZvr0eMuxY/cSfeUyDFLQLhm1g6eTeIpNal0NaxgwnQ4SxE7p+/Jo3coe86tyR0hiH3+QpXhmmO35pkhltOw0H4DTOsIZjOZTs7i0tnHCiSnVrZlcd9L9MNi66gAMNitrJ0kQDMM7nlO7KhC3UGRAZd17v5iwdI/n8/N5LmYMbtN9/A/uvvcdkBG2PQEYE6uSOVCWvSdklaoUndwBu+50yAZULHFvN33yu/B/KT8nCm3OmEVkpIwu/3v8eVATadQUfG8RNrZNZcAR3FZnflK99lN8zK74H8+i7p+ihJN5SRQzvf/OEb8O9F/7aBnwtT8kuS9O1qmV36EbBlRmcZmGuLrbK7BzuXSlonuHSZgZ++/T3uvv8XXGyAzWDQGwI62SxLqtB6v5Xi5NbJQWrmkw2CGHfv/1bFVH5H9J3p95x99ZAbwr33++++we33/xMXAzt+xvFjYdeaWCUWAetmpgR2r90SZisGgrsP2nc+bOzrQlmkXunzPKm/57K/+ROI/4Dh2uDioscwGFdOCePTCLaBSMFdt9mkiEGYyWLoATI3yu+J+IV+1N9iuLnlePtnXAx/xsXW4OKiwzAYdEY2+xRm5B44pe2NoIOyKgiBBwMgAww9YIxF6ZTdYXZJpxniR+2Lt4TjzV+wHf4o7C57DL2RZfdgeT7hm8tPPGNhAjt5mJ+ysxh6Rn+9r9gpvwfyK5rCN8G4+xab7g/YXKa6l/adsU9ExhAA+w15CcGaSgAZQt8D/fVdkx9wcqOACY0frEbsbS8E9ssuwohARRp+ci1/wjIOMmGCTQQYI+dd38NMIyyRfNLCxPTmdLmLzy+5IWfLmKcZ1hJMR2IxAsPOU1yuYvykEID/BiZFwMxWLFFsARhYB80AsuEHx6wJccJZv5ce/ZkZH/70Rwx3N+i7HqbvQMbVzbep78gb01sZoP0MNyqZoQ4gjk/HlN+9+YWiZG0WufnVGR//9Cf0uxvsPb+uc1ZPX3o4A2reWUTDEHK0RDAw6KlDh3pgVX6H+aWueWOByPHjn/+IfneDvu/RDT2oM26TGNcGri1To00c27jKT/TPyADT0D9ld4BdoibpwBya2usegJ++/wZ09xGGe3l/tu8Qq+YmJyFiScO3cd6wxsgXvpcER/kdxy9tW6J4Luwk4I/ffQPsP6LjDgY90JtQN/IR4cdQQriQTTBjXQnyxEmeUrWXUCq/dX4m3FCmbSzHYv/kwOP29i/Y9jeYpg2sZVjuHIWkofw8KDaYjLHhKbPPwrWhIfSDQVc9aVZ+x/JLCuSKEtvD950AMI5/xdB5fj2YO4D8Fmlpf8lIjXH+vXJiIDWyE6Quw8ZkT7yV3ZHzzqgMgZs/iTeL4rfff4uhu8U0D5hnRtd18tpIMk9xt5T5UOaKlreqnBMRhk3na6P87svPNW7klOgdEOacAOHu7lv0lzeYS91zcxU4UaAMnqsqeV6unq6djRF+S2MfcCKjADOwl9eiA2Ai914ZECpvrSxBGscpEXYvKOLIEOB3oQwCQqGyKbjOdOi6AeSsRfJPJhH7/RjmCvHGwM9OpMkm6wTIMSdDMG4SQh0lvwYwDl7oUFPLqdtEjjluTuYEgmdGx/FJSRCCVKldIzq9wv5uh3m3w2wMeLMBDwMuNu4zJd7qxog7jQYhiWl4LfcqSAD6roPh2mKk/I7k57klCh2YuusEwt3dLabdDtYY8HYb+bEvbuyg8w5SKkqeXQgvf7vOwHA9MVJ+h/mRj+U75xZDlve57nY7TLtb2K4D2w142CT655+RUcKP84EwGXVDZ83Crxx4ld2x7NIB1D/58OnECcjd7ga422GeCMxbXGwGXFwMoa2bk1v4csluzfmQywC7CcRUvvqh/I7qO31dOeqfNwTU/D4C+1vY0cDaDS62G1xsHT+Ce4XH18eVx5eL3eo4llJKGyb8rPJ78NiHaPQORpzimIgwTTvY6RaMPUAXuOQtrrv4ia4wcU4JMkOWnbM82WTXu/p2g0E3GHSNVVbK7zh+5TvYzL7/9OOflHCa9tjtbmF5D8YFLG9w3W3h+8eUmz9gwD2c9Eul83Y1xoj+KbsH9J0LzJL5C7s48+zY2T0sb8G8Rd9H3Ys9pm8XX8mEHXPaqo4dwLP2nQ/TvVLvSo5Of8CY5zvs7nbCDxdg3qB3upfzK0+kDNJWnPg5Q4oBMLdXegAnMgpMlvH7v+ywGwG28g7E0AGXG8LVhcGbK+N2jpTdnudZllxYf9eTCEjsOMhZaLxnIsguijFuaRQgS0iMgekMjDFugJGlg+lkxM3Qk2Q8FXfbMDPc5y2T8lh0RpaXRGUE2HoA3gNBoBkMYjGN9lQ3exBaF9cLCwDJ3zIsW0x2RmdFy2S1gBtQKSodiJL4hbKlPbevpvK7N7/Q0ZQcqwmStAvNFjNkOdNkDIAhrvaAtx/6ZbEchcGl429e4BXd10f5PVL/2OeKcIPp2THDMgk/y7CYMc4zum7GBQZ54uIUjwBwqnd+MA0sGYn2pQ2r7B7ELtYz3pgg6TsZICNL/6yFnQnjNKPrOmxZ+s74xIxkogL33nIYR+MkOdTA14eBavds5XcUPxc1u6EMeadjH8nYh5kxk8U0zRi7GdtNL5ObpFzW8/INkpYlbcsEmUnbUPk9cO7i+8x0zHM3Jgx5p9Y4/RsntyP6IAZtl5X0nV4eWkvKOeNGJLrbdVVQ5XdPfrHWNUOAMFuL2UZ+Xd/h0koZyEC2OYr3WMl4lySOfBNDGTaLNlR2R7FL2zH0c6HrTMoH0b3ZyK784zRhP3a4mAf0nXFFkBvu0HeyH099ovX45tmZxioP5XeYX8uFvBE5+jmJnS1sB4zjhH1vcGEHdMYkxlLEciTtF8qSdZy+GeV1iSV3EqPAfgT+9VuCLCORBiECjGFse8Zv/m7C2yvAzhbzPGO28rkF2Xgmve9xAkKZiLgGB7KZNcFZinx+RoSDTABEoQkpCnyuZZnABQFixM4P8mutewpBAUsMG4sehYoJBnLT0FEX/ENH6TIPy6z8DQZkoGRmWADTZGFoxjxbUNehM65WHJUrtCFaeu0LRjCACHnhlB8O8vP5FtlnRWJAnhY7jtayTGyNwTTPGLoOnenCKz+26BxibdNKISi3IZJ3bAun/HA0v9qVwy5DlocxZhb9G82U8PMDbDq4yTTIrxTISxILly/jFKfscJhd1numEOOwyK4Q8qlBubmcp1nYTT2GvoPpIjtfFEaSNBDqzcFTlM8Q0DW+3KL8juEX82vMO4tJl0zkpO+0MIEf3PuZocRiQKiqlZ753pTQEWFoWAWUH47mV7tk8HLJBX4sn9UapxnTOIHQo+87N7llWFtknA6AcK9nuRIZIgymx0b1D4/ml41RbrxDopeZ/s0Y9yP2+x6boUffG1AHsHXGO3CCjcvqwTcbwaA3eX0BZYdY9JV5C4HASb9ZjoFpMp4dMI8WezNhv5+AjbyHb4y8BmRsTC9Tu6Q9yZWX3JxTx76H8WuNeeTSTssT+k64vnOy2O+F32bTo++iYSC8ycFSEf8QsdI9V9HByL5YS+4kRgHLjGmWxuuIAIjwTRNjmhh/+sHi8qIH25uwYYm3XLGvGBqN58h5wYgWRwEv7wrKpDE8xXNhhmEILdOZDkEeS+e1wo1qwdjC0vl5ueKicOEzu8h/y3AgeZ/fPWAMxip20pK+lx6O5zkIyDxbjDRh76xsBpAdNBF3V/adAfk2S2TW52sgyt26qVR+R/BzNwex84wdGWcdKeRzaAm//ThhHCapM0iWK4WOKO8ZfB8YvF2dyRB6MuhNvYRS+cXfZf0r9cINo1k7SwHtPMO4tpnnGeNI2A+ifwQxrBEg+sd5IZb4GRC6jrKBD1B2x/adAMBhlZRfJeAmLqGiBGtnWeVBwDxZTDTJskUXpHN9J9zA7jQWYQNRV+bQlzqIXWfQN96rVH7H8Iu655fzCz4pAPlGIcDOkzOsSt85jTPGMS73lCc3kHc902pQrCJzckKAsYS+6zDo2PdwfkivuxsVPxV1Ny4SaIbcWMrEdtrPGMdZxjwDdL2bu/h30N2kFiEPJEBdG7LBduix7ZXfw/n5ulNe2XCz49vff8pVjHKEGfvtJNUznTx1Nghzz+IluuSXfCcKgLDpoxwpu/uwA8Irw1lCXLEDZsB9wjyyG0Ekbdx3BobcwygjUX137Pe3YsS2knIYbPqu+TBR+R3Dr8EOaPIjEn5sgWm2oP2M/d7pHnWRX+g7EQwCcc7pxz7XJljm591pNhrkWDiBbNMRGje3jN2dxbb3wZMG9DMw70fxOakXiiAYJV0nKPLeRNwMZRi2uLq8DKB6GrDHbSxsUvBUpdL6eEHxExS/xIP87KZg6mWCfZ3YTXoY8tkOovDdziwrjjeTcNVNv2U+M4Nni92YGAXA7hfxsz3JDCmOq9JuDDEudYac8tb1VX5J6g1+vh3DCqRkohT4MQAjN5XePj+zPL28dRNbw4yhc99IDWXyafr293MiCv4Ect8wVX4P4hc6SXbVjgqTvedGVOmftRa940cMUMcwYSLsWsVPvJDz80WE49eqq7JLUm/qHrk2lQih2v7cxSPHzk1PMFvXd+5HAG6vDv/uoM+ckuYmBlt5t5LcJAdgwAq7rq6t8jtS95j8BlcUbgj956p86xGZuHszZDnlOFvs9lPgR4EfIjtJOM7RwiTSj31ikFN+D9c/r18xZJ4Auwk7I36ebJoZ2FvsbhN+JE8duy7mG9JA3NAwe1jSEYbeYGg8rVR+x/AD4o1l0me6o/gNAgICP8Y0ym7qt7ej8GcL2nbyKojxT5s9O1cnX1avfy5M39f76Si7I8c+8pyQkULJjucw/5gm2QyvT3Vv08mDCXnVHSbk7fINzUMInScIfa9952PGPkrrWfDL+1Eb+M2TfKlst5uEnePX9xRXDKRt6X8ozl28dAy9afNz7jQbDUIsi2QYs58RM4fC7vYWf/2J8ZtfdLBEmOc5yITfrVEm7fmHbqKliJLjmK8xBn0/hAk4M6PvNvj7v/sl3ry9DssLL4dL3Iw/VWWunBvYYh4elhdR+E9yBsELggwgPqBwFjCXR2+GUL8gGkEyEqHwHbZldH0nFiNXjmmcsJstrocZ7zYDLvsOQ6pYfj2KUyJyL8v6J9aT6dF38u6M8rs/P2/UyZ9u1fx8PUwvVspZMsM4Trid58Dvqu8whMlxUhBmb/hE+r7mZHp0BgiNovzuyc+FC5/Lifx85ylFcMuxhh52Zswur3EccTPPeDNMeLfZ4Krv0IGDtTa0l0/WD7RO/8auR9fVHbOyO4IdfLN4HXOpJ99A9p+fY7i+k+X2ZJ6Bn24n3I4zrrYT3l4MuNh00hdyUQ9ONsrycwAGLMl7mRjrlQLK7zjdIzi9ChzTyVXcXCrjx/Kpp+l2xm4/4+pixpvAL958xmbheMzRQGfNgKEnYNS+8yH8Yl3zfP0TaD82+np03QC2jNESpgnYjyO2NxPeXM94927Am6sewzYtZmw5/7DDXxLjQo+Lyx5mrF9lUH7H8KPwtRwOdfX9pd9clcQoxxZkOswTY2SAiHG3H7HdTHjzpscXbzd4c9Wh3yC0sbSfFNmQ3ykJoQ+ducdmo+weyk5WsZELyyEsCnaWGabrMM+MiQGMwLgfcXMruvfF2wHXVz2GwZcx0JO0whOvOP5Zz27UucuD+HnVSFY5UpYCu/qJ7pmugy343W4mXL8Rfpu+F91zgLzu0SK/AZtNBx4/xUoBawFjpNNhRhA6ZjAB42RhzADGKJbifsA8j64xOAziLSEoXbqsk9zTN9+ol1eX+OKLdzCdgZ1krUdn+uS2DbFsPj+izM8lXeZanYVaNuQsNA0DQzeECFF46kjxBkNKa5nBxLAgkHuRa5iBaTbgzn0my30yw4BhnBW+7zp5L8UtJZrZYpxnwH07sy6k8ltynl+Yv3r/VpYVPyvvJTl+ZAnjPGOyHZiFH1sL9xw7bKDSdTIpnq2FtfI7zjPQm6Tt0kIqvyVX8gtxE49wSJTwE4MOQ5bbETPIztjPwGRnMJPTP1m1Y+A2w+plJ1zLTvfchqF384yOVffS9n6Q7rkmynJ1QP1TSpDYzoL9zAI0M6bZBnZg9+QLsvpGdjWWdxXlU2oy4bHWYtxP6EFoNqzyW3Qt3fO3IsnXcsVQR5AbEohhdbbuyTEAsjKZmmaLOfCzAFt05J8aeX5dws5t1rufAfTZxDMWUvktudbcJdbTNRWJgdwvvPImV2tj0nZmGALG0WKerHwPnQmGGKZzK+CM26/FyGahXvfk9bsR4C1MacRz5Vd+bVfy8zcPoXkCV4I8pXL/2OmfC2ctozPANMq74RbGvcZqw+c+fd8JknmrnWP/ud+PYO7rdlV2i67SvTDxdD/BP01R2NnZjYROj4wBpnHGPMu80hAAEnYdAaYzstcVkRhi3bzTWov93Ygtd8srVJVf00V+bq6R9Jnp/DPVPfa6N3Mk6vntZ0xT5EewsnmycUaSrot955zcN9yJ7jWeRwV3spUCssvkDHnUIiUIDcjAODMsOhBN6LsO22GL/d1HF0eEIXyPEUhmgflpCsMfS+NJOl9/9TU2Fxu3u7SrtFsvkzGkNP3kilvO6N9zLIrhgufLT0LsNJmkKkO3cWWv70SygZajscCCMcvtCBgsS31cjy7v5DA6I++tQHQLs2VM84Q7TBLGTW6ZGLM1QDejb2id8mskk1RlSD6pVLoWP4Lwk39ScuPbEgy/kaS8Y97J5ibs3sHkGcDonpS5JUzEmNmAuwlDw6ij/BrJJFUZuk3onJecHx/YxWZG4CfFsvAfWvb6Z9w7XmxF18bZYj/OMUzya5mw7+dqHFF2jWSSqqyyc/X2+ueDMMP1e4iDqJ8NJ30nYEIfafcz9q5g7BqeXdrzZDCOQGe173w8P064cZggpRvOW5a+k11+eXGFoWy42wlrtyka84Swx0voO4FpIuz3hKHxqW3l10gmqYqfu4RxLgSVSvsVj34lCIDwTjrc3KVzm8wRRB+tdXt7uJWT+0l2JweAsP+E42dZNjT7eLvD1dReqaP8cDS/shggXz/Hj71BxtfRuhVu5KefYOv39pA4+3GGnWXOQsbzi2PfOBncEoWnrbHIyq5KJqnKUewYCPtyQIwxM7v6BXY+sISXTyOL8WY/Wdj95F6by3XPs7shwnZW3Xswv8b0JQ0HJPysrJCTUwv2/FwizEDvXiuxDIyzhd2PYN6DkjCRn6xCaPHz7jQrBaQ6YHa7WxK5DsMJDsmGFNPM6IlhjMHbL95if3eL2/0N7OSeyZG8J7L9xw0+TD9ijztYzADJU3BjDAba4LK7wlt8iR9//x6As2gSMHQdvvz6SxhjME1zUBpDncAkeAmMLuiMW57DfgIZKtaoa/xtKW0uUIRNt4UsheFKOLLI5JtB3iLxwukvBbVzBWU27p11UU7fhiHzjsIS2850mOY7MNq7CSu/B/Iry8IAyEh7JiwMyw7mgSEzrHWdsLVgtkmBCGByw7B4dmww2X1WsrxOyg+Fv89g022TcHmCmfqlg6wgyMI5e7jk4Sa3lp3uWQ5t6JU0DnYMg074Neuj7FbZUVCJIs0ig9B3IjIggPzydB/MMubZSYMVI12oj68LeX4M0xuM8wS2S58YUn4o/H0GKb9Vu1xIyGuZ++f6XSL3SUE3AbbWwBt4PD//LqzwiwUzncF+noBZ+86H8Asz96BAEqtSx1CoNAV2T7Mo3DdYa7EfjSx3JRtuRhEMAkU5ibCbRojVrlUn5YfC32fg5y6p8vnXdHzEmIbEDq9puSCGGF0nn3oTfoxxFHayk7x7ykkJewLC6wmdwd7O2dd6lN3x7Pz+U14XAAQDXMTKkIdSCWfIlwA6txoHJGPfODJk7wiveyW7WArTG+zthLnx6pzyO5Ifu9VxDX5wXasgdLqXXDPGP/x1emsZ4+QfFSf3DWnFknqY3uDOTpgX+k7ghEYBcTJAWz8F88LhBm9rAXTSIO/evcV26LHb3eHm9ha3t7e4/ocL/I8f/xl2N8nyEDeQGEOYiWBBsBixmz7i+/lb/PJX/xb7b6wsu+47vL1+i4uLLUa/+zvLAOTbql3iZKwLx85qVPkiSIIXiKqpGQgWJfce0KbbROUOVr0kvPtlIC7HoeSmknz3SkG2Ra3dO+zE8lWQpJz+5scfM/knlsrvSfkl8Tw/MmEG68oeJ1FJS8PCKbrrkP1+BRzoIRwzwX1HdQ2g8jvEr7wzCXoSnnJZkFQ+9vy+n2W4zSHZd8lSSiKw8YNyLIZPXSZMftWIsnsQu4VbEAcPAOTLAyQvc8Qy+76z1D+AYGRiy0kZOf31A3nepy61hvLDet8JcupXxAz8rAvn+fn+kwN/P7niMNtj/P/svUuPLDmW5/c/NDN/RsR95M3MyqzKqla1hAs0pmckLQYQIK2EAQRBwoxWkrZTGG0E7WavrRb6BPoCA20koHsjaKPFbARpZjaaRnVUdVf1o7KqOt95XxHh7sajBXnIQxrN3D1uxM2IDDLzhtuDxtePhzw8pNFkkMqI8Yf2WOSa/Qxa5XcDfZ9+Opavtda3h7IKwMVNJJsMymaT3pjq4wn1gWPihJ0YCHrucTUJsPKb4meCnsEF/UX3fW5m0bV5Lgwy/kUeeR+a5ZvuXm/hmE6rUEIYEsB+E7XK7hqyZ9TAkrOnOWUHxM/ugijs8SA6jJRn2EiXY2jBGFdoO3eTA4fKb5Sf8f2e7Akx4OfLyvZJ3yf6pjMGyObHsU0MsyRa5xzhZ9liO2qNv82VAr4CSAq1YgWwX9puIfuNGGOwXC2xXC3R9i2+/Or3+PSbX4PaHYzodQZ+ejWWkkNFMB3w2fY3mD2b4/31R/hk8VMslwtXUYyvjLseu90OfS+NHUQOEAgDGNQcFn/pBhi5l71lAgbBoDNpw0y+ZwzpYL9U3DL6vndxyqDSW5bC+ESEG+4ZE+IK9TIIZLjOHO+PpbXyK/hJ+cV/HAVPNX7MDCv81PSYsNMpZSDyI+FGQbATfr7cxF8xrZVfwc+QnyFyn3RJOsOUH3x7C/muOTljQCJ/jEz+4qs/Im/I5a6yi/nb4wbsjPucp1XvurqmUysffvdjlnZTDUqkOZXythzaVoCSdjK2zeraRLorv5KfvO8zYMOgwE/JiuIXlFWKu5WLMSHg8v6jAup8RX5SWm6QEtvTkfxUfgU/kZ+RZRpermwoT+8zyGHvdRsKTEKbSTIQcb2ZvOscntcFL75Y2lmEfT6Kaa38Cn6U/PmBiWs/ydtevFYhssdu/42YJhMOZZZSBiiOn3un2RH1csixnBwXz4Z8e1vZXYudsQQ2BPKvr4WBJUdZStkpvVOtshJ2zNLOSttIaZuMyM4a5380rZVfwc+w74NBWM0dyjrjRyH8qKwQ2YwfVNvpZE/3e6Hkpe00rgEtTmR6d2sbDYKHHa90EIBbrvnyzQ4niw7WbtHNWvztl3+FX3/7K1zya1DDoI5cCgmuIfNtUzj2FR2+kaIO6LHF7+xf49MXf4XZl3P8p8//SzQtglV7e7HB1e4SxniLppp1B7If0SN9RQqDO5Ur9vkKBp84Stc+3BEzGmqwnK+cQcB/iq4n6zYD6Xv01m3estvtsN1ssbm6dGMR49b7iCJE1roNzaRxDhUgKskMVamyGVFDBMNRUa78judHjYEhb73se7fpjuK32+4SfqziNtaiIaBR/DjwU41x4KeSA8TZUqr8rsXPyAyIC7vvLVj42R79ro/84FjDclBkyfpNlYSfiyAqVgmuNG9g9vwKrrI7TPb8e3QuFz12Oy17PfrdDldXl34JowEsRXbEbgmskc4VgVsw3HCaIf2Ou1sCiJCfyu94ftwARA16IhB6bHcc+PW7Hru+x+bqytvhGpBa7mmM46dljwM79kqoU5DydMgsmdFtauV3fNvJXv56AmyvNgLsI8PdxrGGfDPLCVJjgKYB2sZ9GtIxVsYEJKqKUnAjF1IzYpXfkfwy3YWox3brBiK277Hrd9jteuy2Tv6YTdBJ3OsfjKaBYxeWMgNu9l8Z4lieSF2YSKnsrj9uMATbE3qRPc1uu3OyZ6T8/fc+yc22NyJ3RmQP7pVVGSYLO9cxJvycPFPyKmXldyw/OP3Fuq8hWduD2esuA35u9zGfZL+Jp+KnDKlad4nJ0PLHQfZkLFJy498luAEXG3ZR3mRQ6wY+O7+jsDGET7/8W/z661/hwr4CGxs2ZvOP+1+ZmXWwTag0Hq8BQAxqANMBV90FfvP137gNwBqDtvU7uetqrpS/pJxocFBUIii/wZkUqRIAERrTYua+IeFKxJB/v859TKTve2y3W2yurnB5eYnLy0uljSaHsSxCuUp+WB3rRIgiJKkmTNSNyi/xl/IL5a74AXAN83aLzdUGl5cXuLy4SMOjJMlO0KHaFO23lA7VeBFXftfmB58H495fM753tNZ6Y8AVLi/dcrbQeRBl8ocwMA0pUNFrURxwCH/LrrJLS63IjgimcfzAnt1uh83GtZ0XFxeAYqfjTdtNT6IQvbtOyXNj+dGu8tP+Cvx82xl2KYfmt8HlxSUuLt4koXCWHhKsOvFazxOFLUt8lLsqf9fh5+IT+Uv59f0O2+0GV1eXuLq6CMHLlyNCmKEs4nHqAjxl5ImGnhz74OnKT/kr6S4Iuosxfom5l7/tZoOrS8ePAr9YprHvjPySooJKRindVPu+t2andBcgY3d15dgBcO+k5+MG+H09fDkUGBRlS9pV0GT/V/lpf4W2E35SNtc7Az8te7Knh0t00F0oTmhI2Q6TnHGSurOH3y0aBVJrkW7kxYLorJBA03b4q69/hdf2FSx6Z/VCXEYIQHJT6N4pfEIK4dflzHSEX33+Z/jq4ksHoCE0XePLjxLtPVdTnZ8yAAAgAElEQVTTI2NWKY8HwSJTqAjeXKa8S9gGrenQtV1UjAD36UDjNo3od25AcnV1hc3mCrvNRsx2CC2CCtUMUi530qP4Kz4pnJdd5Re9D/kBEYdbqkSuYe57bIJgb7DdbHwCKXSeAPw+Tfq/WExpCcWSiulICZZd5Re9j/CDdK7G7Z7MXv5Cx3qF7eYqxJkrrz6b3qhDBVbRYyKdFH2VXWUXvRfYhc6QYtuJyG5zdYXLq0tsNlchhJB7juWbGgbGnfDSBUmV31vzMyA/MPGy1/fYbrZe9i6xubqKZRnw+ffR4RSrqHaGYonFHRQmJZNhADOlGFV+0fuetpOcYQdwM14yoXF1dYXN9iqTPR+iLGE2aqUjAFnFMXCkwjjIVX7R+5juQp4B+YEJo7c9ttuN6/82l9hur0JeJeywYkDa32AYSFNBULJH2Y1JV9lF7+PsDMEPKrXsbbDZXEV2g2LkpO+UgWXs2lK9xYkdpZcJWY4Leaj8RvmlZe/aTkLG7+oK2+2mXLRAaDvJt59jLvR00Xoer048d2tGAbcMjL3ipSiAATaYdcCiMyAy+PbVt3hpX4KpdyjIdRwKicuIr9EUzGWSV19BGgLLeygNQA3hTfMaf/PVX4L9thdd14K2TbS++F3dWUGPmVAHOjnCnqWCcPIM6+veUge/VL8zM7RNo9LvlVNjwNai3+2cxWi7Rb9zS/F85rN0xcbZbySaCk6h0mrFKYjCSN2o/Pbwkzz5waAxbomd3e2w2279O0w79Ls+NiBBuXGRE5S1L2lmy0sjNT/piUeb5srvMH6egePnl3Btt9h6hrvdzpcJJXFEDJSxCwCSDbpjWaUlWnKV3aGyh9B2yqAyZbf1ipAM/Gn4bNIExvfSc6cVX+lsx6wJld9h/EDOMBBmS/oeu53wc/9igacyls40Q0EsMNHllZdpwVV+0/xIpV9mLAn+9QGvu2x3W/T9LkSsZQyIzzr5pWH6xVNyKOfFxrTyO7rvozBjCQDc92Glx27r9JfY16my9nk3wtAbFVyHV9JdCLKHj6o4ld3btJ2IRh0ne8Jum7ELvVWIyHFHYKKkKstJvBMHz+PsgMrvOvwgbafw2yl+g9XArNpOyvSXoaP81z875W7NKEAAotWEQ0ERCIsZ8MGjDierDkxX+Pzb34HJfXIiWHyUSwZVoVL4ShLeM/EZdi9qhw0quLP4/M2n+P3L36L3H1tdz07APcXOSCpGMBPFmlC2CLkbroLEihMfV++GC1gABg1W3Rpt08IJp88ORSF12XSB9baH7f23zAWkSk98HoN7Y8mmwVm5glR+h/MzSkBD8P79SmvFqCO+OcAJz+tkyc2RdOs4qPK7GflLlBYXmBgIbG/TMpb0+YTpVz+SDmTEpcwqu+ux020fRfmTEmO3P4vtLYbfGHD/lIozquMMLxfNP+XnKr8D+clsMYV+L8qeM6gSdNuqGOriCmkfiiAVj8c5Vn77+UlGhR95fuG9cmvBto9KeFLierMzfz0pt9g2j2Rg9E4IqvIb5ZcYRImC/Dn1xLef/j3noSyp9tMglcECnmJ7yeNsK7vj2cVXAFyAgR2rMlVgnCEuhlOUJ8qeDX6lLKvucu2+T/GjwC/2a45fX0gDQ2aadD3I/YhelINJL423rpMbDT5//vzfAPjfAPyL8/Pzv5zyq92sAx6fWFz1ANjAENC2wGLOOFs1+PDJ3G8ys8UvPv0L/O2rXwOm95t/IVofXYmGChwqr6okjNS/WF+4IdjeomGDnjb4/z7/f/EffPgfYYk1/t2f/BSrL5b4zZd/jZf8LdCqgvQ9FBHCAM0pJgwOn5FwOz6WhIl95QoCyYwGBgta4aOzH+Gnz36KJrEYiYwZrFbLsJEEAX7GuYdpjP/0WYgcBowGQIP4CkEooaw2USGlU4PPym8/P0YqVoYI69UqbhwIHvJjdpvVMcOw26m+gdsFmAjuU7EH8htvtSq/g/mpfqghwmq5TAYowg9GNspyDMkKu/iPkjRwIWmUHHFJ8Cq7g9i5ztH47LjNc1arRVhSR2Bstxtw3/u9PlTvDbXRIEnnSVGR8eykA3WsErrFNrPyO7bvi60aEWGxXKhZDMZuu8HG2rBXC9h9R5vY8WsMxdd2iKKyNsIn6R8Lx5XfcfyIFEMiv+O3KKoMu9tiu3MGVdkEGf5zaMbAbfLZAKbxfZ+SP1byV3JORGM6K79j+EWjXBj4EWGxnIP8Bp4ghrVbbLc9GBQ+u0u67WzgZFAGZ5KiBAqFv+q1aHUrhVzZHcHOHxARlot5kDsC+xnn3qXHSQpANrAzjZc/xc6lQcte3EwwttTTrvLbzy9v14znp3UXx08+cO11TkR+jcn5xfQ6fgpcqAWIsjnRtgL7vz7wBMBjAP/X8+fPfw/gXwD4X8/Pz3879VDXGvzhxwtsewL8O5+NIbQNoW0Jsw5ojMXFZoOvLr7Epr8EE/sdgR11qZxaAGIjllYWBvxu0Aitj6swBmwsTGPQ73p89vr3+IOTP8RiPsePPvwYp6sT/P6r3+K3L3+DjblC05lYoL5w2UNholhBsk+YaaFJ2kQGWu5w0p7ih2ef4AePf4B5t4C2nmo+bdtgMZ/5nex32G5m2L25gCWKS5F9Ay2vDLgBjApH0sUYhz91r/I7iB9BKS7+maZpMJ/P/VKuHtvNZsBPhNOxU7MlHMOa5Mfq3oifyu9AfuFp57lpG8y9/NnebfqyfXMBS3CbOrIfNHr5c8acwuxx3mcwJZzGDAKV3WHsUnIuhCB7fvfzxWaDzYXBNsQQ/4XXrSgtp2D3gcZFA6VoSkGq/Pbz8/pXUrJtY4D5LCyD3Ww3uLq4gFuLY2OgsIGdCWWhos1BUXoa/lB2s/I7nB/l8gc0jcFs5vhZ676+Y99cgjP5c/sJsN9PQCHw3vbJGScpr/yO5edWdQzLtTUNeDYD295/fWcL218EGQqDS2EYBjEZnxK0TE8aa0EruwPY6fL0rjEN5rMObOfobY9dv4W1jQtT8u4DdgNLn8+YZORGtiIhzhNa+R3LL7BQDBvTuLbT6527fgu2F+E+kYSv9mIxWRnFzi1zMaJQXnvcPqPA1+fn5/8cwD9//vz5fwLgvwXwb54/f/5zuNUD/0vpIWMI65MlmBE2oQGitYNoB4bB68tXeLN9id7uQgcTK6+rGfpdJFEGfCuVKOTMgGFn3ZLlHQTA+rBMQ/jm8iuYs38Pu77HvJvh/fee4fHpI3z08iP8zZd/hU9f/ybsZi2ftiaZ2LDs20dXa4ncxoChUui/TCAmNNziD05/ig/OPsCj9SO0sxkMuc1BCkMJGDJo2w6Lufu8yHa7xWXX4ZIMjHGfQROwQSnyZRLlnxFag7Les9dVfofxC84fGhDarsXczsNXCC67N5Gf//Yo2As3YgOYoMr4leV4XLorvwP4Ua5Ukrdst1gs5lH+2je4CPz8E+zSIQw1EulcU8VrCHKMXmV3CLu8WdPsFrDWYrvd4M3rDhbGrQiQpbC+9zahbByzqLdmrDL502mt/I7n13htJvKjkOembbGYR9m76DpcwkA2pgsTHcRhlUAogIQQpaeKGKvjEsbKbx+/JlDTxWxAaNsW8/kc7Acm202Hfgv/abBUsSVCWPYc9HqtcRedbkDLptXKb5pfa4arVCVzHbXgMKmxxWbToe8JJowSOOoulBl15Da4qBvljWhldzy7TvYiy4oWhtBSi/li7l9b3WGzee3YhWJkBNnzg8qQf1kIucftG05Ufnv4mWbQbgKuHWyp8fzcZwk3mzfY7ZwhJWSUZLWOLxuKRhTGGMP84n7Q+4wCwZ2fn/9LAP/y+fPn/wOAfwTgvwZQNAoQgNawP974pMTEyGzb68vX2OwuYWHR+IZCG/Al47EQYmVxFUXVbB+xVjbYBQKQW+p01V+CjfXfuHUN3HzW4cNnH+Lpo6do/7rFZy8/w2Z35TaAaAgwfpaCJD/ur7OYI3ZODMjmEg03WDUn+MHJx/jDH/whmqaBaRr3+SUyyIaUSbkZY9DNOiz6GXbbBd7MZ3jVtWj8MmayKofe2perRMmghDHyTVEelfLK7wB+uWD7PwYGs24GO3eK7Ww+j/zYuA+TQvrhdBZSFFbHb7oJnsBX+e3jR1H+0vLzO2l3HRaLOXa7Ld4s5njVtmis8HPvp5HJZiqTXkIsyxkwpH5KrrLbx67cehLcQL/rWizmM2y3C8znCzBmAG0BsgB6JIOShIc6pvQ0OdjTp1Z+1+HnZmMaIqDrMF/MsfRtp0XnBx+eH8cln3kocflkCrGEbEwJrvym+clu2UMRdIa5rmvBdo5d3+Py4g1eX7Zomx4kqz2Yffyk2LACFVTwhF3OICytrfwO5teQ8ZudxUGY5khkAr++3+Hyco7XLw2axm3WJoUU+blr7PtDWWmV143DBiuV3T52iUEuOXD569oOdt5j2S9weblI2IlUEai8Yz278nWz5OO4mNVJ5iq/A/hpZjFgz68FL8qy58qIfbkgG3+QJARJBEfyE7fPKPCL/ML5+XkP4P/w/0YcA+wUsFApdE1mgImx2V6htxYsNYLZr7SVTCJUZ0JAAgrniBUg+AopcM9Ku0cEyz2utleYmXkI2TKDuEfbtvj7/84/wIvXL/HZN5/h85ef4fX2Fbb9JWDYVwQEOGFAxwx4C5HhBguzxLP1B/j40Q9xtjxF0zZBGZKdJE1h3RX5RBO5ZejdbIbFYofFcgnMF+j5EsZav5wFEGutNNaupGmv0jrUbYsqU+W3j1+S4liGRIDxSymX8wUWqyUw8/zYxryS/Iv8hvkf5xcbgcrvaH5+AXmpfAnCr8NivsBytQLPF7CbSxjLAIlRRyu2kZ5umkfIZBwru2PYNUH2huAIYlSdYblw7Khd+oU3FsDOhQOO7CRdpI41n+FBouhUfsfwI9V2lp0xBrOuw3KxwGq9BrVLWOtmmxg7l1eKBjdhJtkXMlIaRRlkKZjadh7Fz5CTv1yxDQeObzfrsOznuFyu8PLFDLv+yr0ewj2Y/MaSssyR4RVVgkjWcMzCIf1xgDkmg5XfGD9jlEG8pH8S0KBB1/m+b7HCi29n2PWbMPPrxiUjRp09Lmgro9PSld0ouyadzBjwIwJBJhTnWC4ju9aQ6udyg47keEIjSW7Vvu+6skchvUOGTp80aDu3UjXlZwI/Q/BfLPDlJjO+LLKpKYmOo5nxuPh5N2kUOD8//2/0+fPnz/9jAP8QwL89Pz//P6ee5bDcIaTF5z5s4wDLNnTQ4VMW8oQqOUqOfGdCEocoCOqeP5MGLGh6xNjaLeZmkQqVF46mafDe46d4fPoIH198jM+/+QLnX/wZdrQByboSnw+2Pj3Wzd7PzQI/evxjPF09xXp+gnk3dxuxUHiDNShFWjFKZFulvW1bzLoZlsslmvkc/WYTpiY5WItIZC2WuS7qLAKWvPoz5mypV+V3ML+03CgkRBqitmkwm3WO32KBfrcBemEnxoXYsbIv87wcU3EWftKYFtFVfofwy+LXWTYgoGk9vwXa+RL9bguYHhw2tqGkk5bZqxBeQaw4+VUdZ2W3l53J2s68bQs5JkLTNJh1M6xWS7SzBXZXWxDc0kWtGEWpVaJUZMepP5HBkRf0Kr8yvybnV3AEMYp3WC2XaLsFtlcbEHYAG1dK0vdNIStxgSi4QUMu+6v8ivxaMmGWLim5kG6X2MY4fsvFAmTm2PVbiBGVGKH/I0R5ctFQGIEQ1GqBtOEMCvmYq/xSfgS3Aq5rWvdcVnRJW0pe/roWi8USZObY7raglkJYstoupj/kWgVKSdEn+Z0Q1spuhJ3R7GKpJq0gwctei+V8odiZ4NPpLTGfarJdjRsKsqeOK7/j+BnjXv0gSrKH9DDya7sOy0z2HBNnOEgMcrmA6XLIb/PQe8nt+/rA/3N+fv4P/fE/A/DfA/jfAfyPz58//w/Pz8//p7FnGe4d3LQCcQBBbNCZLlyOmXIWaWOM34nfbUGZVDLrLUtGtWQhTt3buArDbN2Sb2Ng5J0qqTjwlcsHZS2DyOB0dYqz9Sl+8tGP8eriFT7/9nN89uozvOpfwPIOxMBp+wifPP4x3jt5D1078zvzRqEDEwzJ0rsGxhi01KK0o0C+aMcYg/lijkd8itXpCV5cXIK3WyfUskuPicLuKghL3UJY3qKKNwi1v8dw38es/I7nl7RhmaQRADIG8/kcZ2eM9dkJXlxeYjfBT7iEEBjOksolfgCTddbOyu9gfo3wyxVbOVDlYAxhPp/h7PQU60eneHEV+ZEx4MZ3FqrzYbaJ4kqqXHTwsssvjw0qK7sCuwataZPBfMkRnLFtNu9wdnqC00eP8PXnl+jtBmD/rQiSdxcVOxu1I8fOlae2sjNYGe7cbEPldwA/06ClFo1pyktXM34AYTbrcHp6gpOzM3z9+QX6fgOwAXl+amtqlyWrOIm2RKrNDPc8OwBU+R3MrzOt+yRaTDKyQ1UMhK7rsF6vsVqd4dWLSzBv0RkXJpH75o5TQrwx1cbXQnIajluUPxlYjG2aVflpfg3apsWsaZ3eoZmFsuaEo+M3S/iBd+gaA7QAmcYNTnTx+f6OCWmlUDqLlBOYUdZaKrucXde06AbsRPlMBUDkp2tnWGXs2sagaVsY4+QvKV2WV0JU0KrtjPw46i5V9o6TPbXCSlKtUcZicK+BrFYrrFeP8PLFFdju0LUGpgGIGteGhmLlsEIglosPV5YXhEPHzwLZ6oHU7Xt9oFPH/x2Af3R+fv758+fP/2cA/zeAUaNAdGO1h30nI7UvEopDZoEnlmWSR1V7JqNgVyOi5SuG4LZncMuG590c1Mu7JYleERTBNI0NHq3PcLI8wSf9J9hsN7i4vACIcbI6wWK28ALr7Vk+neStqcZb1w0RGpiiQWBQRoSwVKVtW6xO1nj19bfYvmE0vvNk4zfXCB1lDItDaqJ0prOSzhjAxkxWjmLakrJ5YPzCfgJJ0zxw0jaRSfltXjMadkuS2BBsiV9iGOAQWlBq/V/bs+c3kogY4Mjlh8bPeIV0gl1o1D0/IrRtg/XJGq++/gab1wxj3afsQARLFAb3DPJ9dOQXlykPByeW3atAe5eiFy8/HHayuWBD5ZYzxh80AndObrXOer3Gi29m2Fy+Aln33jpLvphTydJiKOUTf6I362RvzCiQhVK4/JD4NWi8QXU44NPxZ/zg+J2crPHy2zkurl47fiaqVGKgASHmSZW86MwRk+dpLZgaDL/CnrvKT5TbRjbJCn+HOktIs89W0zRYLVe4eDPHbnOB+CFfA+a4pBkUFVtDqewVGYhhZ2xkGT2OXH4Y/OQ95q5p/OpGHVkWd+aI3KzlerV2/LYXrt9jx8/1bxi0kYZkxVwsez2ZIYND0V3HXWXnBpXT7EqXEnYXCyd7YaRuQumGyQpfFHEvFhYP4b48JOyq7O1vO91ERhMMAgN0lPwk11N+b9AauL0OYIJRRl79kMzH4ng7fvuMAub58+dP4FuB8/PzzwHg/Pz89fPnz3d7nkWwGsW8hhJgAPPZHC212PFGenmAvbLGBLAFM7nXQQ0hBuYrjS4EMFh2KpaKwYD7mnEPMKGhDotugd7uMEDBGELyM0kyO9iYBvNujpPliasE5CquDOrCslTpUMXy5TvX8NpAXkE4bUQRKrh7v/lkvcbr0xN8/fIFejCIGZYIPRF6uJ02LQMmwGdVVzhpANxthhWL37ieVvnl/BCXnSexh4ZqWIbGGKzXK6zPTnD18gX6TeRni/xcGYUq4RUmPdsc+GVcK78pfmMGuUGhJb+R36njt2UYhucH9MIOFpZDFxWrBKvghJnwy3aCruxK7NygkrJXPoYUeXBKnt3JySkuX7+A3V26nZZhYEHBYm4t+/z6cvdpT6pC6GC9QZXMqN5T+Sl+hc11cwNAwk8VNhly/E49v97t/8ReMYr8AJKhiCh8Si8KLSdH3twoZanym+TXBGMqKd1FR8hJ3ELXEGG1XOJydYpvN6/Q260reyawJVgLZ6Cxxi3i8fnQ6QqGgyCQXv7QTBrlKj+/QqeJgxKJYNh2emKZHmMMYblYYr0+xYtvXsHyzvMzsNbNrlq2sOwGreT1Tgq6p8oixwPb9+Cm9n1vz67UjjpnDGG5XOJkdYpvt6/QJ+zITSr5iUGEUDiwC+1m6PdcSdneghsDW4628pNJDG8QGHxtJ28/J/gtlkucrE/xzfYVevsG1jLEoGotfHmlpm1CnGhiREHM+U1NBk/v+gM8AvCvAfwrAE+fP3/+EQA8f/78BIPS3e/C8kvXO2MxW2DRLgPMsDSTfYW17tc1PNZX6kRVC0cMeEsX0nKWysTAql1j1s390CD7r8iIwrMEv0EOUdiJN8w6kprV8jv0SsUwZMK7lC6eQrH5ilYqMQKwWC7w+OljLM/OwCK1rnb62UYk5ZckX0rHC18sY0QWB7qHy69R/stdKvlwZGAhZU4AlssFHj95jJXmZxw7O+CnlCDV8Am7wBCV3zH8Gu1/jF9+03cYi8UCj588wurRI8XPgMl4fqr8gvKqSl24If5qQ88h7iGyayjueq6NOQMJTLQOyZGjslws8OTJY6xPHwHkOkMiAzEMRKPNHnZswz9b287D+AlDKq0S8KOHTPAig9j3PXnyGCdnjxC/E+X4yWyzcOLAXpIu/GxSvsJv0ipQ+SUzXYIoUW4DvqCOJ2VGRJjPFzg9PcNy9Qg2rA4wYDZgS2Cblh2YdXVwmcr4CbrD6T1Efu5LA41pgl4ycD4KUiyT20SYz+c4PX2E5eoR+l58eH7s+GmdJPBDvI4gg779tCJ/+6hJsVR2AxfYURioao9EhPlsjpPTM6xWj2CtGBfIszNF2UsKINzz7Gwqh4e6B81Pay65jLlBQ/zVt4gwn82wPjnDev0Y1pqg1bD1hh3LBX4sSXcyB8Uw4TfOa99Gg38wcssC+K+mnpUEDuJ2oyaAgFk3x+n8DK+2LyC7Vvo+IL5PzfEaGXbvczMDLNva+CDDH9XgsE+HBdgSzuaP0Yb3ofK0EUovqSWdHSOl6s+d4PodJo3fgMxXIBlQ6mXnY47UgD9YoQDM5jOcPjrD7gcf4PcXb8BffoW279E0hIYIYXGRnyKx7GYzQ2vPHBUvUaLI5Xd0pUDlNxhQllWfPELyhk0vwgR0sxlOz04DP/vll2h7i9bk/KTo1TtSoby9wcHXC0bld11+w/BLBRRK2b3ffHaG/sMtdm/eoP/qC7R97/gZEyyrRBS4u5AoC88zZS9/Y66yC8vvojF1pKxI/bIqX3+5m3U4PTvFB9sPsLl8jc2rz9Cg9/VC+uSoGcigdFhXtPYw3Y4/dH7uVYGhMc6FlrZ1Uiix65MZI3d31jl+u+2H2Fy9webl36EBvCImupTPO0Qxgm8vfRvJ2ljrU6HFMncPnF+uu+gyHnOCOFc2u67DarVG37+HL3dv0Nuv0FDvViKQkiqfbcPsZ/10qxnPJE+VH/bKX2vaZIVOKb4ohl4OfbheDcWs67BerrF79B6+7i/Q26/Rmh6Naf1gKeZXDKuG/f4CocjTvDl5HKlPld1bsZMVpppd/+gpdrsL9P1XaI31g9vwGMSwCgDy2btEZVErmfVu90VX+bm+T/bPoWGoDlChRaWk+8Ksm2G9XKHvn2C3ewNrv0RLPUxDfjNDKH4uXNnIdZhsL4mhrAZZDm7f6wNFd35+/gbAr6f8MAGDNSaqwjLc9xd/+PQTvHjzDd7YF+h7C8DCwASl2fp36I1xgbLUVwZgATJusO2+QRm/RcmWAcvoe4B7xuPmKX786CeQ9/Sd9UsCUukere2+gP0fsc6Ff4aiZc//0ysEkjDGwgwC6X99uLO2QXeyxmqxwJP3nuLv/uZvcfWLn+MxGiwWhKYloHcWIFGqenAQEt1/MgM9A1svC3axqPyK/PQKjywMOc6UJfkUSoiI3LIm4bdcOn6f/e1vcPHnf4bHvMJiQWhbyCe4i/xi3twfzY/n88qvwC9Yb8kUnpdzGoavVBnh17UN2pMVlos5nrz3BJ/95lO8/vm/xWM2WCwMWpE/X7ixX1IvbnHKb2eAMeNAZRf3EUjDIA0qO9QNXQy7axu0a8/u6VP8/re/wVe/+dc4pRVmTYumdfmNbacLw4bvqnuevhe1FtjBDV6ablbM60PnJ8Yct6lgol6NsPN+CKHv0/ya9QrL+RxPnjzB73/3Kb769F/hpFli1rUwjcsrM6LsMSBLUCWXwrVnz89aUFv7vkn5MyaROc1wrB8k5cntqWPQNCss5nOcnZzhiy9/h28351jNl2jbGZo5wfhXCojIreLoOXALy4rh7vWW0W8BahjW6i2vKj8tf43fsI0ygdMyV+TpDwwRLNyeOk27wnw+x6P1Gb748rf4+uqXWM9XmLczdEsD6n1r6VeC2DArDLi9W/wKEWb0FtjuLFpCHGBWdkexG17n4IEAtwIVhLaL7M5WZ/jyq9/hq8tzrOZrzBth51mBwJbRh0E9hQGnY0roLWOztWhh0O+q7BXbTmP86ioKg/OcHyjVPIcqoOs329Y4fgsne19+9Tt8fflzrBZrzM0c3aIB2fj6AFvXv7kXkkm1nf6ehedH6Hdl3QW4plHgEGdIlra7WsVAnP2UTIAx7xZ4tHiEi8uXrlM3/k7QrClRqEmuAy5ci0GY/sBVZgu0/Qzvrz7EvF2AmdG2Dax1QiD+48z8sKFKdFEPlIzJKojxViIkKwNGDQJUiItEqyVvsdWVD6DObbxkfvIT/Pkvf4HP+yvMeoNlY2DhywJueWTYc8AQuG2ApgG3LTDrgNkM3M2Ai0vMz8qK0cPl5y1+fv8ASoNQYaXxBNVXGkAAsst54EcN1usVfvDjT/DzX5wHfm3g5/LQs2vYA7/GpPzmM9h2Bqr8xvnRiEI7EksipfJ+muIHAG3bYLVa4cNPhN8Gs75B2/hNIxmuQ4Ib7Pcw6AngpnHvULYt0Dl+fdcBlxegbn8MZYQAACAASURBVNgEP1R2cWNI3aGSDiZJb0kChTWxbjtdfKvVEh9//Ak+++s/wxfbK3w0c7LHDNjeFY71OxxbEHqQ2zvANEDTgZoZqJ2DzAzYXWJ+UmVvwM8YtfeKYpd3daV4VBlpxcsAoLbx/H6Ez/7mz/DF5go/6AwWxvjBovvyh/WGNgvjlquTAagBqAO1M1C7QNvOwdsLzE/KBtWHyi9pOzPdpcxO3+d4TRToIIOu71ssV3j23sf41S//HL9vL/HJssFs1sI2AO9cYbB1BWYtoe+BvvfH3IBtC4sOjDlm7RZNW1ZfHyo/kb+GRHcZG5Sk5PRgJWJ0/MkYEFtQ24BWKzyjH+Kv/vIcnzZv0C5aPJ41sK2B3bpl37a3Ie+9Bfqe0FuC5QbWNmB0sDTD3PYADfcVqOz2sxtGMRxHEFzYBM9uvcYz80P8+pd/jk+bV2gXj/Fk04A7Qr9lwPq+j4WbRd+TNwY0sNwGdgvuYahsFHio/JxBx0RjQDbSL8obxJsfNIDiOSt+jZO99+iH+NUvfo5Pm9do5i3e2xB4Rui3vu/zE8NO9hi7nlzbaQ2YfdtJc8x5B2PesVHAWWUa7La+YhD5CsJJJWZrYXuLVXcCemNAxkbgzkecLbUAjAPObmcvt7TEl7/MSkTY7p/ZNXjUPMHj5RMQCMwWs1kHay363rpNa2QtBZftRQJK/4bdlKWyZApt3qWmitH4oIR8CxCqqq948BY2aggnJ2t88Ed/jJe//gt8ttvhfZqBGoOL9QK8XsEsl5itlugWCyznc8zmc5im8RVaLGoWBINdv638hJ+fGZG0UPJ8Tqp8RRqQUX4tYX2yxod/9Md48eu/wGfbLd6nGUxj8GY9B6/WMKsFZquV4zebYbZYjPCjyi/jpwckInN5x1mUPekA2J2wC9Q1zMa4Xobc6x7r9Qof/tEf49tf/xKfbbZ433QwDeHNauH4LR2/WeC3hGl852GM49e7Qm66dGDy4Nh5BciIdT34VQwzaAMJzJRchrPgEwjGiiy6FR2rkxV+9If/Pr789M/x+eUlnmGGpjG4aJag7gTtfInZYoX5fIFuNsd8sUTTNP5TTq6M3GdcCbbKXuCXrLLS7MZ1reQk6kYEvwYyMQ7JwHK1XuGTn/4DfPHbX+Dzy9d4Bid7l3QS+M0n+IEAa3uADPrdpvKDajuDMSA8GOCMtZ6JrJLLN1ge8n0fWxduS1iuV3j67O/h4uu/wN81V2B2K7FevWnR8wpES7TtEk0zhzEtusXCf5Kt8f0oQGTRtITdtvLL+RlSAwsdzsjxwE8A6nUgIkA2ciPCar3G46d/D5df/RJ/112AeY55a/DtG2BnFwCt0LYrNGYOMh26+RIz0/rPGErYPZqOQJQOTCo7EbQD2SlUlF/weiwrdma1wpNnf4yLr3+Jv+vegO0Ci87g2wtG3y/Awq5ZwFCHdr5E17SYUxPrBfVoWoN+W/u+Ytvp+8MipyHapOwk/SF8QwBrfku898Hfx5uvf4HPuzcAL7Hy/Hb9HKAVmnaFxixhTId2Fvm5fZQYRBampSI/cbe0UsBVDjBjt2PJqSeGUDC9tdhsNyBu0GLmYFEvix9gQNEixAgVx30CTArPB+0LDiBvLWGgN1jTKZ7Nn2HRLtD3fdgNUpR0t7mFt7BI+pBWElJ/ouU7GgDk28vauq6V2exKuY7ojlcqBmLlYOsKQeL84U//AK+ePMb26y9hNzusT0/w5AfP3LdIZQDpK7AbiPjyYw7LuxgNuC/tAvsw+ZWWux7UwUp7GTIqxwSQa/QCPz9g+finP8HZ40fYfv0l+s0Oi5M1Hn/0fsLPNMY9TzTgBzCYGvCuJMIPkZ9/xyobjOTmN8oOUpaE8L4eS68DkCW3jk2syg3h4z/4Mc4enWHz9Rfor3ZYnKzw5KMPYTqnwJpG5M/4xt3litl/jtDLH5l8r9eHw06s6iTKp24DM44DfiMMXTwMyCylGHS8axrCD3/8E5w9OsObbz8D2yssVmv84P2P0LYdjB9AmsDOdaZg+Hx6ZYJa7HaljvUB8gsMMxpj7JS/1Av7OuDzZgjETgtkd8vJ3o9/gtNHj3Dx4jP0/SXW6zV++OwjNG3nXl1oIj+QcXny/JitK2NqsduWZrseDr+07dTylzJMrulbxWMtxOT7Ltd2EtxnCj/4wSd4dXIK3n2Oy+0WTbvE02cfg6hzJSd7ifh/gGcHgMXAUPje+oPmZyjxm5RIJodJK0v6EqsTgtvtiMFkvU6q+K1PgP5zXPU7NM0cT57+EEAHZtFZNL+oFzEsQDO4jvXh9n1j7Ab6yhS7wZXIj+DlbsDuR3i5PgF2n2HT79C2HZ48+RFAM6ejJuy0fDmNBdQBaLysDtP28Pj5cYMYCfJOL+GT3g92lnBJ9tbx4bEZyt6Hjp/dfoZNv0HbdHj8+EeAmYOtlj0atI9O9lwJY2SlB3BrKwXgv0XpFSnZ9RCesbcE2b7HZrPB5nKLOS9h2WKzu3KJh/vsE8t3vlzIYOOtSFJpCH5WD25H91AxCIZbfLD4ACfdqYuZOGxuwy441/Q1uXhpJSJeJiBWCK/Mj1aC8AwN74W4B1fjKfvK7t9rdhYyETTGbNHh6YfPwO89Ae12MIbQzTsEi5Oq3iyDSJ8nyVTPvezRUfkV2A0610PYhchkCbp7ncQaXfaM2XwfP2lHWcai0LuMMhF21j5oflRilJyO38ufHRypT9wYY9zSOnnPXPh9UOanOxYgWsCl3DnI3/BL6Q+WHQ2ZlJpFLXwl1L7p9PYc36l6gw6z62Bn8w7vvf8+nj59ArY7GOM2cxXeUtYAwN6gEAclDMCg70WFqfxK7HJlljJog5Kj6CfyI/+OqVFUGLNZh6fPnoGfPgHsFmQI81kXI+XITwwKki8rsmeHslf5xZMY6kgfOOmUgcivkvMIvPzN8GT2DOAnaJsebUuYzRYx3dJeyrkHGo5BQM/Fb21XfpmAkT7J+sDR/pBDP0ZEAHvDqO//5vM5ZrP3wfwEXbtDN2uwmK/cJwp7P9jS4am2U8Zfrj4M++fK7nh2A4oEyAoBqIEl4D4H2D19H8yPPTuD5WId2MkrBMEJL/blb11dsLb2fQN+BShUBjXSjkZ+buDu+SE2dLPZDE+fPIO1j9C2O8xmBsvlIfw8B+tZFviJu7U9BcSysVw2EAv9btdjt9vharMB+9my3lpcba5gNh3W5gzzdodtf4Udb2B5h57cJhLGwM2YO/MQSA26LMlME4N6gxkWWGKFx91jPF0/wXy2wHK1xHK+gBHrpNS5gfLi/jpjVPyMByUe0iY0fzo5Kgi9fm6oPOkjAgyjAcAcBcN1nBbUEKgxMPMOBPfN9FC9fcUgpwklCpBll3kLJNeTdFR+WRs9da8Qglj7GpdQssaVGUeGRJzxA2RIKcunyBsRRBeKAu5fI6j8Ck+nN+lgdqHbgMiffO6GDMN9xsf6jsOCTImfy1zOL2mnvVGnPCx5iOwKHawKq+AzOUi9iDGVfNm7zYUsO37aOOBmG+cguH1YArswqsz5cNhDyZZuS4oeIr+CTOUKUUl5KqkmbuLH5bUBBX7QbSezXw3gZjx69n2fV37CH04hyaCkMJ5M4q/8Un6kApkcWAYFBCBqYI3Ps2InMkrUgOHeYb68DKEjtpcMaSUlWMtuNs3CquXGWTlUfqEgKB4Gv4M2tcjTzTVbg8gOsf0kMjDUggHstsDrnZM/Z0SQbEbZi/wcVdnQLneVXSyIIbtCmzrCDmBvS2U34yzDcrZuZts0gd2rnXsV1egJDaW3pOxcWzvYTFCl4cHzk2cLbCb5JWFm/LxBlP27E03bAATsdsCrV/7V5MQoHuVLt53MlOxfVnK3aBRIO34m906nMYRdv8OuZ7SmwWq5wMv5DK9fvwLAMNagaxdougY72mDTXwJwSjTJbsI+Q7J/haz0bbnBzM6wplOs2zXmNEPTNJjNF1jM567Ss1/CXUrzaG54cHfgl0oVBoOYdIXM76SNAser/t0SPxqJio7/Vcaz8M/1nOyXSsZciNLk+PDAWhuzU/m587IQp6VTCJN8vH7DEBhtcpVGNTa8DPf17TA/TRSUYB04szSGgr/y8xkeCTMCo9L1qVT47zORvDrA+gU3eZ3A2XHdzKak1MuWqEVqYOJV4sC3lIyHx670/IhBYGpAKY2rDAiJwnt5Rg9K1LuLCGFyYEfMkE8jiZ+ke/Vt65h7WPyowK9Ic6TfSx+RVtgZTWPfZ1gUGf+PWPVlKqVkHD/I7JgvN6i+MgxcatspF8b6w3hYYKqbytyLb9/knfTATRRbyGZk7u0eeYvKNYnSfkb1RKRNd6HjRrnKL41npJ5nt7JS831qxg7+c5F+KtUtv1b8oPtWN3Uh1wGvvwB+NUGpTlV2w3hK7Skm2aVyZ123yEDQMn3b6di5p3tE2Yu/Wvbcpq5sEcp0kK7Kb/hMrshMxet1Eff6qltllaSIPdOMHwPqc4SS7ih7HAwC3rA6wg+4RaMAEPIXdTS4RC8XC+z6HTa7HU7MCfp+hxcvvsF2cwW+AmhLoF2DWbcADKPHDpZ7sLG+AvvmxCvt7nvIHVa7E6ybFebtHC259+gXixXWy5V/jySm6TCXNnEhX1LoQZEZK2Aq/RSfKTUMgAiAW0qire0WCLORWqGN6g/8ZlvwFUgEyim9VmIZrxuVXybxU51ssZGW1otEhzWKnwXkMyosja8M9v0QJGi7sRFwSaKwDLbyG+NHCZMiu4JcprcIOiqGCat1rN94ML4SojorSbfmh8gV5Oe/iEZir+zSAceYHMYLlJ3HK/JerKywcrNf8J1koEXpMUkvCw62G+HKgV3+TqxKwoPhN8h5wiNnl3stHLpzivxkcJHInnCQtHr/7BVi4saLr8inSHRp/rKQtAfDr1AG2sCadWxjM17DYPygkqESzi7fssxG5M8jkuZQ6zJa8iTv1sr1ym+Mn36iOGMZ/pTPg7yQOvXl6OclQxoZarl1kjyRNg4rdBjwr+JVdu+MnWpDRe+USccyu2jKEcMdw8noPnYh3gfML+Wh2s4krPQC5fwEkd8TR4zgIL3ZQuQX7NwsaRCdU3IkmyTv53eLRgFf2cKyh7hs0xiDWTND13Xo2hZNa/DNi2/w6tULXF1dYbfbYXdpwZcMs+1Aswa228E2vVsybxuQrxQtteh4hjnNcbo4Qde0IBDadoaTk9NQMcDjQ7+DXakOZCc04nFQNUYUomFFzD0T3JISgEiWKauOE3ntl8oTwwi2p0lBqfyG/tTfIcYCK0/Ef2eVZHZYLXUVIQ6DfpWOKOTuclCBpRWo/A7il18bzHCF41IEcW8BlPjFJRueC7yVlzM0okCJcYCK+RG/D5NdSe7Sckr72ql0edkLcuKFxbDrV0NHS953nB1hHZFH5WQxDinHrP/yUOU3xa6sKCUXfeNHXsli+aNkj8Qo5xUekXP2mqjzh5QlJFyjL2Su8itdi4OSUvuaH490kL6/i3OQXuZYo4qTHJz7Cf4I40a5h8pvxKN40fxyuRyih7SK8BNJYiRN7in5E3GKPZ0/5/gbVzeOpbOyKwZxFLuo88dVPhPsOJGyJLjj2PmwK794Pmgcc6MBUFYlnG4Zw/UmNUIiayV+EguHAYTiJ8srJtztGQWkYuj3qOWGV8SMMVjMZ+jaBp/8+Ef49ttv8erVS1xeXmCz2aDvd9hst+gvdsCb1i0NbAjdrEPbtJh1HeazORbzObq2Rdt0aEyLxXyJk5NTnKzW7lNJ4TuZE0JX6ugKhaeV0vxuSbCTa6U6Uuh0gxPw4T0aClJqjIceBpTyK3lJByWc/KHY4dOIYlT5peEWdZy8dS6niVHgbsjNVOppEg7Ao+DLMmaigE9W/pigFBdc5efOqBBuHt9oWO6Is2suSBNXCQg733YnK7OUGTdfCks00mE9WHbZtRI7KqtPw+jihTBTEPyR6iB1ByvPpQpuCAes4p8YVFZ+g8en2JXC02nWfVpsOxXXoKwqSVUrqzgXYPhVPGNLKCu/qB/IqU5D3u1pv0lAnlzQWL28kdxTofjRvkaidRan32hdmDBqFHiw/EZ45SEU+OXhJynTDSiidhlmToMZYNhoBp0F6S2q7LJ7N8lOhcj5M/H1gfQhWY0T29FJdnXckN0r80ulZpgcHVYSbpj6j80mSKdNr3lT/HTfp8WRg1lhmh9u0SgQN0aI/ySBwZJlATJA0zZ49vgpzk5OcXF5gTcXb3Bx8QabzRWuNpeQJUhu2SCjbRv/7WH3+QVjCG3TYblcY7VcYblcYdbN0LUt5JM2ULHn7tCKMfAzcYEovZHHMD5bWTrxypFum8N7znpAqRWj+CyH6uDVKl8hDJnRQWXlN3V7Hz+5wios/QDF2Up/zglH79/PZGp+aRrHByaV39jtkc61mBIgDETyZX3Gb1bHUfQ4GWRGZSkotRkrY0wxn5Vd4XZpdjmgHItP5C9l574Qyf6VgihniWIk+0k4n441RaZEBiNNZ+WXK0Wl8PayE8cpP9V2xvUBmXLEEqeXRd2u+qWVadlkMVZ+heOB6ps3ieMx5U1u+LxrLNuh4hOFSyu42s+o1Fd+g+PSYmitluQqSnRR6XQrHuO72RzGeUP9M8glq+MQE3s5rH3f9dj5a0exg3t1WL2jrhkdxi4mbOyd9MqvdBxZJf3ePn5BB1HhyKuP8BPFRSWkwFJiJUzyA27VKOB3fPabA8VkiQYNgDh+j5IIs6bDbN3h8cmZCwOM7W6Lvu/R2159I9rNlDfqm9KGjPtGsTHh3H0+whWqGEaG/Zgq8oyOriRpn5UpKaVjDz1XZUPdGJnBHMSVRRsWucqnloJVSHWwQdDlLJ7r47j8cugqv8P5DbvbsTsxbhNWeHDkmLAoMwMQ/FV+uHl+pJrhoOgM4zZMQfZkR+24xweg4IWhS8qT3QaGBVfZjbDzcVB6eZCWPJW5cYBFbjwbrbyQ+Fcc9aAksJs0ClR+kR9ljxUGI6M9nr6njAPSdorCmbWdTtbStpQ1P/i6UPkdLH8JvySIUhwoOPHn+zxvPJVBhBYy/TfmJbanAEO+NV5ylV+h/Qyik8tf7ncQoZRq8M8Q44Dv+zjy1H7dA+JP4nc8xoxyld0edjqIo9jFtVasNmm9FrtBpNFVfuNtZzCDZbI3jCc/iHoolfjl44bwuOJK/h77Nnuiy70lo4BWtDJlK/yWUkXQmSIizGYzZX0C0kz7gvYl3YgFyRc/QS1dK8SU3KDS/ezYx1OuDEOwScUYBqSCLFTAEefYMuIGFIjFGYpbIufBubzfHpSs4vcqK79b5ZeUn5+NlNmsfKUAoJj5Z/2s5vgS2MpvrGHOfQ5mNRNvw4QPgmH4MYqcKJkD4DYIJXXJ8yMZ5ORxVHbT7NJAc5Esy6AqQVZYAz/KBpaUcCQgtpkyW0Y0sgKv8kv5aTHS7SiN+BlzvhQTfq7N9C2oUkHjvTRBsuuyN+oUrQKV3175K10/uPPzqZdmMNxQA4is/ZSHWf0FGVDlVw7ioPYz02kOkb88ySF/UnZ6BOKOOcmtzG/K1Fbt+wZBHCp7+sERdnKZS+xCmfl2ko5hN7WXR+U3yq/YDybN4oijEK63qcAFnLZ/scT9ddbxx0Ei+c0Yx9wtrhRAluapZERHKlNS9PLJBReuCzhRDkDeAkoBun5fV10dizSpLKT+HFQxKAs7sxzlAxIqPTPihs3mMPzEKpBY/SRjmXHAz4ASYfy1vMpPpW2Yw/yZsaau5MJXBnRaQ5vsT3LFKGEqnywZNgwhjspPpW2Yw1H5m+gkAD2wjG9UDjMz5BUflnNfXoUkVHY6bcMcJse6Yw1HWsHRTzNACCrpICukV97otlJCjbIn/Euu8tNpS6JKw0rYjbWWWXJL2l7o+tJvC2jDgOYHz28szspPpy3L4UDeyvwmaVJ+omQuaL3p/Ug9kESx8UTlN8Uv+Q0/R7CDzzxro058krO2l8I0s/yJfV8pospOpy3PX4yrxG6MW7w+wo4A8HHsat8nzx8pe1mblcvBQbKHknEg0zG9rpOELIU3OqHh3O0YBURzPrRC5Dpc/LZXuKHzx5LfUEbuvlSPUFFUxz/ViSVVR1e4cE6D8i1WjLySIK8DulNNa8Ke6pulFUisbllZhcIJMu2XnPjL8d3YNMQk6MrPXTqQXymfY2608SbRYQn5QFKWbjlZV/dLVp3KL3o9Uv7ytOaOxjx4JJEfEBtq3+WplR+jbCq76HUfuxLLLJIsRNWZouhkWXlQkCRSjp8NDSt4SoFUftFrImIZk1GW+xwlXV9+i5DuujzGb7Slrvyi1yn5ywMdHI1dQPwaz8CjL5ysfYy0IlNCsPekrvKLXkf4xcyknooSUQCarPKQlVNBJlN2qmDVuQ8gd5Vd9DrSdmYlgOKt0UY0Z4dYXtJ2DtgVzrlQlyS8ys9dOpTf4Cg/SW+kK6x0VyhpkXFfLneSqCyAgrsVowDDAUz77nIqxtIWrnsFLRQsh5/QKFGAoisGkDaEw+oBZA1nXjGGl9O7WWWgQbj6PMtpXmkwwakogAXBnGyPs8JLE5oGjcrvOH7DOMf8BscxzNA3c/6Q5lX53Ta/PJUlv8EF44worRz95n0iRf9cYpgGW9ldo+3MfjKXlaTXYDk8zwPvYriJ+gkNRyFV9lB6arBfzgi/NKySG7maWHWG/CT/ybuWyjgwmi5UfjHcI+SvJHvFUUN83uV/Sj+dbEjVwCB1ld8B/A5xWRjpPdnkTPNTnwXVRh2VAX2fC+FXdm/JLn+24IUVO1Bpq1aKbWQSnjbSAaVXCCq/I/hRfjhsCPMn3TBAy17UO3W5jK608pedzI5vtHt7nySE1I60ioib7jOyKsXpvbAKQlcCkNtkglQF8c+mm4pRFj8lf9PLFOQiqS76XDWKukIMwh9UluxcBTbdDEi8SrlRPWtQY4PVzp9m57JRxfhQtvJLwj+CX3pnxOnkcHwo5RcPHIpUSWKemPGq/NLwj+SX3i24hJ+74MSwzA+At3Tr8xHNtrJLwz+EXaFQaPRMYuWQ1kH7CJGv5EpAg1F20V/ldz1+49wK6VYGnrzPA5BtwqTOK79blb/krFhgFONnVoNLTsosDCT9LdF7pie7Kr8k/D38tN/h4bj8ufi9/JGgcW1qOoQMl8OBtXnbqvxXdtl5mV2S2yI+yi8MeLr9rKIcav+5Liq6i+XxTZIrvyz8ffxiRMieHBRfgTqQ8wvs/N/EvuP52Sl+t2oUGK8A08aTQZUeFg5FnwQCpEKEShH/KykbGpyOIz2m4XF4tgB85PpBQk15ztMUl4tr2AoEy5pcC0u0GESIm6GNhZPfqfwO5FfK/UhZlNwov3jgcBLAld93wa9QDMmNODQp82OJmwePloOs7A4cjJRynyR0wlHsNEveB/KWzqxMzeJUfofKXqmNpGG+UXZhM6yyDqrksHBe+anAb1D+Mn8jRaFuHCKrzsUZsSmjTuU38JPfSxI2HBQNsj4Oz/1V8peIIifeDhG9yi73k9/LnstyWTwc90aDZfzJaYErUSzLYtCV3zX50eDKqMvzMiZ/ymnZm4rnVo0CISVTL3ECCkypYgwLikgyTqGCElG0FpUqRBZ+KMy8BuaVIbmuQhpUgLTSaT95JSiej10buAPvZEU+GJSE4z3VsPLby690bbpUyyIb0spDb5GAgAtN9GRMld/1+OWpxd6rJYEbHEIJ3n5X2d0gu5EyDJfTcj6s6KvsvZu2c7z80mgLDEfkbZ9RJ3qq/N5K/rLrY87hY51YdYeHfrOjoqv83l7+CvxKpSlfZ0lykPWB+tmJz6SrZyu7KXYlGZu8NuYoTFuk/sd0mP3iXPkdxa/ELknFXsc0zS/1myR64G7fKFBoVJLbhZo2sKr4owABiFYjbS0iis8NKsgYsPR8WBn0cRZGUUooKW8qxKHOyhUgr2Q40OmWNghz1lBjvIstuspvEIc6u0F+NGJVV/x8Q8tZevcFW/kN47wVfkBcLRkeGr7iobnuD7KyexdtZyJTsgpv78OV313hJ8/kiwIGM8rHaLeV3yAOdXbz/HyE+docgIrN5V6VufIbxKHOrsevVJw84psK8xv+FQNKMllwld0gDnV2PLt9olKy0uT8Aru0nMoBTkf6oPllYEr8jmEXnhhZRBwYqlWRU23n7RsFACTznIOCSys5Df7GgpSMkCFVObwPIu+PkgowXTFSIMOKkVWAkev7jtOKMB5/cj+5nlf0zMmrI5RdzEPTHasXcOwT7uzByu92FKTSXNbkU5VfTN0d5EdDdSi1nnO4MBFq6qeyu3l2RaWVhndScSuwHXWV303wS4+cK623ofxmLn7JUeX3XcufuIExR64m++0gTj4e0nSGkCs/dXbz/DIZ00ck4OSqT07x06IDV9m9C9nTnlJ+Pkw10eHYHRpq5ffO+GUeBys/GGHPq/gpw7J7B0aBGDnpcsgSRdlRsWL43/AOiaEkLCJfOfIIw2GSgGLFKPlLg8pA76kMieVKHyfhqPRMVpKCK624Kz3EcYnJQe1xIZzK76b5yY3SpjuV393ml5ffiJnWO1Ya7WDz9FFX2cU03A67eDTOz6GLywcOt8dVfjENN88vk7CRkaUyzyWrBkomhXI8Lv3qSuV3Y/IXr2Q8ZJaD4ml8RevQpTyVX0zD7fKLRgDlZ7DykeOm2PvQVXYqDe+GXXI3W3Wcs9uLr/JTaXh3/JJQkv4wWAX26i23YhQg5AWBJC/j9yhLsDuX5SFybPzOia4yxAoTyzsFmoMI1qZ4IVbGQYUYVo794R5QOfIy0M8klTO7lru90snqVT3nmeUCl0eXld875Kc9Fr1wHIRUfkka3xW/LLUjboyhstlyid8wlMqukNdbZTd4wLsyOwKBTZW9u9F2qpDGZC8MTijK3shUc+X3HctfcsrpuJIpvjs78uWdyu+O8APgXnXUpxQ/iWeGEyGV3f1hV3qm8rtD/MDpMxfbuwAAIABJREFUvh3+8yAEgh3hJ+6Wvz5ASJah6MymtSAtfO2XKPwTiAECUQpwAmS4r3mqSpFAP6KCjFUWyWOe1+R6Xrny57NKkh6WK8LwLO86D59mrvzuCL+jVgaouCq/75Sfu+LjGmE4hrWyu8PsCIAdC8d7qfzuQdtZ+d1Vfu6Kkr/iY5XffeU3Tq6yux/squzdVX7JuO8a/G7HKEApQLlIecIoOQsgSHmQChAqCIZhJxag5DgPL4eTpiu16AzTpcPVIA+qIIO0jVwfVJjhNZWdxOW211ApKPqIJxPaUuVXjutO8JM7ld9d5wcg+9zPAe+iV3bluO4auzGElV85rjvVdk64yq8c112RP7XHwNimEpXfPeE3eKCyK8Z1F9lV2UvDuEP8NLKj+Hl3aysFIrjsenaxDDEWtiEKlU0KPqkESY0rVBIdtr8Z7DUluIUKotOlw08rHZWPE/A6jVkl0mHGhKb3h7UmcUllCBfTFy0H7+YVq1nldz/4jbvKLyuHQRq/a34jgeg0V3ZQ3u4IO/E4Ln+VX1YOgzTeXdlL0l35QXm7I/zEY+X3feRX2WXlMEjjd8mutp3fC35MxXDE3ZJRgGLBjmVClyww8B8qglSO5FwVcIwxolOFSuokPc7TN4zbpUtXiJjmUsVJntdxJpApiT+5l1ekgf8D3MCj2sKnuD9PKeTKL4nzzvIb61wrvyTOO8svxqn9V3ZI0q2e/O7YAX4p+j6DXOWXxHlX+NW2M6T5XvJDJn+jYlj5JXHeaX75A5VdEuedY+dPquzdL37Fcd+4u8WVArIphJwPspwcxEJ0hSyFpS1F4i8tSFVy2uJC0Z+Oi1TF1ekbq9BEeXwxnJBe5beUp4Mrgk7rmB+ViPx6rAQ89K4O5DYRlfY68/cqv/vAb2wZUOV3H/gVwkZlp9N2Z9j5E81uzFV+d5DfQPaotp33iZ8/qfL3/eFXQljZ3Q92Y67yu4P8KL09xQ+4TaOAjz1PgC6YeO7+0KBQhxVDPZAUzlgh5xVDX52qGAnYpGKMV7okjmIFycLKwymdj10ruDwO7RgItSIX1NGwKr87z2/s1aDKrxBOHlYeTul87FrB3ZT8VXaFcPKw8nBK52PXCu5asjc2qJR4K7+7zW8qrMrv7vOr8nev+Y2GU9ndeXZV9lTY3yN+wC1+kjBP4LCQkzsgVcDuqi7RHL46CN4INPBJylsGTVey5FoWt6oMOh9JpdZxFCtFVkEG5yrMxEtJsgrXR53+nF3MA6saUWqjK7/Kr/J7N/xyV9ndH3ZV9io/uVX5pUmv/Cq/2vflaf/+sKuy9/3jJ+5WP0kYEpCXhAbj/4xWjKwiILtMyb2s0PPC9PEUK4auYqGyTFUMXUF0ZdBxKX/qYkxfXiEK2EuVJLsf3KC9TdMolSUJb8JilIRS+RXSdwf4HeAqvzQP94lfZZfm4T6xC6FUfoX0VX6Vnzqu/Cq/UgiVXSF9d59dCKXyK6TvbvO7VaNAsEYMoKYVQ5dYWpTDTOQFnVwvFHyyq2QWXm4hir/6ZqlipGnPK7iusMNjFc7oeVpO5SwXAA8uudoSDUSSVg63uRCMStYg3MpPhTN6/g75DUPRyRqEW/mpcEbP3x2/MVfZ3X12VfYqv8qv8qv8Spdq3xfD//6xq7L3/eV3u3sKoJBeUj+6cMs3kftwZ1kV04+BYqXUYQhk0n4oqyD6HB6arjAxNXpziZAeum7lKAhC6VpI/6HuKM/FJyu//FjCTcuk8qv8hu4AzwUvld09YbfnycovP5Zw0zKp/Cq/oav8vvf8Cl4qu3vCbs+TlV9+LOGmZXLX+AHv6PUBcdNJpaROUHp1WFiDQxpel0va6qMrhg6BdJz64fR8eC+tPIPKQGk8CdwDLUWUezrSkf5mJQOMLG+HhrPnbuVX+VV+QzfF79DwKru7x67KXuUndyu/yq/yG7ra930/2VXZ+/7yu3WjgHuXQbu0USgnbgg6vxVOsvNwGixEhdoylobsII8+gZ1X1nCmK1rpmiQlCz2vKEn2hgWx13KULBFJJYn8upIDthOo/AbXJCmVX+U34W6AX2WXX5Ok3H124qfyq/xKSan8Jlzl9+D5VXb5NUnK3Wcnfiq/+8nv1o0Ce/n6C7T3PhX9U35hJIwBC/0b/4CSwKUiDMGVLVlpxVC1KKm0k5UkpPUaFSJNYBqCrizB+rVfvCu/yq/yK+dh0h3IbyrIyu5uszsgmP3XKr9CWiu/5Lzyq/yS578f/KaCrOzuNrsDgtl/rfIrpPW753d7RgEaHIx5yC5Nl0AOQj9Kk3H6AhnWCn03XIrwdSRZJdEVI/lRFYIK1zBWKcp5n87XgY5iI6w3oBj3v89P5TdIYeU3EWfldzC/yu7+sktuVX6Vn/ZS+V3LVX4Ph19ld3/ZJbcqv3vJD7e+UmAf6Al/ScmWACiPGbG8MNNCV0s7dDx5uFnFyytJXjEoxKsrwdgykiwHpUpBxVRlz43eCuah0lISOmAH2PyZ6buV38BVfsFn5ZeGcxi/yu7+spuOOwtx5GblV/lVfnmcld9D4FfZ3V9203FnIY7crPy+S37vdKPBkBvKSx4Bki7AtIDTI13YuhB1xSBKC56y+EnHSTEtOmZdMeSYdFpIPR/SlYWfpSl5LimeMu3h5Wmh015Sn5zcHL73sy/Myq/y854rv2l3IL+DXWV359hV2av84m/lV3KVn0Rb+emrte+73+yq7H1/+d2iUYAmzvbcKXkuBpDXEF0RMp/5+eAxVRUpCUn5GwYyAFyMYHh8SMWgQWBlN+qN80NKblJ+qRzqnhRUfi7oyq/yy24cwm86xD2xV3Yu6Cp7lV92o/JT18uBVH6Vnwv6O+I3HeKe2Cs7F3SVvcovu/FW/N71SoFJVy7FQdopva6QTpSS9qlPJ+IpkUdeSfTzlISZpKtwnIRJ+flYHopJH3cTlRFMYDrKXnt4ZJXfSB6KSR93lV85lMpvPKLKbiQPxaSPuwPYHRLMYa7yi+djeSgmfdzVtrMcyveIX5U/Obqf/G7GVXbxfCwPxaSPuyp75VAeCL87YRQYFvUIrMlzFU52i7KAk9sJ0EKFoBR30e0FVa5oLm37K8Z4ZThWNFVDTADxeLqOcZVfntbKL7le+Xl38/wquzyt94edTkXlV/kBld+4q/yK7gHzq+zytN4fdjoVld/d4nfrRgEGI9hKRl5mkMvhNjN48O6Fvxs9lQNzj6cVouh1+G5HcqdQiVQVgn43JH8LJgBWv8EHxQB1Go+2Gl1LKPMS3W/xq/wqv8RX5afuH+uG/KZcZXe32VXZq/wqv8ov8Vn5jT2VnNW+736zq7L3/eV3O0YBAggMIqO4xMKI5aMLWD2epVgXFFE8D+HpQtYwiAbnSbwUnnDHlFeZAfaQ0JDuLBHJBhfxqSS9hx3rVOiD6VpxSJ1hANZaGJNLQAyk8qv80vPK71b4FQKo7O4Juyp7SSIqv8ovd5Vf5add7fskqHvOrspekojvBT/vbscowIAFQMwJWFdRKPE3TJwmnVYd0hQH/tOAOMM8ls6DSrOcusnraZ0Zj2RSKJIDGrleCnMsPrXthCGA08qsvVV++rfyi6eV343yy/1WdveHXZW94vXKD5VfclD5FbPz0PnVvu/+squyV7x+r/l5d2srBQwI1lpQY+BT4fOoiJTSpe9nC0zinZSqvjvwQ/n1NJ1j6S+eUxZzXs/L9dRdUg8RIZYH0uNSZUr5URrFROUe3oo11rCrKGzLD1Z+WRCVX+WnAr8pfiUvlV0WxB1lV2VPpaHyq/wqv8pv9Fbt+75P7KrsqTR8X/h5dytGgUePHn/xn/3n/8Vf30bY1d2K+4k+qfzunav87q+r7O63q/zut6v87rer/O6vq+zut6v87rf7SenirRgFLi4un7169fIZ4K0dI4bBxE1YPsbcmMGxumMc4f33n32hr1xeXj57+bLMb6rINcKK5t25999/f4JfQQALPA8V0+pu1p2cnCbne9mNuT3eKtvbcftlb8rlsyMjXvZfqu6a7u34Her2t7/VXc+9G37ijuNY+9Rpt7/vu2l3OL89rXJ1eNeyBxzFzwtf5TfmhuM+cbdiFHj9+iX+5E//BLa3o++esD4pOpL/S4/ngXi/8QFZmMGD+34tCFhZFY6tOsdUeB5EcSMVlUMpHPug26XTEIgBMgY/+9nPEuvey5cv8ad/+iewlq8n3KwYvaUbxE+R7UT0kS3v2+f2Nh2Xfq4fjj9kAMYYtzrL0Ci/4m6sb5WO411quPsuSLxlnNcqs9R3yXjp+DH+8T/5J8n1lN2BsrfHOvrODD/XbpNGAxwEf/uK9lDxyOMTdlNt51H8Sml420wWtNq3Lze+QUWLQzd8s26PLDBgGgNYBpkGP/vZP70Ffj4dh+YtrpSd8KDCfYuo9jsvwzcUIN9Y4mLbYowBrOguN8zvmhlPlhED2K8j3jbH6XhvRvaUbnWw7ZrRGANm4B//40Lf9yd/4svyUHYiONcvvCE7cWNpmDbgvnstJxtNXSsBmZ48EoYx5GVrRPYO5qe4gd6qwblpfgf4vCVXGBVfk2X4mz0f+BmDn/3TlJ+4WzEKOMzkhJ8y/YQBGI0re1dC+80uyKcUDJEL5ACnfclgkUiMA9KYUK5+Dg4PYzNUKCdOj3A3aVgg96YNu01Biu93eRjG+PeCDjKCqHBojOr+tA3DUNeVwWfAi6VZIxiCZ+rYkiq/g4ZPNzGIvzH2wKBcmMHe2GFKAYdXiAgcNn1BaDnfzoZ7XE7KitK+xvqw+lbuR3LWb2fAK5we4KbeDQOg+I2GEFYJTLWM8V2xQ1NzPfb7S4BVz/z2cwTCIZVzSpuBA4M61lBRMkKmSYuyN9Z2ym7Ch7adhUBuaqKFiocFd8hgcNxQr8M4TD/XO0Ef63iijd4jC3r8UHqx8kb4+YCOefRgvwWPhzDJLo3z8TJ8nJANDmNLflg58N5BgWpbpK+/DX7XNASNPTVuxDyWY8ldR09V5TgZ2SGyrN+PLgUx7OMIblDieHN+E/CTVYc7pVNcU1RLj02b4UYiuk7/dO2xRjk9ketUG1kOI1XVuMg+shuRvYP5ZbrgWxhgb5rfAT7Lob/1uEFzLBgIjgyHCvIX+NnxTQVu7esDoUEoNSqFtsA1Ec4zUaHhIl1tD69ApQJl3qe1aE1qZGhRHKAPFcrx02Mq07C1kYH9dSqgcCECuNSx+vY6Vqk0lmsMs9LnJ3sS/5xSvuGNQVIvpodTpcGilB/n7eWIv6nUHdZZ7qkKxQ7zUMf+eRAdxC+Wx94aNnEhv3FY/S3aBA5PxWiUieKXsIjwSD904ECllIx0UHjsIDN1cXESj3eEE7I38DjhymX/FqNN0bHHxsIF79dzBYbXbOtcS3n9lIhLZIgl3DHZ0zG+Xdzj8nNTVoMsvgmQx8jP3tQd2/4lMnGc4/AnHrhrZX7pAPW6tS4/GL1wy+7QwefbKLdDy5NrmseJcQplr+PkD8U+sODR9YnFTuNgNz5ovvaQ7xZcXu7Z98ev3WaqsOl6umbUmkcYjTzEvX2rAaLE+rbsbpebdiNjjbdi50MJau91Wk4atBO6XSwa8Sq/eOUm+Pkfuq7OSZTx08fjod2OUeBIFwwCQdGP10sGBDeiHV59p061d8d3P2kHfBzst1GQddSi4b9FEModNyigzM9IhsjtZnrjjoL8Hl/213Yxj9cK5S2U4gODH1woi9hQeSw+X7geLMh0QN3TQpXE48qRSBTD6WBuxr2dzO2fBbsdx4UTSsDuk63CQOGdZ+XYso9C9rZJnRy4TE6HXL9tLYWUn9Dw5Mbim0rAiIp/dIDH1KHryM7eAWfAM1Zmb8+PBwfOpfI3lYbv0L0N6AMU2EOZjg7888Fv6cG3LNY7rXuOuiG4t5bZawwop+SPPZvbLLX7yQ7Iad0EO7xtGD6AsfbsNlzl591Nvo4phcr7y+ydGwXGmDLrzzP4o7HGZbJDv0aaZAa62AFNxJOZZYezwWNAUwvv4cvbwwPXmAVVUSeydVw5HmPAG+jNilve4d/OxiSIaWN9Eg/zFxGmB+6pVfA4q7yy3GYPHMSOgLBPBvO1+Y0EPXLhwIE70jp8Iw332FgsL8fEilhSYPSMhwr4KAPNUOaOGatQZumUVE6VzNt0KOPFfyyLkry8O8dKgzy87HPe8bljDQXhM0FFg9w+ejfnhghvg8JYIz51emQb5kMI4nDAgENeozlO3lw8IZW5HnHLg5I09tKNu6bMAiXQ19Ix9CrPt9zPhwCw3gPqmAevG+c71j1v3k212dcwbuvZxhvYnym8uXsLg8v7zw7Iob0tuzSM6xlZpS2Q7ngwNr8hV/nlQd0QPx8Iybv8e/jdulFgfBAZR2vMcO+BFzWQawxaB1oU5z7Kz07t9r1X+SmEqwf8KpyDBy6j/v9/9t6sSZIbSxf7DuAeEZlZC1lks9kLe7lS687ITC960PIgad40P14mk81c3Zme0fT0NJtkc61iVWVmRLgDRw/YDuCAu0cuxaxmgcasCATW8+EsONhm8q0YeHKSsmjazpJ//aRRBvY3htUcAbfBz5debwi1DNi61UuLGNSMqLW4xQyipPWG793ht6aUtWHlrJGA/BLQKaFW+YdqWBKtx62g/Xyeaf7UxhOFfRDKKzp5Mz/ZQ1eaJ4SJ9Shpn+KX+aYhX1dPdMSYZY6f17gFJj6yZsb7xW2u9Jvb51MZFv5ZO4FcJ/uKHYQnGkbSSSDz3oTiy/bM7cJE9d00cPXjDULJOyfQvzH7c3fdrGsZiT9pIcEJ0VPJ00z/xmzPuTJX0nRqTp4QKMPx5vw6PwYc7DO29EITV0dT49c3PG84qZ83xq/Ezuc+2dEtBWnN2b0ybzPRCdHv8LsdfrGItfJ4XbL73ymwYACF4/1LN8ovVjE7kNYY4JRWpmaKmEwiZFg9eRRlLOU5yZCtDLxbe3fv3lgtB/Zd4LectmHAio9NZwFFkyRlqRK1gduiQ8llkBPNO/Gk36GxOinWh1Yz5+6NqDkDTt4pkmHpyy35t8StyTs35beUYd3kxudYpVzvd5IYq4l/shgfVs4s1jQ1g6aeQd5UnpJ65T7BIZWROQlWKdnpRGetnDxpnEYn1f1juSxDF/ICWKTcohyr0LWSuabv6veDNGpJWw1OlpPr8Ktdgnh/GJY7G+6m0OrHFWGZjyT9l/BKdlUZn1p2ioOAfd75LCTqyOPuOtyd7bIyXW3+NAkn6C7/TyYDTuHBxqRkcTdAkw//irGrJG3it1aP3WaiSWLeddLkspxwF4XiHX5vBL9YhODeNbJ04anr+3MKxHqFAhEheH3Jex+jEKF598B8d25uHJ3+BMo0micAt/ID8Wbt2Tx++iTpOJO+6r2t0TOkm+tzQcNJyjqsMwmRbu2eqfc2xu2NgsetXWPooBSec6QrFTJJ6BoNmE545qCJxwfmmHsJv2r6VSnr2Vq/t3aDzA/8OwqeVxmreS3DbTbP6bgBBY/eQJc1f6r+cHMCB4w4j5imWTFuSmOjPgnyK/B+SOdS1l0WOK1BYrYsH2eN5Ybeaa6ILcmo9ORHO83KooqUq8P6Z5qSTmqFQgUthEJm1qovyDo9KlIp87b8NmlHPXOSraeH2xrDa3nqbkIJwho+ko6YebySmZHbAGVoOUXqaYNkajP6qTbEWttzsZwT673bcKoszPMuY9pwwJHDYg6rrIVxp1WdL3/U2PmPPMtXlbyZXFzI23J+exzrWUTpnuCttPeF34yle6N67za8QfyANoZoy1KXjRfxA+55p8DMsHEgE+VboddQMRu8SRCObAAGOn3zLlWPD1QMkXa7RCZZBBcJG+lbt+bndGmlLYXwjMdpYfs5yb8ZTWaMvLk0yB0C2UrDJOsNjbFanfL3yepSGwf5dTIVielT2pvjmxLKtEurX/nxgWnPSf4S8btbYVktLeIXrw29VXmrvaWhDDFW6xiXwrvSgkV8RfoTcQttjMK5narBCveAIWXf6mluXc8aDUnZx6k5WWIr8hBw0o6Qkjeb6SuGLQeX0czonhOTC/S+Tbi5YUTZPzMpKqE+WZ8rYb6JLTwkv81jluU6Eb8lyt3nCti97BiYr3HyteS7mk2ybldHSpf5QU/Y5bGUdsUom/7WwO+GG9UqEbezX07VeZMSqqJ2xhnqMy3vUkxpWg6ApWMlUYJXzOwQXX7KYm6J3cS+fwN258mlVHUf5nVaLc+M7S/TrjkKNLlzrUGqN4Mf8CbnDSeXMsN/6+xIn35OtpYOlFN3OS6Q6l6cAhT/8iQWAJRWYAaMMdVV47mL/9xxAwNrLdhagA2sGcF2BFQH1j36zZkvJ693vtHef1lWOWvPthwIeY5pFyveoUm6+Umn3DJ740lLq2OTCy7W0HCGSn4VSLU0aUvI3NJIKnOGs4zlmWT4r2scADWMs/PlWZq8JSW+S8p3Pt1MiMwfCjqdhsukn/sx7f65S/yWA/uzjAXGNb4seANoOHewBl+XfsK/DcE+5xDIbcu7mSDkRd2+TMr/3FGYd9jI7ag3wXadUbVmolLUNS0NYfzfxxGQKYzr6qg3uzCylsLiZF2WtbbvFV1YyN2qs/xUQyrkXMIkCS4xibg7HNvDp2YHNRPfYThNpp2+otyaTJ5yT4QoI7Ryzna5BX5Lk9u1mNwUu5ujPY9j+GeZZ5YdBC1nzfyF3XmaKh/eAXZL9Zd6ol7OzI9r2nFyjnndF/6p8dpamdzcMLWKZmXpM4SLpufd4peXRNk/tWY8HPxSicvzQJG+wqtNiCq7LGZ5cKGHP9CThARjLZiB4zBCEdD3fQZ86BSzm/y7f0ewGTDuX4HNNXjcg8c9MB7BbIF+A7V7imHzAXaPP4AOuwbC+JQtqNGFagRrEHd2EtnILw3YmoAGcqU7aWs9Tfv3vHFJlvMiuy4ZtfKX5lhF6i/R/FbPIEMYFYWxFr9qjzj7OWxd43KrbNWwDbSkSrqa06YmwNuG7W2dBLP0nIublQk3E6ZBDoc7QjJn313hV0S3jdhA8zYe7ve83snkHyVuZXkLhphMt2LCEhpBsq5aktmfb4jfJNsJ5cR+niI7Z+qrytGUeXYXyCqjqq2Ml3lywaik0x0C97H6fJphtDLdKbigIscbkxCQkxfMHHWTbNda/bZO7uZZWpETA3SuGApGqxR0t8PxFPxKMp/mRK7xRyypPsGfXZmq63l3/Mdz6uJW85lJTMRnnjan4Zff/JGacjqGa3Bbp/tOkZ0if5NHa/xQ8MwE1yW86w6f7LjIasWXtWryqZmWpre23BS/e7M7i+jTdd+Mbpukn9vd054stnZUlWniTsdqKb5N1c+N1LfE743MG4rom9kubd23jJ9Le8piYX5ky9fv4+fxe0NOARJ/GAxmxrbfAtYCYBAB47AH2QGwR8AOgDUw1mIYjmA7woxHWHMEmyPI7KHAIDAUgOCh4vEA++ormN45Dc7f/yWU7heMaNHOcnsKgHj2v9KpOeEbv3FrwNQnnrXdArOTl2yg1cuY7hAQzz9W+5B+mF9ZiS6OSR2O2RlgAql58kdFWqNp2MFBDGtHMDM6vZkprdEReEMiCIpJRRIPadiekmbNhNOluysnQRu/UO/tjNO5QPmfMFoLh0BrK/xJtVSjm0VGJZFaleLbuK1xyNX4LZuYLjoIII4PNC3fou67wbDE6+T8J+e9AXZZmK5E1Xb6rDkONGsM39ghd6LRmf+5dVjrTLgPp0MKfsLAhVyKRmhRd8PodbhKA7ExiUEL/zJMdWWxUN2cWFKeMf+tQcvap7nQHgZ55E3k981F/lQO5nN1j3VlZWqxXH/hUn50ag3fhfFVS1UPt8NvruRaWTNpZ8bYitJnylwKS7wj0kl9FXEteWV5y3my98rm5g0O+LcmJrfHrh7TLq9F5x/AbskCT+2RSd46znN25NL9HqvSzQ/5N49fjaYPCr+UsaX7ZLpZHp1J194N4usXTZkL9+sU8J6lZA07IaGI8fzP/4Dh5Vd+Us/QiqCUzwYGE8EC7p1auCI0AQrwk0xCKpgQXUYgEAbw609xdf0XnH/0P6DbPfZpg7cka6RoblJc8ud5Gs44AbK62ukyI6c6ya8xv2jf6c5YNGbGWcHLBknZhzxo1cFY5wSyfscHAGgtymYGW3Y7QcwAa44w4wF2PMCO17D7FyAzgqIAZPDmDN3Fh9he/Aybs4v1XQaEQirpXetLY+KBhEn6rfF7k6HnPH1L2CyjHYVzNn5vLCHb9VA+LlVgYlFl4tV5/rtZyHEo8Z065eYMphk+C+1f4Lcl5LIUVF9VoyjPROso+3ajQPmf0/IW+W4yKZ6G5YndVPGVr8TwZAzK/JnjstmGZV4L/F+b+E5qJZpPkOU/jYbrVzrK9LfHPA+Bmu73eYNE5JmRh64ciS/P4LYuJF1e4bUZ/BhY1H+BPjkllsNNMKle2FqVo0s8NVtLXm65QkzuNQ1BUjHpnZed5IUmU8A32Gpz+Dp+rw3D2SNYDwy/9r1ZN5Wfc7RO5c47tH06rxNPGStEqDpq/Oiotjekz44PVMf0/WJX5m8neLN2S60B7UWLvA2Rt06om3mJxvWLQsmDP6f73hx+MzkfFH4+/aLuq5ezPMHzcnK2SwLzGfyAe3IKTNpfRDBbHI5HwFhYtlCKoEghvm1KAJhB/hA6AVB+clNdtw+CLaoov1o5HrB//h/oH32M7eMPmwM1OAPC8Fnn3Z0OZ24SuzA8J3aoiwi2UF5E+q1mIIcmUBYv07WEC1XqErmiXTtNsfjEkK/EskUHAsNCKQbDwpoD+Ool2Bxh/W4QaxnWGozDNWBHgA0ULBQYPRjec+QrUmCzx/j9Z7DDHkS/websUezrYhCGTJ3esZepPy1cPa9OmB9A/XUJqZwXzmtm5ZZCo2VkiBCdaWsNl0lM3uZ6rpiXOVwiWZ9kzSnhULfl0TuIwoqUQq/7InUpjAtaSEM1a0ri1xovufLBe/raAAAgAElEQVRKusvfRF0R09LYqigCYIEfKzSRhtOaENtzmqK7kZIsVo1OM5AXsFvIlyu+nM+qPAhUZGSdl7JyMx1c/M4shkHTMmr0qYZ1au7tJ/DzeessuMZ4m4a287uaOuWpytvKXSBeRk54DXNjZ8pvzW3pNI9f+UukXTnYhMlSFIHb4TjNv/Y5xXpZpwZpT1VqyfpX4idKyQnuTTsh95p86X6cx7bduCp+tYwN/GKelTgu4d22PastFGGqf1u0buWt24nu99zZ2fqe6nK23cwqrKfn5P6ImL42QZNJ7wa7mG+lTJ3H56bYyXAT3TdnlxS/L2K7FFeG4s4PoRRnx/oPhl89zQ+LX8q3XveJX+Yc2sV8oT2XmKZZklX3c9FgNphqClNB9ecY+FsQs6dyscIIgLzxTuEzGJHI8KLGaRlvQPjJhHWVEimY628wsLuLoLt4hn5zNiEwKRW1zQ11+T2FmkOgZiC7+NpqlkubOzCi4SXipqF9v3bTOAnGMLPbLUjAq8//ATBHECysMW7CHzxj5KAKlFdgKJIOIFlP2nXCTNAAxsN3OHxP0OrX0NvHsgntEMqwK42m6rzN4zL5qeXcySekdUNobkJZCg1utCsPVAhgkl/mOyhLmS1fKQUG3B0hNr9VfyJ8hJfSmBHWGrBxF4VaMwDjS7DZw9oRpHfQ26fYPPkoaymqxzbqTRZunfSpwktuQJRdXe9EaBu2Fdzk7zMDcM0EgBbLyNtxkxCNQd/m2edEZ6pZjd00V9soYohnYIUWFEe+clnXKmvuArXpVlqIpPNhwZDxfxkzr1FQSrc23AR3yv9M6nf41eqYC+uN2vw3hfQEZe78ycupG2ptg7eYZJ4iP1MRxddInTs0QNv5bn8crNT7peBrYZLasWyLuN9aq5G1Y5rTMTInS3mV02WdDM3xC0eUblXm7DiYyU/ZP5PJR15+KyzJOp/GO92SfPcWtafvxCYJbZs1FzKBnLVnOoG5J+xSlY1yU+7VdQu7ZaYxzRJvrPuqDu9YYnsRo8B2iufchFKWn2LCXCs/wtcO94VfSDuPX/H7CvzeuO1yI9nZwm1ez5VO8iX87u/4AFEcVVOMCf3uMY5Qbmol3JHSGHMpWQjJfOKe+7JZ6HlXNxFBw4L338HwCIbBpv8YpLaimYUkrndmXZerfa380kjYzj8X2k4CFz8dXLkCmAnUylsko8x8cziyM+2uXz2H8jNwpQCtyPGXF6KKAsIcnQFxY0DGAJTGh2/Xhhnj/jn2zwmbxz/H5tGz+e5IrBcV622Nr0qpkwlpy+ETGjnzW+hKo5mzt/xOEkMIzUB4grUWozGAn7QofzlEeFbSyVp/JETBA+ePixjPu8wAxGWhZsR4eOWPiFzDjHvAHKGscWU4qoAtcKQvQarHmcd1hS1RCQLLFqwTW2bZiTC3c2edU06Wl4c57CLvAvCeUo+dGNsMWGsxjHPYUWbIxG2fPHXOyrbedFJyOnZtesoWVe3dCpblileabJYGVPptzlnnf6m2a/WKrsAP5I7euMv2sIL36vgxB62oVhnf07bX89w9fjX5l+KzGB9V2gZzjoLailiKB+aUQHkOuh78rqjAf4qglYK9A/zg8ZvUmMn8pQa2VwAn3ymMZY/JitLn8Zu3R9w4txX81joJ5uXCbfEjzOCHZfwsyOGM1NZY6wny87TJR+rXfH6urFpKxOtbkcnTqbyfOeVxdWf5OLn2Srunhc+tsWPAcpv3gGXZKechlKp8Q7pPTCarpGjxnfttki/og2ACTWz/9mW6rYnsrNPrnvFbo/tACuJ0b6T/w7FdGHM7HKuys2GntGyUlvMgtandoXtyCngVEwAMTYpOAkK32YGVdpcNkhNq7hISJEOpcCpIBg3/TFScUC5EQEcEaw1weAFFBq9BePzBr9zvSvmqptJuCuaKUZExY2nyh07NfCMUx0dcfJ52KQihgrpSzVZzW13JHDR5fETFy/eybdYYvH59iVevX2NvH2NrXmOrBhAITMqNi6J+gr8vImsuZwwZao57GIigrYW5/gYHO6I7ewLdldvN87YvKaXUGo4fW0d61uHSNrFqgr0el8qoTVBbYfHogNvzL8p1n8cx4ffy5QuY0bg2eMGqlPLCmkBKQZGCUgp9v8XZboMPLqx7GcQcMB4PsGxhmaNjgHhwu0IAdOTr1rLhClCOLw/P/wAC4+zxh/N9KbtWUmZm4t/MmSWZdxSc6pQL4/fUIO/iCPmZOe52Gofxxth1XYe+77HbbbDb7bDd7aSJmRwHmPZpTTB2gJsx+ddPlIJW9eMhi2fkatjMOASmSrY83jM36ahc+lR8rIVZGmWNYhBpsGWM493ht9luvCE1386mgXcjI2oNfnNGEWXf546MTCY2HDVGtAPmdu002xf0zYn42XvBL3cO1G7YzihWNQaXg5T/y3ptHr9VDlOmKa/OOnlyXOvWX8gcyngA+KnkHMjlp2joyWG9g6TMU1/Jn89MhIpjzuVtbUevXRrq2rxglTwo7HRCTU4ybzi5nA9pboTqhN/9On/Esdjy7+lUt3naO4ubbfPlz8r2B4ZfGveiifeCX6pkSfe1jntMZaqQfYWsbPGdC/PxS7bVve4UIPYr+ZMGELquB0i5M8TKdd99zoUG2zDBD0okgOwGS7rF1K1EUyAIOc+SVhogDWMZ4/Ea5vhH0Ie/jmWi2UYJzg0GkS+y3NaRTTaBOLeOv9XyNbW0mJXPNrE94Oba7wbRRA14LxzFqtMyHLDfH/DF55/j22+/hWXjf9oA6NER46xjfPTIYKeBcEGKCoLEdzSUSfA6jAGQvHTIXU4I73TSbGH23+Hw/RfoH32IzW56+aBTUn7WgDWCYYpVbmB6rCoOgxyuZRPLhZqHvjHxL7y/9db7RstJZPiNKCoMgMDWwoKhlcbV9XUFP5QDOTaLxIf3dsD7jyyur9ibbBxtN3kYxV0YWukr+VQkNpaZSwyvPkWnNTYX8ztBJL1Kqs+yyFqIqvWV/FczYmW8HHunV1rFjhmK+VbYked1pRU63aHrOvzs41/gg598gK7vYYzxEFFRRp2qZhz8izHu5Rg2RxAfQfaA8XgJ6rbods/Au6fotxeQ2M1vb/MTD0iDk4KImxpAE+C5MiFJZFr2xIcC505ct0MdP9wbfu9/8Ax9p6f5F8LkwtDFcAJ+Vfq3JpT57/mnVG9uOLWMM3mnAGE6ApbDD4KfVpEo6y7waoW2FMwnE3eJX0OvqWg8+DolfkV8bF+O601s+x8Kv3BEqMTvdOfA8g4qmTZ+at4rMMW7LHetXGzurKrsCLnJxOwH4z1f91rdd3oQvOPLbqVpZc9t+0r6zGZcczFdSJcaFNK37o1aCj8c770J/FyhS7KzfVyglH9o4lp1/lT4rmW7LOF3b04Bt+WDQX7rhyQWA+g2W6jNGezxGjw6oipF+Oxqh/3A0Ap4tCX88qm/dI7cFuVOa2y3PQCCNdZfVGfBzLD+dntmV4kBMI7uGTtmwIIBHvwgcl6ntM9EECoDZyJCp/Gc/5JNCSe0T0RwmHFeVxwI5UDL62WhUPPvyUAOFdU9TWGCXbYv1KK84i2UGAgsbjsN4+vy6gp//uzPeP7ttzDG+LzKXRbJbqI/MuNyAF4dCLsLP0BD4ykM7oxKoIyGglaUfiOl0INhXvwew6s/4njxM5y9/wn67UVsP884f9qhIpACbuVvjODOmI8X+VN3k1LI6s0cOcEgchGNhzJT8OA6GhUWVD7UYRXh6vJ6Eb/wRzYzCGci4IPuGuOo0WkFrZLAVpHuVOCZ+kX+V3e5aBT50F0PHl7h+NU/4rB5jP78Y/SPPkS/3VU6nSZsgN+KXcEJWWzJQ3lcii8xFJOUSIeaYRx4ZWrctgYjeaVZ478advtbYpfq9NtmjyNAhN//yz/hN8ff4pe//AT2cA17vIS1r2GHPex4AJsBbJ0334IRXn1wT8UytG+/LrqwIQLMFXB4juNzxhVt8P5v/9dEy1keZb/NMOBcYoDleJ7inxRtbkhXvfY+tAzbB4Xfb36LTz75VZwDl+tGqc2OVmwZSqvZuyNqgcEwo98JAnbtZobSHVS2G4QLTEJczh/h0uHs6E1mJBXxmYwsy4q9hHw1pmUUPkj84HcDZe1M+WthetRvmjYZy0m/LPHfGvxCH+VEJJQfaMvsL38q8HMJg+7L84WCid4u/JTHr4kZ5eWlxkq9lGiXj+tWkLJqLl1ZlsSvYn9ITKMsJZS3qKdJIKK9In+rtvgBY1fKz7zNNw3t1f/c7CjTlPZgEVfi4dO0jw63xlp9nL2NvHc/+MUGrpad07ianYEZXPOygvxexo7kr81W3ptTIJ6LFduTI8AMKK2h+zOMcBfMMVt8c7zA9eCabJhxNTAORoGgYNhNhDrFuDBHd/7YGx4MP9hLilP+b1jVJSSvbRqnabRStZAZQ16UL1POEyi0JynkPD4vfiKzC2+PS+NTTjLkmaUBXB8cNaFBeT+dhPE6nfD8u+d49f33sNaKQWoBmyZJDMAycBj9s3Hy4E/GBL6e6DDxK89e0KhgxLC/ppDJXVDYaRg7Yv/8U6B75FYgvbV7GuPnBqeMSU4cypLXVh5r8WH8BbacGysJYZ9rUeikMHcuPROO7CZZS/hJvpAoReOMnFBWlsCKgCDYwak+KeTYiXmSBfn25DRwlWtYmP33OJoBbAdsPvptpV/hTPZ838M/ydDk2IQyLs/I4mMDvZwtK1GMtHLS2MJMwplTaf99YJdPFt24J8+0h8vnuP7yX8HmgL4jv7MnmIJclOOPAXn5SoFesc4wCXGRihjKHrH//kvsnn68anyHO0eWjeKGKFxiPJQKvs5/TZnywPBz46xyRl30Q2kNY22crJUTUBmsMe6SUGvB1sDaEcP+ddwJAnMAmwOs6qB376Pbvo/N+RNkA8G3NG9JiKvQLZOltTQ+LvupsTLTqCKGh4if3zpbb24eH2VLo5PSz0IqTBaCzGxSpVZSKiiLq12oK/kn169pByjFIjK9WWDq2jnT0IeOX5F+piOxnjKcYgu0w+3wK3fntHbHTerIJjdFeBuxW4VnadfM0WFp0S7ZEEs6qqbHauXVsGutNM+Gv1r8JA2KmNvIzoqgmy4q1RYHy1069QWM0tG0iB/u7fWBtFUjrtQCYh7LADS67Tn2SrkbyFnh5QF+tcICsFAgmNGiU4yO3I6zzm8jN6ZgMi5XXsU/4qtlpwghjdbY8DmSrUDcjWkxwKprx3l95aQzxoszaJXvS0atTFJP3h4g5KVRGlC+hHCmSEy0GcBwOODF99/hOAxght+5YaGUgnjYwZVChMEAg2H0mqA1edAZDCulJYgZXecuIdFaZ+MKgK+L47OGx+Po3kE2Bnb/Naz5OTqlW9ZFIxRpIqZLJC/yNYydhet7V4YgBFplERYGc2yPZcAM4yJ+xB53eIFMns+FYDaWoaxc3UM6EyuaM1l5dz3K+Ea2MTgUtGLQcAl7+RnGw0/Q+RcnZK9X9RtSWZb4FHFYxW6tWpA3xgv9SekyJJouFX2X2GWik5wM7jcdGMCrF19jvH7ldmtRB9J+JcA33+28IvE9ycAAtTRwwphwio6gFOHw+jOAge3Tn4qt63UFnFY2EzI5RuIbJUi5mb7ofCWuOqGphoeHX23bcmquizfGujOa5Pd6jAxjDgAbgEfAGrcrxI4Yj9ew5gg77mHNATBHdDDu/HRoIABtDjCHSxz6rzEefobz937h9a5raL7rItFVOpHXSEqZLn1uYOm3vgMtR/FDxS/QqaWzKR+ZM8QL8lkLx0+92Bb/ud+s9TobJO4+WDJqQzkQfDytVWLYwvRtxC+0MEyebhxOUEpRBlMeu8R/MXcTv7ys6qQktDXmYVHWw9d9deySfkPoxiIWNP3W4Ln21v5E15xM9d0GNcfRtKnrJ5QBz0CXaXhL8TspTPPdRHbWX65q8J4kKaPgxQp+M3cTzOPnwj3eKeD+BNDcV05tJEK3OQfpHmxHfD2cYxjc9hFm90b9TgM7baFVIooSnY6BOR8YoX4OAtHvJhC/t893LXQJNbgriQCA05Bt5gl04sKBQIhbZDmkm6m4VJ8pPaF5U95cNyh9cEVJaZM+WmtxOBxxdXmFYRhBRLDGeCcNA9A+Z5pIKGIcDXAG9xpBWvn3W4+VQqc1uq4DgzAaC2MMrHGT/3BcJJIPSBNNa53iGfcIO0JEr7L+1bbyVCVaIKmn58TV47HK4mkmfVZbqrNsU72N1ablcZTjN604MIEzEJfwC+WkJ0K9NxhhEoAAHyxzdNSEo0PBwg8GJCCFcnpeSjhzJ31xK50EZgvmA44vPgW9/6upY2DS3QrXRpLneE94KMZXdodI3GTpq421+lj7wbDzR6+CwmXA3fsCYDTAcDTQmmE6glLaX/KTuhq2m9eaTDGeopKW1CMQ9PAaw+tPwWbE9slH6LbbzGiV9HG5FbLtcYXiDEieLPhClgXj6m3CL8RPQ4qzdsT15Xfgw/cAu4m+uX4NJ/lZ/Ocoq8i1rvPgKn/sJ3O0Kee4tOMew/d/xKUZcPHhb90E1k8QAimzQ3QV3gyt5eLT9FsrTLm7Zhg+VPwQDGG0sCyoJdJw+bs/1jktp5guTPiPYe3g28r+6JB7WUhvLhJpSJSVGbXlhKPCQ2VUIaslL76N+GVY3MoxUB/1LPpHgV4Ayo1C6/gPK/BzaXLhK3CiLFrU8XZil8mPfLZ56xCk61xRNV00jZtwPKbybwV2Ip2ceE5tIR//NuN367AkOxNJpgsMwJTuqVQpydPSWZ0XW3fryPpb+IVwf8cHQssKwceicd1m55wC4wGvrg3MaKGVxa5jPNkCT8+AToUB4XITkuBzn118zgYUqRk8TcShdkSHQDjakPI1+pEFnvRnhggx0WIeIv98W3uCIb8S2pNNJ+SF0PfGWtoOtOI8WsQt/C0bEspk7PdH7A9HWGOd4Wgd+7HjVSgKN4YCnSKc6dGxPLvt3mGi0PkLsaxlDKPBYRhddxhRWOQ7QpAIGwaDbxsb6y6ejBcapbQ3FgUhP9cxnKhpqRD9d+k8mKSvzzNu3NiWzAsrpuHM3xr8wksiCiowleuHDaIW3mHDMIZBZEHwq1HsJ/6c6pUtgVcmitJYSLt4GIAFmKMxSgCuX/wZ+2HE45/8Z2zPdiDSzkBdR5oVF0TOhAWcGuYaWoK/VsKbxo6Z3WTfP4untXJOHmOhdzscrAXYwhoF1uG+ERXlQtoZljofX5MJvQp6PGNgxw2aABxfYzCfgu2A3ZOP0Z01LgzlcHdMg06xDR4oxnTXDsTvS/nL9FG+zmiNB4RfGHSlOIqtJcLVt1/j6st/haIRfaegtfLH+twxr6gLKDwNFXsa+Td8D7sFnH5wFwArM+J4/QWuv+tw8eGvEHjBZeIKCpTzkZTdDfkbfm/xXvt7pe4Hhp+Tk8JeWWHQCvKCCNBd53jPuidik/Eo+4Yoa60Z3fEQY/wTsgewPUKNL4HxCGsG56DvOvDT/wbbR88E7SXf1Wi+hEE5iTkh6wPGL9AiOppJ3ZnKn5IlTRDKSd4a/luFXyZbgeqrFE35WwsPH7uMilSbI5wSJMe4S/FaBuYa2yHeneUKFHXcBLvWXSE0A+Nbhh/WydKcdq2+pZ/bRQYsEibB1CgdO9MdHEWhMapmW7bisIDfPR4f0Dp5emRgZrBiEDPOzi7Qbc9hzB6667HpGFs14sl2xOMtY9P5jrAgpaenH14Iv1T7WMGPCNCaYGHdBUhRMra2EzJeHy5xNVzh9fEljnwEwHjav4fzzQW23RZbvSvyyoppGtVs4lQYuAEjB3KiB4rdBdHYZqd24qALThQS3fXOgdbokNu+iw9xV4ObyHcYjXG3fuoObBnWGvcEHTP2+z2sMegU0Glg2xH0TgOsMI4WsMBIKAyUKRYtJ4aMt5zi2Ax+G5LC5eHVLH677my+YDQMTa79nuLLuDpWCUP5kkYc8xKjWEbwprY5O27BLpMwvFOITsKPxRjs+x5d10Frja7T6Ls+3nBuDMNYg4Ox0CPhPd1j0ytopeJZ9OCz1Uqh6zQ6rQEiHI4jjDHuOIhhv+vAOwQ4dcWyp9+rL6F++jswnPOBi37mX5qaComqedwEc8lv2eec36b8lzco3HvQcuq9aew6rQFYkKJ4FEcp8u8FD9iefYBXRIAFjkeDoGz6zm310/4Sn4BTkMfOsSPVb9Bh03532l1QueUBvP8TxsNn0B//j9C7tBNEKQ1rDcL5eM4Byz4yVc5UF05X6ZyY8FPGayFXOOc4//LAQ8MvabhpexgAW4vnz7/B+PoltAY2vca273C224CUiuM03AVBk76x7xvF/5VSUeE4/txAW4Px9b/jtWWcv/dzqE3vc9OkccEx6Hgl50YnC7ioXuq+1FvJe2l1lMKXtwe/MHkMbSKhoyvBD1MM9ohXx5eZ7vv4GoA9gM0RPA6AMSB4wxyJLO6i0GQ4d1QY0ApgBYAHmO/+K15+A6jzn+LRR78DwkXTMXFDpxUY1TCTvCcXNFo8+PDxI7/Q4cZt17gvYhgPGHictV162mY2YuA/62VxF+71iSQgTwck52qMc/rWWuMbZ90xIS9zld6i22yjjA9EYfEhn2T6soVDwOW1zUnT24JdKJNA/l6OvMFrsCNodKpDlEex29NJm+Pnqd4M8SzwF0gjErPGeyuwq+4mmZs3vG34kdh1IOi/Fj9NGhn6E7Jw8c07u8NkhdxLXOFXCXG5eOLiYsuFTZzwEwaQwBur8QPu+aJBec7NtytritIdlO5hSOHR+Rl6HLBV7rk6FS4SzMDypcQtTYXB2eonJyPRzz9h2b+ZHla4pNHq/1zuX+Ozy8/w3fFrXA+vwTCxb1/tP0Ovt3jSP8V7mw/waPMEZ905tl2P2OiMIJMmTftVfHO/zwBIqDsVW/HBUpDOlFrRRNUV9lCGpD3BGfTnFxdu9cFP5MK79FopGGOw1QYbbdFrtyLMYFgmCN6IzXL/CApUPQLTticEOTLd//fd71fjd9FfoNc9piO1EYS+TR8pTpDyOM4wib8RJScLSsyCAevpEWTXgqfPJWwLqmQcr8NvNCYT0LrT7g1fcnd7MI+wzMA2tNpP4tmfEzMEhoGl9IIIM8Faxv4wgPkIZo4KodwN4oxS4FoTXncEC+DJ3uKzD89xsf8D3rMOv8ebJ0k8k8yfhG76W9CGJSY+V+F0Cz+VuGX8JmSNoPgEhBAzhfGHwU6RBRl3VMcpk87X5zzvll1/jbUYRuMbr+GmddY//UoQtwUkGeGVLpHbMRSejpVIEDFgGYbd6qRiwvMv/hnnP/lbXDx+DKK0qyjRYUI8odydoZVjnYyvkLQmWQS1EeRMuA2//K3agAeGH3mjiFGbcDkDRXc7HPzKykgMrdKqkaI0UstxHSdolHRrNEyFoRtWsLQiHC//jCs74uy9n0GfXVSpqBRFvOWmSUlSlhEZkHVsYrKgw1oD6MHhJ7glE4xUH8QEsDX448s/VHWfuuzwAWt3dA8AiMGwUc6Sp4HyERF5StXmHwJvGxz3X+Hym84dE1HSeSf0VyAqA3EBsJD383w5F94S/MJkBG41VL72cTRHGDOcZHue60fuCW7dIexCsL4tStKAAbDvj9/9xdZiPLz2T8cewPYAskfAHN1LM9bCKgW1e4J+9xPsnv40ljW3A8BPXYrfgm7468AufA6tPo4HGDueNm/QZ1CkMydfHP/SWRDmUxVeKVeZA/HmeG81doXN3zaP3178QqOG8Xgj/ADl7i+r0aSUZpJ+Qd7GLzxJHn6TOy+T/XOX+Llwf04BJfwffmCGgR0aqZQCqR5ECpuOcAaDjgw0MeK0MOuAIBjXmMEP+0mHfYXiN7aMcTTY9H2W/jgesB8P+P76e3xz/Rd8N37lgIrK0rXMksHBXuGb4zW+O36Nrdrh47NP8Kh/gl23Q0cddv22bIVoaU2TowBLMDcEyNOclUnlzVUrwa1CRJNaWFMcxm1gNuZ4/j9sHWXB3IB7FvLZ2QEbYpACtEYScKno3NhL/FvpizAqBFPFibP/+b98+493gt+U6onZmsxFqU9ly7n8LGlam2gWgeGfZGt4/IIhXxrT0rEQPZYr8NPjmN3joLVywtl7Z804Yjga2K0bo7FV7C4wG/22LyInXg88RKkWJ3m+VexYP/b7v77XY1TFmX4CvnzUAbjG9XFfxW/X7aBIx5ERMi7IwxwvicfkxwrRuQJ43SbKKywa8KaxOx7dBXLu+A4B/rwxwb8ooTvA3+ngjvZYjAyMlmF7hW2v0WuvsIJRwBaf9hbPtYUCsANhC0LHjCcW2Fpgw+xeKkC+y8dawjAyhsuvgA//MxTpCZ1I0HnygotIVDuSFfmq5ZBj1HcaIMFcB+9h4udUbqjZzwvYt4ndU716swOTOwI0jhZaGXzaD+iI8DPbow9GlHfYSUdt1k+Gm2hwimXfVwJATOj5gPHqMxzI4kz9Amr7KNPxWndxe3vV+UNAuK9ngvpkKAiG87+FmKpT4EHiV7TD90Fn9oGj79V4uWi7/OXRiPMXBufooJXKVg/jsa30J9UhGCU5CCh+V0qjNwPG/Ve4+rbD+bNPQHr6DJ889678vTPhOekp74m2ldDWwluAX1AT6QgrY7AGzAZHc7y17dmrHcgC8BOqwQ5gcwTsEWSPGI9XsGaAMS6ejYsnP4Z0vDAUIGJoTWBY8P4FjtffY/foA0B3kZ6A3EGVsE54FXwW7ba/BuyAwYwA7J1gp0ljo7fCKBYzBfYWTKGDEv/mdg7iJLLOewk7t0so3NuEorTJFIzeXtnZ4r27xW+T0XxiABLEMWK5PBLs+ilpI64c7k+QcZjhvRPw8+GenAK55xOQg9hPBhgAEZTq3L+wcOeQCyNOloGCXsWAn35rtI7chWgExzREwGAMXl6/wDeXX+Pb/Ze4tlewysY6nB2SFJX01BgyuOYr/MfVv6o9eA8AACAASURBVKJDj7PuAk/69/De9gP85PxDwaqyZ3VBWYtwn5ZmF6lUZ/B69Ks/huztKZJSCpZtmqD5tMGgTmOSoLsuMZqzDqC8sa20hmbGrnfv1UvIshVhAppnhH0CwQdFp6RB7xr4L+8x7PjVneCXGyNL08oGvlnupTKWQxS8DYIFY01WQyzHU0y4iJ8KE6swIbBwx29A6JRCv934cq9DobEGZoY1jFFciJLWnjiTC0EPAsDvn2yx7zjn8Rvg9+H5h5kwybH0FQpBnJMsySoWuSm2tlzvrtXhSwyTMCpzTeXXD4Hd4TpZavEYCxGsNVBag3QHsgMAwAKAZfDotu112l0qqcjtAvoXzfi2s4KshOuIPeMvIHQMbJnweGS8NzD6Y1oRANwiVqcIbA8e64RROeJLqVgDI1G8hlg7OuAWjatsllqXvw8Nv9Q9inohOsfhorquA/sth8+fbXH1RAPEUGDo44CPbQ8dj20kQknxE1eC5Bm/SJOQnrAhjZ4tzOEvOLwYsX36CdTZE89uKa8zFoHqUZsCr5KjalCWoWYYPVT8YmB2Lyj53z158Gp/gu1iGZcw6A2gVZ90PZKTVpYvqUmxxLRCysIg1boDzBHHq89waRmPP/5t2fxszCgKO1JS+5q6cQWwbwN+gX2stc5pScDV8dWd2p7PrjT4+i/AOPjLlwPx/F0S5LYtR770F4WG34JzPkeC0cHi1Ve/x+Of/g1IdyEaE1syU6sFnunmuHfYNeyW97fPgGAphn5EmZhvgQ9YJepM7yCJ9Vsbb/l3x0NGmPEaRBq6O0O/PXO0msDjIkP82yo73xR+z3YfTOiTShT2e6ALpz7UQi43cz6b5708cg6/EO7pToG80qC45LnNqMCV8/Aocf4sGG8c3DpZDlHPpOfeX86p3mr7vHYx44hX44CjOeJqeIV/e/VPGDA6AanTFuhQJOWF+Br9pIEYxv93GPd4MXyLz6//hF8N/y2enX2Ap9snecayS1l0uV0yrANgVmdmP4t0UpeGz0xhkFUKIwIpBcXhTGecFcVBFYpXUOj7LnrnZGlMfseBUu65Kk4IBzk2aW+GOeSOn1h61UnJwEiE//ps4xWcvWP8nmKR+M3fp/Eca4fg4EZ+Yu9ZLKJRTw7UmT6cOSLQSfhpv+uHw6p50OnCelCKwpkfgJzwcSaI35jK4fgOId8CkUamBeMf39/Ecu6c/4Rc4LKsiXipVew7XjVMl8aGSMnBodNIIA3zkOeesev6DoB7HyKsHABOeWqloboOGD2mgo7WWhgLjMbg/74gv1c1YZfOuUnDwP2uDEOPFsYwtJT/QQFad8u9UlFY5XTJFUaMWpg3SCohaQORVxSSyeLQH6/Hmor1geHnmutX1sMFsXA8uB+vnO7jf8bwn3Zx9STgZwn4orfYmyOeWY0zKGy1mtCcfLeVN/AoRACQkouIYY03yuyI4dVneHH9Gh/89n8BCNBaZ9skQwUU9XruHliNN3ssKaH9VuHng/UeAbaM68P1zWwXZlxpxsYYKFbYgfzzhBV3NYv8gXSKYp/DOILIrRShNwccrz6F2X+M7uzc9yFfuYxYc+s+pyIEwRBthLcbPwO+N9vzK9vjb0bffq3A8sUmFRZnBJ2iAyjwSYoHkZ+YOcTHw7d4/dW/4dFHvwP5p8HiBKeyEu0wS5zKQT40bM8fO3afX/8Jv7pwdsuFfgSO7XW36ltm53x1DQZU7/pojd+K77fjm9H/P7i7IcwB5vgabN2uEYwjwBZmHGCJQLvH2Jx/hPMnH3sbLHRA9sLxe20X3Tv8pvjt9A692tTpFD07HOnG4k+SiYF38taE+fEs752KH+71+EBYYXOe5PgEPdLtk65TChyGhRcUQXEHj4y02Cp+gMI45Ay4vFGITkpjGJeH13hx+AbfHb/GFV+CukTcZJikIZuqSkK1Tlq3zf7IB/zh8p/w2X6H8+4p3uvfx7Pd+94LGAoLVJHNjB0Q6dohuQyS4M2JUn4OQr8kZsqpvDKw1sbhGA16hJ0ejtH7vpsWAICY/DhQkVY8aafkiWiJ+wKEgJlwZ6qKAfzzkx7HTZhM3jN+u2eT9tSMqUyoTD/EdFFoZoO70eGina1zsUQK4ZxoWZqDLgmUNfgRGMR5gmhgeyXkjgz5mgiFMJJEcYyYRirhi53GVxedNzLvn/8SLXwf8n9Wh8ATmWDycoZD8zmlFC1sCmYqFOubwY7jrb8AojPQHR9QUKqHf4jMtYESpf74SGO/U7PYpU6471YBe//7oCzOBgstdKRRwL8/3WA7/jPOn38RsXu6eb9CMEEcLGE45auJ3iwMGI6x+bbm1kTmoeEHsF+RJVg7YhjHk3SfIeDbDngOAw2Dp6ywY4Udu90eOwY27HSGVoC7UMo/Heu3hIKtZwM/RkAYLcEw4/jy66hvJP0WQwH0abi/Xfj5SCilT8Yv74Nz2F5tFUYQrq3FT8yIi27jb+8OZcDjlCia2MPFc2IM/91rd3ZG/cYOuHr+H7jAJ9BnjzL6SxqzlONE1btcpIiN6X+k+K3RfdfqgONRYbvp43EA5wwMjvmsN7EOOYuKTrQgV32beliMx2/w+psNHn/4G1CXdhBlPBVWfb2HIS3wtKck77Br2y0X6mm8iBnGgEd35MQMV4DZg80ebA4wozsaYoZrgA2I3Q7s8L+UtcwMrdxRJD58j+P+FcbrF3j0k9+Buj7S2rcu6b8GgO/wa+O3U2fYhkvNhSNAtjuZSOEutVInprZmRyMavBdoTco9+biEH3CPxwdCQ9hasOUEFDOY3RYWayyU3jgiE0Ck/JaminqPXhWCoFw9ZBOwomUE/D+f/xd8efU5uDMII46IQLZcPSDRNpqUEwcHySaKKboiUEc40B7X9hLf7D8FXQK78Rz/x6//z1SH6E3WYhEZKRIZJ30n74Xl+BlpSx/77X0+sUvDcIfOQkcmVHJbhj1drMcvrApwvBnIYdFvNghbCbPtQ+S3ByoCQSHcAuquigtdy103LFkws+NEuQz8ftfhcmMFfgZUnCG6X/z+vqBYhCqLIDFs3feET+xT6DdntfvvvlTx2V3SZxO9i0Dktl+RTdtuYypmsdqJdfgRgZRORh9R/F8p+C1pxr04whZyoh1WGKSpQQS8UAr/fiG2nhKD7JgZLPeJ39/95u+FmJCCsqCYxEeMQblCFnKwkFHxYhf/OcPQy8FwfKnsmCLlx4do1j1jBzawsLDWedjHcUTX92BroZRGt73AYf89wIyvPjqD2UjZ6XnPYxfHbwM7JsCAYDRw7IGX0CBmKGZsRsZuZJyNDNrUsfvfC94rgCpiuIgrcIs2g5Q8OVYxu//MfpWifq7y4eFnjbtXwFqL33/9/95Y9zGAEcB3xCBYt4sDgAbh8WjxeGScHS06YwHDsZ+WgJdb4C9nhL99zrF89hO9TrmXSBBurs5MSRk8P2Xfc5yoTBPxS/I1rHiSuNjroePHnevHbfCLQRPGDs4pQMBzy/jvX+7RaQWtNIiUu0KEKRqRBoyvuwEfDT2IyslBMECl0ezobA6f4erTP2Hs38Pjn/4NNo/eh1JOTwBIE/yCzzxiKZ7DLlAGwn1VbxH/3SV+a3Tf468OuDq6tmy3PVTvzlr3UIk/KBA5ybRsaTWqwFxmaq2h7ABz+e/47vWn6M5+jvd/+d9NtlmD3EWW6cJJ4TiaIvcOuxV2y//00d/hiz/8A/jqa5xtNTa9Qq/dc8xBNxHcxK6LDwFQrIxZ4ul1WGyHu7SPr7/Ei//4Eu//9u/cThAZgtmvfpyy87b4/W+/+vtYrzyGFy/VZbczUmvtjnSFuXOQw4MBswX5C0KtGTEer2HNALbuf2tHsBlgx0vAuONDlg2stdi89zOcPf4l+t30uecQ7m2nQOiolDHBYLQ2RSrdAVD++AB7sCZr/LXS0RAtk+isDSD85dXnGHGA8zKR3w4HaDjDhIjiFitGujQpeFuj4qOiQrn6SQAUYOwAd72aGzRsgcvjpWt9qdR42u+gbN0ci7M4CoPRj1AKjAcvCNi1KThSwrCNZdYmJf6nuK1HKSjPcGVgX364LCijPcc/IARnRKqAvDGRwchFGfHjtJHf8xEYfkj8ON6bIUVgkoceK5LxjARLXufE9xjpUhIo4EaeX2o84O70sPIFiaAHAg50An6UXx4TnuBRYQUiXroarioKBRUuH9GVf+sMeGC33dxjoaC8snlD/Cfyid4KDFOZE7wynqIcprKzSDwoKVUb16GfWXgD2PGYjLboMRe9ULpzvMUKBz5MeK8LvOc0um9GGzvxT4Sgs8DWMM5Gi962scvpE6zVKPgaGExImv/iacvNPIn3vPCuOgUeIn6WLeCNkLvQfeSNfQVAMdBZg2d7g51hKE4qJ6zTWAIGBewFY3Gc5AXC+AnosuJPOmwxXlAuY0fP/TXdh4eJn59m35ntIptrAVwag0dE0MrxG4GcLGaAiXFQFp91B/zMdui0fELP2XjGuHPK7M8rpwvCnC7av/wKdvM+Ptg+gdo6x0O5IJCIl+/SIUF7JoBs3o8fI35Luk8dLEbDOPQjRrgJ1qCAn/OZW6zjZBdX9mUIuiUbjSNdXHpFhA0fcbz6FMfLn2Hz6AlKXReOiMiz3uTbWML0Drtlu8Vai6vX30EPe5DVIPRu8h/oisJpKqkrQK9e0opk8/fG4NXXn+LxT34N1ZFYifYUfcd7N8Iv6490DJAnjBd242gw7vewo5vk2/EANtewh+cw4xFmPEaHCLGJqMdnKynt8gn00EQ4vvgc43GPDz74zQS/EO7NKcBivkJBqvtBQXANBRG6rgdIQ7EBTW6xayuNU0IGIgGDOcKycRaN8qArBeoBsn5rvSIwKf9MCAtj0UkzpeQoTjMv8kksG1gzgnkEs4LxKycaGsSAsRad1llPOGMoR4tYS6AhEvBxwgnAeeKEAQTOfs8mLwCS6KjTMnjwFNi9RQz2lxHFpiEcH1CeWbOSYhoXyxzMSEGvQM5IR0HSVtOCwTkasGJ/Kbp7F/vN4sdQeiqGE4kDVr4OSqM5HL0I6aRzR1JRYhZvZA48RG3DFnCCXfmLWdKmjmBwBcW9Hj8SUj1/ogwAKSj/okSihjTrSggZdjRQ5LaRs/LCmNwdBFiFH0T5N+Q/FW61J8FrAasEaBUv6czhCGoungpRlahP4qhICWAwxv1K2hvCLm3J42iwBcfdMAxQSkMphREKZhwy2amUAjpAW4ZVcM4o1cZOk5MExG4Hk2LG+WCxGxm9YRhivNwwjKljJ7qGtjMg4RqEYsSrAEfCl4eGrvHlVXcKPED8rDHRGLwL3XfGjMdHi44Z2jJ2hr1DwLXLMsMQcFCAIeCbzuJbbcFGw4AQLlUKnOtsIVd2+YZ9ThQSP5Xf5yyDVF/ykb9l+Hndfhf4afJpDUMNDH20OAwWW0XooKGUxZEASwM0E65g8AUPsAZQfAQb+B2fyRgPtIqXggEAE46jAcNdJG0OL6GiQ4Ezqi1adYnsiDusfqT4rbFdjjvG/sriShtcdRYDAR/YHpbd2/BEHsPYDyR+Yl+nVN2xGmndAJoUNjDYv/gPEH2CzcV7gi1FWkqOnjDJeht03w+B3Zzdwr5NPI4gGHQdcLbtEw0o2fvMJX0DlTlhGdPDz0vdb0oRrq/+jFff9Hjy4S/8FvtgkU5tunf4rcOPQHH+n8hGkUfI79gZzYhXX/4LYF4Cxr0M4vrvLkjUzG7yHkkS2pVwync/unYqNhhffYWrrvZ8ogv3uFPAm2AE53GJ+6glaG4FivQGyl5KGmdbUNAchKgbBRklkuFA/rO7lCMIPgbIGaZWEZT2tRn3GoI/JAkCuQu22A9C/15mgCBUxbAwdoS1IwiAMeS2sFj/DrBWoDjoml0BQEg8Lc/VIDoPSIws95ydS1uuTpfHClxmilhUyUoUPU3uTgB290Iwi/fDaKqcI68kpUJEMEzxLJMiTuMBeVYqPrVMhYCfjdtunPfvjeEnbuuNbfT9li1min9ifIijrN6EV0hTdwgw0rbOuilFFI5tKC+ffcdZrMAQu7NbK/FL/Jz+D7+5oaxji0KnXNklH7t+bi2giXFgxsgAW7ezITZlAT8FDdY3x49IJfhi3gBObtTUd3s0+G2y80NiFKnvaV6XaySUX8x3z9h1WsNaA7YGivzTP74N4zj6+yK8/Ayy07JfdXIOSSj4u2P87cZxApBWpgiEx5ZwboDeMDrrJpbaiRcclMWVsjiqOdkp+ixkZPoU5CPi+Et4JfrFz76gdbs+EI3ewpx5uPgZ440+j8MNdR+xu7H8k1eMTZR1YncA2O0KIMZBAd/0jEtiXMNdRtnHbefJcchM3jYlb3eVNE26JolZLnbqIFC2BK6OD94+/EL62+AXZOf2Guj2BuraQB2dbcBbhbGz2BvGoBgjMY4AjsS4ZotLtthwB1IKx+MAazkdK0xLzhUEHJ20cvyltZwQJjpFOmYFCHkpSo2Tyhnb5a8ZvzW2i9EWVz1wvTE4MqAMQdsOhkcoYsSn27wtEvlRanCVaONWG8WKKCheKtsx4fr157gc9yD6HfqL9zzJ/EVxYbLjaZmcAu+wq2E3Z7cAcDdFGQNFhGE0cYFR2jMEf0g32CiRLK7tCUcZBPZE2Jgr7F/+AeARj579At22E+bLj1N23hY/ucMq9iPGuL5aMOw44vLFZzjbaPSdgtbp8u0wf4hoFWYki7kFCXOGyL8mBYvr77+s4gfc8/GBEJIScEEpAvtJotbuKQweXgs7WRp4QXmXw5jKEd2242TWuIUm/Ot+YMswo4G1BKXJGbtwN3jG7SpeSLonufz5dWHcM7uzG24mpmCZAHZvcbNHJ1Rd3gCbIZvGWtbXaN5GOyko0rA1y5lp08lLmLggGlOENJmZBt/f8Bu5rSduUFnhYQ4NCRxdmAMBIgIMa3SUnsfKay5G9UIgABru2Gos4U3jF4zYomFx6i896kV8K661G0TeGeG4geO4aehWf1ELuUu+gCCbkd5ld+f5ObZ1Hr8kmOGFW4iD26UREkYhJ/pfCY+FUGPrdgyY0bjzXTP4EQBtgd1g8HqnboyfEsI49rdocNjeXDpvQlzN+Sa/Z/xYrIA2nPiehARARcUVPe73iJ3uOih/C7HSWnjEATOOsXzlx2Lc6sYALLuJpyVAk5dLDju3k8A9R9oxsDPAx9cK4bVJvwkJo5+IjMQwirDXaGJXEf1iVUQ45SjFU8QjyEBOn4HJThy5zS+vCIir2Q0MHyJ+HB25N9N9iggbC3x0TTgzKjOKwjBwQ4ExKuBSu/sHenaIHMkdD0ncKnMijvtkJ0Yll5KC5/GLnz3eXMcomKjzE5OHhV8Md2C7nH1tgNGCLUDw7WH2L4kQ2Lge7ZixsYwtMx4DeMKMAx/iLoFgqyXZL6jAQDin7ppKbgHITxriNCGyHPsP4mDVlKwJH0KdP38E+K2xXYathj4abK6BXhE0EZQx2Hcj+l6BIO4kIoeV5IfUzwiz2AHivjCHIyMGG0V4+eILGH2G97sLdNsN3MtixW7fgMXspPLHjd2c3eKqVrCWYQwwDgbDaEAEdLLtEa9oZQkAhczOlqyR4aWVwjY6BgZcvP8LdGdnbaPuHX6L+KFCcw4y0jtYSSmYccThsAdxB0IPhoJWwZbJqVYsQ6au+q8kBDOR8hePFs81inB/xwegnUdSEiAqfX9umAjYbfH42c/wzecvwTDoySCsolLoVcxOvpNAWoEsRiiVH4Xvkx2WCSBPXj9gRzvGjERwK8+df05Pk/hXAcp7yDnUEYAlMOsoOONFER4cNgzNOtGj3fCCnsEZEBQpC8VJeRqaFpIbYwUti2CZcbU3sMat6GtF2G7dSnC4AETBbaE31riVxOCSAmc1kSKAFQbusXGn20SaNJyp3u3QwWkMh4XJtE3mTeIXPHxEYru8pKdQegm7ClZF2lDOJA6Fa2xy1CYFa4Hrg434hXZqnUpzt4Mz2FoMwzJ+jh+lx9YRWgpONrKVyVsZynMYu89P2ZklGzAAiyvDGK2JbBnw053ynlxCpwg7VvjwQNiOjFc7e2P85gyT7DIkwUtOz3EWFyfH8TvQ2IsuhDiEMVzUbYHjCFiTlOObwE4rDa17kPe0h+MCShGOxyE+aWXDCSAEZ6PjvcGOGBLIIEU41xo9Ebak8MgCj43CmQW6QnQz3GsDBwUMRNiNwNkAvN7ZWd5LeHl+yKiMwtAlAVVJ+fnvke/IZ7X+PHRl/DA/TPwyY+FE3deR47tf7BUeG7jtl4UpAri7A0blnGDvDcCH1uFk/W+apUGTaKzIH/+Kk71EqzZGie0cyzlwIvt54zP7DCBedvCW4Uex7tPxK3WfGuAMV0FbhsVIAFnCZlC4GNxE0l0cqyLlw4Nf6fIrqedS94NOZvb4M7DbXoBIeyM7aTOJUfoOcQ9Rwo8z2/DHid8a2+X8ucXmiv2igJs87dWI77eM8w2h0wSi9DKJIhXPbDMYxjLsaDEaG+8AY4FtrNt/ZKXRa2B4/S26Tzpo3QlKsrN1Gc529HJ5ovveYbdotzAAa5xtPoLBhwH0+hrbjcau77HZhDs/3EYOYcmAiWKZDGQ77thHyumaJoLuNLYw4P0f8fJP/45nv/mfsTl7ivEd790MP853V7n80ing1OtoDQ77A9gMAIfLQru4Qzk67ILC44QhmBHnWdL+CZgToArtKsO9OAUGw/jTV0fsB7jbqwnoNXC2IVzsFB6dkd/C5HYKnJ2dY6BzaD6gwwHxZnwUaie6nWRtLk5GlcOVgvAin9ITn4OVKLY4R8J6TxAbhhW0df9ad1uy9zCEAcc2DJYQgTig3STQbf/pqIt5ahcgZ4FDvcnoCeUCSMcBQhyJPvj2hndOKUag7FAWRsP481f7Kn7nO4Wnj9zgtmxhjME4Gmf8SfdUJo4ACw0L50yISSh1UDapToT818hIxNOjJl753Cd+rjBpmuT4yBC8oxC/JaxSm0M5TEWccDwExUo+XW21ZLTz+D06V/7mVgtrDIwZF/ED0qpCGEizvozCG1okxQ7OMFUAjiAc4barhrwSP/KCckOEC8vYDW63wK3xa4Swba10ojv9RbFvkrdiH0OaDL8Q59tFbqzUfAc/FHZKKWh/x4lS2t1JoRXcM2UcnyYNXXAYIdXFEQ4wObyeWsIZKZyBsGNCz+6QCYl6Q0Mt3C6Ec8PYWI/bSuwcXHJza8JReuUzRRrx8/QISjp+dw2cfk/Y1eTVQ8VPKYKxfLLugwV6Jjw2bpdHVUb7PARGFx61AeJUUgt9FGuKxgy7lMHgi/LDOxUDZl5Yph0fyZgMKs1L2mxXXJpoCn0ZFeHDkZ33hV9N90EpkLUIXOZzQlmgJ3esS4qr0KsMu5hrqp1zd1H6rLt023iWi9g77MR31PEL55GBfGU7hB8Dfmtsl+4A78h17aZoU/jLIIkA7XiUGdgfj/HOqOh2YY4nRaWshrddskESnofTYeKS0w+AuMsD+YB5h91Jdgt7GUjwC0BHg9FYf9kng7YdOu125yX56WgTj7NSsHNC2327xfHJqFf9jhBLFs+//BM+/ORvQbp/h98N8RNNF11Ozla3+4b9bhCLYRyhtIJWCrtO0N3LR2tF+4PnQxqvwk6D76KuKnIX7sUpcByAT792ZoG/pc55rhRj2zF+/RHj2WPy3iyFzXYLCwVje2yUhoIByIKIxaoQCypOxA0Cl2R9JeTEYcAwexeatAxFFlFAHEAMd1Y2MBi5FxQoWMKB4VgODtk+p9ScAGbodF07hCoUIQc0dcGnJRbNF8aOjKM0UMh3rHQWtMIyfgPef6xhRuPfTTW+RIvAbwkrIKymj7xBT6OHyw/cakOoovCFVvJZuTYJl97PN4Jf0W5hlOYwBqMGkIZVFMGEOIEJcRPngI+Lb73KfouwjN+Ix+eANTa9e7uAn+wHRXwESJKPYnTCOMyFQ7TyZXQgbJjQwzkIrCiX2E3+O7htyDu4uwiUbyNbe2P8cmGfZUk99fIjG16I+jPlr/IWiXEg75NIE9Ba+KGwc172UJ97BUKRisrN+LN5CkkhuvmxI4Ymgva2hYU7c/4eK2zhsNUg6EivnN4Mh/MGDvPOFs1bw3vkeSx64BH7P9kiWTpyAISpZcLJU2ziLAhHfeoS9KHil03EVuo+WIaGOzaws96hW+rU1AR3tKQQCfJTaDYJjNxHuQrkf/GJ2dMi5I3PCZbfSZSFhFl+9Mp9p7LjIvw14dfSfaR0dCw7Urt3zBUgJt+53ZFTq5SUZUxBW+cBQtdvAZL9D/qbQJkuT3q0vAspnkcG5TT04ceA3zrbxdGH4gQ9XcJmrbv7AwyMXke75+h8gtBaJqjQDkLEKlQU2hj4mEHQ/Rbh7DQjv5YuHekJduw77E62OwNWWoPAsGCMhmGsu+SOaECn4S+T5ET90AZO4yC003IaAz7SHRHyT465SbkGEfD65Tf4EBZdRf29w28ZP2o3Ias/vN5iLTCOFlqNOBLQd8pdUJ/ZnJyVR75Dpd0TOLtTCp16w8cHLLuBSuSMxaDcx5Exjoy/vLB4/7ECkXFPRnghYdhNHDWNcMM5KfyoRIIEKoyy2sV1SGMczO6BCKN20GqALQxPmSeOTp/XY++OjAhmyrKF95eQ/1szSBX59bJa/Qh9TQ0iyrCHM6LyCXFcjZYD3VlgmQOB4/JkqH/aiDX4ne0U4LeWBTjS6j0Jgy+FIzZp2wqnJjTsa5eMy2Yypm0W7MU5ve4Lv3YQTqwoiCtpKg6NEueozjOHT6JATaAAa/HrwPYqng9dg1+65CX0AYjbupAOhsQz9WKSNaUAuwtzyvhgN3jydewdA+S9mxzhzLA5mf/CoKNEyYJ90u8V4Vqmq/Ofb4bIQP67+/emvHf32Lkt3G7aHo1Dn6bv+1RXpX8Ed8dHDzcxZAAXcDsENMi9OhlJwJEA7DNbuJX3sKKs4LYbt2VnITMk2T2eEgoSdQFMLQAAIABJREFUnv2IQYGi472EdcROpEbALDp23h78QlO10su6L1TOrp/OCVfvb9bGZqQw7thPFChISvbPQYmkGXY5LSrsWPlNIOz/BJnMIV2jvX8V+C3YLrbzl2eB4F4g9O3xiEQspDCTzOMJOElTJA3fgjrQ3Xai63OMOMkFj1mQqXLxIzeI8/BjwG+V7aL8M2thbyb5giglC2MgqEBm8lVHST3ltWBP+nRBDzO5MbXpd4JWQnb6uuIxnkr/32GX/m3pPsv+yVA/6bOAfy7c0e04GoxGgQ2BtN85EIoA0Hfe9mFHb7eV38R5VdCKRATSnU8HmNHCEgF2CFL0HX43wC/yG4DwzGPYqeHkX1iEGWM5ZrQ4kjtau+07ENhfPAjP0knXUUTaczGJ+nxTtFbQM1vU7+dOAd+ZMMCYbQKCGVfXjBevgafniFteQrgyO+hugIK70C67O4AE4coqgx0T/7i40VgM1AGb93Dx9CN8+OxD/POf/i8ccQ2RI36uDvcwONgZNWlw+PYEeRs5qmyPH2hBwSkVK5kIyImiE4K1NJCAYsJBmG5hd3FZmqAcuNJXhL7O47c/WOy6oDyk8RAKDRXmWI28AatprRTzCiI2hE86U5gMk6TG6v25a/zieSwSdUx75EkgWidwcZiWKyRlnG+lPCaSTWjr/V2D37YLydfhF4RyFMwFNu7ZSYO0LZiREyalZwAGTqmNYBiRjvz/4RFLEulHIhhy55PZC8Sb4Je3P9CTq46BJMRTC6tOHTipXBqsYRIUFE6o9za8d9fYBWWklPIvDbg0fb+Fse6iQQYgVYljV1eXZrj7A0DoWeEJlHMSBDmTVcdxZDDc0YHYzhApLyOaYFcITEpqggNl4xlk0T8IB+kE0yBPcyGbnAWu9DA2G5LmQeJ3fnYWdWxH/bLuS+wA5VcLsw4iXwUsx7FcHQRzusTR/xqPzoSYeAEdpySBlkDDqSPoIo6OUIQq6c20Y0fqwoclO+8Uv6I/pe4bO7cjK2CgTZK5E7sqayMKnop/Mv5LaIQWOcmhe398IPJegdFkF0iQqaI0DmOO6hD+CPBbY7sQkXMMxJaEowEuv7VONrvJZaR65Lkoo8sB4OmUtzyl093O00g0CIjy3O30+PHy3m3tTmttTGTZ7RQo71N1E2635BKe/QtHAPeHIbYj/muj9Cz6QKktRP6iO///O967EX7RAUehFAbJRRJvz1hj/L0KDs/BWPc603EAwTkG3L0K/oqfwJrifoHgH5EkDjjOnVq/F6cAw3mgSLHbrh8MLU+x/dHim5eMZ481tFbYHw5xTFgQXpknOFPXeESvwRhgOW0jdBQLg9pdiGJAMNShO/8puDvDy+sBo3GM0ekNfv7zX+B3/+kXANzxgbMvznA1vJy0eRK8JyoRNiCfFKg/hhUHnjB9Ms8Nizo61SdvfDnIix0PnBkw6Rxd7VbtYOzELeyBv9BYxWwI57X4/fanPWgcYYyJ+IXbNoMyl30jAgw6GO79pMpANqp6lpuCMRAbDQZwDsLBt3YAYkkkS7xn/AJts4yVcSTPaWHiIKA8PotDpIesJ3gYPZdP61uJ369/omGJTsIvKHzptY31bj/AeHwBDefUi3UGoRdp7M+7wZ3bGojh/M/id3JHCywAQ4yRgKNiXBPjAIWfHdz2uRvjh4RJafdIKGWpuXMnxy1hF2gn0QjJKMOvJnN+KOyUUui6PnrhmRmd3uCnH30MhoHutzhCg9gidcUZAArAFoQLKLwHhTMmdEgXGYlrbwC4XQXMbmISaJMknHvbfqS0Q2yKnaSXR1D8I+OjEg7IkKs8+y5kTi4XOdI2yR6eyuwHjt+jxxfxbPBZv073EfldHiKFBceJHJAMkNAQT8qcJxC6nqwlLqrT2wt3gS0gsHEFpjl8MsQ4GowcRWAwfGM7Al4sditFofDwZOdd4zen+y4fO2OdDGN7RVAHhqIwSfR9kQwh5VrsS1nfJLnnO4+L0tidXfhtvgEnRn7XCmIbg1HrfkpSnCnYCdNxFGjx144fBTrP6D678RcHGnK7cxhQykZ55/4GPnBllw6A/NBI0s/C8+a/+leOmLC7eJomP2I0sNj5ISd5JR3eYTdvt5hhAEjBEoGVinaxosDDTtsaYzEi8Jp/Ijg2w7ci1OOfdpZdYSDuAnZHRAjMhG77CLrr/cp8Ht7ht4xfmItF1Rk7GHbQEdhaHPaXUErFHRVsCLCAvTriwho82fXYbZQ7CS+OAhAz3Gvb7oJE6QCyYAzcuV0Gw7TbIdzfTgHrLrTJBQ+c0idgGC2IOvSdxjhq6K6HMQOI3OUQV+MOXXdEbwYQ/GUK7HYPHNUOtnsMo88xWuWepmOA9xaMgwOOFJgJZ+dnePr0CQZjYSzjaj9Aqy4CEsRjJCohgpSFiSKkybfYy8o4i6RhoNf9tLhJSak9SVhX2oUwoLJc843wfWxtgV2Ln9IbaLZuO0qBXzDuakxsaQOGce9xskG+cYDi5Et6C0O7Qjv2SBNJt4NHGDFvAD/f0koKGReUZsqbiYsKtjnevhZxBGRVWIuf6sEYTsZv0mP/49ECnb4A2Vcgfy9IRsxIB3d+UcO9yaoR3yNxnk+4C+k6IJ0F9kVYuLez94Xkug3/NbmFgoGcp4y2q8DT0SEYQHkhJdYTh1LWwB8GO4C8Mgmy0+L/Z+9NemxJsvy+/zEf7r0xvZcv56rKqu4qtp4ICqJa4KYFaNVciIIGUp9AIglopQ8gQAutBGjJLyB+B2qhtQABgkAtSEhN4onsGjors7JzfmNE3LjuRwubjk1+PeLFfXFvhFnmi+tubuP5HRv8uLn56miFs7NTvDl/ha5b4JxaMK99XMBtMNhDGwZ66L0D7ICoq8TGuGPiMZmd6vW5tVrbXeqJ2YUNRCPanhNWUBnvFfeKAeMEeKmN6QlKqMI03bvuGb9Hj86gGoVxo9viTcY+u0/EyBQYm0tCsHJ072Ii6hUDCwyg3OZJGVbxeXRCohb+ZlHWST5Q8ONp2s/6Itw3fnE3M7Tm5loBTcdYrOGMAQmtAFVhvhDl4fZxcDIAqO3QtF3C0tuVKNCLwMgj+04RP1uSB8BvztxlaPQTRMWA/PpYktTkxMIqBcO/gmN55eckbbcQN2/hmMewvCkPr7IrOjv2jWb/LlLKf2aWJBl/5NsJwY7HUkY23SSvqCw+LKPplyAlXr+MIlZ+eZfOXTJzDtMfjmAMmysw9ENsO49h1q+K6M/C+01EG2K9hwIB7rsCrL8O51aCmHQ3Vxt0fSO+J5O6na0U0LtMDnrkcTdCRoCsv1BwuVFYtMBy0WPRLbC+fG3iaGV4MZyha64wQgHtEtwe482VwmYY9SrlAQCNbnJthcEA2KTz5L0n6Jc93lxutJDAaKmBHbScIwjechZoFkqamUR2WLSKHMcOJpM+QNf08E2VMhFDj+IEZsKl6h0Op/nnlDbXefw2g970ou+6LD/3dNRWxRyu6RgNX4ExYsTgJ2nWCCDWQ9kJXcgWuGxH0fHxO+dXfGrC8ifl6OsE5xez3ebnJloUbwBlc5vHb0QDog3aprkWP3kqO0MGcIUOehH5gAbhZibk4ph3yE35OxA66NUeCmQ2FtSfQtOdmf5n9WQE8NXKf6HkZu0vki+A2LTmromExdvlnqf7Q6F/0J7lXhdUbNN3yS7Xd4JGtG2HfrEAtUfgqzewwxRB39C3AJZQWLLe94EQTiAHaEPOpWKMRDgZ9ScIzxsdoh/J7VrPgFtFIqUXspvXGbpUcmM9+fpKv6TdmT/5QT8dWPeNX7/s9RMfE3f72Cfr5ccLu2JHT68oCQnRv8qC6teUbR+c5AwAUE2HGEbMLhy9on5/S/9pJ5gczcDy89pD57d97Bsa05ES46oHhks7G4l70UhAEgAi0U80SWJAtb3/7CRzVg9ilNJQIBkGbTJyD4FfWOH82MdK97F6XmXlaf/ZeZbPK0IbnVNYPjcOilkO6wzabuFX/YADQ50dYy3LpCqVXZqMqErX9Bg2esd+bXjRgAl2qbide7BO28ncrvCy9WSbvb7qYMsJjT23T+11u237FZTJN6lO5ZcmI6rSNX1aeHNdGkcBYBw2epVAUG/9MI0Ad7Ovy0b69YLR7yFBbpVAJDsiXK4v0XHKz7rdrBQAwNCWDGa4zR/YKCST3pDiasPoW6BpGpw+OsX68hzn6zcYN2YxOBG+5few+GmPV5vnWONbjOadZWV2nOyox6o5wike4/nvX8IpOQFd0+Dxk8dQSmGzGaxeQ1Fj+zCrgd5ZWTnhR/qfGYlCcOngFioUoW8W3jIv+1vbDlh6xBnm/CbHZB8rnmBNmOHm8NsMjE4BbVvmp5QS/C4jfg06WmHVHOGnX32lG5md0bFOYjTKP7K+uRioAS3fxzB+eaf8Am6Z/F3fnAtCgFyGO9vok5sAF4LO5dcSQyl1Q35p+2MwuFlhvLoEQenwiQRN12zYNKw/N0gAGib0ZJ44M3DFes+BNekVTwOxvxN1dfW/s/kVxKu73jhlH8BzjSZFjmHIFQj9U4S5wfVu2MV953vvP8Y4DGjbBsvVEsvjR7j44QdXTouhZ8KC9KaQZOXGXiYbAi6I8UYxNopBSmFQwOtWW6+XA7Aa9E1jw0heJ5jDLhBnoS1NXPJhkrYotEIwnnqCsS/8bjb2xR2mLvcIxgbGYFcQXG5UYoYzDCC5k9MnqslPQ+bwKrnsyGluMrf1t4fND1vHPr0xuO5HhxYYGwDi9V8/cNn05WDnW2RJhMkmWwCabmluYkoRfV8qL2eDBzcruZTuN79UaunYx9CcR8Ug8zk2gr/pyDmKjpNuUPZ9sUGBGaBWrwaxFldIo45p+6RvUEvFqOzC6/HYtzlfmzrafckIMF8PsSs0ZLuw8yyZml1fRRGLoMnHzhSu7Vf6tZTK79bmnWFbMk/2xxEgBb2WlkTxxL5GDPPZRNMfEqXt2wS0fQIpwmYcYD+TmHM7Mwpox2AeoZ/lkxlrzJIG1q8EjIPeYuzs7BSLrsXFxSXenJ/j/Pwcx58u8W+f/2uMFxvdBpReJqIUYSD9IZ0RV7jYvMb3wzf45LOfYf3FqL9b2TY4PT7FcrnA1WaAe69iFB9SzpY4NyFlASYaFI0myM44SdBalMwSrN49qSwsQDeJyWEymcgEGlh48r9lVjUxr3WF38rPvKv01vzea/CL8T0cf/+NNgJA7xUx9o/RHp1gsTzBydEplqsj/MV3vwFelkr8bvjJxu4DpgJ2y+W2TG/nGApkKvMMCdv5odGTuNtsf9R1wLgEDxswNk4zneTF0yKGvMfXS88VmyVUBLwGY232FBhNp0cKcG+03bT95ZSffZL2iOUFkafn6q97JiXeoWZO3VjeFTvZdyoAUIRGKfR9j7NHj/H6h1aXyLwXpzcY1E/37ecKXT0ZYNIbRF6BcUmMjQLOyRgKGm3sG8FoWH8nHSw2M5zsO71EtzYDETDqNsXbAWHbc0WQgaEH5Xnu7vm5sQ8MHueOfUL7TYMaSe/xcAX9qs/S1segJh9Z1t7J2WyODcVRazI8lHsda5pl0P9tCRuyFd7kJ3zT/ece8dvB3MWmw4oxKpg3vWy/HC0Vj+NNis0wtoZ9E63pFvDTV86zzLVRRNzJl3FLQe41v+m5C4GVboGj0u+Za9khM+aYNDOIw1Ws7ILZzPV9Pru5qn5FpA3mr3F/a8s77R4yO5FIZuxbX1640P720BfNvoLpcnLA4pVSOkZs4BFDt/O39hxmoO9X2rg3SbHyK/FTRO6rU8HXs0Q7GnnQ5SUC25t3sqYc24DM/JlNnwhyabjsRZoCJwB2+yzk3O5WChgFkIW0ygHoDQI3w4hh1N+obJoGq6MVVkcrtEOL777/Cl/8+BtQu9GbqCroFSluRxydoJ3IqA74+ur36D9Y4MPjT/HZ8pdYrZZaUZRRxs2AzWaDYRidVc11dEFvFWmO6zenrNMzZAIGQaFT8fJlCkJZr6S9ipuOqeX/JUcQGw5umVXN5We/cdq2DdTx0Vvx+/zqB/QfHuOj1Sd4f32Eo5MzHJ+coWkav+s4EYav/3IP+FGU05wbSDlsp37ySngUO9P9G0tvtqwz+fXm7lopdWvt7/j4U6ivzrB+fYmR1/4+keF2XR0J7mb/NTFegbFxN1xk3mMGBsV6hQvp+tq9B5L6ZqUQhym1PyHWKFFLOWErboaCVQMk/XSA0MiXm5hF2d4huw+PP8Vnq1/iaLUCzLCu+9AGR8fHoPYIpJ772tkJA9jPHuxgRNrOvSFr2NGGnrXS38m29yEEoBu1UaAZ9W688Z4CAbuoYZTbyQytSDiG8cLVHt5v8knzXfPLjX3D3LEvlB6TZnVFhEvzlOLEvhUk0nCbAAZx/as/RZUnQKkO9qYji2zLWOX72Hnx7OhZHAv2kd9tz11EfzxSEjyot2fsBBQJ2cfm3BkBynyOMLeKoOy8TsQoXVeTi/UQ+EVBYjc0odnELjHXxRc0zeGWIckUwo90uT5QdQtzw+jz9EHCwKX8KrtcGD/2vV6/cvwkA2vwcQaBqQaCqD2RmMtm2qeVFTCiM3tGlAbAyi8XxvNTSi/3t5s4uhDM7isQ4zBgHK70nFdsuKaLLWYprI39UAYH+3mqQyDHZBbtcaLB72yjQbAdAESlCLBr2IeB8PLNBierFuArtF2Dz7/7HL95/mtc8GtQw6COdAkJfsmKEsdmqQcIGnYHDLjCH8bf4YsXv0X/3QJ/9+l/gaaFWzp4db7G5ebC7MzI8BYYCoRl04XNh0zDkA0IUQdpT4IW59NmZjTUYLU4ctf8m1Yyw3hS6jdL8pNUQn5jM7j46ZxIdOoORWk2OI/f6aoFY4OmbfHld7+5FX5fjn+F3ytG/3yBP3/yd0FmydDr9YAXL1/uDb/cSp1Ynmw6HZerbaRmgi1XB/j8RIKTvU7hafN12t+ywzheoetbfP7db2+t/Y1PGP3pAu1XCh2PeskqayMGj4x/sRj0GgJijBTV2bYHEmnfMr/ipCQUb3ToB1o54bXcUz/R4gK/VHeCAtwxuy+e/xb9twv8xz//czQEKFJozOd+XpwOwKD1lgm4hH61o+URb8BYEuGMFTrorUQvwHhDjEsyN4dM6AY4RgygG/SAeAW9z8BFA7xya9QzbS/TJqQ+eP7Syu/xuQGeBUkKpO2uW6ZBvzs1i94Hfmbs+3t/6x+ga0dcrNfXH/tAGBSwMWVX5p0OYsLIIxRbLoG43O9o2qTdYJIBtOyh2xtEgkLbL+HIFMc0Xzb/GhyF/ORENCQp/E3A+Dtee8jvz5/+5zuZuwTyZECN7OrsxiOSX25wDSeSpTgKfsyk1M5KQeiXpyYdMbexIjXlkG3X5mvHT/ETV/fB8Zsz9l11bAytjGZkNMRoFSHYM97eJFjOSZtgBI0p8GafrynV4vj9zK70mUcfpm4Jv8puct6C1wpXl+e6XSrR+42sH5gooFH+/jlIxz71d1kUbnPJfxPEt1+f1Or4BI0iDENGMSq/rfNO1eiHmwMRgAHjwNgMAzbGcLG52uD8/BWuLt8AZg8EmzBhhFJkGJMzAjlDjMPly+qatKiqApXom+s7dL7/t4WwNzG6EpuRzc0t4YvvPsdvfvg1zsdXYDXq3Y7FZE7/kr9BIP3ZMq0oBq8CQAxqANUBl905Pv/hd1CNgmoU2rZB0zTgSNGdEKWcKDnIjkIUXxBWsjCcJtioFn3bu6wtTP+3MBuK06P42CtJ0iBFDrK4k5NbzOM3sn6S+MV3f7UTfr9//Q2WqxWo7aAatTf8Rl+7NEH7z8aLrsfsKCj/BBCZzIxgs9of9KdLdtX+1NH7uESDYQNsBr377PfUY02MASy+nvzu218Ii5ycIoRphrlmkws8Ga6Yg6uGL/ndsPv64luTr84H5G+SGYyNSP+SgDfE+IEYz2nEJYBzYrxU+t+5Ylwq4NLsJfCmBS6NAeB1C3zbA18tga+OCD8sgbUYmWJ2ZqhFrr90Ug2wellTEnhigMy0x7lNdB/4/fqbXwPMaJvm+mMf6QmF/jwkcGV+RzvxMXd9ZCqrlyr6tkc2jPFnwUovIbU+BKXsswlxw0i+KOHBdpcyhut3hTgn3T7w+/0Pf7W7uQtrRs2G0F8ZXpZVnIU4Dlqc8BB0gzA2rabtUqal40Jfmh7ud/+5U34+ZlhpYTxhZtAI6KeLEy9cxJAnHEdnsj5Nt4LdTyBuXyR+Mz1xmOoDZpeG82PfOAxgTjdvlsduE8mgnME9YTjHSaYhBT0xnqpt8xWSKVR+Ilw8dyGQeSWzMZ/uHIYBm6srrC8vcXFxjovzc/C4gWwtMl/L2JNOM7blCziHqaSFNW6HewowQpuDLzgbIIr0cdt1+O0Pv8br8RWgBmd5UWae4W5eKRURGYWTO6wyM6AA1RF+/c1f4Gh1jCfL96EaQtM1puO0FiNdNLtBg33eZ41d3m5m8pYGmWIHyk7p2MXUZW1Vh67tfM8NCGXND3flpyb+6aSzWrljn4E/t/GiOpXqMJOfatoHx88Ouog74bB6+kd8osldIjLZsCmn3wRLPnWWXN05bJ3LurEv7e/7Rxf47OSPwVcXeoOYfoVvX/81aDy/2/bnEsyJKG6HmVd1iNxE2rfelLNs59Jz+vWf/WD362/+Au999h+hRwcQo2/DtjcqXS4FbQBQpqxXRDgnwstGGwNGRdrST4BSwHnra8UAoAjcuNuIWezIkcm7ZLg07cqmHDMizpNOYjh93f+2Z/vODxZP9OefrtV3MsB6tQCLV0g7N70UkyDXl8H5k5GA/WQlwZQN7FcXMIEbJT5JGDorY9eEZFsiJ8zM9VA7UtZ66pv/douNsT/8djH2kVnK0a6BdgBUI9uMMAxoNQjiJzKVsuYoBDOIFBr3Oa5yr2fLKVkG3adjFzTnjLv//KbGPmYCDYRmANQ4um/ZA3KlqE/ML482AV14ez3JQfuziMJA2y1FINtf+o4ybr6l8j9kdlNjn1LKdYjyKx568zm90ZyCL5Nsg7Lu0y43M/H9u1IKwISBqfJDiV9nDKPEpPf6YAVShGGzwXq9xuX6ElfrNa6u1tooQKK8zACJzSTNv0jEGeclp8OTG5NLbmcrBdgprOiAYHoRVug7YNkpECk8f/UcL8eXYNKbImmltz2Od9bqQiSUhaAViQjUkJ7AKIAagBrCm+Y1/ur7vwSb92O7rgVdNf4m2SwHDVZfuEqIA1kc0SFqXuFoydLfvXSrC9ypHm2jl4UQadA+qs3EvGNi80EqCyOQ8JRCBZC7UYaKRBkLYeiuw+/Hlz8+QH4wk6fQWp51VuYZf/mc0vGz7GynJDi65KKj2O1T+3v+aIOPf/4Un/z8KT76yR/tBb/shJIK/+wgFEvc1N2REuex3KSPbXslevvE7t/88Myl0ChK2DFIf3IQ+gsD58T4kUb8QQ14SSP0h0dFz8b6KyLuM5MQ7Wdu2xNstnRj4fWAZ4ZlhpXPJ45xGG1P953aYHOzvlMzkgxHUSfXB3pwwTkxQ41slqiz+ba2DQegXaHp+jxHUQZ5A+8x+lgCrfhnJ2WxnljYeYb7x28HY98AqDXQXLHZCTKMa98L1tMP20o9byS84coh82dTe/eFiUzfR+JvcETRufOnIjtd3AfAb2Lsw8jAmtCutXHAp0VOPp6P4Bznn/OPwtuiEQFN13tPyU6yIlR2N5y3LPoOwQjlfszrA3GzyLTHVOCFa4Xwcs+IbHKV39b7BpBewq+UXmU9jiOGYaNfH9hsMGwGMI/JPBJOrl4LAtwRs+LcaMvN386MAgS4UvqBRFdl2QMfPepwctSB6RLfPP8DmPQnJ8htJuGdq6ycDFolce+ZmLGiIf2xbLNBBXcjvnnzBb56+SWGUe+Uf9yfgAdymzg4xXCdpdeEWNCyUFpBvOL46HLwhKk3oNDgqDtG27QgEpWRyQZ5llqsuBzLPbqBzPn5e8/y4Fr5bePnIdhJ8AQpN2NNJzihvzUG2AmuXA4WGHnsVOpA+L1oztEvV2i7fi/4uZUYCDvYfCdq/9nQuevCn1KOdlCjOF4hu31i9+3me5dIjh27ctpz/WrBAD82xoV6q7YnRScnCRMuiWPbTyatYOIlrrl26NpeOa994vflqy8B6PcQr9P2RvOFCWKCYkLPwHIgs0lkbkGyjmuXK9sbxpH16wLDoP9dbhgXo8JardCdfIqmW7qbk+BfJFXXBKVIjDxAIU+KA0nfVMx7zW8nY59iNJeE5kqI3CYhxjZAtlX27ROynXrWfiz0bXgkgjIT4rCPjIVePJVNU7TDvHsQ/Lb2nwpqYyrDobzCG5rY3OajsDjzbCNdAWnZkkLbmk1giYPUKEw6OZeusiuPfYvFAqAGdrtlSYqg+3d5xV0NyjI5S02L634NB/HgKucqv3lzFztu2VcIiHT8YRzB46CN51E/7GRMoay2Ed1iQ03cjV8fePr06f/27Nmzv5e71nfA45MRlwMAVlAEtC2wXDDOjhp8/N4CbUNomiv8f1/8W3z+6jeAGqAMaP3ZMVNxA1lXSvRu5h8jDE8EvZlEQxiHEQ0rDLTG//PNP8effvxnWOEYf+MXv8TRtyv8/rvf4SU/B1o2oKywdTlYKAiBwQYyMzCOISjr2CiXVSpiRgOFJR3h07Of4Zcf/FLvpp+BJBuB1dFJlmSmSuzL6i7ZDMQ166eXqYcDhnSV3/X5sZ0Emwpeow36Mtv49tyILLcnlvdL67Cv/NqP/wwfLj/YC34g8zlNI2mCNLjIBEMZs2TjMzTcLDNOw9pyEfm6Ztr3vrL704//DO81j4rsnAnbpLlLdiPZzXLCuNk+NeLoghg2rsvlmLHvW50mEkBM4GCT0MPg1378Zzii6/WdDP0pQvMQBldEuFCMrzvCSIx2ZPSjlt3GyHBgYK0Il63Cy17HfNw8wt86/RtYLJbo+gXavnOTO6UagJT+prWpWnaSw55XaJCVOMMXArJM7asFdR1oAAAgAElEQVRcmT51n/ntYux7cwL05/rb3RswWrBeuus46BNWCixWE4geL8Uk2rCeOxPo6BFU28E+/ZJTD8fSZurSMGUgCmboJILmVns9JH5Tsj8/vcTpDwvoJcc2Dz9nGNk+EaQgrhWwTD0cAlncaIpQTY9+uQz7ZNGY9QMoiDmSy7qyi9gB6dj3qw9+hW5s0K9O8fLyEjxeQoHB4waEcJWANd7YuYgdG/X+bYKpyDwukbX1gQlMBB5HEJkvgCE1B1d+0/z03EWsloIx4lCLs9MTtI3ZX2BzhatRLt2yIPSHGBtqzObPRjYs8y+Mn0Fjzkw6IzdpFHj69Ol/WLhEAP6DUryuVfjVT5a4GggghUbppadtQ2hbQt8BjRpxvl7j+/PvsB4uwMT6O9fG/GMVmWSOdmCnUFkY8O9N2fdGiUBKgdUI1SgMmwFfv/4Kf3TyKywXC/zs45/g9OgEX33/Jb58+Xus1SWaziq9TtRNbtlO5o2CmBfbWBTNHgcWJgZa7nDSnuKnZ5/hk8efYNEt3WSTg5EwFG6S8BZnSpe7EPbOIqzrqCNX+cGlMZdfKMaQxDVNBKEjJJ/bsgO8Lm+a9j7zO2sf7Q0/H4xdeFs/X1lfJzkY+omNqW8w2SEzvxLTZzvoCMPRobW99x49wvFydefs7LAs21XuRlFQNBMJ2ddycJ19gwoZO24mbYLbf0C++nUI/G7ed+qvEGzAGAC8VsCbhjEoXTi9IaHkygAP6LjFSXuKjx79FI8ff6DZsX1/WefFo94122RqqkuWZLgrPeK+UEzicpMicUPp/I2cSkPr/eRXbn/P3x+w+lol0tDlMvOE4mMzH02uFLJtkEEYVIvl6gkABR5HQMXmvBSEZENWaEJitg/INL8Hx6/UfzIzeNTLqt1KZob5hLSunH4a6ce+aJqYPC0N87GMjW+7AKkmSMAOo3E6pdWNlZ0XdDz2na1OsVlfYbFc4nWzxNV6g5bsZnS6cnLc0u/NK1jjrhgpPSH5QEPEtWVkcY0BQDWwDzMObe5y1/z03AVm2idIEdD3C4zjiM0w6M0GmwaMBoTB5OFX3/kFFRTCMYKb6Kl92WW7zbhtKwX+OYD/HVkVwONSJKUIxycrMAONsm8o6E8qEDGINmAovL54hTdXLzGMG1dR2/1b641fMm2fsOlw7pqNwYBiPUGxyzsI+v1HIoJqCD9efA919ifYDAMWXY8P3/8Aj08f4dOXn+Kvvvstvnj9e6hGv+fBRgHJfmFltI1LC5+I3HcljZz9XyYQExpu8Uenv8RHZx/h0fEjtH0PZZ6KxDGtSwbM0uwlDgM7iFsnOmfTaFwZ7cSW7PAausrv+vy0AS4/2OlGnQEWBppwkRK4ya7pqCK3z/zGsxHMuHN+0bTT8SSQm/QUSBUQUWQYMH/SGZGTTS6DfWaHx4RWNVj1S/Tv93fMTv4GAhYGAmRZ2hUcIoBvYZFxIMszTOhg+KmzP8FmvGHfqfSeEVcdgVrArMiE6wm5zO/x0SPN2/ZZiqBImaroT116oXqZEsgYYawUgcRC6sJ5fzHlgjXQAYKnGy8TfPvP75bHvhGM784GfPBaiQm2/o1vEp2z/ZyYZI6j/pLMAMKAFqNaQnVHOHvyMU6ffAIi/e5s42f2AQ8yB+5cjKuesw0Ttc0HzA9ODmn7g+rAPJgHB96Yah8IJUY32Tjg2YY5APZVSfd0kgDVnQCkEKxCtamR1xUxdansJtjFY1+rGqAZsVqt0C+W2FxdYBjXUKwfp+sHfKZWwdSGAB41cTLzHNmfwrPxp2wVRXqC29Z55uZFld/03KVRjSu3dG3bYLHoMQwbXK2XeNP1QLMA/EuYsJsjkqm/b8Vbbh1iV2h7QXm2JPGvAfy3z549+zfxhadPn35eikQAWmWVZ23K4otudyF+ffEa680FRoxobKchCk1mAHEKIpRFK4qyCbqMZXfkJgUENIpwOVyA1egs4GDGou/w8Qcf48mjJ2h/1+Lrl19jvbnUn+BqCFBmKUfwnpRWSs3GD5DWJNtwg6PmBJ+c/AS/+uRXaJoGqmnQKKUnQwgbbzgwZqjNJW/rLwdYmwP5sttOmYiCQVdmV/nN5+cSLo12iKnGvXL2NHB2EJfnIGRXClR+2/mVBO4NOJQEmdMMkzCxscCGKXTM+8xujSu0aNGQ0oNfT1jeCbsto1oofsQsw2XlVhfiFQIUhJXzLHecKcY+85Ntj27Y9hjm1Y2Z/DomqEFXzNZJmSdO+p8y325OObk8yR/7df/xihASC3rC8vrJsR8Vvf9h8rvNvvNiAeA50CwV9NMw9uMK2zr74o6jXn4+AhipAasOzfH76JYnOFqdYHl0jL5foGkbNG0LUq2bWLNpZ2TrZxQoZOxlYI3e2cUKld9k+7tYPsfmfA27kyRb0Ro5eDuaoxPI0r0+EsnY7y1g4jHQ9ieQ30uPDQO22bonrhlX2eXHvk41rl5HRyusjo9w/uYVxoH0ni9mLTlFY6Nta4G0Jc+Af9jGGJ6/vUat+LpE5XftuUtT2KRREaFtOywXC1wtV1gsl2j7I/DVBUADgtqZduVYibJIGUrHwW+8ciR124wC/yPKmxH+d+VoDLCxcMCDcwcMMDHWV5d6YwVbGzbLM4Uqm6HBqLv8Tw76HpkogY7LfgAaecDl1SV6tXApj8wgHtC2Lf79P/7bePH6Jb7+8Wt88/JrvL56havhAlBsFMEqMDsFdRtpMEFxg6Va4YPjj/CTRz/F2eoUTduYJ1xKTGhCRxNnWe98n5qEdVGiFQS2v5YTsdBVftfhlwh+lq8UwBZneZmZExuhlJbhVX7T/HJSm8Qq6nQzF5l0iIod+L6zU61yRSFTnq7r3im7OazyFEz9coaAKeMAu6mGXk7I4nri9pufbXumqgCP6LrdtL2elTYgKGEQIDJ7eig/0VPu5VEEdIX43OSV4D8paJHJukqWpryepT8ovGx3MPxuu+98BUJ/BTSteVDAAI8jRmYMRBjMR8BVu0B//AGWyyP0iyO9R0TXoet7bexRsoWaJ8rmfWRtcB0BsR2am4OwD+/HO83ZhnOctbgL/cDD5Be3v0fLM3zx8nf49g9vwOMrHc/2YrbKwfyD3W9ogOHkR244aKl1S2MUGAfzGoGXjXSaXZ23zB37GmrQqc4pfN/3OD45xqsXS7y5fGXqYmQj5QYKjHn2ekTVlS2ioPNjqwu6T1DdsZE1pZEqv8m5C5FZHSecqy/pVRZd12G5XGB1fIzFq9e4WL8AMICxcXMO2aQCo50uoBS4YBmxZkZ2mZxx24wCnwP4AwA8ffp0BeC/B/CnAP4VgP9pKiKbjF0Rna5adWGMPLplEe5TFm5EsBE9cqcS5sd9J94OLPaaOdOXyXWCIMbVeIWFWoayY51W0zR4//ETPD59hJ+c/wTf/Pgtnn37F9jQ2i23d53jaMozKtBIWKglfvb453hy9ATHixMsugUau0zSqjZ5pfaFlCd5l1yJPcJ+O5uA52At8Kb8BeWo/G6HH2WOgoIL7+mbDZEEU+X3Fvy8PClGMNEKpxxPt0GCZiaHZZKSjVLbY3ZLXkFOL0gXGE3Tvlt2QDBCuqYRy2zKRYYALvqZP3aEjcUcuX3mZ9uenNCDcev8OiI0o9JZmxt/RfpVAaW8QcBzCFl6uUuRR8vL7WQNZpWAWCHgxG7uIH3XaVLnUus7DH6+sLfTdy6OzvBy/QKrcQArwqhatCfvo18e4fT4BMvlEbq+R9O0aLtOl92KhgHm0R+7GwKSXaNeMWVuNtxsO5CZNLhxNL5azppdELfy8+1veYKjdomOG3z44Ye4urzA829eYxw3UKygb9cVvHhtewhROEmxa1buhmIY9YaiGxBADajp8eToDAAwmk3SSCkQ/LvaEqUTWWU3OfYpatA3HRqQazdd1+Hk6AhvHp3h4s1LjFdrsJnTMxNGa7CJ2g5HjGW7tJy9uHUao22q5rxZnvkVJoXxtfJL5y6KCI159TFQe1d++6pDg77rcLRaYXV8jDcvGgAK9vUfKRVGyCCQYcRUYnArHCbcNqPA/wLgb5vjfwLgDYD/GcCfA/inAP6rUkS9RBHRMll2IIiVtoAFJYaGrfT7HUrpTzZACpOh3/MguE9LwAmKDUSbphYm82ieWCi927FJx72zIuYk48ggUjg9OsXZ8Sl+8enP8er8Fb55/g2+fvU1Xg0vMLK23Jy2j/DZ45/j/ZP30bW9fgIC8ptBMEFRo+tin4xAZBY5ihS2GC7jUR4ic85MpYoWv8rvrfllwiQ+kcU8WEJZcnLwrvxuzE+MPf58os1NOzEoiZ6YoyBBPoSiLu0zO/f0gcJ8gXfDzv1Gg2Qg5qh8wTDIybwAyY2jqFO8gz2FCWfdPvNzMpBPWcj3Ja1qcXZ8hrOTs2vxaxv9WklLyi+XbBtnEHBtj3yegRgjWYYsQn/79CpMpjACuhvQ+WPk4fC7vb7ztF0B4wjGaHa21pNZsHz6qMU5DH45uq963JeZehFgdy3XeuD3kLCTega8bZvs8taYFJsbFMLEMishy4fFr21adKpF555GMh49OsPx8b+L5x99jK8+/0v8+OYPeB+ERUMY7R4fpn8beNSvg4AAaoCmA5oe3dEH6BYrdL3+ckjX9VisVs6wZ93Atj9hjOMIYr06RK4ekX1z6cbkIbLLjX2d6rFoeyhTDh5H8Mjo+w5Nc4rFosfxaokvf/87qMuvAVJmf3p2N4z69QEtO/cZvtGKjZ385A0mu0v6FSGAMAyMcfkIR2cfmLKQ3jS08pucuzQm31a1aKkJ2ksqOIYiQtf3OD09BvOIb778HOMAaONao/s999ACesGVm46Fe2EhZgotf2bWbZzz/IDtRgH17NmzjTn+O8+ePbNfI/g/nj59+i+2xLVFKXiz+W4jmdJ7QnLKBzsRFBMyMc6bExvWL32SKZimAQWFRbcADfbdEpGOzT1Yn8FomwaPjs9wsjrBZ8NnWF+tcX5xDhDj5OgEy34JZQc5E11PXpX55MTEDUni4sLEQ9+smKL8/oBFQFmCSUUNE4m8K7/UTdHKxKLJ00D0cjkWidBTpUkSCbwrv1CSUd6IeJRmMfHlzNNrO9IGbXDiVYatmT5QdtsMAiUnreuINqrz8wgrS+Hn/GEkIW4sqbwAXQih4L1//CCKoSeiQNu0W/m1ShsDtCHAMLPHTeO4ufq58kYM4rLIa9EF+5A5mFMi3GzQp+sDS37FFcyBOxx+N21/XdOiRQMQQZmNxGxr0Z9sJVcSNwRl5gxeUgQ3mTeGBbd3hCL4z5qF/aTfD4IEcxbNklz1tMiTO4+Mu//8bP/ZqgatanQ67BPtuhaPn7wH0J/guz+0eHX+DRbDgCvW+0GgWQLtEU4ef4jFUm9i13U9mrbV7bhpEl5uo0EpZSMYv8LAykTWNTM2Ft3DYZeOfQpd05qnzWGfpgigRgGLBd578gSbqzX++tdfYtU2aKHcZyalpHWZ3cgFOXIxoptH9qsE7G3jhlr0Rx+g7XrYHvQ+jX27m7s05hOCKttnBvnrWoAIaJsGy8UCbb/E+fo11AhnWNOrN1gbZ8xeBrklAbJ9Oj9mjMMIVs0kvW1Ggf/36dOn/82zZ8/+KYB/+fTp07/z7Nmz//vp06f/DoCrLXHhrEay8rZjB7DoF2ipxYbXvnJMptIEmIrTCNMabGJGaewhs8lNb5TjFIMBggIwAExoqMOyW2IYxac8pOBIlBOAnRBaK3ejGiy6BU5WJ1oJzIAnN1ex/5QZBJUKJ7UuL5uTmPWkajPRiXpNKjo/ZkbTZwEkeO8ojl/53T6/XN9Q6j+Djkt2Wj6tqc658pviN2EcyLlJgMY305acuGR+weiWd5Vdyi4xCEyJMNMs3JSITADRbtmWGVomQfcqhE+s36ncpjGHyM9OCoPJGDVQjUJr+R2dwD5Fbkh5Nuaj0kxmJ2gNWSdMosxznAzIECxkh8i++i4a+T4xYGt1xTPZVpZD5BeIrtT+DL/GbHylXJvyb/Ey7FN5JdJlM1+wGYrsmQFSpk7kOBCJNmwnxk4nwvL7NghXf7+fAJt8fBRy7fiB8Uv6TxvcLk+Ob9gYbdviyfvvYblY4PzVhyBc4WyxRL88Qtf1aFu9J4R/pcfrwDgOsE+dbVGD+zEAEF8ikRuBeg5x5ZCowMNkVxr7zE71plHY/ss/2GC0DYEWC3zw4Uf44rc9LjcXOGp6tJ2CImuMsTw5aLf20Nhr/JdIGMEXRLh7hLZfYXl8htPHH6JpW1Hpsqv8/D87Rrqks/ISBwyQUui6DmePznB5/hLjuEbDulwMJVaDsICpyxG89iMSd+3ZcB8nGG4zCvxjAP/k6dOn/wOAbwH8n+arA5+ba9dydrC2SrPsl1i2K1xeneurbP/BLE/Ry1RGRSAm0CgtR56mrZ5yG1fAS98qEwNH7TH6boGLyyEtnHyh22uH8dPDU/gOpL8cTFyJnEXc7ZhNkVqQzy5IL8w1LmDWd2p24y7FHYKcW225OZGu8jORrs1vi4y3oa38bpWfHWzdACOuldwcKXOGhZ8fSX7zmbm0Hyg7t9TP/A2MOzK7gBD77GUlg5DCOCCqAIQck9dBiMTq5enJkXQHwQ92AqkT8agimeuCwPaFDEAvPib9zWkoM3nyE6LpliX2b8hdlodusmnSnbxhZKkKPpfEuLvdHQS/Le3PslD2nWVERjaXBIHMjQUB5smwvt3UgcMnmMou9bVtVYk2bTaZ1IYCc13okhvP2GmfK77O29dFl0knwxyoxlZ3H/gZIQSXyYxtRDDv8QM0+nLZZJumwemjUxyfHgPjFZrGr9wAGKO+83cR2OQ9CmOAztZKQEOwNx9uNUFQfkqq4+twz/rOWxr7rEFAGSObfaUdUGAaQIrAoza0NK3CarXChx//Et9//Zd4OV5hse6gVg2YRwyj5KllODKb1wwAJoWRWtDiFKpdou1XWCyO0C9XWCz0LvharxpANRgGb5atbW967tIovUpATa0SCPo92/fpPJu2wZMnT3Bx/gYvvj0H7GaDFG4Wqosp9xMg0Y5F22V4GUMY6jJu0ijw7Nmz5wD+66dPn54B+GMT/vfPnj3766l4vkCZ55iCa98tcLo4w6urF7C7VoKh33sx1iFrDeERIMV60mEtS7BdD8zGGuSEZOQLYxYBj4SzxWO9xIoU0gUwFM4MRXGDGaaUpTm3yqGUMt9gJr+xEnlYIYbtNyTZDnWb48wpuT9mYmUrMtExV36V3z3iF9KyNzwkfK7rcrw5i4Sn+OUyruzC1wZsSuLGJm59uZzdEUXl5bR8uZtI7S/SMqOrexhWGuwPmp+oU1yBYBJiL+u4dlMxy06RuOXcagSjbFPgzBGs7FnkD+gbRhHUspWvFGgxkTP0FOdFB80vLG62/bnMLaFcayKQubtUhp9bgUE6hntXnAC3b4A1DribVRL882Mki0v+Czv6rzUABPVka7S4j+0vLO7c/tPKX5ECYzR5m+/Tu9xY7/Oht64zMtL1AbtnjFEhRH/L8rbFlluU041zXgcgDIjhzZGVXuQeIDs/9umny23Twj7hJ5byUwBG9wsQ2lbhJ5/9MRpFePHd7/DDsMb7a93PXQ6MUbUY1QJNu0TTH2F1fIa279F1C/eaSNu1IJO3Ne7Zm0fbN4+s33mfHHYfPD+7MkqhzRgEKDnwcrFe1o6jiHB6doqPN5/g6vINLp5/CdUCDfRmodYYaBPxez1lEg8qRlGfmrptKwUAAM+ePXsB4F/OCWsdE3wNozISAdpeRfjpk8/w4s2PeDO+MBvYjFBQbjI2jroLUkonal+jAAMw71oQaYsSw3+LkkcGRsYwADwwHjdP8PNHvwARoW1b6HcybEKi3Kk6B8X3DRTBIEiKzJIf3/nJp1yBmrkBefcuoxbiStlVfpUfcA/52fjXkulEDzor/vXCP3h2drAVRgATMyuynBTjgT9c2ROHM9NczqcfxOPtlB8kv8Z+gonMZEgF5PzfXGvKCzUzndKh3Y1pmszsJpifC+pkHgI/KHcjoAQrl0KSvj923GHbK8yKLJdJlHGSROBF4sQa56zG2JUBYYRp0A+CX9T++rZDq1qAGaxYPykezC7vzD5tIWP3vj8AJrHxmBCvuzmzpRCM9aHgEOiEfXoq9pAoT2Z81g+QXaMat9TcjYNC3vomzu7toMvIbrk94+zRCc4e/XsYNn8T4+YKwAaNUuiXCx1H3C+S2YhSV0HHt18ssG60N9Ygt1Ik6HAn+tiHys+e21UeSrQLN4ehKE1xYtuXcp90JRwdLbFcfIz33nuMr//6J/jiN/8KdLVGp1qohsDDiHE07dP2i9a4Z/wYjAF6A9GRFTbUQA3A4vikWN9ZRoGbOEXm/UL4glI06WIwFt0Sj5aPcH7xEiACK3PFKqbRBltRcgoLna7dC0ekaQ6ssRTt0OPDo4+xaJdgZrRtg3Ek8y6NmRayxVKendhOkACzk65UELsci0Q65G5CoqTCfOIs596D5Byl0eUSWADBO7GlrCq/yu++8aMgybSjzjqeEygs63x+efeQ2dlJpZtcZtwcc1wSwi4z95UV4Xwh46lCfONYerVAuofIz77uoQJumRStGDjyjFy5C2XEasGmjRIFUjA3PCS4sluCGYUM3H3nZ59s6SWuKojFadQ0SfL9qv+d0Udm+0ZRdydiLzcSDVAbCOR79Pls7ju/sP3pvrNrOn3vRTD3BkrfFLC9+feFt0+A9c27ri+hcQX3CzD0juxMnCkbCflLQwDgXhsyN00yrkw7V92Hxc70nU1jPlmnCjpNph1oI95oK2bu3tlsCdh2LahrtR5g9GmRrRe7T0YCQhtEo2SW10x7y9St1N4fIj+3sW7AMJpzTtwueHnaNmQMaqRADWG1WuKTT38CBcJXv/u/oNoGxxvCwMA46E+DDmjA1AKqA5oOSnXolidouwWWfY+27aGaBsMwYBiu0PdNlh+wI6OAtso02FzZToZgrZVSVDyOGIcRR90J6I0CqdED1yH8kpAR+vOqDG0NUtBLS7QcjWUm2miBAbVp8Kh5D49X74FAYB7R9x3GUVtSx3H0Sy/cEqq4PrrM8tdZQO0En/xOu1LFpgfLwvR2y/g6ZdVy0YPR3U6CzCn7Djn3tKTyq/xcSR8ivzBI1m21LM/kl8R9gOwCy7u4wZhz8z/flQbpsNwhOz2ZCa6LGVR2D4mHxs8wbCh6wuXiFtwWtNnLDFPPuIzsLzMFjG2tyMY1gEu6df/5kXmfXDmDQKL/hXPXl7o5vpzp5uTJySHFV1yS5G8CzA0jAZCvCMg9BUyVM/W97/x8+7MGAbm7uTd6MZSCMwo444B5/cKLn62gYYVuX4NzbUf30gF3d+ND5jqFOiZXB9i2xlb67Gk8VHa271RE0eoA0bbEGOUokIJSuh2wqae+zzfMXBxl2gfDtTb2rd2X17KxzIW/a2jm1N1AByr0gPlpKnKlQDJzieREmRNdPg71Qim3SoOaBsvVEp/+7Gd49f0XeHH1PUbVoFscgY5PcXL2ERbLJRaLFbq+1+UxXw7xGZkVIeMARothKH8nYEcrBbRygBmbjaFkFMT3DMAwjlhfrUHcoEWvYdGA0SiRAnmLEMMpDpv3B+3SNSLtZzsi3VAYGBSO6RQfLD7Asl1iGAbz/UtAmYGRmc1yHLvZCpCdKAYdnm6cUhHksmUfb8vMJww8z/HMdEV7tn/9a6M+fv61vMrPhN4u50jeW13ld/D8ZqU9k1+a8QNjJ/j5OCQiz3OloLnBPryQf5rtg9hXC+w1ETp3V/JA+CnJj8KngWEzvAZEL9i8d0YtNAI7FeOQHed0ycyci8W67/wIbdMEr+bYIsaylSfpJJdywRJZwqYdBfLGbJZN0ZfIijtYKUAOBRDrmU/kfvMDlNLfQPdGVBlBF5hAPg9pFIB8MqzbAgHmXW7R45F+nz29+fe/rnURXP0BESeCRIAxTFBhldX9Z+f6TmVXVW0f+7wfC6akN3dlOz75p9+W0cjs9IN5RCBErwEmHom5ZBjG8pR76eRfvXoY/KwxJxj7ZN+VijD0ygQhIiMjpfdxHcdQLwhYLHr88m/+Ka4uX4LAOFot0S+XaNoOViDWWCj7yWCjWNViZNKbRxbcjlYKwHyLErBLVthYY6wSMjPGYcB6vcb64goLXmHkEevNJfRymBFMSluHhDT1+1Js99nQ44ftj5RUDILiFh8tP8JJd6pzJtZfuIAfqAgE1ZBLXztjiWN2BlR71S3tUOkXQYMk8qeTvrOci5q2ymw3K0dksuE4uh7FqfxKp5O+s1zlV/lJfnH4h8puahB9C17FmFHDSdg50U2xS1O/V/yiehE8v0A2Lr1AEolsEt84iLg7zM4504DunkPP6SKNIX1F3gNRWtCwfPeQH5mK2YmsfN/VhohTmdePRiFkIHZ/Uu8oI4MJLEPYul57pcD946frZdhBvnfsZRGmQCEOgn7n2t70C8HZJ8TkAORujCj5lddsyG3GQD0caAnknzTfI3Zy7Ev6zty45w0sZQlKGZNbCQIjL9h/VtbiIyFEjZHgaMIHyXpA0jPpn8noQL4Pvbf8gGDuEs8L4rEw7l4pulDsS8lWjQCltOHMGvNMeY5PT4CTY4AHEAFNYx+G2drZvSbI18f8whgHnA2k4Ha2p4AucIPVqjGFHLHZDNhsNrhcr8Gsv7Y4jCMu15dQ6w7H6gyLdoOr4RIbXmPkDQbSm0goBf05Dm0egvsuJQGjfUpIDBoUeiyxwhEed4/x5Pg9LPolVkcrrBZLvSEO4Cd9WYB2aYjfPCccLEtwC41lu7TEcfbWYmsKxVQI2SQL3v565ZeVa0Fa4rjyq/zejl9ll5fpvKu52U4uTHgtYTcBqLa9Ar/oQpld4crWuFy8SoBcHZtN1l3fAvDe8rOVS6JSeDSvu5t2hYSySbvmmLbLJJBgVwp5b/kV2194Q+7D2ye65kZf3DBmLX4hKf4AACAASURBVCoFWbpU81104oJXA+J8tvB7iOxiuZIVRJB2KCT3OhQDRAP8ahBTSHMzSKZd6ZtchluLTz6cTV9/TSR1rtc1TVB/4SLvHiQ/8xMyDD22p2P7N4JiAswqD70xomDLownWgAC9usLUScs2pqYP9YoIa1BMRoXA7dAoECo1k0Lb6kJthg02A6NVDY5WS7xc9Hj9+hUAhhoVunaJpmuwoTXWwwW0ZZH852rM7pZ2OYsxYKHlBv3Y45hOcdweY0E9mqZBv1hiuVjoTTDskppcmYu1mZ5EmgpvSSOKWZwAZVWlmA7LgKWrFAaxctT6mW/elV/JVX6Vnw/39vwyKVd20zkU2YU+U+wCXCV2lAapbe/2+G1vq+U02P2RVzlJ1N2gxJPBiR3s7y2/ktxpuo+bl8+Es5GizpKj60HN3BPOyBDE4WE2u/vKLxu2CM+Vz0mWyN+kJ6tF4rf8o+tBNvJaehsSfunF97UEfXPib2ozZX6A7KZ45lpgPG8gZV+6Z5B9Skz2W/Rm6bgWvj+XRrYttXHN1wTX+eVr/LD4Ic8vCuja3mR+vpN0+4MoAtiz1f+UXx0CLW+/tsd8atStMrLyIsDoACf5pW5nRgHAyIH9AE7QlVgtl9gMG6w3G5yoEwzDBi9e/Iir9SX4EqArAm0a9N0SUIwBG4w8gNVoLB0sJmWEhho01OFoc4Lj5giLdoHWWLOWyyMcr47MeyS+TPOcTj8WX9ygylaXbQ18u9sWh5KD8KqcPPmwoiPPv5Sug1V+lV/lN+/6DfkV063sdsqOiifes7a9u+U35eKJscxF3ntSeCCmedMlqvxkmFtyUWcZpMv2xzc4Gcrfy+ry6425JrJ6MPyytXftg2xSNk0qEZ9BudBPuqOM/cadBsYIS7lQkgfLLrPiI2gzUQHMng/KpMwg/Y69WSZu18C71SLGKEQBH3mbOK0DNqT+wkA53MPhlxFCOOyhuGJAnISp+DGMDFkmdl9M8C9jwP2SrRzB6QTAznjgqs4m/lTHiZ0aBeR7DHb5wwiw3sGxb3p0XYeubdG0Cj+++BGvXr3A5eUlNpsNNhcj+IKhrjpQ32DsNhibAdQQaGxARilaatFxjwUtcLo8Qde0IBDatsfJyalTjGBX4pu6vA4EJ3MmHD686FBvXqrAyYmsb0RRmOg9vVJKld+29Cq/yi901+VXSqWy25be3bOrbS88mc+Pcj9v5UIDTmLJcWHkBnfluVHlNyfBm5eJ06PCRNsuh/Y3MmTvbSfTr/xyAXO3obfoEmMAuxP7pRayL2vXthecxLnosSce46KEAq4EuzpAGwZgNo+Eu4nW94qZtnfNaugV+yWpVH7WM+6jwvlEqVzyRh9wq3sU699x9H7IWDoIsBsLhimyKKdK4wm3O6OAVQz5ToS9YBRKKYXlokfXNvjs5z/D8+fP8erVS1xcnGO9XmMYNlhfXWE43wBvWpD5bmPXd2ibFn3XYdEvsFws0LUt2qZDo1osFyucnJzi5OhYf57Bb5tZLO62Rhn4m4NUDdI8ZBKcDXG7LlY8n7f/E1arUJrKD3ESlV/lt81dn1/GVXaIk9hPdrXthdfy/LgY4vZciR3g58Hh6wVUfq268oNM4vbbHmWOhGPAPUuO6+7eh6byvLbyM7K7PjEZY+qmMU5Z3mp6w5t/okxRuOLbOw+WnTiP8tw25JC5ySMYGwC0qLyMCc4+IwzZ19UO/cR9i1Gn8kvC+LiZVpqkly+rtQOMck8ItuENk2g1DiBsQE4pzEqPiQdTOzMKcGAp8ksZdPHN8QiQApq2wQePn+Ds5BTnF+d4c/4G5+dvsF5f4nJ9AbtkYhz1ZzXatkHTNOabkfpbrW3TYbU6xtHqCKvVEfquR9dqhRKlQk7ocxUjCTPhQZReyKbolGI30yVnaXdZ5Ca7uXiVX3yh8qv8ruu28svGqeziC3vJrra9rEfMr5jau+KX0SfJIo1X+ckLU6klN+2xi0Us71yC617GWi+iNI2hQN7o1v4z77HNFuDyzIYTN41TVoFiEfxdjq8x+2SD1wcyuVd2zjM37uRSZ7v5HghmiQD0m+YiNEWmPQGgTKNctlKbr/y8Z5Gfa36lvKxBVF7X7YZoNAYCyzo2B+n4bsWI61f9awWhbFK3Q6PAiJHZbA7h1c69l8EAiP33KInQNx364w6PT85MRRhXmysMw4BhHDAa6xMIUIqMgmglUaTQ2GNzbj//QfAdXCzmAFgWYGZgDF78EWjj97WC80gBw4CJ/G7LkdeT7Phcyrryi88rv8rv+m4bv9zAUNnF5/vJrra9Q+eXz7vyi8+n+KXXt15KK4K0RumTLlmiqT0FKj+y/we5lfIKHUWHM24Y43uuqL4sCmNfH4huWX3Uyi5hFyafXajurjuJCWNb3oB9DYuPiEFg86C69p3b+Ym/5k/U3RXkKAYuAHozQd12iOwKN2FwCZa8hYMdi3MW6U3h35FRQFqJTEGMP9xvSRjCUkmEvu+F9QnBdTtQWKiNtSAZlSBQcZlSgpxy16PjBCzlwyXX4oaeZniDlV6p4+xhJn/TvCfWT1Z+lV/ld013K/wqu8Nlp69XfpXfQ+JnotzMTXHLpOuNAaUMK7+Q14z2F3txOWzWxUEoTMatyGG4vQXydyWVXcwuNqCmqh+CI1AkJoLerC6qCE9xKDtyss5xqPzitkYUhYrTysSJUzZ2FB/IiEsbCDiWngmnjQEE+wqP/xoFTXxSEtjpSgFE+jZP+UhU0YpOKb/Qzyqcfr9FxCKrDvIcQTol65aHIv4mihCfh9eCtGOlSbKNG3uQSXQ0z3EUicIrQUC3kGhiJK/8gtO0lpVf5SfcjfllMqrsgtO0lvvCrpRe5SdP01pWfveaX3oWutI9Zxon5eee4E1kUPkFp2ktt/G7VgMsy5bcZYo9zEmGeGUnypbWUEZOS0XBT+aKl6YTF2GujMOk8zKp/GTZouyyaW/vOf1eOLl6EGA3lgxkrf1tVL9ah8vyMG43RgFn2ZmpELKfAOA/ROlCBNVgdvULBG3VwykK+Y4n6Cgjn0B14kYXgzR+WcWIlQRIJh/pZCRWyJzb1kvnl2K5uN5Qa8pozU4Fc1rl54NWfqj8dskvSQqVnfHae3a17VV+UTErv2yY1GeGfMXjzSy/XBKVnw96K/wyrmTVyTkKgydPPJN0KzvAli9/LuPlSybqHJ2TvHAd5iYOlR7Bu8wqPyDDSyLLsQwLFafmRBuuPHB3/L4MjoE0BMB8pjItT87txCjA0ABD9cmXolQ2qbxsrRupHGC/y+jUwykGzHkuJ1GqrDflQ1N0NVIGStKV59s6aJlfoDUzXCaQaJdu+Yj0IKC0A2XlV/lVfpliT8RI3A35VXaHy85GrfzifCq/yi8NWXTiZkFMb801wa+AvvKL85nPL87fVTj2m3AcHVFwzcilYA+v7OJ8trNLeCWnNMFw2jrA4oC2xKn8ZvAKukcK/KbIUj5A2jxtwPj1OAr9EmOEcLv7JKG15BYsS1P9EsXC4PCaXUISKAFIbzJBQkFMXAnGph0rDQVX4YRrZRwPdqGCmLCCXJJ+0tjDc5/llh53rqP40HcMbEx0pc7ZhKr8EJ9XfpXfTDeTXz63yi5If0/Z1bZX+aVZV35v7So/f74P/K6JNZCgNNDBbw5JqnRbUtkF6c9iRzlRIQqUd+lmA/loBCM/wjiOE4alyi9Ifwu/XLubOvNl0/J1os50hum+OWZ/hvAdjMTt0Cgw0cdM9j2RwEIvE9+H1A3CKIRTCv8fKE1PgpN5hMeUHgMZBfDhcv55pYhqm1WUQuXnupyixGluUY7Kr/KLvEz8ym+rm8uv4Cq7A2BX255IvPKr/Cq/e8Ev4z/LTXIzJ2x/6tjnE79tdjO4WfEn353MfKiVbbLWIEdBvrGr/Er8oprm/MKCTjhyqyfmNlNrpmF4WebcTo0CviTTS1Q8mLyCxzHJ9S0EIjjFUEJJ4nRS0VMk0IIyBP4ipUQBMg2X8vkUG/RkB509QWSKjYJR4g3AfBYGYifYCVf5VX5x8MpPuB3yq+wOl52NXPlVfjJ45Sdc5ReEPCh+GXYUh8lg9XeYmHSV3Y7Y2Sf53j9tY/KMXVi7RZ2V4aSr/BI21+aXOctfSuWclbzwvFujQKajCC5nNDhrVTGKYP2c1UgoRLDBRKIg8xpcqgzyOEoj2/qkf1g/mafMJ/JJFDYrPds65dUooO+rOfCwA6r9Zuykq/ySPMRZ5Vf5hX7CvTW/yi7JQ5ztNzuXZuVX+VV+gav8DptffCUTqI598nif2FFywTVH51JTjvMmzW7inlJEq/x20/ZCl2y1O2sFQfni7o0CAKSJIhVcKCRK/hqxCXCkSCiHCUFkwlGgANOKEQLJWYcoDJD133ZMPmKU/1sqyQR0L3H27w2RvLolgUJqlV/lV/nF11M3m99WhJXd3rKb5Sq/yq/yq/y8/73gN+G0xJ0VIEqvjn2YeXwX7EpPnXU6YpXHVqtAmFbld3N+4ZF32Z7QrdDwV9j80eXa3n++A6OAqJiUQ6RUcfWzimF+3TskdrMSpyhGOeIM3WFQgKxi5MKFSUWgtyhDYLmSx0E6ojyTSpK5Jpx8T2tSnUR/vb1pV36+DJVf5RddE+4m/KZdZefLsH/sattLjyu/yq/yC/N4mPwKdOrYh7tjF103joNnzWkkQvoaz3ajQOXny3C7/NKj5AWQwJfMtxwdZcYkvp0YBQixIBBUsHyNosLqc7s8xB4rpXw6QmG8vEOgMQhnbfIeXhkThUiVY3u6M5QjloGMEyhn3FzKrtRda4UQ4Vg389I+Z5Vf5SfPK7+gtEV3E35xjMrucNjl06n8Kj9/XvkFpS26yu/h8YtjVHZ7wo6A0MzjvACg+DnXyu9u+IWFsQeCn+HF5pUdVtOv7uz46wO6A3DVlZUNtSAUvgxL5P5ZiA4CUQhwAqS7LnmSbA4C+jUUpKQsto5xXQP/WLni+JGShIc5qOlIaa1DcvMQJsFkwlV+lV/lhyhMeuTd7fGr7A6XnS5m5Vf5VX6Vn0i58qtj3wGxo+hS8iZIwVV+e8ZPRiEAYykd7XZjFKAQoPWkuJIUnDkQJAJYBXAKgjTtwAIUHMfpxXDCcoUWnbRcMl0JcpaCJGUr+CcKk/qJ6gQu2XACiF4vESfu3ZNMSpVfPq/KL0iz8gvdzfjFESq7bF57ya62vcqv8gtyqPwqPxuujn3+2NbvnrDLxan8CnntE79SIsLtbKWABxf5R555iF7YisgpmxV8oASBxmWURKZtLjp7TQ5uRkFkuWT6odJR/jgAL8sYKZFM0xc0vJ5qTeAC/s4zWQQUDKrFZXiVXyiHpIyVn8xHZlb5Sc9pfjlX2UVySMq4H+xq23MpVH7yuPKr/NxP5RdEqmPfwbNjUNamE5S78oMIduf82P0tJCLcjowC5AVbqoSULJCEd4pglSM4FwL2OXp0QqgkTsLjuHxp3rpcUiF8mXOKE8SXeQaQKcg/uBYrUhJ+hksCRt8hZYDIq0g+3covyLPyq/xiIZbcNfmlgCq7IM89Zlfbnvev/Cq/UCpx+Bmu8ntQ/OrYl4kv89xTdlOJVH4Iyi1i3h0/TsQ+6Xa4UsBuCmHPkyoHB16IWshWWNJSZMOFghSSkxYX8uFkXiQUV5avpNBEcX4+HVdeETZXp9mKIMtaCiMKEft7JeA0uDixl6cUpfKr/Cq/3fPL4avsDoNdbXuVnytN5Vf5ITqu/Cb55fBVdofBrra9A+JH4WVKEg7d7owCJve4AFIw/lz/oUSoqWJIjZRJl4QcK4b0nVKMAGygGGWlC/LIKkiUVpxO7rzkl3FxHtIx4LRCNtSpXXwrv8qv8iv4ZdxN+BXTqez2nl1teyLtys/4VX7Y5pdxld/D41dMp7Lbe3a17Ym07xE/YIefJIwLmAo5uAISAta+UqIxfHHgghEoCUkiWARNKlngF+UtlEHWI1BqmUdWKSIFSc5FmkGQXMvK+Bed+SwFI6gDC43I9dGVX+VX+b0bfrGr7A6HXW17lZ+9VPmFRa/8Kr869sVlvz/satu7f/ys2+knCV0BYklIMOZPUTEiRUDkTcG1SOixME0+WcWQKuaUZUoxpIJIZZB5iXDC05cvVogM9pySRNedS/rbsIxWWeYrl0il8suUr/Kr/MTxDvhVdmEdDomdS6Xyy5Sv8qv8xHHlV/nlUqjsMuXbf3YulcovU7795rdTo4CzRiRQQ8WQEgtFmVYiFnTgnxF8sKtklF5sIfK/8mJOMcKyxwouFTY9FukUz0M55aucAZx4aW3xBiJbVnaXJ1aRVH6V30QRK7/E3YBfyVV2+8+utr3Kr/Kr/Cq/nFcd+3z6949dbXv3l99u9xRAprwkfqRw8xcRh9BnkYrJaCCvlDINC5lkGIoURJ7DQJMK40sjN5dw5aGbKkemIeT8XPnnumsFzsas/OJjm24ok8qv8kvdjMCZIJXdgbDbErPyi49tuqFMKr/KL3WV373nlwlS2R0Iuy0xK7/42KYbymTf+AHv6PUB66aLSoFOUOibCis5pNTfekmrj1QMmQLJPGXk8Dy9FipPogwU5hPAnWkpojjQNR3Jb1YywIjqNjedLVcrv8qv8kvdFL+56VV2+8eutr3Kz16t/Cq/yi91dey7n+xq27u//HZuFNDvMkgXdgr5wqWg40vuJDp3p85ClNGWUhmigzj7AHasrO5MKlrOzxYlSj1WlKB6qSC2Wo6CJSJhSyKzrmRqCYlIpvKr/JJLvjDheeVn3C3wq+xiP1uU/Wdnw1R+lV+uKJXfhKv8Hjy/yi72s0XZf3Y2TOV3mPx2bhTYytd40NbrlA1PsUchjYSF/PV/QEHiVhFScHlLVqgYQosCpZ1UElfWGyhEWMAwBakszvq1vXlXfpVf5Zevw6SbyW8qycpuv9nNSGa7X+WXKWvlF5xXfpVfEP9+8JtKsrLbb3YzktnuV/llynr3/HZnFKDkoBQg8pqWQAxCRqXJPI1AUq2QV52Xhy8ziZREKkbwIxSCMn4oKUW+7tP1munId8JyA4py+G1hKr+khJXfRJ6V32x+ld3hsgsuVX6VnwxS+d3IVX4Ph19ld7jsgkuV30Hyw85XCmwDPREukGwOgAgYEYuFGQpdLO2Q+cTpRooXK0msGOTylUpQWkYS1SCnFJQtVRSveMmZh3JLSWjGDrBxnOmrlV/iKj8XsvIL05nHr7I7XHbTeUcpFi5WfpVf5RfnWfk9BH6V3eGym847SrFwsfK7S37vdKNBVxuKJQ8HSQowFHB4JIUthSgVgygUPEX5k8yTfFlkzlIx7DHJspCI78oVpR+VKYgXiCdPO/WebnQySBiSg4vpez/b0qz8Kj8TuPKbdjP5zXaV3d6xq22v8vO/lV/OVX4228pP+tax77DZ1bZ3f/nt0ChAE2dbruQCZxOINUQqQhQyPk+iCVWkICURLk0kAZzNID2eoxiUJJZ3xWAcH1JwkWKvfKpbSlD56aQrv8ovujCH33SKW3Kv7HTSte1VftGFyk/45xOp/Co/nfQd8ZtOcUvulZ1Oura9yi+68Fb83vVKgUmXl2JSdgr9BdIJKcmQ8nQinxx5xEoi41OQZlCuzHGQJsXnpTpki152E8oIJjBNb/ZyPVf5+fNSHbJFL7vKL5/KPeJ3O66y8+elOmSLXna17eVTqfymM6v8CnXIFr3sKr98KveI3+24ys6fl+qQLXrZ1baXT+WB8NsLo0Aq6gKsyXORTnSJooSDywHQjEJQiDvrtoLKK5ou23bFKCvDdZum6IgJIC6X6zqu8ovLWvkF/pWfcbfPr7KLy3o47GQpKr/KD6j8yq7yy7oHzK+yi8t6OOxkKSq//eK3c6MAg+FsJYWXGay3u8wMTt69MFd9oHxiOnqoENmg6bsdwZWMEgkVgnw3JH4LxgEWvy4E+QRlGa9tNbpRo4wlut3iV/lVfkGoyk9cv65L+U25ym6/2dW2V/lVfpVfELLyK8UKzurYd9jsatu7v/x2YxQggMAgUoKLF4aXjxSwiB6VWAqKyJ+79KSQJQyi5DzIl1wMfUyxyiTYXUFduaNCBBtc+FhBeecdy1LIg2mtmKMzDGAcRygVtwCfSOVX+YXnld9O+GUSqOwOhF1te0EhKr/KL3aVX+UnXR37bFIHzq62vaAQ94KfcbsxCjAwAiDmAKxWFArCpYWTpEPVIUkxCR8mxBHmUjlnSTNfukn/UGfKmUw2iuCACv65NEv5iW0nFAEcKrMMVvnJ38rPn1Z+t8ovDlvZHQ672vay/pUfKr/goPLLVueh86tj3+Gyq20v63/Q/Izb2UoBBcI4jqBGwZTC1FEQyZVLXo8WmPgrIVV5NQlDsX9YzlL5s+cU5RzreV5PtZeIRAQvD4THOWUK+VGYxYRyp5e8xjasF3DxmI9Y+UVJVH6Vn0j8tvjlglR2URJ7yq62PVGGyq/yq/wqv+KlOvbdB3aKNbna9kQZ7gs/43ZiFHj06PG3/8l/+p/9bhdpV7cT9wt5UvkdnKv8DtdVdoftKr/DdpXfYbvK73BdZXfYrvI7bPeLnOdOjAIXFxcfvHz58gMAk8sUbu549qnLnpNg1Rn34YcffivP95EfV3hFV/kdrjs5OQ3OK7vDcvvU9mJMld92t/f86rxl0lV+h+v2aeyr7K7rCB9++EFtewfrUn7W7cQo8PLlS/yv/+yfmaUVN1COObOYeKXJZKDJzJLTu1ckFn/xlgXibDpKKTAzSCn8o3/4DwPr3s34CRA3mYVms9mWdyafPeLnjt6SX5CEOaj8duk4Pbpxoab5/Zd//+8Hoa/HLlxmd2PhySQCz215p153zw7Ydf95e23vlvjZFG6BX+HKO3a323++M35vYX3J85ua3BTy2os2eLv952Hys67yeydjX2XnCxEf3So70rv839O2N3H1Hbnb4lead5b5WbcTowARAEX6tY4bJzA37PzL+eJQcnp9M0begnVz5ZLvj/BbzhcJlHmHi5nBzMCYvlxyM35CardoJZzml3uJZ3/46aO355frMKf44cHxi1K/bX5pDtdLa4pffO1a7OKX2W4svBIK5w6HnSkIboNdPuLttb3b45eLdhN+pbSm3W74ASyObujeJb+36Dfz/LzvLH7Ge+/4vc3N0kHz867yE167GPsqO18Ik8pu2OFet72JqwW3r/xK884JfsbtxCjADPAwvvXNBbk/2SvzyvJWJZjrYsMCe9+3th56Tc3d3M9LItyXUuoKlxSn8jtYfnhw/IDQqLE7fibJayZR5pe4ys777Dm72vasq/ySbN2f7JVZrvJD5TfLHSa/xFV23mfP2dW2Z9094mfcbr4+cEuO3R/vyF6h1Hd/HEEWPDy7gbupUmTTMn949zKr/Iyr/N6xq/wqO+MOkJ3MSrrK7y1d5TfDVX4yK+kqv7d0dezb4io7mZV0ld9bumvw20ujgHsfJacdwJQpaY8c5X5gTUjXAm3kEVp9bqgqBBCT09hdSLHyi5Oq/N69Owx+t+0quzip2vbevav8Kj+bVOX37t1h8LttV9nFSdW29+7d4fPbnVGgkGvWmwpXb6AEaZS4B5pK7xoC58nTCUf2/zD2NRUm2ciDgdmL0+eItPIruMpva7aV39Yi3OR6ZXcA7CbCVH6V39ZsK7+tRbhpmMrvAPhVdgV3AOwmwlR+B8IPO10poEtwvR2R3yKnSUWam+81ypfT48TNhX4LCkNAsDFRydoWxIkbTpQgKr/Kb7ur/JDwm9VZF9+9q+wOg11te+WYld8cV/mh8rtWuDTo4fIrJJZcruyKidW2N5F+5ZePM8Vvh0aB7cCi8GRuhKLNEXad7+06Dg45C30ibqAMM+JObFxHEzJgZm1xYkZJ2pVf5XcTV/nJ6Nv5FaJWdgfArrY96Sq/bfymp2KVXxi98rueOzx+haiV3QGwq21PuvvDD9jVJwkzR4EPJT76aCbPJJyV0FsqRSnZG6WQBTtlBcopwxarUdyQZu5u75agFES1e35RE78FfrlYld/t8yMX8ED5oTQfuQV+wKx3vqb4vRt2gKtVZedjvCW70Lvyy6X4kPkF+Vd+lV9SCu8eIr/KDgfLLvSu/HIp7js/63azUoDIkfY3gPOh2cLHFS0+PS0p6Vsoy81ixhajTIolpZkdnsufdbmmshStRbviZ9P2Z8lhXIzKb3/4mUzjg8Pih9wgdEv8IAcuE/q6/HbJLspd/uSK8dDZ6XRLJsB33/bClCq/JEblF6d+DbeH/FDux6b5yfQqP5niXre/yu5w2dkCVn6Hy8+4nX59IIE4FZYoUaHcIFGOb/PJKKL1TsInqWT8CiQm4NvDfOlzinAdJaCo7POVRTY2ItLLScpR74BfIb/Kz4c2gd8Nv3lxfViY5lf5udA35HcX7JgzbfYBs9Ppyv5Tx9nLtse26VV+YdKVX877IPghnr/oONv5UeG4nEee39z4qPzywW/Q/iq7/WQ3d95Z+R02v53vKVBo9pSEjI62pD15sxkrhhHN3MS3pSe85yUZw8spQj5crAQlhZyrLNlGU3C75XeN0JVfGFoG3jm/ia6/BCX2enD8QuNbEjrmVxLhDtn5dCjjF3pUdiK0FMYdtj2fR1ieJEblF4beI3658lR+B8ZP/qn8dMjr8LujsS8pT2WnQ15n3lIKpwMX0khCFpKr/OT1d8kP2KVRwFqAtjwttmBtdeYIfPKm0gjep0f+Aqy1JIrwVs6DmGvhKUPmyXRA2YhB2sypsiSh3IYTxfa7W34+4kQAmPJVfkmoO+Yn4+Uv2oLKcA+F33aZS37ZIXHH7GTc6UC2/6zsfDnvvu3JuNOBKr8k1J7wk/HLASq/JFTlJ9xh87ursU/GLweo7JJQte0Jdz/5Abt8fYAoETtF14MLnMcUss/XJPvUS3hR6FuIX74eulgZROqT0S14QtliRNl0vAUod8MoLU3znjpb5Zm+sXt3/IplHjGS7gAAIABJREFUoS3Xk6LcN34AZ3qSd8kvDLqto6/8pq/bcubzEQFuj10Q+Zrtb/a16bS9u2/s3kHbCyJfs/0F2VV+Ov3KD6j8ggu3xi8fpvLzbh/HPp9sZZe/bstZ2x5wGPxyqwZm8cOO9xSQBZkMY7UDusDW2lSyjtx8AkvGojJZmGxsVxSeqwxhzBJ4eb0EPpVhSSG2L0Wx12fJAu+e39T1t+HnirPX/ABwuD0IRRWyRoI75Rf+mZ8v0VYr5dS1g+A3sw1aflNuF+xsuMmBkGy6UaTKLmB3F23PhrOxC4lWfhPX75xf+KeQd3S98sO+8LNhK7/DG/ts2Mpuet4ZX9+HeadPW8eeff3e8ysbcOLrc/jtcE8Bmpx3ulBkTEUMkCI0SmFkBjEw8ojNMADQyx4UKYAAZQRCRJDZsBP0CAaBSEFFhXDxrl2f+GCOK1uBnOazXW6TXksVhs3/JUW6nkVpqnHdLT++dX6uprfGT1+/XX46Icr5uzp4gd0ZPyKQrUOB32j4kSuhLfSB88v627x0AedOlEpi2DU7bGGnv7MbvnhlDyo7iDLdTdvTcaf7ThCB2GXl5F/5QZTpjvjRHH6q8ttTflT5ZfLSBdz3sa+yy+WFw5l3Vn7ZvG7rvg/Y6esDtgAT0gxMFgyiBuPI2Gw2ePXqNV6+eoUXL37EsBn0cggDVilllIVASkGRglIKXbdA27boug7LZY/lcol+0UOpxuofpKbfVEm2uymIYfXTNpRTGGF1CsKzTycAX7Yo2fBEW8pX+W3hxxkeJu7O+Plrh8SPVAOC6bAPnV/WH7gpv6zbI3bKsXPV3V62t3Lz2IEJPIud9t8Fu0Noe5VfnE7lN+3ekh9yT6IeNj8HrvI7uLGvsgvD17Y35faXn18psK187+D1gZzTSxhs7Qk8jhgZUMx4c36OP3z5Jb777juMPPhK5tYbOcHayb22IqlGoW1atG2LTz/5Kd57/wm6Rpm8VSgQE+92nIEFAhK4YbiSdSerMIzZE6Vpi20YXm9wcf26V353xS+8dnj8tOU36JQPgR8wu7O+Pr/rubtte7tnlx8Yw3CTxpyMf87y/vDaXuVX+U25W+KHfD95Y34slzUfLj/Gw+QXvtt8mGNfZReGr20vdvvPL6j6Fn47/fqALUximRFlIgCjIvz/7L1JkyxJtuf1P6pm7hFxx7yZWZlZVZk1vNcdTQ90t0gjQi9oEGkB3gJE+AS9axFgwYNPwA4REDZs2IGwYNkLWIEIgrCCTW8aHo/X8V4NWZk3q7LuPEW4u5mpHhbnHB3MzD0i7lBVmWl6xW+426Cmen6qR48e02F7vsH9r+7j6ePHCCHofQ7kKDcM+h8X8aTCgfycGCOGbgCIcPaXf4Ef//gn+PTTz+DAEt+eAvFmHiT19AC4vM5M54BMC0zhDSKaHkugLztmx8fH0pnZFH5X+QEm88PXvnN+nFVN4lcdS2dmU/iHy8+9I34pgW+f35XrWj5Wxy/89rRv02PfcXaHo/pDYrfUvTpjC7+FXx3X1du5PfyIQLPPXPhNM/b75je1MSVfS9t3OHwT2S11r87YHyI/TI6lcwcM5He++8CswEs4zIjMePrkKV4+f44YY1EYIxApGfmUbs9xksU1Ap7fFlIqVKTDTyZpSHFdp3Dw6BflwnrtMranF1MdZtTeJCsEVjH2HZPjh+e4zITvKD9L0/XCFfmh9CRewo9QSWOqOC5J5DeSHy7PV/GEyZHrlvEqLpr+fgN+VRpYpk7QKC65cSY5C7trhLfIjjHiBPW272G3Lyz8rhHm+dUG1sLvMn6zx/aGPyB+ZZs24Tf3Bmzh94fLbzrt7iC/b0nb9/thZ/H8ntjtCwu/a8bzdvhdrc93BX54Z04BSsAOBgYiA6Ef8Oz5E3R9D2bx+DBHOOfgHEQgDDDlTJonqiwYXMQLAjhGtKtGC3ttLMwVqPS15L43D1RdR3uvnS9E+6HXd1J5zegR48Kzf+7J6HlcxD9bkr9F/Mbn0jNoevra/OaM05yBit/M8KDX5ccsuf5O8ZvJ4+TIFfnlMcr7+FXZwBvzGzVbJb9pPr7B7K7EbS7Pr8lOOxH5fkt8cdl12FVin2+0v9V173fAr9SdZnTm+zM/FGxem9/4pm8zv2uFbwq/MYeFn8UwOfIN5PetafuuFd4Wu3xTyW7Sobw2O+scLHVvPvxh8hvbnK/HT8I7cQoYvPRjHGw8AwHMjN2uw8X5Bfp+ABEhBllgQrz8PsVDKgwtEvKXKBk0HKNeSqmwNE1bJcyOl3pvIiAa/X3twMloLcvI4Y6EXVw//PKCUF4/19kpjumlVPxfhm8Nv0Ph0mtyh25cv/dXULtv6uSpCb0ZP1r4XSHUMhzHbyKtFW7uCF6dX75n37MP8xsl7ZvM7i1yk6zuZ1e/Rai51cfHztS3ye5bVvd+B/zsceM3H5aACb9qnYExh0v47b3vW8rvrYSF33eWn3ZArs7Pjr0uv2navrvsaiPzcnbz1086lFTK+ip251wbutS9y8M3n5+Fd7jQIM2WCwDaUZZFx5gZ222H7a5DDBEMBkfBx8IajghMUhAcHNR9BDaXU8o4wzkP5xyYGd478UCFCLB2z4lqYVlqtdCNsjD+ku8Y89gnA/CouIwfMC6q5fHLwrgTY2mbGwpUFrp83f48fAv4STam4rpSuC6DuQfuu56K73JP1Uh/F/nhbSrpK1VORcyjA6XBpHFVch7zG9+TFfOV+O1J2HeTXSFPXEJQ2cl1asyOuYFGEb1ldkvdq3JmsZXx7g3Gbzxia8RqfzlY+L1TfpUM99+z8Pt98xt1LkwoB/kZG67boFEH5HJ+ctPS9l2X3ZxdmeudPu7AvVSbLcCo3uX4xjzn4lnq3pvzG7/8/ebye4dOAedkxdzJwxmQhX+k8DRNgyEEWTXSN+DIiDEgqsdou90mD5LejrZt0TQNvPdoGo+2adF4DyCCHCHEiBgZzpHuedmLOHTfdPvPwJhhmdJchH7YoecBF/0FXnUv0HEHgHGnvYuT1Q2smzUIHq1rJ/dOMm7figIhe2tyIaoxeOS8q9YQ2RWFJOl2Tt+TacZSYLPDoCjAB1ZE/CbyI+cmyX07/ApFMqrMkeNeRcDFf9V3leE8P/pu8iMCOfMF5/Dm/PazA2TI2jhMFfo1+QETXvv5TcM3lZ2cyYm+KrvGNSPuh5lZiDGmu3LaRgJDqW/fNrtvUd3TNy9lG3Q9fg4lrMvYAYwY+ZKO53hhpoXfO+FHTTKMk1QuYQfQJfymdS8brQu/ffxysula/CZNymX1CpBO2Gvxy+eXtu8tsENx7yXczDKUDnQ+Nr1uyq5iZV1kU9RL3SuSfR1+HpXVMyuWsl2Ua7lwalyZHwpe74gf8A7XFMiemenzy7faBKDxHic3bsgwEGbEGKVwxAjvHIYQqgLiGy/79xIhBAbzgMgMRxEUCEOIKqBGn6dbocGMFRWUFQhNb5nmbtghxAFfnX+FJ91DbPpXYAS9jfBg+xVav8bt9g7urt7HzdVtHPtjOPLwzs/LxL6NVkOmmW/je4uJCCNhouhETq/IaoRG1wJ7bsE3lV85WuB1+RF5NBN+halFZQcRcHDgQhbjuw7aVhrPwo+K78Lw9fk5NK5UaxYnmwgrKOZdTmIr5F7BMwR7jNrX5jcJ31B2hfD6oXstdiCH1jUTZrM8AF2huBZdLddab751dt+2uvem/ODQ+iZJfq6+lXIiF/ecK4WXjd99zvCF39vkZ8N2D7OTuKYO1fqa+ual/uHStg/0Zvwa43dJvSIA8bX56fml7Xu77Gb7DSP5aHsW9wmpuC4LuhxSnllN6mMpayx17+3xy4ZJSgvNCKi6flr3NOkz8nxb/CS8G6cA6dAPTJbYgtmOyWPCjMZ7NI28LSIi3b+S01wRPwy6CIUWDu+kcKh3KAwDui6A44CmEc8NyKUCkVe2zOlgtTfLt1x96AFEdKHD881zPNp8jSfDA8ikFiTDl8GIFLCLF3jUbfCke4i1O8LHx5/iZnsbR80RPHmsm6O9AiLtXBJT7pTMhASeCSg8bclDlGwBq/hp6a30f60e8g8mVHL55vMbfgf8VCJX4sf114Xf75FfIVVz7Ci/yLGSudI4aFe9PX7fBnaMPoZ3wK7kIbI1OYIBR9mhU0qbC6FPm9el7r1TflzXvQm34ouDq+RSnS76HmOASd0WvBZ+b5vfWtlNuVmYc6hW7CA2y8Lvd89v5dfzyu8AvyKRWZhzERjSN+a3sJtr+1Z+vR+aysU5viK7KQVr/4jehN1S967Pr5Btya9keFndA94dPw3vZqFB6EOr1ACk8xuqw0TwTZNBEQHOwbEY5c57OBWeLEIBcAQiIhwIjXNo1ysAwG6jMZNcSxp/jKFOIOc39TFGkJaUi+4lHp0/xOPtb7GJF4gumlUjQqZMTjrr8j1QwIYv8KuLv0KDFsfNDdxu7+Lu+n28f/zBXimRGrBUWLF1o4p0jJA7lOXR+qLpsen0ETlox+cKx8LvevzA2Nd2Fqp5qioXfr8vfsLOZOEwnTZUqtUsL/tGACLeBr/x2YXdIXYmMdZ0zrlutF6WWKpvM43tUvfeMb+ypCs7lcm8Q/VATybxKyS58Hun/NIbpkLcYMkza14tdnkWH0C41L/fHb/3U12byFvzHHUC96QTVwr0UHVMQl3avrfJ7t7R+wdFPsdu0hZO2OV05DxhqXu/B37yZlBHytEMl4lk95x7i/wsvLuFBmla7W0+i5nkBDHI27ZJ3p3x9Y4cvM4VtwYICobSK1eZR9K0DQBGBMAcUyURb1OON+pcKo6MAEYXOlz0L/Hzl3+BHoN4kLwWAE3oSOxFA0m6/gUj6L/dsMWz/jF+vfkCn/V/jHvH7+NGcwO+GtY8jtHkVVZtLQwJ8rj51Zi0cCflMPLeF1ZYcR+rfbancCz8Kn4nzQmaat56jpiKjO+zccX5U16cL1z4/T74FXFeZviwNbjmlHt7/GbDwq5id+yP0fpVklvtE78kzLLLw2aXuve74temm+fsmCqMRa0j5cyOKWvfwu93we8IrV8lmY/ZTaR4Kb9s5Sz83j2/I3+E1q0m9wNTh3j9LDNcUHSGCgZY2r53xu7GHnZFmLzMKB7GYOmMU328umape783fgQgggDNv+UvP2z8ZEqyt8S9E354h04BGhWOSbksMtS2o2RY48EyxIPYgcDF2iRUPIMhHhcGOU4rVwIqJGZdTIztIJzz6IcB57tXeLZ7hCfdQ1zwOajJwpX5KPYsGuVBRUr7RCtvkDve4Rfnf4Gvtkc4ae7gbvse7h29h9vtXRC5nBOy2FGNBuBUkYoKDofyLaXNmwEC4tADUSqFI4JzDcg5RCa5DYTIOd4K0Cgs/Pbzu9XegSOveZiXX25Q85AlWfhDPjHW/AgRMQxAjADbHCYnQ/zIazYkLwfXKLHDC7+9/G42t+FdU9S92RhS3bPGSBIwzw9gIA5JFlkQBHJNLijKMByYzrmw28/uRnMTjTWy+9gpr/3s5ObMDiAOYNa3B9ChfQyQc/Igc+a5gt1S9+akf5Dfib+B1oY2XxLqqSFI/JhzvrMRGsGRQdDjmt/EjTLDhR9em9+xv3FweLPVKdb0lnKUZ4otMl7gVcTBWmdzftlSrPyWtu8N+bkTrPZOa0WqM1L3xH4Bq72oMoODdL54fC/gnCnbrEOlk2d1L2JfyrNcF3Zz7I7cyd4pyaVNz4mXvRmXPgWBdGRrrTvTPSNjlpBMWCOa2S11byZcxu8Y6+Y4XV05dQoeVvfE98FFng0GTXhN+JkjhZDLxRX4Ae9sTQGS+Z7FCqMpDWxDrrNXo12ttGOkw0iMAhXbUjhfCcg+zkHmosQAcEBERIzS6AzDgKZt5XyI4EYEdfbwz/Hbi1+DmwArcUQEijSqGKSGCKYVhpALB6WswUQPQAp2Q9jRFpt4jkfbL0HnwNFwgn/0oz/J3qFCQnkRwtyp1KohBi0HcGAM2xfoX34N3j5DGDqAg3rIuIjTHiDzTuSsxLW680Osju5gtZ7xQi78LuX3b/zoTybs5Nt0QLNzADOlVVFjjIj9BsP5EwybRwjbV0AMYARQkQ5M/4ABRCY0tz/B+vh9rI9nGomF3+X8PvuT4ilUxJENWS6exZCGKnIExwjudxi2LzBcPETYvQAPHTiG3M5yUQ5GDCMz/K2PsTr5EISRd2Bhdz12WeC53pgcUvxTdrE7R2/s+h049hgpZNGXI8s3MuBvfg+rk49wfOMEk7Dwez1+qb6UZqSlRNLCkPml3G8R+y36zWOE7TPEfgOEHuBYIOQpPxZ3ur/9CVbHH+Lk5MbC7y3xG9eTSn8mfmqs9x142GHYPsOweYrQnwPDThKhjoGUnuqv6OHm7g+xOrqH44XfO+OnPRJVpw6gHDuHHjz0CN0Fht0zhO4cYfsC4JAZFixRlAUGoX3vM7Sru0jTUhZ2b8CufOk0w87lhxAROAbE0CMOHUK/QegvMGyfIQ47cByqFxs2t9/4MQir9z5Fs7qL4xtL3Xsb/NKLiyTjLLOxbeOIZPRDZMQwgMOAMOww7F6AQ4eoHw69sAx9krfp1PbuJ2hW93By49aUn4Z3u6ZAGayvSshDMxgAMZwqnXSzXm/F3IRHpdAhnSwiAtmCqwOStyd5fWAdKfFQMhhfv/w1BkgjRI4AJwXAwwFOF6pwpPdGMFPKE1n/Qb9XiS4XMCMADgixh6xeKTngCJx35wgxyi4FudaMPK8E28LD8hxjAEUGxx7do78Ehw3AEY5MnkUhKuQOxKQnAJHR9vHPsW3WOLpxZ+H3GvyirpBaqmNzrleC0u9uxG/z4F8C/TnAAcQMcgBYh1eRybtsSqHKX9w63dNfoX/1AMONuwu/1+HHEa7cwlLlk+sJZbkTqUIOoBjBMeDi4RnQmSEUxefrsvDSOAOVsSRP0ufA6J59if78MeKwW9i9DjtyKY70NqSUe4pd8hm1noEHXDz8S3D3HMQhGaZElhRKcaZ4UsOq7J5/hX7zDHH7HsZh4Xc9flzelN6QcNKlxo9tDmgMOH/0M8TtUxAPIGLZDNHqGLJ8kyou3po4ZnRPvkB/9AS8m877XPhdnV8lN5N5YeiCAAfSk8IvxgGbxz9HuHgM4h5EUqfMMpbbypavfHsn33ePf4Fu/Qjx5sLvbfGrBGh1h2QYt6Q9giIQQ4/N48/RXzwEwlb1J1cD2Rmc9Glac8IcBWDsHv4Mu6PbiKFb2L0xu6Tlqq/WQZdjDDAj9B12L75Gd/EQcSe2i/Ej2KayInCrc6n9U3bbhz8Djm8D3ffGJWfh9xr8LG22NpnUO0r5N5kQR4S+R3fxFP3FY3XkbEAcUb5YSuIsnOzMUNuHsX30OejoMaj/eMLPwjvbkpDElSPJSg18ofL1LXiCnNBrSIWJLMZUqmwoEux/cnDehCiZJ22LrDGJIcA8PH3oEDkAjgGn0J0DtQDp3rvkCExOAZrHU59LpMOkNKFFE2ZJixzEm8MDmB1CkHR5eO0r2j1ZZrkywBx9VfDkEOIGuydfgOJW8ku+qAgWK1Xf0xNMQRDgHYH7DfpXO0zDwu9SfskDUMp4RjkXPxwRwrDF7ukXcMMrTY5LRiuDi7Jhyik/J+9Cofy6C+zCduH3mvyqHFvdKAVQsZUZOEO/xe7pl/D9c+2IkEzvSAIz47j+K5qdUsPYOIfYncuUkYXd9dihHipXdiJLpUkgmLXqImPYXWD37Ev44RmkISdkXZnTJNzMIctZjmrMNI4Qd6+wGTaYhoXf5fyQ+OXOXuaXa548jzkCMSDszrF7dh+0e4zGKpLGE9kWh4I9INXntJ6LCq3xhLh9iYt+4fc6/FDws3vrFxqZn7zMiOBhQNi+wu7FfWD7SPiRtXE2CkTzXIxZzihzqfAE8O4FzvuLhd9b4Fd2ogiUFooUh5xDjANi3yNsnmH34tdA90Q6DvY2CtYZSwgqOdZOWtGt2D5HHGqnwMLuuuzKeqd1iYrh9gSEMCBsNxguHqM//y3QvYSTPjBgCwByIcFCP7MthFecAyJo+wKvukV3vim/cnSO1Dv7rrqPGX23w3D+EqF7irB5AvSv1JHB8MQmiIxHk2VtnvhyuHhWAO1e4nxS93J4x2sK1A1HehMKK7zqdaG6UKbcVUJUlUX5Y+fE8eLReI8YAzgGONLtKzQNQ8h7TTIDHBW4dpIdM6IjOK+PDRFEEfBOC1Wez0ZEgO6XqSpREwowIkIcEOMAAhACyRCWKNuekXcgcvB6v2W6bFRTJ6KSJ4AwYPP4S4SLr9E4zYfemNpSjGSZFpkww4tU4cv1DqMVOhd+V+Pn9/MbB4a0n6Hb4uLhz0D906Tg0iIq4BHDQrNzcYWesq7Mwu8d8EsgChmA0W9fYfPwr+DiK9iwtzQkThWxNEw256vAaIo7NdpCcDKEcmF3Bd3ZjNjlPNqcuzG73cUz7B79DB5bkA1xjNZYkhiqLHXMHAJpD2CVqUSrMgTD8dihs/C7Cr+maPuyc1XHeKhs0gr2BBBHbF8+QP/0V/DUSdtnulONnvKtii3KmzVormWkeRB+/cLvjWwX05uWH4mv4geAQ4/t0y8QX30NR0MaUZV0rtXBBCCLkzLQ5KwjckAc4HnesF34XYVflr+8kU1WYsWPOWLYbbB59HO43TN4F2b4ZVbJfinrYfkc1qHhMSAJeWF3LXaFtFDuU8+w5o81rQEXzx+je/JztNihoQiU8+dhsi47jSrbskRY2iEjR8ABGK0JsvC7Pr9sJ5Zy4CSKGHq8fPArxFe/wboJaB3A3pgUliPn1xoMoHx5OH6WIwfiiDj7MlHCO3YKuCT85DXi/B6UbdgFmxhoFIce0f/SMI40dFR+Oye/fdPADT0ikWxp4XJ8YSgMOHteURE4MsIQECPBeRKPEWTuRhquovFFALA9MAvLnzmKJ4ojAF3gj214I+VHMtLQ5dyoThVkMkYZcBxx/vwhducPsKKIcqrA3D0mv9Qwjyo7EY+kXYeF3yX89g3hSt8L5QaAw4DzJ/cRu2fwCND5AtPbU/5gUi48iFnMknRrFBZ+b8avynWGkbUuwtDh/PHn8OEceaFPYZzuKKwksv9HfMTgEsWdt7oZpWBhdwm7Q5oLiYvEyxi6Dc4f/QIrbFGcSLKezKcdSZNNXtrWWoO71L3X41c6dOYCl/xiRHfxEhePf4m16y2CfbfCRGZyTs/RXlDlP1r44fX5lY7UQo6c+THLYl8XLx6jf3YfKx9EjqBkj3As7h0VC7L8mSNVDXvRncCcQ3XhdzV+WeeNHOLKz5xtMQa8eHwf9OoRVk1Q3Uew2sVGqnDscAnRaiGh4EHjPsvC7srs8uPLdsvkIZ19qX9h6PHiwc+xji/BHmAPEBzyCLlS1yaLReMrtCghveQgkk6yW3Tna/GrzMuKX/FWX5l0mw1ePPocJ00AO6f2okvsUptWFQKTD6fFF7UXASJd8wFBRhnsCe/EKcAMdAMQQwZMRPA2BwTWYDA4RvT9IILmdDbFRY4AW4UyFRBKhaME552H9y1IvUXycXCO0HV97q6lR+gRFewQtQApc3IE18j95Kn46wCn3jVNc4ZKYPbyEOb8NooVTmB49qjUpybIPFhcNqyayu35Szz57c/RxnM4T2gbnTYAq2gyKgZUVGi2QsllWQQBUnHYwdHU47fwuwK/pJyV10ghS3z5vvOXz/D00X0cUYd169A0SAZRMl6JYNsWJmU9NoC1ZyJOJQYt/N4Bv+IYpBP68tljPH/2W5z4iHXr4b1OGVC52dsWFNKTtySUDSLLMkQ5ky+9/gu767JLejOx4sxR73NEeP74a2xfPQG3hHXrZd4g5bcO0NV8YdMQNFVVL6Vo0IVHA6LpKJ2F3+X8koRT/ZtnKPcxnj64D968BK0c1q2HzlRX40wSnd4AaYrMEDKp5gFzhDxSaOH3+vwOMDR+ADgGPH3wBdruArT2WFn907yQDkEXfjk9NtonsystGH0buPB7TX65pRq3feXoGwYQ+g7PH9/HMW9AaLBaNWicS509U40o2j9ohzBlNvXRrK3E6I33wu66da9u++JIf0rytpsNNq8eg10E1g2IPNrW1sGSayIDkWzaKqU2MNG0zCfdCdGdmI6SW/hdpd+X5WAMY9Hemc3JDJyfv8KwO8c2EMAN1qsGbVuMcGWASUYkqLVZWixQnGngJJQHOQ/sGSUHvCOnwBAZ9x9sse0BjrIQXuuB4xXh5Mjh5onTlSMjYggIQYZcRLPIigKS9IkWDClp9rt4KIvnSAospNFwDs7rtm4se1qGqIVBAUh8XESjwLUR4sCIhV6Tv7rIXOGpYYZ08lIWcoEg7eQRy9vJhmRfTWtQc6NapE3TIfWR0Pc9+r4HIaIBA55yO8k2P5qKNFKeV1KlXT3vRUVb+L0OvzIoQ1M0JUMlI/wGeB/gKaDx5oFVfqSC0cbV5i8zj5+j+aD8tmXh95b48cgpUKSl7wfsugDfDPAU0TSU2ElwSMPdzKDlbMvy6IniAKJSwAu7a7LL3YTCGWBpKJRePwy42Mp2nw4tjo5W6XoyS0AN1mwU5biz0SKXUWHcjsPC73J+cmuWsNxSd0zKCtMNA7ptD46AwwpH65WsISC5Fdk4Q2UGbiGckh9UdzKBMAW48LsCvyqHrDaw3JPqYBH6IaDfdWB2IOXH5Zat5EAux2FRM5f2i6UpZ3Gpf6+rP8cus5HuHBEchoht6KE7q6M5yusgmWxkC7mcr4ndYnWQ7OkLu9dll1omq2+p3qGQs9zbDxEOPRzJNuVtw6VwVCwqHx7XXH1IeZRI7JtFd74xv0q82nZJnMaXMQRZoNU7wHuH1UpHShJkJEBhrExslkquhTwloxN+Ft6JU6DrgS8fSoMNFQgR4Bxj3TB+9L0Bt06AGCJCCAjRGviY8lg25GXHleyfFpDiBGxfd7nHSeHQ1VNlHkhqUrLAakZVgUsFiAFEpGHcTEAzpJAdAAAgAElEQVSMDNLFckrFihGHVKiYZGtBZnjyqBVz+azcEbROJQgYhgHDMMBhwABGGygNa2Gb50rZC8hA4WFPOUoylC8Obrwl2sLvtfih5FdmSv+EIWAIEV0c4BlYNU69oQCDdJ6VDO2ilJH8jOSRTKdk4RVXynDh92b1bxxHkaAQAobA2MUAxxGtepKhQ8UkLcpvVOWKp6ijQOqurW67sHtNdqRxpwaVs7yLPIbA6AOw3QVQYufykEaW+X7J6EgirDskyclHBE4yWfi9Dr9kvvCUX50xmb666xmkQzRz3WMwIpD41ezyH3srk+W4zyZa+F2BXxZy/qT6Yd+znREjo+9l1xaOEU3j4LUTWTxF5pqXGUBmWbWqB5w6C7/L+RHlLFr9s/tKxwAgIwKk/smcbQ4BTePQ+Kw/QV63kBObU+ZgGz+1W9jkqf/xwu612NWXJRlX3zinIwRGr3ozxoi28Wi8LaInNqZL/QhlVzGTtJnYJC21bBd+1+OXH5vrSHmvxRBjRAgRFCN2WllXbYPW6/P1etObKTYGSqdfufCk6cxDUzDfiVMgMmMIIjyvnRtmYBgYw8D4+lnE8VEDjhc6dELzaB1iyyTX8VohsYIh3uIM3hHBOTE6nLmS9Zq2bRMp7zxSeRwHRi6dnOsFGLCXE6nQlLdFTAoGZq6TzlytmKvr7WupqckhBFHKgQMGMHoCnJfGVZ7vssJNWStVSNmpJE2HFJ5xWPgVPK7Ir7q1alzlnhACWBVzD8Zu16lx5KylrGSUycgDyqwaP9kqb+EHvCG/8nR6HKcLGCSr2AIIkdH1Adst0DYe3pcjBPKb5+TAVUPJfpCuGEtqRC3s3pDdqHGv0qJ/oiY4REbXBWy2W6yaBk2j4xrlFVcykrJRIo16vsaqqshnrl1d+OW/h/ile+fYoT7PUdrAIQzY7QZcNBus2hZtY05wNcxSxFlf0rh8mPzUYByHhV/+u58fJTbjysfVd3MTEBgeQxiw7XqsLjZYrVq0jcYVI5h8dWfGpvqyiJiIwG7eKbDwy3/38itsizldmu+ybw4Mhz5EgAe0Fxus1yW/IfPjVMXy9/SFVXbKbySDhd3l7OzZVORz9HoqXcDapjEIQwRiN6DdbHGk7NLaSMqOIAOuoiXCKmHBDkRp+t04LPzy30P8Uiulo+USv6rOiN0SWcgOQwTzgLbZgdfW9tndur0v5WlYsoi8pqXgZwuc/86dAiaUZGBX2wUxLjaM7S5i3djlhQBrl5EUQqSvgBpuwn2UMS0ozom3SK9E265xcnycQDXUooNtqTFuxmbKjBUORtrmQeJS9arnkwFCuWCz5YmRVnQlt2+Rs1wP7V5LSwgDOA4gRHCUVTU9RyBV0AD4AFmMQxtMk5EpfjOe2ArGTOEFFn7X5Uf5GXP8mIEQeplshQiOoiQ5OkRP8taECM7naSAEVYZJuXP1OHk7xphoUGDh9wb1D2aBcsmPEUIPYnnTzMzo+wExBLSNg9ehalSseptkwwbEYreE8WyncmH3JrqTqlXPAZm/GIJMuwKL/ut2PeIQ0LYeTSNvuSgZXMbPxJkrdVrAiOYymvO78Ctiv4QfFdcTkBcC1BBjRIy2n7YYnrtdjxgCYtskfrK1a069RSHrriCvraNtYZ7LOs3vwq+I/QC/kl06VtRBAim/PBoxMrDb9QghIK6a1LEkiihd3yZKq3J1Tm1NpHFmsfC7Cj8y/SY3lVXO3qqag5SZpZPI8hIiMGO764WrznGWmd/RhJQeTgTbEbbIKWd+M3ld2BWxz7ArHXK2UCrbw1m7l5TZMRwiZBh9jIztdgdwBKe6B3A0dvYyg1Mp4EKmqVR4wswA44XfVfmxynKs28b8YoCMPJUXSAMDm12X+DWNOgOQR4iLqGR0QFTbJbkAVcYySnJ+9wjgXS00qMYYOUbI7qAksW0X8egF40cfekSyt6hWrik1KLafpYXsKaLie36ucw5N0yZPEjOj8St89L2PcfPWDdhCt8ftMS76F5M0TwLZG4V8lZDPdqHJ1gpeKshAscKqDe/QwunaqnAUFijS20Rk/x9zQLd5Dhd2IMeIEYhRhwCxdSoBDgyQVnCrPAR4XaXTFlxnZvQDo101GLqpkb3wuyK/4r4Uqb4apmJ1D+aA7uIZXNyBKCJGIETZz5UZsiUKAS6E5IV1+iFHsv6ApUmLSj8ENK3H0E0b14XfVetf/dRCt8v/xi8GdJtnoLADUQBHkvqnnUwXgvDTxW1kWxyC19+ZXW7E+yHAN4Rxthd2V2EHWJs8Zqc5Sw1xjAHD5nnBTnTnYKN2+gGOkEbtOPsQIc0osFzqA7ohoGkIYWY30IXfFfgVMcqtxW4d4IIfIww9ht1LkOpOAIjBoeOAMAR4L3qybX1yzjkzKC2hVlhEOFL3vD1v4fc6/CZPJKSt7FLbx4yu2yH0F0DsALIXGjY0NsA7sV9Wq0b46QrjpDYR2zArsmwR+kHm2M55VRd+V+dX6Uy9iVO+pc7sthvEoYPjAOYgnZMgbeLQ96I3vcPxuoVLozfYEibPcaUctf5VunVhd1V25ZOr/FmdI0qLBu4uLsAxQl4pRThmdAGImx26rkPbOLSNx/FRW4zE4awuR44bAtAHwBOyt24ki4XfFfiNFKj100qMDEK324KZEMBpUfItyzTyXUdYtw1Wrcd6ZdNKCqOIyHafzDllYIjK70A49Mrs9QNDvE+pU8uwhTDsbz9EONfI6pHewTctxHtCxT0WIWknbD435ZDrvLK0eE+OT45x585tOJ99lt41SXYlNInL/hs/5PCBsaEzU9TkPAOtz4WjKPozShJq2EYM3SYlkFzpMcvzSfJHvVrQkQF61LLmzFACp7k44wcv/OZDxQ/z/EZ1Ufj1G4CLBR4TfBp98nNM7uCCnSMxiMD6e+FX/rpe/Svr3J47WDqWod8W/PRqKrglj1uud5Gjcogg4mQAiyhiasTGz1vYzYfMjjCpZHseFWNACFuIvCnLqKx7JG9IYswrIzOs3jEcAd4RGmVHHOX4XPO58LucX/WMfVdLxDEOiGEHe3uV7Sk5Ivs1k7ALws+iJIgB1KhjtfFA4wBwACHOtLhY+F2J377ccP2XZFs0Dl3Fz05af4EZCCHKvt7W1oHhnLBrHeTjSfjpiLvZ+VcLvyvxy3cciJmAodsBsQMh6vtI1jZOtqYLqjOHEBCjtHOOZMs67ygxaxzgieHA+gZ0Zhz3wu5Sdnv7c6k/YD8Zfb8FuFd2UdnJavcygi7qJ0CIyjtnp7waYniK8oHozBgGMM+w00ws/ObDYX4j+0VMEgzdBjLCUW1IxGRbBq1zg05LhvJ1xHBOuDmSRc0dgowXIU7TYOemf1h4J04BBusqk5LgBJqz8PrAiJChY433WLdrALIvqr09pyymibQruFwA0e+W+Xvv3cPqaCXGnt7TkLdU5girslce16u0pM5CN48oRkVmFL2dbP0qXzvr7R79jhGh31XJywUwX22VMEbpkNiclBCjKAEdyhd0IkzkuXclC79JIvFm/GIMCENXxZ0dN+VHj0WG7H2qHRRT5CzHLSeRebZyL/xmoimyUvOrrph9RgwBYegxbp9sWkfhDJdjUfbnZq1/IhPOcnWz3RF99sJuEk2RFWNXm0D5pgm7YUAcBtD4+qLuyXZCUGMppCHrrHqSSBxw5MQpR7IYixog0xQs/HCQX5m1+nKufoFlgd0YlF9ZAVkiSXcw51WtK3bQOaf20aHLe4zNhd9MNEVWhB9NLxpHrjIb+h4cBp2ik9/0Wcw255nNTtHOJSvfNHInvQhBqn8LP7w2v32dk3E97PsdOMpoKlnLk6rOmOlOjoyYHDvyhFzndCSk1r99HZKF3Uw0RVZav9rXP57kjgEM3RYE2QWA0ifrUVb9yerYAeR81peqO8kJfE1ptUtI9fSF3ySaIiuH+E3UGTPCsNVdI6SjTvo3iUbzDF3XgIybMiQ4MDtEJoQIBF2UWdanm08H8K7WFADAiGBVGLb4gwBkMMmCFENgNCRvq2/duYVut8Gmu0AcguUSzjmsf7DCq+E5OuwQEQBiHaLr0NIKx/4Et3AXz++/BKAFkYDWe9y9dxfOOQxDEB3GgCMvMAmoVrABivZKB0LxqN83WxnyXysgPDqfoyCs/DpFKnMeCVRsPyf354oXY0AMPawq1xEXlSclOJVl+wmQdiDt8iirgCLMl46F30jMxQOuzE9DDAGs26+kmBm2cP2II6d5tSaHQNoxgTWo8qwYY14IbeF3TX76S+dxUaozPOEn63mEFJcoY5aFXYxXkXiruzKVNiJoh4bYFiJEcvQs7F6Pney/Wyi6IgkluyEMYC7YgUW2lJ05edSAhMgRFB0i2W9OnRrLWIzjlJZpXvhhdNwesPJriXNU7ybS1B9h6GEWjJlz6cNIchZNXOhFkOZDFjVLu7QYP8aBrtHC7yA/WN3LV0+rotwZhr7gxlmOoNRpMH7CJYIiZDhjtA5JpVnzsxb9+Qb8Zi6eiXjod6BkRGYdapZoYqnnIjOIo2xeyNAF5zi1ibY7j705Xthdlx3VfYB0Mdd/AelUjpJnEZvtycoEWhcjtAMK0rntRSeaSJZu4SjTA2bCwq8+P8dvLjKGPDT/JcRhpwsCctaBVLRb5hHRE+lnUVfT9doWOi+MzAk0F96ZU8CSxaogSJWENAzyiRGAFwVx+/YtrNsG2+0OF5sNNpsNbnxyhJ89/wvE7SBeSkfpbU0g0gEVPbbDOZ6Eh/j40x+i+yrCOQffeNy6cQtHR2v0Q0gNUFr0Zt4eqEDm7wKJJkeRSoKhnohaGy+GdUCAVXrbJRHQqChxdbM4BbhYbGkuJE9gmTGq8wLIfD8GJ29fnJsYW6Zl4XeQX71Mjz3Lvio/G+JjmsNSwcasCFRMQ0iaJtHLz2L1yob9ZWLhhwP8NA4qbi5uMRkD4hSoVtah4nziZZ0OndRDhXJmYwHI4pBSk2Msl66dJnxhh73sWBfTGTfGk7o3DMie0SLiPPHPsInjBrUxYHMGo7EjXenFWuC9YeF3SHeyCXq8smDqLGjdG9ShYxYRSkPI7jNuLutTvSwyg6Lmgoq0M9I8zX3SWPhhnp/K2HRc1T8oOnsMWRMioSueKW/i8sE8rS4/myGjB+RZ2Zxmq3t7HOILv8P8QPZ7bLug+C3PCkOfYc9dy6RpyP+svYtBzpftYNR2MFXCPZJY2GEvO6iDmpknt4icre0zdgDrWmW52nBiQolvXliy7BQn553exoxJn3rhd3V++/Sm/c31R0bolM2epSqN0BllKkUD5FGqKTl2X+HomQnvbqSAFgAUibTCAdiciIiV7mTinMPxyTGOT47RhAaPn3yNr579EtQMcA6AjWCRCUup5RdUBNcCD/r7WH2wxoc3PsGnRz/F8fGRFBSnhXEIGIZB9n4kSp2uZIQk2Y5KDtt19QIY40sulQkYBIfWjYaRFB0IFV5VwWVBjrnOe7EojFVA1HHVRq7KLSlqniiWnISF3/SaKb/Zjn0hU2btVI7G61hdr46ZUVQaXfYD9UPsCeXKznUSFn7Tawp+JtK5VyZjfsOgc+UOh7JTaW+V85DZSZVPDdYknQu7mWtqduYYSBXJOniV7tQ5zcmpNhF01pkwdsXfUb1mi1SNp1l4WPjNX1PyMxlzga+ufybrMT/OEY4q1Ihb4kc5D4Wlu/CrL7kszPJL9EayNPlBR3qkVKpDLZssWbi2a1JiRyYmU5YyMqtgtPAr8ndJKPmJTcHJ7rROiEXGBT8boZqSMtOWpZSXbZ5dlDDUndiST5XOhd3MNQU7ks69tU1Vy8ZcsZPdysqk5Ro7SaTV6ML5U/RTR7q3+lXHtvCbuabm50hGYdhC8mPZpWoSByTKRaeOMq4iDiriyfHZb7bfVFywJ7yzLQlNuZSJlfImmQyB8PJiwM2jFjH2aFcNvnz8OX75/BfY8jnIM6glSSEhLa4HV3wvO1FEoBYI6PGb+Ct89eJzrB6v8Y9P/334Bsmz1m867IYtnKNkJFBpYZR/kvALA4OovCwpylRP6toKFHEzMzx5HK9PkDt7SIWkliGn7Xy2568AndeFogiM3lEmGSeZFM+oDFyCDsvj6XMXftfjp/GSo9wx0WtZ13LYXrwCONTOGsqfCUPkhrV0DFCCgKS8Z7uqC7/L+SXBcxrmFlMk5tFmcGTsLs4BHelhPlarf1k/sxWG4nhuSihx06TNvnlZ2F2ZHQEuSpyps6AdBWlYpe7tNhewTmbyjxc6skyv1UdHWUb5fOF+JeiaLQu/1+LnSN40RQKcLkEXS6Mot327zSuQmlVpqg4BSDv0lEnVucvWqSz0syVasu0Q44B9C9Ut/A7zk+dLTDL0mDCg5CcLmMXI6LbnyHOYc32RR3Fu5wqG5bz1so0s34zFIO8LF36vyy+vh8IcEFP903WnlN+wE37W6rF1UCglLzOydKKWT06U6mni+ZcZC7vL2RGlbfcAgEPNzhYODCEidBuQc2IlWofQOOnj0k4t9kyu615CoVxyWZgJC78r8eNicXDhl+0VYRd03v8AkIyMyMLkJFNn+Uch89zUad71sNpA6diB8G52H9CQH16YyQSY0T1E9aE4wlePv8Qvn/4Cm/gK7CIiGLakWpHL1NibAWCrTjKga2EwyAOuBXbtBveffgHnHZx3aBoP731dqDk/gArZZw40c2x8qDixxwNqBcu7BqumGIJX5CslqGpcA7rdRlbcnXl+bibrJJcOg/yc4hHFvfvCwq+8bg+/VDGpuF8rOUeEMKDvZG/Y6qGM+vd88spM5q88c3zuroVfcd0+fpaf4naGLr4TMIRB5lWmSKuatj/QnqtKfgfwLezK6w6xy7qT7Z/qzWFQdjacp6AIjFdDnwmXNJ4Lv9GJq/JDza5s+8whEMKAoTd+80mqErKvvs0evbz1W/iV19X85HkEe+slW5fldk86JgP6vkMYdnu4jJJZMCRLS6FzeZSX7JqdDwu/8rrD/GzesjnCRXf26HZbGSkwkzizffJ3GiVxf8dxfOXkkoVdcd1M26d1LrGbqXe77bYaKcCUW7tU3ah0nM6lr/xVwL6kXVz4ldeN+Wm9061znSzSoPVukHrXddhuZZFISVtpt5ijwkSTuUySObEzD9c7C+/QKTBW2lnJm5fZSXmGb1p8/vQXOI+vEBHkLQzqoTDzDb8UutQwpb+SM9cSfvHwz/Fk81ggeIJvfVZMhdBS4bVDRcd5rh/Gds1sBcknyi47waFxLdpGtkQrh8kl0KzGbYwIg+wF2+90S62xeMdhJJ9U2MlkVfzcU4jrByz8rsPPnmaG7TAM6Pse/W4D6DZmWQA55pJD6SzKyqp08Vj+rtJjWfhdiV/ZMbEGNkqnsu86cersqSzjOklFng6Fw/gWdvnyS9i5sVErDoG+77Hb7tB32/2NpUZPkwum18yHfScWfvnyKb9kxxTGUc1P9OZut0Xod1InRzKnmU95fi5Z4zq5v3Oy8MuXH+DnSn7SJsUQEcyw3WwRddcd6QZYfCaCbOgnhjNIsn+AZjnO5mHhd4CfyF12UnEgJx0TTs64Ht1uh+12Cw55+sdcMId6abPsVZd1Ng6cXdjtb/uUnelO58DI9a7vOuy2O2y3G6BYYHcazG7d48zZ02hexnbhd3XbxXZVEX5ib3adOHS22016u58FUYdyiiONrqKZ/6n4/1B4Z04BZnlrI4kuKIABdli1wFHrQOTw/NVzvIwvwVRsS0FT7W9eFyokQaqJHBHIE9jmoXiAPOHCn+OLJz8H67IXbduAeg+2oYO64AoX0HMmii9lcow9WwHh6h4uj7M1ZJLg1q3QeF/ni9SjRlIUk2E09Oi6XV4BtkydaeBJosdGUn1pKvzT26qw8DvMLxu2uZKTCE63IJTGdbfb6XaSpVZJ0qgYzf2YYznN3zQs/C7nZ42iczlP9pa5V8Nos9kIv1T/Dps0IwpZbte5a2F3OTutd45c2uKRmRHUkbPb7bDZXCAMu5lWvJbNfqIzHZnDN8jphd+lbV+pN50Oh40xZn5brXuD6U6rS6NwqGpNOKng+PCNC7/L+GnHBJT0J8AIMajNkg3bOO5UWr4LAjT6lLQmbIq79jlWF36X1z8YO+XHQOGMs47lttp1Z8wk6cYki/qciGqG4gGP+MLu6uzEKSfD4YcwoOvE3tzttth1O8j21YXetP8KXmYDlY7ay+qgcNp3fOF3adsnSddtHx2Y5QVit9uh2+2w63bouh1kTl0tifStYFcpUmT9Ogm090cVDjoFTk9P/8Hp6en/cXp6+j+enp5+enp6+r+dnp4+Pz09/eenp6d//9C9BKSSY29PDcTRCvjenRY3T1ow7fDw+W/AJFtO5D1oc0iyL1qO9HYvzTNRQXkCPKUFKriNeHjxFb5++WuEKEK+sboJDupdKuLPC2TkkrBXfzFrAckFJ9/ORZ6h+QYcPE7aG2h8Uxm21RBY5tQpMeM2DPlNZda9h7oaWYap4EySv8fIKkS98NvPD7DKlxU0SOYaZ4+feGzD0B1sCPdIv/pJB3nviWHhd5BfSrM5BiAdE3MIbDeb3LEstLM1dnuV7yyMwoiC5fHA5Qu7w+y0Y2KOAZDsv9upI2672UinZOiQNvJFNQhZ5SyfgyhH5/kAuxzvwu+q/Kx9En7S5u22G+x2W3AYtK0q65/+vUL9m7vkMk288LuMX95aVfLiANZOpdosu50YthyHKk1jdklchBlY12nxRnct/A7bLvq/6c+yY2Kdyr7vxCnAhe60vJpYKFuitejG7EaA9+RtYXc1u5OgHeKSXbdTbj2Gvp9PBI2+jn9XJ2zNEEu7nd9fLxd+l/T7UOfDOQJHTqOKu67D0PeyuLXGVwq3FL2KoRRPPr+34bus9bt8ocH/FsB/DuAugP8LwH92dnb2b5+env5jPfcP525atcDdmxG7AIAdHAFNAxytGbdPPD56b43GE7zv8Zdf/Qxfvvol4IK+sUPVyTLIlCw4VFJg1NebB4a9LEbj2SFQhz97+M/x9z/6hzjGDfzxj36Kk0fHuP/4V3jJz4Gm2ANeqRFl449ZqgezvZGCLjI1FTCr4K1QETM8HI7oBJ/c/iF++sFPdX6LVOzkHIAM4eq7DhcXF9htt9h1Hfq+R+w3aHjGoB2FXCikUJbDS6CNuDzYasM89IXf1fg5ew4BxA7MjG63w/n5BbbbDTrlx/0GHqwqNjM3iaROpjavxOZppfR31CtJTp05hgu/q/MDNG9O+XUdzl+9wna7Tfxo2MIhwsH2q99f/0qq+34CttjNNP0Lu6uwY2VHIDMoVHduLi6w2WxqdhzhqGZHZlGgqEeJUdLO6SCzylHr3r6mdeF3OT/LBohEJyq/oeuwvbjApqx7QUYK2ALUk85k4lWzm15UKFzOeVv4vR4/WPuk/Jgjhq7HdrtNunMYenDsc3tGOfu5DNj3fEbyM+JWpXPcS1n4XY8fa93T9INAnEcKdF2n/AaAQ2Zd7BYClDw5x2NxzjSQ86le2F2LnS6waky8t3UFYhqh2vd93vEqJU3raikGygsNltyoSBPbP+vnsuVr4fc6/Ji4sDsJ5GzNA302y6gP2QYbBWutZyVDdSzM1jlNT5nU3PTN0cvhMqdAe3Z29r8AwOnp6X95dnb2zwDg7Ozsfz89Pf2v997UOPzR94/QBwLIwTuCd4TGE5qGsGoB7yI2XYcnm8fowjYLS401M8KqtsEaEKoLS+rnEmArCpvA2UU47xCGgAfnX+PHN/8IR+s1fvjR93Hr5Ca+fvJr/PrlfXRuB9865LnFEgerKyhtIaH7fZbyJuTvlaHBQMMtbja38IPbn+Ljux9j3R6p6qy3ubC9Q22BrH6Qih1CQJqPjiSe/LCx9h3ZRKnKly0xE+TtGc1q6YXf1filClvcbHOahxAQdPcBKvhN6iPn/bPnQiojZWIvCQs/pDj28SMUdafaojPC5jbbd4qDGj5XEn8V9l/PS93D67IbZ67Monjq7UMcs8FxkAcurWN73x4UYeGXZblfdxYyJkp/ZI6zUtS3JMJvvlOZA1VRViLj6Q3ZrJsCXfhdkV/Km/z2zsF7meNcjnpEcgjos0v8NGVW/rpSXR2FhV+Wz15+Rd6sc+W9Q9M0BUM7ax2nWs5VjVPdOikapX3L+e8+Pbqwu5zdVP8R2qbBqm3RNQ28Tq+rhraT2TtZHGR5Nb1KJS1rSVEqyyrMMVz4XY1fRY8IbdtivV5hGGSER9cRAmdGQHJTgCDD+wl5l6Rq+gfy7hCT94bFl0Nrkl3mFNienp7+OwDuAODT09P/4Ozs7H86PT39NwGEfTc5R7hx8xjM0lhYQmQ1RQbRAIbD+fYVLvqXCGmVTErF0bw3eXiheUTkunTO7mDAMclUDpYDBCBqXM4Tnm2fwN3+axhCwLpd4cP3P8DdW3fwyctP8MXjz/HV+X04r/M8rLLYNJ7Ial9IqSWSYR+pUJT/M4GY4LnBj2/9FN+7/T3cuXEHzWoFR069c7VmFvacgMXIaasK0gVDkh01kvfcbxpZUWUBRvF9rmgs/K7Jj3LebY5erWRDVsKXsCvPTJwFB62kHBZ+l/OrhEnSuDgieO/VMKIkA3HKjRvRORy5B5IlNhM4Xzmufwu7K9S91ABmOTrv0bYN2qZB4z0Ge/vAAcmhY7pwgqU8wIfIzerQhd/1+RVNHwiAbxq07QqrtkPXdOh7y11MeS+5mVRm277q135+c2Hhdxk/N6v7mqbBarXCeugx9MqPsoaj0ackRtWv/cE6lIcYLvwu4edcJXGC9KfatsXRei0dk2FA37sJC3PsFGKoykJqI/cCtP/mR1ot7C5nN6k9RGhXLY7CWnZK0qmrw9AXeZ3WQYy4YXRskjp1Dix17+3VPQtt24DjOr0Q3nU7DD3yjhEEfbFY255jPZziLjhx8bt0YBzSs5c5Bf5DAP8V5LXyvwvgPzo9Pf0fAHwF4APV7OIAACAASURBVJ/uu4kANM4KYqeJy8XJ5gieb8/RDVtERHgzlLNdnTq2qYAUhUWE4nIu9cGlumOJBCDAO8IubMEugjh7gtarFh998BHu3bmH5lcNHrx8gG7YyeI5ngCnW8lRrlhmjlhHPlcaAhjw7HHib+Ljm9/HH338R/Dew3kP77RRxajDRySdEufQeK/DSRyGwbIXk0Graryu2BNFTMlgKg2nSUHYUzIWflfjZ2mVMR8M33isViusug591yGYYkxvK7OSzjj1RAmDivJhcptHtfB7C/zs9qZtcLReYRjEOAqDNVoxN6iJn8mmaGjL1JWauzhXPpBnoC7sLmdXNH+iDQlomwZxLYZRP8jWPr0j1J3Kcd2b4ZLq4v4ax8ZuxkJa+F3Gb9opAclCUHy0QoxHupWkdE7y2jf6dHvbvK9ezbHTilZQ2GvdLvyuoDvH1gaR6E5eyzauOoR5GHoZj5iaOEppsZTME7gkHOiZLPyuwm8sM+G35hVCOEq77gx9j5DkUAt+r/4cBa6+H+5VLuwOs7Oh/mV6GUDjG/B6heMY0s4RQ++QNiSkus1LLWiygYxvTumYX+pUVl8WftflV6dVQuM9eLXCsS60u9vt0O92YrmQGhqJW5aR9REk2nGbVzsE0v9XGO540Clwdnb2f5+env6nAL4P4P7Z2dmfAvhTADg9Pf2T/XcyZDuMYqGEstAxwMTo+h1CjGArEcziqUG2uARx2cEtO7zIBQC1YNju5Wx4RA7Y9Tus3DrFHJlBHNA0Df7Vn/xdvDh/iQfPHuDhywc471+hD1vAcWIjBZhTAU0LaTDBsceRO8YHN76H79/5AW4f34JvfPKwa+YmHRJATjVtg/V6jX7o0fcypxL6PBNhKgDp7ygmmjl2MMwVkoXfdfiZsm3bVhYN0Z0j+r5XOygW+Uet7ErRjqQwY36NuO3jvPC7bv0jkmF4WK/zdpJdD9f3ySmXGiVkdkh1MMddyjpdc+WwsLs2OxCaxoOxAnNewb7rO0kj1XXPFGnSp6lxHXd5Zrjx5MvC74r8SllXcuHCMGJOi2Z1XYcAztWLpuK0P1Sd2MPO8PAhggu/Q/xcod9KCTfeA22L46OjvJJ2tys6BYTsTOVaT841poVsAKQRApx7JXsALvyuwm9cOxrnwW2LI+W3227RdQ55jKp1TEr55M4kTSpg/QQu/nJ5YGF3dd0JqvUnpLPvnRN2arfsdjt0uy0GooIUa5uX5ZoddbMk9kzz2NfuLfwurXuYGykgcTaNB1YrhOMjWehzc4Eu7QNAtdPE/ivaxBRbCa36br9pcmocDjoFTk9P/xMA/zGAfwngvzs9Pf3Ts7Oz/1lP/xcA/td999pCWinNqW3I8yOiztmVcqFzCCctTt1JShqN7BlUKKS6wZLTZCUFIEYfe6zdUV0RWOLy3uP9u/dw99YdfH/zfTx89ghnj/4cA3UgG1di7VHU9EQHioS1O8IP736Geyf3cGN9E+t2De90ZWwr2iTvSdzMpg9i2DbgFeM4HKcFX3Y7SKdkJItxi1otASPltcrfPj/BvsKx8LsCvyoNpIZti5N4pB5bWYk5cszXVTo4aeaR9I1pErmIoLjMRLLwuyY/IjjymGQTSAsQHsWIftBV7HdbxPF4KxrJooZaxZrUMGN0zWxbLPcs7Pay88puLDvvvLRm6xXCcCzsthvY4D+qs6/Y5ureLKqZKw6cXfjN8iMieHJFmjUBBBCcOOU44uTkWLeU3Mgw0L08NF2J436W17FvF377+eXROrUgnZM56cyMk+Nj7HZbbDYXGFLF2yPsPXUwyX36qEvDwu8QPz/LjxyhgQdWLY6Pj7DbHWG72cCmgNhoSEtK3fYdYFjI/wovKRd2B3VnvZV50mykjoFVi+NwhN3xETabC3TkYD1apjzX3PJelQM1MCdVjuvvbIcW3XlN20UdBDOBAHhyQNvgKK5xcnyMi/NzXDgPIGq9qVux0kXCRTzQ/LMesdE5Fa5DAHH59IF/CuAfnJ2dvTo9Pf0xgH92enr647Ozs/8Go7IzDrJIEEZDZDmBIHZoXVsk0nJGuv+mzOv1TpagrApZVOXkcrHJz6RCfio0juKjcQ7O+RRPmrNS6LQYGUQOt05u4faNW/jRJ5/h1eYVHj5/iAevHuBVeIHIA4iBW80dfHr3M7x/8320zUpXdqW0TQRYlLBLw0ccGtdMGlb75ryHP3JoGodV49F4jzAM2PIge1omEVl+ARnGooq7KDw5flkso5QxsypoZbHwe31+hQ4DyMGvVmgah7aRaSAhDNg8jbJKbHm95ZmROi4MqANAOzJJjUoejVXih4XftfnRDL+iQVk1DRovK8KumgYxDHj1mNE4B3vTVS0aqdBYh5AZyWREZbEWzJQBuVlLaWE3x86jIS+N5ww7EKNxHt4fCbu2AceAZ48YjSsMDBKDYuxhY+MC8dzX9YrKS9UocUvduwY/T14/Y3658nk4eLdG0zRYt+IgePJI56eSNFjl4kpJLJy5cKE1kxY1r6rxS9biwu/K/JxPuhNlyotK6L2Dd6tU/4gZDx8yHI3EBKt/tQmZ2zXlk7hRqpupU5I4Lvwu4+dJnp3bvgoGLNHGz3tp+wjAbx855I5JIadK+eqbV4uQAGKxO3PdLDAc8A4s7C5hV1eZxI6IsKIW/oZD28hQ9fsP12DuwDFC+gmwAXcgpKX9wcyIRPImfCTW8kDSsaUBuvDby0+mDQjHxjUyUmAPP0BebBwdHel9hJeP3kMczsHDFmBGYEhbprIideJknTmS+ehbxe9AuMwp4M7Ozl4BwNnZ2eenp6f/FsQx8KMszsvCngQw676NZi1nQuYDsWM08mypowj5h13LqayWMZih4OCwbtegkD0oJaTKSElp9Lhz4zZuHt/Ep+FTdH2HzXYDEOPmyU0crY7SAiCktxMIpHNIrDOSP1TkbypFR7IaJQG4HSO2mw06QAuAVlpzBHDKtRqyWRS5W2IKWq/lvUT2hIVf/vhiTvq8WAiExnngaI3bzNhuNtjpcMlqflU2WZFcOJyVNhLtzK0mYjK/LCz87OMv46cHPTlgtcJNAHfv3MEFZRJcSN/SX8mj6HBUrrkRv30GbR0Wdomddk4qQ6EKctQRoW1a0Alw77338Nz6k5Q7FVB9CFugqJJ3XgGZU4XMVpE1wmRe1YNh4Zc+Nqd5n+K0dJBD4wE6PsYH9+7hidP2Sxu70sBJbWFy4lDiDJByzxZqMqBmjahZUHsOfwf5KbtL8IHIofUAHR/hg/fv4eHPHYiDAqOJTK1/wYqJk4DKngXX7K7yylnvmz/83eJHV+KnqSUZ8UhHa9x77y5+6xtQDCjbtdL2MBzMsrhbchlpw1iez1u5LnXvOuzEbrkKO3Wgrte4e/sWvmqOQUG2KiRjZ/oS1h7StFM5youxs/tTETgYFn5U2p04zI+0fSMQmlWLWzdvoF2dYOAeCJ30BZgqqRq2cSe/smf0ItaKKJeSjH7dEy5zCvz29PT0752dnf0LANARA/8egP8ewN+55F4kr1HKuv0nx9arNRpqMHBXaBdSbwYBHMFMoAjdpNgi00JjX9mKuIOsjqoFgwF5PxsAJnhqcdQeIcQhJyQnNh1KZ8QylMLpxFu+bte4eXwzva0o3yqlxTCsUpvnqygclLxF0wYSsIJFaNoWN26e4L3hLp6lAoeq0zjJg8m8vKLQ5Zwvyvk7EBZ+I3663VKpduZk5sih9QQ6OcL79+7hIREosixgUiZQnTs1hhHXBHF0SVKh+yv3wq/m50b8ShXLo4Q0zoHWK7x/7z3cJwfbr5lBRTs26vgjlwqqoqtj57kVBhd2h9lRZldLfJwQyIiQtsXdu3fAtALQyTkmGTWVeKhMqDBwUTAsf6AQM5fUF37X4WdPyRKfSs6RA3ng5u2boOYmOLwCMetUAoItHjmucSJGna/O5Qi5ov6ZEbW0fVfmZyM8yjK/v+2RN26NA05u3oA/uou4ewrHAaz5ZMR0rcXGBicxg845ri81xpeFhV/Bz83x2x8cEeAb3LhxA6vjD9BfPIRDB0YAIB0KR3XCrX83sTHT96xzbT72PttlYVezM2d4in5WakhxeedwfHKCk1sf4OJ5D+cGMMsW5DF1DEVWucOfM0EFS84Akbb6XezOq7d9M87wgy0PETwIq/Uat+7ew9MH5yBdl4BBiCw5FllF+c06+q6IOKtITj9Md0YAiPv5zU9yyOGfAPi6PHB2djacnZ39EwD/6JJ7JyFlRhN6tDrCUXOcTQQrdMzgGGXrhxgRWT+xHPpQNPQw247Hp3JhYuCkuYFVuwbN/Zu1MyndS9Dt5rTSlaDLOSPprZbLFTq/pbTnSIeE8hOK4i4JaJxD27a4e+c24FdgZjjoSAOSu61KiOxy+s0bVhUG5EM5i+Nhsgu/vfyc14VCjN+YHVJaWJ/VugY3bt5Ac3QbAwHE4klUzSJGa5lVFUSSEWe21SdllHANfAu/Eb+ZJ+U6SISGHFbrNW7e+yF678AMHWmQGaZEKxhjaOBSnavOyZd902wXdofZzTyseKYEDwfvPT74wSkGv0aIws6emd6aqXGb2BT60xrRPOSuUrJJ914lfFf5efJ76t4+fnJW2jqPT378t8CrOxgA3c8aue4V+pPNWErfketf8SlZXEd5fpf5yVZaeejrrEOAimem53n88Cd/E/7kQwysc9nLjqPxFAEW7LjWl6U5wyW/q7ET0XxH+TkbHVfyG4XU+I34OY8f/OSvob35IQL7NEQ76cUi0SUz62hOeKI4bzp3YXeQnTlzqIh5yq38gdQZ/cFnP8L65vsIkWT/OBZ3qvFDkhuSLiw5JbOGs50ZK2Nm4XdVfmXME36jMwRxKnz8yce4cft9hAhwjOoYJwRQXc+qzxwaSsJ64+kDZ2dn9w+c+z8Pxpy8ONP0CUlg1a5xa30br/oXsFUrwQBHpHmApvw5AuRYDANm2FAKkyun//I9qXRHgCPh9vouGudBJPODeZywGSu9MkQZNVX9LW+wBCQ5KUBUzIX1zhXzScrqvc8wEm+cJ1lV9MPv/3U8/vr/Aw891uRBvrKHUmLY0sNUrew5LvdSJjg1trNh4VcZRVN+hTBoFB+bshKG3//R38Zvvvgz7LbPsA4Er3O+5I2ViZu17qrJZWllrljn4V65pMyGhd9efpWKJoto/DyGeG0dfvDjv4Ff/8rj1bMv0YYOjS+6ODZHvUqgerwJaW7lpO3h/LRJWNhVBm2eB3tVdnLUkcPHn/0Ezjd49PXP0O9eoCUGXDa0qE6lylH0Z5qnWKYZuQGOsVhAtAwLv9ooGvOb6FGufqmU4ZzDh9//AXzT4jdfnKE/f4A2RqChhD+PHkEqCpwSJ/Uv61hDmDsps2HhNzJqy7mwtJ/fqJ1yzuH9730E37S4//m/xOb5r7GKg4yYYwCpjmliuGTHasdkJEbFOjELvzfhN35WYVSooJxzuPfB+3DO4ctfRFw8+wqrGAAPpBEdpZyqXJmwC3ZWPw91ShZ2BTtxpFXsgAk/G3qeTrKMtrpz9w4+/fEf41ehx/nTL7HCANfkCHI9kv4GzAZNnBLB/KQD6IpIF36z/Ox5lcBGfCVyAuHGjRP84LPPMPRbPH/4OVrI2nJU4mYVeTk0AwDIXhoTkrMcQFQZT1+L5XDZ9IHXDkyYDlHQPIs+iSAQfnDvU7y4eIaL+AIhRAARDi69RY1RGhznJNI0B5QBRKQFF2QPyrwXJUcGIiMEgAPjrr+Hz+78CES6yj/b4il1Gg+9/SkNmnIYiQwzIXjnR0NJxCFQFrC68ZxHY8cYMkfo0z/6G/jo05/g5YunePbgPjbP7mPNnebdmmRKnQ8rIwAXo7QoxZkruxTiubDws0VeDvEbETSdXSgZ5x2+9/0f4v2PPsb5+Ss8/vo+nj/4BY6GCxmm5/TGwksvakGVojW+SW45hwxSwU7Dwu+q/EpwBQFtaMgT7rz3Pm7dvotd93fw6MFv8Pj+X8H1T2T+Xt41BsmhY/yK//MCaKbEM++FXc2umu5xbXZFupzDyclNfPbTv47vf/YTPH32BA+++CvEV1/KiB3bRITKpSFV1EmJ0jRX5EDOI/RhNq8Lv/zmxO4e27X1V5rhJ79WqzU++uQH+ODDj/Dy/CV+++Uv0D06ExvIif7kkptxtDdf5ZOYBYu+7ekXfu+In6VN1kd6/8MPcfe993B+cY7ffvUrnP/6z5QZIeqaH2Lvc7qVWdvRfAhVp4QcQpjP78LvuvwAFI7rMjRNi3vvv487d/51nJ+f4zf3f4mLr/8cZrNkLnnkQHppUZ2Xc5HLdm/6xIXdNdnR6JpCXs553Ll7B3/r7/5ruNj8TXz95ed49Zv/V64uFuvjyHnr1yoOG1WA9BY6WUhuvBOCymHhlxaItLuvrzsBwIGcw82bt/Cv/O2/h83mFF9/9Ss8u/8vsIYTx5zeH2NMabSnZW7W32NxCIihCm72d/3fmVPAESFtg6EKY/zmhcFYt0e4c3QHm+1LUTJOz7DlTDOhOSU7Dki8MlWmilO/iLMoAk1Y4cOTj7BujsDMaBqPGKUyJFXGqZs8zQwVf+zNhHOjApLnLKeFJlJsh4zaUfzpm+WD4BuPNa3RvPcBTm7cxKvnH+HxF/8PELYgjnD8/7d3Zk2SI0d+/3sAeVdVV/dcHBvODknZyrTzTl2fQCbT99aTnvSgNZm4S624lDg7nL7ryAOhh7jc40BmdWV2V3W5z3QlEAh4OOLncSIAWBg/+zOQz3s/2EzvWbIxH0PhtkN7CZfyC/zE0OMO/NxFEAimM7DocLY6w/RvfoezZ8/x0z/8N9jhBsaX2vBMFEV+vrLwd5p5nRWeibXWwjY6Rsqvwo+qauv8CAhDDWMI1hKmkxm++ebXWK3O8ae//6+AvUHHBh/WDzoM+QEL0kCTA3T40gxuLk+bXXpEqsWu6ADlYeFMsq7zYAld1+PF5RdYzBf4x//+Gti9Rw9/h5M1nH7XdZBsuK9AsUoerHtLt7sbU+8YKT8Xvrfdy/WzwMDPEGEwBOoMzlbnmP3u3+B/vfsZu/Ur3+Z5NCGf4Sd4iHw583kWO3X+WolA02l5vVB+9+UXzwpvyiYCGYPlcoXvf/hb/M/X/w/b618wjZ1YXxdaEmkFfiH/wh1NAgFkQPNJeb1Qfsfk5/oiBtR1WK1W+OG3/xp//+rP2K7foHMzc2CX7fIpZhG/gZFyyQ1KTfWGxlNm15GJ4fdnB99vMbCdxWp5hu9/+7f4H7/8CZvNGzemtKHf4ssZzyO4tm4H9+TB4CcIeuPK3uTsorxePF1+6eWC4/zEbqvt822Ue7eH+6zkcrnE9z/8K7z+lz/idvMGvUVcWRHX2fn+yWAds7XtMMC4Eue5GBrQdR0W5+cVek5OMingZmU6bDfeMbzHJfPdXzsMGHYDlpMz0JUBmSEB91cZl4QMcHcFLNxskHGZ4gD5DAQx2O6f2XZ41j3H5eK56zDYAdPpBMMwYLcbMAxDdAx+F1Zej7OZ/4aCHJ2F/DISMvHZx3CthzlGrEpjh9QdCB1bA9P3mJslZtMZVqsz3Fy9xfXbv+L2/Uts1+9hd7cw5F4C01lX54bllaHwh+wkANthh2FbLoF9yvzCYDLxu0vB9n/jHQ/yPN3AcoDBlGZ4/uIrzGf/EdfvXuP67c+4vXqJYXMFa7cwNhR0IH5+y+cKu0wQgN1ul/xE+R2fHyi2mMa4O1sddbh49hw//PgfcPXmJa7e/ITt9SvsdrfAsIMh/xo0GyZ5QsvGVwrYyM81IMrOGP/OlQPY5RB5g85X6cAm/WQIBIPFcoXf/Pjv8e71X3H16i/Y3ryEGdYw0X52dytUnLF34tXuLAYCuosXlet9YvzI5T/nRwwatdg1+QEps70jkOvgAu4FTL/58fd4+/JnvHv5Z+yuX4GwSWyk4jwp15GywNBPsbz8pnK9yu+D+cVyy/lRrJsBoJ9O8Lu/+z1e/fIT3v78TxjWb2DiiwdTHRnTJdZ/ih1hA8yWOH/+K+V3En7u+kMAEaEzhB0MJrMZfvvjv8Mvf/kT3r/8P+h3N+gQJmvcKZalm/KcLWcmQrd4hm4iJ+WUHQleTXaiXmuUPevTMO4RyB0NmM1m+O2P/xY//98/4ubVP8Ngi8668mQDO3L9nB0I6JagbgrTTdCbiesHDWv08yVWF88q16v8BL+MldhtlT0ryx2Rv6lIA6bzGX73d7/HT//8D7h982d0Fuiow4YMQAYwE1gzBcwc3WSOy7Nn6Pre2WcMQMCwcV8ymM4/+koB5xywFtutjR1rMSIFsBsGrDdrkO3QY+pg0c6/Zdi9WCjOCPlRUZodgYfjVZONMzTueU8L7AxWdI4vZ19i3s+x2+389y/dsm5j3LemrX+RxRDsg3QSYn8oOAOlu5IhXUMccLtSFvp4OPcitpSOEAoAYA3Bmh6r82dYnT8Dvv4W280G65srvPzpn7C+foPd5gq73QY07GAAGAoFxvoBpZv93U2WWDwrC/dT5Ef+WKpc6/yoVBrDiLJY4jkfr9+4gry6uHQV6/Adtus1bq/f4+VP/4j19Rtstzcgu2MrQFz+pWfxCOgMtpMVVl98pfwYw6PygxUKyEciA5xdPMfZ+TMMv/o1tutb3Fy9w6u//AHb23fAbg0zDL7sBVVDHF+CAHQddvPnMJOFsrszO8kt7MhQKyK4Bt3lyer8GZarcwzffIf17TVu3r3B65/+gN3mCsZuYa2Fsek5acsmBogImC0xu/wNLl58gVKU3/34ZQx5qK8/l6sLLJYrfPH1t7i9ucL121d4+y9/wLC7QWdduQusLNPkxGD67GssXnyPxap2t0T5HYsf5bb4MrhYnWO+WOKLr36Fm6t3uHrzV1z/8kfAbuPKK4BN6HmAAwjoOiwvv8Ps4mvMVyvldyR+ZT81XDghPFwVVqCeX1xiuVzh9lff4f2bl7h99zN2Vz/Fvkq8mWEMzKQHmQlgelj0sDTF7PwrmNkKXZev9FB292fnd8KKKPg7xMbAwuLy+QusVme4evtrXL39K7Y3r9HhBpN+AtNPYLopqJ+BzBTdZA7qOhjjBpbk3w+zA6Gb1B5bVX73rjvJX3SYGyByj1UY1/9//sVXWJ2d4/2b73Hz/hVouMVyuUI3naPrp6DOszIGpuvjjepgqx2A9XZwEzENOdFKAfhvUQLhhUzxbaRwWW+txbDbYb1eY32zwcwuMNgB6+0t3EcTBjeDNfDOHcEaP4sUnIaA+JiS4Y5BMLbH1/OvcTY5dyn7u+jB1xwMggmfimOdEWvTIDqWMyBmbv68K6K+LAziMI/EL6sR2w/m4wmpsU3O12My7zGdL7C6uMRuu8Vus8ZmfYvN+gbbzS2G3cZ/WmMC0/fo+ikmsxm2ltxSWOV3P37tU4ragYD47geAQJ3BdDnBdLnC2bMX2G032Gxusbm9xub22vNbu4Jtephugq6fYL5cwZoJuklZhJ8qP6JsP8+X8PcAfqmksWbCc4sm+Ter99MZ5qtznD//EtvNLTa3N1jfXGGzvsJuc4Nhu3asTef4TeZYXbgJgb6XHaMnya5S7spGtcFNnN9gl6rSaDd1HUzXYTKdY3l+iYsXX2OzdtzWN++xXb/HsLnBsL113KmD6WeYzM/w7ItvQZMFqCssUX4VfqPlrskvWBNTRxykEByP2QKT2RxnF8/x7ItvIrvNzVvs1lfYbW+Bwded3RT9bIXp8jnOn38NayagSr9W+d2RXyWs2hS6hg8UrrfrMFusMJsvcfH8S9x8+S3W1++xuX2H3foddptr2GHjPu/VTVxdOXuGyeIc0+UFLHXV1+kovw/jl+dhqC+tiOfbP7LoJhMs+0sszi4wbL/D7dVr2M01MPgyhwFdR+gnC8BMgW4O6magbgKYDjt/J1vZ7WMnoe1lFy1JARRWkxrADm611WT6Nc4vX8DuNu4xZP95Areqrot9FVdJuoIWs2+Aj5+l/aT5pbD71J0hRJ4XJucIMAPmiwVms28xvPjKTaQa+JUArky5OpYiN39pbvLDAF3vP7HdkJO9U4AI7tmFReczecB2u8N2u8Xteg1rB1hY7IYBt+tbmPUEK3OBWb/FZneLrV1jsFvsyL1EwhiADPklKYT4XUoCBgp3eS1oZzDFHAsscTm5xIvVc8ymcyyWCyxmc4TPUiH4XEYkwHCTUUZUhilCXozZHslwygK4Hso1iF2L8IINVxHz2MG9LY8NmA7dtEM3nWG6Oq83zsHxYdEPQOu7aMov7N6DH1xlhXB9cEuzCDaL58/ve/R9j36+wOL8ssHPV1qw2A0AKT9x5nH5seJBBoSBT3gXhneTKbrJFLPlecW+pDeUv91QJBrteHLsKg1k8WgFy6Ai1yjXGd5eTv7X8XMR/V2MeCphMl9gMl9gefG8Yp+/aECyg5a9PPNb/ET8A/nFtIjckpv4Vjp/Qui5ETBbnmG2PKunx9tJ30lVfmXm52Fl5xalTqkiy3NC7KjCAMa95IsM02AtCAbLi+fVsifeyBI67ATsBtn/EaYoP9ybH4UJOP9OgVherH+UJ+R9h67rMZnNirRIlLswKHR6rOUxWbLKDvdm59s+Mu779qAB/oP2oPiuIz+QnEwBLBMzVo9buLrWIQtT7INPrP6C66fKT4bfkZ9U43PePZbgXoxIPi8t0iPJBn3XAZghPJgT2tWgx60sDv3N1OWx/vyWnHBSQHYILBn0vXs2d7vbYruz6E2H5WKOt7Mp3r9/B8DCDAaTfo5u0mFLa6x3N+4yfOcOgJtFAtiA2TljbztMhylWdI5Vv8KMpui6DtPZHPPZDOEzcNQAU4XlUiqO7i+YZaDziZpjtRRaXze7RtW9uTP1haJpcgPtEKfXxga7fc1Pi18rL+7JD+G5ckqdWtiSS8GQRDyqRR2DB+WX19SpYq7wa9XSQXXMS4rWSNuA2rsdEj8+eefY+tanmriya+yN0JlLAwAAHlBJREFUlL162fX5bAg0AO7DRjZO1CX7UPALQxFOIg5PKNjcGpQov+reXfnBsrx0g0oMkBxyU4XVeQ3K2r38E048ZeVXdmpbEzxJRcWi0IFnDGFhI0TO0NeLVlosp89dXga/sMoPp+XnziPA919Y2bOMUE23ZW0dgPTGax9f2eGk7MRn5wzcy6oGlwc2sS16M2HSJmSQmMAJE0XFaSll5XcUfvFT12T81xwsEFZnFGYlIPkDEFYeTmO/ETnZpACQfC7W/3BOs5jPsd1tsd5ucWbOsNtt8ebNK2zWt7C3AG0ItO0wncwBY7HDFoPdwZohzlK6zHYX2FGHjiZYbs+w6paY9TP0/uUZ8/kSq8XSP0dSLQcj4gtBfl2sc4FqDB8qnIPHF9FGEIUOTCrcbmKAFVRKdgqzi+vIVVNrkQCP8kT41S+exDkfyi/M4FGqi2P7yO3IC2vaTp0fNlThp7VSf9L86hW4iD9yPuvyyIGJr5ht/MNPaF2Yb9Rig+v28zGNOOPJsqs0tLVG9QB2rg6m1IuI5ocdVuaoOCq1Z4MYKsprZsMT5ndQp+hAfrKQ+LvNYeWqKIS53zTaRJLxW6L82PEP4Udg5U7Gspbi9XOGclVXNqFj/QSR9fWnHIuWNii/sCci3a38gWVyGFhaYAhDj8TQWRouzsqErLQ5Fes6QGUX9+7MLoWX9RvBYCA+cAz82MWJc5i9YcWrD9aydw9+bGekB5HPpQLWAMMgL8M6nslaKvimsupjjJQ94KSTAn7g6pc6h6UksG7ZyrSbYjKZYNL36HqDV29e4d27N7i9vcV2u8X2ZoC9sTCbCWjaYZhsMXQ7UEegoQN5p+ipx8ROMaMZzudnmHQ9CIS+n+Ls7Dw6BmwJ+c5SUZCDrqVSXUbZcArByw/8KesYOehs1kiIrdhJMm5IhHhgqUf5+eCD+ZErgjzQ+iV4MDDGYvB5KF6kUh1gpAGK5YlapA4VwnZNlF8MbvCrhGaNXX6nC4g1tB1gi45t7g1Jj40BrJPUFGUXg0fZZflddGi8ThNeX2zdt4pAldVWY0ysZEdFYkV85RfCx+pO2WMqz651zgyIhgY/TjHvEbMBDNWvh6er/MYHJYVFNX7xZWexVwtgiGXa8rbMirk7xMYxmxsAGL9mJ1/5uaB78oPsagQdA/kVH2yiTZZUVjB5V6VQXBNl54La7IrYe9i5XqlboRPLXvxTsy8ULvfrkiSERwhGmz7l54PuwA+1POVDfUaQEpfUBoZXgbK02dRArCqJQH5GfeyG8OkmBYJj2CE+DxGbbT/KMcZgPpti0nf4/m9+jdevX+Pdu7e4ubnGer3GbrfFerPB7noLXPVwLwwiTKYT9F2P6WSC2XSG+WyGSd+j7yboTI/5bIGzs3OcLVfoTMe+k9l2jxIqqt5fdkwrx0ScVqe21gGuKfTPf4TnYAf2+Z6sUc07tqLPBCRP8PlBYbsmyu9u/KK+sjPK4xo/qUM08Kx0YvmGbGITQ8SVBsqvcUzEuSu/UmP+bDsA/46P8M6IrOfEW1xCbJhiJV3rJAnlePLs8tnsJrtmXrLSyA8a4+dTbRpz5PyEZIXU2z5650H5jfA7rEPLLcs+cy3K4975NRcLsY0M/qL86sfCflk9xgN34pc3Yta9qMst57Ws21KDERu5wsLRLFF+R+Lnj8f+oh988NU2bHKgRol83Zo/NEnabymPhf2jsSORbih7cYLci8vjbGVsrCA9uzjBUNbtQpTfnfi1rZOrDkL9SfH7jCkw3KcIEkcP5CdiLdgqK8MY1uVkkwLhZWjRMSyfyffbA0AG6PoOX16+wMXZOa5vrnF1fYXr6yus17e4Xd/4CsW9zRKw6PsOXdfFzy0YQ+i7CRaLFZaLJRaLJaaTKSa9cyhmFerdx8Mco4gzElB1jJqDNgo2NSKQ/5zGwF6UlHeMSqdNkwF8ps/WIntRfpXDOb+RQt3i53bcjG1cRSkGJ+X1JH1hdpANMpVfNaDOr15bj/NLEwBxYs6Gz0SmzpGN27ZsNFk6NjSOoZKvJK7sZGCLXZNbOBCymk2CWpCfbfdcLZscKIT1hLzaWNc22AHKr+B3ULtHLG6wF+B3S0L5i2VPdGxb1vKZABlcm+xzupQfUq7v6bdk6YtdVwD5pE64g2YRlsH6WrE1sCSguryZ6u0koPw+lF/tbmXOz53HVl6xwYkohHmafB4h6NG2707sJIPs5Fp76Af7/Jghd1Mq/Dfa8pE/yto8ZPrKJJXfIWWvSH+EHzHwhpDY8fd05KfyjSL58dUTJ5wUGDBY618OwZcyeCstALJpGTURpt0E09UEl2cXTgcsNtsNdrsddsMOg599Arnv3ToHcU5iyKAL237ffT7CZUCY3OSZUa8USR6nPBak44jZuOy+JEltXD2ljVJ/JkTwb9AOHVjfI+UzcawAlpIunvyuK/TN3rDyOya/ED8UaEsgMqzSDBWoy7VSUu7z57XcY1aNSl35HcyvxU7qsqIMuhddeX6iDLqcq4sV6bpPapWpK7sxdvLuxyg7SpEIqe7k7ET5cxkHXt4KvT4zjIGWvfvwG6k3RaqRYSh/KPlZl+cu3zDKMHRMjUGzmCq/D+UX0mM5RimUyNWPhgiwqf2zSHkdRHCkUrfyw4H82N8mvzzdkJEQ/FwxdG+wLwZ+se3zJ3KNNmUC+ePa9p2AHU/M2izA9R1tePTKWveJOlYGfeZxJcwVws0OCxMmByqi/D6cn0iiyQ+RH5+AieNCl4GIG8TV+dVZrVU6Xk40KSA7XECqDKKxVacicK8kIkynU3bxEMdd5lOE2oUZJO8SBGquDC2AUO14ts3BOgPr8aJtaYcaB/NGVfqnu1bLl/t7MWT8AMWC4oygrXdUbbZJvpCG13dWTlB+d+VHQWUmLp+tiE/uTdo2IHPsyIYCawsVYtPz42TyE5TfXfhR5RwW298e5ndMwmMgFjaWw6iqMXvrx6VJSbVuVnbj7MBwsViNdo7inQpWhxJSdllEXgQr3rpciGWhzXZV+R2VX+zoyAGmO5uVvyHcGconAyRHmx8uRPndn1/eKgLZCDMdDNlsEMudLTTwyQLyPVw0RPkhz+YqvwMmV7M0YC3yT2PHMhg7MyGBUO+mmKk/2yrvyu6Y7ArdWcaHt/KH9+xU2zwgrbbzedlaYaX8MMKP2A814pSBJT8/G0pgMwTpkXL3k3c0U3xrB/dZyjpqACddKYAs4RErmPDKI2SdMWnuOd3ZkRlOFNyB70PoodwD0unCWYj9OcgxKNOdV5yZ11D0D+mcpXXeHgY5tqvGFVReIbvVJAF41pBmQ8iYfw0syo/bll1hzk/+VIwLS165se5q08ROel4vzeSFgSbFilHwq+dGPK78gi3ZFd6JH1gFbeUEj69oyaaOkRxYAnk5DI2khW0+V6nsuG3ZFVbYjZUD2bjygUk+qAyxWIMbzmFb4azwqdiaKD9uW3aFd+VXxLMiLHaMwiRrrFP5+TbTN85D+XHbsiu8Mz9pKGVh6RVoYVDJyl3MzrIsjony47ZlV1jRfRi/pDvUg6KuLAaW7OVngqOWvU/CrtCfzBviIJGAou4EZJs4YCxV5cdty5Jr8svta+RZjR8Bw5Avmyo5OnwWsMaf12Z4mkmBOCg90CFSPeLPp6z+kJkRB0RWZnRwj+goRKhlex4iXIc7XNzPYJCIlo7mTgIc1Kjm9km7/FAwxuMdW8TCGgYmCT47m7yOYrKgIcovRf1AfuJ6i7isYwvfMWIDE/Jv8y0YNgYqhSi/FHWMH6/PqzZZ9jclnF9LvLFs3U4qgzEGi+w37FAv9MouRRV8eB1IlbxjlsW8yMsJ15ESIWsx+M9thWGKYJXza9/qUn486gH8Ckvyi+W74ews6wnAgPAyXl+jxpfq8lSsLHpa/o7LLy+WvJnz+WoBuK/xyDJohiH0XsRfKZR0ZKmLNJWfC2ryg9wWOvZIq+4LX3hxHZWYZmxBRX06lAYCyo5HPQU7MERMFw0GYuVp9lix4AjyCrTsnY5fm6S1ll2f42FoiO9Hkn1Vm6Eg0J5JHeBEkwKh3yQq/oYhLfNiuIUf7CaHSdkB1wmPULhjwO/XUmJWVYOpHpuyo5kziO2switmZijfpGbBJtE5Si+oC2WIIAcmslMUtMulsZKNFOV3ZH5xy/r/SVbMIZbxABsDy3COe2Gka1hNo25WfsfgR3lUJ6xlFc/MhsmdvWUwaKUsA5Sd03ukskfjOcjz2K1eJjYxAOTL8GKZHAit3Fd+d+MHoS+TXI//LR+3ZINKXv4AlHe+bCx6tY6t8jsmv3w77zqzvDDGdWpjGfQTA+RjCYaNQSWUn9N7JH418Xcra3MDIW/4xIBMg9endV9QdidkV9FnretDykFlyLNscE9AuNNcS1H5fTx+ovyxCblyYgCVskjIyAo53ScJQ0XeeLijdaMFyDMcYraDQDFDhBOA3EsmiDmIP1d+65qy9En8lcEUfqS78H1i5xLTlOtnx6r78kCWIeRn1dhgnoIFls2gcYdIDakV2/Ald/CFrAVC+Qn9B/Grl24Ri+DbRpvSCNwEP8TCXPCDBQ37qhHlJ/QfhR87OVTCcBcZn3vj/dfIL22HfTvw685F2Qn9h7CrZEorm9yA0SI1sOmN9nn5iwRZ+bMhreYLe5Sf0H9sfsQep4ooCKkceuE8WVm0lD2DWYjyE/qPzM9FD3nhuQRwWRmUL0/29asNtW5LlJ/Q/wH8xthxHYEh5ySY8TbQ76dVqzVRdkL/Cdi5U/xqHV/eaA8/IPRj+FdDaqL8hP6T8XMxU/kDRIbZMFpMAS4O+WPtVE44KdB2gGY4+yu2svgBNsFDCg4RnSL9Byr1cXA8DblN5TZQcYAUrxY+5hS5I1YulV10Zq8XPmNUzNDVljD7XTPwT3Y0klR+x+MnMkDaVK8+wbAlli6IgNixHUlG+Z2GH8sDYKQMhsmDfBuoL/EQ+u8Yzv6KrSfPrqgxC7vYERnKy59oYCn7raSq/I7Dj6g6gCDW6WzXn/XyRzCjd0qSrXcIZ3/F1lPmV8ss3g2pDByaLGMK+8i1kx4NZ3/FlvKrSyxW48QKIQLs+KScsrsnuzFuQSw7nSPMcfp6MwWbSiQpyu8j8AP8xEfrkBX2l3VnO42TTgoAGJ01ikJl1qSMK7tvoZ9AIBAhOoZhTpLrKbOeILk1nEGEM02FA0in43FSVKYhd5pW2IjkS7jkuCPLc+ETBNCwp2hzNcrvJPwAwKY7lsXAUYgDGEn4l8Ps7SIpv5PxAyoTcdnsbFsLsQHnmHJld1x28givQ93dy0aJKgaVB9Seyu84/KrZ5wJlFufl756i/I5f/ipg7zKstMG2QzArvxPUn3mEfTHZCwejsDeot0TZnY5dzX6+e1AVuicV5XdkfpXQsMoKZV6VUsz2NGOeflIgu+DicMU5q7Mq3hFCWJw1Yg4hXjBROEgLmNwvnYFvZzqqBYuHy+vjafJ0spDCYWu5V2sc2dOwCKW7WSz3fJYiXUDLAn9Y+SELOZxfJfzweIecHaIpv2PzAxps2OARyDpE/pDbP6BjpOyKNNjevdnlx+94z2t/bOVXpMH27sUP4P1OTo7QbNhC2RyJIuOPW6D8suNZWK69JiU+GpkYz87T8pdd36fhV8RjDMs7ltzaEVF2RRps7yjsgFabxyvIjGA8tGelsfIr0mB7R+JH7bmXkXp0X915+kkBZgaASsbJTKLir78ABo4MMefwMYh8PBIOMO4YEkhtdohkhGr4vm1KJ2bp381JuJSF1G/y8iwKd1PDAaL8TsoPYK0riUGlfF6I6zGVGfiWKL9j8gulqlkGeVwauftcaK6JsjsWu2pesy+1EBBfdJbOSOzKG9KHlD7ldwp+zcUB+T6Xsa9GNEX5nar81Ri6zTGIXLT8PQh+Y1IMTu68LiSq4SqV3eHsWrmdcnfPqmJ55xHCkFFRfh+HX7lXSsZxJO5HmBRglQrPh6xxzqueqmP43/gMiSGhi8g7R55g3BQGVB2jFk+qykDvcQYxc8W3hR5mz6iT1ITpsUlvGIjwQYl0m/zbliP6o/0sRPkdj1/4CTeOyX8gxrIDqC3D26tcHFd+x+NX5F7A5NNx8ziyfN19TKLskg3HLXsizzg75BMDQSqN7l6Yyi/ZcCp+3sC9/GoElV++/THbvmYuEvzLBPet6lB++faD4AdkX5FIEsrg/p6nsks2HJtdyKvqOg8W1rjTMa68OK78jskvz7ExhmPSjn+SSQFCnhHShvYxynzG7YflIWHbGJP0MIdJ+S2B5iDibFMKSM5YOETpHPv1HuAceR7wc4RzZmFjUkQJb7VPkwTu18Ja8m/dLvUqv4fOz/1a/j6CTI3yq1zrp+TnJ3ksW1Zph3KWQNk9YHZxoi68bbtcQqn8jssvs7YtB/ADePun/B4+P8q4yV9t+2p6Hyg/XocC2vY9CHYyvhQbv/IBgK12tBisBWndWdH7KcoeNaKUX/mQdWhb74m/PkAQTzDwi80rBJ75PC5R/BcgRghEEuAIyHic5yFzCgH9Dg7ScpZwjfm1ivDcufLzK4U2dykp2Z1JcKf3kwDkZuGJLAYLUFVPOkf5yWv9pPxgQZZzBMae7VJ+D4gfCJYYPxCsaX9BQtk9UHbsXldtUBJTUH4Pjp94RGtQfo+FXzAj9GUJwDBA+T0mfkh1KGAxmLoWZ6Ky+7TsotZ0Vih/IBiMf/lK+T0QfmLsf/hjO6eZFCAJMARSfpEk9iIIYhGCA0QHQalbzACJ7VxfDkfaJWd0Sru4Xg7yIAcpbGuEFw5ThrHLEZIvLicXGDfcxAAheItprBRQfo20PjU/ENKqSvIztsrvcfIDBmtKPcquntaDYxdzp1Cu/B4uPwp3Lk1Dk/Krp/VJ+aXAMKg0yq/U8aD5yddgV1o+ZfeA2ckzGzeilF89rQfHb1xOtlIggcvCs8A6xJTZhig6W8h44QTC4ypOwnX7g2GPWOCYg3C7uH7pdFTfFuC5jZkTcZ3JUHm89Boh0RlEYPbMCaWgsdfUKb8sHwobPxE/tlVtWKMpyk/kQ2Hjw+Wn7LJ8KGx8uOyE3coPLNqD4DeqJJqi/EQ+FDZ+bH78pNDBVX6PjZ9lf1ui7LJ8KGz81OwaSqIpyk/kQ2Hjw+YHnGxSgFLGti6C5yxQxI+OEJxD7LMMTikmdCxTie3I7dy+Mm1nF3eIZHPNccT5PE0BmUT64ljuSEX8A6SImFwh3OXar0z5iTSVn/LLM7Eld+VXAFJ2Is2HzK6hRPlB2M3OVH7Kry3K72nx07avPJ+n+ZDZNZQoPwi72ZmPgJ+TE64UCC+FCPvFJYuNlIkuk0Nm8ZmiEE9mJMs5PuNCKR5Pi5jjcvtaDk2Up5f0RHtZ3No1HewI3NZWHGZEHp6cwJbR2UY4XCu4KWnlp/yUXxGHGXEMfjWEyu5xsGuJ8lN+yk/5Kb9xfjWEyu5xsGuJ8nvc/IBTTgr41HMDeMakffeHikwtHYOdIDKnlcm5Y/DQMccQYIVjtJ1OpFF1kExXrqe23wqrSJ4GFwtEr+AFtfUJdeVX0ZPryvXU9lthFVF+T49fU4+ye/DstOwx3crPhyk/7AuriPJ7evyaepTdg2enZY/p/oz4ASf8JGFuYJnJ4giIZbAL5Tmaw2cbMRqBipjEomXQuJOJsCxt5gz8OoRT8zSqTpE5SLHPdIootZJVCW9K+iwTvwbLPKJWRys/5af8Pg6/XJTd42GnZU/5hUPKT5qu/JSftn257Z8POy17nx+/ICf9JGE0IM8JDsb/aTpG5gjIgkkcyzI9z0yfTtUxuItFZxlzDO4g3Bl4WiweC0z25Q5RwV5zkux4lKK+lTYGZzncuZgW5VexT/kpP7Z9An7KTl7DY2IXtSi/in3KT/mxbeWn/GoalF3FvofPLmpRfhX7Hja/k04KxNmIAqp0DJ5jMivLi8gzWoRXMl68VTLTl88QpV9+sOYY0vbcwbnDlttMT3Nf5lP9kiuAiyDnLWmCKNhq4+GRVSTKT/mNmKj8CvkAfi1Rdg+fnZY95af8lJ/yqwVp25f0f37stOx9vvxO+04BVOwl9sMzt34QeQy3l7kYPw2UnJLrCJCJx6HMQfg+PDTuMMka/nKJaA99qHNUCkItLNp/qNwpcvVM5ZdvB70yT5Sf8ivlgMiVKMrukbDbc6byy7eDXpknyk/5laL8Pnt+lSjK7pGw23Om8su3g16ZJw+NH/CRHh8IMm4qCZ8gGVpmVrFJZXgI4rM+3DG4BuJp8pPlfnlMOk/hDCTTEXAPnCmiPNIdhfg3Ky1gkV3boXr2HFV+yk/5lTLG71B9yu7hsdOyp/zCUeWn/JRfKdr2fZ7stOx9vvxOPingnmXgIiuFunEl6PxQ3Mn2426cIap4S8uGbCNPXsDOnTXucUerhQVTMu25o4jLKzNi78yRWCIiSxL5dSVjS0iYGuWn/IpDyRi5r/y8HIGfssvDgikPn12Io/yUX80U5Tciyu/J81N2eVgw5eGzC3GU3+Pkd/JJgb18fQDtPU7V+JQHNHQULPhv+gMSyoMjlODqM1nSMZgXCacddZJo6wc4hDRQauDOEme/9hdv5af8lF/9GkblQH5jKpXdw2Z3gJr9YcqvYqvyE/vKT/mJ8z8PfmMqld3DZneAmv1hyq9i66fnd7pJASo2WhGyoPEcyEHwU2k0TZ8hpVfwozEoweeJZE7CHUP8MIegShhaTlG/9vHrOlAoVcL8BRTt+PviKL/CQuU3kqbyO5ifsnu87MQh5af8eBTl90Gi/J4OP2X3eNmJQ8rvUfLDyVcK7AM9Ek/kbA0Ai5gRyzNTZjpb2sHTyfVmjpc7Se4YFNPlTtBaRpJdQc0pqGpVdl7zUJweqi0loQPeAJufM35U+RWi/GJM5Sf1HMZP2T1eduNpZxobB5Wf8lN+eZrK7ynwU3aPl9142pnGxkHl9yn5fdQXDcaroTznESHxDJQZLLd4ZvNM5I5BJDOesvSJp0nJFp4yd4ywTdwWYudHuzL9mU3iPJE9ddpl8Hih41FkTCsOls/97NOp/JSfj6z8xuVAfgeLsntw7LTsKb/0q/xqovxCssqPh2rb97jZadn7fPmdcFKARvb2HKlFrirIPYQ7QhYz3y9OY65IQhOLVyopAFcTKLcPcQwqlNWlGc3mmyQOUh5U17rHAuXnVCs/5ZcdOITfuMY9qSs7p1rLnvLLDig/Fl5XovyUn1P9ifiNa9yTurJzqrXsKb/swL34feyVAqNSz8XCdpLhDOlILvGYfHcknRp55E7CzyehU9hV2RY6Kd9vXUPV9LaMOCMswdL4y17uJsov7beuoWp6W5RfXctnxO84ouzSfusaqqa3RcteXYvyG09M+TWuoWp6W5RfXctnxO84ouzSfusaqqa3RcteXcsT4fcgJgXKrG7AGt1nerJDlCkWhwXQikOQxF2VvaDqjuZs2+8YbWe4a9FkFTEBZNt23UWUX26r8hPhys/L8fkpu9zWx8OOW6H8lB+g/Nqi/KryhPkpu9zWx8OOW6H8Hha/k08KWFjEuZLGwwwhOB62FrZ49sIfTZHqytzp0iGqUctnO8SRihMxFwJ/NiR/CiYCZr8xBiWF3MY7zxp9UKHMc3T/jJ/yU34ilvJjx+8qJb8xUXYPm52WPeWn/JSfiKn8WmeJPW37Hjc7LXufL7/TTAoQQLAgMoxLyoyUPzyD2emZxTyjiNJ+1MczmcMgKvZFuhTPcNuUu0yBPRoa7c6MEC+4SGcJew/b5lbwjXGvOMRnLIBhGGBMXgKSEuWn/OS+8jsJv4oCZfdI2GnZE0YoP+WXi/JTfly07QuqHjk7LXvCiM+Cn5fTTApYYABA1gqwzlFIxCuN46Sl6xCnWMSXimyGuWXnQblZt240XPpMO5HRQiE2qBFe09lKj712whBgpTPzaMqP/yq/tKv8jsovj6vsHg87LXvVcOUH5Sc2lF/1cp46P237Hi87LXvV8EfNz8vJVgoYEIZhAHUG3gp/jYxIzS5+PFtgko5IqvxoEYfycGlny/7qPmUp535e91MXxE4iQsoPyO2aM0l+JJMYce7yUPJYY52j2KF+ovLLVCg/5ceUH4tfLYqyy1Q8UHZa9pgNyk/5KT/l1zykbd/nxE7LHrPhc+Hn5SSTAs+eXf78n/7zf/nfp9CtchL5ge8ov0cnyu/xirJ73KL8Hrcov8ctyu/xirJ73KL8Hrf8UAsk25q1U1FRUVFRUVFRUVFRUVFR+azFfGoDVFRUVFRUVFRUVFRUVFRUPo3opICKioqKioqKioqKioqKyhMVnRRQUVFRUVFRUVFRUVFRUXmiopMCKioqKioqKioqKioqKipPVHRSQEVFRUVFRUVFRUVFRUXlicr/B6OipDWTmLJ1AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "b = 0\n", "obj_idx = highest_kl_obj_idx\n", "interesting_latents = [3, 4, 26, 43, 56, 57, 61, 28]\n", "\n", "\n", "fig, axes = plt.subplots(nrows=len(interesting_latents), ncols=9, sharex=True, sharey=True, figsize=(18, len(interesting_latents)*2))\n", "for row, lat in enumerate(interesting_latents):\n", " z_adjusted = rinfo['latent']['z'][b:b+1, -1].copy()\n", " for col, val in enumerate(np.linspace(-1.25, 1.25, 9)):\n", " z_adjusted[b, obj_idx, lat] = val\n", " rimg = sess.run(img, feed_dict={z_placeholder:z_adjusted})\n", " plotting.show_img(rimg[0, 0], ax=axes[row, col])\n", " axes[row, 0].set_ylabel(lat)\n", "plt.subplots_adjust(wspace=0.01, hspace=0.01)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Prior-samples\n", "We can also sample a few `z` from the prior and decode them." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "samples = model.get_sample_images()\n", "rsamples = sess.run(samples)\n", "\n", "fig, ax = plt.subplots(figsize=(12, 12))\n", "ax.imshow(rsamples[0])\n", "_ = ax.axis('off')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Running on a custom image\n", "To run IODINE on a custom image we need a set of placeholders. Then we can just evaluate it as usual:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Get a set of placeholders for the dataset and evaluate the model using that\n", "input_ph = dataset.get_placeholders()\n", "custom_info = model.eval(input_ph)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Construct zero-valued fillers for all placeholders\n", "sg = ShapeGuard()\n", "sg.guard(input_ph['image'], \"B, 1, H, W, C\")\n", "sg.guard(input_ph['mask'], \"B, 1, L, H, W, 1\")\n", " \n", "fillers = {\n", " input_ph['image']: np.zeros(sg['1, 1, H, W, C']),\n", " input_ph['mask']: np.zeros(sg['1, 1, L, H, W, 1']),\n", " input_ph['latent']['color']: np.zeros(sg[\"1, L, 1\"]),\n", " input_ph['latent']['shape']: np.zeros(sg[\"1, L, 1\"]),\n", " input_ph['latent']['size']: np.zeros(sg[\"1, L, 1\"]),\n", " input_ph['latent']['position']: np.zeros(sg[\"1, L, 3\"]),\n", " input_ph['latent']['rotation']: np.zeros(sg[\"1, L, 1\"]),\n", " input_ph['visibility']: np.zeros(sg[\"1, L\"]),\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can evaluate the model on any custom image like this real-world replica of the CLEVR dataset\n", "\n", "![Realworld CLEVR](images/realworld_clevr.png)\n", "\n", "(From [\"Neural-Symbolic VQA: Disentangling Reasoning from Vision and Language Understanding\"](https://www.semanticscholar.org/paper/Neural-Symbolic-VQA%3A-Disentangling-Reasoning-from-Yi-Wu/9d15ebe3f5aaf32a9f835f88703241461324c35b/figure/16) Kexin Yi, Jiajun Wu, Chuang Gan, Antonio Torralba, Pushmeet Kohli, Joshua B. Tenenbaum)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "img = np.array(Image.open('images/realworld_clevr.png')) / 255.\n", "fillers[input_ph['image']] = img.reshape(sg['1, 1, H, W, C'])\n", "custom_rinfo = sess.run(custom_info, feed_dict=fillers)\n", "fig = plotting.iterations_plot(custom_rinfo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Getting detailed information\n", "The info returned by `model.eval()` contains many variables from all components and iterations.\n", "For a rough overview see the following sketch:\n", "\n", "![Overview of Variables](images/code_overview.svg)\n", "\n", "\n", "\n", "Dimensions:\n", "\n", "* `B`: batch-size\n", "* `T`: number of iterations + 1\n", "* `K`: number of components\n", "* `L`: maximum number of ground-truth objects\n", "* `H`: image height\n", "* `W`: image width\n", "* `C`: image channels (usually 3 for RGB)\n", "* `Z`: size of latent representation\n", "\n", "Content of `info`:\n", " \n", "* data: Inputs from the dataset (for the CLEVR dataset)\n", " * image: `(B, 1, H, W, C)` Input Image (For sequential data this has dimension `(B, T, H, W, C)`)\n", " * true_mask: `(B, 1, L, H, W, 1)` ground truth mask (used for ARI and factor regressor only)\n", " * visibility: `(B, L)` How many object are in this scene\n", " * factors: Information about true factors (used to train the factor regressor)\n", " * color: `(B, L, 1)` The color of each object (categorical 9 choices)\n", " * position: `(B, L, 3)` The position of each object (x, y, z)\n", " * shape: `(B, L, 1)` The shape of each object (categorical 4 choices)\n", " * size: `(B, L, 1)` The size of each object (categorical 3 choices)\n", "* inputs: Inputs to the refinement network\n", " * flat:\n", " * dzp: `(B, T, K, 2*Z)`\n", " * flat_capacity: `(B, T, K, 1)`\n", " * zp: `(B, T, K, 2*Z)`\n", " * spatial:\n", " * capacity: `(B, T, K, H, W, 1)`\n", " * components: `(B, T, K, H, W, C)`\n", " * coordinates: `(B, T, 1, H, W, 2)`\n", " * counterfactual: `(B, T, K, H, W, 1)`\n", " * dcomponents: `(B, T, K, H, W, C)`\n", " * dmask: `(B, T, K, H, W, 1)`\n", " * image: `(B, T, 1, H, W, C)`\n", " * log_prob: `(B, T, 1, H, W, 1)`\n", " * posterior: `(B, T, K, H, W, 1)`\n", " * pred_mask: `(B, T, K, H, W, 1)`\n", " * pred_mask_logits: `(B, T, K, H, W, 1)`\n", "* latent: \n", " * z: `(B, T, K, Z)`\n", " * z_mean: `(B, T, K, Z)`\n", " * z_stddev: `(B, T, K, Z)`\n", "* outputs: Output of the decoder network\n", " * components: `(B, T, K, H, W, C)` Predicted means for each component.\n", " * pred_mask: `(B, T, K, H, W, 1)` Predicted mask\n", " * pred_mask_logits: `(B, T, K, H, W, 1)` Predicted mask logits (pre-softmax) for each component\n", " * recons: `(B, T, 1, H, W, C)` image reconstruction (mean of the spatial mixture)\n", "* losses:\n", " * total: float\n", " * recons: `(B, T)`\n", " * kl: `(B, T, K)`\n", " * factor: `(T,)`\n", "* metrics\n", " * ari: `(B, T)`\n", " * kl: `(B, T, K)`\n", " * mse: `(B, T)`\n", "* factor_regressor\n", " * assignment: `(B, T, L, K)`\n", " * predictions: \n", " * color: `(B, T, L, 9)`\n", " * position: `(B, T, L, 3)`\n", " * shape: `(B, T, L, 4)`\n", " * size: `(B, T, L, 3)`\n", " * metrics:\n", " * color: `(T,)` Color prediction accuracy\n", " * shape: `(T,)` Shape prediction accuracy\n", " * size: `(T,)` Size prediction accuracy\n", " * position: `(T,)` R^2 metric for position prediction\n", "" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "out_info:\n", " data:\n", " image: [1, 1, 128, 128, 3] @ \n", " true_mask: [1, 1, 11, 128, 128, 1] @ \n", " visibility: [1, 11] @ \n", " factors:\n", " color: [1, 11, 1] @ \n", " position: [1, 11, 3] @ \n", " rotation: [1, 11, 1] @ \n", " shape: [1, 11, 1] @ \n", " size: [1, 11, 1] @ \n", " factor_regressor:\n", " assignment: [1, 6, 11, 7] @ \n", " metrics:\n", " color: [6] @ \n", " position: [6] @ \n", " shape: [6] @ \n", " size: [6] @ \n", " predictions:\n", " color: [1, 6, 11, 9] @ \n", " position: [1, 6, 11, 3] @ \n", " shape: [1, 6, 11, 4] @ \n", " size: [1, 6, 11, 3] @ \n", " inputs:\n", " flat:\n", " dzp: [1, 6, 7, 128] @ \n", " flat_capacity: [1, 6, 7, 1] @ \n", " zp: [1, 6, 7, 128] @ \n", " spatial:\n", " capacity: [1, 6, 7, 128, 128, 1] @ \n", " components: [1, 6, 7, 128, 128, 3] @ \n", " coordinates: [1, 6, 1, 128, 128, 2] @ \n", " counterfactual: [1, 6, 7, 128, 128, 1] @ \n", " dcomponents: [1, 6, 7, 128, 128, 3] @ \n", " dmask: [1, 6, 7, 128, 128, 1] @ \n", " image: [1, 6, 1, 128, 128, 3] @ \n", " log_prob: [1, 6, 1, 128, 128, 1] @ \n", " mask: [1, 6, 7, 128, 128, 1] @ \n", " posterior: [1, 6, 7, 128, 128, 1] @ \n", " pred_mask: [1, 6, 7, 128, 128, 1] @ \n", " latent:\n", " z: [1, 6, 7, 64] @ \n", " z_mean: [1, 6, 7, 64] @ \n", " z_std: [1, 6, 7, 64] @ \n", " losses:\n", " factor: [6] @ \n", " kl: [1, 6, 1, 7] @ \n", " recons: [6, 1, 1] @ \n", " total: [] @ \n", " metrics:\n", " ari: [1, 6] @ \n", " ari_nobg: [1, 6] @ \n", " mse: [1, 6] @ \n", " outputs:\n", " components: [1, 6, 7, 128, 128, 3] @ \n", " pred_mask: [1, 6, 7, 128, 128, 1] @ \n", " pred_mask_logits: [1, 6, 7, 128, 128, 1] @ \n", " recons: [1, 6, 1, 128, 128, 3] @ \n" ] } ], "source": [ "utils.print_shapes('out_info', info)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "pycharm": { "stem_cell": { "cell_type": "raw", "source": [], "metadata": { "collapsed": false } } } }, "nbformat": 4, "nbformat_minor": 4 } ================================================ FILE: iodine/README.md ================================================ # IODINE Reference implementation for the paper ["Multi-Object Representation Learning with Iterative Variational Inference"](https://arxiv.org/abs/1903.00450). This repository contains: * An IODINE implementation in Tensorflow v1. * Configurations used in the paper (checkpoints available in Cloud Storage) for: * CLEVR * Multi-dSprites * Tetrominoes * A notebook for running and inspecting the model and plotting the results ## Installation 1. Clone the DeepMind research repository: ``` bash git clone https://github.com/deepmind/deepmind-research.git cd deepmind-research ``` 2. Download the checkpoints from GCP. A shell script is provided: ```bash ./iodine/download_checkpoints.sh ``` On platforms without wget, the files can be downloaded from [this webpage](https://console.cloud.google.com/storage/browser/deepmind-research-iodine?pli=1) and the unzipped `checkpoints/` folder should be placed in `deepmind-research/iodine/checkpoints`. 3. Prepare a Python 3 environment - virtualenv is recommended. ```bash python3 -m venv iodine_venv source iodine_venv/bin/activate ``` 4. Install dependencies: ```bash pip3 install -r iodine/requirements.txt ``` 5. The `multi_object_datasets` package installed via requirements.txt provides python code to open the data files, but not the data files themselves. Download the desired datasets either manually from the [Google Cloud Storage](https://console.cloud.google.com/storage/browser/multi-object-datasets) or using the commands below: ```bash pushd iodine/multi_object_datasets # CLEVR wget https://storage.googleapis.com/multi-object-datasets/clevr_with_masks/clevr_with_masks_train.tfrecords # Multi-dSprites wget https://storage.googleapis.com/multi-object-datasets/multi_dsprites/multi_dsprites_colored_on_grayscale.tfrecords # Tetrominoes wget https://storage.googleapis.com/multi-object-datasets/tetrominoes/tetrominoes_train.tfrecords # Get back to location containing 'iodine' directory popd ``` See [multi_object_datasets repository](https://github.com/deepmind/multi_object_datasets) for further details. 6. Make sure that you have CUDA 10 and CuDNN 7 installed ## Interact with a Model Use the jupyter notebook `Eval.ipynb` to load and run one of the checkpoints. It also contains code to plot the outputs and latent traversals. ## Train a Model To train your own model use the [Sacred](https://github.com/IDSIA/sacred) experiment defined in `main.py`. The configurations used in the paper for the different datasets are available as [named configs](https://sacred.readthedocs.io/en/latest/configuration.html#named-configurations) inside of `configuration.py`. ### Train a new model * CLEVR6 ```bash python3 -m iodine.main -f with clevr6 ``` * Multi-dSprites ```bash python3 -m iodine.main -f with multi_dsprites ``` * Tetrominoes ```bash python3 -m iodine.main -f with tetrominoes ``` It is recommended to add an observer to your run to let Sacred record the details of run. To add a [FileStorageObserver](https://sacred.readthedocs.io/en/latest/command_line.html#filestorage-observer) add `-F my_storage_dir`, and add `-m my_db_name` for a [MongoObserver](https://sacred.readthedocs.io/en/latest/command_line.html#mongodb-observer). ### Adjusting Config Values The experiment has a configuration that can be printed and adjusted from the commandline. E.g.: ``` bash # print configuration python3 -m iodine.main -f print_config with clevr6 # run experiment after adjusting batch_size and the size of the shuffle buffer python3 -m iodine.main -f with clevr6 batch_size=2 data.shuffle_buffer=100 ``` ### Tensorboard Each run stores checkpoints and summaries in the directory specified by `checkpoint_dir`, to which a suffix based on the run_id is appended. If an observer is added the `run_id` is set automatically. Otherwise it should be set manually using e.g. `run_id=5`. Summaries can be viewed using tensorboard. E.g. like this for clevr6 (assuming `run_id=1`): ```bash tensorboard --log-dir iodine/checkpoints/clevr6_1 ``` ### Continue Previous Run To continue a previous run pass `continue_run=True` and the path of the checkpoints: ```bash python3 -m iodine.main -f with clevr6 checkpoint_dir=iodine/checkpoints/clevr6_1 ``` ## Code Structure The main experiment defined in `main.py` uses `sacred` and the configurations for the different datasets are added as named configs and can be found in `configuration.py`. The model implementation can be found in the `modules` directory and is based on `tensorflow` and `sonnet`: * `iodine.py` The main IODINE module that assembles the decoder, refinement network, distributions and factor regressor. * `decoder.py` The ComponentDecoder which is a wrapper around networks that takes care of splitting the output channels into means and masks. * `refinement.py` The refinement components assembles the encoder network, LSTM and refinement head. * `networks.py` Different standard networks such as CNN, BroadcastCNN, and LSTM. * `distribution.py` Definition of the latent and pixel distributions. * `factor_eval.py` Contains the factor regressor which predicts the true factors from the inferred object latents. * `data.py` Dataset wrappers around `multi_object_datasets` that take care of shuffling, batching and preprocessing. * `plotting.py` Helper functions for plotting results. * `utils.py` General helper functions. --- **DISCLAIMER** This is not an officially supported Google product. --- ================================================ FILE: iodine/configurations.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Configurations for IODINE.""" # pylint: disable=missing-docstring, unused-variable import math def clevr6(): n_z = 64 # number of latent dimensions num_components = 7 # number of components (K) num_iters = 5 checkpoint_dir = "iodine/checkpoints/clevr6" # For the paper we used 8 GPUs with a batch size of 4 each. # This means a total batch size of 32, which is too large for a single GPU. # When reducing the batch size, the learning rate should also be lowered. batch_size = 4 learn_rate = 0.001 * math.sqrt(batch_size / 32) data = { "constructor": "iodine.modules.data.CLEVR", "batch_size": batch_size, "path": "multi_object_datasets/clevr_with_masks_train.tfrecords", "max_num_objects": 6, } model = { "constructor": "iodine.modules.iodine.IODINE", "n_z": n_z, "num_components": num_components, "num_iters": num_iters, "iter_loss_weight": "linspace", "coord_type": "linear", "decoder": { "constructor": "iodine.modules.decoder.ComponentDecoder", "pixel_decoder": { "constructor": "iodine.modules.networks.BroadcastConv", "cnn_opt": { # Final channels is irrelevant with target_output_shape "output_channels": [64, 64, 64, 64, None], "kernel_shapes": [3], "strides": [1], "activation": "elu", }, "coord_type": "linear", }, }, "refinement_core": { "constructor": "iodine.modules.refinement.RefinementCore", "encoder_net": { "constructor": "iodine.modules.networks.CNN", "mode": "avg_pool", "cnn_opt": { "output_channels": [64, 64, 64, 64], "strides": [2], "kernel_shapes": [3], "activation": "elu", }, "mlp_opt": { "output_sizes": [256, 256], "activation": "elu" }, }, "recurrent_net": { "constructor": "iodine.modules.networks.LSTM", "hidden_sizes": [256], }, "refinement_head": { "constructor": "iodine.modules.refinement.ResHead" }, }, "latent_dist": { "constructor": "iodine.modules.distributions.LocScaleDistribution", "dist": "normal", "scale_act": "softplus", "scale": "var", "name": "latent_dist", }, "output_dist": { "constructor": "iodine.modules.distributions.MaskedMixture", "num_components": num_components, "component_dist": { "constructor": "iodine.modules.distributions.LocScaleDistribution", "dist": "logistic", "scale": "fixed", "scale_val": 0.03, "name": "pixel_distribution", }, }, "factor_evaluator": { "constructor": "iodine.modules.factor_eval.FactorRegressor", "mapping": [ ("color", 9, "categorical"), ("shape", 4, "categorical"), ("size", 3, "categorical"), ("position", 3, "scalar"), ], }, } optimizer = { "constructor": "tensorflow.train.AdamOptimizer", "learning_rate": { "constructor": "tensorflow.train.exponential_decay", "learning_rate": learn_rate, "global_step": { "constructor": "tensorflow.train.get_or_create_global_step" }, "decay_steps": 1000000, "decay_rate": 0.1, }, "beta1": 0.95, } def multi_dsprites(): n_z = 16 # number of latent dimensions num_components = 6 # number of components (K) num_iters = 5 checkpoint_dir = "iodine/checkpoints/multi_dsprites" # For the paper we used 8 GPUs with a batch size of 16 each. # This means a total batch size of 128, which is too large for a single GPU. # When reducing the batch size, the learning rate should also be lowered. batch_size = 16 learn_rate = 0.0003 * math.sqrt(batch_size / 128) data = { "constructor": "iodine.modules.data.MultiDSprites", "batch_size": batch_size, "path": "multi_object_datasets/multi_dsprites_colored_on_grayscale.tfrecords", "dataset_variant": "colored_on_grayscale", "min_num_objs": 3, "max_num_objs": 3, } model = { "constructor": "iodine.modules.iodine.IODINE", "n_z": n_z, "num_components": num_components, "num_iters": num_iters, "iter_loss_weight": "linspace", "coord_type": "cos", "coord_freqs": 3, "decoder": { "constructor": "iodine.modules.decoder.ComponentDecoder", "pixel_decoder": { "constructor": "iodine.modules.networks.BroadcastConv", "cnn_opt": { # Final channels is irrelevant with target_output_shape "output_channels": [32, 32, 32, 32, None], "kernel_shapes": [5], "strides": [1], "activation": "elu", }, "coord_type": "linear", }, }, "refinement_core": { "constructor": "iodine.modules.refinement.RefinementCore", "encoder_net": { "constructor": "iodine.modules.networks.CNN", "mode": "avg_pool", "cnn_opt": { "output_channels": [32, 32, 32], "strides": [2], "kernel_shapes": [5], "activation": "elu", }, "mlp_opt": { "output_sizes": [128], "activation": "elu" }, }, "recurrent_net": { "constructor": "iodine.modules.networks.LSTM", "hidden_sizes": [128], }, "refinement_head": { "constructor": "iodine.modules.refinement.ResHead" }, }, "latent_dist": { "constructor": "iodine.modules.distributions.LocScaleDistribution", "dist": "normal", "scale_act": "softplus", "scale": "var", "name": "latent_dist", }, "output_dist": { "constructor": "iodine.modules.distributions.MaskedMixture", "num_components": num_components, "component_dist": { "constructor": "iodine.modules.distributions.LocScaleDistribution", "dist": "logistic", "scale": "fixed", "scale_val": 0.03, "name": "pixel_distribution", }, }, "factor_evaluator": { "constructor": "iodine.modules.factor_eval.FactorRegressor", "mapping": [ ("color", 3, "scalar"), ("shape", 4, "categorical"), ("scale", 1, "scalar"), ("x", 1, "scalar"), ("y", 1, "scalar"), ("orientation", 2, "angle"), ], }, } optimizer = { "constructor": "tensorflow.train.AdamOptimizer", "learning_rate": { "constructor": "tensorflow.train.exponential_decay", "learning_rate": learn_rate, "global_step": { "constructor": "tensorflow.train.get_or_create_global_step" }, "decay_steps": 1000000, "decay_rate": 0.1, }, "beta1": 0.95, } def tetrominoes(): n_z = 32 # number of latent dimensions num_components = 4 # number of components (K) num_iters = 5 checkpoint_dir = "iodine/checkpoints/tetrominoes" # For the paper we used 8 GPUs with a batch size of 32 each. # This means a total batch size of 256, which is too large for a single GPU. # When reducing the batch size, the learning rate should also be lowered. batch_size = 128 learn_rate = 0.0003 * math.sqrt(batch_size / 256) data = { "constructor": "iodine.modules.data.Tetrominoes", "batch_size": batch_size, "path": "iodine/multi_object_datasets/tetrominoes_train.tfrecords", } model = { "constructor": "iodine.modules.iodine.IODINE", "n_z": n_z, "num_components": num_components, "num_iters": num_iters, "iter_loss_weight": "linspace", "coord_type": "cos", "coord_freqs": 3, "decoder": { "constructor": "iodine.modules.decoder.ComponentDecoder", "pixel_decoder": { "constructor": "iodine.modules.networks.BroadcastConv", "cnn_opt": { # Final channels is irrelevant with target_output_shape "output_channels": [32, 32, 32, 32, None], "kernel_shapes": [5], "strides": [1], "activation": "elu", }, "coord_type": "linear", "coord_freqs": 3, }, }, "refinement_core": { "constructor": "iodine.modules.refinement.RefinementCore", "encoder_net": { "constructor": "iodine.modules.networks.CNN", "mode": "avg_pool", "cnn_opt": { "output_channels": [32, 32, 32], "strides": [2], "kernel_shapes": [5], "activation": "elu", }, "mlp_opt": { "output_sizes": [128], "activation": "elu" }, }, "recurrent_net": { "constructor": "iodine.modules.networks.LSTM", "hidden_sizes": [], # No recurrent layer used for this dataset }, "refinement_head": { "constructor": "iodine.modules.refinement.ResHead" }, }, "latent_dist": { "constructor": "iodine.modules.distributions.LocScaleDistribution", "dist": "normal", "scale_act": "softplus", "scale": "var", "name": "latent_dist", }, "output_dist": { "constructor": "iodine.modules.distributions.MaskedMixture", "num_components": num_components, "component_dist": { "constructor": "iodine.modules.distributions.LocScaleDistribution", "dist": "logistic", "scale": "fixed", "scale_val": 0.03, "name": "pixel_distribution", }, }, "factor_evaluator": { "constructor": "iodine.modules.factor_eval.FactorRegressor", "mapping": [ ("position", 2, "scalar"), ("color", 3, "scalar"), ("shape", 20, "categorical"), ], }, } optimizer = { "constructor": "tensorflow.train.AdamOptimizer", "learning_rate": { "constructor": "tensorflow.train.exponential_decay", "learning_rate": learn_rate, "global_step": { "constructor": "tensorflow.train.get_or_create_global_step" }, "decay_steps": 1000000, "decay_rate": 0.1, }, "beta1": 0.95, } ================================================ FILE: iodine/download_checkpoints.sh ================================================ #!/bin/bash # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. pushd iodine wget http://storage.googleapis.com/deepmind-research-iodine/iodine_checkpoints.zip unzip iodine_checkpoints.zip popd ================================================ FILE: iodine/main.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # pylint: disable=g-importing-member, g-multiple-import, g-import-not-at-top # pylint: disable=protected-access, g-bad-import-order, missing-docstring # pylint: disable=unused-variable, invalid-name, no-value-for-parameter from copy import deepcopy import os.path import warnings from absl import logging import numpy as np from sacred import Experiment, SETTINGS # Ignore all tensorflow deprecation warnings logging._warn_preinit_stderr = 0 warnings.filterwarnings("ignore", module=".*tensorflow.*") import tensorflow.compat.v1 as tf tf.logging.set_verbosity(tf.logging.ERROR) import sonnet as snt from sacred.stflow import LogFileWriter from iodine.modules import utils from iodine import configurations SETTINGS.CONFIG.READ_ONLY_CONFIG = False ex = Experiment("iodine") @ex.config def default_config(): continue_run = False # set to continue experiment from an existing checkpoint checkpoint_dir = ("checkpoints/iodine" ) # if continue_run is False, "_{run_id}" will be appended save_summaries_steps = 10 save_checkpoint_steps = 1000 n_z = 64 # number of latent dimensions num_components = 7 # number of components (K) num_iters = 5 learn_rate = 0.001 batch_size = 4 stop_after_steps = int(1e6) # Details for the dataset, model and optimizer are left empty here. # They can be found in the configurations for individual datasets, # which are provided in configurations.py and added as named configs. data = {} # Dataset details will go here model = {} # Model details will go here optimizer = {} # Optimizer details will go here ex.named_config(configurations.clevr6) ex.named_config(configurations.multi_dsprites) ex.named_config(configurations.tetrominoes) @ex.capture def build(identifier, _config): config_copy = deepcopy(_config[identifier]) return utils.build(config_copy, identifier=identifier) def get_train_step(model, dataset, optimizer): loss, scalars, _ = model(dataset("train")) global_step = tf.train.get_or_create_global_step() grads = optimizer.compute_gradients(loss) gradients, variables = zip(*grads) global_norm = tf.global_norm(gradients) gradients, global_norm = tf.clip_by_global_norm( gradients, 5.0, use_norm=global_norm) grads = zip(gradients, variables) train_op = optimizer.apply_gradients(grads, global_step=global_step) with tf.control_dependencies([train_op]): overview = model.get_overview_images(dataset("summary")) scalars["debug/global_grad_norm"] = global_norm summaries = { k: tf.summary.scalar(k, v) for k, v in scalars.items() } summaries.update( {k: tf.summary.image(k, v) for k, v in overview.items()}) return tf.identity(global_step), scalars, train_op @ex.capture def get_checkpoint_dir(continue_run, checkpoint_dir, _run, _log): if continue_run: assert os.path.exists(checkpoint_dir) _log.info("Continuing run from checkpoint at {}".format(checkpoint_dir)) return checkpoint_dir run_id = _run._id if run_id is None: # then no observer was added that provided an _id if not _run.unobserved: _log.warning( "No run_id given or provided by an Observer. (Re-)using run_id=1.") run_id = 1 checkpoint_dir = checkpoint_dir + "_{run_id}".format(run_id=run_id) _log.info( "Starting a new run using checkpoint dir: '{}'".format(checkpoint_dir)) return checkpoint_dir @ex.capture def get_session(chkp_dir, loss, stop_after_steps, save_summaries_steps, save_checkpoint_steps): config = tf.ConfigProto() config.gpu_options.allow_growth = True hooks = [ tf.train.StopAtStepHook(last_step=stop_after_steps), tf.train.NanTensorHook(loss), ] return tf.train.MonitoredTrainingSession( hooks=hooks, config=config, checkpoint_dir=chkp_dir, save_summaries_steps=save_summaries_steps, save_checkpoint_steps=save_checkpoint_steps, ) @ex.command(unobserved=True) def load_checkpoint(use_placeholder=False, session=None): dataset = build("data") model = build("model") if use_placeholder: inputs = dataset.get_placeholders() else: inputs = dataset() info = model.eval(inputs) if session is None: session = tf.Session() saver = tf.train.Saver() checkpoint_dir = get_checkpoint_dir() checkpoint_file = tf.train.latest_checkpoint(checkpoint_dir) saver.restore(session, checkpoint_file) print('Successfully restored Checkpoint "{}"'.format(checkpoint_file)) # print variables variables = tf.global_variables() + tf.local_variables() for row in snt.format_variables(variables, join_lines=False): print(row) return { "session": session, "model": model, "info": info, "inputs": inputs, "dataset": dataset, } @ex.automain @LogFileWriter(ex) def main(save_summaries_steps): checkpoint_dir = get_checkpoint_dir() dataset = build("data") model = build("model") optimizer = build("optimizer") gstep, train_step_exports, train_op = get_train_step(model, dataset, optimizer) loss, ari = [], [] with get_session(checkpoint_dir, train_step_exports["loss/total"]) as sess: while not sess.should_stop(): out = sess.run({ "step": gstep, "loss": train_step_exports["loss/total"], "ari": train_step_exports["loss/ari_nobg"], "train": train_op, }) loss.append(out["loss"]) ari.append(out["ari"]) step = out["step"] if step % save_summaries_steps == 0: mean_loss = np.mean(loss) mean_ari = np.mean(ari) ex.log_scalar("loss", mean_loss, step) ex.log_scalar("ari", mean_ari, step) print("{step:>6d} Loss: {loss: >12.2f}\t\tARI-nobg:{ari: >6.2f}".format( step=step, loss=mean_loss, ari=mean_ari)) loss, ari = [], [] ================================================ FILE: iodine/modules/__init__.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: iodine/modules/data.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Data loading functionality for IODINE.""" # pylint: disable=g-multiple-import, missing-docstring, unused-import import os.path from iodine.modules.utils import flatten_all_but_last, ensure_3d from multi_object_datasets import ( clevr_with_masks, multi_dsprites, tetrominoes, objects_room, ) from shapeguard import ShapeGuard import sonnet as snt import tensorflow.compat.v1 as tf class IODINEDataset(snt.AbstractModule): num_true_objects = 1 num_channels = 3 factors = {} def __init__( self, path, batch_size, image_dim, crop_region=None, shuffle_buffer=1000, max_num_objects=None, min_num_objects=None, grayscale=False, name="dataset", **kwargs, ): super().__init__(name=name) self.path = os.path.abspath(os.path.expanduser(path)) self.batch_size = batch_size self.crop_region = crop_region self.image_dim = image_dim self.shuffle_buffer = shuffle_buffer self.max_num_objects = max_num_objects self.min_num_objects = min_num_objects self.grayscale = grayscale self.dataset = None def _build(self, subset="train"): dataset = self.dataset # filter by number of objects if self.max_num_objects is not None or self.min_num_objects is not None: dataset = self.dataset.filter(self.filter_by_num_objects) if subset == "train": # normal mode returns a shuffled dataset iterator if self.shuffle_buffer is not None: dataset = dataset.shuffle(self.shuffle_buffer) elif subset == "summary": # for generating summaries and overview images # returns a single fixed batch dataset = dataset.take(self.batch_size) # repeat and batch dataset = dataset.repeat().batch(self.batch_size, drop_remainder=True) iterator = dataset.make_one_shot_iterator() data = iterator.get_next() # preprocess the data to ensure correct format, scale images etc. data = self.preprocess(data) return data def filter_by_num_objects(self, d): if "visibility" not in d: return tf.constant(True) min_num_objects = self.max_num_objects or 0 max_num_objects = self.max_num_objects or 6 min_predicate = tf.greater_equal( tf.reduce_sum(d["visibility"]), tf.constant(min_num_objects - 1e-5, dtype=tf.float32), ) max_predicate = tf.less_equal( tf.reduce_sum(d["visibility"]), tf.constant(max_num_objects + 1e-5, dtype=tf.float32), ) return tf.logical_and(min_predicate, max_predicate) def preprocess(self, data): sg = ShapeGuard(dims={ "B": self.batch_size, "H": self.image_dim[0], "W": self.image_dim[1] }) image = sg.guard(data["image"], "B, h, w, C") mask = sg.guard(data["mask"], "B, L, h, w, 1") # to float image = tf.cast(image, tf.float32) / 255.0 mask = tf.cast(mask, tf.float32) / 255.0 # crop if self.crop_region is not None: height_slice = slice(self.crop_region[0][0], self.crop_region[0][1]) width_slice = slice(self.crop_region[1][0], self.crop_region[1][1]) image = image[:, height_slice, width_slice, :] mask = mask[:, :, height_slice, width_slice, :] flat_mask, unflatten = flatten_all_but_last(mask, n_dims=3) # rescale size = tf.constant( self.image_dim, dtype=tf.int32, shape=[2], verify_shape=True) image = tf.image.resize_images( image, size, method=tf.image.ResizeMethod.BILINEAR) mask = tf.image.resize_images( flat_mask, size, method=tf.image.ResizeMethod.NEAREST_NEIGHBOR) if self.grayscale: image = tf.reduce_mean(image, axis=-1, keepdims=True) output = { "image": sg.guard(image[:, None], "B, T, H, W, C"), "mask": sg.guard(unflatten(mask)[:, None], "B, T, L, H, W, 1"), "factors": self.preprocess_factors(data, sg), } if "visibility" in data: output["visibility"] = sg.guard(data["visibility"], "B, L") else: output["visibility"] = tf.ones(sg["B, L"], dtype=tf.float32) return output def preprocess_factors(self, data, sg): return { name: sg.guard(ensure_3d(data[name]), "B, L, *") for name in self.factors } def get_placeholders(self, batch_size=None): batch_size = batch_size or self.batch_size sg = ShapeGuard( dims={ "B": batch_size, "H": self.image_dim[0], "W": self.image_dim[1], "L": self.num_true_objects, "C": 3, "T": 1, }) return { "image": tf.placeholder(dtype=tf.float32, shape=sg["B, T, H, W, C"]), "mask": tf.placeholder(dtype=tf.float32, shape=sg["B, T, L, H, W, 1"]), "visibility": tf.placeholder(dtype=tf.float32, shape=sg["B, L"]), "factors": { name: tf.placeholder(dtype=dtype, shape=sg["B, L, {}".format(size)]) for name, (dtype, size) in self.factors }, } class CLEVR(IODINEDataset): num_true_objects = 11 num_channels = 3 factors = { "color": (tf.uint8, 1), "shape": (tf.uint8, 1), "size": (tf.uint8, 1), "position": (tf.float32, 3), "rotation": (tf.float32, 1), } def __init__( self, path, crop_region=((29, 221), (64, 256)), image_dim=(128, 128), name="clevr", **kwargs, ): super().__init__( path=path, crop_region=crop_region, image_dim=image_dim, name=name, **kwargs) self.dataset = clevr_with_masks.dataset(self.path) def preprocess_factors(self, data, sg): return { "color": sg.guard(ensure_3d(data["color"]), "B, L, 1"), "shape": sg.guard(ensure_3d(data["shape"]), "B, L, 1"), "size": sg.guard(ensure_3d(data["color"]), "B, L, 1"), "position": sg.guard(ensure_3d(data["pixel_coords"]), "B, L, 3"), "rotation": sg.guard(ensure_3d(data["rotation"]), "B, L, 1"), } class MultiDSprites(IODINEDataset): num_true_objects = 6 num_channels = 3 factors = { "color": (tf.float32, 3), "shape": (tf.uint8, 1), "scale": (tf.float32, 1), "x": (tf.float32, 1), "y": (tf.float32, 1), "orientation": (tf.float32, 1), } def __init__( self, path, # variant from ['binarized', 'colored_on_grayscale', 'colored_on_colored'] dataset_variant="colored_on_grayscale", image_dim=(64, 64), name="multi_dsprites", **kwargs, ): super().__init__(path=path, name=name, image_dim=image_dim, **kwargs) self.dataset_variant = dataset_variant self.dataset = multi_dsprites.dataset(self.path, self.dataset_variant) class Tetrominoes(IODINEDataset): num_true_objects = 6 num_channels = 3 factors = { "color": (tf.uint8, 3), "shape": (tf.uint8, 1), "position": (tf.float32, 2), } def __init__(self, path, image_dim=(35, 35), name="tetrominoes", **kwargs): super().__init__(path=path, name=name, image_dim=image_dim, **kwargs) self.dataset = tetrominoes.dataset(self.path) def preprocess_factors(self, data, sg): pos_x = ensure_3d(data["x"]) pos_y = ensure_3d(data["y"]) position = tf.concat([pos_x, pos_y], axis=2) return { "color": sg.guard(ensure_3d(data["color"]), "B, L, 3"), "shape": sg.guard(ensure_3d(data["shape"]), "B, L, 1"), "position": sg.guard(ensure_3d(position), "B, L, 2"), } ================================================ FILE: iodine/modules/decoder.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Decoders for rendering images.""" # pylint: disable=missing-docstring from iodine.modules.distributions import MixtureParameters import shapeguard import sonnet as snt class ComponentDecoder(snt.AbstractModule): def __init__(self, pixel_decoder, name="component_decoder"): super().__init__(name=name) self._pixel_decoder = pixel_decoder self._sg = shapeguard.ShapeGuard() def set_output_shapes(self, pixel, mask): self._sg.guard(pixel, "K, H, W, Cp") self._sg.guard(mask, "K, H, W, 1") self._pixel_decoder.set_output_shapes(self._sg["H, W, 1 + Cp"]) def _build(self, z): self._sg.guard(z, "B, K, Z") z_flat = self._sg.reshape(z, "B*K, Z") pixel_params = self._pixel_decoder(z_flat).params self._sg.guard(pixel_params, "B*K, H, W, 1 + Cp") mask_params = pixel_params[..., 0:1] pixel_params = pixel_params[..., 1:] output = MixtureParameters( pixel=self._sg.reshape(pixel_params, "B, K, H, W, Cp"), mask=self._sg.reshape(mask_params, "B, K, H, W, 1"), ) del self._sg.B return output ================================================ FILE: iodine/modules/distributions.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Collection of sonnet modules that wrap useful distributions.""" # pylint: disable=missing-docstring, g-doc-args, g-short-docstring-punctuation # pylint: disable=g-space-before-docstring-summary # pylint: disable=g-no-space-after-docstring-summary import collections from iodine.modules.utils import get_act_func from iodine.modules.utils import get_distribution import shapeguard import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_probability as tfp tfd = tfp.distributions FlatParameters = collections.namedtuple("ParameterOut", ["params"]) MixtureParameters = collections.namedtuple("MixtureOut", ["pixel", "mask"]) class DistributionModule(snt.AbstractModule): """Distribution Base class supporting shape inference & default priors.""" def __init__(self, name="distribution"): super().__init__(name=name) self._output_shape = None def set_output_shape(self, shape): self._output_shape = shape @property def output_shape(self): return self._output_shape @property def input_shapes(self): raise NotImplementedError() def get_default_prior(self, batch_dim=(1,)): return self( tf.zeros(list(batch_dim) + self.input_shapes.params, dtype=tf.float32)) class BernoulliOutput(DistributionModule): def __init__(self, name="bernoulli_output"): super().__init__(name=name) @property def input_shapes(self): return FlatParameters(self.output_shape) def _build(self, params): return tfd.Independent( tfd.Bernoulli(logits=params, dtype=tf.float32), reinterpreted_batch_ndims=1) class LocScaleDistribution(DistributionModule): """Generic IID location / scale distribution. Input parameters are concatenation of location and scale (2*Z,) Args: dist: Distribution or str Kind of distribution used. Supports Normal, Logistic, Laplace, and StudentT distributions. dist_kwargs: dict custom keyword arguments for the distribution scale_act: function or str or None activation function to be applied to the scale input scale: str different modes for computing the scale: * stddev: scale is computed as scale_act(s) * var: scale is computed as sqrt(scale_act(s)) * prec: scale is computed as 1./scale_act(s) * fixed: scale is a global variable (same for all pixels) if scale_val==-1. then it is a trainable variable initialized to 0.1 else it is fixed to scale_val (input shape is only (Z,) in this case) scale_val: float determines the scale value (only used if scale=='fixed'). loc_act: function or str or None activation function to be applied to the location input. Supports optional activation functions for scale and location. Supports different "modes" for scaling: * stddev: """ def __init__( self, dist=tfd.Normal, dist_kwargs=None, scale_act=tf.exp, scale="stddev", scale_val=1.0, loc_act=None, name="loc_scale_dist", ): super().__init__(name=name) self._scale_act = get_act_func(scale_act) self._loc_act = get_act_func(loc_act) # supports Normal, Logstic, Laplace, StudentT self._dist = get_distribution(dist) self._dist_kwargs = dist_kwargs or {} assert scale in ["stddev", "var", "prec", "fixed"], scale self._scale = scale self._scale_val = scale_val @property def input_shapes(self): if self._scale == "fixed": param_shape = self.output_shape else: param_shape = self.output_shape[:-1] + [self.output_shape[-1] * 2] return FlatParameters(param_shape) def _build(self, params): if self._scale == "fixed": loc = params scale = None # set later else: n_channels = params.get_shape().as_list()[-1] assert n_channels % 2 == 0 assert n_channels // 2 == self.output_shape[-1] loc = params[..., :n_channels // 2] scale = params[..., n_channels // 2:] # apply activation functions if self._scale != "fixed": scale = self._scale_act(scale) loc = self._loc_act(loc) # apply the correct parametrization if self._scale == "var": scale = tf.sqrt(scale) elif self._scale == "prec": scale = tf.reciprocal(scale) elif self._scale == "fixed": if self._scale_val == -1.0: scale_val = tf.get_variable( "scale", initializer=tf.constant(0.1, dtype=tf.float32)) else: scale_val = self._scale_val scale = tf.ones_like(loc) * scale_val # else 'stddev' dist = self._dist(loc=loc, scale=scale, **self._dist_kwargs) return tfd.Independent(dist, reinterpreted_batch_ndims=1) class MaskedMixture(DistributionModule): def __init__( self, num_components, component_dist, mask_activation=None, name="masked_mixture", ): """ Spatial Mixture Model composed of a categorical masking distribution and a custom pixel-wise component distribution (usually logistic or gaussian). Args: num_components: int Number of mixture components >= 2 component_dist: the distribution to use for the individual components mask_activation: str or function or None activation function that should be applied to the mask before the softmax. name: str """ super().__init__(name=name) self._num_components = num_components self._dist = component_dist self._mask_activation = get_act_func(mask_activation) def set_output_shape(self, shape): super().set_output_shape(shape) self._dist.set_output_shape(shape) def _build(self, pixel, mask): sg = shapeguard.ShapeGuard() # MASKING sg.guard(mask, "B, K, H, W, 1") mask = tf.transpose(mask, perm=[0, 2, 3, 4, 1]) mask = sg.reshape(mask, "B, H, W, K") mask = self._mask_activation(mask) mask = mask[:, tf.newaxis] # add K=1 axis since K is removed by mixture mix_dist = tfd.Categorical(logits=mask) # COMPONENTS sg.guard(pixel, "B, K, H, W, Cp") params = tf.transpose(pixel, perm=[0, 2, 3, 1, 4]) params = params[:, tf.newaxis] # add K=1 axis since K is removed by mixture dist = self._dist(params) return tfd.MixtureSameFamily( mixture_distribution=mix_dist, components_distribution=dist) @property def input_shapes(self): pixel = [self._num_components] + self._dist.input_shapes.params mask = pixel[:-1] + [1] return MixtureParameters(pixel, mask) def get_default_prior(self, batch_dim=(1,)): pixel = tf.zeros( list(batch_dim) + self.input_shapes.pixel, dtype=tf.float32) mask = tf.zeros(list(batch_dim) + self.input_shapes.mask, dtype=tf.float32) return self(pixel, mask) ================================================ FILE: iodine/modules/factor_eval.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Factor Evaluation Module.""" # pylint: disable=unused-variable import collections import functools from iodine.modules import utils import shapeguard import sonnet as snt import tensorflow.compat.v1 as tf Factor = collections.namedtuple("Factor", ["name", "size", "type"]) class FactorRegressor(snt.AbstractModule): """Assess representations by learning a linear mapping to latents.""" def __init__(self, mapping=None, name="repres_content"): super().__init__(name=name) if mapping is None: self._mapping = [ Factor("color", 3, "scalar"), Factor("shape", 4, "categorical"), Factor("scale", 1, "scalar"), Factor("x", 1, "scalar"), Factor("y", 1, "scalar"), Factor("orientation", 2, "angle"), ] else: self._mapping = [Factor(*m) for m in mapping] def _build(self, z, latent, visibility, pred_mask, true_mask): sg = shapeguard.ShapeGuard() z = sg.guard(z, "B, K, Z") pred_mask = sg.guard(pred_mask, "B, K, H, W, 1") true_mask = sg.guard(true_mask, "B, L, H, W, 1") visibility = sg.guard(visibility, "B, L") num_visible_obj = tf.reduce_sum(visibility) # Map z to predictions for all latents sg.M = sum([m.size for m in self._mapping]) self.predictor = snt.Linear(sg.M, name="predict_latents") z_flat = sg.reshape(z, "B*K, Z") all_preds = sg.guard(self.predictor(z_flat), "B*K, M") all_preds = sg.reshape(all_preds, "B, 1, K, M") all_preds = tf.tile(all_preds, sg["1, L, 1, 1"]) # prepare latents latents = {} mean_var_tot = {} for m in self._mapping: with tf.name_scope(m.name): # preprocess, reshape, and tile lat_preprocess = self.get_preprocessing(m) lat = sg.guard( lat_preprocess(latent[m.name]), "B, L, {}".format(m.size)) # compute mean over latent by training a variable using mse if m.type in {"scalar", "angle"}: mvt = utils.OnlineMeanVarEstimator( axis=[0, 1], ddof=1, name="{}_mean_var".format(m.name)) mean_var_tot[m.name] = mvt(lat, visibility[:, :, tf.newaxis]) lat = tf.reshape(lat, sg["B, L, 1"] + [-1]) lat = tf.tile(lat, sg["1, 1, K, 1"]) latents[m.name] = lat # prepare predictions idx = 0 predictions = {} for m in self._mapping: with tf.name_scope(m.name): assert m.name in latent, "{} not in {}".format(m.name, latent.keys()) pred = all_preds[..., idx:idx + m.size] predictions[m.name] = sg.guard(pred, "B, L, K, {}".format(m.size)) idx += m.size # compute error total_pairwise_errors = None for m in self._mapping: with tf.name_scope(m.name): error_fn = self.get_error_func(m) sg.guard(latents[m.name], "B, L, K, {}".format(m.size)) sg.guard(predictions[m.name], "B, L, K, {}".format(m.size)) err = error_fn(latents[m.name], predictions[m.name]) sg.guard(err, "B, L, K") if total_pairwise_errors is None: total_pairwise_errors = err else: total_pairwise_errors += err # determine best assignment by comparing masks obj_mask = true_mask[:, :, tf.newaxis] pred_mask = pred_mask[:, tf.newaxis] pairwise_overlap = tf.reduce_sum(obj_mask * pred_mask, axis=[3, 4, 5]) best_match = sg.guard(tf.argmax(pairwise_overlap, axis=2), "B, L") assignment = tf.one_hot(best_match, sg.K) assignment *= visibility[:, :, tf.newaxis] # Mask non-visible objects # total error total_error = ( tf.reduce_sum(assignment * total_pairwise_errors) / num_visible_obj) # compute scalars monitored_scalars = {} for m in self._mapping: with tf.name_scope(m.name): metric = self.get_metric(m) scalar = metric( latents[m.name], predictions[m.name], assignment[:, :, :, tf.newaxis], mean_var_tot.get(m.name), num_visible_obj, ) monitored_scalars[m.name] = scalar return total_error, monitored_scalars, mean_var_tot, predictions, assignment @snt.reuse_variables def predict(self, z): sg = shapeguard.ShapeGuard() z = sg.guard(z, "B, Z") all_preds = sg.guard(self.predictor(z), "B, M") idx = 0 predictions = {} for m in self._mapping: with tf.name_scope(m.name): pred = all_preds[:, idx:idx + m.size] predictions[m.name] = sg.guard(pred, "B, {}".format(m.size)) idx += m.size return predictions @staticmethod def get_error_func(factor): if factor.type in {"scalar", "angle"}: return sse elif factor.type == "categorical": return functools.partial( tf.losses.softmax_cross_entropy, reduction="none") else: raise KeyError(factor.type) @staticmethod def get_metric(factor): if factor.type in {"scalar", "angle"}: return r2 elif factor.type == "categorical": return accuracy else: raise KeyError(factor.type) @staticmethod def one_hot(f, nr_categories): return tf.one_hot(tf.cast(f[..., 0], tf.int32), depth=nr_categories) @staticmethod def angle_to_vector(theta): return tf.concat([tf.math.cos(theta), tf.math.sin(theta)], axis=-1) @staticmethod def get_preprocessing(factor): if factor.type == "scalar": return tf.identity elif factor.type == "categorical": return functools.partial( FactorRegressor.one_hot, nr_categories=factor.size) elif factor.type == "angle": return FactorRegressor.angle_to_vector else: raise KeyError(factor.type) def sse(true, pred): # run our own sum squared error because we want to reduce sum over last dim return tf.reduce_sum(tf.square(true - pred), axis=-1) def accuracy(labels, logits, assignment, mean_var_tot, num_vis): del mean_var_tot # unused pred = tf.argmax(logits, axis=-1, output_type=tf.int32) labels = tf.argmax(labels, axis=-1, output_type=tf.int32) correct = tf.cast(tf.equal(labels, pred), tf.float32) return tf.reduce_sum(correct * assignment[..., 0]) / num_vis def r2(labels, pred, assignment, mean_var_tot, num_vis): del num_vis # unused mean, var, _ = mean_var_tot # labels, pred: (B, L, K, n) ss_res = tf.reduce_sum(tf.square(labels - pred) * assignment, axis=2) ss_tot = var[tf.newaxis, tf.newaxis, :] # (1, 1, n) return tf.reduce_mean(1.0 - ss_res / ss_tot) ================================================ FILE: iodine/modules/iodine.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Stochastic Variational inference Auto-Encoder.""" # pylint: disable=unused-variable, g-bad-todo import collections from iodine.modules import utils from multi_object_datasets.segmentation_metrics import adjusted_rand_index import numpy as np import shapeguard import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_probability as tfp tfd = tfp.distributions logging = tf.logging DEFAULT_INPUTS = ( "image", "zp", "mask", "components", "dmask", "dzp", "dcomponents", "posterior", "log_prob", "pred_mask", "capacity", "flat_capacity", "coordinates", "counterfactual", ) DEFAULT_PREPROCESSING = [ "dcomponents", "dmask", "dzp", "log_prob", "counterfactual" ] DEFAULT_STOP_GRADIENT = ("dzp", "dmask", "dcomponents", "log_prob", "counterfactual") class IODINE(snt.AbstractModule): """Iterative Amortized Variational Autoencoder. Args: decoder (decoders.ComponentDecoder): The decoder. refinement_core (refinement.RefinementCore): The recurrent (refinement) encoder. latent_dist (distributions.Distribution): The distribution of the latent z variables. output_dist (distributions.MaskedMixture): The pixel-wise output distribution (a spatial mixture). n_z (int): Dimensionality of the per-object latents z_k. num_components (int): Number of available object slots (K). num_iters (int): Number of refinement iterations. sequential (bool): Whether the input data is sequential. factor_evaluator (factor_eval.FactorRegressor): The factor evaluation model that is trained to predict the true factors from the inferred latents. stop_gradients (List[str]): For which refinement inputs to stop gradients from backpropagating through the iterations. (see inputs for valid values) Default is: ["dcomponents", "dmask", "dzp", "log_prob", "counterfactual"] iter_loss_weight ("linspace" | float | List[float]): How to weigh the loss terms for each timestep. Can be: "linspace": Linearly increasing weights from 0 to 1.0. float: A fixed value for all steps. List[float]: Manually specify all weight. inputs (List[str]): list of inputs to use for the refinement network. Can include the following (default is to use all): ["image", "zp", "mask", "components", "dmask", "dzp", "dcomponents", "posterior", "log_prob", "pred_mask", "capacity", "flat_capacity", "coordinates", "counterfactual"] preprocess (List[str]): Specifies the subset of inputs that be preprocessed with layernorm. Default is: ["dcomponents", "dmask", "dzp", "log_prob", "counterfactual"] coord_type (str): Type of coordinate channels to append to the refinement inputs. Can be "linear" (default) or "cos". coord_freqs (int): If using cos based coordinate channels, then this specifies the number of frequencies used. name (str): Name of the module (within the tensorflow graph). """ def __init__( self, decoder, refinement_core, latent_dist, output_dist, n_z, num_components, num_iters, sequential=False, factor_evaluator=None, stop_gradients=DEFAULT_STOP_GRADIENT, iter_loss_weight="linspace", inputs=DEFAULT_INPUTS, preprocess=None, coord_type="linear", coord_freqs=3, name="iodine", ): super().__init__(name=name) self._sg = shapeguard.ShapeGuard(dims={"K": num_components}) self.decoder = decoder self.refinement_core = refinement_core self.latent_dist = latent_dist self.output_dist = output_dist self.n_z = n_z self.num_components = num_components self.num_iters = num_iters self.sequential = sequential self.iter_loss_weights = self._parse_iter_loss_weights(iter_loss_weight) self.factor_evaluator = factor_evaluator self.stop_gradients = stop_gradients self.inputs = inputs self.preprocess = DEFAULT_PREPROCESSING if preprocess is None else preprocess self.coord_type = coord_type self.coord_freqs = coord_freqs with self._enter_variable_scope(): self.latent_dist.set_output_shape([self.n_z]) logging.info("VAE: z shape: %s", [self.n_z]) with tf.name_scope("prior"): self.prior = self.latent_dist.get_default_prior((self.num_components,)) self._sg.guard(self.prior, "K, Z") with tf.variable_scope("preprocess"): self._layernorms = { name: snt.LayerNorm(name="layer_norm_" + name) for name in self.preprocess } def _build(self, data): data["image"] = data["image"][:, :self.num_iters + 1] if "mask" in data: data["mask"] = data["mask"][:, :self.num_iters + 1] x = self._sg.guard(data["image"], "B, T, H, W, C") self._propagate_shape_info(x.get_shape().as_list()) # run iterative encoder iterations = self.encode(x) z_dist = self._sg.guard(iterations["z_dist"][-1], "B, K, Z") z = self._sg.guard(iterations["z"][-1], "B, K, Z") # decode x_params, x_dist = self.decode(z) iterations["x_dist"].append(self._sg.guard(x_dist, "B, 1, H, W, C")) # compute loss kl = self._sg.guard(self._raw_kl(z_dist), "B, K") img = self._get_image_for_iter(x, self.num_iters) re = self._sg.guard(self._reconstruction_error(x_dist, img), "B") iterations["kl"].append(kl) iterations["re"].append(re) iterations["recons_loss"] = [tf.reduce_mean(re) for re in iterations["re"]] total_rec_loss = sum([ w * re for w, re in zip(self.iter_loss_weights, iterations["recons_loss"]) ]) total_kl_loss = sum([ w * tf.reduce_mean(tf.reduce_sum(kl, axis=1)) for w, kl in zip(self.iter_loss_weights, iterations["kl"]) ]) total_loss = total_rec_loss + total_kl_loss scalars = { "loss/kl": sum([ tf.reduce_mean(tf.reduce_sum(kl, axis=1)) for kl in iterations["kl"] ]), "loss/recons": total_rec_loss, } if self.factor_evaluator: pred_mask = self._sg.guard(x_dist.mixture_distribution.probs, "B, 1, H, W, K") pred_mask = tf.transpose(pred_mask, [0, 4, 2, 3, 1]) mask_true = self._sg.guard(data["mask"], "B, T, L, H, W, 1") mask_true = self._get_image_for_iter(mask_true, self.num_iters) mask_true = mask_true[:, 0] factor_loss, factor_scalars, _, _, _ = self.factor_evaluator( tf.stop_gradient(z), data["factors"], data["visibility"], tf.stop_gradient(pred_mask), mask_true, ) total_loss += factor_loss scalars["factor/loss"] = factor_loss scalars.update({"factor/" + k: v for k, v in factor_scalars.items()}) scalars["loss/total"] = total_loss scalars.update(self._get_monitored_scalars(x_dist, data)) logging.info(self._sg.dims) return total_loss, scalars, iterations @snt.reuse_variables def encode(self, images): sg = self._sg sg.guard(images, "B, T, H, W, C") zp, z_dist, z = self._get_initial_z() iterations = { "z": [z], "zp": [zp], "z_dist": [z_dist], "x_dist": [], "inputs": [], "kl": [], "re": [], } state = self.refinement_core.initial_state(sg["B*K"][0]) for t in range(self.num_iters): img = sg.guard(self._get_image_for_iter(images, t), "B, 1, H, W, C") x_params, x_dist = self.decode(z) # compute loss kl = self._sg.guard(self._raw_kl(z_dist), "B, K") re = self._sg.guard(self._reconstruction_error(x_dist, img), "B") loss = tf.reduce_mean(re) + tf.reduce_mean(tf.reduce_sum(kl, axis=1)) inputs = self._get_inputs_for(x_params, x_dist, img, z_dist, zp, loss) zp, state = self.refinement_core(inputs, state) sg.guard(zp, "B, K, Zp") z_dist = sg.guard(self.latent_dist(zp), "B, K, Z") z = z_dist.sample() # append local variables to iteration collections for v, name in zip( [z, zp, z_dist, x_dist, inputs, kl, re], ["z", "zp", "z_dist", "x_dist", "inputs", "kl", "re"], ): iterations[name].append(v) return iterations @snt.reuse_variables def decode(self, z): sg = shapeguard.ShapeGuard() sg.guard(z, "B, K, Z") # legacy z = tf.concat([z, 5.0 * tf.ones(sg["B, K, 1"], dtype=tf.float32)], axis=2) params = self.decoder(z) out_dist = self.output_dist(*params) return params, out_dist @snt.reuse_variables def eval(self, data): total_loss, scalars, iterations = self._build(data) sg = shapeguard.ShapeGuard() def get_components(dist): return tf.transpose(dist.components_distribution.mean()[:, 0, :, :, :, :], [0, 3, 1, 2, 4]) def get_mask(dist): return tf.transpose(dist.mixture_distribution.probs[:, :, :, :, :], [0, 4, 2, 3, 1]) def get_mask_logits(dist): return tf.transpose(dist.mixture_distribution.logits[:, :, :, :, :], [0, 4, 2, 3, 1]) def stack_iters(list_of_variables, pad_zero=False): if pad_zero: list_of_variables.insert(0, tf.zeros_like(list_of_variables[0])) return tf.stack(list_of_variables, axis=1) # data image = sg.guard(data["image"], "B, 1, H, W, C") true_mask = sg.guard(data["mask"], "B, 1, L, H, W, 1") visibility = sg.guard(data["visibility"], "B, L") factors = data["factors"] # inputs inputs_flat = { k: stack_iters([inp["flat"][k] for inp in iterations["inputs"]], pad_zero=True) for k in iterations["inputs"][0]["flat"].keys() } inputs_spatial = { k: stack_iters([inp["spatial"][k] for inp in iterations["inputs"]], pad_zero=True) for k in iterations["inputs"][0]["spatial"].keys() } # latent z = sg.guard(stack_iters(iterations["z"]), "B, T, K, Z") z_mean = stack_iters([zd.mean() for zd in iterations["z_dist"]]) z_std = stack_iters([zd.stddev() for zd in iterations["z_dist"]]) # outputs recons = stack_iters([xd.mean() for xd in iterations["x_dist"]]) pred_mask = stack_iters([get_mask(xd) for xd in iterations["x_dist"]]) pred_mask_logits = stack_iters( [get_mask_logits(xd) for xd in iterations["x_dist"]]) components = stack_iters( [get_components(xd) for xd in iterations["x_dist"]]) # metrics tm = tf.transpose(true_mask[..., 0], [0, 1, 3, 4, 2]) tm = tf.reshape(tf.tile(tm, sg["1, T, 1, 1, 1"]), sg["B * T, H * W, L"]) pm = tf.transpose(pred_mask[..., 0], [0, 1, 3, 4, 2]) pm = tf.reshape(pm, sg["B * T, H * W, K"]) ari = tf.reshape(adjusted_rand_index(tm, pm), sg["B, T"]) ari_nobg = tf.reshape(adjusted_rand_index(tm[..., 1:], pm), sg["B, T"]) mse = tf.reduce_mean(tf.square(recons - image[:, None]), axis=[2, 3, 4, 5]) # losses loss_recons = stack_iters(iterations["re"]) kl = stack_iters(iterations["kl"]) info = { "data": { "image": sg.guard(image, "B, 1, H, W, C"), "true_mask": sg.guard(true_mask, "B, 1, L, H, W, 1"), "visibility": sg.guard(visibility, "B, L"), "factors": factors, }, "inputs": { "flat": inputs_flat, "spatial": inputs_spatial }, "latent": { "z": sg.guard(z, "B, T, K, Z"), "z_mean": sg.guard(z_mean, "B, T, K, Z"), "z_std": sg.guard(z_std, "B, T, K, Z"), }, "outputs": { "recons": sg.guard(recons, "B, T, 1, H, W, C"), "pred_mask": sg.guard(pred_mask, "B, T, K, H, W, 1"), "pred_mask_logits": sg.guard(pred_mask_logits, "B, T, K, H, W, 1"), "components": sg.guard(components, "B, T, K, H, W, C"), }, "losses": { "total": total_loss, "recons": sg.guard(loss_recons, "B, T"), "kl": sg.guard(kl, "B, T, K"), }, "metrics": { "ari": ari, "ari_nobg": ari_nobg, "mse": mse }, } if self.factor_evaluator: # factor evaluation information factor_info = { "loss": [], "metrics": collections.defaultdict(list), "predictions": collections.defaultdict(list), "assignment": [], } for t in range(z.get_shape().as_list()[1]): floss, fscalars, _, fpred, fass = self.factor_evaluator( z[:, t], factors, visibility, pred_mask[:, t], true_mask[:, 0]) factor_info["loss"].append(floss) factor_info["assignment"].append(fass) for k in fpred: factor_info["predictions"][k].append( tf.reduce_sum(fpred[k] * fass[..., None], axis=2)) factor_info["metrics"][k].append(fscalars[k]) info["losses"]["factor"] = sg.guard(tf.stack(factor_info["loss"]), "T") info["factor_regressor"] = { "assignment": sg.guard(stack_iters(factor_info["assignment"]), "B, T, L, K"), "metrics": { k: tf.stack(factor_info["metrics"][k], axis=0) for k in factor_info["metrics"] }, "predictions": { k: stack_iters(factor_info["predictions"][k]) for k in factor_info["predictions"] }, } return info @snt.reuse_variables def get_sample_images(self, nr_samples=16): with tf.name_scope("prior_samples"): prior_z = self.prior.sample(nr_samples) _, prior_out = self.decode(prior_z) prior_out = tf.clip_by_value(prior_out.mean(), 0.0, 1.0) return utils.images_to_grid(prior_out[:, 0])[tf.newaxis] @snt.reuse_variables def get_overview_images(self, data, nr_images=4, mask_components=False): x = data["image"][:nr_images, :self.num_iters + 1] old_b, self._sg.B = self._sg.B, x.get_shape().as_list()[0] iterations = self.encode(x) z = iterations["z"][-1] _, x_dist = self.decode(z) self._sg.B = old_b t = min(self.num_iters, x.get_shape().as_list()[1]) - 1 # iterations view recons = tf.stack([x_dist.mean() for x_dist in iterations["x_dist"]], axis=1) masks = tf.stack( [ tf.transpose(x_dist.mixture_distribution.probs, [0, 4, 2, 3, 1]) for x_dist in iterations["x_dist"] ], axis=1, ) return { "overview": utils.get_overview_image( x[:, t:t + 1], x_dist, mask_components=mask_components), "sequence": utils.construct_iterations_image(x[:, :t + 1, tf.newaxis], recons, masks), "samples": self.get_sample_images(), } def _get_initial_z(self): # Initial z distribution zp_init = tf.get_variable( "initial_sample_distribution", shape=self.latent_dist.input_shapes.params, dtype=tf.float32, ) zp = tf.tile(zp_init[tf.newaxis, tf.newaxis], self._sg["B, K, 1"]) z_dist = self.latent_dist(zp) z = z_dist.sample() self._sg.guard(zp, "B, K, Zp") self._sg.guard(z_dist, "B, K, Z") self._sg.guard(z, "B, K, Z") return zp, z_dist, z def _parse_iter_loss_weights(self, iter_loss_weight): if iter_loss_weight == "linspace": iter_weights = np.linspace(0.0, 1.0, self.num_iters + 1).tolist() elif isinstance(iter_loss_weight, (float, int)): iter_weights = [float(iter_loss_weight)] * (self.num_iters + 1) elif isinstance(iter_loss_weight, (tuple, list)): iter_weights = [float(w) for w in iter_loss_weight] else: raise ValueError("Unknown iter_loss_weight type {}.".format( repr(iter_loss_weight))) assert len(iter_weights) == (self.num_iters + 1), iter_loss_weight return iter_weights def _propagate_shape_info(self, image_shape): image_shape = image_shape[-3:] # ignore batch dims logging.info("VAE: image shape: %s", image_shape) z_param_shape = self._sg.guard(self.latent_dist.input_shapes.params, "Zp") logging.info("VAE: z parameter shape: %s", z_param_shape) self.output_dist.set_output_shape(image_shape) out_param_shapes = self.output_dist.input_shapes logging.info("VAE: output parameter shapes: %s", out_param_shapes) self.decoder.set_output_shapes(*out_param_shapes) def _get_image_for_iter(self, images, t): """Return current frame or first image.""" if self.sequential: return images[:, t:t + 1] else: return images[:, :1] @staticmethod def _get_mask_posterior(out_dist, img): p_comp = out_dist.components_distribution.prob(img[..., tf.newaxis, :]) posterior = p_comp / (tf.reduce_sum(p_comp, axis=-1, keepdims=True) + 1e-6) return tf.transpose(posterior, [0, 4, 2, 3, 1]) def _get_inputs_for(self, out_params, out_dist, img, z_dist, zp, loss): sg = self._sg # gradients of loss wrt z, components and mask dzp, dxp, dmp = tf.gradients(loss, [zp, out_params.pixel, out_params.mask]) log_prob = sg.guard( out_dist.log_prob(img)[..., tf.newaxis], "B, 1, H, W, 1") counterfactual_log_probs = [] for k in range(0, self.num_components): mask = tf.concat([out_params.mask[:, :k], out_params.mask[:, k + 1:]], axis=1) pixel = tf.concat([out_params.pixel[:, :k], out_params.pixel[:, k + 1:]], axis=1) out_dist_k = self.output_dist(pixel, mask) log_prob_k = out_dist_k.log_prob(img)[..., tf.newaxis] counterfactual_log_probs.append(log_prob_k) counterfactual = log_prob - tf.concat(counterfactual_log_probs, axis=1) pred_mask = tf.transpose(out_dist.mixture_distribution.probs, [0, 4, 2, 3, 1]) potential_inputs = { # spatial "image": sg.guard(img, "B, 1, H, W, C"), "log_prob": sg.guard(log_prob, "B, 1, H, W, 1"), "mask": sg.guard(out_params.mask, "B, K, H, W, 1"), "pred_mask": sg.guard(pred_mask, "B, K, H, W, 1"), "components": sg.guard(out_params.pixel, "B, K, H, W, Cp"), "dmask": sg.guard(dmp, "B, K, H, W, Mp"), "dcomponents": sg.guard(dxp, "B, K, H, W, Cp"), "posterior": sg.guard(self._get_mask_posterior(out_dist, img), "B, K, H, W, 1"), "capacity": 0.5 * tf.ones(sg["B, K, H, W, 1"], dtype=tf.float32), # TODO: legacy "coordinates": self._get_coord_channels(), "counterfactual": self._sg.guard(counterfactual, "B, K, H, W, 1"), # flat "zp": sg.guard(zp, "B, K, Zp"), "dzp": sg.guard(dzp, "B, K, Zp"), "flat_capacity": 0.5 * tf.ones(sg["B, K, 1"], dtype=tf.float32), # TODO: legacy } # collect used inputs, stop gradients and preprocess where needed final_inputs = {"spatial": {}, "flat": {}} for k, v in potential_inputs.items(): # skip unused inputs if k not in self.inputs: continue # stop gradients if k in self.stop_gradients: v = tf.stop_gradient(v) # preprocess v = self._apply_preprocessing(k, v) # sort into flat / spatial according to their shape structure = "flat" if len(v.get_shape().as_list()) == 3 else "spatial" final_inputs[structure][k] = v return final_inputs def _apply_preprocessing(self, name, val): if name in self.preprocess: if self._sg.matches(val, "B, K, _z"): flat_val = tf.reshape(val, self._sg["B*K"] + [-1]) elif self._sg.matches(val, "B, 1, _z"): flat_val = val[:, 0, :] elif self._sg.matches(val, "B, K, H, W, _c"): flat_val = tf.reshape(val, self._sg["B*K, H*W"] + [-1]) elif self._sg.matches(val, "B, 1, H, W, _c"): flat_val = tf.reshape(val, self._sg["B, H*W"] + [-1]) else: raise ValueError("Cannot handle shape {}".format( val.get_shape().as_list())) ln = self._layernorms[name] norm_val = ln(flat_val) return tf.reshape(norm_val, val.shape.as_list()) else: return val def _get_coord_channels(self): if self.coord_type == "linear": x_coords = tf.linspace(-1.0, 1.0, self._sg.W)[None, None, None, :, None] y_coords = tf.linspace(-1.0, 1.0, self._sg.H)[None, None, :, None, None] x_coords = tf.tile(x_coords, self._sg["B, 1, H, 1, 1"]) y_coords = tf.tile(y_coords, self._sg["B, 1, 1, W, 1"]) return tf.concat([x_coords, y_coords], axis=-1) elif self.coord_type == "cos": freqs = self._sg.guard(tf.range(0.0, self.coord_freqs), "F") valx = tf.linspace(0.0, np.pi, self._sg.W)[None, None, None, :, None, None] valy = tf.linspace(0.0, np.pi, self._sg.H)[None, None, :, None, None, None] x_basis = tf.cos(valx * freqs[None, None, None, None, :, None]) y_basis = tf.cos(valy * freqs[None, None, None, None, None, :]) xy_basis = tf.reshape(x_basis * y_basis, self._sg["1, 1, H, W, F*F"]) coords = tf.tile(xy_basis, self._sg["B, 1, 1, 1, 1"])[..., 1:] return coords else: raise KeyError('Unknown coord_type: "{}"'.format(self.coord_type)) def _raw_kl(self, z_dist): return tfd.kl_divergence(z_dist, self.prior) def _reconstruction_error(self, x_dist, img): log_prob = self._sg.guard(x_dist.log_prob(img), "B, 1, H, W") return -tf.reduce_sum(log_prob, axis=[1, 2, 3]) def _get_monitored_scalars(self, out_dist, data): self._sg.guard(out_dist, "B, 1, H, W, C") img = self._get_image_for_iter(data["image"], self.num_iters) scalars = {} with tf.name_scope("monitored_scalars"): # ######### Loss Monitoring ######### scalars["loss/mse"] = tf.losses.mean_squared_error( img, out_dist.mean()) # ########## Mask Monitoring ####### if "mask" in data: true_mask = self._sg.guard(data["mask"], "B, T, L, H, W, 1") true_mask = tf.transpose(true_mask[:, -1, ..., 0], [0, 2, 3, 1]) true_mask = self._sg.reshape(true_mask, "B, H*W, L") else: true_mask = None pred_mask = self._sg.guard(out_dist.mixture_distribution.probs, "B, 1, H, W, K") pred_mask = self._sg.reshape(pred_mask, "B, H*W, K") if pred_mask is not None and true_mask is not None: self._sg.guard(pred_mask, "B, H*W, K") self._sg.guard(true_mask, "B, H*W, L") scalars["loss/ari"] = tf.reduce_mean( adjusted_rand_index(true_mask, pred_mask)) scalars["loss/ari_nobg"] = tf.reduce_mean( adjusted_rand_index(true_mask[..., 1:], pred_mask)) return scalars ================================================ FILE: iodine/modules/networks.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Network modules.""" # pylint: disable=g-multiple-import, g-doc-args, g-short-docstring-punctuation # pylint: disable=g-no-space-after-docstring-summary from iodine.modules.distributions import FlatParameters from iodine.modules.utils import flatten_all_but_last, get_act_func import numpy as np import shapeguard import sonnet as snt import tensorflow.compat.v1 as tf class CNN(snt.AbstractModule): """ConvNet2D followed by an MLP. This is a typical encoder architecture for VAEs, and has been found to work well. One small improvement is to append coordinate channels on the input, though for most datasets the improvement obtained is negligible. """ def __init__(self, cnn_opt, mlp_opt, mode="flatten", name="cnn"): """Constructor. Args: cnn_opt: Dictionary. Kwargs for the cnn. See vae_lib.ConvNet2D for details. mlp_opt: Dictionary. Kwargs for the mlp. See vae_lib.MLP for details. name: String. Optional name. """ super().__init__(name=name) if "activation" in cnn_opt: cnn_opt["activation"] = get_act_func(cnn_opt["activation"]) self._cnn_opt = cnn_opt if "activation" in mlp_opt: mlp_opt["activation"] = get_act_func(mlp_opt["activation"]) self._mlp_opt = mlp_opt self._mode = mode def set_output_shapes(self, shape): # assert self._mlp_opt['output_sizes'][-1] is None, self._mlp_opt sg = shapeguard.ShapeGuard() sg.guard(shape, "1, Y") self._mlp_opt["output_sizes"][-1] = sg.Y def _build(self, image): """Connect model to TensorFlow graph.""" assert self._mlp_opt["output_sizes"][-1] is not None, "set output_shapes" sg = shapeguard.ShapeGuard() flat_image, unflatten = flatten_all_but_last(image, n_dims=3) sg.guard(flat_image, "B, H, W, C") cnn = snt.nets.ConvNet2D( activate_final=True, paddings=("SAME",), normalize_final=False, **self._cnn_opt) mlp = snt.nets.MLP(**self._mlp_opt) # run CNN net = cnn(flat_image) if self._mode == "flatten": # flatten net_shape = net.get_shape().as_list() flat_shape = net_shape[:-3] + [np.prod(net_shape[-3:])] net = tf.reshape(net, flat_shape) elif self._mode == "avg_pool": net = tf.reduce_mean(net, axis=[1, 2]) else: raise KeyError('Unknown mode "{}"'.format(self._mode)) # run MLP output = sg.guard(mlp(net), "B, Y") return FlatParameters(unflatten(output)) class MLP(snt.AbstractModule): """MLP.""" def __init__(self, name="mlp", **mlp_opt): super().__init__(name=name) if "activation" in mlp_opt: mlp_opt["activation"] = get_act_func(mlp_opt["activation"]) self._mlp_opt = mlp_opt assert mlp_opt["output_sizes"][-1] is None, mlp_opt def set_output_shapes(self, shape): sg = shapeguard.ShapeGuard() sg.guard(shape, "1, Y") self._mlp_opt["output_sizes"][-1] = sg.Y def _build(self, data): """Connect model to TensorFlow graph.""" assert self._mlp_opt["output_sizes"][-1] is not None, "set output_shapes" sg = shapeguard.ShapeGuard() flat_data, unflatten = flatten_all_but_last(data) sg.guard(flat_data, "B, N") mlp = snt.nets.MLP(**self._mlp_opt) # run MLP output = sg.guard(mlp(flat_data), "B, Y") return FlatParameters(unflatten(output)) class DeConv(snt.AbstractModule): """MLP followed by Deconv net. This decoder is commonly used by vanilla VAE models. However, in practice BroadcastConv (see below) seems to disentangle slightly better. """ def __init__(self, mlp_opt, cnn_opt, name="deconv"): """Constructor. Args: mlp_opt: Dictionary. Kwargs for vae_lib.MLP. cnn_opt: Dictionary. Kwargs for vae_lib.ConvNet2D for the CNN. name: Optional name. """ super().__init__(name=name) assert cnn_opt["output_channels"][-1] is None, cnn_opt if "activation" in cnn_opt: cnn_opt["activation"] = get_act_func(cnn_opt["activation"]) self._cnn_opt = cnn_opt if mlp_opt and "activation" in mlp_opt: mlp_opt["activation"] = get_act_func(mlp_opt["activation"]) self._mlp_opt = mlp_opt self._target_out_shape = None def set_output_shapes(self, shape): self._target_out_shape = shape self._cnn_opt["output_channels"][-1] = self._target_out_shape[-1] def _build(self, z): """Connect model to TensorFlow graph.""" sg = shapeguard.ShapeGuard() flat_z, unflatten = flatten_all_but_last(z) sg.guard(flat_z, "B, Z") sg.guard(self._target_out_shape, "H, W, C") mlp = snt.nets.MLP(**self._mlp_opt) cnn = snt.nets.ConvNet2DTranspose( paddings=("SAME",), normalize_final=False, **self._cnn_opt) net = mlp(flat_z) output = sg.guard(cnn(net), "B, H, W, C") return FlatParameters(unflatten(output)) class BroadcastConv(snt.AbstractModule): """MLP followed by a broadcast convolution. This decoder takes a latent vector z, (optionally) applies an MLP to it, then tiles the resulting vector across space to have dimension [B, H, W, C] i.e. tiles across H and W. Then coordinate channels are appended and a convolutional layer is applied. """ def __init__( self, cnn_opt, mlp_opt=None, coord_type="linear", coord_freqs=3, name="broadcast_conv", ): """Args: cnn_opt: dict Kwargs for vae_lib.ConvNet2D for the CNN. mlp_opt: None or dict If dictionary, then kwargs for snt.nets.MLP. If None, then the model will not process the latent vector by an mlp. coord_type: ["linear", "cos", None] type of coordinate channels to add. None: add no coordinate channels. linear: two channels with values linearly spaced from -1. to 1. in the H and W dimension respectively. cos: coord_freqs^2 many channels containing cosine basis functions. coord_freqs: int number of frequencies used to construct the cosine basis functions (only for coord_type=="cos") name: Optional name. """ super().__init__(name=name) assert cnn_opt["output_channels"][-1] is None, cnn_opt if "activation" in cnn_opt: cnn_opt["activation"] = get_act_func(cnn_opt["activation"]) self._cnn_opt = cnn_opt if mlp_opt and "activation" in mlp_opt: mlp_opt["activation"] = get_act_func(mlp_opt["activation"]) self._mlp_opt = mlp_opt self._target_out_shape = None self._coord_type = coord_type self._coord_freqs = coord_freqs def set_output_shapes(self, shape): self._target_out_shape = shape self._cnn_opt["output_channels"][-1] = self._target_out_shape[-1] def _build(self, z): """Connect model to TensorFlow graph.""" assert self._target_out_shape is not None, "Call set_output_shape" # reshape components into batch dimension before processing them sg = shapeguard.ShapeGuard() flat_z, unflatten = flatten_all_but_last(z) sg.guard(flat_z, "B, Z") sg.guard(self._target_out_shape, "H, W, C") if self._mlp_opt is None: mlp = tf.identity else: mlp = snt.nets.MLP(activate_final=True, **self._mlp_opt) mlp_output = sg.guard(mlp(flat_z), "B, hidden") # tile MLP output spatially and append coordinate channels broadcast_mlp_output = tf.tile( mlp_output[:, tf.newaxis, tf.newaxis], multiples=tf.constant(sg["1, H, W, 1"]), ) # B, H, W, Z dec_cnn_inputs = self.append_coordinate_channels(broadcast_mlp_output) cnn = snt.nets.ConvNet2D( paddings=("SAME",), normalize_final=False, **self._cnn_opt) cnn_outputs = cnn(dec_cnn_inputs) sg.guard(cnn_outputs, "B, H, W, C") return FlatParameters(unflatten(cnn_outputs)) def append_coordinate_channels(self, output): sg = shapeguard.ShapeGuard() sg.guard(output, "B, H, W, C") if self._coord_type is None: return output if self._coord_type == "linear": w_coords = tf.linspace(-1.0, 1.0, sg.W)[None, None, :, None] h_coords = tf.linspace(-1.0, 1.0, sg.H)[None, :, None, None] w_coords = tf.tile(w_coords, sg["B, H, 1, 1"]) h_coords = tf.tile(h_coords, sg["B, 1, W, 1"]) return tf.concat([output, h_coords, w_coords], axis=-1) elif self._coord_type == "cos": freqs = sg.guard(tf.range(0.0, self._coord_freqs), "F") valx = tf.linspace(0.0, np.pi, sg.W)[None, None, :, None, None] valy = tf.linspace(0.0, np.pi, sg.H)[None, :, None, None, None] x_basis = tf.cos(valx * freqs[None, None, None, :, None]) y_basis = tf.cos(valy * freqs[None, None, None, None, :]) xy_basis = tf.reshape(x_basis * y_basis, sg["1, H, W, F*F"]) coords = tf.tile(xy_basis, sg["B, 1, 1, 1"])[..., 1:] return tf.concat([output, coords], axis=-1) else: raise KeyError('Unknown coord_type: "{}"'.format(self._coord_type)) class LSTM(snt.RNNCore): """Wrapper around snt.LSTM that supports multi-layers and runs K components in parallel. Expects input data of shape (B, K, H) and outputs data of shape (B, K, Y) """ def __init__(self, hidden_sizes, name="lstm"): super().__init__(name=name) self._hidden_sizes = hidden_sizes with self._enter_variable_scope(): self._lstm_layers = [snt.LSTM(hidden_size=h) for h in self._hidden_sizes] def initial_state(self, batch_size, **kwargs): return [ lstm.initial_state(batch_size, **kwargs) for lstm in self._lstm_layers ] def _build(self, data, prev_states): assert not self._hidden_sizes or self._hidden_sizes[-1] is not None assert len(prev_states) == len(self._hidden_sizes) sg = shapeguard.ShapeGuard() sg.guard(data, "B, K, H") data = sg.reshape(data, "B*K, H") out = data new_states = [] for lstm, pstate in zip(self._lstm_layers, prev_states): out, nstate = lstm(out, pstate) new_states.append(nstate) sg.guard(out, "B*K, Y") out = sg.reshape(out, "B, K, Y") return out, new_states ================================================ FILE: iodine/modules/plotting.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Plotting tools for IODINE.""" # pylint: disable=unused-import, missing-docstring, unused-variable # pylint: disable=invalid-name, unexpected-keyword-arg import functools from iodine.modules.utils import get_mask_plot_colors from matplotlib.colors import hsv_to_rgb import matplotlib.pyplot as plt import numpy as np __all__ = ("get_mask_plot_colors", "example_plot", "iterations_plot", "inputs_plot") def clean_ax(ax, color=None, lw=4.0): ax.set_xticks([]) ax.set_yticks([]) if color is not None: for spine in ax.spines.values(): spine.set_linewidth(lw) spine.set_color(color) def optional_ax(fn): def _wrapped(*args, **kwargs): if kwargs.get("ax", None) is None: figsize = kwargs.pop("figsize", (4, 4)) fig, ax = plt.subplots(figsize=figsize) kwargs["ax"] = ax return fn(*args, **kwargs) return _wrapped def optional_clean_ax(fn): def _wrapped(*args, **kwargs): if kwargs.get("ax", None) is None: figsize = kwargs.pop("figsize", (4, 4)) fig, ax = plt.subplots(figsize=figsize) kwargs["ax"] = ax color = kwargs.pop("color", None) lw = kwargs.pop("lw", 4.0) res = fn(*args, **kwargs) clean_ax(kwargs["ax"], color, lw) return res return _wrapped @optional_clean_ax def show_img(img, mask=None, ax=None, norm=False): if norm: vmin, vmax = np.min(img), np.max(img) img = (img - vmin) / (vmax - vmin) if mask is not None: img = img * mask + np.ones_like(img) * (1.0 - mask) return ax.imshow(img.clip(0.0, 1.0), interpolation="nearest") @optional_clean_ax def show_mask(m, ax): color_conv = get_mask_plot_colors(m.shape[0]) color_mask = np.dot(np.transpose(m, [1, 2, 0]), color_conv) return ax.imshow(color_mask.clip(0.0, 1.0), interpolation="nearest") @optional_clean_ax def show_mat(m, ax, vmin=None, vmax=None, cmap="viridis"): return ax.matshow( m[..., 0], cmap=cmap, vmin=vmin, vmax=vmax, interpolation="nearest") @optional_clean_ax def show_coords(m, ax): vmin, vmax = np.min(m), np.max(m) m = (m - vmin) / (vmax - vmin) color_conv = get_mask_plot_colors(m.shape[-1]) color_mask = np.dot(m, color_conv) return ax.imshow(color_mask, interpolation="nearest") def example_plot(rinfo, b=0, t=-1, mask_components=False, size=2, column_titles=True): image = rinfo["data"]["image"][b, 0] recons = rinfo["outputs"]["recons"][b, t, 0] pred_mask = rinfo["outputs"]["pred_mask"][b, t] components = rinfo["outputs"]["components"][b, t] K, H, W, C = components.shape colors = get_mask_plot_colors(K) nrows = 1 ncols = 3 + K fig, axes = plt.subplots(ncols=ncols, figsize=(ncols * size, nrows * size)) show_img(image, ax=axes[0], color="#000000") show_img(recons, ax=axes[1], color="#000000") show_mask(pred_mask[..., 0], ax=axes[2], color="#000000") for k in range(K): mask = pred_mask[k] if mask_components else None show_img(components[k], ax=axes[k + 3], color=colors[k], mask=mask) if column_titles: labels = ["Image", "Recons.", "Mask" ] + ["Component {}".format(k + 1) for k in range(K)] for ax, title in zip(axes, labels): ax.set_title(title) plt.subplots_adjust(hspace=0.03, wspace=0.035) return fig def iterations_plot(rinfo, b=0, mask_components=False, size=2): image = rinfo["data"]["image"][b] true_mask = rinfo["data"]["true_mask"][b] recons = rinfo["outputs"]["recons"][b] pred_mask = rinfo["outputs"]["pred_mask"][b] pred_mask_logits = rinfo["outputs"]["pred_mask_logits"][b] components = rinfo["outputs"]["components"][b] T, K, H, W, C = components.shape colors = get_mask_plot_colors(K) nrows = T + 1 ncols = 2 + K fig, axes = plt.subplots( nrows=nrows, ncols=ncols, figsize=(ncols * size, nrows * size)) for t in range(T): show_img(recons[t, 0], ax=axes[t, 0]) show_mask(pred_mask[t, ..., 0], ax=axes[t, 1]) axes[t, 0].set_ylabel("iter {}".format(t)) for k in range(K): mask = pred_mask[t, k] if mask_components else None show_img(components[t, k], ax=axes[t, k + 2], color=colors[k], mask=mask) axes[0, 0].set_title("Reconstruction") axes[0, 1].set_title("Mask") show_img(image[0], ax=axes[T, 0]) show_mask(true_mask[0, ..., 0], ax=axes[T, 1]) vmin = np.min(pred_mask_logits[T - 1]) vmax = np.max(pred_mask_logits[T - 1]) for k in range(K): axes[0, k + 2].set_title("Component {}".format(k + 1)) # , color=colors[k]) show_mat( pred_mask_logits[T - 1, k], ax=axes[T, k + 2], vmin=vmin, vmax=vmax) axes[T, k + 2].set_xlabel( "Mask Logits for\nComponent {}".format(k + 1)) # , color=colors[k]) axes[T, 0].set_xlabel("Input Image") axes[T, 1].set_xlabel("Ground Truth Mask") plt.subplots_adjust(wspace=0.05, hspace=0.05) return fig def inputs_plot(rinfo, b=0, t=0, size=2): B, T, K, H, W, C = rinfo["outputs"]["components"].shape colors = get_mask_plot_colors(K) inputs = rinfo["inputs"]["spatial"] rows = [ ("image", show_img, False), ("components", show_img, False), ("dcomponents", functools.partial(show_img, norm=True), False), ("mask", show_mat, True), ("pred_mask", show_mat, True), ("dmask", functools.partial(show_mat, cmap="coolwarm"), True), ("posterior", show_mat, True), ("log_prob", show_mat, True), ("counterfactual", show_mat, True), ("coordinates", show_coords, False), ] rows = [(n, f, mcb) for n, f, mcb in rows if n in inputs] nrows = len(rows) ncols = K + 1 fig, axes = plt.subplots( nrows=nrows, ncols=ncols, figsize=(ncols * size - size * 0.9, nrows * size), gridspec_kw={"width_ratios": [1] * K + [0.1]}, ) for r, (name, plot_fn, make_cbar) in enumerate(rows): axes[r, 0].set_ylabel(name) if make_cbar: vmin = np.min(inputs[name][b, t]) vmax = np.max(inputs[name][b, t]) if np.abs(vmin - vmax) < 1e-6: vmin -= 0.1 vmax += 0.1 plot_fn = functools.partial(plot_fn, vmin=vmin, vmax=vmax) # print("range of {:<16}: [{:0.2f}, {:0.2f}]".format(name, vmin, vmax)) for k in range(K): if inputs[name].shape[2] == 1: m = inputs[name][b, t, 0] color = (0.0, 0.0, 0.0) else: m = inputs[name][b, t, k] color = colors[k] mappable = plot_fn(m, ax=axes[r, k], color=color) if make_cbar: fig.colorbar(mappable, cax=axes[r, K]) else: axes[r, K].set_visible(False) for k in range(K): axes[0, k].set_title("Component {}".format(k + 1)) # , color=colors[k]) plt.subplots_adjust(hspace=0.05, wspace=0.05) return fig ================================================ FILE: iodine/modules/refinement.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Iterative refinement modules.""" # pylint: disable=g-doc-bad-indent, unused-variable from iodine.modules import utils import shapeguard import sonnet as snt import tensorflow.compat.v1 as tf class RefinementCore(snt.RNNCore): """Recurrent Refinement Module. Refinement modules take as inputs: * previous state (which could be an arbitrary nested structure) * current inputs which include * image-space inputs like pixel-based errors, or mask-posteriors * latent-space inputs like the previous z_dist, or dz They use these inputs to produce: * output (usually a new z_dist) * new_state """ def __init__(self, encoder_net, recurrent_net, refinement_head, name="refinement"): super().__init__(name=name) self._encoder_net = encoder_net self._recurrent_net = recurrent_net self._refinement_head = refinement_head self._sg = shapeguard.ShapeGuard() def initial_state(self, batch_size, **unused_kwargs): return self._recurrent_net.initial_state(batch_size) def _build(self, inputs, prev_state): sg = self._sg assert "spatial" in inputs, inputs.keys() assert "flat" in inputs, inputs.keys() assert "zp" in inputs["flat"], inputs["flat"].keys() zp = sg.guard(inputs["flat"]["zp"], "B, K, Zp") x = sg.guard(self.prepare_spatial_inputs(inputs["spatial"]), "B*K, H, W, C") h1 = sg.guard(self._encoder_net(x).params, "B*K, H1") h2 = sg.guard(self.prepare_flat_inputs(h1, inputs["flat"]), "B*K, H2") h2_unflattened = sg.reshape(h2, "B, K, H2") h3, next_state = self._recurrent_net(h2_unflattened, prev_state) sg.guard(h3, "B, K, H3") outputs = sg.guard(self._refinement_head(zp, h3), "B, K, Y") del self._sg.B return outputs, next_state def prepare_spatial_inputs(self, inputs): values = [] for name, val in sorted(inputs.items(), key=lambda it: it[0]): if val.shape.as_list()[1] == 1: self._sg.guard(val, "B, 1, H, W, _C") val = tf.tile(val, self._sg["1, K, 1, 1, 1"]) else: self._sg.guard(val, "B, K, H, W, _C") values.append(val) concat_inputs = self._sg.guard(tf.concat(values, axis=-1), "B, K, H, W, C") return self._sg.reshape(concat_inputs, "B*K, H, W, C") def prepare_flat_inputs(self, hidden, inputs): values = [self._sg.guard(hidden, "B*K, H1")] for name, val in sorted(inputs.items(), key=lambda it: it[0]): self._sg.guard(val, "B, K, _") val_flat = tf.reshape(val, self._sg["B*K"] + [-1]) values.append(val_flat) return tf.concat(values, axis=-1) class ResHead(snt.AbstractModule): """Updates Zp using a residual mechanism.""" def __init__(self, name="residual_head"): super().__init__(name=name) def _build(self, zp_old, inputs): sg = shapeguard.ShapeGuard() sg.guard(zp_old, "B, K, Zp") sg.guard(inputs, "B, K, H") update = snt.Linear(sg.Zp) flat_zp = sg.reshape(zp_old, "B*K, Zp") flat_inputs = sg.reshape(inputs, "B*K, H") zp = flat_zp + update(flat_inputs) return sg.reshape(zp, "B, K, Zp") class PredictorCorrectorHead(snt.AbstractModule): """This refinement head is used for sequential data. At every step it computes a prediction from the λ of the previous timestep and an update from the refinement network of the current timestep. The next step λ' is computed as a gated combination of both: λ' = g * λ_corr + (1-g) * λ_pred """ def __init__( self, hidden_sizes=(64,), pred_gate_bias=0.0, corrector_gate_bias=0.0, activation=tf.nn.elu, name="predcorr_head", ): super().__init__(name=name) self._hidden_sizes = hidden_sizes self._activation = utils.get_act_func(activation) self._pred_gate_bias = pred_gate_bias self._corrector_gate_bias = corrector_gate_bias def _build(self, zp_old, inputs): sg = shapeguard.ShapeGuard() sg.guard(zp_old, "B, K, Zp") sg.guard(inputs, "B, K, H") update = snt.Linear(sg.Zp) update_gate = snt.Linear(sg.Zp) predict = snt.nets.MLP( output_sizes=list(self._hidden_sizes) + [sg.Zp * 2], activation=self._activation, ) flat_zp = sg.reshape(zp_old, "B*K, Zp") flat_inputs = sg.reshape(inputs, "B*K, H") g = tf.nn.sigmoid(update_gate(flat_inputs) + self._corrector_gate_bias) u = update(flat_inputs) # a slightly more efficient way of computing the gated update # (1-g) * flat_zp + g * u zp_corrected = flat_zp + g * (u - flat_zp) predicted = predict(flat_zp) pred_up = predicted[:, :sg.Zp] pred_gate = tf.nn.sigmoid(predicted[:, sg.Zp:] + self._pred_gate_bias) zp = zp_corrected + pred_gate * (pred_up - zp_corrected) return sg.reshape(zp, "B, K, Zp") ================================================ FILE: iodine/modules/utils.py ================================================ # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities for IODINE.""" # pylint: disable=g-doc-bad-indent, g-doc-return-or-yield, g-doc-args # pylint: disable=missing-docstring import importlib import math from absl import logging from matplotlib.colors import hsv_to_rgb import numpy as np import shapeguard import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_probability as tfp tfd = tfp.distributions ACT_FUNCS = { "identity": tf.identity, "sigmoid": tf.nn.sigmoid, "tanh": tf.nn.tanh, "relu": tf.nn.relu, "elu": tf.nn.elu, "selu": tf.nn.selu, "softplus": tf.nn.softplus, "exp": tf.exp, "softmax": tf.nn.softmax, } def get_act_func(name_or_func): if name_or_func is None: return tf.identity if callable(name_or_func): return name_or_func elif isinstance(name_or_func, str): return ACT_FUNCS[name_or_func.lower()] else: raise KeyError( 'Unknown activation function "{}" of type {}"'.format( name_or_func, type(name_or_func) ) ) DISTS = { "normal": tfd.Normal, "log_normal": tfd.LogNormal, "laplace": tfd.Laplace, "logistic": tfd.Logistic, } def get_distribution(name_or_dist): if isinstance(name_or_dist, type(tfd.Normal)): return name_or_dist elif isinstance(name_or_dist, str): return DISTS[name_or_dist.lower()] raise KeyError( 'Unknown distribution "{}" of type {}"'.format(name_or_dist, type(name_or_dist))) def get_mask_plot_colors(nr_colors): """Get nr_colors uniformly spaced hues to plot mask values.""" hsv_colors = np.ones((nr_colors, 3), dtype=np.float32) hsv_colors[:, 0] = np.linspace(0, 1, nr_colors, endpoint=False) color_conv = hsv_to_rgb(hsv_colors) return color_conv def color_transform(masks): with tf.name_scope("color_transform"): n_components = masks.shape.as_list()[-1] colors = tf.constant(get_mask_plot_colors(n_components), name="mask_colors") return tf.tensordot(masks, colors, axes=1) def construct_diagnostic_image( images, recons, masks, components, border_width=2, nr_images=6, clip=True, mask_components=False, ): """Construct a single image containing image, recons., mask, and components. Args: images: (B, H, W, C) recons: (B, H, W, C) masks: (B, H, W, K) components: (B, H, W, K, C) border_width: int. width of the border in pixels. (default=2) nr_images: int. Number of images to include. (default=6) clip: bool. Whether to clip the final image to range [0, 1]. Returns: diag_images: (nr, H+border_width*2, (W+border_width*2) * (K+3), 3) """ with tf.name_scope("diagnostic_image"): # transform the masks into RGB images recolored_masks = color_transform(masks[:nr_images]) if images.get_shape().as_list()[-1] == 1: # deal with grayscale images images = tf.tile(images[:nr_images], [1, 1, 1, 3]) recons = tf.tile(recons[:nr_images], [1, 1, 1, 3]) components = tf.tile(components[:nr_images], [1, 1, 1, 1, 3]) if mask_components: components *= masks[:nr_images, ..., tf.newaxis] # Pad everything no_pad, pad = (0, 0), (border_width, border_width) paddings = tf.constant([no_pad, pad, pad, no_pad]) paddings_components = tf.constant([no_pad, pad, pad, no_pad, no_pad]) pad_images = tf.pad(images[:nr_images], paddings, constant_values=0.5) pad_recons = tf.pad(recons[:nr_images], paddings, constant_values=0.5) pad_masks = tf.pad(recolored_masks, paddings, constant_values=1.0) pad_components = tf.pad( components[:nr_images], paddings_components, constant_values=0.5 ) # reshape components into single wide image pad_components = tf.transpose(pad_components, [0, 1, 3, 2, 4]) pc_shape = pad_components.shape.as_list() pc_shape[2] = pc_shape[2] * pc_shape.pop(3) pad_components = tf.reshape(pad_components, pc_shape) # concatenate all parts along width diag_imgs = tf.concat( [pad_images, pad_recons, pad_masks, pad_components], axis=2 ) # concatenate all images along height diag_shape = diag_imgs.shape.as_list() final_img = tf.reshape(diag_imgs, [1, -1, diag_shape[2], diag_shape[3]]) if clip: final_img = tf.clip_by_value(final_img, 0.0, 1.0) return final_img def construct_reconstr_image(images, recons, border_width=2, nr_images=6, clip=True): """Construct a single image containing image, and recons. Args: images: (B, H, W, C) recons: (B, H, W, C) border_width: int. width of the border in pixels. (default=2) nr_images: int. Number of images to include. (default=6) clip: bool. Whether to clip the final image to range [0, 1]. Returns: rec_images: (nr, H+border_width*2, (W+border_width*2) * 2, 3) """ with tf.name_scope("diagnostic_image"): # Pad everything no_pad, pad = (0, 0), (border_width, border_width) paddings = tf.constant([no_pad, pad, pad, no_pad]) pad_images = tf.pad(images[:nr_images], paddings, constant_values=0.5) pad_recons = tf.pad(recons[:nr_images], paddings, constant_values=0.5) # concatenate all parts along width diag_imgs = tf.concat([pad_images, pad_recons], axis=2) # concatenate all images along height diag_shape = diag_imgs.shape.as_list() final_img = tf.reshape(diag_imgs, [1, -1, diag_shape[2], diag_shape[3]]) if clip: final_img = tf.clip_by_value(final_img, 0.0, 1.0) return final_img def construct_iterations_image( images, recons, masks, border_width=2, nr_seqs=2, clip=True ): """Construct a single image containing image, and recons. Args: images: (B, T, 1, H, W, C) recons: (B, T, 1, H, W, C) masks: (B, T, K, H, W, 1) border_width: int. width of the border in pixels. (default=2) nr_seqs: int. Number of sequences to include. (default=2) clip: bool. Whether to clip the final image to range [0, 1]. Returns: rec_images: (nr, H+border_width*2, (W+border_width*2) * 2, 3) """ sg = shapeguard.ShapeGuard() sg.guard(recons, "B, T, 1, H, W, C") if images.get_shape().as_list()[1] == 1: images = tf.tile(images, sg["1, T, 1, 1, 1, 1"]) sg.guard(images, "B, T, 1, H, W, C") sg.guard(masks, " B, T, K, H, W, 1") if sg.C == 1: # deal with grayscale images = tf.tile(images, [1, 1, 1, 1, 1, 3]) recons = tf.tile(recons, [1, 1, 1, 1, 1, 3]) sg.S = min(nr_seqs, sg.B) with tf.name_scope("diagnostic_image"): # convert masks to rgb masks_trans = tf.transpose(masks[:nr_seqs], [0, 1, 5, 3, 4, 2]) recolored_masks = color_transform(masks_trans) # Pad everything no_pad, pad = (0, 0), (border_width, border_width) paddings = tf.constant([no_pad, no_pad, no_pad, pad, pad, no_pad]) pad_images = tf.pad(images[:nr_seqs], paddings, constant_values=0.5) pad_recons = tf.pad(recons[:nr_seqs], paddings, constant_values=0.5) pad_masks = tf.pad(recolored_masks, paddings, constant_values=0.5) # concatenate all parts along width triples = tf.concat([pad_images, pad_recons, pad_masks], axis=3) triples = sg.guard(triples[:, :, 0], "S, T, 3*Hp, Wp, 3") # concatenate iterations along width and sequences along height final = tf.reshape( tf.transpose(triples, [0, 2, 1, 3, 4]), sg["1, S*3*Hp, Wp*T, 3"] ) if clip: final = tf.clip_by_value(final, 0.0, 1.0) return final def get_overview_image(image, output_dist, mask_components=False): recons = output_dist.mean()[:, 0] image = image[:, 0] if hasattr(output_dist, "mixture_distribution") and hasattr( output_dist, "components_distribution" ): mask = output_dist.mixture_distribution.probs[:, 0] components = output_dist.components_distribution.mean()[:, 0] return construct_diagnostic_image( image, recons, mask, components, mask_components=mask_components ) else: return construct_reconstr_image(image, recons) class OnlineMeanVarEstimator(snt.AbstractModule): """Online estimator for mean and variance using Welford's algorithm.""" def __init__(self, axis=None, ddof=0.0, name="online_mean_var"): super().__init__(name=name) self._axis = axis self._ddof = ddof def _build(self, x, weights=None): if weights is None: weights = tf.ones_like(x) if weights.get_shape().as_list() != x.get_shape().as_list(): weights = tf.broadcast_to(weights, x.get_shape().as_list()) sum_weights = tf.reduce_sum(weights, axis=self._axis) shape = sum_weights.get_shape().as_list() total = tf.get_variable( "total", shape=shape, dtype=weights.dtype, initializer=tf.zeros_initializer(), trainable=False, ) mean = tf.get_variable( "mean", shape=shape, dtype=x.dtype, initializer=tf.zeros_initializer(), trainable=False, ) m2 = tf.get_variable( "M2", shape=shape, dtype=x.dtype, initializer=tf.zeros_initializer(), trainable=False, ) total_update = tf.assign_add(total, sum_weights) with tf.control_dependencies([total_update]): delta = (x - mean) * weights mean_update = tf.assign_add( mean, tf.reduce_sum(delta, axis=self._axis) / total ) with tf.control_dependencies([mean_update]): delta2 = x - mean m2_update = tf.assign_add( m2, tf.reduce_sum(delta * delta2, axis=self._axis) ) with tf.control_dependencies([m2_update]): return tf.identity(mean), m2 / (total - self._ddof), tf.identity(total) def print_shapes(name, value, indent=""): if isinstance(value, dict): print("{}{}:".format(indent, name)) for k, v in sorted(value.items(), key=lambda x: (isinstance(x[1], dict), x[0])): print_shapes(k, v, indent + " ") elif isinstance(value, list): print( "{}{}[{}]: {} @ {}".format( indent, name, len(value), value[0].shape, value[0].dtype ) ) elif isinstance(value, np.ndarray): print("{}{}: {} @ {}".format(indent, name, value.shape, value.dtype)) elif isinstance(value, tf.Tensor): print( "{}{}: {} @ {}".format( indent, name, value.get_shape().as_list(), value.dtype ) ) elif np.isscalar(value): print("{}{}: {}".format(indent, name, value)) else: print("{}{}.type: {}".format(indent, name, type(value))) def _pad_images(images, image_border_value=0.5, border_width=2): """Pad images to create gray borders. Args: images: Tensor of shape [B, H], [B, H, W], or [B, H, W, C]. image_border_value: Scalar value of greyscale borderfor images. border_width: Int. Border width in pixels. Raises: ValueError: if the image provided is not {2,3,4} dimensional. Returns: Tensor of same shape as images, except H and W being H + border_width and W + border_width. """ image_rank = len(images.get_shape()) border_paddings = (border_width, border_width) if image_rank == 2: # [B, H] paddings = [(0, 0), border_paddings] elif image_rank == 3: # [B, H, W] paddings = [(0, 0), border_paddings, border_paddings] elif image_rank == 4: # [B, H, W, C] paddings = [(0, 0), border_paddings, border_paddings, (0, 0)] else: raise ValueError("expected image to be 2D, 3D or 4D, got %d" % image_rank) paddings = tf.constant(paddings) return tf.pad(images, paddings, "CONSTANT", constant_values=image_border_value) def images_to_grid( images, grid_height=None, grid_width=4, max_grid_height=4, max_grid_width=4, image_border_value=0.5, ): """Combine images and arrange them in a grid. Args: images: Tensor of shape [B, H], [B, H, W], or [B, H, W, C]. grid_height: Height of the grid of images to output, or None. Either `grid_width` or `grid_height` must be set to an integer value. If None, `grid_height` is set to ceil(B/`grid_width`), and capped at `max_grid_height` when provided. grid_width: Width of the grid of images to output, or None. Either `grid_width` or `grid_height` must be set to an integer value. If None, `grid_width` is set to ceil(B/`grid_height`), and capped at `max_grid_width` when provided. max_grid_height: Maximum allowable height of the grid of images to output or None. Only used when `grid_height` is None. max_grid_width: Maximum allowable width of the grid of images to output, or None. Only used when `grid_width` is None. image_border_value: None or scalar value of greyscale borderfor images. If None, then no border is rendered. Raises: ValueError: if neither of grid_width or grid_height are set to a positive integer. Returns: images: Tensor of shape [height*H, width*W, C]. C will be set to 1 if the input was provided with no channels. Contains all input images in a grid. """ # If only one dimension is set, infer how big the other one should be. if grid_height is None: if not isinstance(grid_width, int) or grid_width <= 0: raise ValueError( "if `grid_height` is None, `grid_width` must be " "a positive integer" ) grid_height = int(math.ceil(images.get_shape()[0].value / grid_width)) if max_grid_height is not None: grid_height = min(max_grid_height, grid_height) if grid_width is None: if not isinstance(grid_height, int) or grid_height <= 0: raise ValueError( "if `grid_width` is None, `grid_height` must be " "a positive integer" ) grid_width = int(math.ceil(images.get_shape()[0].value / grid_height)) if max_grid_width is not None: grid_width = min(max_grid_width, grid_width) images = images[: grid_height * grid_width, ...] # Pad with extra blank frames if grid_height x grid_width is less than the # number of frames provided. pre_images_shape = images.get_shape().as_list() if pre_images_shape[0] < grid_height * grid_width: pre_images_shape[0] = grid_height * grid_width - pre_images_shape[0] if image_border_value is not None: dummy_frames = image_border_value * tf.ones( shape=pre_images_shape, dtype=images.dtype ) else: dummy_frames = tf.zeros(shape=pre_images_shape, dtype=images.dtype) images = tf.concat([images, dummy_frames], axis=0) if image_border_value: images = _pad_images(images, image_border_value=image_border_value) images_shape = images.get_shape().as_list() images = tf.reshape(images, [grid_height, grid_width] + images_shape[1:]) if len(images_shape) == 2: images = tf.expand_dims(images, -1) if len(images_shape) <= 3: images = tf.expand_dims(images, -1) image_height, image_width, channels = images.get_shape().as_list()[2:] images = tf.transpose(images, perm=[0, 2, 1, 3, 4]) images = tf.reshape( images, [grid_height * image_height, grid_width * image_width, channels] ) return images def flatten_all_but_last(tensor, n_dims=1): shape = tensor.shape.as_list() batch_dims = shape[:-n_dims] flat_tensor = tf.reshape(tensor, [np.prod(batch_dims)] + shape[-n_dims:]) def unflatten(other_tensor): other_shape = other_tensor.shape.as_list() return tf.reshape(other_tensor, batch_dims + other_shape[1:]) return flat_tensor, unflatten def ensure_3d(tensor): if tensor.shape.ndims == 2: return tensor[..., None] assert tensor.shape.ndims == 3 return tensor built_element_cache = { "none": None, "global_step": tf.train.get_or_create_global_step(), } def build(plan, identifier): logging.debug("building %s", identifier) if identifier in built_element_cache: logging.debug("%s is already built, returning", identifier) return built_element_cache[identifier] elif not isinstance(plan, dict): return plan elif "constructor" in plan: ctor = _resolve_constructor(plan) kwargs = { k: build(v, identifier=k) for k, v in plan.items() if k != "constructor" } with tf.variable_scope(identifier): built_element_cache[identifier] = ctor(**kwargs) return built_element_cache[identifier] else: return {k: build(v, identifier=k) for k, v in plan.items()} def _resolve_constructor(plan_subsection): assert "constructor" in plan_subsection, plan_subsection if isinstance(plan_subsection["constructor"], str): module, _, ctor = plan_subsection["constructor"].rpartition(".") mod = importlib.import_module(module) return getattr(mod, ctor) else: return plan_subsection["constructor"] ================================================ FILE: iodine/requirements.txt ================================================ tensorflow-gpu==1.14.0 tensorflow-probability==0.7.0 dm-sonnet==1.35 sacred>=0.7,<0.8 shapeguard seaborn pymongo jupyterlab git+git://github.com/deepmind/multi_object_datasets.git ================================================ FILE: iodine/run.sh ================================================ #!/bin/sh # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e echo "downloading checkpoints from GCP" iodine/download_checkpoints.sh python3 -m venv iodine_venv source iodine_venv/bin/activate pip3 install --upgrade setuptools wheel pip3 install -r iodine/requirements.txt # Get some fake data and put it where the real multi_objects_dataset files live. mkdir -p iodine/multi_object_datasets cp iodine/test_data/tetrominoes_mini.tfrecords iodine/multi_object_datasets/tetrominoes_train.tfrecords # Run training with a cut down size. python3 -m iodine.main \ -f with tetrominoes \ data.shuffle_buffer=2 \ data.batch_size=2 \ n_z=4 \ num_components=3 \ stop_after_steps=11 ================================================ FILE: kfac_ferminet_alpha/README.md ================================================ # Accompanying code for Better, Faster Fermionic Neural Networks All package requirements are listed in `requirements.txt`. ## Contributing This is purely research code, provided with no further intentions of support or any guarantees of backward compatibility. ## Installation ```shell git clone git@github.com:deepmind/deepmind-research.git pip install deepmind_research/kfac_ferminet_alpha/ ``` ## Usage You can find examples of how to use the codebase through the [FermiNet project]. We also provide an [example training script]. ## Reference **Better, Faster Fermionic Neural Networks** James S. Spencer, David Pfau, Aleksandar Botev, and W. M. C. Foulkes. URL: https://arxiv.org/abs/2011.07125. **Optimizing Neural Networks with Kronecker-factored Approximate Curvature** James Martens, Roger Grosse URL: https://arxiv.org/abs/1503.05671 [FermiNet Project]: https://github.com/deepmind/ferminet/ [example training script]: https://github.com/deepmind/deepmind-research/blob/master/kfac_ferminet_alpha/example.py ================================================ FILE: kfac_ferminet_alpha/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module for anything that an end user would use.""" from kfac_ferminet_alpha.loss_functions import register_normal_predictive_distribution from kfac_ferminet_alpha.loss_functions import register_squared_error_loss from kfac_ferminet_alpha.optimizer import Optimizer ================================================ FILE: kfac_ferminet_alpha/curvature_blocks.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module for all of the different curvature blocks.""" import abc from typing import Any, Callable, Dict, Mapping, MutableMapping, Optional, Sequence, Union import jax from jax import core import jax.numpy as jnp from kfac_ferminet_alpha import tag_graph_matcher as tgm from kfac_ferminet_alpha import utils _Arrays = Sequence[jnp.ndarray] _BlockInfo = Mapping[str, Any] class CurvatureBlock(utils.Stateful, abc.ABC): """Top level class.""" def __init__(self, layer_tag_eq: tgm.jax_core.JaxprEqn): super(CurvatureBlock, self).__init__() self._layer_tag_eq = layer_tag_eq @property def layer_tag_primitive(self) -> tgm.tags.LayerTag: assert isinstance(self._layer_tag_eq.primitive, tgm.tags.LayerTag) return self._layer_tag_eq.primitive @property def outputs_shapes(self) -> Sequence[Sequence[int]]: output_vars = self.layer_tag_primitive.split_all_inputs( self._layer_tag_eq.invars)[0] return jax.tree_map(lambda x: x.aval.shape, output_vars) @property def inputs_shapes(self) -> Sequence[Sequence[int]]: input_vars = self.layer_tag_primitive.split_all_inputs( self._layer_tag_eq.invars)[1] return jax.tree_map(lambda x: x.aval.shape, input_vars) @property def params_shapes(self) -> Sequence[Sequence[int]]: params_vars = self.layer_tag_primitive.split_all_inputs( self._layer_tag_eq.invars)[2] return jax.tree_map(lambda x: x.aval.shape, params_vars) @abc.abstractmethod def init(self, rng: jnp.ndarray) -> MutableMapping[str, Any]: """This initializes/creates all of the arrays for the state of the block. Usually this would include the arrays used for storing the curvature approximation, as well as the arrays for storing any approximate inverses/powers of the curvature block. Args: rng: The Jax PRNG key to use if any of the state is supposed to be initialized randomly. Returns: A mutable mapping of the state. """ @abc.abstractmethod def update_curvature_matrix_estimate( self, info: _BlockInfo, batch_size: int, ema_old: Union[float, jnp.ndarray], ema_new: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: pass @abc.abstractmethod def update_curvature_inverse_estimate( self, diagonal_weight: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: pass @abc.abstractmethod def multiply_matpower( self, vec: _Arrays, exp: Union[float, int], diagonal_weight: Union[float, jnp.ndarray] ) -> _Arrays: pass CurvatureBlockCtor = Callable[[core.JaxprEqn], CurvatureBlock] @utils.Stateful.infer_class_state class NaiveDiagonal(CurvatureBlock): """The naively estimated diagonal block.""" diagonal_factor: utils.WeightedMovingAverage def init(self, rng: jnp.ndarray) -> Dict[str, Any]: del rng return dict( diagonal_factor=utils.WeightedMovingAverage.zero( self.outputs_shapes[0]) ) def update_curvature_matrix_estimate( self, info: _BlockInfo, batch_size: int, ema_old: Union[float, jnp.ndarray], ema_new: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: dw, = info["outputs_tangent"] diagonal_update = dw * dw / batch_size self.diagonal_factor.update(diagonal_update, ema_old, ema_new) self.diagonal_factor.sync(pmap_axis_name) def update_curvature_inverse_estimate( self, diagonal_weight: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: pass def multiply_matpower( self, vec: _Arrays, exp: Union[float, int], diagonal_weight: Union[float, jnp.ndarray] ) -> _Arrays: w, = vec if exp == 1: return w * (self.diagonal_factor.value + diagonal_weight), elif exp == -1: return w / (self.diagonal_factor.value + diagonal_weight), else: raise NotImplementedError() @utils.Stateful.infer_class_state class TwoKroneckerFactored(CurvatureBlock, abc.ABC): """A factor that is the Kronecker product of two matrices.""" inputs_factor: utils.WeightedMovingAverage inputs_factor_inverse: jnp.ndarray outputs_factor: utils.WeightedMovingAverage outputs_factor_inverse: jnp.ndarray extra_scale: Optional[Union[int, float, jnp.ndarray]] @property def has_bias(self) -> bool: return len(self._layer_tag_eq.invars) == 4 @abc.abstractmethod def input_size(self) -> int: pass @abc.abstractmethod def output_size(self) -> int: pass def compute_extra_scale(self) -> Optional[Union[int, float, jnp.ndarray]]: return 1 def init(self, rng: jnp.ndarray) -> Dict[str, Any]: # The extra scale is technically a constant, but in general it could be # useful for anyone examining the state to know it explicitly, # hence we actually keep it as part of the state. d_in = self.input_size() d_out = self.output_size() return dict( inputs_factor=utils.WeightedMovingAverage.zero([d_in, d_in]), inputs_factor_inverse=jnp.zeros([d_in, d_in]), outputs_factor=utils.WeightedMovingAverage.zero([d_out, d_out]), outputs_factor_inverse=jnp.zeros([d_out, d_out]), extra_scale=self.compute_extra_scale() ) def update_curvature_inverse_estimate( self, diagonal_weight: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: self.inputs_factor.sync(pmap_axis_name) self.outputs_factor.sync(pmap_axis_name) # This computes the approximate inverse factor using the pi-adjusted # inversion from the original KFAC paper. # Note that the damping is divided by extra_scale since: # (s * A kron B + lambda I)^-1 = s^-1 (A kron B + s^-1 * lambda I)^-1 # And the extra division by the scale is included in `multiply_matpower`. (self.inputs_factor_inverse, self.outputs_factor_inverse) = utils.pi_adjusted_inverse( factor_0=self.inputs_factor.value, factor_1=self.outputs_factor.value, damping=diagonal_weight / self.extra_scale, pmap_axis_name=pmap_axis_name) def multiply_matpower( self, vec: _Arrays, exp: Union[float, int], diagonal_weight: Union[float, jnp.ndarray] ) -> _Arrays: if self.has_bias: w, b = vec vec = jnp.concatenate([w.reshape([-1, w.shape[-1]]), b[None]], axis=0) else: w, = vec vec = w.reshape([-1, w.shape[-1]]) if exp == 1: inputs_factor, outputs_factor = (self.inputs_factor.value, self.outputs_factor.value) scale = self.extra_scale elif exp == -1: inputs_factor, outputs_factor = (self.inputs_factor_inverse, self.outputs_factor_inverse) scale = 1.0 / self.extra_scale diagonal_weight = 0 else: raise NotImplementedError() result = jnp.matmul(inputs_factor, vec) result = jnp.matmul(result, outputs_factor) result = result * scale + diagonal_weight * vec if self.has_bias: w_new, b_new = result[:-1], result[-1] return w_new.reshape(w.shape), b_new else: return result.reshape(w.shape), class DenseTwoKroneckerFactored(TwoKroneckerFactored): """Factor for a standard dense layer.""" def input_size(self) -> int: if self.has_bias: return self.params_shapes[0][0] + 1 else: return self.params_shapes[0][0] def output_size(self) -> int: return self.params_shapes[0][1] def update_curvature_matrix_estimate( self, info: _BlockInfo, batch_size: int, ema_old: Union[float, jnp.ndarray], ema_new: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: del pmap_axis_name (x,), (dy,) = info["inputs"], info["outputs_tangent"] utils.check_first_dim_is_batch_size(batch_size, x, dy) if self.has_bias: x_one = jnp.ones_like(x[:, :1]) x = jnp.concatenate([x, x_one], axis=1) input_stats = jnp.matmul(x.T, x) / batch_size output_stats = jnp.matmul(dy.T, dy) / batch_size self.inputs_factor.update(input_stats, ema_old, ema_new) self.outputs_factor.update(output_stats, ema_old, ema_new) @utils.Stateful.infer_class_state class ScaleAndShiftDiagonal(CurvatureBlock): """A scale and shift block with a diagonal approximation to the curvature.""" scale_factor: Optional[utils.WeightedMovingAverage] shift_factor: Optional[utils.WeightedMovingAverage] @property def has_scale(self) -> bool: return self._layer_tag_eq.params["has_scale"] @property def has_shift(self) -> bool: return self._layer_tag_eq.params["has_shift"] def init(self, rng: jnp.ndarray) -> Dict[str, Any]: del rng if self.has_scale and self.has_shift: return dict( scale_factor=utils.WeightedMovingAverage.zero( self.params_shapes[0] ), shift_factor=utils.WeightedMovingAverage.zero( self.params_shapes[1] ) ) elif self.has_scale: return dict( scale_factor=utils.WeightedMovingAverage.zero( self.params_shapes[0] ), shift_factor=None ) elif self.has_shift: return dict( scale_factor=None, shift_factor=utils.WeightedMovingAverage.zero( self.params_shapes[0] ), ) else: raise ValueError("Neither `has_scale` nor `has_shift`.") def update_curvature_matrix_estimate( self, info: _BlockInfo, batch_size: int, ema_old: Union[float, jnp.ndarray], ema_new: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: (x,), (dy,) = info["inputs"], info["outputs_tangent"] utils.check_first_dim_is_batch_size(batch_size, x, dy) if self.has_scale: assert self.scale_factor is not None scale_shape = info["params"][0].shape full_scale_shape = (1,) * (len(x.shape) - len(scale_shape)) + scale_shape axis = [i for i, s in enumerate(full_scale_shape) if s == 1 and i != 0] d_scale = jnp.sum(x * dy, axis=axis) scale_diag_update = jnp.sum(d_scale * d_scale, axis=0) / batch_size self.scale_factor.update(scale_diag_update, ema_old, ema_new) # pytype: disable=attribute-error # trace-all-classes self.scale_factor.sync(pmap_axis_name) # pytype: disable=attribute-error # trace-all-classes if self.has_shift: assert self.shift_factor is not None shift_shape = info["params"][1].shape full_shift_shape = (1,) * (len(x.shape) - len(shift_shape)) + shift_shape axis = [i for i, s in enumerate(full_shift_shape) if s == 1 and i != 0] d_shift = jnp.sum(dy, axis=axis) shift_diag_update = jnp.sum(d_shift * d_shift, axis=0) / batch_size self.shift_factor.update(shift_diag_update, ema_old, ema_new) # pytype: disable=attribute-error # trace-all-classes self.shift_factor.sync(pmap_axis_name) # pytype: disable=attribute-error # trace-all-classes def update_curvature_inverse_estimate( self, diagonal_weight: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: pass def multiply_matpower( self, vec: _Arrays, exp: Union[float, int], diagonal_weight: Union[float, jnp.ndarray] ) -> _Arrays: if self.has_scale and self.has_shift: factors = (self.scale_factor.value, self.shift_factor.value) # pytype: disable=attribute-error # trace-all-classes elif self.has_scale: factors = (self.scale_factor.value,) # pytype: disable=attribute-error # trace-all-classes elif self.has_shift: factors = (self.shift_factor.value,) # pytype: disable=attribute-error # trace-all-classes else: raise ValueError("Neither `has_scale` nor `has_shift`.") factors = jax.tree_map(lambda x: x + diagonal_weight, factors) if exp == 1: return jax.tree_map(jnp.multiply, vec, factors) elif exp == -1: return jax.tree_map(jnp.divide, vec, factors) else: raise NotImplementedError() @utils.Stateful.infer_class_state class ScaleAndShiftFull(CurvatureBlock): """A scale and shift block with full approximation to the curvature.""" factor: utils.WeightedMovingAverage inverse_factor: jnp.ndarray @property def _has_scale(self) -> bool: return self._layer_tag_eq.params["has_scale"] @property def _has_shift(self) -> bool: return self._layer_tag_eq.params["has_shift"] def init(self, rng: jnp.ndarray) -> Dict[str, Any]: del rng dims = sum(utils.product(shape) for shape in self.params_shapes) return dict( factor=utils.WeightedMovingAverage.zero([dims, dims]), inverse_factor=jnp.zeros([dims, dims]) ) def update_curvature_matrix_estimate( self, info: _BlockInfo, batch_size: int, ema_old: Union[float, jnp.ndarray], ema_new: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: del pmap_axis_name (x,), (dy,) = info["inputs"], info["outputs_tangent"] utils.check_first_dim_is_batch_size(batch_size, x, dy) grads = list() if self._has_scale: # Scale gradients scale_shape = info["params"][0].shape full_scale_shape = (1,) * (len(x.shape) - len(scale_shape)) + scale_shape axis = [i for i, s in enumerate(full_scale_shape) if s == 1 and i != 0] d_scale = jnp.sum(x * dy, axis=axis) d_scale = d_scale.reshape([batch_size, -1]) grads.append(d_scale) if self._has_shift: # Shift gradients shift_shape = info["params"][1].shape full_shift_shape = (1,) * (len(x.shape) - len(shift_shape)) + shift_shape axis = [i for i, s in enumerate(full_shift_shape) if s == 1 and i != 0] d_shift = jnp.sum(dy, axis=axis) d_shift = d_shift.reshape([batch_size, -1]) grads.append(d_shift) grads = jnp.concatenate(grads, axis=1) factor_update = jnp.matmul(grads.T, grads) / batch_size self.factor.update(factor_update, ema_old, ema_new) def update_curvature_inverse_estimate( self, diagonal_weight: Union[float, jnp.ndarray], pmap_axis_name: str ) -> None: self.factor.sync(pmap_axis_name) self.inverse_factor = utils.psd_inv_cholesky(self.factor.value, diagonal_weight) def multiply_matpower( self, vec: _Arrays, exp: Union[float, int], diagonal_weight: Union[float, jnp.ndarray] ) -> _Arrays: # Remember the vector is a tuple of all parameters if self._has_scale and self._has_shift: flat_vec = jnp.concatenate([v.flatten() for v in vec]) else: flat_vec = vec[0].flatten() if exp == 1: flat_result = ( jnp.matmul(self.factor.value, flat_vec) + diagonal_weight * flat_vec) elif exp == -1: flat_result = jnp.matmul(self.inverse_factor, flat_vec) else: raise NotImplementedError() if self._has_scale and self._has_shift: scale_dims = int(vec[0].size) scale_result = flat_result[:scale_dims].reshape(vec[0].shape) shift_result = flat_result[scale_dims:].reshape(vec[1].shape) return scale_result, shift_result else: return flat_vec.reshape(vec[0].shape), _default_tag_to_block: MutableMapping[str, CurvatureBlockCtor] = dict( dense_tag=DenseTwoKroneckerFactored, generic_tag=NaiveDiagonal, scale_and_shift_tag=ScaleAndShiftDiagonal, ) def copy_default_tag_to_block() -> MutableMapping[str, CurvatureBlockCtor]: return dict(_default_tag_to_block) def get_default_tag_to_block(tag_name: str) -> CurvatureBlockCtor: return _default_tag_to_block[tag_name] def set_default_tag_to_block( tag_name: str, block_class: CurvatureBlockCtor, ) -> None: _default_tag_to_block[tag_name] = block_class ================================================ FILE: kfac_ferminet_alpha/distributions.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module for all distribution implementations needed for the loss functions.""" import math import jax import jax.numpy as jnp class MultivariateNormalDiag: """Multivariate normal distribution on `R^k`.""" def __init__( self, loc: jnp.ndarray, scale_diag: jnp.ndarray): """Initializes a MultivariateNormalDiag distribution. Args: loc: Mean vector of the distribution. Can also be a batch of vectors. scale_diag: Vector of standard deviations. """ super().__init__() self._loc = loc self._scale_diag = scale_diag @property def loc(self) -> jnp.ndarray: """Mean of the distribution.""" return self._loc @property def scale_diag(self) -> jnp.ndarray: """Scale of the distribution.""" return self._scale_diag def _num_dims(self) -> int: """Dimensionality of the events.""" return self._scale_diag.shape[-1] def _standardize(self, value: jnp.ndarray) -> jnp.ndarray: return (value - self._loc) / self._scale_diag def log_prob(self, value: jnp.ndarray) -> jnp.ndarray: """See `Distribution.log_prob`.""" log_unnormalized = -0.5 * jnp.square(self._standardize(value)) log_normalization = 0.5 * math.log(2 * math.pi) + jnp.log(self._scale_diag) return jnp.sum(log_unnormalized - log_normalization, axis=-1) def mean(self) -> jnp.ndarray: """Calculates the mean.""" return self.loc def sample(self, seed: jnp.ndarray) -> jnp.ndarray: """Samples an event. Args: seed: PRNG key or integer seed. Returns: A sample. """ eps = jax.random.normal(seed, self.loc.shape) return self.loc + eps * self.scale_diag ================================================ FILE: kfac_ferminet_alpha/estimator.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Defines the high-level Fisher estimator class.""" import collections from typing import Any, Callable, Mapping, Optional, Sequence, Union, TypeVar import jax import jax.numpy as jnp import jax.random as jnr import numpy as np from kfac_ferminet_alpha import curvature_blocks from kfac_ferminet_alpha import tracer from kfac_ferminet_alpha import utils _CurvatureBlock = curvature_blocks.CurvatureBlock TagMapping = Mapping[str, curvature_blocks.CurvatureBlockCtor] BlockVector = Sequence[jnp.ndarray] _StructureT = TypeVar("_StructureT") _OptionalStateT = TypeVar("_OptionalStateT", bound=Optional[Mapping[str, Any]]) @utils.Stateful.infer_class_state class CurvatureEstimator(utils.Stateful): """Curvature estimator class supporting various curvature approximations.""" blocks: "collections.OrderedDict[str, _CurvatureBlock]" damping: Optional[jnp.ndarray] def __init__(self, tagged_func: Callable[[Any], jnp.ndarray], func_args: Sequence[Any], l2_reg: Union[float, jnp.ndarray], estimation_mode: str = "fisher_gradients", params_index: int = 0, layer_tag_to_block_cls: Optional[TagMapping] = None): """Create a FisherEstimator object. Args: tagged_func: The function which evaluates the model, in which layer and loss tags has already been registered. func_args: Arguments to trace the function for layer and loss tags. l2_reg: Scalar. The L2 regularization coefficient, which represents the following regularization function: `coefficient/2 ||theta||^2`. estimation_mode: The type of curvature estimator to use. One of: * 'fisher_gradients' - the basic estimation approach from the original K-FAC paper. (Default) * 'fisher_curvature_prop' - method which estimates the Fisher using self-products of random 1/-1 vectors times "half-factors" of the Fisher, as described here: https://arxiv.org/abs/1206.6464 * 'fisher_exact' - is the obvious generalization of Curvature Propagation to compute the exact Fisher (modulo any additional diagonal or Kronecker approximations) by looping over one-hot vectors for each coordinate of the output instead of using 1/-1 vectors. It is more expensive to compute than the other three options by a factor equal to the output dimension, roughly speaking. * 'fisher_empirical' - computes the 'empirical' Fisher information matrix (which uses the data's distribution for the targets, as opposed to the true Fisher which uses the model's distribution) and requires that each registered loss have specified targets. * 'ggn_curvature_prop' - Analogous to fisher_curvature_prop, but estimates the Generalized Gauss-Newton matrix (GGN). * 'ggn_exact'- Analogous to fisher_exact, but estimates the Generalized Gauss-Newton matrix (GGN). params_index: The index of the arguments accepted by `func` which correspond to parameters. layer_tag_to_block_cls: An optional dict mapping tags to specific classes of block approximations, which to override the default ones. """ if estimation_mode not in ("fisher_gradients", "fisher_empirical", "fisher_exact", "fisher_curvature_prop", "ggn_exact", "ggn_curvature_prop"): raise ValueError(f"Unrecognised estimation_mode={estimation_mode}.") super().__init__() self.tagged_func = tagged_func self.l2_reg = l2_reg self.estimation_mode = estimation_mode self.params_index = params_index self.vjp = tracer.trace_estimator_vjp(self.tagged_func) # Figure out the mapping from layer self.layer_tag_to_block_cls = curvature_blocks.copy_default_tag_to_block() if layer_tag_to_block_cls is None: layer_tag_to_block_cls = dict() layer_tag_to_block_cls = dict(**layer_tag_to_block_cls) self.layer_tag_to_block_cls.update(layer_tag_to_block_cls) # Create the blocks self._in_tree = jax.tree_structure(func_args) self._jaxpr = jax.make_jaxpr(self.tagged_func)(*func_args).jaxpr self._layer_tags, self._loss_tags = tracer.extract_tags(self._jaxpr) self.blocks = collections.OrderedDict() counters = dict() for eqn in self._layer_tags: cls = self.layer_tag_to_block_cls[eqn.primitive.name] c = counters.get(cls.__name__, 0) self.blocks[cls.__name__ + "_" + str(c)] = cls(eqn) counters[cls.__name__] = c + 1 @property def diagonal_weight(self) -> jnp.ndarray: return self.l2_reg + self.damping def vectors_to_blocks( self, parameter_structured_vector: Any, ) -> Sequence[BlockVector]: """Splits the parameters to values for the corresponding blocks.""" in_vars = jax.tree_unflatten(self._in_tree, self._jaxpr.invars) params_vars = in_vars[self.params_index] params_vars_flat = jax.tree_flatten(params_vars)[0] params_values_flat = jax.tree_flatten(parameter_structured_vector)[0] assert len(params_vars_flat) == len(params_values_flat) params_dict = dict(zip(params_vars_flat, params_values_flat)) per_block_vectors = [] for eqn in self._layer_tags: if eqn.primitive.name == "generic_tag": block_vars = eqn.invars else: block_vars = eqn.primitive.split_all_inputs(eqn.invars)[2] # pytype: disable=attribute-error # trace-all-classes per_block_vectors.append(tuple(params_dict.pop(v) for v in block_vars)) if params_dict: raise ValueError(f"From the parameters the following structure is not " f"assigned to any block: {params_dict}. Most likely " f"this part of the parameters is not part of the graph " f"reaching the losses.") return tuple(per_block_vectors) def blocks_to_vectors(self, per_block_vectors: Sequence[BlockVector]) -> Any: """Reverses the function self.vectors_to_blocks.""" in_vars = jax.tree_unflatten(self._in_tree, self._jaxpr.invars) params_vars = in_vars[self.params_index] assigned_dict = dict() for eqn, block_values in zip(self._layer_tags, per_block_vectors): if eqn.primitive.name == "generic_tag": block_params = eqn.invars else: block_params = eqn.primitive.split_all_inputs(eqn.invars)[2] # pytype: disable=attribute-error # trace-all-classes assigned_dict.update(zip(block_params, block_values)) params_vars_flat, params_tree = jax.tree_flatten(params_vars) params_values_flat = [assigned_dict[v] for v in params_vars_flat] assert len(params_vars_flat) == len(params_values_flat) return jax.tree_unflatten(params_tree, params_values_flat) def init( self, rng: jnp.ndarray, init_damping: Optional[jnp.ndarray], ) -> Mapping[str, Any]: """Returns an initialized variables for the curvature approximations and the inverses..""" return dict( blocks=collections.OrderedDict( (name, block.init(block_rng)) # for (name, block), block_rng # in zip(self.blocks.items(), jnr.split(rng, len(self.blocks)))), damping=init_damping) @property def mat_type(self) -> str: return self.estimation_mode.split("_")[0] def vec_block_apply( self, func: Callable[[_CurvatureBlock, BlockVector], BlockVector], parameter_structured_vector: Any, ) -> Any: """Executes func for each approximation block on vectors.""" per_block_vectors = self.vectors_to_blocks(parameter_structured_vector) assert len(per_block_vectors) == len(self.blocks) results = jax.tree_map(func, tuple(self.blocks.values()), per_block_vectors) parameter_structured_result = self.blocks_to_vectors(results) utils.check_structure_shapes_and_dtype(parameter_structured_vector, parameter_structured_result) return parameter_structured_result def multiply_inverse(self, parameter_structured_vector: Any) -> Any: """Multiplies the vectors by the corresponding (damped) inverses of the blocks. Args: parameter_structured_vector: Structure equivalent to the parameters of the model. Returns: A structured identical to `vectors` containing the product. """ return self.multiply_matpower(parameter_structured_vector, -1) def multiply(self, parameter_structured_vector: Any) -> Any: """Multiplies the vectors by the corresponding (damped) blocks. Args: parameter_structured_vector: A vector in the same structure as the parameters of the model. Returns: A structured identical to `vectors` containing the product. """ return self.multiply_matpower(parameter_structured_vector, 1) def multiply_matpower( self, parameter_structured_vector: _StructureT, exp: int, ) -> _StructureT: """Multiplies the vectors by the corresponding matrix powers of the blocks. Args: parameter_structured_vector: A vector in the same structure as the parameters of the model. exp: A float representing the power to raise the blocks by before multiplying it by the vector. Returns: A structured identical to `vectors` containing the product. """ def func(block: _CurvatureBlock, vec: BlockVector) -> BlockVector: return block.multiply_matpower(vec, exp, self.diagonal_weight) return self.vec_block_apply(func, parameter_structured_vector) def update_curvature_matrix_estimate( self, ema_old: Union[float, jnp.ndarray], ema_new: Union[float, jnp.ndarray], batch_size: int, rng: jnp.ndarray, func_args: Sequence[Any], pmap_axis_name: str, ) -> None: """Updates the curvature estimate.""" # Compute the losses and the VJP function from the function inputs losses, losses_vjp = self.vjp(func_args) # Helper function that updates the blocks given a vjp vector def _update_blocks(vjp_vec_, ema_old_, ema_new_): blocks_info_ = losses_vjp(vjp_vec_) for block_, block_info_ in zip(self.blocks.values(), blocks_info_): block_.update_curvature_matrix_estimate( info=block_info_, batch_size=batch_size, ema_old=ema_old_, ema_new=ema_new_, pmap_axis_name=pmap_axis_name) if self.estimation_mode == "fisher_gradients": keys = jnr.split(rng, len(losses)) if len(losses) > 1 else [rng] vjp_vec = tuple( loss.grad_of_evaluate_on_sample(key, coefficient_mode="sqrt") for loss, key in zip(losses, keys)) _update_blocks(vjp_vec, ema_old, ema_new) elif self.estimation_mode in ("fisher_curvature_prop", "ggn_curvature_prop"): keys = jnr.split(rng, len(losses)) if len(losses) > 1 else [rng] vjp_vec = [] for loss, key in zip(losses, keys): if self.estimation_mode == "fisher_curvature_prop": random_b = jnr.bernoulli(key, shape=loss.fisher_factor_inner_shape()) vjp_vec.append(loss.multiply_fisher_factor(random_b * 2.0 - 1.0)) else: random_b = jnr.bernoulli(key, shape=loss.ggn_factor_inner_shape()) vjp_vec.append(loss.multiply_ggn_factor(random_b * 2.0 - 1.0)) _update_blocks(tuple(vjp_vec), ema_old, ema_new) elif self.estimation_mode in ("fisher_exact", "ggn_exact"): # We use the following trick to simulate summation. The equation is: # estimate = ema_old * estimate + ema_new * (sum_i estimate_index_i) # weight = ema_old * weight + ema_new # Instead we update the estimate n times with the following updates: # for k = 1 # estimate_k = ema_old * estimate + (ema_new/n) * (n*estimate_index_k) # weight_k = ema_old * weight + (ema_new/n) # for k > 1: # estimate_k = 1.0 * estimate_k-1 + (ema_new/n) * (n*estimate_index_k) # weight_k = 1.0 * weight_k-1 + (ema_new/n) # Which is mathematically equivalent to the original version. zero_tangents = jax.tree_map(jnp.zeros_like, list(loss.inputs for loss in losses)) if self.estimation_mode == "fisher_exact": num_indices = [ (l, int(np.prod(l.fisher_factor_inner_shape[1:]))) for l in losses ] else: num_indices = [ (l, int(np.prod(l.ggn_factor_inner_shape()))) for l in losses ] total_num_indices = sum(n for _, n in num_indices) for i, (loss, loss_num_indices) in enumerate(num_indices): for index in range(loss_num_indices): vjp_vec = zero_tangents.copy() if self.estimation_mode == "fisher_exact": vjp_vec[i] = loss.multiply_fisher_factor_replicated_one_hot([index]) else: vjp_vec[i] = loss.multiply_ggn_factor_replicated_one_hot([index]) if isinstance(vjp_vec[i], jnp.ndarray): # In the special case of only one parameter, it still needs to be a # tuple for the tangents. vjp_vec[i] = (vjp_vec[i],) vjp_vec[i] = jax.tree_map(lambda x: x * total_num_indices, vjp_vec[i]) _update_blocks(tuple(vjp_vec), ema_old, ema_new / total_num_indices) ema_old = 1.0 elif self.estimation_mode == "fisher_empirical": raise NotImplementedError() else: raise ValueError(f"Unrecognised estimation_mode={self.estimation_mode}") def update_curvature_estimate_inverse( self, pmap_axis_name: str, state: _OptionalStateT, ) -> _OptionalStateT: if state is not None: old_state = self.get_state() self.set_state(state) for block in self.blocks.values(): block.update_curvature_inverse_estimate(self.diagonal_weight, pmap_axis_name) if state is None: return None else: state = self.pop_state() self.set_state(old_state) return state ================================================ FILE: kfac_ferminet_alpha/example.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Example of running KFAC.""" from absl import app from absl import flags import jax import jax.numpy as jnp import numpy as np import kfac_ferminet_alpha as kfac_ferminet_alpha from kfac_ferminet_alpha import utils TRAINING_STEPS = flags.DEFINE_integer( name="training_steps", default=100, help="Number of training steps to perform") BATCH_SIZE = flags.DEFINE_integer( name="batch_size", default=128, help="Batch size") LEARNING_RATE = flags.DEFINE_float( name="learning_rate", default=1e-3, help="Learning rate") L2_REG = flags.DEFINE_float( name="l2_reg", default=1e-3, help="L2 regularization coefficient") MOMENTUM = flags.DEFINE_float( name="momentum", default=0.8, help="Momentum coefficient") DAMPING = flags.DEFINE_float( name="damping", default=1e-2, help="Damping coefficient") MULTI_DEVICE = flags.DEFINE_bool( name="multi_device", default=False, help="Whether the computation should be replicated across multiple devices") SEED = flags.DEFINE_integer(name="seed", default=12412321, help="JAX RNG seed") def glorot_uniform(shape, key): dim_in = np.prod(shape[:-1]) dim_out = shape[-1] c = jnp.sqrt(6 / (dim_in + dim_out)) return jax.random.uniform(key, shape=shape, minval=-c, maxval=c) def fully_connected_layer(params, x): w, b = params return jnp.matmul(x, w) + b[None] def model_init(rng_key, batch, encoder_sizes=(1000, 500, 250, 30)): """Initialize the standard autoencoder.""" x_size = batch.shape[-1] decoder_sizes = encoder_sizes[len(encoder_sizes) - 2::-1] sizes = (x_size,) + encoder_sizes + decoder_sizes + (x_size,) keys = jax.random.split(rng_key, len(sizes) - 1) params = [] for rng_key, dim_in, dim_out in zip(keys, sizes, sizes[1:]): # Glorot uniform initialization w = glorot_uniform((dim_in, dim_out), rng_key) b = jnp.zeros([dim_out]) params.append((w, b)) return params, None def model_loss(params, inputs, l2_reg): """Evaluate the standard autoencoder.""" h = inputs.reshape([inputs.shape[0], -1]) for i, layer_params in enumerate(params): h = fully_connected_layer(layer_params, h) # Last layer does not have a nonlinearity if i % 4 != 3: h = jnp.tanh(h) l2_value = 0.5 * sum(jnp.square(p).sum() for p in jax.tree_leaves(params)) error = jax.nn.sigmoid(h) - inputs.reshape([inputs.shape[0], -1]) mean_squared_error = jnp.mean(jnp.sum(error * error, axis=1), axis=0) regularized_loss = mean_squared_error + l2_reg * l2_value return regularized_loss, dict(mean_squared_error=mean_squared_error) def random_data(multi_device, batch_shape, rng): if multi_device: shape = (multi_device,) + tuple(batch_shape) else: shape = tuple(batch_shape) while True: rng, key = jax.random.split(rng) yield jax.random.normal(key, shape) def main(argv): del argv # Unused. learning_rate = jnp.asarray([LEARNING_RATE.value]) momentum = jnp.asarray([MOMENTUM.value]) damping = jnp.asarray([DAMPING.value]) # RNG keys global_step = jnp.zeros([]) rng = jax.random.PRNGKey(SEED.value) params_key, opt_key, step_key, data_key = jax.random.split(rng, 4) dataset = random_data(MULTI_DEVICE.value, (BATCH_SIZE.value, 20), data_key) example_batch = next(dataset) if MULTI_DEVICE.value: global_step = utils.replicate_all_local_devices(global_step) learning_rate = utils.replicate_all_local_devices(learning_rate) momentum = utils.replicate_all_local_devices(momentum) damping = utils.replicate_all_local_devices(damping) params_key, opt_key = utils.replicate_all_local_devices( (params_key, opt_key)) step_key = utils.make_different_rng_key_on_all_devices(step_key) split_key = jax.pmap(lambda x: tuple(jax.random.split(x))) jit_init_parameters_func = jax.pmap(model_init) else: split_key = jax.random.split jit_init_parameters_func = jax.jit(model_init) # Initialize or load parameters params, func_state = jit_init_parameters_func(params_key, example_batch) # Make optimizer optim = kfac_ferminet_alpha.Optimizer( value_and_grad_func=jax.value_and_grad( lambda p, x: model_loss(p, x, L2_REG.value), has_aux=True), l2_reg=L2_REG.value, value_func_has_aux=True, value_func_has_state=False, value_func_has_rng=False, learning_rate_schedule=None, momentum_schedule=None, damping_schedule=None, norm_constraint=1.0, num_burnin_steps=10, ) # Initialize optimizer opt_state = optim.init(params, opt_key, example_batch, func_state) for t in range(TRAINING_STEPS.value): step_key, key_t = split_key(step_key) params, opt_state, stats = optim.step( params, opt_state, key_t, dataset, learning_rate=learning_rate, momentum=momentum, damping=damping) global_step = global_step + 1 # Log any of the statistics print(f"iteration: {t}") print(f"mini-batch loss = {stats['loss']}") if "aux" in stats: for k, v in stats["aux"].items(): print(f"{k} = {v}") print("----") if __name__ == "__main__": app.run(main) ================================================ FILE: kfac_ferminet_alpha/layers_and_loss_tags.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A module for registering already known functions for tagging patterns.""" import functools from typing import Sequence, Tuple, TypeVar import jax from jax import core as jax_core from jax import lax from jax import lib as jax_lib from jax.interpreters import batching as jax_batching import jax.numpy as jnp _T = TypeVar("_T") class LossTag(jax_core.Primitive): """A tagging primitive specifically for losses.""" multiple_results = True def __init__(self, cls, num_inputs: int, num_targets: int = 1): super().__init__(cls.__name__ + "_tag") self._cls = cls self._num_inputs = num_inputs self._num_targets = num_targets jax.xla.translations[self] = self.xla_translation jax.ad.primitive_jvps[self] = self.jvp # This line defines how does the tag behave under vmap. It is required for # any primitive that can be used inside a vmap. The reason why we want to # allow this is two fold - one to not break user code when the tags are not # used at all, and two - to be able to define a network with code for a # single example which is the vmap-ed for a batch. jax_batching.primitive_batchers[self] = self.batching @property def num_inputs(self) -> int: return self._num_inputs @property def num_targets(self) -> int: return self._num_targets def loss(self, *args, weight: float = 1.0, **kwargs): return self._cls(*args, weight=weight, **kwargs) def loss_evaluate(self, *args, weight: float = 1.0, **kwargs): return self.loss(*args, weight=weight, **kwargs).evaluate() def get_outputs(self, *args, weight: float, return_loss: bool, **kwargs): if len(args) < self.num_inputs: raise ValueError("Inputs to the tag are not enough.") if len(args) < self.num_inputs + self.num_targets: if len(args) != self.num_inputs: raise ValueError("Inputs to the tag are not quite enough.") if return_loss: raise ValueError("Can not have return_loss=True when there are no " "targets.") return args if len(args) > self.num_inputs + self.num_targets: raise ValueError("Inputs to the tag are too many.") if return_loss: return self.loss(*args, weight=weight, **kwargs).evaluate() else: return args def impl(self, *args, weight: float, return_loss: bool, **kwargs): return self.get_outputs(*args, weight=weight, return_loss=return_loss) def abstract_eval(self, *args, weight: float, return_loss: bool, **kwargs): jax_version = ( jax.__version_info__ if hasattr(jax, "__version_info__") else tuple(map(int, jax.__version__.split(".")))) if jax_version > (0, 3, 4): return (self.get_outputs(*args, weight=weight, return_loss=return_loss), jax_core.no_effects) return self.get_outputs(*args, weight=weight, return_loss=return_loss) def xla_translation( self, c, *args, weight: float = 1.0, return_loss: bool = False, **kwargs, ): outputs = self.get_outputs( *args, weight=weight, return_loss=return_loss, **kwargs) if isinstance(outputs, tuple): return jax_lib.xla_client.ops.Tuple(c, outputs) return outputs def jvp( self, arg_values, arg_tangents, weight: float, return_loss: bool, **kwargs, ): if len(arg_values) != len(arg_tangents): raise ValueError("Values and tangents are not the same length.") primal_output = self.bind( *arg_values, weight=weight, return_loss=return_loss, **kwargs) if len(arg_values) == self.num_inputs: tangents_out = self.get_outputs( *arg_tangents, weight=weight, return_loss=return_loss, **kwargs) elif return_loss: tangents_out = jax.jvp( functools.partial(self.loss_evaluate, weight=weight, **kwargs), arg_tangents, arg_tangents)[1] else: tangents_out = arg_tangents return primal_output, tangents_out def batching(self, batched_args, batched_dims, **kwargs): return self.bind(*batched_args, **kwargs), batched_dims[0] class LayerTag(jax_core.Primitive): """A tagging primitive that is used to mark/tag computation.""" def __init__(self, name: str, num_inputs: int, num_outputs: int): super().__init__(name) if num_outputs > 1: raise NotImplementedError( f"Only single outputs are supported, got: num_outputs={num_outputs}") self._num_outputs = num_outputs self._num_inputs = num_inputs jax.xla.translations[self] = self.xla_translation jax.ad.deflinear(self, self.transpose) jax.ad.primitive_transposes[self] = self.transpose # This line defines how does the tag behave under vmap. It is required for # any primitive that can be used inside a vmap. The reason why we want to # allow this is two fold - one to not break user code when the tags are not # used at all, and two - to be able to define a network with code for a # single example which is the vmap-ed for a batch. jax_batching.primitive_batchers[self] = self.batching @property def num_outputs(self) -> int: return self._num_outputs @property def num_inputs(self) -> int: return self._num_inputs def split_all_inputs( self, all_inputs: Sequence[_T], ) -> Tuple[Sequence[_T], Sequence[_T], Sequence[_T]]: outputs = tuple(all_inputs[:self.num_outputs]) inputs = tuple(all_inputs[self.num_outputs:self.num_outputs + self.num_inputs]) params = tuple(all_inputs[self.num_outputs + self.num_inputs:]) return outputs, inputs, params def get_outputs(self, *operands: _T, **kwargs) -> _T: assert self.num_outputs == 1 return operands[0] def xla_translation(self, c, *operands: _T, **kwargs) -> _T: return self.get_outputs(*operands, **kwargs) @staticmethod def transpose(cotangent, *operands, **kwargs): return (cotangent,) + (None,) * (len(operands) - 1) def impl(self, *operands, **kwargs): return self.get_outputs(*operands, **kwargs) def abstract_eval(self, *abstract_operands, **kwargs): jax_version = ( jax.__version_info__ if hasattr(jax, "__version_info__") else tuple(map(int, jax.__version__.split(".")))) if jax_version > (0, 3, 4): return self.get_outputs(*abstract_operands, **kwargs), jax_core.no_effects return self.get_outputs(*abstract_operands, **kwargs) def batching(self, batched_operands, batched_dims, **kwargs): return self.bind(*batched_operands, **kwargs), batched_dims[0] # _____ _ # / ____| (_) # | | __ ___ _ __ ___ _ __ _ ___ # | | |_ |/ _ \ '_ \ / _ \ '__| |/ __| # | |__| | __/ | | | __/ | | | (__ # \_____|\___|_| |_|\___|_| |_|\___| # # generic_tag = LayerTag(name="generic_tag", num_inputs=0, num_outputs=1) def register_generic(parameter: _T) -> _T: return generic_tag.bind(parameter) # _____ # | __ \ # | | | | ___ _ __ ___ ___ # | | | |/ _ \ '_ \/ __|/ _ \ # | |__| | __/ | | \__ \ __/ # |_____/ \___|_| |_|___/\___| # dense_tag = LayerTag(name="dense_tag", num_inputs=1, num_outputs=1) def register_dense(y, x, w, b=None): if b is None: return dense_tag.bind(y, x, w) return dense_tag.bind(y, x, w, b) def dense_func(x, params): """Example of a dense layer function.""" w = params[0] y = jnp.matmul(x, w) if len(params) == 1: # No bias return y # Add bias return y + params[1] def dense_tagging(jaxpr, inverse_map, values_map): """Correctly registers a dense layer pattern.""" del inverse_map in_values = [values_map[v] for v in jaxpr.invars] out_values = [values_map[v] for v in jaxpr.outvars] return register_dense(out_values[0], *in_values) # ___ _____ _____ _ _ _ # |__ \| __ \ / ____| | | | | (_) # ) | | | | | | ___ _ ____ _____ | |_ _| |_ _ ___ _ __ # / /| | | | | | / _ \| '_ \ \ / / _ \| | | | | __| |/ _ \| "_ \ # / /_| |__| | | |___| (_) | | | \ V / (_) | | |_| | |_| | (_) | | | | # |____|_____/ \_____\___/|_| |_|\_/ \___/|_|\__,_|\__|_|\___/|_| |_| # conv2d_tag = LayerTag(name="conv2d_tag", num_inputs=1, num_outputs=1) def register_conv2d(y, x, w, b=None, **kwargs): if b is None: return conv2d_tag.bind(y, x, w, **kwargs) return conv2d_tag.bind(y, x, w, b, **kwargs) def conv2d_func(x, params): """Example of a conv2d layer function.""" w = params[0] y = lax.conv_general_dilated( x, w, window_strides=(2, 2), padding="SAME", dimension_numbers=("NHWC", "HWIO", "NHWC")) if len(params) == 1: # No bias return y # Add bias return y + params[1][None, None, None] def conv2d_tagging(jaxpr, inverse_map, values_map): """Correctly registers a conv2d layer pattern.""" in_values = [values_map[v] for v in jaxpr.invars] out_values = [values_map[v] for v in jaxpr.outvars] keys = [k for k in inverse_map.keys() if isinstance(k, str)] keys = [k for k in keys if k.startswith("conv_general_dilated")] if len(keys) != 1: raise ValueError("Did not find any conv_general_dilated!") kwargs = inverse_map[keys[0]].params return register_conv2d(out_values[0], *in_values, **kwargs) # _____ _ _ _____ _ _ __ _ # / ____| | | | | / ____| | (_)/ _| | # | (___ ___ __ _| | ___ __ _ _ __ __| | | (___ | |__ _| |_| |_ # \___ \ / __/ _` | |/ _ \ / _` | '_ \ / _` | \___ \| '_ \| | _| __| # ____) | (_| (_| | | __/ | (_| | | | | (_| | ____) | | | | | | | |_ # |_____/ \___\__,_|_|\___| \__,_|_| |_|\__,_| |_____/|_| |_|_|_| \__| # scale_and_shift_tag = LayerTag( name="scale_and_shift_tag", num_inputs=1, num_outputs=1) def register_scale_and_shift(y, args, has_scale: bool, has_shift: bool): assert has_scale or has_shift x, args = args[0], args[1:] return scale_and_shift_tag.bind( y, x, *args, has_scale=has_scale, has_shift=has_shift) def scale_and_shift_func(x, params, has_scale: bool, has_shift: bool): """Example of a scale and shift function.""" if has_scale and has_shift: scale, shift = params return x * scale + shift elif has_scale: return x * params[0] elif has_shift: return x + params[0] else: raise ValueError() def scale_and_shift_tagging( jaxpr, inverse_map, values_map, has_scale: bool, has_shift: bool, ): """Correctly registers a scale and shift layer pattern.""" del inverse_map in_values = [values_map[v] for v in jaxpr.invars] out_values = [values_map[v] for v in jaxpr.outvars] return register_scale_and_shift(out_values[0], in_values, has_scale, has_shift) def batch_norm_func( inputs: Tuple[jnp.ndarray, jnp.ndarray], params: Tuple[jnp.ndarray, jnp.ndarray], ) -> jnp.ndarray: """Example of batch norm as is defined in Haiku.""" x, y = inputs scale, shift = params inv = scale * y return x * inv + shift def batch_norm_tagging_func( jaxpr, inverse_map, values_map, has_scale: bool, has_shift: bool, ): """Correctly registers a batch norm layer pattern as is defined in Haiku.""" del inverse_map in_values = [values_map[v] for v in jaxpr.invars] out_values = [values_map[v] for v in jaxpr.outvars] # The first two are both multipliers with the scale so we merge them in_values = [in_values[0] * in_values[1]] + in_values[2:] return register_scale_and_shift(out_values[0], in_values, has_scale, has_shift) ================================================ FILE: kfac_ferminet_alpha/loss_functions.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Loss functions to be used by LayerCollection.""" import abc from typing import Tuple, Optional, Union, Sequence import jax import jax.numpy as jnp from kfac_ferminet_alpha import distributions from kfac_ferminet_alpha import layers_and_loss_tags as tags from kfac_ferminet_alpha import utils ArrayPair = Tuple[jnp.ndarray, jnp.ndarray] FloatArray = Union[float, jnp.ndarray] Index = Tuple[int] class LossFunction(abc.ABC): """Abstract base class for loss functions. Note that unlike typical loss functions used in neural networks these are neither summed nor averaged over the batch and hence the output of evaluate() will not be a scalar. It is up to the user to then to correctly manipulate them as needed. """ def __init__(self, weight: FloatArray): self._weight = weight @property def weight(self) -> FloatArray: return self._weight @property @abc.abstractmethod def targets(self) -> Optional[jnp.ndarray]: """The targets being predicted by the model. Returns: None or Tensor of appropriate shape for calling self._evaluate() on. """ pass @property @abc.abstractmethod def inputs(self) -> Sequence[jnp.ndarray]: """The inputs to the loss function (excluding the targets).""" pass @abc.abstractmethod def copy_with_different_inputs(self, inputs: Sequence[jnp.ndarray]): pass def evaluate( self, targets: Optional[jnp.ndarray] = None, coefficient_mode: str = "regular", ) -> jnp.ndarray: """Evaluate the loss function on the targets.""" if targets is None and self.targets is None: raise ValueError("Cannot evaluate losses with unspecified targets.") elif targets is None: targets = self.targets if coefficient_mode == "regular": multiplier = self.weight elif coefficient_mode == "sqrt": multiplier = jnp.sqrt(self.weight) elif coefficient_mode == "off": multiplier = 1.0 else: raise ValueError(f"Unrecognized coefficient_mode={coefficient_mode}.") return self._evaluate(targets) * multiplier @abc.abstractmethod def _evaluate(self, targets: jnp.ndarray) -> jnp.ndarray: """Evaluates the negative log probability of the targets. Args: targets: Tensor that distribution can calculate log_prob() of. Returns: negative log probability of each target, summed across all targets. """ pass def grad_of_evaluate( self, targets: Optional[jnp.ndarray], coefficient_mode: str, ) -> Sequence[jnp.ndarray]: """Evaluates the gradient of the loss function. Note that the targets of the loss must not be `None`. Args: targets: The potential targets on which to evaluate the gradient. coefficient_mode: The coefficient mode to use for evaluation. Returns: The gradient of the loss evaluation function with respect to the inputs. """ def evaluate_sum(inputs: Sequence[jnp.ndarray]) -> jnp.ndarray: instance = self.copy_with_different_inputs(inputs) return jnp.sum(instance.evaluate(targets, coefficient_mode)) return jax.grad(evaluate_sum)(self.inputs) def multiply_ggn(self, vector: jnp.ndarray) -> jnp.ndarray: """Right-multiply a vector by the GGN. Here the 'GGN' is the GGN matrix (whose definition is slightly flexible) of the loss function with respect to its inputs. Args: vector: The vector to multiply. Must be the same shape(s) as the 'inputs' property. Returns: The vector right-multiplied by the GGN. Will be of the same shape(s) as the 'inputs' property. """ return utils.scalar_mul(self.multiply_ggn_unweighted(vector), self.weight) @abc.abstractmethod def multiply_ggn_unweighted(self, vector: jnp.ndarray) -> jnp.ndarray: """Same as `multiply_ggn`, but without taking into account the weight.""" pass def multiply_ggn_factor(self, vector: jnp.ndarray) -> jnp.ndarray: """Right-multiply a vector by a factor B of the GGN. Here the 'GGN' is the GGN matrix (whose definition is slightly flexible) of the loss function with respect to its inputs. Typically this will be block-diagonal across different cases in the batch, since the loss function is typically summed across cases. Note that B can be any matrix satisfying B * B^T = G where G is the GGN, but will agree with the one used in the other methods of this class. Args: vector: The vector to multiply. Must be of the shape given by the 'ggn_factor_inner_shape' property. Returns: The vector right-multiplied by B. Will be of the same shape(s) as the 'inputs' property. """ return utils.scalar_mul( self.multiply_ggn_factor_unweighted(vector), jnp.sqrt(self.weight)) @abc.abstractmethod def multiply_ggn_factor_unweighted(self, vector: jnp.ndarray) -> jnp.ndarray: """Same as `multiply_ggn_factor`, but without taking into account the weight.""" pass def multiply_ggn_factor_transpose(self, vector: jnp.ndarray) -> jnp.ndarray: """Right-multiply a vector by the transpose of a factor B of the GGN. Here the 'GGN' is the GGN matrix (whose definition is slightly flexible) of the loss function with respect to its inputs. Typically this will be block-diagonal across different cases in the batch, since the loss function is typically summed across cases. Note that B can be any matrix satisfying B * B^T = G where G is the GGN, but will agree with the one used in the other methods of this class. Args: vector: The vector to multiply. Must be the same shape(s) as the 'inputs' property. Returns: The vector right-multiplied by B^T. Will be of the shape given by the 'ggn_factor_inner_shape' property. """ return utils.scalar_mul( self.multiply_ggn_factor_transpose_unweighted(vector), jnp.sqrt(self.weight)) @abc.abstractmethod def multiply_ggn_factor_transpose_unweighted( self, vector: jnp.ndarray ) -> jnp.ndarray: """Same as `multiply_ggn_factor_transpose`, but without taking into account the weight.""" pass def multiply_ggn_factor_replicated_one_hot(self, index: Index) -> jnp.ndarray: """Right-multiply a replicated-one-hot vector by a factor B of the GGN. Here the 'GGN' is the GGN matrix (whose definition is slightly flexible) of the loss function with respect to its inputs. Typically this will be block-diagonal across different cases in the batch, since the loss function is typically summed across cases. A 'replicated-one-hot' vector means a tensor which, for each slice along the batch dimension (assumed to be dimension 0), is 1.0 in the entry corresponding to the given index and 0 elsewhere. Note that B can be any matrix satisfying B * B^T = G where G is the GGN, but will agree with the one used in the other methods of this class. Args: index: A tuple representing in the index of the entry in each slice that is 1.0. Note that len(index) must be equal to the number of elements of the 'ggn_factor_inner_shape' tensor minus one. Returns: The vector right-multiplied by B^T. Will be of the same shape(s) as the 'inputs' property. """ return utils.scalar_mul( self.multiply_ggn_factor_replicated_one_hot_unweighted(index), jnp.sqrt(self.weight)) @abc.abstractmethod def multiply_ggn_factor_replicated_one_hot_unweighted( self, index: Index ) -> jnp.ndarray: pass @property @abc.abstractmethod def ggn_factor_inner_shape(self) -> Sequence[int]: """The shape of the tensor returned by multiply_ggn_factor.""" pass class NegativeLogProbLoss(LossFunction): """Abstract base class for loss functions that are negative log probs.""" @property def inputs(self): return self.params @property @abc.abstractmethod def params(self): """Parameters to the underlying distribution.""" pass def multiply_fisher(self, vector: jnp.ndarray) -> jnp.ndarray: """Right-multiply a vector by the Fisher. Args: vector: The vector to multiply. Must be the same shape(s) as the 'inputs' property. Returns: The vector right-multiplied by the Fisher. Will be of the same shape(s) as the 'inputs' property. """ return utils.scalar_mul( self.multiply_fisher_unweighted(vector), self.weight) @abc.abstractmethod def multiply_fisher_unweighted(self, vector: jnp.ndarray) -> jnp.ndarray: pass def multiply_fisher_factor(self, vector: jnp.ndarray) -> jnp.ndarray: """Right-multiply a vector by a factor B of the Fisher. Here the 'Fisher' is the Fisher information matrix (i.e. expected outer- product of gradients) with respect to the parameters of the underlying probability distribution (whose log-prob defines the loss). Typically this will be block-diagonal across different cases in the batch, since the distribution is usually (but not always) conditionally iid across different cases. Note that B can be any matrix satisfying B * B^T = F where F is the Fisher, but will agree with the one used in the other methods of this class. Args: vector: The vector to multiply. Must be of the shape given by the 'fisher_factor_inner_shape' property. Returns: The vector right-multiplied by B. Will be of the same shape(s) as the 'inputs' property. """ return utils.scalar_mul( self.multiply_fisher_factor_unweighted(vector), jnp.sqrt(self.weight)) @abc.abstractmethod def multiply_fisher_factor_unweighted( self, vector: jnp.ndarray ) -> jnp.ndarray: pass def multiply_fisher_factor_transpose( self, vector: jnp.ndarray ) -> jnp.ndarray: """Right-multiply a vector by the transpose of a factor B of the Fisher. Here the 'Fisher' is the Fisher information matrix (i.e. expected outer- product of gradients) with respect to the parameters of the underlying probability distribution (whose log-prob defines the loss). Typically this will be block-diagonal across different cases in the batch, since the distribution is usually (but not always) conditionally iid across different cases. Note that B can be any matrix satisfying B * B^T = F where F is the Fisher, but will agree with the one used in the other methods of this class. Args: vector: The vector to multiply. Must be the same shape(s) as the 'inputs' property. Returns: The vector right-multiplied by B^T. Will be of the shape given by the 'fisher_factor_inner_shape' property. """ return utils.scalar_mul( self.multiply_fisher_factor_transpose_unweighted(vector), jnp.sqrt(self.weight)) @abc.abstractmethod def multiply_fisher_factor_transpose_unweighted( self, vector: jnp.ndarray ) -> jnp.ndarray: pass def multiply_fisher_factor_replicated_one_hot( self, index: Index ) -> jnp.ndarray: """Right-multiply a replicated-one-hot vector by a factor B of the Fisher. Here the 'Fisher' is the Fisher information matrix (i.e. expected outer- product of gradients) with respect to the parameters of the underlying probability distribution (whose log-prob defines the loss). Typically this will be block-diagonal across different cases in the batch, since the distribution is usually (but not always) conditionally iid across different cases. A 'replicated-one-hot' vector means a tensor which, for each slice along the batch dimension (assumed to be dimension 0), is 1.0 in the entry corresponding to the given index and 0 elsewhere. Note that B can be any matrix satisfying B * B^T = H where H is the Fisher, but will agree with the one used in the other methods of this class. Args: index: A tuple representing in the index of the entry in each slice that is 1.0. Note that len(index) must be equal to the number of elements of the 'fisher_factor_inner_shape' tensor minus one. Returns: The vector right-multiplied by B. Will be of the same shape(s) as the 'inputs' property. """ return utils.scalar_mul( self.multiply_fisher_factor_replicated_one_hot_unweighted(index), jnp.sqrt(self.weight)) @abc.abstractmethod def multiply_fisher_factor_replicated_one_hot_unweighted( self, index: Index ) -> jnp.ndarray: pass @property @abc.abstractmethod def fisher_factor_inner_shape(self) -> Sequence[int]: """The shape of the tensor returned by multiply_fisher_factor.""" pass @abc.abstractmethod def sample(self, rng_key: jnp.ndarray) -> jnp.ndarray: """Sample 'targets' from the underlying distribution.""" pass def grad_of_evaluate_on_sample( self, rng_key: jnp.ndarray, coefficient_mode: str, ) -> Sequence[jnp.ndarray]: """Evaluates the gradient of the log probability on a random sample. Args: rng_key: Jax PRNG key for sampling. coefficient_mode: The coefficient mode to use for evaluation. Returns: The gradient of the log probability of targets sampled from the distribution. """ return self.grad_of_evaluate(self.sample(rng_key), coefficient_mode) class NaturalParamsNegativeLogProbLoss(NegativeLogProbLoss, abc.ABC): """Base class for neg log prob losses whose inputs are 'natural' parameters. We will take the GGN of the loss to be the Fisher associated with the distribution, which also happens to be equal to the Hessian for this class of loss functions. See here: https://arxiv.org/abs/1412.1193 'Natural parameters' are defined for exponential-family models. See for example: https://en.wikipedia.org/wiki/Exponential_family """ def multiply_ggn_unweighted(self, vector: jnp.ndarray) -> jnp.ndarray: return self.multiply_fisher_unweighted(vector) def multiply_ggn_factor_unweighted(self, vector: jnp.ndarray) -> jnp.ndarray: return self.multiply_fisher_factor_unweighted(vector) def multiply_ggn_factor_transpose_unweighted( self, vector: jnp.ndarray ) -> jnp.ndarray: return self.multiply_fisher_factor_transpose_unweighted(vector) def multiply_ggn_factor_replicated_one_hot_unweighted( self, index: Index ) -> jnp.ndarray: return self.multiply_fisher_factor_replicated_one_hot_unweighted(index) @property def ggn_factor_inner_shape(self) -> Sequence[int]: return self.fisher_factor_inner_shape class DistributionNegativeLogProbLoss(NegativeLogProbLoss): """Base class for neg log prob losses that use the distribution classes.""" @property @abc.abstractmethod def dist(self): """The underlying distribution instance.""" pass def _evaluate(self, targets: jnp.ndarray): return -self.dist.log_prob(targets) def sample(self, rng_key: jnp.ndarray): return self.dist.sample(seed=rng_key) @property def fisher_factor_inner_shape(self) -> Sequence[int]: return self.dist.mean().shape class NormalMeanNegativeLogProbLoss(DistributionNegativeLogProbLoss, NaturalParamsNegativeLogProbLoss): """Neg log prob loss for a normal distribution parameterized by a mean vector. Note that the covariance is treated as the identity divided by 2. Also note that the Fisher for such a normal distribution with respect the mean parameter is given by: F = (1 / variance) * I See for example https://www.ii.pwr.edu.pl/~tomczak/PDF/[JMT]Fisher_inf.pdf. """ def __init__( self, mean: jnp.ndarray, targets: Optional[jnp.ndarray] = None, variance: float = 0.5, weight: float = 1.0, ): super().__init__(weight=weight) self._mean = mean self._targets = targets self._variance = variance if not isinstance(variance, float): raise ValueError("The `variance` argument should be python float.") @property def targets(self) -> Optional[jnp.ndarray]: return self._targets @property def dist(self): scale_diag = jnp.full_like(self._mean, jnp.sqrt(self._variance)) return distributions.MultivariateNormalDiag(self._mean, scale_diag) @property def params(self): return self._mean, def copy_with_different_inputs(self, inputs: Sequence[jnp.ndarray]): [mean] = inputs return NormalMeanNegativeLogProbLoss( mean=mean, targets=self.targets, variance=self._variance, weight=self.weight, ) def multiply_fisher_unweighted(self, vector: jnp.ndarray) -> jnp.ndarray: return vector / self._variance def multiply_fisher_factor_unweighted( self, vector: jnp.ndarray, ) -> jnp.ndarray: return vector / jnp.sqrt(self._variance) def multiply_fisher_factor_transpose_unweighted( self, vector: jnp.ndarray, ) -> jnp.ndarray: return self.multiply_fisher_factor_unweighted(vector) # it's symmetric def multiply_fisher_factor_replicated_one_hot_unweighted( self, index: Index, ) -> jnp.ndarray: assert len(index) == 1, f"Length of index was {len(index)}." index = index[0] ones_slice = jnp.ones([self._mean.shape[0]])[..., None] output_slice = ones_slice / jnp.sqrt(self._variance) return insert_slice_in_zeros(output_slice, 1, self._mean.shape[1], index) def insert_slice_in_zeros( slice_to_insert: jnp.ndarray, dim: int, dim_size: int, position: int, ) -> jnp.ndarray: """Inserts slice into a larger tensor of zeros. Forms a new tensor which is the same shape as slice_to_insert, except that the dimension given by 'dim' is expanded to the size given by 'dim_size'. 'position' determines the position (index) at which to insert the slice within that dimension. Assumes slice_to_insert.shape[dim] = 1. Args: slice_to_insert: The slice to insert. dim: The dimension which to expand with zeros. dim_size: The new size of the 'dim' dimension. position: The position of 'slice_to_insert' in the new tensor. Returns: The new tensor. Raises: ValueError: If the slice's shape at the given dim is not 1. """ slice_shape = slice_to_insert.shape if slice_shape[dim] != 1: raise ValueError(f"Expected slice_to_insert.shape to have {dim} dim of 1," f" but was {slice_to_insert.shape[dim]}.") before = [0] * int(len(slice_shape)) after = before[:] before[dim] = position after[dim] = dim_size - position - 1 return jnp.pad(slice_to_insert, list(zip(before, after))) # _______ _____ _ _ _ _ # |__ __| | __ \ (_) | | | | (_) # | | __ _ __ _ | |__) |___ __ _ _ ___| |_ _ __ __ _| |_ _ ___ _ __ # | |/ _` |/ _` | | _ // _ \/ _` | / __| __| '__/ _` | __| |/ _ \| '_ \ # | | (_| | (_| | | | \ \ __/ (_| | \__ \ |_| | | (_| | |_| | (_) | | | | # |_|\__,_|\__, | |_| \_\___|\__, |_|___/\__|_| \__,_|\__|_|\___/|_| |_| # __/ | __/ | # |___/ |___/ NormalMeanNegativeLogProbLoss_tag = tags.LossTag( NormalMeanNegativeLogProbLoss, num_inputs=1) def register_normal_predictive_distribution( mean: jnp.ndarray, targets: Optional[jnp.ndarray] = None, variance: float = 0.5, weight: float = 1.0, ): """Registers a normal predictive distribution. This corresponds to a squared error loss of the form weight/(2*var) * ||target - mean||^2 Args: mean: A tensor defining the mean vector of the distribution. The first dimension must be the batch size. targets: (OPTIONAL) The targets for the loss function. Only required if one wants to use the "empirical Fisher" instead of the true Fisher (which is controlled by the 'estimation_mode' to the optimizer). (Default: None) variance: float. The variance of the distribution. Note that the default value of 0.5 corresponds to a standard squared error loss weight * ||target - prediction||^2. If you want your squared error loss to be of the form 0.5*coeff*||target - prediction||^2 you should use variance=1.0. (Default: 0.5) weight: A scalar coefficient to multiply the log prob loss associated with this distribution. The Fisher will be multiplied by the corresponding factor. In general this is NOT equivalent to changing the temperature of the distribution, but in the ase of normal distributions it may be. (Default: 1.0) Returns: The mean and targets as dependable on the tag. """ if targets is None: targets = jnp.zeros_like(mean) return NormalMeanNegativeLogProbLoss_tag.bind( mean, targets, variance=variance, weight=weight, return_loss=False) def register_squared_error_loss( prediction: jnp.ndarray, targets: Optional[jnp.ndarray] = None, weight: float = 1.0, ): """Registers a squared error loss function. This assumes the squared error loss of the form ||target - prediction||^2, averaged across the mini-batch. If your loss uses a coefficient of 0.5 you need to set the "weight" argument to reflect this. Args: prediction: The prediction made by the network (i.e. its output). The first dimension must be the batch size. targets: (OPTIONAL) The targets for the loss function. Only required if one wants to use the "empirical Fisher" instead of the true Fisher (which is controlled by the 'estimation_mode' to the optimizer). (Default: None) weight: A float coefficient to multiply the loss function by. (Default: 1.0) Returns: The mean and targets as dependable on the tag. """ return register_normal_predictive_distribution( prediction, targets=targets, variance=0.5, weight=weight) ================================================ FILE: kfac_ferminet_alpha/optimizer.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A module for the main curvature optimizer class.""" from typing import Any, Callable, Iterator, Mapping, Optional, Sequence, Tuple, Union import jax import jax.lax as lax import jax.numpy as jnp import jax.random as jnr from kfac_ferminet_alpha import estimator from kfac_ferminet_alpha import tag_graph_matcher as tgm from kfac_ferminet_alpha import utils ScheduleType = Callable[[jnp.ndarray], Optional[jnp.ndarray]] Parameters = Any Batch = Any FuncState = Any State = Mapping[str, Any] @utils.Stateful.infer_class_state class Optimizer(utils.Stateful): """The default optimizer class.""" velocities: Parameters estimator: estimator.CurvatureEstimator step_counter: jnp.ndarray def __init__( self, value_and_grad_func, l2_reg: Union[float, jnp.ndarray], value_func_has_aux: bool = False, value_func_has_state: bool = False, value_func_has_rng: bool = False, learning_rate_schedule: Optional[ScheduleType] = None, momentum_schedule: Optional[ScheduleType] = None, damping_schedule: Optional[ScheduleType] = None, min_damping: Union[float, jnp.ndarray] = 1e-8, max_damping: Union[float, jnp.ndarray] = jnp.inf, norm_constraint: Optional[Union[float, jnp.ndarray]] = None, num_burnin_steps: int = 10, estimation_mode: str = "fisher_gradients", curvature_ema: Union[float, jnp.ndarray] = 0.95, inverse_update_period: int = 5, register_only_generic: bool = False, layer_tag_to_block_cls: Optional[estimator.TagMapping] = None, patterns_to_skip: Sequence[str] = (), donate_parameters: bool = False, donate_optimizer_state: bool = False, donate_batch_inputs: bool = False, donate_func_state: bool = False, batch_process_func: Optional[Callable[[Any], Any]] = None, multi_device: bool = False, use_jax_cond: bool = True, debug: bool = False, pmap_axis_name="kfac_axis", ): """Initializes the K-FAC optimizer with the given settings. Args: value_and_grad_func: Python callable. The function should return the value of the loss to be optimized and its gradients. If the argument `value_func_has_aux` is `False` then the interface should be: loss, loss_grads = value_and_grad_func(params, batch) If `value_func_has_aux` is `True` then the interface should be: (loss, aux), loss_grads = value_and_grad_func(params, batch) l2_reg: Scalar. Set this value to tell the optimizer what L2 regularization coefficient you are using (if any). Note the coefficient appears in the regularizer as coeff / 2 * sum(param**2). Note that the user is still responsible for adding regularization to the loss. value_func_has_aux: Boolean. Specifies whether the provided callable `value_and_grad_func` returns the loss value only, or also some auxiliary data. (Default: False) value_func_has_state: Boolean. Specifies whether the provided callable `value_and_grad_func` has a persistent state that is inputed and it also outputs an update version of it. (Default: False) value_func_has_rng: Boolean. Specifies whether the provided callable `value_and_grad_func` additionally takes as input an rng key. (Default: False) learning_rate_schedule: Callable. A schedule for the learning rate. This should take as input the current step number and return a single `jnp.ndarray` that represents the learning rate. (Default: None) momentum_schedule: Callable. A schedule for the momentum. This should take as input the current step number and return a single `jnp.ndarray` that represents the momentum. (Default: None) damping_schedule: Callable. A schedule for the damping. This should take as input the current step number and return a single `jnp.ndarray` that represents the learning rate. (Default: None) min_damping: Scalar. Minimum value the damping parameter can take. Note that the default value of 1e-8 is quite arbitrary, and you may have to adjust this up or down for your particular problem. If you are using a non-zero value of l2_reg you *may* be able to set this to zero. (Default: 1e-8) max_damping: Scalar. Maximum value the damping parameter can take. (Default: Infinity) norm_constraint: Scalar. If specified, the update is scaled down so that its approximate squared Fisher norm `v^T F v` is at most the specified value.(Note that here `F` is the approximate curvature matrix, not the exact.) (Default: None) num_burnin_steps: Int. At the start of optimization, e.g. the first step, before performing the actual step the optimizer will perform this many times updates to the curvature approximation without updating the actual parameters. (Default: 10) estimation_mode: String. The type of estimator to use for the curvature matrix. Can be one of: * fisher_empirical * fisher_exact * fisher_gradients * fisher_curvature_prop * ggn_exact * ggn_curvature_prop See the doc-string for CurvatureEstimator (in estimator.py) for a more detailed description of these options. (Default: 'fisher_gradients'). curvature_ema: The decay factor used when calculating the covariance estimate moving averages. (Default: 0.95) inverse_update_period: Int. The number of steps in between updating the the computation of the inverse curvature approximation. (Default: 5) register_only_generic: Boolean. Whether when running the auto-tagger to register only generic parameters, or allow it to use the graph matcher to automatically pick up any kind of layer tags. (Default: False) layer_tag_to_block_cls: Dictionary. A mapping from layer tags to block classes which to override the default choices of block approximation for that specific tag. See the doc-string for CurvatureEstimator (in estimator.py) for a more detailed description of this. patterns_to_skip: Tuple. A list of any patterns that should be skipped by the graph matcher when auto-tagging. donate_parameters: Boolean. Whether to use jax's `donate_argnums` to donate the parameter values of each call to `step`. Note that this implies that you will not be able to access the old parameter values' buffers after calling into `step`. donate_optimizer_state: Boolean. Whether to use jax's `donate_argnums` to donate the optimizer state of each call to `step`. Note that this implies that you will not be able to access the old optimizer state values' buffers after calling into `step`. donate_batch_inputs: Boolean. Whether to use jax's `donate_argnums` to donate the batch values of each call to `step`. Note that this implies that you will not be able to access the old batch values' buffers after calling into `step`. donate_func_state: Boolean. Whether to use jax's `donate_argnums` to donate the persistent function state of each call to `step`. Note that this implies that you will not be able to access the old function state values' buffers after calling into `step`. batch_process_func: Callable. A function which to be called on each batch before feeding to the KFAC on device. This could be useful for specific device input optimizations. multi_device: Boolean. Whether to use `pmap` and run the optimizer on multiple devices. (Default: False) use_jax_cond: Not used for the moment. debug: Boolean. If non of the step or init functions would be jitted. Note that this also overrides `multi_device` and prevents using `pmap`. (Default: False) pmap_axis_name: String. The name of the `pmap` axis to use when `multi_device` is set to True. (Default: curvature_axis) """ super().__init__() self.value_and_grad_func = value_and_grad_func self.value_func_has_aux = value_func_has_aux self.value_func_has_state = value_func_has_state self.value_func_has_rng = value_func_has_rng self.value_func = utils.convert_value_and_grad_to_value_func( value_and_grad_func, has_aux=value_func_has_aux) self.l2_reg = l2_reg self.learning_rate_schedule = learning_rate_schedule if momentum_schedule is not None: def schedule_with_first_step_zero(global_step: jnp.ndarray): value = momentum_schedule(global_step) check = jnp.equal(global_step, 0) return check * jnp.zeros_like(value) + (1 - check) * value self.momentum_schedule = schedule_with_first_step_zero else: self.momentum_schedule = None self.damping_schedule = damping_schedule self.min_damping = min_damping self.max_damping = max_damping self.norm_constraint = norm_constraint self.num_burnin_steps = num_burnin_steps self.estimation_mode = estimation_mode self.curvature_ema = curvature_ema self.inverse_update_period = inverse_update_period self.register_only_generic = register_only_generic self.layer_tag_to_block_cls = layer_tag_to_block_cls self.patterns_to_skip = patterns_to_skip self.donate_parameters = donate_parameters self.donate_optimizer_state = donate_optimizer_state self.donate_batch_inputs = donate_batch_inputs self.donate_func_state = donate_func_state self.batch_process_func = batch_process_func or (lambda x: x) self.multi_device = multi_device self.use_jax_cond = use_jax_cond self.debug = debug self.pmap_axis_name = pmap_axis_name if multi_device else None self._rng_split = utils.p_split if multi_device else jnr.split # Attributes filled in during self.init() self.finalized = False self.tagged_func = None self.flat_params_shapes = None self.params_treedef = None # Special attributes related to jitting/pmap self._jit_init = None self._jit_burnin = None self._jit_step = None def finalize( self, params: Parameters, rng: jnp.ndarray, batch: Batch, func_state: Optional[FuncState] = None, ) -> None: """Finalizes the optimizer by tracing the model function with the params and batch.""" if self.finalized: raise ValueError("Optimizer has already been finalized.") if self.multi_device: # We assume that the parameters and batch are replicated, while tracing # must happen with parameters for a single device call params, rng, batch = jax.tree_map(lambda x: x[0], (params, rng, batch)) if func_state is not None: func_state = jax.tree_map(lambda x: x[0], func_state) batch = self.batch_process_func(batch) # These are all tracing operations and we can run them with abstract values func_args = utils.make_func_args(params, func_state, rng, batch, self.value_func_has_state, self.value_func_has_rng) # Run all tracing with abstract values so no computation is done flat_params, self.params_treedef = jax.tree_flatten(params) self.flat_params_shapes = tuple(p.shape for p in flat_params) self.tagged_func = tgm.auto_register_tags( func=self.value_func, func_args=func_args, params_index=0, register_only_generic=self.register_only_generic, patterns_to_skip=self.patterns_to_skip) self.estimator = estimator.CurvatureEstimator( self.tagged_func, func_args, self.l2_reg, self.estimation_mode, layer_tag_to_block_cls=self.layer_tag_to_block_cls) # Arguments: params, opt_state, rng, batch, func_state donate_argnums = [] if self.donate_parameters: donate_argnums.append(0) if self.donate_optimizer_state: donate_argnums.append(1) if self.donate_batch_inputs: donate_argnums.append(3) if self.donate_func_state and self.value_func_has_state: donate_argnums.append(4) donate_argnums = tuple(donate_argnums) if self.debug: self._jit_init = self._init self._jit_burnin = self._burnin self._jit_step = self._step elif self.multi_device: self._jit_init = jax.pmap( self._init, axis_name=self.pmap_axis_name, donate_argnums=[0]) # batch size is static argnum and is at index 5 self._jit_burnin = jax.pmap( self._burnin, axis_name=self.pmap_axis_name, static_broadcasted_argnums=[5]) self._jit_step = jax.pmap( self._step, axis_name=self.pmap_axis_name, donate_argnums=donate_argnums, static_broadcasted_argnums=[5]) else: self._jit_init = jax.jit(self._init, donate_argnums=[0]) # batch size is static argnum and is at index 5 self._jit_burnin = jax.jit(self._burnin, static_argnums=[5]) self._jit_step = jax.jit( self._step, donate_argnums=donate_argnums, static_argnums=[5]) self.finalized = True def _init(self, rng: jnp.ndarray) -> State: """This is the non-jitted version of initializing the state.""" flat_velocities = [jnp.zeros(shape) for shape in self.flat_params_shapes] return dict( velocities=jax.tree_unflatten(self.params_treedef, flat_velocities), estimator=self.estimator.init(rng, None), step_counter=jnp.asarray(0)) def verify_args_and_get_step_counter( self, params: Parameters, state: State, rng: jnp.ndarray, data_iterator: Iterator[Batch], func_state: Optional[FuncState] = None, learning_rate: Optional[jnp.ndarray] = None, momentum: Optional[jnp.ndarray] = None, damping: Optional[jnp.ndarray] = None, global_step_int: Optional[int] = None, ) -> int: """Verifies that the arguments passed to `Optimizer.step` are correct.""" if not self.finalized: rng, rng_finalize = self._rng_split(rng) self.finalize(params, rng_finalize, next(data_iterator), func_state) # Verify correct arguments invocation if self.learning_rate_schedule is not None and learning_rate is not None: raise ValueError("When you have passed a `learning_rate_schedule` you " "should not pass a value to the step function.") if self.momentum_schedule is not None and momentum is not None: raise ValueError("When you have passed a `momentum_schedule` you should " "not pass a value to the step function.") if self.damping_schedule is not None and damping is not None: raise ValueError("When you have passed a `damping_schedule` you should " "not pass a value to the step function.") # Do a bunrnin on the first iteration if global_step_int is None: if self.multi_device: return int(utils.get_first(state["step_counter"])) else: return int(state["step_counter"]) return global_step_int def _burnin( self, params: Parameters, state: State, rng: jnp.ndarray, batch: Batch, func_state: Optional[FuncState], batch_size: Optional[int], ) -> Tuple[State, Optional[FuncState]]: """This is the non-jitted version of a single burnin step.""" self.set_state(state) batch = self.batch_process_func(batch) rng, func_rng = jnr.split(rng) if self.value_func_has_rng else (rng, None) func_args = utils.make_func_args(params, func_state, func_rng, batch, self.value_func_has_state, self.value_func_has_rng) # Compute batch size if batch_size is None: batch_size = jax.tree_flatten(batch)[0][0].shape[0] # Update curvature estimate ema_old, ema_new = 1.0, 1.0 / self.num_burnin_steps self.estimator.update_curvature_matrix_estimate(ema_old, ema_new, batch_size, rng, func_args, self.pmap_axis_name) if func_state is not None: out, _ = self.value_and_grad_func(*func_args) _, func_state, _ = utils.extract_func_outputs(out, self.value_func_has_aux, self.value_func_has_state) return self.pop_state(), func_state def _step( self, params: Parameters, state: State, rng: jnp.ndarray, batch: Batch, func_state: Optional[FuncState], batch_size: Optional[int], learning_rate: Optional[jnp.ndarray], momentum: Optional[jnp.ndarray], damping: Optional[jnp.ndarray], ) -> Union[Tuple[Parameters, State, FuncState, Mapping[str, jnp.ndarray]], Tuple[Parameters, State, Mapping[str, jnp.ndarray]]]: """This is the non-jitted version of a single step.""" # Unpack and set the state self.set_state(state) if damping is not None: assert self.estimator.damping is None self.estimator.damping = damping else: assert self.estimator.damping is not None # Preprocess the batch and construct correctly the function arguments batch = self.batch_process_func(batch) rng, func_rng = jnr.split(rng) if self.value_func_has_rng else (rng, None) func_args = utils.make_func_args(params, func_state, func_rng, batch, self.value_func_has_state, self.value_func_has_rng) # Compute the batch size if batch_size is None: batch_size = jax.tree_flatten(batch)[0][0].shape[0] # Compute schedules if applicable if self.learning_rate_schedule is not None: assert learning_rate is None learning_rate = self.learning_rate_schedule(self.step_counter) else: assert learning_rate is not None if self.momentum_schedule is not None: assert momentum is None momentum = self.momentum_schedule(self.step_counter) else: assert momentum is not None if self.damping_schedule is not None: assert damping is None damping = self.damping_schedule(self.step_counter) else: assert damping is not None # Compute current loss and gradients out, grads = self.value_and_grad_func(*func_args) loss, new_func_state, aux = utils.extract_func_outputs( out, self.value_func_has_aux, self.value_func_has_state) # Sync loss and grads loss, grads = utils.pmean_if_pmap((loss, grads), self.pmap_axis_name) # Update curvature estimate self.estimator.update_curvature_matrix_estimate( self.curvature_ema, 1.0, batch_size, rng, func_args, self.pmap_axis_name, ) # Optionally update the inverse estimate self.estimator.set_state( lax.cond( self.step_counter % self.inverse_update_period == 0, lambda s: self.estimator.update_curvature_estimate_inverse( # pylint: disable=g-long-lambda self.pmap_axis_name, s), lambda s: s, self.estimator.pop_state())) # Compute proposed directions vectors = self.propose_directions( grads, self.velocities, learning_rate, momentum, ) # The learning rate is defined as the negative of the coefficient by which # we multiply the gradients, while the momentum is the coefficient by # which we multiply the velocities. neg_learning_rate = -learning_rate # pytype: disable=unsupported-operands # trace-all-classes # Compute the coefficients of the update vectors assert neg_learning_rate is not None and momentum is not None coefficients = (neg_learning_rate, momentum) # Update velocities and compute new delta self.velocities, delta = self.velocities_and_delta( self.velocities, vectors, coefficients, ) # Update parameters: params = params + delta params = jax.tree_map(jnp.add, params, delta) # Optionally compute the reduction ratio and update the damping self.estimator.damping = None rho = jnp.nan # Statistics with useful information stats = dict() stats["step"] = self.step_counter stats["loss"] = loss stats["learning_rate"] = -coefficients[0] stats["momentum"] = coefficients[1] stats["damping"] = damping stats["rho"] = rho if self.value_func_has_aux: stats["aux"] = aux self.step_counter = self.step_counter + 1 if self.value_func_has_state: return params, self.pop_state(), new_func_state, stats # pytype: disable=bad-return-type # jax-ndarray else: assert new_func_state is None return params, self.pop_state(), stats # pytype: disable=bad-return-type # jax-ndarray def init( self, params: Parameters, rng: jnp.ndarray, batch: Batch, func_state: Optional[FuncState] = None, ) -> State: """Initializes the optimizer and returns the appropriate optimizer state.""" if not self.finalized: self.finalize(params, rng, batch, func_state) return self._jit_init(rng) def step( self, params: Parameters, state: Mapping[str, Any], rng: jnp.ndarray, data_iterator: Iterator[Any], func_state: Any = None, learning_rate: Optional[jnp.ndarray] = None, momentum: Optional[jnp.ndarray] = None, damping: Optional[jnp.ndarray] = None, batch_size: Optional[int] = None, global_step_int: Optional[int] = None, ) -> Union[Tuple[Parameters, State, FuncState, Mapping[str, jnp.ndarray]], Tuple[Parameters, State, Mapping[str, jnp.ndarray]]]: """Performs a single update step using the optimizer. Args: params: The parameters of the model. state: The state of the optimizer. rng: A Jax PRNG key. data_iterator: An iterator that returns a batch of data. func_state: Any function state that gets passed in and returned. learning_rate: This must be provided when `use_adaptive_learning_rate=False` and `learning_rate_schedule=None`. momentum: This must be provided when `use_adaptive_momentum=False` and `momentum_schedule=None`. damping: This must be provided when `use_adaptive_damping=False` and `damping_schedule=None`. batch_size: The batch size to use for KFAC. The default behaviour when it is None is to use the leading dimension of the first data array. global_step_int: The global step as a python int. Note that this must match the step inte rnal to the optimizer that is part of its state. Returns: (params, state, stats) where: params: The updated model parameters. state: The updated optimizer state. stats: A dictionary of key statistics provided to be logged. """ step_counter_int = self.verify_args_and_get_step_counter( params=params, state=state, rng=rng, data_iterator=data_iterator, func_state=func_state, learning_rate=learning_rate, momentum=momentum, damping=damping, global_step_int=global_step_int) if step_counter_int == 0: for _ in range(self.num_burnin_steps): rng, rng_burn = self._rng_split(rng) batch = next(data_iterator) state, func_state = self._jit_burnin(params, state, rng_burn, batch, func_state, batch_size) # On the first step we always treat the momentum as 0.0 if self.momentum_schedule is None: momentum = jnp.zeros([]) if self.multi_device: momentum = utils.replicate_all_local_devices(momentum) batch = next(data_iterator) return self._jit_step(params, state, rng, batch, func_state, batch_size, learning_rate, momentum, damping) def propose_directions( self, grads: Parameters, velocities: Parameters, learning_rate: Optional[jnp.ndarray], momentum: Optional[jnp.ndarray], ) -> Tuple[Parameters, Parameters]: """Computes the vector proposals for the next step.""" del momentum # not used in this, but could be used in subclasses preconditioned_grads = self.estimator.multiply_matpower(grads, -1) if self.norm_constraint is not None: assert learning_rate is not None sq_norm_grads = utils.inner_product(preconditioned_grads, grads) sq_norm_scaled_grads = sq_norm_grads * learning_rate**2 # We need to sync the norms here, because reduction can be # non-deterministic. They specifically are on GPUs by default for better # performance. Hence although grads and preconditioned_grads are synced, # the inner_product operation can still produce different answers on # different devices. sq_norm_scaled_grads = utils.pmean_if_pmap(sq_norm_scaled_grads, self.pmap_axis_name) max_coefficient = jnp.sqrt(self.norm_constraint / sq_norm_scaled_grads) coefficient = jnp.minimum(max_coefficient, 1) preconditioned_grads = utils.scalar_mul(preconditioned_grads, coefficient) return preconditioned_grads, velocities def velocities_and_delta( self, velocities: Parameters, vectors: Sequence[Parameters], coefficients: Sequence[jnp.ndarray], ) -> Sequence[Parameters]: """Computes the new velocities and delta (update to parameters).""" del velocities assert len(vectors) == len(coefficients) delta = utils.scalar_mul(vectors[0], coefficients[0]) for vi, wi in zip(vectors[1:], coefficients[1:]): delta = jax.tree_map(jnp.add, delta, utils.scalar_mul(vi, wi)) return delta, delta ================================================ FILE: kfac_ferminet_alpha/requirements.txt ================================================ jax>=0.2.10 dataclasses>=0.6 networkx>=2.1 numpy>=1.16.4 typing>=3.7.4.3 ordered-set>=4.0.2 absl-py>=0.12.0 ================================================ FILE: kfac_ferminet_alpha/run.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This script installs kfac_ferminet_alpha in a clean virtualenv and runs an # example training loop. It is designed to be run from the parent directory, # e.g.: # # git clone git@github.com:deepmind/deepmind-research.git # cd deepmind_research # kfac_ferminet_alpha/run.sh python3 -m venv /tmp/kfac_ferminet_alpha_example source /tmp/kfac_ferminet_alpha_example/bin/activate pip3 install -U pip pip3 install -r kfac_ferminet_alpha/requirements.txt # For a GPU you have to do: # pip3 install --upgrade jax jaxlib==0.1.64+cuda110 -f https://storage.googleapis.com/jax-releases/jax_releases.html pip3 install jaxlib pip3 install kfac_ferminet_alpha/ python3 kfac_ferminet_alpha/example.py ================================================ FILE: kfac_ferminet_alpha/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from setuptools import setup REQUIRED_PACKAGES = ( "absl-py", "dataclasses", "jax", "networkx", "numpy", "ordered-set", "typing", ) LONG_DESCRIPTION = "\n".join([ "Kronecker-Factored Approximate Curvature (K-FAC) optimizer implemented in " "JAX.", "", "Accompanying code for 'Better, Faster Fermionic Neural Networks'", "James S. Spencer, David Pfau, Aleksandar Botev, and W. M. C. Foulkes.", "https://arxiv.org/abs/2011.07125.", ]) setup( name="kfac_ferminet_alpha", version="0.0.1", description="A K-FAC optimizer implemented in JAX", long_description=LONG_DESCRIPTION, url="https://github.com/deepmind/deepmind-research/kfac_ferminet_alpha", author="DeepMind", package_dir={"kfac_ferminet_alpha": "."}, packages=["kfac_ferminet_alpha"], install_requires=REQUIRED_PACKAGES, platforms=["any"], license="Apache License, Version 2.0", ) ================================================ FILE: kfac_ferminet_alpha/tag_graph_matcher.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A module for tagging and graph manipulation.""" import collections import functools import itertools from typing import Any, NamedTuple, Sequence from absl import logging import jax from jax import core as jax_core from jax import lax from jax import util as jax_util from jax.interpreters import partial_eval as pe import jax.numpy as jnp import networkx as nx from networkx.algorithms import isomorphism import numpy as np import ordered_set from kfac_ferminet_alpha import layers_and_loss_tags as tags USE_NETWORKX = False def match_nodes(g1, g2, mapping, node1, node2): """Matching nodes when doing graph search.""" if not kfac_node_match(g1.nodes[node1], g2.nodes[node2]): return False # Check predecessors p1 = set(n for n in g1.predecessors(node1) if n in mapping.keys()) p2 = set(n for n in g2.predecessors(node2) if n in mapping.values()) if len(p1) != len(p2): return False for p1_i in p1: if mapping[p1_i] not in p2: return False # Check successors s1 = set(n for n in g1.successors(node1) if n in mapping.keys()) s2 = set(n for n in g2.successors(node2) if n in mapping.values()) if len(s1) != len(s2): return False for s1_i in s1: if mapping[s1_i] not in s2: return False return True def generate_candidates(g1, g2, mapping, node1, node2): """Generates the initial candidates for graph search.""" # Check predecessors p1 = set(n for n in g1.predecessors(node1) if n not in mapping.keys()) p2 = set(n for n in g2.predecessors(node2) if n not in mapping.values()) candidates = ordered_set.OrderedSet(itertools.product(p1, p2)) s1 = set(n for n in g1.successors(node1) if n not in mapping.keys()) s2 = set(n for n in g2.successors(node2) if n not in mapping.values()) candidates.update(list(itertools.product(s1, s2))) return candidates def find_mappings(pattern, graph, mapping, terminals): """Finds all mappings from graph search of the pattern.""" if len(mapping) == len(pattern): for k, v in terminals.items(): v.add(mapping[k]) return [frozenset(mapping.items())] mappings = set() nodes_list = list(mapping.keys()) for node1 in reversed(nodes_list): for s1 in pattern.successors(node1): if s1 not in mapping.keys(): for s2 in graph.successors(mapping[node1]): if s2 not in mapping.values(): if s1 not in terminals or s2 not in terminals[s1]: if match_nodes(pattern, graph, mapping, s1, s2): mapping[s1] = s2 mappings.update( find_mappings(pattern, graph, mapping, terminals)) mapping.pop(s1) for p1 in pattern.predecessors(node1): if p1 not in mapping.keys(): for p2 in graph.predecessors(mapping[node1]): if p2 not in mapping.values(): if p1 not in terminals or p2 not in terminals[p1]: if match_nodes(pattern, graph, mapping, p1, p2): mapping[p1] = p2 mappings.update( find_mappings(pattern, graph, mapping, terminals)) mapping.pop(p1) return mappings def match_pattern(pattern, graph): """Given a pattern returns all matches inside the graph.""" if USE_NETWORKX: matcher = isomorphism.GraphMatcher( graph, pattern, node_match=kfac_node_match) mappings = list( dict((k, v) for v, k in mapping.items()) for mapping in matcher.subgraph_isomorphisms_iter()) else: mapping = collections.OrderedDict() params1 = [n for n in pattern.nodes if pattern.nodes[n]["op"] == "param"] params2 = [n for n in graph.nodes if graph.nodes[n]["op"] == "param"] terminals = { n: set() for n in pattern.nodes if not list(pattern.successors(n)) } mappings = set() for node1, node2 in itertools.product(params1, params2): mapping[node1] = node2 mappings.update(find_mappings(pattern, graph, mapping, terminals)) mapping.pop(node1) for v in terminals.values(): v.clear() mappings = list(dict(mapping) for mapping in mappings) var_mappings = [] for mapping in mappings: var_mappings.append(dict()) for k, v in mapping.items(): cond = pattern.nodes[k]["op"] in ("param", "array") source = pattern.nodes[k]["var"] if cond else k target = graph.nodes[v]["var"] if cond else graph.nodes[v]["eqn"] var_mappings[-1][source] = target return var_mappings def read_env(env, var): # Literals are values baked into the Jaxpr if isinstance(var, jax.core.Literal): return var.val return env[var] def write_env(env, var, val): env[var] = val def abstract_single_value(value): if isinstance(value, jnp.ndarray): value = jax_core.ShapedArray(np.shape(value), np.result_type(value)) return pe.PartialVal.unknown(value) else: return value def abstract_args(args): return jax.tree_map(abstract_single_value, args) def _extract_call_jaxpr(primitive, params): if not (primitive.call_primitive or primitive.map_primitive): return None, params else: params = dict(params) return params.pop("call_jaxpr"), params def evaluate_eqn(eqn, in_values, write_func): """Evaluate a single Jax equation and writes the outputs.""" in_values = list(in_values) # This is logic specifically to handle `xla_call` call_jaxpr, params = _extract_call_jaxpr(eqn.primitive, eqn.params) if call_jaxpr: subfuns = [ jax.core.lu.wrap_init( functools.partial(jax.core.eval_jaxpr, call_jaxpr, ())) ] else: subfuns = [] ans = eqn.primitive.bind(*(subfuns + in_values), **params) if eqn.primitive.multiple_results: jax_util.safe_map(write_func, eqn.outvars, ans) else: write_func(eqn.outvars[0], ans) return ans def clean_jaxpr_eqns(jaxpr, preserve_tags=True): """Performs dead code elimination on the jaxpr, preserving loss and layer tags.""" eqns = [] dependants = set(jaxpr.outvars) for eqn in reversed(jaxpr.eqns): check = False for v in eqn.outvars: if v in dependants: dependants.remove(v) check = True if isinstance(eqn.primitive, (tags.LossTag, tags.LayerTag)): check = check or preserve_tags if check: eqns.append(eqn) new_dependants = set( v for v in eqn.invars if not isinstance(v, jax_core.Literal)) dependants = dependants.union(new_dependants) # Dependants should only be invars dependants = dependants - set(jaxpr.invars + jaxpr.constvars) if dependants: raise ValueError("Something went wrong with the dead code elimination.") return reversed(eqns) def broadcast_merger(f): """Transforms `f` into a function where all consecutive broadcasts are merged.""" def merged_func(*func_args): typed_jaxpr, out_avals = jax.make_jaxpr(f, return_shape=True)(*func_args) out_tree = jax.tree_structure(out_avals) jaxpr, consts = typed_jaxpr.jaxpr, typed_jaxpr.literals # Mapping from variable -> value env = dict() read = functools.partial(read_env, env) write = functools.partial(write_env, env) # Bind args and consts to environment flat_args = jax.tree_flatten(func_args)[0] jax_util.safe_map(write, jaxpr.invars, flat_args) jax_util.safe_map(write, jaxpr.constvars, consts) # Bind args and consts to environment jax_util.safe_map(write, jaxpr.invars, flat_args) jax_util.safe_map(write, jaxpr.constvars, consts) # Loop through equations and evaluate primitives using `bind` broadcasts_outputs = dict() for eqn in clean_jaxpr_eqns(jaxpr): # We ignore broadcasting of constants if (eqn.primitive.name == "broadcast_in_dim" and not all(isinstance(v, jax_core.Literal) for v in eqn.invars)): if eqn.invars[0] in broadcasts_outputs: x, dims = broadcasts_outputs[eqn.invars[0]] kept_dims = eqn.params["broadcast_dimensions"] kept_dims = [kept_dims[d] for d in dims] y = lax.broadcast_in_dim(x, eqn.params["shape"], kept_dims) jax_util.safe_map(write, eqn.outvars, [y]) broadcasts_outputs[eqn.outvars[0]] = (x, kept_dims) else: inputs = jax_util.safe_map(read, eqn.invars) evaluate_eqn(eqn, inputs, write) broadcasts_outputs[eqn.outvars[0]] = ( inputs[0], eqn.params["broadcast_dimensions"]) else: evaluate_eqn(eqn, jax_util.safe_map(read, eqn.invars), write) return jax.tree_unflatten(out_tree, jax_util.safe_map(read, jaxpr.outvars)) return merged_func class JaxGraph(NamedTuple): jaxpr: Any consts: Any params: Any params_tree: Any in_tree: Any out_tree: Any digraph: nx.DiGraph tagging_func: Any SPECIAL_OP_COMPARE_RULES = dict() def default_compare(node1, node2): if node1["op"] != node2["op"]: return False params1, params2 = node1["eqn"].params, node2["eqn"].params if set(params1.keys()) != set(params2.keys()): return False for k in params1.keys(): if params1[k] != params2[k]: return False return True def reshape_compare(node1, node2): """Compares two reshape nodes.""" assert node1["op"] == node2["op"] == "reshape" params1, params2 = node1["eqn"].params, node2["eqn"].params if params1["dimensions"] != params2["dimensions"]: return False return True def broadcast_in_dim_compare(node1, node2): """Compares two reshape nodes.""" assert node1["op"] == node2["op"] == "broadcast_in_dim" return True def conv_compare(node1, node2): """Compares two conv_general_dialted nodes.""" assert node1["op"] == node2["op"] == "conv_general_dilated" params1, params2 = node1["eqn"].params, node2["eqn"].params for k in ("window_strides", "padding", "lhs_dilation", "rhs_dilation", "lhs_shape", "rhs_shape"): if len(params1[k]) != len(params2[k]): return False if (len(params1["dimension_numbers"].lhs_spec) != # len(params2["dimension_numbers"].lhs_spec)): return False if (len(params1["dimension_numbers"].rhs_spec) != # len(params2["dimension_numbers"].rhs_spec)): return False if (len(params1["dimension_numbers"].out_spec) != # len(params2["dimension_numbers"].out_spec)): return False if ((params1["feature_group_count"] > 1) != # (params2["feature_group_count"] > 1)): return False if ((params1["batch_group_count"] > 1) != # (params2["batch_group_count"] > 1)): return False return True SPECIAL_OP_COMPARE_RULES["reshape"] = reshape_compare SPECIAL_OP_COMPARE_RULES["broadcast_in_dim"] = broadcast_in_dim_compare SPECIAL_OP_COMPARE_RULES["conv_general_dilated"] = conv_compare def kfac_node_match(node1, node2): """Checks if two nodes are equivalent.""" # Parameters match with each other and nothing else if node1["op"] == "param" and node2["op"] == "param": return True # return node1["rank"] == node2["rank"] if node1["op"] == "param" or node2["op"] == "param": return False # Arrays always match each other and nothing else if node1["op"] == "array" and node2["op"] == "array": return True if node1["op"] == "array" or node2["op"] == "array": return False # Operators match first on name if node1["op"] != node2["op"]: return False compare = SPECIAL_OP_COMPARE_RULES.get(node1["op"], default_compare) return compare(node1, node2) def var_to_str(var): """Returns a string representation of the variable of a Jax expression.""" if isinstance(var, jax.core.Literal): return str(var) elif not isinstance(var, jax.core.Var): raise ValueError(f"Idk what to do with this {type(var)}?") c = int(var.count) if c == -1: return "_" str_rep = "" while c > 25: str_rep += chr(c % 26 + ord("a")) c = c // 26 str_rep += chr(c + ord("a")) return str_rep[::-1] def extract_param_vars_flat(jaxpr, in_tree, params_index): if params_index is None: params_index = [] elif isinstance(params_index, int): params_index = [params_index] in_vars = jax.tree_unflatten(in_tree, jaxpr.invars) return jax.tree_flatten([in_vars[i] for i in params_index]) def fill_jaxpr_to_graph(graph, jaxpr, in_vars=None, out_vars=None): """Fills the graph with the jaxpr.""" in_vars = in_vars or [var_to_str(v) for v in jaxpr.invars + jaxpr.constvars] in_map = dict(zip(jaxpr.invars + jaxpr.constvars, in_vars)) out_vars = out_vars or [var_to_str(v) for v in jaxpr.outvars] out_map = dict(zip(jaxpr.outvars, out_vars)) for eqn in jaxpr.eqns: in_vars = [] for v in eqn.invars: if isinstance(v, jax.core.Literal): in_vars.append(var_to_str(v)) else: in_vars.append(in_map.get(v, var_to_str(v))) out_vars = [out_map.get(v, var_to_str(v)) for v in eqn.outvars] in_str = ",".join(in_vars) out_str = ",".join(out_vars) if isinstance(eqn.primitive, tags.LossTag): func_name = "__loss_tag" elif isinstance(eqn.primitive, tags.LayerTag): func_name = "__layer_tag" else: func_name = eqn.primitive.name node_c = f"{func_name}({in_str})->{out_str}" graph.add_node(node_c, op=eqn.primitive.name, eqn=eqn) # Create incoming edges for v, name in zip(eqn.invars, in_vars): if not isinstance(v, jax.core.Literal): graph.add_edge(name, node_c) # Create output nodes and edges for v, name in zip(eqn.outvars, out_vars): graph.add_node(name, op="array", var=v) graph.add_edge(node_c, name) def create_digraph(jaxpr, params): """Creates a directed graph from the given jaxpr and parameters.""" graph = nx.DiGraph() # Create input nodes for v in jaxpr.invars + jaxpr.constvars: if v in params: graph.add_node(var_to_str(v), op="param", var=v) else: graph.add_node(var_to_str(v), op="array", var=v) fill_jaxpr_to_graph(graph, jaxpr) return graph def function_to_jax_graph(func, args, params_index, tagging_func=None): """Creates a `JaxGraph` instance from the provided function.""" in_tree = jax.tree_structure(args) typed_jaxpr = jax.make_jaxpr(func)(*args) jaxpr, consts = typed_jaxpr.jaxpr, typed_jaxpr.literals params, params_tree = extract_param_vars_flat(jaxpr, in_tree, params_index) digraph = create_digraph(jaxpr, params) if tagging_func is not None: tagging_func = functools.partial(tagging_func, jaxpr) return JaxGraph( jaxpr=jaxpr, consts=consts, params=params, params_tree=params_tree, in_tree=in_tree, out_tree=None, digraph=digraph, tagging_func=tagging_func) def print_nice_jaxpr(jaxpr): for eqn in jaxpr.eqns: print(tuple(eqn.invars), "->", eqn.primitive.name, tuple(eqn.outvars)) def auto_register_tags(func, func_args, params_index: int = 0, register_only_generic: bool = False, compute_only_loss_tags: bool = True, patterns_to_skip: Sequence[str] = ()): """Transform the function to one that is populated with tags.""" func = broadcast_merger(func) graph = function_to_jax_graph(func, func_args, params_index=params_index) matches = dict() # Extract the tagged losses variables and all their ancestors loss_output_vars = [] num_losses = 0 loss_ancestors = set() for node in graph.digraph.nodes: if node.startswith("__loss_tag"): num_losses += 1 ancestors = nx.ancestors(graph.digraph, node) ancestors.add(node) for output_node in node.split("->")[-1].split(","): ancestors.add(output_node) loss_output_vars.append(graph.digraph.nodes[output_node]["var"]) loss_ancestors = loss_ancestors.union(ancestors) loss_output_vars = tuple(loss_output_vars) # Extract the sub-graph that leads to losses sub_graph = nx.induced_subgraph(graph.digraph, loss_ancestors) # First collect all parameters that are already part of a layer tag tagged_params = dict() pattern_counters = dict() for tag_node in ( node for node in sub_graph.nodes if node.startswith("__layer_tag")): inputs = graph.digraph.nodes[tag_node]["eqn"].invars tag_instance = graph.digraph.nodes[tag_node]["eqn"].primitive if tag_instance.name == "generic_tag": tag_params = tag_instance.split_all_inputs(inputs)[0] else: tag_params = tag_instance.split_all_inputs(inputs)[2] pattern_number = pattern_counters.get(tag_instance.name, 0) for param in tag_params: if param not in graph.params: raise ValueError(f"You have registered a layer tag with parameter " f"that is not part of the parameters at index " f"{params_index}.") if param in tagged_params: raise ValueError(f"You have registered twice the parameter {param}.") tagged_params[param] = f"Manual[{tag_instance.name}_{pattern_number}]" if tag_instance.name not in pattern_counters: pattern_counters[tag_instance.name] = 1 else: pattern_counters[tag_instance.name] += 1 if not register_only_generic: for pattern_name, patterns in get_graph_patterns(): if pattern_name in patterns_to_skip: logging.info("Skipping graph pattern %s", pattern_name) continue logging.info("Matching graph pattern %s", pattern_name) for pattern in patterns: for match_map in match_pattern(pattern.digraph, sub_graph): if len(pattern.jaxpr.outvars) > 1: raise NotImplementedError() output = pattern.jaxpr.outvars[0] if matches.get(match_map[output]) is not None: raise ValueError(f"Found more than one match for equation " f"{match_map[output]}. Examine the jaxpr:\n " f"{graph.jaxpr}") # Mark the parameters as already tagged match_params = set() match_params_already_tagged = False for param in match_map.values(): if param in graph.params: match_params.add(param) if param in tagged_params.keys(): match_params_already_tagged = True # Register the match only if no parameters are already registered if not match_params_already_tagged: matches[match_map[output]] = (match_map, pattern.tagging_func) pattern_number = pattern_counters.get(pattern_name, 0) for param in match_params: tagged_params[param] = f"Auto[{pattern_name}_{pattern_number}]" if pattern_name not in pattern_counters: pattern_counters[pattern_name] = 1 else: pattern_counters[pattern_name] += 1 # Mark remaining parameters as orphans orphan_params = sorted( set(graph.params) - set(tagged_params.keys()), key=lambda v: v.count) params_regs = [tagged_params.get(p, "Orphan") for p in graph.params] params_regs = jax.tree_unflatten(graph.params_tree, params_regs) logging.info("=" * 50) logging.info("Graph parameter registrations:") logging.info(params_regs) logging.info("=" * 50) # Construct a function with all of the extra tag registrations @functools.wraps(func) def wrapped_auto_registered(*args): flat_args, _ = jax.tree_flatten(args) # Mapping from variable -> value env = {} read = functools.partial(read_env, env) write = functools.partial(write_env, env) def tag(var): if matches.get(var) is not None: inv_map, tagging_func = matches[var] var_map = {k: v for k, v in inv_map.items() if not isinstance(k, str)} val_map = jax.tree_map(read, var_map) val = tagging_func(inv_map, val_map) env[var] = val # Bind args and consts to environment jax_util.safe_map(write, graph.jaxpr.invars, flat_args) jax_util.safe_map(write, graph.jaxpr.constvars, graph.consts) # Register any orphan parameters as generic for param_var in orphan_params: write(param_var, tags.register_generic(read(param_var))) # Set the correct output variables if compute_only_loss_tags: output_vars = loss_output_vars out_tree = jax.tree_structure(loss_output_vars) else: output_vars = graph.jaxpr.outvars out_tree = graph.out_tree # Loop through equations and evaluate primitives using `bind` losses_evaluated = 0 for eqn in graph.jaxpr.eqns: evaluate_eqn(eqn, jax_util.safe_map(read, eqn.invars), write) jax_util.safe_map(tag, eqn.outvars) # If we want to output only tagged losses if isinstance(eqn.primitive, tags.LossTag): losses_evaluated += 1 if compute_only_loss_tags and num_losses == losses_evaluated: break outputs = jax_util.safe_map(read, output_vars) return jax.tree_unflatten(out_tree, outputs) return wrapped_auto_registered # Registered graphs NAME_TO_JAX_GRAPH = dict() DEFERRED_REGISTRATIONS = [] def register_function(name, func, tagging_func, example_args, params_index, precedence): """Registers a function as a pattern in the graph matcher registry. The graph matcher needs to trace at least once the full function, which means you need to provide it with dummy arguments. The shapes of the arguments do not matter, as the graph matcher ignores their values, however the rank does. Especially if there is some broadcasting happening you should register with every possible broadcast pattern. As a general advice avoid using a shape to be 1, unless you want the pattern to specifically match that, as some operations, like squeeze for example, can have special behaviour then. Args: name: The name of the pattern that is being registered to. func: The function that performs the computation. tagging_func: Function that correctly creates the tag. example_args: Example arguments that can be inputted into `func`. params_index: Specifies at which index of the `example_args` are considered a parameter. precedence: This specifies what precedence the graph matcher is going to assign to the provided pattern. The graph matcher will go from lowest to highest precedence, randomly breaking ties, when matching. Note that the pattern that matches a parameter with the lowest precedence will get registered and no other will. Specifically useful when there is a pattern for a layer with and without bias, in which case the with bias registration always should go with lower precedence. """ # This is required because we can not use Jax before InitGoogle() runs def register(): jnp_args = jax.tree_map(jnp.asarray, example_args) graph = function_to_jax_graph( func, jnp_args, params_index=params_index, tagging_func=tagging_func) if NAME_TO_JAX_GRAPH.get(name) is None: NAME_TO_JAX_GRAPH[name] = (precedence, []) assert precedence == NAME_TO_JAX_GRAPH[name][0] NAME_TO_JAX_GRAPH[name][1].append(graph) DEFERRED_REGISTRATIONS.append(register) def get_graph_patterns(): """Returns all graph patterns sorted by their precedence.""" while DEFERRED_REGISTRATIONS: DEFERRED_REGISTRATIONS.pop()() return [(name, pattern) for name, (_, pattern) in sorted( NAME_TO_JAX_GRAPH.items(), key=lambda pair: pair[1][0])] # Dense with bias register_function( "dense_with_bias", tags.dense_func, tags.dense_tagging, [np.zeros([11, 13]), [np.zeros([13, 7]), np.zeros([7])]], params_index=1, precedence=0) # Dense without bias register_function( "dense_no_bias", tags.dense_func, tags.dense_tagging, [np.zeros([11, 13]), [np.zeros([13, 7])]], params_index=1, precedence=1) # Conv2d with bias register_function( "conv2d_with_bias", tags.conv2d_func, tags.conv2d_tagging, [np.zeros([2, 8, 8, 5]), [np.zeros([3, 3, 5, 4]), np.zeros([4])]], params_index=1, precedence=0) # Conv2d without bias register_function( "conv2d_no_bias", tags.conv2d_func, tags.conv2d_tagging, [np.zeros([2, 8, 8, 5]), [np.zeros([3, 3, 5, 4])]], params_index=1, precedence=1) # Standard scale and shift with both scale and shift register_function( "scale_and_shift", functools.partial( tags.scale_and_shift_func, has_scale=True, has_shift=True), functools.partial( tags.scale_and_shift_tagging, has_scale=True, has_shift=True), [np.zeros([2, 13]), [np.zeros([13]), np.zeros([13])]], params_index=1, precedence=0) # Same but no broadcasting register_function( "scale_and_shift", functools.partial( tags.scale_and_shift_func, has_scale=True, has_shift=True), functools.partial( tags.scale_and_shift_tagging, has_scale=True, has_shift=True), [np.zeros([13]), [np.zeros([13]), np.zeros([13])]], params_index=1, precedence=0) # Scale and shift as implemented in batch norm layers in Haiku register_function( "scale_and_shift", tags.batch_norm_func, functools.partial( tags.batch_norm_tagging_func, has_scale=True, has_shift=True), [[np.zeros([2, 13]), np.zeros([13])], [np.zeros([13]), np.zeros([13])]], params_index=1, precedence=0) # Same but no broadcasting register_function( "scale_and_shift", tags.batch_norm_func, functools.partial( tags.batch_norm_tagging_func, has_scale=True, has_shift=True), [[np.zeros([13]), np.zeros([13])], [np.zeros([13]), np.zeros([13])]], params_index=1, precedence=0) # Only scale register_function( "scale_only", functools.partial( tags.scale_and_shift_func, has_scale=True, has_shift=False), functools.partial( tags.scale_and_shift_tagging, has_scale=True, has_shift=False), [np.zeros([2, 13]), [np.zeros([13])]], params_index=1, precedence=1) ================================================ FILE: kfac_ferminet_alpha/tests/common.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Common functions used across more than one test.""" import jax import jax.numpy as jnp import jax.random as jnr from kfac_ferminet_alpha import loss_functions def fully_connected_layer(params, x): w, b = params return jnp.matmul(x, w) + b[None] def init_autoencoder(key, data_shape): """Initialize the standard autoencoder.""" assert len(data_shape) == 1 x_size = data_shape[0] sizes = [x_size, 1000, 500, 250, 30, 250, 500, 1000, x_size] keys = jnr.split(key, len(sizes) - 1) params = [] for key, dim_in, dim_out in zip(keys, sizes, sizes[1:]): # Glorot uniform initialization c = jnp.sqrt(6 / (dim_in + dim_out)) w = jax.random.uniform(key, shape=(dim_in, dim_out), minval=-c, maxval=c) b = jnp.zeros([dim_out]) params.append((w, b)) return params def autoencoder(all_params, x_in): """Evaluate the standard autoencoder. Note that the objective of this autoencoder is not standard, bur rather a sum of the standard sigmoid crossentropy and squared loss. The reason for this is to test on handling multiple losses. Args: all_params: All parameter values. x_in: Inputs to the network. Returns: The value of the two losses and intermediate layer values. """ h_in = x_in layers_values = [] for i, params in enumerate(all_params): h_out = fully_connected_layer(params, h_in) layers_values.append((h_out, h_in)) # Last layer does not have a nonlinearity if i % 4 != 3: # h_in = nn.leaky_relu(h_out) h_in = jnp.tanh(h_out) else: h_in = h_out h1, _ = loss_functions.register_normal_predictive_distribution(h_in, x_in) h2, _ = loss_functions.register_normal_predictive_distribution( h_in, targets=x_in, weight=0.1) l1 = (h1 - x_in)**2 + jnp.log(jnp.pi) / 2 l1 = jnp.sum(l1, axis=-1) l2 = (h2 - x_in)**2 + jnp.log(jnp.pi) / 2 l2 = jnp.sum(l2, axis=-1) return [l1, l2 * 0.1], layers_values ================================================ FILE: kfac_ferminet_alpha/tests/graph_matcher_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import unittest from absl.testing import absltest import jax import jax.numpy as jnp import jax.random as jnr from kfac_ferminet_alpha import layers_and_loss_tags from kfac_ferminet_alpha import loss_functions from kfac_ferminet_alpha import tag_graph_matcher from kfac_ferminet_alpha.tests import common def tagged_autoencoder(all_params, x_in): h_in = x_in layers_values = [] for i, params in enumerate(all_params): h_out = common.fully_connected_layer(params, h_in) h_out = layers_and_loss_tags.register_dense(h_out, h_in, params[0], params[1],) layers_values.append((h_out, h_in)) # Last layer does not have a nonlinearity if i % 4 != 3: h_in = jnp.tanh(h_out) else: h_in = h_out h1, _ = loss_functions.register_normal_predictive_distribution( h_in, targets=x_in, weight=1.0) h2, t2 = loss_functions.register_normal_predictive_distribution( h_in, targets=x_in, weight=0.1) return [[h1, t2], [h2, t2]] class TestGraphMatcher(unittest.TestCase): """Class for running all of the tests for integrating the systems.""" def _test_jaxpr(self, init_func, model_func, tagged_model, data_shape): data_shape = tuple(data_shape) rng_key = jnr.PRNGKey(12345) init_key, data_key = jnr.split(rng_key) params = init_func(init_key, data_shape) data = jnr.normal(data_key, (11,) + data_shape) func = tag_graph_matcher.auto_register_tags(model_func, (params, data)) jaxpr = jax.make_jaxpr(func)(params, data).jaxpr tagged_jaxpr = jax.make_jaxpr(tagged_model)(params, data).jaxpr self.assertEqual(len(jaxpr.invars), len(tagged_jaxpr.invars)) self.assertEqual(len(jaxpr.constvars), len(tagged_jaxpr.constvars)) self.assertEqual(len(jaxpr.outvars), len(tagged_jaxpr.outvars)) for eq, tagged_eq in zip(jaxpr.eqns, tagged_jaxpr.eqns): eq_in_vars = [v for v in eq.invars] tagged_in_vars = [v for v in tagged_eq.invars] self.assertEqual(len(eq_in_vars), len(tagged_in_vars)) self.assertEqual(len(eq.outvars), len(tagged_eq.outvars)) self.assertEqual(eq.primitive, tagged_eq.primitive) for variable, t_variable in zip(eq_in_vars + eq.outvars, tagged_in_vars + tagged_eq.outvars): if isinstance(variable, jax.core.Literal): self.assertEqual(variable.aval, t_variable.aval) else: if variable.count != t_variable.count: print("0") self.assertEqual(variable.count, t_variable.count) def test_autoencoder(self): self._test_jaxpr(common.init_autoencoder, common.autoencoder, tagged_autoencoder, [784]) if __name__ == "__main__": absltest.main() ================================================ FILE: kfac_ferminet_alpha/tests/tracer_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import unittest from absl.testing import absltest import jax import jax.numpy as jnp import jax.random as jnr import numpy as np from kfac_ferminet_alpha import loss_functions from kfac_ferminet_alpha import tag_graph_matcher as tgm from kfac_ferminet_alpha import tracer from kfac_ferminet_alpha import utils from kfac_ferminet_alpha.tests import common def autoencoder_aux(all_aux, all_params, x_in): h_in = x_in layers_values = [] for i, (params, aux) in enumerate(zip(all_params, all_aux)): h_out = common.fully_connected_layer(params, h_in + aux[1]) + aux[0] layers_values.append((h_out, h_in)) # Last layer does not have a nonlinearity if i % 4 != 3: h_in = jnp.tanh(h_out) else: h_in = h_out h1, _ = loss_functions.register_normal_predictive_distribution(h_in, x_in) h2, _ = loss_functions.register_normal_predictive_distribution( h_in, targets=x_in, weight=0.1) l1 = (h1 - x_in)**2 + jnp.log(jnp.pi) / 2 l2 = (h2 - x_in)**2 + jnp.log(jnp.pi) / 2 return [l1, l2 * 0.1], layers_values class TestTracer(unittest.TestCase): """Class for running all of the tests for integrating the systems.""" @staticmethod def generate_data(init_func, func, data_shape, rng_key): n = 3 rng_key, key = jnr.split(rng_key) params = init_func(key, data_shape) rng_key, key = jnr.split(rng_key) p_tangents = init_func(key, data_shape) rng_key, key = jnr.split(rng_key) data = jnr.normal(key, [n] + data_shape) loss_vals, layer_vals = func(params, data) h = layer_vals[-1][0] keys = jnr.split(key, len(loss_vals)) h_tangents = tuple(jnr.normal(key, shape=h.shape) for key in keys) return params, data, p_tangents, h_tangents def assertStructureAllClose(self, x, y, rtol=1E-5, atol=1E-5, **kwargs): x_v, x_tree = jax.tree_flatten(x) y_v, y_tree = jax.tree_flatten(y) self.assertEqual(x_tree, y_tree) for xi, yi in zip(x_v, y_v): self.assertEqual(xi.shape, yi.shape) self.assertEqual(xi.dtype, yi.dtype) np.testing.assert_allclose(xi, yi, rtol=rtol, atol=atol, **kwargs) def test_tacer_jvp(self): init_func = common.init_autoencoder func = common.autoencoder data_shape = [784] rng_key = jnr.PRNGKey(12345) params, data, p_tangents, _ = self.generate_data(init_func, func, data_shape, rng_key) def no_data_func(args): outputs = func(args, data) return outputs[0], outputs[1][-1][0] # True computation (primals_out, tangents_out) = jax.jvp(no_data_func, [params], [p_tangents]) loss_vals, _ = primals_out _, h_tangents = tangents_out loss_tangents = ((h_tangents,),) * len(loss_vals) # Tracer computation tracer_jvp = tracer.trace_losses_matrix_vector_jvp(func) tracer_losses, tracer_loss_tangents = tracer_jvp((params, data), p_tangents) tracer_losses = [loss.evaluate(None) for loss in tracer_losses] self.assertStructureAllClose(loss_vals, tracer_losses) self.assertStructureAllClose(loss_tangents, tracer_loss_tangents) def test_tracer_vjp(self): init_func = common.init_autoencoder func = common.autoencoder data_shape = [784] rng_key = jnr.PRNGKey(12345) params, data, _, h_tangents = self.generate_data(init_func, func, data_shape, rng_key) def no_data_func(args): outputs = func(args, data) return outputs[0], outputs[1][-1][0] # True computation (loss_vals, _), vjp_func = jax.vjp(no_data_func, params) loss_tangents = jax.tree_map(jnp.zeros_like, loss_vals) summed_h_tangents = sum(jax.tree_flatten(h_tangents)[0]) p_tangents = vjp_func((loss_tangents, summed_h_tangents)) # Tracer computation trace_vjp = tracer.trace_losses_matrix_vector_vjp(func) tracer_losses, tracer_vjp_func = trace_vjp(params, data) tracer_losses = [loss.evaluate(None) for loss in tracer_losses] tracer_p_tangents = tracer_vjp_func(h_tangents) self.assertStructureAllClose(loss_vals, tracer_losses) self.assertStructureAllClose(p_tangents, tracer_p_tangents, atol=3e-6) def test_tracer_hvp(self): init_func = common.init_autoencoder func = common.autoencoder data_shape = [784] rng_key = jnr.PRNGKey(12345) params, data, p_tangents, _ = self.generate_data(init_func, func, data_shape, rng_key) def no_data_func(args): outputs = func(args, data) return sum(jax.tree_map(jnp.sum, outputs[0])) # True computation grad_func = jax.grad(no_data_func) def grad_time_tangents(args): return utils.inner_product(grad_func(args), p_tangents) hvp = jax.grad(grad_time_tangents) hvp_vectors = hvp(params) # Tracer computation tracer_hvp = tracer.trace_losses_matrix_vector_hvp(func) tracer_hvp_vectors = tracer_hvp((params, data), p_tangents) self.assertStructureAllClose(hvp_vectors, tracer_hvp_vectors, atol=1e-4) def test_trace_estimator(self): init_func = common.init_autoencoder func = common.autoencoder aux_func = autoencoder_aux data_shape = [784] rng_key = jnr.PRNGKey(12345) params, data, _, h_tangents = self.generate_data(init_func, func, data_shape, rng_key) def aux_last_layer(aux, args): outs = aux_func(aux, args, data) return outs[1][-1][0] # True computation loss_vals, layer_vals = func(params, data) aux_vals = jax.tree_map(jnp.zeros_like, layer_vals) _, vjp = jax.vjp(aux_last_layer, aux_vals, params) summed_h_tangents = sum(jax.tree_flatten(h_tangents)[0]) aux_tangents, p_tangents = vjp(summed_h_tangents) layers_info = [] for aux_p, p_p in zip(layer_vals, params): info = dict() info["outputs"] = (aux_p[0],) info["inputs"] = (aux_p[1],) info["params"] = (p_p[0], p_p[1]) layers_info.append(info) for i, (aux_t, p_t) in enumerate(zip(aux_tangents, p_tangents)): info = dict() info["outputs_tangent"] = (aux_t[0],) info["inputs_tangent"] = (aux_t[1],) info["params_tangent"] = (p_t[0], p_t[1]) layers_info[i].update(info) layers_info = tuple(layers_info) func = tgm.auto_register_tags(func, (params, data)) tracer_vjp = tracer.trace_estimator_vjp(func) tracer_losses, tracer_vjp_func = tracer_vjp((params, data)) tracer_losses = [loss.evaluate(None) for loss in tracer_losses] tracer_outputs = tracer_vjp_func((h_tangents[:1], h_tangents[1:])) self.assertStructureAllClose(loss_vals, tracer_losses) self.assertStructureAllClose(tracer_outputs, layers_info, atol=3e-6) if __name__ == "__main__": absltest.main() ================================================ FILE: kfac_ferminet_alpha/tracer.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module for the Jax tracer functionality for tags.""" import functools from typing import Any, Callable, Sequence, Tuple import jax from jax import core from jax import util as jax_util import jax.numpy as jnp from kfac_ferminet_alpha import layers_and_loss_tags as tags from kfac_ferminet_alpha import tag_graph_matcher as tgm from kfac_ferminet_alpha import utils _Function = Callable[[Any], Any] _Loss = tags.LossTag def extract_tags( jaxpr: core.Jaxpr ) -> Tuple[Sequence[core.JaxprEqn], Sequence[core.JaxprEqn]]: """Extracts all of the tag equations.""" # Loop through equations and evaluate primitives using `bind` layer_tags = [] loss_tags = [] for eqn in jaxpr.eqns: if isinstance(eqn.primitive, tags.LossTag): loss_tags.append(eqn) elif isinstance(eqn.primitive, tags.LayerTag): layer_tags.append(eqn) return tuple(layer_tags), tuple(loss_tags) def construct_compute_losses_inputs( jaxpr: core.Jaxpr, consts: Tuple[Any], num_losses: int, primals: Any, params_index: int) -> Callable[[Any], Sequence[Sequence[jnp.ndarray]]]: """Constructs a function that computes all of the inputs to all losses.""" primals_ = list(primals) def forward_compute_losses( params_primals: Any, ) -> Sequence[Sequence[jnp.ndarray]]: primals_[params_index] = params_primals flat_args = jax.tree_flatten(primals_)[0] # Mapping from variable -> value env = dict() read = functools.partial(tgm.read_env, env) write = functools.partial(tgm.write_env, env) # Bind args and consts to environment jax_util.safe_map(write, jaxpr.invars, flat_args) jax_util.safe_map(write, jaxpr.constvars, consts) # Loop through equations and evaluate primitives using `bind` losses_so_far = 0 loss_tags = [] for eqn in jaxpr.eqns: tgm.evaluate_eqn(eqn, jax_util.safe_map(read, eqn.invars), write) if isinstance(eqn.primitive, tags.LossTag): loss_tags.append(eqn) losses_so_far += 1 if num_losses is not None and losses_so_far == num_losses: break return tuple(tuple(read(v) for v in tag.invars) for tag in loss_tags) # return tuple(jax_util.safe_map(read, tag.invars) for tag in loss_tags) return forward_compute_losses # We know when `.primitive` will be either a `LossTag` or a `LayerTag`, however # pytype cannot infer its subclass, so we need to unbox it. def _unbox_loss_tag(jaxpr_eqn: core.JaxprEqn) -> tags.LossTag: assert isinstance(jaxpr_eqn.primitive, tags.LossTag) return jaxpr_eqn.primitive def _unbox_layer_tag(jaxpr_eqn: core.JaxprEqn) -> tags.LayerTag: assert isinstance(jaxpr_eqn.primitive, tags.LayerTag) return jaxpr_eqn.primitive def trace_losses_matrix_vector_vjp(tagged_func: _Function, params_index: int = 0): """Returns the Jacobian-transposed vector product (backward mode) function in equivalent form to jax.vjp.""" def vjp(*primals): typed_jaxpr = jax.make_jaxpr(tagged_func)(*primals) jaxpr, consts = typed_jaxpr.jaxpr, typed_jaxpr.literals _, loss_jaxpr_eqns = extract_tags(jaxpr) n = len(loss_jaxpr_eqns) losses_func = construct_compute_losses_inputs( jaxpr, consts, n, primals, params_index) losses_inputs, full_vjp_func = jax.vjp(losses_func, primals[params_index]) losses = [] for jaxpr_eqn, inputs in zip(loss_jaxpr_eqns, losses_inputs): loss_tag = _unbox_loss_tag(jaxpr_eqn) losses.append(loss_tag.loss(*inputs, weight=jaxpr_eqn.params["weight"])) losses = tuple(losses) def vjp_func(tangents): flat_tangents = jax.tree_flatten(tangents)[0] loss_invars = [] loss_targets = [] for jaxpr_eqn, inputs in zip(loss_jaxpr_eqns, losses_inputs): num_inputs = _unbox_loss_tag(jaxpr_eqn).num_inputs loss_invars.append(tuple(jaxpr_eqn.invars[:num_inputs])) loss_targets.append(inputs[num_inputs:]) treedef = jax.tree_structure(loss_invars) tangents = jax.tree_unflatten(treedef, flat_tangents) # Since the losses could also take and targets as inputs and we don't want # this function to computes vjp w.r.t to those (e.g. the user should not # be providing tangent vectors for the targets, only for inputs) we have # to manually fill in these "extra" tangents with zeros. targets_tangents = jax.tree_map(jnp.zeros_like, loss_targets) tangents = tuple(ti + tti for ti, tti in zip(tangents, targets_tangents)) input_tangents = full_vjp_func(tangents)[0] return input_tangents, return losses, vjp_func return vjp def trace_losses_matrix_vector_jvp( tagged_func: _Function, params_index: int = 0): """Returns the Jacobian vector product (forward mode) function in equivalent form to jax.jvp.""" def jvp(primals, params_tangents): typed_jaxpr = jax.make_jaxpr(tagged_func)(*primals) jaxpr, consts = typed_jaxpr.jaxpr, typed_jaxpr.literals _, loss_tags = extract_tags(jaxpr) n = len(loss_tags) losses_func = construct_compute_losses_inputs(jaxpr, consts, n, primals, params_index) primals = (primals[params_index],) tangents = (params_tangents,) (primals_out, tangents_out) = jax.jvp(losses_func, primals, tangents) tangents_out = tuple(tuple(t[:tag.primitive.num_inputs]) for t, tag in zip(tangents_out, loss_tags)) losses = tuple(tag.primitive.loss(*inputs, weight=tag.params["weight"]) for tag, inputs in zip(loss_tags, primals_out)) return losses, tangents_out return jvp def trace_losses_matrix_vector_hvp(tagged_func, params_index=0): """Returns the Hessian vector product function of **the tagged losses**, rather than the output value of `tagged_func`.""" # The function uses backward-over-forward mode. def hvp(primals, params_tangents): typed_jaxpr = jax.make_jaxpr(tagged_func)(*primals) jaxpr, consts = typed_jaxpr.jaxpr, typed_jaxpr.literals _, loss_tags = extract_tags(jaxpr) n = len(loss_tags) losses_func = construct_compute_losses_inputs( jaxpr, consts, n, primals, params_index) def losses_sum(param_primals): loss_inputs = losses_func(param_primals) losses = [ _unbox_loss_tag(jaxpr_eqn).loss( *inputs, weight=jaxpr_eqn.params["weight"]) for jaxpr_eqn, inputs in zip(loss_tags, loss_inputs) ] # This computes the sum of losses evaluated. Makes it easier as we can # now use jax.grad rather than jax.vjp for taking derivatives. return sum(jnp.sum(loss.evaluate(None)) for loss in losses) def grads_times_tangents(params_primals): grads = jax.grad(losses_sum)(params_primals) return utils.inner_product(grads, params_tangents) return jax.grad(grads_times_tangents)(primals[params_index]) return hvp def trace_estimator_vjp(tagged_func: _Function) -> _Function: """Creates the function needed for an estimator of curvature matrices. Args: tagged_func: An function that has been annotated with tags both for layers and losses. Returns: A function with the same signatures as `tagged_func`, which when provided with inputs returns two things: 1. The instances of all losses objected that are tagged. 2. A second function, which when provide with tangent vectors for each of the loss instances' parameters, returns for every tagged layer a dictionary containing the following elements: inputs - The primal values of the inputs to the layer. outputs - The primal values of the outputs to the layer. params - The primal values of the layer. inputs_tangent - The tangent value of layer, given the provided tangents of the losses. inputs_tangent - The tangent value of layer, given the provided tangents of the losses. inputs_tangent - The tangent value of layer, given the provided tangents of the losses. """ def full_vjp_func(func_args): # Trace the tagged function typed_jaxpr = jax.make_jaxpr(tagged_func)(*func_args) jaxpr, consts = typed_jaxpr.jaxpr, typed_jaxpr.literals layer_tags, loss_tags = extract_tags(jaxpr) layer_vars_flat = jax.tree_flatten([tag.invars for tag in layer_tags])[0] layer_input_vars = tuple(set(layer_vars_flat)) def forward(): own_func_args = func_args # Mapping from variable -> value env = dict() read = functools.partial(tgm.read_env, env) write = functools.partial(tgm.write_env, env) # Bind args and consts to environment jax_util.safe_map(write, jaxpr.invars, jax.tree_flatten(own_func_args)[0]) jax_util.safe_map(write, jaxpr.constvars, consts) # Loop through equations and evaluate primitives using `bind` num_losses_passed = 0 for eqn in jaxpr.eqns: tgm.evaluate_eqn(eqn, jax_util.safe_map(read, eqn.invars), write) if isinstance(eqn.primitive, tags.LossTag): num_losses_passed += 1 if num_losses_passed == len(loss_tags): break if num_losses_passed != len(loss_tags): raise ValueError("This should be unreachable.") return jax_util.safe_map(read, layer_input_vars) def forward_aux(aux): own_func_args = func_args # Mapping from variable -> value env = dict() read = functools.partial(tgm.read_env, env) def write(var, val): if not isinstance(var, jax.core.Literal): val = val + aux[var] if var in aux else val env[var] = val # Bind args and consts to environment jax_util.safe_map(write, jaxpr.invars, jax.tree_flatten(own_func_args)[0]) jax_util.safe_map(write, jaxpr.constvars, consts) # Loop through equations and evaluate primitives using `bind` num_losses_passed = 0 losses_inputs_values = [] losses_kwargs_values = [] for eqn in jaxpr.eqns: input_values = jax_util.safe_map(read, eqn.invars) tgm.evaluate_eqn(eqn, input_values, write) if isinstance(eqn.primitive, tags.LossTag): loss = eqn.primitive.loss(*input_values, weight=eqn.params["weight"]) losses_inputs_values.append(loss.inputs) losses_kwargs_values.append(dict( targets=loss.targets, weight=eqn.params["weight"] )) num_losses_passed += 1 if num_losses_passed == len(loss_tags): break if num_losses_passed != len(loss_tags): raise ValueError("This should be unreachable.") # Read the inputs to the loss functions, but also return the target values return tuple(losses_inputs_values), tuple(losses_kwargs_values) layer_input_values = forward() primals_dict = dict(zip(layer_input_vars, layer_input_values)) primals_dict.update(zip(jaxpr.invars, jax.tree_flatten(func_args)[0])) aux_values = jax.tree_map(jnp.zeros_like, layer_input_values) aux_dict = dict(zip(layer_input_vars, aux_values)) losses_args, aux_vjp, losses_kwargs = jax.vjp(forward_aux, aux_dict, has_aux=True) losses = tuple(tag.primitive.loss(*inputs, **kwargs) for tag, inputs, kwargs in zip(loss_tags, losses_args, losses_kwargs)) def vjp_func(tangents): all_tangents = aux_vjp(tangents) tangents_dict, inputs_tangents = all_tangents[0], all_tangents[1:] inputs_tangents = jax.tree_flatten(inputs_tangents)[0] tangents_dict.update(zip(jaxpr.invars, inputs_tangents)) read_primals = functools.partial(tgm.read_env, primals_dict) read_tangents = functools.partial(tgm.read_env, tangents_dict) layers_info = [] for jaxpr_eqn in layer_tags: layer_tag = _unbox_layer_tag(jaxpr_eqn) info = dict() primals = jax_util.safe_map(read_primals, tuple(jaxpr_eqn.invars)) ( info["outputs"], info["inputs"], info["params"], ) = layer_tag.split_all_inputs(primals) tangents = jax_util.safe_map(read_tangents, tuple(jaxpr_eqn.invars)) ( info["outputs_tangent"], info["inputs_tangent"], info["params_tangent"], ) = layer_tag.split_all_inputs(tangents) layers_info.append(info) return tuple(layers_info) return losses, vjp_func return full_vjp_func ================================================ FILE: kfac_ferminet_alpha/utils.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities related to multi-device operations.""" import collections from typing import Any, Mapping, Optional, Sequence, Tuple, TypeVar, Union import dataclasses import jax from jax import core from jax import lax import jax.numpy as jnp from jax.scipy import linalg import jax.tree_util as tree_util T = TypeVar("T") def wrap_if_pmap(p_func): def p_func_if_pmap(obj, axis_name): try: core.axis_frame(axis_name) return p_func(obj, axis_name) except NameError: return obj return p_func_if_pmap pmean_if_pmap = wrap_if_pmap(lax.pmean) psum_if_pmap = wrap_if_pmap(lax.psum) compute_mean = jax.pmap(lambda x: lax.pmean(x, "i"), axis_name="i") compute_sum = jax.pmap(lambda x: lax.psum(x, "i"), axis_name="i") def get_first(obj: T) -> T: return jax.tree_map(lambda x: x[0], obj) def get_mean(obj: T) -> T: return get_first(compute_mean(obj)) def get_sum(obj: T) -> T: return get_first(compute_sum(obj)) broadcast_all_local_devices = jax.pmap(lambda x: x) def replicate_all_local_devices(obj: T) -> T: n = jax.local_device_count() obj_stacked = jax.tree_map(lambda x: jnp.stack([x] * n, axis=0), obj) return broadcast_all_local_devices(obj_stacked) def make_different_rng_key_on_all_devices(rng: jnp.ndarray) -> jnp.ndarray: rng = jax.random.fold_in(rng, jax.host_id()) rng = jax.random.split(rng, jax.local_device_count()) return broadcast_all_local_devices(rng) p_split = jax.pmap(lambda key: tuple(jax.random.split(key))) def scalar_mul(obj: T, scalar: Union[float, jnp.ndarray]) -> T: return jax.tree_map(lambda x: x * scalar, obj) def scalar_div(obj: T, scalar: Union[float, jnp.ndarray]) -> T: return jax.tree_map(lambda x: x / scalar, obj) def make_func_args(params, func_state, rng, batch, has_state: bool, has_rng: bool): """Correctly puts all arguments to the function together.""" func_args = (params,) if has_state: if func_state is None: raise ValueError("The `func_state` is None, but the argument `has_state` " "is True.") func_args += (func_state,) if has_rng: if rng is None: raise ValueError("The `rng` is None, but the argument `has_rng` is True.") func_args += (rng,) func_args += (batch,) return func_args def extract_func_outputs( raw_outputs: Any, has_aux: bool, has_state: bool, ) -> Tuple[jnp.ndarray, Any, Any]: """Given the function output returns separately the loss, func_state, aux.""" if not has_aux and not has_state: return raw_outputs, None, None loss, other = raw_outputs if has_aux and has_state: func_state, aux = other elif has_aux: func_state, aux = None, other else: func_state, aux = other, None return loss, func_state, aux def inner_product(obj1: T, obj2: T) -> jnp.ndarray: if jax.tree_structure(obj1) != jax.tree_structure(obj2): raise ValueError("The two structures are not identical.") elements_product = jax.tree_map(lambda x, y: jnp.sum(x * y), obj1, obj2) return sum(jax.tree_flatten(elements_product)[0]) def psd_inv_cholesky(matrix: jnp.ndarray, damping: jnp.ndarray) -> jnp.ndarray: assert matrix.ndim == 2 identity = jnp.eye(matrix.shape[0]) matrix = matrix + damping * identity return linalg.solve(matrix, identity, sym_pos=True) def solve_maybe_small(a: jnp.ndarray, b: jnp.ndarray) -> jnp.ndarray: """Computes a^-1 b more efficiently for small matrices.""" assert a.shape[-1] == a.shape[-2] == b.shape[-1] d = a.shape[-1] if d == 0: return a elif d == 1: return b / a[..., 0] elif d == 2: det = a[..., 0, 0] * a[..., 1, 1] - a[..., 0, 1] * a[..., 1, 0] b_0 = a[..., 1, 1] * b[..., 0] - a[..., 0, 1] * b[..., 1] b_1 = a[..., 0, 0] * b[..., 1] - a[..., 1, 0] * b[..., 0] return jnp.stack([b_0, b_1], axis=-1) / det elif d == 3: raise NotImplementedError() return jnp.linalg.solve(a, b) def pi_adjusted_inverse( factor_0: jnp.ndarray, factor_1: jnp.ndarray, damping: jnp.ndarray, pmap_axis_name: str, ) -> Tuple[jnp.ndarray, jnp.ndarray]: """Performs inversion with pi-adjusted damping.""" # Compute the norms of each factor norm_0 = jnp.trace(factor_0) norm_1 = jnp.trace(factor_1) # We need to sync the norms here, because reduction can be non-deterministic. # They specifically are on GPUs by default for better performance. # Hence although factor_0 and factor_1 are synced, the trace operation above # can still produce different answers on different devices. norm_0, norm_1 = pmean_if_pmap((norm_0, norm_1), axis_name=pmap_axis_name) # Compute the overall scale scale = norm_0 * norm_1 def regular_inverse( operand: Sequence[jnp.ndarray]) -> Tuple[jnp.ndarray, jnp.ndarray]: factor0, factor1, norm0, norm1, s, d = operand # Special cases with one or two scalar factors if factor0.size == 1 and factor1.size == 1: value = jnp.ones_like(factor0) / jnp.sqrt(s) return value, value if factor0.size == 1: factor1_normed = factor1 / norm1 damping1 = d / norm1 factor1_inv = psd_inv_cholesky(factor1_normed, damping1) return jnp.full((1, 1), s), factor1_inv if factor1.size == 1: factor0_normed = factor0 / norm0 damping0 = d / norm0 factor0_inv = psd_inv_cholesky(factor0_normed, damping0) return factor0_inv, jnp.full((1, 1), s) # Invert first factor factor0_normed = factor0 / norm0 damping0 = jnp.sqrt(d * factor1.shape[0] / (s * factor0.shape[0])) factor0_inv = psd_inv_cholesky(factor0_normed, damping0) / jnp.sqrt(s) # Invert second factor factor1_normed = factor1 / norm1 damping1 = jnp.sqrt(d * factor0.shape[0] / (s * factor1.shape[0])) factor1_inv = psd_inv_cholesky(factor1_normed, damping1) / jnp.sqrt(s) return factor0_inv, factor1_inv def zero_inverse( operand: Sequence[jnp.ndarray]) -> Tuple[jnp.ndarray, jnp.ndarray]: return (jnp.eye(factor_0.shape[0]) / jnp.sqrt(operand[-1]), jnp.eye(factor_1.shape[0]) / jnp.sqrt(operand[-1])) # In the special case where for some reason one of the factors is zero, then # the correct inverse of `(0 kron A + lambda I)` is # `(I/sqrt(lambda) kron (I/sqrt(lambda)`. However, because one of the norms is # zero, then `pi` and `1/pi` would be 0 and infinity leading to NaN values. # Hence, we need to make this check explicitly. return lax.cond( jnp.greater(scale, 0.0), regular_inverse, zero_inverse, operand=(factor_0, factor_1, norm_0, norm_1, scale, damping)) def convert_value_and_grad_to_value_func( value_and_grad_func, has_aux: bool = False, ): """Converts a value_and_grad function to value_func only.""" def value_func(*args, **kwargs): out, _ = value_and_grad_func(*args, **kwargs) if has_aux: return out[0] else: return out return value_func def check_structure_shapes_and_dtype(obj1: T, obj2: T) -> None: """Verifies that the two objects have the same pytree structure.""" assert jax.tree_structure(obj1) == jax.tree_structure(obj2) for v1, v2 in zip(jax.tree_flatten(obj1)[0], jax.tree_flatten(obj2)[0]): assert v1.shape == v2.shape assert v1.dtype == v2.dtype def check_first_dim_is_batch_size(batch_size: int, *args: jnp.ndarray) -> None: for i, arg in enumerate(args): if arg.shape[0] != batch_size: raise ValueError(f"Expecting first dimension of arg[{i}] with shape " f"{arg.shape} to be equal to the batch size " f"{batch_size}.") def py_tree_registered_dataclass(cls, *args, **kwargs): """Creates a new dataclass type and registers it as a pytree node.""" dcls = dataclasses.dataclass(cls, *args, **kwargs) tree_util.register_pytree_node( dcls, lambda instance: ( # pylint: disable=g-long-lambda [getattr(instance, f.name) for f in dataclasses.fields(instance)], None), lambda _, instance_args: dcls(*instance_args)) return dcls class WeightedMovingAverage: """A wrapped class for a variable for which we keep exponential moving average.""" def __init__(self, weight: jnp.ndarray, array: jnp.ndarray): self._weight = weight self._array = array @staticmethod def zero(shape: Sequence[int]) -> "WeightedMovingAverage": return WeightedMovingAverage(weight=jnp.zeros([]), array=jnp.zeros(shape)) @property def weight(self) -> jnp.ndarray: return self._weight @property def value(self) -> jnp.ndarray: return self._array / self._weight @property def raw_value(self) -> jnp.ndarray: return self._array def update(self, value: jnp.ndarray, old_weight_multiplier: float, new_weight: float) -> None: self._weight = old_weight_multiplier * self._weight + new_weight self._array = old_weight_multiplier * self._array + new_weight * value def sync(self, pmap_axis_name: str) -> None: self._array = pmean_if_pmap(self._array, pmap_axis_name) def __str__(self) -> str: return (f"ExponentialMovingAverage(weight={self._weight}, " f"array={self._array})") def __repr__(self) -> str: return self.__str__() tree_util.register_pytree_node( WeightedMovingAverage, lambda instance: ((instance.weight, instance.raw_value), None), lambda _, instance_args: WeightedMovingAverage(*instance_args), ) class Stateful: """A class for stateful objects.""" def __init__(self, stateful_fields_names: Optional[Sequence[str]] = ()): self.__stateful_fields_names = stateful_fields_names def _add_stateful_fields_names(self, value: Sequence[str]) -> None: self.__stateful_fields_names += tuple(value) def get_state(self) -> Mapping[str, Any]: """Returns the state of the object.""" state = dict() for name in self.__stateful_fields_names: state[name] = Stateful._get_state_from_instance(getattr(self, name)) return state def set_state(self, value): """Sets the state of the object with the provided value and returns the object.""" assert isinstance(value, dict) for name in self.__stateful_fields_names: setattr(self, name, Stateful._set_state_to_instance(getattr(self, name), value[name])) return self def clear_state(self) -> None: """Clears the state of the object.""" for name in self.__stateful_fields_names: setattr(self, name, Stateful._clear_state_from_instance(getattr(self, name))) def pop_state(self) -> Mapping[str, Any]: """Returns the current state of the object, while simultaneously clearing it.""" state = self.get_state() self.clear_state() return state @staticmethod def _get_state_from_instance(obj): """Recursively gets the state of the object and returns it.""" if isinstance(obj, Stateful): return obj.get_state() if isinstance(obj, list): return [Stateful._get_state_from_instance(i) for i in obj] if isinstance(obj, tuple): return tuple(Stateful._get_state_from_instance(i) for i in obj) if isinstance(obj, collections.OrderedDict): return collections.OrderedDict( (k, Stateful._get_state_from_instance(v)) for k, v in obj.items()) if isinstance(obj, dict): return dict( (k, Stateful._get_state_from_instance(v)) for k, v in obj.items()) return obj @staticmethod def _set_state_to_instance(obj, value): """Recursively sets the state of the object and returns it.""" if isinstance(obj, Stateful): obj.set_state(value) return obj if isinstance(value, list): if obj is None: obj = [None] * len(value) return [ Stateful._set_state_to_instance(obj_i, value_i) for obj_i, value_i in zip(obj, value) ] if isinstance(value, tuple): if obj is None: obj = [None] * len(value) return tuple( Stateful._set_state_to_instance(obj_i, value_i) for obj_i, value_i in zip(obj, value)) if isinstance(value, collections.OrderedDict): if obj is None: obj = dict((k, None) for k in value) return collections.OrderedDict( (k, Stateful._set_state_to_instance(obj[k], value[k])) for k in obj) if isinstance(value, dict): obj = dict((k, None) for k in value) return dict( (k, Stateful._set_state_to_instance(obj[k], value[k])) for k in obj) return value @staticmethod def _clear_state_from_instance(obj): """Recursively clears the state of the object and returns it.""" if isinstance(obj, Stateful): obj.clear_state() return obj if isinstance(obj, list): return [Stateful._clear_state_from_instance(obj_i) for obj_i in obj] if isinstance(obj, tuple): return tuple(Stateful._clear_state_from_instance(obj_i) for obj_i in obj) if isinstance(obj, collections.OrderedDict): return collections.OrderedDict( (k, Stateful._clear_state_from_instance(obj[k])) for k in obj) if isinstance(obj, dict): return dict((k, Stateful._clear_state_from_instance(obj[k])) for k in obj) return None @staticmethod def infer_class_state(class_type): """Infers a stateful class state attributes from class annotations.""" if not issubclass(class_type, Stateful): raise ValueError( f"In order to annotate a class as stateful it must inherit " f"{Stateful!r}") class_type = dataclasses.dataclass( class_type, init=False, repr=False, eq=False) # pytype: disable=wrong-keyword-args fields_names = tuple(field.name for field in dataclasses.fields(class_type)) original_init = getattr(class_type, "__init__", None) if original_init is None: def injected_init(self, *args, **kwargs): super(self.__class__, self).__init__(*args, **kwargs) # pylint: disable=bad-super-call Stateful._add_stateful_fields_names(self, fields_names) for field_name in fields_names: if getattr(self, field_name, None) is None: setattr(self, field_name, None) setattr(class_type, "__init__", injected_init) else: def injected_init(self, *args, **kwargs): original_init(self, *args, **kwargs) Stateful._add_stateful_fields_names(self, fields_names) for field_name in fields_names: if getattr(self, field_name, None) is None: setattr(self, field_name, None) setattr(class_type, "__init__", injected_init) return class_type def compute_sq_norm_relative_abs_diff(obj, pmap_axis_name): sq_norm = inner_product(obj, obj) synced_sq_norm = psum_if_pmap(sq_norm, pmap_axis_name) synced_sq_norm = (synced_sq_norm - sq_norm) / (jax.device_count() - 1.0) sq_norm_abs_diff = jnp.abs(sq_norm - synced_sq_norm) return sq_norm_abs_diff / sq_norm def product(iterable_object): x = 1 for element in iterable_object: x *= element return x ================================================ FILE: learned_free_energy_estimation/README.md ================================================ # Targeted free energy estimation via learned mappings This repository contains supporting data for our publication ([journal](https://doi.org/10.1063/5.0018903), [arXiv](https://arxiv.org/abs/2002.04913)). Here, we provide - molecular dynamics (MD) datasets underlying the results reported in our paper, - a LAMMPS input script to generate these datasets, and - the data plotted in Fig. 5 of our paper to facilitate comparison. ## Abstract Free energy perturbation (FEP) was proposed by Zwanzig more than six decades ago as a method to estimate free energy differences, and has since inspired a huge body of related methods that use it as an integral building block. Being an importance sampling based estimator, however, FEP suffers from a severe limitation: the requirement of sufficient overlap between distributions. One strategy to mitigate this problem, called Targeted Free Energy Perturbation, uses a high-dimensional mapping in configuration space to increase overlap of the underlying distributions. Despite its potential, this method has attracted only limited attention due to the formidable challenge of formulating a tractable mapping. Here, we cast Targeted FEP as a machine learning problem in which the mapping is parameterized as a neural network that is optimized so as to increase overlap. We develop a new model architecture that respects permutational and periodic symmetries often encountered in atomistic simulations and test our method on a fully-periodic solvation system. We demonstrate that our method leads to a substantial variance reduction in free energy estimates when compared against baselines, without requiring any additional data. ## Dataset We generated the datasets using the open-source MD package [LAMMPS](https://lammps.sandia.gov). The prototypical solvation problem of study consists of a solute particle immersed in a liquid comprising 125 solvent particles. The solvent-solvent interactions are modelled using a Lennard-Jones potential and the solute-solvent interactions via a Weeks-Chandler-Andersen (WCA) potential. Further simulation details can be found in the LAMMPS script provided (see below) and in our [paper](https://arxiv.org/abs/2002.04913) (see Sec. 4 and Appendix B). ### Download You can download the compressed datasets (~3.8GB) using the command: > wget https://storage.googleapis.com/learned_free_energy_estimation/learned_free_energy_estimation_datasets.tar.bz2 or by copying the above link directly into your browser. Once the archive `learned_free_energy_estimation_datasets.tar.bz2` is downloaded, you can extract it with the command: > tar -xvf learned_free_energy_estimation_datasets.tar.bz2 ### Data format The archive contains a total of 40 files: - 10 train datasets for ensemble *A* (`ensemble_a_train_<>.dat`), - 10 train datasets for ensemble *B* (`ensemble_b_train_<>.dat`), - 10 test datasets for ensemble *A* (`ensemble_a_test_<>.dat`) and - 10 test datasets for ensemble *B* (`ensemble_b_test_<>.dat`). Each file is text-based and stored in a LAMMPS compatible format (see [dump command](https://lammps.sandia.gov/doc/dump.html)). Train datasets contain 90k records each and test datasets contain 10k records, totalling 1M records for each ensemble. Each record contains 135 lines and is structured as follows: - lines 1-9: Header information. - lines 10-135: A matrix with shape `[126, 5]` containing the - `id` (column 1), - `type` (column 2) and - `x, y, z` coordinates (columns 3-5) of all particles. For information on how the data was generated and partitioned into the final datasets we refer to Sec. 4 and Appendix B of our [paper](https://arxiv.org/abs/2002.04913). ## LAMMPS script The file `lammps.dat` contains a sample input script to generate data from ensemble *A*. You can generate data from ensemble *B* by updating the value of the solute radius, as suggested in the inline comment. For more information on how the datasets were post-processed and partitioned, we refer to Sec. 4 and Appendix B of our [paper](https://arxiv.org/abs/2002.04913). ## Figures The subdirectory `figures` contains 4 files: - `figure_5a_work_values.dat`: contains data underlying the histogram of work values in Fig. 5a. - `figure_5b_df_bar.dat`: contains the BAR estimate of dF in Fig. 5b. - `figure_5b_df_lbar.dat`: contains the LBAR estimate of dF in Fig. 5b. - `figure_5b_df_mbar.dat`: contains the MBAR estimate of dF in Fig. 5b. ## Reference If you find this repository helpful for your research, please cite our publication: ``` @article{Wirnsberger2020, title={Targeted free energy estimation via learned mappings}, author={Wirnsberger, Peter and Ballard, Andrew J and Papamakarios, George and Abercrombie, Stuart and Racanière, Sébastien and Pritzel, Alexander and Jimenez Rezende, Danilo and Blundell, Charles}, journal={J. Chem. Phys.}, volume={153}, number={14}, pages={144112}, year={2020}, doi={10.1063/5.0018903} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: learning_to_simulate/README.md ================================================ # Learning to Simulate Complex Physics with Graph Networks (ICML 2020) ICML poster: [icml.cc/virtual/2020/poster/6849](https://icml.cc/virtual/2020/poster/6849) Video site: [sites.google.com/view/learning-to-simulate](https://sites.google.com/view/learning-to-simulate) ArXiv: [arxiv.org/abs/2002.09405](https://arxiv.org/abs/2002.09405) If you use the code here please cite this paper: @inproceedings{sanchezgonzalez2020learning, title={Learning to Simulate Complex Physics with Graph Networks}, author={Alvaro Sanchez-Gonzalez and Jonathan Godwin and Tobias Pfaff and Rex Ying and Jure Leskovec and Peter W. Battaglia}, booktitle={International Conference on Machine Learning}, year={2020} } ## Example usage: train a model and display a trajectory ![WaterRamps rollout](images/water_ramps_rollout.gif) After downloading the repo, and from the parent directory. Install dependencies: pip install -r learning_to_simulate/requirements.txt mkdir -p /tmp/rollous Download dataset (e.g. WaterRamps): mkdir -p /tmp/datasets bash ./learning_to_simulate/download_dataset.sh WaterRamps /tmp/datasets Train a model: mkdir -p /tmp/models python -m learning_to_simulate.train \ --data_path=/tmp/datasets/WaterRamps \ --model_path=/tmp/models/WaterRamps Generate some trajectory rollouts on the test set: mkdir -p /tmp/rollouts python -m learning_to_simulate.train \ --mode="eval_rollout" \ --data_path=/tmp/datasets/WaterRamps \ --model_path=/tmp/models/WaterRamps \ --output_path=/tmp/rollouts/WaterRamps Plot a trajectory: python -m learning_to_simulate.render_rollout \ --rollout_path=/tmp/rollouts/WaterRamps/rollout_test_0.pkl ## Datasets Datasets are available to download via: * Metadata file with dataset information (sequence length, dimensionality, box bounds, default connectivity radius, statistics for normalization, ...): `https://storage.googleapis.com/learning-to-simulate-complex-physics/Datasets/{DATASET_NAME}/metadata.json` * TFRecords containing data for all trajectories (particle types, positions, global context, ...): `https://storage.googleapis.com/learning-to-simulate-complex-physics/Datasets/{DATASET_NAME}/{DATASET_SPLIT}.tfrecord` Where: * `{DATASET_SPLIT}` is one of: * `train` * `valid` * `test` * `{DATASET_NAME}` one of the datasets following the naming used in the paper: * `WaterDrop` * `Water` * `Sand` * `Goop` * `MultiMaterial` * `RandomFloor` * `WaterRamps` * `SandRamps` * `FluidShake` * `FluidShakeBox` * `Continuous` * `WaterDrop-XL` * `Water-3D` * `Sand-3D` * `Goop-3D` The provided script `./download_dataset.sh` may be used to download all files from each dataset into a folder given its name. An additional smaller dataset `WaterDropSample`, which includes only the first two trajectories of `WaterDrop` for each split, is provided for debugging purposes. ## Code structure * `train.py`: Script for training, evaluating and generating rollout trajectories. * `learned_simulator.py`: Implementation of the learnable one-step model that returns the next position of the particles given inputs. It includes data preprocessing, Euler integration, and a helper method for building normalized training outputs and targets. * `graph_network.py`: Implementation of the graph network used at the core of the learnable part of the model. * `render_rollout.py`: Visualization code for displaying rollouts such as the example animation. * `{noise/connectivity/reading}_utils.py`: Util modules for adding noise to the inputs, computing graph connectivity and reading datasets form TFRecords. * `model_demo.py`: example connecting the model to input dummy data. Note this is a reference implementation not designed to scale up to TPUs (unlike the one used for the paper). We have tested that the model can be trained with a batch size of 2 on a single NVIDIA V100 to reach similar qualitative performance (except for the XL and 3D datasets due to OOM). ================================================ FILE: learning_to_simulate/connectivity_utils.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tools to compute the connectivity of the graph.""" import functools import numpy as np from sklearn import neighbors import tensorflow.compat.v1 as tf def _compute_connectivity(positions, radius, add_self_edges): """Get the indices of connected edges with radius connectivity. Args: positions: Positions of nodes in the graph. Shape: [num_nodes_in_graph, num_dims]. radius: Radius of connectivity. add_self_edges: Whether to include self edges or not. Returns: senders indices [num_edges_in_graph] receiver indices [num_edges_in_graph] """ tree = neighbors.KDTree(positions) receivers_list = tree.query_radius(positions, r=radius) num_nodes = len(positions) senders = np.repeat(range(num_nodes), [len(a) for a in receivers_list]) receivers = np.concatenate(receivers_list, axis=0) if not add_self_edges: # Remove self edges. mask = senders != receivers senders = senders[mask] receivers = receivers[mask] return senders, receivers def _compute_connectivity_for_batch( positions, n_node, radius, add_self_edges): """`compute_connectivity` for a batch of graphs. Args: positions: Positions of nodes in the batch of graphs. Shape: [num_nodes_in_batch, num_dims]. n_node: Number of nodes for each graph in the batch. Shape: [num_graphs in batch]. radius: Radius of connectivity. add_self_edges: Whether to include self edges or not. Returns: senders indices [num_edges_in_batch] receiver indices [num_edges_in_batch] number of edges per graph [num_graphs_in_batch] """ # TODO(alvarosg): Consider if we want to support batches here or not. # Separate the positions corresponding to particles in different graphs. positions_per_graph_list = np.split(positions, np.cumsum(n_node[:-1]), axis=0) receivers_list = [] senders_list = [] n_edge_list = [] num_nodes_in_previous_graphs = 0 # Compute connectivity for each graph in the batch. for positions_graph_i in positions_per_graph_list: senders_graph_i, receivers_graph_i = _compute_connectivity( positions_graph_i, radius, add_self_edges) num_edges_graph_i = len(senders_graph_i) n_edge_list.append(num_edges_graph_i) # Because the inputs will be concatenated, we need to add offsets to the # sender and receiver indices according to the number of nodes in previous # graphs in the same batch. receivers_list.append(receivers_graph_i + num_nodes_in_previous_graphs) senders_list.append(senders_graph_i + num_nodes_in_previous_graphs) num_nodes_graph_i = len(positions_graph_i) num_nodes_in_previous_graphs += num_nodes_graph_i # Concatenate all of the results. senders = np.concatenate(senders_list, axis=0).astype(np.int32) receivers = np.concatenate(receivers_list, axis=0).astype(np.int32) n_edge = np.stack(n_edge_list).astype(np.int32) return senders, receivers, n_edge def compute_connectivity_for_batch_pyfunc( positions, n_node, radius, add_self_edges=True): """`_compute_connectivity_for_batch` wrapped in a pyfunc.""" partial_fn = functools.partial( _compute_connectivity_for_batch, add_self_edges=add_self_edges) senders, receivers, n_edge = tf.py_function( partial_fn, [positions, n_node, radius], [tf.int32, tf.int32, tf.int32]) senders.set_shape([None]) receivers.set_shape([None]) n_edge.set_shape(n_node.get_shape()) return senders, receivers, n_edge ================================================ FILE: learning_to_simulate/download_dataset.sh ================================================ #!/bin/bash # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Usage: # bash download_dataset.sh ${DATASET_NAME} ${OUTPUT_DIR} # Example: # bash download_dataset.sh WaterDrop /tmp/ set -e DATASET_NAME="${1}" OUTPUT_DIR="${2}/${DATASET_NAME}" BASE_URL="https://storage.googleapis.com/learning-to-simulate-complex-physics/Datasets/${DATASET_NAME}/" mkdir -p ${OUTPUT_DIR} for file in metadata.json train.tfrecord valid.tfrecord test.tfrecord do wget -O "${OUTPUT_DIR}/${file}" "${BASE_URL}${file}" done ================================================ FILE: learning_to_simulate/graph_network.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Graph network implementation accompanying ICML 2020 submission. "Learning to Simulate Complex Physics with Graph Networks" Alvaro Sanchez-Gonzalez*, Jonathan Godwin*, Tobias Pfaff*, Rex Ying, Jure Leskovec, Peter W. Battaglia https://arxiv.org/abs/2002.09405 The Sonnet `EncodeProcessDecode` module provided here implements the learnable parts of the model. It assumes an encoder preprocessor has already built a graph with connectivity and features as described in the paper, with features normalized to zero-mean unit-variance. Dependencies include Tensorflow 1.x, Sonnet 1.x and the Graph Nets 1.1 library. """ from typing import Callable import graph_nets as gn import sonnet as snt import tensorflow as tf Reducer = Callable[[tf.Tensor, tf.Tensor, tf.Tensor], tf.Tensor] def build_mlp( hidden_size: int, num_hidden_layers: int, output_size: int) -> snt.Module: """Builds an MLP.""" return snt.nets.MLP( output_sizes=[hidden_size] * num_hidden_layers + [output_size]) # pytype: disable=bad-return-type # gen-stub-imports class EncodeProcessDecode(snt.AbstractModule): """Encode-Process-Decode function approximator for learnable simulator.""" def __init__( self, latent_size: int, mlp_hidden_size: int, mlp_num_hidden_layers: int, num_message_passing_steps: int, output_size: int, reducer: Reducer = tf.math.unsorted_segment_sum, name: str = "EncodeProcessDecode"): """Inits the model. Args: latent_size: Size of the node and edge latent representations. mlp_hidden_size: Hidden layer size for all MLPs. mlp_num_hidden_layers: Number of hidden layers in all MLPs. num_message_passing_steps: Number of message passing steps. output_size: Output size of the decode node representations as required by the downstream update function. reducer: Reduction to be used when aggregating the edges in the nodes in the interaction network. This should be a callable whose signature matches tf.math.unsorted_segment_sum. name: Name of the model. """ super().__init__(name=name) self._latent_size = latent_size self._mlp_hidden_size = mlp_hidden_size self._mlp_num_hidden_layers = mlp_num_hidden_layers self._num_message_passing_steps = num_message_passing_steps self._output_size = output_size self._reducer = reducer with self._enter_variable_scope(): self._networks_builder() def _build(self, input_graph: gn.graphs.GraphsTuple) -> tf.Tensor: """Forward pass of the learnable dynamics model.""" # Encode the input_graph. latent_graph_0 = self._encode(input_graph) # Do `m` message passing steps in the latent graphs. latent_graph_m = self._process(latent_graph_0) # Decode from the last latent graph. return self._decode(latent_graph_m) def _networks_builder(self): """Builds the networks.""" def build_mlp_with_layer_norm(): mlp = build_mlp( hidden_size=self._mlp_hidden_size, num_hidden_layers=self._mlp_num_hidden_layers, output_size=self._latent_size) return snt.Sequential([mlp, snt.LayerNorm()]) # The encoder graph network independently encodes edge and node features. encoder_kwargs = dict( edge_model_fn=build_mlp_with_layer_norm, node_model_fn=build_mlp_with_layer_norm) self._encoder_network = gn.modules.GraphIndependent(**encoder_kwargs) # Create `num_message_passing_steps` graph networks with unshared parameters # that update the node and edge latent features. # Note that we can use `modules.InteractionNetwork` because # it also outputs the messages as updated edge latent features. self._processor_networks = [] for _ in range(self._num_message_passing_steps): self._processor_networks.append( gn.modules.InteractionNetwork( edge_model_fn=build_mlp_with_layer_norm, node_model_fn=build_mlp_with_layer_norm, reducer=self._reducer)) # The decoder MLP decodes node latent features into the output size. self._decoder_network = build_mlp( hidden_size=self._mlp_hidden_size, num_hidden_layers=self._mlp_num_hidden_layers, output_size=self._output_size) def _encode( self, input_graph: gn.graphs.GraphsTuple) -> gn.graphs.GraphsTuple: """Encodes the input graph features into a latent graph.""" # Copy the globals to all of the nodes, if applicable. if input_graph.globals is not None: broadcasted_globals = gn.blocks.broadcast_globals_to_nodes(input_graph) input_graph = input_graph.replace( nodes=tf.concat([input_graph.nodes, broadcasted_globals], axis=-1), globals=None) # Encode the node and edge features. latent_graph_0 = self._encoder_network(input_graph) return latent_graph_0 def _process( self, latent_graph_0: gn.graphs.GraphsTuple) -> gn.graphs.GraphsTuple: """Processes the latent graph with several steps of message passing.""" # Do `m` message passing steps in the latent graphs. # (In the shared parameters case, just reuse the same `processor_network`) latent_graph_prev_k = latent_graph_0 latent_graph_k = latent_graph_0 for processor_network_k in self._processor_networks: latent_graph_k = self._process_step( processor_network_k, latent_graph_prev_k) latent_graph_prev_k = latent_graph_k latent_graph_m = latent_graph_k return latent_graph_m def _process_step( self, processor_network_k: snt.Module, latent_graph_prev_k: gn.graphs.GraphsTuple) -> gn.graphs.GraphsTuple: """Single step of message passing with node/edge residual connections.""" # One step of message passing. latent_graph_k = processor_network_k(latent_graph_prev_k) # Add residuals. latent_graph_k = latent_graph_k.replace( nodes=latent_graph_k.nodes+latent_graph_prev_k.nodes, edges=latent_graph_k.edges+latent_graph_prev_k.edges) return latent_graph_k def _decode(self, latent_graph: gn.graphs.GraphsTuple) -> tf.Tensor: """Decodes from the latent graph.""" return self._decoder_network(latent_graph.nodes) ================================================ FILE: learning_to_simulate/learned_simulator.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Full model implementation accompanying ICML 2020 submission. "Learning to Simulate Complex Physics with Graph Networks" Alvaro Sanchez-Gonzalez*, Jonathan Godwin*, Tobias Pfaff*, Rex Ying, Jure Leskovec, Peter W. Battaglia https://arxiv.org/abs/2002.09405 """ import graph_nets as gn import sonnet as snt import tensorflow.compat.v1 as tf from learning_to_simulate import connectivity_utils from learning_to_simulate import graph_network STD_EPSILON = 1e-8 class LearnedSimulator(snt.AbstractModule): """Learned simulator from https://arxiv.org/pdf/2002.09405.pdf.""" def __init__( self, num_dimensions, connectivity_radius, graph_network_kwargs, boundaries, normalization_stats, num_particle_types, particle_type_embedding_size, name="LearnedSimulator"): """Inits the model. Args: num_dimensions: Dimensionality of the problem. connectivity_radius: Scalar with the radius of connectivity. graph_network_kwargs: Keyword arguments to pass to the learned part of the graph network `model.EncodeProcessDecode`. boundaries: List of 2-tuples, containing the lower and upper boundaries of the cuboid containing the particles along each dimensions, matching the dimensionality of the problem. normalization_stats: Dictionary with statistics with keys "acceleration" and "velocity", containing a named tuple for each with mean and std fields, matching the dimensionality of the problem. num_particle_types: Number of different particle types. particle_type_embedding_size: Embedding size for the particle type. name: Name of the Sonnet module. """ super().__init__(name=name) self._connectivity_radius = connectivity_radius self._num_particle_types = num_particle_types self._boundaries = boundaries self._normalization_stats = normalization_stats with self._enter_variable_scope(): self._graph_network = graph_network.EncodeProcessDecode( output_size=num_dimensions, **graph_network_kwargs) if self._num_particle_types > 1: self._particle_type_embedding = tf.get_variable( "particle_embedding", [self._num_particle_types, particle_type_embedding_size], trainable=True, use_resource=True) def _build(self, position_sequence, n_particles_per_example, global_context=None, particle_types=None): """Produces a model step, outputting the next position for each particle. Args: position_sequence: Sequence of positions for each node in the batch, with shape [num_particles_in_batch, sequence_length, num_dimensions] n_particles_per_example: Number of particles for each graph in the batch with shape [batch_size] global_context: Tensor of shape [batch_size, context_size], with global context. particle_types: Integer tensor of shape [num_particles_in_batch] with the integer types of the particles, from 0 to `num_particle_types - 1`. If None, we assume all particles are the same type. Returns: Next position with shape [num_particles_in_batch, num_dimensions] for one step into the future from the input sequence. """ input_graphs_tuple = self._encoder_preprocessor( position_sequence, n_particles_per_example, global_context, particle_types) normalized_acceleration = self._graph_network(input_graphs_tuple) next_position = self._decoder_postprocessor( normalized_acceleration, position_sequence) return next_position def _encoder_preprocessor( self, position_sequence, n_node, global_context, particle_types): # Extract important features from the position_sequence. most_recent_position = position_sequence[:, -1] velocity_sequence = time_diff(position_sequence) # Finite-difference. # Get connectivity of the graph. (senders, receivers, n_edge ) = connectivity_utils.compute_connectivity_for_batch_pyfunc( most_recent_position, n_node, self._connectivity_radius) # Collect node features. node_features = [] # Normalized velocity sequence, merging spatial an time axis. velocity_stats = self._normalization_stats["velocity"] normalized_velocity_sequence = ( velocity_sequence - velocity_stats.mean) / velocity_stats.std flat_velocity_sequence = snt.MergeDims(start=1, size=2)( normalized_velocity_sequence) node_features.append(flat_velocity_sequence) # Normalized clipped distances to lower and upper boundaries. # boundaries are an array of shape [num_dimensions, 2], where the second # axis, provides the lower/upper boundaries. boundaries = tf.constant(self._boundaries, dtype=tf.float32) distance_to_lower_boundary = ( most_recent_position - tf.expand_dims(boundaries[:, 0], 0)) distance_to_upper_boundary = ( tf.expand_dims(boundaries[:, 1], 0) - most_recent_position) distance_to_boundaries = tf.concat( [distance_to_lower_boundary, distance_to_upper_boundary], axis=1) normalized_clipped_distance_to_boundaries = tf.clip_by_value( distance_to_boundaries / self._connectivity_radius, -1., 1.) node_features.append(normalized_clipped_distance_to_boundaries) # Particle type. if self._num_particle_types > 1: particle_type_embeddings = tf.nn.embedding_lookup( self._particle_type_embedding, particle_types) node_features.append(particle_type_embeddings) # Collect edge features. edge_features = [] # Relative displacement and distances normalized to radius normalized_relative_displacements = ( tf.gather(most_recent_position, senders) - tf.gather(most_recent_position, receivers)) / self._connectivity_radius edge_features.append(normalized_relative_displacements) normalized_relative_distances = tf.norm( normalized_relative_displacements, axis=-1, keepdims=True) edge_features.append(normalized_relative_distances) # Normalize the global context. if global_context is not None: context_stats = self._normalization_stats["context"] # Context in some datasets are all zero, so add an epsilon for numerical # stability. global_context = (global_context - context_stats.mean) / tf.math.maximum( context_stats.std, STD_EPSILON) return gn.graphs.GraphsTuple( nodes=tf.concat(node_features, axis=-1), edges=tf.concat(edge_features, axis=-1), globals=global_context, # self._graph_net will appending this to nodes. n_node=n_node, n_edge=n_edge, senders=senders, receivers=receivers, ) def _decoder_postprocessor(self, normalized_acceleration, position_sequence): # The model produces the output in normalized space so we apply inverse # normalization. acceleration_stats = self._normalization_stats["acceleration"] acceleration = ( normalized_acceleration * acceleration_stats.std ) + acceleration_stats.mean # Use an Euler integrator to go from acceleration to position, assuming # a dt=1 corresponding to the size of the finite difference. most_recent_position = position_sequence[:, -1] most_recent_velocity = most_recent_position - position_sequence[:, -2] new_velocity = most_recent_velocity + acceleration # * dt = 1 new_position = most_recent_position + new_velocity # * dt = 1 return new_position def get_predicted_and_target_normalized_accelerations( self, next_position, position_sequence_noise, position_sequence, n_particles_per_example, global_context=None, particle_types=None): # pylint: disable=g-doc-args """Produces normalized and predicted acceleration targets. Args: next_position: Tensor of shape [num_particles_in_batch, num_dimensions] with the positions the model should output given the inputs. position_sequence_noise: Tensor of the same shape as `position_sequence` with the noise to apply to each particle. position_sequence, n_node, global_context, particle_types: Inputs to the model as defined by `_build`. Returns: Tensors of shape [num_particles_in_batch, num_dimensions] with the predicted and target normalized accelerations. """ # Add noise to the input position sequence. noisy_position_sequence = position_sequence + position_sequence_noise # Perform the forward pass with the noisy position sequence. input_graphs_tuple = self._encoder_preprocessor( noisy_position_sequence, n_particles_per_example, global_context, particle_types) predicted_normalized_acceleration = self._graph_network(input_graphs_tuple) # Calculate the target acceleration, using an `adjusted_next_position `that # is shifted by the noise in the last input position. next_position_adjusted = next_position + position_sequence_noise[:, -1] target_normalized_acceleration = self._inverse_decoder_postprocessor( next_position_adjusted, noisy_position_sequence) # As a result the inverted Euler update in the `_inverse_decoder` produces: # * A target acceleration that does not explicitly correct for the noise in # the input positions, as the `next_position_adjusted` is different # from the true `next_position`. # * A target acceleration that exactly corrects noise in the input velocity # since the target next velocity calculated by the inverse Euler update # as `next_position_adjusted - noisy_position_sequence[:,-1]` # matches the ground truth next velocity (noise cancels out). return predicted_normalized_acceleration, target_normalized_acceleration def _inverse_decoder_postprocessor(self, next_position, position_sequence): """Inverse of `_decoder_postprocessor`.""" previous_position = position_sequence[:, -1] previous_velocity = previous_position - position_sequence[:, -2] next_velocity = next_position - previous_position acceleration = next_velocity - previous_velocity acceleration_stats = self._normalization_stats["acceleration"] normalized_acceleration = ( acceleration - acceleration_stats.mean) / acceleration_stats.std return normalized_acceleration def time_diff(input_sequence): return input_sequence[:, 1:] - input_sequence[:, :-1] ================================================ FILE: learning_to_simulate/model_demo.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Example script accompanying ICML 2020 submission. "Learning to Simulate Complex Physics with Graph Networks" Alvaro Sanchez-Gonzalez*, Jonathan Godwin*, Tobias Pfaff*, Rex Ying, Jure Leskovec, Peter W. Battaglia https://arxiv.org/abs/2002.09405 Here we provide the utility function `sample_random_position_sequence()` which returns a sequence of positions for a variable number of particles, similar to what a real dataset would provide, and connect the model to it, in both, single step inference and training mode. Dependencies include Tensorflow 1.x, Sonnet 1.x and the Graph Nets 1.1 library. """ import collections from learning_to_simulate import learned_simulator from learning_to_simulate import noise_utils import numpy as np import tensorflow.compat.v1 as tf INPUT_SEQUENCE_LENGTH = 6 SEQUENCE_LENGTH = INPUT_SEQUENCE_LENGTH + 1 # add one target position. NUM_DIMENSIONS = 3 NUM_PARTICLE_TYPES = 6 BATCH_SIZE = 5 GLOBAL_CONTEXT_SIZE = 6 Stats = collections.namedtuple("Stats", ["mean", "std"]) DUMMY_STATS = Stats( mean=np.zeros([NUM_DIMENSIONS], dtype=np.float32), std=np.ones([NUM_DIMENSIONS], dtype=np.float32)) DUMMY_CONTEXT_STATS = Stats( mean=np.zeros([GLOBAL_CONTEXT_SIZE], dtype=np.float32), std=np.ones([GLOBAL_CONTEXT_SIZE], dtype=np.float32)) DUMMY_BOUNDARIES = [(-1., 1.)] * NUM_DIMENSIONS def sample_random_position_sequence(): """Returns mock data mimicking the input features collected by the encoder.""" num_particles = tf.random_uniform( shape=(), minval=50, maxval=1000, dtype=tf.int32) position_sequence = tf.random.normal( shape=[num_particles, SEQUENCE_LENGTH, NUM_DIMENSIONS]) return position_sequence def main(): # Build the model. learnable_model = learned_simulator.LearnedSimulator( num_dimensions=NUM_DIMENSIONS, connectivity_radius=0.05, graph_network_kwargs=dict( latent_size=128, mlp_hidden_size=128, mlp_num_hidden_layers=2, num_message_passing_steps=10, ), boundaries=DUMMY_BOUNDARIES, normalization_stats={"acceleration": DUMMY_STATS, "velocity": DUMMY_STATS, "context": DUMMY_CONTEXT_STATS,}, num_particle_types=NUM_PARTICLE_TYPES, particle_type_embedding_size=16, ) # Sample a batch of particle sequences with shape: # [TOTAL_NUM_PARTICLES, SEQUENCE_LENGTH, NUM_DIMENSIONS] sampled_position_sequences = [ sample_random_position_sequence() for _ in range(BATCH_SIZE)] position_sequence_batch = tf.concat(sampled_position_sequences, axis=0) # Count how many particles are present in each element in the batch. # [BATCH_SIZE] n_particles_per_example = tf.stack( [tf.shape(seq)[0] for seq in sampled_position_sequences], axis=0) # Sample particle types. # [TOTAL_NUM_PARTICLES] particle_types = tf.random_uniform( [tf.shape(position_sequence_batch)[0]], 0, NUM_PARTICLE_TYPES, dtype=tf.int32) # Sample global context. global_context = tf.random_uniform( [BATCH_SIZE, GLOBAL_CONTEXT_SIZE], -1., 1., dtype=tf.float32) # Separate input sequence from target sequence. # [TOTAL_NUM_PARTICLES, INPUT_SEQUENCE_LENGTH, NUM_DIMENSIONS] input_position_sequence = position_sequence_batch[:, :-1] # [TOTAL_NUM_PARTICLES, NUM_DIMENSIONS] target_next_position = position_sequence_batch[:, -1] # Single step of inference with the model to predict next position for each # particle [TOTAL_NUM_PARTICLES, NUM_DIMENSIONS]. predicted_next_position = learnable_model( input_position_sequence, n_particles_per_example, global_context, particle_types) print(f"Per-particle output tensor: {predicted_next_position}") # Obtaining predicted and target normalized accelerations for training. position_sequence_noise = ( noise_utils.get_random_walk_noise_for_position_sequence( input_position_sequence, noise_std_last_step=6.7e-4)) # Both with shape [TOTAL_NUM_PARTICLES, NUM_DIMENSIONS] predicted_normalized_acceleration, target_normalized_acceleration = ( learnable_model.get_predicted_and_target_normalized_accelerations( target_next_position, position_sequence_noise, input_position_sequence, n_particles_per_example, global_context, particle_types)) print(f"Predicted norm. acceleration: {predicted_normalized_acceleration}") print(f"Target norm. acceleration: {target_normalized_acceleration}") with tf.train.SingularMonitoredSession() as sess: sess.run([predicted_next_position, predicted_normalized_acceleration, target_normalized_acceleration]) if __name__ == "__main__": tf.disable_v2_behavior() main() ================================================ FILE: learning_to_simulate/noise_utils.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Methods to calculate input noise.""" import tensorflow.compat.v1 as tf from learning_to_simulate import learned_simulator def get_random_walk_noise_for_position_sequence( position_sequence, noise_std_last_step): """Returns random-walk noise in the velocity applied to the position.""" velocity_sequence = learned_simulator.time_diff(position_sequence) # We want the noise scale in the velocity at the last step to be fixed. # Because we are going to compose noise at each step using a random_walk: # std_last_step**2 = num_velocities * std_each_step**2 # so to keep `std_last_step` fixed, we apply at each step: # std_each_step `std_last_step / np.sqrt(num_input_velocities)` # TODO(alvarosg): Make sure this is consistent with the value and # description provided in the paper. num_velocities = velocity_sequence.shape.as_list()[1] velocity_sequence_noise = tf.random.normal( tf.shape(velocity_sequence), stddev=noise_std_last_step / num_velocities ** 0.5, dtype=position_sequence.dtype) # Apply the random walk. velocity_sequence_noise = tf.cumsum(velocity_sequence_noise, axis=1) # Integrate the noise in the velocity to the positions, assuming # an Euler intergrator and a dt = 1, and adding no noise to the very first # position (since that will only be used to calculate the first position # change). position_sequence_noise = tf.concat([ tf.zeros_like(velocity_sequence_noise[:, 0:1]), tf.cumsum(velocity_sequence_noise, axis=1)], axis=1) return position_sequence_noise ================================================ FILE: learning_to_simulate/reading_utils.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Utilities for reading open sourced Learning Complex Physics data.""" import functools import numpy as np import tensorflow.compat.v1 as tf # Create a description of the features. _FEATURE_DESCRIPTION = { 'position': tf.io.VarLenFeature(tf.string), } _FEATURE_DESCRIPTION_WITH_GLOBAL_CONTEXT = _FEATURE_DESCRIPTION.copy() _FEATURE_DESCRIPTION_WITH_GLOBAL_CONTEXT['step_context'] = tf.io.VarLenFeature( tf.string) _FEATURE_DTYPES = { 'position': { 'in': np.float32, 'out': tf.float32 }, 'step_context': { 'in': np.float32, 'out': tf.float32 } } _CONTEXT_FEATURES = { 'key': tf.io.FixedLenFeature([], tf.int64, default_value=0), 'particle_type': tf.io.VarLenFeature(tf.string) } def convert_to_tensor(x, encoded_dtype): if len(x) == 1: out = np.frombuffer(x[0].numpy(), dtype=encoded_dtype) else: out = [] for el in x: out.append(np.frombuffer(el.numpy(), dtype=encoded_dtype)) out = tf.convert_to_tensor(np.array(out)) return out def parse_serialized_simulation_example(example_proto, metadata): """Parses a serialized simulation tf.SequenceExample. Args: example_proto: A string encoding of the tf.SequenceExample proto. metadata: A dict of metadata for the dataset. Returns: context: A dict, with features that do not vary over the trajectory. parsed_features: A dict of tf.Tensors representing the parsed examples across time, where axis zero is the time axis. """ if 'context_mean' in metadata: feature_description = _FEATURE_DESCRIPTION_WITH_GLOBAL_CONTEXT else: feature_description = _FEATURE_DESCRIPTION context, parsed_features = tf.io.parse_single_sequence_example( example_proto, context_features=_CONTEXT_FEATURES, sequence_features=feature_description) for feature_key, item in parsed_features.items(): convert_fn = functools.partial( convert_to_tensor, encoded_dtype=_FEATURE_DTYPES[feature_key]['in']) parsed_features[feature_key] = tf.py_function( convert_fn, inp=[item.values], Tout=_FEATURE_DTYPES[feature_key]['out']) # There is an extra frame at the beginning so we can calculate pos change # for all frames used in the paper. position_shape = [metadata['sequence_length'] + 1, -1, metadata['dim']] # Reshape positions to correct dim: parsed_features['position'] = tf.reshape(parsed_features['position'], position_shape) # Set correct shapes of the remaining tensors. sequence_length = metadata['sequence_length'] + 1 if 'context_mean' in metadata: context_feat_len = len(metadata['context_mean']) parsed_features['step_context'] = tf.reshape( parsed_features['step_context'], [sequence_length, context_feat_len]) # Decode particle type explicitly context['particle_type'] = tf.py_function( functools.partial(convert_fn, encoded_dtype=np.int64), inp=[context['particle_type'].values], Tout=[tf.int64]) context['particle_type'] = tf.reshape(context['particle_type'], [-1]) return context, parsed_features def split_trajectory(context, features, window_length=7): """Splits trajectory into sliding windows.""" # Our strategy is to make sure all the leading dimensions are the same size, # then we can use from_tensor_slices. trajectory_length = features['position'].get_shape().as_list()[0] # We then stack window_length position changes so the final # trajectory length will be - window_length +1 (the 1 to make sure we get # the last split). input_trajectory_length = trajectory_length - window_length + 1 model_input_features = {} # Prepare the context features per step. model_input_features['particle_type'] = tf.tile( tf.expand_dims(context['particle_type'], axis=0), [input_trajectory_length, 1]) if 'step_context' in features: global_stack = [] for idx in range(input_trajectory_length): global_stack.append(features['step_context'][idx:idx + window_length]) model_input_features['step_context'] = tf.stack(global_stack) pos_stack = [] for idx in range(input_trajectory_length): pos_stack.append(features['position'][idx:idx + window_length]) # Get the corresponding positions model_input_features['position'] = tf.stack(pos_stack) return tf.data.Dataset.from_tensor_slices(model_input_features) ================================================ FILE: learning_to_simulate/render_rollout.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Simple matplotlib rendering of a rollout prediction against ground truth. Usage (from parent directory): `python -m learning_to_simulate.render_rollout --rollout_path={OUTPUT_PATH}/rollout_test_1.pkl` Where {OUTPUT_PATH} is the output path passed to `train.py` in "eval_rollout" mode. It may require installing Tkinter with `sudo apt-get install python3.7-tk`. """ # pylint: disable=line-too-long import pickle from absl import app from absl import flags from matplotlib import animation import matplotlib.pyplot as plt import numpy as np flags.DEFINE_string("rollout_path", None, help="Path to rollout pickle file") flags.DEFINE_integer("step_stride", 3, help="Stride of steps to skip.") flags.DEFINE_boolean("block_on_show", True, help="For test purposes.") FLAGS = flags.FLAGS TYPE_TO_COLOR = { 3: "black", # Boundary particles. 0: "green", # Rigid solids. 7: "magenta", # Goop. 6: "gold", # Sand. 5: "blue", # Water. } def main(unused_argv): if not FLAGS.rollout_path: raise ValueError("A `rollout_path` must be passed.") with open(FLAGS.rollout_path, "rb") as file: rollout_data = pickle.load(file) fig, axes = plt.subplots(1, 2, figsize=(10, 5)) plot_info = [] for ax_i, (label, rollout_field) in enumerate( [("Ground truth", "ground_truth_rollout"), ("Prediction", "predicted_rollout")]): # Append the initial positions to get the full trajectory. trajectory = np.concatenate([ rollout_data["initial_positions"], rollout_data[rollout_field]], axis=0) ax = axes[ax_i] ax.set_title(label) bounds = rollout_data["metadata"]["bounds"] ax.set_xlim(bounds[0][0], bounds[0][1]) ax.set_ylim(bounds[1][0], bounds[1][1]) ax.set_xticks([]) ax.set_yticks([]) ax.set_aspect(1.) points = { particle_type: ax.plot([], [], "o", ms=2, color=color)[0] for particle_type, color in TYPE_TO_COLOR.items()} plot_info.append((ax, trajectory, points)) num_steps = trajectory.shape[0] def update(step_i): outputs = [] for _, trajectory, points in plot_info: for particle_type, line in points.items(): mask = rollout_data["particle_types"] == particle_type line.set_data(trajectory[step_i, mask, 0], trajectory[step_i, mask, 1]) outputs.append(line) return outputs unused_animation = animation.FuncAnimation( fig, update, frames=np.arange(0, num_steps, FLAGS.step_stride), interval=10) plt.show(block=FLAGS.block_on_show) if __name__ == "__main__": app.run(main) ================================================ FILE: learning_to_simulate/requirements.txt ================================================ absl-py graph-nets>=1.1 tensorflow>=1.15,<2 numpy dm-sonnet<2 tensorflow_probability<0.9 sklearn dm-tree matplotlib ================================================ FILE: learning_to_simulate/run.sh ================================================ #!/bin/bash # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Fail on any error. set -e # Display commands being run. set -x TMP_DIR=`mktemp -d` virtualenv --python=python3.6 "${TMP_DIR}/learning_to_simulate" source "${TMP_DIR}/learning_to_simulate/bin/activate" # Install dependencies. pip install --upgrade -r learning_to_simulate/requirements.txt # Run the simple demo with dummy inputs. python -m learning_to_simulate.model_demo # Run some training and evaluation in one of the dataset samples. # Download a sample of a dataset. DATASET_NAME="WaterDropSample" bash ./learning_to_simulate/download_dataset.sh ${DATASET_NAME} "${TMP_DIR}/datasets" # Train for a few steps. DATA_PATH="${TMP_DIR}/datasets/${DATASET_NAME}" MODEL_PATH="${TMP_DIR}/models/${DATASET_NAME}" python -m learning_to_simulate.train --data_path=${DATA_PATH} --model_path=${MODEL_PATH} --num_steps=10 # Evaluate on validation split. python -m learning_to_simulate.train --data_path=${DATA_PATH} --model_path=${MODEL_PATH} --mode="eval" --eval_split="valid" # Generate test rollouts. ROLLOUT_PATH="${TMP_DIR}/rollouts/${DATASET_NAME}" mkdir -p ${ROLLOUT_PATH} python -m learning_to_simulate.train --data_path=${DATA_PATH} --model_path=${MODEL_PATH} --mode="eval_rollout" --output_path=${ROLLOUT_PATH} # Plot the first rollout. python -m learning_to_simulate.render_rollout --rollout_path="${ROLLOUT_PATH}/rollout_test_0.pkl" --block_on_show=False # Clean up. rm -r ${TMP_DIR} ================================================ FILE: learning_to_simulate/train.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ # pylint: disable=line-too-long """Training script for https://arxiv.org/pdf/2002.09405.pdf. Example usage (from parent directory): `python -m learning_to_simulate.train --data_path={DATA_PATH} --model_path={MODEL_PATH}` Evaluate model from checkpoint (from parent directory): `python -m learning_to_simulate.train --data_path={DATA_PATH} --model_path={MODEL_PATH} --mode=eval` Produce rollouts (from parent directory): `python -m learning_to_simulate.train --data_path={DATA_PATH} --model_path={MODEL_PATH} --output_path={OUTPUT_PATH} --mode=eval_rollout` """ # pylint: enable=line-too-long import collections import functools import json import os import pickle from absl import app from absl import flags from absl import logging import numpy as np import tensorflow.compat.v1 as tf from tensorflow.compat.v1 import estimator as tf_estimator import tree from learning_to_simulate import learned_simulator from learning_to_simulate import noise_utils from learning_to_simulate import reading_utils flags.DEFINE_enum( 'mode', 'train', ['train', 'eval', 'eval_rollout'], help='Train model, one step evaluation or rollout evaluation.') flags.DEFINE_enum('eval_split', 'test', ['train', 'valid', 'test'], help='Split to use when running evaluation.') flags.DEFINE_string('data_path', None, help='The dataset directory.') flags.DEFINE_integer('batch_size', 2, help='The batch size.') flags.DEFINE_integer('num_steps', int(2e7), help='Number of steps of training.') flags.DEFINE_float('noise_std', 6.7e-4, help='The std deviation of the noise.') flags.DEFINE_string('model_path', None, help=('The path for saving checkpoints of the model. ' 'Defaults to a temporary directory.')) flags.DEFINE_string('output_path', None, help='The path for saving outputs (e.g. rollouts).') FLAGS = flags.FLAGS Stats = collections.namedtuple('Stats', ['mean', 'std']) INPUT_SEQUENCE_LENGTH = 6 # So we can calculate the last 5 velocities. NUM_PARTICLE_TYPES = 9 KINEMATIC_PARTICLE_ID = 3 def get_kinematic_mask(particle_types): """Returns a boolean mask, set to true for kinematic (obstacle) particles.""" return tf.equal(particle_types, KINEMATIC_PARTICLE_ID) def prepare_inputs(tensor_dict): """Prepares a single stack of inputs by calculating inputs and targets. Computes n_particles_per_example, which is a tensor that contains information about how to partition the axis - i.e. which nodes belong to which graph. Adds a batch axis to `n_particles_per_example` and `step_context` so they can later be batched using `batch_concat`. This batch will be the same as if the elements had been batched via stacking. Note that all other tensors have a variable size particle axis, and in this case they will simply be concatenated along that axis. Args: tensor_dict: A dict of tensors containing positions, and step context ( if available). Returns: A tuple of input features and target positions. """ # Position is encoded as [sequence_length, num_particles, dim] but the model # expects [num_particles, sequence_length, dim]. pos = tensor_dict['position'] pos = tf.transpose(pos, perm=[1, 0, 2]) # The target position is the final step of the stack of positions. target_position = pos[:, -1] # Remove the target from the input. tensor_dict['position'] = pos[:, :-1] # Compute the number of particles per example. num_particles = tf.shape(pos)[0] # Add an extra dimension for stacking via concat. tensor_dict['n_particles_per_example'] = num_particles[tf.newaxis] if 'step_context' in tensor_dict: # Take the input global context. We have a stack of global contexts, # and we take the penultimate since the final is the target. tensor_dict['step_context'] = tensor_dict['step_context'][-2] # Add an extra dimension for stacking via concat. tensor_dict['step_context'] = tensor_dict['step_context'][tf.newaxis] return tensor_dict, target_position def prepare_rollout_inputs(context, features): """Prepares an inputs trajectory for rollout.""" out_dict = {**context} # Position is encoded as [sequence_length, num_particles, dim] but the model # expects [num_particles, sequence_length, dim]. pos = tf.transpose(features['position'], [1, 0, 2]) # The target position is the final step of the stack of positions. target_position = pos[:, -1] # Remove the target from the input. out_dict['position'] = pos[:, :-1] # Compute the number of nodes out_dict['n_particles_per_example'] = [tf.shape(pos)[0]] if 'step_context' in features: out_dict['step_context'] = features['step_context'] out_dict['is_trajectory'] = tf.constant([True], tf.bool) return out_dict, target_position def batch_concat(dataset, batch_size): """We implement batching as concatenating on the leading axis.""" # We create a dataset of datasets of length batch_size. windowed_ds = dataset.window(batch_size) # The plan is then to reduce every nested dataset by concatenating. We can # do this using tf.data.Dataset.reduce. This requires an initial state, and # then incrementally reduces by running through the dataset # Get initial state. In this case this will be empty tensors of the # correct shape. initial_state = tree.map_structure( lambda spec: tf.zeros( # pylint: disable=g-long-lambda shape=[0] + spec.shape.as_list()[1:], dtype=spec.dtype), dataset.element_spec) # We run through the nest and concatenate each entry with the previous state. def reduce_window(initial_state, ds): return ds.reduce(initial_state, lambda x, y: tf.concat([x, y], axis=0)) return windowed_ds.map( lambda *x: tree.map_structure(reduce_window, initial_state, x)) def get_input_fn(data_path, batch_size, mode, split): """Gets the learning simulation input function for tf.estimator.Estimator. Args: data_path: the path to the dataset directory. batch_size: the number of graphs in a batch. mode: either 'one_step_train', 'one_step' or 'rollout' split: either 'train', 'valid' or 'test. Returns: The input function for the learning simulation model. """ def input_fn(): """Input function for learning simulation.""" # Loads the metadata of the dataset. metadata = _read_metadata(data_path) # Create a tf.data.Dataset from the TFRecord. ds = tf.data.TFRecordDataset([os.path.join(data_path, f'{split}.tfrecord')]) ds = ds.map(functools.partial( reading_utils.parse_serialized_simulation_example, metadata=metadata)) if mode.startswith('one_step'): # Splits an entire trajectory into chunks of 7 steps. # Previous 5 velocities, current velocity and target. split_with_window = functools.partial( reading_utils.split_trajectory, window_length=INPUT_SEQUENCE_LENGTH + 1) ds = ds.flat_map(split_with_window) # Splits a chunk into input steps and target steps ds = ds.map(prepare_inputs) # If in train mode, repeat dataset forever and shuffle. if mode == 'one_step_train': ds = ds.repeat() ds = ds.shuffle(512) # Custom batching on the leading axis. ds = batch_concat(ds, batch_size) elif mode == 'rollout': # Rollout evaluation only available for batch size 1 assert batch_size == 1 ds = ds.map(prepare_rollout_inputs) else: raise ValueError(f'mode: {mode} not recognized') return ds return input_fn def rollout(simulator, features, num_steps): """Rolls out a trajectory by applying the model in sequence.""" initial_positions = features['position'][:, 0:INPUT_SEQUENCE_LENGTH] ground_truth_positions = features['position'][:, INPUT_SEQUENCE_LENGTH:] global_context = features.get('step_context') def step_fn(step, current_positions, predictions): if global_context is None: global_context_step = None else: global_context_step = global_context[ step + INPUT_SEQUENCE_LENGTH - 1][tf.newaxis] next_position = simulator( current_positions, n_particles_per_example=features['n_particles_per_example'], particle_types=features['particle_type'], global_context=global_context_step) # Update kinematic particles from prescribed trajectory. kinematic_mask = get_kinematic_mask(features['particle_type']) next_position_ground_truth = ground_truth_positions[:, step] next_position = tf.where(kinematic_mask, next_position_ground_truth, next_position) updated_predictions = predictions.write(step, next_position) # Shift `current_positions`, removing the oldest position in the sequence # and appending the next position at the end. next_positions = tf.concat([current_positions[:, 1:], next_position[:, tf.newaxis]], axis=1) return (step + 1, next_positions, updated_predictions) predictions = tf.TensorArray(size=num_steps, dtype=tf.float32) _, _, predictions = tf.while_loop( cond=lambda step, state, prediction: tf.less(step, num_steps), body=step_fn, loop_vars=(0, initial_positions, predictions), back_prop=False, parallel_iterations=1) output_dict = { 'initial_positions': tf.transpose(initial_positions, [1, 0, 2]), 'predicted_rollout': predictions.stack(), 'ground_truth_rollout': tf.transpose(ground_truth_positions, [1, 0, 2]), 'particle_types': features['particle_type'], } if global_context is not None: output_dict['global_context'] = global_context return output_dict def _combine_std(std_x, std_y): return np.sqrt(std_x**2 + std_y**2) def _get_simulator(model_kwargs, metadata, acc_noise_std, vel_noise_std): """Instantiates the simulator.""" # Cast statistics to numpy so they are arrays when entering the model. cast = lambda v: np.array(v, dtype=np.float32) acceleration_stats = Stats( cast(metadata['acc_mean']), _combine_std(cast(metadata['acc_std']), acc_noise_std)) velocity_stats = Stats( cast(metadata['vel_mean']), _combine_std(cast(metadata['vel_std']), vel_noise_std)) normalization_stats = {'acceleration': acceleration_stats, 'velocity': velocity_stats} if 'context_mean' in metadata: context_stats = Stats( cast(metadata['context_mean']), cast(metadata['context_std'])) normalization_stats['context'] = context_stats simulator = learned_simulator.LearnedSimulator( num_dimensions=metadata['dim'], connectivity_radius=metadata['default_connectivity_radius'], graph_network_kwargs=model_kwargs, boundaries=metadata['bounds'], num_particle_types=NUM_PARTICLE_TYPES, normalization_stats=normalization_stats, particle_type_embedding_size=16) return simulator def get_one_step_estimator_fn(data_path, noise_std, latent_size=128, hidden_size=128, hidden_layers=2, message_passing_steps=10): """Gets one step model for training simulation.""" metadata = _read_metadata(data_path) model_kwargs = dict( latent_size=latent_size, mlp_hidden_size=hidden_size, mlp_num_hidden_layers=hidden_layers, num_message_passing_steps=message_passing_steps) def estimator_fn(features, labels, mode): target_next_position = labels simulator = _get_simulator(model_kwargs, metadata, vel_noise_std=noise_std, acc_noise_std=noise_std) # Sample the noise to add to the inputs to the model during training. sampled_noise = noise_utils.get_random_walk_noise_for_position_sequence( features['position'], noise_std_last_step=noise_std) non_kinematic_mask = tf.logical_not( get_kinematic_mask(features['particle_type'])) noise_mask = tf.cast( non_kinematic_mask, sampled_noise.dtype)[:, tf.newaxis, tf.newaxis] sampled_noise *= noise_mask # Get the predictions and target accelerations. pred_target = simulator.get_predicted_and_target_normalized_accelerations( next_position=target_next_position, position_sequence=features['position'], position_sequence_noise=sampled_noise, n_particles_per_example=features['n_particles_per_example'], particle_types=features['particle_type'], global_context=features.get('step_context')) pred_acceleration, target_acceleration = pred_target # Calculate the loss and mask out loss on kinematic particles/ loss = (pred_acceleration - target_acceleration)**2 num_non_kinematic = tf.reduce_sum( tf.cast(non_kinematic_mask, tf.float32)) loss = tf.where(non_kinematic_mask, loss, tf.zeros_like(loss)) loss = tf.reduce_sum(loss) / tf.reduce_sum(num_non_kinematic) global_step = tf.train.get_global_step() # Set learning rate to decay from 1e-4 to 1e-6 exponentially. min_lr = 1e-6 lr = tf.train.exponential_decay(learning_rate=1e-4 - min_lr, global_step=global_step, decay_steps=int(5e6), decay_rate=0.1) + min_lr opt = tf.train.AdamOptimizer(learning_rate=lr) train_op = opt.minimize(loss, global_step) # Calculate next position and add some additional eval metrics (only eval). predicted_next_position = simulator( position_sequence=features['position'], n_particles_per_example=features['n_particles_per_example'], particle_types=features['particle_type'], global_context=features.get('step_context')) predictions = {'predicted_next_position': predicted_next_position} eval_metrics_ops = { 'loss_mse': tf.metrics.mean_squared_error( pred_acceleration, target_acceleration), 'one_step_position_mse': tf.metrics.mean_squared_error( predicted_next_position, target_next_position) } return tf_estimator.EstimatorSpec( mode=mode, train_op=train_op, loss=loss, predictions=predictions, eval_metric_ops=eval_metrics_ops) return estimator_fn def get_rollout_estimator_fn(data_path, noise_std, latent_size=128, hidden_size=128, hidden_layers=2, message_passing_steps=10): """Gets the model function for tf.estimator.Estimator.""" metadata = _read_metadata(data_path) model_kwargs = dict( latent_size=latent_size, mlp_hidden_size=hidden_size, mlp_num_hidden_layers=hidden_layers, num_message_passing_steps=message_passing_steps) def estimator_fn(features, labels, mode): del labels # Labels to conform to estimator spec. simulator = _get_simulator(model_kwargs, metadata, acc_noise_std=noise_std, vel_noise_std=noise_std) num_steps = metadata['sequence_length'] - INPUT_SEQUENCE_LENGTH rollout_op = rollout(simulator, features, num_steps=num_steps) squared_error = (rollout_op['predicted_rollout'] - rollout_op['ground_truth_rollout']) ** 2 loss = tf.reduce_mean(squared_error) eval_ops = {'rollout_error_mse': tf.metrics.mean_squared_error( rollout_op['predicted_rollout'], rollout_op['ground_truth_rollout'])} # Add a leading axis, since Estimator's predict method insists that all # tensors have a shared leading batch axis fo the same dims. rollout_op = tree.map_structure(lambda x: x[tf.newaxis], rollout_op) return tf_estimator.EstimatorSpec( mode=mode, train_op=None, loss=loss, predictions=rollout_op, eval_metric_ops=eval_ops) return estimator_fn def _read_metadata(data_path): with open(os.path.join(data_path, 'metadata.json'), 'rt') as fp: return json.loads(fp.read()) def main(_): """Train or evaluates the model.""" if FLAGS.mode in ['train', 'eval']: estimator = tf_estimator.Estimator( get_one_step_estimator_fn(FLAGS.data_path, FLAGS.noise_std), model_dir=FLAGS.model_path) if FLAGS.mode == 'train': # Train all the way through. estimator.train( input_fn=get_input_fn(FLAGS.data_path, FLAGS.batch_size, mode='one_step_train', split='train'), max_steps=FLAGS.num_steps) else: # One-step evaluation from checkpoint. eval_metrics = estimator.evaluate(input_fn=get_input_fn( FLAGS.data_path, FLAGS.batch_size, mode='one_step', split=FLAGS.eval_split)) logging.info('Evaluation metrics:') logging.info(eval_metrics) elif FLAGS.mode == 'eval_rollout': if not FLAGS.output_path: raise ValueError('A rollout path must be provided.') rollout_estimator = tf_estimator.Estimator( get_rollout_estimator_fn(FLAGS.data_path, FLAGS.noise_std), model_dir=FLAGS.model_path) # Iterate through rollouts saving them one by one. metadata = _read_metadata(FLAGS.data_path) rollout_iterator = rollout_estimator.predict( input_fn=get_input_fn(FLAGS.data_path, batch_size=1, mode='rollout', split=FLAGS.eval_split)) for example_index, example_rollout in enumerate(rollout_iterator): example_rollout['metadata'] = metadata filename = f'rollout_{FLAGS.eval_split}_{example_index}.pkl' filename = os.path.join(FLAGS.output_path, filename) logging.info('Saving: %s.', filename) if not os.path.exists(FLAGS.output_path): os.mkdir(FLAGS.output_path) with open(filename, 'wb') as file: pickle.dump(example_rollout, file) if __name__ == '__main__': tf.disable_v2_behavior() app.run(main) ================================================ FILE: memo/README.md ================================================ # MEMO: A Deep Network For Flexible Combination Of Episodic Memories. This package contains a [Colaboratory notebook](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/memo/load_memo_data.ipynb) that loads a version of the dataset for the Paired associative inference task (length 3 and 4) presented in the ICLR 2020 submission (also on [arXiv](https://arxiv.org/abs/2001.10913)). If you use the dataset, please cite: ``` @inproceedings{ banino2020memo:, title={MEMO: A Deep Network for Flexible Combination of Episodic Memories}, author={Andrea Banino and Adrià Puigdomènech Badia and Raphael Köster and Martin J. Chadwick and Vinicius Zambaldi and Demis Hassabis and Caswell Barry and Matthew Botvinick and Dharshan Kumaran and Charles Blundell}, booktitle={International Conference on Learning Representations}, year={2020}, url={https://openreview.net/forum?id=rJxlc0EtDr} } ``` ================================================ FILE: memo/load_memo_data.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mP9QIqyCf6G4" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ng3jUYyQgSjB" }, "source": [ "# The dataset used for the Paired associate inference task\n", "\n", "This is the dataset used for the paired associated inference task in\n", "[\"MEMO: A Deep Network for Flexible Combination of Episodic Memories\n", "\"](https://arxiv.org/abs/2001.10913)." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "2Nd8cdyccWld" }, "outputs": [], "source": [ "from __future__ import absolute_import\n", "from __future__ import division\n", "from __future__ import print_function\n", "\n", "import numpy as np\n", "\n", "import tensorflow as tf\n", "import collections\n", "import os\n", "\n", "from google.colab import auth\n", "auth.authenticate_user()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "GP0u6GCUF_6R" }, "outputs": [], "source": [ "#@title Choices about the dataset you want to load.\n", "# Make choices about the dataset here.\n", "chain_length = 3 #@param {type:\"slider\", min:3, max:4, step:1}\n", "mode = 'valid' #@param ['train', 'test', 'valid']" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "JUWNNIwziHyC" }, "source": [ "**If you choose chain_length 3 the data will look like this:**\n", "\n", "* trials shape: (48, 3, 1000); 48 trials x the target picture, left and right option x picture dimensions.\n", "* correct answer: (48); whether the left or right picture is correct.\n", "* difficulty (48); How far apart are the target picture and the two options.(e.g. AB are 0 steps apart, AC is 1)\n", "* trial type (48); See below.\n", "* memory shape (32, 2, 1000); Content of memory store, 32 pairs of images.\n", "\n", "Trial types:\n", "* 1: AB\n", "* 2: BC\n", "* 3: AC\n", "\n", "\n", "**If you choose chain_length 4 the data will look like this:**\n", "* trials: (96, 3, 1000)\n", "* correct answer: (96)\n", "* difficulty: (96)\n", "* trial type: (96)\n", "* memory shape: (48, 2, 1000)\n", "\n", "Trial types:\n", "* 1: AB\n", "* 2: BC\n", "* 3: AC\n", "* 4: CD\n", "* 5: BD\n", "* 6: AD" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "0QETPFeEgr5d" }, "outputs": [], "source": [ "# Train has 500 shards, valid 150, test 100.\n", "if mode == 'train':\n", " num_shards = 500\n", "elif mode == 'test':\n", " num_shards = 100\n", "elif mode == 'valid':\n", " num_shards = 150" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "jE3_9k8DOMyZ" }, "outputs": [], "source": [ "DatasetInfo = collections.namedtuple(\n", " 'DatasetInfo',\n", " ['basepath', 'size', 'chain_length']\n", ")\n", "\n", "_DATASETS = dict(\n", " memo=DatasetInfo(\n", " basepath=mode,\n", " size=num_shards,\n", " chain_length=chain_length)\n", ")" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "N3D11lxl3kjF" }, "outputs": [], "source": [ "def _get_dataset_files(dataset_info, root):\n", " \"\"\"Generates lists of files for a given dataset version.\"\"\"\n", " basepath = dataset_info.basepath\n", " base = os.path.join(root, basepath)\n", " num_files = dataset_info.size\n", " length = len(str(num_files))\n", " template = 'trials-{:0%d}-of-{:0%d}' % (5, 5)\n", " return [os.path.join(base, template.format(i, num_files))\n", " for i in range(num_files)]" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "6yqLJYAnsyZF" }, "outputs": [], "source": [ "def parser_tf_examples(raw_data, chain_length=chain_length):\n", " if chain_length == 3:\n", " feature_map = {\n", " 'trials' : tf.io.FixedLenFeature(\n", " shape=[48, 3, 1000],\n", " dtype=tf.float32),\n", " 'correct_answer': tf.io.FixedLenFeature(\n", " shape=[48],\n", " dtype=tf.int64),\n", " 'difficulty': tf.io.FixedLenFeature(\n", " shape=[48],\n", " dtype=tf.int64),\n", " 'trial_type': tf.io.FixedLenFeature(\n", " shape=[48],\n", " dtype=tf.int64),\n", " 'memory': tf.io.FixedLenFeature(\n", " shape=[32, 2, 1000],\n", " dtype=tf.float32),\n", " }\n", " elif chain_length == 4: \n", " feature_map = {\n", " 'trials' : tf.io.FixedLenFeature(\n", " shape=[96, 3, 1000],\n", " dtype=tf.float32),\n", " 'correct_answer': tf.io.FixedLenFeature(\n", " shape=[96],\n", " dtype=tf.int64),\n", " 'difficulty': tf.io.FixedLenFeature(\n", " shape=[96],\n", " dtype=tf.int64),\n", " 'trial_type': tf.io.FixedLenFeature(\n", " shape=[96],\n", " dtype=tf.int64),\n", " 'memory': tf.io.FixedLenFeature(\n", " shape=[48, 2, 1000],\n", " dtype=tf.float32),\n", " }\n", " example = tf.io.parse_example(raw_data, feature_map)\n", " batch = [example[\"trials\"],\n", " example[\"correct_answer\"],\n", " example[\"difficulty\"],\n", " example[\"trial_type\"],\n", " example[\"memory\"]]\n", " return batch" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "nXMhOoHWj0oP" }, "source": [ "## Load the data." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "rXIOBlWKyMY0" }, "outputs": [], "source": [ "dataset_info = 'memo'\n", "root = 'gs://deepmind-memo/length' + str(chain_length) + '/'\n", "num_epochs = 100\n", "shuffle_buffer_size = 150\n", "num_readers = 4\n", "dataset_info = _DATASETS['memo']\n", "filenames = _get_dataset_files(dataset_info, root)\n", "num_map_threads = 4\n", "batch_size = 10" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "e2G5MSVf9Hpm" }, "outputs": [], "source": [ "data = tf.data.Dataset.from_tensor_slices(filenames)\n", "data = data.repeat(num_epochs)\n", "data = data.shuffle(shuffle_buffer_size)\n", "data = data.interleave(tf.data.TFRecordDataset,\n", " cycle_length=num_readers, block_length=1)\n", "data = data.shuffle(shuffle_buffer_size)\n", "data = data.map(parser_tf_examples, num_parallel_calls=num_map_threads)\n", "data = data.batch(batch_size)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "1z3dsDNqkBHD" }, "source": [ "# Looking at what we loaded." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "ibVadDeeAU4Q" }, "outputs": [], "source": [ "iterator = data.__iter__()\n", "element = iterator.get_next()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "Lh7-f08nAeGq" }, "outputs": [], "source": [ "print(element[0].shape) # trials\n", "print(element[1].shape) # correct answer\n", "print(element[2].shape) # difficulty\n", "print(element[3].shape) # trialtype\n", "print(element[4].shape) # memory" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "load_memo_data.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: meshgraphnets/README.md ================================================ # Learning Mesh-Based Simulation with Graph Networks (ICLR 2021) Video site: [sites.google.com/view/meshgraphnets](https://sites.google.com/view/meshgraphnets) Paper: [arxiv.org/abs/2010.03409](https://arxiv.org/abs/2010.03409) If you use the code here please cite this paper: @inproceedings{pfaff2021learning, title={Learning Mesh-Based Simulation with Graph Networks}, author={Tobias Pfaff and Meire Fortunato and Alvaro Sanchez-Gonzalez and Peter W. Battaglia}, booktitle={International Conference on Learning Representations}, year={2021} } ## Overview This release contains the full datasets used in the paper, as well as data loaders (dataset.py), and the learned model core (core_model.py). These components are designed to work with all of our domains. We also include demonstration code for a full training and evaluation pipeline, for the `cylinder_flow` and `flag_simple` domains only. This includes graph encoding, evaluation, rollout and plotting trajectory. Refer to the respective `cfd_*` and `cloth_*` files for details. ## Setup Prepare environment, install dependencies: virtualenv --python=python3.6 "${ENV}" ${ENV}/bin/activate pip install -r meshgraphnets/requirements.txt Download a dataset: mkdir -p ${DATA} bash meshgraphnets/download_dataset.sh flag_simple ${DATA} ## Running the model Train a model: python -m meshgraphnets.run_model --mode=train --model=cloth \ --checkpoint_dir=${DATA}/chk --dataset_dir=${DATA}/flag_simple Generate some trajectory rollouts: python -m meshgraphnets.run_model --mode=eval --model=cloth \ --checkpoint_dir=${DATA}/chk --dataset_dir=${DATA}/flag_simple \ --rollout_path=${DATA}/rollout_flag.pkl Plot a trajectory: python -m meshgraphnets.plot_cloth --rollout_path=${DATA}/rollout_flag.pkl The instructions above train a model for the `flag_simple` domain; for the `cylinder_flow` dataset, use `--model=cfd` and the `plot_cfd` script. ## Datasets Datasets can be downloaded using the script `download_dataset.sh`. They contain a metadata file describing the available fields and their shape, and tfrecord datasets for train, valid and test splits. Dataset names match the naming in the paper. The following datasets are available: airfoil cylinder_flow deforming_plate flag_minimal flag_simple flag_dynamic flag_dynamic_sizing sphere_simple sphere_dynamic sphere_dynamic_sizing `flag_minimal` is a truncated version of flag_simple, and is only used for integration tests. `flag_dynamic_sizing` and `sphere_dynamic_sizing` can be used to learn the sizing field. These datasets have the same structure as the other datasets, but contain the meshes in their state before remeshing, and define a matching `sizing_field` target for each mesh. ================================================ FILE: meshgraphnets/cfd_eval.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Functions to build evaluation metrics for CFD data.""" import tensorflow.compat.v1 as tf from meshgraphnets.common import NodeType def _rollout(model, initial_state, num_steps): """Rolls out a model trajectory.""" node_type = initial_state['node_type'][:, 0] mask = tf.logical_or(tf.equal(node_type, NodeType.NORMAL), tf.equal(node_type, NodeType.OUTFLOW)) def step_fn(step, velocity, trajectory): prediction = model({**initial_state, 'velocity': velocity}) # don't update boundary nodes next_velocity = tf.where(mask, prediction, velocity) trajectory = trajectory.write(step, velocity) return step+1, next_velocity, trajectory _, _, output = tf.while_loop( cond=lambda step, cur, traj: tf.less(step, num_steps), body=step_fn, loop_vars=(0, initial_state['velocity'], tf.TensorArray(tf.float32, num_steps)), parallel_iterations=1) return output.stack() def evaluate(model, inputs): """Performs model rollouts and create stats.""" initial_state = {k: v[0] for k, v in inputs.items()} num_steps = inputs['cells'].shape[0] prediction = _rollout(model, initial_state, num_steps) error = tf.reduce_mean((prediction - inputs['velocity'])**2, axis=-1) scalars = {'mse_%d_steps' % horizon: tf.reduce_mean(error[1:horizon+1]) for horizon in [1, 10, 20, 50, 100, 200]} traj_ops = { 'faces': inputs['cells'], 'mesh_pos': inputs['mesh_pos'], 'gt_velocity': inputs['velocity'], 'pred_velocity': prediction } return scalars, traj_ops ================================================ FILE: meshgraphnets/cfd_model.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Model for CylinderFlow.""" import sonnet as snt import tensorflow.compat.v1 as tf from meshgraphnets import common from meshgraphnets import core_model from meshgraphnets import normalization class Model(snt.AbstractModule): """Model for fluid simulation.""" def __init__(self, learned_model, name='Model'): super(Model, self).__init__(name=name) with self._enter_variable_scope(): self._learned_model = learned_model self._output_normalizer = normalization.Normalizer( size=2, name='output_normalizer') self._node_normalizer = normalization.Normalizer( size=2+common.NodeType.SIZE, name='node_normalizer') self._edge_normalizer = normalization.Normalizer( size=3, name='edge_normalizer') # 2D coord + length def _build_graph(self, inputs, is_training): """Builds input graph.""" # construct graph nodes node_type = tf.one_hot(inputs['node_type'][:, 0], common.NodeType.SIZE) node_features = tf.concat([inputs['velocity'], node_type], axis=-1) # construct graph edges senders, receivers = common.triangles_to_edges(inputs['cells']) relative_mesh_pos = (tf.gather(inputs['mesh_pos'], senders) - tf.gather(inputs['mesh_pos'], receivers)) edge_features = tf.concat([ relative_mesh_pos, tf.norm(relative_mesh_pos, axis=-1, keepdims=True)], axis=-1) mesh_edges = core_model.EdgeSet( name='mesh_edges', features=self._edge_normalizer(edge_features, is_training), receivers=receivers, senders=senders) return core_model.MultiGraph( node_features=self._node_normalizer(node_features, is_training), edge_sets=[mesh_edges]) def _build(self, inputs): graph = self._build_graph(inputs, is_training=False) per_node_network_output = self._learned_model(graph) return self._update(inputs, per_node_network_output) @snt.reuse_variables def loss(self, inputs): """L2 loss on velocity.""" graph = self._build_graph(inputs, is_training=True) network_output = self._learned_model(graph) # build target velocity change cur_velocity = inputs['velocity'] target_velocity = inputs['target|velocity'] target_velocity_change = target_velocity - cur_velocity target_normalized = self._output_normalizer(target_velocity_change) # build loss node_type = inputs['node_type'][:, 0] loss_mask = tf.logical_or(tf.equal(node_type, common.NodeType.NORMAL), tf.equal(node_type, common.NodeType.OUTFLOW)) error = tf.reduce_sum((target_normalized - network_output)**2, axis=1) loss = tf.reduce_mean(error[loss_mask]) return loss def _update(self, inputs, per_node_network_output): """Integrate model outputs.""" velocity_update = self._output_normalizer.inverse(per_node_network_output) # integrate forward cur_velocity = inputs['velocity'] return cur_velocity + velocity_update ================================================ FILE: meshgraphnets/cloth_eval.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Functions to build evaluation metrics for cloth data.""" import tensorflow.compat.v1 as tf from meshgraphnets.common import NodeType def _rollout(model, initial_state, num_steps): """Rolls out a model trajectory.""" mask = tf.equal(initial_state['node_type'][:, 0], NodeType.NORMAL) def step_fn(step, prev_pos, cur_pos, trajectory): prediction = model({**initial_state, 'prev|world_pos': prev_pos, 'world_pos': cur_pos}) # don't update kinematic nodes next_pos = tf.where(mask, prediction, cur_pos) trajectory = trajectory.write(step, cur_pos) return step+1, cur_pos, next_pos, trajectory _, _, _, output = tf.while_loop( cond=lambda step, last, cur, traj: tf.less(step, num_steps), body=step_fn, loop_vars=(0, initial_state['prev|world_pos'], initial_state['world_pos'], tf.TensorArray(tf.float32, num_steps)), parallel_iterations=1) return output.stack() def evaluate(model, inputs): """Performs model rollouts and create stats.""" initial_state = {k: v[0] for k, v in inputs.items()} num_steps = inputs['cells'].shape[0] prediction = _rollout(model, initial_state, num_steps) error = tf.reduce_mean((prediction - inputs['world_pos'])**2, axis=-1) scalars = {'mse_%d_steps' % horizon: tf.reduce_mean(error[1:horizon+1]) for horizon in [1, 10, 20, 50, 100, 200]} traj_ops = { 'faces': inputs['cells'], 'mesh_pos': inputs['mesh_pos'], 'gt_pos': inputs['world_pos'], 'pred_pos': prediction } return scalars, traj_ops ================================================ FILE: meshgraphnets/cloth_model.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Model for FlagSimple.""" import sonnet as snt import tensorflow.compat.v1 as tf from meshgraphnets import common from meshgraphnets import core_model from meshgraphnets import normalization class Model(snt.AbstractModule): """Model for static cloth simulation.""" def __init__(self, learned_model, name='Model'): super(Model, self).__init__(name=name) with self._enter_variable_scope(): self._learned_model = learned_model self._output_normalizer = normalization.Normalizer( size=3, name='output_normalizer') self._node_normalizer = normalization.Normalizer( size=3+common.NodeType.SIZE, name='node_normalizer') self._edge_normalizer = normalization.Normalizer( size=7, name='edge_normalizer') # 2D coord + 3D coord + 2*length = 7 def _build_graph(self, inputs, is_training): """Builds input graph.""" # construct graph nodes velocity = inputs['world_pos'] - inputs['prev|world_pos'] node_type = tf.one_hot(inputs['node_type'][:, 0], common.NodeType.SIZE) node_features = tf.concat([velocity, node_type], axis=-1) # construct graph edges senders, receivers = common.triangles_to_edges(inputs['cells']) relative_world_pos = (tf.gather(inputs['world_pos'], senders) - tf.gather(inputs['world_pos'], receivers)) relative_mesh_pos = (tf.gather(inputs['mesh_pos'], senders) - tf.gather(inputs['mesh_pos'], receivers)) edge_features = tf.concat([ relative_world_pos, tf.norm(relative_world_pos, axis=-1, keepdims=True), relative_mesh_pos, tf.norm(relative_mesh_pos, axis=-1, keepdims=True)], axis=-1) mesh_edges = core_model.EdgeSet( name='mesh_edges', features=self._edge_normalizer(edge_features, is_training), receivers=receivers, senders=senders) return core_model.MultiGraph( node_features=self._node_normalizer(node_features, is_training), edge_sets=[mesh_edges]) def _build(self, inputs): graph = self._build_graph(inputs, is_training=False) per_node_network_output = self._learned_model(graph) return self._update(inputs, per_node_network_output) @snt.reuse_variables def loss(self, inputs): """L2 loss on position.""" graph = self._build_graph(inputs, is_training=True) network_output = self._learned_model(graph) # build target acceleration cur_position = inputs['world_pos'] prev_position = inputs['prev|world_pos'] target_position = inputs['target|world_pos'] target_acceleration = target_position - 2*cur_position + prev_position target_normalized = self._output_normalizer(target_acceleration) # build loss loss_mask = tf.equal(inputs['node_type'][:, 0], common.NodeType.NORMAL) error = tf.reduce_sum((target_normalized - network_output)**2, axis=1) loss = tf.reduce_mean(error[loss_mask]) return loss def _update(self, inputs, per_node_network_output): """Integrate model outputs.""" acceleration = self._output_normalizer.inverse(per_node_network_output) # integrate forward cur_position = inputs['world_pos'] prev_position = inputs['prev|world_pos'] position = 2*cur_position + acceleration - prev_position return position ================================================ FILE: meshgraphnets/common.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Commonly used data structures and functions.""" import enum import tensorflow.compat.v1 as tf class NodeType(enum.IntEnum): NORMAL = 0 OBSTACLE = 1 AIRFOIL = 2 HANDLE = 3 INFLOW = 4 OUTFLOW = 5 WALL_BOUNDARY = 6 SIZE = 9 def triangles_to_edges(faces): """Computes mesh edges from triangles.""" # collect edges from triangles edges = tf.concat([faces[:, 0:2], faces[:, 1:3], tf.stack([faces[:, 2], faces[:, 0]], axis=1)], axis=0) # those edges are sometimes duplicated (within the mesh) and sometimes # single (at the mesh boundary). # sort & pack edges as single tf.int64 receivers = tf.reduce_min(edges, axis=1) senders = tf.reduce_max(edges, axis=1) packed_edges = tf.bitcast(tf.stack([senders, receivers], axis=1), tf.int64) # remove duplicates and unpack unique_edges = tf.bitcast(tf.unique(packed_edges)[0], tf.int32) senders, receivers = tf.unstack(unique_edges, axis=1) # create two-way connectivity return (tf.concat([senders, receivers], axis=0), tf.concat([receivers, senders], axis=0)) ================================================ FILE: meshgraphnets/core_model.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Core learned graph net model.""" import collections import functools import sonnet as snt import tensorflow.compat.v1 as tf EdgeSet = collections.namedtuple('EdgeSet', ['name', 'features', 'senders', 'receivers']) MultiGraph = collections.namedtuple('Graph', ['node_features', 'edge_sets']) class GraphNetBlock(snt.AbstractModule): """Multi-Edge Interaction Network with residual connections.""" def __init__(self, model_fn, name='GraphNetBlock'): super(GraphNetBlock, self).__init__(name=name) self._model_fn = model_fn def _update_edge_features(self, node_features, edge_set): """Aggregrates node features, and applies edge function.""" sender_features = tf.gather(node_features, edge_set.senders) receiver_features = tf.gather(node_features, edge_set.receivers) features = [sender_features, receiver_features, edge_set.features] with tf.variable_scope(edge_set.name+'_edge_fn'): return self._model_fn()(tf.concat(features, axis=-1)) def _update_node_features(self, node_features, edge_sets): """Aggregrates edge features, and applies node function.""" num_nodes = tf.shape(node_features)[0] features = [node_features] for edge_set in edge_sets: features.append(tf.math.unsorted_segment_sum(edge_set.features, edge_set.receivers, num_nodes)) with tf.variable_scope('node_fn'): return self._model_fn()(tf.concat(features, axis=-1)) def _build(self, graph): """Applies GraphNetBlock and returns updated MultiGraph.""" # apply edge functions new_edge_sets = [] for edge_set in graph.edge_sets: updated_features = self._update_edge_features(graph.node_features, edge_set) new_edge_sets.append(edge_set._replace(features=updated_features)) # apply node function new_node_features = self._update_node_features(graph.node_features, new_edge_sets) # add residual connections new_node_features += graph.node_features new_edge_sets = [es._replace(features=es.features + old_es.features) for es, old_es in zip(new_edge_sets, graph.edge_sets)] return MultiGraph(new_node_features, new_edge_sets) class EncodeProcessDecode(snt.AbstractModule): """Encode-Process-Decode GraphNet model.""" def __init__(self, output_size, latent_size, num_layers, message_passing_steps, name='EncodeProcessDecode'): super(EncodeProcessDecode, self).__init__(name=name) self._latent_size = latent_size self._output_size = output_size self._num_layers = num_layers self._message_passing_steps = message_passing_steps def _make_mlp(self, output_size, layer_norm=True): """Builds an MLP.""" widths = [self._latent_size] * self._num_layers + [output_size] network = snt.nets.MLP(widths, activate_final=False) if layer_norm: network = snt.Sequential([network, snt.LayerNorm()]) return network def _encoder(self, graph): """Encodes node and edge features into latent features.""" with tf.variable_scope('encoder'): node_latents = self._make_mlp(self._latent_size)(graph.node_features) new_edges_sets = [] for edge_set in graph.edge_sets: latent = self._make_mlp(self._latent_size)(edge_set.features) new_edges_sets.append(edge_set._replace(features=latent)) return MultiGraph(node_latents, new_edges_sets) def _decoder(self, graph): """Decodes node features from graph.""" with tf.variable_scope('decoder'): decoder = self._make_mlp(self._output_size, layer_norm=False) return decoder(graph.node_features) def _build(self, graph): """Encodes and processes a multigraph, and returns node features.""" model_fn = functools.partial(self._make_mlp, output_size=self._latent_size) latent_graph = self._encoder(graph) for _ in range(self._message_passing_steps): latent_graph = GraphNetBlock(model_fn)(latent_graph) return self._decoder(latent_graph) ================================================ FILE: meshgraphnets/dataset.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Utility functions for reading the datasets.""" import functools import json import os import tensorflow.compat.v1 as tf from meshgraphnets.common import NodeType def _parse(proto, meta): """Parses a trajectory from tf.Example.""" feature_lists = {k: tf.io.VarLenFeature(tf.string) for k in meta['field_names']} features = tf.io.parse_single_example(proto, feature_lists) out = {} for key, field in meta['features'].items(): data = tf.io.decode_raw(features[key].values, getattr(tf, field['dtype'])) data = tf.reshape(data, field['shape']) if field['type'] == 'static': data = tf.tile(data, [meta['trajectory_length'], 1, 1]) elif field['type'] == 'dynamic_varlen': length = tf.io.decode_raw(features['length_'+key].values, tf.int32) length = tf.reshape(length, [-1]) data = tf.RaggedTensor.from_row_lengths(data, row_lengths=length) elif field['type'] != 'dynamic': raise ValueError('invalid data format') out[key] = data return out def load_dataset(path, split): """Load dataset.""" with open(os.path.join(path, 'meta.json'), 'r') as fp: meta = json.loads(fp.read()) ds = tf.data.TFRecordDataset(os.path.join(path, split+'.tfrecord')) ds = ds.map(functools.partial(_parse, meta=meta), num_parallel_calls=8) ds = ds.prefetch(1) return ds def add_targets(ds, fields, add_history): """Adds target and optionally history fields to dataframe.""" def fn(trajectory): out = {} for key, val in trajectory.items(): out[key] = val[1:-1] if key in fields: if add_history: out['prev|'+key] = val[0:-2] out['target|'+key] = val[2:] return out return ds.map(fn, num_parallel_calls=8) def split_and_preprocess(ds, noise_field, noise_scale, noise_gamma): """Splits trajectories into frames, and adds training noise.""" def add_noise(frame): noise = tf.random.normal(tf.shape(frame[noise_field]), stddev=noise_scale, dtype=tf.float32) # don't apply noise to boundary nodes mask = tf.equal(frame['node_type'], NodeType.NORMAL)[:, 0] noise = tf.where(mask, noise, tf.zeros_like(noise)) frame[noise_field] += noise frame['target|'+noise_field] += (1.0 - noise_gamma) * noise return frame ds = ds.flat_map(tf.data.Dataset.from_tensor_slices) ds = ds.map(add_noise, num_parallel_calls=8) ds = ds.shuffle(10000) ds = ds.repeat(None) return ds.prefetch(10) def batch_dataset(ds, batch_size): """Batches input datasets.""" shapes = ds.output_shapes types = ds.output_types def renumber(buffer, frame): nodes, cells = buffer new_nodes, new_cells = frame return nodes + new_nodes, tf.concat([cells, new_cells+nodes], axis=0) def batch_accumulate(ds_window): out = {} for key, ds_val in ds_window.items(): initial = tf.zeros((0, shapes[key][1]), dtype=types[key]) if key == 'cells': # renumber node indices in cells num_nodes = ds_window['node_type'].map(lambda x: tf.shape(x)[0]) cells = tf.data.Dataset.zip((num_nodes, ds_val)) initial = (tf.constant(0, tf.int32), initial) _, out[key] = cells.reduce(initial, renumber) else: merge = lambda prev, cur: tf.concat([prev, cur], axis=0) out[key] = ds_val.reduce(initial, merge) return out if batch_size > 1: ds = ds.window(batch_size, drop_remainder=True) ds = ds.map(batch_accumulate, num_parallel_calls=8) return ds ================================================ FILE: meshgraphnets/download_dataset.sh ================================================ #!/bin/bash # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Usage: # sh download_dataset.sh ${DATASET_NAME} ${OUTPUT_DIR} # Example: # sh download_dataset.sh flag_simple /tmp/ set -e DATASET_NAME="${1}" OUTPUT_DIR="${2}/${DATASET_NAME}" BASE_URL="https://storage.googleapis.com/dm-meshgraphnets/${DATASET_NAME}/" mkdir -p ${OUTPUT_DIR} for file in meta.json train.tfrecord valid.tfrecord test.tfrecord do wget -O "${OUTPUT_DIR}/${file}" "${BASE_URL}${file}" done ================================================ FILE: meshgraphnets/normalization.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Online data normalization.""" import sonnet as snt import tensorflow.compat.v1 as tf class Normalizer(snt.AbstractModule): """Feature normalizer that accumulates statistics online.""" def __init__(self, size, max_accumulations=10**6, std_epsilon=1e-8, name='Normalizer'): super(Normalizer, self).__init__(name=name) self._max_accumulations = max_accumulations self._std_epsilon = std_epsilon with self._enter_variable_scope(): self._acc_count = tf.Variable(0, dtype=tf.float32, trainable=False) self._num_accumulations = tf.Variable(0, dtype=tf.float32, trainable=False) self._acc_sum = tf.Variable(tf.zeros(size, tf.float32), trainable=False) self._acc_sum_squared = tf.Variable(tf.zeros(size, tf.float32), trainable=False) def _build(self, batched_data, accumulate=True): """Normalizes input data and accumulates statistics.""" update_op = tf.no_op() if accumulate: # stop accumulating after a million updates, to prevent accuracy issues update_op = tf.cond(self._num_accumulations < self._max_accumulations, lambda: self._accumulate(batched_data), tf.no_op) with tf.control_dependencies([update_op]): return (batched_data - self._mean()) / self._std_with_epsilon() @snt.reuse_variables def inverse(self, normalized_batch_data): """Inverse transformation of the normalizer.""" return normalized_batch_data * self._std_with_epsilon() + self._mean() def _accumulate(self, batched_data): """Function to perform the accumulation of the batch_data statistics.""" count = tf.cast(tf.shape(batched_data)[0], tf.float32) data_sum = tf.reduce_sum(batched_data, axis=0) squared_data_sum = tf.reduce_sum(batched_data**2, axis=0) return tf.group( tf.assign_add(self._acc_sum, data_sum), tf.assign_add(self._acc_sum_squared, squared_data_sum), tf.assign_add(self._acc_count, count), tf.assign_add(self._num_accumulations, 1.)) def _mean(self): safe_count = tf.maximum(self._acc_count, 1.) return self._acc_sum / safe_count def _std_with_epsilon(self): safe_count = tf.maximum(self._acc_count, 1.) std = tf.sqrt(self._acc_sum_squared / safe_count - self._mean()**2) return tf.math.maximum(std, self._std_epsilon) ================================================ FILE: meshgraphnets/plot_cfd.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Plots a CFD trajectory rollout.""" import pickle from absl import app from absl import flags from matplotlib import animation from matplotlib import tri as mtri import matplotlib.pyplot as plt FLAGS = flags.FLAGS flags.DEFINE_string('rollout_path', None, 'Path to rollout pickle file') def main(unused_argv): with open(FLAGS.rollout_path, 'rb') as fp: rollout_data = pickle.load(fp) fig, ax = plt.subplots(1, 1, figsize=(12, 8)) skip = 10 num_steps = rollout_data[0]['gt_velocity'].shape[0] num_frames = len(rollout_data) * num_steps // skip # compute bounds bounds = [] for trajectory in rollout_data: bb_min = trajectory['gt_velocity'].min(axis=(0, 1)) bb_max = trajectory['gt_velocity'].max(axis=(0, 1)) bounds.append((bb_min, bb_max)) def animate(num): step = (num*skip) % num_steps traj = (num*skip) // num_steps ax.cla() ax.set_aspect('equal') ax.set_axis_off() vmin, vmax = bounds[traj] pos = rollout_data[traj]['mesh_pos'][step] faces = rollout_data[traj]['faces'][step] velocity = rollout_data[traj]['pred_velocity'][step] triang = mtri.Triangulation(pos[:, 0], pos[:, 1], faces) ax.tripcolor(triang, velocity[:, 0], vmin=vmin[0], vmax=vmax[0]) ax.triplot(triang, 'ko-', ms=0.5, lw=0.3) ax.set_title('Trajectory %d Step %d' % (traj, step)) return fig, _ = animation.FuncAnimation(fig, animate, frames=num_frames, interval=100) plt.show(block=True) if __name__ == '__main__': app.run(main) ================================================ FILE: meshgraphnets/plot_cloth.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Plots a cloth trajectory rollout.""" import pickle from absl import app from absl import flags from matplotlib import animation import matplotlib.pyplot as plt FLAGS = flags.FLAGS flags.DEFINE_string('rollout_path', None, 'Path to rollout pickle file') def main(unused_argv): with open(FLAGS.rollout_path, 'rb') as fp: rollout_data = pickle.load(fp) fig = plt.figure(figsize=(8, 8)) ax = fig.add_subplot(111, projection='3d') skip = 10 num_steps = rollout_data[0]['gt_pos'].shape[0] num_frames = len(rollout_data) * num_steps // skip # compute bounds bounds = [] for trajectory in rollout_data: bb_min = trajectory['gt_pos'].min(axis=(0, 1)) bb_max = trajectory['gt_pos'].max(axis=(0, 1)) bounds.append((bb_min, bb_max)) def animate(num): step = (num*skip) % num_steps traj = (num*skip) // num_steps ax.cla() bound = bounds[traj] ax.set_xlim([bound[0][0], bound[1][0]]) ax.set_ylim([bound[0][1], bound[1][1]]) ax.set_zlim([bound[0][2], bound[1][2]]) pos = rollout_data[traj]['pred_pos'][step] faces = rollout_data[traj]['faces'][step] ax.plot_trisurf(pos[:, 0], pos[:, 1], faces, pos[:, 2], shade=True) ax.set_title('Trajectory %d Step %d' % (traj, step)) return fig, _ = animation.FuncAnimation(fig, animate, frames=num_frames, interval=100) plt.show(block=True) if __name__ == '__main__': app.run(main) ================================================ FILE: meshgraphnets/requirements.txt ================================================ tensorflow-gpu>=1.15,<2 dm-sonnet<2 matplotlib absl-py numpy ================================================ FILE: meshgraphnets/run.sh ================================================ #!/bin/bash # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Fail on any error. set -e # Display commands being run. set -x TMP_DIR=`mktemp -d` virtualenv --python=python3.6 "${TMP_DIR}/env" source "${TMP_DIR}/env/bin/activate" # Install dependencies. pip install --upgrade -r meshgraphnets/requirements.txt # Download minimal dataset DATA_DIR="${TMP_DIR}/flag_minimal" bash meshgraphnets/download_dataset.sh flag_minimal ${TMP_DIR} # Train for a few steps. CHK_DIR="${TMP_DIR}/checkpoint" python -m meshgraphnets.run_model --model=cloth --mode=train --checkpoint_dir=${CHK_DIR} --dataset_dir=${DATA_DIR} --num_training_steps=10 # Generate a rollout trajectory ROLLOUT_PATH="${TMP_DIR}/rollout.pkl" python -m meshgraphnets.run_model --model=cloth --mode=eval --checkpoint_dir=${CHK_DIR} --dataset_dir=${DATA_DIR} --rollout_path=${ROLLOUT_PATH} --num_rollouts=1 # Plot the rollout trajectory python -m meshgraphnets.plot_cloth --rollout_path=${ROLLOUT_PATH} # Clean up. rm -r ${TMP_DIR} echo "Test run complete." ================================================ FILE: meshgraphnets/run_model.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Runs the learner/evaluator.""" import pickle from absl import app from absl import flags from absl import logging import numpy as np import tensorflow.compat.v1 as tf from meshgraphnets import cfd_eval from meshgraphnets import cfd_model from meshgraphnets import cloth_eval from meshgraphnets import cloth_model from meshgraphnets import core_model from meshgraphnets import dataset FLAGS = flags.FLAGS flags.DEFINE_enum('mode', 'train', ['train', 'eval'], 'Train model, or run evaluation.') flags.DEFINE_enum('model', None, ['cfd', 'cloth'], 'Select model to run.') flags.DEFINE_string('checkpoint_dir', None, 'Directory to save checkpoint') flags.DEFINE_string('dataset_dir', None, 'Directory to load dataset from.') flags.DEFINE_string('rollout_path', None, 'Pickle file to save eval trajectories') flags.DEFINE_enum('rollout_split', 'valid', ['train', 'test', 'valid'], 'Dataset split to use for rollouts.') flags.DEFINE_integer('num_rollouts', 10, 'No. of rollout trajectories') flags.DEFINE_integer('num_training_steps', int(10e6), 'No. of training steps') PARAMETERS = { 'cfd': dict(noise=0.02, gamma=1.0, field='velocity', history=False, size=2, batch=2, model=cfd_model, evaluator=cfd_eval), 'cloth': dict(noise=0.003, gamma=0.1, field='world_pos', history=True, size=3, batch=1, model=cloth_model, evaluator=cloth_eval) } def learner(model, params): """Run a learner job.""" ds = dataset.load_dataset(FLAGS.dataset_dir, 'train') ds = dataset.add_targets(ds, [params['field']], add_history=params['history']) ds = dataset.split_and_preprocess(ds, noise_field=params['field'], noise_scale=params['noise'], noise_gamma=params['gamma']) inputs = tf.data.make_one_shot_iterator(ds).get_next() loss_op = model.loss(inputs) global_step = tf.train.create_global_step() lr = tf.train.exponential_decay(learning_rate=1e-4, global_step=global_step, decay_steps=int(5e6), decay_rate=0.1) + 1e-6 optimizer = tf.train.AdamOptimizer(learning_rate=lr) train_op = optimizer.minimize(loss_op, global_step=global_step) # Don't train for the first few steps, just accumulate normalization stats train_op = tf.cond(tf.less(global_step, 1000), lambda: tf.group(tf.assign_add(global_step, 1)), lambda: tf.group(train_op)) with tf.train.MonitoredTrainingSession( hooks=[tf.train.StopAtStepHook(last_step=FLAGS.num_training_steps)], checkpoint_dir=FLAGS.checkpoint_dir, save_checkpoint_secs=600) as sess: while not sess.should_stop(): _, step, loss = sess.run([train_op, global_step, loss_op]) if step % 1000 == 0: logging.info('Step %d: Loss %g', step, loss) logging.info('Training complete.') def evaluator(model, params): """Run a model rollout trajectory.""" ds = dataset.load_dataset(FLAGS.dataset_dir, FLAGS.rollout_split) ds = dataset.add_targets(ds, [params['field']], add_history=params['history']) inputs = tf.data.make_one_shot_iterator(ds).get_next() scalar_op, traj_ops = params['evaluator'].evaluate(model, inputs) tf.train.create_global_step() with tf.train.MonitoredTrainingSession( checkpoint_dir=FLAGS.checkpoint_dir, save_checkpoint_secs=None, save_checkpoint_steps=None) as sess: trajectories = [] scalars = [] for traj_idx in range(FLAGS.num_rollouts): logging.info('Rollout trajectory %d', traj_idx) scalar_data, traj_data = sess.run([scalar_op, traj_ops]) trajectories.append(traj_data) scalars.append(scalar_data) for key in scalars[0]: logging.info('%s: %g', key, np.mean([x[key] for x in scalars])) with open(FLAGS.rollout_path, 'wb') as fp: pickle.dump(trajectories, fp) def main(argv): del argv tf.enable_resource_variables() tf.disable_eager_execution() params = PARAMETERS[FLAGS.model] learned_model = core_model.EncodeProcessDecode( output_size=params['size'], latent_size=128, num_layers=2, message_passing_steps=15) model = params['model'].Model(learned_model) if FLAGS.mode == 'train': learner(model, params) elif FLAGS.mode == 'eval': evaluator(model, params) if __name__ == '__main__': app.run(main) ================================================ FILE: mmv/README.md ================================================ # Self-supervised Multimodal Versatile Networks This is the code for the models in MMV - https://arxiv.org/abs/2006.16228. We also make available the code for linear evaluation of a pre-trained model in UCF101 and the JAX checkpoints for our best models. We use different parameters for video compression in UCF101 than the ones used in `tensorflow_datasets`. We provide the code to download and preprocess the dataset. The eval_ucf101.py script reproduces the results we report in Table 2 of the paper, using the checkpoints provided below. Visual Backbone | Training Dataset | Results on Linear UCF101 ------- | -------- | -------- S3D-G | AudioSet + HowTo | 89.6 Resnet TSM-50 | AudioSet + HowTo | 91.5 Resnet TSM-50 (x2) | AudioSet + HowTo | 91.8 ## Setup To set up a Python virtual environment with the required dependencies, run: ```shell python3 -m venv mmv_env source mmv_env/bin/activate pip install --upgrade pip setuptools wheel pip install -r mmv/requirements.txt --use-feature=2020-resolver ``` ### Linear evaluation The linear evaluation on UCF101 can be run using: ```shell python -m mmv.eval_ucf101 \ --checkpoint_path= \ --dataset_folder= ``` ## Checkpoints We provide three checkpoints containing the best pre-trained weights for each of the visual backbones we use in the paper, i. e., S3D-G, Resnet-50 TSM, and Resnet-50 TSM x 2. - [S3D-G](https://storage.googleapis.com/deepmind-research-mmv/mmv_s3d.pkl) - [Resnet-50 TSM](https://storage.googleapis.com/deepmind-research-mmv/mmv_tsm_resnet_x1.pkl) - [Resnet-50 TSMx2](https://storage.googleapis.com/deepmind-research-mmv/mmv_tsm_resnet_x2.pkl) ## References ### Citing our work If you use that code for your research, please consider citing our paper: ```bibtex @inproceedings{alayrac2020self, title={{S}elf-{S}upervised {M}ulti{M}odal {V}ersatile {N}etworks}, author={Alayrac, Jean-Baptiste and Recasens, Adri{\`a} and Schneider, Rosalia and Arandjelovi{\'c}, Relja and Ramapuram, Jason and De Fauw, Jeffrey and Smaira, Lucas and Dieleman, Sander and Zisserman, Andrew}, booktitle={NeurIPS}, year={2020} } ``` ### Models in TF You may also be interested in using our TF-Hub release models available at: - [S3D-G](https://tfhub.dev/deepmind/mmv/s3d/1) - [Resnet-50 TSM](https://tfhub.dev/deepmind/mmv/tsm-resnet50/1) - [Resnet-50 TSMx2](https://tfhub.dev/deepmind/mmv/tsm-resnet50x2/1) ## License While the code is licensed under the Apache 2.0 License, the checkpoints weights are made available for non-commercial use only under the terms of the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license. You can find details at: https://creativecommons.org/licenses/by-nc/4.0/legalcode. ================================================ FILE: mmv/config.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Configuration parameters for MMV.""" def get_model_config(ckpt_path): """Returns the model configuration to be used with each checkpoint.""" config = { 'audio_backbone': 'resnet50', 'audio_model_kwargs': { 'bn_config': { 'create_offset': True, 'create_scale': True, 'decay_rate': 0.9, 'eps': 1.0e-5 } }, 'bn_config_proj': { 'create_offset': True, 'create_scale': True, 'decay_rate': 0.9, 'eps': 1.0e-5 }, 'config_audio_text': { 'embedding_dim': 512, 'toaud_bn_after_proj': False, 'toaud_head_mode': 'linear', 'totxt_bn_after_proj': False, 'totxt_head_mode': 'linear' }, 'config_video_audio': { 'embedding_dim': 512, 'toaud_bn_after_proj': True, 'toaud_head_mode': 'mlp@512', 'tovid_bn_after_proj': False, 'tovid_head_mode': 'linear' }, 'config_video_text': { 'embedding_dim': 256, 'totxt_bn_after_proj': True, 'totxt_head_mode': 'linear', 'tovid_bn_after_proj': False, 'tovid_head_mode': 'linear' }, 'mm_embedding_graph': 'fac_relu', 'name': 'text_audio_video', 'sentence_dim': 2048, 'use_xreplica_bn': True, 'vision_model_kwargs': { 'bn_config': { 'create_offset': True, 'create_scale': True, 'decay_rate': 0.9, 'eps': 1.0e-5 }, 'n_frames': 32, 'width_mult': 1, }, } if 's3d' in ckpt_path: config['visual_backbone'] = 's3d' if 'tsm_resnet_x1' in ckpt_path: config['visual_backbone'] = 'resnet50tsm' if 'tsm_resnet_x2' in ckpt_path: config['visual_backbone'] = 'resnet50tsm' config['vision_model_kwargs']['width_mult'] = 2 return config ================================================ FILE: mmv/eval_ucf101.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """UCF101 linear evaluation.""" import functools from typing import Any, Dict, Optional from absl import app from absl import flags import haiku as hk import jax import jax.numpy as jnp import numpy as np import sklearn from sklearn import preprocessing import sklearn.linear_model import sklearn.svm import tensorflow as tf import tensorflow_datasets as tfds from mmv import config from mmv.models import mm_embeddings from mmv.utils import checkpoint from mmv.utils import ucf101_dataset flags.DEFINE_string('checkpoint_path', '~/tmp/mmv_s3d.pkl', 'The directory to load pre-trained weights from.') flags.DEFINE_string('dataset_folder', '/tmp/ucf101', 'The directory with the ucf101 dataset.') flags.DEFINE_integer('eval_batch_size', 1, 'The batch size for evaluation.') flags.DEFINE_integer('train_batch_size', 16, 'The batch size for training.') flags.DEFINE_integer('num_train_epochs', 10, 'How many epochs to collect features during training.') flags.DEFINE_integer('num_test_windows', 10, 'How many windows to average on during test.') flags.DEFINE_integer('min_resize', 224, 'Min value to resize images to during preprocessing.') flags.DEFINE_integer('crop_size', 224, 'Value to resize images to during preprocessing.') flags.DEFINE_integer('num_frames', 32, 'Number of video frames.') flags.DEFINE_integer('stride', 2, 'Stride for video frames.') flags.DEFINE_integer('ucf101_split', 1, 'Which split of ucf101 to use.') FLAGS = flags.FLAGS def get_sampling_offset(sequence: tf.Tensor, num_steps: Optional[int], is_training: bool, stride: int = 1, seed: Optional[int] = None) -> tf.Tensor: """Calculates the initial offset for a sequence where all steps will fit. Args: sequence: any tensor where the first dimension is timesteps. num_steps: The number of timesteps we will output. If None, deterministically start at the first frame. is_training: A boolean indicates whether the graph is for training or not. If False, the starting frame always the first frame. stride: distance to sample between timesteps. seed: a deterministic seed to use when sampling. Returns: The first index to begin sampling from. A best effort is made to provide a starting index such that all requested steps fit within the sequence (i.e. offset + 1 + (num_steps - 1) * stride < len(sequence)). If this is not satisfied, the starting index is chosen randomly from the full sequence. """ if num_steps is None or not is_training: return tf.constant(0) sequence_length = tf.shape(sequence)[0] max_offset = tf.cond( tf.greater(sequence_length, (num_steps - 1) * stride), lambda: sequence_length - (num_steps - 1) * stride, lambda: sequence_length) offset = tf.random.uniform( (), maxval=tf.cast(max_offset, tf.int32), dtype=tf.int32, seed=seed) return offset def sample_or_pad_sequence_indices(sequence: tf.Tensor, num_steps: Optional[int], is_training: bool, repeat_sequence: bool = True, stride: int = 1, offset: Optional[int] = None) -> tf.Tensor: """Returns indices to take for sampling or padding a sequence to fixed size. Samples num_steps from the sequence. If the sequence is shorter than num_steps, the sequence loops. If the sequence is longer than num_steps and is_training is True, then we seek to a random offset before sampling. If offset is provided, we use that deterministic offset. This method is appropriate for sampling from a tensor where you want every timestep between a start and end time. See sample_stacked_sequence_indices for more flexibility. Args: sequence: any tensor where the first dimension is timesteps. num_steps: how many steps (e.g. frames) to take. If None, all steps from start to end are considered and `is_training` has no effect. is_training: A boolean indicates whether the graph is for training or not. If False, the starting frame is deterministic. repeat_sequence: A boolean indicates whether the sequence will repeat to have enough steps for sampling. If False, a runtime error is thrown if num_steps * stride is longer than sequence length. stride: distance to sample between timesteps. offset: a deterministic offset to use regardless of the is_training value. Returns: Indices to gather from the sequence Tensor to get a fixed size sequence. """ sequence_length = tf.shape(sequence)[0] sel_idx = tf.range(sequence_length) if num_steps: if offset is None: offset = get_sampling_offset(sequence, num_steps, is_training, stride) if repeat_sequence: # Repeats sequence until num_steps are available in total. num_repeats = tf.cast( tf.math.ceil( tf.math.divide( tf.cast(num_steps * stride + offset, tf.float32), tf.cast(sequence_length, tf.float32) )), tf.int32) sel_idx = tf.tile(sel_idx, [num_repeats]) steps = tf.range(offset, offset + num_steps * stride, stride) else: steps = tf.range(0, sequence_length, stride) return tf.gather(sel_idx, steps) def random_sample_sequence(sequence: tf.Tensor, num_steps: int, stride: int = 1) -> tf.Tensor: """Randomly sample a segment of size num_steps from a given sequence.""" indices = sample_or_pad_sequence_indices( sequence=sequence, num_steps=num_steps, is_training=True, # Random sample. repeat_sequence=True, # Will repeat the sequence if request more. stride=stride, offset=None) indices.set_shape((num_steps,)) output = tf.gather(sequence, indices) return output def sample_linspace_sequence(sequence: tf.Tensor, num_windows: int, num_steps: int, stride: int = 1) -> tf.Tensor: """Samples num_windows segments from sequence with linearly spaced offsets. The samples are concatenated in a single Tensor in order to have the same format structure per timestep (e.g. a single frame). If num_steps * stride is bigger than the number of timesteps, the sequence is repeated. This function can be used in evaluation in order to extract enough segments in order to span the entire sequence. Args: sequence: Any tensor where the first dimension is timesteps. num_windows: Number of windows retrieved from the sequence. num_steps: Number of steps (e.g. frames) to take. stride: Distance to sample between timesteps. Returns: A single Tensor with first dimension num_windows * num_steps. The Tensor contains the concatenated list of num_windows tensors which offsets have been linearly spaced from input. """ sequence_length = tf.shape(sequence)[0] max_offset = tf.maximum(0, sequence_length - num_steps * stride) offsets = tf.linspace(0.0, tf.cast(max_offset, tf.float32), num_windows) offsets = tf.cast(offsets, tf.int32) all_indices = [] for i in range(num_windows): all_indices.append( sample_or_pad_sequence_indices( sequence=sequence, num_steps=num_steps, is_training=False, repeat_sequence=True, # Will repeat the sequence if request more. stride=stride, offset=offsets[i])) indices = tf.concat(all_indices, axis=0) indices.set_shape((num_windows * num_steps,)) output = tf.gather(sequence, indices) return output def resize_smallest(frames: tf.Tensor, min_resize: int) -> tf.Tensor: """Resizes frames so that min(height, width) is equal to min_resize. This function will not do anything if the min(height, width) is already equal to min_resize. This allows to save compute time. Args: frames: A Tensor of dimension [timesteps, input_h, input_w, channels]. min_resize: Minimum size of the final image dimensions. Returns: A Tensor of shape [timesteps, output_h, output_w, channels] of type frames.dtype where min(output_h, output_w) = min_resize. """ shape = tf.shape(frames) input_h = shape[1] input_w = shape[2] output_h = tf.maximum(min_resize, (input_h * min_resize) // input_w) output_w = tf.maximum(min_resize, (input_w * min_resize) // input_h) def resize_fn(): frames_resized = tf.image.resize(frames, (output_h, output_w)) return tf.cast(frames_resized, frames.dtype) should_resize = tf.math.logical_or(tf.not_equal(input_w, output_w), tf.not_equal(input_h, output_h)) frames = tf.cond(should_resize, resize_fn, lambda: frames) return frames def process_samples(features_dict, num_frames=32, stride=1, is_training=True, min_resize=224, crop_size=224, num_windows=1): """Process video frames.""" video = features_dict['video'] if is_training: assert num_windows == 1 video = random_sample_sequence(video, num_frames, stride) is_flipped = tf.random.uniform((), minval=0, maxval=2, dtype=tf.int32) video = tf.cond(tf.equal(is_flipped, 1), true_fn=lambda: tf.image.flip_left_right(video), false_fn=lambda: video) else: video = sample_linspace_sequence(video, num_windows, num_frames, stride) # Resize smallest side. video = resize_smallest(video, min_resize) if is_training: # Random crop. video = tf.image.random_crop(video, [num_frames, crop_size, crop_size, 3]) else: # Central crop. video = tf.image.resize_with_crop_or_pad(video, crop_size, crop_size) video = tf.cast(video, tf.float32) video /= 255.0 # Set between [0, 1]. features_dict['video'] = video return features_dict def space_to_depth_batch(features_dict): images = features_dict['video'] _, l, h, w, c = images.shape images = tf.reshape(images, [-1, l // 2, 2, h // 2, 2, w // 2, 2, c]) images = tf.transpose(images, [0, 1, 3, 5, 2, 4, 6, 7]) images = tf.reshape(images, [-1, l // 2, h // 2, w // 2, 8 * c]) features_dict['video'] = images return features_dict def reshape_windows(features_dict, num_frames): x = features_dict['video'] x = tf.reshape(x, (-1, num_frames, x.shape[2], x.shape[3], x.shape[4])) features_dict['video'] = x return features_dict def compute_accuracy_metrics(pred, gt, prefix=''): order_pred = np.argsort(pred, axis=1) assert len(gt.shape) == len(order_pred.shape) == 2 top1_pred = order_pred[:, -1:] top5_pred = order_pred[:, -5:] top1_acc = np.mean(top1_pred == gt) top5_acc = np.mean(np.max(top5_pred == gt, 1)) return {prefix + 'top1': top1_acc, prefix + 'top5': top5_acc} def forward_fn(images: jnp.ndarray, audio_spectrogram: jnp.ndarray, word_ids: jnp.ndarray, is_training: bool, model_config: Dict[str, Any]): """Forward pass of the model.""" # This should contain the pre-trained weights. We set it to zero because it # will be loaded from the checkpoint. language_model_vocab_size = 65536 word_embedding_dim = 300 dummy_embedding_matrix = jnp.zeros(shape=(language_model_vocab_size, word_embedding_dim)) module = mm_embeddings.AudioTextVideoEmbedding( **model_config, word_embedding_matrix=dummy_embedding_matrix) return module(images=images, audio_spectrogram=audio_spectrogram, word_ids=word_ids, is_training=is_training)['vid_repr'] def main(argv): del argv sklearn_reg = 0.001 model_config = config.get_model_config(FLAGS.checkpoint_path) forward = hk.without_apply_rng(hk.transform_with_state(forward_fn)) forward_apply = jax.jit(functools.partial(forward.apply, is_training=False, model_config=model_config)) # Get the UCF101 config. dset_config = tfds.video.ucf101.Ucf101.BUILDER_CONFIGS[FLAGS.ucf101_split] builder = ucf101_dataset.ModUcf101( data_dir=FLAGS.dataset_folder, config=dset_config) # Create the tfrecord files (no-op if already exists) dl_config = tfds.download.DownloadConfig(verify_ssl=False) builder.download_and_prepare(download_config=dl_config) # Generate the training dataset. train_ds = builder.as_dataset(split='train', shuffle_files=False) train_ds = train_ds.map(lambda x: process_samples( # pylint: disable=g-long-lambda x, num_frames=FLAGS.num_frames, stride=FLAGS.stride, is_training=True, min_resize=FLAGS.min_resize, crop_size=FLAGS.crop_size)) train_ds = train_ds.batch(batch_size=FLAGS.train_batch_size) if model_config['visual_backbone'] == 's3d': train_ds = train_ds.map(space_to_depth_batch) train_ds = train_ds.repeat(FLAGS.num_train_epochs) # Generate the test dataset. test_ds = builder.as_dataset(split='test', shuffle_files=False) test_ds = test_ds.map(lambda x: process_samples( # pylint: disable=g-long-lambda x, num_frames=FLAGS.num_frames, stride=FLAGS.stride, is_training=False, min_resize=FLAGS.min_resize, crop_size=FLAGS.crop_size, num_windows=FLAGS.num_test_windows)) test_ds = test_ds.batch(batch_size=FLAGS.eval_batch_size) test_ds = test_ds.map(lambda x: reshape_windows( # pylint: disable=g-long-lambda x, num_frames=FLAGS.num_frames)) if model_config['visual_backbone'] == 's3d': test_ds = test_ds.map(space_to_depth_batch) test_ds = test_ds.repeat(1) pretrained_weights = checkpoint.load_checkpoint(FLAGS.checkpoint_path) params = pretrained_weights['params'] state = pretrained_weights['state'] # Collect training samples. audio_frames = 96 mel_filters = 40 num_tokens = 16 dummy_audio = jnp.zeros( shape=(FLAGS.train_batch_size, audio_frames, mel_filters, 1)) dummy_word_ids = jnp.zeros( shape=(FLAGS.train_batch_size, num_tokens), dtype=jnp.int32) train_features = [] train_labels = [] print('Computing features on train') training_examples = iter(tfds.as_numpy(train_ds)) for train_ex in training_examples: vid_representation, _ = forward_apply(params=params, state=state, images=train_ex['video'], audio_spectrogram=dummy_audio, word_ids=dummy_word_ids) train_labels.append(train_ex['label']) train_features.append(vid_representation) if len(train_labels) % 50 == 0: print(f'Processed {len(train_labels)} examples.') train_labels = np.concatenate(train_labels, axis=0) train_features = np.concatenate(train_features, axis=0) print(f'Finish collecting train features of shape {train_features.shape}') # Collect test samples. dummy_audio = jnp.zeros( shape=(FLAGS.eval_batch_size, audio_frames, mel_filters, 1)) dummy_word_ids = jnp.zeros( shape=(FLAGS.eval_batch_size, num_tokens), dtype=jnp.int32) test_features = [] test_labels = [] print('Computing features on test') test_examples = iter(tfds.as_numpy(test_ds)) for test_ex in test_examples: vid_representation_test, _ = forward_apply(params=params, state=state, images=test_ex['video'], audio_spectrogram=dummy_audio, word_ids=dummy_word_ids) test_labels.append(test_ex['label']) test_features.append(vid_representation_test) if len(test_labels) % 50 == 0: print(f'Processed {len(test_labels)} examples.') test_features = np.concatenate(test_features, axis=0) test_labels = np.concatenate(test_labels, axis=0) print(f'Finish collecting test features of shape {test_features.shape}') # Train classifier print('Training linear classifier!') classifier = sklearn.svm.LinearSVC(C=sklearn_reg) scaler = preprocessing.StandardScaler().fit(train_features) train_features = scaler.transform(train_features) classifier.fit(train_features, train_labels.ravel()) print('Training done !') # Evaluation. test_features = scaler.transform(test_features) print('Running inference on train') pred_train = classifier.decision_function(train_features) print('Running inference on test') pred_test = classifier.decision_function(test_features) if FLAGS.num_test_windows > 1: pred_test = np.reshape( pred_test, (test_labels.shape[0], -1, pred_test.shape[1])) pred_test = pred_test.mean(axis=1) # Compute accuracies. metrics = compute_accuracy_metrics(pred_train, train_labels[:, None], prefix='train_') metrics.update( compute_accuracy_metrics(pred_test, test_labels[:, None], prefix='test_')) print(metrics) if __name__ == '__main__': app.run(main) ================================================ FILE: mmv/models/mm_embeddings.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Model for text-video-audio embeddings.""" from typing import Any, Dict, Optional import haiku as hk import jax import jax.numpy as jnp from mmv.models import normalization from mmv.models import resnet from mmv.models import s3d from mmv.models import tsm_resnet _DEFAULT_CFG_AUDTXT = { "totxt_head_mode": "linear", "toaud_head_mode": "linear", "toaud_bn_after_proj": False, "totxt_bn_after_proj": False, "embedding_dim": 512} _DEFAULT_CFG_VIDAUD = { "tovid_head_mode": "linear", "toaud_head_mode": "mlp@512", "tovid_bn_after_proj": False, "toaud_bn_after_proj": True, "embedding_dim": 512} _DEFAULT_CFG_VIDTXT = { "tovid_head_mode": "linear", "totxt_head_mode": "mlp@512", "tovid_bn_after_proj": False, "totxt_bn_after_proj": True, "embedding_dim": 512} _DEFAULT_CFG_BN = {"decay_rate": 0.9, "eps": 1e-5, "create_scale": True, "create_offset": True} def _setkey_if_not_exists(d, key, value): if key not in d: d[key] = value class AudioTextVideoEmbedding(hk.Module): """Module to fuse audio, text and video for joint embedding learning.""" def __init__( self, # Language parameters. word_embedding_matrix, sentence_dim=2048, # Audio parameters. audio_backbone="resnet18", audio_model_kwargs=None, # Vision parameters. visual_backbone="s3d", vision_model_kwargs=None, # Common parameters. mm_embedding_graph="fac_relu", use_xreplica_bn=True, bn_config_proj=None, config_video_text=None, config_video_audio=None, config_audio_text=None, use_audio_text=False, name="audio_text_video_model"): """Initialize the AudioTextVideoEmbedding class. Args: word_embedding_matrix: 2d matrix [vocab_size, embed_size] to embed words. sentence_dim: The dimension of the sentence representation. audio_backbone: Backbone for audio. audio_model_kwargs: Other specific parameters to pass to the audio module. visual_backbone: The video backbone. vision_model_kwargs: Other specific parameters to pass to the vision module. mm_embedding_graph: Embedding graph merging strategy. Can be `shared`, `disjoint` or `fac` (fac can be followed by an activation function name e.g. `fac_relu`). use_xreplica_bn: Whether or not to use the cross replica batch norm. bn_config_proj: BN config of the projection heads. config_video_text: Config for the video and the text branches. config_video_audio: Config for the video and the audio branches. config_audio_text: Config for the audio and the text branches. use_audio_text: Whether or not the audio text branch is used during training. name: graph name. """ super(AudioTextVideoEmbedding, self).__init__(name=name) # Audio parameters. self._audio_backbone = audio_backbone self._audio_model_kwargs = audio_model_kwargs # Language parameters. self._sentence_dim = sentence_dim self._word_embedding_matrix = word_embedding_matrix # Vision parameters. self._visual_backbone = visual_backbone self._vision_model_kwargs = vision_model_kwargs # Joint parameters. self._use_xreplica_bn = use_xreplica_bn if self._use_xreplica_bn: self._normalizer_name = "cross_replica_batch_norm" else: self._normalizer_name = "batch_norm" # Projection head parameters. if config_video_text is None: config_video_text = _DEFAULT_CFG_VIDTXT for k, v in _DEFAULT_CFG_VIDTXT.items(): _setkey_if_not_exists(config_video_text, k, v) self._cfg_vid_txt = config_video_text if config_video_audio is None: config_video_audio = _DEFAULT_CFG_VIDAUD for k, v in _DEFAULT_CFG_VIDAUD.items(): _setkey_if_not_exists(config_video_audio, k, v) self._cfg_vid_aud = config_video_audio if config_audio_text is None: config_audio_text = _DEFAULT_CFG_AUDTXT for k, v in _DEFAULT_CFG_AUDTXT.items(): _setkey_if_not_exists(config_audio_text, k, v) self._cfg_aud_txt = config_audio_text self._use_audio_text = use_audio_text self._mm_embedding_graph = mm_embedding_graph self._use_separate_heads = ( mm_embedding_graph == "disjoint" or mm_embedding_graph.startswith("fac")) self._bn_config_proj = bn_config_proj or _DEFAULT_CFG_BN def _get_pair_embedding_heads(self, embedding_dim_1, embedding_dim_2, mode1, mode2, use_bn_out1, use_bn_out2, name1, name2): embd1_module = EmbeddingModule( embedding_dim_1, mode=mode1, use_bn_out=use_bn_out1, bn_config=self._bn_config_proj, use_xreplica_bn=self._use_xreplica_bn, name=name1) if self._use_separate_heads: embd2_module = EmbeddingModule( embedding_dim_2, mode=mode2, use_bn_out=use_bn_out2, use_xreplica_bn=self._use_xreplica_bn, bn_config=self._bn_config_proj, name=name2) else: assert embedding_dim_1 == embedding_dim_2, ( "Using shared heads but inconsistent embedding dims where provided.") assert mode1 == mode2, ( "Using shared heads but inconsistent modes where provided.") assert use_bn_out1 == use_bn_out2, ( "Using shared heads but inconsistent bn conf where provided.") embd2_module = embd1_module return embd1_module, embd2_module def _activate_interaction(self, inputs, activation_fn, is_training, activation_module=None): """Activation function for the interaction modules.""" if activation_fn == "relu": inputs = jax.nn.relu(inputs) elif activation_fn == "bnrelu": if activation_module is None: activation_module = normalization.get_normalize_fn( normalizer_name=self._normalizer_name, normalizer_kwargs=self._bn_config_proj) inputs = activation_module(inputs, is_training=is_training) inputs = jax.nn.relu(inputs) else: raise ValueError(f"{activation_fn} not supported.") return inputs, activation_module def __call__(self, images, audio_spectrogram, word_ids, is_training, return_intermediate_audio=False): """Computes video, text and audio embeddings. Args: images: The videos tensor of shape [B1, T, H, W, 3] where B1 is the batch size, T is the number of frames per clip, H the height, W the width and 3 the rgb channels. audio_spectrogram: The audio tensor of shape [B2, T', F] where B2 is the batch size, T' is the number of temporal frames, F is the number of frequency frames. word_ids: If words_embeddings is set to None, it will use the word indices input instead so that we can compute the word embeddings within the model graph. The expected shape is [B3, N, D] where B3 is the batch size and N the maximum number of words per sentence. is_training: Whether or not to activate the graph in training mode. return_intermediate_audio: Return audio intermediate representation. Returns: if return_intermediate_audio = True audio_representation: the 4-dim audio representation taken before averaging over spatial dims in the Resnet. else visual_embd: a dict containing the video embeddings in audio and text of shape [B1, d_embd]. audio_embd: a dict containing the audio embeddings in video and text of shape [B2, d_embd]. txt_embd: a dict containing the text embeddings in video and audio of shape[B3, d_embd]. visual_representation: the video rep of shape [B1, d_visual]. audio_representation: the audio rep of shape [B2, d_audio]. """ # Computes the visual representation. video_cnn = VisualModule(backbone=self._visual_backbone, use_xreplica_bn=self._use_xreplica_bn, model_kwargs=self._vision_model_kwargs) visual_representation = video_cnn(images, is_training=is_training) # Projection heads: Video -> Text and Video -> Audio. vid2txt_embd_module, vid2aud_embd_module = self._get_pair_embedding_heads( embedding_dim_1=self._cfg_vid_txt["embedding_dim"], embedding_dim_2=self._cfg_vid_aud["embedding_dim"], mode1=self._cfg_vid_txt["totxt_head_mode"], mode2=self._cfg_vid_aud["toaud_head_mode"], use_bn_out1=self._cfg_vid_txt["totxt_bn_after_proj"], use_bn_out2=self._cfg_vid_aud["toaud_bn_after_proj"], name1="vis_embd", name2="vid2audio_embd") video_embd = {} if self._mm_embedding_graph in ["shared", "disjoint"]: video_embd["toaud"] = vid2aud_embd_module(visual_representation, is_training=is_training) video_embd["totxt"] = vid2txt_embd_module(visual_representation, is_training=is_training) elif self._mm_embedding_graph.startswith("fac"): # Activation function if specificed in the name, e.g. fac_relu. activation_fn = None if len(self._mm_embedding_graph.split("_")) == 2: activation_fn = self._mm_embedding_graph.split("_")[1] video_embd["toaud"] = vid2aud_embd_module(visual_representation, is_training=is_training) fine_rep = video_embd["toaud"] # Eventually activate the fine grained representation. if activation_fn: fine_rep, activation_module = self._activate_interaction( inputs=fine_rep, activation_fn=activation_fn, is_training=is_training) video_embd["totxt"] = vid2txt_embd_module(fine_rep, is_training=is_training) else: raise ValueError( f"{self._mm_embedding_graph} is not a valid MM embedding graph.") # Computes the audio representation. audio_cnn = AudioModule(backbone=self._audio_backbone, use_xreplica_bn=self._use_xreplica_bn, model_kwargs=self._audio_model_kwargs) if return_intermediate_audio: return audio_cnn(audio_spectrogram, is_training=is_training, return_intermediate=True) audio_representation = audio_cnn(audio_spectrogram, is_training=is_training) # Projection heads: Audio -> Video and Audio -> Text. aud2vid_embd_module, aud2txt_embd_module = self._get_pair_embedding_heads( embedding_dim_1=self._cfg_vid_aud["embedding_dim"], embedding_dim_2=self._cfg_aud_txt["embedding_dim"], mode1=self._cfg_vid_aud["tovid_head_mode"], mode2=self._cfg_aud_txt["totxt_head_mode"], use_bn_out1=self._cfg_vid_aud["tovid_bn_after_proj"], use_bn_out2=self._cfg_aud_txt["totxt_bn_after_proj"], name1="audio_embd", name2="audio2txt_embd") audio_embd = {} audio_embd["tovid"] = aud2vid_embd_module(audio_representation, is_training=is_training) # Computes the projection to the text domain depending on the MM graph mode. if (self._mm_embedding_graph.startswith("fac") and (self._use_audio_text or (not is_training))): # In case the audio text branch is not used during training, we do that # only at eval time (is_training=False) in order to not pollute the BN # stats in vid2txt_embd_module with audio features during training. fine_rep_audio = audio_embd["tovid"] if activation_fn: fine_rep_audio, _ = self._activate_interaction( inputs=fine_rep_audio, activation_fn=activation_fn, is_training=is_training, activation_module=activation_module) audio_embd["totxt"] = vid2txt_embd_module(fine_rep_audio, is_training=is_training) else: audio_embd["totxt"] = aud2txt_embd_module(audio_representation, is_training=is_training) # Computes the text representation. txt_representation = TextModule( sentence_dim=self._sentence_dim, word_embedding_matrix=self._word_embedding_matrix)( word_ids, is_training=is_training) # Projection heads: Text -> Video and Text -> Audio. txt2vid_embd_module, txt2aud_embd_module = self._get_pair_embedding_heads( embedding_dim_1=self._cfg_vid_txt["embedding_dim"], embedding_dim_2=self._cfg_aud_txt["embedding_dim"], mode1=self._cfg_vid_txt["tovid_head_mode"], mode2=self._cfg_aud_txt["toaud_head_mode"], use_bn_out1=self._cfg_vid_txt["tovid_bn_after_proj"], use_bn_out2=self._cfg_aud_txt["toaud_bn_after_proj"], name1="txt_embd", name2="txt2audio_embd") txt_embd = {} txt_embd["tovid"] = txt2vid_embd_module(txt_representation, is_training=is_training) txt_embd["toaud"] = txt2aud_embd_module(txt_representation, is_training=is_training) return { "vid_embd": video_embd, "aud_embd": audio_embd, "txt_embd": txt_embd, "vid_repr": visual_representation, "aud_repr": audio_representation, } class EmbeddingModule(hk.Module): """Final Embedding module.""" def __init__(self, embedding_dim: int, mode: str = "linear", use_bn_out: bool = False, bn_config: Optional[Dict[str, Any]] = None, use_xreplica_bn: bool = True, name="embedding_module"): self._embedding_dim = embedding_dim self._use_bn_out = use_bn_out self._mode = mode # Set default BN config. bn_config = bn_config or _DEFAULT_CFG_BN if use_xreplica_bn: normalizer_name = "cross_replica_batch_norm" else: normalizer_name = "batch_norm" self._batch_norm = normalization.get_normalize_fn( normalizer_name=normalizer_name, normalizer_kwargs=bn_config) super(EmbeddingModule, self).__init__(name=name) def __call__(self, input_feature, is_training): if self._mode == "linear": proj = hk.Linear(self._embedding_dim, name="final_projection") embedding = proj(input_feature) elif self._mode.startswith("mlp"): if "@" not in self._mode: raise ValueError( ("Please specify the inner dimensions of the MLP with `@` symbol" "e.g. mlp@512 or mlp@512@256 for a 2 layer MLP.")) inner_dims = [int(dim) for dim in self._mode.split("@")[1:]] embedding = input_feature for inner_dim in inner_dims: embedding = hk.Linear(inner_dim, with_bias=True, name="final_projection_inner")(embedding) if not self._mode.startswith("mlp_nobn"): embedding = self._batch_norm(embedding, is_training=is_training) embedding = jax.nn.relu(embedding) # Final projection. embedding = hk.Linear(self._embedding_dim, name="final_projection", with_bias=not self._use_bn_out)(embedding) else: raise NotImplementedError if self._use_bn_out: embedding = self._batch_norm(embedding, is_training=is_training) return embedding class VisualModule(hk.Module): """The visual module selects which CNN backbone to connect to the graph.""" def __init__(self, use_xreplica_bn=True, backbone="s3d", model_kwargs=None, name="visual_module"): self._backbone = backbone super(VisualModule, self).__init__(name=name) if model_kwargs is None: model_kwargs = {} bn_config = model_kwargs.get("bn_config", _DEFAULT_CFG_BN) if use_xreplica_bn: normalizer_name = "cross_replica_batch_norm" else: normalizer_name = "batch_norm" normalize_fn = normalization.get_normalize_fn( normalizer_name=normalizer_name, normalizer_kwargs=bn_config) if backbone == "s3d": self._cnn = s3d.S3D(normalize_fn=normalize_fn) elif backbone == "resnet50tsm": width_mult = model_kwargs.get("width_mult", 1) self._cnn = tsm_resnet.TSMResNetV2( normalize_fn=normalize_fn, depth=50, num_frames=model_kwargs["n_frames"], width_mult=width_mult) else: raise NotImplementedError def __call__(self, images, is_training): """Connects graph to images.""" features = self._cnn(images, is_training=is_training) return features class AudioModule(hk.Module): """The audio module selects which CNN backbone to connect to the graph.""" def __init__(self, backbone="resnet18", use_xreplica_bn=True, model_kwargs=None, name="audio_module"): super(AudioModule, self).__init__(name=name) model_kwargs = model_kwargs or {} bn_config = model_kwargs.get("bn_config", _DEFAULT_CFG_BN) backbone_to_depth = { "resnet18": 18, "resnet34": 34, "resnet50": 50, "resnet101": 101 } assert backbone in backbone_to_depth, ( f"backbone should be in {backbone_to_depth.keys()}") if use_xreplica_bn: normalizer_name = "cross_replica_batch_norm" else: normalizer_name = "batch_norm" self._cnn = resnet.ResNetV2( depth=backbone_to_depth[backbone], normalize_fn=normalization.get_normalize_fn( normalizer_name=normalizer_name, normalizer_kwargs=bn_config), num_classes=None) def __call__(self, audio_spectrogram, is_training, return_intermediate=False): """Connects graph to audio spectrogram.""" final_endpoint = "output" if return_intermediate: final_endpoint = "last_conv" return self._cnn(audio_spectrogram, is_training=is_training, final_endpoint=final_endpoint) class TextModule(hk.Module): """Text module computes the sentences representation.""" def __init__(self, word_embedding_matrix, sentence_dim=1024, name="text_module"): """Initialize text module. Args: word_embedding_matrix: 2d matrix [vocab_size, embed_size] to embed words. sentence_dim: dimension of sentence representation. name: module name. """ super(TextModule, self).__init__(name=name) self._word_embedding_module = hk.Embed( embedding_matrix=word_embedding_matrix) self._conv1d_module = hk.Conv1D(sentence_dim, 1, name="text_conv1") def __call__(self, word_ids, is_training): """Connects graph to sentence representation.""" word_embeddings = self._word_embedding_module(word_ids) word_embeddings = jax.lax.stop_gradient(word_embeddings) output = self._conv1d_module(word_embeddings) output = jax.nn.relu(output) output = jnp.amax(output, axis=1) return output ================================================ FILE: mmv/models/normalization.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Normalize functions constructors.""" from typing import Any, Dict, Optional, Sequence, Union import haiku as hk from jax import numpy as jnp from mmv.models import types class _BatchNorm(hk.BatchNorm): """A `hk.BatchNorm` with adapted default arguments.""" def __init__(self, create_scale: bool = True, create_offset: bool = True, decay_rate: float = 0.9, eps: float = 1e-5, test_local_stats: bool = False, **kwargs): # Check args. if kwargs.get('cross_replica_axis', None) is not None: raise ValueError( 'Attempting to use \'batch_norm\' normalizer, but specifying ' '`cross_replica_axis`. If you want this behavior use ' '`normalizer=\'cross_replica_batch_norm\'` directly.') self._test_local_stats = test_local_stats super().__init__(create_scale=create_scale, create_offset=create_offset, decay_rate=decay_rate, eps=eps, **kwargs) def __call__(self, x: types.TensorLike, is_training: bool) -> jnp.ndarray: return super().__call__(x, is_training, test_local_stats=self._test_local_stats) class _CrossReplicaBatchNorm(hk.BatchNorm): """A `hk.BatchNorm` with adapted default arguments for cross replica.""" def __init__(self, create_scale: bool = True, create_offset: bool = True, decay_rate: float = 0.9, eps: float = 1e-5, test_local_stats: bool = False, **kwargs): # Check args. if 'cross_replica_axis' in kwargs and kwargs['cross_replica_axis'] is None: raise ValueError( 'Attempting to use \'cross_replica_batch_norm\' normalizer, but ' 'specifying `cross_replica_axis` to be None. If you want this ' 'behavior use `normalizer=\'batch_norm\'` directly.') self._test_local_stats = test_local_stats kwargs['cross_replica_axis'] = kwargs.get('cross_replica_axis', 'i') super().__init__(create_scale=create_scale, create_offset=create_offset, decay_rate=decay_rate, eps=eps, **kwargs) def __call__(self, x: types.TensorLike, is_training: bool) -> jnp.ndarray: return super().__call__(x, is_training, test_local_stats=self._test_local_stats) class _LayerNorm(hk.LayerNorm): """A `hk.LayerNorm` accepting (and discarding) an `is_training` argument.""" def __init__(self, axis: Union[int, Sequence[int]] = (1, 2), create_scale: bool = True, create_offset: bool = True, **kwargs): super().__init__(axis=axis, create_scale=create_scale, create_offset=create_offset, **kwargs) def __call__(self, # pytype: disable=signature-mismatch # overriding-parameter-count-checks x: types.TensorLike, is_training: bool) -> jnp.ndarray: del is_training # Unused. return super().__call__(x) _NORMALIZER_NAME_TO_CLASS = { 'batch_norm': _BatchNorm, 'cross_replica_batch_norm': _CrossReplicaBatchNorm, 'layer_norm': _LayerNorm, } def get_normalize_fn( normalizer_name: str = 'batch_norm', normalizer_kwargs: Optional[Dict[str, Any]] = None, ) -> types.NormalizeFn: """Handles NormalizeFn creation. These functions are expected to be used as part of Haiku model. On each application of the returned normalization_fn, a new Haiku layer will be added to the model. Args: normalizer_name: The name of the normalizer to be constructed. normalizer_kwargs: The kwargs passed to the normalizer constructor. Returns: A `types.NormalizeFn` that when applied will create a new layer. Raises: ValueError: If `normalizer_name` is unknown. """ # Check args. if normalizer_name not in _NORMALIZER_NAME_TO_CLASS: raise ValueError(f'Unrecognized `normalizer_name` {normalizer_name}.') normalizer_class = _NORMALIZER_NAME_TO_CLASS[normalizer_name] normalizer_kwargs = normalizer_kwargs or dict() return lambda *a, **k: normalizer_class(**normalizer_kwargs)(*a, **k) # pylint: disable=unnecessary-lambda ================================================ FILE: mmv/models/resnet.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ResNet V2 modules. Equivalent to hk.Resnet except accepting a final_endpoint to return intermediate activations. """ from typing import Optional, Sequence, Text, Type, Union import haiku as hk import jax import jax.numpy as jnp from mmv.models import types class BottleneckBlock(hk.Module): """Implements a bottleneck residual block (ResNet50 and ResNet101).""" # pylint:disable=g-bare-generic def __init__(self, channels: int, stride: Union[int, Sequence[int]], use_projection: bool, normalize_fn: Optional[types.NormalizeFn] = None, name: Optional[Text] = None): super(BottleneckBlock, self).__init__(name=name) self._channels = channels self._stride = stride self._use_projection = use_projection self._normalize_fn = normalize_fn if self._use_projection: self._proj_conv = hk.Conv2D( output_channels=channels, kernel_shape=1, stride=stride, with_bias=False, padding='SAME', name='shortcut_conv') self._conv_0 = hk.Conv2D( output_channels=channels // 4, kernel_shape=1, stride=1, with_bias=False, padding='SAME', name='conv_0') self._conv_1 = hk.Conv2D( output_channels=channels // 4, kernel_shape=3, stride=stride, with_bias=False, padding='SAME', name='conv_1') self._conv_2 = hk.Conv2D( output_channels=channels, kernel_shape=1, stride=1, with_bias=False, padding='SAME', name='conv_2') def __call__(self, inputs, is_training): net = inputs shortcut = inputs for i, conv_i in enumerate([self._conv_0, self._conv_1, self._conv_2]): if self._normalize_fn is not None: net = self._normalize_fn(net, is_training=is_training) net = jax.nn.relu(net) if i == 0 and self._use_projection: shortcut = self._proj_conv(net) # Now do the convs. net = conv_i(net) return net + shortcut class BasicBlock(hk.Module): """Implements a basic residual block (ResNet18 and ResNet34).""" # pylint:disable=g-bare-generic def __init__(self, channels: int, stride: Union[int, Sequence[int]], use_projection: bool, normalize_fn: Optional[types.NormalizeFn] = None, name: Optional[Text] = None): super(BasicBlock, self).__init__(name=name) self._channels = channels self._stride = stride self._use_projection = use_projection self._normalize_fn = normalize_fn if self._use_projection: self._proj_conv = hk.Conv2D( output_channels=channels, kernel_shape=1, stride=stride, with_bias=False, padding='SAME', name='shortcut_conv') self._conv_0 = hk.Conv2D( output_channels=channels, kernel_shape=1, stride=1, with_bias=False, padding='SAME', name='conv_0') self._conv_1 = hk.Conv2D( output_channels=channels, kernel_shape=3, stride=stride, with_bias=False, padding='SAME', name='conv_1') def __call__(self, inputs, is_training): net = inputs shortcut = inputs for i, conv_i in enumerate([self._conv_0, self._conv_1]): if self._normalize_fn is not None: net = self._normalize_fn(net, is_training=is_training) net = jax.nn.relu(net) if i == 0 and self._use_projection: shortcut = self._proj_conv(net) # Now do the convs. net = conv_i(net) return net + shortcut class ResNetUnit(hk.Module): """Unit (group of blocks) for ResNet.""" # pylint:disable=g-bare-generic def __init__(self, channels: int, num_blocks: int, stride: Union[int, Sequence[int]], block_module: Type[BottleneckBlock], normalize_fn: Optional[types.NormalizeFn] = None, name: Optional[Text] = None, remat: bool = False): super(ResNetUnit, self).__init__(name=name) self._channels = channels self._num_blocks = num_blocks self._stride = stride self._normalize_fn = normalize_fn self._block_module = block_module self._remat = remat def __call__(self, inputs, is_training): input_channels = inputs.shape[-1] self._blocks = [] for id_block in range(self._num_blocks): use_projection = id_block == 0 and self._channels != input_channels self._blocks.append( self._block_module( channels=self._channels, stride=self._stride if id_block == 0 else 1, use_projection=use_projection, normalize_fn=self._normalize_fn, name='block_%d' % id_block)) net = inputs for block in self._blocks: if self._remat: # Note: we can ignore cell-var-from-loop because the lambda is evaluated # inside every iteration of the loop. This is needed to go around the # way variables are passed to jax.remat. net = hk.remat(lambda x: block(x, is_training=is_training))(net) # pylint: disable=cell-var-from-loop else: net = block(net, is_training=is_training) return net class ResNetV2(hk.Module): """ResNetV2 model.""" # Endpoints of the model in order. VALID_ENDPOINTS = ( 'resnet_stem', 'resnet_unit_0', 'resnet_unit_1', 'resnet_unit_2', 'resnet_unit_3', 'last_conv', 'output', ) # pylint:disable=g-bare-generic def __init__(self, depth=50, num_classes: Optional[int] = 1000, width_mult: int = 1, normalize_fn: Optional[types.NormalizeFn] = None, name: Optional[Text] = None, remat: bool = False): """Creates ResNetV2 Haiku module. Args: depth: depth of the desired ResNet (18, 34, 50, 101, 152 or 202). num_classes: (int) Number of outputs in final layer. If None will not add a classification head and will return the output embedding. width_mult: multiplier for channel width. normalize_fn: normalization function, see helpers/utils.py name: Name of the module. remat: Whether to rematerialize intermediate activations (saves memory). """ super(ResNetV2, self).__init__(name=name) self._normalize_fn = normalize_fn self._num_classes = num_classes self._width_mult = width_mult self._strides = [1, 2, 2, 2] num_blocks = { 18: [2, 2, 2, 2], 34: [3, 4, 6, 3], 50: [3, 4, 6, 3], 101: [3, 4, 23, 3], 152: [3, 8, 36, 3], 200: [3, 24, 36, 3], } if depth not in num_blocks: raise ValueError( f'`depth` should be in {list(num_blocks.keys())} ({depth} given).') self._num_blocks = num_blocks[depth] if depth >= 50: self._block_module = BottleneckBlock self._channels = [256, 512, 1024, 2048] else: self._block_module = BasicBlock self._channels = [64, 128, 256, 512] self._initial_conv = hk.Conv2D( output_channels=64 * self._width_mult, kernel_shape=7, stride=2, with_bias=False, padding='SAME', name='initial_conv') if remat: self._initial_conv = hk.remat(self._initial_conv) self._block_groups = [] for i in range(4): self._block_groups.append( ResNetUnit( channels=self._channels[i] * self._width_mult, num_blocks=self._num_blocks[i], block_module=self._block_module, stride=self._strides[i], normalize_fn=self._normalize_fn, name='block_group_%d' % i, remat=remat)) if num_classes is not None: self._logits_layer = hk.Linear( output_size=num_classes, w_init=jnp.zeros, name='logits') def __call__(self, inputs, is_training, final_endpoint='output'): self._final_endpoint = final_endpoint net = self._initial_conv(inputs) net = hk.max_pool( net, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') end_point = 'resnet_stem' if self._final_endpoint == end_point: return net for i_group, block_group in enumerate(self._block_groups): net = block_group(net, is_training=is_training) end_point = f'resnet_unit_{i_group}' if self._final_endpoint == end_point: return net end_point = 'last_conv' if self._final_endpoint == end_point: return net if self._normalize_fn is not None: net = self._normalize_fn(net, is_training=is_training) net = jax.nn.relu(net) # The actual representation net = jnp.mean(net, axis=[1, 2]) assert self._final_endpoint == 'output' if self._num_classes is None: # If num_classes was None, we just return the output # of the last block, without fully connected layer. return net return self._logits_layer(net) ================================================ FILE: mmv/models/s3d.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A Haiku S3D model.""" import collections from typing import Optional, Sequence import haiku as hk import jax from jax import numpy as jnp from mmv.models import types class _MaxPool(hk.MaxPool): """A `hk.MaxPool` accepting (and discarding) an `is_training` argument.""" def __call__(self, x: types.TensorLike, is_training: bool = True) -> jnp.ndarray: del is_training # Unused. return super().__call__(x) def self_gating(inputs: types.TensorLike) -> jnp.ndarray: """Feature gating as used in S3D-G. Transforms the input features by aggregating features from all spatial and temporal locations, and applying gating conditioned on the aggregated features. More details can be found at: https://arxiv.org/abs/1712.04851. Args: inputs: A 5-D float array of shape `[B, T, H, W, C]`. Returns: A tensor with the same shape as input_tensor. Raises: ValueError: If `inputs` has the wrong shape. """ if inputs.ndim != 5: raise ValueError( f'Expected an input of shape `[B, T, H, W, C]` but got {inputs.shape}.') input_shape = inputs.shape num_channels = input_shape[4] spatiotemporal_average = jnp.mean(inputs, axis=(1, 2, 3)) weights = hk.Linear(num_channels, name='self_gating')(spatiotemporal_average) weights = jax.nn.sigmoid(weights) return jnp.multiply(weights[:, None, None, None, :], inputs) class SUnit3D(hk.Module): """Base 3d Unit combining Conv3d + Batch Norm + non-linearity.""" def __init__( self, output_channels: int, kernel_shape: Sequence[int] = (1, 1, 1), stride: Sequence[int] = (1, 1, 1), with_bias: bool = False, separable: bool = False, normalize_fn: Optional[types.NormalizeFn] = None, activation_fn: Optional[types.ActivationFn] = jax.nn.relu, self_gating_fn: Optional[types.GatingFn] = None, name='SUnit3D'): """Initializes the SUnit3D module. Args: output_channels: Number of output channels. kernel_shape: The shape of the kernel. A sequence of length 3. stride: Stride for the kernel. A sequence of length 3. with_bias: Whether to add a bias to the convolution. separable: Whether to use separable. normalize_fn: Function used for normalization. activation_fn: Function used as non-linearity. self_gating_fn: Function used for self-gating. name: The name of the module. Raises: ValueError: If `kernel_shape` or `stride` has the wrong shape. """ super().__init__(name=name) # Check args. if len(kernel_shape) != 3: raise ValueError( 'Given `kernel_shape` must have length 3 but has length ' f'{len(kernel_shape)}.') if len(stride) != 3: raise ValueError( f'Given `stride` must have length 3 but has length {len(stride)}.') self._normalize_fn = normalize_fn self._activation_fn = activation_fn self._self_gating_fn = self_gating_fn k0, k1, k2 = kernel_shape if separable and k1 != 1: spatial_kernel_shape = [1, k1, k2] temporal_kernel_shape = [k0, 1, 1] s0, s1, s2 = stride spatial_stride = [1, s1, s2] temporal_stride = [s0, 1, 1] self._convolutions = [ hk.Conv3D( output_channels=output_channels, kernel_shape=spatial_kernel_shape, stride=spatial_stride, padding='SAME', with_bias=with_bias), hk.Conv3D( output_channels=output_channels, kernel_shape=temporal_kernel_shape, stride=temporal_stride, padding='SAME', with_bias=with_bias) ] else: self._convolutions = [ hk.Conv3D( output_channels=output_channels, kernel_shape=kernel_shape, stride=stride, padding='SAME', with_bias=with_bias)] def __call__( self, inputs: types.TensorLike, is_training: bool) -> jnp.ndarray: """Connects the module to inputs. Args: inputs: A 5-D float array of shape `[B, T, H, W, C]`. is_training: Whether to use training mode. Returns: A 5-D float array of shape `[B, new_t, new_h, new_w, output_channels]`. """ x = inputs for conv in self._convolutions: x = conv(x) if self._normalize_fn is not None: x = self._normalize_fn(x, is_training=is_training) if self._activation_fn is not None: x = self._activation_fn(x) if self._self_gating_fn: x = self._self_gating_fn(x) return x # pytype: disable=bad-return-type # jax-devicearray class InceptionBlockV13D(hk.Module): """A 3D Inception v1 block. This allows use of separable 3D convolutions and self-gating, as described in: Rethinking Spatiotemporal Feature Learning For Video Understanding. Saining Xie, Chen Sun, Jonathan Huang, Zhuowen Tu and Kevin Murphy. https://arxiv.org/abs/1712.04851. """ def __init__(self, output_channels: Sequence[int], normalize_fn: Optional[types.NormalizeFn], temporal_kernel_size: int = 3, self_gating_fn: Optional[types.GatingFn] = None, name: str = 'InceptionBlockV13D'): """Initializes the InceptionBlockV13D module. Args: output_channels: The size of the output channels of each block, ordered as [Conv2d_0a_1x1, Conv2d_0a_1x1, Conv2d_0b_3x3, Conv2d_0a_1x1, Conv2d_0b_3x3, Conv2d_0b_1x1] normalize_fn: Function used for normalization. temporal_kernel_size: The size of the temporal convolutional filters in the conv3d_spatiotemporal blocks. self_gating_fn: Function which optionally performs self-gating. If `None`, no self-gating is applied. name: The name of the module. Raises: ValueError: If `output_channels` has the wrong shape. """ super().__init__(name=name) # Check args. if len(output_channels) != 6: raise ValueError( 'Given `output_channels` must have length 6 but has length ' f'{len(output_channels)}.') self._output_channels = output_channels self._normalize_fn = normalize_fn self._temporal_kernel_size = temporal_kernel_size if self_gating_fn is None: self._self_gating_fn = lambda x: x else: self._self_gating_fn = self_gating_fn def __call__( self, inputs: types.TensorLike, is_training: bool) -> jnp.ndarray: """Connects the module to inputs. Args: inputs: A 5-D float array of shape `[B, T, H, W, C]`. is_training: Whether to use training mode. Returns: A 5-D float array of shape `[B, new_t, new_h, new_w, sum(output_channels)]`. """ # Branch 0 branch_0 = SUnit3D( output_channels=self._output_channels[0], kernel_shape=(1, 1, 1), separable=False, normalize_fn=self._normalize_fn, self_gating_fn=self._self_gating_fn, name='Branch_0_Conv2d_0a_1x1')( inputs, is_training=is_training) # Branch 1 branch_1 = SUnit3D( output_channels=self._output_channels[1], kernel_shape=(1, 1, 1), separable=False, normalize_fn=self._normalize_fn, self_gating_fn=None, name='Branch_1_Conv2d_0a_1x1')( inputs, is_training=is_training) branch_1 = SUnit3D( output_channels=self._output_channels[2], kernel_shape=(self._temporal_kernel_size, 3, 3), separable=True, normalize_fn=self._normalize_fn, self_gating_fn=self._self_gating_fn, name='Branch_1_Conv2d_0b_3x3')( branch_1, is_training=is_training) # Branch 2 branch_2 = SUnit3D( output_channels=self._output_channels[3], kernel_shape=(1, 1, 1), separable=False, normalize_fn=self._normalize_fn, self_gating_fn=None, name='Branch_2_Conv2d_0a_1x1')( inputs, is_training=is_training) branch_2 = SUnit3D( output_channels=self._output_channels[4], kernel_shape=(self._temporal_kernel_size, 3, 3), separable=True, normalize_fn=self._normalize_fn, self_gating_fn=self._self_gating_fn, name='Branch_2_Conv2d_0b_3x3')( branch_2, is_training=is_training) # Branch 3 branch_3 = hk.MaxPool( window_shape=(1, 3, 3, 3, 1), strides=(1, 1, 1, 1, 1), padding='SAME', name='Branch_3_MaxPool_0a_3x3')( inputs) branch_3 = SUnit3D( output_channels=self._output_channels[5], kernel_shape=(1, 1, 1), separable=False, normalize_fn=self._normalize_fn, self_gating_fn=self._self_gating_fn, name='Branch_3_Conv2d_0b_1x1')( branch_3, is_training=is_training) return jnp.concatenate((branch_0, branch_1, branch_2, branch_3), axis=4) _Layer = collections.namedtuple('_Layer', ('name', 'module', 'kwargs')) class S3D(hk.Module): """S3D architecture. Any intermediary representation can be obtained by choosing one of the valid `final_endpoint`s. The final value returned by this model (when 'Embeddings' is used as `final_endpoint`) is a single 1-D representation for each video in the batch. Another layer can be externally added on top of that to obtain logits. """ # Endpoints of the model in order. VALID_ENDPOINTS = ( 'Conv2d_1a_7x7', 'MaxPool_2a_3x3', 'Conv2d_2b_1x1', 'Conv2d_2c_3x3', 'MaxPool_3a_3x3', 'Mixed_3b', 'Mixed_3c', 'MaxPool_4a_3x3', 'Mixed_4b', 'Mixed_4c', 'Mixed_4d', 'Mixed_4e', 'Mixed_4f', 'MaxPool_5a_2x2', 'Mixed_5b', 'Mixed_5c', 'Embeddings', ) def __init__(self, normalize_fn: Optional[types.NormalizeFn] = None, first_temporal_kernel_size: int = 7, temporal_conv_startat: Optional[str] = 'Conv2d_2c_3x3', gating_startat: Optional[str] = 'Conv2d_2c_3x3', name='S3D'): """Initializes the S3D module. Args: normalize_fn: Function used for normalization. first_temporal_kernel_size: Specifies the temporal kernel size for the first conv3d filter. A larger value slows down the model but provides little accuracy improvement. Must be set to one of 1, 3, 5 or 7. temporal_conv_startat: Specifies the first conv block to use separable 3D convs rather than 2D convs (implemented as [1, k, k] 3D conv). This is used to construct the inverted pyramid models. 'Conv2d_2c_3x3' is the first valid block to use separable 3D convs. If provided block name is not present, all valid blocks will use separable 3D convs. gating_startat: Specifies the first conv block to use self gating. 'Conv2d_2c_3x3' is the first valid block to use self gating. If provided block name is not present, all valid blocks will use separable 3D convs. name: The name of the module. Raises: ValueError: If `temporal_conv_startat`, `gating_startat` or `first_temporal_kernel_size` is not recognized. """ super().__init__(name=name) self._first_temporal_kernel_size = first_temporal_kernel_size self._temporal_conv_startat = temporal_conv_startat self._gating_startat = gating_startat self._normalize_fn = normalize_fn if (temporal_conv_startat not in self.VALID_ENDPOINTS and temporal_conv_startat is not None): raise ValueError( f'Provided `temporal_conv_startat`: {temporal_conv_startat} not ' f'valid. It must be one of: {self.VALID_ENDPOINTS}, or `None`.') if (gating_startat not in self.VALID_ENDPOINTS and gating_startat is not None): raise ValueError( f'Provided `gating_startat`: {gating_startat} not valid. ' f'It must be one of: {self.VALID_ENDPOINTS}, or `None`.') if first_temporal_kernel_size not in [1, 3, 5, 7]: raise ValueError('`first_temporal_kernel_size` can only be 1, 3, 5 or 7.') def __call__(self, inputs: types.TensorLike, is_training: bool, final_endpoint: str = 'Embeddings') -> jnp.ndarray: """Connects the model to inputs. Args: inputs: A 5-D float array of shape `[B, T, H, W, C]`. is_training: Whether to use training mode. final_endpoint: Up to which endpoint to run / return. Returns: A 5-D float array of shape `[B, new_t, new_h, new_w, sum(output_channels)]`. Returns: Network output at location `final_endpoint`. A float array which shape depends on `final_endpoint`. Raises: ValueError: If `final_endpoint` is not recognized. """ if final_endpoint not in self.VALID_ENDPOINTS: raise ValueError(f'Provided final_endpoint: {final_endpoint} not valid.' f' It must be one of: {self.VALID_ENDPOINTS}') x = inputs # We define layers with tuples (name, module, kwargs) # Not all kwargs are present, as we will need to fill in certain properties # as we move down the network. layers = [] # The first layer is conditional on the input data shape: the channel size # is used to identify whether the `space_to_depth` transformation has been # applied to the input. This is used to speed up computation on TPUs. if x.shape[-1] == 3: layers.append( _Layer('Conv2d_1a_7x7', SUnit3D, dict(output_channels=64, stride=(2, 2, 2), separable=False, kernel_shape=(self._first_temporal_kernel_size, 7, 7), normalize_fn=self._normalize_fn))) else: layers.append( _Layer('Conv2d_1a_7x7', SUnit3D, dict(output_channels=64, kernel_shape=(2, 4, 4), stride=(1, 1, 1), separable=False, normalize_fn=self._normalize_fn))) layers.extend([ _Layer('MaxPool_2a_3x3', _MaxPool, dict(window_shape=(1, 1, 3, 3, 1), strides=(1, 1, 2, 2, 1), padding='SAME')), _Layer('Conv2d_2b_1x1', SUnit3D, dict(output_channels=64, kernel_shape=(1, 1, 1), normalize_fn=self._normalize_fn)), _Layer('Conv2d_2c_3x3', SUnit3D, dict(output_channels=192, separable=True, normalize_fn=self._normalize_fn)), _Layer('MaxPool_3a_3x3', _MaxPool, dict(window_shape=(1, 1, 3, 3, 1), strides=(1, 1, 2, 2, 1), padding='SAME')), _Layer('Mixed_3b', InceptionBlockV13D, dict(output_channels=(64, 96, 128, 16, 32, 32), normalize_fn=self._normalize_fn)), _Layer('Mixed_3c', InceptionBlockV13D, dict(output_channels=(128, 128, 192, 32, 96, 64), normalize_fn=self._normalize_fn)), _Layer('MaxPool_4a_3x3', _MaxPool, dict(window_shape=(1, 3, 3, 3, 1), strides=(1, 2, 2, 2, 1), padding='SAME')), _Layer('Mixed_4b', InceptionBlockV13D, dict(output_channels=(192, 96, 208, 16, 48, 64), normalize_fn=self._normalize_fn)), _Layer('Mixed_4c', InceptionBlockV13D, dict(output_channels=(160, 112, 224, 24, 64, 64), normalize_fn=self._normalize_fn)), _Layer('Mixed_4d', InceptionBlockV13D, dict(output_channels=(128, 128, 256, 24, 64, 64), normalize_fn=self._normalize_fn)), _Layer('Mixed_4e', InceptionBlockV13D, dict(output_channels=(112, 144, 288, 32, 64, 64), normalize_fn=self._normalize_fn)), _Layer('Mixed_4f', InceptionBlockV13D, dict(output_channels=(256, 160, 320, 32, 128, 128), normalize_fn=self._normalize_fn)), _Layer('MaxPool_5a_2x2', _MaxPool, dict(window_shape=(1, 2, 2, 2, 1), strides=(1, 2, 2, 2, 1), padding='SAME')), _Layer('Mixed_5b', InceptionBlockV13D, dict(output_channels=(256, 160, 320, 32, 128, 128), normalize_fn=self._normalize_fn)), _Layer('Mixed_5c', InceptionBlockV13D, dict(output_channels=(384, 192, 384, 48, 128, 128), normalize_fn=self._normalize_fn)), ]) # These parameters may change thoughout the computation. self_gating_fn = None temporal_kernel_size = 1 # Iterate over layers. for layer in layers: # Update if layer.name == self._gating_startat: self_gating_fn = self_gating if layer.name == self._temporal_conv_startat: temporal_kernel_size = 3 kwargs = layer.kwargs if layer.module is SUnit3D: kwargs['self_gating_fn'] = self_gating_fn if 'kernel_shape' not in kwargs: kwargs['kernel_shape'] = (temporal_kernel_size, 3, 3) elif layer.module is InceptionBlockV13D: kwargs['self_gating_fn'] = self_gating_fn kwargs['temporal_kernel_size'] = temporal_kernel_size module = layer.module(name=layer.name, **kwargs) x = module(x, is_training=is_training) if final_endpoint == layer.name: return x assert final_endpoint == 'Embeddings' return jnp.mean(x, axis=(1, 2, 3)) ================================================ FILE: mmv/models/s3d_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for s3d.""" from absl.testing import absltest from absl.testing import parameterized import haiku as hk import jax import numpy as np from mmv.models import normalization from mmv.models import s3d class _CallableS3D: """Wrapper around S3D that take care of parameter book keeping.""" def __init__(self, *args, **kwargs): self._model = hk.transform_with_state( lambda *a, **k: # pylint: disable=g-long-lambda,unnecessary-lambda s3d.S3D( normalize_fn=normalization.get_normalize_fn(), *args, **kwargs)(*a, **k)) self._rng = jax.random.PRNGKey(42) self._params, self._state = None, None def init(self, inputs, **kwargs): self._params, self._state = self._model.init( self._rng, inputs, is_training=True, **kwargs) def __call__(self, inputs, **kwargs): if self._params is None: self.init(inputs) output, _ = self._model.apply( self._params, self._state, self._rng, inputs, **kwargs) return output class S3DTest(parameterized.TestCase): # Testing all layers is quite slow, added in comments for completeness. @parameterized.parameters( # dict(endpoint='Conv2d_1a_7x7', expected_size=(2, 8, 112, 112, 64)), # dict(endpoint='MaxPool_2a_3x3', expected_size=(2, 8, 56, 56, 64)), # dict(endpoint='Conv2d_2b_1x1', expected_size=(2, 8, 56, 56, 64)), # dict(endpoint='Conv2d_2c_3x3', expected_size=(2, 8, 56, 56, 192)), # dict(endpoint='MaxPool_3a_3x3', expected_size=(2, 8, 28, 28, 192)), # dict(endpoint='Mixed_3b', expected_size=(2, 8, 28, 28, 256)), # dict(endpoint='Mixed_3c', expected_size=(2, 8, 28, 28, 480)), # dict(endpoint='MaxPool_4a_3x3', expected_size=(2, 4, 14, 14, 480)), # dict(endpoint='Mixed_4b', expected_size=(2, 4, 14, 14, 512)), # dict(endpoint='Mixed_4c', expected_size=(2, 4, 14, 14, 512)), # dict(endpoint='Mixed_4d', expected_size=(2, 4, 14, 14, 512)), # dict(endpoint='Mixed_4e', expected_size=(2, 4, 14, 14, 528)), # dict(endpoint='Mixed_4f', expected_size=(2, 4, 14, 14, 832)), # dict(endpoint='MaxPool_5a_2x2', expected_size=(2, 2, 7, 7, 832)), # dict(endpoint='Mixed_5b', expected_size=(2, 2, 7, 7, 832)), # dict(endpoint='Mixed_5c', expected_size=(2, 2, 7, 7, 1024)), dict(endpoint='Embeddings', expected_size=(2, 1024)), ) def test_endpoint_expected_output_dimensions(self, endpoint, expected_size): inputs = np.random.normal(size=(2, 16, 224, 224, 3)) model = _CallableS3D() output = model(inputs, is_training=False, final_endpoint=endpoint) self.assertSameElements(output.shape, expected_size) def test_space_to_depth(self): inputs = np.random.normal(size=(2, 16//2, 224//2, 224//2, 3*2*2*2)) model = _CallableS3D() output = model(inputs, is_training=False, final_endpoint='Conv2d_1a_7x7') self.assertSameElements(output.shape, (2, 8, 112, 112, 64)) if __name__ == '__main__': absltest.main() ================================================ FILE: mmv/models/tsm_resnet.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Temporal Shift Module w/ ResNet-50 and ResNet-101. Based on: TSM: Temporal Shift Module for Efficient Video Understanding Ji Lin, Chuang Gan, Song Han https://arxiv.org/pdf/1811.08383.pdf. """ from typing import Optional import haiku as hk import jax import jax.numpy as jnp from mmv.models import tsm_utils as tsmu from mmv.models import types class TSMResNetBlock(hk.Module): """A ResNet subblock with Temporal Channel Shifting. Combines a typical ResNetV2 block implementation (see https://arxiv.org/abs/1512.03385) with a pre-convolution Temporal Shift Module (see https://arxiv.org/pdf/1811.08383.pdf) in the residual. """ def __init__(self, output_channels: int, stride: int, use_projection: bool, tsm_mode: str, normalize_fn: Optional[types.NormalizeFn] = None, channel_shift_fraction: float = 0.125, num_frames: int = 8, name: str = 'TSMResNetBlock'): """Initializes the TSMResNetBlock module. Args: output_channels: Number of output channels. stride: Stride used in convolutions. use_projection: Whether to use a projection for the shortcut. tsm_mode: Mode for TSM ('gpu' or 'tpu'). normalize_fn: Function used for normalization. channel_shift_fraction: The fraction of temporally shifted channels. If `channel_shift_fraction` is 0, the block is the same as a normal ResNet block. num_frames: Size of frame dimension in a single batch example name: The name of the module. """ super().__init__(name=name) self._output_channels = output_channels self._bottleneck_channels = output_channels // 4 self._stride = stride self._use_projection = use_projection self._normalize_fn = normalize_fn self._tsm_mode = tsm_mode self._channel_shift_fraction = channel_shift_fraction self._num_frames = num_frames def __call__(self, inputs: types.TensorLike, is_training: bool = True) -> jnp.ndarray: """Connects the ResNetBlock module into the graph. Args: inputs: A 4-D float array of shape `[B, H, W, C]`. is_training: Whether to use training mode. Returns: A 4-D float array of shape `[B * num_frames, new_h, new_w, output_channels]`. """ # ResNet V2 uses pre-activation, where the batch norm and relu are before # convolutions, rather than after as in ResNet V1. preact = inputs if self._normalize_fn is not None: preact = self._normalize_fn(preact, is_training=is_training) preact = jax.nn.relu(preact) if self._use_projection: shortcut = hk.Conv2D( output_channels=self._output_channels, kernel_shape=1, stride=self._stride, with_bias=False, padding='SAME', name='shortcut_conv')( preact) else: shortcut = inputs # Eventually applies Temporal Shift Module. if self._channel_shift_fraction != 0: preact = tsmu.apply_temporal_shift( preact, tsm_mode=self._tsm_mode, num_frames=self._num_frames, channel_shift_fraction=self._channel_shift_fraction) # First convolution. residual = hk.Conv2D( self._bottleneck_channels, kernel_shape=1, stride=1, with_bias=False, padding='SAME', name='conv_0')( preact) # Second convolution. if self._normalize_fn is not None: residual = self._normalize_fn(residual, is_training=is_training) residual = jax.nn.relu(residual) residual = hk.Conv2D( output_channels=self._bottleneck_channels, kernel_shape=3, stride=self._stride, with_bias=False, padding='SAME', name='conv_1')( residual) # Third convolution. if self._normalize_fn is not None: residual = self._normalize_fn(residual, is_training=is_training) residual = jax.nn.relu(residual) residual = hk.Conv2D( output_channels=self._output_channels, kernel_shape=1, stride=1, with_bias=False, padding='SAME', name='conv_2')( residual) # NOTE: we do not use block multiplier. output = shortcut + residual return output class TSMResNetUnit(hk.Module): """Block group for TSM ResNet.""" def __init__(self, output_channels: int, num_blocks: int, stride: int, tsm_mode: str, num_frames: int, normalize_fn: Optional[types.NormalizeFn] = None, channel_shift_fraction: float = 0.125, name: str = 'tsm_resnet_unit'): """Creates a TSMResNet Unit. Args: output_channels: Number of output channels. num_blocks: Number of ResNet blocks in the unit. stride: Stride of the unit. tsm_mode: Which temporal shift module to use. num_frames: Size of frame dimension in a single batch example. normalize_fn: Function used for normalization. channel_shift_fraction: The fraction of temporally shifted channels. If `channel_shift_fraction` is 0, the block is the same as a normal ResNet block. name: The name of the module. """ super().__init__(name=name) self._output_channels = output_channels self._num_blocks = num_blocks self._normalize_fn = normalize_fn self._stride = stride self._tsm_mode = tsm_mode self._channel_shift_fraction = channel_shift_fraction self._num_frames = num_frames def __call__(self, inputs: types.TensorLike, is_training: bool) -> jnp.ndarray: """Connects the module to inputs. Args: inputs: A 4-D float array of shape `[B * num_frames, H, W, C]`. is_training: Whether to use training mode. Returns: A 4-D float array of shape `[B * num_frames, H // stride, W // stride, output_channels]`. """ net = inputs for idx_block in range(self._num_blocks): net = TSMResNetBlock( self._output_channels, stride=self._stride if idx_block == 0 else 1, use_projection=idx_block == 0, normalize_fn=self._normalize_fn, tsm_mode=self._tsm_mode, channel_shift_fraction=self._channel_shift_fraction, num_frames=self._num_frames, name=f'block_{idx_block}')( net, is_training=is_training) return net # pytype: disable=bad-return-type # jax-devicearray class TSMResNetV2(hk.Module): """TSM based on ResNet V2 as described in https://arxiv.org/abs/1603.05027.""" # Endpoints of the model in order. VALID_ENDPOINTS = ( 'tsm_resnet_stem', 'tsm_resnet_unit_0', 'tsm_resnet_unit_1', 'tsm_resnet_unit_2', 'tsm_resnet_unit_3', 'last_conv', 'Embeddings', ) def __init__(self, normalize_fn: Optional[types.NormalizeFn] = None, depth: int = 50, num_frames: int = 16, channel_shift_fraction: float = 0.125, width_mult: int = 1, name: str = 'TSMResNetV2'): """Constructs a ResNet model. Args: normalize_fn: Function used for normalization. depth: Depth of the desired ResNet. num_frames: Number of frames (used in TPU mode). channel_shift_fraction: Fraction of channels that are temporally shifted, if `channel_shift_fraction` is 0, a regular ResNet is returned. width_mult: Whether or not to use a width multiplier. name: The name of the module. Raises: ValueError: If `channel_shift_fraction` or `depth` has invalid value. """ super().__init__(name=name) if not 0. <= channel_shift_fraction <= 1.0: raise ValueError( f'channel_shift_fraction ({channel_shift_fraction})' ' has to be in [0, 1].') self._num_frames = num_frames self._channels = (256, 512, 1024, 2048) self._strides = (1, 2, 2, 2) num_blocks = { 50: (3, 4, 6, 3), 101: (3, 4, 23, 3), 152: (3, 8, 36, 3), 200: (3, 24, 36, 3), } if depth not in num_blocks: raise ValueError( f'`depth` should be in {list(num_blocks.keys())} ({depth} given).') self._num_blocks = num_blocks[depth] self._width_mult = width_mult self._channel_shift_fraction = channel_shift_fraction self._normalize_fn = normalize_fn def __call__( self, inputs: types.TensorLike, is_training: bool = True, final_endpoint: str = 'Embeddings') -> jnp.ndarray: """Connects the TSM ResNetV2 module into the graph. Args: inputs: A 4-D float array of shape `[B, H, W, C]`. is_training: Whether to use training mode. final_endpoint: Up to which endpoint to run / return. Returns: Network output at location `final_endpoint`. A float array which shape depends on `final_endpoint`. Raises: ValueError: If `final_endpoint` is not recognized. """ # Prepare inputs for TSM. inputs, tsm_mode, num_frames = tsmu.prepare_inputs(inputs) num_frames = num_frames or self._num_frames self._final_endpoint = final_endpoint if self._final_endpoint not in self.VALID_ENDPOINTS: raise ValueError(f'Unknown final endpoint {self._final_endpoint}') # Stem convolution. end_point = 'tsm_resnet_stem' net = hk.Conv2D( output_channels=64 * self._width_mult, kernel_shape=7, stride=2, with_bias=False, name=end_point, padding='SAME')( inputs) net = hk.MaxPool( window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME')( net) if self._final_endpoint == end_point: return net # Residual block. for unit_id, (channels, num_blocks, stride) in enumerate( zip(self._channels, self._num_blocks, self._strides)): end_point = f'tsm_resnet_unit_{unit_id}' net = TSMResNetUnit( output_channels=channels * self._width_mult, num_blocks=num_blocks, stride=stride, normalize_fn=self._normalize_fn, channel_shift_fraction=self._channel_shift_fraction, num_frames=num_frames, tsm_mode=tsm_mode, name=end_point)( net, is_training=is_training) if self._final_endpoint == end_point: return net if self._normalize_fn is not None: net = self._normalize_fn(net, is_training=is_training) net = jax.nn.relu(net) end_point = 'last_conv' if self._final_endpoint == end_point: return net net = jnp.mean(net, axis=(1, 2)) # Prepare embedding outputs for TSM (temporal average of features). net = tsmu.prepare_outputs(net, tsm_mode, num_frames) assert self._final_endpoint == 'Embeddings' return net ================================================ FILE: mmv/models/tsm_resnet_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for TSM ResNet model.""" from absl.testing import absltest from absl.testing import parameterized import haiku as hk import jax import jax.numpy as jnp from mmv.models import tsm_resnet class TSMResNetTest(parameterized.TestCase): @parameterized.parameters( ('tsm_resnet_stem', (2 * 32, 56, 56, 64)), ('tsm_resnet_unit_0', (2 * 32, 56, 56, 256)), ('tsm_resnet_unit_1', (2 * 32, 28, 28, 512)), ('tsm_resnet_unit_2', (2 * 32, 14, 14, 1024)), ('tsm_resnet_unit_3', (2 * 32, 7, 7, 2048)), ('last_conv', (2 * 32, 7, 7, 2048)), ('Embeddings', (2, 2048)), ) def test_output_dimension(self, final_endpoint, expected_shape): input_shape = (2, 32, 224, 224, 3) def f(): data = jnp.zeros(input_shape) net = tsm_resnet.TSMResNetV2() return net(data, final_endpoint=final_endpoint) init_fn, apply_fn = hk.transform(f) out = apply_fn(init_fn(jax.random.PRNGKey(42)), None) self.assertEqual(out.shape, expected_shape) def test_tpu_mode(self): input_shape = (32 * 2, 224, 224, 3) def f(): data = jnp.zeros(input_shape) net = tsm_resnet.TSMResNetV2(num_frames=32) return net(data, final_endpoint='Embeddings') init_fn, apply_fn = hk.transform(f) out = apply_fn(init_fn(jax.random.PRNGKey(42)), None) self.assertEqual(out.shape, (2, 2048)) if __name__ == '__main__': absltest.main() ================================================ FILE: mmv/models/tsm_utils.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utils functions for TSM.""" from typing import Tuple import jax import jax.numpy as jnp from mmv.models import types def prepare_inputs( inputs: types.TensorLike) -> Tuple[jnp.ndarray, str, int]: """Deduces input mode for TSM.""" # Deduce if we run on TPU based on input shape. if len(inputs.shape) == 5: # Input is given in the standard [B, T, H, W, 3] format. tsm_mode = 'gpu' num_frames = inputs.shape[1] inputs = jnp.reshape(inputs, [-1] + list(inputs.shape[2:])) else: # Input is given in the [T * B, H, W, 3] format. tsm_mode = 'tpu' num_frames = None return inputs, tsm_mode, num_frames def prepare_outputs(outputs: types.TensorLike, tsm_mode: str, num_frames: int) -> jnp.ndarray: """Processes output of TSM by averaging representations over time axis.""" n_channels = outputs.shape[-1] if tsm_mode == 'tpu': outputs = jnp.reshape(outputs, [num_frames, -1, n_channels]) outputs = jnp.mean(outputs, axis=0) elif tsm_mode == 'gpu': outputs = jnp.reshape(outputs, [-1, num_frames, n_channels]) outputs = jnp.mean(outputs, axis=1) else: raise ValueError( f'`tsm_mode` should be \'tpu\' or \'gpu\' ({tsm_mode} given)') return outputs def apply_temporal_shift( x: types.TensorLike, tsm_mode: str, num_frames: int, channel_shift_fraction: float = 0.125) -> jnp.ndarray: """Performs a temporal shift: https://arxiv.org/abs/1811.08383 with mode.""" if tsm_mode == 'tpu': outputs = temporal_shift_tpu(x, num_frames, channel_shift_fraction) elif tsm_mode == 'gpu': outputs = temporal_shift_gpu(x, num_frames, channel_shift_fraction) else: raise ValueError( f'`tsm_mode` should be \'tpu\' or \'gpu\' ({tsm_mode} given)') return outputs def temporal_shift_gpu( x: types.TensorLike, num_frames: int, channel_shift_fraction: float = 0.125) -> jnp.ndarray: """Performs a temporal shift: https://arxiv.org/abs/1811.08383.""" # B, T, H, W, C = batch_size, num_frames, im_height, im_width, channels # Input is (B * T, H, W, C) orig_shp = tuple(x.shape) reshaped_x = jnp.reshape(x, (-1, num_frames) + orig_shp[1:]) n_channels = orig_shp[-1] n_shift = int(n_channels * channel_shift_fraction) new_shp = tuple(reshaped_x.shape) # shifted_backward = reshaped_x[:, 1:, :, :, -n_shift:] shifted_backward = jax.lax.slice( reshaped_x, (0, 1, 0, 0, new_shp[4] - n_shift), (new_shp[0], new_shp[1], new_shp[2], new_shp[3], new_shp[4])) shifted_backward_padding = ((0, 0), (0, 1), (0, 0), (0, 0), (0, 0)) shifted_backward = jnp.pad(shifted_backward, shifted_backward_padding) # shifted_forward = reshaped_x[:, :-1, :, :, :n_shift] shifted_forward = jax.lax.slice( reshaped_x, (0, 0, 0, 0, 0), (new_shp[0], new_shp[1] - 1, new_shp[2], new_shp[3], n_shift)) shifted_forward_padding = ((0, 0), (1, 0), (0, 0), (0, 0), (0, 0)) shifted_forward = jnp.pad(shifted_forward, shifted_forward_padding) no_shift = reshaped_x[:, :, :, :, n_shift:-n_shift] shifted_x = jnp.concatenate([shifted_backward, no_shift, shifted_forward], axis=4) return jnp.reshape(shifted_x, (-1,) + orig_shp[1:]) def temporal_shift_tpu( x: types.TensorLike, num_frames: int, channel_shift_fraction: float = 0.125) -> jnp.ndarray: """Performs a temporal shift: https://arxiv.org/abs/1811.08383. TPU optimized version of TSM. Reshape is avoided by having the images reshaped in [T * B, :] so that frames corresponding to same time frame in videos are contiguous in memory. Thanks to cr/288510308 which allows to fuse pad->slice into convolution, we reformulate the slice pad into a pad then slice. Finally, to avoid concatenate that prevent some fusion from happening we simply sum masked version of the features. Args: x: Input expected to be [T * B, H, W, C] (where the batch has been reshaped from a time major version of the input). num_frames: number of frames T per video. channel_shift_fraction: fraction of the channel to shift forward and backward. Returns: The temporal shifted version of x. """ # B, T, H, W, C = batch_size, num_frames, im_height, im_width, channels # Input is (T * B, H, W, C) original_shape = list(x.shape) batch_size = int(original_shape[0] / num_frames) n_channels = int(original_shape[-1]) n_shift = int(n_channels * channel_shift_fraction) # Cast to bfloat16. x = x.astype(jnp.bfloat16) # For the following, assume that x has 3 channels [x1, x2, x3] and n_shift=1. # Shift backward, we first pad by zeros [x1, x2, x3, 0, 0]. orig_shp = list(x.shape) shifted_backward_padding = ((0, batch_size, 0), (0, 0, 0), (0, 0, 0), (0, n_channels - n_shift, 0)) x_backward_padding = jax.lax.pad( x, padding_value=jnp.bfloat16(0.), padding_config=shifted_backward_padding) # The following shift gets to [x3^+1, 0, 0] (where +1 means from the future). shifted_backward = jax.lax.slice(x_backward_padding, (batch_size, 0, 0, n_channels - n_shift), (orig_shp[0] + batch_size, orig_shp[1], orig_shp[2], 2 * n_channels - n_shift)) # Shift forward, we first pad by zeros [0, 0, x1, x2, x3]. shifted_forward_padding = ((batch_size, 0, 0), (0, 0, 0), (0, 0, 0), (n_channels - n_shift, 0, 0)) x_forward_padding = jax.lax.pad( x, padding_value=jnp.bfloat16(0.), padding_config=shifted_forward_padding) # The following shift gets to [0, 0, x1^-1] (where -1 means from the past). shifted_forward = jax.lax.slice( x_forward_padding, (0, 0, 0, 0), (orig_shp[0], orig_shp[1], orig_shp[2], n_channels)) # No shift is in the middle, this gets [0, x2, 0]. mask_noshift = (jnp.reshape((jnp.arange(n_channels) >= n_shift) & (jnp.arange(n_channels) < n_channels - n_shift), (1, 1, 1, -1))).astype(jnp.bfloat16) no_shift = mask_noshift * x # By summing everything together, we end up with [x3^+1, x2, x1^-1]. # Note: channels have been reordered but that doesn't matter for the model. shifted_x = shifted_backward + shifted_forward + no_shift return shifted_x.astype(jnp.float32) ================================================ FILE: mmv/models/tsm_utils_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for tsm_utils.""" from absl.testing import absltest from absl.testing import parameterized import jax.numpy as jnp import numpy as np from mmv.models import tsm_utils class TsmUtilsTest(parameterized.TestCase): @parameterized.parameters( ((2, 32, 224, 224, 3), 'gpu', (2 * 32, 224, 224, 3), 32), ((32, 224, 224, 3), 'tpu', (32, 224, 224, 3), None), ) def test_prepare_inputs(self, input_shape, expected_mode, expected_shape, expected_num_frames): data = jnp.zeros(input_shape) out, mode, num_frames = tsm_utils.prepare_inputs(data) self.assertEqual(out.shape, expected_shape) self.assertEqual(mode, expected_mode) self.assertEqual(num_frames, expected_num_frames) def test_prepare_outputs(self): data = jnp.concatenate([jnp.zeros(4), jnp.ones(4)]).reshape(4, 2) out_gpu = tsm_utils.prepare_outputs(data, 'gpu', 2) out_tpu = tsm_utils.prepare_outputs(data, 'tpu', 2) expected_gpu = np.concatenate([np.zeros(2), np.ones(2)]).reshape(2, 2) expected_tpu = 0.5 * jnp.ones((2, 2)) np.testing.assert_allclose(out_gpu, expected_gpu) np.testing.assert_allclose(out_tpu, expected_tpu) def test_apply_tsm(self): shape = (32, 224, 224, 16) data = jnp.zeros(shape) out_gpu = tsm_utils.apply_temporal_shift(data, 'gpu', 16) out_tpu = tsm_utils.apply_temporal_shift(data, 'tpu', 16) self.assertEqual(out_gpu.shape, shape) self.assertEqual(out_tpu.shape, shape) if __name__ == '__main__': absltest.main() ================================================ FILE: mmv/models/types.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Type Aliases.""" from typing import Callable, Tuple, Union import jax import numpy as np import optax TensorLike = Union[np.ndarray, jax.Array] ActivationFn = Callable[[TensorLike], TensorLike] GatingFn = Callable[[TensorLike], TensorLike] NetworkFn = Callable[[TensorLike], TensorLike] # Callable doesn't allow kwargs to be used, and we often want to # pass in is_training=..., so ignore the arguments for the sake of pytype. NormalizeFn = Callable[..., TensorLike] OptState = Tuple[optax.TraceState, optax.ScaleByScheduleState, optax.ScaleState] ================================================ FILE: mmv/requirements.txt ================================================ dm-haiku dm-tree jax jaxlib numpy>=1.16 optax sklearn tensorflow tensorflow_datasets ================================================ FILE: mmv/utils/checkpoint.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Checkpoint restoring utilities.""" from absl import logging import dill def load_checkpoint(checkpoint_path): try: with open(checkpoint_path, 'rb') as checkpoint_file: checkpoint_data = dill.load(checkpoint_file) logging.info('Loading checkpoint from %s', checkpoint_path) return checkpoint_data except FileNotFoundError: return None ================================================ FILE: mmv/utils/ucf101_dataset.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Ucf101 with custom decoding params.""" import tensorflow as tf import tensorflow_datasets as tfds # Utilities functions. tf.compat.v1.enable_eager_execution() _CITATION = """\ @article{DBLP:journals/corr/abs-1212-0402, author = {Khurram Soomro and Amir Roshan Zamir and Mubarak Shah}, title = {{UCF101:} {A} Dataset of 101 Human Actions Classes From Videos in The Wild}, journal = {CoRR}, volume = {abs/1212.0402}, year = {2012}, url = {http://arxiv.org/abs/1212.0402}, archivePrefix = {arXiv}, eprint = {1212.0402}, timestamp = {Mon, 13 Aug 2018 16:47:45 +0200}, biburl = {https://dblp.org/rec/bib/journals/corr/abs-1212-0402}, bibsource = {dblp computer science bibliography, https://dblp.org} } """ _LABELS_FNAME = 'video/ucf101_labels.txt' class ModUcf101(tfds.video.Ucf101): """Ucf101 action recognition dataset with better quality. """ def _info(self): ffmpeg_extra_args = ('-qscale:v', '2', '-r', '25', '-t', '00:00:20') video_shape = ( None, self.builder_config.height, self.builder_config.width, 3) labels_names_file = tfds.core.tfds_path(_LABELS_FNAME) features = tfds.features.FeaturesDict({ 'video': tfds.features.Video(video_shape, ffmpeg_extra_args=ffmpeg_extra_args, encoding_format='jpeg'), # pytype: disable=wrong-arg-types # gen-stub-imports 'label': tfds.features.ClassLabel(names_file=labels_names_file), }) return tfds.core.DatasetInfo( builder=self, description='A 101-label video classification dataset.', features=features, homepage='https://www.crcv.ucf.edu/data-sets/ucf101/', citation=_CITATION, ) ================================================ FILE: neural_mip_solving/README.md ================================================ # Neural MIP Solving - NN Verification Dataset This is the “Neural Network Verification” dataset used in the paper [Solving Mixed Integer Programs Using Neural Networks (Nair et al., 2020)](https://arxiv.org/abs/2012.13349). It contains a set of mixed integer programs (MIPs) for the problem of verifying a neural network’s robustness to perturbations to its inputs. The MIP formulation is described in the paper [On the Effectiveness of Interval Bound Propagation for Training Verifiably Robust Models (Gowal et al., 2018)](https://arxiv.org/abs/1810.12715). This dataset corresponds to MIPs defined for verifying a neural network with the architecture labelled as “small” in Table 1 of Gowal et al., 2018, and trained on the MNIST image dataset. The code used to train the neural network to be verified is available at https://github.com/deepmind/interval-bound-propagation. The MIPs are split into the same training, validation, and test sets as that in Nair et al., 2020. ## Dataset Location The dataset is available in the following [link](https://storage.cloud.google.com/neural-mip-solving/nn_verification.tar.gz) ## Dataset Metadata The following table is necessary for this dataset to be indexed by search engines such as Google Dataset Search.
property value
name Neural Network Verification Dataset
url
sameAs https://github.com/deepmind/deepmind-research/tree/master/neural_mip_solving
description This dataset contains a set of mixed integer programs (MIPs) for the problem of verifying a neural network’s robustness to perturbations of its inputs. The MIPs are encoded in LP format.
license https://creativecommons.org/licenses/by/4.0/legalcode
provider
property value
name DeepMind
sameAs https://en.wikipedia.org/wiki/DeepMind
citation https://arxiv.org/abs/2012.13349
## Citing this work If you use this dataset in your work, we ask you to cite this paper: ``` @misc{nair2020solving, title={Solving Mixed Integer Programs Using Neural Networks}, author={Vinod Nair and Sergey Bartunov and Felix Gimeno and Ingrid von Glehn and Pawel Lichocki and Ivan Lobov and Brendan O'Donoghue and Nicolas Sonnerat and Christian Tjandraatmadja and Pengming Wang and Ravichandra Addanki and Tharindi Hapuarachchi and Thomas Keck and James Keeling and Pushmeet Kohli and Ira Ktena and Yujia Li and Oriol Vinyals and Yori Zwols}, year={2020}, eprint={2012.13349}, archivePrefix={arXiv}, primaryClass={math.OC} } ``` ## License This dataset is made available under the terms of the Creative Commons Attribution 4.0 International (CC BY 4.0) license. You can find details at: https://creativecommons.org/licenses/by/4.0/legalcode ## Disclaimer This is not an officially supported Google product. ================================================ FILE: nfnets/README.md ================================================ # Code for Normalizer-Free Networks This repository contains code for the ICLR 2021 paper ["Characterizing signal propagation to close the performance gap in unnormalized ResNets,"](https://arxiv.org/abs/2102.06171) by Andrew Brock, Soham De, and Samuel L. Smith, and the arXiv preprint ["High-Performance Large-Scale Image Recognition Without Normalization"](http://dpmd.ai/06171) by Andrew Brock, Soham De, Samuel L. Smith, and Karen Simonyan. ## Running this code Using `run.sh` will create and activate a virtualenv, install all necessary dependencies and run a test program to ensure that you can import all the modules and take a single experiment step. To train with this code, use this virtualenv and use one of the experiment.py files in combination with [JAXline](https://github.com/deepmind/jaxline). The provided demo Colab can be run online, or by starting a jupyter notebook within this virtualenv. Note that you will need a local copy of ImageNet compatible with the TFDS format used in dataset.py in order to train on ImageNet. ## Pre-Trained Weights We provide pre-trained weights for NFNet-F0 through F5 (trained without SAM), and for NFNet-F6 trained with SAM. All models are pre-trained on ImageNet for 360 epochs at batch size 4096, and are provided as numpy files containing parameter trees compatible with haiku. In utils.py we provide a `load_haiku_file` function which loads these parameter trees, and `flatten_haiku_tree` to convert these to flat dictionaries which may prove easier to port to other frameworks. Note that we do not provide model `states`, as these models, lacking batchnorm, do not have running stats. Note also that the conv layer weights are in the format HWIO, so for frameworks like PyTorch which use OIHW you'll need to swap the axes appropriately to the layout you use. | Model | #FLOPs | #Params | Top-1 | Top-5 | TPUv3 Train | GPU Train | link | |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:| F0 | 12.38B | 71.5M | 83.6 | 96.8 | 73.3ms | 56.7ms | [haiku](https://storage.googleapis.com/dm-nfnets/F0_haiku.npz) F1 | 35.54B | 132.6M | 84.7 | 97.1 | 158.5ms | 133.9ms | [haiku](https://storage.googleapis.com/dm-nfnets/F1_haiku.npz) F2 | 62.59B | 193.8M | 85.1 | 97.3 | 295.8ms | 226.3ms | [haiku](https://storage.googleapis.com/dm-nfnets/F2_haiku.npz) F3 | 114.76B | 254.9M | 85.7 | 97.5 | 532.2ms | 524.5ms | [haiku](https://storage.googleapis.com/dm-nfnets/F3_haiku.npz) F4 | 215.24B | 316.1M | 85.9 | 97.6 | 1033.3ms | 1190.6ms | [haiku](https://storage.googleapis.com/dm-nfnets/F4_haiku.npz) F5 | 289.76B | 377.2M | 86.0 | 97.6 | 1398.5ms | 2177.1ms | [haiku](https://storage.googleapis.com/dm-nfnets/F5_haiku.npz) F6+SAM | 377.28B | 438.4M | 86.5 | 97.9 | 2774.1ms | - | [haiku](https://storage.googleapis.com/dm-nfnets/F6_haiku.npz) ## Demo Colab [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/nfnets/nfnet_demo_colab.ipynb) We also include a Colab notebook with a demo showing how to run an NFNet to classify an image. ## Giving Credit If you use this code in your work, we ask you to please cite one or both of the following papers. The reference for the Normalizer-Free structure and NF-ResNets or NF-Regnets: ``` @inproceedings{brock2021characterizing, author={Andrew Brock and Soham De and Samuel L. Smith}, title={Characterizing signal propagation to close the performance gap in unnormalized ResNets}, booktitle={9th International Conference on Learning Representations, {ICLR}}, year={2021} } ``` The reference for Adaptive Gradient Clipping (AGC) and the NFNets models: ``` @article{brock2021high, author={Andrew Brock and Soham De and Samuel L. Smith and Karen Simonyan}, title={High-Performance Large-Scale Image Recognition Without Normalization}, journal={arXiv preprint arXiv:2102.06171}, year={2021} } ``` ================================================ FILE: nfnets/agc_optax.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Adaptive gradient clipping transform for Optax.""" import jax import jax.numpy as jnp import optax def compute_norm(x, axis, keepdims): """Axis-wise euclidean norm.""" return jnp.sum(x ** 2, axis=axis, keepdims=keepdims) ** 0.5 def unitwise_norm(x): """Compute norms of each output unit separately, also for linear layers.""" if len(jnp.squeeze(x).shape) <= 1: # Scalars and vectors axis = None keepdims = False elif len(x.shape) in [2, 3]: # Linear layers of shape IO or multihead linear axis = 0 keepdims = True elif len(x.shape) == 4: # Conv kernels of shape HWIO axis = [0, 1, 2,] keepdims = True else: raise ValueError(f'Got a parameter with shape not in [1, 2, 4]! {x}') return compute_norm(x, axis, keepdims) def my_clip(g_norm, max_norm, grad): """Applies my gradient clipping unit-wise.""" trigger = g_norm < max_norm # This little max(., 1e-6) is distinct from the normal eps and just prevents # division by zero. It technically should be impossible to engage. clipped_grad = grad * (max_norm / jnp.maximum(g_norm, 1e-6)) return jnp.where(trigger, grad, clipped_grad) def adaptive_grad_clip(clip, eps=1e-3) -> optax.GradientTransformation: """Clip updates to be at most clipping * parameter_norm. References: [Brock, Smith, De, Simonyan 2021] High-Performance Large-Scale Image Recognition Without Normalization. Args: clip: Maximum allowed ratio of update norm to parameter norm. eps: epsilon term to prevent clipping of zero-initialized params. Returns: An (init_fn, update_fn) tuple. """ def init_fn(_): return optax.ClipByGlobalNormState() def update_fn(updates, state, params): g_norm = jax.tree_map(unitwise_norm, updates) p_norm = jax.tree_map(unitwise_norm, params) # Maximum allowable norm max_norm = jax.tree_map(lambda x: clip * jnp.maximum(x, eps), p_norm) # If grad norm > clipping * param_norm, rescale updates = jax.tree_map(my_clip, g_norm, max_norm, updates) return updates, state return optax.GradientTransformation(init_fn, update_fn) ================================================ FILE: nfnets/autoaugment.py ================================================ # Copyright 2019 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """AutoAugment and RandAugment policies for enhanced image preprocessing. AutoAugment Reference: https://arxiv.org/abs/1805.09501 RandAugment Reference: https://arxiv.org/abs/1909.13719 """ from __future__ import absolute_import from __future__ import division from __future__ import print_function import inspect import math from ml_collections import config_dict import tensorflow.compat.v1 as tf from tensorflow_addons import image as contrib_image # pylint: disable=deprecated-method # This signifies the max integer that the controller RNN could predict for the # augmentation scheme. _MAX_LEVEL = 10. def policy_v0(): """Autoaugment policy that was used in AutoAugment Paper.""" # Each tuple is an augmentation operation of the form # (operation, probability, magnitude). Each element in policy is a # sub-policy that will be applied sequentially on the image. policy = [ [('Equalize', 0.8, 1), ('ShearY', 0.8, 4)], [('Color', 0.4, 9), ('Equalize', 0.6, 3)], [('Color', 0.4, 1), ('Rotate', 0.6, 8)], [('Solarize', 0.8, 3), ('Equalize', 0.4, 7)], [('Solarize', 0.4, 2), ('Solarize', 0.6, 2)], [('Color', 0.2, 0), ('Equalize', 0.8, 8)], [('Equalize', 0.4, 8), ('SolarizeAdd', 0.8, 3)], [('ShearX', 0.2, 9), ('Rotate', 0.6, 8)], [('Color', 0.6, 1), ('Equalize', 1.0, 2)], [('Invert', 0.4, 9), ('Rotate', 0.6, 0)], [('Equalize', 1.0, 9), ('ShearY', 0.6, 3)], [('Color', 0.4, 7), ('Equalize', 0.6, 0)], [('Posterize', 0.4, 6), ('AutoContrast', 0.4, 7)], [('Solarize', 0.6, 8), ('Color', 0.6, 9)], [('Solarize', 0.2, 4), ('Rotate', 0.8, 9)], [('Rotate', 1.0, 7), ('TranslateY', 0.8, 9)], [('ShearX', 0.0, 0), ('Solarize', 0.8, 4)], [('ShearY', 0.8, 0), ('Color', 0.6, 4)], [('Color', 1.0, 0), ('Rotate', 0.6, 2)], [('Equalize', 0.8, 4), ('Equalize', 0.0, 8)], [('Equalize', 1.0, 4), ('AutoContrast', 0.6, 2)], [('ShearY', 0.4, 7), ('SolarizeAdd', 0.6, 7)], [('Posterize', 0.8, 2), ('Solarize', 0.6, 10)], [('Solarize', 0.6, 8), ('Equalize', 0.6, 1)], [('Color', 0.8, 6), ('Rotate', 0.4, 5)], ] return policy def policy_vtest(): """Autoaugment test policy for debugging.""" # Each tuple is an augmentation operation of the form # (operation, probability, magnitude). Each element in policy is a # sub-policy that will be applied sequentially on the image. policy = [ [('TranslateX', 1.0, 4), ('Equalize', 1.0, 10)], ] return policy def blend(image1, image2, factor): """Blend image1 and image2 using 'factor'. Factor can be above 0.0. A value of 0.0 means only image1 is used. A value of 1.0 means only image2 is used. A value between 0.0 and 1.0 means we linearly interpolate the pixel values between the two images. A value greater than 1.0 "extrapolates" the difference between the two pixel values, and we clip the results to values between 0 and 255. Args: image1: An image Tensor of type uint8. image2: An image Tensor of type uint8. factor: A floating point value above 0.0. Returns: A blended image Tensor of type uint8. """ if factor == 0.0: return tf.convert_to_tensor(image1) if factor == 1.0: return tf.convert_to_tensor(image2) image1 = tf.to_float(image1) image2 = tf.to_float(image2) difference = image2 - image1 scaled = factor * difference # Do addition in float. temp = tf.to_float(image1) + scaled # Interpolate if factor > 0.0 and factor < 1.0: # Interpolation means we always stay within 0 and 255. return tf.cast(temp, tf.uint8) # Extrapolate: # # We need to clip and then cast. return tf.cast(tf.clip_by_value(temp, 0.0, 255.0), tf.uint8) def cutout(image, pad_size, replace=0): """Apply cutout (https://arxiv.org/abs/1708.04552) to image. This operation applies a (2*pad_size x 2*pad_size) mask of zeros to a random location within `img`. The pixel values filled in will be of the value `replace`. The located where the mask will be applied is randomly chosen uniformly over the whole image. Args: image: An image Tensor of type uint8. pad_size: Specifies how big the zero mask that will be generated is that is applied to the image. The mask will be of size (2*pad_size x 2*pad_size). replace: What pixel value to fill in the image in the area that has the cutout mask applied to it. Returns: An image Tensor that is of type uint8. """ image_height = tf.shape(image)[0] image_width = tf.shape(image)[1] # Sample the center location in the image where the zero mask will be applied. cutout_center_height = tf.random_uniform( shape=[], minval=0, maxval=image_height, dtype=tf.int32) cutout_center_width = tf.random_uniform( shape=[], minval=0, maxval=image_width, dtype=tf.int32) lower_pad = tf.maximum(0, cutout_center_height - pad_size) upper_pad = tf.maximum(0, image_height - cutout_center_height - pad_size) left_pad = tf.maximum(0, cutout_center_width - pad_size) right_pad = tf.maximum(0, image_width - cutout_center_width - pad_size) cutout_shape = [image_height - (lower_pad + upper_pad), image_width - (left_pad + right_pad)] padding_dims = [[lower_pad, upper_pad], [left_pad, right_pad]] mask = tf.pad( tf.zeros(cutout_shape, dtype=image.dtype), padding_dims, constant_values=1) mask = tf.expand_dims(mask, -1) mask = tf.tile(mask, [1, 1, 3]) image = tf.where( tf.equal(mask, 0), tf.ones_like(image, dtype=image.dtype) * replace, image) return image def solarize(image, threshold=128): # For each pixel in the image, select the pixel # if the value is less than the threshold. # Otherwise, subtract the pixel from 255. return tf.where(image < threshold, image, 255 - image) def solarize_add(image, addition=0, threshold=128): # For each pixel in the image less than threshold # we add 'addition' amount to it and then clip the # pixel value to be between 0 and 255. The value # of 'addition' is between -128 and 128. added_image = tf.cast(image, tf.int64) + addition added_image = tf.cast(tf.clip_by_value(added_image, 0, 255), tf.uint8) return tf.where(image < threshold, added_image, image) def color(image, factor): """Equivalent of PIL Color.""" degenerate = tf.image.grayscale_to_rgb(tf.image.rgb_to_grayscale(image)) return blend(degenerate, image, factor) def contrast(image, factor): """Equivalent of PIL Contrast.""" degenerate = tf.image.rgb_to_grayscale(image) # Cast before calling tf.histogram. degenerate = tf.cast(degenerate, tf.int32) # Compute the grayscale histogram, then compute the mean pixel value, # and create a constant image size of that value. Use that as the # blending degenerate target of the original image. hist = tf.histogram_fixed_width(degenerate, [0, 255], nbins=256) mean = tf.reduce_sum(tf.cast(hist, tf.float32)) / 256.0 degenerate = tf.ones_like(degenerate, dtype=tf.float32) * mean degenerate = tf.clip_by_value(degenerate, 0.0, 255.0) degenerate = tf.image.grayscale_to_rgb(tf.cast(degenerate, tf.uint8)) return blend(degenerate, image, factor) def brightness(image, factor): """Equivalent of PIL Brightness.""" degenerate = tf.zeros_like(image) return blend(degenerate, image, factor) def posterize(image, bits): """Equivalent of PIL Posterize.""" shift = 8 - bits return tf.bitwise.left_shift(tf.bitwise.right_shift(image, shift), shift) def rotate(image, degrees, replace): """Rotates the image by degrees either clockwise or counterclockwise. Args: image: An image Tensor of type uint8. degrees: Float, a scalar angle in degrees to rotate all images by. If degrees is positive the image will be rotated clockwise otherwise it will be rotated counterclockwise. replace: A one or three value 1D tensor to fill empty pixels caused by the rotate operation. Returns: The rotated version of image. """ # Convert from degrees to radians. degrees_to_radians = math.pi / 180.0 radians = degrees * degrees_to_radians # In practice, we should randomize the rotation degrees by flipping # it negatively half the time, but that's done on 'degrees' outside # of the function. image = contrib_image.rotate(wrap(image), radians) return unwrap(image, replace) def translate_x(image, pixels, replace): """Equivalent of PIL Translate in X dimension.""" image = contrib_image.translate(wrap(image), [-pixels, 0]) return unwrap(image, replace) def translate_y(image, pixels, replace): """Equivalent of PIL Translate in Y dimension.""" image = contrib_image.translate(wrap(image), [0, -pixels]) return unwrap(image, replace) def shear_x(image, level, replace): """Equivalent of PIL Shearing in X dimension.""" # Shear parallel to x axis is a projective transform # with a matrix form of: # [1 level # 0 1]. image = contrib_image.transform( wrap(image), [1., level, 0., 0., 1., 0., 0., 0.]) return unwrap(image, replace) def shear_y(image, level, replace): """Equivalent of PIL Shearing in Y dimension.""" # Shear parallel to y axis is a projective transform # with a matrix form of: # [1 0 # level 1]. image = contrib_image.transform( wrap(image), [1., 0., 0., level, 1., 0., 0., 0.]) return unwrap(image, replace) def autocontrast(image): """Implements Autocontrast function from PIL using TF ops. Args: image: A 3D uint8 tensor. Returns: The image after it has had autocontrast applied to it and will be of type uint8. """ def scale_channel(image): """Scale the 2D image using the autocontrast rule.""" # A possibly cheaper version can be done using cumsum/unique_with_counts # over the histogram values, rather than iterating over the entire image. # to compute mins and maxes. lo = tf.to_float(tf.reduce_min(image)) hi = tf.to_float(tf.reduce_max(image)) # Scale the image, making the lowest value 0 and the highest value 255. def scale_values(im): scale = 255.0 / (hi - lo) offset = -lo * scale im = tf.to_float(im) * scale + offset im = tf.clip_by_value(im, 0.0, 255.0) return tf.cast(im, tf.uint8) result = tf.cond(hi > lo, lambda: scale_values(image), lambda: image) return result # Assumes RGB for now. Scales each channel independently # and then stacks the result. s1 = scale_channel(image[:, :, 0]) s2 = scale_channel(image[:, :, 1]) s3 = scale_channel(image[:, :, 2]) image = tf.stack([s1, s2, s3], 2) return image def sharpness(image, factor): """Implements Sharpness function from PIL using TF ops.""" orig_image = image image = tf.cast(image, tf.float32) # Make image 4D for conv operation. image = tf.expand_dims(image, 0) # SMOOTH PIL Kernel. kernel = tf.constant( [[1, 1, 1], [1, 5, 1], [1, 1, 1]], dtype=tf.float32, shape=[3, 3, 1, 1]) / 13. # Tile across channel dimension. kernel = tf.tile(kernel, [1, 1, 3, 1]) strides = [1, 1, 1, 1] with tf.device('/cpu:0'): # Some augmentation that uses depth-wise conv will cause crashing when # training on GPU. See (b/156242594) for details. degenerate = tf.nn.depthwise_conv2d( image, kernel, strides, padding='VALID', rate=[1, 1]) degenerate = tf.clip_by_value(degenerate, 0.0, 255.0) degenerate = tf.squeeze(tf.cast(degenerate, tf.uint8), [0]) # For the borders of the resulting image, fill in the values of the # original image. mask = tf.ones_like(degenerate) padded_mask = tf.pad(mask, [[1, 1], [1, 1], [0, 0]]) padded_degenerate = tf.pad(degenerate, [[1, 1], [1, 1], [0, 0]]) result = tf.where(tf.equal(padded_mask, 1), padded_degenerate, orig_image) # Blend the final result. return blend(result, orig_image, factor) def equalize(image): """Implements Equalize function from PIL using TF ops.""" def scale_channel(im, c): """Scale the data in the channel to implement equalize.""" im = tf.cast(im[:, :, c], tf.int32) # Compute the histogram of the image channel. histo = tf.histogram_fixed_width(im, [0, 255], nbins=256) # For the purposes of computing the step, filter out the nonzeros. nonzero = tf.where(tf.not_equal(histo, 0)) nonzero_histo = tf.reshape(tf.gather(histo, nonzero), [-1]) step = (tf.reduce_sum(nonzero_histo) - nonzero_histo[-1]) // 255 def build_lut(histo, step): # Compute the cumulative sum, shifting by step // 2 # and then normalization by step. lut = (tf.cumsum(histo) + (step // 2)) // step # Shift lut, prepending with 0. lut = tf.concat([[0], lut[:-1]], 0) # Clip the counts to be in range. This is done # in the C code for image.point. return tf.clip_by_value(lut, 0, 255) # If step is zero, return the original image. Otherwise, build # lut from the full histogram and step and then index from it. result = tf.cond(tf.equal(step, 0), lambda: im, lambda: tf.gather(build_lut(histo, step), im)) return tf.cast(result, tf.uint8) # Assumes RGB for now. Scales each channel independently # and then stacks the result. s1 = scale_channel(image, 0) s2 = scale_channel(image, 1) s3 = scale_channel(image, 2) image = tf.stack([s1, s2, s3], 2) return image def invert(image): """Inverts the image pixels.""" image = tf.convert_to_tensor(image) return 255 - image def wrap(image): """Returns 'image' with an extra channel set to all 1s.""" shape = tf.shape(image) extended_channel = tf.ones([shape[0], shape[1], 1], image.dtype) extended = tf.concat([image, extended_channel], 2) return extended def unwrap(image, replace): """Unwraps an image produced by wrap. Where there is a 0 in the last channel for every spatial position, the rest of the three channels in that spatial dimension are grayed (set to 128). Operations like translate and shear on a wrapped Tensor will leave 0s in empty locations. Some transformations look at the intensity of values to do preprocessing, and we want these empty pixels to assume the 'average' value, rather than pure black. Args: image: A 3D Image Tensor with 4 channels. replace: A one or three value 1D tensor to fill empty pixels. Returns: image: A 3D image Tensor with 3 channels. """ image_shape = tf.shape(image) # Flatten the spatial dimensions. flattened_image = tf.reshape(image, [-1, image_shape[2]]) # Find all pixels where the last channel is zero. alpha_channel = flattened_image[:, 3] replace = tf.concat([replace, tf.ones([1], image.dtype)], 0) # Where they are zero, fill them in with 'replace'. flattened_image = tf.where( tf.equal(alpha_channel, 0), tf.ones_like(flattened_image, dtype=image.dtype) * replace, flattened_image) image = tf.reshape(flattened_image, image_shape) image = tf.slice(image, [0, 0, 0], [image_shape[0], image_shape[1], 3]) return image NAME_TO_FUNC = { 'AutoContrast': autocontrast, 'Equalize': equalize, 'Invert': invert, 'Rotate': rotate, 'Posterize': posterize, 'Solarize': solarize, 'SolarizeAdd': solarize_add, 'Color': color, 'Contrast': contrast, 'Brightness': brightness, 'Sharpness': sharpness, 'ShearX': shear_x, 'ShearY': shear_y, 'TranslateX': translate_x, 'TranslateY': translate_y, 'Cutout': cutout, } def _randomly_negate_tensor(tensor): """With 50% prob turn the tensor negative.""" should_flip = tf.cast(tf.floor(tf.random_uniform([]) + 0.5), tf.bool) final_tensor = tf.cond(should_flip, lambda: tensor, lambda: -tensor) return final_tensor def _rotate_level_to_arg(level): level = (level/_MAX_LEVEL) * 30. level = _randomly_negate_tensor(level) return (level,) def _shrink_level_to_arg(level): """Converts level to ratio by which we shrink the image content.""" if level == 0: return (1.0,) # if level is zero, do not shrink the image # Maximum shrinking ratio is 2.9. level = 2. / (_MAX_LEVEL / level) + 0.9 return (level,) def _enhance_level_to_arg(level): return ((level/_MAX_LEVEL) * 1.8 + 0.1,) def _shear_level_to_arg(level): level = (level/_MAX_LEVEL) * 0.3 # Flip level to negative with 50% chance. level = _randomly_negate_tensor(level) return (level,) def _translate_level_to_arg(level, translate_const): level = (level/_MAX_LEVEL) * float(translate_const) # Flip level to negative with 50% chance. level = _randomly_negate_tensor(level) return (level,) def level_to_arg(hparams): return { 'AutoContrast': lambda level: (), 'Equalize': lambda level: (), 'Invert': lambda level: (), 'Rotate': _rotate_level_to_arg, 'Posterize': lambda level: (int((level/_MAX_LEVEL) * 4),), 'Solarize': lambda level: (int((level/_MAX_LEVEL) * 256),), 'SolarizeAdd': lambda level: (int((level/_MAX_LEVEL) * 110),), 'Color': _enhance_level_to_arg, 'Contrast': _enhance_level_to_arg, 'Brightness': _enhance_level_to_arg, 'Sharpness': _enhance_level_to_arg, 'ShearX': _shear_level_to_arg, 'ShearY': _shear_level_to_arg, 'Cutout': lambda level: (int((level/_MAX_LEVEL) * hparams.cutout_const),), # pylint:disable=g-long-lambda 'TranslateX': lambda level: _translate_level_to_arg( level, hparams.translate_const), 'TranslateY': lambda level: _translate_level_to_arg( level, hparams.translate_const), # pylint:enable=g-long-lambda } def _parse_policy_info(name, prob, level, replace_value, augmentation_hparams): """Return the function that corresponds to `name` and update `level` param.""" func = NAME_TO_FUNC[name] args = level_to_arg(augmentation_hparams)[name](level) # Check to see if prob is passed into function. This is used for operations # where we alter bboxes independently. # pytype:disable=wrong-arg-types if 'prob' in inspect.getargspec(func)[0]: args = tuple([prob] + list(args)) # pytype:enable=wrong-arg-types # Add in replace arg if it is required for the function that is being called. # pytype:disable=wrong-arg-types if 'replace' in inspect.getargspec(func)[0]: # Make sure replace is the final argument assert 'replace' == inspect.getargspec(func)[0][-1] args = tuple(list(args) + [replace_value]) # pytype:enable=wrong-arg-types return (func, prob, args) def _apply_func_with_prob(func, image, args, prob): """Apply `func` to image w/ `args` as input with probability `prob`.""" assert isinstance(args, tuple) # If prob is a function argument, then this randomness is being handled # inside the function, so make sure it is always called. # pytype:disable=wrong-arg-types if 'prob' in inspect.getargspec(func)[0]: prob = 1.0 # pytype:enable=wrong-arg-types # Apply the function with probability `prob`. should_apply_op = tf.cast( tf.floor(tf.random_uniform([], dtype=tf.float32) + prob), tf.bool) augmented_image = tf.cond( should_apply_op, lambda: func(image, *args), lambda: image) return augmented_image def select_and_apply_random_policy(policies, image): """Select a random policy from `policies` and apply it to `image`.""" policy_to_select = tf.random_uniform([], maxval=len(policies), dtype=tf.int32) # Note that using tf.case instead of tf.conds would result in significantly # larger graphs and would even break export for some larger policies. for (i, policy) in enumerate(policies): image = tf.cond( tf.equal(i, policy_to_select), lambda selected_policy=policy: selected_policy(image), lambda: image) return image def build_and_apply_nas_policy(policies, image, augmentation_hparams): """Build a policy from the given policies passed in and apply to image. Args: policies: list of lists of tuples in the form `(func, prob, level)`, `func` is a string name of the augmentation function, `prob` is the probability of applying the `func` operation, `level` is the input argument for `func`. image: tf.Tensor that the resulting policy will be applied to. augmentation_hparams: Hparams associated with the NAS learned policy. Returns: A version of image that now has data augmentation applied to it based on the `policies` pass into the function. """ replace_value = [128, 128, 128] # func is the string name of the augmentation function, prob is the # probability of applying the operation and level is the parameter associated # with the tf op. # tf_policies are functions that take in an image and return an augmented # image. tf_policies = [] for policy in policies: tf_policy = [] # Link string name to the correct python function and make sure the correct # argument is passed into that function. for policy_info in policy: policy_info = list(policy_info) + [replace_value, augmentation_hparams] tf_policy.append(_parse_policy_info(*policy_info)) # Now build the tf policy that will apply the augmentation procedue # on image. def make_final_policy(tf_policy_): def final_policy(image_): for func, prob, args in tf_policy_: image_ = _apply_func_with_prob( func, image_, args, prob) return image_ return final_policy tf_policies.append(make_final_policy(tf_policy)) augmented_image = select_and_apply_random_policy( tf_policies, image) return augmented_image def distort_image_with_autoaugment(image, augmentation_name): """Applies the AutoAugment policy to `image`. AutoAugment is from the paper: https://arxiv.org/abs/1805.09501. Args: image: `Tensor` of shape [height, width, 3] representing an image. augmentation_name: The name of the AutoAugment policy to use. The available options are `v0` and `test`. `v0` is the policy used for all of the results in the paper and was found to achieve the best results on the COCO dataset. `v1`, `v2` and `v3` are additional good policies found on the COCO dataset that have slight variation in what operations were used during the search procedure along with how many operations are applied in parallel to a single image (2 vs 3). Returns: A tuple containing the augmented versions of `image`. """ available_policies = {'v0': policy_v0, 'test': policy_vtest} if augmentation_name not in available_policies: raise ValueError('Invalid augmentation_name: {}'.format(augmentation_name)) policy = available_policies[augmentation_name]() # Hparams that will be used for AutoAugment. augmentation_hparams = config_dict.ConfigDict(dict( cutout_const=100, translate_const=250)) return build_and_apply_nas_policy(policy, image, augmentation_hparams) def distort_image_with_randaugment(image, num_layers, magnitude): """Applies the RandAugment policy to `image`. RandAugment is from the paper https://arxiv.org/abs/1909.13719, Args: image: `Tensor` of shape [height, width, 3] representing an image. num_layers: Integer, the number of augmentation transformations to apply sequentially to an image. Represented as (N) in the paper. Usually best values will be in the range [1, 3]. magnitude: Integer, shared magnitude across all augmentation operations. Represented as (M) in the paper. Usually best values are in the range [5, 30]. Returns: The augmented version of `image`. """ replace_value = [128] * 3 tf.logging.info('Using RandAug.') augmentation_hparams = config_dict.ConfigDict(dict( cutout_const=40, translate_const=100)) available_ops = [ 'AutoContrast', 'Equalize', 'Invert', 'Rotate', 'Posterize', 'Solarize', 'Color', 'Contrast', 'Brightness', 'Sharpness', 'ShearX', 'ShearY', 'TranslateX', 'TranslateY', 'Cutout', 'SolarizeAdd'] for layer_num in range(num_layers): op_to_select = tf.random_uniform( [], maxval=len(available_ops), dtype=tf.int32) random_magnitude = float(magnitude) with tf.name_scope('randaug_layer_{}'.format(layer_num)): for (i, op_name) in enumerate(available_ops): prob = tf.random_uniform([], minval=0.2, maxval=0.8, dtype=tf.float32) func, _, args = _parse_policy_info(op_name, prob, random_magnitude, replace_value, augmentation_hparams) image = tf.cond( tf.equal(i, op_to_select), # pylint:disable=g-long-lambda lambda selected_func=func, selected_args=args: selected_func( image, *selected_args), # pylint:enable=g-long-lambda lambda: image) return image ================================================ FILE: nfnets/base.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Architecture definitions for different models.""" import haiku as hk import jax import jax.numpy as jnp import numpy as np # Model settings for NF-RegNets nf_regnet_params = { 'B0': {'width': [48, 104, 208, 440], 'depth': [1, 3, 6, 6], 'train_imsize': 192, 'test_imsize': 224, 'drop_rate': 0.2}, 'B1': {'width': [48, 104, 208, 440], 'depth': [2, 4, 7, 7], 'train_imsize': 224, 'test_imsize': 256, 'drop_rate': 0.2}, 'B2': {'width': [56, 112, 232, 488], 'depth': [2, 4, 8, 8], 'train_imsize': 240, 'test_imsize': 272, 'drop_rate': 0.3}, 'B3': {'width': [56, 128, 248, 528], 'depth': [2, 5, 9, 9], 'train_imsize': 288, 'test_imsize': 320, 'drop_rate': 0.3}, 'B4': {'width': [64, 144, 288, 616], 'depth': [2, 6, 11, 11], 'train_imsize': 320, 'test_imsize': 384, 'drop_rate': 0.4}, 'B5': {'width': [80, 168, 336, 704], 'depth': [3, 7, 14, 14], 'train_imsize': 384, 'test_imsize': 456, 'drop_rate': 0.4}, 'B6': {'width': [88, 184, 376, 792], 'depth': [3, 8, 16, 16], 'train_imsize': 448, 'test_imsize': 528, 'drop_rate': 0.5}, 'B7': {'width': [96, 208, 416, 880], 'depth': [4, 10, 19, 19], 'train_imsize': 512, 'test_imsize': 600, 'drop_rate': 0.5}, 'B8': {'width': [104, 232, 456, 968], 'depth': [4, 11, 22, 22], 'train_imsize': 600, 'test_imsize': 672, 'drop_rate': 0.5}, } nfnet_params = {} # F-series models nfnet_params.update(**{ 'F0': { 'width': [256, 512, 1536, 1536], 'depth': [1, 2, 6, 3], 'train_imsize': 192, 'test_imsize': 256, 'RA_level': '405', 'drop_rate': 0.2}, 'F1': { 'width': [256, 512, 1536, 1536], 'depth': [2, 4, 12, 6], 'train_imsize': 224, 'test_imsize': 320, 'RA_level': '410', 'drop_rate': 0.3}, 'F2': { 'width': [256, 512, 1536, 1536], 'depth': [3, 6, 18, 9], 'train_imsize': 256, 'test_imsize': 352, 'RA_level': '410', 'drop_rate': 0.4}, 'F3': { 'width': [256, 512, 1536, 1536], 'depth': [4, 8, 24, 12], 'train_imsize': 320, 'test_imsize': 416, 'RA_level': '415', 'drop_rate': 0.4}, 'F4': { 'width': [256, 512, 1536, 1536], 'depth': [5, 10, 30, 15], 'train_imsize': 384, 'test_imsize': 512, 'RA_level': '415', 'drop_rate': 0.5}, 'F5': { 'width': [256, 512, 1536, 1536], 'depth': [6, 12, 36, 18], 'train_imsize': 416, 'test_imsize': 544, 'RA_level': '415', 'drop_rate': 0.5}, 'F6': { 'width': [256, 512, 1536, 1536], 'depth': [7, 14, 42, 21], 'train_imsize': 448, 'test_imsize': 576, 'RA_level': '415', 'drop_rate': 0.5}, 'F7': { 'width': [256, 512, 1536, 1536], 'depth': [8, 16, 48, 24], 'train_imsize': 480, 'test_imsize': 608, 'RA_level': '415', 'drop_rate': 0.5}, }) # Minor variants FN+, slightly wider nfnet_params.update(**{ **{f'{key}+': {**nfnet_params[key], 'width': [384, 768, 2048, 2048],} for key in nfnet_params} }) # Nonlinearities with magic constants (gamma) baked in. # Note that not all nonlinearities will be stable, especially if they are # not perfectly monotonic. Good choices include relu, silu, and gelu. nonlinearities = { 'identity': lambda x: x, 'celu': lambda x: jax.nn.celu(x) * 1.270926833152771, 'elu': lambda x: jax.nn.elu(x) * 1.2716004848480225, 'gelu': lambda x: jax.nn.gelu(x) * 1.7015043497085571, 'glu': lambda x: jax.nn.glu(x) * 1.8484294414520264, 'leaky_relu': lambda x: jax.nn.leaky_relu(x) * 1.70590341091156, 'log_sigmoid': lambda x: jax.nn.log_sigmoid(x) * 1.9193484783172607, 'log_softmax': lambda x: jax.nn.log_softmax(x) * 1.0002083778381348, 'relu': lambda x: jax.nn.relu(x) * 1.7139588594436646, 'relu6': lambda x: jax.nn.relu6(x) * 1.7131484746932983, 'selu': lambda x: jax.nn.selu(x) * 1.0008515119552612, 'sigmoid': lambda x: jax.nn.sigmoid(x) * 4.803835391998291, 'silu': lambda x: jax.nn.silu(x) * 1.7881293296813965, 'soft_sign': lambda x: jax.nn.soft_sign(x) * 2.338853120803833, 'softplus': lambda x: jax.nn.softplus(x) * 1.9203323125839233, 'tanh': lambda x: jnp.tanh(x) * 1.5939117670059204, } class WSConv2D(hk.Conv2D): """2D Convolution with Scaled Weight Standardization and affine gain+bias.""" @hk.transparent def standardize_weight(self, weight, eps=1e-4): """Apply scaled WS with affine gain.""" mean = jnp.mean(weight, axis=(0, 1, 2), keepdims=True) var = jnp.var(weight, axis=(0, 1, 2), keepdims=True) fan_in = np.prod(weight.shape[:-1]) # Get gain gain = hk.get_parameter('gain', shape=(weight.shape[-1],), dtype=weight.dtype, init=jnp.ones) # Manually fused normalization, eq. to (w - mean) * gain / sqrt(N * var) scale = jax.lax.rsqrt(jnp.maximum(var * fan_in, eps)) * gain shift = mean * scale return weight * scale - shift def __call__(self, inputs: jnp.ndarray, eps: float = 1e-4) -> jnp.ndarray: w_shape = self.kernel_shape + ( inputs.shape[self.channel_index] // self.feature_group_count, self.output_channels) # Use fan-in scaled init, but WS is largely insensitive to this choice. w_init = hk.initializers.VarianceScaling(1.0, 'fan_in', 'normal') w = hk.get_parameter('w', w_shape, inputs.dtype, init=w_init) weight = self.standardize_weight(w, eps) out = jax.lax.conv_general_dilated( inputs, weight, window_strides=self.stride, padding=self.padding, lhs_dilation=self.lhs_dilation, rhs_dilation=self.kernel_dilation, dimension_numbers=self.dimension_numbers, feature_group_count=self.feature_group_count) # Always add bias bias_shape = (self.output_channels,) bias = hk.get_parameter('bias', bias_shape, inputs.dtype, init=jnp.zeros) return out + bias def signal_metrics(x, i): """Things to measure about a NCHW tensor activation.""" metrics = {} # Average channel-wise mean-squared metrics[f'avg_sq_mean_{i}'] = jnp.mean(jnp.mean(x, axis=[0, 1, 2])**2) # Average channel variance metrics[f'avg_var_{i}'] = jnp.mean(jnp.var(x, axis=[0, 1, 2])) return metrics def count_conv_flops(in_ch, conv, h, w): """For a conv layer with in_ch inputs, count the FLOPS.""" # How many outputs are we producing? Note this is wrong for VALID padding. output_shape = conv.output_channels * (h * w) / np.prod(conv.stride) # At each OHW location we do computation equal to (I//G) * kh * kw flop_per_loc = (in_ch / conv.feature_group_count) flop_per_loc *= np.prod(conv.kernel_shape) return output_shape * flop_per_loc class SqueezeExcite(hk.Module): """Simple Squeeze+Excite module.""" def __init__(self, in_ch, out_ch, se_ratio=0.5, hidden_ch=None, activation=jax.nn.relu, name=None): super().__init__(name=name) self.in_ch, self.out_ch = in_ch, out_ch if se_ratio is None: if hidden_ch is None: raise ValueError('Must provide one of se_ratio or hidden_ch') self.hidden_ch = hidden_ch else: self.hidden_ch = max(1, int(self.in_ch * se_ratio)) self.activation = activation self.fc0 = hk.Linear(self.hidden_ch, with_bias=True) self.fc1 = hk.Linear(self.out_ch, with_bias=True) def __call__(self, x): h = jnp.mean(x, axis=[1, 2]) # Mean pool over HW extent h = self.fc1(self.activation(self.fc0(h))) h = jax.nn.sigmoid(h)[:, None, None] # Broadcast along H, W return h class StochDepth(hk.Module): """Batchwise Dropout used in EfficientNet, optionally sans rescaling.""" def __init__(self, drop_rate, scale_by_keep=False, name=None): super().__init__(name=name) self.drop_rate = drop_rate self.scale_by_keep = scale_by_keep def __call__(self, x, is_training) -> jnp.ndarray: if not is_training: return x batch_size = x.shape[0] r = jax.random.uniform(hk.next_rng_key(), [batch_size, 1, 1, 1], dtype=x.dtype) keep_prob = 1. - self.drop_rate binary_tensor = jnp.floor(keep_prob + r) if self.scale_by_keep: x = x / keep_prob return x * binary_tensor ================================================ FILE: nfnets/dataset.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """ImageNet dataset with typical pre-processing and advanced augs.""" # pylint: disable=logging-format-interpolation import enum import itertools as it import logging import re from typing import Generator, Mapping, Optional, Sequence, Text, Tuple import jax import jax.numpy as jnp import numpy as np import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds import tensorflow_probability as tfp from nfnets import autoaugment Batch = Mapping[Text, np.ndarray] MEAN_RGB = (0.485 * 255, 0.456 * 255, 0.406 * 255) STDDEV_RGB = (0.229 * 255, 0.224 * 255, 0.225 * 255) AUTOTUNE = tf.data.experimental.AUTOTUNE class Split(enum.Enum): """Imagenet dataset split.""" TRAIN = 1 TRAIN_AND_VALID = 2 VALID = 3 TEST = 4 @classmethod def from_string(cls, name: Text) -> 'Split': return {'TRAIN': Split.TRAIN, 'TRAIN_AND_VALID': Split.TRAIN_AND_VALID, 'VALID': Split.VALID, 'VALIDATION': Split.VALID, 'TEST': Split.TEST}[name.upper()] @property def num_examples(self): return {Split.TRAIN_AND_VALID: 1281167, Split.TRAIN: 1271167, Split.VALID: 10000, Split.TEST: 50000}[self] def load( split: Split, *, is_training: bool, batch_dims: Sequence[int], name: str = 'imagenet', dtype: jnp.dtype = jnp.float32, transpose: bool = False, fake_data: bool = False, image_size: Tuple[int, int] = (224, 224), augment_name: Optional[str] = None, eval_preproc: str = 'crop_resize', augment_before_mix: bool = True, ) -> Generator[Batch, None, None]: """Loads the given split of the dataset. Args: split: Dataset split to use. is_training: If true, use training preproc and augmentation. batch_dims: List indicating how to batch the dataset (typically expected to be of shape (num_devices, bs_per_device) name: Which dataset to use, (must be 'imagenet') dtype: One of float32 or bfloat16 (bf16 may not be supported fully) transpose: If true, employs double transpose trick. fake_data: Return batches of fake data for debugging purposes. image_size: Final image size returned by dataset pipeline. Note that the exact procedure to arrive at this size will depend on the chosen preproc. augment_name: Optional additional aug strategy (applied atop the default of distorted bboxes and random L/R flips). Specified with a string such as 'cutmix_mixup_0.4_randaugment_415'. See README for deets. eval_preproc: Eval preproc method, either 'crop_resize' (crop on the long edge then resize) or `resize_crop_{pct}`, which will resize the image to `image_size / pct` on each side then take a center crop. augment_before_mix: Apply augs like RA/AA before or after cutmix/mixup. Yields: A TFDS numpy iterator. """ start, end = _shard(split, jax.host_id(), jax.host_count()) if fake_data: print('Using fake data!') images = np.zeros(tuple(batch_dims) + image_size + (3,), dtype=dtype) labels = np.zeros(tuple(batch_dims), dtype=np.int32) if transpose: axes = tuple(range(images.ndim)) axes = axes[:-4] + axes[-3:] + (axes[-4],) # NHWC -> HWCN images = np.transpose(images, axes) yield from it.repeat({'images': images, 'labels': labels}, end - start) return total_batch_size = np.prod(batch_dims) if name.lower() == 'imagenet': tfds_split = tfds.core.ReadInstruction(_to_tfds_split(split), from_=start, to=end, unit='abs') ds = tfds.load('imagenet2012:5.*.*', split=tfds_split, decoders={'image': tfds.decode.SkipDecoding()}) else: raise ValueError('Only imagenet is presently supported for this dataset.') options = tf.data.Options() options.experimental_threading.private_threadpool_size = 48 options.experimental_threading.max_intra_op_parallelism = 1 options.experimental_optimization.map_parallelization = True options.experimental_optimization.parallel_batch = True if is_training: options.experimental_deterministic = False ds = ds.with_options(options) if is_training: if jax.host_count() > 1: # Only cache if we are reading a subset of the dataset. ds = ds.cache() ds = ds.repeat() ds = ds.shuffle(buffer_size=10 * total_batch_size, seed=None) else: if split.num_examples % total_batch_size != 0: raise ValueError(f'Test/valid must be divisible by {total_batch_size}') def augment_normalize(batch): """Optionally augment, then normalize an image.""" batch = dict(**batch) image = _augment_image(batch['images'], is_training, augment_name) batch['images'] = _normalize_image(image) return batch def preprocess(example): image = _preprocess_image(example['image'], is_training, image_size, eval_preproc) label = tf.cast(example['label'], tf.int32) out = {'images': image, 'labels': label} if augment_name is not None and 'cutmix' in augment_name: out['mask'] = cutmix_padding(*image_size) out['cutmix_ratio'] = tf.reduce_mean(out['mask']) if augment_name is not None and 'mixup' in augment_name: mixup_alpha = 0.2 # default to alpha=0.2 # If float provided, get it if 'mixup_' in augment_name: alpha = augment_name.split('mixup_')[1].split('_') if any(alpha) and re.match(r'^-?\d+(?:\.\d+)?$', alpha[0]) is not None: mixup_alpha = float(alpha[0]) beta = tfp.distributions.Beta(mixup_alpha, mixup_alpha) out['mixup_ratio'] = beta.sample() # Apply augs before mixing? if augment_before_mix or augment_name is None: out = augment_normalize(out) return out ds = ds.map(preprocess, num_parallel_calls=AUTOTUNE) ds = ds.prefetch(AUTOTUNE) def transpose_fn(batch): # Applies the double-transpose trick for TPU. batch = dict(**batch) batch['images'] = tf.transpose(batch['images'], (1, 2, 3, 0)) return batch def cast_fn(batch): batch = dict(**batch) batch['images'] = tf.cast(batch['images'], tf.dtypes.as_dtype(dtype)) return batch for i, batch_size in enumerate(reversed(batch_dims)): if i == 0: # Deal with vectorized MixUp + CutMix ops if augment_name is not None: if 'mixup' in augment_name or 'cutmix' in augment_name: ds = ds.batch(batch_size * 2) else: ds = ds.map(augment_normalize, num_parallel_calls=AUTOTUNE) ds = ds.batch(batch_size) # Apply mixup, cutmix, or mixup + cutmix if 'mixup' in augment_name and 'cutmix' not in augment_name: logging.info('Applying MixUp!') ds = ds.map(my_mixup, num_parallel_calls=AUTOTUNE) elif 'cutmix' in augment_name and 'mixup' not in augment_name: logging.info('Applying CutMix!') ds = ds.map(my_cutmix, num_parallel_calls=AUTOTUNE) elif 'mixup' in augment_name and 'cutmix' in augment_name: logging.info('Applying MixUp and CutMix!') ds = ds.map(my_mixup_cutmix, num_parallel_calls=AUTOTUNE) # If applying augs after mixing, unbatch, map, and rebatch if (not augment_before_mix and ('mixup' in augment_name or 'cutmix' in augment_name)): ds = ds.unbatch().map(augment_normalize, num_parallel_calls=AUTOTUNE) ds = ds.batch(batch_size) else: ds = ds.batch(batch_size) # Transpose and cast as needbe if transpose: ds = ds.map(transpose_fn) # NHWC -> HWCN # NOTE: You may be tempted to move the casting earlier on in the pipeline, # but for bf16 some operations will end up silently placed on the TPU and # this causes stalls while TF and JAX battle for the accelerator. ds = ds.map(cast_fn) else: ds = ds.batch(batch_size) ds = ds.prefetch(AUTOTUNE) ds = tfds.as_numpy(ds) yield from ds def cutmix_padding(h, w): """Returns image mask for CutMix. Taken from (https://github.com/google/edward2/blob/master/experimental /marginalization_mixup/data_utils.py#L367) Args: h: image height. w: image width. """ r_x = tf.random.uniform([], 0, w, tf.int32) r_y = tf.random.uniform([], 0, h, tf.int32) # Beta dist in paper, but they used Beta(1,1) which is just uniform. image1_proportion = tf.random.uniform([]) patch_length_ratio = tf.math.sqrt(1 - image1_proportion) r_w = tf.cast(patch_length_ratio * tf.cast(w, tf.float32), tf.int32) r_h = tf.cast(patch_length_ratio * tf.cast(h, tf.float32), tf.int32) bbx1 = tf.clip_by_value(tf.cast(r_x - r_w // 2, tf.int32), 0, w) bby1 = tf.clip_by_value(tf.cast(r_y - r_h // 2, tf.int32), 0, h) bbx2 = tf.clip_by_value(tf.cast(r_x + r_w // 2, tf.int32), 0, w) bby2 = tf.clip_by_value(tf.cast(r_y + r_h // 2, tf.int32), 0, h) # Create the binary mask. pad_left = bbx1 pad_top = bby1 pad_right = tf.maximum(w - bbx2, 0) pad_bottom = tf.maximum(h - bby2, 0) r_h = bby2 - bby1 r_w = bbx2 - bbx1 mask = tf.pad( tf.ones((r_h, r_w)), paddings=[[pad_top, pad_bottom], [pad_left, pad_right]], mode='CONSTANT', constant_values=0) mask.set_shape((h, w)) return mask[..., None] # Add channel dim. def my_cutmix(batch): """Cutmix.""" batch = dict(**batch) bs = tf.shape(batch['images'])[0] // 2 mask = batch['mask'][:bs] images = (mask * batch['images'][:bs] + (1.0 - mask) * batch['images'][bs:]) mix_labels = batch['labels'][bs:] labels = batch['labels'][:bs] ratio = batch['cutmix_ratio'][:bs] return {'images': images, 'labels': labels, 'mix_labels': mix_labels, 'ratio': ratio} def my_mixup(batch): """Mixup.""" batch = dict(**batch) bs = tf.shape(batch['images'])[0] // 2 ratio = batch['mixup_ratio'][:bs, None, None, None] images = (ratio * batch['images'][:bs] + (1.0 - ratio) * batch['images'][bs:]) mix_labels = batch['labels'][bs:] labels = batch['labels'][:bs] ratio = ratio[..., 0, 0, 0] # Unsqueeze return {'images': images, 'labels': labels, 'mix_labels': mix_labels, 'ratio': ratio} def mixup_or_cutmix(batch): """Randomly applies one of cutmix or mixup to a batch.""" logging.info('Randomly applying cutmix or mixup with 50% chance!') return tf.cond( tf.cast(tf.random.uniform([], maxval=2, dtype=tf.int32), tf.bool), lambda: my_mixup(batch), lambda: my_cutmix(batch)) def my_mixup_cutmix(batch): """Apply mixup to half the batch, and cutmix to the other.""" batch = dict(**batch) bs = tf.shape(batch['images'])[0] // 4 mixup_ratio = batch['mixup_ratio'][:bs, None, None, None] mixup_images = (mixup_ratio * batch['images'][:bs] + (1.0 - mixup_ratio) * batch['images'][bs:2*bs]) mixup_labels = batch['labels'][:bs] mixup_mix_labels = batch['labels'][bs:2*bs] cutmix_mask = batch['mask'][2*bs:3*bs] cutmix_images = (cutmix_mask * batch['images'][2*bs:3*bs] + (1.0 - cutmix_mask) * batch['images'][-bs:]) cutmix_labels = batch['labels'][2*bs:3*bs] cutmix_mix_labels = batch['labels'][-bs:] cutmix_ratio = batch['cutmix_ratio'][2*bs : 3*bs] return {'images': tf.concat([mixup_images, cutmix_images], axis=0), 'labels': tf.concat([mixup_labels, cutmix_labels], axis=0), 'mix_labels': tf.concat([mixup_mix_labels, cutmix_mix_labels], 0), 'ratio': tf.concat([mixup_ratio[..., 0, 0, 0], cutmix_ratio], axis=0)} def _to_tfds_split(split: Split) -> tfds.Split: """Returns the TFDS split appropriately sharded.""" if split in (Split.TRAIN, Split.TRAIN_AND_VALID, Split.VALID): return tfds.Split.TRAIN else: assert split == Split.TEST return tfds.Split.VALIDATION def _shard(split: Split, shard_index: int, num_shards: int) -> Tuple[int, int]: """Returns [start, end) for the given shard index.""" assert shard_index < num_shards arange = np.arange(split.num_examples) shard_range = np.array_split(arange, num_shards)[shard_index] start, end = shard_range[0], (shard_range[-1] + 1) if split == Split.TRAIN: # Note that our TRAIN=TFDS_TRAIN[10000:] and VALID=TFDS_TRAIN[:10000]. offset = Split.VALID.num_examples start += offset end += offset return start, end def _preprocess_image( image_bytes: tf.Tensor, is_training: bool, image_size: Sequence[int], eval_preproc: str = 'crop_resize' ) -> tf.Tensor: """Returns processed and resized images.""" # NOTE: Bicubic resize (1) casts uint8 to float32 and (2) resizes without # clamping overshoots. This means values returned will be outside the range # [0.0, 255.0] (e.g. we have observed outputs in the range [-51.1, 336.6]). if is_training: image = _decode_and_random_crop(image_bytes, image_size) image = tf.image.random_flip_left_right(image) assert image.dtype == tf.uint8 image = tf.image.resize(image, image_size, tf.image.ResizeMethod.BICUBIC) else: if eval_preproc == 'crop_resize': image = _decode_and_center_crop(image_bytes, image_size=image_size) assert image.dtype == tf.uint8 image = tf.image.resize(image, image_size, tf.image.ResizeMethod.BICUBIC) elif 'resize_crop' in eval_preproc: # Pass in crop percent crop_pct = float(eval_preproc.split('_')[-1]) image = _decode_and_resize_then_crop(image_bytes, image_size=image_size, crop_pct=crop_pct) else: raise ValueError(f'Unknown Eval Preproc {eval_preproc} provided!') return image def _augment_image( image: tf.Tensor, is_training: bool, augment_name: Optional[str] = None, ) -> tf.Tensor: """Applies AA/RA to an image.""" if is_training and augment_name: if 'autoaugment' in augment_name or 'randaugment' in augment_name: input_image_type = image.dtype image = tf.clip_by_value(image, 0.0, 255.0) # Autoaugment requires a uint8 image; we cast here and then cast back image = tf.cast(image, dtype=tf.uint8) if 'autoaugment' in augment_name: logging.info(f'Applying AutoAugment policy {augment_name}') image = autoaugment.distort_image_with_autoaugment(image, 'v0') elif 'randaugment' in augment_name: magnitude = int(augment_name.split('_')[-1]) # pytype: disable=attribute-error # Allow passing in num_layers as a magnitude > 100 if magnitude > 100: num_layers = magnitude // 100 magnitude = magnitude - int(num_layers * 100) else: num_layers = 2 logging.info(f'Applying RA {num_layers} x {magnitude}') image = autoaugment.distort_image_with_randaugment( image, num_layers=num_layers, magnitude=magnitude) image = tf.cast(image, dtype=input_image_type) return image def _normalize_image(image: tf.Tensor) -> tf.Tensor: """Normalize the image to zero mean and unit variance.""" image -= tf.constant(MEAN_RGB, shape=[1, 1, 3], dtype=image.dtype) image /= tf.constant(STDDEV_RGB, shape=[1, 1, 3], dtype=image.dtype) return image def _distorted_bounding_box_crop( image_bytes: tf.Tensor, *, jpeg_shape: tf.Tensor, bbox: tf.Tensor, min_object_covered: float, aspect_ratio_range: Tuple[float, float], area_range: Tuple[float, float], max_attempts: int, ) -> tf.Tensor: """Generates cropped_image using one of the bboxes randomly distorted.""" bbox_begin, bbox_size, _ = tf.image.sample_distorted_bounding_box( jpeg_shape, bounding_boxes=bbox, min_object_covered=min_object_covered, aspect_ratio_range=aspect_ratio_range, area_range=area_range, max_attempts=max_attempts, use_image_if_no_bounding_boxes=True) # Crop the image to the specified bounding box. offset_y, offset_x, _ = tf.unstack(bbox_begin) target_height, target_width, _ = tf.unstack(bbox_size) crop_window = [offset_y, offset_x, target_height, target_width] image = crop(image_bytes, crop_window) return image def _decode_and_random_crop(image_bytes: tf.Tensor, image_size: Sequence[int] = (224, 224), jpeg_shape: Optional[tf.Tensor] = None ) -> tf.Tensor: """Make a random crop of chosen size.""" if jpeg_shape is None: jpeg_shape = get_shape(image_bytes) bbox = tf.constant([0.0, 0.0, 1.0, 1.0], dtype=tf.float32, shape=[1, 1, 4]) image = _distorted_bounding_box_crop( image_bytes, jpeg_shape=jpeg_shape, bbox=bbox, min_object_covered=0.1, aspect_ratio_range=(3 / 4, 4 / 3), area_range=(0.08, 1.0), max_attempts=10) if tf.reduce_all(tf.equal(jpeg_shape, tf.shape(image))): # If the random crop failed fall back to center crop. image = _decode_and_center_crop(image_bytes, jpeg_shape, image_size) return image def _decode_and_center_crop( image_bytes: tf.Tensor, jpeg_shape: Optional[tf.Tensor] = None, image_size: Sequence[int] = (224, 224), ) -> tf.Tensor: """Crops to center of image with padding then scales.""" if jpeg_shape is None: jpeg_shape = get_shape(image_bytes) image_height = jpeg_shape[0] image_width = jpeg_shape[1] # Pad the image with at least 32px on the short edge and take a # crop that maintains aspect ratio. scale = tf.minimum(tf.cast(image_height, tf.float32) / (image_size[0] + 32), tf.cast(image_width, tf.float32) / (image_size[1] + 32)) padded_center_crop_height = tf.cast(scale * image_size[0], tf.int32) padded_center_crop_width = tf.cast(scale * image_size[1], tf.int32) offset_height = ((image_height - padded_center_crop_height) + 1) // 2 offset_width = ((image_width - padded_center_crop_width) + 1) // 2 crop_window = [offset_height, offset_width, padded_center_crop_height, padded_center_crop_width] image = crop(image_bytes, crop_window) return image def get_shape(image_bytes): """Gets the image shape for jpeg bytes or a uint8 decoded image.""" if image_bytes.dtype == tf.dtypes.string: image_shape = tf.image.extract_jpeg_shape(image_bytes) else: image_shape = tf.shape(image_bytes) return image_shape def crop(image_bytes, crop_window): """Helper function to crop a jpeg or a decoded image.""" if image_bytes.dtype == tf.dtypes.string: image = tf.image.decode_and_crop_jpeg(image_bytes, tf.stack(crop_window), channels=3) else: image = tf.image.crop_to_bounding_box(image_bytes, *crop_window) return image def _decode_and_resize_then_crop( image_bytes: tf.Tensor, image_size: Sequence[int] = (224, 224), crop_pct: float = 1.0, ) -> tf.Tensor: """Rescales an image to image_size / crop_pct, then center crops.""" image = tf.image.decode_jpeg(image_bytes, channels=3) # Scale image to "scaled size" before taking a center crop if crop_pct > 1.0: # If crop_pct is >1, treat it as num pad pixels (like VGG) scale_size = tuple([int(x + crop_pct) for x in image_size]) else: scale_size = tuple([int(float(x) / crop_pct) for x in image_size]) image = tf.image.resize(image, scale_size, tf.image.ResizeMethod.BICUBIC) crop_height = tf.cast(image_size[0], tf.int32) crop_width = tf.cast(image_size[1], tf.int32) offset_height = ((scale_size[0] - crop_height) + 1) // 2 offset_width = ((scale_size[1] - crop_width) + 1) // 2 crop_window = [offset_height, offset_width, crop_height, crop_width] image = crop(image, crop_window) return image ================================================ FILE: nfnets/experiment.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== r"""Basic Jaxline ImageNet experiment.""" import importlib import sys from absl import flags from absl import logging import haiku as hk import jax import jax.numpy as jnp from jaxline import base_config from jaxline import experiment from jaxline import platform from jaxline import utils as jl_utils from ml_collections import config_dict import numpy as np from nfnets import dataset from nfnets import optim from nfnets import utils # pylint: disable=logging-format-interpolation FLAGS = flags.FLAGS # We define the experiment launch config in the same file as the experiment to # keep things self-contained in a single file, but one might consider moving the # config and/or sweep functions to a separate file, if necessary. def get_config(): """Return config object for training.""" config = base_config.get_base_config() # Experiment config. train_batch_size = 1024 # Global batch size. images_per_epoch = 1281167 num_epochs = 90 steps_per_epoch = images_per_epoch / train_batch_size config.training_steps = ((images_per_epoch * num_epochs) // train_batch_size) config.random_seed = 0 config.experiment_kwargs = config_dict.ConfigDict( dict( config=dict( lr=0.1, num_epochs=num_epochs, label_smoothing=0.1, model='ResNet', image_size=224, use_ema=False, ema_decay=0.9999, # Quatros nuevos amigos ema_start=0, which_ema='tf1_ema', augment_name=None, # 'mixup_cutmix', augment_before_mix=True, eval_preproc='crop_resize', train_batch_size=train_batch_size, eval_batch_size=50, eval_subset='test', num_classes=1000, which_dataset='imagenet', fake_data=False, which_loss='softmax_cross_entropy', # For now, must be softmax transpose=True, # Use the double-transpose trick? bfloat16=False, lr_schedule=dict( name='WarmupCosineDecay', kwargs=dict( num_steps=config.training_steps, start_val=0, min_val=0, warmup_steps=5 * steps_per_epoch), ), lr_scale_by_bs=True, optimizer=dict( name='SGD', kwargs={ 'momentum': 0.9, 'nesterov': True, 'weight_decay': 1e-4, }, ), model_kwargs=dict( width=4, which_norm='BatchNorm', norm_kwargs=dict( create_scale=True, create_offset=True, decay_rate=0.9, ), # cross_replica_axis='i'), variant='ResNet50', activation='relu', drop_rate=0.0, ), ),)) # Training loop config: log and checkpoint every minute config.log_train_data_interval = 60 config.log_tensors_interval = 60 config.save_checkpoint_interval = 60 config.eval_specific_checkpoint_dir = '' return config class Experiment(experiment.AbstractExperiment): """Imagenet experiment.""" CHECKPOINT_ATTRS = { '_params': 'params', '_state': 'state', '_ema_params': 'ema_params', '_ema_state': 'ema_state', '_opt_state': 'opt_state', } def __init__(self, mode, config, init_rng): super().__init__(mode=mode) self.mode = mode self.config = config self.init_rng = init_rng # Checkpointed experiment state. self._params = None self._state = None self._ema_params = None self._ema_state = None self._opt_state = None # Input pipelines. self._train_input = None self._eval_input = None # Get model, loaded in from the zoo module_prefix = 'nfnets.' self.model_module = importlib.import_module( (module_prefix + self.config.model.lower())) self.net = hk.transform_with_state(self._forward_fn) # Assign image sizes if self.config.get('override_imsize', False): self.train_imsize = self.config.image_size self.test_imsize = self.config.get('eval_image_size', self.train_imsize) else: variant_dict = getattr(self.model_module, self.config.model).variant_dict variant_dict = variant_dict[self.config.model_kwargs.variant] self.train_imsize = variant_dict.get('train_imsize', self.config.image_size) # Test imsize defaults to model-specific value, then to config imsize test_imsize = self.config.get('eval_image_size', self.config.image_size) self.test_imsize = variant_dict.get('test_imsize', test_imsize) donate_argnums = (0, 1, 2, 6, 7) if self.config.use_ema else (0, 1, 2) self.train_fn = jax.pmap( self._train_fn, axis_name='i', donate_argnums=donate_argnums) self.eval_fn = jax.pmap(self._eval_fn, axis_name='i') def _initialize_train(self): self._train_input = self._build_train_input() # Initialize net and EMA copy of net if no params available. if self._params is None: inputs = next(self._train_input) init_net = jax.pmap( lambda *a: self.net.init(*a, is_training=True), axis_name='i') init_rng = jl_utils.bcast_local_devices(self.init_rng) self._params, self._state = init_net(init_rng, inputs) if self.config.use_ema: self._ema_params, self._ema_state = init_net(init_rng, inputs) num_params = hk.data_structures.tree_size(self._params) logging.info(f'Net parameters: {num_params / jax.local_device_count()}') self._make_opt() def _make_opt(self): # Separate conv params and gains/biases def pred(mod, name, val): # pylint:disable=unused-argument return (name in ['scale', 'offset', 'b'] or 'gain' in name or 'bias' in name) gains_biases, weights = hk.data_structures.partition(pred, self._params) # Lr schedule with batch-based LR scaling if self.config.lr_scale_by_bs: max_lr = (self.config.lr * self.config.train_batch_size) / 256 else: max_lr = self.config.lr lr_sched_fn = getattr(optim, self.config.lr_schedule.name) lr_schedule = lr_sched_fn(max_val=max_lr, **self.config.lr_schedule.kwargs) # Optimizer; no need to broadcast! opt_kwargs = {key: val for key, val in self.config.optimizer.kwargs.items()} opt_kwargs['lr'] = lr_schedule opt_module = getattr(optim, self.config.optimizer.name) self.opt = opt_module([{ 'params': gains_biases, 'weight_decay': None }, { 'params': weights }], **opt_kwargs) if self._opt_state is None: self._opt_state = self.opt.states() else: self.opt.plugin(self._opt_state) def _forward_fn(self, inputs, is_training): net_kwargs = { 'num_classes': self.config.num_classes, **self.config.model_kwargs } net = getattr(self.model_module, self.config.model)(**net_kwargs) if self.config.get('transpose', False): images = jnp.transpose(inputs['images'], (3, 0, 1, 2)) # HWCN -> NHWC else: images = inputs['images'] if self.config.bfloat16 and self.mode == 'train': images = utils.to_bf16(images) return net(images, is_training=is_training)['logits'] def _one_hot(self, value): """One-hot encoding potentially over a sequence of labels.""" y = jax.nn.one_hot(value, self.config.num_classes) return y def _loss_fn(self, params, state, inputs, rng): logits, state = self.net.apply(params, state, rng, inputs, is_training=True) y = self._one_hot(inputs['labels']) if 'mix_labels' in inputs: # Handle cutmix/mixup label mixing logging.info('Using mixup or cutmix!') y1 = self._one_hot(inputs['mix_labels']) y = inputs['ratio'][:, None] * y + (1. - inputs['ratio'][:, None]) * y1 if self.config.label_smoothing > 0: # get smoothy spositives = 1. - self.config.label_smoothing snegatives = self.config.label_smoothing / self.config.num_classes y = spositives * y + snegatives if self.config.bfloat16: # Cast logits to float32 logits = logits.astype(jnp.float32) which_loss = getattr(utils, self.config.which_loss) loss = which_loss(logits, y, reduction='mean') metrics = utils.topk_correct(logits, inputs['labels'], prefix='train_') # Average top-1 and top-5 correct labels metrics = jax.tree_map(jnp.mean, metrics) metrics['train_loss'] = loss # Metrics will be pmeaned so don't divide here scaled_loss = loss / jax.device_count() # Grads get psummed so do divide return scaled_loss, (metrics, state) def _train_fn(self, params, states, opt_states, inputs, rng, global_step, ema_params, ema_states): """Runs one batch forward + backward and run a single opt step.""" grad_fn = jax.grad(self._loss_fn, argnums=0, has_aux=True) if self.config.bfloat16: in_params, states = jax.tree_map(utils.to_bf16, (params, states)) else: in_params = params grads, (metrics, states) = grad_fn(in_params, states, inputs, rng) if self.config.bfloat16: states, metrics, grads = jax.tree_map(utils.from_bf16, (states, metrics, grads)) # Sum gradients and average losses for pmap grads = jax.lax.psum(grads, 'i') metrics = jax.lax.pmean(metrics, 'i') # Compute updates and update parameters metrics['learning_rate'] = self.opt._hyperparameters['lr'](global_step) # pylint: disable=protected-access params, opt_states = self.opt.step(params, grads, opt_states, global_step) if ema_params is not None: ema_fn = getattr(utils, self.config.get('which_ema', 'tf1_ema')) ema = lambda x, y: ema_fn(x, y, self.config.ema_decay, global_step) ema_params = jax.tree_map(ema, ema_params, params) ema_states = jax.tree_map(ema, ema_states, states) return { 'params': params, 'states': states, 'opt_states': opt_states, 'ema_params': ema_params, 'ema_states': ema_states, 'metrics': metrics } # _ _ # | |_ _ __ __ _(_)_ __ # | __| '__/ _` | | '_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step(self, global_step, rng, *unused_args, **unused_kwargs): if self._train_input is None: self._initialize_train() inputs = next(self._train_input) out = self.train_fn( params=self._params, states=self._state, opt_states=self._opt_state, inputs=inputs, rng=rng, global_step=global_step, ema_params=self._ema_params, ema_states=self._ema_state) self._params, self._state = out['params'], out['states'] self._opt_state = out['opt_states'] self._ema_params, self._ema_state = out['ema_params'], out['ema_states'] self.opt.plugin(self._opt_state) return jl_utils.get_first(out['metrics']) def _build_train_input(self): num_devices = jax.device_count() global_batch_size = self.config.train_batch_size bs_per_device, ragged = divmod(global_batch_size, num_devices) if ragged: raise ValueError( f'Global batch size {global_batch_size} must be divisible by ' f'num devices {num_devices}') return dataset.load( dataset.Split.TRAIN_AND_VALID, is_training=True, batch_dims=[jax.local_device_count(), bs_per_device], transpose=self.config.get('transpose', False), image_size=(self.train_imsize,) * 2, augment_name=self.config.augment_name, augment_before_mix=self.config.get('augment_before_mix', True), name=self.config.which_dataset, fake_data=self.config.get('fake_data', False)) # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step, **unused_args): metrics = self._eval_epoch(self._params, self._state) if self.config.use_ema: ema_metrics = self._eval_epoch(self._ema_params, self._ema_state) metrics.update({f'ema_{key}': val for key, val in ema_metrics.items()}) logging.info(f'[Step {global_step}] Eval scalars: {metrics}') return metrics def _eval_epoch(self, params, state): """Evaluates an epoch.""" num_samples = 0. summed_metrics = None for inputs in self._build_eval_input(): num_samples += np.prod(inputs['labels'].shape[:2]) # Account for pmaps metrics = self.eval_fn(params, state, inputs) # Accumulate the sum of metrics for each step. metrics = jax.tree_map(lambda x: jnp.sum(x[0], axis=0), metrics) if summed_metrics is None: summed_metrics = metrics else: summed_metrics = jax.tree_map(jnp.add, summed_metrics, metrics) mean_metrics = jax.tree_map(lambda x: x / num_samples, summed_metrics) return jax.device_get(mean_metrics) def _eval_fn(self, params, state, inputs): """Evaluate a single batch and return loss and top-k acc.""" logits, _ = self.net.apply(params, state, None, inputs, is_training=False) y = self._one_hot(inputs['labels']) which_loss = getattr(utils, self.config.which_loss) loss = which_loss(logits, y, reduction=None) metrics = utils.topk_correct(logits, inputs['labels'], prefix='eval_') metrics['eval_loss'] = loss return jax.lax.psum(metrics, 'i') def _build_eval_input(self): """Builds the evaluation input pipeline.""" bs_per_device = (self.config.eval_batch_size // jax.local_device_count()) split = dataset.Split.from_string(self.config.eval_subset) eval_preproc = self.config.get('eval_preproc', 'crop_resize') return dataset.load( split, is_training=False, batch_dims=[jax.local_device_count(), bs_per_device], transpose=self.config.get('transpose', False), image_size=(self.test_imsize,) * 2, name=self.config.which_dataset, eval_preproc=eval_preproc, fake_data=self.config.get('fake_data', False)) if __name__ == '__main__': flags.mark_flag_as_required('config') platform.main(Experiment, sys.argv[1:]) ================================================ FILE: nfnets/experiment_nf_regnets.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== r"""ImageNet experiment with NF-RegNets.""" from ml_collections import config_dict from nfnets import experiment def get_config(): """Return config object for training.""" config = experiment.get_config() # Experiment config. train_batch_size = 1024 # Global batch size. images_per_epoch = 1281167 num_epochs = 360 steps_per_epoch = images_per_epoch / train_batch_size config.training_steps = ((images_per_epoch * num_epochs) // train_batch_size) config.random_seed = 0 config.experiment_kwargs = config_dict.ConfigDict( dict( config=dict( lr=0.4, num_epochs=num_epochs, label_smoothing=0.1, model='NF_RegNet', image_size=224, use_ema=True, ema_decay=0.99999, # Cinco nueves amigos ema_start=0, augment_name='mixup_cutmix', train_batch_size=train_batch_size, eval_batch_size=50, eval_subset='test', num_classes=1000, which_dataset='imagenet', which_loss='softmax_cross_entropy', # One of softmax or sigmoid bfloat16=False, lr_schedule=dict( name='WarmupCosineDecay', kwargs=dict(num_steps=config.training_steps, start_val=0, min_val=0.001, warmup_steps=5*steps_per_epoch), ), lr_scale_by_bs=False, optimizer=dict( name='SGD', kwargs={'momentum': 0.9, 'nesterov': True, 'weight_decay': 5e-5,}, ), model_kwargs=dict( variant='B0', width=0.75, expansion=2.25, se_ratio=0.5, alpha=0.2, stochdepth_rate=0.1, drop_rate=None, activation='silu', ), ))) # Set weight decay based on variant (scaled as 5e-5 + 1e-5 * level) variant = config.experiment_kwargs.config.model_kwargs.variant weight_decay = {'B0': 5e-5, 'B1': 6e-5, 'B2': 7e-5, 'B3': 8e-5, 'B4': 9e-5, 'B5': 1e-4}[variant] config.experiment_kwargs.config.optimizer.kwargs.weight_decay = weight_decay return config Experiment = experiment.Experiment ================================================ FILE: nfnets/experiment_nfnets.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== r"""ImageNet experiment with NFNets.""" import sys from absl import flags import haiku as hk from jaxline import platform from ml_collections import config_dict from nfnets import experiment from nfnets import optim FLAGS = flags.FLAGS def get_config(): """Return config object for training.""" config = experiment.get_config() # Experiment config. train_batch_size = 4096 # Global batch size. images_per_epoch = 1281167 num_epochs = 360 steps_per_epoch = images_per_epoch / train_batch_size config.training_steps = ((images_per_epoch * num_epochs) // train_batch_size) config.random_seed = 0 config.experiment_kwargs = config_dict.ConfigDict( dict( config=dict( lr=0.1, num_epochs=num_epochs, label_smoothing=0.1, model='NFNet', image_size=224, use_ema=True, ema_decay=0.99999, ema_start=0, augment_name=None, augment_before_mix=False, eval_preproc='resize_crop_32', train_batch_size=train_batch_size, eval_batch_size=50, eval_subset='test', num_classes=1000, which_dataset='imagenet', which_loss='softmax_cross_entropy', # One of softmax or sigmoid bfloat16=True, lr_schedule=dict( name='WarmupCosineDecay', kwargs=dict(num_steps=config.training_steps, start_val=0, min_val=0.0, warmup_steps=5*steps_per_epoch), ), lr_scale_by_bs=True, optimizer=dict( name='SGD_AGC', kwargs={'momentum': 0.9, 'nesterov': True, 'weight_decay': 2e-5, 'clipping': 0.01, 'eps': 1e-3}, ), model_kwargs=dict( variant='F0', width=1.0, se_ratio=0.5, alpha=0.2, stochdepth_rate=0.25, drop_rate=None, # Use native drop-rate activation='gelu', final_conv_mult=2, final_conv_ch=None, use_two_convs=True, ), ))) # Unlike NF-RegNets, use the same weight decay for all, but vary RA levels variant = config.experiment_kwargs.config.model_kwargs.variant # RandAugment levels (e.g. 405 = 4 layers, magnitude 5, 205 = 2 layers, mag 5) augment = {'F0': '405', 'F1': '410', 'F2': '410', 'F3': '415', 'F4': '415', 'F5': '415', 'F6': '415', 'F7': '415'}[variant] aug_base_name = 'cutmix_mixup_randaugment' config.experiment_kwargs.config.augment_name = f'{aug_base_name}_{augment}' return config class Experiment(experiment.Experiment): """Experiment with correct parameter filtering for applying AGC.""" def _make_opt(self): # Separate conv params and gains/biases def pred_gb(mod, name, val): del mod, val return (name in ['scale', 'offset', 'b'] or 'gain' in name or 'bias' in name) gains_biases, weights = hk.data_structures.partition(pred_gb, self._params) def pred_fc(mod, name, val): del name, val return 'linear' in mod and 'squeeze_excite' not in mod fc_weights, weights = hk.data_structures.partition(pred_fc, weights) # Lr schedule with batch-based LR scaling if self.config.lr_scale_by_bs: max_lr = (self.config.lr * self.config.train_batch_size) / 256 else: max_lr = self.config.lr lr_sched_fn = getattr(optim, self.config.lr_schedule.name) lr_schedule = lr_sched_fn(max_val=max_lr, **self.config.lr_schedule.kwargs) # Optimizer; no need to broadcast! opt_kwargs = {key: val for key, val in self.config.optimizer.kwargs.items()} opt_kwargs['lr'] = lr_schedule opt_module = getattr(optim, self.config.optimizer.name) self.opt = opt_module([{'params': gains_biases, 'weight_decay': None,}, {'params': fc_weights, 'clipping': None}, {'params': weights}], **opt_kwargs) if self._opt_state is None: self._opt_state = self.opt.states() else: self.opt.plugin(self._opt_state) if __name__ == '__main__': flags.mark_flag_as_required('config') platform.main(Experiment, sys.argv[1:]) ================================================ FILE: nfnets/fixup_resnet.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """ResNet (post-activation) with FixUp.""" # pylint: disable=invalid-name import functools import haiku as hk import jax import jax.numpy as jnp from nfnets import base nonlinearities = { 'swish': jax.nn.silu, 'relu': jax.nn.relu, 'identity': lambda x: x} class FixUp_ResNet(hk.Module): """Fixup based ResNet.""" variant_dict = {'ResNet50': {'depth': [3, 4, 6, 3]}, 'ResNet101': {'depth': [3, 4, 23, 3]}, 'ResNet152': {'depth': [3, 8, 36, 3]}, 'ResNet200': {'depth': [3, 24, 36, 3]}, 'ResNet288': {'depth': [24, 24, 24, 24]}, 'ResNet600': {'depth': [50, 50, 50, 50]}, } def __init__(self, num_classes, variant='ResNet50', width=4, stochdepth_rate=0.1, drop_rate=None, activation='relu', fc_init=jnp.zeros, name='FixUp_ResNet'): super().__init__(name=name) self.num_classes = num_classes self.variant = variant self.width = width # Get variant info block_params = self.variant_dict[self.variant] self.width_pattern = [item * self.width for item in [64, 128, 256, 512]] self.depth_pattern = block_params['depth'] self.activation = nonlinearities[activation] if drop_rate is None: self.drop_rate = block_params['drop_rate'] else: self.drop_rate = drop_rate self.which_conv = functools.partial(hk.Conv2D, with_bias=False) # Stem ch = int(16 * self.width) self.initial_conv = self.which_conv(ch, kernel_shape=7, stride=2, padding='SAME', name='initial_conv') # Body self.blocks = [] num_blocks = sum(self.depth_pattern) index = 0 # Overall block index block_args = (self.width_pattern, self.depth_pattern, [1, 2, 2, 2]) for block_width, stage_depth, stride in zip(*block_args): for block_index in range(stage_depth): # Block stochastic depth drop-rate block_stochdepth_rate = stochdepth_rate * index / num_blocks self.blocks += [ResBlock(ch, block_width, num_blocks, stride=stride if block_index == 0 else 1, activation=self.activation, which_conv=self.which_conv, stochdepth_rate=block_stochdepth_rate, )] ch = block_width index += 1 # Head self.fc = hk.Linear(self.num_classes, w_init=fc_init, with_bias=True) def __call__(self, x, is_training=True, return_metrics=False): """Return the output of the final layer without any [log-]softmax.""" # Stem outputs = {} out = self.initial_conv(x) bias1 = hk.get_parameter('bias1', (), x.dtype, init=jnp.zeros) out = self.activation(out + bias1) out = hk.max_pool(out, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') if return_metrics: outputs.update(base.signal_metrics(out, 0)) # Blocks for i, block in enumerate(self.blocks): out, res_avg_var = block(out, is_training=is_training) if return_metrics: outputs.update(base.signal_metrics(out, i + 1)) outputs[f'res_avg_var_{i}'] = res_avg_var # Final-conv->activation, pool, dropout, classify pool = jnp.mean(out, [1, 2]) outputs['pool'] = pool # Optionally apply dropout if self.drop_rate > 0.0 and is_training: pool = hk.dropout(hk.next_rng_key(), self.drop_rate, pool) bias2 = hk.get_parameter('bias2', (), pool.dtype, init=jnp.zeros) outputs['logits'] = self.fc(pool + bias2) return outputs def count_flops(self, h, w): flops = [] flops += [base.count_conv_flops(3, self.initial_conv, h, w)] h, w = h / 2, w / 2 # Body FLOPs for block in self.blocks: flops += [block.count_flops(h, w)] if block.stride > 1: h, w = h / block.stride, w / block.stride # Count flops for classifier flops += [self.blocks[-1].out_ch * self.fc.output_size] return flops, sum(flops) class ResBlock(hk.Module): """Post-activation Fixup Block.""" def __init__(self, in_ch, out_ch, num_blocks, bottleneck_ratio=0.25, kernel_size=3, stride=1, which_conv=hk.Conv2D, activation=jax.nn.relu, stochdepth_rate=None, name=None): super().__init__(name=name) self.in_ch, self.out_ch = in_ch, out_ch self.kernel_size = kernel_size self.activation = activation # Bottleneck width self.width = int(self.out_ch * bottleneck_ratio) self.stride = stride # Conv 0 (typically expansion conv) conv0_init = hk.initializers.RandomNormal( stddev=((2 / self.width)**0.5) * (num_blocks**(-0.25))) self.conv0 = which_conv(self.width, kernel_shape=1, padding='SAME', name='conv0', w_init=conv0_init) # Grouped NxN conv conv1_init = hk.initializers.RandomNormal( stddev=((2 / (self.width * (kernel_size**2)))**0.5) * (num_blocks**(-0.25))) self.conv1 = which_conv(self.width, kernel_shape=kernel_size, stride=stride, padding='SAME', name='conv1', w_init=conv1_init) # Conv 2, typically projection conv self.conv2 = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv2', w_init=hk.initializers.Constant(0)) # Use shortcut conv on channel change or downsample. self.use_projection = stride > 1 or self.in_ch != self.out_ch if self.use_projection: shortcut_init = hk.initializers.RandomNormal( stddev=(2 / self.out_ch) ** 0.5) self.conv_shortcut = which_conv(self.out_ch, kernel_shape=1, stride=stride, padding='SAME', name='conv_shortcut', w_init=shortcut_init) # Are we using stochastic depth? self._has_stochdepth = (stochdepth_rate is not None and stochdepth_rate > 0. and stochdepth_rate < 1.0) if self._has_stochdepth: self.stoch_depth = base.StochDepth(stochdepth_rate) def __call__(self, x, is_training): bias1a = hk.get_parameter('bias1a', (), x.dtype, init=jnp.zeros) bias1b = hk.get_parameter('bias1b', (), x.dtype, init=jnp.zeros) bias2a = hk.get_parameter('bias2a', (), x.dtype, init=jnp.zeros) bias2b = hk.get_parameter('bias2b', (), x.dtype, init=jnp.zeros) bias3a = hk.get_parameter('bias3a', (), x.dtype, init=jnp.zeros) bias3b = hk.get_parameter('bias3b', (), x.dtype, init=jnp.zeros) scale = hk.get_parameter('scale', (), x.dtype, init=jnp.ones) out = x + bias1a shortcut = out if self.use_projection: # Downsample with conv1x1 shortcut = self.conv_shortcut(shortcut) out = self.conv0(out) out = self.activation(out + bias1b) out = self.conv1(out + bias2a) out = self.activation(out + bias2b) out = self.conv2(out + bias3a) out = out * scale + bias3b # Get average residual variance for reporting metrics. res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) # Apply stochdepth if applicable. if self._has_stochdepth: out = self.stoch_depth(out, is_training) # SkipInit Gain out = out + shortcut return self.activation(out), res_avg_var def count_flops(self, h, w): # Count conv FLOPs based on input HW expand_flops = base.count_conv_flops(self.in_ch, self.conv0, h, w) # If block is strided we decrease resolution here. dw_flops = base.count_conv_flops(self.width, self.conv1, h, w) if self.stride > 1: h, w = h / self.stride, w / self.stride if self.use_projection: sc_flops = base.count_conv_flops(self.in_ch, self.conv_shortcut, h, w) else: sc_flops = 0 contract_flops = base.count_conv_flops(self.width, self.conv2, h, w) return sum([expand_flops, dw_flops, contract_flops, sc_flops]) ================================================ FILE: nfnets/nf_regnet.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Normalizer-Free RegNets.""" # pylint: disable=invalid-name import haiku as hk import jax import jax.numpy as jnp from nfnets import base class NF_RegNet(hk.Module): """Normalizer-Free RegNets.""" variant_dict = base.nf_regnet_params def __init__(self, num_classes, variant='B0', width=0.75, expansion=2.25, group_size=8, se_ratio=0.5, alpha=0.2, stochdepth_rate=0.1, drop_rate=None, activation='swish', fc_init=jnp.zeros, name='NF_RegNet'): super().__init__(name=name) self.num_classes = num_classes self.variant = variant self.width = width self.expansion = expansion self.group_size = group_size self.se_ratio = se_ratio # Get variant info block_params = self.variant_dict[self.variant] self.train_imsize = block_params['train_imsize'] self.test_imsize = block_params['test_imsize'] self.width_pattern = block_params['width'] self.depth_pattern = block_params['depth'] self.activation = base.nonlinearities[activation] if drop_rate is None: self.drop_rate = block_params['drop_rate'] else: self.drop_rate = drop_rate self.which_conv = base.WSConv2D # Stem ch = int(self.width_pattern[0] * self.width) self.initial_conv = self.which_conv(ch, kernel_shape=3, stride=2, padding='SAME', name='initial_conv') # Body self.blocks = [] expected_std = 1.0 num_blocks = sum(self.depth_pattern) index = 0 # Overall block index for block_width, stage_depth in zip(self.width_pattern, self.depth_pattern): for block_index in range(stage_depth): # Scalar pre-multiplier so each block sees an N(0,1) input at init beta = 1./ expected_std # Block stochastic depth drop-rate block_stochdepth_rate = stochdepth_rate * index / num_blocks # Use a bottleneck expansion ratio of 1 for first block following EffNet expand_ratio = 1 if index == 0 else expansion out_ch = (int(block_width * self.width)) self.blocks += [NFBlock(ch, out_ch, expansion=expand_ratio, se_ratio=se_ratio, group_size=self.group_size, stride=2 if block_index == 0 else 1, beta=beta, alpha=alpha, activation=self.activation, which_conv=self.which_conv, stochdepth_rate=block_stochdepth_rate, )] ch = out_ch index += 1 # Reset expected std but still give it 1 block of growth if block_index == 0: expected_std = 1.0 expected_std = (expected_std **2 + alpha**2)**0.5 # Head with final conv mimicking EffNets self.final_conv = self.which_conv(int(1280 * ch // 440), kernel_shape=1, padding='SAME', name='final_conv') self.fc = hk.Linear(self.num_classes, w_init=fc_init, with_bias=True) def __call__(self, x, is_training=True, return_metrics=False): """Return the output of the final layer without any [log-]softmax.""" # Stem outputs = {} out = self.initial_conv(x) if return_metrics: outputs.update(base.signal_metrics(out, 0)) # Blocks for i, block in enumerate(self.blocks): out, res_avg_var = block(out, is_training=is_training) if return_metrics: outputs.update(base.signal_metrics(out, i + 1)) outputs[f'res_avg_var_{i}'] = res_avg_var # Final-conv->activation, pool, dropout, classify out = self.activation(self.final_conv(out)) pool = jnp.mean(out, [1, 2]) outputs['pool'] = pool # Optionally apply dropout if self.drop_rate > 0.0 and is_training: pool = hk.dropout(hk.next_rng_key(), self.drop_rate, pool) outputs['logits'] = self.fc(pool) return outputs def count_flops(self, h, w): flops = [] flops += [base.count_conv_flops(3, self.initial_conv, h, w)] h, w = h / 2, w / 2 # Body FLOPs for block in self.blocks: flops += [block.count_flops(h, w)] if block.stride > 1: h, w = h / block.stride, w / block.stride # Head module FLOPs out_ch = self.blocks[-1].out_ch flops += [base.count_conv_flops(out_ch, self.final_conv, h, w)] # Count flops for classifier flops += [self.final_conv.output_channels * self.fc.output_size] return flops, sum(flops) class NFBlock(hk.Module): """Normalizer-Free RegNet Block.""" def __init__(self, in_ch, out_ch, expansion=2.25, se_ratio=0.5, kernel_size=3, group_size=8, stride=1, beta=1.0, alpha=0.2, which_conv=base.WSConv2D, activation=jax.nn.relu, stochdepth_rate=None, name=None): super().__init__(name=name) self.in_ch, self.out_ch = in_ch, out_ch self.expansion = expansion self.se_ratio = se_ratio self.kernel_size = kernel_size self.activation = activation self.beta, self.alpha = beta, alpha # Round expanded with based on group count width = int(self.in_ch * expansion) self.groups = width // group_size self.width = group_size * self.groups self.stride = stride # Conv 0 (typically expansion conv) self.conv0 = which_conv(self.width, kernel_shape=1, padding='SAME', name='conv0') # Grouped NxN conv self.conv1 = which_conv(self.width, kernel_shape=kernel_size, stride=stride, padding='SAME', feature_group_count=self.groups, name='conv1') # Conv 2, typically projection conv self.conv2 = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv2') # Use shortcut conv on channel change or downsample. self.use_projection = stride > 1 or self.in_ch != self.out_ch if self.use_projection: self.conv_shortcut = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv_shortcut') # Squeeze + Excite Module self.se = base.SqueezeExcite(self.width, self.width, self.se_ratio) # Are we using stochastic depth? self._has_stochdepth = (stochdepth_rate is not None and stochdepth_rate > 0. and stochdepth_rate < 1.0) if self._has_stochdepth: self.stoch_depth = base.StochDepth(stochdepth_rate) def __call__(self, x, is_training): out = self.activation(x) * self.beta if self.stride > 1: # Average-pool downsample. shortcut = hk.avg_pool(out, window_shape=(1, 2, 2, 1), strides=(1, 2, 2, 1), padding='SAME') if self.use_projection: shortcut = self.conv_shortcut(shortcut) elif self.use_projection: shortcut = self.conv_shortcut(out) else: shortcut = x out = self.conv0(out) out = self.conv1(self.activation(out)) out = 2 * self.se(out) * out # Multiply by 2 for rescaling out = self.conv2(self.activation(out)) # Get average residual standard deviation for reporting metrics. res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) # Apply stochdepth if applicable. if self._has_stochdepth: out = self.stoch_depth(out, is_training) # SkipInit Gain out = out * hk.get_parameter('skip_gain', (), out.dtype, init=jnp.zeros) return out * self.alpha + shortcut, res_avg_var def count_flops(self, h, w): # Count conv FLOPs based on input HW expand_flops = base.count_conv_flops(self.in_ch, self.conv0, h, w) # If block is strided we decrease resolution here. dw_flops = base.count_conv_flops(self.width, self.conv1, h, w) if self.stride > 1: h, w = h / self.stride, w / self.stride if self.use_projection: sc_flops = base.count_conv_flops(self.in_ch, self.conv_shortcut, h, w) else: sc_flops = 0 # SE flops happen on avg-pooled activations se_flops = self.se.fc0.output_size * self.width se_flops += self.se.fc0.output_size * self.se.fc1.output_size contract_flops = base.count_conv_flops(self.width, self.conv2, h, w) return sum([expand_flops, dw_flops, se_flops, contract_flops, sc_flops]) ================================================ FILE: nfnets/nf_resnet.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Norm-Free Residual Networks.""" # pylint: disable=invalid-name import haiku as hk import jax import jax.numpy as jnp from nfnets import base class NF_ResNet(hk.Module): """Norm-Free preactivation ResNet.""" variant_dict = {'ResNet50': {'depth': [3, 4, 6, 3]}, 'ResNet101': {'depth': [3, 4, 23, 3]}, 'ResNet152': {'depth': [3, 8, 36, 3]}, 'ResNet200': {'depth': [3, 24, 36, 3]}, 'ResNet288': {'depth': [24, 24, 24, 24]}, 'ResNet600': {'depth': [50, 50, 50, 50]}, } def __init__(self, num_classes, variant='ResNet50', width=4, alpha=0.2, stochdepth_rate=0.1, drop_rate=None, activation='relu', fc_init=None, skipinit_gain=jnp.zeros, use_se=False, se_ratio=0.25, name='NF_ResNet'): super().__init__(name=name) self.num_classes = num_classes self.variant = variant self.width = width # Get variant info block_params = self.variant_dict[self.variant] self.width_pattern = [item * self.width for item in [64, 128, 256, 512]] self.depth_pattern = block_params['depth'] self.activation = base.nonlinearities[activation] if drop_rate is None: self.drop_rate = block_params['drop_rate'] else: self.drop_rate = drop_rate self.which_conv = base.WSConv2D # Stem ch = int(16 * self.width) self.initial_conv = self.which_conv(ch, kernel_shape=7, stride=2, padding='SAME', with_bias=False, name='initial_conv') # Body self.blocks = [] expected_std = 1.0 num_blocks = sum(self.depth_pattern) index = 0 # Overall block index block_args = (self.width_pattern, self.depth_pattern, [1, 2, 2, 2]) for block_width, stage_depth, stride in zip(*block_args): for block_index in range(stage_depth): # Scalar pre-multiplier so each block sees an N(0,1) input at init beta = 1./ expected_std # Block stochastic depth drop-rate block_stochdepth_rate = stochdepth_rate * index / num_blocks self.blocks += [NFResBlock(ch, block_width, stride=stride if block_index == 0 else 1, beta=beta, alpha=alpha, activation=self.activation, which_conv=self.which_conv, stochdepth_rate=block_stochdepth_rate, skipinit_gain=skipinit_gain, use_se=use_se, se_ratio=se_ratio, )] ch = block_width index += 1 # Reset expected std but still give it 1 block of growth if block_index == 0: expected_std = 1.0 expected_std = (expected_std **2 + alpha**2)**0.5 # Head. By default, initialize with N(0, 0.01) if fc_init is None: fc_init = hk.initializers.RandomNormal(0.01, 0) self.fc = hk.Linear(self.num_classes, w_init=fc_init, with_bias=True) def __call__(self, x, is_training=True, return_metrics=False): """Return the output of the final layer without any [log-]softmax.""" # Stem outputs = {} out = self.initial_conv(x) out = hk.max_pool(out, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') if return_metrics: outputs.update(base.signal_metrics(out, 0)) # Blocks for i, block in enumerate(self.blocks): out, res_avg_var = block(out, is_training=is_training) if return_metrics: outputs.update(base.signal_metrics(out, i + 1)) outputs[f'res_avg_var_{i}'] = res_avg_var # Final-conv->activation, pool, dropout, classify pool = jnp.mean(self.activation(out), [1, 2]) outputs['pool'] = pool # Optionally apply dropout if self.drop_rate > 0.0 and is_training: pool = hk.dropout(hk.next_rng_key(), self.drop_rate, pool) outputs['logits'] = self.fc(pool) return outputs def count_flops(self, h, w): flops = [] flops += [base.count_conv_flops(3, self.initial_conv, h, w)] h, w = h / 2, w / 2 # Body FLOPs for block in self.blocks: flops += [block.count_flops(h, w)] if block.stride > 1: h, w = h / block.stride, w / block.stride # Count flops for classifier flops += [self.blocks[-1].out_ch * self.fc.output_size] return flops, sum(flops) class NFResBlock(hk.Module): """Normalizer-Free pre-activation ResNet Block.""" def __init__(self, in_ch, out_ch, bottleneck_ratio=0.25, kernel_size=3, stride=1, beta=1.0, alpha=0.2, which_conv=base.WSConv2D, activation=jax.nn.relu, skipinit_gain=jnp.zeros, stochdepth_rate=None, use_se=False, se_ratio=0.25, name=None): super().__init__(name=name) self.in_ch, self.out_ch = in_ch, out_ch self.kernel_size = kernel_size self.activation = activation self.beta, self.alpha = beta, alpha self.skipinit_gain = skipinit_gain self.use_se, self.se_ratio = use_se, se_ratio # Bottleneck width self.width = int(self.out_ch * bottleneck_ratio) self.stride = stride # Conv 0 (typically expansion conv) self.conv0 = which_conv(self.width, kernel_shape=1, padding='SAME', name='conv0') # Grouped NxN conv self.conv1 = which_conv(self.width, kernel_shape=kernel_size, stride=stride, padding='SAME', name='conv1') # Conv 2, typically projection conv self.conv2 = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv2') # Use shortcut conv on channel change or downsample. self.use_projection = stride > 1 or self.in_ch != self.out_ch if self.use_projection: self.conv_shortcut = which_conv(self.out_ch, kernel_shape=1, stride=stride, padding='SAME', name='conv_shortcut') # Are we using stochastic depth? self._has_stochdepth = (stochdepth_rate is not None and stochdepth_rate > 0. and stochdepth_rate < 1.0) if self._has_stochdepth: self.stoch_depth = base.StochDepth(stochdepth_rate) if self.use_se: self.se = base.SqueezeExcite(self.out_ch, self.out_ch, self.se_ratio) def __call__(self, x, is_training): out = self.activation(x) * self.beta shortcut = x if self.use_projection: # Downsample with conv1x1 shortcut = self.conv_shortcut(out) out = self.conv0(out) out = self.conv1(self.activation(out)) out = self.conv2(self.activation(out)) if self.use_se: out = 2 * self.se(out) * out # Get average residual standard deviation for reporting metrics. res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) # Apply stochdepth if applicable. if self._has_stochdepth: out = self.stoch_depth(out, is_training) # SkipInit Gain out = out * hk.get_parameter('skip_gain', (), out.dtype, init=self.skipinit_gain) return out * self.alpha + shortcut, res_avg_var def count_flops(self, h, w): # Count conv FLOPs based on input HW expand_flops = base.count_conv_flops(self.in_ch, self.conv0, h, w) # If block is strided we decrease resolution here. dw_flops = base.count_conv_flops(self.width, self.conv1, h, w) if self.stride > 1: h, w = h / self.stride, w / self.stride if self.use_projection: sc_flops = base.count_conv_flops(self.in_ch, self.conv_shortcut, h, w) else: sc_flops = 0 # SE flops happen on avg-pooled activations se_flops = self.se.fc0.output_size * self.width se_flops += self.se.fc0.output_size * self.se.fc1.output_size contract_flops = base.count_conv_flops(self.width, self.conv2, h, w) return sum([expand_flops, dw_flops, se_flops, contract_flops, sc_flops]) ================================================ FILE: nfnets/nfnet.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Norm-Free Nets.""" # pylint: disable=unused-import # pylint: disable=invalid-name import functools import haiku as hk import jax import jax.numpy as jnp import jax.random as jrandom import numpy as np from nfnets import base class NFNet(hk.Module): """Normalizer-Free Networks with an improved architecture. References: [Brock, Smith, De, Simonyan 2021] High-Performance Large-Scale Image Recognition Without Normalization. """ variant_dict = base.nfnet_params def __init__(self, num_classes, variant='F0', width=1.0, se_ratio=0.5, alpha=0.2, stochdepth_rate=0.1, drop_rate=None, activation='gelu', fc_init=None, final_conv_mult=2, final_conv_ch=None, use_two_convs=True, name='NFNet'): super().__init__(name=name) self.num_classes = num_classes self.variant = variant self.width = width self.se_ratio = se_ratio # Get variant info block_params = self.variant_dict[self.variant] self.train_imsize = block_params['train_imsize'] self.test_imsize = block_params['test_imsize'] self.width_pattern = block_params['width'] self.depth_pattern = block_params['depth'] self.bneck_pattern = block_params.get('expansion', [0.5] * 4) self.group_pattern = block_params.get('group_width', [128] * 4) self.big_pattern = block_params.get('big_width', [True] * 4) self.activation = base.nonlinearities[activation] if drop_rate is None: self.drop_rate = block_params['drop_rate'] else: self.drop_rate = drop_rate self.which_conv = base.WSConv2D # Stem ch = self.width_pattern[0] // 2 self.stem = hk.Sequential([ self.which_conv(16, kernel_shape=3, stride=2, padding='SAME', name='stem_conv0'), self.activation, self.which_conv(32, kernel_shape=3, stride=1, padding='SAME', name='stem_conv1'), self.activation, self.which_conv(64, kernel_shape=3, stride=1, padding='SAME', name='stem_conv2'), self.activation, self.which_conv(ch, kernel_shape=3, stride=2, padding='SAME', name='stem_conv3'), ]) # Body self.blocks = [] expected_std = 1.0 num_blocks = sum(self.depth_pattern) index = 0 # Overall block index stride_pattern = [1, 2, 2, 2] block_args = zip(self.width_pattern, self.depth_pattern, self.bneck_pattern, self.group_pattern, self.big_pattern, stride_pattern) for (block_width, stage_depth, expand_ratio, group_size, big_width, stride) in block_args: for block_index in range(stage_depth): # Scalar pre-multiplier so each block sees an N(0,1) input at init beta = 1./ expected_std # Block stochastic depth drop-rate block_stochdepth_rate = stochdepth_rate * index / num_blocks out_ch = (int(block_width * self.width)) self.blocks += [NFBlock(ch, out_ch, expansion=expand_ratio, se_ratio=se_ratio, group_size=group_size, stride=stride if block_index == 0 else 1, beta=beta, alpha=alpha, activation=self.activation, which_conv=self.which_conv, stochdepth_rate=block_stochdepth_rate, big_width=big_width, use_two_convs=use_two_convs, )] ch = out_ch index += 1 # Reset expected std but still give it 1 block of growth if block_index == 0: expected_std = 1.0 expected_std = (expected_std **2 + alpha**2)**0.5 # Head if final_conv_mult is None: if final_conv_ch is None: raise ValueError('Must provide one of final_conv_mult or final_conv_ch') ch = final_conv_ch else: ch = int(final_conv_mult * ch) self.final_conv = self.which_conv(ch, kernel_shape=1, padding='SAME', name='final_conv') # By default, initialize with N(0, 0.01) if fc_init is None: fc_init = hk.initializers.RandomNormal(mean=0, stddev=0.01) self.fc = hk.Linear(self.num_classes, w_init=fc_init, with_bias=True) def __call__(self, x, is_training=True, return_metrics=False): """Return the output of the final layer without any [log-]softmax.""" # Stem outputs = {} out = self.stem(x) if return_metrics: outputs.update(base.signal_metrics(out, 0)) # Blocks for i, block in enumerate(self.blocks): out, res_avg_var = block(out, is_training=is_training) if return_metrics: outputs.update(base.signal_metrics(out, i + 1)) outputs[f'res_avg_var_{i}'] = res_avg_var # Final-conv->activation, pool, dropout, classify out = self.activation(self.final_conv(out)) pool = jnp.mean(out, [1, 2]) outputs['pool'] = pool # Optionally apply dropout if self.drop_rate > 0.0 and is_training: pool = hk.dropout(hk.next_rng_key(), self.drop_rate, pool) outputs['logits'] = self.fc(pool) return outputs def count_flops(self, h, w): flops = [] ch = 3 for module in self.stem.layers: if isinstance(module, hk.Conv2D): flops += [base.count_conv_flops(ch, module, h, w)] if any([item > 1 for item in module.stride]): h, w = h / module.stride[0], w / module.stride[1] ch = module.output_channels # Body FLOPs for block in self.blocks: flops += [block.count_flops(h, w)] if block.stride > 1: h, w = h / block.stride, w / block.stride # Head module FLOPs out_ch = self.blocks[-1].out_ch flops += [base.count_conv_flops(out_ch, self.final_conv, h, w)] # Count flops for classifier flops += [self.final_conv.output_channels * self.fc.output_size] return flops, sum(flops) class NFBlock(hk.Module): """Normalizer-Free Net Block.""" def __init__(self, in_ch, out_ch, expansion=0.5, se_ratio=0.5, kernel_shape=3, group_size=128, stride=1, beta=1.0, alpha=0.2, which_conv=base.WSConv2D, activation=jax.nn.gelu, big_width=True, use_two_convs=True, stochdepth_rate=None, name=None): super().__init__(name=name) self.in_ch, self.out_ch = in_ch, out_ch self.expansion = expansion self.se_ratio = se_ratio self.kernel_shape = kernel_shape self.activation = activation self.beta, self.alpha = beta, alpha # Mimic resnet style bigwidth scaling? width = int((self.out_ch if big_width else self.in_ch) * expansion) # Round expanded with based on group count self.groups = width // group_size self.width = group_size * self.groups self.stride = stride self.use_two_convs = use_two_convs # Conv 0 (typically expansion conv) self.conv0 = which_conv(self.width, kernel_shape=1, padding='SAME', name='conv0') # Grouped NxN conv self.conv1 = which_conv(self.width, kernel_shape=kernel_shape, stride=stride, padding='SAME', feature_group_count=self.groups, name='conv1') if self.use_two_convs: self.conv1b = which_conv(self.width, kernel_shape=kernel_shape, stride=1, padding='SAME', feature_group_count=self.groups, name='conv1b') # Conv 2, typically projection conv self.conv2 = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv2') # Use shortcut conv on channel change or downsample. self.use_projection = stride > 1 or self.in_ch != self.out_ch if self.use_projection: self.conv_shortcut = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv_shortcut') # Squeeze + Excite Module self.se = base.SqueezeExcite(self.out_ch, self.out_ch, self.se_ratio) # Are we using stochastic depth? self._has_stochdepth = (stochdepth_rate is not None and stochdepth_rate > 0. and stochdepth_rate < 1.0) if self._has_stochdepth: self.stoch_depth = base.StochDepth(stochdepth_rate) def __call__(self, x, is_training): out = self.activation(x) * self.beta if self.stride > 1: # Average-pool downsample. shortcut = hk.avg_pool(out, window_shape=(1, 2, 2, 1), strides=(1, 2, 2, 1), padding='SAME') if self.use_projection: shortcut = self.conv_shortcut(shortcut) elif self.use_projection: shortcut = self.conv_shortcut(out) else: shortcut = x out = self.conv0(out) out = self.conv1(self.activation(out)) if self.use_two_convs: out = self.conv1b(self.activation(out)) out = self.conv2(self.activation(out)) out = (self.se(out) * 2) * out # Multiply by 2 for rescaling # Get average residual standard deviation for reporting metrics. res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) # Apply stochdepth if applicable. if self._has_stochdepth: out = self.stoch_depth(out, is_training) # SkipInit Gain out = out * hk.get_parameter('skip_gain', (), out.dtype, init=jnp.zeros) return out * self.alpha + shortcut, res_avg_var def count_flops(self, h, w): # Count conv FLOPs based on input HW expand_flops = base.count_conv_flops(self.in_ch, self.conv0, h, w) # If block is strided we decrease resolution here. dw_flops = base.count_conv_flops(self.width, self.conv1, h, w) if self.stride > 1: h, w = h / self.stride, w / self.stride if self.use_two_convs: dw_flops += base.count_conv_flops(self.width, self.conv1b, h, w) if self.use_projection: sc_flops = base.count_conv_flops(self.in_ch, self.conv_shortcut, h, w) else: sc_flops = 0 # SE flops happen on avg-pooled activations se_flops = self.se.fc0.output_size * self.out_ch se_flops += self.se.fc0.output_size * self.se.fc1.output_size contract_flops = base.count_conv_flops(self.width, self.conv2, h, w) return sum([expand_flops, dw_flops, se_flops, contract_flops, sc_flops]) ================================================ FILE: nfnets/nfnet_demo_colab.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "jev9nsjEePyx" }, "source": [ "# Download and run an NFNet-F0 model pre-trained on ImageNet\n", "This demo shows how to run a pre-trained NFNet classifier, from the paper \n", "[High-Performance Large-Scale Image Recognition Without Normalization](http://dpmd.ai/06171) (Brock, De, Smith, Simonyan, 2021). It uses code from [the official JAX + Haiku implementation](http://dpmd.ai/nfnets).\n", "\n", "\n", "It's recommended to use `Runtime-\u003eChange Runtime Type` to pick a GPU for speed." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 16619, "status": "ok", "timestamp": 1613472332810, "user": { "displayName": "Andy Brock", "photoUrl": "", "userId": "04378600802759613630" }, "user_tz": 0 }, "id": "bvEKqIQAZjxo", "outputId": "846ba4c5-08cb-4d14-de38-8426de8d564e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting dm-haiku\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/61/dc/6da61c7f96bffd7ebc2888510e5ec82ee260cbc1d7a3f4f0a862914646f8/dm_haiku-0.0.3-py3-none-any.whl (260kB)\n", "\r\u001b[K |█▎ | 10kB 18.5MB/s eta 0:00:01\r\u001b[K |██▌ | 20kB 22.7MB/s eta 0:00:01\r\u001b[K |███▊ | 30kB 22.3MB/s eta 0:00:01\r\u001b[K |█████ | 40kB 18.3MB/s eta 0:00:01\r\u001b[K |██████▎ | 51kB 15.6MB/s eta 0:00:01\r\u001b[K |███████▌ | 61kB 12.2MB/s eta 0:00:01\r\u001b[K |████████▉ | 71kB 12.9MB/s eta 0:00:01\r\u001b[K |██████████ | 81kB 12.7MB/s eta 0:00:01\r\u001b[K |███████████▎ | 92kB 12.9MB/s eta 0:00:01\r\u001b[K |████████████▋ | 102kB 12.7MB/s eta 0:00:01\r\u001b[K |█████████████▉ | 112kB 12.7MB/s eta 0:00:01\r\u001b[K |███████████████ | 122kB 12.7MB/s eta 0:00:01\r\u001b[K |████████████████▍ | 133kB 12.7MB/s eta 0:00:01\r\u001b[K |█████████████████▋ | 143kB 12.7MB/s eta 0:00:01\r\u001b[K |██████████████████▉ | 153kB 12.7MB/s eta 0:00:01\r\u001b[K |████████████████████▏ | 163kB 12.7MB/s eta 0:00:01\r\u001b[K |█████████████████████▍ | 174kB 12.7MB/s eta 0:00:01\r\u001b[K |██████████████████████▋ | 184kB 12.7MB/s eta 0:00:01\r\u001b[K |████████████████████████ | 194kB 12.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████▏ | 204kB 12.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████▍ | 215kB 12.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████▊ | 225kB 12.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████ | 235kB 12.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▏ | 245kB 12.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▌| 256kB 12.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 266kB 12.7MB/s \n", "\u001b[?25hRequirement already satisfied: absl-py\u003e=0.7.1 in /usr/local/lib/python3.6/dist-packages (from dm-haiku) (0.10.0)\n", "Requirement already satisfied: numpy\u003e=1.18.0 in /usr/local/lib/python3.6/dist-packages (from dm-haiku) (1.19.5)\n", "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from absl-py\u003e=0.7.1-\u003edm-haiku) (1.15.0)\n", "Installing collected packages: dm-haiku\n", "Successfully installed dm-haiku-0.0.3\n", "Requirement already satisfied: dill in /usr/local/lib/python3.6/dist-packages (0.3.3)\n", "Cloning into 'deepmind-research'...\n", "remote: Enumerating objects: 10, done.\u001b[K\n", "remote: Counting objects: 100% (10/10), done.\u001b[K\n", "remote: Compressing objects: 100% (10/10), done.\u001b[K\n", "remote: Total 1307 (delta 0), reused 4 (delta 0), pack-reused 1297\u001b[K\n", "Receiving objects: 100% (1307/1307), 74.41 MiB | 20.20 MiB/s, done.\n", "Resolving deltas: 100% (656/656), done.\n" ] } ], "source": [ "# Copyright 2021 DeepMind Technologies Limited. All Rights Reserved.\n", "#\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# http://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License.\n", "# ==============================================================================\n", "!pip install dm-haiku\n", "!pip install dill\n", "!git clone https://github.com/deepmind/deepmind-research/\n", "import dill\n", "import haiku as hk\n", "import jax\n", "import jax.numpy as jnp\n", "import os\n", "import numpy as np\n", "from PIL import Image\n", "os.chdir('deepmind-research')\n", "from nfnets import nfnet, base" ] }, { "cell_type": "markdown", "metadata": { "id": "d3oIj5O1dyVB" }, "source": [ "# ImageNet Class List" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "A9pD88rU5wsw" }, "outputs": [], "source": [ "# Get ImageNet class list\n", "imagenet_classlist = {0: 'tench, Tinca tinca',\n", " 1: 'goldfish, Carassius auratus',\n", " 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias',\n", " 3: 'tiger shark, Galeocerdo cuvieri',\n", " 4: 'hammerhead, hammerhead shark',\n", " 5: 'electric ray, crampfish, numbfish, torpedo',\n", " 6: 'stingray',\n", " 7: 'rooster',\n", " 8: 'hen',\n", " 9: 'ostrich, Struthio camelus',\n", " 10: 'brambling, Fringilla montifringilla',\n", " 11: 'goldfinch, Carduelis carduelis',\n", " 12: 'house finch, linnet, Carpodacus mexicanus',\n", " 13: 'junco, snowbird',\n", " 14: 'indigo bunting, indigo finch, indigo bird, Passerina cyanea',\n", " 15: 'robin, American robin, Turdus migratorius',\n", " 16: 'bulbul',\n", " 17: 'jay',\n", " 18: 'magpie',\n", " 19: 'chickadee',\n", " 20: 'water ouzel, dipper',\n", " 21: 'kite',\n", " 22: 'bald eagle, American eagle, Haliaeetus leucocephalus',\n", " 23: 'vulture',\n", " 24: 'great grey owl, great gray owl, Strix nebulosa',\n", " 25: 'European fire salamander, Salamandra salamandra',\n", " 26: 'common newt, Triturus vulgaris',\n", " 27: 'eft',\n", " 28: 'spotted salamander, Ambystoma maculatum',\n", " 29: 'axolotl, mud puppy, Ambystoma mexicanum',\n", " 30: 'bullfrog, Rana catesbeiana',\n", " 31: 'tree frog, tree-frog',\n", " 32: 'tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui',\n", " 33: 'loggerhead, loggerhead turtle, Caretta caretta',\n", " 34: 'leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea',\n", " 35: 'mud turtle',\n", " 36: 'terrapin',\n", " 37: 'box turtle, box tortoise',\n", " 38: 'banded gecko',\n", " 39: 'common iguana, iguana, Iguana iguana',\n", " 40: 'American chameleon, anole, Anolis carolinensis',\n", " 41: 'whiptail, whiptail lizard',\n", " 42: 'agama',\n", " 43: 'frilled lizard, Chlamydosaurus kingi',\n", " 44: 'alligator lizard',\n", " 45: 'Gila monster, Heloderma suspectum',\n", " 46: 'green lizard, Lacerta viridis',\n", " 47: 'African chameleon, Chamaeleo chamaeleon',\n", " 48: 'Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis',\n", " 49: 'African crocodile, Nile crocodile, Crocodylus niloticus',\n", " 50: 'American alligator, Alligator mississipiensis',\n", " 51: 'triceratops',\n", " 52: 'thunder snake, worm snake, Carphophis amoenus',\n", " 53: 'ringneck snake, ring-necked snake, ring snake',\n", " 54: 'hognose snake, puff adder, sand viper',\n", " 55: 'green snake, grass snake',\n", " 56: 'king snake, kingsnake',\n", " 57: 'garter snake, grass snake',\n", " 58: 'water snake',\n", " 59: 'vine snake',\n", " 60: 'night snake, Hypsiglena torquata',\n", " 61: 'boa constrictor, Constrictor constrictor',\n", " 62: 'rock python, rock snake, Python sebae',\n", " 63: 'Indian cobra, Naja naja',\n", " 64: 'green mamba',\n", " 65: 'sea snake',\n", " 66: 'horned viper, cerastes, sand viper, horned asp, Cerastes cornutus',\n", " 67: 'diamondback, diamondback rattlesnake, Crotalus adamanteus',\n", " 68: 'sidewinder, horned rattlesnake, Crotalus cerastes',\n", " 69: 'trilobite',\n", " 70: 'harvestman, daddy longlegs, Phalangium opilio',\n", " 71: 'scorpion',\n", " 72: 'black and gold garden spider, Argiope aurantia',\n", " 73: 'barn spider, Araneus cavaticus',\n", " 74: 'garden spider, Aranea diademata',\n", " 75: 'black widow, Latrodectus mactans',\n", " 76: 'tarantula',\n", " 77: 'wolf spider, hunting spider',\n", " 78: 'tick',\n", " 79: 'centipede',\n", " 80: 'black grouse',\n", " 81: 'ptarmigan',\n", " 82: 'ruffed grouse, partridge, Bonasa umbellus',\n", " 83: 'prairie chicken, prairie grouse, prairie fowl',\n", " 84: 'peacock',\n", " 85: 'quail',\n", " 86: 'partridge',\n", " 87: 'African grey, African gray, Psittacus erithacus',\n", " 88: 'macaw',\n", " 89: 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita',\n", " 90: 'lorikeet',\n", " 91: 'coucal',\n", " 92: 'bee eater',\n", " 93: 'hornbill',\n", " 94: 'hummingbird',\n", " 95: 'jacamar',\n", " 96: 'toucan',\n", " 97: 'drake',\n", " 98: 'red-breasted merganser, Mergus serrator',\n", " 99: 'goose',\n", " 100: 'black swan, Cygnus atratus',\n", " 101: 'tusker',\n", " 102: 'echidna, spiny anteater, anteater',\n", " 103: 'platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus',\n", " 104: 'wallaby, brush kangaroo',\n", " 105: 'koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus',\n", " 106: 'wombat',\n", " 107: 'jellyfish',\n", " 108: 'sea anemone, anemone',\n", " 109: 'brain coral',\n", " 110: 'flatworm, platyhelminth',\n", " 111: 'nematode, nematode worm, roundworm',\n", " 112: 'conch',\n", " 113: 'snail',\n", " 114: 'slug',\n", " 115: 'sea slug, nudibranch',\n", " 116: 'chiton, coat-of-mail shell, sea cradle, polyplacophore',\n", " 117: 'chambered nautilus, pearly nautilus, nautilus',\n", " 118: 'Dungeness crab, Cancer magister',\n", " 119: 'rock crab, Cancer irroratus',\n", " 120: 'fiddler crab',\n", " 121: 'king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica',\n", " 122: 'American lobster, Northern lobster, Maine lobster, Homarus americanus',\n", " 123: 'spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish',\n", " 124: 'crayfish, crawfish, crawdad, crawdaddy',\n", " 125: 'hermit crab',\n", " 126: 'isopod',\n", " 127: 'white stork, Ciconia ciconia',\n", " 128: 'black stork, Ciconia nigra',\n", " 129: 'spoonbill',\n", " 130: 'flamingo',\n", " 131: 'little blue heron, Egretta caerulea',\n", " 132: 'American egret, great white heron, Egretta albus',\n", " 133: 'bittern',\n", " 134: 'crane',\n", " 135: 'limpkin, Aramus pictus',\n", " 136: 'European gallinule, Porphyrio porphyrio',\n", " 137: 'American coot, marsh hen, mud hen, water hen, Fulica americana',\n", " 138: 'bustard',\n", " 139: 'ruddy turnstone, Arenaria interpres',\n", " 140: 'red-backed sandpiper, dunlin, Erolia alpina',\n", " 141: 'redshank, Tringa totanus',\n", " 142: 'dowitcher',\n", " 143: 'oystercatcher, oyster catcher',\n", " 144: 'pelican',\n", " 145: 'king penguin, Aptenodytes patagonica',\n", " 146: 'albatross, mollymawk',\n", " 147: 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus',\n", " 148: 'killer whale, killer, orca, grampus, sea wolf, Orcinus orca',\n", " 149: 'dugong, Dugong dugon',\n", " 150: 'sea lion',\n", " 151: 'Chihuahua',\n", " 152: 'Japanese spaniel',\n", " 153: 'Maltese dog, Maltese terrier, Maltese',\n", " 154: 'Pekinese, Pekingese, Peke',\n", " 155: 'Shih-Tzu',\n", " 156: 'Blenheim spaniel',\n", " 157: 'papillon',\n", " 158: 'toy terrier',\n", " 159: 'Rhodesian ridgeback',\n", " 160: 'Afghan hound, Afghan',\n", " 161: 'basset, basset hound',\n", " 162: 'beagle',\n", " 163: 'bloodhound, sleuthhound',\n", " 164: 'bluetick',\n", " 165: 'black-and-tan coonhound',\n", " 166: 'Walker hound, Walker foxhound',\n", " 167: 'English foxhound',\n", " 168: 'redbone',\n", " 169: 'borzoi, Russian wolfhound',\n", " 170: 'Irish wolfhound',\n", " 171: 'Italian greyhound',\n", " 172: 'whippet',\n", " 173: 'Ibizan hound, Ibizan Podenco',\n", " 174: 'Norwegian elkhound, elkhound',\n", " 175: 'otterhound, otter hound',\n", " 176: 'Saluki, gazelle hound',\n", " 177: 'Scottish deerhound, deerhound',\n", " 178: 'Weimaraner',\n", " 179: 'Staffordshire bullterrier, Staffordshire bull terrier',\n", " 180: 'American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier',\n", " 181: 'Bedlington terrier',\n", " 182: 'Border terrier',\n", " 183: 'Kerry blue terrier',\n", " 184: 'Irish terrier',\n", " 185: 'Norfolk terrier',\n", " 186: 'Norwich terrier',\n", " 187: 'Yorkshire terrier',\n", " 188: 'wire-haired fox terrier',\n", " 189: 'Lakeland terrier',\n", " 190: 'Sealyham terrier, Sealyham',\n", " 191: 'Airedale, Airedale terrier',\n", " 192: 'cairn, cairn terrier',\n", " 193: 'Australian terrier',\n", " 194: 'Dandie Dinmont, Dandie Dinmont terrier',\n", " 195: 'Boston bull, Boston terrier',\n", " 196: 'miniature schnauzer',\n", " 197: 'giant schnauzer',\n", " 198: 'standard schnauzer',\n", " 199: 'Scotch terrier, Scottish terrier, Scottie',\n", " 200: 'Tibetan terrier, chrysanthemum dog',\n", " 201: 'silky terrier, Sydney silky',\n", " 202: 'soft-coated wheaten terrier',\n", " 203: 'West Highland white terrier',\n", " 204: 'Lhasa, Lhasa apso',\n", " 205: 'flat-coated retriever',\n", " 206: 'curly-coated retriever',\n", " 207: 'golden retriever',\n", " 208: 'Labrador retriever',\n", " 209: 'Chesapeake Bay retriever',\n", " 210: 'German short-haired pointer',\n", " 211: 'vizsla, Hungarian pointer',\n", " 212: 'English setter',\n", " 213: 'Irish setter, red setter',\n", " 214: 'Gordon setter',\n", " 215: 'Brittany spaniel',\n", " 216: 'clumber, clumber spaniel',\n", " 217: 'English springer, English springer spaniel',\n", " 218: 'Welsh springer spaniel',\n", " 219: 'cocker spaniel, English cocker spaniel, cocker',\n", " 220: 'Sussex spaniel',\n", " 221: 'Irish water spaniel',\n", " 222: 'kuvasz',\n", " 223: 'schipperke',\n", " 224: 'groenendael',\n", " 225: 'malinois',\n", " 226: 'briard',\n", " 227: 'kelpie',\n", " 228: 'komondor',\n", " 229: 'Old English sheepdog, bobtail',\n", " 230: 'Shetland sheepdog, Shetland sheep dog, Shetland',\n", " 231: 'collie',\n", " 232: 'Border collie',\n", " 233: 'Bouvier des Flandres, Bouviers des Flandres',\n", " 234: 'Rottweiler',\n", " 235: 'German shepherd, German shepherd dog, German police dog, alsatian',\n", " 236: 'Doberman, Doberman pinscher',\n", " 237: 'miniature pinscher',\n", " 238: 'Greater Swiss Mountain dog',\n", " 239: 'Bernese mountain dog',\n", " 240: 'Appenzeller',\n", " 241: 'EntleBucher',\n", " 242: 'boxer',\n", " 243: 'bull mastiff',\n", " 244: 'Tibetan mastiff',\n", " 245: 'French bulldog',\n", " 246: 'Great Dane',\n", " 247: 'Saint Bernard, St Bernard',\n", " 248: 'Inuit dog, husky',\n", " 249: 'malamute, malemute, Alaskan malamute',\n", " 250: 'Siberian husky',\n", " 251: 'dalmatian, coach dog, carriage dog',\n", " 252: 'affenpinscher, monkey pinscher, monkey dog',\n", " 253: 'basenji',\n", " 254: 'pug, pug-dog',\n", " 255: 'Leonberg',\n", " 256: 'Newfoundland, Newfoundland dog',\n", " 257: 'Great Pyrenees',\n", " 258: 'Samoyed, Samoyede',\n", " 259: 'Pomeranian',\n", " 260: 'chow, chow chow',\n", " 261: 'keeshond',\n", " 262: 'Brabancon griffon',\n", " 263: 'Pembroke, Pembroke Welsh corgi',\n", " 264: 'Cardigan, Cardigan Welsh corgi',\n", " 265: 'toy poodle',\n", " 266: 'miniature poodle',\n", " 267: 'standard poodle',\n", " 268: 'Mexican hairless',\n", " 269: 'timber wolf, grey wolf, gray wolf, Canis lupus',\n", " 270: 'white wolf, Arctic wolf, Canis lupus tundrarum',\n", " 271: 'red wolf, maned wolf, Canis rufus, Canis niger',\n", " 272: 'coyote, prairie wolf, brush wolf, Canis latrans',\n", " 273: 'dingo, warrigal, warragal, Canis dingo',\n", " 274: 'dhole, Cuon alpinus',\n", " 275: 'African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus',\n", " 276: 'hyena, hyaena',\n", " 277: 'red fox, Vulpes vulpes',\n", " 278: 'kit fox, Vulpes macrotis',\n", " 279: 'Arctic fox, white fox, Alopex lagopus',\n", " 280: 'grey fox, gray fox, Urocyon cinereoargenteus',\n", " 281: 'tabby, tabby cat',\n", " 282: 'tiger cat',\n", " 283: 'Persian cat',\n", " 284: 'Siamese cat, Siamese',\n", " 285: 'Egyptian cat',\n", " 286: 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor',\n", " 287: 'lynx, catamount',\n", " 288: 'leopard, Panthera pardus',\n", " 289: 'snow leopard, ounce, Panthera uncia',\n", " 290: 'jaguar, panther, Panthera onca, Felis onca',\n", " 291: 'lion, king of beasts, Panthera leo',\n", " 292: 'tiger, Panthera tigris',\n", " 293: 'cheetah, chetah, Acinonyx jubatus',\n", " 294: 'brown bear, bruin, Ursus arctos',\n", " 295: 'American black bear, black bear, Ursus americanus, Euarctos americanus',\n", " 296: 'ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus',\n", " 297: 'sloth bear, Melursus ursinus, Ursus ursinus',\n", " 298: 'mongoose',\n", " 299: 'meerkat, mierkat',\n", " 300: 'tiger beetle',\n", " 301: 'ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle',\n", " 302: 'ground beetle, carabid beetle',\n", " 303: 'long-horned beetle, longicorn, longicorn beetle',\n", " 304: 'leaf beetle, chrysomelid',\n", " 305: 'dung beetle',\n", " 306: 'rhinoceros beetle',\n", " 307: 'weevil',\n", " 308: 'fly',\n", " 309: 'bee',\n", " 310: 'ant, emmet, pismire',\n", " 311: 'grasshopper, hopper',\n", " 312: 'cricket',\n", " 313: 'walking stick, walkingstick, stick insect',\n", " 314: 'cockroach, roach',\n", " 315: 'mantis, mantid',\n", " 316: 'cicada, cicala',\n", " 317: 'leafhopper',\n", " 318: 'lacewing, lacewing fly',\n", " 319: \"dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk\",\n", " 320: 'damselfly',\n", " 321: 'admiral',\n", " 322: 'ringlet, ringlet butterfly',\n", " 323: 'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus',\n", " 324: 'cabbage butterfly',\n", " 325: 'sulphur butterfly, sulfur butterfly',\n", " 326: 'lycaenid, lycaenid butterfly',\n", " 327: 'starfish, sea star',\n", " 328: 'sea urchin',\n", " 329: 'sea cucumber, holothurian',\n", " 330: 'wood rabbit, cottontail, cottontail rabbit',\n", " 331: 'hare',\n", " 332: 'Angora, Angora rabbit',\n", " 333: 'hamster',\n", " 334: 'porcupine, hedgehog',\n", " 335: 'fox squirrel, eastern fox squirrel, Sciurus niger',\n", " 336: 'marmot',\n", " 337: 'beaver',\n", " 338: 'guinea pig, Cavia cobaya',\n", " 339: 'sorrel',\n", " 340: 'zebra',\n", " 341: 'hog, pig, grunter, squealer, Sus scrofa',\n", " 342: 'wild boar, boar, Sus scrofa',\n", " 343: 'warthog',\n", " 344: 'hippopotamus, hippo, river horse, Hippopotamus amphibius',\n", " 345: 'ox',\n", " 346: 'water buffalo, water ox, Asiatic buffalo, Bubalus bubalis',\n", " 347: 'bison',\n", " 348: 'ram, tup',\n", " 349: 'bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis',\n", " 350: 'ibex, Capra ibex',\n", " 351: 'hartebeest',\n", " 352: 'impala, Aepyceros melampus',\n", " 353: 'gazelle',\n", " 354: 'Arabian camel, dromedary, Camelus dromedarius',\n", " 355: 'llama',\n", " 356: 'weasel',\n", " 357: 'mink',\n", " 358: 'polecat, fitch, foulmart, foumart, Mustela putorius',\n", " 359: 'black-footed ferret, ferret, Mustela nigripes',\n", " 360: 'otter',\n", " 361: 'skunk, polecat, wood pussy',\n", " 362: 'badger',\n", " 363: 'armadillo',\n", " 364: 'three-toed sloth, ai, Bradypus tridactylus',\n", " 365: 'orangutan, orang, orangutang, Pongo pygmaeus',\n", " 366: 'gorilla, Gorilla gorilla',\n", " 367: 'chimpanzee, chimp, Pan troglodytes',\n", " 368: 'gibbon, Hylobates lar',\n", " 369: 'siamang, Hylobates syndactylus, Symphalangus syndactylus',\n", " 370: 'guenon, guenon monkey',\n", " 371: 'patas, hussar monkey, Erythrocebus patas',\n", " 372: 'baboon',\n", " 373: 'macaque',\n", " 374: 'langur',\n", " 375: 'colobus, colobus monkey',\n", " 376: 'proboscis monkey, Nasalis larvatus',\n", " 377: 'marmoset',\n", " 378: 'capuchin, ringtail, Cebus capucinus',\n", " 379: 'howler monkey, howler',\n", " 380: 'titi, titi monkey',\n", " 381: 'spider monkey, Ateles geoffroyi',\n", " 382: 'squirrel monkey, Saimiri sciureus',\n", " 383: 'Madagascar cat, ring-tailed lemur, Lemur catta',\n", " 384: 'indri, indris, Indri indri, Indri brevicaudatus',\n", " 385: 'Indian elephant, Elephas maximus',\n", " 386: 'African elephant, Loxodonta africana',\n", " 387: 'lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens',\n", " 388: 'giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca',\n", " 389: 'barracouta, snoek',\n", " 390: 'eel',\n", " 391: 'coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch',\n", " 392: 'rock beauty, Holocanthus tricolor',\n", " 393: 'anemone fish',\n", " 394: 'sturgeon',\n", " 395: 'gar, garfish, garpike, billfish, Lepisosteus osseus',\n", " 396: 'lionfish',\n", " 397: 'puffer, pufferfish, blowfish, globefish',\n", " 398: 'abacus',\n", " 399: 'abaya',\n", " 400: \"academic gown, academic robe, judge's robe\",\n", " 401: 'accordion, piano accordion, squeeze box',\n", " 402: 'acoustic guitar',\n", " 403: 'aircraft carrier, carrier, flattop, attack aircraft carrier',\n", " 404: 'airliner',\n", " 405: 'airship, dirigible',\n", " 406: 'altar',\n", " 407: 'ambulance',\n", " 408: 'amphibian, amphibious vehicle',\n", " 409: 'analog clock',\n", " 410: 'apiary, bee house',\n", " 411: 'apron',\n", " 412: 'ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin',\n", " 413: 'assault rifle, assault gun',\n", " 414: 'backpack, back pack, knapsack, packsack, rucksack, haversack',\n", " 415: 'bakery, bakeshop, bakehouse',\n", " 416: 'balance beam, beam',\n", " 417: 'balloon',\n", " 418: 'ballpoint, ballpoint pen, ballpen, Biro',\n", " 419: 'Band Aid',\n", " 420: 'banjo',\n", " 421: 'bannister, banister, balustrade, balusters, handrail',\n", " 422: 'barbell',\n", " 423: 'barber chair',\n", " 424: 'barbershop',\n", " 425: 'barn',\n", " 426: 'barometer',\n", " 427: 'barrel, cask',\n", " 428: 'barrow, garden cart, lawn cart, wheelbarrow',\n", " 429: 'baseball',\n", " 430: 'basketball',\n", " 431: 'bassinet',\n", " 432: 'bassoon',\n", " 433: 'bathing cap, swimming cap',\n", " 434: 'bath towel',\n", " 435: 'bathtub, bathing tub, bath, tub',\n", " 436: 'beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon',\n", " 437: 'beacon, lighthouse, beacon light, pharos',\n", " 438: 'beaker',\n", " 439: 'bearskin, busby, shako',\n", " 440: 'beer bottle',\n", " 441: 'beer glass',\n", " 442: 'bell cote, bell cot',\n", " 443: 'bib',\n", " 444: 'bicycle-built-for-two, tandem bicycle, tandem',\n", " 445: 'bikini, two-piece',\n", " 446: 'binder, ring-binder',\n", " 447: 'binoculars, field glasses, opera glasses',\n", " 448: 'birdhouse',\n", " 449: 'boathouse',\n", " 450: 'bobsled, bobsleigh, bob',\n", " 451: 'bolo tie, bolo, bola tie, bola',\n", " 452: 'bonnet, poke bonnet',\n", " 453: 'bookcase',\n", " 454: 'bookshop, bookstore, bookstall',\n", " 455: 'bottlecap',\n", " 456: 'bow',\n", " 457: 'bow tie, bow-tie, bowtie',\n", " 458: 'brass, memorial tablet, plaque',\n", " 459: 'brassiere, bra, bandeau',\n", " 460: 'breakwater, groin, groyne, mole, bulwark, seawall, jetty',\n", " 461: 'breastplate, aegis, egis',\n", " 462: 'broom',\n", " 463: 'bucket, pail',\n", " 464: 'buckle',\n", " 465: 'bulletproof vest',\n", " 466: 'bullet train, bullet',\n", " 467: 'butcher shop, meat market',\n", " 468: 'cab, hack, taxi, taxicab',\n", " 469: 'caldron, cauldron',\n", " 470: 'candle, taper, wax light',\n", " 471: 'cannon',\n", " 472: 'canoe',\n", " 473: 'can opener, tin opener',\n", " 474: 'cardigan',\n", " 475: 'car mirror',\n", " 476: 'carousel, carrousel, merry-go-round, roundabout, whirligig',\n", " 477: \"carpenter's kit, tool kit\",\n", " 478: 'carton',\n", " 479: 'car wheel',\n", " 480: 'cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM',\n", " 481: 'cassette',\n", " 482: 'cassette player',\n", " 483: 'castle',\n", " 484: 'catamaran',\n", " 485: 'CD player',\n", " 486: 'cello, violoncello',\n", " 487: 'cellular telephone, cellular phone, cellphone, cell, mobile phone',\n", " 488: 'chain',\n", " 489: 'chainlink fence',\n", " 490: 'chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour',\n", " 491: 'chain saw, chainsaw',\n", " 492: 'chest',\n", " 493: 'chiffonier, commode',\n", " 494: 'chime, bell, gong',\n", " 495: 'china cabinet, china closet',\n", " 496: 'Christmas stocking',\n", " 497: 'church, church building',\n", " 498: 'cinema, movie theater, movie theatre, movie house, picture palace',\n", " 499: 'cleaver, meat cleaver, chopper',\n", " 500: 'cliff dwelling',\n", " 501: 'cloak',\n", " 502: 'clog, geta, patten, sabot',\n", " 503: 'cocktail shaker',\n", " 504: 'coffee mug',\n", " 505: 'coffeepot',\n", " 506: 'coil, spiral, volute, whorl, helix',\n", " 507: 'combination lock',\n", " 508: 'computer keyboard, keypad',\n", " 509: 'confectionery, confectionary, candy store',\n", " 510: 'container ship, containership, container vessel',\n", " 511: 'convertible',\n", " 512: 'corkscrew, bottle screw',\n", " 513: 'cornet, horn, trumpet, trump',\n", " 514: 'cowboy boot',\n", " 515: 'cowboy hat, ten-gallon hat',\n", " 516: 'cradle',\n", " 517: 'crane',\n", " 518: 'crash helmet',\n", " 519: 'crate',\n", " 520: 'crib, cot',\n", " 521: 'Crock Pot',\n", " 522: 'croquet ball',\n", " 523: 'crutch',\n", " 524: 'cuirass',\n", " 525: 'dam, dike, dyke',\n", " 526: 'desk',\n", " 527: 'desktop computer',\n", " 528: 'dial telephone, dial phone',\n", " 529: 'diaper, nappy, napkin',\n", " 530: 'digital clock',\n", " 531: 'digital watch',\n", " 532: 'dining table, board',\n", " 533: 'dishrag, dishcloth',\n", " 534: 'dishwasher, dish washer, dishwashing machine',\n", " 535: 'disk brake, disc brake',\n", " 536: 'dock, dockage, docking facility',\n", " 537: 'dogsled, dog sled, dog sleigh',\n", " 538: 'dome',\n", " 539: 'doormat, welcome mat',\n", " 540: 'drilling platform, offshore rig',\n", " 541: 'drum, membranophone, tympan',\n", " 542: 'drumstick',\n", " 543: 'dumbbell',\n", " 544: 'Dutch oven',\n", " 545: 'electric fan, blower',\n", " 546: 'electric guitar',\n", " 547: 'electric locomotive',\n", " 548: 'entertainment center',\n", " 549: 'envelope',\n", " 550: 'espresso maker',\n", " 551: 'face powder',\n", " 552: 'feather boa, boa',\n", " 553: 'file, file cabinet, filing cabinet',\n", " 554: 'fireboat',\n", " 555: 'fire engine, fire truck',\n", " 556: 'fire screen, fireguard',\n", " 557: 'flagpole, flagstaff',\n", " 558: 'flute, transverse flute',\n", " 559: 'folding chair',\n", " 560: 'football helmet',\n", " 561: 'forklift',\n", " 562: 'fountain',\n", " 563: 'fountain pen',\n", " 564: 'four-poster',\n", " 565: 'freight car',\n", " 566: 'French horn, horn',\n", " 567: 'frying pan, frypan, skillet',\n", " 568: 'fur coat',\n", " 569: 'garbage truck, dustcart',\n", " 570: 'gasmask, respirator, gas helmet',\n", " 571: 'gas pump, gasoline pump, petrol pump, island dispenser',\n", " 572: 'goblet',\n", " 573: 'go-kart',\n", " 574: 'golf ball',\n", " 575: 'golfcart, golf cart',\n", " 576: 'gondola',\n", " 577: 'gong, tam-tam',\n", " 578: 'gown',\n", " 579: 'grand piano, grand',\n", " 580: 'greenhouse, nursery, glasshouse',\n", " 581: 'grille, radiator grille',\n", " 582: 'grocery store, grocery, food market, market',\n", " 583: 'guillotine',\n", " 584: 'hair slide',\n", " 585: 'hair spray',\n", " 586: 'half track',\n", " 587: 'hammer',\n", " 588: 'hamper',\n", " 589: 'hand blower, blow dryer, blow drier, hair dryer, hair drier',\n", " 590: 'hand-held computer, hand-held microcomputer',\n", " 591: 'handkerchief, hankie, hanky, hankey',\n", " 592: 'hard disc, hard disk, fixed disk',\n", " 593: 'harmonica, mouth organ, harp, mouth harp',\n", " 594: 'harp',\n", " 595: 'harvester, reaper',\n", " 596: 'hatchet',\n", " 597: 'holster',\n", " 598: 'home theater, home theatre',\n", " 599: 'honeycomb',\n", " 600: 'hook, claw',\n", " 601: 'hoopskirt, crinoline',\n", " 602: 'horizontal bar, high bar',\n", " 603: 'horse cart, horse-cart',\n", " 604: 'hourglass',\n", " 605: 'iPod',\n", " 606: 'iron, smoothing iron',\n", " 607: \"jack-o'-lantern\",\n", " 608: 'jean, blue jean, denim',\n", " 609: 'jeep, landrover',\n", " 610: 'jersey, T-shirt, tee shirt',\n", " 611: 'jigsaw puzzle',\n", " 612: 'jinrikisha, ricksha, rickshaw',\n", " 613: 'joystick',\n", " 614: 'kimono',\n", " 615: 'knee pad',\n", " 616: 'knot',\n", " 617: 'lab coat, laboratory coat',\n", " 618: 'ladle',\n", " 619: 'lampshade, lamp shade',\n", " 620: 'laptop, laptop computer',\n", " 621: 'lawn mower, mower',\n", " 622: 'lens cap, lens cover',\n", " 623: 'letter opener, paper knife, paperknife',\n", " 624: 'library',\n", " 625: 'lifeboat',\n", " 626: 'lighter, light, igniter, ignitor',\n", " 627: 'limousine, limo',\n", " 628: 'liner, ocean liner',\n", " 629: 'lipstick, lip rouge',\n", " 630: 'Loafer',\n", " 631: 'lotion',\n", " 632: 'loudspeaker, speaker, speaker unit, loudspeaker system, speaker system',\n", " 633: \"loupe, jeweler's loupe\",\n", " 634: 'lumbermill, sawmill',\n", " 635: 'magnetic compass',\n", " 636: 'mailbag, postbag',\n", " 637: 'mailbox, letter box',\n", " 638: 'maillot',\n", " 639: 'maillot, tank suit',\n", " 640: 'manhole cover',\n", " 641: 'maraca',\n", " 642: 'marimba, xylophone',\n", " 643: 'mask',\n", " 644: 'matchstick',\n", " 645: 'maypole',\n", " 646: 'maze, labyrinth',\n", " 647: 'measuring cup',\n", " 648: 'medicine chest, medicine cabinet',\n", " 649: 'megalith, megalithic structure',\n", " 650: 'microphone, mike',\n", " 651: 'microwave, microwave oven',\n", " 652: 'military uniform',\n", " 653: 'milk can',\n", " 654: 'minibus',\n", " 655: 'miniskirt, mini',\n", " 656: 'minivan',\n", " 657: 'missile',\n", " 658: 'mitten',\n", " 659: 'mixing bowl',\n", " 660: 'mobile home, manufactured home',\n", " 661: 'Model T',\n", " 662: 'modem',\n", " 663: 'monastery',\n", " 664: 'monitor',\n", " 665: 'moped',\n", " 666: 'mortar',\n", " 667: 'mortarboard',\n", " 668: 'mosque',\n", " 669: 'mosquito net',\n", " 670: 'motor scooter, scooter',\n", " 671: 'mountain bike, all-terrain bike, off-roader',\n", " 672: 'mountain tent',\n", " 673: 'mouse, computer mouse',\n", " 674: 'mousetrap',\n", " 675: 'moving van',\n", " 676: 'muzzle',\n", " 677: 'nail',\n", " 678: 'neck brace',\n", " 679: 'necklace',\n", " 680: 'nipple',\n", " 681: 'notebook, notebook computer',\n", " 682: 'obelisk',\n", " 683: 'oboe, hautboy, hautbois',\n", " 684: 'ocarina, sweet potato',\n", " 685: 'odometer, hodometer, mileometer, milometer',\n", " 686: 'oil filter',\n", " 687: 'organ, pipe organ',\n", " 688: 'oscilloscope, scope, cathode-ray oscilloscope, CRO',\n", " 689: 'overskirt',\n", " 690: 'oxcart',\n", " 691: 'oxygen mask',\n", " 692: 'packet',\n", " 693: 'paddle, boat paddle',\n", " 694: 'paddlewheel, paddle wheel',\n", " 695: 'padlock',\n", " 696: 'paintbrush',\n", " 697: \"pajama, pyjama, pj's, jammies\",\n", " 698: 'palace',\n", " 699: 'panpipe, pandean pipe, syrinx',\n", " 700: 'paper towel',\n", " 701: 'parachute, chute',\n", " 702: 'parallel bars, bars',\n", " 703: 'park bench',\n", " 704: 'parking meter',\n", " 705: 'passenger car, coach, carriage',\n", " 706: 'patio, terrace',\n", " 707: 'pay-phone, pay-station',\n", " 708: 'pedestal, plinth, footstall',\n", " 709: 'pencil box, pencil case',\n", " 710: 'pencil sharpener',\n", " 711: 'perfume, essence',\n", " 712: 'Petri dish',\n", " 713: 'photocopier',\n", " 714: 'pick, plectrum, plectron',\n", " 715: 'pickelhaube',\n", " 716: 'picket fence, paling',\n", " 717: 'pickup, pickup truck',\n", " 718: 'pier',\n", " 719: 'piggy bank, penny bank',\n", " 720: 'pill bottle',\n", " 721: 'pillow',\n", " 722: 'ping-pong ball',\n", " 723: 'pinwheel',\n", " 724: 'pirate, pirate ship',\n", " 725: 'pitcher, ewer',\n", " 726: \"plane, carpenter's plane, woodworking plane\",\n", " 727: 'planetarium',\n", " 728: 'plastic bag',\n", " 729: 'plate rack',\n", " 730: 'plow, plough',\n", " 731: \"plunger, plumber's helper\",\n", " 732: 'Polaroid camera, Polaroid Land camera',\n", " 733: 'pole',\n", " 734: 'police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria',\n", " 735: 'poncho',\n", " 736: 'pool table, billiard table, snooker table',\n", " 737: 'pop bottle, soda bottle',\n", " 738: 'pot, flowerpot',\n", " 739: \"potter's wheel\",\n", " 740: 'power drill',\n", " 741: 'prayer rug, prayer mat',\n", " 742: 'printer',\n", " 743: 'prison, prison house',\n", " 744: 'projectile, missile',\n", " 745: 'projector',\n", " 746: 'puck, hockey puck',\n", " 747: 'punching bag, punch bag, punching ball, punchball',\n", " 748: 'purse',\n", " 749: 'quill, quill pen',\n", " 750: 'quilt, comforter, comfort, puff',\n", " 751: 'racer, race car, racing car',\n", " 752: 'racket, racquet',\n", " 753: 'radiator',\n", " 754: 'radio, wireless',\n", " 755: 'radio telescope, radio reflector',\n", " 756: 'rain barrel',\n", " 757: 'recreational vehicle, RV, R.V.',\n", " 758: 'reel',\n", " 759: 'reflex camera',\n", " 760: 'refrigerator, icebox',\n", " 761: 'remote control, remote',\n", " 762: 'restaurant, eating house, eating place, eatery',\n", " 763: 'revolver, six-gun, six-shooter',\n", " 764: 'rifle',\n", " 765: 'rocking chair, rocker',\n", " 766: 'rotisserie',\n", " 767: 'rubber eraser, rubber, pencil eraser',\n", " 768: 'rugby ball',\n", " 769: 'rule, ruler',\n", " 770: 'running shoe',\n", " 771: 'safe',\n", " 772: 'safety pin',\n", " 773: 'saltshaker, salt shaker',\n", " 774: 'sandal',\n", " 775: 'sarong',\n", " 776: 'sax, saxophone',\n", " 777: 'scabbard',\n", " 778: 'scale, weighing machine',\n", " 779: 'school bus',\n", " 780: 'schooner',\n", " 781: 'scoreboard',\n", " 782: 'screen, CRT screen',\n", " 783: 'screw',\n", " 784: 'screwdriver',\n", " 785: 'seat belt, seatbelt',\n", " 786: 'sewing machine',\n", " 787: 'shield, buckler',\n", " 788: 'shoe shop, shoe-shop, shoe store',\n", " 789: 'shoji',\n", " 790: 'shopping basket',\n", " 791: 'shopping cart',\n", " 792: 'shovel',\n", " 793: 'shower cap',\n", " 794: 'shower curtain',\n", " 795: 'ski',\n", " 796: 'ski mask',\n", " 797: 'sleeping bag',\n", " 798: 'slide rule, slipstick',\n", " 799: 'sliding door',\n", " 800: 'slot, one-armed bandit',\n", " 801: 'snorkel',\n", " 802: 'snowmobile',\n", " 803: 'snowplow, snowplough',\n", " 804: 'soap dispenser',\n", " 805: 'soccer ball',\n", " 806: 'sock',\n", " 807: 'solar dish, solar collector, solar furnace',\n", " 808: 'sombrero',\n", " 809: 'soup bowl',\n", " 810: 'space bar',\n", " 811: 'space heater',\n", " 812: 'space shuttle',\n", " 813: 'spatula',\n", " 814: 'speedboat',\n", " 815: \"spider web, spider's web\",\n", " 816: 'spindle',\n", " 817: 'sports car, sport car',\n", " 818: 'spotlight, spot',\n", " 819: 'stage',\n", " 820: 'steam locomotive',\n", " 821: 'steel arch bridge',\n", " 822: 'steel drum',\n", " 823: 'stethoscope',\n", " 824: 'stole',\n", " 825: 'stone wall',\n", " 826: 'stopwatch, stop watch',\n", " 827: 'stove',\n", " 828: 'strainer',\n", " 829: 'streetcar, tram, tramcar, trolley, trolley car',\n", " 830: 'stretcher',\n", " 831: 'studio couch, day bed',\n", " 832: 'stupa, tope',\n", " 833: 'submarine, pigboat, sub, U-boat',\n", " 834: 'suit, suit of clothes',\n", " 835: 'sundial',\n", " 836: 'sunglass',\n", " 837: 'sunglasses, dark glasses, shades',\n", " 838: 'sunscreen, sunblock, sun blocker',\n", " 839: 'suspension bridge',\n", " 840: 'swab, swob, mop',\n", " 841: 'sweatshirt',\n", " 842: 'swimming trunks, bathing trunks',\n", " 843: 'swing',\n", " 844: 'switch, electric switch, electrical switch',\n", " 845: 'syringe',\n", " 846: 'table lamp',\n", " 847: 'tank, army tank, armored combat vehicle, armoured combat vehicle',\n", " 848: 'tape player',\n", " 849: 'teapot',\n", " 850: 'teddy, teddy bear',\n", " 851: 'television, television system',\n", " 852: 'tennis ball',\n", " 853: 'thatch, thatched roof',\n", " 854: 'theater curtain, theatre curtain',\n", " 855: 'thimble',\n", " 856: 'thresher, thrasher, threshing machine',\n", " 857: 'throne',\n", " 858: 'tile roof',\n", " 859: 'toaster',\n", " 860: 'tobacco shop, tobacconist shop, tobacconist',\n", " 861: 'toilet seat',\n", " 862: 'torch',\n", " 863: 'totem pole',\n", " 864: 'tow truck, tow car, wrecker',\n", " 865: 'toyshop',\n", " 866: 'tractor',\n", " 867: 'trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi',\n", " 868: 'tray',\n", " 869: 'trench coat',\n", " 870: 'tricycle, trike, velocipede',\n", " 871: 'trimaran',\n", " 872: 'tripod',\n", " 873: 'triumphal arch',\n", " 874: 'trolleybus, trolley coach, trackless trolley',\n", " 875: 'trombone',\n", " 876: 'tub, vat',\n", " 877: 'turnstile',\n", " 878: 'typewriter keyboard',\n", " 879: 'umbrella',\n", " 880: 'unicycle, monocycle',\n", " 881: 'upright, upright piano',\n", " 882: 'vacuum, vacuum cleaner',\n", " 883: 'vase',\n", " 884: 'vault',\n", " 885: 'velvet',\n", " 886: 'vending machine',\n", " 887: 'vestment',\n", " 888: 'viaduct',\n", " 889: 'violin, fiddle',\n", " 890: 'volleyball',\n", " 891: 'waffle iron',\n", " 892: 'wall clock',\n", " 893: 'wallet, billfold, notecase, pocketbook',\n", " 894: 'wardrobe, closet, press',\n", " 895: 'warplane, military plane',\n", " 896: 'washbasin, handbasin, washbowl, lavabo, wash-hand basin',\n", " 897: 'washer, automatic washer, washing machine',\n", " 898: 'water bottle',\n", " 899: 'water jug',\n", " 900: 'water tower',\n", " 901: 'whiskey jug',\n", " 902: 'whistle',\n", " 903: 'wig',\n", " 904: 'window screen',\n", " 905: 'window shade',\n", " 906: 'Windsor tie',\n", " 907: 'wine bottle',\n", " 908: 'wing',\n", " 909: 'wok',\n", " 910: 'wooden spoon',\n", " 911: 'wool, woolen, woollen',\n", " 912: 'worm fence, snake fence, snake-rail fence, Virginia fence',\n", " 913: 'wreck',\n", " 914: 'yawl',\n", " 915: 'yurt',\n", " 916: 'web site, website, internet site, site',\n", " 917: 'comic book',\n", " 918: 'crossword puzzle, crossword',\n", " 919: 'street sign',\n", " 920: 'traffic light, traffic signal, stoplight',\n", " 921: 'book jacket, dust cover, dust jacket, dust wrapper',\n", " 922: 'menu',\n", " 923: 'plate',\n", " 924: 'guacamole',\n", " 925: 'consomme',\n", " 926: 'hot pot, hotpot',\n", " 927: 'trifle',\n", " 928: 'ice cream, icecream',\n", " 929: 'ice lolly, lolly, lollipop, popsicle',\n", " 930: 'French loaf',\n", " 931: 'bagel, beigel',\n", " 932: 'pretzel',\n", " 933: 'cheeseburger',\n", " 934: 'hotdog, hot dog, red hot',\n", " 935: 'mashed potato',\n", " 936: 'head cabbage',\n", " 937: 'broccoli',\n", " 938: 'cauliflower',\n", " 939: 'zucchini, courgette',\n", " 940: 'spaghetti squash',\n", " 941: 'acorn squash',\n", " 942: 'butternut squash',\n", " 943: 'cucumber, cuke',\n", " 944: 'artichoke, globe artichoke',\n", " 945: 'bell pepper',\n", " 946: 'cardoon',\n", " 947: 'mushroom',\n", " 948: 'Granny Smith',\n", " 949: 'strawberry',\n", " 950: 'orange',\n", " 951: 'lemon',\n", " 952: 'fig',\n", " 953: 'pineapple, ananas',\n", " 954: 'banana',\n", " 955: 'jackfruit, jak, jack',\n", " 956: 'custard apple',\n", " 957: 'pomegranate',\n", " 958: 'hay',\n", " 959: 'carbonara',\n", " 960: 'chocolate sauce, chocolate syrup',\n", " 961: 'dough',\n", " 962: 'meat loaf, meatloaf',\n", " 963: 'pizza, pizza pie',\n", " 964: 'potpie',\n", " 965: 'burrito',\n", " 966: 'red wine',\n", " 967: 'espresso',\n", " 968: 'cup',\n", " 969: 'eggnog',\n", " 970: 'alp',\n", " 971: 'bubble',\n", " 972: 'cliff, drop, drop-off',\n", " 973: 'coral reef',\n", " 974: 'geyser',\n", " 975: 'lakeside, lakeshore',\n", " 976: 'promontory, headland, head, foreland',\n", " 977: 'sandbar, sand bar',\n", " 978: 'seashore, coast, seacoast, sea-coast',\n", " 979: 'valley, vale',\n", " 980: 'volcano',\n", " 981: 'ballplayer, baseball player',\n", " 982: 'groom, bridegroom',\n", " 983: 'scuba diver',\n", " 984: 'rapeseed',\n", " 985: 'daisy',\n", " 986: \"yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum\",\n", " 987: 'corn',\n", " 988: 'acorn',\n", " 989: 'hip, rose hip, rosehip',\n", " 990: 'buckeye, horse chestnut, conker',\n", " 991: 'coral fungus',\n", " 992: 'agaric',\n", " 993: 'gyromitra',\n", " 994: 'stinkhorn, carrion fungus',\n", " 995: 'earthstar',\n", " 996: 'hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa',\n", " 997: 'bolete',\n", " 998: 'ear, spike, capitulum',\n", " 999: 'toilet tissue, toilet paper, bathroom tissue'}" ] }, { "cell_type": "markdown", "metadata": { "id": "wqHZIbjyZXoY" }, "source": [ "# Load F0 weights and grab an image\n", "The chosen image is released to the public domain and was taken in 2019 so we can be sure it isn't a part of the ImageNet training set." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 25019, "status": "ok", "timestamp": 1613472346442, "user": { "displayName": "Andy Brock", "photoUrl": "", "userId": "04378600802759613630" }, "user_tz": 0 }, "id": "KmA2FCPS6VkA", "outputId": "1cfd1ff2-9adc-47c7-f3e8-af87f8bc2f26" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2021-02-16 10:45:40-- https://storage.googleapis.com/dm-nfnets/F0_haiku.npz\n", "Resolving storage.googleapis.com (storage.googleapis.com)... 108.177.127.128, 173.194.69.128, 173.194.79.128, ...\n", "Connecting to storage.googleapis.com (storage.googleapis.com)|108.177.127.128|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 285976842 (273M) [application/octet-stream]\n", "Saving to: ‘F0_haiku.npz’\n", "\n", "F0_haiku.npz 100%[===================\u003e] 272.73M 64.7MB/s in 4.2s \n", "\n", "2021-02-16 10:45:45 (64.7 MB/s) - ‘F0_haiku.npz’ saved [285976842/285976842]\n", "\n", "Model loaded w/ 71.49M Params\n", "--2021-02-16 10:45:45-- https://live.staticflickr.com/65535/50594927526_f6c3b2a5d4_b.jpg\n", "Resolving live.staticflickr.com (live.staticflickr.com)... 13.35.250.20, 2600:9000:2057:7200:0:5a51:64c9:c681, 2600:9000:2057:4e00:0:5a51:64c9:c681, ...\n", "Connecting to live.staticflickr.com (live.staticflickr.com)|13.35.250.20|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: unspecified [image/jpeg]\n", "Saving to: ‘peppers.jpg’\n", "\n", "peppers.jpg [ \u003c=\u003e ] 139.76K --.-KB/s in 0.02s \n", "\n", "2021-02-16 10:45:45 (7.95 MB/s) - ‘peppers.jpg’ saved [143110]\n", "\n" ] } ], "source": [ "# Load F0 weights\n", "variant = 'F0'\n", "os.environ['VARIANT'] = variant\n", "!wget https://storage.googleapis.com/dm-nfnets/${VARIANT}_haiku.npz\n", "with open(f'{variant}_haiku.npz', 'rb') as in_file:\n", " params = dill.load(in_file)\n", "print(f'Model loaded w/ {hk.data_structures.tree_size(params)/1e6:.2f}M Params')\n", "# public domain image from https://www.flickr.com/photos/alabama_extension/50594927526\n", "!wget https://live.staticflickr.com/65535/50594927526_f6c3b2a5d4_b.jpg -O peppers.jpg\n", "im = Image.open('peppers.jpg')\n", "# Resize and crop to variant test size\n", "imsize = base.nfnet_params[variant]['test_imsize']\n", "im = im.resize((imsize + 32, imsize + 32))\n", "im = im.crop((16, 16, 16+imsize, 16+imsize))\n", "# Convert im to tensor and normalize with channel-wise RGB\n", "MEAN_RGB = (0.485 * 255, 0.456 * 255, 0.406 * 255)\n", "STDDEV_RGB = (0.229 * 255, 0.224 * 255, 0.225 * 255)\n", "x = (np.float32(im) - MEAN_RGB) / STDDEV_RGB\n" ] }, { "cell_type": "markdown", "metadata": { "id": "8pxUnQbC4MPj" }, "source": [ "# Run NFNet-F0 to classify a single image.\n", "You can either run it in eager mode by not jitting the forward function, which will be relatively slow but not incur any compilation cost, or JIT the forward\n", "function, which will incur a compilation cost but yield faster inference. If you JIT (the default) then the first time you call the function will trigger the compilation, and all subsequent evaluations will be fast." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Gr8tIBEwYOtb" }, "outputs": [], "source": [ "# Prepare the forward fn\n", "def forward(inputs, is_training): \n", " model = nfnet.NFNet(num_classes=1000, variant=variant)\n", " return model(inputs, is_training=is_training)['logits']\n", "net = hk.without_apply_rng(hk.transform(forward))\n", "fwd = jax.jit(lambda inputs: net.apply(params, inputs, is_training=False))\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 290 }, "executionInfo": { "elapsed": 27901, "status": "ok", "timestamp": 1613472375251, "user": { "displayName": "Andy Brock", "photoUrl": "", "userId": "04378600802759613630" }, "user_tz": 0 }, "id": "qeotZfkBYrIg", "outputId": "84aa4055-e224-4838-9574-f483b6369079" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ImageNet class: bell pepper.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "\u003cPIL.Image.Image image mode=RGB size=256x256 at 0x7F474593F6D8\u003e" ] }, "execution_count": 5, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "# We split this into two cells so that we don't repeatedly jit the fwd fn.\n", "logits = fwd(x[None]) # Give X a newaxis to make it batch-size-1\n", "which_class = imagenet_classlist[int(logits.argmax())]\n", "print(f'ImageNet class: {which_class}.')\n", "im" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "d3oIj5O1dyVB" ], "name": "Public: Load and Test NFNet Models.ipynb", "provenance": [ { "file_id": "1PvnPRhmYywGYGsEf-UYRSt1y8SpBhiwv", "timestamp": 1613472601457 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: nfnets/optim.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Optimizers and Schedulers, inspired by the PyTorch API.""" from collections import ChainMap # pylint:disable=g-importing-member from typing import Callable, Mapping import haiku as hk import jax import jax.numpy as jnp import tree from nfnets import utils class Optimizer(object): """Optimizer base class.""" def __init__(self, params, defaults): # Flag indicating if parameters have been broadcasted self._broadcasted = False # Optimizer hyperparameters; this is a dict to support using param_groups self._hyperparameters = {} # Mapping from model parameters to optimizer hyperparameters self._params2hyperparams = {} # Assign defaults self._hyperparameters = dict(**defaults) # Prepare parameter groups and mappings self.create_param_groups(params, defaults) # Join params at top-level if params is a list of groups if isinstance(params, list): if any(_is_non_empty_two_level_mapping(g['params']) for g in params): params = hk.data_structures.merge(*[g['params'] for g in params]) else: params = dict(ChainMap(*[g['params'] for g in params])) # Prepare states create_buffers = lambda k, v: self.create_buffers('/'.join(k), v) self._states = tree.map_structure_with_path(create_buffers, params) def add_hyperparam_group(self, group, suffix, defaults): """Adds new hyperparameters to the hyperparams dict.""" # Use default hyperparams unless overridden by group hyperparams group_dict = {key: key for key in defaults if key not in group} for key in group: if key != 'params': # Reserved keyword 'params' group_dict[key] = '%s_%s' % (key, suffix) self._hyperparameters[group_dict[key]] = group[key] # Set up params2hyperparams def set_p2h(k, _): self._params2hyperparams['/'.join(k)] = group_dict tree.map_structure_with_path(set_p2h, group['params']) def create_param_groups(self, params, defaults): """Creates param-hyperparam mappings.""" if isinstance(params, list): for group_index, group in enumerate(params): # Add group to hyperparams and get this group's full hyperparameters self.add_hyperparam_group(group, group_index, defaults) else: mapping = {key: key for key in self._hyperparameters} def set_p2h(k, _): self._params2hyperparams['/'.join(k)] = mapping tree.map_structure_with_path(set_p2h, params) def create_buffers(self, name, params): """Method to be overridden by child classes.""" pass def get_opt_params(self, param_name, itr): """Returns hyperparams corresponding to param_name.""" mapping = self._params2hyperparams[param_name] output = {} for key in mapping: hyper = self._hyperparameters[mapping[key]] # Handle the case where a hyper is a class, for hybrids if isinstance(hyper, Callable) and not isinstance(hyper, type): output[key] = hyper(itr) else: output[key] = hyper return output def get_hyper(self, param_name, hyper_name): """Get an individual hyperparam for a given param.""" mapping = self._params2hyperparams[param_name] return self._hyperparameters[mapping[hyper_name]] def plugin(self, states): self._states = states def states(self): return self._states def broadcast(self): """Brodcasts all buffers and parameters.""" self._broadcasted = True for name, state in self._states.items(): self._states[name] = {key: utils.broadcast(state[key]) for key in state} def gather(self): """Gathers state (if broadcasted) for saving.""" states = {} for name in self._states: state = self._states[name] states[name] = {key: state[key] if state[key] is None else state[key][0] for key in state} return states def __setattr__(self, name, value): """Overrides the object's set-attribute function to register states, etc.""" if '_hyperparameters' in self.__dict__ and name in self._hyperparameters: self._hyperparameters[name] = value elif '_states' in self.__dict__ and name in self._states: self._states[name] = value else: object.__setattr__(self, name, value) def __getattr__(self, name): """Override the object's get-attribute function to return states, etc.""" if '_hyperparameters' in self.__dict__ and name in self._hyperparameters: return self._hyperparameters[name] elif '_states' in self.__dict__ and name in self._states: return self._states[name] else: object.__getattribute__(self, name) def step(self, params, grads, states, itr=None): """Takes a single optimizer step. Args: params: a dict containing the parameters to be updated. grads: a dict containing the gradients for each parameter in params. states: a dict containing any optimizer buffers (momentum, etc) for each parameter in params. itr: an optional integer indicating the current step, for scheduling. Returns: The updated params and optimizer buffers. """ get_hyper = lambda k, v: self.get_opt_params('/'.join(k), itr) hypers = tree.map_structure_with_path(get_hyper, params) outs = tree.map_structure_up_to(params, self.update_param, params, grads, states, hypers) return utils.split_tree(outs, params, 2) def _is_non_empty_two_level_mapping(obj): instof = lambda t: lambda v: isinstance(v, t) # Basically: isinstance(obj, Mapping[str, Mapping[str, Any]]) ... return (isinstance(obj, Mapping) and all(map(instof(str), obj.keys())) and all(map(instof(Mapping), obj.values())) and all(map(lambda v: all(map(instof(str), v.keys())), obj.values())) and # ... and has at least one leaf. bool(obj) and any(map(bool, obj.values()))) class Schedule(object): """Hyperparameter scheduling objects.""" class CosineDecay(Schedule): """Cosine decay.""" def __init__(self, min_val, max_val, num_steps): self.min_val = min_val self.max_val = max_val self.num_steps = num_steps def __call__(self, itr): cos = (1 + jnp.cos(jnp.pi * itr / self.num_steps)) return 0.5 * (self.max_val - self.min_val) * cos + self.min_val class WarmupCosineDecay(Schedule): """Cosine decay with linear warmup.""" def __init__(self, start_val, min_val, max_val, num_steps, warmup_steps): self.start_val = start_val self.min_val = min_val self.max_val = max_val self.num_steps = num_steps self.warmup_steps = warmup_steps def __call__(self, itr): warmup_val = ((self.max_val - self.start_val) * (itr / self.warmup_steps) + self.start_val) cos_itr = (itr - self.warmup_steps) / (self.num_steps - self.warmup_steps) cos = 1 + jnp.cos(jnp.pi * cos_itr) cos_val = 0.5 * (self.max_val - self.min_val) * cos + self.min_val # Select warmup_val if itr < warmup, else cosine val values = jnp.array([warmup_val, cos_val]) index = jnp.sum(jnp.array(self.warmup_steps) < itr) return jnp.take(values, index) class WarmupExpDecay(Schedule): """Exponential step decay with linear warmup.""" def __init__(self, start_val, max_val, warmup_steps, decay_factor, decay_interval): self.start_val = start_val self.max_val = max_val self.warmup_steps = warmup_steps self.decay_factor = decay_factor self.decay_interval = decay_interval def __call__(self, itr): warmup_val = ((self.max_val - self.start_val) * (itr / self.warmup_steps) + self.start_val) # How many decay steps have we taken? num_decays = jnp.floor((itr - self.warmup_steps) / self.decay_interval) exp_val = self.max_val * (self.decay_factor ** num_decays) # Select warmup_val if itr < warmup, else exp_val values = jnp.array([warmup_val, exp_val]) index = jnp.sum(jnp.array(self.warmup_steps) < itr) return jnp.take(values, index) class SGD(Optimizer): """Standard SGD with (nesterov) momentum and weight decay. Attributes: params: Either a dict mapping param names to JAX tensors, or a list where each member of the list is a dict containing parameters and hyperparameters, allowing one to specify param-specific hyperparams. lr: Learning rate. weight_decay: Weight decay parameter. Note that this is decay, not L2 reg. momentum: Momentum parameter dampening: Dampening parameter nesterov: Bool indicating this optimizer will use the NAG formulation. """ defaults = {'weight_decay': None, 'momentum': None, 'dampening': 0, 'nesterov': None} def __init__(self, params, lr, weight_decay=None, momentum=None, dampening=0, nesterov=None): super().__init__( params, defaults={'lr': lr, 'weight_decay': weight_decay, 'momentum': momentum, 'dampening': dampening, 'nesterov': nesterov}) def create_buffers(self, name, param): """Prepares all momentum buffers for each parameter.""" state = {'step': jnp.zeros(jax.local_device_count())} if self.get_hyper(name, 'momentum') is not None: state['momentum'] = jnp.zeros_like(param) return state def update_param(self, param, grad, state, opt_params): """The actual update step for this optimizer.""" if param is None: return param, state # Apply weight decay if opt_params.get('weight_decay') is not None: grad = grad + param * opt_params['weight_decay'] # Update momentum buffers if needed if 'momentum' in state: state['momentum'] = (opt_params['momentum'] * state['momentum'] + (1 - opt_params['dampening']) * grad) if opt_params['nesterov'] is not None: grad = grad + opt_params['momentum'] * state['momentum'] else: grad = state['momentum'] state['step'] += 1 return param - opt_params['lr'] * grad, state class Adam(Optimizer): """Adam optimizer, Kingma & Ba, arxiv.org/abs/1412.6980. Args: params (iterable): nested list of params to optimize lr (float, optional): learning rate (default: 1e-3) betas (Tuple[float, float], optional): coefficients used for computing running averages of gradient and its square (default: (0.9, 0.999)) eps (float, optional): term added to the denominator to improve numerical stability (default: 1e-8) weight_decay (float, optional): weight decay (default: 0) use_adamw (bool, optional): If not None, use decoupled weight decay as in arxiv.org/abs/1711.05101. The paper version adds an additional "schedule" hyperparameter eta, which we instead just replace with the learning rate following the PyTorch implementation. Note that this implementation will not instantiate a buffer if the beta term for that buffer is passed in as None, thus conserving memory. """ defaults = {'beta1': 0.9, 'beta2': 0.999, 'weight_decay': None, 'eps': 1e-8, 'use_adamw': None} def __init__(self, params, lr, beta1=0.9, beta2=0.999, eps=1e-8, weight_decay=None, use_adamw=None): super().__init__(params=params, defaults={'lr': lr, 'beta1': beta1, 'beta2': beta2, 'eps': eps, 'weight_decay': weight_decay, 'use_adamw': use_adamw}) def create_buffers(self, name, param): """Prepare exp_avg and exp_avg_sq buffers.""" state = {'step': jnp.zeros(jax.local_device_count())} if self.get_hyper(name, 'beta1') is not None: state['exp_avg'] = jnp.zeros_like(param) if self.get_hyper(name, 'beta2') is not None: state['exp_avg_sq'] = jnp.zeros_like(param) return state def update_param(self, param, grad, state, opt_params): """The actual update step for this optimizer.""" if param is None: return param, state state['step'] = state['step'] + 1 # Apply weight decay if opt_params.get('weight_decay') is not None: if opt_params.get('use_adamw') is not None: param = param * (1 - opt_params['lr'] * opt_params['weight_decay']) else: grad = grad + param * opt_params['weight_decay'] # First moment if 'exp_avg' in state: bias_correction1 = 1 - opt_params['beta1'] ** state['step'] state['exp_avg'] = (state['exp_avg'] * opt_params['beta1'] + (1 - opt_params['beta1']) * grad) step_size = opt_params['lr'] * state['exp_avg'] / bias_correction1 else: step_size = opt_params['lr'] * grad # Second moment if 'exp_avg_sq' in state: bias_correction2 = 1 - opt_params['beta2'] ** state['step'] state['exp_avg_sq'] = (state['exp_avg_sq'] * opt_params['beta2'] + (1 - opt_params['beta2']) * grad * grad) denom = jnp.sqrt(state['exp_avg_sq']) * jax.lax.rsqrt(bias_correction2) denom = denom + opt_params['eps'] else: denom = jnp.abs(grad) + opt_params['eps'] # Add eps to avoid divide-by-0 return param - step_size / denom, state class RMSProp(Optimizer): """RMSProp optimizer, Tieleman and Hinton, ref: powerpoint slides. Implements RMSProp as rms = decay * rms{t-1} + (1-decay) * gradient ** 2 mom = momentum * mom{t-1} + learning_rate * g_t / sqrt(rms + epsilon) param -= mom Note that the rms buffer is initialized with ones as in TF, as opposed to zeros as in all other implementations. Args: params (iterable): nested list of params to optimize lr (float): learning rate (default: 1e-3) decay (float): EMA decay rate for running estimate of squared gradient. momentum (float or None): Use heavy ball momentum instead of instant grad. eps (float, optional): term added to the denominator to improve numerical stability (default: 1e-8) weight_decay (float, optional): weight decay (NOT ADAMW (default: 0)) """ defaults = {'weight_decay': None, 'eps': 1e-8} def __init__(self, params, lr, decay, momentum, weight_decay=None, eps=1e-8): super().__init__(params=params, defaults={'lr': lr, 'decay': decay, 'momentum': momentum, 'eps': eps, 'weight_decay': weight_decay}) def create_buffers(self, name, param): """Prepare exp_avg and exp_avg_sq buffers.""" state = {'step': jnp.zeros(jax.local_device_count())} state['rms'] = jnp.ones_like(param) if self.get_hyper(name, 'momentum') is not None: state['momentum'] = jnp.zeros_like(param) return state def update_param(self, param, grad, state, opt_params): """The actual update step for this optimizer.""" if param is None: return param, state state['step'] = state['step'] + 1 # Apply weight decay if opt_params.get('weight_decay') is not None: grad = grad + param * opt_params['weight_decay'] # EMA of the squared gradient state['rms'] = (state['rms'] * opt_params['decay'] + (1 - opt_params['decay']) * (grad ** 2)) scaled_grad = (opt_params['lr'] * grad / (state['rms'] + opt_params['eps']) ** 0.5) if state['momentum'] is not None: state['momentum'] = (state['momentum'] * opt_params['momentum'] + scaled_grad) step_size = state['momentum'] else: step_size = scaled_grad return param - step_size, state class Fromage(Optimizer): """Fromage optimizer, Bernstein et al. arXiv.org/abs/2002.03432. This version optionally includes weight decay. Attributes: params (iterable): nested list of params to optimize lr (float): learning rate. eps (float, optional): Minimum allowable norm. This term is required for in case parameters are zero-initialized (default: 1e-5). weight_decay (float, optional): weight decay (default: 0). """ defaults = {'weight_decay': None, 'eps': 1e-5} def __init__(self, params, lr, weight_decay=None, eps=1e-5): super().__init__( params, defaults={'lr': lr, 'weight_decay': weight_decay, 'eps': eps}) def create_buffers(self, name, param): # pylint: disable=unused-argument """Prepares all momentum buffers for each parameter.""" return {'step': jnp.zeros(1)} def update_param(self, param, grad, state, opt_params): """The actual update step for this optimizer.""" if param is None: return param, state if opt_params['weight_decay'] is not None: grad = grad + param * opt_params['weight_decay'] grad_norm = jnp.maximum(jnp.linalg.norm(grad), opt_params['eps']) param_norm = jnp.maximum(jnp.linalg.norm(param), opt_params['eps']) mult = jax.lax.rsqrt(1 + opt_params['lr'] ** 2) out = (param - opt_params['lr'] * grad * (param_norm / grad_norm)) * mult return out, state def compute_norm(x, axis, keepdims): """Returns norm over arbitrary axis.""" norm = jnp.sum(x ** 2, axis=axis, keepdims=keepdims) ** 0.5 return norm def unitwise_norm(x): """Computes norms of each output unit separately, assuming (HW)IO weights.""" if len(jnp.squeeze(x).shape) <= 1: # Scalars and vectors axis = None keepdims = False elif len(x.shape) in [2, 3]: # Linear layers of shape IO axis = 0 keepdims = True elif len(x.shape) == 4: # Conv kernels of shape HWIO axis = [0, 1, 2,] keepdims = True else: raise ValueError(f'Got a parameter with shape not in [1, 2, 3, 4]! {x}') return compute_norm(x, axis, keepdims) class SGD_AGC(Optimizer): # pylint:disable=invalid-name """SGD with Unit-Adaptive Gradient-Clipping. References: [Brock, Smith, De, Simonyan 2021] High-Performance Large-Scale Image Recognition Without Normalization. """ defaults = {'weight_decay': None, 'momentum': None, 'dampening': 0, 'nesterov': None, 'clipping': 0.01, 'eps': 1e-3} def __init__(self, params, lr, weight_decay=None, momentum=None, dampening=0, nesterov=None, clipping=0.01, eps=1e-3): super().__init__( params, defaults={'lr': lr, 'weight_decay': weight_decay, 'momentum': momentum, 'dampening': dampening, 'clipping': clipping, 'nesterov': nesterov, 'eps': eps}) def create_buffers(self, name, param): return SGD.create_buffers(self, name, param) def update_param(self, param, grad, state, opt_params): """Clips grads if necessary, then applies the optimizer update.""" if param is None: return param, state if opt_params['clipping'] is not None: param_norm = jnp.maximum(unitwise_norm(param), opt_params['eps']) grad_norm = unitwise_norm(grad) max_norm = param_norm * opt_params['clipping'] # If grad norm > clipping * param_norm, rescale trigger = grad_norm > max_norm # Note the max(||G||, 1e-6) is technically unnecessary here, as # the clipping shouldn't trigger if the grad norm is zero, # but we include it in practice as a "just-in-case". clipped_grad = grad * (max_norm / jnp.maximum(grad_norm, 1e-6)) grad = jnp.where(trigger, clipped_grad, grad) return SGD.update_param(self, param, grad, state, opt_params) class Hybrid(Optimizer): """Optimizer which permits passing param groups with different base opts. The API for this class follows the case for any other optimizer where one specifies a list of dicts with separate hyperparams, but in this case it requires the user to also specify an 'opt' key for each group, such as e.g. [{'params': params0, 'opt': optim.Adam, 'lr': 0.1}]. The user must also provide values for any arg in the selected optimizers which does not have a default value associated """ def __init__(self, param_groups): if any(['opt' not in group for group in param_groups]): raise ValueError('All parameter groups must have an opt key!') self.defaults = ChainMap(*[group['opt'].defaults for group in param_groups]) super().__init__(param_groups, defaults=dict(self.defaults)) def create_buffers(self, name, param): return self.get_hyper(name, 'opt').create_buffers(self, name, param) def update_param(self, param, grad, state, opt_params): return opt_params['opt'].update_param(self, param, grad, state, opt_params) ================================================ FILE: nfnets/requirements.txt ================================================ absl-py==0.10.0 chex>=0.0.2 dill>=0.3.3 dm-haiku>=0.0.3 jax>=0.2.8 jaxlib>=0.1.58 jaxline>=0.0.1 ml_collections>=0.1 numpy>=1.18.0 tensorflow>=2.3.1 tensorflow-addons>=0.12.0 tensorflow-datasets>=4.1.0 tensorflow-probability>=0.12.1 typing_extensions>=3.7 wrapt>=1.11.2 ================================================ FILE: nfnets/resnet.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """ResNet model family.""" import functools import haiku as hk import jax import jax.numpy as jnp from nfnets import base class ResNet(hk.Module): """ResNetv2 Models.""" variant_dict = {'ResNet50': {'depth': [3, 4, 6, 3]}, 'ResNet101': {'depth': [3, 4, 23, 3]}, 'ResNet152': {'depth': [3, 8, 36, 3]}, 'ResNet200': {'depth': [3, 24, 36, 3]}, 'ResNet288': {'depth': [24, 24, 24, 24]}, 'ResNet600': {'depth': [50, 50, 50, 50]}, } def __init__(self, width, num_classes, variant='ResNet50', which_norm='BatchNorm', norm_kwargs=None, activation='relu', drop_rate=0.0, fc_init=jnp.zeros, conv_kwargs=None, preactivation=True, use_se=False, se_ratio=0.25, name='ResNet'): super().__init__(name=name) self.width = width self.num_classes = num_classes self.variant = variant self.depth_pattern = self.variant_dict[variant]['depth'] self.activation = getattr(jax.nn, activation) self.drop_rate = drop_rate self.which_norm = getattr(hk, which_norm) if norm_kwargs is not None: self.which_norm = functools.partial(self.which_norm, **norm_kwargs) if conv_kwargs is not None: self.which_conv = functools.partial(hk.Conv2D, **conv_kwargs) else: self.which_conv = hk.Conv2D self.preactivation = preactivation # Stem self.initial_conv = self.which_conv(16 * self.width, kernel_shape=7, stride=2, padding='SAME', with_bias=False, name='initial_conv') if not self.preactivation: self.initial_bn = self.which_norm(name='initial_bn') which_block = ResBlockV2 if self.preactivation else ResBlockV1 # Body self.blocks = [] for multiplier, blocks_per_stage, stride in zip([64, 128, 256, 512], self.depth_pattern, [1, 2, 2, 2]): for block_index in range(blocks_per_stage): self.blocks += [which_block(multiplier * self.width, use_projection=block_index == 0, stride=stride if block_index == 0 else 1, activation=self.activation, which_norm=self.which_norm, which_conv=self.which_conv, use_se=use_se, se_ratio=se_ratio)] # Head self.final_bn = self.which_norm(name='final_bn') self.fc = hk.Linear(self.num_classes, w_init=fc_init, with_bias=True) def __call__(self, x, is_training, test_local_stats=False, return_metrics=False): """Return the output of the final layer without any [log-]softmax.""" outputs = {} # Stem out = self.initial_conv(x) if not self.preactivation: out = self.activation(self.initial_bn(out, is_training, test_local_stats)) out = hk.max_pool(out, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') if return_metrics: outputs.update(base.signal_metrics(out, 0)) # Blocks for i, block in enumerate(self.blocks): out, res_var = block(out, is_training, test_local_stats) if return_metrics: outputs.update(base.signal_metrics(out, i + 1)) outputs[f'res_avg_var_{i}'] = res_var if self.preactivation: out = self.activation(self.final_bn(out, is_training, test_local_stats)) # Pool, dropout, classify pool = jnp.mean(out, axis=[1, 2]) # Return pool before dropout in case we want to regularize it separately. outputs['pool'] = pool # Optionally apply dropout if self.drop_rate > 0.0 and is_training: pool = hk.dropout(hk.next_rng_key(), self.drop_rate, pool) outputs['logits'] = self.fc(pool) return outputs class ResBlockV2(hk.Module): """ResNet preac block, 1x1->3x3->1x1 with strides and shortcut downsample.""" def __init__(self, out_ch, stride=1, use_projection=False, activation=jax.nn.relu, which_norm=hk.BatchNorm, which_conv=hk.Conv2D, use_se=False, se_ratio=0.25, name=None): super().__init__(name=name) self.out_ch = out_ch self.stride = stride self.use_projection = use_projection self.activation = activation self.which_norm = which_norm self.which_conv = which_conv self.use_se = use_se self.se_ratio = se_ratio self.width = self.out_ch // 4 self.bn0 = which_norm(name='bn0') self.conv0 = which_conv(self.width, kernel_shape=1, with_bias=False, padding='SAME', name='conv0') self.bn1 = which_norm(name='bn1') self.conv1 = which_conv(self.width, stride=self.stride, kernel_shape=3, with_bias=False, padding='SAME', name='conv1') self.bn2 = which_norm(name='bn2') self.conv2 = which_conv(self.out_ch, kernel_shape=1, with_bias=False, padding='SAME', name='conv2') if self.use_projection: self.conv_shortcut = which_conv(self.out_ch, stride=stride, kernel_shape=1, with_bias=False, padding='SAME', name='conv_shortcut') if self.use_se: self.se = base.SqueezeExcite(self.out_ch, self.out_ch, self.se_ratio) def __call__(self, x, is_training, test_local_stats): bn_args = (is_training, test_local_stats) out = self.activation(self.bn0(x, *bn_args)) if self.use_projection: shortcut = self.conv_shortcut(out) else: shortcut = x out = self.conv0(out) out = self.conv1(self.activation(self.bn1(out, *bn_args))) out = self.conv2(self.activation(self.bn2(out, *bn_args))) if self.use_se: out = self.se(out) * out # Get average residual standard deviation for reporting metrics. res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) return out + shortcut, res_avg_var class ResBlockV1(ResBlockV2): """Post-Ac Residual Block.""" def __call__(self, x, is_training, test_local_stats): bn_args = (is_training, test_local_stats) if self.use_projection: shortcut = self.conv_shortcut(x) shortcut = self.which_norm(name='shortcut_bn')(shortcut, *bn_args) else: shortcut = x out = self.activation(self.bn0(self.conv0(x), *bn_args)) out = self.activation(self.bn1(self.conv1(out), *bn_args)) out = self.bn2(self.conv2(out), *bn_args) if self.use_se: out = self.se(out) * out res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) return self.activation(out + shortcut), res_avg_var ================================================ FILE: nfnets/run.sh ================================================ #!/bin/sh # Copyright 2021 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e python3 -m venv /tmp/nfnets_venv source /tmp/nfnets_venv/bin/activate pip3 install --upgrade pip setuptools wheel pip3 install -r nfnets/requirements.txt python3 -m nfnets.test ================================================ FILE: nfnets/skipinit_resnet.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """ResNetV2 (Pre-activation) with SkipInit.""" # pylint: disable=invalid-name import haiku as hk import jax import jax.numpy as jnp from nfnets import base # Nonlinearities nonlinearities = { 'swish': jax.nn.silu, 'relu': jax.nn.relu, 'identity': lambda x: x} class SkipInit_ResNet(hk.Module): """Skip-Init based ResNet.""" variant_dict = {'ResNet50': {'depth': [3, 4, 6, 3]}, 'ResNet101': {'depth': [3, 4, 23, 3]}, 'ResNet152': {'depth': [3, 8, 36, 3]}, 'ResNet200': {'depth': [3, 24, 36, 3]}, 'ResNet288': {'depth': [24, 24, 24, 24]}, 'ResNet600': {'depth': [50, 50, 50, 50]}, } def __init__(self, num_classes, variant='ResNet50', width=4, stochdepth_rate=0.1, drop_rate=None, activation='relu', fc_init=jnp.zeros, name='SkipInit_ResNet'): super().__init__(name=name) self.num_classes = num_classes self.variant = variant self.width = width # Get variant info block_params = self.variant_dict[self.variant] self.width_pattern = [item * self.width for item in [64, 128, 256, 512]] self.depth_pattern = block_params['depth'] self.activation = nonlinearities[activation] if drop_rate is None: self.drop_rate = block_params['drop_rate'] else: self.drop_rate = drop_rate self.which_conv = hk.Conv2D # Stem ch = int(16 * self.width) self.initial_conv = self.which_conv(ch, kernel_shape=7, stride=2, padding='SAME', with_bias=False, name='initial_conv') # Body self.blocks = [] num_blocks = sum(self.depth_pattern) index = 0 # Overall block index block_args = (self.width_pattern, self.depth_pattern, [1, 2, 2, 2]) for block_width, stage_depth, stride in zip(*block_args): for block_index in range(stage_depth): # Block stochastic depth drop-rate block_stochdepth_rate = stochdepth_rate * index / num_blocks self.blocks += [NFResBlock(ch, block_width, stride=stride if block_index == 0 else 1, activation=self.activation, which_conv=self.which_conv, stochdepth_rate=block_stochdepth_rate, )] ch = block_width index += 1 # Head self.fc = hk.Linear(self.num_classes, w_init=fc_init, with_bias=True) def __call__(self, x, is_training=True, return_metrics=False): """Return the output of the final layer without any [log-]softmax.""" # Stem outputs = {} out = self.initial_conv(x) out = hk.max_pool(out, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') if return_metrics: outputs.update(base.signal_metrics(out, 0)) # Blocks for i, block in enumerate(self.blocks): out, res_avg_var = block(out, is_training=is_training) if return_metrics: outputs.update(base.signal_metrics(out, i + 1)) outputs[f'res_avg_var_{i}'] = res_avg_var # Final-conv->activation, pool, dropout, classify pool = jnp.mean(self.activation(out), [1, 2]) outputs['pool'] = pool # Optionally apply dropout if self.drop_rate > 0.0 and is_training: pool = hk.dropout(hk.next_rng_key(), self.drop_rate, pool) outputs['logits'] = self.fc(pool) return outputs def count_flops(self, h, w): flops = [] flops += [base.count_conv_flops(3, self.initial_conv, h, w)] h, w = h / 2, w / 2 # Body FLOPs for block in self.blocks: flops += [block.count_flops(h, w)] if block.stride > 1: h, w = h / block.stride, w / block.stride # Count flops for classifier flops += [self.blocks[-1].out_ch * self.fc.output_size] return flops, sum(flops) class NFResBlock(hk.Module): """Normalizer-Free pre-activation ResNet Block.""" def __init__(self, in_ch, out_ch, bottleneck_ratio=0.25, kernel_size=3, stride=1, which_conv=hk.Conv2D, activation=jax.nn.relu, stochdepth_rate=None, name=None): super().__init__(name=name) self.in_ch, self.out_ch = in_ch, out_ch self.kernel_size = kernel_size self.activation = activation # Bottleneck width self.width = int(self.out_ch * bottleneck_ratio) self.stride = stride # Conv 0 (typically expansion conv) self.conv0 = which_conv(self.width, kernel_shape=1, padding='SAME', name='conv0') # Grouped NxN conv self.conv1 = which_conv(self.width, kernel_shape=kernel_size, stride=stride, padding='SAME', name='conv1') # Conv 2, typically projection conv self.conv2 = which_conv(self.out_ch, kernel_shape=1, padding='SAME', name='conv2') # Use shortcut conv on channel change or downsample. self.use_projection = stride > 1 or self.in_ch != self.out_ch if self.use_projection: self.conv_shortcut = which_conv(self.out_ch, kernel_shape=1, stride=stride, padding='SAME', name='conv_shortcut') # Are we using stochastic depth? self._has_stochdepth = (stochdepth_rate is not None and stochdepth_rate > 0. and stochdepth_rate < 1.0) if self._has_stochdepth: self.stoch_depth = base.StochDepth(stochdepth_rate) def __call__(self, x, is_training): out = self.activation(x) shortcut = x if self.use_projection: # Downsample with conv1x1 shortcut = self.conv_shortcut(out) out = self.conv0(out) out = self.conv1(self.activation(out)) out = self.conv2(self.activation(out)) # Get average residual standard deviation for reporting metrics. res_avg_var = jnp.mean(jnp.var(out, axis=[0, 1, 2])) # Apply stochdepth if applicable. if self._has_stochdepth: out = self.stoch_depth(out, is_training) # SkipInit Gain out = out * hk.get_parameter('skip_gain', (), out.dtype, init=jnp.zeros) return out + shortcut, res_avg_var def count_flops(self, h, w): # Count conv FLOPs based on input HW expand_flops = base.count_conv_flops(self.in_ch, self.conv0, h, w) # If block is strided we decrease resolution here. dw_flops = base.count_conv_flops(self.width, self.conv1, h, w) if self.stride > 1: h, w = h / self.stride, w / self.stride if self.use_projection: sc_flops = base.count_conv_flops(self.in_ch, self.conv_shortcut, h, w) else: sc_flops = 0 # SE flops happen on avg-pooled activations contract_flops = base.count_conv_flops(self.width, self.conv2, h, w) return sum([expand_flops, dw_flops, contract_flops, sc_flops]) ================================================ FILE: nfnets/test.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Quick script to test that experiment can import and run.""" import jax import jax.numpy as jnp from nfnets import experiment from nfnets import experiment_nfnets def test_experiment(): """Tests the main experiment.""" config = experiment.get_config() exp_config = config.experiment_kwargs.config exp_config.train_batch_size = 2 exp_config.eval_batch_size = 2 exp_config.lr = 0.1 exp_config.fake_data = True exp_config.model_kwargs.width = 2 print(exp_config.model_kwargs) xp = experiment.Experiment('train', exp_config, jax.random.PRNGKey(0)) bcast = jax.pmap(lambda x: x) global_step = bcast(jnp.zeros(jax.local_device_count())) rng = bcast(jnp.stack([jax.random.PRNGKey(0)] * jax.local_device_count())) print('Taking a single experiment step for test purposes!') result = xp.step(global_step, rng) print(f'Step successfully taken, resulting metrics are {result}') def test_nfnet_experiment(): """Tests the NFNet experiment.""" config = experiment_nfnets.get_config() exp_config = config.experiment_kwargs.config exp_config.train_batch_size = 2 exp_config.eval_batch_size = 2 exp_config.lr = 0.1 exp_config.fake_data = True exp_config.model_kwargs.width = 2 print(exp_config.model_kwargs) xp = experiment_nfnets.Experiment('train', exp_config, jax.random.PRNGKey(0)) bcast = jax.pmap(lambda x: x) global_step = bcast(jnp.zeros(jax.local_device_count())) rng = bcast(jnp.stack([jax.random.PRNGKey(0)] * jax.local_device_count())) print('Taking a single NFNet experiment step for test purposes!') result = xp.step(global_step, rng) print(f'NFNet Step successfully taken, resulting metrics are {result}') test_experiment() test_nfnet_experiment() ================================================ FILE: nfnets/utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """Utils.""" import dill import jax import jax.numpy as jnp import tree def reduce_fn(x, mode): """Reduce fn for various losses.""" if mode == 'none' or mode is None: return jnp.asarray(x) elif mode == 'sum': return jnp.sum(x) elif mode == 'mean': return jnp.mean(x) else: raise ValueError('Unsupported reduction option.') def softmax_cross_entropy(logits, labels, reduction='sum'): """Computes softmax cross entropy given logits and one-hot class labels. Args: logits: Logit output values. labels: Ground truth one-hot-encoded labels. reduction: Type of reduction to apply to loss. Returns: Loss value. If `reduction` is `none`, this has the same shape as `labels`; otherwise, it is scalar. Raises: ValueError: If the type of `reduction` is unsupported. """ loss = -jnp.sum(labels * jax.nn.log_softmax(logits), axis=-1) return reduce_fn(loss, reduction) def topk_correct(logits, labels, mask=None, prefix='', topk=(1, 5)): """Calculate top-k error for multiple k values.""" metrics = {} argsorted_logits = jnp.argsort(logits) for k in topk: pred_labels = argsorted_logits[..., -k:] # Get the number of examples where the label is in the top-k predictions correct = any_in(pred_labels, labels).any(axis=-1).astype(jnp.float32) if mask is not None: correct *= mask metrics[f'{prefix}top_{k}_acc'] = correct return metrics @jax.vmap def any_in(prediction, target): """For each row in a and b, checks if any element of a is in b.""" return jnp.isin(prediction, target) def tf1_ema(ema_value, current_value, decay, step): """Implements EMA with TF1-style decay warmup.""" decay = jnp.minimum(decay, (1.0 + step) / (10.0 + step)) return ema_value * decay + current_value * (1 - decay) def ema(ema_value, current_value, decay, step): """Implements EMA without any warmup.""" del step return ema_value * decay + current_value * (1 - decay) to_bf16 = lambda x: x.astype(jnp.bfloat16) if x.dtype == jnp.float32 else x from_bf16 = lambda x: x.astype(jnp.float32) if x.dtype == jnp.bfloat16 else x def _replicate(x, devices=None): """Replicate an object on each device.""" x = jax.numpy.array(x) if devices is None: devices = jax.local_devices() return jax.device_put_sharded(len(devices) * [x], devices) def broadcast(obj): """Broadcasts an object to all devices.""" if obj is not None and not isinstance(obj, bool): return _replicate(obj) else: return obj def split_tree(tuple_tree, base_tree, n): """Splits tuple_tree with n-tuple leaves into n trees.""" return [tree.map_structure_up_to(base_tree, lambda x: x[i], tuple_tree) # pylint: disable=cell-var-from-loop for i in range(n)] def load_haiku_file(filename): """Loads a haiku parameter tree, using dill.""" with open(filename, 'rb') as in_file: output = dill.load(in_file) return output def flatten_haiku_tree(haiku_dict): """Flattens a haiku parameter tree into a flat dictionary.""" out = {} for module in haiku_dict.keys(): out_module = module.replace('/~/', '.').replace('/', '.') for key in haiku_dict[module]: out_key = f'{out_module}.{key}' out[out_key] = haiku_dict[module][key] return out ================================================ FILE: noisy_label/README.md ================================================ # An Instance-Dependent Simulation Framework for Learning with Label Noise We propose a simulation framework for generating instance-dependent noisy labels via a pseudo-labeling paradigm. We show that this framework generates synthetic noisy labels whose distribution is closer to human labels compared to independent and class-conditional random flipping. Equipped with controllable label noise, we study the negative impact of noisy labels across a few practical settings to understand when label noise is more problematic. Additionally, with the availability of annotator information from our simulation framework, we propose a new technique, Label Quality Model (LQM), that leverages annotator features to predict and correct against noisy labels. We show that by adding LQM as a label correction step before applying existing noisy label techniques, we can further improve the models' performance. [An Instance-Dependent Simulation Framework for Learning with Label Noise](https://arxiv.org/pdf/2107.11413.pdf). In this repository, we provide the link to the datasets that we used in Sections 4 and 5 of the above paper, along with a colab that demonstrates how to load the data and rater features. We consider 4 tasks: [CIFAR10](https://www.cs.toronto.edu/~kriz/cifar.html), [CIFAR100](https://www.cs.toronto.edu/~kriz/cifar.html), [Patch Camelyon](https://patchcamelyon.grand-challenge.org/), and [Cats vs Dogs](https://www.microsoft.com/en-us/download/details.aspx?id=54765). For each task, we generate three synthetic noisy label datasets, named as "low", "medium", and "high" according to the amount of label noise. The data are stored as TFRecords and the rater features are stored as json files. The data is available under [noisy label synthetic dataset GCP bucket](https://console.cloud.google.com/storage/browser/noisy_label_synthetic_datasets). The colab that contains details of the datasets and examples for data loading is at [this colab example](https://github.com/deepmind/deepmind-research/blob/master/noisy_label/noisy_label_datasets_and_rater_features.ipynb) ## License The noisy labels and rater features in our datasets are under the [CC0 License](https://choosealicense.com/licenses/cc0-1.0/). Other parts of the datasets are under the original license of the datasets. When using the datasets based on CIFAR10/CIFAR100, users are required to attribute the following paper: Learning Multiple Layers of Features from Tiny Images, Alex Krizhevsky, 2009 When using the datasets based on Patch Camelyon, users are required to attribute the following paper: Rotation Equivariant CNNs for Digital Pathology, Bastiaan S. Veeling, Jasper Linmans, Jim Winkens, Taco Cohen, and Max Welling, arXiv:1806.03962. When using the datasets based on Cats vs Dogs, users are required to attribute the following paper: Asirra: a CAPTCHA that exploits interest-aligned manual image categorization, Jeremy Elson, John R. Douceur, Jon Howell, and Jared Saul, ACM Conference on Computer and Communications Security, 2007. The colab example is provided under the Apache License, Version 2.0. ## Citation Please use the following bibtex for citations to our paper: ``` @article{gu2021instance, title={An Instance-Dependent Simulation Framework for Learning with Label Noise}, author={Gu, Keren and Masotto, Xander and Bachani, Vandana and Lakshminarayanan, Balaji and Nikodem, Jack and Yin, Dong}, year={2021} } ``` # Dataset Metadata The following table is necessary for this dataset to be indexed by search engines such as Google Dataset Search.
property value
name Noisy Label Synthetic Datasets
url
sameAs https://github.com/deepmind/deepmind-research/tree/master/noisy_label
description Data accompanying [An Instance-Dependent Simulation Framework for Learning with Label Noise]().
provider
property value
name DeepMind
sameAs https://en.wikipedia.org/wiki/DeepMind
citation https://identifiers.org/arxiv:2107.11413
================================================ FILE: noisy_label/noisy_label_datasets_and_rater_features.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "cv38ildJKsei" }, "source": [ "Copyright 2021 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "tAJQfAHhAxz9" }, "source": [ "# An Instance-Dependent Simulation Framework for Learning with Label Noise\n", "\n", "In this colab, we provide metadata and examples for data loading for the noisy label datasets generated using the pseudo-labeling paradigm propsed in the paper *An Instance-Dependent Simulation Framework for Learning with Label Noise*.\n", "We also provide the associated rater features. We consider 4 tasks: CIFAR10 [1], CIFAR100 [1], Patch Camelyon [2,3], and Cats vs Dogs [4]. For each task, we generate three synthetic noisy label datasets, named as \"low\", \"medium\", and \"high\" according to the amount of label noise.\n", "\n", "* [1] Krizhevsky, Alex, and Geoffrey Hinton. \"Learning multiple layers of features from tiny images.\", 2009.\n", "* [2] Veeling, Bastiaan S., Jasper Linmans, Jim Winkens, Taco Cohen, and Max Welling. \"Rotation equivariant CNNs for digital pathology.\" In International Conference on Medical image computing and computer-assisted intervention, pp. 210-218. Springer, Cham, 2018.\n", "* [3] Bejnordi, Babak Ehteshami, Mitko Veta, Paul Johannes Van Diest, Bram Van Ginneken, Nico Karssemeijer, Geert Litjens, Jeroen AWM Van Der Laak et al. \"Diagnostic assessment of deep learning algorithms for detection of lymph node metastases in women with breast cancer.\" Jama 318, no. 22 (2017): 2199-2210.\n", "* [4] Elson, Jeremy, John R. Douceur, Jon Howell, and Jared Saul. \"Asirra: a CAPTCHA that exploits interest-aligned manual image categorization.\" In ACM Conference on Computer and Communications Security, vol. 7, pp. 366-374. 2007." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "_9SigscwVH_s" }, "outputs": [], "source": [ "# @title Imports and global variable\n", "import os\n", "import matplotlib.pyplot as plt\n", "import json\n", "import tensorflow as tf\n", "\n", "root_dir = '/root/directory/to/the/dataset/'" ] }, { "cell_type": "markdown", "metadata": { "id": "7Xv86m2rNOFH" }, "source": [ "**CIFAR10 noisy label datasets**\n", "\n", "**Download size**\n", "* 79MB for each of the low, medium, and high noise datasets.\n", "\n", "**Number of examples**\n", "* train: 19987, valid: 5021, for each of the low, medium, and high noise datasets.\n", "\n", "Both the train and valid splits are subsampled from the train split of the original CIFAR10 dataset.\n", "\n", "**Data features**\n", "* \"image/raw\": images in bytes, shape = (32, 32, 3).\n", "* \"image/class/label\": clean label, tf.int64.\n", "* \"noisy_labels\": the noisy label given by rater models, a list of 10 tf.int64 integers.\n", "* \"rater_ids\": the ID of the rater models, a list of 10 tf.string.\n", "\n", "**Rater features**\n", "* model_name: name of the model\n", "* accuracy: accuracy of the rater model on the rater validation set\n", "* loss: loss of the rater model on the rater validation set\n", "* experience: the total number of data that the rater model has seen during training" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "aPDR8avkiFWA" }, "outputs": [], "source": [ "# @title An example for loading CIFAR10 noisy label datasets\n", "task_name = 'cifar10'\n", "\n", "# One of ['low', 'medium', 'high']\n", "noise_level = 'low'\n", "\n", "# One of ['train', 'valid']. The `valid` split should be used for\n", "# hyperparameter tuning. The model should be tested on the original test\n", "# slipt for these tasks.\n", "split = 'train'\n", "\n", "# We have 10 rater models for CIFAR10.\n", "num_raters = 10\n", "\n", "directory = os.path.join(root_dir, task_name, noise_level, split) + '*'\n", "raw_image_dataset = tf.data.TFRecordDataset(tf.io.gfile.glob(directory))\n", "\n", "# Create a dictionary describing the features.\n", "image_feature_description = {\n", " # the raw image\n", " 'image/raw': tf.io.FixedLenFeature([], tf.string),\n", " # the clean label\n", " 'image/class/label': tf.io.FixedLenFeature([1], tf.int64),\n", " # noisy labels from all the raters\n", " 'noisy_labels': tf.io.FixedLenFeature([num_raters], tf.int64),\n", " # the IDs of rater models\n", " 'rater_ids': tf.io.FixedLenFeature([num_raters], tf.string),\n", "}\n", "\n", "def _parse_image_function(example_proto):\n", " # Parse the input tf.train.Example proto using the dictionary above.\n", " return tf.io.parse_single_example(example_proto, image_feature_description)\n", "\n", "parsed_image_dataset = raw_image_dataset.map(_parse_image_function)\n", "\n", "for features in parsed_image_dataset.take(1):\n", " # Check the IDs of the rater models. The rater IDs are the same for all the\n", " # examples in the dataset.\n", " rater_ids = features['rater_ids']\n", " rater_id_string = [r.numpy().decode('utf-8') for r in rater_ids]\n", " print('The IDs of the rater models for this dataset are:')\n", " print(rater_id_string)\n", " clean_label = features['image/class/label'].numpy()\n", " print('The clean label for the following example is %d' % clean_label)\n", " noisy_labels = features['noisy_labels'].numpy()\n", " print('The noisy labels from the rater models are:')\n", " print(noisy_labels)\n", " image = tf.reshape(tf.io.decode_raw(features['image/raw'], tf.uint8),\n", " (32, 32, 3))\n", " plt.imshow(image)" ] }, { "cell_type": "markdown", "metadata": { "id": "YahpOXMmmhFO" }, "source": [ "**CIFAR100 noisy label datasets**\n", "\n", "**Download size**\n", "* 82MB for each of the low, medium, and high noise datasets.\n", "\n", "**Number of examples**\n", "* train: 20114, valid: 4978, for each of the low, medium, and high noise datasets.\n", "\n", "Both the train and valid splits are subsampled from the train split of the original CIFAR100 dataset.\n", "\n", "**Data features**\n", "* \"image/encoded\": images in bytes, shape=(32, 32, 3).\n", "* \"image/class/fine_label\": clean fine-grained label, tf.int64.\n", "* \"image/class/coarse_label\": clean coarse label, tf.int64\n", "* \"noisy_labels\": the noisy label given by rater models, a list of 11 tf.int64 integers.\n", "* \"rater_ids\": the ID of the rater models, a list of 11 tf.string.\n", "\n", "**Rater features**\n", "* model_name: name of the model\n", "* accuracy: accuracy of the rater model on the rater validation set\n", "* loss: loss of the rater model on the rater validation set\n", "* mAP: the mean average precision of the rater model on the rater validation set\n", "* experience: the total number of data that the rater model has seen during training\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "AccCP_BZnz3S" }, "outputs": [], "source": [ "# @title An example for loading CIFAR100 noisy label datasets\n", "task_name = 'cifar100'\n", "\n", "# One of ['low', 'medium', 'high']\n", "noise_level = 'high'\n", "\n", "# One of ['train', 'valid']. The `valid` split should be used for\n", "# hyperparameter tuning. The model should be tested on the original test\n", "# slipt for these tasks.\n", "split = 'train'\n", "\n", "# We have 11 rater models for CIFAR100.\n", "num_raters = 11\n", "\n", "directory = os.path.join(root_dir, task_name, noise_level, split) + '*'\n", "raw_image_dataset = tf.data.TFRecordDataset(tf.io.gfile.glob(directory))\n", "\n", "# Create a dictionary describing the features.\n", "image_feature_description = {\n", " # the raw image\n", " 'image/encoded': tf.io.FixedLenFeature([], tf.string),\n", " # the fine-grained clean label, value in [0, 99]\n", " 'image/class/fine_label': tf.io.FixedLenFeature([1], tf.int64),\n", " # the coarse clean label, value in [0, 19]\n", " 'image/class/coarse_label': tf.io.FixedLenFeature([1], tf.int64),\n", " # noisy labels from all the raters\n", " 'noisy_labels': tf.io.FixedLenFeature([num_raters], tf.int64),\n", " # the IDs of rater models\n", " 'rater_ids': tf.io.FixedLenFeature([num_raters], tf.string),\n", "}\n", "\n", "def _parse_image_function(example_proto):\n", " # Parse the input tf.train.Example proto using the dictionary above.\n", " return tf.io.parse_single_example(example_proto, image_feature_description)\n", "\n", "parsed_image_dataset = raw_image_dataset.map(_parse_image_function)\n", "\n", "for features in parsed_image_dataset.take(1):\n", " # Check the IDs of the rater models. The rater IDs are the same for all the\n", " # examples in the dataset.\n", " rater_ids = features['rater_ids']\n", " rater_id_string = [r.numpy().decode('utf-8') for r in rater_ids]\n", " print('The IDs of the rater models for this dataset are:')\n", " print(rater_id_string)\n", " clean_label = features['image/class/fine_label'].numpy()\n", " print('The clean label for the following example is %d' % clean_label)\n", " noisy_labels = features['noisy_labels'].numpy()\n", " print('The noisy labels from the rater models are:')\n", " print(noisy_labels)\n", " image = tf.reshape(tf.io.decode_raw(features['image/encoded'], tf.uint8),\n", " (32, 32, 3))\n", " plt.imshow(image)" ] }, { "cell_type": "markdown", "metadata": { "id": "ASlnEQ0DpPY2" }, "source": [ "**Patch Camelyon noisy label datasets**\n", "\n", "**Download size**\n", "* 3.27GB for each of the low, medium, and high noise datasets.\n", "\n", "**Number of examples**\n", "* train: 130982, valid: 16394, for each of the low, medium, and high noise datasets.\n", "\n", "The train and valid splits are subsampled from the train and valid splits of the original Patch Camelyon dataset, respectively.\n", "\n", "**Data features**\n", "* \"image\": images in png format, shape=(96, 96, 3).\n", "* \"label\": clean label, tf.int64.\n", "* \"id\": the ID of this image in the original Patch Camelyon dataset, a tf.string that begins with \"train_\" or \"valid_\".\n", "* \"noisy_labels\": the noisy label given by rater models, a list of 20 (low and high noise) or 19 (medium noise) tf.int64 integers.\n", "* \"rater_ids\": the ID of the rater models, a list of 20 (low and high noise) or 19 (medium noise) tf.string.\n", "\n", "**Rater features**\n", "* model_name: name of the model\n", "* accuracy: accuracy of the rater model on the rater validation set\n", "* loss: loss of the rater model on the rater validation set\n", "* experience: the total number of data that the rater model has seen during training" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Usw0YmwupYgP" }, "outputs": [], "source": [ "# @title An example for loading Patch Camelyon noisy label datasets\n", "task_name = 'patch_camelyon'\n", "\n", "# One of ['low', 'medium', 'high']\n", "noise_level = 'medium'\n", "\n", "# One of ['train', 'valid']. The `valid` split should be used for\n", "# hyperparameter tuning. The model should be tested on the original test\n", "# slipt for these tasks.\n", "split = 'train'\n", "\n", "# We have 20 rater models for low and high noise for Patch Camelyon.\n", "# For medium noise, we have 19 rater models.\n", "num_raters = 19 if noise_level == 'medium' else 20\n", "\n", "directory = os.path.join(root_dir, task_name, noise_level, split) + '*'\n", "raw_image_dataset = tf.data.TFRecordDataset(tf.io.gfile.glob(directory))\n", "\n", "# Create a dictionary describing the features.\n", "image_feature_description = {\n", " # the raw image\n", " 'image': tf.io.FixedLenFeature([], tf.string),\n", " # the clean label, value in {0, 1}\n", " 'label': tf.io.FixedLenFeature([1], tf.int64),\n", " # noisy labels from all the raters\n", " 'noisy_labels': tf.io.FixedLenFeature([num_raters], tf.int64),\n", " # the IDs of rater models\n", " 'rater_ids': tf.io.FixedLenFeature([num_raters], tf.string),\n", "}\n", "\n", "def _parse_image_function(example_proto):\n", " # Parse the input tf.train.Example proto using the dictionary above.\n", " return tf.io.parse_single_example(example_proto, image_feature_description)\n", "\n", "parsed_image_dataset = raw_image_dataset.map(_parse_image_function)\n", "\n", "for features in parsed_image_dataset.take(1):\n", " # Check the IDs of the rater models. The rater IDs are the same for all the\n", " # examples in the dataset.\n", " rater_ids = features['rater_ids']\n", " rater_id_string = [r.numpy().decode('utf-8') for r in rater_ids]\n", " print('The IDs of the rater models for this dataset are:')\n", " print(rater_id_string)\n", " clean_label = features['label'].numpy()\n", " print('The clean label for the following example is %d' % clean_label)\n", " noisy_labels = features['noisy_labels'].numpy()\n", " print('The noisy labels from the rater models are:')\n", " print(noisy_labels)\n", " image = tf.io.decode_png(features['image'])\n", " plt.imshow(image)" ] }, { "cell_type": "markdown", "metadata": { "id": "CLYyqNIOsV4N" }, "source": [ "**Cats vs Dogs noisy label datasets**\n", "\n", "**Download size**\n", "* 2.4MB for each of the low, medium, and high noise datasets.\n", "\n", "**Number of examples**\n", "* train: 9302, valid: 1184, for each of the low, medium, and high noise datasets.\n", "\n", "Both the train and valid splits are subsampled from the original Cats vs Dogs dataset.\n", "\n", "**Data features**\n", "* \"noisy_labels\": the noisy label given by rater models, a list of 10 tf.int64 integers. Label 0 for cats, 1 for dogs.\n", "* \"rater_ids\": the ID of the rater models, a list of 10 tf.string.\n", "* \"image/filename\": the filename of the image, corresponding to the filename in the original Cats vs Dogs dataset, tf.string.\n", "\n", "\n", "**Rater features**\n", "* model_name: name of the model\n", "* accuracy: accuracy of the rater model on the rater validation set\n", "* loss: loss of the rater model on the rater validation set\n", "* mAP: the mean average precision of the rater model on the rater validation set\n", "* auc_PR: the area under curve--precision recall of the rater model on the rater validation set\n", "* auc_ROC: the area under curve--ROC of the rater model on the rater validation set\n", "* experience: the total number of data that the rater model has seen during training" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "GmZ44wRJsnhR" }, "outputs": [], "source": [ "# @title An example for loading Cats vs Dongs noisy label datasets\n", "task_name = 'cats_vs_dogs'\n", "\n", "# One of ['low', 'medium', 'high']\n", "noise_level = 'medium'\n", "\n", "# One of ['train', 'valid']. The `valid` split should be used for\n", "# hyperparameter tuning. The model should be tested on the original test\n", "# slipt for these tasks.\n", "split = 'train'\n", "\n", "# We have 10 rater models for Cats vs Dogs.\n", "num_raters = 10\n", "\n", "directory = os.path.join(root_dir, task_name, noise_level, split) + '*'\n", "raw_image_dataset = tf.data.TFRecordDataset(tf.io.gfile.glob(directory))\n", "\n", "# Create a dictionary describing the features.\n", "image_feature_description = {\n", " # noisy labels from all the raters\n", " 'noisy_labels': tf.io.FixedLenFeature([num_raters], tf.int64),\n", " # the IDs of rater models\n", " 'rater_ids': tf.io.FixedLenFeature([num_raters], tf.string),\n", " # filename of the image\n", " 'image/filename': tf.io.FixedLenFeature([1], tf.string),\n", "}\n", "\n", "def _parse_image_function(example_proto):\n", " # Parse the input tf.train.Example proto using the dictionary above.\n", " return tf.io.parse_single_example(example_proto, image_feature_description)\n", "\n", "parsed_image_dataset = raw_image_dataset.map(_parse_image_function)\n", "\n", "for features in parsed_image_dataset.take(1):\n", " # Check the IDs of the rater models. The rater IDs are the same for all the\n", " # examples in the dataset.\n", " rater_ids = features['rater_ids']\n", " rater_id_string = [r.numpy().decode('utf-8') for r in rater_ids]\n", " print('The IDs of the rater models for this dataset are:')\n", " print(rater_id_string)\n", " print('Image filename:')\n", " print(features['image/filename'][0].numpy().decode('utf-8'))\n", " noisy_labels = features['noisy_labels'].numpy()\n", " print('The noisy labels from the rater models are:')\n", " print(noisy_labels)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6AO3XJnrQPeY" }, "outputs": [], "source": [ "# @title An example for loading rater features\n", "for task_name in ['cifar10', 'cifar100', 'patch_camelyon', 'cats_vs_dogs']:\n", " for noise_level in ['low', 'medium', 'high']:\n", " dir = os.path.join(root_dir, task_name, noise_level, 'rater_features.json')\n", " with tf.io.gfile.GFile(dir, 'rb') as fj:\n", " rater_features_dict = json.load(fj)\n", " print(rater_features_dict)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "noisy_label_datasets_and_rater_features.ipynb", "private_outputs": true, "provenance": [ { "file_id": "1zhPgvKIniqkpiY2SEnAdmiatJ__WyBz2", "timestamp": 1621924313986 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: nowcasting/Open_sourced_dataset_and_model_snapshot_for_precipitation_nowcasting.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "wFD0zFFyuHzH" }, "source": [ "# Open-sourced dataset and model snapshot for precipitation nowcasting, accompanying the paper *Skillful Precipitation Nowcasting using Deep Generative Models of Radar, Ravuri et al. 2021.*\n", "\n", "This colab contains:\n", "* Code to read the dataset using [Tensorflow 2](https://www.tensorflow.org/), with documentation of the available splits, variants and fields\n", "* Example plots and animations of the data using [matplotlib](https://matplotlib.org/) and [cartopy](https://scitools.org.uk/cartopy/docs/latest/)\n", "* A [TF-Hub](https://www.tensorflow.org/hub) snapshot of the model from the paper\n", "* Example code to load this model and use it to make predictions.\n", "\n", "It has been tested in a public Google colab kernel." ] }, { "cell_type": "markdown", "metadata": { "id": "d-H23Kuo7YM0" }, "source": [ "## How to run this notebook\n", "\n", "All sections with the exception of 'Making predictions on a row from the full-frame test set (1536x1280)' can be evaluated on a free public Colab kernel. The final section requires more RAM than is available with a free kernel. To evaluate these cells you can either run your own local kernel (with \u003e= 24GB of RAM), or upgrade to Colab Pro.\n", "\n", "To launch a local colab kernel, please follow these [instructions](https://research.google.com/colaboratory/local-runtimes.html)." ] }, { "cell_type": "markdown", "metadata": { "id": "7V0C4sb4MEhx" }, "source": [ "## License and attribution" ] }, { "cell_type": "markdown", "metadata": { "id": "N2SmJ8joMQ7G" }, "source": [ "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License.\n", "\n", "The datasets and the model snapshots associated with this colab are made available for use under the terms of the\n", "[Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).\n", "\n", "This colab and the associated model snapshots are Copyright 2021 DeepMind Technologies Limited.\n", "\n", "The associated datasets contain public sector information licensed by the [Met Office](https://www.metoffice.gov.uk/) under the\n", "[UK Open Government Licence v3.0](http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3).\n" ] }, { "cell_type": "markdown", "metadata": { "id": "EE0_Q3CXv_wH" }, "source": [ "## Library dependency installs and imports" ] }, { "cell_type": "markdown", "metadata": { "id": "2AVIRsf0gcMd" }, "source": [ "The following libraries are required. You can skip these `pip install` cells if your kernel already has them installed." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "vfV8LIhQgeFU" }, "outputs": [], "source": [ "!pip -q install tensorflow~=2.5.0 numpy~=1.19.5 matplotlib~=3.2.2 tensorflow_hub~=0.12.0 cartopy~=0.19.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qNvCVcQYitBK" }, "outputs": [], "source": [ "# Workaround for cartopy crashes due to the shapely installed by default in\n", "# google colab kernel (https://github.com/anitagraser/movingpandas/issues/81):\n", "!pip uninstall -y shapely\n", "!pip install shapely --no-binary shapely" ] }, { "cell_type": "markdown", "metadata": { "id": "rxRQBC3vjGNM" }, "source": [ "## Imports:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "z_mTZ79PIw3j" }, "outputs": [], "source": [ "import datetime\n", "import os\n", "\n", "import cartopy\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "from matplotlib import animation\n", "import numpy as np\n", "import shapely.geometry as sgeom\n", "import tensorflow as tf\n", "import tensorflow_hub\n", "\n", "from google.colab import auth" ] }, { "cell_type": "markdown", "metadata": { "id": "lcndQrFmjPuT" }, "source": [ "## Dataset location" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "htgPqZQMJ3hZ" }, "outputs": [], "source": [ "# This Google Cloud Storage (GCS) bucket is free to access and contains an\n", "# example subset of the full dataset (just the first shard of each\n", "# split/variant):\n", "EXAMPLE_DATASET_BUCKET_PATH = \"gs://dm-nowcasting-example-data/datasets/nowcasting_open_source_osgb/nimrod_osgb_1000m_yearly_splits/radar/20200718\"\n", "\n", "# This bucket is requester-pays and will require authentication. It contains the\n", "# full dataset. We recommend downloading a local copy first and updating\n", "# ROOT_DATASET_DIR below to the local path. This should save on transfer costs\n", "# and speed up training.\n", "FULL_DATASET_BUCKET_PATH = \"gs://dm-nowcasting/datasets/nowcasting_open_source_osgb/nimrod_osgb_1000m_yearly_splits/radar/20200718\"\n", "\n", "# Update this as required:\n", "DATASET_ROOT_DIR = EXAMPLE_DATASET_BUCKET_PATH" ] }, { "cell_type": "markdown", "metadata": { "id": "i3JWo990gxN8" }, "source": [ "Use this to authenticate as required for access to GCS buckets:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-kxuWoPmg_fs" }, "outputs": [], "source": [ "auth.authenticate_user()" ] }, { "cell_type": "markdown", "metadata": { "id": "t4C0NDbfT0t9" }, "source": [ "## Dataset reader code\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "kKn1BcQuJsKd" }, "outputs": [], "source": [ "_FEATURES = {name: tf.io.FixedLenFeature([], dtype)\n", " for name, dtype in [\n", " (\"radar\", tf.string), (\"sample_prob\", tf.float32),\n", " (\"osgb_extent_top\", tf.int64), (\"osgb_extent_left\", tf.int64),\n", " (\"osgb_extent_bottom\", tf.int64), (\"osgb_extent_right\", tf.int64),\n", " (\"end_time_timestamp\", tf.int64),\n", " ]}\n", "\n", "_SHAPE_BY_SPLIT_VARIANT = {\n", " (\"train\", \"random_crops_256\"): (24, 256, 256, 1),\n", " (\"valid\", \"subsampled_tiles_256_20min_stride\"): (24, 256, 256, 1),\n", " (\"test\", \"full_frame_20min_stride\"): (24, 1536, 1280, 1),\n", " (\"test\", \"subsampled_overlapping_padded_tiles_512_20min_stride\"): (24, 512, 512, 1),\n", "}\n", "\n", "_MM_PER_HOUR_INCREMENT = 1/32.\n", "_MAX_MM_PER_HOUR = 128.\n", "_INT16_MASK_VALUE = -1\n", "\n", "\n", "def parse_and_preprocess_row(row, split, variant):\n", " result = tf.io.parse_example(row, _FEATURES)\n", " shape = _SHAPE_BY_SPLIT_VARIANT[(split, variant)]\n", " radar_bytes = result.pop(\"radar\")\n", " radar_int16 = tf.reshape(tf.io.decode_raw(radar_bytes, tf.int16), shape)\n", " mask = tf.not_equal(radar_int16, _INT16_MASK_VALUE)\n", " radar = tf.cast(radar_int16, tf.float32) * _MM_PER_HOUR_INCREMENT\n", " radar = tf.clip_by_value(\n", " radar, _INT16_MASK_VALUE * _MM_PER_HOUR_INCREMENT, _MAX_MM_PER_HOUR)\n", " result[\"radar_frames\"] = radar\n", " result[\"radar_mask\"] = mask\n", " return result\n", "\n", "\n", "def reader(split=\"train\", variant=\"random_crops_256\", shuffle_files=False):\n", " \"\"\"Reader for open-source nowcasting datasets.\n", " \n", " Args:\n", " split: Which yearly split of the dataset to use:\n", " \"train\": Data from 2016 - 2018, excluding the first day of each month.\n", " \"valid\": Data from 2016 - 2018, only the first day of the month.\n", " \"test\": Data from 2019.\n", " variant: Which variant to use. The available variants depend on the split:\n", " \"random_crops_256\": Available for the training split. 24x256x256 pixel\n", " crops, sampled with a bias towards crops containing rainfall. Crops at\n", " all spatial and temporal offsets were able to be sampled, some crops may\n", " overlap.\n", " \"subsampled_tiles_256_20min_stride\": Available for the validation set.\n", " Non-spatially-overlapping 24x256x256 pixel crops, subsampled from a\n", " regular spatial grid with stride 256x256 pixels, and a temporal stride\n", " of 20mins (4 timesteps at 5 minute resolution). Sampling favours crops\n", " containing rainfall.\n", " \"subsampled_overlapping_padded_tiles_512_20min_stride\": Available for the\n", " test set. Overlapping 24x512x512 pixel crops, subsampled from a\n", " regular spatial grid with stride 64x64 pixels, and a temporal stride\n", " of 20mins (4 timesteps at 5 minute resolution). Subsampling favours\n", " crops containing rainfall.\n", " These crops include extra spatial context for a fairer evaluation of\n", " the PySTEPS baseline, which benefits from this extra context. Our other\n", " models only use the central 256x256 pixels of these crops.\n", " \"full_frame_20min_stride\": Available for the test set. Includes full\n", " frames at 24x1536x1280 pixels, every 20 minutes with no additional\n", " subsampling.\n", " shuffle_files: Whether to shuffle the shard files of the dataset\n", " non-deterministically before interleaving them. Recommended for the\n", " training set to improve mixing and read performance (since\n", " non-deterministic parallel interleave is then enabled).\n", "\n", " Returns:\n", " A tf.data.Dataset whose rows are dicts with the following keys:\n", "\n", " \"radar_frames\": Shape TxHxWx1, float32. Radar-based estimates of\n", " ground-level precipitation, in units of mm/hr. Pixels which are masked\n", " will take on a value of -1/32 and should be excluded from use as\n", " evaluation targets. The coordinate reference system used is OSGB36, with\n", " a spatial resolution of 1000 OSGB36 coordinate units (approximately equal\n", " to 1km). The temporal resolution is 5 minutes.\n", " \"radar_mask\": Shape TxHxWx1, bool. A binary mask which is False\n", " for pixels that are unobserved / unable to be inferred from radar\n", " measurements (e.g. due to being too far from a radar site). This mask\n", " is usually static over time, but occasionally a whole radar site will\n", " drop in or out resulting in large changes to the mask, and more localised\n", " changes can happen too. \n", " \"sample_prob\": Scalar float. The probability with which the row was\n", " sampled from the overall pool available for sampling, as described above\n", " under 'variants'. We use importance weights proportional to 1/sample_prob\n", " when computing metrics on the validation and test set, to reduce bias due\n", " to the subsampling.\n", " \"end_time_timestamp\": Scalar int64. A timestamp for the final frame in\n", " the example, in seconds since the UNIX epoch (1970-01-01 00:00:00 UTC).\n", " \"osgb_extent_left\", \"osgb_extent_right\", \"osgb_extent_top\",\n", " \"osgb_extent_bottom\":\n", " Scalar int64s. Spatial extent for the crop in the OSGB36 coordinate\n", " reference system.\n", " \"\"\"\n", " shards_glob = os.path.join(DATASET_ROOT_DIR, split, variant, \"*.tfrecord.gz\")\n", " shard_paths = tf.io.gfile.glob(shards_glob)\n", " shards_dataset = tf.data.Dataset.from_tensor_slices(shard_paths)\n", " if shuffle_files:\n", " shards_dataset = shards_dataset.shuffle(buffer_size=len(shard_paths))\n", " return (\n", " shards_dataset\n", " .interleave(lambda x: tf.data.TFRecordDataset(x, compression_type=\"GZIP\"),\n", " num_parallel_calls=tf.data.AUTOTUNE,\n", " deterministic=not shuffle_files)\n", " .map(lambda row: parse_and_preprocess_row(row, split, variant),\n", " num_parallel_calls=tf.data.AUTOTUNE)\n", " # Do your own subsequent repeat, shuffle, batch, prefetch etc as required.\n", " )" ] }, { "cell_type": "markdown", "metadata": { "id": "iiC7oGKRlNaj" }, "source": [ "## Dataset reader documentation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "amkOoDKqlEll", "outputId": "3141d2cd-fe88-452a-c9f8-c6b2eb449068" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function reader in module __main__:\n", "\n", "reader(split='train', variant='random_crops_256', shuffle_files=False)\n", " Reader for open-source nowcasting datasets.\n", " \n", " Args:\n", " split: Which yearly split of the dataset to use:\n", " \"train\": Data from 2016 - 2018, excluding the first day of each month.\n", " \"valid\": Data from 2016 - 2018, only the first day of the month.\n", " \"test\": Data from 2019.\n", " variant: Which variant to use. The available variants depend on the split:\n", " \"random_crops_256\": Available for the training split. 24x256x256 pixel\n", " crops, sampled with a bias towards crops containing rainfall. Crops at\n", " all spatial and temporal offsets were able to be sampled, some crops may\n", " overlap.\n", " \"subsampled_tiles_256_20min_stride\": Available for the validation set.\n", " Non-spatially-overlapping 24x256x256 pixel crops, subsampled from a\n", " regular spatial grid with stride 256x256 pixels, and a temporal stride\n", " of 20mins (4 timesteps at 5 minute resolution). Sampling favours crops\n", " containing rainfall.\n", " \"subsampled_overlapping_padded_tiles_512_20min_stride\": Available for the\n", " test set. Overlapping 24x512x512 pixel crops, subsampled from a\n", " regular spatial grid with stride 64x64 pixels, and a temporal stride\n", " of 20mins (4 timesteps at 5 minute resolution). Subsampling favours\n", " crops containing rainfall.\n", " These crops include extra spatial context for a fairer evaluation of\n", " the PySTEPS baseline, which benefits from this extra context. Our other\n", " models only use the central 256x256 pixels of these crops.\n", " \"full_frame_20min_stride\": Available for the test set. Includes full\n", " frames at 24x1536x1280 pixels, every 20 minutes with no additional\n", " subsampling.\n", " shuffle_files: Whether to shuffle the shard files of the dataset\n", " non-deterministically before interleaving them. Recommended for the\n", " training set to improve mixing and read performance (since\n", " non-deterministic parallel interleave is then enabled).\n", " \n", " Returns:\n", " A tf.data.Dataset whose rows are dicts with the following keys:\n", " \n", " \"radar_frames\": Shape TxHxWx1, float32. Radar-based estimates of\n", " ground-level precipitation, in units of mm/hr. Pixels which are masked\n", " will take on a value of -1/32 and should be excluded from use as\n", " evaluation targets. The coordinate reference system used is OSGB36, with\n", " a spatial resolution of 1000 OSGB36 coordinate units (approximately equal\n", " to 1km). The temporal resolution is 5 minutes.\n", " \"radar_mask\": Shape TxHxWx1, bool. A binary mask which is False\n", " for pixels that are unobserved / unable to be inferred from radar\n", " measurements (e.g. due to being too far from a radar site). This mask\n", " is usually static over time, but occasionally a whole radar site will\n", " drop in or out resulting in large changes to the mask, and more localised\n", " changes can happen too. \n", " \"sample_prob\": Scalar float. The probability with which the row was\n", " sampled from the overall pool available for sampling, as described above\n", " under 'variants'. We use importance weights proportional to 1/sample_prob\n", " when computing metrics on the validation and test set, to reduce bias due\n", " to the subsampling.\n", " \"end_time_timestamp\": Scalar int64. A timestamp for the final frame in\n", " the example, in seconds since the UNIX epoch (1970-01-01 00:00:00 UTC).\n", " \"osgb_extent_left\", \"osgb_extent_right\", \"osgb_extent_top\",\n", " \"osgb_extent_bottom\":\n", " Scalar int64s. Spatial extent for the crop in the OSGB36 coordinate\n", " reference system.\n", "\n" ] } ], "source": [ "help(reader)" ] }, { "cell_type": "markdown", "metadata": { "id": "QqZfqhvoTImW" }, "source": [ "## Reading a row from the training set and inspecting types/shapes/values" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "r3YPkBVWX6_q" }, "outputs": [], "source": [ "row = next(iter(reader(split=\"train\", variant=\"random_crops_256\")))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Z__EMLrRX_Oc" }, "outputs": [], "source": [ "{k: (v.dtype, v.shape) for k, v in row.items()}" ] }, { "cell_type": "markdown", "metadata": { "id": "byuVVcSnXz4q" }, "source": [ "Values for scalar features:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "2i8X9KYXXtJi", "outputId": "5b8a8980-f891-467d-994e-ccb28d9f1a16" }, "outputs": [ { "data": { "text/plain": [ "{'end_time_timestamp': 1514725200,\n", " 'osgb_extent_bottom': 555000,\n", " 'osgb_extent_left': -9000,\n", " 'osgb_extent_right': 247000,\n", " 'osgb_extent_top': 811000,\n", " 'sample_prob': 9.889281e-06}" ] }, "execution_count": 10, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "{k: v.numpy() for k, v in row.items() if v.shape.ndims == 0}" ] }, { "cell_type": "markdown", "metadata": { "id": "10_lz7FYZ6sl" }, "source": [ "Decoding the end_time_timestamp:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "WtAV24gyZ5jL", "outputId": "cf8628ed-b6eb-4754-cce8-f1ff8bad14bf" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "type": "string" }, "text/plain": [ "'2017-12-31T13:00:00'" ] }, "execution_count": 11, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "datetime.datetime.utcfromtimestamp(row[\"end_time_timestamp\"]).isoformat()" ] }, { "cell_type": "markdown", "metadata": { "id": "e4HPIMX1VV5-" }, "source": [ "## Visualization helpers" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ieLdf614RxTu" }, "outputs": [], "source": [ "matplotlib.rc('animation', html='jshtml')\n", "\n", "\n", "def plot_animation(field, figsize=None,\n", " vmin=0, vmax=10, cmap=\"jet\", **imshow_args):\n", " fig = plt.figure(figsize=figsize)\n", " ax = plt.axes()\n", " ax.set_axis_off()\n", " plt.close() # Prevents extra axes being plotted below animation\n", " img = ax.imshow(field[0, ..., 0], vmin=vmin, vmax=vmax, cmap=cmap, **imshow_args)\n", "\n", " def animate(i):\n", " img.set_data(field[i, ..., 0])\n", " return (img,)\n", "\n", " return animation.FuncAnimation(\n", " fig, animate, frames=field.shape[0], interval=24, blit=False)\n", "\n", "\n", "class ExtendedOSGB(cartopy.crs.OSGB):\n", " \"\"\"MET office radar data uses OSGB36 with an extended bounding box.\"\"\"\n", "\n", " def __init__(self):\n", " super().__init__(approx=False)\n", "\n", " @property\n", " def x_limits(self):\n", " return (-405000, 1320000)\n", "\n", " @property\n", " def y_limits(self):\n", " return (-625000, 1550000)\n", "\n", " @property\n", " def boundary(self):\n", " x0, x1 = self.x_limits\n", " y0, y1 = self.y_limits\n", " return sgeom.LinearRing([(x0, y0), (x0, y1), (x1, y1), (x1, y0), (x0, y0)])\n", "\n", "\n", "def plot_rows_on_map(rows, field_name=\"radar_frames\", timestep=0, num_rows=None,\n", " cbar_label=None, **imshow_kwargs):\n", " fig = plt.figure(figsize=(10, 10))\n", " axes = fig.add_subplot(1, 1, 1, projection=ExtendedOSGB())\n", " if num_rows is None:\n", " num_rows = next(iter(rows.values())).shape[0]\n", " for b in range(num_rows):\n", " extent = (rows[\"osgb_extent_left\"][b].numpy(),\n", " rows[\"osgb_extent_right\"][b].numpy(),\n", " rows[\"osgb_extent_bottom\"][b].numpy(),\n", " rows[\"osgb_extent_top\"][b].numpy())\n", " im = axes.imshow(rows[field_name][b, timestep, ..., 0].numpy(),\n", " extent=extent, **imshow_kwargs)\n", "\n", " axes.set_xlim(*axes.projection.x_limits)\n", " axes.set_ylim(*axes.projection.y_limits)\n", " axes.set_facecolor(\"black\")\n", " axes.gridlines(alpha=0.5)\n", " axes.coastlines(resolution=\"50m\", color=\"white\")\n", " if cbar_label:\n", " cbar = fig.colorbar(im)\n", " cbar.set_label(cbar_label)\n", " return fig\n", "\n", "\n", "def plot_animation_on_map(row):\n", " fig = plt.figure(figsize=(10, 10))\n", " axes = fig.add_subplot(1, 1, 1, projection=ExtendedOSGB())\n", " plt.close() # Prevents extra axes being plotted below animation\n", "\n", " axes.gridlines(alpha=0.5)\n", " axes.coastlines(resolution=\"50m\", color=\"white\")\n", "\n", " extent = (row[\"osgb_extent_left\"].numpy(),\n", " row[\"osgb_extent_right\"].numpy(),\n", " row[\"osgb_extent_bottom\"].numpy(),\n", " row[\"osgb_extent_top\"].numpy())\n", "\n", " img = axes.imshow(\n", " row[\"radar_frames\"][0, ..., 0].numpy(),\n", " extent=extent, vmin=0, vmax=15., cmap=\"jet\")\n", "\n", " cbar = fig.colorbar(img)\n", " cbar.set_label(\"Precipitation, mm/hr\")\n", "\n", " def animate(i):\n", " return img.set_data(row[\"radar_frames\"][i, ..., 0].numpy()),\n", "\n", " return animation.FuncAnimation(\n", " fig, animate, frames=row[\"radar_frames\"].shape[0],\n", " interval=24, blit=False)\n", "\n", "\n", "def plot_mask_on_map(row):\n", " fig = plt.figure(figsize=(10, 10))\n", " axes = fig.add_subplot(1, 1, 1, projection=ExtendedOSGB())\n", " axes.gridlines(alpha=0.5)\n", " axes.coastlines(resolution=\"50m\", color=\"black\")\n", "\n", " extent = (row[\"osgb_extent_left\"].numpy(),\n", " row[\"osgb_extent_right\"].numpy(),\n", " row[\"osgb_extent_bottom\"].numpy(),\n", " row[\"osgb_extent_top\"].numpy())\n", "\n", " img = axes.imshow(\n", " row[\"radar_mask\"][0, ..., 0].numpy(),\n", " extent=extent, vmin=0, vmax=1, cmap=\"viridis\")" ] }, { "cell_type": "markdown", "metadata": { "id": "ZrfahN2wZS_G" }, "source": [ "## Visualizing rows" ] }, { "cell_type": "markdown", "metadata": { "id": "pn6C9qi4ZcYl" }, "source": [ "Animation of a single row from the random_crops_256 training set (sequence of 24 frames at 256x256)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "J4_aB6vbXB0A" }, "outputs": [], "source": [ "plot_animation(row[\"radar_frames\"].numpy())" ] }, { "cell_type": "markdown", "metadata": { "id": "fsDrJOCwZtZv" }, "source": [ "And its mask. This may not always be interesting, sometimes it will be all ones. I only plot the first frame as this is usually static over time." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "LtqAPI2utIDJ" }, "outputs": [], "source": [ "plt.imshow(row[\"radar_mask\"][0, ..., 0].numpy(), vmin=0, vmax=1);" ] }, { "cell_type": "markdown", "metadata": { "id": "jKalHlONmmTF" }, "source": [ "Plotting an animation of a row from the full-frame test set" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "gBZWTLFEbbal" }, "outputs": [], "source": [ "dataset = reader(split=\"test\", variant=\"full_frame_20min_stride\")\n", "full_frame_test_set_row = next(iter(dataset))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qUTqwhC0gmIm" }, "outputs": [], "source": [ "plot_animation_on_map(full_frame_test_set_row)" ] }, { "cell_type": "markdown", "metadata": { "id": "6Go5BVATqVwd" }, "source": [ "And just its mask:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "T7cgRtRilKfv" }, "outputs": [], "source": [ "plot_mask_on_map(full_frame_test_set_row)" ] }, { "cell_type": "markdown", "metadata": { "id": "KtXg3lJxa1_q" }, "source": [ "Plotting a few different crops from the training set on the same map, using their OSGB extents. Note these will have been sampled at different timestamps so won't be consistent with each other. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "x7HXOz7PfdtH" }, "outputs": [], "source": [ "BATCH_SIZE = 60\n", "dataset = reader(split=\"train\", variant=\"random_crops_256\")\n", "rows = next(iter(dataset.batch(BATCH_SIZE)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "76plhdrhaz60" }, "outputs": [], "source": [ "plot_rows_on_map(rows, field_name=\"radar_frames\", num_rows=10, vmin=0, vmax=15.,\n", " cmap=\"jet\", cbar_label=\"Precipitation, mm/hr\");" ] }, { "cell_type": "markdown", "metadata": { "id": "YwliM5nOaivq" }, "source": [ "And plotting their masks, which will be more consistent with each other since they change less frequently." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "rDUNaca0yXrC" }, "outputs": [], "source": [ "plot_rows_on_map(rows, field_name=\"radar_mask\", vmin=0, vmax=1, alpha=0.5, cmap=\"spring\");" ] }, { "cell_type": "markdown", "metadata": { "id": "-KxxSOvwsUaP" }, "source": [ "## Making predictions using model loaded from TF-Hub snapshots" ] }, { "cell_type": "markdown", "metadata": { "id": "IvWq8_4uvRBb" }, "source": [ "Location of snapshots:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "GZfhJ2orvWCV" }, "outputs": [], "source": [ "TFHUB_BASE_PATH = \"gs://dm-nowcasting-example-data/tfhub_snapshots\"" ] }, { "cell_type": "markdown", "metadata": { "id": "aFLv08o5vX7y" }, "source": [ "### Helper code for loading snapshots and making predictions with them" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "zOFI9xQztNIW" }, "outputs": [], "source": [ "def load_module(input_height, input_width):\n", " \"\"\"Load a TF-Hub snapshot of the 'Generative Method' model.\"\"\"\n", " hub_module = tensorflow_hub.load(\n", " os.path.join(TFHUB_BASE_PATH, f\"{input_height}x{input_width}\"))\n", " # Note this has loaded a legacy TF1 model for running under TF2 eager mode.\n", " # This means we need to access the module via the \"signatures\" attribute. See\n", " # https://github.com/tensorflow/hub/blob/master/docs/migration_tf2.md#using-lower-level-apis\n", " # for more information.\n", " return hub_module.signatures['default']\n", "\n", "\n", "def predict(module, input_frames, num_samples=1,\n", " include_input_frames_in_result=False):\n", " \"\"\"Make predictions from a TF-Hub snapshot of the 'Generative Method' model.\n", "\n", " Args:\n", " module: One of the raw TF-Hub modules returned by load_module above.\n", " input_frames: Shape (T_in,H,W,C), where T_in = 4. Input frames to condition\n", " the predictions on.\n", " num_samples: The number of different samples to draw.\n", " include_input_frames_in_result: If True, will return a total of 22 frames\n", " along the time axis, the 4 input frames followed by 18 predicted frames.\n", " Otherwise will only return the 18 predicted frames.\n", "\n", " Returns:\n", " A tensor of shape (num_samples,T_out,H,W,C), where T_out is either 18 or 22\n", " as described above.\n", " \"\"\"\n", " input_frames = tf.math.maximum(input_frames, 0.)\n", " # Add a batch dimension and tile along it to create a copy of the input for\n", " # each sample:\n", " input_frames = tf.expand_dims(input_frames, 0)\n", " input_frames = tf.tile(input_frames, multiples=[num_samples, 1, 1, 1, 1])\n", "\n", " # Sample the latent vector z for each sample:\n", " _, input_signature = module.structured_input_signature\n", " z_size = input_signature['z'].shape[1]\n", " z_samples = tf.random.normal(shape=(num_samples, z_size))\n", "\n", " inputs = {\n", " \"z\": z_samples,\n", " \"labels$onehot\" : tf.ones(shape=(num_samples, 1)),\n", " \"labels$cond_frames\" : input_frames\n", " }\n", " samples = module(**inputs)['default']\n", " if not include_input_frames_in_result:\n", " # The module returns the input frames alongside its sampled predictions, we\n", " # slice out just the predictions:\n", " samples = samples[:, NUM_INPUT_FRAMES:, ...]\n", "\n", " # Take positive values of rainfall only.\n", " samples = tf.math.maximum(samples, 0.)\n", " return samples\n", "\n", "\n", "# Fixed values supported by the snapshotted model.\n", "NUM_INPUT_FRAMES = 4\n", "NUM_TARGET_FRAMES = 18\n", "\n", "\n", "def extract_input_and_target_frames(radar_frames):\n", " \"\"\"Extract input and target frames from a dataset row's radar_frames.\"\"\"\n", " # We align our targets to the end of the window, and inputs precede targets.\n", " input_frames = radar_frames[-NUM_TARGET_FRAMES-NUM_INPUT_FRAMES : -NUM_TARGET_FRAMES]\n", " target_frames = radar_frames[-NUM_TARGET_FRAMES : ]\n", " return input_frames, target_frames\n", "\n", "\n", "def horizontally_concatenate_batch(samples):\n", " n, t, h, w, c = samples.shape\n", " # N,T,H,W,C =\u003e T,H,N,W,C =\u003e T,H,N*W,C\n", " return tf.reshape(tf.transpose(samples, [1, 2, 0, 3, 4]), [t, h, n*w, c])" ] }, { "cell_type": "markdown", "metadata": { "id": "YuTsqBqM1PeO" }, "source": [ "### Making predictions for a row from the validation set (256x256 crops)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "kX6wgACVtcHz" }, "outputs": [], "source": [ "module = load_module(256, 256)\n", "row = next(iter(reader(split=\"valid\", variant=\"subsampled_tiles_256_20min_stride\")))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "LKBlYh0qx7nL" }, "outputs": [], "source": [ "num_samples = 5\n", "input_frames, target_frames = extract_input_and_target_frames(row[\"radar_frames\"])\n", "samples = predict(module, input_frames,\n", " num_samples=num_samples, include_input_frames_in_result=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "NDOh7j2g65wP" }, "source": [ "We will plot an animation of 5 different samples, including the input frames first (so all 5 will start the same). You can see they end up in different places." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "_Ymu_GFBzGJd" }, "outputs": [], "source": [ "plot_animation(horizontally_concatenate_batch(samples), figsize=(4*num_samples, 4))" ] }, { "cell_type": "markdown", "metadata": { "id": "57uh8X2XEqqj" }, "source": [ "### Making predictions on a row from the full-frame test set (1536x1280)\n", "\n", "Warning: this will require more RAM than is available in a free public colab kernel, even if you reduce num_samples to 1." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "RdnIsm725Nvk" }, "outputs": [], "source": [ "# This is the same model with same parameters as above; we have had to export\n", "# separate copies of the graph for each input size as the input size is\n", "# unfortunately hardcoded into the graph as static shapes.\n", "module = load_module(1536, 1280)\n", "\n", "full_frame_test_set_row = next(iter(\n", " reader(split=\"test\", variant=\"full_frame_20min_stride\")))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "sLQdfet59caW" }, "outputs": [], "source": [ "num_samples = 2\n", "input_frames, target_frames = extract_input_and_target_frames(\n", " full_frame_test_set_row[\"radar_frames\"])\n", "samples = predict(module, input_frames,\n", " num_samples=num_samples, include_input_frames_in_result=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "K_2UwKa_E3Xo" }, "source": [ "Plotting two different predicted samples following on from the input frames. The first sample:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MytvlcaA8P4P" }, "outputs": [], "source": [ "row_with_predictions = full_frame_test_set_row.copy()\n", "row_with_predictions[\"radar_frames\"] = samples[0]\n", "plot_animation_on_map(row_with_predictions)" ] }, { "cell_type": "markdown", "metadata": { "id": "AznUbE6-E53h" }, "source": [ "And the second sample:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Er86IKdm-W5l" }, "outputs": [], "source": [ "row_with_predictions[\"radar_frames\"] = samples[1]\n", "plot_animation_on_map(row_with_predictions)" ] }, { "cell_type": "markdown", "metadata": { "id": "mnNy6Uurp1_k" }, "source": [ "The ground truth, for comparison, was plotted earlier as an example row from the test set." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "b9v4xCWqqdzV" }, "outputs": [], "source": [ "" ] } ], "metadata": { "colab": { "collapsed_sections": [ "EE0_Q3CXv_wH", "t4C0NDbfT0t9", "e4HPIMX1VV5-" ], "name": "Open-sourced dataset and model snapshot for precipitation nowcasting", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: nowcasting/README.md ================================================ # Skillful Precipitation Nowcasting Using Deep Generative Models of Radar This repository is a supplement to "Skillful Precipitation Nowcasting using Deep Generative Models of Radar" and provides necessary code for loading data from a large scale nowcasting dataset and obtaining predictions with the pretrained model. Please see the Colab notebook for further details: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/nowcasting/Open_sourced_dataset_and_model_snapshot_for_precipitation_nowcasting.ipynb) ## License The Colab notebook is licensed under the Apache License, Version 2.0. The associated model snapshots are made available for use under the terms of the [Creative Commons Attribution 4.0 International License][cc-by]. The provided post-processed nowcasting dataset is licensed under a [Creative Commons Attribution 4.0 International License][cc-by] and it contains public sector information licensed by the Met Office under the [Open Government Licence v3.0][open-govt-license]. ## Pseudocode The pseudocode is relased in the same cloud storage bucket as the datasets: `gs://dm-nowcasting-example-data/pseudocode.zip`. You can access it with e.g. a [gsutil](https://cloud.google.com/storage/docs/gsutil). ## Citation If you use this work, consider citing our paper: ```latex @article{ravuris2021skillful, author={Suman Ravuri and Karel Lenc and Matthew Willson and Dmitry Kangin and Remi Lam and Piotr Mirowski and Megan Fitzsimons and Maria Athanassiadou and Sheleem Kashem and Sam Madge and Rachel Prudden Amol Mandhane and Aidan Clark and Andrew Brock and Karen Simonyan and Raia Hadsell and Niall Robinson Ellen Clancy and Alberto Arribas† and Shakir Mohamed}, title={Skillful Precipitation Nowcasting using Deep Generative Models of Radar}, journal={Nature}, volume={597}, pages={672--677}, year={2021} } ``` [cc-by]: http://creativecommons.org/licenses/by/4.0/ [open-govt-license]: http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/ ================================================ FILE: object_attention_for_reasoning/README.md ================================================ Implementation of the ALOE model ["Attention over learned object embeddings enables complex visual reasoning"](https://arxiv.org/abs/2012.08508) [1]. This package includes source code for the ALOE transformer model, pre-trained model parameters for the CLEVRER task, and MONet [2] latent variables for all videos in the training and validation sets. It does not include the model training code. See Section 2 of [1] for details. [1] David Ding, Felix Hill, Adam Santoro, Malcolm Reynolds, Matt Botvinick. *Attention over learned object embeddings enables complex visual reasoning*. arXiv preprint arXiv:2012.08508, 2020. [2] Chris P. Burgess, Loic Matthey, Nick Watters, Rishabh Kabra, Irina Higgins, Matt Botvinick, and Alexander Lerchner *MONet: Unsupervised scene decomposition and representation*. arXiv preprint arXiv:1901.11390, 2019. # Instructions Note: This code depends on Tensorflow 1 and Sonnet 1. Tensorflow 1 is only available on PYPI for Python 3.7 and earlier. To run this code, execute the following commands from the `deepmind_research/` directory: ```shell # Download checkpoints and MONet latents wget https://storage.googleapis.com/object-attention-for-reasoning/checkpoints_and_latents.zip unzip checkpoints_and_latents.zip python3.7 -m venv object_based_attention_venv source object_based_attention_venv/bin/activate pip install --upgrade setuptools wheel pip install -r requirements.txt python -m object_attention_for_reasoning.run_model ``` If the code runs correctly, you should see the model's predicted answer to two CLEVRER questions (a descriptive one and a multiple choice one), and both answers should be correct. If you find the provided code useful, please cite this paper: ``` @article{aloe2020, title={Attention over learned object embeddings enables complex visual reasoning}, author={David Ding and Felix Hill and Adam Santoro and Malcolm Reynolds and Matt Botvinick}, journal={arXiv preprint arXiv:2012.08508}, year={2020} } ``` ================================================ FILE: object_attention_for_reasoning/model.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Model code. Provided settings are identical to what was used in the paper.""" import sonnet as snt import tensorflow.compat.v1 as tf from object_attention_for_reasoning import transformer QUESTION_VOCAB_SIZE = 82 ANSWER_VOCAB_SIZE = 22 MAX_QUESTION_LENGTH = 20 MAX_CHOICE_LENGTH = 12 NUM_CHOICES = 4 EMBED_DIM = 16 PRETRAINED_MODEL_CONFIG = dict( use_relative_positions=True, shuffle_objects=True, transformer_layers=28, head_size=128, num_heads=10, embed_dim=EMBED_DIM, ) def append_ids(tensor, id_vector, axis): id_vector = tf.constant(id_vector, tf.float32) for a in range(len(tensor.shape)): if a != axis: id_vector = tf.expand_dims(id_vector, axis=a) tiling_vector = [s if i != axis else 1 for i, s in enumerate(tensor.shape)] id_tensor = tf.tile(id_vector, tiling_vector) return tf.concat([tensor, id_tensor], axis=axis) class ClevrerTransformerModel(object): """Model from Ding et al. 2020 (https://arxiv.org/abs/2012.08508).""" def __init__(self, use_relative_positions, shuffle_objects, transformer_layers, num_heads, head_size, embed_dim): """Instantiate Sonnet modules.""" self._embed_dim = embed_dim self._embed = snt.Embed(QUESTION_VOCAB_SIZE, embed_dim - 2) self._shuffle_objects = shuffle_objects self._memory_transformer = transformer.TransformerTower( value_size=embed_dim + 2, num_heads=num_heads, num_layers=transformer_layers, use_relative_positions=use_relative_positions, causal=False) self._final_layer_mc = snt.Sequential( [snt.Linear(head_size), tf.nn.relu, snt.Linear(1)]) self._final_layer_descriptive = snt.Sequential( [snt.Linear(head_size), tf.nn.relu, snt.Linear(ANSWER_VOCAB_SIZE)]) self._dummy = tf.get_variable("dummy", [embed_dim + 2], tf.float32, initializer=tf.zeros_initializer) self._infill_linear = snt.Linear(embed_dim + 2) self._mask_embedding = tf.get_variable( "mask", [embed_dim + 2], tf.float32, initializer=tf.zeros_initializer) def _apply_transformers(self, lang_embedding, vision_embedding): """Applies transformer to language and vision input. Args: lang_embedding: tensor, vision_embedding: tensor, "validation", or "test". Returns: tuple, output at dummy token, all output embeddings, infill loss """ def _unroll(tensor): """Unroll the time dimension into the object dimension.""" return tf.reshape( tensor, [tensor.shape[0], -1, tensor.shape[3]]) words = append_ids(lang_embedding, [1, 0], axis=2) dummy_word = tf.tile(self._dummy[None, None, :], [tf.shape(words)[0], 1, 1]) vision_embedding = append_ids(vision_embedding, [0, 1], axis=3) vision_over_time = _unroll(vision_embedding) transformer_input = tf.concat([dummy_word, words, vision_over_time], axis=1) output, _ = self._memory_transformer(transformer_input, is_training=False) return output[:, 0, :] def apply_model_descriptive(self, inputs): """Applies model to CLEVRER descriptive questions. Args: inputs: dict of form: { "question": tf.int32 tensor of shape [batch, MAX_QUESTION_LENGTH], "monet_latents": tf.float32 tensor of shape [batch, frames, 8, 16], } Returns: Tensor of shape [batch, ANSWER_VOCAB_SIZE], representing logits for each possible answer word. """ question = inputs["question"] # Shape: [batch, question_len, embed_dim-2] question_embedding = self._embed(question) # Shape: [batch, question_len, embed_dim] question_embedding = append_ids(question_embedding, [0, 1], 2) choices_embedding = self._embed( tf.zeros([question.shape[0], MAX_CHOICE_LENGTH], tf.int64)) choices_embedding = append_ids(choices_embedding, [0, 1], 2) # Shape: [batch, choices, question_len + choice_len, embed_dim] lang_embedding = tf.concat([question_embedding, choices_embedding], axis=1) # Shape: [batch, frames, num_objects, embed_dim] vision_embedding = inputs["monet_latents"] if self._shuffle_objects: vision_embedding = tf.transpose(vision_embedding, [2, 1, 0, 3]) vision_embedding = tf.random.shuffle(vision_embedding) vision_embedding = tf.transpose(vision_embedding, [2, 1, 0, 3]) output = self._apply_transformers(lang_embedding, vision_embedding) output = self._final_layer_descriptive(output) return output def apply_model_mc(self, inputs): """Applies model to CLEVRER multiple-choice questions. Args: inputs: dict of form: { "question": tf.int32 tensor of shape [batch, MAX_QUESTION_LENGTH], "choices": tf.int32 tensor of shape [batch, 4, MAX_CHOICE_LENGTH], "monet_latents": tf.float32 tensor of shape [batch, frames, 8, 16], } Returns: Tensor of shape [batch, 4], representing logits for each choice """ question = inputs["question"] choices = inputs["choices"] # Shape: [batch, question_len, embed_dim-2] question_embedding = self._embed(question) # Shape: [batch, question_len, embed_dim] question_embedding = append_ids(question_embedding, [1, 0], 2) # Shape: [batch, choices, choice_len, embed_dim-2] choices_embedding = snt.BatchApply(self._embed)(choices) # Shape: [batch, choices, choice_len, embed_dim] choices_embedding = append_ids(choices_embedding, [0, 1], 3) # Shape: [batch, choices, question_len + choice_len, embed_dim] lang_embedding = tf.concat([ tf.tile(question_embedding[:, None], [1, choices_embedding.shape[1], 1, 1]), choices_embedding], axis=2) # Shape: [batch, frames, num_objects, embed_dim] vision_embedding = inputs["monet_latents"] if self._shuffle_objects: vision_embedding = tf.transpose(vision_embedding, [2, 1, 0, 3]) vision_embedding = tf.random.shuffle(vision_embedding) vision_embedding = tf.transpose(vision_embedding, [2, 1, 0, 3]) output_per_choice = [] for c in range(NUM_CHOICES): output = self._apply_transformers( lang_embedding[:, c, :, :], vision_embedding) output_per_choice.append(output) output = tf.stack(output_per_choice, axis=1) output = tf.squeeze(snt.BatchApply(self._final_layer_mc)(output), axis=2) return output ================================================ FILE: object_attention_for_reasoning/requirements.txt ================================================ absl-py==0.11.0 dm-sonnet==1.36 numpy==1.20.1 tensorflow==1.15.0 ================================================ FILE: object_attention_for_reasoning/run_model.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Example code for running model on CLEVRER.""" import json from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf from object_attention_for_reasoning import model as modellib BATCH_SIZE = 1 NUM_FRAMES = 25 NUM_OBJECTS = 8 _BASE_DIR = flags.DEFINE_string( "base_dir", "./clevrer_monet_latents", "Directory containing checkpoints and MONet latents.") _SCENE_IDX = flags.DEFINE_string( "scene_idx", 1000, "Scene index of CLEVRER video.") def load_monet_latents(base_dir, scene_index): filename = f"{base_dir}/train/{scene_index}.npz" with open(filename, "rb") as f: return np.load(f) def _split_string(s): """Splits string to words and standardize alphabet.""" return s.lower().replace("?", "").split() def _pad(array, length): """Pad an array to desired length.""" return np.pad(array, [(0, length - array.shape[0])], mode="constant") def encode_sentence(token_map, sentence, pad_length): """Encode CLEVRER question/choice sentences as sequence of token ids.""" ret = np.array( [token_map["question_vocab"][w] for w in _split_string(sentence)], np.int32) return _pad(ret, pad_length) def encode_choices(token_map, choices): """Encode CLEVRER choices.""" arrays = [encode_sentence(token_map, choice["choice"], modellib.MAX_CHOICE_LENGTH) for choice in choices] return _pad(np.stack(arrays, axis=0), modellib.NUM_CHOICES) def main(unused_argv): base_dir = _BASE_DIR.value with open(f"{base_dir}/vocab.json", "rb") as f: token_map = json.load(f) reverse_answer_lookup = {v: k for k, v in token_map["answer_vocab"].items()} with open(f"{base_dir}/train.json", "rb") as f: questions_data = json.load(f) tf.reset_default_graph() model = modellib.ClevrerTransformerModel(**modellib.PRETRAINED_MODEL_CONFIG) inputs_descriptive = { "monet_latents": tf.placeholder( tf.float32, [BATCH_SIZE, NUM_FRAMES, NUM_OBJECTS, modellib.EMBED_DIM]), "question": tf.placeholder( tf.int32, [BATCH_SIZE, modellib.MAX_QUESTION_LENGTH]), } inputs_mc = { "monet_latents": tf.placeholder( tf.float32, [BATCH_SIZE, NUM_FRAMES, NUM_OBJECTS, modellib.EMBED_DIM]), "question": tf.placeholder(tf.int32, [BATCH_SIZE, modellib.MAX_QUESTION_LENGTH]), "choices": tf.placeholder( tf.int32, [BATCH_SIZE, modellib.NUM_CHOICES, modellib.MAX_CHOICE_LENGTH]), } output_descriptive = model.apply_model_descriptive(inputs_descriptive) output_mc = model.apply_model_mc(inputs_mc) # Restore from checkpoint saver = tf.train.Saver() checkpoint_dir = f"{base_dir}/checkpoints/" sess = tf.train.SingularMonitoredSession(checkpoint_dir=checkpoint_dir) ckpt = tf.train.get_checkpoint_state(checkpoint_dir) saver.restore(sess, ckpt.model_checkpoint_path) def eval_descriptive(monet_latents, question_json): # CLEVRER provides videos with 128 frames. In our model, we subsample 25 # frames (as was done in Yi et al (2020)). # For training, we randomize the choice of 25 frames, and for evaluation, we # sample the 25 frames as evenly as possible. # We do that by doing strided sampling of the frames. stride, rem = divmod(monet_latents.shape[0], NUM_FRAMES) monet_latents = monet_latents[None, :-rem:stride] assert monet_latents.shape[1] == NUM_FRAMES question = encode_sentence(token_map, question_json["question"], modellib.MAX_QUESTION_LENGTH) batched_question = np.expand_dims(question, axis=0) logits = sess.run(output_descriptive, feed_dict={ inputs_descriptive["monet_latents"]: monet_latents, inputs_descriptive["question"]: batched_question, }) descriptive_answer = np.argmax(logits) return reverse_answer_lookup[descriptive_answer] def eval_mc(monet_latents, question_json): stride, rem = divmod(monet_latents.shape[0], NUM_FRAMES) monet_latents = monet_latents[None, :-rem:stride] assert monet_latents.shape[1] == NUM_FRAMES question = encode_sentence( token_map, question_json["question"], modellib.MAX_QUESTION_LENGTH) choices = encode_choices( token_map, question_json["choices"]) mc_answer = sess.run(output_mc, feed_dict={ inputs_mc["monet_latents"]: monet_latents, inputs_mc["question"]: np.expand_dims(question, axis=0), inputs_mc["choices"]: np.expand_dims(choices, axis=0), }) return mc_answer >= 0 sample_scene_idx = _SCENE_IDX.value question_json = questions_data[sample_scene_idx]["questions"][0] print("Descriptive Question: ", question_json["question"]) print("Model Answer: ", eval_descriptive(load_monet_latents(base_dir, sample_scene_idx), question_json)) print("True Answer: ", question_json["answer"]) question_json = questions_data[sample_scene_idx]["questions"][-1] print("Multiple-Choice Question: ", question_json["question"]) for i, choice_json in enumerate(question_json["choices"]): print(f"{i+1}) {choice_json['choice']}") print("Model Answer: ", eval_mc(load_monet_latents(base_dir, sample_scene_idx), question_json)) print("True Answer: ", [choice_json["answer"] for choice_json in question_json["choices"]]) if __name__ == "__main__": app.run(main) ================================================ FILE: object_attention_for_reasoning/transformer.py ================================================ # Fork of Sonnet transformer model with small modifications # # Copyright 2017 The Sonnet Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Implementation of Transformer networks. Size glossary: * Batch size (B). * Sequence length (N). * Memory size (M). The size of the optional memory, passed in via `state`. * Number of heads (H): the number of attention heads. * Value size (V): the size of each value embedding per head. * Key size (K): the size of each key embedding per head. Equally, the size of each query embedding per head. Typically K <= V. * Embedding size (HV). The size of the activation or embedding relating to each input between layers. Equal to value_size * num_heads. * All attention size (F). The size of all attention activations over every head. * QKV size (F / H): The size of the query, key and value per head. Equal to 2K + V or equivalently F / H. """ from __future__ import absolute_import from __future__ import division from __future__ import print_function import collections import numpy as np from sonnet.python.modules import base from sonnet.python.modules import basic from sonnet.python.modules import layer_norm as snt_ln from sonnet.python.modules import util from sonnet.python.modules.nets import mlp as snt_mlp import tensorflow.compat.v1 as tf AttentionState = collections.namedtuple('AttentionState', ('queries', 'keys', 'values', 'logits', 'weights', 'embeddings', 'read_words')) CompressedMemoryState = collections.namedtuple( 'CompressedMemoryState', ('episodic_memory', 'compressed_memory', 'index')) def rel_shift(position_logits): """Shifting of logits for relative attention. Args: position_logits: A tensor of shape [B, H, N, N + M]. Returns: The shifted logits. Example, for input (H=1, B=1): [5, 4, 3, 2, 1] [5, 4, 3, 2, 1] [5, 4, 3, 2, 1] [5, 4, 3, 2, 1] [5, 4, 3, 2, 1] the function outputs: [1, 0, 5, 4, 3] [2, 1, 0, 5, 4] [3, 2, 1, 0, 5] [4, 3, 2, 1, 0] [5, 4, 3, 2, 1] Raises: ValueError if position_logits is not 4D. Note: this is not an exact shift as the upper triangle is non-zero. This works as intended in the causally-masked case. If this is used with un-masked attention, we'd want these to also be zero. """ if position_logits.get_shape().ndims != 4: raise ValueError('Expected 4D position logits.') input_shape = position_logits.shape batch_size = input_shape[0] num_heads = input_shape[1] t1 = input_shape[2] t2 = input_shape[3] # We prepend zeros on the final timescale dimension. to_pad = tf.zeros([batch_size, num_heads, t1, 1]) position_logits = tf.concat([to_pad, position_logits], -1) # Reshape trick to shift input. position_logits = tf.reshape(position_logits, [batch_size, num_heads, t2 + 1, t1]) # Remove extra time dimension and re-shape. position_logits = position_logits[:, :, 1:] position_logits = tf.reshape(position_logits, input_shape) return position_logits def _layer_norm(inputs): if inputs.get_shape().ndims > 2: return basic.BatchApply(snt_ln.LayerNorm())(inputs) else: return snt_ln.LayerNorm()(inputs) def _concat_and_slice(prev_memory, new_memory): original_memory_size = prev_memory.get_shape().as_list()[1] concat_memory = tf.concat([prev_memory, new_memory], 1) memory = concat_memory[:, -original_memory_size:] return memory, concat_memory def simple_attention(queries, keys, values): logits = tf.matmul(queries, keys, transpose_b=True) weights = tf.nn.softmax(logits) return tf.matmul(weights, values) class ResidualDropoutWrapper(base.AbstractModule): """Wrapper class that applies residual connections, dropout and layer norm. By default applies a relu to the module output before the other operations. """ def __init__(self, layer, dropout_rate, layer_norm='input', name='residual_dropout_wrapper'): self._module = layer self._dropout_rate = dropout_rate self._layer_norm = layer_norm super(ResidualDropoutWrapper, self).__init__(name=name) def _build(self, inputs, *args, **kwargs): if self._layer_norm in ('both', 'input'): normed_inputs = _layer_norm(inputs) else: normed_inputs = inputs module_output = self._module(normed_inputs, *args, **kwargs) module_state = None # If module outputs multiple items, assumes (output, state) tuple. if isinstance(module_output, tuple): module_output, module_state = module_output if kwargs['is_training']: # kwargs must contain is_training. module_output = tf.nn.dropout(module_output, rate=self._dropout_rate) output = inputs + module_output if self._layer_norm in ('both', 'output'): output = _layer_norm(output) if module_state is None: return output else: return output, module_state def future_mask(chunk_size, dtype): """Creates attention mask to ensure an element i cannot attend to j > i.""" square = tf.ones([chunk_size, chunk_size], dtype=dtype) # Create upper diagonal matrix and remove diagonal entries (allow self-attn). mask = tf.matrix_band_part(square, 0, -1) - tf.matrix_band_part(square, 0, 0) # Multiply by -1e6 and expand to broadcast with [B, H, N, N] logits. mask = -1e6 * tf.reshape(mask, [1, 1, chunk_size, chunk_size]) return mask def _memory_size(state): if isinstance(state, CompressedMemoryState): return (state.episodic_memory.get_shape().as_list()[1] + state.compressed_memory.get_shape().as_list()[1]) else: return state.get_shape().as_list()[1] def create_mask(inputs, state, equal_window): """Creates mask for future sequence positions. Args: inputs: inputs tensor of shape [B, N, D] state: optional tensor of shape [B, M, D], CompressedMemoryState or a list where the ith entry corresponds to the ith layer's state. equal_window: if True, then each activation has an equally-sized attention window of length 'M'. This only makes sense if a state is given. Returns: Float tensor of shape [1, 1, N, N + M], to be summed with logits. """ chunk_size = inputs.get_shape().as_list()[1] dtype = inputs.dtype mask = future_mask(chunk_size, dtype) if state is not None: if isinstance(state, (tuple, list)): largest_memory_layer = np.argmax([_memory_size(s) for s in state]) state = state[largest_memory_layer] mem_size = _memory_size(state) mask = tf.concat( [tf.zeros([1, 1, chunk_size, mem_size], dtype=dtype), mask], 3) if equal_window: attn_mask = tf.ones([chunk_size, chunk_size], dtype=dtype) mask_dia = tf.cast(tf.matrix_band_part(attn_mask, 0, 0), dtype=dtype) mask_l = tf.cast(tf.matrix_band_part(attn_mask, -1, 0), dtype=dtype) start_mask = tf.reshape(mask_l - mask_dia, [1, 1, chunk_size, chunk_size]) * -1e6 mask = tf.concat( [mask[:, :, :, :chunk_size] + start_mask, mask[:, :, :, chunk_size:]], 3) return mask def default_mlp(hidden_sizes, activate_final=False, init_std=2., **kwargs): """Standard batch-applied MLP for transformer modules.""" init = {'w': tf.variance_scaling_initializer(init_std, distribution='normal')} mlp = snt_mlp.MLP( hidden_sizes, activate_final=activate_final, use_dropout=True, initializers=init, **kwargs) return basic.BatchApply(mlp) def get_position_encodings(sequence_length, hidden_size, clamp_value, max_timescale=10000., min_timescale=2.0): """Creates sinusoidal encodings of shape [1, N + M, D].""" # NOTE: when not using relative position encodings, min_timescale must be 2.0 # and hidden_size must be an even number. Otherwise, the dimensions do not # match. pos_seq = tf.range(sequence_length - 1, -1, -1.0) if clamp_value > 0: pos_seq = tf.minimum(pos_seq, clamp_value) freqs = tf.range(0, hidden_size, min_timescale) inv_freq = 1 / (max_timescale**(freqs / hidden_size)) sinusoid_inp = tf.einsum('i,j->ij', pos_seq, inv_freq) pos_emb = tf.concat([tf.sin(sinusoid_inp), tf.cos(sinusoid_inp)], -1) pos_emb = tf.expand_dims(pos_emb, 0) output_dim = pos_emb.get_shape().as_list()[-1] if output_dim != hidden_size: raise ValueError( 'position embedding dimension ({}) does not match that of the input ({}).' .format(output_dim, hidden_size)) return pos_emb class MultiheadAttention(base.AbstractModule): """Implements multi-head attention with optional state context.""" def __init__(self, value_size, key_size, num_heads, mask=None, scaling=True, positional_encodings=None, use_relative_positions=False, init_std=2., name='multihead_attention'): """Creates a MultiheadAttention module. Args: value_size: V parameter. See size glossary in class docstring. key_size: K parameter. See size glossary in class docstring. num_heads: The number of independent queries per timestep. mask: Optional mask to attention logits. This can prevent attending to future positions or unused memory slots. scaling: Whether to scale the attention logits. positional_encodings: Either None (none given), or an iterable of `(key_positional_encodings, query_positional_encodings)` tuples, where the first encodings in the list indicate the oldest entries in memory and the final encodings indicate the newest entries in memory and the sequence. use_relative_positions: If True then relative positions are incorporated, vs absolute, into the attention logits. This is done exactly as described in the TransformerXL, Dai et al. 2019. init_std: scaling of standard deviation for weight matrices init. name: Name of module. """ super(MultiheadAttention, self).__init__(name=name) self._value_size = value_size self._key_size = key_size self._sizes = { 'value': self._value_size, 'key': self._key_size, 'query': self._key_size, 'relative_keys': self._key_size, 'relative_keys_0': self._key_size, } self._num_heads = num_heads self._mask = mask self._scaling = scaling self._positional_encodings = positional_encodings self._use_relative_positions = use_relative_positions self._init = {'w': tf.variance_scaling_initializer(init_std)} @util.reuse_variables def multihead_linear(self, inputs, name): with tf.variable_scope(name, reuse=tf.AUTO_REUSE): hidden_size = self._sizes[name] input_size = inputs.shape[-1].value w = tf.get_variable( 'linear/w', shape=[input_size, self._num_heads * hidden_size], initializer=self._init['w']) w = tf.reshape(w, [input_size, self._num_heads, hidden_size]) out = tf.einsum('bij,jhk->bhik', inputs, w) return out def _build(self, inputs, query_inputs=None, state=None, is_training=False, dropout_keep_prob=0.5, key_value_inputs=None): """Calculates multi-layer self attention. Args: inputs: Tensor of shape [batch_size, num_steps, output_dim_size]. Inputs used as the query, key, and value to the attention layer. query_inputs: optional Tensor of shape [batch_size, num_steps, output_dim_size]. Query inputs to the attention layer. Set when query_inputs is different from the inputs argument. state: optional CompressedMemoryState or a Tensor of shape [batch_size, memory_size, dim_size] concatenated to the inputs. Set when attend to the memory from previous steps. is_training: if currently training. dropout_keep_prob: dropout rate applied to attention weights. key_value_inputs: optional Tensor of shape [batch_size, num_steps, output_dim_size]. It is used as the key and value of the multihead attention. Set when the key and value are different from the inputs argument. Returns: output: the result Tensor of shape [batch_size, num_steps, output_dim_size]. attention_state: named tuple of AttentionState. """ if key_value_inputs is not None and state is not None: raise ValueError('Only one of the key_value_input and state is needed.') embedding_size = self._value_size * self._num_heads q_inputs = inputs if query_inputs is None else query_inputs # Denoted by L. If query_inputs is None, L = N. _, query_size = q_inputs.get_shape().as_list()[:2] if key_value_inputs is not None: k_inputs = key_value_inputs v_inputs = k_inputs elif state is not None: if isinstance(state, CompressedMemoryState): state_memory_list = [state.compressed_memory, state.episodic_memory] else: state_memory_list = [state] k_inputs = tf.concat(state_memory_list + [inputs], 1) v_inputs = k_inputs else: k_inputs = inputs v_inputs = inputs # Batch size denoted by B batch_size = tf.shape(inputs)[0] # Chunk_size denoted by N chunk_size = inputs.get_shape().as_list()[1] # Denoted by N + M att_size = k_inputs.get_shape().as_list()[1] if self._positional_encodings and not self._use_relative_positions: if len(self._positional_encodings) != 1: raise ValueError( 'Absolute positional encodings only supported for 1 memory. ' 'Found %i.' % len(self._positional_encodings)) key_positions, query_positions = self._positional_encodings[0] k_inputs += key_positions q_inputs += query_positions # [B, H, L, K] q = self.multihead_linear(q_inputs, 'query') # [B, H, N + M, K] k = self.multihead_linear(k_inputs, 'key') # [B, H, N + M, V] v = self.multihead_linear(v_inputs, 'value') # Scaling the dot-product if self._scaling: q *= self._key_size**-0.5 # [B, H, L, N + M] if self._use_relative_positions: r_w_bias = tf.get_variable( 'r_w_bias', [1, self._num_heads, 1, self._key_size], dtype=inputs.dtype) content_logits = tf.matmul(q + r_w_bias, k, transpose_b=True) all_relative_logits = [] # Loop over multiple positional encodings, for the case of multiple # memory types. for i, positional_encodings in enumerate(self._positional_encodings): key_positions, query_positions = positional_encodings if key_positions.get_shape().as_list()[-1] != att_size: key_positions = key_positions[:, -att_size:] # Crop to layer mem size is_final = i == len(self._positional_encodings) - 1 suffix = '' if is_final else '_%d' % i relative_keys = self.multihead_linear( key_positions, name='relative_keys' + suffix) # [B, H, N, D] r_r_bias = tf.get_variable( 'r_r_bias' + suffix, [1, self._num_heads, 1, self._key_size], dtype=inputs.dtype) relative_keys = tf.tile(relative_keys, [batch_size, 1, 1, 1]) relative_logits = tf.matmul( q + r_r_bias, relative_keys, transpose_b=True) relative_logits = rel_shift(relative_logits) if not is_final: # Include relative positions for input sequence. relative_logits = relative_logits[:, :, :, :-chunk_size] all_relative_logits.append(relative_logits) all_relative_logits = tf.concat(all_relative_logits, 3) logits = content_logits + all_relative_logits else: # [B, H, N, N + M] logits = tf.matmul(q, k, transpose_b=True) content_logits = logits if self._mask is not None: if self._mask.get_shape().as_list()[-1] != att_size: mask = self._mask[:, :, :, -att_size:] else: mask = self._mask logits += mask weights = tf.nn.softmax(logits) if is_training: weights = tf.nn.dropout(weights, dropout_keep_prob) # [B, L, H, V], where V is value_size output_transpose = tf.einsum('bhij,bhjk->bihk', weights, v) # [B, L, H, V] -> [B, L, HV] attended_inputs = basic.BatchReshape([query_size, embedding_size])( output_transpose) # Apply final mlp to mix information between heads. output = basic.BatchApply(basic.Linear(embedding_size))(attended_inputs) attention_state = AttentionState( queries=q, keys=k, values=v, weights=weights, logits=content_logits, embeddings=inputs, read_words=output) return output, attention_state class TransformerTower(base.AbstractModule): """Transformer tower. Deep residual network using blocks of attention and MLPs, specified in Vaswani et al. 2017. """ def __init__(self, value_size, num_heads, num_layers, causal=True, key_size=None, shared_attention=False, output_size=None, mlp_hidden_sizes=tuple([1024]), dropout_rate=0.1, use_relative_positions=True, clamp_time_range=0, same_attention_length=False, layer_norm='input', name='transformer_tower'): """Initializes TransformerTower. Args: value_size: dimensionality of values per-head. num_heads: number of attention heads. num_layers: number of transformer blocks, where each block contains a multi-head attention layer and an MLP. causal: if True, applies a causal mask. key_size: optional dimensionality of key size. If unspecified then it is set to `value_size`. shared_attention: if True, attention params are shared across all layers. output_size: if set, the desired output dimensionality. By default the output size is `value_size` x `num_heads`. mlp_hidden_sizes: tuple containing dimensionality of mlp layer(s). If multiple values are specified, the mlp contains multiple layers for each transformer block. dropout_rate: dropout rate applied to hidden activations, attention, and positional encodings. use_relative_positions: if False, applies absolute positional encodings. If true, uses relative positional encodings from Dai et al. 2019. clamp_time_range: clamps max temporal positional encoding if specified. same_attention_length: if True, attention is masked to ensure each position in the sequence contains the same length of attention. layer_norm: Where to apply layer-norm in Transformer block. Can be one of 'input' (Vaswani et al. 2017), 'output', or 'both'. name: name of variable scope. """ super(TransformerTower, self).__init__(name=name) self._causal = causal self._mask = None if key_size is None: key_size = value_size self._key_size = key_size self._value_size = value_size self._shared_attention = shared_attention self._num_heads = num_heads self._num_layers = num_layers self._output_size = output_size self._embedding_size = self._value_size * self._num_heads self._mlp_hidden_sizes = list(mlp_hidden_sizes) + [self._embedding_size] self._multihead_attention = None self._object_embeddings = None self._dropout_rate = dropout_rate self._positional_encodings = None self._use_relative_positions = use_relative_positions self._clamp_time_range = clamp_time_range self._same_attention_length = same_attention_length self._layer_norm = layer_norm self._attention_modules = [] self._object_mlps = [] def get_sublayers(self, is_training): if self._multihead_attention is None or not self._shared_attention: attention_module = MultiheadAttention( value_size=self._value_size, key_size=self._key_size, num_heads=self._num_heads, mask=self._mask, positional_encodings=self._positional_encodings, use_relative_positions=self._use_relative_positions, init_std=2. / np.sqrt(self._num_layers), ) self._multihead_attention = ResidualDropoutWrapper( attention_module, self._dropout_rate, layer_norm=self._layer_norm) mlp = default_mlp( self._mlp_hidden_sizes, init_std=2. / np.sqrt(self._num_layers)) object_mlp = ResidualDropoutWrapper( mlp, self._dropout_rate, layer_norm=self._layer_norm) self._attention_modules.append(attention_module) self._object_mlps.append(mlp) return self._multihead_attention, object_mlp def _build(self, inputs, state=None, condition=None, is_training=True, final_layer_key_value_inputs=None): """Calculates multi-layer self attention and mlp transformation. Args: inputs: Tensor of shape [batch_size, num_steps, dim_size]. state: optional list of length num_layers of tensors of shape [batch_size, memory_size, dim_size]. condition: optional tensor to condition on. The shape is shape [batch_size, dim_size]. is_training: If true, dropout is applied. final_layer_key_value_inputs: optional Tensor to be used as the key and value for the final multi-head attention layer of shape [batch_size, num_steps, dim_size]. Useful when the tower is a Seq2Seq decoder and it can attend to encoder outputs. Returns: output: tensor of shape [batch_size, num_steps, output_dim_size]. state: list of length `num_layers` containing AttentionState tuples. """ # inputs: [B, N, F] if final_layer_key_value_inputs is not None and state is not None and len( state) == (self._num_layers - 1): raise ValueError('When the final_layer_key_value_input is set, exclude' 'the state of the last layer.') if condition is not None: condition_tile = tf.tile( tf.expand_dims(condition, 1), [1, tf.shape(inputs)[1], 1]) inputs = tf.concat([inputs, condition_tile], -1) # Map inputs to be of `embedding_size` dimension. if inputs.get_shape().as_list()[-1] != self._embedding_size: inputs = default_mlp([self._embedding_size], activate_final=True)( inputs, is_training=is_training, dropout_keep_prob=1 - self._dropout_rate) if state is None: memory_sizes = [0] elif isinstance(state[0], CompressedMemoryState): cm_mem_size = max(_memory_size(s.compressed_memory) for s in state) em_mem_size = max(_memory_size(s.episodic_memory) for s in state) memory_sizes = [cm_mem_size, em_mem_size] else: memory_sizes = [max([_memory_size(s) for s in state])] chunk_size = inputs.get_shape().as_list()[1] self._positional_encodings = [] # Creates positional encodings for different memory types. for i, memory_size in enumerate(memory_sizes): seq_len = chunk_size + memory_size key_positions = get_position_encodings( sequence_length=seq_len, hidden_size=inputs.get_shape().as_list()[2], clamp_value=self._clamp_time_range, ) if is_training: key_positions = tf.nn.dropout(key_positions, rate=self._dropout_rate) key_positions = tf.cast(key_positions, dtype=inputs.dtype) query_positions = key_positions[:, -chunk_size:, :] self._positional_encodings.append((key_positions, query_positions)) if self._causal: self._mask = create_mask(inputs, state, self._same_attention_length) layer_i_inputs = inputs attention_states = [] key_value_inputs = None for i in range(self._num_layers): with tf.variable_scope('layer_%d' % i, reuse=tf.AUTO_REUSE): multihead_attention, object_mlp = self.get_sublayers(is_training) # Multihead attention with residuals. state_i = None if state is None else state[i] if i == (self._num_layers - 1) and final_layer_key_value_inputs is not None: # When the final_layer_key_value_inputs is set, the finaly layer # of attention will use it as the key & value, thus no need for state. key_value_inputs = final_layer_key_value_inputs state_i = None attention_outputs, attention_state = multihead_attention( layer_i_inputs, state=state_i, is_training=is_training, dropout_keep_prob=1. - self._dropout_rate, key_value_inputs=key_value_inputs) attention_states.append(attention_state) # Feed-forward with residuals. output = object_mlp( attention_outputs, is_training=is_training, dropout_keep_prob=1 - self._dropout_rate) layer_i_inputs = output if self._output_size is not None: output = basic.BatchApply( basic.Linear(self._output_size, use_bias=False))( output) return output, attention_states def attention_module(self, i): """Returns the i-th layer attention module.""" return self._attention_modules[i] ================================================ FILE: ode_gan/README.md ================================================ # ODE-GAN: Training GANs by Solving Ordinary Differential Equations Mixture of Gaussian Example (Colab): [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/ode_gan/odegan_mog16.ipynb) Cifar 10 Example (Tensorflow): Launch Training from https://github/deepmind/deepmind_research/tree/master/cs_gan/run_ode.sh This package demos the algorithm [ODE-GAN](https://arxiv.org/abs/2010.15040). If you make use of any code in your work, please cite: ``` @article{qin2020training, title={Training Generative Adversarial Networks by Solving Ordinary Differential Equations}, author={Qin, Chongli and Wu, Yan and Springenberg, Jost Tobias and Brock, Andy and Donahue, Jeff and Lillicrap, Timothy and Kohli, Pushmeet}, journal={Advances in Neural Information Processing Systems}, volume={33}, year={2020} } ``` ================================================ FILE: ode_gan/odegan_mog16.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "OYWMcJafmrfI" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "yAHjf0hcm8Az" }, "source": [ "# **This code implements ODE-GAN for Mixture of Gaussians.**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "n8p0WAstrhUT" }, "outputs": [], "source": [ "#@title Imports\n", "!pip install dm-haiku\n", "import jax\n", "from jax import lax\n", "import jax.numpy as jnp\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import haiku as hk\n", "import scipy as sp\n", "import functools" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "aoIaRyCysZEs" }, "outputs": [], "source": [ "#@title An MLP Haiku Module \n", "\n", "class MLP(hk.Module):\n", " def __init__(self, depth, hidden_size, out_dim, name='SimpleNet'):\n", " super(MLP, self).__init__(name=name)\n", " self._depth = depth\n", " self._hidden_size = hidden_size\n", " self._out_dim = out_dim\n", " layers = []\n", " for i in range(self._depth):\n", " layers.append(hk.Linear(self._hidden_size, name='linear_%d'%(i)))\n", " self._layers = layers\n", " self._final_layer = hk.Linear(self._out_dim, name='final_layer')\n", "\n", " def __call__(self, input):\n", " h = input\n", " for i in range(self._depth):\n", " h = jax.nn.relu(self._layers[i](h))\n", " return self._final_layer(h)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "KBgWwKKyv6VI" }, "outputs": [], "source": [ "#@title Real Data\n", "def real_data(batch_size):\n", " mog_mean = np.array([\n", " [ 1.50, 1.50],\n", " [ 1.50, 0.50],\n", " [ 1.50, -0.50],\n", " [ 1.50, -1.50],\n", " [ 0.50, 1.50],\n", " [ 0.50, 0.50],\n", " [ 0.50, -0.50],\n", " [ 0.50, -1.50],\n", " [-1.50, 1.50],\n", " [-1.50, 0.50],\n", " [-1.50, -0.50],\n", " [-1.50, -1.50],\n", " [-0.50, 1.50],\n", " [-0.50, 0.50],\n", " [-0.50, -0.50],\n", " [-0.50, -1.50],\n", " ])\n", " temp = np.tile(mog_mean, (batch_size // 16 + 1,1))\n", " mus = temp[0:batch_size,:]\n", " return mus + 0.02 * np.random.normal(size=(batch_size, 2))\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "E6uViIllRDlL" }, "outputs": [], "source": [ "#@title ODE-integrators\n", "def euler_step(func, y0, f0, t0, dt):\n", " # Euler update\n", " y1 = jax.tree_multimap(lambda u, v: dt * v + u, y0, f0)\n", " return y1\n", "\n", "def euler_heun_step(func, y0, f0, t0, dt):\n", " # RK2 Butcher tableaux\n", " alpha = jnp.array([1. / 2., 0.])\n", " beta = jnp.array([\n", " [1 / 2, 0,],\n", " ])\n", " c_sol = jnp.array([1 / 2, 1 / 2])\n", "\n", " def body_fun(i, k):\n", " ti = t0 + dt * alpha[i-1]\n", " yi = jax.tree_multimap(lambda u, v: u + dt * jnp.tensordot(beta[i-1, :], v, axes=1), y0, k)\n", " ft = func(yi, ti)\n", " return jax.tree_multimap(lambda x, y: x.at[i, :].set(y), k, ft)\n", " k = jax.tree_map(lambda f: jnp.zeros((2,) + f.shape,\n", " f.dtype).at[0, :].set(f), f0)\n", " k = lax.fori_loop(1, 2, body_fun, k)\n", "\n", " y1 = jax.tree_multimap(lambda u, v: dt * jnp.tensordot(c_sol, v, axes=1) + u, y0, k)\n", " return y1\n", "\n", "def runge_kutta_step(func, y0, f0, t0, dt):\n", " # RK4 Butcher tableaux\n", " alpha = jnp.array([1. / 2., 1. / 2., 1., 0])\n", " beta = jnp.array([\n", " [1. / 2., 0, 0, 0],\n", " [0, 1. / 2., 0, 0],\n", " [0, 0, 1., 0],\n", " ])\n", " c_sol = jnp.array([1. / 6., 1. / 3., 1. / 3., 1. / 6.])\n", "\n", " def body_fun(i, k):\n", " ti = t0 + dt * alpha[i-1]\n", " yi = jax.tree_multimap(lambda u, v: u + dt * jnp.tensordot(beta[i-1, :], v, axes=1), y0, k)\n", " ft = func(yi, ti)\n", " return jax.tree_multimap(lambda x, y: x.at[i, :].set(y), k, ft)\n", " k = jax.tree_map(lambda f: jnp.zeros((4,) + f.shape,\n", " f.dtype).at[0, :].set(f), f0)\n", " k = lax.fori_loop(1, 4, body_fun, k)\n", "\n", " y1 = jax.tree_multimap(lambda u, v: dt * jnp.tensordot(c_sol, v, axes=1) + u, y0, k)\n", " return y1" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "NHCYH1tnwaTL" }, "outputs": [], "source": [ "#@title Utility Functions.\n", "def disc_loss(disc_params, gen_params, real_examples, latents):\n", " fake_examples = gen_model.apply(gen_params, None, latents)\n", " real_logits = disc_model.apply(disc_params, None, real_examples)\n", " fake_logits = disc_model.apply(disc_params, None, fake_examples)\n", " disc_real = real_logits - jax.nn.log_sigmoid(real_logits)\n", " disc_fake = - jax.nn.log_sigmoid(fake_logits)\n", " return - jnp.mean(disc_real + disc_fake)\n", "\n", "def gen_loss(disc_params, gen_params, real_examples, latents):\n", " fake_examples = gen_model.apply(gen_params, None, latents)\n", " fake_logits = disc_model.apply(disc_params, None, fake_examples)\n", " disc_fake = fake_logits - jax.nn.log_sigmoid(fake_logits)\n", " return - jnp.mean(disc_fake)\n", "\n", "def gen_norm(disc_params, gen_params, real_examples, latents):\n", " grad = jax.grad(gen_loss, argnums=1)(\n", " disc_params, gen_params, real_examples, latents)\n", " flat, _ = jax.tree_flatten(grad)\n", " norm = 0.\n", " for a in flat:\n", " norm += jnp.sum(a * a)\n", " return - norm\n", "\n", "def get_gen_grad(gen_params, t, disc_params, real_examples, latents):\n", " return jax.grad(gen_loss, argnums=1)(\n", " disc_params, gen_params, real_examples, latents)\n", "\n", "def get_disc_grad(disc_params, t, gen_params, real_examples, latents):\n", " return jax.grad(disc_loss, argnums=0)(\n", " disc_params, gen_params, real_examples, latents)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "xjTBhJuOh_wO" }, "outputs": [], "source": [ "#@title Visualising the data.\n", "\n", "def kde(mu, tau, contours=None, bbox=None, xlabel=\"\", ylabel=\"\", cmap='Blues', st=0):\n", " values = np.vstack([mu, tau])\n", " kernel = sp.stats.gaussian_kde(values)\n", "\n", " fig, ax = plt.subplots()\n", " ax.axis(bbox)\n", " ax.set_aspect(abs(bbox[1]-bbox[0])/abs(bbox[3]-bbox[2]))\n", " ax.set_xlabel(xlabel)\n", " ax.set_ylabel(ylabel)\n", " ax.set_xticks([])\n", " ax.set_yticks([])\n", "\n", " xx, yy = np.mgrid[bbox[0]:bbox[1]:300j, bbox[2]:bbox[3]:300j]\n", " positions = np.vstack([xx.ravel(), yy.ravel()])\n", " \n", " f = np.reshape(kernel(positions).T, xx.shape)\n", " cfset = ax.contourf(xx, yy, f, cmap=cmap)\n", " if contours is not None:\n", " x = np.arange(-2., 2., 0.1)\n", " y = np.arange(-2., 2., 0.1)\n", " cx, cy = np.meshgrid(x, y)\n", " new_set = ax.contour(cx, cy, contours.squeeze().reshape(cx.shape), levels=20, colors='k', linewidths=0.8, alpha=0.5) \n", " plt.tight_layout()\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "G2G32j5N1psa" }, "outputs": [], "source": [ "#@title Integration\n", "n_itrs = 30001 #@param {type : 'integer'}\n", "n_save = 2000 #@param {type : 'integer'}\n", "latent_size = 32 #@param {type : 'integer'}\n", "bs = 512 #@param {type : 'integer'}\n", "odeint = 'runge_kutta_step' #@param ['euler_step', 'euler_heun_step', 'runge_kutta_step'] {type : 'string'}\n", "delta_t = 0.10 #@param {type : 'number'}\n", "reg_param = 0.07 #@param {type : 'number'}\n", "\n", "def forward_disc(batch):\n", " disc_model = MLP(2, 25, 1)\n", " return disc_model(batch)\n", "\n", "def forward_gen(batch):\n", " gen_model = MLP(2, 25, 2)\n", " return gen_model(batch)\n", "\n", "\n", "disc_model = hk.transform(forward_disc)\n", "gen_model = hk.transform(forward_gen)\n", "real_examples = real_data(bs)\n", "\n", "ODEINT = {'runge_kutta_step': runge_kutta_step, \n", " 'euler_heun_step': euler_heun_step,\n", " 'euler_step': euler_step}\n", "@jax.jit\n", "def ode_update(i, disc_params, gen_params, real_examples, latents):\n", " dloss, disc_grad = jax.value_and_grad(disc_loss, argnums=0)(\n", " disc_params, gen_params, real_examples, latents)\n", " gloss, gen_grad = jax.value_and_grad(gen_loss, argnums=1)(\n", " disc_params, gen_params, real_examples, latents)\n", " disc_gen_grad = jax.grad(gen_norm, argnums=0)(\n", " disc_params, gen_params, real_examples, latents)\n", " grad_disc_fn = functools.partial(get_disc_grad,\n", " **{'gen_params' : gen_params,\n", " 'real_examples' : real_examples,\n", " 'latents' : latents})\n", " grad_gen_fn = functools.partial(get_gen_grad, \n", " **{'disc_params' : disc_params,\n", " 'real_examples' : real_examples,\n", " 'latents' : latents}) \n", " new_gen_params = ODEINT[odeint](\n", " grad_gen_fn, gen_params, gen_grad, 0., delta_t)\n", " new_disc_params = ODEINT[odeint](\n", " grad_disc_fn, disc_params, disc_grad, 0., delta_t)\n", " new_disc_params = jax.tree_multimap(\n", " lambda x, y: x + delta_t * reg_param * y, new_disc_params, disc_gen_grad)\n", " return new_disc_params, new_gen_params, -dloss, -gloss\n", "\n", "rng = jax.random.PRNGKey(np.random.randint(low=0, high=int(1e7)))\n", "test_latents = np.random.normal(size=(bs * 10, latent_size))\n", "latents = np.random.normal(size=(bs, latent_size))\n", "disc_params = disc_model.init(rng, real_examples)\n", "gen_params = gen_model.init(\n", " jax.random.PRNGKey(np.random.randint(low=0, high=int(1e7))), latents)\n", "\n", "x = np.arange(-2., 2., 0.1)\n", "y = np.arange(-2., 2., 0.1)\n", "X, Y = np.meshgrid(x, y)\n", "pairs = np.stack((X, Y), axis=-1)\n", "pairs = np.reshape(pairs, (-1, 2))\n", "\n", "for e in range(n_itrs):\n", " real_examples = real_data(bs)\n", " latents = np.random.normal(size=(bs, latent_size))\n", "\n", " (disc_params, gen_params,\n", " dloss, gloss) = ode_update(e, disc_params, gen_params, real_examples, latents)\n", " \n", " if e % n_save == 0:\n", " real_logits = disc_model.apply(disc_params, None, pairs)\n", " disc_contour = - real_logits + jax.nn.log_sigmoid(real_logits)\n", " print('i = %d, discriminant loss = %s, generator loss = %s' %\n", " (e, dloss, gloss))\n", " bbox = [-2, 2, -2, 2]\n", " fake_examples = gen_model.apply(gen_params, None, test_latents)\n", " kde(fake_examples[:, 0], fake_examples[:, 1], contours=disc_contour, bbox=bbox, st=e)\n", " disc_error = 0\n", " gen_error = 0" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "odegan_mog16.ipynb" }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: ogb_lsc/README.md ================================================ # DeepMind entry for OGB-LSC This repository contains DeepMind's entry to the [PCQM4M-LSC](https://ogb.stanford.edu/kddcup2021/pcqm4m/) (quantum chemistry) and [MAG240M-LSC](https://ogb.stanford.edu/kddcup2021/mag240m/) (academic graph) tracks of the [OGB Large-Scale Challenge](https://ogb.stanford.edu/kddcup2021/) (OGB-LSC). For full details regarding this entry, please see our [technical report](https://arxiv.org/abs/2107.09422). ## Code structure * `pcq/`: Scripts for training, evaluating on the [PCQ dataset](https://ogb.stanford.edu/docs/graphprop/). * `mag/`: Scripts for training, evaluating on the [MAG dataset](https://ogb.stanford.edu/docs/nodeprop/). ## Citation To cite this work: ```latex @article{deepmind2021ogb, author = {Ravichandra Addanki and Peter Battaglia and David Budden and Andreea Deac and Jonathan Godwin and Thomas Keck and Wai Lok Sibon Li and Alvaro Sanchez-Gonzalez and Jacklynn Stott and Shantanu Thakoor and Petar Veli\v{c}kovi\'{c}}, title = {Large-scale graph representation learning with very deep GNNs and self-supervision}, year = {2021}, journal={arXiv preprint arXiv:2107.09422}, } ``` ================================================ FILE: ogb_lsc/mag/README.md ================================================ # DeepMind entry for MAG240M-LSC This repository contains DeepMind's entry to the [MAG240M-LSC](https://ogb.stanford.edu/kddcup2021/mag240m/) (academic graph) track of the [OGB Large-Scale Challenge](https://ogb.stanford.edu/kddcup2021/) (OGB-LSC). For full details regarding this entry, please see our [technical report](https://arxiv.org/abs/2107.09422). ## DeepMind MAG Team ("Academic") (in alphabetical order) - Ravichandra Addanki - Peter Battaglia - David Budden - Andreea Deac - Jonathan Godwin - Thomas Keck - Alvaro Sanchez-Gonzalez - Jacklynn Stott - Shantanu Thakoor - Petar Veličković ## Performance Our final test set performance was achieved by pooling an ensemble of 10 folds. See [technical report](https://arxiv.org/abs/2107.09422) for details. Each model was trained for < 72 hours using 4x Google Cloud TPUv4 and 1x AMD EPYC 7B12 64-core CPU @2.25GHz. Inference takes < 12 hours on 4x NVIDIA V100 16GB GPU and 1x Intel Xeon Gold 6148 20-core CPU @2.40GHz. # Running our model ## Setup You can set up Python virtual environment (you might need to install the `python3-venv` package first) with all needed dependencies inside the forked `deepmind_research` repository using: ```bash python3 -m venv /tmp/mag_venv source /tmp/mag_venv/bin/activate pip3 install --upgrade pip setuptools wheel pip3 install -r ogb_lsc/mag/requirements.txt ``` Use the following command to get a jaxlib version built compatible with V100 GPUs. ```bash pip install --upgrade jax jaxlib==0.1.67+cuda110 -f https://storage.googleapis.com/jax-releases/jax_releases.html ``` See https://github.com/google/jax/issues/5231 for details. ## Download and pre-process data **1. Download the dataset using the contest toolkit ([here](https://ogb.stanford.edu/kddcup2021/mag240m/#dataset)) to a local directory `ROOT`.** **2. Run this script to reorganize the data into a flat directory structure with transparent names.** ```bash /bin/bash organize_data.sh -r ROOT ``` Once this completes, a new directory `ROOT/mag240m_kddcup2021/raw` will be created, with contents: - `node_feat.npy` - `node_label.npy` - `node_year.npy` - `author_affiliated_with_institution_edges.npy` - `author_writes_paper_edges.npy` - `paper_cites_paper_edges.npy` - `train_idx.npy` - `valid_idx.npy` - `test_idx.npy` We refer to this as the "raw" data. **3. Run the preprocessing code.** ```bash /bin/bash run_preprocessing.sh -r ROOT ``` The pre-processing is both time- and memory-consuming, and should only be run to verify the full pipeline. You can download the pre-processed data using the following script, for use in training and evaluating models: ```bash python3 download_mag.py --task_root=${HOME}/mag --payload="data" ``` ## Reproducing our final results We have provided pre-trained weights of our final submission for convenience. They can be downloaded with: ```bash python3 download_mag.py --task_root=${HOME}/mag --payload="models" ``` Then to reproduce our final results, please run: ```bash /bin/bash run_preprocessing.sh -r ${HOME}/mag/ ``` ## Retraining our model Disclaimer: This script is provided for illustrative purposes. It is not practical for actual training since it only uses a single machine, and likely requires reducing the batch size and/or model size to fit on a single GPU. To train a model, please run: ```bash /bin/bash run_training.sh -r ${HOME}/mag/ ``` To simply validate that the code is running correctly on your hardware setup, consider setting `debug=True` in `config.py`, which trains a smaller model. # Citation To cite this work (together with our PCQM4M-LSC entry): ```latex @article{deepmind2021ogb, author = {Ravichandra Addanki and Peter Battaglia and David Budden and Andreea Deac and Jonathan Godwin and Thomas Keck and Wai Lok Sibon Li and Alvaro Sanchez-Gonzalez and Jacklynn Stott and Shantanu Thakoor and Petar Veli\v{c}kovi\'{c}}, title = {Large-scale graph representation learning with very deep GNNs and self-supervision}, year = {2021}, journal={arXiv preprint arXiv:2107.09422}, } ``` Our technical report can be found [here](https://arxiv.org/abs/2107.09422). ================================================ FILE: ogb_lsc/mag/batching_utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Dynamic batching utilities.""" from typing import Generator, Iterable, Iterator, Sequence, Tuple import jax.tree_util as tree import jraph import numpy as np _NUMBER_FIELDS = ("n_node", "n_edge", "n_graph") def dynamically_batch(graphs_tuple_iterator: Iterator[jraph.GraphsTuple], n_node: int, n_edge: int, n_graph: int) -> Generator[jraph.GraphsTuple, None, None]: """Dynamically batches trees with `jraph.GraphsTuples` to `graph_batch_size`. Elements of the `graphs_tuple_iterator` will be incrementally added to a batch until the limits defined by `n_node`, `n_edge` and `n_graph` are reached. This means each element yielded by this generator For situations where you have variable sized data, it"s useful to be able to have variable sized batches. This is especially the case if you have a loss defined on the variable shaped element (for example, nodes in a graph). Args: graphs_tuple_iterator: An iterator of `jraph.GraphsTuples`. n_node: The maximum number of nodes in a batch. n_edge: The maximum number of edges in a batch. n_graph: The maximum number of graphs in a batch. Yields: A `jraph.GraphsTuple` batch of graphs. Raises: ValueError: if the number of graphs is < 2. RuntimeError: if the `graphs_tuple_iterator` contains elements which are not `jraph.GraphsTuple`s. RuntimeError: if a graph is found which is larger than the batch size. """ if n_graph < 2: raise ValueError("The number of graphs in a batch size must be greater or " f"equal to `2` for padding with graphs, got {n_graph}.") valid_batch_size = (n_node - 1, n_edge, n_graph - 1) accumulated_graphs = [] num_accumulated_nodes = 0 num_accumulated_edges = 0 num_accumulated_graphs = 0 for element in graphs_tuple_iterator: element_nodes, element_edges, element_graphs = _get_graph_size(element) if _is_over_batch_size(element, valid_batch_size): graph_size = element_nodes, element_edges, element_graphs graph_size = {k: v for k, v in zip(_NUMBER_FIELDS, graph_size)} batch_size = {k: v for k, v in zip(_NUMBER_FIELDS, valid_batch_size)} raise RuntimeError("Found graph bigger than batch size. Valid Batch " f"Size: {batch_size}, Graph Size: {graph_size}") if not accumulated_graphs: # If this is the first element of the batch, set it and continue. accumulated_graphs = [element] num_accumulated_nodes = element_nodes num_accumulated_edges = element_edges num_accumulated_graphs = element_graphs continue else: # Otherwise check if there is space for the graph in the batch: if ((num_accumulated_graphs + element_graphs > n_graph - 1) or (num_accumulated_nodes + element_nodes > n_node - 1) or (num_accumulated_edges + element_edges > n_edge)): # If there is, add it to the batch batched_graph = _batch_np(accumulated_graphs) yield jraph.pad_with_graphs(batched_graph, n_node, n_edge, n_graph) accumulated_graphs = [element] num_accumulated_nodes = element_nodes num_accumulated_edges = element_edges num_accumulated_graphs = element_graphs else: # Otherwise, return the old batch and start a new batch. accumulated_graphs.append(element) num_accumulated_nodes += element_nodes num_accumulated_edges += element_edges num_accumulated_graphs += element_graphs # We may still have data in batched graph. if accumulated_graphs: batched_graph = _batch_np(accumulated_graphs) yield jraph.pad_with_graphs(batched_graph, n_node, n_edge, n_graph) def _batch_np(graphs: Sequence[jraph.GraphsTuple]) -> jraph.GraphsTuple: # Calculates offsets for sender and receiver arrays, caused by concatenating # the nodes arrays. offsets = np.cumsum(np.array([0] + [np.sum(g.n_node) for g in graphs[:-1]])) def _map_concat(nests): concat = lambda *args: np.concatenate(args) return tree.tree_map(concat, *nests) return jraph.GraphsTuple( n_node=np.concatenate([g.n_node for g in graphs]), n_edge=np.concatenate([g.n_edge for g in graphs]), nodes=_map_concat([g.nodes for g in graphs]), edges=_map_concat([g.edges for g in graphs]), globals=_map_concat([g.globals for g in graphs]), senders=np.concatenate([g.senders + o for g, o in zip(graphs, offsets)]), receivers=np.concatenate( [g.receivers + o for g, o in zip(graphs, offsets)])) def _get_graph_size(graph: jraph.GraphsTuple) -> Tuple[int, int, int]: n_node = np.sum(graph.n_node) n_edge = len(graph.senders) n_graph = len(graph.n_node) return n_node, n_edge, n_graph def _is_over_batch_size( graph: jraph.GraphsTuple, graph_batch_size: Iterable[int], ) -> bool: graph_size = _get_graph_size(graph) return any([x > y for x, y in zip(graph_size, graph_batch_size)]) ================================================ FILE: ogb_lsc/mag/config.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Experiment config for MAG240M-LSC entry.""" from jaxline import base_config from ml_collections import config_dict def get_config(debug: bool = False) -> config_dict.ConfigDict: """Get Jaxline experiment config.""" config = base_config.get_base_config() config.random_seed = 42 # E.g. '/data/pretrained_models/k0_seed100' (and set k_fold_split_id=0, below) config.restore_path = config_dict.placeholder(str) config.experiment_kwargs = config_dict.ConfigDict( dict( config=dict( debug=debug, predictions_dir=config_dict.placeholder(str), # 5 for model selection and early stopping, 50 for final eval. num_eval_iterations_to_ensemble=5, dataset_kwargs=dict( data_root='/data/', online_subsampling_kwargs=dict( max_nb_neighbours_per_type=[ [[40, 20, 0, 40], [0, 0, 0, 0], [0, 0, 0, 0]], [[40, 20, 0, 40], [40, 0, 10, 0], [0, 0, 0, 0]], ], remove_future_nodes=True, deduplicate_nodes=True, ), ratio_unlabeled_data_to_labeled_data=10.0, k_fold_split_id=config_dict.placeholder(int), use_all_labels_when_not_training=False, use_dummy_adjacencies=debug, ), optimizer=dict( name='adamw', kwargs=dict(weight_decay=1e-5, b1=0.9, b2=0.999), learning_rate_schedule=dict( use_schedule=True, base_learning_rate=1e-2, warmup_steps=50000, total_steps=config.get_ref('training_steps'), ), ), model_config=dict( mlp_hidden_sizes=[32] if debug else [512], latent_size=32 if debug else 256, num_message_passing_steps=2 if debug else 4, activation='relu', dropout_rate=0.3, dropedge_rate=0.25, disable_edge_updates=True, use_sent_edges=True, normalization_type='layer_norm', aggregation_function='sum', ), training=dict( loss_config=dict( bgrl_loss_config=dict( stop_gradient_for_supervised_loss=False, bgrl_loss_scale=1.0, symmetrize=True, first_graph_corruption_config=dict( feature_drop_prob=0.4, edge_drop_prob=0.2, ), second_graph_corruption_config=dict( feature_drop_prob=0.4, edge_drop_prob=0.2, ), ), ), # GPU memory may require reducing the `256`s below to `48`. dynamic_batch_size_config=dict( n_node=256 if debug else 340 * 256, n_edge=512 if debug else 720 * 256, n_graph=4 if debug else 256, ), ), eval=dict( split='valid', ema_annealing_schedule=dict( use_schedule=True, base_rate=0.999, total_steps=config.get_ref('training_steps')), dynamic_batch_size_config=dict( n_node=256 if debug else 340 * 128, n_edge=512 if debug else 720 * 128, n_graph=4 if debug else 128, ), )))) ## Training loop config. config.training_steps = 500000 config.checkpoint_dir = '/tmp/checkpoint/mag/' config.train_checkpoint_all_hosts = False config.log_train_data_interval = 10 config.log_tensors_interval = 10 config.save_checkpoint_interval = 30 config.best_model_eval_metric = 'accuracy' config.best_model_eval_metric_higher_is_better = True return config ================================================ FILE: ogb_lsc/mag/csr_builder.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Builds CSR matrices which store the MAG graphs.""" import pathlib from absl import app from absl import flags from absl import logging import numpy as np import scipy.sparse # pylint: disable=g-bad-import-order import data_utils Path = pathlib.Path FLAGS = flags.FLAGS _DATA_FILES_AND_PARAMETERS = { 'author_affiliated_with_institution_edges.npy': { 'content_names': ('author', 'institution'), 'use_boolean': False }, 'author_writes_paper_edges.npy': { 'content_names': ('author', 'paper'), 'use_boolean': False }, 'paper_cites_paper_edges.npy': { 'content_names': ('paper', 'paper'), 'use_boolean': True }, } flags.DEFINE_string('data_root', None, 'Data root directory') flags.DEFINE_boolean('skip_existing', True, 'Skips existing CSR files') flags.mark_flags_as_required(['data_root']) def _read_edge_data(path): try: return np.load(path, mmap_mode='r') except FileNotFoundError: # If the file path can't be found by np.load, use the file handle w/o mmap. with path.open('rb') as fid: return np.load(fid) def _build_coo(edges_data, use_boolean=False): if use_boolean: mat_coo = scipy.sparse.coo_matrix( (np.ones_like(edges_data[1, :], dtype=bool), (edges_data[0, :], edges_data[1, :]))) else: mat_coo = scipy.sparse.coo_matrix( (edges_data[1, :], (edges_data[0, :], edges_data[1, :]))) return mat_coo def _get_output_paths(directory, content_names, use_boolean): boolean_str = '_b' if use_boolean else '' transpose_str = '_t' if len(set(content_names)) == 1 else '' output_prefix = '_'.join(content_names) output_prefix_t = '_'.join(content_names[::-1]) output_filename = f'{output_prefix}{boolean_str}.npz' output_filename_t = f'{output_prefix_t}{boolean_str}{transpose_str}.npz' output_path = directory / output_filename output_path_t = directory / output_filename_t return output_path, output_path_t def _write_csr(path, csr): path.parent.mkdir(parents=True, exist_ok=True) with path.open('wb') as fid: scipy.sparse.save_npz(fid, csr) def main(argv): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') raw_data_dir = Path(FLAGS.data_root) / data_utils.RAW_DIR preprocessed_dir = Path(FLAGS.data_root) / data_utils.PREPROCESSED_DIR for input_filename, parameters in _DATA_FILES_AND_PARAMETERS.items(): input_path = raw_data_dir / input_filename output_path, output_path_t = _get_output_paths(preprocessed_dir, **parameters) if FLAGS.skip_existing and output_path.exists() and output_path_t.exists(): # If both files exist, skip. When only one exists, that's handled below. logging.info( '%s and %s exist: skipping. Use flag `--skip_existing=False`' 'to force overwrite existing.', output_path, output_path_t) continue logging.info('Reading edge data from: %s', input_path) edge_data = _read_edge_data(input_path) logging.info('Building CSR matrices') mat_coo = _build_coo(edge_data, use_boolean=parameters['use_boolean']) # Convert matrices to CSR and write to disk. if not FLAGS.skip_existing or not output_path.exists(): logging.info('Writing CSR matrix to: %s', output_path) mat_csr = mat_coo.tocsr() _write_csr(output_path, mat_csr) del mat_csr # Free up memory asap. else: logging.info( '%s exists: skipping. Use flag `--skip_existing=False`' 'to force overwrite existing.', output_path) if not FLAGS.skip_existing or not output_path_t.exists(): logging.info('Writing (transposed) CSR matrix to: %s', output_path_t) mat_csr_t = mat_coo.transpose().tocsr() _write_csr(output_path_t, mat_csr_t) del mat_csr_t # Free up memory asap. else: logging.info( '%s exists: skipping. Use flag `--skip_existing=False`' 'to force overwrite existing.', output_path_t) del mat_coo # Free up memory asap. if __name__ == '__main__': app.run(main) ================================================ FILE: ogb_lsc/mag/data_utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Dataset utilities.""" import functools import pathlib from typing import Dict, Tuple from absl import logging from graph_nets import graphs as tf_graphs from graph_nets import utils_tf import numpy as np import scipy.sparse as sp import tensorflow as tf import tqdm # pylint: disable=g-bad-import-order import sub_sampler Path = pathlib.Path NUM_PAPERS = 121751666 NUM_AUTHORS = 122383112 NUM_INSTITUTIONS = 25721 EMBEDDING_SIZE = 768 NUM_CLASSES = 153 NUM_NODES = NUM_PAPERS + NUM_AUTHORS + NUM_INSTITUTIONS NUM_EDGES = 1_728_364_232 assert NUM_NODES == 244_160_499 NUM_K_FOLD_SPLITS = 10 OFFSETS = { "paper": 0, "author": NUM_PAPERS, "institution": NUM_PAPERS + NUM_AUTHORS, } SIZES = { "paper": NUM_PAPERS, "author": NUM_AUTHORS, "institution": NUM_INSTITUTIONS } RAW_DIR = Path("raw") PREPROCESSED_DIR = Path("preprocessed") RAW_NODE_FEATURES_FILENAME = RAW_DIR / "node_feat.npy" RAW_NODE_LABELS_FILENAME = RAW_DIR / "node_label.npy" RAW_NODE_YEAR_FILENAME = RAW_DIR / "node_year.npy" TRAIN_INDEX_FILENAME = RAW_DIR / "train_idx.npy" VALID_INDEX_FILENAME = RAW_DIR / "train_idx.npy" TEST_INDEX_FILENAME = RAW_DIR / "train_idx.npy" EDGES_PAPER_PAPER_B = PREPROCESSED_DIR / "paper_paper_b.npz" EDGES_PAPER_PAPER_B_T = PREPROCESSED_DIR / "paper_paper_b_t.npz" EDGES_AUTHOR_INSTITUTION = PREPROCESSED_DIR / "author_institution.npz" EDGES_INSTITUTION_AUTHOR = PREPROCESSED_DIR / "institution_author.npz" EDGES_AUTHOR_PAPER = PREPROCESSED_DIR / "author_paper.npz" EDGES_PAPER_AUTHOR = PREPROCESSED_DIR / "paper_author.npz" PCA_PAPER_FEATURES_FILENAME = PREPROCESSED_DIR / "paper_feat_pca_129.npy" PCA_AUTHOR_FEATURES_FILENAME = ( PREPROCESSED_DIR / "author_feat_from_paper_feat_pca_129.npy") PCA_INSTITUTION_FEATURES_FILENAME = ( PREPROCESSED_DIR / "institution_feat_from_paper_feat_pca_129.npy") PCA_MERGED_FEATURES_FILENAME = ( PREPROCESSED_DIR / "merged_feat_from_paper_feat_pca_129.npy") NEIGHBOR_INDICES_FILENAME = PREPROCESSED_DIR / "neighbor_indices.npy" NEIGHBOR_DISTANCES_FILENAME = PREPROCESSED_DIR / "neighbor_distances.npy" FUSED_NODE_LABELS_FILENAME = PREPROCESSED_DIR / "fused_node_labels.npy" FUSED_PAPER_EDGES_FILENAME = PREPROCESSED_DIR / "fused_paper_edges.npz" FUSED_PAPER_EDGES_T_FILENAME = PREPROCESSED_DIR / "fused_paper_edges_t.npz" K_FOLD_SPLITS_DIR = Path("k_fold_splits") def get_raw_directory(data_root): return Path(data_root) / "raw" def get_preprocessed_directory(data_root): return Path(data_root) / "preprocessed" def _log_path_decorator(fn): def _decorated_fn(path, **kwargs): logging.info("Loading %s", path) output = fn(path, **kwargs) logging.info("Finish loading %s", path) return output return _decorated_fn @_log_path_decorator def load_csr(path, debug=False): if debug: # Dummy matrix for debugging. return sp.csr_matrix(np.zeros([10, 10])) return sp.load_npz(str(path)) @_log_path_decorator def load_npy(path): return np.load(str(path)) @functools.lru_cache() def get_arrays(data_root="/data/", use_fused_node_labels=True, use_fused_node_adjacencies=True, return_pca_embeddings=True, k_fold_split_id=None, return_adjacencies=True, use_dummy_adjacencies=False): """Returns all arrays needed for training.""" logging.info("Starting to get files") data_root = Path(data_root) array_dict = {} array_dict["paper_year"] = load_npy(data_root / RAW_NODE_YEAR_FILENAME) if k_fold_split_id is None: train_indices = load_npy(data_root / TRAIN_INDEX_FILENAME) valid_indices = load_npy(data_root / VALID_INDEX_FILENAME) else: train_indices, valid_indices = get_train_and_valid_idx_for_split( k_fold_split_id, num_splits=NUM_K_FOLD_SPLITS, root_path=data_root / K_FOLD_SPLITS_DIR) array_dict["train_indices"] = train_indices array_dict["valid_indices"] = valid_indices array_dict["test_indices"] = load_npy(data_root / TEST_INDEX_FILENAME) if use_fused_node_labels: array_dict["paper_label"] = load_npy(data_root / FUSED_NODE_LABELS_FILENAME) else: array_dict["paper_label"] = load_npy(data_root / RAW_NODE_LABELS_FILENAME) if return_adjacencies: logging.info("Starting to get adjacencies.") if use_fused_node_adjacencies: paper_paper_index = load_csr( data_root / FUSED_PAPER_EDGES_FILENAME, debug=use_dummy_adjacencies) paper_paper_index_t = load_csr( data_root / FUSED_PAPER_EDGES_T_FILENAME, debug=use_dummy_adjacencies) else: paper_paper_index = load_csr( data_root / EDGES_PAPER_PAPER_B, debug=use_dummy_adjacencies) paper_paper_index_t = load_csr( data_root / EDGES_PAPER_PAPER_B_T, debug=use_dummy_adjacencies) array_dict.update( dict( author_institution_index=load_csr( data_root / EDGES_AUTHOR_INSTITUTION, debug=use_dummy_adjacencies), institution_author_index=load_csr( data_root / EDGES_INSTITUTION_AUTHOR, debug=use_dummy_adjacencies), author_paper_index=load_csr( data_root / EDGES_AUTHOR_PAPER, debug=use_dummy_adjacencies), paper_author_index=load_csr( data_root / EDGES_PAPER_AUTHOR, debug=use_dummy_adjacencies), paper_paper_index=paper_paper_index, paper_paper_index_t=paper_paper_index_t, )) if return_pca_embeddings: array_dict["bert_pca_129"] = np.load( data_root / PCA_MERGED_FEATURES_FILENAME, mmap_mode="r") assert array_dict["bert_pca_129"].shape == (NUM_NODES, 129) logging.info("Finish getting files") # pytype: disable=attribute-error assert array_dict["paper_year"].shape[0] == NUM_PAPERS assert array_dict["paper_label"].shape[0] == NUM_PAPERS if return_adjacencies and not use_dummy_adjacencies: array_dict = _fix_adjacency_shapes(array_dict) assert array_dict["paper_author_index"].shape == (NUM_PAPERS, NUM_AUTHORS) assert array_dict["author_paper_index"].shape == (NUM_AUTHORS, NUM_PAPERS) assert array_dict["paper_paper_index"].shape == (NUM_PAPERS, NUM_PAPERS) assert array_dict["paper_paper_index_t"].shape == (NUM_PAPERS, NUM_PAPERS) assert array_dict["institution_author_index"].shape == ( NUM_INSTITUTIONS, NUM_AUTHORS) assert array_dict["author_institution_index"].shape == ( NUM_AUTHORS, NUM_INSTITUTIONS) # pytype: enable=attribute-error return array_dict def add_nodes_year(graph, paper_year): nodes = graph.nodes.copy() indices = nodes["index"] year = paper_year[np.minimum(indices, paper_year.shape[0] - 1)].copy() year[nodes["type"] != 0] = 1900 nodes["year"] = year return graph._replace(nodes=nodes) def add_nodes_label(graph, paper_label): nodes = graph.nodes.copy() indices = nodes["index"] label = paper_label[np.minimum(indices, paper_label.shape[0] - 1)] label[nodes["type"] != 0] = 0 nodes["label"] = label return graph._replace(nodes=nodes) def add_nodes_embedding_from_array(graph, array): """Adds embeddings from the sstable_service for the indices.""" nodes = graph.nodes.copy() indices = nodes["index"] embedding_indices = indices.copy() embedding_indices[nodes["type"] == 1] += NUM_PAPERS embedding_indices[nodes["type"] == 2] += NUM_PAPERS + NUM_AUTHORS # Gather the embeddings for the indices. nodes["features"] = array[embedding_indices] return graph._replace(nodes=nodes) def get_graph_subsampling_dataset( prefix, arrays, shuffle_indices, ratio_unlabeled_data_to_labeled_data, max_nodes, max_edges, **subsampler_kwargs): """Returns tf_dataset for online sampling.""" def generator(): labeled_indices = arrays[f"{prefix}_indices"] if ratio_unlabeled_data_to_labeled_data > 0: num_unlabeled_data_to_add = int(ratio_unlabeled_data_to_labeled_data * labeled_indices.shape[0]) unlabeled_indices = np.random.choice( NUM_PAPERS, size=num_unlabeled_data_to_add, replace=False) root_node_indices = np.concatenate([labeled_indices, unlabeled_indices]) else: root_node_indices = labeled_indices if shuffle_indices: root_node_indices = root_node_indices.copy() np.random.shuffle(root_node_indices) for index in root_node_indices: graph = sub_sampler.subsample_graph( index, arrays["author_institution_index"], arrays["institution_author_index"], arrays["author_paper_index"], arrays["paper_author_index"], arrays["paper_paper_index"], arrays["paper_paper_index_t"], paper_years=arrays["paper_year"], max_nodes=max_nodes, max_edges=max_edges, **subsampler_kwargs) graph = add_nodes_label(graph, arrays["paper_label"]) graph = add_nodes_year(graph, arrays["paper_year"]) graph = tf_graphs.GraphsTuple(*graph) yield graph sample_graph = next(generator()) return tf.data.Dataset.from_generator( generator, output_signature=utils_tf.specs_from_graphs_tuple(sample_graph)) def paper_features_to_author_features( author_paper_index, paper_features): """Averages paper features to authors.""" assert paper_features.shape[0] == NUM_PAPERS assert author_paper_index.shape[0] == NUM_AUTHORS author_features = np.zeros( [NUM_AUTHORS, paper_features.shape[1]], dtype=paper_features.dtype) for author_i in range(NUM_AUTHORS): paper_indices = author_paper_index[author_i].indices author_features[author_i] = paper_features[paper_indices].mean( axis=0, dtype=np.float32) if author_i % 10000 == 0: logging.info("%d/%d", author_i, NUM_AUTHORS) return author_features def author_features_to_institution_features( institution_author_index, author_features): """Averages author features to institutions.""" assert author_features.shape[0] == NUM_AUTHORS assert institution_author_index.shape[0] == NUM_INSTITUTIONS institution_features = np.zeros( [NUM_INSTITUTIONS, author_features.shape[1]], dtype=author_features.dtype) for institution_i in range(NUM_INSTITUTIONS): author_indices = institution_author_index[institution_i].indices institution_features[institution_i] = author_features[ author_indices].mean(axis=0, dtype=np.float32) if institution_i % 10000 == 0: logging.info("%d/%d", institution_i, NUM_INSTITUTIONS) return institution_features def generate_fused_paper_adjacency_matrix(neighbor_indices, neighbor_distances, paper_paper_csr): """Generates fused adjacency matrix for identical nodes.""" # First construct set of identical node indices. # NOTE: Since we take only top K=26 identical pairs for each node, this is not # actually exhaustive. Also, if A and B are equal, and B and C are equal, # this method would not necessarily detect A and C being equal. # However, this should capture almost all cases. logging.info("Generating fused paper adjacency matrix") eps = 0.0 mask = ((neighbor_indices != np.mgrid[:neighbor_indices.shape[0], :1]) & (neighbor_distances <= eps)) identical_pairs = list(map(tuple, np.nonzero(mask))) del mask # Have a csc version for fast column access. paper_paper_csc = paper_paper_csr.tocsc() # Construct new matrix as coo, starting off with original rows/cols. paper_paper_coo = paper_paper_csr.tocoo() new_rows = [paper_paper_coo.row] new_cols = [paper_paper_coo.col] for pair in tqdm.tqdm(identical_pairs): # STEP ONE: First merge papers being cited by the pair. # Add edges from second paper, to all papers cited by first paper. cited_by_first = paper_paper_csr.getrow(pair[0]).nonzero()[1] if cited_by_first.shape[0] > 0: new_rows.append(pair[1] * np.ones_like(cited_by_first)) new_cols.append(cited_by_first) # Add edges from first paper, to all papers cited by second paper. cited_by_second = paper_paper_csr.getrow(pair[1]).nonzero()[1] if cited_by_second.shape[0] > 0: new_rows.append(pair[0] * np.ones_like(cited_by_second)) new_cols.append(cited_by_second) # STEP TWO: Then merge papers that cite the pair. # Add edges to second paper, from all papers citing the first paper. citing_first = paper_paper_csc.getcol(pair[0]).nonzero()[0] if citing_first.shape[0] > 0: new_rows.append(citing_first) new_cols.append(pair[1] * np.ones_like(citing_first)) # Add edges to first paper, from all papers citing the second paper. citing_second = paper_paper_csc.getcol(pair[1]).nonzero()[0] if citing_second.shape[0] > 0: new_rows.append(citing_second) new_cols.append(pair[0] * np.ones_like(citing_second)) logging.info("Done with adjacency loop") paper_paper_coo_shape = paper_paper_coo.shape del paper_paper_csr del paper_paper_csc del paper_paper_coo # All done; now concatenate everything together and form new matrix. new_rows = np.concatenate(new_rows) new_cols = np.concatenate(new_cols) return sp.coo_matrix( (np.ones_like(new_rows, dtype=bool), (new_rows, new_cols)), shape=paper_paper_coo_shape).tocsr() def generate_k_fold_splits( train_idx, valid_idx, output_path, num_splits=NUM_K_FOLD_SPLITS): """Generates splits adding fractions of the validation split to training.""" output_path = Path(output_path) np.random.seed(42) valid_idx = np.random.permutation(valid_idx) # Split into `num_parts` (almost) identically sized arrays. valid_idx_parts = np.array_split(valid_idx, num_splits) for i in range(num_splits): # Add all but the i'th subpart to training set. new_train_idx = np.concatenate( [train_idx, *valid_idx_parts[:i], *valid_idx_parts[i+1:]]) # i'th subpart is validation set. new_valid_idx = valid_idx_parts[i] train_path = output_path / f"train_idx_{i}_{num_splits}.npy" valid_path = output_path / f"valid_idx_{i}_{num_splits}.npy" np.save(train_path, new_train_idx) np.save(valid_path, new_valid_idx) logging.info("Saved: %s", train_path) logging.info("Saved: %s", valid_path) def get_train_and_valid_idx_for_split( split_id: int, num_splits: int, root_path: str, ) -> Tuple[np.ndarray, np.ndarray]: """Returns train and valid indices for given split.""" new_train_idx = load_npy(f"{root_path}/train_idx_{split_id}_{num_splits}.npy") new_valid_idx = load_npy(f"{root_path}/valid_idx_{split_id}_{num_splits}.npy") return new_train_idx, new_valid_idx def generate_fused_node_labels(neighbor_indices, neighbor_distances, node_labels, train_indices, valid_indices, test_indices): """Generates fused adjacency matrix for identical nodes.""" logging.info("Generating fused node labels") valid_indices = set(valid_indices.tolist()) test_indices = set(test_indices.tolist()) valid_or_test_indices = valid_indices | test_indices train_indices = train_indices[train_indices < neighbor_indices.shape[0]] # Go through list of all pairs where one node is in training set, and for i in tqdm.tqdm(train_indices): for j in range(neighbor_indices.shape[1]): other_index = neighbor_indices[i][j] # if the other is not a validation or test node, if other_index in valid_or_test_indices: continue # and they are identical, if neighbor_distances[i][j] == 0: # assign the label of the training node to the other node node_labels[other_index] = node_labels[i] return node_labels def _pad_to_shape( sparse_csr_matrix: sp.csr_matrix, output_shape: Tuple[int, int]) -> sp.csr_matrix: """Pads a csr sparse matrix to the given shape.""" # We should not try to expand anything smaller. assert np.all(sparse_csr_matrix.shape <= output_shape) # Maybe it already has the right shape. if sparse_csr_matrix.shape == output_shape: return sparse_csr_matrix # Append as many indptr elements as we need to match the leading size, # This is achieved by just padding with copies of the last indptr element. required_padding = output_shape[0] - sparse_csr_matrix.shape[0] updated_indptr = np.concatenate( [sparse_csr_matrix.indptr] + [sparse_csr_matrix.indptr[-1:]] * required_padding, axis=0) # The change in trailing size does not have structural implications, it just # determines the highest possible value for the indices, so it is sufficient # to just pass the new output shape, with the correct trailing size. return sp.csr.csr_matrix( (sparse_csr_matrix.data, sparse_csr_matrix.indices, updated_indptr), shape=output_shape) def _fix_adjacency_shapes( arrays: Dict[str, sp.csr.csr_matrix], ) -> Dict[str, sp.csr.csr_matrix]: """Fixes the shapes of the adjacency matrices.""" arrays = arrays.copy() for key in ["author_institution_index", "author_paper_index", "paper_paper_index", "institution_author_index", "paper_author_index", "paper_paper_index_t"]: type_sender = key.split("_")[0] type_receiver = key.split("_")[1] arrays[key] = _pad_to_shape( arrays[key], output_shape=(SIZES[type_sender], SIZES[type_receiver])) return arrays ================================================ FILE: ogb_lsc/mag/datasets.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """MAG240M-LSC datasets.""" import threading from typing import NamedTuple, Optional import jax import jraph from ml_collections import config_dict import numpy as np import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds # pylint: disable=g-bad-import-order # pytype: disable=import-error import batching_utils import data_utils # We only want to load these arrays once for all threads. # `get_arrays` uses an LRU cache which is not thread safe. LOADING_RAW_ARRAYS_LOCK = threading.Lock() NUM_CLASSES = data_utils.NUM_CLASSES _MAX_DEPTH_IN_SUBGRAPH = 3 class Batch(NamedTuple): """NamedTuple to represent batches of data.""" graph: jraph.GraphsTuple node_labels: np.ndarray label_mask: np.ndarray central_node_mask: np.ndarray node_indices: np.ndarray absolute_node_indices: np.ndarray def build_dataset_iterator( data_root: str, split: str, dynamic_batch_size_config: config_dict.ConfigDict, online_subsampling_kwargs: dict, # pylint: disable=g-bare-generic debug: bool = False, is_training: bool = True, k_fold_split_id: Optional[int] = None, ratio_unlabeled_data_to_labeled_data: float = 0.0, use_all_labels_when_not_training: bool = False, use_dummy_adjacencies: bool = False, ): """Returns an iterator over Batches from the dataset.""" if split == 'test': use_all_labels_when_not_training = True if not is_training: ratio_unlabeled_data_to_labeled_data = 0.0 # Load the master data arrays. with LOADING_RAW_ARRAYS_LOCK: array_dict = data_utils.get_arrays( data_root, k_fold_split_id=k_fold_split_id, use_dummy_adjacencies=use_dummy_adjacencies) node_labels = array_dict['paper_label'].reshape(-1) train_indices = array_dict['train_indices'].astype(np.int32) is_train_index = np.zeros(node_labels.shape[0], dtype=np.int32) is_train_index[train_indices] = 1 valid_indices = array_dict['valid_indices'].astype(np.int32) is_valid_index = np.zeros(node_labels.shape[0], dtype=np.int32) is_valid_index[valid_indices] = 1 is_train_or_valid_index = is_train_index + is_valid_index def sstable_to_intermediate_graph(graph): indices = tf.cast(graph.nodes['index'], tf.int32) first_index = indices[..., 0] # Add an additional absolute index, but adding offsets to authors, and # institution indices. absolute_index = graph.nodes['index'] is_author = graph.nodes['type'] == 1 absolute_index = tf.where( is_author, absolute_index + data_utils.NUM_PAPERS, absolute_index) is_institution = graph.nodes['type'] == 2 absolute_index = tf.where( is_institution, absolute_index + data_utils.NUM_PAPERS + data_utils.NUM_AUTHORS, absolute_index) is_same_as_central_node = tf.math.equal(indices, first_index) input_nodes = graph.nodes graph = graph._replace( nodes={ 'one_hot_type': tf.one_hot(tf.cast(input_nodes['type'], tf.int32), 3), 'one_hot_depth': tf.one_hot( tf.cast(input_nodes['depth'], tf.int32), _MAX_DEPTH_IN_SUBGRAPH), 'year': tf.expand_dims(input_nodes['year'], axis=-1), 'label': tf.one_hot( tf.cast(input_nodes['label'], tf.int32), NUM_CLASSES), 'is_same_as_central_node': is_same_as_central_node, # Only first node in graph has a valid label. 'is_central_node': tf.one_hot(0, tf.shape(input_nodes['label'])[0]), 'index': input_nodes['index'], 'absolute_index': absolute_index, }, globals=tf.expand_dims(graph.globals, axis=-1), ) return graph ds = data_utils.get_graph_subsampling_dataset( split, array_dict, shuffle_indices=is_training, ratio_unlabeled_data_to_labeled_data=ratio_unlabeled_data_to_labeled_data, max_nodes=dynamic_batch_size_config.n_node - 1, # Keep space for pads. max_edges=dynamic_batch_size_config.n_edge, **online_subsampling_kwargs) if debug: ds = ds.take(50) ds = ds.map( sstable_to_intermediate_graph, num_parallel_calls=tf.data.experimental.AUTOTUNE) if is_training: ds = ds.shard(jax.process_count(), jax.process_index()) ds = ds.shuffle(buffer_size=1 if debug else 128) ds = ds.repeat() ds = ds.prefetch(1 if debug else tf.data.experimental.AUTOTUNE) np_ds = iter(tfds.as_numpy(ds)) batched_np_ds = batching_utils.dynamically_batch( np_ds, **dynamic_batch_size_config, ) def intermediate_graph_to_batch(graph): central_node_mask = graph.nodes['is_central_node'] label = graph.nodes['label'] node_indices = graph.nodes['index'] absolute_indices = graph.nodes['absolute_index'] ### Construct label as a feature for non-central nodes. # First do a lookup with node indices, with a np.minimum to ensure we do not # index out of bounds due to num_authors being larger than num_papers. is_same_as_central_node = graph.nodes['is_same_as_central_node'] capped_indices = np.minimum(node_indices, node_labels.shape[0] - 1) label_as_feature = node_labels[capped_indices] # Nodes which are not in train set should get `num_classes` label. # Nodes in test set or non-arXiv nodes have -1 or nan labels. # Mask out invalid labels and non-papers. use_label_as_feature = np.logical_and(label_as_feature >= 0, graph.nodes['one_hot_type'][..., 0]) if split == 'train' or not use_all_labels_when_not_training: # Mask out validation papers and non-arxiv papers who # got labels from fusing with arxiv papers. use_label_as_feature = np.logical_and(is_train_index[capped_indices], use_label_as_feature) label_as_feature = np.where(use_label_as_feature, label_as_feature, NUM_CLASSES) # Mask out central node label in case it appears again. label_as_feature = np.where(is_same_as_central_node, NUM_CLASSES, label_as_feature) # Nodes which are not papers get `NUM_CLASSES+1` label. label_as_feature = np.where(graph.nodes['one_hot_type'][..., 0], label_as_feature, NUM_CLASSES+1) nodes = { 'label_as_feature': label_as_feature, 'year': graph.nodes['year'], 'bitstring_year': _get_bitstring_year_representation( graph.nodes['year']), 'one_hot_type': graph.nodes['one_hot_type'], 'one_hot_depth': graph.nodes['one_hot_depth'], } graph = graph._replace( nodes=nodes, globals={}, ) is_train_or_valid_node = np.logical_and( is_train_or_valid_index[capped_indices], graph.nodes['one_hot_type'][..., 0]) if is_training: label_mask = np.logical_and(central_node_mask, is_train_or_valid_node) else: # `label_mask` is used to index into valid central nodes by prediction # calculator. Since that computation is only done when not training, and # at that time we are guaranteed all central nodes have valid labels, # we just set label_mask = central_node_mask when not training. label_mask = central_node_mask batch = Batch( graph=graph, node_labels=label, central_node_mask=central_node_mask, label_mask=label_mask, node_indices=node_indices, absolute_node_indices=absolute_indices) # Transform integers into one-hots. batch = _add_one_hot_features_to_batch(batch) # Gather PCA features. return _add_embeddings_to_batch(batch, array_dict['bert_pca_129']) batch_list = [] for batch in batched_np_ds: with jax.profiler.StepTraceAnnotation('batch_postprocessing'): batch = intermediate_graph_to_batch(batch) if is_training: batch_list.append(batch) if len(batch_list) == jax.local_device_count(): yield jax.device_put_sharded(batch_list, jax.local_devices()) batch_list = [] else: yield batch def _get_bitstring_year_representation(year: np.ndarray): """Return year as bitstring.""" min_year = 1900 max_training_year = 2018 offseted_year = np.minimum(year, max_training_year) - min_year return np.unpackbits(offseted_year.astype(np.uint8), axis=-1) def _np_one_hot(targets: np.ndarray, nb_classes: int): res = np.zeros(targets.shape + (nb_classes,), dtype=np.float16) np.put_along_axis(res, targets.astype(np.int32)[..., None], 1.0, axis=-1) return res def _get_one_hot_year_representation( year: np.ndarray, one_hot_type: np.ndarray, ): """Returns good representation for year.""" # Bucket edges found based on quantiles to bucket into 20 equal sized buckets. bucket_edges = np.array([ 1964, 1975, 1983, 1989, 1994, 1998, 2001, 2004, 2006, 2008, 2009, 2011, 2012, 2013, 2014, 2016, 2017, # 2018, 2019, 2020 contain last-year-of-train, eval, test nodes ]) year = np.squeeze(year, axis=-1) year_id = np.searchsorted(bucket_edges, year) is_paper = one_hot_type[..., 0] bucket_id_for_non_paper = len(bucket_edges) + 1 bucket_id = np.where(is_paper, year_id, bucket_id_for_non_paper) one_hot_year = _np_one_hot(bucket_id, len(bucket_edges) + 2) return one_hot_year def _add_one_hot_features_to_batch(batch: Batch) -> Batch: """Transforms integer features into one-hot features.""" nodes = batch.graph.nodes.copy() nodes['one_hot_year'] = _get_one_hot_year_representation( nodes['year'], nodes['one_hot_type']) del nodes['year'] # NUM_CLASSES plus one category for papers for which a class is not provided # and another for nodes that are not papers. nodes['one_hot_label_as_feature'] = _np_one_hot( nodes['label_as_feature'], NUM_CLASSES + 2) del nodes['label_as_feature'] return batch._replace(graph=batch.graph._replace(nodes=nodes)) def _add_embeddings_to_batch(batch: Batch, embeddings: np.ndarray) -> Batch: nodes = batch.graph.nodes.copy() nodes['features'] = embeddings[batch.absolute_node_indices] graph = batch.graph._replace(nodes=nodes) return batch._replace(graph=graph) ================================================ FILE: ogb_lsc/mag/download_mag.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Download data required for training and evaluating models.""" import pathlib from absl import app from absl import flags from absl import logging from google.cloud import storage # pylint: disable=g-bad-import-order import data_utils Path = pathlib.Path _BUCKET_NAME = 'deepmind-ogb-lsc' _MAX_DOWNLOAD_ATTEMPTS = 5 FLAGS = flags.FLAGS flags.DEFINE_enum('payload', None, ['data', 'models'], 'Download "data" or "models"?') flags.DEFINE_string('task_root', None, 'Local task root directory') DATA_RELATIVE_PATHS = ( data_utils.RAW_NODE_YEAR_FILENAME, data_utils.TRAIN_INDEX_FILENAME, data_utils.VALID_INDEX_FILENAME, data_utils.TEST_INDEX_FILENAME, data_utils.K_FOLD_SPLITS_DIR, data_utils.FUSED_NODE_LABELS_FILENAME, data_utils.FUSED_PAPER_EDGES_FILENAME, data_utils.FUSED_PAPER_EDGES_T_FILENAME, data_utils.EDGES_AUTHOR_INSTITUTION, data_utils.EDGES_INSTITUTION_AUTHOR, data_utils.EDGES_AUTHOR_PAPER, data_utils.EDGES_PAPER_AUTHOR, data_utils.PCA_MERGED_FEATURES_FILENAME, ) class DataCorruptionError(Exception): pass def _get_gcs_root(): return Path('mag') / FLAGS.payload def _get_gcs_bucket(): storage_client = storage.Client.create_anonymous_client() return storage_client.bucket(_BUCKET_NAME) def _write_blob_to_destination(blob, task_root, ignore_existing=True): """Write the blob.""" logging.info("Copying blob: '%s'", blob.name) destination_path = Path(task_root) / Path(*Path(blob.name).parts[1:]) logging.info(" ... to: '%s'", str(destination_path)) if ignore_existing and destination_path.exists(): return destination_path.parent.mkdir(parents=True, exist_ok=True) checksum = 'crc32c' for attempt in range(_MAX_DOWNLOAD_ATTEMPTS): try: blob.download_to_filename(destination_path.as_posix(), checksum=checksum) except storage.client.resumable_media.common.DataCorruption: pass else: break else: raise DataCorruptionError(f"Checksum ('{checksum}') for {blob.name} failed " f'after {attempt + 1} attempts') def main(unused_argv): bucket = _get_gcs_bucket() if FLAGS.payload == 'data': relative_paths = DATA_RELATIVE_PATHS else: relative_paths = (None,) for relative_path in relative_paths: if relative_path is None: relative_path = str(_get_gcs_root()) else: relative_path = str(_get_gcs_root() / relative_path) logging.info("Copying relative path: '%s'", relative_path) blobs = bucket.list_blobs(prefix=relative_path) for blob in blobs: _write_blob_to_destination(blob, FLAGS.task_root) if __name__ == '__main__': flags.mark_flag_as_required('payload') flags.mark_flag_as_required('task_root') app.run(main) ================================================ FILE: ogb_lsc/mag/ensemble_predictions.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Ensemble k-fold predictions and generate final submission file.""" import collections import os from absl import app from absl import flags from absl import logging import dill import jax import numpy as np from ogb import lsc # pylint: disable=g-bad-import-order import data_utils import losses _NUM_KFOLD_SPLITS = 10 FLAGS = flags.FLAGS _DATA_ROOT = flags.DEFINE_string('data_root', None, 'Path to the data root') _SPLIT = flags.DEFINE_enum('split', None, ['valid', 'test'], 'Data split') _PREDICTIONS_PATH = flags.DEFINE_string( 'predictions_path', None, 'Path with the output of the k-fold models.') _OUTPUT_PATH = flags.DEFINE_string('output_path', None, 'Output path.') def _np_one_hot(targets: np.ndarray, nb_classes: int): res = np.zeros(targets.shape + (nb_classes,), dtype=np.float32) np.put_along_axis(res, targets.astype(np.int32)[..., None], 1.0, axis=-1) return res def ensemble_predictions( node_idx_to_logits_list, all_labels, node_indices, use_mode_break_tie_by_mean: bool = True, ): """Ensemble together predictions for each node and generate final predictions.""" # First, assert that each node has the same number of predictions to ensemble. num_predictions_per_node = [ len(x) for x in node_idx_to_logits_list.values() ] num_models = np.unique(num_predictions_per_node) assert num_models.shape[0] == 1 num_models = num_models[0] # Gather all logits, shape should be [num_nodes, num_models, num_classes]. all_logits = np.stack( [np.stack(node_idx_to_logits_list[idx]) for idx in node_indices]) assert all_logits.shape == (node_indices.shape[0], num_models, data_utils.NUM_CLASSES) # Softmax on the final axis. all_probs = jax.nn.softmax(all_logits, axis=-1) # Take average across models axis to get probabilities. mean_probs = np.mean(all_probs, axis=1) # Assert there are no 2 equal logits for different classes. max_logit_value = np.max(all_logits, axis=-1) num_classes_with_max_value = ( all_logits == max_logit_value[..., None]).sum(axis=-1) num_logit_ties = (num_classes_with_max_value > 1).sum() if num_logit_ties: logging.warn( 'Found %d models with the exact same logits for two of the classes. ' '`argmax` will choose the first.', num_logit_ties) # Each model votes on one class per type. all_votes = np.argmax(all_logits, axis=-1) assert all_votes.shape == (node_indices.shape[0], num_models) all_votes_one_hot = _np_one_hot(all_votes, data_utils.NUM_CLASSES) assert all_votes_one_hot.shape == (node_indices.shape[0], num_models, data_utils.NUM_CLASSES) num_votes_per_class = np.sum(all_votes_one_hot, axis=1) assert num_votes_per_class.shape == ( node_indices.shape[0], data_utils.NUM_CLASSES) if use_mode_break_tie_by_mean: # Slight hack, give high weight to votes (any number > 1 works really) # and add probabilities between [0, 1] per class to tie-break only within # classes with equal votes. total_score = 10 * num_votes_per_class + mean_probs else: # Just take mean. total_score = mean_probs ensembled_logits = np.log(total_score) return losses.Predictions( node_indices=node_indices, labels=all_labels, logits=ensembled_logits, predictions=np.argmax(ensembled_logits, axis=-1), ) def load_predictions(predictions_path, split): """Loads set of predictions made by given XID.""" # Generate list of predictions per node. # Note for validation each validation index is only present in exactly 1 # model of the k-fold, however for test it is present in all of them. node_idx_to_logits_list = collections.defaultdict(list) # For the 10 models in the ensemble. for i in range(_NUM_KFOLD_SPLITS): path = os.path.join(predictions_path, str(i)) # Find subdirectories. # Directories will be something like: # os.path.join(path, "step_104899_2021-06-14T18:20:05", "(test|valid).dill") # So we make sure there is only one. candidates = [] for date_str in os.listdir(path): candidate_path = os.path.join(path, date_str, f'{split}.dill') if os.path.exists(candidate_path): candidates.append(candidate_path) if not candidates: raise ValueError(f'No {split} predictions found at {path}') elif len(candidates) > 1: raise ValueError(f'Found more than one {split} predictions: {candidates}') path_for_kth_model_predictions = candidates[0] with open(path_for_kth_model_predictions, 'rb') as f: results = dill.load(f) logging.info('Loaded %s', path_for_kth_model_predictions) for (node_idx, logits) in zip(results.node_indices, results.logits): node_idx_to_logits_list[node_idx].append(logits) return node_idx_to_logits_list def generate_ensembled_predictions( data_root: str, predictions_path: str, split: str) -> losses.Predictions: """Ensemble checkpoints from all WIDs in XID and generates submission file.""" array_dict = data_utils.get_arrays( data_root=data_root, return_pca_embeddings=False, return_adjacencies=False) # Load all valid and test predictions. node_idx_to_logits_list = load_predictions(predictions_path, split) # Assert that the indices loaded are as expected. expected_idx = array_dict[f'{split}_indices'] idx_found = np.array(list(node_idx_to_logits_list.keys())) assert np.all(np.sort(idx_found) == expected_idx) if split == 'valid': true_labels = array_dict['paper_label'][expected_idx.astype(np.int32)] else: # Don't know the test labels. true_labels = np.full(expected_idx.shape, np.nan) # Ensemble together all predictions. return ensemble_predictions( node_idx_to_logits_list, true_labels, expected_idx) def evaluate_validation(valid_predictions): evaluator = lsc.MAG240MEvaluator() evaluator_ouput = evaluator.eval( dict(y_pred=valid_predictions.predictions.astype(np.float64), y_true=valid_predictions.labels)) logging.info( 'Validation accuracy as reported by MAG240MEvaluator: %s', evaluator_ouput) def save_test_submission_file(test_predictions, output_dir): evaluator = lsc.MAG240MEvaluator() evaluator.save_test_submission( dict(y_pred=test_predictions.predictions.astype(np.float64)), output_dir) logging.info('Test submission file generated at %s', output_dir) def main(argv): del argv split = _SPLIT.value ensembled_predictions = generate_ensembled_predictions( data_root=_DATA_ROOT.value, predictions_path=_PREDICTIONS_PATH.value, split=split) output_dir = _OUTPUT_PATH.value os.makedirs(output_dir, exist_ok=True) if split == 'valid': evaluate_validation(ensembled_predictions) elif split == 'test': save_test_submission_file(ensembled_predictions, output_dir) ensembled_predictions_path = os.path.join(output_dir, f'{split}.dill') assert not os.path.exists(ensembled_predictions_path) with open(ensembled_predictions_path, 'wb') as f: dill.dump(ensembled_predictions, f) logging.info( '%s predictions stored at %s', split, ensembled_predictions_path) if __name__ == '__main__': app.run(main) ================================================ FILE: ogb_lsc/mag/experiment.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # pylint: disable=line-too-long r"""MAG240M-LSC Jaxline experiment. Usage: ``` # A path pointing to the data root. DATA_ROOT=/tmp/mag/data # A path for checkpoints. CHECKPOINT_DIR=/tmp/checkpoint/ # A path for output predictions. OUTPUT_DIR=/tmp/predictions/ # Whether we are training a model of a k_fold of models (None for no k-fold) K_FOLD_INDEX=0 ``` Some reusable arguments: ``` SHARED_ARGUMENTS="--config=ogb_lsc/mag/config.py \ --config.experiment_kwargs.config.dataset_kwargs.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_kwargs.k_fold_split_id=${K_FOLD_INDEX} \ --config.checkpoint_dir=${CHECKPOINT_DIR}" ``` Train only: ``` python -m ogb_lsc.mag.experiment \ ${SHARED_ARGUMENTS} --jaxline_mode="train" RESTORE_PATH=${CHECKPOINT_DIR}/models/latest/step_${STEP}_${TIMESTAMP} ``` Train with early stopping on a separate eval thread: ``` python -m ogb_lsc.mag.experiment \ ${SHARED_ARGUMENTS} --jaxline_mode="train_eval_multithreaded" RESTORE_PATH=${CHECKPOINT_DIR}/models/best/step_${STEP}_${TIMESTAMP} ``` Produce predictions with a pretrained model: ``` SPLIT="valid" # Or "test" EPOCHS_TO_ENSEMBLE=50 # We used this in the submission. python -m ogb_lsc.mag.experiment \ ${SHARED_ARGUMENTS} --jaxline_mode="eval" \ --config.one_off_evaluate=True \ --config.experiment_kwargs.config.num_eval_iterations_to_ensemble=${EPOCHS_TO_ENSEMBLE} \ --config.restore_path=${RESTORE_PATH} \ --config.experiment_kwargs.config.predictions_dir=${OUTPUT_DIR} \ --config.experiment_kwargs.config.eval.split=${SPLIT} ``` Note it is also possible to pass a `restore_path` with `--jaxline_mode="train"` and training will continue where it left off. In the case of `--jaxline_mode="train_eval_multithreaded"` this will also work, but early stopping will not take into account any past best performance up to that restored model. Other useful options: To reduce the training batch size in case of OOM, for example for a batch size of approximately 48 on average. ``` SHARED_ARGUMENTS="${SHARED_ARGUMENTS} \ --config.experiment_kwargs.config.training.dynamic_batch_size_config.n_node=16320 \ --config.experiment_kwargs.config.training.dynamic_batch_size_config.n_edge=34560 \ --config.experiment_kwargs.config.training.dynamic_batch_size_config.n_graph=48" ``` To reduce lead time by using dummy adjacency matrices, instead of loading the the full ones into memory. ``` SHARED_ARGUMENTS="${SHARED_ARGUMENTS} \ --config.experiment_kwargs.config.dataset_kwargs.use_dummy_adjacencies=True" ``` """ # pylint: enable=line-too-long import datetime import functools import os import signal import threading from typing import Tuple from absl import app from absl import flags from absl import logging import chex import dill import haiku as hk import jax from jax.config import config as jax_config import jax.numpy as jnp from jaxline import experiment from jaxline import platform from jaxline import utils import jraph from ml_collections import config_dict import numpy as np import optax import tensorflow.compat.v2 as tf # pylint: disable=g-bad-import-order import datasets import losses import models import schedules FLAGS = flags.FLAGS class Experiment(experiment.AbstractExperiment): """MAG240M-LSC Jaxline experiment.""" CHECKPOINT_ATTRS = { '_params': 'params', '_opt_state': 'opt_state', '_network_state': 'network_state', '_ema_network_state': 'ema_network_state', '_ema_params': 'ema_params', } def __init__( self, mode: str, init_rng: jnp.ndarray, config: config_dict.ConfigDict, ): """Initializes experiment.""" super(Experiment, self).__init__(mode=mode, init_rng=init_rng) tf.config.experimental.set_visible_devices([], device_type='GPU') tf.config.experimental.set_visible_devices([], device_type='TPU') if mode not in ('train', 'eval', 'train_eval_multithreaded'): raise ValueError(f'Invalid mode {mode}.') self.mode = mode self.config = config self.init_rng = init_rng self.forward = hk.transform_with_state(self._forward_fn) self._predictions = None # Needed for checkpoint restore. self._params = None self._ema_params = None self._network_state = None self._ema_network_state = None self._opt_state = None # Track what has started. self._training = False self._evaluating = False def _train_init(self): iterator = self._build_numpy_dataset_iterator('train', is_training=True) self._train_input = utils.py_prefetch(lambda: iterator) dummy_batch = next(self._train_input) if self._params is None: self._initialize_experiment_state(self.init_rng, dummy_batch) self._update_func = jax.pmap( self._update_func, axis_name='i', donate_argnums=3, ) self._training = True def _eval_init(self): split = self.config.eval.split # Will build the iterator at each evaluation. self._make_eval_dataset_iterator = functools.partial( utils.py_prefetch, lambda: self._build_numpy_dataset_iterator(split, is_training=False)) self.eval_forward = jax.jit( functools.partial(self.forward.apply, is_training=False)) self._evaluating = True # _ _ # | |_ _ __ __ _(_)_ __ # | __| '__/ _` | | '_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step( self, global_step: jnp.ndarray, rng: jnp.ndarray, **unused_args, ) -> losses.LogsDict: """See Jaxline base class.""" if not self._training: self._train_init() with jax.profiler.StepTraceAnnotation('next_train_input'): batch = next(self._train_input) with jax.profiler.StepTraceAnnotation('update_step'): (self._params, self._ema_params, self._network_state, self._ema_network_state, self._opt_state, stats) = self._update_func( self._params, self._ema_params, self._network_state, self._ema_network_state, self._opt_state, global_step, rng, batch, ) del batch # Buffers donated to _update_func. with jax.profiler.StepTraceAnnotation('get_stats'): stats = utils.get_first(stats) return stats def _build_numpy_dataset_iterator(self, split: str, is_training: bool): if is_training: dynamic_batch_size_config = self.config.training.dynamic_batch_size_config else: dynamic_batch_size_config = self.config.eval.dynamic_batch_size_config return datasets.build_dataset_iterator( split=split, dynamic_batch_size_config=dynamic_batch_size_config, debug=self.config.debug, is_training=is_training, **self.config.dataset_kwargs) def _initialize_experiment_state( self, init_rng: jnp.ndarray, dummy_batch: datasets.Batch, ): """Initialize parameters and opt state if not restoring from checkpoint.""" dummy_graph = dummy_batch.graph # Cast features to float32 so that parameters are as appropriate. dummy_graph = dummy_graph._replace( nodes=jax.tree_map(lambda x: x.astype(np.float32), dummy_graph.nodes), edges=jax.tree_map(lambda x: x.astype(np.float32), dummy_graph.edges), ) init_key = utils.bcast_local_devices(init_rng) p_init = jax.pmap(functools.partial(self.forward.init, is_training=True)) params, network_state = p_init(init_key, dummy_graph) opt_init, _ = self._optimizer( utils.bcast_local_devices(jnp.zeros([], jnp.int32))) opt_state = jax.pmap(opt_init)(params) # For EMA decay to work correctly, params/state must be floats. chex.assert_type(jax.tree_leaves(params), jnp.floating) chex.assert_type(jax.tree_leaves(network_state), jnp.floating) self._params = params self._ema_params = params self._network_state = network_state self._ema_network_state = network_state self._opt_state = opt_state def _get_learning_rate(self, global_step: jnp.ndarray) -> jnp.ndarray: return schedules.learning_schedule( global_step, **self.config.optimizer.learning_rate_schedule, ) def _optimizer( self, learning_rate: jnp.ndarray, ) -> optax.GradientTransformation: optimizer_fn = getattr(optax, self.config.optimizer.name) return optimizer_fn( learning_rate=learning_rate, **self.config.optimizer.kwargs, ) def _forward_fn( self, input_graph: jraph.GraphsTuple, is_training: bool, stop_gradient_embedding_to_logits: bool = False, ): model = models.NodePropertyEncodeProcessDecode( num_classes=datasets.NUM_CLASSES, **self.config.model_config, ) return model(input_graph, is_training, stop_gradient_embedding_to_logits) def _bgrl_loss( self, params: hk.Params, ema_params: hk.Params, network_state: hk.State, ema_network_state: hk.State, rng: jnp.ndarray, batch: datasets.Batch, ) -> Tuple[jnp.ndarray, Tuple[losses.LogsDict, hk.State]]: """Computes fully supervised loss.""" # First compute 2 graph corrupted views. first_corruption_key, second_corruption_key, rng = jax.random.split(rng, 3) (first_model_key, first_model_key_ema, second_model_key, second_model_key_ema, rng) = jax.random.split(rng, 5) first_corrupted_graph = losses.get_corrupted_view( batch.graph, rng_key=first_corruption_key, **self.config.training.loss_config.bgrl_loss_config.first_graph_corruption_config, # pylint:disable=line-too-long ) second_corrupted_graph = losses.get_corrupted_view( batch.graph, rng_key=second_corruption_key, **self.config.training.loss_config.bgrl_loss_config.second_graph_corruption_config, # pylint:disable=line-too-long ) # Then run the model on both. first_corrupted_output, _ = self.forward.apply( params, network_state, first_model_key, first_corrupted_graph, is_training=True, stop_gradient_embedding_to_logits=True, ) second_corrupted_output, _ = self.forward.apply( params, network_state, second_model_key, second_corrupted_graph, is_training=True, stop_gradient_embedding_to_logits=True, ) first_corrupted_output_ema, _ = self.forward.apply( ema_params, ema_network_state, first_model_key_ema, first_corrupted_graph, is_training=True, stop_gradient_embedding_to_logits=True, ) second_corrupted_output_ema, _ = self.forward.apply( ema_params, ema_network_state, second_model_key_ema, second_corrupted_graph, is_training=True, stop_gradient_embedding_to_logits=True, ) # These also contain projections for non-central nodes; remove them. num_nodes_per_graph = batch.graph.n_node node_central_indices = jnp.concatenate( [jnp.array([0]), jnp.cumsum(num_nodes_per_graph[:-1])]) bgrl_loss, bgrl_stats = losses.bgrl_loss( first_online_predictions=first_corrupted_output .node_projection_predictions[node_central_indices], second_target_projections=second_corrupted_output_ema .node_embedding_projections[node_central_indices], second_online_predictions=second_corrupted_output .node_projection_predictions[node_central_indices], first_target_projections=first_corrupted_output_ema .node_embedding_projections[node_central_indices], symmetrize=self.config.training.loss_config.bgrl_loss_config.symmetrize, valid_mask=batch.central_node_mask[node_central_indices], ) # Finally train decoder on original graph with optional stop gradient. stop_gradient = ( self.config.training.loss_config.bgrl_loss_config .stop_gradient_for_supervised_loss) model_output, new_network_state = self.forward.apply( params, network_state, rng, batch.graph, is_training=True, stop_gradient_embedding_to_logits=stop_gradient, ) supervised_loss, supervised_stats = losses.node_classification_loss( model_output.node_logits, batch, ) stats = dict(**supervised_stats, **bgrl_stats) total_loss = ( supervised_loss + self.config.training.loss_config.bgrl_loss_config.bgrl_loss_scale * bgrl_loss) return total_loss, (stats, new_network_state) def _loss( self, params: hk.Params, ema_params: hk.Params, network_state: hk.State, ema_network_state: hk.State, rng: jnp.ndarray, batch: datasets.Batch, ) -> Tuple[jnp.ndarray, Tuple[losses.LogsDict, hk.State]]: """Compute loss from params and batch.""" # Cast to float32 since some losses are unstable with float16. graph = batch.graph._replace( nodes=jax.tree_map(lambda x: x.astype(jnp.float32), batch.graph.nodes), edges=jax.tree_map(lambda x: x.astype(jnp.float32), batch.graph.edges), ) batch = batch._replace(graph=graph) return self._bgrl_loss(params, ema_params, network_state, ema_network_state, rng, batch) def _update_func( self, params: hk.Params, ema_params: hk.Params, network_state: hk.State, ema_network_state: hk.State, opt_state: optax.OptState, global_step: jnp.ndarray, rng: jnp.ndarray, batch: datasets.Batch, ) -> Tuple[hk.Params, hk.Params, hk.State, hk.State, optax.OptState, losses.LogsDict]: """Updates parameters.""" grad_fn = jax.value_and_grad(self._loss, has_aux=True) (_, (stats, new_network_state)), grads = grad_fn( params, ema_params, network_state, ema_network_state, rng, batch) learning_rate = self._get_learning_rate(global_step) _, opt_apply = self._optimizer(learning_rate) grad = jax.lax.pmean(grads, axis_name='i') updates, opt_state = opt_apply(grad, opt_state, params) params = optax.apply_updates(params, updates) # Stats and logging. param_norm = optax.global_norm(params) grad_norm = optax.global_norm(grad) ema_rate = schedules.ema_decay_schedule( step=global_step, **self.config.eval.ema_annealing_schedule) num_non_padded_nodes = ( batch.graph.n_node.sum() - jraph.get_number_of_padding_with_graphs_nodes(batch.graph)) num_non_padded_edges = ( batch.graph.n_edge.sum() - jraph.get_number_of_padding_with_graphs_edges(batch.graph)) num_non_padded_graphs = ( batch.graph.n_node.shape[0] - jraph.get_number_of_padding_with_graphs_graphs(batch.graph)) avg_num_nodes = num_non_padded_nodes / num_non_padded_graphs avg_num_edges = num_non_padded_edges / num_non_padded_graphs stats.update( dict( global_step=global_step, grad_norm=grad_norm, param_norm=param_norm, learning_rate=learning_rate, ema_rate=ema_rate, avg_num_nodes=avg_num_nodes, avg_num_edges=avg_num_edges, )) ema_fn = (lambda x, y: # pylint:disable=g-long-lambda schedules.apply_ema_decay(x, y, ema_rate)) ema_params = jax.tree_map(ema_fn, ema_params, params) ema_network_state = jax.tree_map( ema_fn, ema_network_state, network_state, ) return (params, ema_params, new_network_state, ema_network_state, opt_state, stats) # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step, rng, **unused_kwargs): """See base class.""" if not self._evaluating: self._eval_init() global_step = np.array(utils.get_first(global_step)) ema_params = utils.get_first(self._ema_params) ema_network_state = utils.get_first(self._ema_network_state) rng = utils.get_first(rng) # Evaluate using the ema params. results, predictions = self._evaluate_with_ensemble(ema_params, ema_network_state, rng) results['global_step'] = global_step # Store predictions if we got a path. self._maybe_save_predictions(predictions, global_step) return results def _evaluate_with_ensemble( self, params: hk.Params, state: hk.State, rng: jnp.ndarray, ): predictions_for_ensemble = [] num_iterations = self.config.num_eval_iterations_to_ensemble for iteration in range(num_iterations): results, predictions = self._evaluate_params(params, state, rng) self._log_results(f'Eval iteration {iteration}/{num_iterations}', results) predictions_for_ensemble.append(predictions) if len(predictions_for_ensemble) > 1: predictions = losses.ensemble_predictions_by_probability_average( predictions_for_ensemble) results = losses.get_accuracy_dict(predictions) self._log_results(f'Ensembled {num_iterations} iterations', results) return results, predictions def _maybe_save_predictions(self, predictions, global_step): if not self.config.predictions_dir: return split = self.config.eval.split output_dir = os.path.join( self.config.predictions_dir, _get_step_date_label(global_step)) os.makedirs(output_dir, exist_ok=True) output_path = os.path.join(output_dir, split + '.dill') with open(output_path, 'wb') as f: dill.dump(predictions, f) logging.info('Saved %s predictions at: %s', split, output_path) def _evaluate_params( self, params: hk.Params, state: hk.State, rng: jnp.ndarray, ): """Evaluate given set of parameters.""" num_valid = 0 predictions_list = [] labels_list = [] logits_list = [] indices_list = [] for i, batch in enumerate(self._make_eval_dataset_iterator()): model_output, _ = self.eval_forward( params, state, rng, batch.graph, ) (masked_indices, masked_predictions, masked_labels, masked_logits) = losses.get_predictions_labels_and_logits( model_output.node_logits, batch) predictions_list.append(masked_predictions) indices_list.append(masked_indices) labels_list.append(masked_labels) logits_list.append(masked_logits) num_valid += jnp.sum(batch.label_mask) if i % 10 == 0: logging.info('Generate predictons for %d batches so far', i + 1) predictions = losses.Predictions( np.concatenate(indices_list, axis=0), np.concatenate(labels_list, axis=0), np.concatenate(predictions_list, axis=0), np.concatenate(logits_list, axis=0)) if self.config.eval.split == 'test': results = dict(num_valid=num_valid, accuracy=np.nan) else: results = losses.get_accuracy_dict(predictions) return results, predictions def _log_results(self, prefix, results): logging_str = ', '.join( ['{}={:.4f}'.format(k, float(results[k])) for k in sorted(results.keys())]) logging.info('%s: %s', prefix, logging_str) def _restore_state_to_in_memory_checkpointer(restore_path): """Initializes experiment state from a checkpoint.""" # Load pretrained experiment state. python_state_path = os.path.join(restore_path, 'checkpoint.dill') with open(python_state_path, 'rb') as f: pretrained_state = dill.load(f) logging.info('Restored checkpoint from %s', python_state_path) # Assign state to a dummy experiment instance for the in-memory checkpointer, # broadcasting to devices. dummy_experiment = Experiment( mode='train', init_rng=0, config=FLAGS.config.experiment_kwargs.config) for attribute, key in Experiment.CHECKPOINT_ATTRS.items(): setattr(dummy_experiment, attribute, utils.bcast_local_devices(pretrained_state[key])) jaxline_state = dict( global_step=pretrained_state['global_step'], experiment_module=dummy_experiment) snapshot = utils.SnapshotNT(0, jaxline_state) # Finally, seed the jaxline `utils.InMemoryCheckpointer` global dict. utils.GLOBAL_CHECKPOINT_DICT['latest'] = utils.CheckpointNT( threading.local(), [snapshot]) def _get_step_date_label(global_step): # Date removing microseconds. date_str = datetime.datetime.now().isoformat().split('.')[0] return f'step_{global_step}_{date_str}' def _save_state_from_in_memory_checkpointer( save_path, experiment_class: experiment.AbstractExperiment): """Saves experiment state to a checkpoint.""" logging.info('Saving model.') for checkpoint_name, checkpoint in utils.GLOBAL_CHECKPOINT_DICT.items(): if not checkpoint.history: logging.info('Nothing to save in "%s"', checkpoint_name) continue pickle_nest = checkpoint.history[-1].pickle_nest global_step = pickle_nest['global_step'] state_dict = {'global_step': global_step} for attribute, key in experiment_class.CHECKPOINT_ATTRS.items(): state_dict[key] = utils.get_first( getattr(pickle_nest['experiment_module'], attribute)) save_dir = os.path.join( save_path, checkpoint_name, _get_step_date_label(global_step)) python_state_path = os.path.join(save_dir, 'checkpoint.dill') os.makedirs(save_dir, exist_ok=True) with open(python_state_path, 'wb') as f: dill.dump(state_dict, f) logging.info( 'Saved "%s" checkpoint to %s', checkpoint_name, python_state_path) def _setup_signals(save_model_fn): """Sets up a signal for model saving.""" # Save a model on Ctrl+C. def sigint_handler(unused_sig, unused_frame): # Ideally, rather than saving immediately, we would then "wait" for a good # time to save. In practice this reads from an in-memory checkpoint that # only saves every 30 seconds or so, so chances of race conditions are very # small. save_model_fn() logging.info(r'Use `Ctrl+\` to save and exit.') # Exit on `Ctrl+\`, saving a model. prev_sigquit_handler = signal.getsignal(signal.SIGQUIT) def sigquit_handler(unused_sig, unused_frame): # Restore previous handler early, just in case something goes wrong in the # next lines, so it is possible to press again and exit. signal.signal(signal.SIGQUIT, prev_sigquit_handler) save_model_fn() logging.info(r'Exiting on `Ctrl+\`') # Re-raise for clean exit. os.kill(os.getpid(), signal.SIGQUIT) signal.signal(signal.SIGINT, sigint_handler) signal.signal(signal.SIGQUIT, sigquit_handler) def main(argv, experiment_class: experiment.AbstractExperiment): # Maybe restore a model. restore_path = FLAGS.config.restore_path if restore_path: _restore_state_to_in_memory_checkpointer(restore_path) # Maybe save a model. save_dir = os.path.join(FLAGS.config.checkpoint_dir, 'models') if FLAGS.config.one_off_evaluate: save_model_fn = lambda: None # No need to save checkpoint in this case. else: save_model_fn = functools.partial( _save_state_from_in_memory_checkpointer, save_dir, experiment_class) _setup_signals(save_model_fn) # Save on Ctrl+C (continue) or Ctrl+\ (exit). try: platform.main(experiment_class, argv) finally: save_model_fn() # Save at the end of training or in case of exception. if __name__ == '__main__': jax_config.update('jax_debug_nans', False) flags.mark_flag_as_required('config') app.run(lambda argv: main(argv, Experiment)) ================================================ FILE: ogb_lsc/mag/generate_validation_splits.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Generates the k-fold validation splits.""" import os from absl import app from absl import flags import data_utils _DATA_ROOT = flags.DEFINE_string( 'data_root', None, required=True, help='Path containing the downloaded data.') _OUTPUT_DIR = flags.DEFINE_string( 'output_dir', None, required=True, help='Output directory to write the splits to') def main(argv): del argv array_dict = data_utils.get_arrays( data_root=_DATA_ROOT.value, return_pca_embeddings=False, return_adjacencies=False) os.makedirs(_OUTPUT_DIR.value, exist_ok=True) data_utils.generate_k_fold_splits( train_idx=array_dict['train_indices'], valid_idx=array_dict['valid_indices'], output_path=_OUTPUT_DIR.value, num_splits=data_utils.NUM_K_FOLD_SPLITS) if __name__ == '__main__': app.run(main) ================================================ FILE: ogb_lsc/mag/losses.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Losses and related utilities.""" from typing import Mapping, Tuple, Sequence, NamedTuple, Dict, Optional import jax import jax.numpy as jnp import jraph import numpy as np # pylint: disable=g-bad-import-order import datasets LogsDict = Mapping[str, jnp.ndarray] class Predictions(NamedTuple): node_indices: np.ndarray labels: np.ndarray predictions: np.ndarray logits: np.ndarray def node_classification_loss( logits: jnp.ndarray, batch: datasets.Batch, extra_stats: bool = False, ) -> Tuple[jnp.ndarray, LogsDict]: """Gets node-wise classification loss and statistics.""" log_probs = jax.nn.log_softmax(logits) loss = -jnp.sum(log_probs * batch.node_labels, axis=-1) num_valid = jnp.sum(batch.label_mask) labels = jnp.argmax(batch.node_labels, axis=-1) is_correct = (jnp.argmax(log_probs, axis=-1) == labels) num_correct = jnp.sum(is_correct * batch.label_mask) loss = jnp.sum(loss * batch.label_mask) / (num_valid + 1e-8) accuracy = num_correct / (num_valid + 1e-8) entropy = -jnp.mean(jnp.sum(jax.nn.softmax(logits) * log_probs, axis=-1)) stats = { 'classification_loss': loss, 'prediction_entropy': entropy, 'accuracy': accuracy, 'num_valid': num_valid, 'num_correct': num_correct, } if extra_stats: for k in range(1, 6): stats[f'top_{k}_correct'] = topk_correct(logits, labels, batch.label_mask, k) return loss, stats def get_predictions_labels_and_logits( logits: jnp.ndarray, batch: datasets.Batch, ) -> Tuple[jnp.ndarray, jnp.ndarray, jnp.ndarray, jnp.ndarray]: """Gets prediction labels and logits.""" mask = batch.label_mask > 0. indices = batch.node_indices[mask] logits = logits[mask] predictions = jnp.argmax(logits, axis=-1) labels = jnp.argmax(batch.node_labels[mask], axis=-1) return indices, predictions, labels, logits def topk_correct( logits: jnp.ndarray, labels: jnp.ndarray, valid_mask: jnp.ndarray, topk: int, ) -> jnp.ndarray: """Calculates top-k accuracy.""" pred_ranking = jnp.argsort(logits, axis=1)[:, ::-1] pred_ranking = pred_ranking[:, :topk] is_correct = jnp.any(pred_ranking == labels[:, jnp.newaxis], axis=1) return (is_correct * valid_mask).sum() def ensemble_predictions_by_probability_average( predictions_list: Sequence[Predictions]) -> Predictions: """Ensemble predictions by ensembling the probabilities.""" _assert_consistent_predictions(predictions_list) all_probs = np.stack([ jax.nn.softmax(predictions.logits, axis=-1) for predictions in predictions_list ], axis=0) ensembled_logits = np.log(all_probs.mean(0)) return predictions_list[0]._replace( logits=ensembled_logits, predictions=np.argmax(ensembled_logits, axis=-1)) def get_accuracy_dict(predictions: Predictions) -> Dict[str, float]: """Returns the accuracy dict.""" output_dict = {} output_dict['num_valid'] = predictions.predictions.shape[0] matches = (predictions.labels == predictions.predictions) output_dict['accuracy'] = matches.mean() pred_ranking = jnp.argsort(predictions.logits, axis=1)[:, ::-1] for k in range(1, 6): matches = jnp.any( pred_ranking[:, :k] == predictions.labels[:, None], axis=1) output_dict[f'top_{k}_correct'] = matches.mean() return output_dict def bgrl_loss( first_online_predictions: jnp.ndarray, second_target_projections: jnp.ndarray, second_online_predictions: jnp.ndarray, first_target_projections: jnp.ndarray, symmetrize: bool, valid_mask: jnp.ndarray, ) -> Tuple[jnp.ndarray, LogsDict]: """Implements BGRL loss.""" first_side_node_loss = jnp.sum( jnp.square( _l2_normalize(first_online_predictions, axis=-1) - _l2_normalize(second_target_projections, axis=-1)), axis=-1) if symmetrize: second_side_node_loss = jnp.sum( jnp.square( _l2_normalize(second_online_predictions, axis=-1) - _l2_normalize(first_target_projections, axis=-1)), axis=-1) node_loss = first_side_node_loss + second_side_node_loss else: node_loss = first_side_node_loss loss = (node_loss * valid_mask).sum() / (valid_mask.sum() + 1e-6) return loss, dict(bgrl_loss=loss) def get_corrupted_view( graph: jraph.GraphsTuple, feature_drop_prob: float, edge_drop_prob: float, rng_key: jnp.ndarray, ) -> jraph.GraphsTuple: """Returns corrupted graph view.""" node_key, edge_key = jax.random.split(rng_key) def mask_feature(x): mask = jax.random.bernoulli(node_key, 1 - feature_drop_prob, x.shape) return x * mask # Randomly mask features with fixed probability. nodes = jax.tree_map(mask_feature, graph.nodes) # Simulate dropping of edges by changing genuine edges to self-loops on # the padded node. num_edges = graph.senders.shape[0] last_node_idx = graph.n_node.sum() - 1 edge_mask = jax.random.bernoulli(edge_key, 1 - edge_drop_prob, [num_edges]) senders = jnp.where(edge_mask, graph.senders, last_node_idx) receivers = jnp.where(edge_mask, graph.receivers, last_node_idx) # Note that n_edge will now be invalid since edges in the middle of the list # will correspond to the final graph. Set n_edge to None to ensure we do not # accidentally use this. return graph._replace( nodes=nodes, senders=senders, receivers=receivers, n_edge=None, ) def _assert_consistent_predictions(predictions_list: Sequence[Predictions]): first_predictions = predictions_list[0] for predictions in predictions_list: assert np.all(predictions.node_indices == first_predictions.node_indices) assert np.all(predictions.labels == first_predictions.labels) assert np.all( predictions.predictions == np.argmax(predictions.logits, axis=-1)) def _l2_normalize( x: jnp.ndarray, axis: Optional[int] = None, epsilon: float = 1e-6, ) -> jnp.ndarray: return x * jax.lax.rsqrt( jnp.sum(jnp.square(x), axis=axis, keepdims=True) + epsilon) ================================================ FILE: ogb_lsc/mag/models.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """MAG240M-LSC models.""" from typing import Callable, NamedTuple, Sequence import haiku as hk import jax import jax.numpy as jnp import jraph _REDUCER_NAMES = { 'sum': jax.ops.segment_sum, 'mean': jraph.segment_mean, 'softmax': jraph.segment_softmax, } class ModelOutput(NamedTuple): node_embeddings: jnp.ndarray node_embedding_projections: jnp.ndarray node_projection_predictions: jnp.ndarray node_logits: jnp.ndarray def build_update_fn( name: str, output_sizes: Sequence[int], activation: Callable[[jnp.ndarray], jnp.ndarray], normalization_type: str, is_training: bool, ): """Builds update function.""" def single_mlp(inner_name: str): """Creates a single MLP performing the update.""" mlp = hk.nets.MLP( output_sizes=output_sizes, name=inner_name, activation=activation) mlp = jraph.concatenated_args(mlp) if normalization_type == 'layer_norm': norm = hk.LayerNorm( axis=-1, create_scale=True, create_offset=True, name=name + '_layer_norm') elif normalization_type == 'batch_norm': batch_norm = hk.BatchNorm( create_scale=True, create_offset=True, decay_rate=0.9, name=f'{inner_name}_batch_norm', cross_replica_axis=None if hk.running_init() else 'i', ) norm = lambda x: batch_norm(x, is_training) elif normalization_type == 'none': return mlp else: raise ValueError(f'Unknown normalization type {normalization_type}') return jraph.concatenated_args(hk.Sequential([mlp, norm])) return single_mlp(f'{name}_homogeneous') def build_gn( output_sizes: Sequence[int], activation: Callable[[jnp.ndarray], jnp.ndarray], suffix: str, use_sent_edges: bool, is_training: bool, dropedge_rate: float, normalization_type: str, aggregation_function: str, ): """Builds an InteractionNetwork with MLP update functions.""" node_update_fn = build_update_fn( f'node_processor_{suffix}', output_sizes, activation=activation, normalization_type=normalization_type, is_training=is_training, ) edge_update_fn = build_update_fn( f'edge_processor_{suffix}', output_sizes, activation=activation, normalization_type=normalization_type, is_training=is_training, ) def maybe_dropedge(x): """Dropout on edge messages.""" if not is_training: return x return x * hk.dropout( hk.next_rng_key(), dropedge_rate, jnp.ones([x.shape[0], 1]), ) dropped_edge_update_fn = lambda *args: maybe_dropedge(edge_update_fn(*args)) return jraph.InteractionNetwork( update_edge_fn=dropped_edge_update_fn, update_node_fn=node_update_fn, aggregate_edges_for_nodes_fn=_REDUCER_NAMES[aggregation_function], include_sent_messages_in_node_update=use_sent_edges, ) def _get_activation_fn(name: str) -> Callable[[jnp.ndarray], jnp.ndarray]: if name == 'identity': return lambda x: x if hasattr(jax.nn, name): return getattr(jax.nn, name) raise ValueError('Unknown activation function %s specified. ' 'See https://jax.readthedocs.io/en/latest/jax.nn.html' 'for the list of supported function names.') class NodePropertyEncodeProcessDecode(hk.Module): """Node Property Prediction Encode Process Decode Model.""" def __init__( self, mlp_hidden_sizes: Sequence[int], latent_size: int, num_classes: int, num_message_passing_steps: int = 2, activation: str = 'relu', dropout_rate: float = 0.0, dropedge_rate: float = 0.0, use_sent_edges: bool = False, disable_edge_updates: bool = False, normalization_type: str = 'layer_norm', aggregation_function: str = 'sum', name='NodePropertyEncodeProcessDecode', ): super().__init__(name=name) self._num_classes = num_classes self._latent_size = latent_size self._output_sizes = list(mlp_hidden_sizes) + [latent_size] self._num_message_passing_steps = num_message_passing_steps self._activation = _get_activation_fn(activation) self._dropout_rate = dropout_rate self._dropedge_rate = dropedge_rate self._use_sent_edges = use_sent_edges self._disable_edge_updates = disable_edge_updates self._normalization_type = normalization_type self._aggregation_function = aggregation_function def _dropout_graph(self, graph: jraph.GraphsTuple) -> jraph.GraphsTuple: node_key, edge_key = hk.next_rng_keys(2) nodes = hk.dropout(node_key, self._dropout_rate, graph.nodes) edges = graph.edges if not self._disable_edge_updates: edges = hk.dropout(edge_key, self._dropout_rate, edges) return graph._replace(nodes=nodes, edges=edges) def _encode( self, graph: jraph.GraphsTuple, is_training: bool, ) -> jraph.GraphsTuple: node_embed_fn = build_update_fn( 'node_encoder', self._output_sizes, activation=self._activation, normalization_type=self._normalization_type, is_training=is_training, ) edge_embed_fn = build_update_fn( 'edge_encoder', self._output_sizes, activation=self._activation, normalization_type=self._normalization_type, is_training=is_training, ) gn = jraph.GraphMapFeatures(edge_embed_fn, node_embed_fn) graph = gn(graph) if is_training: graph = self._dropout_graph(graph) return graph def _process( self, graph: jraph.GraphsTuple, is_training: bool, ) -> jraph.GraphsTuple: for idx in range(self._num_message_passing_steps): net = build_gn( output_sizes=self._output_sizes, activation=self._activation, suffix=str(idx), use_sent_edges=self._use_sent_edges, is_training=is_training, dropedge_rate=self._dropedge_rate, normalization_type=self._normalization_type, aggregation_function=self._aggregation_function) residual_graph = net(graph) graph = graph._replace(nodes=graph.nodes + residual_graph.nodes) if not self._disable_edge_updates: graph = graph._replace(edges=graph.edges + residual_graph.edges) if is_training: graph = self._dropout_graph(graph) return graph def _node_mlp( self, graph: jraph.GraphsTuple, is_training: bool, output_size: int, name: str, ) -> jnp.ndarray: decoder_sizes = list(self._output_sizes[:-1]) + [output_size] net = build_update_fn( name, decoder_sizes, self._activation, normalization_type=self._normalization_type, is_training=is_training, ) return net(graph.nodes) def __call__( self, graph: jraph.GraphsTuple, is_training: bool, stop_gradient_embedding_to_logits: bool = False, ) -> ModelOutput: # Note that these update configs may need to change if # we switch back to GraphNetwork rather than InteractionNetwork. graph = self._encode(graph, is_training) graph = self._process(graph, is_training) node_embeddings = graph.nodes node_projections = self._node_mlp(graph, is_training, self._latent_size, 'projector') node_predictions = self._node_mlp( graph._replace(nodes=node_projections), is_training, self._latent_size, 'predictor', ) if stop_gradient_embedding_to_logits: graph = jax.tree_map(jax.lax.stop_gradient, graph) node_logits = self._node_mlp(graph, is_training, self._num_classes, 'logits_decoder') return ModelOutput( node_embeddings=node_embeddings, node_logits=node_logits, node_embedding_projections=node_projections, node_projection_predictions=node_predictions, ) ================================================ FILE: ogb_lsc/mag/neighbor_builder.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Find neighborhoods around paper feature embeddings.""" import pathlib from absl import app from absl import flags from absl import logging import annoy import numpy as np import scipy.sparse as sp # pylint: disable=g-bad-import-order import data_utils Path = pathlib.Path _PAPER_PAPER_B_PATH = 'ogb_mag_adjacencies/paper_paper_b.npz' FLAGS = flags.FLAGS flags.DEFINE_string('data_root', None, 'Data root directory') def _read_paper_pca_features(): data_root = Path(FLAGS.data_root) path = data_root / data_utils.PCA_PAPER_FEATURES_FILENAME with open(path, 'rb') as fid: return np.load(fid) def _read_adjacency_indices(): # Get adjacencies. return data_utils.get_arrays( data_root=FLAGS.data_root, use_fused_node_labels=False, use_fused_node_adjacencies=False, return_pca_embeddings=False, ) def build_annoy_index(features): """Build the Annoy index.""" logging.info('Building annoy index') num_vectors, vector_size = features.shape annoy_index = annoy.AnnoyIndex(vector_size, 'euclidean') for i, x in enumerate(features): annoy_index.add_item(i, x) if i % 1000000 == 0: logging.info('Adding: %d / %d (%.3g %%)', i, num_vectors, 100 * i / num_vectors) n_trees = 10 _ = annoy_index.build(n_trees) return annoy_index def _get_annoy_index_path(): return Path(FLAGS.data_root) / data_utils.PREPROCESSED_DIR / 'annoy_index.ann' def save_annoy_index(annoy_index): logging.info('Saving annoy index') index_path = _get_annoy_index_path() index_path.parent.mkdir(parents=True, exist_ok=True) annoy_index.save(str(index_path)) def read_annoy_index(features): index_path = _get_annoy_index_path() vector_size = features.shape[1] annoy_index = annoy.AnnoyIndex(vector_size, 'euclidean') annoy_index.load(str(index_path)) return annoy_index def compute_neighbor_indices_and_distances(features): """Use the pre-built Annoy index to compute neighbor indices and distances.""" logging.info('Computing neighbors and distances') annoy_index = read_annoy_index(features) num_vectors = features.shape[0] k = 20 pad_k = 5 search_k = -1 neighbor_indices = np.zeros([num_vectors, k + pad_k + 1], dtype=np.int32) neighbor_distances = np.zeros([num_vectors, k + pad_k + 1], dtype=np.float32) for i in range(num_vectors): neighbor_indices[i], neighbor_distances[i] = annoy_index.get_nns_by_item( i, k + pad_k + 1, search_k=search_k, include_distances=True) if i % 10000 == 0: logging.info('Finding neighbors %d / %d', i, num_vectors) return neighbor_indices, neighbor_distances def _write_neighbors(neighbor_indices, neighbor_distances): """Write neighbor indices and distances.""" logging.info('Writing neighbors') indices_path = Path(FLAGS.data_root) / data_utils.NEIGHBOR_INDICES_FILENAME distances_path = ( Path(FLAGS.data_root) / data_utils.NEIGHBOR_DISTANCES_FILENAME) indices_path.parent.mkdir(parents=True, exist_ok=True) distances_path.parent.mkdir(parents=True, exist_ok=True) with open(indices_path, 'wb') as fid: np.save(fid, neighbor_indices) with open(distances_path, 'wb') as fid: np.save(fid, neighbor_distances) def _write_fused_edges(fused_paper_adjacency_matrix): """Write fused edges.""" data_root = Path(FLAGS.data_root) edges_path = data_root / data_utils.FUSED_PAPER_EDGES_FILENAME edges_t_path = data_root / data_utils.FUSED_PAPER_EDGES_T_FILENAME edges_path.parent.mkdir(parents=True, exist_ok=True) edges_t_path.parent.mkdir(parents=True, exist_ok=True) with open(edges_path, 'wb') as fid: sp.save_npz(fid, fused_paper_adjacency_matrix) with open(edges_t_path, 'wb') as fid: sp.save_npz(fid, fused_paper_adjacency_matrix.T) def _write_fused_nodes(fused_node_labels): """Write fused nodes.""" labels_path = Path(FLAGS.data_root) / data_utils.FUSED_NODE_LABELS_FILENAME labels_path.parent.mkdir(parents=True, exist_ok=True) with open(labels_path, 'wb') as fid: np.save(fid, fused_node_labels) def main(unused_argv): paper_pca_features = _read_paper_pca_features() # Find neighbors. annoy_index = build_annoy_index(paper_pca_features) save_annoy_index(annoy_index) neighbor_indices, neighbor_distances = compute_neighbor_indices_and_distances( paper_pca_features) del paper_pca_features _write_neighbors(neighbor_indices, neighbor_distances) data = _read_adjacency_indices() paper_paper_csr = data['paper_paper_index'] paper_label = data['paper_label'] train_indices = data['train_indices'] valid_indices = data['valid_indices'] test_indices = data['test_indices'] del data fused_paper_adjacency_matrix = data_utils.generate_fused_paper_adjacency_matrix( neighbor_indices, neighbor_distances, paper_paper_csr) _write_fused_edges(fused_paper_adjacency_matrix) del fused_paper_adjacency_matrix del paper_paper_csr fused_node_labels = data_utils.generate_fused_node_labels( neighbor_indices, neighbor_distances, paper_label, train_indices, valid_indices, test_indices) _write_fused_nodes(fused_node_labels) if __name__ == '__main__': flags.mark_flag_as_required('data_root') app.run(main) ================================================ FILE: ogb_lsc/mag/organize_data.sh ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #!/bin/bash set -e while getopts ":i:o:" opt; do case ${opt} in i ) INPUT_DIR=$OPTARG ;; o ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: organize_data.sh -i -o " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" if [[ -z "${INPUT_DIR}" ]]; then echo "Need INPUT_DIR argument (-i )" exit 1 fi if [[ -z "${TASK_ROOT}" ]]; then echo "Need TASK_ROOT argument (-o )" exit 1 fi DATA_ROOT="${TASK_ROOT}"/data # Create raw directory to move all files to it. mkdir "${INPUT_DIR}"/mag240m_kddcup2021/raw mv "${INPUT_DIR}"/mag240m_kddcup2021/processed/paper/node_feat.npy \ "${INPUT_DIR}"/mag240m_kddcup2021/processed/paper/node_label.npy \ "${INPUT_DIR}"/mag240m_kddcup2021/processed/paper/node_year.npy \ "${DATA_ROOT}"/raw mv "${INPUT_DIR}"/mag240m_kddcup2021/processed/author___affiliated_with___institution/edge_index.npy \ "${DATA_ROOT}"/raw/author_affiliated_with_institution_edges.npy mv "${ROOT}"/mag240m_kddcup2021/processed/author___writes___paper/edge_index.npy \ "${DATA_ROOT}"/raw/author_writes_paper_edges.npy mv "${ROOT}"/mag240m_kddcup2021/processed/paper___cites___paper/edge_index.npy \ "${DATA_ROOT}"/raw/paper_cites_paper_edges.npy # Split and save the train/valid/test indices to the raw directory, with names "train_idx.npy", "valid_idx.npy", "test_idx.npy": python3 "${SCRIPT_DIR}"/split_and_save_indices.py --data_root=${DATA_ROOT} ================================================ FILE: ogb_lsc/mag/pca_builder.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Apply PCA to the papers' BERT features. Compute papers' PCA features. Recompute author and institution features from the paper PCA features. """ import pathlib import time from absl import app from absl import flags from absl import logging import numpy as np # pylint: disable=g-bad-import-order import data_utils Path = pathlib.Path _NUMBER_OF_PAPERS_TO_ESTIMATE_PCA_ON = 1000000 # None indicates all. FLAGS = flags.FLAGS flags.DEFINE_string('data_root', None, 'Data root directory') def _sample_vectors(vectors, num_samples, seed=0): """Randomly sample some vectors.""" rand = np.random.RandomState(seed=seed) indices = rand.choice(vectors.shape[0], size=num_samples, replace=False) return vectors[indices] def _pca(feat): """Returns evals (variances), evecs (rows are principal components).""" cov = np.cov(feat.T) _, evals, evecs = np.linalg.svd(cov, full_matrices=True) return evals, evecs def _read_raw_paper_features(): """Load raw paper features.""" path = Path(FLAGS.data_root) / data_utils.RAW_NODE_FEATURES_FILENAME try: # Use mmap if possible. features = np.load(path, mmap_mode='r') except FileNotFoundError: with open(path, 'rb') as fid: features = np.load(fid) return features def _get_principal_components(features, num_principal_components=129, num_samples=10000, seed=2, dtype='f4'): """Estimate PCA features.""" sample = _sample_vectors( features[:_NUMBER_OF_PAPERS_TO_ESTIMATE_PCA_ON], num_samples, seed=seed) # Compute PCA basis. _, evecs = _pca(sample) return evecs[:num_principal_components].T.astype(dtype) def _project_features_onto_principal_components(features, principal_components, block_size=1000000): """Apply PCA iteratively.""" num_principal_components = principal_components.shape[1] dtype = principal_components.dtype num_vectors = features.shape[0] num_features = features.shape[0] num_blocks = (num_features - 1) // block_size + 1 pca_features = np.empty([num_vectors, num_principal_components], dtype=dtype) # Loop through in blocks. start_time = time.time() for i in range(num_blocks): i_start = i * block_size i_end = (i + 1) * block_size f = np.array(features[i_start:i_end].copy()) pca_features[i_start:i_end] = np.dot(f, principal_components).astype(dtype) del f elapsed_time = time.time() - start_time time_left = elapsed_time / (i + 1) * (num_blocks - i - 1) logging.info('Features %d / %d. Elapsed time %.1f. Time left: %.1f', i_end, num_vectors, elapsed_time, time_left) return pca_features def _read_adjacency_indices(): # Get adjacencies. return data_utils.get_arrays( data_root=FLAGS.data_root, use_fused_node_labels=False, use_fused_node_adjacencies=False, return_pca_embeddings=False, ) def _compute_author_pca_features(paper_pca_features, index_arrays): return data_utils.paper_features_to_author_features( index_arrays['author_paper_index'], paper_pca_features) def _compute_institution_pca_features(author_pca_features, index_arrays): return data_utils.author_features_to_institution_features( index_arrays['institution_author_index'], author_pca_features) def _write_array(path, array): path.parent.mkdir(parents=True, exist_ok=True) with open(path, 'wb') as fid: np.save(fid, array) def main(unused_argv): data_root = Path(FLAGS.data_root) raw_paper_features = _read_raw_paper_features() principal_components = _get_principal_components(raw_paper_features) paper_pca_features = _project_features_onto_principal_components( raw_paper_features, principal_components) del raw_paper_features del principal_components paper_pca_path = data_root / data_utils.PCA_PAPER_FEATURES_FILENAME author_pca_path = data_root / data_utils.PCA_AUTHOR_FEATURES_FILENAME institution_pca_path = ( data_root / data_utils.PCA_INSTITUTION_FEATURES_FILENAME) merged_pca_path = data_root / data_utils.PCA_MERGED_FEATURES_FILENAME _write_array(paper_pca_path, paper_pca_features) # Compute author and institution features from paper PCA features. index_arrays = _read_adjacency_indices() author_pca_features = _compute_author_pca_features(paper_pca_features, index_arrays) _write_array(author_pca_path, author_pca_features) institution_pca_features = _compute_institution_pca_features( author_pca_features, index_arrays) _write_array(institution_pca_path, institution_pca_features) merged_pca_features = np.concatenate( [paper_pca_features, author_pca_features, institution_pca_features], axis=0) del author_pca_features del institution_pca_features _write_array(merged_pca_path, merged_pca_features) if __name__ == '__main__': flags.mark_flag_as_required('data_root') app.run(main) ================================================ FILE: ogb_lsc/mag/requirements.txt ================================================ wheel absl-py>=0.12.0 chex>=0.0.7 dill>=0.3.3 dm-haiku>=0.0.4 # jaxline git+https://github.com/deepmind/jaxline@927695a0b88e480d085590736e2daa36c2f2c68b optax>=0.0.8 ml_collections numpy>=1.16.4 tensorflow>=2.5.0 tensorflow-datasets>=4.3.0 dm-tree>=0.1.6 ogb>=1.3.1 # graph_nets git+git://github.com/deepmind/graph_nets.git@64771dff0d74ca8e77b1f1dcd5a7d26634356d61 scipy>=1.2.1 jaxlib>=0.1.67+cuda110 tqdm>=4.28.1 annoy>=1.0.3 # jraph git+git://github.com/deepmind/jraph.git@80d2f9e4d82f841a71d56ba44fa9e8781e93ae1f google-cloud-storage ================================================ FILE: ogb_lsc/mag/run_preprocessing.sh ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #!/bin/bash set -e set -x while getopts ":r:" opt; do case ${opt} in r ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: preprocess_data.sh -r " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" DATA_ROOT="${TASK_ROOT}"/data PREPROCESSED_DIR="${DATA_ROOT}"/preprocessed # Create preprocessed directory to move all files to it. mkdir -p "${PREPROCESSED_DIR}" # Run the CSR edge builder. python "${SCRIPT_DIR}"/csr_builder.py --data_root="${DATA_ROOT}" # Run the PCA feature builder. python "${SCRIPT_DIR}"/pca_builder.py --data_root="${DATA_ROOT}" # Run the neighbor-finder/fuser builder. python "${SCRIPT_DIR}"/neighbor_builder.py --data_root="${DATA_ROOT}" # Run the validation split generator. python "${SCRIPT_DIR}"/generate_validation_splits.py \ --data_root="${DATA_ROOT}" \ --output_dir="${DATA_ROOT}/k_fold_splits" ================================================ FILE: ogb_lsc/mag/run_pretrained_eval.sh ================================================ #!/bin/bash # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e set -x while getopts ":r:" opt; do case ${opt} in r ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: run_pretrained_eval.sh -r " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" echo " Note this script may take several days to run with default parameters on a single machine. Reducing EPOCHS_TO_ENSEMBLE from 50 to < 5 should yield slighly lower validation performance but possibly similar test performance. " echo " Pre-requisites (See README): * Python dependencies have been installed. * pre-processed data is available in the task dir. * pre-trained model weights are available in the task dir. " read -p "Press enter to continue" # Can set this to "valid" or "test". # On test the results will be ensembled for 10 models, and a submission file # will be created. # On validation, the results will be "gathered" for 10 models. This is because # each model is trained on the train split + 90% of the validation split, # and only evaluated on the remaining 10%, such that each validation paper # is left out from training in exactly one of the 10 models. SPLIT="test" # We used 50 epochs in the submission to sample different subgraphs around # each central node. # For each of the 10 models in the ensemble, a single epoch takes about 1 # 10-25 minutes (depending on the GPU) on the test set, and about 2-3 minutes # for the corresponding k-fold split of the validation set. EPOCHS_TO_ENSEMBLE=50 DATA_ROOT=${TASK_ROOT}/data/ MODELS_ROOT=${TASK_ROOT}/models/ CHECKPOINT_DIR=${TASK_ROOT}/checkpoints/ OUTPUT_DIR=${TASK_ROOT}/predictions/ # We run two seeds for each model of the k=10 k-fold # first seed group: [100, 101, 102, 103, 104, 105, 106, 107, 108, 109] # second seed group: [110, 111, 112, 113, 114, 115, 116, 117, 118, 119] # Thes are the seeds that was selected based on cross validation for each fold. BEST_SEEDS=(100 111 102 113 104 105 106 107 108 109) for K_FOLD_INDEX in {0..9}; do SEED=${BEST_SEEDS[${K_FOLD_INDEX}]} RESTORE_PATH=${MODELS_ROOT}/k${K_FOLD_INDEX}_seed${SEED} echo "Running k=${K_FOLD_INDEX} on ${SPLIT} split using ${RESTORE_PATH}" # This saves the predictions for the K_FOLD_INDEXd'th model in the k-fold to # "config.experiment_kwargs.config.predictions_dir" for subsequent ensembling python "${SCRIPT_DIR}"/experiment.py \ --jaxline_mode="eval" \ --config="${SCRIPT_DIR}"/config.py \ --config.one_off_evaluate=True \ --config.checkpoint_dir=${CHECKPOINT_DIR}/${K_FOLD_INDEX} \ --config.restore_path=${RESTORE_PATH} \ --config.experiment_kwargs.config.dataset_kwargs.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_kwargs.k_fold_split_id=${K_FOLD_INDEX} \ --config.experiment_kwargs.config.num_eval_iterations_to_ensemble=${EPOCHS_TO_ENSEMBLE} \ --config.experiment_kwargs.config.predictions_dir=${OUTPUT_DIR}/${K_FOLD_INDEX} \ --config.experiment_kwargs.config.eval.split=${SPLIT} done python "${SCRIPT_DIR}"/ensemble_predictions.py \ --split=${SPLIT} \ --data_root=${DATA_ROOT} \ --predictions_path=${OUTPUT_DIR} \ --output_path=${OUTPUT_DIR} echo "Done" ================================================ FILE: ogb_lsc/mag/run_training.sh ================================================ #!/bin/bash # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e set -x while getopts ":r:" opt; do case ${opt} in r ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: run_training.sh -r " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" echo " These scripts are provided for illustrative purposes. It is not practical for actual training since it only uses a single machine, and likely requires reducing the batch size and/or model size to fit on a single GPU. For the actual submission we used training distributed in different ways: * We used 4x Cloud TPU v4s to implement batch parallelism, so batch size is effectively 8 times larger than the values in the config. * We used separate CPUs to subsample neighborhoods around each central node, to maximize TPU usage by always having a batch ready for the next iteration. * We ran the online early-stopping evaluator on a separate machine with an NVIDIA V100 GPU. * We run identical replicas of all of the above for each of the 20 models trained. Using those mechanisms, training runs at ~2 steps per second, reaching 500k steps in under 3 days. " echo " Pre-requisites (See README): * Python dependencies have been installed. * pre-processed data is available in the task dir. " read -p "Press enter to continue" # During early stopping seed/selection we ensembled 5 iterations. EPOCHS_TO_ENSEMBLE=5 DATA_ROOT=${TASK_ROOT}/data/ CHECKPOINT_DIR=${TASK_ROOT}/checkpoints/ # We run two seeds for each model of the k=10 k-fold. BASE_SEED=100 for SEED_OFFSET in 0 10; do for K_FOLD_INDEX in {0..9}; do MODEL_SEED=`expr ${BASE_SEED} + ${SEED_OFFSET} + ${K_FOLD_INDEX}` SUFFIX=k${K_FOLD_INDEX}_seed${MODEL_SEED} echo "Running k=${K_FOLD_INDEX} with init seed ${MODEL_SEED}" # This runs training (each model is trained on train split + 90% of the # validation split) with early stopping, storing both "latest" model and # "best" early-stopped model at `--config.checkpoint_dir`. # Models are early stopped based on accuracy of on 10% of the validation data # (each K_FOLD_INDEX leaves a different 10% of data out from training) left # out from training. # Models are stored at the end of training. Intermediate models can also be # stored while training by sending a SIGINT signal (Ctrl+C) which will not # interrupt the training. # It is possible to interrupt training using (Ctrl+\) and then continue # passing the corresponding `--config.restore_path=${RESTORE_PATH}` which is # stored when interrupting. python "${SCRIPT_DIR}"/experiment.py \ --jaxline_mode="train_eval_multithreaded" \ --config="${SCRIPT_DIR}"/config.py \ --config.random_seed=${MODEL_SEED} \ --config.checkpoint_dir=${CHECKPOINT_DIR}/${SUFFIX} \ --config.experiment_kwargs.config.dataset_kwargs.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_kwargs.k_fold_split_id=${K_FOLD_INDEX} \ --config.experiment_kwargs.config.num_eval_iterations_to_ensemble=${EPOCHS_TO_ENSEMBLE} \ --config.experiment_kwargs.config.eval.split="valid" done done # Each of the 20 (two for each value of k) jobs generate paths of the form: # RESTORE_PATH=${--config.checkpoint_dir}/models/best/step_${STEP}_${TIMESTAMP} # From each pair, the best one is selected (based on the validation accuracy # as reported on the logs or in tensorboard events also stored at # `${--config.checkpoint_dir}/eval`). These can then be used as the # "RESTORE_PATHS" for `./run_pretrained_eval.sh`. echo "Done" ================================================ FILE: ogb_lsc/mag/schedules.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Scheduling utilities.""" import jax.numpy as jnp def apply_ema_decay( ema_value: jnp.ndarray, current_value: jnp.ndarray, decay: jnp.ndarray, ) -> jnp.ndarray: """Implements EMA.""" return ema_value * decay + current_value * (1 - decay) def ema_decay_schedule( base_rate: jnp.ndarray, step: jnp.ndarray, total_steps: jnp.ndarray, use_schedule: bool, ) -> jnp.ndarray: """Anneals decay rate to 1 with cosine schedule.""" if not use_schedule: return base_rate multiplier = _cosine_decay(step, total_steps, 1.) return 1. - (1. - base_rate) * multiplier def _cosine_decay( global_step: jnp.ndarray, max_steps: int, initial_value: float, ) -> jnp.ndarray: """Simple implementation of cosine decay from TF1.""" global_step = jnp.minimum(global_step, max_steps).astype(jnp.float32) cosine_decay_value = 0.5 * (1 + jnp.cos(jnp.pi * global_step / max_steps)) decayed_learning_rate = initial_value * cosine_decay_value return decayed_learning_rate def learning_schedule( global_step: jnp.ndarray, base_learning_rate: float, total_steps: int, warmup_steps: int, use_schedule: bool, ) -> float: """Cosine learning rate scheduler.""" # Compute LR & Scaled LR if not use_schedule: return base_learning_rate warmup_learning_rate = ( global_step.astype(jnp.float32) / int(warmup_steps) * base_learning_rate if warmup_steps > 0 else base_learning_rate) # Cosine schedule after warmup. decay_learning_rate = _cosine_decay(global_step - warmup_steps, total_steps - warmup_steps, base_learning_rate) return jnp.where(global_step < warmup_steps, warmup_learning_rate, decay_learning_rate) ================================================ FILE: ogb_lsc/mag/split_and_save_indices.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Split and save the train/valid/test indices. Usage: python3 split_and_save_indices.py --data_root="mag_data" """ import pathlib from absl import app from absl import flags import numpy as np import torch Path = pathlib.Path FLAGS = flags.FLAGS flags.DEFINE_string('data_root', None, 'Data root directory') def main(argv) -> None: if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') mag_directory = Path(FLAGS.data_root) / 'mag240m_kddcup2021' raw_directory = mag_directory / 'raw' raw_directory.parent.mkdir(parents=True, exist_ok=True) splits_dict = torch.load(str(mag_directory / 'split_dict.pt')) for key, indices in splits_dict.items(): np.save(str(raw_directory / f'{key}_idx.npy'), indices) if __name__ == '__main__': flags.mark_flag_as_required('root') app.run(main) ================================================ FILE: ogb_lsc/mag/sub_sampler.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities for subsampling the MAG dataset.""" import collections import jraph import numpy as np def get_or_sample_row(node_id: int, nb_neighbours: int, csr_matrix, remove_duplicates: bool): """Either obtain entire row or a subsampled set of neighbours.""" if node_id + 1 >= csr_matrix.indptr.shape[0]: lo = 0 hi = 0 else: lo = csr_matrix.indptr[node_id] hi = csr_matrix.indptr[node_id + 1] if lo == hi: # Skip empty neighbourhoods neighbours = None elif hi - lo <= nb_neighbours: neighbours = csr_matrix.indices[lo:hi] elif hi - lo < 5 * nb_neighbours: # For small surroundings, sample directly nb_neighbours = min(nb_neighbours, hi - lo) inds = lo + np.random.choice(hi - lo, size=(nb_neighbours,), replace=False) neighbours = csr_matrix.indices[inds] else: # Otherwise, do not slice -- sample indices instead # To extend GraphSAGE ("uniform w/ replacement"), modify this call inds = np.random.randint(lo, hi, size=(nb_neighbours,)) if remove_duplicates: inds = np.unique(inds) neighbours = csr_matrix.indices[inds] return neighbours def get_neighbours(node_id: int, node_type: int, neighbour_type: int, nb_neighbours: int, remove_duplicates: bool, author_institution_csr, institution_author_csr, author_paper_csr, paper_author_csr, paper_paper_csr, paper_paper_transpose_csr): """Fetch the edge indices from one node to corresponding neighbour type.""" if node_type == 0 and neighbour_type == 0: csr = paper_paper_transpose_csr # Citing elif node_type == 0 and neighbour_type == 1: csr = paper_author_csr elif node_type == 0 and neighbour_type == 3: csr = paper_paper_csr # Cited elif node_type == 1 and neighbour_type == 0: csr = author_paper_csr elif node_type == 1 and neighbour_type == 2: csr = author_institution_csr elif node_type == 2 and neighbour_type == 1: csr = institution_author_csr else: raise ValueError('Non-existent edge type requested') return get_or_sample_row(node_id, nb_neighbours, csr, remove_duplicates) def get_senders(neighbour_type: int, sender_index, paper_features): """Get the sender features from given neighbours.""" if neighbour_type == 0 or neighbour_type == 3: sender_features = paper_features[sender_index] elif neighbour_type == 1 or neighbour_type == 2: sender_features = np.zeros((sender_index.shape[0], paper_features.shape[1])) # Consider averages else: raise ValueError('Non-existent node type requested') return sender_features def make_edge_type_feature(node_type: int, neighbour_type: int): edge_feats = np.zeros(7) edge_feats[node_type] = 1.0 edge_feats[neighbour_type + 3] = 1.0 return edge_feats def subsample_graph(paper_id: int, author_institution_csr, institution_author_csr, author_paper_csr, paper_author_csr, paper_paper_csr, paper_paper_transpose_csr, max_nb_neighbours_per_type, max_nodes=None, max_edges=None, paper_years=None, remove_future_nodes=False, deduplicate_nodes=False) -> jraph.GraphsTuple: """Subsample a graph around given paper ID.""" if paper_years is not None: root_paper_year = paper_years[paper_id] else: root_paper_year = None # Add the center node as "node-zero" sub_nodes = [paper_id] num_nodes_in_subgraph = 1 num_edges_in_subgraph = 0 reached_node_budget = False reached_edge_budget = False node_and_type_to_index_in_subgraph = dict() node_and_type_to_index_in_subgraph[(paper_id, 0)] = 0 # Store all (integer) depths as an additional feature depths = [0] types = [0] sub_edges = [] sub_senders = [] sub_receivers = [] # Store all unprocessed neighbours # Each neighbour is stored as a 4-tuple (node_index in original graph, # node_index in subsampled graph, type, number of hops away from source). # TYPES: 0: paper, 1: author, 2: institution, 3: paper (for bidirectional) neighbour_deque = collections.deque([(paper_id, 0, 0, 0)]) max_depth = len(max_nb_neighbours_per_type) while neighbour_deque and not reached_edge_budget: left_entry = neighbour_deque.popleft() node_index, node_index_in_sampled_graph, node_type, node_depth = left_entry # Expand from this node, to a node of related type for neighbour_type in range(4): if reached_edge_budget: break # Budget may have been reached in previous type; break here. nb_neighbours = max_nb_neighbours_per_type[node_depth][node_type][neighbour_type] # pylint:disable=line-too-long # Only extend if we want to sample further in this edge type if nb_neighbours > 0: sampled_neighbors = get_neighbours( node_index, node_type, neighbour_type, nb_neighbours, deduplicate_nodes, author_institution_csr, institution_author_csr, author_paper_csr, paper_author_csr, paper_paper_csr, paper_paper_transpose_csr, ) if sampled_neighbors is not None: if remove_future_nodes and root_paper_year is not None: if neighbour_type in [0, 3]: sampled_neighbors = [ x for x in sampled_neighbors if paper_years[x] <= root_paper_year ] if not sampled_neighbors: continue nb_neighbours = len(sampled_neighbors) edge_feature = make_edge_type_feature(node_type, neighbour_type) for neighbor_original_idx in sampled_neighbors: # Key into dict of existing nodes using both node id and type. neighbor_key = (neighbor_original_idx, neighbour_type % 3) # Get existing idx in subgraph if it exists. neighbor_subgraph_idx = node_and_type_to_index_in_subgraph.get( neighbor_key, None) if (not reached_node_budget and (not deduplicate_nodes or neighbor_subgraph_idx is None)): # If it does not exist already, or we are not deduplicating, # just create a new node and update the dict. neighbor_subgraph_idx = num_nodes_in_subgraph node_and_type_to_index_in_subgraph[neighbor_key] = ( neighbor_subgraph_idx) num_nodes_in_subgraph += 1 sub_nodes.append(neighbor_original_idx) types.append(neighbour_type % 3) depths.append(node_depth + 1) if max_nodes is not None and num_nodes_in_subgraph >= max_nodes: reached_node_budget = True continue # Move to next neighbor which might already exist. if node_depth < max_depth - 1: # If the neighbours are to be further expanded, enqueue them. # Expand only if the nodes did not already exist. neighbour_deque.append( (neighbor_original_idx, neighbor_subgraph_idx, neighbour_type % 3, node_depth + 1)) # The neighbor id within graph is now fixed; just add edges. if neighbor_subgraph_idx is not None: # Either node existed before or was successfully added. sub_senders.append(neighbor_subgraph_idx) sub_receivers.append(node_index_in_sampled_graph) sub_edges.append(edge_feature) num_edges_in_subgraph += 1 if max_edges is not None and num_edges_in_subgraph >= max_edges: reached_edge_budget = True break # Break out of adding edges for this neighbor type # Stitch the graph together sub_nodes = np.array(sub_nodes, dtype=np.int32) if sub_senders: sub_senders = np.array(sub_senders, dtype=np.int32) sub_receivers = np.array(sub_receivers, dtype=np.int32) sub_edges = np.stack(sub_edges, axis=0) else: # Use empty arrays. sub_senders = np.zeros([0], dtype=np.int32) sub_receivers = np.zeros([0], dtype=np.int32) sub_edges = np.zeros([0, 7]) # Finally, derive the sizes sub_n_node = np.array([sub_nodes.shape[0]]) sub_n_edge = np.array([sub_senders.shape[0]]) assert sub_nodes.shape[0] == num_nodes_in_subgraph assert sub_edges.shape[0] == num_edges_in_subgraph if max_nodes is not None: assert num_nodes_in_subgraph <= max_nodes if max_edges is not None: assert num_edges_in_subgraph <= max_edges types = np.array(types) depths = np.array(depths) sub_nodes = { 'index': sub_nodes.astype(np.int32), 'type': types.astype(np.int16), 'depth': depths.astype(np.int16), } return jraph.GraphsTuple(nodes=sub_nodes, edges=sub_edges.astype(np.float16), senders=sub_senders.astype(np.int32), receivers=sub_receivers.astype(np.int32), globals=np.array([0], dtype=np.int16), n_node=sub_n_node.astype(dtype=np.int32), n_edge=sub_n_edge.astype(dtype=np.int32)) ================================================ FILE: ogb_lsc/pcq/README.md ================================================ # DeepMind entry for PCQM4M-LSC This repository contains DeepMind's entry to the [PCQM4M-LSC](https://ogb.stanford.edu/kddcup2021/pcqm4m/) (quantum chemistry) track of the [OGB Large-Scale Challenge](https://ogb.stanford.edu/kddcup2021/) (OGB-LSC). For full details regarding this entry, please see our [technical report](https://arxiv.org/abs/2107.09422). ## DeepMind PCQ Team ("Quantum") (in alphabetical order) - Ravichandra Addanki - Peter Battaglia - David Budden - Andreea Deac - Jonathan Godwin - Alvaro Sanchez-Gonzalez - Wai Lok Sibon Li - Jacklynn Stott - Shantanu Thakoor - Petar Veličković ## Performance Our final test set performance was achieved by pooling an ensemble of 20 models (10 folds x 2 seeds). See [technical report](https://arxiv.org/abs/2107.09422) for details. Each model was trained for < 48 hours using 4x Google Cloud TPUv4 and 1x AMD EPYC 7B12 64-core CPU @2.25GHz. Inference takes < 6 hours on 1x NVIDIA V100 16GB GPU and 1x Intel Xeon Gold 6148 20-core CPU @2.40GHz. # Running our model ## Setup You can set up Python virtual environment (you might need to install the `python3-venv` package first) with all needed dependencies inside the forked `deepmind_research` repository using: ```bash python3 -m venv /tmp/pcq_venv source /tmp/pcq_venv/bin/activate pip3 install --upgrade pip setuptools wheel pip3 install -r ogb_lsc/pcq/requirements.txt ``` ## Download and pre-process data All the additional features used in training (k-fold splits and conformer position features) can be generated by running: ```bash /bin/bash run_preprocessing.sh -r ${HOME}/pcq/ ``` Or downloaded using: ```bash python download_pcq.py --task_root=${HOME}/pcq/ --payload="data" ``` ## Reproducing our final results We have provided pre-trained weights of our final submission (~150 GB worth of model checkpoints) for convenience, which can be downloaded with: ```bash python download_pcq.py --task_root=${HOME}/pcq/ --payload="models" ``` Then to reproduce our final results please run: ```bash /bin/bash run_pretrained_eval.sh -r ${HOME}/pcq/ ``` Note that this script does not use the downloaded conformer position features, and instead computes them for the test set as part of the script. ## Retraining our model Disclaimer: This script is provided for illustrative purposes. It is not practical for actual training since it only uses a single machine, and likely requires reducing the batch size and/or model size to fit on a single GPU. To train a model, please run: ```bash /bin/bash run_training.sh -r ${HOME}/pcq/ ``` To simply validate that the code is running correctly on your hardware setup, consider setting `debug=True` in `config.py`, which trains a smaller model. # Citation To cite this work (together with our MAG240M-LSC entry): ```latex @article{deepmind2021ogb, author = {Ravichandra Addanki and Peter Battaglia and David Budden and Andreea Deac and Jonathan Godwin and Thomas Keck and Wai Lok Sibon Li and Alvaro Sanchez-Gonzalez and Jacklynn Stott and Shantanu Thakoor and Petar Veli\v{c}kovi\'{c}}, title = {Large-scale graph representation learning with very deep GNNs and self-supervision}, year = {2021}, journal={arXiv preprint arXiv:2107.09422}, } ``` Our technical report can be found [here](https://arxiv.org/abs/2107.09422). ================================================ FILE: ogb_lsc/pcq/batching_utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Dynamic batching utilities.""" from typing import Generator, Iterator, Sequence, Tuple import jax.tree_util as tree import jraph import numpy as np _NUMBER_FIELDS = ("n_node", "n_edge", "n_graph") def dynamically_batch(graphs_tuple_iterator: Iterator[jraph.GraphsTuple], n_node: int, n_edge: int, n_graph: int) -> Generator[jraph.GraphsTuple, None, None]: """Dynamically batches trees with `jraph.GraphsTuples` to `graph_batch_size`. Elements of the `graphs_tuple_iterator` will be incrementally added to a batch until the limits defined by `n_node`, `n_edge` and `n_graph` are reached. This means each element yielded by this generator For situations where you have variable sized data, it"s useful to be able to have variable sized batches. This is especially the case if you have a loss defined on the variable shaped element (for example, nodes in a graph). Args: graphs_tuple_iterator: An iterator of `jraph.GraphsTuples`. n_node: The maximum number of nodes in a batch. n_edge: The maximum number of edges in a batch. n_graph: The maximum number of graphs in a batch. Yields: A `jraph.GraphsTuple` batch of graphs. Raises: ValueError: if the number of graphs is < 2. RuntimeError: if the `graphs_tuple_iterator` contains elements which are not `jraph.GraphsTuple`s. RuntimeError: if a graph is found which is larger than the batch size. """ if n_graph < 2: raise ValueError("The number of graphs in a batch size must be greater or " f"equal to `2` for padding with graphs, got {n_graph}.") valid_batch_size = (n_node - 1, n_edge, n_graph - 1) accumulated_graphs = [] num_accumulated_nodes = 0 num_accumulated_edges = 0 num_accumulated_graphs = 0 for element in graphs_tuple_iterator: element_nodes, element_edges, element_graphs = _get_graph_size(element) if _is_over_batch_size(element, valid_batch_size): graph_size = element_nodes, element_edges, element_graphs graph_size = {k: v for k, v in zip(_NUMBER_FIELDS, graph_size)} batch_size = {k: v for k, v in zip(_NUMBER_FIELDS, valid_batch_size)} raise RuntimeError("Found graph bigger than batch size. Valid Batch " f"Size: {batch_size}, Graph Size: {graph_size}") if not accumulated_graphs: # If this is the first element of the batch, set it and continue. accumulated_graphs = [element] num_accumulated_nodes = element_nodes num_accumulated_edges = element_edges num_accumulated_graphs = element_graphs continue else: # Otherwise check if there is space for the graph in the batch: if ((num_accumulated_graphs + element_graphs > n_graph - 1) or (num_accumulated_nodes + element_nodes > n_node - 1) or (num_accumulated_edges + element_edges > n_edge)): # If there is, add it to the batch batched_graph = _batch_np(accumulated_graphs) yield jraph.pad_with_graphs(batched_graph, n_node, n_edge, n_graph) accumulated_graphs = [element] num_accumulated_nodes = element_nodes num_accumulated_edges = element_edges num_accumulated_graphs = element_graphs else: # Otherwise, return the old batch and start a new batch. accumulated_graphs.append(element) num_accumulated_nodes += element_nodes num_accumulated_edges += element_edges num_accumulated_graphs += element_graphs # We may still have data in batched graph. if accumulated_graphs: batched_graph = _batch_np(accumulated_graphs) yield jraph.pad_with_graphs(batched_graph, n_node, n_edge, n_graph) def _batch_np(graphs: Sequence[jraph.GraphsTuple]) -> jraph.GraphsTuple: # Calculates offsets for sender and receiver arrays, caused by concatenating # the nodes arrays. offsets = np.cumsum(np.array([0] + [np.sum(g.n_node) for g in graphs[:-1]])) def _map_concat(nests): concat = lambda *args: np.concatenate(args) return tree.tree_map(concat, *nests) return jraph.GraphsTuple( n_node=np.concatenate([g.n_node for g in graphs]), n_edge=np.concatenate([g.n_edge for g in graphs]), nodes=_map_concat([g.nodes for g in graphs]), edges=_map_concat([g.edges for g in graphs]), globals=_map_concat([g.globals for g in graphs]), senders=np.concatenate([g.senders + o for g, o in zip(graphs, offsets)]), receivers=np.concatenate( [g.receivers + o for g, o in zip(graphs, offsets)])) def _get_graph_size(graph: jraph.GraphsTuple) -> Tuple[int, int, int]: n_node = np.sum(graph.n_node) n_edge = len(graph.senders) n_graph = len(graph.n_node) return n_node, n_edge, n_graph def _is_over_batch_size( graph: jraph.GraphsTuple, graph_batch_size: Tuple[int, int, int], ) -> bool: graph_size = _get_graph_size(graph) return any([x > y for x, y in zip(graph_size, graph_batch_size)]) ================================================ FILE: ogb_lsc/pcq/config.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Experiment config for PCQM4M-LSC entry.""" from jaxline import base_config from ml_collections import config_dict def get_config(debug: bool = False) -> config_dict.ConfigDict: """Get Jaxline experiment config.""" config = base_config.get_base_config() # E.g. '/data/pretrained_models/k0_seed100' (and set k_fold_split_id=0, below) config.restore_path = config_dict.placeholder(str) training_batch_size = 64 eval_batch_size = 64 ## Experiment config. loss_config_name = 'RegressionLossConfig' loss_kwargs = dict( exponent=1., # 2 for l2 loss, 1 for l1 loss, etc... ) dataset_config = dict( data_root=config_dict.placeholder(str), augment_with_random_mirror_symmetry=True, k_fold_split_id=config_dict.placeholder(int), num_k_fold_splits=config_dict.placeholder(int), # Options: "in" or "out". # Filter=in would keep the samples with nans in the conformer features. # Filter=out would keep the samples with no NaNs anywhere in the conformer # features. filter_in_or_out_samples_with_nans_in_conformers=( config_dict.placeholder(str)), cached_conformers_file=config_dict.placeholder(str)) model_config = dict( mlp_hidden_size=512, mlp_layers=2, latent_size=512, use_layer_norm=False, num_message_passing_steps=32, shared_message_passing_weights=False, mask_padding_graph_at_every_step=True, loss_config_name=loss_config_name, loss_kwargs=loss_kwargs, processor_mode='resnet', global_reducer='sum', node_reducer='sum', dropedge_rate=0.1, dropnode_rate=0.1, aux_multiplier=0.1, add_relative_distance=True, add_relative_displacement=True, add_absolute_positions=False, position_normalization=2., relative_displacement_normalization=1., ignore_globals=False, ignore_globals_from_final_layer_for_predictions=True, ) if debug: # Make network smaller. model_config.update(dict( mlp_hidden_size=32, mlp_layers=1, latent_size=32, num_message_passing_steps=1)) config.experiment_kwargs = config_dict.ConfigDict( dict( config=dict( debug=debug, predictions_dir=config_dict.placeholder(str), ema=True, ema_decay=0.9999, sample_random=0.05, optimizer=dict( name='adam', optimizer_kwargs=dict(b1=.9, b2=.95), lr_schedule=dict( warmup_steps=int(5e4), decay_steps=int(5e5), init_value=1e-5, peak_value=1e-4, end_value=0., ), ), model=model_config, dataset_config=dataset_config, # As a rule of thumb, use the following statistics: # Avg. # nodes in graph: 16. # Avg. # edges in graph: 40. training=dict( dynamic_batch_size={ 'n_node': 256 if debug else 16 * training_batch_size, 'n_edge': 512 if debug else 40 * training_batch_size, 'n_graph': 2 if debug else training_batch_size, },), evaluation=dict( split='valid', dynamic_batch_size=dict( n_node=256 if debug else 16 * eval_batch_size, n_edge=512 if debug else 40 * eval_batch_size, n_graph=2 if debug else eval_batch_size, ))))) ## Training loop config. config.training_steps = int(5e6) config.checkpoint_dir = '/tmp/checkpoint/pcq/' config.train_checkpoint_all_hosts = False config.save_checkpoint_interval = 300 config.log_train_data_interval = 60 config.log_tensors_interval = 60 config.best_model_eval_metric = 'mae' config.best_model_eval_metric_higher_is_better = False return config ================================================ FILE: ogb_lsc/pcq/conformer_utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Conformer utilities.""" import copy from typing import List, Optional from absl import logging import numpy as np import rdkit from rdkit import Chem from rdkit.Chem import AllChem import tensorflow.compat.v2 as tf def generate_conformers( molecule: Chem.rdchem.Mol, max_num_conformers: int, *, random_seed: int = -1, prune_rms_thresh: float = -1.0, max_iter: int = -1, fallback_to_random: bool = False, ) -> Chem.rdchem.Mol: """Generates conformers for a given molecule. Args: molecule: molecular representation of the compound. max_num_conformers: maximum number of conformers to generate. If pruning is done, the returned number of conformers is not guaranteed to match max_num_conformers. random_seed: random seed to use for conformer generation. prune_rms_thresh: RMSD threshold which allows to prune conformers that are too similar. max_iter: Maximum number of iterations to perform when optimising MMFF force field. If set to <= 0, energy optimisation is not performed. fallback_to_random: if conformers cannot be obtained, use random coordinates to initialise. Returns: Copy of a `molecule` with added hydrogens. The returned molecule contains force field-optimised conformers. The number of conformers is guaranteed to be <= max_num_conformers. """ mol = copy.deepcopy(molecule) mol = Chem.AddHs(mol) mol = _embed_conformers( mol, max_num_conformers, random_seed, prune_rms_thresh, fallback_to_random, use_random=False) if max_iter > 0: mol_with_conformers = _minimize_by_mmff(mol, max_iter) if mol_with_conformers is None: mol_with_conformers = _minimize_by_uff(mol, max_iter) else: mol_with_conformers = mol # Aligns conformations in a molecule to each other using the first # conformation as the reference. AllChem.AlignMolConformers(mol_with_conformers) # We remove hydrogens to keep the number of atoms consistent with the graph # nodes. mol_with_conformers = Chem.RemoveHs(mol_with_conformers) return mol_with_conformers def atom_to_feature_vector( atom: rdkit.Chem.rdchem.Atom, conformer: Optional[np.ndarray] = None, ) -> List[float]: """Converts rdkit atom object to feature list of indices. Args: atom: rdkit atom object. conformer: Generated conformers. Returns -1 values if set to None. Returns: List containing positions (x, y, z) of each atom from the conformer. """ if conformer: pos = conformer.GetAtomPosition(atom.GetIdx()) return [pos.x, pos.y, pos.z] return [np.nan, np.nan, np.nan] def compute_conformer(smile: str, max_iter: int = -1) -> np.ndarray: """Computes conformer. Args: smile: Smile string. max_iter: Maximum number of iterations to perform when optimising MMFF force field. If set to <= 0, energy optimisation is not performed. Returns: A tuple containing index, fingerprint and conformer. Raises: RuntimeError: If unable to convert smile string to RDKit mol. """ mol = rdkit.Chem.MolFromSmiles(smile) if not mol: raise RuntimeError('Unable to convert smile to molecule: %s' % smile) conformer_failed = False try: mol = generate_conformers( mol, max_num_conformers=1, random_seed=45, prune_rms_thresh=0.01, max_iter=max_iter) except IOError as e: logging.exception('Failed to generate conformers for %s . IOError %s.', smile, e) conformer_failed = True except ValueError: logging.error('Failed to generate conformers for %s . ValueError', smile) conformer_failed = True except: # pylint: disable=bare-except logging.error('Failed to generate conformers for %s.', smile) conformer_failed = True atom_features_list = [] conformer = None if conformer_failed else list(mol.GetConformers())[0] for atom in mol.GetAtoms(): atom_features_list.append(atom_to_feature_vector(atom, conformer)) conformer_features = np.array(atom_features_list, dtype=np.float32) return conformer_features def get_random_rotation_matrix(include_mirror_symmetry: bool) -> tf.Tensor: """Returns a single random rotation matrix.""" rotation_matrix = _get_random_rotation_3d() if include_mirror_symmetry: random_mirror_symmetry = _get_random_mirror_symmetry() rotation_matrix = tf.matmul(rotation_matrix, random_mirror_symmetry) return rotation_matrix def rotate(vectors: tf.Tensor, rotation_matrix: tf.Tensor) -> tf.Tensor: """Batch of vectors on a single rotation matrix.""" return tf.matmul(vectors, rotation_matrix) def _embed_conformers( molecule: Chem.rdchem.Mol, max_num_conformers: int, random_seed: int, prune_rms_thresh: float, fallback_to_random: bool, *, use_random: bool = False, ) -> Chem.rdchem.Mol: """Embeds conformers into a copy of a molecule. If random coordinates allowed, tries not to use random coordinates at first, and uses random only if fails. Args: molecule: molecular representation of the compound. max_num_conformers: maximum number of conformers to generate. If pruning is done, the returned number of conformers is not guaranteed to match max_num_conformers. random_seed: random seed to use for conformer generation. prune_rms_thresh: RMSD threshold which allows to prune conformers that are too similar. fallback_to_random: if conformers cannot be obtained, use random coordinates to initialise. *: use_random: Use random coordinates. Shouldn't be set by any caller except this function itself. Returns: A copy of a molecule with embedded conformers. Raises: ValueError: if conformers cannot be obtained for a given molecule. """ mol = copy.deepcopy(molecule) # Obtains parameters for conformer generation. # In particular, ETKDG is experimental-torsion basic knowledge distance # geometry, which allows to randomly generate an initial conformation that # satisfies various geometric constraints such as lower and upper bounds on # the distances between atoms. params = AllChem.ETKDGv3() params.randomSeed = random_seed params.pruneRmsThresh = prune_rms_thresh params.numThreads = -1 params.useRandomCoords = use_random conf_ids = AllChem.EmbedMultipleConfs(mol, max_num_conformers, params) if not conf_ids: if not fallback_to_random or use_random: raise ValueError('Cant get conformers') return _embed_conformers( mol, max_num_conformers, random_seed, prune_rms_thresh, fallback_to_random, use_random=True) return mol def _minimize_by_mmff( molecule: Chem.rdchem.Mol, max_iter: int, ) -> Optional[Chem.rdchem.Mol]: """Minimizes forcefield for conformers using MMFF algorithm. Args: molecule: a datastructure containing conformers. max_iter: number of maximum iterations to use when optimising force field. Returns: A copy of a `molecule` containing optimised conformers; or None if MMFF cannot be performed. """ molecule_props = AllChem.MMFFGetMoleculeProperties(molecule) if molecule_props is None: return None mol = copy.deepcopy(molecule) for conf_id in range(mol.GetNumConformers()): ff = AllChem.MMFFGetMoleculeForceField( mol, molecule_props, confId=conf_id, ignoreInterfragInteractions=False) ff.Initialize() # minimises a conformer within a mol in place. ff.Minimize(max_iter) return mol def _minimize_by_uff( molecule: Chem.rdchem.Mol, max_iter: int, ) -> Chem.rdchem.Mol: """Minimizes forcefield for conformers using UFF algorithm. Args: molecule: a datastructure containing conformers. max_iter: number of maximum iterations to use when optimising force field. Returns: A copy of a `molecule` containing optimised conformers. """ mol = copy.deepcopy(molecule) conf_ids = range(mol.GetNumConformers()) for conf_id in conf_ids: ff = AllChem.UFFGetMoleculeForceField(mol, confId=conf_id) ff.Initialize() # minimises a conformer within a mol in place. ff.Minimize(max_iter) return mol def _get_symmetry_rotation_matrix(sign: tf.Tensor) -> tf.Tensor: """Returns the 2d/3d matrix for mirror symmetry.""" zero = tf.zeros_like(sign) one = tf.ones_like(sign) # pylint: disable=bad-whitespace,bad-continuation rot = [sign, zero, zero, zero, one, zero, zero, zero, one] # pylint: enable=bad-whitespace,bad-continuation shape = (3, 3) rot = tf.stack(rot, axis=-1) rot = tf.reshape(rot, shape) return rot def _quaternion_to_rotation_matrix(quaternion: tf.Tensor) -> tf.Tensor: """Converts a batch of quaternions to a batch of rotation matrices.""" q0 = quaternion[0] q1 = quaternion[1] q2 = quaternion[2] q3 = quaternion[3] r00 = 2 * (q0 * q0 + q1 * q1) - 1 r01 = 2 * (q1 * q2 - q0 * q3) r02 = 2 * (q1 * q3 + q0 * q2) r10 = 2 * (q1 * q2 + q0 * q3) r11 = 2 * (q0 * q0 + q2 * q2) - 1 r12 = 2 * (q2 * q3 - q0 * q1) r20 = 2 * (q1 * q3 - q0 * q2) r21 = 2 * (q2 * q3 + q0 * q1) r22 = 2 * (q0 * q0 + q3 * q3) - 1 matrix = tf.stack([r00, r01, r02, r10, r11, r12, r20, r21, r22], axis=-1) return tf.reshape(matrix, [3, 3]) def _get_random_rotation_3d() -> tf.Tensor: random_quaternions = tf.random.normal( shape=[4], dtype=tf.float32) random_quaternions /= tf.linalg.norm( random_quaternions, axis=-1, keepdims=True) return _quaternion_to_rotation_matrix(random_quaternions) def _get_random_mirror_symmetry() -> tf.Tensor: random_0_1 = tf.random.uniform( shape=(), minval=0, maxval=2, dtype=tf.int32) random_signs = tf.cast((2 * random_0_1) - 1, tf.float32) return _get_symmetry_rotation_matrix(random_signs) ================================================ FILE: ogb_lsc/pcq/dataset_utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Dataset utilities.""" import functools from typing import List, Optional import jax import jraph from ml_collections import config_dict import numpy as np from ogb import utils from ogb.utils import features import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds import tree # pylint: disable=g-bad-import-order # pytype: disable=import-error import batching_utils import conformer_utils import datasets curry = lambda f: functools.partial(functools.partial, f) def build_dataset_iterator( data_root: str, split: str, dynamic_batch_size_config: config_dict.ConfigDict, sample_random: float, cached_conformers_file: str, debug: bool = False, is_training: bool = True, augment_with_random_mirror_symmetry: bool = False, positions_noise_std: Optional[float] = None, k_fold_split_id: Optional[int] = None, num_k_fold_splits: Optional[int] = None, filter_in_or_out_samples_with_nans_in_conformers: Optional[str] = None, ): """Returns an iterator over Batches from the dataset.""" if debug: max_items_to_read_from_dataset = 10 prefetch_buffer_size = 1 shuffle_buffer_size = 1 else: max_items_to_read_from_dataset = -1 # < 0 means no limit. prefetch_buffer_size = 64 # It can take a while to fill the shuffle buffer with k fold splits. shuffle_buffer_size = 128 if k_fold_split_id is None else int(1e6) num_local_devices = jax.local_device_count() # Load all smile strings. indices, smiles, labels = _load_smiles( data_root, split, k_fold_split_id=k_fold_split_id, num_k_fold_splits=num_k_fold_splits) if debug: indices = indices[:100] smiles = smiles[:100] labels = labels[:100] # Generate all conformer features from smile strings ahead of time. # This gives us a boost from multi-parallelism as opposed to doing it # online. conformers = _load_conformers(indices, smiles, cached_conformers_file) data_generator = ( lambda: _get_pcq_graph_generator(indices, smiles, labels, conformers)) # Create a dataset yielding graphs from smile strings. example = next(data_generator()) signature_from_example = tree.map_structure(_numpy_to_tensor_spec, example) ds = tf.data.Dataset.from_generator( data_generator, output_signature=signature_from_example) ds = ds.take(max_items_to_read_from_dataset) ds = ds.cache() if is_training: ds = ds.shuffle(shuffle_buffer_size) # Apply transformations. def map_fn(graph, conformer_positions): graph = _maybe_one_hot_atoms_with_noise( graph, is_training=is_training, sample_random=sample_random) # Add conformer features. graph = _add_conformer_features( graph, conformer_positions, augment_with_random_mirror_symmetry=augment_with_random_mirror_symmetry, noise_std=positions_noise_std, is_training=is_training, ) return _downcast_ints(graph) ds = ds.map(map_fn, num_parallel_calls=tf.data.AUTOTUNE) if filter_in_or_out_samples_with_nans_in_conformers: if filter_in_or_out_samples_with_nans_in_conformers not in ("in", "out"): raise ValueError( "Unknown value specified for the argument " "`filter_in_or_out_samples_with_nans_in_conformers`: %s" % filter_in_or_out_samples_with_nans_in_conformers) filter_fn = _get_conformer_filter( with_nans=(filter_in_or_out_samples_with_nans_in_conformers == "in")) ds = ds.filter(filter_fn) if is_training: ds = ds.shard(jax.process_count(), jax.process_index()) ds = ds.repeat() ds = ds.prefetch(prefetch_buffer_size) it = tfds.as_numpy(ds) # Dynamic batching. batched_gen = batching_utils.dynamically_batch( it, n_node=dynamic_batch_size_config.n_node + 1, n_edge=dynamic_batch_size_config.n_edge, n_graph=dynamic_batch_size_config.n_graph + 1, ) if is_training: # Stack `num_local_devices` of batches together for pmap updates. batch_size = num_local_devices def _batch(l): assert l return tree.map_structure(lambda *l: np.stack(l, axis=0), *l) def batcher_fn(): batch = [] for sample in batched_gen: batch.append(sample) if len(batch) == batch_size: yield _batch(batch) batch = [] if batch: yield _batch(batch) for sample in batcher_fn(): yield sample else: for sample in batched_gen: yield sample def _get_conformer_filter(with_nans: bool): """Selects a conformer filter to apply. Args: with_nans: Filter only selects samples with NaNs in conformer features. Else, selects samples without any NaNs in conformer features. Returns: A function that can be used with tf.data.Dataset.filter(). Raises: ValueError: If the input graph to the filter has no conformer features to filter. """ def _filter(graph: jraph.GraphsTuple) -> tf.Tensor: if ("positions" not in graph.nodes) or ( "positions_targets" not in graph.nodes) or ( "positions_nan_mask" not in graph.globals): raise ValueError("Conformer features not available to filter.") any_nan = tf.logical_not(tf.squeeze(graph.globals["positions_nan_mask"])) return any_nan if with_nans else tf.logical_not(any_nan) return _filter def _numpy_to_tensor_spec(arr: np.ndarray) -> tf.TensorSpec: if not isinstance(arr, np.ndarray): return tf.TensorSpec([], dtype=tf.int32 if isinstance(arr, int) else tf.float32) elif arr.shape: return tf.TensorSpec((None,) + arr.shape[1:], arr.dtype) else: return tf.TensorSpec([], arr.dtype) def _sample_uniform_categorical(num: int, size: int) -> tf.Tensor: return tf.random.categorical(tf.math.log([[1 / size] * size]), num)[0] @curry(jax.tree_map) def _downcast_ints(x): if x.dtype == tf.int64: return tf.cast(x, tf.int32) return x def _one_hot_atoms(atoms: tf.Tensor) -> tf.Tensor: vocab_sizes = features.get_atom_feature_dims() one_hots = [] for i in range(atoms.shape[1]): one_hots.append(tf.one_hot(atoms[:, i], vocab_sizes[i], dtype=tf.float32)) return tf.concat(one_hots, axis=-1) def _sample_one_hot_atoms(atoms: tf.Tensor) -> tf.Tensor: vocab_sizes = features.get_atom_feature_dims() one_hots = [] num_atoms = tf.shape(atoms)[0] for i in range(atoms.shape[1]): sampled_category = _sample_uniform_categorical(num_atoms, vocab_sizes[i]) one_hots.append( tf.one_hot(sampled_category, vocab_sizes[i], dtype=tf.float32)) return tf.concat(one_hots, axis=-1) def _one_hot_bonds(bonds: tf.Tensor) -> tf.Tensor: vocab_sizes = features.get_bond_feature_dims() one_hots = [] for i in range(bonds.shape[1]): one_hots.append(tf.one_hot(bonds[:, i], vocab_sizes[i], dtype=tf.float32)) return tf.concat(one_hots, axis=-1) def _sample_one_hot_bonds(bonds: tf.Tensor) -> tf.Tensor: vocab_sizes = features.get_bond_feature_dims() one_hots = [] num_bonds = tf.shape(bonds)[0] for i in range(bonds.shape[1]): sampled_category = _sample_uniform_categorical(num_bonds, vocab_sizes[i]) one_hots.append( tf.one_hot(sampled_category, vocab_sizes[i], dtype=tf.float32)) return tf.concat(one_hots, axis=-1) def _maybe_one_hot_atoms_with_noise( x, is_training: bool, sample_random: float, ): """One hot atoms with noise.""" gt_nodes = _one_hot_atoms(x.nodes) gt_edges = _one_hot_bonds(x.edges) if is_training: num_nodes = tf.shape(x.nodes)[0] sample_node_or_not = tf.random.uniform([num_nodes], maxval=1) < sample_random nodes = tf.where( tf.expand_dims(sample_node_or_not, axis=-1), _sample_one_hot_atoms(x.nodes), gt_nodes) num_edges = tf.shape(x.edges)[0] sample_edges_or_not = tf.random.uniform([num_edges], maxval=1) < sample_random edges = tf.where( tf.expand_dims(sample_edges_or_not, axis=-1), _sample_one_hot_bonds(x.edges), gt_edges) else: nodes = gt_nodes edges = gt_edges return x._replace( nodes={ "atom_one_hots_targets": gt_nodes, "atom_one_hots": nodes, }, edges={ "bond_one_hots_targets": gt_edges, "bond_one_hots": edges }) def _load_smiles( data_root: str, split: str, k_fold_split_id: int, num_k_fold_splits: int, ): """Loads smiles trings for the input split.""" if split == "test" or k_fold_split_id is None: indices = datasets.load_splits()[split] elif split == "train": indices = datasets.load_all_except_kth_fold_indices( data_root, k_fold_split_id, num_k_fold_splits) indices += datasets.load_splits()["train"] else: assert split == "valid" indices = datasets.load_kth_fold_indices(data_root, k_fold_split_id) smiles_and_labels = datasets.load_smile_strings(with_labels=True) smiles, labels = list(zip(*smiles_and_labels)) return indices, [smiles[i] for i in indices], [labels[i] for i in indices] def _convert_ogb_graph_to_graphs_tuple(ogb_graph): """Converts an OGB Graph to a GraphsTuple.""" senders = ogb_graph["edge_index"][0] receivers = ogb_graph["edge_index"][1] edges = ogb_graph["edge_feat"] nodes = ogb_graph["node_feat"] n_node = np.array([ogb_graph["num_nodes"]]) n_edge = np.array([len(senders)]) graph = jraph.GraphsTuple( nodes=nodes, edges=edges, senders=senders, receivers=receivers, n_node=n_node, n_edge=n_edge, globals=None) return tree.map_structure(lambda x: x if x is not None else np.array(0.), graph) def _load_conformers(indices: List[int], smiles: List[str], cached_conformers_file: str): """Loads conformers.""" smile_to_conformer = datasets.load_cached_conformers(cached_conformers_file) conformers = [] for graph_idx, smile in zip(indices, smiles): del graph_idx # Unused. if smile not in smile_to_conformer: raise KeyError("Cache did not have conformer entry for the smile %s" % str(smile)) conformers.append(dict(conformer=smile_to_conformer[smile])) return conformers def _add_conformer_features( graph, conformer_features, augment_with_random_mirror_symmetry: bool, noise_std: float, is_training: bool, ): """Adds conformer features.""" if not isinstance(graph.nodes, dict): raise ValueError("Expected a dict type for `graph.nodes`.") # Remove mean position to center around a canonical origin. positions = conformer_features["conformer"] # NaN's appear in ~0.13% of training, 0.104% of validation and 0.16% of test # nodes. # See this colab: http://shortn/_6UcuosxY7x. nan_mask = tf.reduce_any(tf.math.is_nan(positions)) positions = tf.where(nan_mask, tf.constant(0., positions.dtype), positions) positions -= tf.reduce_mean(positions, axis=0, keepdims=True) # Optionally augment with a random rotation. if is_training: rot_mat = conformer_utils.get_random_rotation_matrix( augment_with_random_mirror_symmetry) positions = conformer_utils.rotate(positions, rot_mat) positions_targets = positions # Optionally add noise to the positions. if noise_std and is_training: positions = tf.random.normal(tf.shape(positions), positions, noise_std) return graph._replace( nodes=dict( positions=positions, positions_targets=positions_targets, **graph.nodes), globals={ "positions_nan_mask": tf.expand_dims(tf.logical_not(nan_mask), axis=0), **(graph.globals if isinstance(graph.globals, dict) else {}) }) def _get_pcq_graph_generator(indices, smiles, labels, conformers): """Returns a generator to yield graph.""" for idx, smile, conformer_positions, label in zip(indices, smiles, conformers, labels): graph = utils.smiles2graph(smile) graph = _convert_ogb_graph_to_graphs_tuple(graph) graph = graph._replace( globals={ "target": np.array([label], dtype=np.float32), "graph_index": np.array([idx], dtype=np.int32), **(graph.globals if isinstance(graph.globals, dict) else {}) }) yield graph, conformer_positions ================================================ FILE: ogb_lsc/pcq/datasets.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """PCQM4M-LSC datasets.""" import functools import pickle from typing import Dict, List, Tuple, Union import numpy as np from ogb import lsc NUM_VALID_SAMPLES = 380_670 NUM_TEST_SAMPLES = 377_423 NORMALIZE_TARGET_MEAN = 5.690944545356371 NORMALIZE_TARGET_STD = 1.1561347795107815 def load_splits() -> Dict[str, List[int]]: """Loads dataset splits.""" dataset = _get_pcq_dataset(only_smiles=True) return dataset.get_idx_split() def load_kth_fold_indices(data_root: str, k_fold_split_id: int) -> List[int]: """Loads k-th fold indices.""" fname = f"{data_root}/k_fold_splits/{k_fold_split_id}.pkl" return list(map(int, _load_pickle(fname))) def load_all_except_kth_fold_indices(data_root: str, k_fold_split_id: int, num_k_fold_splits: int) -> List[int]: """Loads indices except for the kth fold.""" if k_fold_split_id is None: raise ValueError("Expected integer value for `k_fold_split_id`.") indices = [] for index in range(num_k_fold_splits): if index != k_fold_split_id: indices += load_kth_fold_indices(data_root, index) return indices def load_smile_strings( with_labels=False) -> List[Union[str, Tuple[str, np.ndarray]]]: """Loads the smile strings in the PCQ dataset.""" dataset = _get_pcq_dataset(only_smiles=True) smiles = [] for i in range(len(dataset)): smile, label = dataset[i] if with_labels: smiles.append((smile, label)) else: smiles.append(smile) return smiles @functools.lru_cache() def load_cached_conformers(cached_fname: str) -> Dict[str, np.ndarray]: """Returns cached dict mapping smile strings to conformer features.""" return _load_pickle(cached_fname) @functools.lru_cache() def _get_pcq_dataset(only_smiles: bool): return lsc.PCQM4MDataset(only_smiles=only_smiles) def _load_pickle(fname: str): with open(fname, "rb") as f: return pickle.load(f) ================================================ FILE: ogb_lsc/pcq/download_pcq.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Download data required for training and evaluating models.""" import pathlib from absl import app from absl import flags from absl import logging from google.cloud import storage Path = pathlib.Path _BUCKET_NAME = 'deepmind-ogb-lsc' _MAX_DOWNLOAD_ATTEMPTS = 5 FLAGS = flags.FLAGS flags.DEFINE_enum('payload', None, ['data', 'models'], 'Download "data" or "models"?') flags.DEFINE_string('task_root', None, 'Local task root directory') # GCS_DATA_ROOT = Path('pcq/data') # GCS_MODEL_ROOT = Path('pcq/models') DATA_RELATIVE_PATHS = [ 'raw/data.csv.gz', 'preprocessed/smile_to_conformer.pkl', 'k_fold_splits' ] class DataCorruptionError(Exception): pass def _get_gcs_root(): return Path('pcq') / FLAGS.payload def _get_gcs_bucket(): storage_client = storage.Client.create_anonymous_client() return storage_client.bucket(_BUCKET_NAME) def _write_blob_to_destination(blob, task_root, ignore_existing=True): """Write the blob.""" logging.info("Copying blob: '%s'", blob.name) destination_path = Path(task_root) / Path(*Path(blob.name).parts[1:]) logging.info(" ... to: '%s'", str(destination_path)) if ignore_existing and destination_path.exists(): return destination_path.parent.mkdir(parents=True, exist_ok=True) checksum = 'crc32c' for attempt in range(_MAX_DOWNLOAD_ATTEMPTS): try: blob.download_to_filename(destination_path.as_posix(), checksum=checksum) except storage.client.resumable_media.common.DataCorruption: pass else: break else: raise DataCorruptionError(f"Checksum ('{checksum}') for {blob.name} failed " f'after {attempt + 1} attempts') def main(unused_argv): bucket = _get_gcs_bucket() if FLAGS.payload == 'data': relative_paths = DATA_RELATIVE_PATHS else: relative_paths = (None,) for relative_path in relative_paths: if relative_path is None: relative_path = str(_get_gcs_root()) else: relative_path = str(_get_gcs_root() / relative_path) logging.info("Copying relative path: '%s'", relative_path) blobs = bucket.list_blobs(prefix=relative_path) for blob in blobs: _write_blob_to_destination(blob, FLAGS.task_root) if __name__ == '__main__': flags.mark_flag_as_required('payload') flags.mark_flag_as_required('task_root') app.run(main) ================================================ FILE: ogb_lsc/pcq/ensemble_predictions.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Script to generate ensembled PCQ test predictions.""" import collections import os import pathlib from typing import List, NamedTuple from absl import app from absl import flags from absl import logging import dill import numpy as np from ogb import lsc # pylint: disable=g-bad-import-order # pytype: disable=import-error import datasets _NUM_SEEDS = 2 _CLIP_VALUE = 20. _NUM_KFOLD_SPLITS = 10 _SEED_START = flags.DEFINE_integer( 'seed_start', 42, 'Initial seed for the list of ensemble models.') _CONFORMER_PATH = flags.DEFINE_string( 'conformer_path', None, 'Path to conformer predictions.', required=True) _NON_CONFORMER_PATH = flags.DEFINE_string( 'non_conformer_path', None, 'Path to non-conformer predictions.', required=True) _OUTPUT_PATH = flags.DEFINE_string('output_path', None, 'Output path.') _SPLIT = flags.DEFINE_enum('split', 'test', ['test', 'valid'], 'Split: valid or test.') class _Predictions(NamedTuple): predictions: np.ndarray indices: np.ndarray def _load_dill(fname) -> bytes: with open(fname, 'rb') as f: return dill.load(f) def _sort_by_indices(predictions: _Predictions) -> _Predictions: order = np.argsort(predictions.indices) return _Predictions( predictions=predictions.predictions[order], indices=predictions.indices[order]) def load_predictions(path: str, split: str) -> _Predictions: """Load written prediction file.""" if len(os.listdir(path)) != 1: raise ValueError('Prediction directory must have exactly ' 'one prediction sub-directory: %s' % path) prediction_subdir = os.listdir(path)[0] return _Predictions(*_load_dill(f'{path}/{prediction_subdir}/{split}.dill')) def mean_mae_distance(x, y): return np.abs(x - y).mean() def _load_valid_labels() -> np.ndarray: labels = [label for _, label in datasets.load_smile_strings(with_labels=True)] return np.array([labels[i] for i in datasets.load_splits()['valid']]) def evaluate_valid_predictions(ensembled_predictions: _Predictions): """Evaluates the predictions on the validation set.""" ensembled_predictions = _sort_by_indices(ensembled_predictions) evaluator = lsc.PCQM4MEvaluator() results = evaluator.eval( dict( y_pred=ensembled_predictions.predictions, y_true=_load_valid_labels())) logging.info('MAE on validation dataset: %f', results['mae']) def clip_predictions(predictions: _Predictions) -> _Predictions: return predictions._replace( predictions=np.clip(predictions.predictions, 0., _CLIP_VALUE)) def _generate_test_prediction_file(test_predictions: np.ndarray, output_path: pathlib.Path) -> pathlib.Path: """Generates the final file for submission.""" # Check that predictions are not nuts. assert test_predictions.dtype in [np.float64, np.float32] assert not np.any(np.isnan(test_predictions)) assert np.all(np.isfinite(test_predictions)) assert test_predictions.min() >= 0. assert test_predictions.max() <= 40. # Too risky to overwrite. if output_path.exists(): raise ValueError(f'{output_path} already exists') # Write to a local directory, and copy to final path (possibly cns). # It is not possible to write directlt on CNS. evaluator = lsc.PCQM4MEvaluator() evaluator.save_test_submission( dict(y_pred=test_predictions), str(output_path)) return output_path def merge_complementary_results(split: str, results_a: _Predictions, results_b: _Predictions) -> _Predictions: """Merges two prediction results with no overlap.""" indices_a = set(results_a.indices) indices_b = set(results_b.indices) assert not indices_a.intersection(indices_b) if split == 'test': merged_indices = list(sorted(indices_a | indices_b)) expected_indices = datasets.load_splits()[split] assert np.all(expected_indices == merged_indices) predictions = np.concatenate([results_a.predictions, results_b.predictions]) indices = np.concatenate([results_a.indices, results_b.indices]) predictions = _sort_by_indices( _Predictions(indices=indices, predictions=predictions)) return predictions def ensemble_valid_predictions( predictions_list: List[_Predictions]) -> _Predictions: """Ensembles a list of predictions.""" index_to_predictions = collections.defaultdict(list) for predictions in predictions_list: for idx, pred in zip(predictions.indices, predictions.predictions): index_to_predictions[idx].append(pred) for idx, ensemble_list in index_to_predictions.items(): if len(ensemble_list) != _NUM_SEEDS: raise RuntimeError( 'Graph index in the validation set received wrong number of ' 'predictions to ensemble.') index_to_predictions = { k: np.median(pred_list, axis=0) for k, pred_list in index_to_predictions.items() } return _sort_by_indices( _Predictions( indices=np.array(list(index_to_predictions.keys())), predictions=np.array(list(index_to_predictions.values())))) def ensemble_test_predictions( predictions_list: List[_Predictions]) -> _Predictions: """Ensembles a list of predictions.""" predictions = np.median([pred.predictions for pred in predictions_list], axis=0) common_indices = predictions_list[0].indices for preds in predictions_list[1:]: assert np.all(preds.indices == common_indices) return _Predictions(predictions=predictions, indices=common_indices) def create_submission_from_predictions( output_path: pathlib.Path, test_predictions: _Predictions) -> pathlib.Path: """Creates a submission for predictions on a path.""" assert _SPLIT.value == 'test' output_path = _generate_test_prediction_file( test_predictions.predictions, output_path=output_path / 'submission_files') return output_path / 'y_pred_pcqm4m.npz' def merge_predictions(split: str) -> List[_Predictions]: """Generates features merged from conformer and non-conformer predictions.""" merged_predictions: List[_Predictions] = [] seed = _SEED_START.value # Load conformer and non-conformer predictions. for unused_seed_group in (0, 1): for k in range(_NUM_KFOLD_SPLITS): conformer_predictions: _Predictions = load_predictions( f'{_CONFORMER_PATH.value}/k{k}_seed{seed}', split) non_conformer_predictions: _Predictions = load_predictions( f'{_NON_CONFORMER_PATH.value}/k{k}_seed{seed}', split) merged_predictions.append( merge_complementary_results(_SPLIT.value, conformer_predictions, non_conformer_predictions)) seed += 1 return merged_predictions def main(_): split: str = _SPLIT.value # Merge conformer and non-conformer predictions. merged_predictions = merge_predictions(split) # Clip before ensembling. clipped_predictions = list(map(clip_predictions, merged_predictions)) # Ensemble predictions. if split == 'valid': ensembled_predictions = ensemble_valid_predictions(clipped_predictions) else: assert split == 'test' ensembled_predictions = ensemble_test_predictions(clipped_predictions) # Clip after ensembling. ensembled_predictions = clip_predictions(ensembled_predictions) ensembled_predictions_path = pathlib.Path(_OUTPUT_PATH.value) ensembled_predictions_path.mkdir(parents=True, exist_ok=True) with open(ensembled_predictions_path / f'{split}_predictions.dill', 'wb') as f: dill.dump(ensembled_predictions, f) if split == 'valid': evaluate_valid_predictions(ensembled_predictions) else: assert split == 'test' output_path = create_submission_from_predictions(ensembled_predictions_path, ensembled_predictions) logging.info('Submission files written to %s', output_path) if __name__ == '__main__': app.run(main) ================================================ FILE: ogb_lsc/pcq/experiment.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """PCQM4M-LSC Jaxline experiment.""" import datetime import functools import os import signal import threading from typing import Iterable, Mapping, NamedTuple, Tuple from absl import app from absl import flags from absl import logging import chex import dill import haiku as hk import jax from jax.config import config as jax_config import jax.numpy as jnp from jaxline import experiment from jaxline import platform from jaxline import utils import jraph import numpy as np import optax import tensorflow as tf import tree # pylint: disable=g-bad-import-order import dataset_utils import datasets import model FLAGS = flags.FLAGS def _get_step_date_label(global_step: int): # Date removing microseconds. date_str = datetime.datetime.now().isoformat().split('.')[0] return f'step_{global_step}_{date_str}' class _Predictions(NamedTuple): predictions: np.ndarray indices: np.ndarray def tf1_ema(ema_value, current_value, decay, step): """Implements EMA with TF1-style decay warmup.""" decay = jnp.minimum(decay, (1.0 + step) / (10.0 + step)) return ema_value * decay + current_value * (1 - decay) def _sort_predictions_by_indices(predictions: _Predictions): sorted_order = np.argsort(predictions.indices) return _Predictions( predictions=predictions.predictions[sorted_order], indices=predictions.indices[sorted_order]) class Experiment(experiment.AbstractExperiment): """OGB Graph Property Prediction GraphNet experiment.""" CHECKPOINT_ATTRS = { '_params': 'params', '_opt_state': 'opt_state', '_network_state': 'network_state', '_ema_network_state': 'ema_network_state', '_ema_params': 'ema_params', } def __init__(self, mode, init_rng, config): """Initializes experiment.""" super(Experiment, self).__init__(mode=mode, init_rng=init_rng) if mode not in ('train', 'eval', 'train_eval_multithreaded'): raise ValueError(f'Invalid mode {mode}.') # Do not use accelerators in data pipeline. tf.config.experimental.set_visible_devices([], device_type='GPU') tf.config.experimental.set_visible_devices([], device_type='TPU') self.mode = mode self.init_rng = init_rng self.config = config self.loss = None self.forward = None # Needed for checkpoint restore. self._params = None self._network_state = None self._opt_state = None self._ema_network_state = None self._ema_params = None # _ _ # | |_ _ __ __ _(_)_ __ # | __| "__/ _` | | "_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step(self, global_step: jnp.ndarray, rng: jnp.ndarray, **unused_args): """See Jaxline base class.""" if self.loss is None: self._train_init() graph = next(self._train_input) out = self.update_parameters( self._params, self._ema_params, self._network_state, self._ema_network_state, self._opt_state, global_step, rng, graph._asdict()) (self._params, self._ema_params, self._network_state, self._ema_network_state, self._opt_state, scalars) = out return utils.get_first(scalars) def _construct_loss_config(self): loss_config = getattr(model, self.config.model.loss_config_name) if self.config.model.loss_config_name == 'RegressionLossConfig': return loss_config( mean=datasets.NORMALIZE_TARGET_MEAN, std=datasets.NORMALIZE_TARGET_STD, kwargs=self.config.model.loss_kwargs) else: raise ValueError('Unknown Loss Config') def _train_init(self): self.loss = hk.transform_with_state(self._loss) self._train_input = utils.py_prefetch( lambda: self._build_numpy_dataset_iterator('train', is_training=True)) init_stacked_graphs = next(self._train_input) init_key = utils.bcast_local_devices(self.init_rng) p_init = jax.pmap(self.loss.init) self._params, self._network_state = p_init(init_key, **init_stacked_graphs._asdict()) # Learning rate scheduling. lr_schedule = optax.warmup_cosine_decay_schedule( **self.config.optimizer.lr_schedule) self.optimizer = getattr(optax, self.config.optimizer.name)( learning_rate=lr_schedule, **self.config.optimizer.optimizer_kwargs) self._opt_state = jax.pmap(self.optimizer.init)(self._params) self.update_parameters = jax.pmap(self._update_parameters, axis_name='i') if self.config.ema: self._ema_params = self._params self._ema_network_state = self._network_state def _loss( self, **graph: Mapping[str, chex.ArrayTree]) -> chex.ArrayTree: graph = jraph.GraphsTuple(**graph) model_instance = model.GraphPropertyEncodeProcessDecode( loss_config=self._construct_loss_config(), **self.config.model) loss, scalars = model_instance.get_loss(graph) return loss, scalars def _maybe_save_predictions( self, predictions: jnp.ndarray, split: str, global_step: jnp.ndarray, ): if not self.config.predictions_dir: return output_dir = os.path.join(self.config.predictions_dir, _get_step_date_label(global_step)) os.makedirs(output_dir, exist_ok=True) output_path = os.path.join(output_dir, split + '.dill') with open(output_path, 'wb') as f: dill.dump(predictions, f) logging.info('Saved %s predictions at: %s', split, output_path) def _build_numpy_dataset_iterator(self, split: str, is_training: bool): dynamic_batch_size_config = ( self.config.training.dynamic_batch_size if is_training else self.config.evaluation.dynamic_batch_size) return dataset_utils.build_dataset_iterator( split=split, dynamic_batch_size_config=dynamic_batch_size_config, sample_random=self.config.sample_random, debug=self.config.debug, is_training=is_training, **self.config.dataset_config) def _update_parameters( self, params: hk.Params, ema_params: hk.Params, network_state: hk.State, ema_network_state: hk.State, opt_state: optax.OptState, global_step: jnp.ndarray, rng: jnp.ndarray, graph: jraph.GraphsTuple, ) -> Tuple[hk.Params, hk.Params, hk.State, hk.State, optax.OptState, chex.ArrayTree]: """Updates parameters.""" def get_loss(*x, **graph): (loss, scalars), network_state = self.loss.apply(*x, **graph) return loss, (scalars, network_state) grad_loss_fn = jax.grad(get_loss, has_aux=True) scaled_grads, (scalars, network_state) = grad_loss_fn( params, network_state, rng, **graph) grads = jax.lax.psum(scaled_grads, axis_name='i') updates, opt_state = self.optimizer.update(grads, opt_state, params) params = optax.apply_updates(params, updates) if ema_params is not None: ema = lambda x, y: tf1_ema(x, y, self.config.ema_decay, global_step) ema_params = jax.tree_map(ema, ema_params, params) ema_network_state = jax.tree_map(ema, ema_network_state, network_state) return params, ema_params, network_state, ema_network_state, opt_state, scalars # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step: jnp.ndarray, rng: jnp.ndarray, **unused_kwargs) -> chex.ArrayTree: """See Jaxline base class.""" if self.forward is None: self._eval_init() if self.config.ema: params = utils.get_first(self._ema_params) state = utils.get_first(self._ema_network_state) else: params = utils.get_first(self._params) state = utils.get_first(self._network_state) rng = utils.get_first(rng) split = self.config.evaluation.split predictions, scalars = self._get_predictions( params, state, rng, utils.py_prefetch( functools.partial( self._build_numpy_dataset_iterator, split, is_training=False))) self._maybe_save_predictions(predictions, split, global_step[0]) return scalars def _sum_regression_scalars(self, preds: jnp.ndarray, graph: jraph.GraphsTuple) -> chex.ArrayTree: """Creates unnormalised values for accumulation.""" targets = graph.globals['target'] graph_mask = jraph.get_graph_padding_mask(graph) # Sum for accumulation, normalise later since there are a # variable number of graphs per batch. mae = model.sum_with_mask(jnp.abs(targets - preds), graph_mask) mse = model.sum_with_mask((targets - preds)**2, graph_mask) count = jnp.sum(graph_mask) return {'values': {'mae': mae.item(), 'mse': mse.item()}, 'counts': {'mae': count.item(), 'mse': count.item()}} def _get_prediction( self, params: hk.Params, state: hk.State, rng: jnp.ndarray, graph: jraph.GraphsTuple, ) -> np.ndarray: """Returns predictions for all the graphs in the dataset split.""" model_out, _ = self.eval_apply(params, state, rng, **graph._asdict()) prediction = np.squeeze(model_out['globals'], axis=1) return prediction def _get_predictions( self, params: hk.Params, state: hk.State, rng: jnp.ndarray, graph_iterator: Iterable[jraph.GraphsTuple], ) -> Tuple[_Predictions, chex.ArrayTree]: all_scalars = [] predictions = [] graph_indices = [] for i, graph in enumerate(graph_iterator): prediction = self._get_prediction(params, state, rng, graph) if 'target' in graph.globals and not jnp.isnan( graph.globals['target']).any(): scalars = self._sum_regression_scalars(prediction, graph) all_scalars.append(scalars) num_padding_graphs = jraph.get_number_of_padding_with_graphs_graphs(graph) num_valid_graphs = len(graph.n_node) - num_padding_graphs depadded_prediction = prediction[:num_valid_graphs] predictions.append(depadded_prediction) graph_indices.append(graph.globals['graph_index'][:num_valid_graphs]) if i % 1000 == 0: logging.info('Generated predictions for %d batches so far', i + 1) predictions = _sort_predictions_by_indices( _Predictions( predictions=np.concatenate(predictions), indices=np.concatenate(graph_indices))) if all_scalars: sum_all_args = lambda *l: sum(l) # Sum over graphs in the dataset. accum_scalars = tree.map_structure(sum_all_args, *all_scalars) scalars = tree.map_structure(lambda x, y: x / y, accum_scalars['values'], accum_scalars['counts']) else: scalars = {} return predictions, scalars def _eval_init(self): self.forward = hk.transform_with_state(self._forward) self.eval_apply = jax.jit(self.forward.apply) def _forward(self, **graph: Mapping[str, chex.ArrayTree]) -> chex.ArrayTree: graph = jraph.GraphsTuple(**graph) model_instance = model.GraphPropertyEncodeProcessDecode( loss_config=self._construct_loss_config(), **self.config.model) return model_instance(graph) def _restore_state_to_in_memory_checkpointer(restore_path): """Initializes experiment state from a checkpoint.""" # Load pretrained experiment state. python_state_path = os.path.join(restore_path, 'checkpoint.dill') with open(python_state_path, 'rb') as f: pretrained_state = dill.load(f) logging.info('Restored checkpoint from %s', python_state_path) # Assign state to a dummy experiment instance for the in-memory checkpointer, # broadcasting to devices. dummy_experiment = Experiment( mode='train', init_rng=0, config=FLAGS.config.experiment_kwargs.config) for attribute, key in Experiment.CHECKPOINT_ATTRS.items(): setattr(dummy_experiment, attribute, utils.bcast_local_devices(pretrained_state[key])) jaxline_state = dict( global_step=pretrained_state['global_step'], experiment_module=dummy_experiment) snapshot = utils.SnapshotNT(0, jaxline_state) # Finally, seed the jaxline `utils.InMemoryCheckpointer` global dict. utils.GLOBAL_CHECKPOINT_DICT['latest'] = utils.CheckpointNT( threading.local(), [snapshot]) def _save_state_from_in_memory_checkpointer( save_path, experiment_class: experiment.AbstractExperiment): """Saves experiment state to a checkpoint.""" logging.info('Saving model.') for checkpoint_name, checkpoint in utils.GLOBAL_CHECKPOINT_DICT.items(): if not checkpoint.history: logging.info('Nothing to save in "%s"', checkpoint_name) continue pickle_nest = checkpoint.history[-1].pickle_nest global_step = pickle_nest['global_step'] state_dict = {'global_step': global_step} for attribute, key in experiment_class.CHECKPOINT_ATTRS.items(): state_dict[key] = utils.get_first( getattr(pickle_nest['experiment_module'], attribute)) save_dir = os.path.join( save_path, checkpoint_name, _get_step_date_label(global_step)) python_state_path = os.path.join(save_dir, 'checkpoint.dill') os.makedirs(save_dir, exist_ok=True) with open(python_state_path, 'wb') as f: dill.dump(state_dict, f) logging.info( 'Saved "%s" checkpoint to %s', checkpoint_name, python_state_path) def _setup_signals(save_model_fn): """Sets up a signal for model saving.""" # Save a model on Ctrl+C. def sigint_handler(unused_sig, unused_frame): # Ideally, rather than saving immediately, we would then "wait" for a good # time to save. In practice this reads from an in-memory checkpoint that # only saves every 30 seconds or so, so chances of race conditions are very # small. save_model_fn() logging.info(r'Use `Ctrl+\` to save and exit.') # Exit on `Ctrl+\`, saving a model. prev_sigquit_handler = signal.getsignal(signal.SIGQUIT) def sigquit_handler(unused_sig, unused_frame): # Restore previous handler early, just in case something goes wrong in the # next lines, so it is possible to press again and exit. signal.signal(signal.SIGQUIT, prev_sigquit_handler) save_model_fn() logging.info(r'Exiting on `Ctrl+\`') # Re-raise for clean exit. os.kill(os.getpid(), signal.SIGQUIT) signal.signal(signal.SIGINT, sigint_handler) signal.signal(signal.SIGQUIT, sigquit_handler) def main(argv, experiment_class: experiment.AbstractExperiment): # Maybe restore a model. restore_path = FLAGS.config.restore_path if restore_path: _restore_state_to_in_memory_checkpointer(restore_path) # Maybe save a model. save_dir = os.path.join(FLAGS.config.checkpoint_dir, 'models') if FLAGS.config.one_off_evaluate: save_model_fn = lambda: None # No need to save checkpoint in this case. else: save_model_fn = functools.partial( _save_state_from_in_memory_checkpointer, save_dir, experiment_class) _setup_signals(save_model_fn) # Save on Ctrl+C (continue) or Ctrl+\ (exit). try: platform.main(experiment_class, argv) finally: save_model_fn() # Save at the end of training or in case of exception. if __name__ == '__main__': jax_config.update('jax_debug_nans', False) flags.mark_flag_as_required('config') app.run(lambda argv: main(argv, Experiment)) ================================================ FILE: ogb_lsc/pcq/generate_conformer_features.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Generate conformer features to be used for training/predictions.""" import multiprocessing as mp import pickle from typing import List from absl import app from absl import flags import numpy as np # pylint: disable=g-bad-import-order import conformer_utils import datasets _SPLITS = flags.DEFINE_spaceseplist( 'splits', ['test'], 'Splits to compute conformer features for.') _OUTPUT_FILE = flags.DEFINE_string( 'output_file', None, required=True, help='Output file name to write the generated conformer features to.') _NUM_PROCS = flags.DEFINE_integer( 'num_parallel_procs', 64, 'Number of parallel processes to use for conformer generation.') def generate_conformer_features(smiles: List[str]) -> List[np.ndarray]: # Conformer generation is a CPU-bound task and hence can get a boost from # parallel processing. # To avoid GIL, we choose multiprocessing instead of the # simpler multi-threading option here for parallel computing. with mp.Pool(_NUM_PROCS.value) as pool: return list(pool.map(conformer_utils.compute_conformer, smiles)) def main(_): smiles = datasets.load_smile_strings(with_labels=False) indices = set() for split in _SPLITS.value: indices.update(datasets.load_splits()[split]) smiles = [smiles[i] for i in sorted(indices)] conformers = generate_conformer_features(smiles) smiles_to_conformers = dict(zip(smiles, conformers)) with open(_OUTPUT_FILE.value, 'wb') as f: pickle.dump(smiles_to_conformers, f) if __name__ == '__main__': app.run(main) ================================================ FILE: ogb_lsc/pcq/generate_validation_splits.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Generates the k-fold validation splits.""" import os import pickle from absl import app from absl import flags from absl import logging import numpy as np # pylint: disable=g-bad-import-order import datasets _OUTPUT_DIR = flags.DEFINE_string( 'output_dir', None, required=True, help='Output directory to write the splits to') K = 10 def main(argv): del argv valid_indices = datasets.load_splits()['valid'] k_splits = np.split(valid_indices, K) os.makedirs(_OUTPUT_DIR.value, exist_ok=True) for k_i, split in enumerate(k_splits): fname = os.path.join(_OUTPUT_DIR.value, f'{k_i}.pkl') with open(fname, 'wb') as f: pickle.dump(split, f) logging.info('Saved: %s', fname) if __name__ == '__main__': app.run(main) ================================================ FILE: ogb_lsc/pcq/model.py ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """PCQM4M-LSC models.""" import copy import functools from typing import Any, Dict, Mapping, Sequence, Tuple import chex import haiku as hk import jax import jax.numpy as jnp import jraph from ml_collections import config_dict _REDUCER_NAMES = { "sum": jax.ops.segment_sum, "mean": jraph.segment_mean, } _NUM_EDGE_FEATURES = 13 _NUM_NODE_FEATURES = 173 @chex.dataclass class RegressionLossConfig: """Regression Loss Config.""" # For normalization and denormalization. std: float mean: float kwargs: Mapping[str, Any] out_size: int = 1 def _sigmoid_cross_entropy( logits: jax.Array, labels: jax.Array, ) -> jax.Array: log_p = jax.nn.log_sigmoid(logits) log_not_p = jax.nn.log_sigmoid(-logits) return -labels * log_p - (1. - labels) * log_not_p def _softmax_cross_entropy( logits: jax.Array, targets: jax.Array, ) -> jax.Array: logits = jax.nn.log_softmax(logits) return -jnp.sum(targets * logits, axis=-1) def _regression_loss( pred: jnp.ndarray, targets: jnp.ndarray, exponent: int, ) -> jnp.ndarray: """Regression loss.""" error = pred - targets if exponent == 2: return error ** 2 elif exponent == 1: return jnp.abs(error) else: raise ValueError(f"Unsupported exponent value {exponent}.") def _build_mlp( name: str, output_sizes: Sequence[int], use_layer_norm=False, activation=jax.nn.relu, ): """Builds an MLP, optionally with layernorm.""" net = hk.nets.MLP( output_sizes=output_sizes, name=name + "_mlp", activation=activation) if use_layer_norm: layer_norm = hk.LayerNorm( axis=-1, create_scale=True, create_offset=True, name=name + "_layer_norm") net = hk.Sequential([net, layer_norm]) return jraph.concatenated_args(net) def _compute_relative_displacement_and_distance( graph: jraph.GraphsTuple, normalization_factor: float, use_target: bool, ) -> Tuple[jnp.ndarray, jnp.ndarray]: """Computes relative displacements and distances.""" if use_target: node_positions = graph.nodes["positions_targets"] else: node_positions = graph.nodes["positions"] relative_displacement = node_positions[ graph.receivers] - node_positions[graph.senders] # Note due to the random rotations in space, mean across all nodes across # all batches is guaranteed to be zero, and the standard deviation is # guaranteed to be the same for all 3 coordinates, so we only need to scale # by a single value. relative_displacement /= normalization_factor relative_distance = jnp.linalg.norm( relative_displacement, axis=-1, keepdims=True) return relative_displacement, relative_distance def _broadcast_global_to_nodes( global_feature: jnp.ndarray, graph: jraph.GraphsTuple, ) -> jnp.ndarray: graph_idx = jnp.arange(graph.n_node.shape[0]) sum_n_node = jax.tree_leaves(graph.nodes)[0].shape[0] node_graph_idx = jnp.repeat( graph_idx, graph.n_node, axis=0, total_repeat_length=sum_n_node) return global_feature[node_graph_idx] def _broadcast_global_to_edges( global_feature: jnp.ndarray, graph: jraph.GraphsTuple, ) -> jnp.ndarray: graph_idx = jnp.arange(graph.n_edge.shape[0]) sum_n_edge = graph.senders.shape[0] edge_graph_idx = jnp.repeat( graph_idx, graph.n_edge, axis=0, total_repeat_length=sum_n_edge) return global_feature[edge_graph_idx] class GraphPropertyEncodeProcessDecode(hk.Module): """Encode-process-decode model for graph property prediction.""" def __init__( self, loss_config: config_dict.ConfigDict, mlp_hidden_size: int, mlp_layers: int, latent_size: int, use_layer_norm: bool, num_message_passing_steps: int, shared_message_passing_weights: bool, mask_padding_graph_at_every_step: bool, loss_config_name: str, loss_kwargs: config_dict.ConfigDict, processor_mode: str, global_reducer: str, node_reducer: str, dropedge_rate: float, dropnode_rate: float, aux_multiplier: float, ignore_globals: bool, ignore_globals_from_final_layer_for_predictions: bool, add_relative_distance: bool = False, add_relative_displacement: bool = False, add_absolute_positions: bool = False, position_normalization: float = 1., relative_displacement_normalization: float = 1., add_misc_node_features: bool = None, name="GraphPropertyEncodeProcessDecode", ): super(GraphPropertyEncodeProcessDecode, self).__init__() self._loss_config = loss_config self._config = config_dict.ConfigDict(dict( loss_config=loss_config, mlp_hidden_size=mlp_hidden_size, mlp_layers=mlp_layers, latent_size=latent_size, use_layer_norm=use_layer_norm, num_message_passing_steps=num_message_passing_steps, shared_message_passing_weights=shared_message_passing_weights, mask_padding_graph_at_every_step=mask_padding_graph_at_every_step, loss_config_name=loss_config_name, loss_kwargs=loss_kwargs, processor_mode=processor_mode, global_reducer=global_reducer, node_reducer=node_reducer, dropedge_rate=dropedge_rate, dropnode_rate=dropnode_rate, aux_multiplier=aux_multiplier, ignore_globals=ignore_globals, ignore_globals_from_final_layer_for_predictions=ignore_globals_from_final_layer_for_predictions, add_relative_distance=add_relative_distance, add_relative_displacement=add_relative_displacement, add_absolute_positions=add_absolute_positions, position_normalization=position_normalization, relative_displacement_normalization=relative_displacement_normalization, add_misc_node_features=add_misc_node_features, )) def __call__(self, graph: jraph.GraphsTuple) -> chex.ArrayTree: """Model inference step.""" out = self._forward(graph, is_training=False) if isinstance(self._loss_config, RegressionLossConfig): out["globals"] = out[ "globals"]*self._loss_config.std + self._loss_config.mean return out @hk.experimental.name_like("__call__") def get_loss( self, graph: jraph.GraphsTuple, is_training: bool = True, ) -> Tuple[jnp.ndarray, chex.ArrayTree]: """Model loss.""" scalars = get_utilization_scalars(graph) targets = copy.deepcopy(graph.globals["target"]) if len(targets.shape) == 1: targets = targets[:, None] del graph.globals["target"] target_mask = None if "target_mask" in graph.globals: target_mask = copy.deepcopy(graph.globals["target_mask"]) del graph.globals["target_mask"] out = self._forward(graph, is_training) if isinstance(self._loss_config, RegressionLossConfig): normalized_targets = ( (targets - self._loss_config.mean) / self._loss_config.std) per_graph_and_head_loss = _regression_loss( out["globals"], normalized_targets, **self._loss_config.kwargs) else: raise TypeError(type(self._loss_config)) # Mask out nans if target_mask is None: per_graph_and_head_loss = jnp.mean(per_graph_and_head_loss, axis=1) else: per_graph_and_head_loss = jnp.sum( per_graph_and_head_loss * target_mask, axis=1) per_graph_and_head_loss /= jnp.sum(target_mask + 1e-8, axis=1) g_mask = jraph.get_graph_padding_mask(graph) loss = _mean_with_mask(per_graph_and_head_loss, g_mask) scalars.update({"loss": loss}) if self._config.aux_multiplier > 0: atom_loss = self._get_node_auxiliary_loss( graph, out["atom_one_hots"], graph.nodes["atom_one_hots_targets"], is_regression=False) bond_loss = self._get_edge_auxiliary_loss( graph, out["bond_one_hots"], graph.edges["bond_one_hots_targets"], is_regression=False) loss += (atom_loss + bond_loss)*self._config.aux_multiplier scalars.update({"atom_loss": atom_loss, "bond_loss": bond_loss}) scaled_loss = loss / jax.device_count() scalars.update({"total_loss": loss}) return scaled_loss, scalars @hk.transparent def _prepare_features(self, graph: jraph.GraphsTuple) -> jraph.GraphsTuple: """Prepares features keys into flat node, edge and global features.""" # Collect edge features. edge_features_list = [graph.edges["bond_one_hots"]] if (self._config.add_relative_displacement or self._config.add_relative_distance): (relative_displacement, relative_distance ) = _compute_relative_displacement_and_distance( graph, self._config.relative_displacement_normalization, use_target=False) if self._config.add_relative_displacement: edge_features_list.append(relative_displacement) if self._config.add_relative_distance: edge_features_list.append(relative_distance) mask_at_edges = _broadcast_global_to_edges( graph.globals["positions_nan_mask"], graph) edge_features_list.append(mask_at_edges[:, None].astype(jnp.float32)) edge_features = jnp.concatenate(edge_features_list, axis=-1) # Collect node features node_features_list = [graph.nodes["atom_one_hots"]] if self._config.add_absolute_positions: node_features_list.append( graph.nodes["positions"] / self._config.position_normalization) mask_at_nodes = _broadcast_global_to_nodes( graph.globals["positions_nan_mask"], graph) node_features_list.append(mask_at_nodes[:, None].astype(jnp.float32)) node_features = jnp.concatenate(node_features_list, axis=-1) global_features = jnp.zeros((len(graph.n_node), self._config.latent_size)) chex.assert_tree_shape_prefix(global_features, (len(graph.n_node),)) return graph._replace( nodes=node_features, edges=edge_features, globals=global_features) @hk.transparent def _encoder( self, graph: jraph.GraphsTuple, is_training: bool, ) -> jraph.GraphsTuple: """Builds the encoder.""" del is_training # unused graph = self._prepare_features(graph) # Run encoders in all of the node, edge and global features. output_sizes = [self._config.mlp_hidden_size] * self._config.mlp_layers output_sizes += [self._config.latent_size] build_mlp = functools.partial( _build_mlp, output_sizes=output_sizes, use_layer_norm=self._config.use_layer_norm, ) gmf = jraph.GraphMapFeatures( embed_edge_fn=build_mlp("edge_encoder"), embed_node_fn=build_mlp("node_encoder"), embed_global_fn=None if self._config.ignore_globals else build_mlp("global_encoder"), ) return gmf(graph) @hk.transparent def _processor( self, graph: jraph.GraphsTuple, is_training: bool, ) -> jraph.GraphsTuple: """Builds the processor.""" output_sizes = [self._config.mlp_hidden_size] * self._config.mlp_layers output_sizes += [self._config.latent_size] build_mlp = functools.partial( _build_mlp, output_sizes=output_sizes, use_layer_norm=self._config.use_layer_norm, ) shared_weights = self._config.shared_message_passing_weights node_reducer = _REDUCER_NAMES[self._config.node_reducer] global_reducer = _REDUCER_NAMES[self._config.global_reducer] def dropout_if_training(fn, dropout_rate: float): def wrapped(*args): out = fn(*args) if is_training: mask = hk.dropout(hk.next_rng_key(), dropout_rate, jnp.ones([out.shape[0], 1])) out = out * mask return out return wrapped num_mps = self._config.num_message_passing_steps for step in range(num_mps): if step == 0 or not shared_weights: suffix = "shared" if shared_weights else step update_edge_fn = dropout_if_training( build_mlp(f"edge_processor_{suffix}"), dropout_rate=self._config.dropedge_rate) update_node_fn = dropout_if_training( build_mlp(f"node_processor_{suffix}"), dropout_rate=self._config.dropnode_rate) if self._config.ignore_globals: gnn = jraph.InteractionNetwork( update_edge_fn=update_edge_fn, update_node_fn=update_node_fn, aggregate_edges_for_nodes_fn=node_reducer) else: gnn = jraph.GraphNetwork( update_edge_fn=update_edge_fn, update_node_fn=update_node_fn, update_global_fn=build_mlp(f"global_processor_{suffix}"), aggregate_edges_for_nodes_fn=node_reducer, aggregate_nodes_for_globals_fn=global_reducer, aggregate_edges_for_globals_fn=global_reducer, ) mode = self._config.processor_mode if mode == "mlp": graph = gnn(graph) elif mode == "resnet": new_graph = gnn(graph) graph = graph._replace( nodes=graph.nodes + new_graph.nodes, edges=graph.edges + new_graph.edges, globals=graph.globals + new_graph.globals, ) else: raise ValueError(f"Unknown processor_mode `{mode}`") if self._config.mask_padding_graph_at_every_step: graph = _mask_out_padding_graph(graph) return graph @hk.transparent def _decoder( self, graph: jraph.GraphsTuple, input_graph: jraph.GraphsTuple, is_training: bool, ) -> chex.ArrayTree: """Builds the decoder.""" del is_training # unused. output_sizes = [self._config.mlp_hidden_size] * self._config.mlp_layers output_sizes += [self._loss_config.out_size] net = _build_mlp("regress_out", output_sizes, use_layer_norm=False) summed_nodes = _aggregate_nodes_to_globals(graph, graph.nodes) inputs_to_global_decoder = [summed_nodes] if not self._config.ignore_globals_from_final_layer_for_predictions: inputs_to_global_decoder.append(graph.globals) out = net(jnp.concatenate(inputs_to_global_decoder, axis=-1)) out_dict = {} out_dict["globals"] = out # Note "linear" names are for compatibility with pre-trained model names. out_dict["bond_one_hots"] = hk.Linear( _NUM_EDGE_FEATURES, name="linear")(graph.edges) out_dict["atom_one_hots"] = hk.Linear( _NUM_NODE_FEATURES, name="linear_1")(graph.nodes) return out_dict @hk.transparent def _forward(self, graph: jraph.GraphsTuple, is_training: bool): input_graph = jraph.GraphsTuple(*graph) with hk.experimental.name_scope("encoder_scope"): graph = self._encoder(graph, is_training) with hk.experimental.name_scope("processor_scope"): graph = self._processor(graph, is_training) with hk.experimental.name_scope("decoder_scope"): out = self._decoder(graph, input_graph, is_training) return out def _get_node_auxiliary_loss( self, graph, pred, targets, is_regression, additional_mask=None): loss = self._get_loss(pred, targets, is_regression) target_mask = jraph.get_node_padding_mask(graph) if additional_mask is not None: loss *= additional_mask target_mask = jnp.logical_and(target_mask, additional_mask) return _mean_with_mask(loss, target_mask) def _get_edge_auxiliary_loss( self, graph, pred, targets, is_regression, additional_mask=None): loss = self._get_loss(pred, targets, is_regression) target_mask = jraph.get_edge_padding_mask(graph) if additional_mask is not None: loss *= additional_mask target_mask = jnp.logical_and(target_mask, additional_mask) return _mean_with_mask(loss, target_mask) def _get_loss(self, pred, targets, is_regression): if is_regression: loss = ((pred - targets)**2).mean(axis=-1) else: targets /= jnp.maximum(1., jnp.sum(targets, axis=-1, keepdims=True)) loss = _softmax_cross_entropy(pred, targets) return loss def get_utilization_scalars( padded_graph: jraph.GraphsTuple) -> Dict[str, float]: padding_nodes = jraph.get_number_of_padding_with_graphs_nodes(padded_graph) all_nodes = len(jax.tree_leaves(padded_graph.nodes)[0]) padding_edges = jraph.get_number_of_padding_with_graphs_edges(padded_graph) all_edges = len(jax.tree_leaves(padded_graph.edges)[0]) padding_graphs = jraph.get_number_of_padding_with_graphs_graphs(padded_graph) all_graphs = len(padded_graph.n_node) return {"node_utilization": 1 - (padding_nodes / all_nodes), "edge_utilization": 1 - (padding_edges / all_edges), "graph_utilization": 1 - (padding_graphs / all_graphs)} def sum_with_mask(array: jnp.ndarray, mask: jnp.ndarray) -> jnp.ndarray: return (mask * array).sum(0) def _mean_with_mask(array: jnp.ndarray, mask: jnp.ndarray) -> jnp.ndarray: num_valid_rows = mask.sum(0) return sum_with_mask(array, mask) / num_valid_rows def _mask_out_padding_graph( padded_graph: jraph.GraphsTuple) -> jraph.GraphsTuple: return padded_graph._replace( nodes=jnp.where( jraph.get_node_padding_mask( padded_graph)[:, None], padded_graph.nodes, 0.), edges=jnp.where( jraph.get_edge_padding_mask( padded_graph)[:, None], padded_graph.edges, 0.), globals=jnp.where( jraph.get_graph_padding_mask( padded_graph)[:, None], padded_graph.globals, 0.), ) def _aggregate_nodes_to_globals(graph, node_features): n_graph = graph.n_node.shape[0] sum_n_node = jax.tree_leaves(graph.nodes)[0].shape[0] graph_idx = jnp.arange(n_graph) node_gr_idx = jnp.repeat( graph_idx, graph.n_node, axis=0, total_repeat_length=sum_n_node) return jax.ops.segment_sum(node_features, node_gr_idx, num_segments=n_graph) ================================================ FILE: ogb_lsc/pcq/requirements.txt ================================================ wheel absl-py>=0.12.0 chex>=0.0.7 dill>=0.3.3 dm-haiku>=0.0.4 # jaxline git+https://github.com/deepmind/jaxline@927695a0b88e480d085590736e2daa36c2f2c68b optax>=0.0.8 ml_collections numpy>=1.16.4 tensorflow>=2.5.0 tensorflow-datasets>=4.3.0 dm-tree>=0.1.6 ogb>=1.3.1 # graph_nets git+git://github.com/deepmind/graph_nets.git@64771dff0d74ca8e77b1f1dcd5a7d26634356d61 rdkit-pypi>=2021.3.2.3 jaxlib>=0.1.67+cuda110 # jraph git+git://github.com/deepmind/jraph.git@80d2f9e4d82f841a71d56ba44fa9e8781e93ae1f google-cloud-storage ================================================ FILE: ogb_lsc/pcq/run_preprocessing.sh ================================================ #!/bin/bash # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e set -x while getopts ":r:" opt; do case ${opt} in r ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: run_training.sh -r " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" DATA_ROOT=${TASK_ROOT}/data/ python "${SCRIPT_DIR}"/generate_validation_splits.py \ --output_dir="${DATA_ROOT}/k_fold_splits" mkdir -p ${DATA_ROOT}/preprocessed/ python "${SCRIPT_DIR}"/generate_conformer_features.py \ --splits="test valid train" \ --num_parallel_procs=32 \ --output_file="${DATA_ROOT}/preprocessed/smile_to_conformer.pkl" ================================================ FILE: ogb_lsc/pcq/run_pretrained_eval.sh ================================================ # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Generates test predictions from trained model checkpoints. set -e set -x while getopts ":r:" opt; do case ${opt} in r ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: run_pretrained_eval.sh -r " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" SPLIT="test" DATA_ROOT=${TASK_ROOT}/data/ # For valid k-fold splits. MODELS_ROOT=${TASK_ROOT}/models/ CACHED_CONFORMERS_DIR=${TASK_ROOT}/online_conformers/$SPLIT CACHED_CONFORMERS_FILE=${CACHED_CONFORMERS_DIR}/smiles_to_conformers.pkl OUTPUT_DIR=${TASK_ROOT}/predictions/ # First generate and cache the conformer feature data for the test split. mkdir -p ${CACHED_CONFORMERS_DIR} time python "${SCRIPT_DIR}"/generate_conformer_features.py \ --splits=$SPLIT \ --num_parallel_procs=32 \ --output_file=${CACHED_CONFORMERS_FILE} seed=42 # Share GPU between two runs by disabling XLA memory pre-allocation. export XLA_PYTHON_CLIENT_PREALLOCATE=false for seed_group in 0 1; do for k in `seq 0 9`; do # Conformer predictions_dir="${OUTPUT_DIR}/predictions/${SPLIT}/conformer/k${k}_seed${seed}" time python "${SCRIPT_DIR}"/experiment.py \ --jaxline_mode="eval" \ --config="${SCRIPT_DIR}"/config.py \ --config.experiment_kwargs.config.evaluation.split=$SPLIT \ --config.restore_path=${MODELS_ROOT}/conformer/k${k}_seed${seed} \ --config.experiment_kwargs.config.predictions_dir=${predictions_dir} \ --config.experiment_kwargs.config.dataset_config.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_config.k_fold_split_id=$k \ --config.experiment_kwargs.config.dataset_config.cached_conformers_file=${CACHED_CONFORMERS_FILE} \ --config.experiment_kwargs.config.dataset_config.filter_in_or_out_samples_with_nans_in_conformers="out" \ --config.experiment_kwargs.config.model.latent_size=256 \ --config.experiment_kwargs.config.model.mlp_hidden_size=1024 \ --config.experiment_kwargs.config.model.num_message_passing_steps=32 \ --config.one_off_evaluate & # Non-Conformer predictions_dir="${OUTPUT_DIR}/predictions/${SPLIT}/non_conformer/k${k}_seed${seed}" time python "${SCRIPT_DIR}"/experiment.py \ --jaxline_mode="eval" \ --config="${SCRIPT_DIR}"/config.py \ --config.experiment_kwargs.config.evaluation.split=$SPLIT \ --config.restore_path=${MODELS_ROOT}/non_conformer/k${k}_seed${seed} \ --config.experiment_kwargs.config.predictions_dir=${predictions_dir} \ --config.experiment_kwargs.config.dataset_config.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_config.k_fold_split_id=$k \ --config.experiment_kwargs.config.dataset_config.cached_conformers_file=${CACHED_CONFORMERS_FILE} \ --config.experiment_kwargs.config.dataset_config.filter_in_or_out_samples_with_nans_in_conformers="in" \ --config.experiment_kwargs.config.model.num_message_passing_steps=50 \ --config.experiment_kwargs.config.model.add_relative_distance=false \ --config.experiment_kwargs.config.model.add_relative_displacement=false \ --config.one_off_evaluate & wait ((seed=seed+1)) done done # Ensemble predictions. time python "${SCRIPT_DIR}"/ensemble_predictions.py \ --seed_start=42 \ --split=$SPLIT \ --conformer_path="${OUTPUT_DIR}/predictions/${SPLIT}/conformer" \ --non_conformer_path="${OUTPUT_DIR}/predictions/${SPLIT}/non_conformer" \ --output_path="${OUTPUT_DIR}/ensembled_predictions/" ================================================ FILE: ogb_lsc/pcq/run_training.sh ================================================ #!/bin/bash # Copyright 2021 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -e set -x while getopts ":r:" opt; do case ${opt} in r ) TASK_ROOT=$OPTARG ;; \? ) echo "Usage: run_training.sh -r " ;; : ) echo "Invalid option: $OPTARG requires an argument" 1>&2 ;; esac done shift $((OPTIND -1)) # Get this script's directory. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" echo " These scripts are provided for illustrative purposes. It is not practical for actual training since it only uses a single machine, and likely requires reducing the batch size and/or model size to fit on a single GPU. For the actual submission we used training distributed in different ways: * We used 4x Cloud TPU v4s to implement batch parallelism, so batch size is effectively 8 times larger than the values in the config. * We ran the online early-stopping evaluator on a separate machine with an NVIDIA V100 GPU. * We run identical replicas of all of the above for each of the 40 models trained. Using those mechanisms, training runs at ~4 and 6 steps per second, reaching 500k steps in about 1.5 days. " echo " Pre-requisites (See README): * cd into directory containing the 'ogb_lsc' folder. * Python dependencies have been installed. * pre-processed data is available at the hardcoded paths " read -p "Press enter to continue" DATA_ROOT=${TASK_ROOT}/data/ CHECKPOINT_DIR=${TASK_ROOT}/checkpoints/ CACHED_CONFORMERS_FILE="${DATA_ROOT}/preprocessed/smile_to_conformer.pkl" # We run two seeds for each model of the k=10 k-fold. BASE_SEED=42 for SEED_OFFSET in 0 10; do for K_FOLD_INDEX in {0..9}; do MODEL_SEED=`expr ${BASE_SEED} + ${SEED_OFFSET} + ${K_FOLD_INDEX}` echo "Running k=${K_FOLD_INDEX} with init seed ${MODEL_SEED}" # This runs training (each model is trained on train split + 90% of the # validation split) with early stopping, storing both "latest" model and # "best" early-stopped model at `--config.checkpoint_dir`. # Models are early stopped based on accuracy of on 10% of the validation data # (each K_FOLD_INDEX leaves a different 10% of data out from training) left # out from training. # Models are stored at the end of training. Intermediate models can also be # stored while training by sending a SIGINT signal (Ctrl+C) which will not # interrupt the training. # It is possible to interrupt training using (Ctrl+\) and then continue # passing the corresponding `--config.restore_path=${RESTORE_PATH}` which is # stored when interrupting. # Conformer. SUFFIX="conformer/k${K_FOLD_INDEX}_seed${MODEL_SEED}" echo "Running ${SUFFIX}" python "${SCRIPT_DIR}"/experiment.py \ --jaxline_mode="train_eval_multithreaded" \ --config="${SCRIPT_DIR}"/config.py \ --config.random_seed=${MODEL_SEED} \ --config.checkpoint_dir=${CHECKPOINT_DIR}/${SUFFIX} \ --config.experiment_kwargs.config.dataset_config.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_config.k_fold_split_id=${K_FOLD_INDEX} \ --config.experiment_kwargs.config.dataset_config.num_k_fold_splits=10 \ --config.experiment_kwargs.config.dataset_config.cached_conformers_file=${CACHED_CONFORMERS_FILE} \ --config.experiment_kwargs.config.model.latent_size=256 \ --config.experiment_kwargs.config.model.mlp_hidden_size=1024 \ --config.experiment_kwargs.config.model.num_message_passing_steps=32 \ --config.experiment_kwargs.config.evaluation.split="valid" # Non-Conformer. SUFFIX="non_conformer/k${K_FOLD_INDEX}_seed${MODEL_SEED}" echo "Running ${SUFFIX}" python "${SCRIPT_DIR}"/experiment.py \ --jaxline_mode="train_eval_multithreaded" \ --config="${SCRIPT_DIR}"/config.py \ --config.random_seed=${MODEL_SEED} \ --config.checkpoint_dir=${CHECKPOINT_DIR}/${SUFFIX} \ --config.experiment_kwargs.config.dataset_config.data_root=${DATA_ROOT} \ --config.experiment_kwargs.config.dataset_config.k_fold_split_id=${K_FOLD_INDEX} \ --config.experiment_kwargs.config.dataset_config.num_k_fold_splits=10 \ --config.experiment_kwargs.config.dataset_config.cached_conformers_file=${CACHED_CONFORMERS_FILE} \ --config.experiment_kwargs.config.model.num_message_passing_steps=50 \ --config.experiment_kwargs.config.model.add_relative_distance=false \ --config.experiment_kwargs.config.model.add_relative_displacement=false \ --config.experiment_kwargs.config.evaluation.split="valid" done done # Each of the 40 (two for each value of k, and both conformer and non conformer) # jobs, it will generate paths of the form with the early-stopped models: # RESTORE_PATH=${--config.checkpoint_dir}/models/best/step_${STEP}_${TIMESTAMP} # These can then be used as the "RESTORE_PATHS" for `./run_pretrained_eval.sh`. echo "Done" ================================================ FILE: option_keyboard/README.md ================================================ # The Option Keyboard: Combining Skills in Reinforcement Learning This directory contains an implementation of the Option Keyboard framework. From the [abstract](http://papers.nips.cc/paper/9463-the-option-keyboard-combining-skills-in-reinforcement-learning): > The ability to combine known skills to create new ones may be crucial in the solution of complex reinforcement learning problems that unfold over extended periods. We argue that a robust way of combining skills is to define and manipulate them in the space of pseudo-rewards (or “cumulants”). Based on this premise, we propose a framework for combining skills using the formalism of options. We show that every deterministic option can be unambiguously represented as a cumulant defined in an extended domain. Building on this insight and on previous results on transfer learning, we show how to approximate options whose cumulants are linear combinations of the cumulants of known options. This means that, once we have learned options associated with a set of cumulants, we can instantaneously synthesise options induced by any linear combination of them, without any learning involved. We describe how this framework provides a hierarchical interface to the environment whose abstract actions correspond to combinations of basic skills. We demonstrate the practical benefits of our approach in a resource management problem and a navigation task involving a quadrupedal simulated robot. If you use the code here please cite this paper > Andre Barreto, Diana Borsa, Shaobo Hou, Gheorghe Comanici, Eser Aygün, Philippe Hamel, Daniel Toyama, Jonathan hunt, Shibl Mourad, David Silver, Doina Precup. *The Option Keyboard: Combining Skills in Reinforcement Learning*. Neurips 2019. [\[paper\]](https://papers.nips.cc/paper/9463-the-option-keyboard-combining-skills-in-reinforcement-learning). ## Running the code ### Setup ``` python3 -m venv ok_venv source ok_venv/bin/activate pip install -r option_keyboard/requirements.txt ``` ### Scavenger Task All agents are trained on a simple grid-world resource collection task. There are two types of collectible objects in the world: if the agent collects the object that is less abundant of the two then it receives a reward of -1, otherwise it receives a reward of +1 when it collects the object. See section 5.1 in the paper for more details. ### Train the DQN baseline ``` python3 -m option_keyboard.run_dqn ``` This trains a DQN agent on the scavenger task. ### Train the Option Keyboard and agent ``` python3 -m option_keyboard.run_ok ``` This first trains an Option Keyboard on the cumulants in the task environment. Then it trains a DQN agent on the true task reward using high level abstract actions provided by the keyboard. ## Disclaimer This is not an official Google or DeepMind product. ================================================ FILE: option_keyboard/auto_reset_environment.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Auto-resetting environment base class. The environment API states that stepping an environment after a LAST timestep should return the first timestep of a new episode. However, environment authors sometimes don't spot this part or find it awkward to implement. This module contains a class that helps implement the reset behaviour. """ import abc import dm_env class Base(dm_env.Environment): """This class implements the required `step()` and `reset()` methods. It instead requires users to implement `_step()` and `_reset()`. This class handles the reset behaviour automatically when it detects a LAST timestep. """ def __init__(self): self._reset_next_step = True @abc.abstractmethod def _reset(self): """Returns a `timestep` namedtuple as per the regular `reset()` method.""" @abc.abstractmethod def _step(self, action): """Returns a `timestep` namedtuple as per the regular `step()` method.""" def reset(self): self._reset_next_step = False return self._reset() def step(self, action): if self._reset_next_step: return self.reset() timestep = self._step(action) self._reset_next_step = timestep.last() return timestep ================================================ FILE: option_keyboard/configs.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Environment configurations.""" def get_task_config(): return dict( arena_size=11, num_channels=2, max_num_steps=50, # 50 for the actual task. num_init_objects=10, object_priors=[0.5, 0.5], egocentric=True, rewarder="BalancedCollectionRewarder", ) def get_pretrain_config(): return dict( arena_size=11, num_channels=2, max_num_steps=40, # 40 for pretraining. num_init_objects=10, object_priors=[0.5, 0.5], egocentric=True, default_w=(1, 1), ) def get_fig4_task_config(): return dict( arena_size=11, num_channels=2, max_num_steps=50, # 50 for the actual task. num_init_objects=10, object_priors=[0.5, 0.5], egocentric=True, default_w=(1, -1), ) def get_fig5_task_config(default_w): return dict( arena_size=11, num_channels=2, max_num_steps=50, # 50 for the actual task. num_init_objects=10, object_priors=[0.5, 0.5], egocentric=True, default_w=default_w, ) ================================================ FILE: option_keyboard/dqn_agent.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """DQN agent.""" import numpy as np import sonnet as snt import tensorflow.compat.v1 as tf class Agent(): """A DQN Agent.""" def __init__( self, obs_spec, action_spec, network_kwargs, epsilon, additional_discount, batch_size, optimizer_name, optimizer_kwargs, ): """A simple DQN agent. Args: obs_spec: The observation spec. action_spec: The action spec. network_kwargs: Keyword arguments for snt.nets.MLP epsilon: Exploration probability. additional_discount: Discount on returns used by the agent. batch_size: Size of update batch. optimizer_name: Name of an optimizer from tf.train optimizer_kwargs: Keyword arguments for the optimizer. """ self._epsilon = epsilon self._additional_discount = additional_discount self._batch_size = batch_size self._n_actions = action_spec.num_values self._network = ValueNet(self._n_actions, network_kwargs=network_kwargs) self._replay = [] obs_spec = self._extract_observation(obs_spec) # Placeholders for policy o = tf.placeholder(shape=obs_spec.shape, dtype=obs_spec.dtype) q = self._network(tf.expand_dims(o, axis=0)) # Placeholders for update. o_tm1 = tf.placeholder(shape=(None,) + obs_spec.shape, dtype=obs_spec.dtype) a_tm1 = tf.placeholder(shape=(None,), dtype=tf.int32) r_t = tf.placeholder(shape=(None,), dtype=tf.float32) d_t = tf.placeholder(shape=(None,), dtype=tf.float32) o_t = tf.placeholder(shape=(None,) + obs_spec.shape, dtype=obs_spec.dtype) # Compute values over all options. q_tm1 = self._network(o_tm1) q_t = self._network(o_t) a_t = tf.cast(tf.argmax(q_t, axis=-1), tf.int32) qa_tm1 = _batched_index(q_tm1, a_tm1) qa_t = _batched_index(q_t, a_t) # TD error g = additional_discount * d_t td_error = tf.stop_gradient(r_t + g * qa_t) - qa_tm1 loss = tf.reduce_sum(tf.square(td_error) / 2) with tf.variable_scope("optimizer"): self._optimizer = getattr(tf.train, optimizer_name)(**optimizer_kwargs) train_op = self._optimizer.minimize(loss) # Make session and callables. session = tf.Session() self._update_fn = session.make_callable(train_op, [o_tm1, a_tm1, r_t, d_t, o_t]) self._value_fn = session.make_callable(q, [o]) session.run(tf.global_variables_initializer()) def _extract_observation(self, obs): return obs["arena"] def step(self, timestep, is_training=False): """Select actions according to epsilon-greedy policy.""" if is_training and np.random.rand() < self._epsilon: return np.random.randint(self._n_actions) q_values = self._value_fn( self._extract_observation(timestep.observation)) return int(np.argmax(q_values)) def update(self, step_tm1, action, step_t): """Takes in a transition from the environment.""" transition = [ self._extract_observation(step_tm1.observation), action, step_t.reward, step_t.discount, self._extract_observation(step_t.observation), ] self._replay.append(transition) if len(self._replay) == self._batch_size: batch = list(zip(*self._replay)) self._update_fn(*batch) self._replay = [] # Just a queue. class ValueNet(snt.AbstractModule): """Value Network.""" def __init__(self, n_actions, network_kwargs, name="value_network"): """Construct a value network sonnet module. Args: n_actions: Number of actions. network_kwargs: Network arguments. name: Name """ super(ValueNet, self).__init__(name=name) self._n_actions = n_actions self._network_kwargs = network_kwargs def _build(self, observation): flat_obs = snt.BatchFlatten()(observation) net = snt.nets.MLP(**self._network_kwargs)(flat_obs) net = snt.Linear(output_size=self._n_actions)(net) return net @property def num_actions(self): return self._n_actions def _batched_index(values, indices): one_hot_indices = tf.one_hot(indices, values.shape[-1], dtype=values.dtype) return tf.reduce_sum(values * one_hot_indices, axis=-1) ================================================ FILE: option_keyboard/environment_wrappers.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Environment with keyboard.""" import itertools from absl import logging import dm_env import numpy as np import tensorflow.compat.v1 as tf import tensorflow_hub as hub import tree from option_keyboard import smart_module class EnvironmentWithLogging(dm_env.Environment): """Wraps an environment with additional logging.""" def __init__(self, env): self._env = env self._episode_return = 0 def reset(self): self._episode_return = 0 return self._env.reset() def step(self, action): """Take action in the environment and do some logging.""" step = self._env.step(action) if step.first(): step = self._env.step(action) self._episode_return = 0 self._episode_return += step.reward return step @property def episode_return(self): return self._episode_return def action_spec(self): return self._env.action_spec() def observation_spec(self): return self._env.observation_spec() def __getattr__(self, name): return getattr(self._env, name) class EnvironmentWithKeyboard(dm_env.Environment): """Wraps an environment with a keyboard.""" def __init__(self, env, keyboard, keyboard_ckpt_path, n_actions_per_dim, additional_discount, call_and_return=False): self._env = env self._keyboard = keyboard self._discount = additional_discount self._call_and_return = call_and_return options = _discretize_actions(n_actions_per_dim, keyboard.num_cumulants) self._options_np = options options = tf.convert_to_tensor(options, dtype=tf.float32) self._options = options obs_spec = self._extract_observation(env.observation_spec()) obs_ph = tf.placeholder(shape=obs_spec.shape, dtype=obs_spec.dtype) option_ph = tf.placeholder(shape=(), dtype=tf.int32) gpi_action = self._keyboard.gpi(obs_ph, options[option_ph]) session = tf.Session() self._gpi_action = session.make_callable(gpi_action, [obs_ph, option_ph]) self._keyboard_action = session.make_callable( self._keyboard(tf.expand_dims(obs_ph, axis=0))[0], [obs_ph]) session.run(tf.global_variables_initializer()) if keyboard_ckpt_path: saver = tf.train.Saver(var_list=keyboard.variables) saver.restore(session, keyboard_ckpt_path) def _compute_reward(self, option, obs): return np.sum(self._options_np[option] * obs["cumulants"]) def reset(self): return self._env.reset() def step(self, option): """Take a step in the keyboard, then the environment.""" step_count = 0 option_step = None while True: obs = self._extract_observation(self._env.observation()) action = self._gpi_action(obs, option) action_step = self._env.step(action) step_count += 1 if option_step is None: option_step = action_step else: new_discount = ( option_step.discount * self._discount * action_step.discount) new_reward = ( option_step.reward + new_discount * action_step.reward) option_step = option_step._replace( observation=action_step.observation, reward=new_reward, discount=new_discount, step_type=action_step.step_type) if action_step.last(): break # Terminate option. if self._should_terminate(option, action_step.observation): break if not self._call_and_return: break return option_step def _should_terminate(self, option, obs): if self._compute_reward(option, obs) > 0: return True elif np.all(self._options_np[option] <= 0): # TODO(shaobohou) A hack ensure option with non-positive weights # terminates after one step return True else: return False def action_spec(self): return dm_env.specs.DiscreteArray( num_values=self._options_np.shape[0], name="action") def _extract_observation(self, obs): return obs["arena"] def observation_spec(self): return self._env.observation_spec() def __getattr__(self, name): return getattr(self._env, name) class EnvironmentWithKeyboardDirect(dm_env.Environment): """Wraps an environment with a keyboard. This is different from EnvironmentWithKeyboard as the actions space is not discretized. TODO(shaobohou) Merge the two implementations. """ def __init__(self, env, keyboard, keyboard_ckpt_path, additional_discount, call_and_return=False): self._env = env self._keyboard = keyboard self._discount = additional_discount self._call_and_return = call_and_return obs_spec = self._extract_observation(env.observation_spec()) obs_ph = tf.placeholder(shape=obs_spec.shape, dtype=obs_spec.dtype) option_ph = tf.placeholder( shape=(keyboard.num_cumulants,), dtype=tf.float32) gpi_action = self._keyboard.gpi(obs_ph, option_ph) session = tf.Session() self._gpi_action = session.make_callable(gpi_action, [obs_ph, option_ph]) self._keyboard_action = session.make_callable( self._keyboard(tf.expand_dims(obs_ph, axis=0))[0], [obs_ph]) session.run(tf.global_variables_initializer()) if keyboard_ckpt_path: saver = tf.train.Saver(var_list=keyboard.variables) saver.restore(session, keyboard_ckpt_path) def _compute_reward(self, option, obs): assert option.shape == obs["cumulants"].shape return np.sum(option * obs["cumulants"]) def reset(self): return self._env.reset() def step(self, option): """Take a step in the keyboard, then the environment.""" step_count = 0 option_step = None while True: obs = self._extract_observation(self._env.observation()) action = self._gpi_action(obs, option) action_step = self._env.step(action) step_count += 1 if option_step is None: option_step = action_step else: new_discount = ( option_step.discount * self._discount * action_step.discount) new_reward = ( option_step.reward + new_discount * action_step.reward) option_step = option_step._replace( observation=action_step.observation, reward=new_reward, discount=new_discount, step_type=action_step.step_type) if action_step.last(): break # Terminate option. if self._should_terminate(option, action_step.observation): break if not self._call_and_return: break return option_step def _should_terminate(self, option, obs): if self._compute_reward(option, obs) > 0: return True elif np.all(option <= 0): # TODO(shaobohou) A hack ensure option with non-positive weights # terminates after one step return True else: return False def action_spec(self): return dm_env.specs.BoundedArray(shape=(self._keyboard.num_cumulants,), dtype=np.float32, minimum=-1.0, maximum=1.0, name="action") def _extract_observation(self, obs): return obs["arena"] def observation_spec(self): return self._env.observation_spec() def __getattr__(self, name): return getattr(self._env, name) def _discretize_actions(num_actions_per_dim, action_space_dim, min_val=-1.0, max_val=1.0): """Discrete action space.""" if num_actions_per_dim > 1: discretized_dim_action = np.linspace( min_val, max_val, num_actions_per_dim, endpoint=True) discretized_actions = [discretized_dim_action] * action_space_dim discretized_actions = itertools.product(*discretized_actions) discretized_actions = list(discretized_actions) elif num_actions_per_dim == 1: discretized_actions = [ max_val * np.eye(action_space_dim), min_val * np.eye(action_space_dim), ] discretized_actions = np.concatenate(discretized_actions, axis=0) elif num_actions_per_dim == 0: discretized_actions = np.eye(action_space_dim) else: raise ValueError( "Unsupported num_actions_per_dim {}".format(num_actions_per_dim)) discretized_actions = np.array(discretized_actions) # Remove options with all zeros. non_zero_entries = np.sum(np.square(discretized_actions), axis=-1) != 0.0 discretized_actions = discretized_actions[non_zero_entries] logging.info("Total number of discretized actions: %s", len(discretized_actions)) logging.info("Discretized actions: %s", discretized_actions) return discretized_actions class EnvironmentWithLearnedPhi(dm_env.Environment): """Wraps an environment with learned phi model.""" def __init__(self, env, model_path): self._env = env create_ph = lambda x: tf.placeholder(shape=x.shape, dtype=x.dtype) add_batch = lambda x: tf.expand_dims(x, axis=0) # Make session and callables. with tf.Graph().as_default(): model = smart_module.SmartModuleImport(hub.Module(model_path)) obs_spec = env.observation_spec() obs_ph = tree.map_structure(create_ph, obs_spec) action_ph = tf.placeholder(shape=(), dtype=tf.int32) phis = model(tree.map_structure(add_batch, obs_ph), add_batch(action_ph)) self.num_phis = phis.shape.as_list()[-1] self._last_phis = np.zeros((self.num_phis,), dtype=np.float32) session = tf.Session() self._session = session self._phis_fn = session.make_callable( phis[0], tree.flatten([obs_ph, action_ph])) self._session.run(tf.global_variables_initializer()) def reset(self): self._last_phis = np.zeros((self.num_phis,), dtype=np.float32) return self._env.reset() def step(self, action): """Take action in the environment and do some logging.""" phis = self._phis_fn(*tree.flatten([self._env.observation(), action])) step = self._env.step(action) if step.first(): phis = self._phis_fn(*tree.flatten([self._env.observation(), action])) step = self._env.step(action) step.observation["cumulants"] = phis self._last_phis = phis return step def action_spec(self): return self._env.action_spec() def observation(self): obs = self._env.observation() obs["cumulants"] = self._last_phis return obs def observation_spec(self): obs_spec = self._env.observation_spec() obs_spec["cumulants"] = dm_env.specs.BoundedArray( shape=(self.num_phis,), dtype=np.float32, minimum=-1e9, maximum=1e9, name="collected_resources") return obs_spec def __getattr__(self, name): return getattr(self._env, name) ================================================ FILE: option_keyboard/experiment.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """A simple training loop.""" import csv from absl import logging from tensorflow.compat.v1.io import gfile def _ema(base, val, decay=0.995): return base * decay + (1 - decay) * val def run(env, agent, num_episodes, report_every=200, num_eval_reps=1): """Runs an agent on an environment. Args: env: The environment. agent: The agent. num_episodes: Number of episodes to train for. report_every: Frequency at which training progress are reported (episodes). num_eval_reps: Number of eval episodes to run per training episode. Returns: A list of dicts containing training and evaluation returns, and a list of reported returns smoothed by EMA. """ returns = [] logged_returns = [] train_return_ema = 0. eval_return_ema = 0. for episode in range(num_episodes): returns.append(dict(episode=episode)) # Run a training episode. train_episode_return = run_episode(env, agent, is_training=True) train_return_ema = _ema(train_return_ema, train_episode_return) returns[-1]["train"] = train_episode_return # Run an evaluation episode. returns[-1]["eval"] = [] for _ in range(num_eval_reps): eval_episode_return = run_episode(env, agent, is_training=False) eval_return_ema = _ema(eval_return_ema, eval_episode_return) returns[-1]["eval"].append(eval_episode_return) if ((episode + 1) % report_every) == 0 or episode == 0: logged_returns.append( dict(episode=episode, train=train_return_ema, eval=[eval_return_ema])) logging.info("Episode %s, avg train return %.3f, avg eval return %.3f", episode + 1, train_return_ema, eval_return_ema) if hasattr(agent, "get_logs"): logging.info("Episode %s, agent logs: %s", episode + 1, agent.get_logs()) return returns, logged_returns def run_episode(environment, agent, is_training=False): """Run a single episode.""" timestep = environment.reset() while not timestep.last(): action = agent.step(timestep, is_training) new_timestep = environment.step(action) if is_training: agent.update(timestep, action, new_timestep) timestep = new_timestep episode_return = environment.episode_return return episode_return def write_returns_to_file(path, returns): """Write returns to file.""" with gfile.GFile(path, "w") as file: writer = csv.writer(file, delimiter=" ", quoting=csv.QUOTE_MINIMAL) writer.writerow(["episode", "train"] + [f"eval_{idx}" for idx in range(len(returns[0]["eval"]))]) for row in returns: writer.writerow([row["episode"], row["train"]] + row["eval"]) ================================================ FILE: option_keyboard/gpe_gpi_experiments/eval_keyboard_fig5.py ================================================ # pylint: disable=g-bad-file-header # pylint: disable=line-too-long # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ r"""Run an experiment. This script generates the raw data for the polar plots used to visualise how well a trained keyboard covers the space of w. For example, train 3 separate keyboards with different base policies: python3 train_keyboard.py --logtostderr --policy_weights_name=12 python3 train_keyboard.py --logtostderr --policy_weights_name=34 python3 train_keyboard.py --logtostderr --policy_weights_name=5 Then generate the polar plot data as follows: python3 eval_keyboard_fig5.py --logtostderr \ --keyboard_paths=/tmp/option_keyboard/keyboard_12/tfhub,/tmp/option_keyboard/keyboard_34/tfhub,/tmp/option_keyboard/keyboard_5/tfhub \ --num_episodes=1000 Example outout: [[ 0.11 0.261 -0.933 ] [ 1.302 3.955 0.54 ] [ 2.398 4.434 1.2105359 ] [ 3.459 4.606 2.087 ] [ 4.09026795 4.60911325 3.06106882] [ 4.55499485 4.71947818 3.8123229 ] [ 4.715 4.835 4.395 ] [ 4.75743564 4.64095528 4.46330207] [ 4.82518207 4.71232378 4.56190708] [ 4.831 4.7155 4.5735 ] [ 4.78074425 4.6754641 4.58312762] [ 4.70154374 4.5416429 4.47850417] [ 4.694 4.631 4.427 ] [ 4.25085125 4.56606664 3.68157677] [ 3.61726795 4.4838453 2.68154403] [ 2.714 4.43 1.554 ] [ 1.69 4.505 0.9635359 ] [ 0.894 4.043 0.424 ] [ 0.099 0.349 0.055 ]] """ import csv from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf from tensorflow.compat.v1.io import gfile import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger from option_keyboard import smart_module from option_keyboard.gpe_gpi_experiments import regressed_agent FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 1000, "Number of training episodes.") flags.DEFINE_list("keyboard_paths", [], "Path to keyboard model.") flags.DEFINE_string("output_path", None, "Path to write out returns.") def evaluate_keyboard(keyboard_path, weights_to_sweep): """Evaluate a keyboard.""" # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(keyboard_path)) # Create the task environment. all_returns = [] for w_to_sweep in weights_to_sweep.tolist(): base_env_config = configs.get_fig5_task_config(w_to_sweep) base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) # Wrap the task environment with the keyboard. with tf.variable_scope(None, default_name="inner_loop"): additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboardDirect( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = regressed_agent.Agent( batch_size=10, optimizer_name="AdamOptimizer", # Disable training. optimizer_kwargs=dict(learning_rate=0.0,), init_w=w_to_sweep) returns = [] for _ in range(FLAGS.num_episodes): returns.append(experiment.run_episode(env, agent)) tf.logging.info(f"Task: {w_to_sweep}, mean returns over " f"{FLAGS.num_episodes} episodes is {np.mean(returns)}") all_returns.append(returns) return all_returns def main(argv): del argv angles_to_sweep = np.deg2rad(np.linspace(-90, 180, num=19, endpoint=True)) weights_to_sweep = np.stack( [np.sin(angles_to_sweep), np.cos(angles_to_sweep)], axis=-1) weights_to_sweep /= np.sum( np.maximum(weights_to_sweep, 0.0), axis=-1, keepdims=True) weights_to_sweep = np.clip(weights_to_sweep, -1000, 1000) tf.logging.info(weights_to_sweep) all_returns = [] for keyboard_path in FLAGS.keyboard_paths: returns = evaluate_keyboard(keyboard_path, weights_to_sweep) all_returns.append(returns) print("Results:") print(np.mean(all_returns, axis=-1).T) if FLAGS.output_path: with gfile.GFile(FLAGS.output_path, "w") as file: writer = csv.writer(file, delimiter=" ", quoting=csv.QUOTE_MINIMAL) writer.writerow(["angle", "return", "idx"]) for idx, returns in enumerate(all_returns): for row in np.array(returns).T.tolist(): assert len(angles_to_sweep) == len(row) for ang, val in zip(angles_to_sweep, row): ang = "{:.4g}".format(ang) val = "{:.4g}".format(val) writer.writerow([ang, val, idx]) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/generate_figures.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "N1EHYIqxd80m" }, "source": [ "\n", "\n", "##### Copyright 2020 DeepMind Technologies Limited.\n", "\n", "```\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License.\n", "```" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "executionInfo": { "elapsed": 608, "status": "ok", "timestamp": 1596666770403, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "BbsG8P6ICv2t" }, "outputs": [], "source": [ "#@title Util functions\n", "\n", "import csv\n", "import os\n", "from matplotlib import pyplot as plt\n", "import pandas as pd\n", "import seaborn as sns\n", "import tensorflow.compat.v1 as tf\n", "from tensorflow.compat.v1.io import gfile\n", "\n", "\n", "def read_csv_as_dataframe(path):\n", " with gfile.GFile(path, \"r\") as file:\n", " reader = csv.reader(file, delimiter=\" \")\n", " rows = [row for row in reader]\n", " rows[1:] = [[float(v) for v in row] for row in rows[1:]]\n", " cols = rows[0]\n", " rows = dict(zip(cols, (zip(*rows[1:]))))\n", "\n", " return pd.DataFrame(rows)\n", "\n", "\n", "def read_data(path, num_seeds, verbose=False):\n", " all_dfs = []\n", " for seed in range(num_seeds):\n", " seed_path = path.format(seed)\n", " if verbose:\n", " print(f\"Reading {seed_path}\")\n", " df = read_csv_as_dataframe(seed_path)\n", " df[\"seed\"] = seed \n", " all_dfs.append(df)\n", " return pd.concat(all_dfs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "code", "colab": {}, "colab_type": "code", "id": "YiiUlbIS42px" }, "outputs": [], "source": [ "#@title Unpack precomputed training curves\n", "!wget -q --no-check-certificate https://storage.googleapis.com/option_keyboard/gpe_gpi_experiments.zip -P -O /tmp\n", "!unzip -o /tmp/gpe_gpi_experiments.zip -d /tmp\n", "DATA_DIR = \"/tmp\"" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "OFWlVSJdght9" }, "source": [ "# Figure 4b\n", "\n", "To generate the q-learning results:\n", "```\n", "python3 ../run_dqn.py --num_episodes=20000 --report_every=5 --output_path=/tmp/fig4_dqn.csv\n", "```\n", "\n", "To generate the regressed w results:\n", "```\n", "python3 train_keybooard.py --num_pretrain_episodes=20000 --policy_weights_name=12 --export_path=/tmp/fig4_keyboard\n", "python3 run_regressed_w_fig4b.py --num_episodes=4000 --report_every=5 --keyboard_path=/tmp/fig6_keyboard/tfhub \\\n", " --output_path=/tmp/fig4b_regressed_w.csv\n", "```\n", "\n", "To generate the results with true w:\n", "```\n", "# Make use of a pretrained keyboard.\n", "python3 run_true_w_fig4.py --num_episodes=1000 --keyboard_path=/tmp/fig4_keyboard/tfhub -- output_path=/tmp/fig4b_true_w.csv\n", "```\n", "\n", "Repeat the above steps for multiple runs. Below shows the results for 10 runs." ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "executionInfo": { "elapsed": 1412, "status": "ok", "timestamp": 1596666774254, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "d694MYF5ght_" }, "outputs": [], "source": [ "#@title Load Data\n", "\n", "dqn_path = os.path.join(DATA_DIR, \"fig4_dqn_{}.csv\")\n", "dqn_df = read_data(dqn_path, num_seeds=10)\n", "dqn_df[\"method\"] = \"Q-Learning\"\n", "\n", "regressed_w_path = os.path.join(DATA_DIR, \"fig4_regressed_w_{}.csv\")\n", "regressed_w_df = read_data(regressed_w_path, num_seeds=10)\n", "regressed_w_df[\"method\"] = \"GPE+GPI with regressed w\"\n", "\n", "true_w_path = os.path.join(DATA_DIR, \"fig4_true_w_{}.csv\")\n", "true_w_df = read_data(true_w_path, num_seeds=10)\n", "true_w_df[\"method\"] = \"GPE+GPI with true w\"\n", "\n", "fig4b_df = pd.concat([dqn_df, regressed_w_df])" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "cellView": "form", "colab": { "height": 400 }, "colab_type": "code", "executionInfo": { "elapsed": 6285, "status": "ok", "timestamp": 1596666780546, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "dO0W-e43ghuD", "outputId": "d35efafb-bd43-4c40-9a0f-4b1ac5118298" }, "outputs": [ { "data": { "image/png": "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\n9h4LJgAAAABJRU5ErkJggg==\n", "text/plain": [ "\u003cFigure size 1200x600 with 1 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Plot\n", "\n", "fig, ax = plt.subplots(figsize=(12,6))\n", "sns.tsplot(fig4b_df, time=\"episode\", unit=\"seed\", value=\"eval_0\", condition=\"method\", ci=95, color=[\"r\", \"b\"], linestyle=\"--\", ax=ax)\n", "\n", "ax.axhline(dqn_df.groupby(\"seed\").tail(1).mean()[\"eval_0\"], color='r', linestyle='--')\n", "ax.axhline(true_w_df.mean()[\"return\"], color='b', linestyle='-', label=\"GPE+GPI with true w\")\n", "\n", "ax.text(\n", " 800,\n", " 4.3,\n", " r\"$Q$-learning after $10^6$ sample transitions\",\n", " fontdict=dict(fontsize=15))\n", "\n", "ax.set_xlim([0, 3000])\n", "ax.legend();" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "4ruEpAxS56s5" }, "source": [ "# Figure 4c\n", "\n", "To generate the regressed w results:\n", "```\n", "python3 train_keybooard.py --num_pretrain_episodes=20000 --policy_weights_name=12 --export_path=/tmp/fig4_keyboard\n", "python3 run_regressed_w_fig4c.py --num_episodes=100 --report_every=1 --keyboard_path=/tmp/fig6_keyboard/tfhub \\\n", " --output_path=/tmp/fig4b_regressed_w.csv\n", "```\n", "\n", "To generate the regressed w with learned phi results:\n", "```\n", "# First train a phi model. Change num_phis to phi of different dimensions e.g. 3 or 4.\n", "python3 train_phi_model.py --export_path=/tmp/phi_model_2d --num_phis=2\n", "# Then train a keyboard.\n", "python3 train_keybooard_with_phi.py --num_pretrain_episodes=20000 --phi_model_phi=/tmp/phi_model_2d \\\n", " --export_path=/tmp/fig4_keyboard_with_phi\n", "# Finally regress w with both models.\n", "python3 run_regressed_w_with_phi_fig4c.py --num_episodes=100 --report_every=1 --keyboard_path=/tmp/fig4_keyboard_with_phi/tfhub \\\n", " --output_path=/tmp/fig4c_regressed_w.csv\n", "```\n", "\n", "(Note that training of the phi model can converge to a poor local minima, so it maybe necessary to rerun it if the eval loss is too high, or use a larger set of random training tasks.)\n", "\n", "Repeat the above steps for multiple runs. Below shows the results for 10 runs." ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "executionInfo": { "elapsed": 1313, "status": "ok", "timestamp": 1596666781870, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "Lp22-gE856s9" }, "outputs": [], "source": [ "#@title Load Data\n", "\n", "dqn_path = os.path.join(DATA_DIR, \"fig4_dqn_{}.csv\")\n", "dqn_df = read_data(dqn_path, num_seeds=10)\n", "dqn_df[\"method\"] = \"Q-Learning\"\n", "\n", "true_w_path = os.path.join(DATA_DIR, \"fig4_true_w_{}.csv\")\n", "true_w_df = read_data(true_w_path, num_seeds=10)\n", "true_w_df[\"method\"] = \"GPE+GPI with true w\"\n", "\n", "regressed_w_path = os.path.join(DATA_DIR, \"fig4c_regressed_w_{}.csv\")\n", "regressed_w_df = read_data(regressed_w_path, num_seeds=10)\n", "regressed_w_df[\"method\"] = \"GPE+GPI with regressed w\"\n", "\n", "regressed_w_with_phi_2d_path = os.path.join(DATA_DIR, \"fig4c_regressed_w_with_phi_{}_2d.csv\")\n", "regressed_w_with_phi_2d_df = read_data(regressed_w_with_phi_2d_path, num_seeds=10)\n", "regressed_w_with_phi_2d_df[\"method\"] = \"GPE+GPI with regressed w and 2d phi\"\n", "\n", "regressed_w_with_phi_3d_path = os.path.join(DATA_DIR, \"fig4c_regressed_w_with_phi_{}_3d.csv\")\n", "regressed_w_with_phi_3d_df = read_data(regressed_w_with_phi_3d_path, num_seeds=10)\n", "regressed_w_with_phi_3d_df[\"method\"] = \"GPE+GPI with regressed w and 3d phi\"\n", "\n", "regressed_w_with_phi_4d_path = os.path.join(DATA_DIR, \"fig4c_regressed_w_with_phi_{}_4d.csv\")\n", "regressed_w_with_phi_4d_df = read_data(regressed_w_with_phi_4d_path, num_seeds=10)\n", "regressed_w_with_phi_4d_df[\"method\"] = \"GPE+GPI with regressed w and 4d phi\"\n", "\n", "fig4c_df = pd.concat([regressed_w_df, regressed_w_with_phi_2d_df, regressed_w_with_phi_3d_df, regressed_w_with_phi_4d_df])" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "cellView": "form", "colab": { "height": 400 }, "colab_type": "code", "executionInfo": { "elapsed": 1769, "status": "ok", "timestamp": 1596666783655, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "qxaeiWVz56tC", "outputId": "538644f7-b0e7-4a31-b0ac-65ef41f11106" }, "outputs": [ { "data": { "image/png": "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\neoZHPQqWlpb4oz/6AC94wQuZnp7BOcu3vnUzr3jFxVxyyW/zyU9+gksvfdOqFm9hMqvV1dFiPffE\niXj/CIKwNkRQC8Ix5pOf/ASf//z/4fLLrxoT0wCtVounPOWnuOGGDzE/P8+OHTvW/Ltf/OIX+OAH\n38dXv3oTrVabJzzhx/jVX/11Op1pAL785S9xww0f4mtf+ypLS4vc615n8Pzn/xee/OSnNb9Rdzn/\n0i9dwAc+8D6++91befe7r+aTn/wE3/rWzfzKr7yCq666gu9977vc734P4DWveR1nn32fFd+vGwP1\n58N9D+Av//JjfOQj13Pw4AEe9ajH8KxnPZeLL34573nPNTziET888ZgPd0yXXvomPvWpTwLwlKc8\nEYBTTz2NPXtuB+D88+PvvvjFL+WCC162pvM46TzddtstvOc91/Cwh507Vj6t15ZI6bOf/Tce85jz\nxgT/k570FK6++ko+//n/n/PP/1FOPvkUZmZmeMxjHgvAT/zEU3j3u//wkL/7jW98gze/+VK++tWb\nqKqSU045lWc+8xd41rN+YU3Xw+ixXnDBy3jf+97N7bd/n0c84of53d99MwcPHuTtb38LX/3qTZx5\n5r157WvfwH3ve78V5+iaa65kz57becADHsRv/ubrufe9zz5kuddSB8vL+E//9GlgZZ2uVlfGmDXf\nD4e7fr/1rZu56qorJp7nSffE4cq63D3kwx++lttuu5UdO3bylKf8FBdc8DKyLFtzGQ9VPkEQjgwi\nqAXhGPOnf3oD97//A3nUo86buP3kk08BYO/eu9YsqL/0pS9w8cUX8fjHP5G3vOXtHDhwgGuuuYqF\nhYO85S3vAGDPntt56EMfxjOe8SyKosWNN36Rt77191BK8ZM/+dTmt/bs+T7ve997ePGLX8K9730v\n5uZiee64Yw/vfe97eOELf5lWq8VVV72bN7zhtdxww8dQSq1atrV875//+R+5/PI/4Od//jk8/vFP\n4Etf+gJve9vvH/a4D3dML3rRSzj55FP48Iev4z3vuYaiaNFqtbjyynexuLjAq1/92+mcn7zm8zjp\nPO3cuXNTrhe33PKdFY2GU089lXa7za23fgf4UXbu3MV97nM/vvrVm3jQgx7C//7fn+Xss+97yN+9\n6KKLuNe9zuANb3gzeV5w6623sLS0tKZzN8odd+zh2muv4aUvvYh+v8/ll/8B73jHpdx+++08/enP\n4PnPfyHvf/97edObXscNN/zXpl7vuON2rrzycl760l+h1Wpx3XXv5zd+41f50z/9OK1Wa2KZ11MH\nNS960Uu44449E+s0HuvKuvrSl76wpuNfy/X727/9as4886yJ53m9ZR3lc5/7LG9842t56lN/mpe/\n/Ne4+eZvcO2113Dw4AFe85rXrbmM6ymfIAgbQwS1IBxDbr31Fm699RZe+cqLV93nwIHoFtBut9f8\nu9dccxXnnPNDvPnNlzXrdu8+mV/7tYv41re+ydln35ef+ImnNNtCCDzsYefygx/cwd/+7V+PCYgD\nBw5wxRXv4373ewC7d89y550LACwsHOTqq6/j9NPPAMD76Lpy6623cOaZZ61atrV874YbPsRjH/s4\nfuM3fguARz/6PPbv389f//VfHPK4D3dM97znvZpu9Ac+8MF0Oh0Atm3bhveec8556LrP46TztFkW\nFg4yOzu7Yv3s7DYWFhaaz5dc8lre/va30Ot1mZmZ5bWvfcOqv7l//35uu+023vKWP+A+94nl/uEf\nfnSzfa3XQ12+97//Q825vPnmb/DRj97A61//Jp72tJ+pf4XXvOZibrnlO5x11r2bMlx22Tt56EMf\nBsADHvAgnvvcZ/CpT/0tz3jGsyeWez11UHPPe95r1TqFyXW11uM/3PW7f/9+vv/973HZZe+ceJ7X\nW9ZRrr32Gs4995H8zu/8HgDnnfcjALz//e/ll37pgqbxfagybt8+t67yCYKwMURQC8Ix5NvfvhmA\ns85avcv7llu+Q1G0OPXU07DWNuuVUk3Gh1H6/T433XQjF1/8mrH9f+iHHk6WZfzHf3yNs8++LwcP\nHuSP/uj9/Ou//jN33XUnzjkgipVRdu8+eaJIPPXU05oXdjyGKJp+8IM7DimoD/c95xzf+MZ/8Ou/\n/ptj3zv//B89rKBe6zGthbWex5rVztPGWWnlDyGMfb73vc/mmmv+aE2/tm3bNk477TT+8A/fyrOf\n/Twe8YgfZseOnc329Zy7U089bcy/9573PB2ARz7yUSvW3XnnD5o63rFjZyOm69+5//0fyFe+ctNE\nQb3eOlgrk+pqrcd/uOt327ZtnHzyKaue543inOPrX/8ar3rVb4ytf9KTnszVV1/Jl798Iz/+46cc\ntoynn37GUSmfIAjjiKAWhGNIt9sFYG5ubuL2Xq/HZz7zLzzmMY/lS1/6Aq961a802x7+8EdMDEBb\n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\nEREREamE/wNr76ODwBfe1QAAAABJRU5ErkJggg==\n", "text/plain": [ "\u003cFigure size 1200x600 with 1 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Plot\n", "\n", "fig, ax = plt.subplots(figsize=(12,6))\n", "sns.tsplot(fig4c_df, time=\"episode\", unit=\"seed\", value=\"eval_0\", condition=\"method\", ci=95, ax=ax)\n", "\n", "ax.axhline(dqn_df.groupby(\"seed\").tail(1).mean()[\"eval_0\"], color='r', linestyle='--')\n", "ax.axhline(true_w_df.mean()[\"return\"], color='b', linestyle='-', label=\"GPE+GPI with true w\")\n", "\n", "ax.text(\n", " 8,\n", " 4.3,\n", " r\"$Q$-learning after $10^6$ sample transitions\",\n", " fontdict=dict(fontsize=15))\n", "\n", "ax.set_xlim([0, 30])\n", "ax.legend();" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LqZUN6k-ssNB" }, "source": [ "# Figure 5a\n", "\n", "To generate the result for each set of policies:\n", "\n", "```\n", "# Train a keyboard for a set of policies, i.e. replace {POLICY} with 5, 12 or 34\n", "python3 train_keyboard.py --num_pretrain_episodes=20000 --policy_weights_name={POLICY} --export_path=/tmp/fig5a_keyboard_{POLICY}\n", "# Evaluate the trained keyboard at regular interval between [-1, 0] to [0, -1]\n", "python3 eval_keyboard_fig5.py --num_episodes=1000 --keyboard_paths=/tmp/fig5a_keyboard_{POLICY}/tfhub \\\n", " --output_path=/tmp/fig5_polar_{POLICY}.csv\n", "```\n", "\n", "Repeat the above steps for multiple runs. Below shows the results for 10 runs." ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "executionInfo": { "elapsed": 7098, "status": "ok", "timestamp": 1596666790760, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "pKXVbt_UssNE" }, "outputs": [], "source": [ "#@title Load Data\n", "\n", "policy_12_path = os.path.join(DATA_DIR, \"fig5_polar_{}_12.csv\")\n", "policy_12_df = read_data(policy_12_path, num_seeds=10)\n", "policy_34_path = os.path.join(DATA_DIR, \"fig5_polar_{}_34.csv\")\n", "policy_34_df = read_data(policy_34_path, num_seeds=10)\n", "policy_5_path = os.path.join(DATA_DIR, \"fig5_polar_{}_5.csv\")\n", "policy_5_df = read_data(policy_5_path, num_seeds=10)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "cellView": "form", "colab": { "height": 606 }, "colab_type": "code", "executionInfo": { "elapsed": 1243, "status": "ok", "timestamp": 1596666792009, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "4f-68h2ZssNI", "outputId": "84b9394c-7d5a-4e0b-c254-ce4674ef7565" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnoAAAJNCAYAAACm1dgZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd8W/W9P/7XGdrDkvckjjNtx85O\n2JAAgZayWiijhVDKaimBy21v6b18KW3v/d17W25vKaNA2R2U0QLlFrKbUMLKsJM4ew/vIVlbR2f8\n/jiWbEfHsWRLluy8n4+HH3bOkY6OY0nnpc94fxhFURQQQgghhJAJh830CRBCCCGEkPSgoEcIIYQQ\nMkFR0COEEEIImaAo6BFCCCGETFAU9AghhBBCJigKeoQQQgghExQFPUIIIYSQCYqCHiGEEELIBEVB\njxCSEbfeeitmzJiBGTNm4JVXXhm07+DBg1i+fDlmz56N888/H0888QQkSUr42MeOHcOjjz6Kq6++\nGtXV1bj11ls1b/fkk0/GzmHFihWj+XUIISQrUdAjhGTM4sWL8cYbb+DKK6+Mbevt7cXtt98OhmHw\nzDPP4L777sPLL7+MX//61wkf98CBA9i4cSMqKytRWVk55O1uuOEGvPHGG6ipqRnNr0EIIVmLz/QJ\nEELOXA6HA3PmzBm07U9/+hPC4TCeeuopWK1WnHfeefD5fHjqqadw1113wWq1DnvcpUuX4tJLLwUA\nrFixAi6XS/N2xcXFKC4uTuiYhBAyHlGLHiET1Pvvvx/rlty7dy8AYNOmTbFtx44dAwCsWbMmtq2x\nsTGTpwwA+Oijj3D++ecPCl9XXnklQqEQvvjii4SOwbL01kYIIQAFPUImrIULF8Z+bmhoGPR94M/b\ntm0DAJhMJtTW1ib1GIqiQBTFYb+ScfjwYVRVVQ3aVlpaCpPJhMOHDyd1LEIIOdNR1y0hE1RxcTHK\nysrQ3NyMxsZG3HzzzWhoaADDMFAUBY2Njbj22mtjgW/27NnQ6XRJPcY777yDH/3oR8Pebt++fQkf\n0+PxwGazxW232+3weDxJnR8hhJzpKOgRMoEtWLAgFvQURcGOHTtQX1+P5uZmNDQ0QBAE7Nq1C0B/\nC2BraysefvhhdHR0gGVZXHTRRfjBD34AhmHijr9kyRK8/fbbKT9vrcdSFEVzOyGEkKFR0CNkAlu4\ncCHee+89HD16FFu2bIHH48HcuXORn5+PDRs2YPPmzRAEAYAaCgGA4zh8//vfR11dHQRBwB133IHV\nq1fj8ssvjzu+w+HQbH0bDbvdDq/XG7fd5/Ol/LEIIWSio6BHyAQ2f/782M/RWnVz5sxBXl4e1q1b\nh1dffRUAoNPpYrNfCwsLUVhYCADQ6/WYMWMGWltbNY+fjq7bqqqquLF4ra2tCAQCcWP3CCGEnB4F\nPUImsKqqKuTl5aG7uxvr168HAMybNw/5+fkA1BmuADBr1iwYjca4+7tcLqxduxYvvfSS5vHT0XV7\n4YUX4sUXX4TP54vNvP3ggw9gNBqxaNGilD4WIYRMdBT0CJngFixYgFWrVkGWZZSUlKCoqAh2ux08\nz8dmxEa7bQcSBAErVqzA8uXLMWXKFM1jO51OOJ3OlJ7vTTfdhN/97ne4//77cdddd+HEiRN46qmn\ncPvtt8eC3+eff47bbrsNr732GhYvXhx3jGAwiI0bNwIA2tvb4fP5sHLlSgDARRddBJPJlNJzJoSQ\nbEVBj5AJbv78+Vi1ahUAYO7cuQDUUiozZsyIm4gRJUkSvv/976OmpgZ33HHHmJ5vTk4OXnnlFfz0\npz/FvffeC7vdjuXLl+P++++P3SYUCgEA8vLyNI/R3d2NBx54YNC26L/XrVuH8vLyNJ09IYRkFwp6\nhExwy5cvx/Lly+O2/+UvfxnyPo8++igsFgsefvjhdJ5arA4fx3GDZtROnToVr7322pD32759OxYt\nWoSpU6dq7i8vL09oXKAsy5BlGYqiJH/yhBAyDlDBZELIIFu3bsXbb7+NpqYmXHvttbjmmmtOG7pG\nY/Xq1aitrY1NCklUQ0MDvvWtb4368Z9++mnU1tZi8+bNoz4WIYRkI0ahj7KEkAw4fPgw/H4/AHXl\ni6G6YdOpvb0dHR0dANRSMRUVFWN+DoQQkk4U9AghhBBCJijquiWEEEIImaAo6BFCCCGETFAU9Agh\nhBBCJigKeoQQQgghExQFPUIIIYSQCYqCHiGEEELIBEVBjxBCCCFkgqIl0AghQzpdmc2BS5YlcvuB\n90n0dqM5F0IIIRT0CDkjnRqaTg1g6jcFiqJAltH3Xf13/8+IrRMry/3bhlNQYENXl++0t2EYgGUZ\nsCwDhmHAsmxsG8NEt0W/R8+fQTTvDRUoKRASQs40FPQImYAGBpyBoSca4KLBTJIUyLIEUZQhSTIk\nKTsWylEUQJKUAecjJXV/jmPAcSx4ngXLcuA4JhYco4FQKwxSECSETDQU9AgZp04X5tQgJ0MU1RAX\niUiQ5ewIcWNBDYkSBEECENG8Dcsy0Ok48DwLnufAsmxf6yCFQELIxEFBj5BxIBo4GIaJ/dzfKich\nEpERiYhZ0yI3HsiygnBYRDgcv4/jGOh0PHQ6FhzH9bUGqvsG/g0o/BFCsh0FPUKyzKmhLtpCJ4oS\nIhEJ4bA47GQGMjpqi2AEodDg7QzDwGDg+1oCuUEtgBT+CCHZiIIeIRk0fKiLJDTBgYwNRVEQCkUQ\nCvV3BzMMYDDoKPwRQrISBT1CxtCpwS7a9SoIEkIhCnXjkaJAM/wZjTro9Vxf1y8FP0JIZlDQIySN\ntIJdtKVOnShAJiJFAYLBCILB/vCn13Oxlj8KfoSQsUJBj5AUGirYhUIRRCIU7M5kgiANCvc6HQej\nkYIfISS9KOgRMkoDJ0YoihKbMBEOixk8q+wjywo63UFEwICTlb6admeuSEQaFP4NBj420WMgCn2E\nkNFgFJq+R0jSFEWJtcBIkoxwWEQwKNAYuwHcvjAOt3j6vnpxpM2LcF+LFs8xmFxiR2WxHZUlNkwu\nsaPQaQJLoQaAOsbPZNLDYODBcWzsuUahjxCSLAp6hCRgYJdadFZsKBShVrs+4YiEY23eWKg73OpB\nj0ejQN1pmAwcJhXZUFliR2WxGv7yc4wUbqC29hmNur5ZvWPTxbt06VLo9XoYDAYAwPe//31ccMEF\naXs8Qkh6UNAjZAindskKgoRgUIAoyhk8q8yTFQWt3QG1la6vxe5kpx9yGt5KLEY+Fvwqi+2YXGKD\n02Y4o8Mfz7MwmfTQ67lB/w+p/j9ZunQpnn32WUyfPj2lxyWEjC0ao0fIAAPDnSwrEAQRfr9wRhco\n7vULaitdX6g72uZBMDw2E0v8IRG7jvRg15Ge2Da7Rd8X/NRWv8oSO3Is+jE5n2wgijK8XrWSM8Mw\nsFj00Ov52Mod0e2EEAJQix4hcS134bCIQEA4o9aGjRIiEo61eweMrfOg2xMa/o6JYkVAYQCFG/62\nSXDaDGr4K1Fb/SqL7bCadCl9jGzHsv2hLxUtfUuXLoXVaoWiKJg/fz4eeugh2O32VJ0uIWSMUNAj\nZ6zo4PZoCRS/PwxJOnO6ZWVFQXtPYFCoO9npg5SygCuDMXvBWnvBWnrBWt1gjH4AgBI2QfbnQPHn\nQPbnQPbbATm1HQz5OcZBwW9SkQ1m45nRicFxLCwWQ1/plpFN5GhtbUVJSQkEQcB//Md/wO/34/HH\nH0/TGRNC0oWCHjmjDJwtK4oS/H7hjKlv5wkIsUB3pKUXR1q9CKRwMoneKEIyd4GxuMFa3WDNHjBc\nYsFZUQAlZImFPsWfAzlgB+TUtvwV5Zoxubh/wsekIhsM+tQ+RrbR6ThYLHrwPDfi2bv79u3Dd77z\nHaxfvz5NZ0kISZcz4+MtOaMNHncnx61YMBFFRAnH231qsGv14FBzL7p6U9cFa9CzyMtlIJm74OaO\ngrG4wejDGGlkYhiAMfnBmvxAfgsAQFEYKMFo+OsLgAE7oLDDHG1o7T0BtPcE8Nnu9tjjluZZYt2+\nlSU2nFVohY6fOOEvEpHgdgcBACaTDiaTDuyAAX1aoS8QCECSJNhsNiiKgg8++ADV1dVjds6EkNSh\nFj0yYQ3smg2HIxN2UoWiKOhwBfu7YFt7cbw9dV2wDAOUF1hRUWwGZ3Gjiz2EY5E9UJBcN7fDkIOq\nnElgeUAUZHgiPjT7WhCWhISPocgMlKAtFvxkfw6UgBXAyMPfqTiWQVm+BZUlfWP+iu0oK7CA51L3\nGJkWncRhMOg0u3ZPnDiB+++/H5IkQZZlTJkyBY888ggKCwszeNaEkJGgoEcmlIFPZ1GUEQiEJ9ya\nsr5gZFC9uiMtHvhDqeuCddoMqCqxo6rUjuICPXr5Y2hyNWGf6yBkJflwN7ewDvMKZ6PSXgGWYVFQ\nYENnpxcAICsyuoMunPS1oNnXgpO+Fpz0tsIVdif8GIrMQgnYBrf8Ba0AUjfzlOcYVBRa+ws8F9tR\nkm8Gx47/8KfXczCbDeD507fyEULGJwp6ZEIY2HonCBH4fOEJsUpFRJRxosMXC3WHWzzocAVTdnyD\njkNlsQ1Vpfa+rxzoDCK2dzZhW8cO7HcfSjrcOQ0OzC2sw9zC+li4G2hg0BuKPxJAs69VDYDeVjT7\nWtDqb4eoJBbaFYmDHLBD6Wv1k/05UEKWpH6P4eh5FmcV2WLBr7LEhqJc87hd3YNhAKvVAL1eu5WP\nEDI+UdAj41r06SvLCgKBMEIpbNkaa4qirgXb3wXrwfF2L0QpRV2wAEoLLLHWuqrSHJTlW8CyDHyC\nPyXhbl5hPSZphLuBEgl6WiRZQlugAye9LbEQeNLXAn8kkND9FZGHHOjr7vXbIftyoAjmpM/jdIx6\ndXWPyX3j/SqLbShwmMZdYFLH8ulj6xGPt/MnhPSjoEfGnYFPWbUsSgiiOP6exv5QJLayRLS1zpfC\nSSI5Vv2gUFdZbIPJ0D//yiv4sL2zCQ0dO9Me7gYaadDToigKegUPTnpbcNLXGuv+7Qx0Q8Hwzwkl\nolNb/PoCoOzLASLGlJxblMXI90/26FvhI9c+Plb34HkGFosROl3/5JTxcN6EkH4U9Mi4MfCpGgqp\n3bPjhSTL/bNg+4Jde09iLVGJ0PNsXxdsTqwbVmupMK/gQ2NnExo6duCA+/CIwt28wvpYt+xILvqp\nDHpDCUsCWnytODmw+9ffCiGBiR+KYIhN9Ih+h2hI6fnZzTpMLXdgwcwCzJmaD6M+uwsgMAxgsRhg\nNOoGbKPAR8h4QEGPZL3oU1RRgFBIgN+f+CzNTOv1hbF+WzPWbT2BQIqWDWMAlOQP7IJVZ4UONTFg\nYLjb7zqUUEvXQKkIdwONRdDTIisyuoLdasuft2/ih68V7nDvae+nKIAiGAeN95P9dkBKzbJrep7B\nnGkFWFRdhLqqPOj47J7gYbHoYTTqEX0aUOAjJLtR0CNZq3+ChYxAQBhXte+Ot3uxZssJfL67fdRj\n7OxmHapKczC51I4ppXZUFtuHXeFBDXc7sa1jJw6MINzlGp393bK20Ye7gcYi6CmKAkUQIIeCkEOh\nIb7Uff6wD61KL9rgQxsfRLtBQJdRgnyavKUoA1f36A+Ao13dw6RnMW9GIRZXF6G60pnVs3pNJh3M\nZj1YlqWJG4RkMQp6JOsMnGDh94cRTuHqDekkKwp2HOrGms0nsOeYa0TH0PEsJhUNmAVbYkdejjGh\ni2iqwt38wtk4y1aetgv3UEFPjkSgnBrGwsMHteiXEgpBDvf/ezTTriUW6LHz6HTy6HLy6HSo30OG\noYNX/+oe9v7l3QK2EYc/m5HHguoiLK4pwtTynKydzWsw8LBYDDRxg5AsRUGPZI3oU1GSFPh8oXGz\nNFlYkLCpqRVrtpxMetxdca55QGkTO8oLrEkV5vUIXjR29I+5Szbc5RmdmFtYj3mF9WkNdwAQPnEC\nrvVrwHp7EfL648IapOz+eysAfGY2Fvo6+756bUMHucGre/TP+E22wLPTqsOimmIsqi5CZbEtK8OU\nTsfBajWC4yjwEZJNKOiRjOsPeDK83jBEMbsv+FE9nhDWbTuJjxpbEipYzDDA5BI76qfkoarUjskl\ndlgGDG5PVG/Yi+2dO7GtYwcOuo9kdbiL8m7+Am0vPg9FHB+ts8kQeAZdDg5dDl2sBbDLwUPktf9f\nFZmB2FkBqasUStACyMk9BwpzDFhUW4LFNUUoy09tbcBU4HkONpsBXN8HFgp8hGQWBT2SMf1dtDI8\nnvET8I60erBm8wls3tuR0DJjFiOPi+eWYem8cjhtI5u9Ofpwl9s3oaJuzMIdoP6NXatXouutN8bk\n8dKJMRjAGo3ql8HY/7PRNOBn9UsxGOAyiGjjAmiDDy2SC61CD3pF36BjKjID2ZMHqbsEkqso6W7e\nsnwzzq4txsLqIhQ6TKn8dUeN5znY7YbYuroU+AjJDAp6ZMxFB25LkgyfLzQuliiTZQUNBzqxevMJ\nHDh5+lmaUcW5Zly2sALnziqGYUAdskT1hr1o7NyJhhGGu3xjbqzlrsJWNuYXWkWW0fH6H9D793Vj\n+rhRjE53SgAzgYkFtIGhLT6oRb+YaIgzGMCkYGKEV/Dhi7Zt2NaxA52BLvjF/q5+RWYhuwsgdpdA\ndhcASnLPmapiKxbVlmDhzMIRf6BIB70+2qVLkzYIyQQKemTM9JdJUeDzjY9JFsGwiH/saMXaLSfQ\n1RtK6D7Vk5xYtrACdVPykh5AHw132zq245D76MjDXVE9KqxjH+6i5HAYrb99Fv7GhsTvxHGntJRp\nfZn6AtiprWqntKwZDGD47K5NJysyjnqOo7GjCY2dO9Ed6p/Ao0gcJFcRpO4SyJ48QEk8ZDIAplfk\nYHFtMRbMKITVlPzwgHQwGHhYrf21HSnwETI2KOiRtBtYBy8QCI+LMild7iDWbj2Jf+xoQTCB+nc8\nx+DsmmJctrACFYXWpB6rN+xBQ1/L3YjCnSkv1i2byXAXJfb2ovnJXyF89IjmflN5OWwXL4VpylQ1\nsEVbz3hdxs89UxRFwUlfCxo7dqKxswltgY7+fREdJFcxpO5iyN5cqFEuMSwD1FbmYnFtEeZOKxi0\nMkqmqGVZDFSHj5AxQkGPpFX06TUeVrJQFAWHmj1Ytfk4tu3vTKg6h82sw5K5ZVgyrxw5lsQL6LrD\nvWjsUNeWPdw78nA3r7Ae5dbSrLlYCm2taP7VLxHp6tTc77jkMtTcdxe6UrgqyETU5m9HY2cTGjub\ncMLbHNuuCAZIPcUQu0ug+B1JHVPHAvVT87G4phj1U/KgH8FwglSyWvtX2siW5y8hExEFPZIW0aeV\nIIjweBLr8swUUZKxdZ86/u5Iqyeh+5QVWLBsQQXOri2Cjk/8gnnMcwLvHvpwRHXuCkx5sTF32RTu\nooIH9qP5qScg+/3xOxkGBTfcBOeyyzO2MsZ41RXswfZOtXv3cO+x2HY5ZILUUwKpuwRK0JbUMQ08\ng7nTC3F2bRFqKnOTKumTSgwD2GxG6PuWgMu25zQhEwEFPZJS0aeTKMrweIKQE5iVmin+UAQfNbZg\n7daTcHkTa22sq8rDskUVqJnkTPqi9EnLZryx7y8QlcQnnxSY8jCvcDbmFtaj3FqStRdC75Yv0PaC\ndvkUhudRfOc9sC1YCCBzS6BNBO5wL3Z07kJjZxMOuA5DhrpWsRywQuopVkNfOLmSKxY9iwXVxVhU\nU4QZFY5Y4eOxxLIM7HYTeJ5m6BKSahT0SEoMnGjh8WR3seP2ngDWbDmBTTvbEE7gPPU8i3NnFePS\nBRUoHUHdMkmW8JeD/4cNJzcldPtCUz7m9q0tm83hDhi+fAprtaLsew/ANHVabBsFvdTwRfzY2bkb\njZ1N2NuzH6Iiqatz+O2QekogdpcAEWNSx8wxcVhYU4LFtUWoKrGP+XNPp+NgtxtpwgYhKURBj4xa\n9CkUDArw+4UMn402RVGw97gbazafwPaDXQl1muZY9bhkXjkunls24pmLvogfLzb9AftdB097u0Jz\nPuYVqOGuLMvDXZQiy+j80x/gXq9dPkVXUICyB/4Z+uLiQdsp6KVeUAxhV/deNHY2YVfXXgiyAEUB\nZJ9TrdHXUwyIiY8hBYB8qw6L60qxqLoI5QWWMX1OWix6mEzq+Y6H1wIh2YyCHhmxgd20vb2B0Swt\nmjaiJOPz3e1Ys/kEjnf4hr8DgElFNixbWIGF1YWjGrvU4mvDczteQVeoZ8jbLC6ej0vOuhClluJx\ndUEbrnyKsaoKpd97ELzdHrePgl56CVIEe3r2o7FzJ3Z27kZQCkFRGMi9eWr3rqsIkJL74FLiMGBx\nXSkWVxehKNecpjMfjGGAnBwzdecSMkoU9EjSxkM3rTcgYENDM9Zva0ZvAq2MDIA50/KxbGEFplc4\nRn1Raexswqu7/wRB0n7scmspvjb1KkzPnTKqx8kE0eNBy5O/QujIYc39ljlzUXLXvWAN2kV7KeiN\nHVEWsd91CI2dTdjR2QRvxK8WZu7NV1v63IWAnNzs27PyTTi7rgyLqguRa0+ua3gkqDuXkNGhoEeS\nku3dtM1dfqzZfAKf7mpDRJSHvb1Bx+H8+hJcuqAcRc7Rt1TIioyVR9fhb0fWaO5nwOCr076CJeXn\nj8sLltDWhuYn/geRziHKpyy9FAU33XLaVSQo6GWGrMg45D6qzuDt2AGX4OkrzFwIqacEcm9+UoWZ\nAWBqsRVn15diwYxC2JMoLzQS1J1LyMhQ0CMJyeZuWkVRsOtoD1Z/cQJNR4buJh0oz27AJfMrcOHs\nEpiNqVk5ICSG8bs9b6Kxc6fmfjNvwh2zvoHq3OkpebyxFjxwAM1P/Uq7fAqAgq/fBMdllw97Eaag\nl3mKouC49yQaOnaioX07usIuKKJODX3R1TiSKMzMAKiusGNxXSnmTy9I2Wsq7nGoO5eQpFHQI8NS\nFAWKAvh8oaxatkyISPisb/xdc5d2+DjVlFI7LltYgfkzCsClYO3SqK5gD57b8Qpa/G2a+4vNhbin\n/nYUmvNT9phjybtlM9peeC6h8inDoaCXXRRFQau/HQ2dO9HY2oiWUCcUQa+O5+spgexzJnU8jgHq\nJjtxdl0pZk/Jh0Gf+sLM6nJqRjAMhT1ChkNBjwwp+tSIRCT09gYzfDb9en1hrN/WjL83NMOXwHJq\nLMNg/owCLFtYgSllOSk/n/2ug3ih6ffwR7RXe6jLr8bympth4tM/ninVFEWBe80qdL71BrSacVmL\nBWXfexCmadM07q2Ngl526wh0YnvnLmxr2YbjwTbIYWNfYeZiKIHkXj86Fpg7LR+LZ5Vg1uQ86PjU\nFmbOyTFB17fCBwU+QrRR0COaoq14Xm8QgpAdky2Ot3uxZvMJfL6nHaI0/NPWZOBw4exSXDK/HPk5\nppSfj6Io2Nj8Cf584H3IivZ4wCsqL8GVky8Dy2Rm5YHRUMun/BHu9Ws19w9VPmU4FPTGD1fIjcbO\nJjSc3IrDgWZIIUt/YeZQcms6m3hg/swiLK4twcxJjpS1qBsMHGw29fVNYY+QeBT0yCDZ1oonKwp2\nHOrGms0nsOeYK6H7FDiMuHRBBc6vK0nbIu4RWcSb+97FJ61faO7XszrcWnMj5hXWp+Xx000Oh9H6\nwnPwN2zT3G+cXIXS+7XLpwyHgt745BV82N7ZhIYTW7DfdwJi0Nq/BJuQ3Acpq4HB1RdMxdL55WBT\nFM6odY8QbRT0SEw2teKFBQmbmlqxZstJtPdod4meanqFA8sWVmDO1Py0LuPkEbz47c7XBq07OpDT\n4MA99bejwlaatnNIJ9HjQctTv0Lo8MjKpwyHgt74F4gEsbNrN7Yd+xx7fMcg+HPU0NdTDEQSf17M\nmpSDO6+pg92cmhm7er3aukdj9wjpR0GPZFUrXo8nhHXbTuKjxhb4Q8NP/OBYBouqC3HZwgpUFiff\nupSs456TeG7nq3CHezX3T3VMxp2zboVNn1y3VrYYvnzKJSi46RtgOS52MWUYBizb/3P/9bX/Z/U7\nA55nodfzCAQEAEps2J/6XYn9rH7oUCDL/T9Ht5PsEpYE7Orag21HPkOT9yhCvgGhL4HCzHYji3uu\nm43qSclN+jgdat0jpB8FvTNc9M/v9WZ2Ru2RVg9Wbz6BLXs7IMnDPyUtRh4Xzy3D0nnlcNpG1rKU\nrC1tDfj93rcQkbX/ny4oOwfXT7sKPJue7uJ0Cx06iOYnfwXJp72CyFnLb0PpNVeBZZlBYSz6syz3\n/1ulDJq/oSgAxzEwmfTw+cIYeP2NBsHoz2p47A+OA0OkoiD2WLIsQ5aVU75kSJJCoTADIrKIvd37\nsfXgJuz0HIHf51RDn6sQkE/3ulBw1bmVuPr8ySkcu8fDZlMnQFHYI2cyCnpnqOifXZJkuN2ZqYsn\nywq27e/E6i0ncPCkdgvZqYpzzbhsYQXOnVUMgy71ZRu0yIqMvx5aiTXHN2juZxkWX59+LS4oO3tM\nzmc0OI4d8MWAZdXv7s+/wP7/fQJKJH4WM6PToexutXyKGrBGdw6j7bplGIBl1XOPBsLBX+rvxzDq\n81uS+sOf+m/1i6SXJEs40H0QWw/8A9t7j6DXlwex/Swovtwh7zO1xIp7r6tP2YobDAM4HGZwHNXd\nI2cuCnpnoOifPBAQ+rrQxpYQkbCxsQVrtpxAV28oofvUVDqxbGEFZlXlpWzwdiICkSBe3v1H7O7e\np7nfqrPgrrrbMNUxeczOaTgM0x/oeJ4bFOz6g44aemRZRscHH6LjjddPUz7lAZimpa7I81iN0VMD\n4cBAq/4c/f8YGPxEUer7TgEwHWRFxpGew9jYtBKfnWQhNk8dsoXPpGNw51WzMHd6Qcoe32zWw2ym\nVTXImYmC3hkm2t3mdgcz0qrR0uXHM+82oSWBAsc8x+Ds2mIsW1CB8sKxH/PW7u/AcztfRXtAe7xa\nubUUd9ctR54pdWOLksUwAM9z4Hk29p3jWIiiPCDEaLdiKbKMzjdeh3ud9nJtuvwClD34EPTFJSk9\n52yZjNEfhtlBP0f/z0RRin2nd8nU2XzwY/x+7yr4j9VD9uYNebtL5pfh60umQsenpuWe41g4HKbY\nMABCzhQU9M4Q2TDh4os97Xj5g70IR04/o9dm1mHJ3DIsmVeOnDSvnzmUXd178fKuPyIoarc4zius\nxzervw4DN7bnx/MsdDoOOh0IJq1eAAAgAElEQVQHnufAMMygQBINdcORw2G0vfA8fA1bNfcbKiej\n7P4HweekvsB0tgS9oUQD38AArSgKRFFCJKJ+Ucvf6HR42vH8J8/geGep2ro3xHJrFflm3HtdHUry\nLCl7bJqoQc40FPTOANE/sc8XRig0/EoSqSZKMt5cfxBrt5487e3KCixYtqACZ9cWpexTfLIURcHa\n4xvx3qEPoSD+pcGAwVVVl2PZpCVpv0gwDAaFOp2OgyTJA8KGBCmBwtGnEr0etDz5BEKHD2nuH235\nlOFke9DTwnFM7G+g06nd4dG/QfTvQe+kyRFlEW9+8jI+6upC5HD9kLX49DyDWy+fifPqUteybDTq\nYLWqz28Ke2Sio6A3wfV31QZGFApGq8cTwm/ea8KhZs+Qt5lSZse1F1ShZpIzo2+6ghTBH/a+hS3t\njZr7jZwBt9fejLr8mrSdg07HQa/noddzYFn2lFak0YcJob0Nzb/6JSKdHZr7c5ZcgsKbvwEmhesA\nn2o8Br1TRbvMBwZxWZYhCBIEQURkmFZr0m/rwU/wu/1/g+/4LMjuoiFvd05tEb65bEbKiqBzHAOH\nw0xduWTCo6A3QWVDV+2uoz147r1dQ65HazXpcOPSqSn9pD5SrpAbz+98Fce9zZr7C0x5uLf+dhRb\nhr4QjYTaFasGO57nYsFOEMSUdw8G+8qnyEOUT8m/4UY4l12R9oveRAh6WqI1AqPBTxQlCIKESCT1\nf8uJpsvbjuc+fgbHXYWInJgBKNofNAodRnzn2jpMKral7LGpK5dMdBT0JqDon9TvDyM4RMhKJ1lR\n8LdPj+Hdjw5rdH6qFswowLe+XJ22JcqScch9FL9teg1eQTsAVedOxx21t8CsM4/6sdTuWB4Ggxru\nZFmJhYF0dv95t25G2wvPa5dP4XkUf/tu2BYuSs+Dn2KiBr2B+rvdo62zDARBQjgsIhIR097N+9JL\nz+Oll57Ha6/9CVVVU9P7YCkiyRLe3vQSNrjbIBycAyWsPS6PY4GvL52GS+eXpyyYmUw6WCzUlUsm\npsxfZUlKZbqr1heM4IX/240dh7o193MsgxuWTMVlC1L3Jj0am1o+xxv73oWkaHe1XVJxIa6Z8iVw\n7MjHDLIsA71eDXfRlp5wWITfH4acQHHo0XKtWYXON/+kXT7FbEHp91bAPH1G2s/jTKIo6OvGleD3\n9z8HTCYdbDZj7DkgCGLKnwP79u3Frl1NKCoqTulx041jOdx4wV2YfuAT/I57H97mGkjdZXG3k2Tg\n9bUHsPtoD759ZQ2spuFX3xhOMBiBIIhwONQPc9nw3kRIqlCL3gSiKGpdMJcrsbVhU+1omwfPvNM0\nZG08h1WP71w7C9PKHWN8ZvEkWcKfD76PjSc/0dzPszxumfE1LC6ZP6LjsywDo1EHvZ4Hx41ta06U\nIsvofPN1uNeObfmU4ZwJLXqnc2qrriQpEAQRoVBk1KFPEATcf/89+PGP/x0rVtyLn//8f8dNi95A\n3d4O/Pbjp3HE60TkaM2QNfccVj3uuboWM85KXYkjp9PcV3Cbwh6ZGKhFbwKIZvVwWITXm1gB4lQ/\n/sbtLfjjmv0Qh2hFnHmWA/dcMytj5VIG8kX8eHHn77HfrT3rNEdvx931t6HSflZSx2VZBgYDD4NB\nB45jYq12mRiYLwsC2l54Dr5tY18+hZye2tqntuYBahevwcDD6TRDkhSEwxGEwyNr6XvhhWexbNmX\nUFoa3xI2nuTZCvGDyx/FXz5+Gestn0A4NAdKIH4ta7dPwM9fb8A1503GV86tBMuOPpy5XAHYbEYY\n+oaVUOAj4136ptZNULfeeitmzJiBGTNm4JVXXhnxcY4dO4ZHH30UV199Naqrq3HrrbeO6DihUAiS\nJOHZZ5/D3Ln1+N737o67zYsvPofzz1+A889fgEce+ZcRn7OWcETCS3/bg9dW7hsy5F15ziT8801z\nsiLkNfta8fPNTw4Z8ibbz8IPF65IOOQxjNpy53CY4HRawHEs/P4wurv98PkyE/JErwcnH//vIUOe\nZfYcVPzgYQp5WSISkeDzqc8Zvz8MjmPhdFrgcJhgNOoSDhpNTTuwd+9ufPWrN6T5jMcGx3K44cI7\n8Z3py+CY+hm4omOat1MU4N2Pj+AXrzfA5Q2n5LG93hB8vnDf8TPf6TXUdScV15FEj/Hkk0/GzmHF\nihUj/VVIBlCL3ggsXrwYDz30EMrKRv6p+cCBA9i4cSNmz56NiMYA+UQoigKO43D//Ssgy0BFhXY4\nueqqa7F48bn45S//a8Tnq6W9J4Cn32nCyU7tSQwmA4+7vlKDOdPyU/q4I9XYsROv7nkDgqS97NvZ\nxQtw04zroOOGH/Oj13MwGnXQ6XgIgohAQIAgZL6khtDejuYnfolIR7vm/pwlS1F48zfTWj6FjFy0\nlI7PF4Zez8FgUCcJRCJq1+7pnmMNDdtw7NhR3HDD1QCAzs4OPPTQ/fjXf/0xFi3K/nWYh1I/7Vw8\nUjQNv/34KRy2d0M4PAuQ4j807jvhxqMvfo47v1KD2VNH/54TCkUgihJycswAlIy37Gldd1JxHUn0\nGDfccAMuuOAC/OQnPxnR45DMoaA3Ag6HA3PmzBnVMZYuXYpLL70UALBixQq4XK6k7q8oCmRZgcsV\nwE9/+t8AgEce+Re43e642xYWFqGwsAhmc+qqy2/d14mXPtiNYFj7wnNWkRXfva4OhQ7tIqhjSVZk\nfHhkLT44ulZzPwMGX532FSwpP/+0b+Ycx8JoVLtmZVlBKBSB1xvKmkK5wUMH0fLkE5B82uPf8q//\nOpyXfynjFyySmOhkDoYBDAYdzGYDrFYG4XAEoZAYtwLKrbfejltvvT327+uvv2rcjtE7ldNegH++\n4lG884+Xsc60CZHDsyH7cuNu5w+JeOLtHVi2sAJfu2gKdPzoPtCIooyeHh+cTgtYNrPduFrXndFe\nR5I5RnFxMYqLi2G1jv1ylGR0su5j/fvvvx9rHt67dy8AYNOmTbFtx46pzfdr1qyJbWts1C5wm83Y\nEbaoRGfVRiISenr8YJix/RNKsrrKxdPv7Bwy5F1QX4J//eb8rAh5ITGEF5p+P2TIM/MmfG/OnVha\nccGQb+JGIw+HwwyHwwSAQW9vEG53AKFQJGtCnnfbVpx8/L81Qx7D8yi5+zvIveLLFPLGIUVRW5fc\n7kBfTUwGDoepr2v3zPmszrEcrr/oTnx36pfhqNoMvvQgMEQBp9WbT+D/+/1WtCc4MW316pWx4S0H\nDuwHAGze/BnOP38BzjtvAXbs2NtX/kjBU089hZkzZ2bFdWek15FUH4Nkt6x7l1i4cGHs54aGBsyc\nORMNDQ2Dtk2aNAnbtm0DAJhMJtTW1ib1GOrs1OG72Xg+u/57omNFgkEBfr9292M6uX1hPPveLuw/\nEd9qCAA6nsU3l03HBfWlY3xm2rqC3Xhux6to8bdp7i+xFOGeuttRYI5fWJ1lGZhMehiNPCIRua9r\nVkz3KY+Ia+1qdL7xOpVPOQNIkgy/Pwy/Pwy9nofRqHbthkIigkFh0ASOt99+P4Nnmj5108/BI8VT\n8dt/PIVD9h4Ih+qBiDHudsfavHjspS+w/IqZOLv29KVm5syZG/t5164dmDZtOpqadsa2NTXtQHl5\nBQ4d2oN77rkH1dXVZ8x1h4x/WfeMKi4uRllZGZqbm9HY2Iibb74ZDQ0NYBgGiqKgsbER1157bSz8\nzZ49GzpdcnWU3nnnHfzoRz8a9nb79u0b0e+QDtGQ5/WGEA6PfeDYd9yF37y3C54hAmaBw4j7rqvD\nWUWpq1g/Gvt6DuLFpt/DL2p/oq/Pr8Xymhth5AdfIHQ6DiaTHjodi1BIhMsVGJNadyOhlk/5E9xr\nV2vu5/PzUf7AQ9CXZEfwJqkVnbkb/VDidJoRicgIBoUJvwSbw16Ah770KP760ctYW7sJ4SN1kHsL\n424Xjsh4/v3d2H3UhW9cNh0GvXY9zMLCIpSUlKK1tQVNTTtx7bXXY+fOHbHrTlPTTlxxxZV4/PFf\nYPr0aXjssceSDmTj8bpDJoasC3oAsGDBgljQUxQFO3bsQH19PZqbm9HQ0ABBELBr1y4Ag1sAox57\n7DG8/vrrQ75glixZgrfffjul5+z1etHRob1+6EBTpkxJ+tjRkOd2ByGKY/sGrigKVn5xHH/ecBjy\nEP2Uc6bm486vVMNsHH3h0tFSFAUbT36CPx98H7KivezUlyovwZcnXwZ2QLe30aiDqa/wajAYgccz\n9iuKJIPKp5AoWVZirXxGow5Wq7rCQzAYQSiU3c/j0eBYDtddfCem7/sUr8jvoNdVCfHkdM3l0z7e\n2YqDzb2495raIT+M1tfPiQU9RVGwe3cTqqtr0dbWiqamHYhEIti3by927tyBuro5uOmmG6AoCm66\n6SZ4vd5Yg8P//M//YOrU+HGR6bjuEJKIrAx6CxcuxHvvvYejR49iy5Yt8Hg8mDt3LvLz87FhwwZs\n3rwZgqC2LC1YsGDQfbds2YJg8PRruzocDthsqW15WrlyJR555JFhb5fspzV1TB7gdvvHfKWLQEjE\ni3/bjYYDXZr7GQb42kVTcMXis8BmwdiviCzijX3v4NPWzZr79awOt9bciHmF9QDUgdUmkxrwojMd\nx0NLiOT1ovmpJxA6dFBzv6V+Nkru+S5Yg2GMz4xkWiikhju1ZVoHi0WPYDCCYDCSFWVC0qF2xjl4\npGQqXvjoKRy09ag198LxyxW29QTw769twU2XTMOSuWVx41XnzJmHVas+wMmTx7F9ewN8Pi/q6uqR\nl5eHTz75GI2NW2PXndzcArhcfjgcFjzzzDOIRCIoLj5993A6rjuEJCIrg978+f2rEURrBs2ZMwd5\neXlYt24dXn31VQCATqcbNAtJEAQ8/vjjeOaZZ/Duu+8Oefx0NKHfcMMNuOGG1Navis6s7enxp/S4\niTje7sUz7zahw6Udmu0WPe69uhYzJ6WuIv1o9Ia9+O3O13DEo11rK9foxD11y1FuKwXLMjCb9TAY\ndAiHIxlbLm4khi2fcvFSFN78DTDcyJdsI+NftEwLx6ndurm5FoTDEQQCQtYORRiNHHsBHvzyo/i/\njS9jdc0mCMdqIfXED1kQJQW/X70fu4+6cPuXZg5aPm327P5ryRtv/BEAUFtbD6czF//4x0a8+ebr\nANQxdLW1syBJCnp6fFAUGYWF8d3Gp6KuW5IpWRn0qqqqkJeXh+7ubqxfvx4AMG/ePOTnq7WRPvro\nIwDArFmzYDT2j7F6+umncf311yM3N37a/UDjoQk9k8uZfbyjFb9bvQ8RUbvrc1p5Du69Zhactuxo\nMTrmOYHnd74Gd7hXc/80RxW+PeubcJjsMJv10Ot5hEICXC7/uLroDVs+5Wtfh/MKKp9C+kmSAp8v\njEBAgMmkg9NpidV9PLU8y3jHsRyuWXInpu37FK+I76A3pxuRYzWAHP+hZ9v+Thxr8+Duq2tjSzKe\ndVYlnM5cuFw92LRJvcbU1dXHrieffaYulzhzZg0MBvW6oyjAzTffghdffBElJcX44IMPcOWVV2qO\nGx8P1x0yMWVl0APULtlVq1ZBlmWUlJSgqKgIdrsdPM9DFMXYbaL27t2L7du348EHHxz22E6nE05n\nZluigsEgNm7cCABob2+Hz+fDypUrUVZWhlmzZiESkdDbG8S2bVuwYsW9+PWvn8W8eQvijhMKhfDp\npx8DADo7O+H3+/H3v6ulRM455/xBQXg4EVHCH9YcwEfbW4a8zeWL1PpUPJcdU/K/aNuGP+59GxFZ\ne4LKhWXn4saZ18BuM4HnOQSDEfh8vqwpi5Io77ataPvts1A0CpoyPI+iO+6EfRwXxSXppY7jExAI\nCDAa9cjJMUEUJfj9Ey/w1cw4B/9WMg0vbngSB2o/gXBwDpRgfJdptyeM//7DNlx7QRW+fPYksCyD\n2bPnYMOG9ZBlGYWFRSgoKITNZgfHcbEZs7Nnzx10nCee+A3MZidkGbj66qvx0Ucf4eKLL457vHRc\nd4a6jgDARRddBJPJhM8//xy33XYbXnvtNSxevHhExyDjW9YGvfnz52PVqlUAgLlz1ReWyWTCjBkz\nNCdibNu2DQcPHsQll1wS27Z06VK8/fbbw7bwZUJ3dzceeOCBQdt27dqFZcuWwePxoW8oCMJhde1a\np1P7d3C5evD//t/Dg7ZF//3WW39FSYIzLjvdQTzzThOOtWu3Fhn1HO74cjUWzBy+i2IsyIqM9w59\niLXHN2ru5xgON828DlfMuLAv4AnweMZ+HeBUcK1dg843/jhE+RQzSr/3AJVPIQlRFLU8UzCotvBN\n1MCXY8/HA195FB9seBmrqj9B+GQ1pI74lYNkBfjLR4ex55gLd11Vg/r6udiwQe1FqqtTx/IajUZM\nnTod+/btATC4FAugztgFAK83jEikBxdddFE6f7VBtK4j0X+vW7cO5eXlCIXU9728vPgyUokeg4xv\nWRv0li9fjuXLl8dt/8tf/qJ5+1tuuQW33HJL7N8zZsyIdfummqIoEEURHMeNuJusvLx80FiM6EBp\ndZmj/tvt3r0Lc+fOx+TJVZrHKSkpxccfbzntY8myDFke+k18+8Eu/Pb93QgMUbalrMCC+66rQ3Fu\n/ADnTAhEgnh51x+xu0d7LItNZ8GKxXeirmQ6AoHxG/AUWUbnW2/AvWaV5n4+Px9lKx6CoZTKp5Dk\nRSdpmEzqWs2CICEQCI+b8arD4VgOVy29E9P2foZXIn+G294N4cgsQIrvVt1zzIUfv/QF7vzKMnz8\n8c1x+1988XeajxEMBiHLEiwWK0RRxC9+8Ti++c1vYN48dbxfKodRaF13Tr2OaNm+fTsWLVqkORM4\n0WMA/deRiTqpZyLLjv63cWb16tWora2NTQoZregLJxAQYgtpR+3cuR033viNUR3/5Zd/i4svPhuN\njdsGbZdlBX/eeAhPvL1jyJB3Tm0xHrl1QdaEvDZ/B36x9ckhQ96knHL857KHMSVnMnp6/AgGx2d5\nCUUU0frcM0OGPMOkSpz1o0co5JFRCwYj6OnxQ5JkOBxm2GxGsOzEGec5c+bZ+NcLfoiZul4YZm0C\na9Ve4ssbiOB/39yON9cfhJhg62ZPTzfuu+9uLF9+E26//RawLIvCwnIEAuqn9VSGopFedxoaGvCt\nb31r1I//9NNPo7a2Fps3a1c1INmLUSieJ+Xw4cPw+9VZsKWlpUM2hycq+t/v84UQCqWnEHJXVye6\nujoBADabHWVl5fD4BTz3113Yc0z7TY/nGNxy6XRcNKc0awb37+rei5ea/oiQpN1Cd27FAtw26+uQ\nBc1eznGl889vwfXh3zT3Wepno+Tu74BNYvxlNikosKGzU3uIAMkshgFMJj1MJj1CoQgCgfC4fy1F\nybKMD9e/hA/l/RBap0FsrQKg/d42ucSOe66pHdUyjkYjD6tVfY2O9j001dedkWhvb4/VinU4HKio\nqBjzcyAjQ0Evg6L/9R5PaEyX1zp4she/ea8JLm9Yc3+e3YjvXjcLk0vsY3ZOw2n2teLnW56EqDHp\nggGD66uvxJLSCyfERUnyenH4h/8MRYhfhSTnoiUovOWb47p8CgW97NdfgohHICCM25ZxLfv2fIZX\nDv0Zrkg+hMP1QES7eoDJwGH5FTOxqLpoxI+l1/Ow21MT9ggZKQp6GdIf8oIQhLEp0qsoCtZuOYk3\n/34Q0hBlReqq8nDXVTWD6ktlg+d3vobtnU1x2028EXfMugU1uTMzcFbp0f3+e+h+75247ebaOpQ9\n+NC4v2BQ0Bs/OI6FxWIAz7Pw+cJZu95zsrzuLry84dfYa5IhHKqH7Mkf8rYXzi7FzZdOg0E3sg9X\nej0Hu11tGRzvr10yPtEYvQzIRMgLhkU8+94uvL7ugGbIYwBce8FkPHBDfdaFvN6wFzu7dsdtt+jM\n+P78+yZUyJMFAe71a+N3sCzyrr6GLhRkTEmSDI8nCK83BItFD4fDDJ4f/5cNmyMf37v6MVzFToJp\n6mbwFfsARntc3kfbW/CzV7fgZKdvRI8lCBI8HrXwPLWrkEwY/6/YcSYTIa+504efvboFm/dqr8Vr\nNenw0I1zcPV5k7NiKbNTfd66RXPd2ttrbkaxZeTdKtnI8+kmSN5TWrsYBiXfuQ+mKdqz5ghJt0hE\ngssVQCgUQU6OCVarAVn4VpEUlmXxpcvuworyr6HAfhiG6s/B6LUL1Ld0+fGzV7dgQ0PziMIahT2S\nSRT0xlD0BR5dv3YsfLarDT97bQvaerTfwKpK7XjsWwtROzn7ag0Car28T9q+iNu+uHg+avImVu04\nRZbhWr0ybrtt8dmwzZ2vcQ9CxlYoFIktyZiba4HBkLUVuhI2reZs/OjCh1ErhmGY9Qm43FbN20VE\nGa+t2offvLcLgVDyYxYVZfA1gJCxQkFvjAxsyfN4QrDbjdCNcMxHIiKijN+v3ofn398NIaLdJXHJ\n/HI8/I15yLVn5+xNnmfREmlGZ6A7bt+XJ1+WgTNKL//2BkTa49ewzb38Sxk4G0K0KQrg84XR2xuE\nyTQxunOtOXn47jU/xjXKZBgrG6GrbAIY7R6XLXs78NjLm3GoWXvJRS06HQe73QiPJ0Qte2TMje9X\n5zhxandtJCKlNex194bwX3/YhvXbmjX3G3Qc7rm6Ft+4bHrWLGU2EMMAFosBOTkmrD30cdz+6tzp\nyDdlZwvkaPSs/DBum7mmFoaK+Ir+hGSaKMpwu/u7cy2W8d2dy3IcLr/8LjxQeh0KzCdgqP0UjEl7\n0lBX33vsh58dgzxMYBsY8iIRibpxyZjLvqv8BDPUmLx0hb2mI934ySubcaTVo7m/JM+MR5YvwOKa\n7BzbptNxcDotYBgGx9ra0dC2I+4255YuysCZpVfw4AGEDh2M2+6k1jyS5aLduQzDwOm0pLWnYixM\nnXUuHr7wX1AXjsBQ8ym4ghOat5NkBW9tOIT/fXM7ev3xpZCA+JAXRWGPjCUKemk0uE5efDdAKsOe\nrCj468dH8L9vbIdviJpXi6oL8chtC1CWbxnVY6UDwwA2mxE2mxFebwg+XwiftW6FqAz+f7PqLKjP\nr8nQWaZPz6r41jxDRQXMNbUZOBtCkqN254bg9YZir+Px3LpndRTg3msfw3ViFcwVTdBNaQQ47ffV\nXUd68OOXvsCuIz2Dtg8V8qLUsKcWf6ewR9KJgl6aRF+4Xu/piyGnIuz5ghH86q3tePfjI9B6u+BY\nBrdcOg33XF0LUxYOntbreTidFsiygp4ePyIRCYqi4JOW+EkYZ5csAM9m3+8wGkJbG/yNDXHbncu+\nROVUyLgSiUjo6fFDlhU4nRbo9eP3tcpyHC770t14oOQ6FOpbYJj1CRiLW/O2Hr+AX77RiLc3HIIo\nycOGvChBEOHzUdgj6UVBL40CAQHhIdaQHWg0Ye9Iqwc/efkLNB3u0dzvtBnww2/Mw6ULKrIuNDAM\nA7vdCItFD48nCL+/f6WOQ71H0R7ojLvPROy2da1ZGbdmG5+bC9vCife7kjOD3x+Gx6PW3rPbjVn3\n3pOMqrpz8fAFP8RsnwxD9efgiw9r3k4B8MFnx/Dz1xsgs8ywIS8qFBJja+MSkg4U9NJAUZS+dSIT\nf/EmG/YURcHft53Ef/5+K7o92kuZ1VQ68eNvLcTUspyEz2OsqK14ZkiSDJcrAFEcPDN4U8vncfeZ\n5qhCkblgrE5xTIgeDzyb4iecOC9dBoYfv60hhIiiWntPkmQ4neZx3bpnyS3APV/7Cb4mTIGpdB/0\n07cAvPb77sGTvfjpC58jmEQJlkBAQCgUoVY9khYU9FJMURSEwyJ8Pu03gdNJNOyFBQkv/N9u/G71\nfoiS9hvDV86txENfnwO7WZ/0eaSb1WqA1WqAxxOCX2MQcyASQENH/CSM80oXj8XpjSn339dBEQe3\n+rImE3IuvChDZ0RIavn9AjyeUOx1P14xLItLvnw3Hiy+DoVsB4yzPgFr79K87aHmXry94VBSx/f5\nwgiHRQp7JOUo6KWQoiiIRCR4vaERH2O4sNfa7ce/v7YFn+6Kr7cGABYjjweur8dXL6wCy2ZXdwnP\ns8jNtQBg4HL5IYra3RpftDUgIg8OPxbejDkFs8bgLMeOHA7D/fd1cdtzLloC1mjKwBkRkh5q654f\nAIPcXMu4rrs3uf5cPHzhDzGnF9DP2AK+fD+A+FqlqzefwNZ98cNPTsfrDUEUJQp7JKXG76styyiK\nAkmS0dsbHPWxhgp7W/Z24GevbkFzl1/zfpOKbfjx7Qsxe+rQC3RnitmsR06OCT5fGD5faMiVQRRF\n0ey2XVQyDzouu9bgHS3Ppn9A9p2yfibHwXnpxCsGTUh0Zq7PF0ZOjgnmLOxtSJQ5twB3Xf8Yrg9O\ngbngIPhJewGNqXAvfbAHHe7krgludxCSJFPYIylDQS8FFEWBLCtwubSXGRuJgWGPYRn8ad0BPPNu\nE0JDrI978ZxS/Os35yHfkV0tQSzLwOEwQ6fj4HIFTjsDGQCOek6gxd8Wt32iddsqsgzXmlVx2+2L\nzwHvcGbgjAgZG4IgwuUKQKfj4HCYs67nIVEMx+Hy676LBw3nwuI8Cq7wWNxtgmERv3mnCZEhei+G\n4nIFIMsKhT2SEhT0Rim6bm10/cdUikQkuNwBPPWXnVi9Wbtop55n8e0rq3HbFTOh47OrUKlez8Hp\nNCMcjqC3NwhZHv5NS6s1rypnEkos2VngeaR827Yi0hnfreO8/IoMnA0hY0uWFfT2BhEOR/omamTX\ne1cioiVUpl12A67xVEA3aS9YR/yQmmPtXvxpfXwx9OG4XP5B6+MSMlIU9EYh+gJ0u1Mf8qL++o8j\n2Lq3Q3NfodOEf7ttAc6rK0nb44+UxWKA1WpEb28QwSEKOJ8qKIawtb0xbvuEa81TFLg0CiSbZ9XD\nUFaegTMiJDOCQfVDoNVqhMUyfiZqnFon76Lr78c5nRboq3aC0cf37Px9WzO+2KM9rnooitJ/baGw\nR0aDgt4I9Ye8IKQhZuxdxk8AACAASURBVL6O1vF2L977+IjmvnnTC/Do8oWoKLSm5bFHKtpVy3Gs\nZtmU09nS3ghBHhwKTbwR8wrrU32aGRU8sB+hI/G1uHKvoOXOyJlHFNUSSxzHjouuXK1iyAzL4sYr\n/wkVngj0UxsBJv597+UP96KtJ7nhPZKkwO2mpdLI6FDQG4GBq14MNXN0tCKijBf+bw8kje7OSxeU\n477rZsFszK66VP1dtSI8nmDSb0yfaHTbLiyaCz03fgdta3Gt/CBum2FSJUwzZmbgbAjJPEVR4PEE\nEQ6LWd2Ve7oVL/Q2O749ezlsnBu6s/bG3TcsSHjmnSYICRRRHkgU+ys5UNgjI0FBb4SCwcRWvRip\nv246gpOdvrjt584qxv03zs264qNmsx5Wq/oGGAwmX+X9uPckjnub47afO8G6bcMtLfDv2B633Xn5\nFeN69QBCUiEYjNbcM2bdrNxEljUrnDYLt5jPgS7/GLjc1rj9Jzt9+OPa/Uk/djgsjuh9lRAAyK60\nMA5Ea+VpFfpNlUPNvfjgs/gZXGUFFiy/YmZsNm6iS+ykm81mBMexcLsDCU240LJJY13bSbYKVNhK\nR3t6WcW1emXcNj4/H7b5CzNwNslhWSb2xTAMWJYd8LO6pJ36hdh3QA2v0QwbDbP5+eqQg/4GCiU2\n8Lz/uwJZ7p/VLsvygJ+VET/XSHaLRCS43QHY7SZwHDuquqSpkujatQAw++Kv4tK3DmL15CbIfjuU\nsGXQ/o+2t2JauSPpsdV+vwCe56DTcfShkCSFgl4SoheZVNTKG0o4IuGFv+2JqzPHsQzuvLIGOp4d\nVHolk2GPZRnk5JggijLc7pGXlglLAra0NcRtP2+CrWsrut3wfvZJ3HbnpZeD4TLfVcWyDDiO7ftS\ngxzHsbFwNzBgqa8FeUD46g9nAwNbtLbYwOdzQYENXV1qa3X/9WpwQIyGxmiAZFkGPM/Hfj71nCRJ\nPRdJUn9W/01BcLySZQVudwA2mxFOpznhWfvpkEzIA9Tn61VXP4Dj7z6GPVMbEd59NqAMfn3/bvU+\nVJbYUZZvGeIo2np7g8jNtcReF4QkgoJegtJZRmWgP284hHaNAbtXnVeJScW22L8zHfaib36BgJDw\nrNqhbG3fjpA0eMk4PafH/KLZozputnGvXxu/3JnZgpzzLxjT81BDEweeZ2PBjufZWGCKhiRBECFJ\n0UCXnovsqS16WkVnT0cNfGowjf4eBgMfC6iiKMd+J1GUIYoSBcBxxOsNwWTSweEww+vN3Ptcsu+x\nnNGI2y/4Ln6+5Ql0TtqDyNHBq/oIERnPvLMTjy5fCEOS4xFdLj9yc60AFAp7JCEU9BIQHQDb25u6\ngsha9hztwdqtJ+O2Ty6x4cpzJsVtz1TYMxp1sFj0KXtMrUkYCwrnwMgbR33sbCGHQnBv+HvcdsfF\nS8Aa0/d7clw01KnBjuc5KIrSF4CkvjAn91XiT9tppI3aoidB1BguyzAYFGSNRh143gCGYSCKUiz4\niaKUtpnzZPSCwQhEUYbdboTfLyAUGt0Hy0SNNORF2cvOwu0nv4wnXR9CznNC6i4btL+1O4DXVu3D\nnV+pTiqwKYp6LXI4zFAUCntkeBT0EuTzhZMqFZKsQEjESx/sidvOcyy+fWUNOFZ73sxYhz2LxQC9\nnotVbh+tFl8bjniOx20/v2xiTcLo/fgjyIHBrcEMz8NxyaUpfZzoGB71i4WiqM8RUZQRCAgQxTNn\naSVFQV+YkxEe0GDMMEws9Or1PCwWAxgGiERkRCJS3//X2LYc/ehH/4yWlhawLAOTyYx/+qcfYNq0\nGWN6DtksEpHgcgWQk6OO2/P7w8PfaRRGG/Kipi6+BNe8uxdvV+6G7M+BEhpcDuvTXW2YcZYDF85O\nbiyyKMrw+cKwWsdP7UGSORT0hqEoCsLhSNo/Rf5p/QF0e+LfvK6/qAqlw4zjGKuwZ7cbwTAM3O5A\nylp/tFbCKLOW4CzbxCkcrEiS5nJntnPOBZ/jGNWx1bCifvE8B1FUw0ooFIHPR92UWqITqga+TqLd\n2TodB6vVAJ5nIYoSBEH9Snfw+7d/+wmsVjUE/OMfG/Cf//lTvPTSH9L6mONNdNye3W6KvdelQ6pC\nXtSSr9yDo289hs1TGxHefQ4gD+6q/cOa/agstuGsItsQR9AWCkWg03EwGHhq1SOnReVVTkNR1DFL\nXm96Pz02HujCxzvip+JPr3Dg0oUVCR1jYNjT6VI7sJ9hmL5uAnUwcKpCniBF8Hnbtrjt55UunlBv\nXN6tmyF2d8dtd16W/HJnHMfAZNLBbjchL88Kq1XtivT7BXR1+eB2B+D3hyEIIoW8JETHJPr9Ybjd\nAXR1+eD3C2AYBlarAXl5VtjtJhiNOnBc6p+b0ZAHAD6fDwxDb81aBr4HORzmlL9PpDrkAWrL/S2X\nP4iykAe6Sbvi9kdEGb95twnBEZTr8npDfcMu6LVOhkYtekOIziB0udI7Ls8XjOCVlfHFNQ06Dt++\nshpsEm9k6WjZ4zgWOTkmhEIRBAKpLSnT2LkTQXHwDGYdq8PCorkpfZxMUhQFrpXxy51ZZs+BoTSx\n7hqeVz+16/VqWQVBEBEOR+D1hugNPo0GtvoxDAO9Xm3xM5vVsVHq3yF1rX3/9V8/wxdffAYAePzx\nX6fkmBOV1xuC2ayPzciVpNEPq0lHyIsy5ubjjuqb8Mv/n733jJLjPs98n3/l0HlmEAmQABGIQAIg\nIWbJVKLiSvLacpAtSyvreH13fY/14foc+57rPd6zH3z27t61V5aDZFkO8tper2RZWpqKVCJIMYEg\nQRCBAMGADMxMx8rpfqipwfRUD6a7p6q6uqZ+5+CQUz1T1TNd9a+n3vC8b/wDmpM1ONPdGYsrdQ1/\n/a2T+Lcf2jOweK3XVUxM+FmfLD0g50RH/tjYg+vjzeIVeQDw5W+fQquHJ9/Pv3MbpiriwPuLMrLH\nsjQqFRGKYkQu8oDeads719wBiR38904r2skTMN4MeyJW33PjcWccR6NYFDAxIaNY5OF5HtptHbOz\nCjodA4Zh5yIvQfwSDhudjoHZWWVOZAPFIj/3GQkrnubw27/9u/inf/oX/Nqv/Tv8yZ/894jeeXZR\nVROKYqBSESNZ6+Iufdmw5yB+ntoHbtPLIGI79PozJ67iB0fCpvH9ENyr8jUhpxe50FsCRTFi78R7\n5sQVPHvyamj77Vsn8FMDFucuJAqxx3HM/MIXxwSQK8pVnGmE5/g+kLFJGLPfDkfzhC1bIW7fEdoe\n1IdNTBQgSRxs2y9Ar9fV+UaKnHQQNLcEn49tO5Akbj6dvhLh8d73fgDPP38YzWYjwnecTfxxi/5a\nN+y0oCREXsDBh38JD80W/Xm4VHhd/YfHTuP1y62B9+s4XuwNKjnjSy70FhEUaq/UG245Gh0DX/72\nqdB2WWDwyffdtuIQ/ErEHs8zKBR4NJtabAtfr0kY66Q12FoO28iMK8aF81CPvRTaXn3P++Y/X4ah\n5sSdDFnm4Tgu6nUFjYYGTbPyOrsxwHU9aJqFRkNDva7AcVzIsv+ZBo0dN0JVVVy5cnn+60OHfoxS\nqYRSqRz3W88EluWg2dRQKPDg+cHEXpIiDwAIReEjH/oMtnc6YLeE6/Vsx8OffO0Y1CGa/zTNgmU5\neVQvJ0Reo7eAoC4vzskXwXH+6psnoejhJ7pfevcOVIvRtMwPU7MniixEkYus7qXn+3JtPH35cGj7\nAxvuzlSNSb1HNI+dWoPiXQchiiwEgQUhBLpuRWZXkzNaAtGnaRZomoDn/cYZz/Og6xZ0PZxy13UN\nv/u7vw1d10BRNEqlEv7zf/6DTF0LcWPbLppNDeWyCIoifT2oJy3y5o8rF/DJuz+N//rSF3BtTRXO\n1c1dr083dXzp0ZP49z+9d+BzoNnU8nq9nBC50Jsjybq8x49ewtFXw12YB3dO4Z7dayM91iBiT5I4\n8Dy7opm1/XD02svoWN2ecgyhcff6u2I7ZtJY9TpaTz8V2r7+Qx/ExGQRpunXe6VhVnFOPDiOB1U1\noaomWJaGILCo1XhYlj0ffQGAWm0CX/jCX432zWYAx/FHMZbLfjfujeqKRyXyAmpbduLj5x7Cn3CH\noHbK8NTu6O3zr1zDd587j4f7dF1YSKOholqVczPlnHny1O0COp346/KmGxr+/rHToe0licUvv2dn\nLBdmP2lc3wiZiV3kAcCTPdK2+9fcjgI72NzHNNN47LuA030DYYpFlO5/ELOznZGMc8oZHZblzDXT\ndGCaDmSZR7UqQxRZ5Pfi6Ai89njeN8LuxahFXsCut/0rfKC91q/Xo8MRyH/8wRm8eqE58H7zer2c\nxeRCD9fr8uI2RXY9D1969AQMM7y4fOJ9t6EkcbEd+0Zizy8ep9BsqrHXd1xTZ3CyHha6D2y4O9bj\nJomjaWj+KDzurPTQO2B61FiOGsuJBs/zjW4bDRXttgaGoVGr+Q0cNJ0vx1Hgeb7YY1kqNDkiLSIv\n4OEP/wb2101wW46FXnNdD3/6z8fQGaJePK/Xy1nIql9ZkqrLA4DHnjuPk2+GO+ke2LsOB7ZPxX78\nXmIvuME0GtEZId+IJy+Fo3lT4gS2V26N/+AJwLI0zGefgKt1n0+EZVF5+ztH9K5y0ohtu2i3ddTr\nClzXQ7ksolxeuVVIji+oGw0NNH1d7KVN5AEAxXH45Xf9n1hPLoJe+3ro9dm2gS8+chzuEIuzbyzt\n5WIvZ3ULvet1efGLvEszCr7yo1dD22slHr/4rrDVRlwsFHulkj83MgmRCwCO6+CpS8+FtmdhEgbH\nMahUJEgCjcuPPBp6vXT/A2BKpRG8s5y047p+Ld/srAJdt1Ao8KhUpKHtQnKu02z6Ym/h2LS0iLwA\nee0G/JtbPoLCmhMgcjgQcPTVGXzr6fA88H4I7m252FvdrGqhB/imm3F1lwY4rosvPnICVg8ftH/z\n/l2QhGQXdN/x3wXH0bEYIS/FsZkTaJndRqEUoXDPGDdhCAKLalWGJHFQVRPnvvNDWLOz3d9ECKoP\nDz7uLGf1YRj2vG+iP/lBhiCwo35bY42qmuA4Gpblpk7kBWy+6634WXvHXL1eeE3+px+9ilfODe6r\n6Dhuomt8TjpZtUIvmGObxEXwzafexGuXwiaY77hzI/bcUov9+Ivx56P6T7txzMZdikM9JmHcMbkH\nJW6wYd5pwO+glMHzDDodHY2GCsOwehokF/bfCW7tuhG8y5xxxTRtNBoqOh0dPM+gVssF3zAE6dpm\nUwMhCNXspYn7P/gpPDhLwG0Ne2+6HvBnXz/Wc4rScgTBjDyqt3pZlUIvSSuVN6+08fVD4QkQa6oi\nPvrQttiPv5igJi8wQ45qXNpyzOp1nJh5JbR93JowgpsuzzNotfQuU2n1+Mswz58L/Uz1vTced5aT\nsxSBGXCrpXedeznLs7gmL0jjplXsEZrGRz/wGWy1r4BZfzb0eqNj4s//98tDuSLkI9JWN6tS6AGY\nn1UZJ5bt4ouPHIez6MIkBPj0B3aDX+FszEGRZd+lf2FNXlJi7ycXn4WH7r9DTajittr22I4ZJTzP\nzKfR2m1f4C0eZt/LIFm4dRvEW5MX9DnZwrZ9odJu63PlAnkN341YqvGi2fQ7nZeyXhk1XKWKT+37\nFVSqJ0EV6qHXX369jkd+8vrA+/U8/56XszpZdUIvsFKJY37rYr7xxGs4f00JbX/vPZux7aZkxxtJ\nEgeWpXs2XsQt9lzPxZOXng1tv3/93aBIuk9BhqFRqUgQRQ6djr7kWDj9zTegHg+PNKrl0bycCAki\nU52OAUniUKlIy45YW20s113bbKrgOBpSjHZWK2HytjvwceFu8FteAJhwqvbrj7+G46/P9vjJG2MY\ndm65skpZVSuE32qORLpMz1xo4tGn3ght3zgl4yMPbo39+AsRRRY8z8612/f+njjF3vGZU2gY3caf\nBAT3bTgY6XGihKLIXGeyAE0z0WioNyzkrn/7W6Ft7Nq1kPcdiPNt5qxSLMtBo6FC08z5jlKKGu/O\n9Sjox0IlsF7heRaimM66x73v/ije25LAbT0KLMqEeAA+/42X0egMbooc3ANysbe6WFVCDwDa7fhF\nnmE5+ItHjodEFU0RfPoDu8Em+ATO88zc7NrlzZDjEntP9JiEsXfyNlT49A1tJwRzUwskWJaL2Vll\n2eivNTOD9rPhRpPqw+8FoVbdJZaTIIZhY3ZWgWW5qFYlyDK/aidtDOKT53unqhBFLpU1j4QQvO/D\nv4nbtWkwG8K2XG3Vwue//jIcd3DHiCTugTnpYtXchYKUrdljKkXUfOWHr+JKPXwxfeiBW3DzuuQ6\nTDnOHwPUbGp9F/BGLfYaRhPHZk6Etj+w4Z4V7ztqgjo8QoDZWT9a0g+N730HWLTg0sUiSvc9EMfb\nzMkJoWkmZmdVEAJUq6uvYWMYM2TX9Y3yg/GPaYORJHz8bf8H1hZOgSqGZ6OfOtfo2ei3HKbp5Cnc\nVcaqEHrBCZ1EyvbE67N47PD50PYt64t4/303x378AJalUSzyaLW0gX0CoxR7T116Dq7XffwKX8bu\n2s4V7TdKaJpCpSJCFDm0Wn79U7+LoKMqaPz4R6HtlXe8CxSXzhqgnGzieR46HQOtlgZR5FAui6ti\nrNpKJl44jotWS0OxyKdyIklp0xZ8cu17IN98BGDDqdpHnnwDL50Ni8DlCO6FudhbHWR/FZij1Ypf\n5Km6jS89Go5esQyFT39wN+iE0ni+E7y/8Nk9TJr7IQqx53ounrwYbsK4b/1B0FQ6FlVZ5lGpiNB1\n37ds0L9X80c/hGd0d7MRjsvHneWMDNt253wdbVQqYmo7TKMgirFmtu3Or3VpFMa3PvAwflpfD+7W\nF7G4Xg8APv+NY5htDd5Rm8Q9MScdpO+sjpgkU7b/8P3TmGmFn7p+5m1bsX5Cjv34gF/bUS6L6HSM\nFbvAr1TsnaqfwYze3R1GQHDf+tF757EsjVpNBkURzM6q0PXBB4e7loX6974b2l564K2gC4Uo3mZO\nztDouoXZWRUURVCryamMWK2EKGfXWpaDTsdAuSymchzj2z7867i33Qaz8UzoNVV38KdfPwZ7wMxN\nnsJdPWRa6CXZZfvC6WkcOnoptH3npgre9ZZNsR8/oFwWoetWZPYxKxF7vZowdtV2YEKsRvLehoEQ\noFgUUCwKaLf1OT/F4Ra69jNPwWkuGktECKoPvyeCd5qTs3I8z5s/z4PzPoU6ZmCiFHkBhmFD1y2U\ny2Ik+4sSimXxC+/7TdzMvQKqNB16/dULLfzTj8Mmy8uRp3BXB5kWegDQ6cRvEtlWTfzVt06GtvMc\njU99YBeohFbWUkmIZazbMGKvbXZw9FrYV26UkzA4zm+2cF1vrlNx+BuE53k9LVUKdx0EN7VmJW8z\nJydyLMtBva7A8zxUq3Iqmw/6JQ6RFxCMCyuVhEj3GwXC5Br86m0/h/LGIwAbvq996+k3ceT0tYH3\nmxspZ5/MCj3P82DbbiLGyH/7nVd6ziD8hXdsw1QlmadD31aBxHbRDir2nrr0HByvexEucgXcPrk7\nlvd3I4IonizzaLV0KMrg/lOLUV46CvPihdD22ntyg+ScdOJ5mGvW0CHL/FhG9+IUeQHttg5CSCpr\nG9ftuwcfo28Dv/UFAOFU7Z//75cx3Rgsg2UYNmw7n4WbZTIp9K532cY/y/bp41fw7Mmroe23b53A\n2/ZtiP34ACAILDiOjr24tl+x53kenrwUTtveuy75JgyWpVGtyn4Erq6ExpYNS/074WieuGMnhC3J\nmmHn5AyKbXdH98aldi8JkRfQamngOBqCkD5D5Tvf/3G8u2OD2XQ69Jpuuvjjf35p4Hq94F6Zi71s\nkkmhB/i+UnGfs42Ogb/9zqnQdllg8Mn33ZZIUS/L0pBl7oZTL6KkH7F3pnEWV9VwHcn9Cadtg6hF\np6OjM4SL/FLor78O7WS4u7qaR/NyxohOx0Cno89Hu9NMkiIPwHxttyxzqRPChKLwoQ9/BrvwKqhK\nOMjwxuUO/uf3w00bN8Lz0LdvaM74kTmh5zdgeFB6pFKjPs5fffMkFD2cGv6lh3egWox/4QzGdLVa\net+GyFGwnNg7dDE8JWJHdRvWSJNJvD3QNIVqVQJNE9TrauQd1/VvPxraxq3fAPn2OyI9Tk5O3Jim\ng3pdBU2TuWsmfbeEpEVegOt68+tc2sbLMaUSPnnPr2Jq6gUQLpzJeezweTzXI9N0IxTFnL9/5mSL\n9F3VEdAawlNoUB4/eglHXw0bVR7cOYV7dq2N/fiA32Grqmaii1/AUmJPsVS8cO1Y6PuTasLgeQaV\nighNs9BqDd9RuxTWtWtoPxf2Bqw+/J583FnOWOJ5vqDRNAuVipiqqRqjEnkBluVAVc1UduJWt+3C\nJ6v3QNxyBCDhVO1f/MvLuFIfrHwpiXtnTvJk6s4UNGDEvSBMNzT8/WPh+oiSxOLj79mZSMq2WBRg\n2y40bXD/t6joJfaeufw8bLc7yimzEvZN7Y39/RQKPCSJR6OhDeWL1w/1730Hi3PkdLmM4r33x3K8\nnJyk0HULjYYGSeJRKIw+lTtqkRegaRZs20WxmL5O3B1v/wg+rAlgN4VLiAzLw+f+6SisAeqSLcvJ\nGzMySGaEXlINGK7n4UuPnoDRIx34iffdhqIU/9grSeJA01Qq2uIXij2GofBEj7TtPevuAkvFFyUI\n0k6EEDQaysAj3/rF6XTQfDw87qz6zneDYtNXtJ2TMyiO46LRUEAImS9/GAVpEXkB7bYOmqYgiuka\na0gIwTv/9W/goPUmqOrl0OsXrqn4u++9MtA+88aM7JEZoQck04Dx2HPncfLNRmj7A7evw4HtU/Ee\nHJjvBEvT+JpA7F22LuGSciX0epxpW46jUalI0DRrzvw4tkOh8/xheOai2k+WRfmn3h7fQXNyEsbz\nfGHjp3IlcFzynfJpEnkB/gxhNvG/x3JQgoBfevdv4KbyCyB8ONDxoxcu4amXwyJwKfLGjOyRCaGX\nVAPGpRkFX/nRq6HttRKPX3znjliPDfjNF8FEhySbL/rBshx895XHQ9tvLd+CdXI8NYuSxKFQENBs\nxpeqXYh5JbxY8ps2g5aTGW+Xk5Mkum6h2dRQKAiQEshUAOkVeYDfnBFMGElbc4a0YRN+dcv7Udz0\nfM96vb/85nFcmlH63l/emJEtMiH0gPiLSB3XxRcfOQGrx9D7T71/FyQh/gLmUkmEqlqpWwADXm+e\nD23bUbk1lmOVSgI4jkGjocLu8ZnEgWuGLVrEW+P5/XJy0oBtu2g0VHAcE/u0iDSLvAC/OcNCqZS+\n5oxN9zyEXyBrwG4OWz9ZNvDZr74AY4C/a96YkR3GXugl1YDx6FNv4rVLrdD2d955E3bfUov12IDv\nCee6XqpD6r2aUNpWJ9JjUJRfO+S6HhoNNdHIpmeEhR6/8abEjp+TMwoWXmvVqhRLNGscRF6Applw\nXQ+ynK56PQC458OfxkPGVdC18Nz1K7MGvvzt8KjOpcgbM7LD2As9ALHXq715pY1vHHottH1NVcTP\nPhR/RIfjaPA8k4rmixtR5kqhbRNSdCKYYXx/PE2zIjVA7he3h9Cj+PR14uXkxEGnY8zX7TFMdLeO\ncRJ5Ae22Dp5PX70eYRj863/1GWyTXgQRwqnaJ49dweNHL/a9vzTVgucMz1gLPc/zYJp2rFEdy3bx\nxUeOw1l0DEKAT39gN/iYL/SgLq/V0lL/ZFXmw0KvWihE4izPcQzKZRHttp5IPV4vXCMcTSV8+p7q\nc3LiQtctdDo6ymURHLfycpVxFHnAde/BNNbr8RMT+NUDv4jqhsMACf9N/+bbJ3D+Wn+ZFtf177Fp\nv/fk3JixFXrBiRd3HcE3nngN56+Fn4zee89mbLupHOuxgaAuz0ysDm0l9BJ6l5szy87GXQ5RZFEo\n+P54UU+5GASvR40exY3ebywnJ0lM05lr0uAhisPbCo2ryAuwbd9MOY31epN7DuCT8g7wm4+HXnMc\ngv/6D4ehm+GpTr0IMkm52BtfxlboAYg9snPmQhOPPvVGaPvGKRkfeTD+4fWSxMHzvJGaIg9CmSuG\nttW15rKzcW9EocBDEFg0Gmps/nj90jt1mwu9nNVH0KQhCOxQ5srjLvICNM2C53mJdSUPwp73/QI+\naHZAT1wIvdZSHPyP74ZNlnvhefHfa3PiZSyFnt/2jVjrtAzLwV88cjzky0ZTBJ/+wG6wEdao9IJh\nKIgim/q6vIX0iug1jdays3GXolQSQNNU4k0XS9GrGYPkQi9nlRI0adA0NVBHblZEXkC7rUMU2Ujr\nFqOAUBTe+7OfwT72ZRCxHXr9mRMX+47SdToGPC+P6o0r6TozB0BV4y3G/8oPX8WVergQ9UMP3IKb\n14UjV1FTKolot41UCJx+6Sn0TL9TeVCxF8yWbDa12E2w+6WXvUoe0ctZzXief40C6GsebNZEHhD4\n6xkoFtOXwqVlGZ9426exbuowgO6F1LJpXJzu31sv7ntuTnyMndALTBzjTGcef30Wjx0Oe8JtWV/E\n+++7ObbjBhQKPEzTgdlnDUVa6NV12zSuW9L0I/YIASoVCY7jps7HqWfqNq/Ry8lBq6XDcVxUKhKW\nGvWdRZEXYJo2bNtJxYzgxRS3bsP76UlQxXrotWdOhW1YliJIU+dRvfFj7IQeISTWlK2q2/jLR8OG\nkyxD4dMf3A2aivdPxnEMOI6BoqRL5PRDkSuAoHuVV20NpnNdlN9I7FEUQaUiwbKckdinLEeeur0x\nhBDQNAWGocCyNDiOAc8zEAR2/l9wI1y4jef9c55laTAMBZqmenoy5qSbTseAZTlzYq/788uyyAvo\ndPS59TtdlisAsHfHAxDk8HjKp06GAxo3otMx8mtzDIl/nEOEeJ4H1/VgGPFFur7ywzOYaYVv6D/z\nU7di/US8o64IISgWeTSb8c5sjQuKUChxxfl0bUDLbGFSnJj/eqHYCxZ+iiIolyUYhgVVTZ8ptOe6\n8OxF5x0hIOzwkE921QAAIABJREFUXYfjBCEATVPz/yiKzP+XoggIIfA8P40VPPUHtbQLIwA07T8o\nLaxnIoSAkOC//j9/n9evedf14Dju/H+Df6O6TprNBv7Tf/oPuHDhPDiOw8aNm/Bbv/V/o1qtjuYN\npQRFMeB5HCoVCc2mX1u7GkQe4KexWy0d5bKA2Vk1VZGv4u692PnkV3AEu7q2X5t20VJMlPo0fzYM\nG47jzl/zOePBWAk9wH9qigvNsPH40XAoe+emCt51MP4JCMUiD123YNvjuxiW+VJI6DWNdpfQA7rF\nXrttQJb93z2tkz96pW0Jx2dysWMYP7IW/PPFGZkXV67rwrZdmKYNx/HmxVi/TE0V+47YBjcUmiag\nKAo0TcBxzLzgBPzJOI7jvyf/X/zXDyEEH/vYr+DOOw8CAP74j/87/uzP/gi/8zv/IfZjpx1VNeF5\nQLksQVEMFIt85kVegG070HVr/ndOCxTP4362ihcEBZ6+MGBBcOjEG3j/we1976vT0VNpKZOzNGMj\n9PybiRurj9rlWTVkjExTBJ/6wC5QMd/Qg5tXmhaHYSjzRWBRg9di4RdgWQ7abQOlkpBqkQf0TttS\nGTBLpmk/zbowbRqIJdt255/gR9UU5B/Xg+MAQPjaDyKLQcpYEPzux0D4WZYDy3Iit+YplcrzIg8A\n9uzZi6997auRHmOc0TQTNE1WRSRvMYpiolqVwHFMquqst+54C+RTZ9DRu6c5PXnizYGEnmk6cF0X\nFJWXWIwLYyP0AKDVI6UaJdPNsMi6ZX0RU5V4n14I8RswsjBuZrmGjIVQFJmP5PE8A8OwU3tDyIqH\nHk1T4DgaLOvXxLmuB9t25oa1myP3KhwUP63rhM6bhQJWFDlQFJkTfTZMM1rh57ouvva1r+LBB98W\n2T7HHZb1xzbqugVZ5mHbzlg5CKyU4AG2XrdTU4ZT3L8fO5/9AQ6jW+hduuTCtGxwbP9yoNUyUIn5\nvpgTHWMh9DzPm3tCj1cETDfDQmvz2vitVAoFAYZhj8X0i+VYyktvMUFNXhDJMww71U//vaZikDHo\nuCXkeoMPx9FwXcCybOi6hXZbT1UdUZQEaebA6JUQMtcgQqNU4kBRmO9s90c8DX+sP/iD/wJJEvEz\nP/NzEb378WZxTZ4oeiiXr9fsrQZs24Fh2CgUhNR4oTKVKt7qEBymTcC5no3wXBo/PPEKHr5jd9/7\nsm3/YSlvnBoPxqbrtt2OvwtzpkdEb7Ic79D6IOqgKOnrMh2GnhG9RalbQnzPLcO4nq4d1lQ5KcYp\nokdRBKLIolwWUasVwPMMLMtBva6iXlfQ6Rirbn5lMBe70zFQryuo11VYlgOeZ1GrFVAuixBFduC5\npZ/73B/i/Pk38R//4++Dirkjfxzo1XjhP8hZKJfFJa1XsoiiGPPre1rYuOdOFPlw9+2h4+EJUMuR\nxD05JxpSvzL50TwvkQLrXqnbiQEc3weFEKBYTM8TXxT0E9ErlyWYphPqrk2z2Eu70COEQBBYVCoS\nqlUJNE1B00zMzHTQaunQdWvVRFP6wXU96LqFVkvDzExnrqaMQrUqoVKRIAjsspGKz3/+j3Hq1An8\n/u//f+C48a/XXCk36q5VVROm6aBclkb07kZDu62jWBRSI3Dlffuxs30utP3CRcByBvOm9aN6ua/e\nOJB6oQfE22m7kN4RvfjqECTJN0ZOY6pyWJYTeuWyCNt2loxgplXs9ey6TYHQ43lmLnIng2VpqKqB\nmZkgaped8ypuTNP3bpyZUaCqfiSmVpNRLovg+XCFy9mzr+LLX/5LTE9fw6//+qfwyU9+DL/zO//X\nCN55OujHQkVRDNi229cEjawQNANJ0ujXCgDgN23GA+0WQLrLhDyTxw9eeXng/SV1b85ZGamu0Qts\nG5IQQp7n9YzoxZW69TsEGczO9j+CZhzoPQbNb8MtlQR4nrestUYvn71R07PrdkQ1ejTtz0HmeQa2\n7dehGcb4N/KkBb92zz/nAsPnQoGHYdjQNAuO42Lr1ltx6NBzI36n6WAQnzzfmkOY//7VQKejo1aT\noevWyJudCCFYt2cPCteuoWOu7Xrt0PHX8fCu/QPtz7L8JhuKQl6rl2JSHdEjhCRWu6boNoxFixTH\nUChK8RjiFgoCFMVMTUdWVBRYGRTpPq00WwMr+H5o/S7uaYvs9ZpzSxK2V+F5BpWKiHJZhOt6qNdV\nNJtarAbiqx3DsNFsaqjX/UaCcllcMsq3GhnGDLnV0kEISeW4sDjwPN9ypViMt967Xwr7D/RM3168\nAKiWOvD+FCWflpF2Uiv0At+8pG5ivTpuJ8pCLCdwcJMIOgKzRDAdYzGK0xnYPiZNYq+3j178NypC\nAEniUKvJEAQWqmphdlaBqpp5zV2CuK4HVTUxO6tA0ywIAotaTYYkcampv0qalUy8aLW0Oeub1TFZ\nJljr0/CAIN52G94yGx4M4Kol/Pi1Fwben2HYcF03r9VLMakVegASHYU13ejRiBFD2jbwzMtybUOv\nzttz01eHil6mRez1bMaIMXUbeAzWagXQNIVmU0OzqaXKgHW1Ypr2/OdB0xRqtQJkmR+4Y3ecWelY\nM88Dmk0NosiB40YvfpKg09FRKPAjfzCgWA4bd2yBRDVCrz1+/PWh9pnGsZU510ml0AtmZGpachGv\nmR4pxckYOm5lmc+MZ95SlPhwRK+h9zZN7oc0iL2kmjEoyk9pVav+mKJ6XUG7rY+8ticnjOO4aLd1\n1Ot+nW21KqNQyL7gi2p2ret6aLU0FIt81+zjrBJMmpHl0aesC/v2Y3vnfGj7lUs0prXZgfenaVZo\nrnVOekjt1aXryT4h9LRWiTiixzAUeJ7JjGfeUvRuyBhe6AGjF3u9DJOjTN0uFHiu62F2tgNFMfL0\n7Bjguh4UxcDsbAeu62Va8EUl8gJs2xfLpZKYyb/XYhTFAM8zIxe28u37sG/2zdB2tzWBJ889P9Q+\nk75n5/RP6oRe8ESgKMmeNElYq2S1AWMxlQHGoA3CKMWea4TPxyhSt4T4KdpqVYbn+QIvGAqfM154\nHubq+DrwPF/wyTKfmUL1qEVeQOCpuRpsV4LGjFE3ojDlMm7ZUAaHRXXTHoVDp84OFZkL7tl5VC99\npE7oAaNpUog7osdxDAjJZgPGYtaWJ0LbmkY7kn2PSuzFkboVRQ61mm8gOzurrIqHgNVAcDOfnVVA\nCFCrSRDF8TZUjkvkBei6BctyUYrRoD4t6LoFQsjIaxOL+/ZjmxJO39aviHijR1duP6yG+9s4kkqh\nt5zPWtR4noeZHh2hUXro+Q0Y2U7ZAnMdolIltH2lqduFjELsRZm65XlmzuCYQqOhQlGM/Ck4gwSe\nkY2GCpalUKvJqei6HJS4RV5Ap6ODoihI0niL4n7odIyR1+oV9u3H7mY4fes0pvD0peHSt1kvSxpX\nUiX0PC8Zc+TFqIYNzeg+LkNTKMnRLDiiyMK23VQY/8YJx9EQBBasE17AokjdLiRpsRfFCDSaplAu\ni5AkDu22jlZLh+PkAi/rOI6HVktHu61DkjiUyyJoOlVL75IkJfICWi0NgsCC40bvnRknvtGwO1J7\nGW7jTbhVskB5izr5bQ5Pn3kNjjtcN7VlOfmDa8pI3WqjKMnbjvS0VinxoCKorQl80LL+pEPTBMWi\ngFZLQ4mNp0ZvMUmKvZ6p2wHmm8oyj0pFhGHYqNfVzIv+nDCW5aBeV2EYNioVceQRneVIWuQBCztx\nBdB0Nmobl6LTMUbqw0gIQfWOO3CLFvbU60wXcXz21FD7HcU9POfGpEboBePObDv5J4Ge1ioRpW0l\nybdTybo9RqkkQlFM2LYLmZVC0zF0R4fhRN9gk5TYGzZ1G8xMpSiC2Vk1r2HJga5bmJ1VQVFkfkZx\n2hiFyAuwbReKYqJUynZzhuP4diujnIMr79vfc0qGU1+Dpy8Pl761bf9enkf10kNqhB4hBKo6mqhX\n70aMlS8yFEXmphlku+28UODnZ64CS0/HiCOqByQj9gZtxvCNsQUUiwLabT9tly98OQGe582fF8Wi\nkAoj3YBRirwAXbdg2+7Iu1PjRlVNCAI7MmsZaedt2O5cw+IuME8v4MVzr0G1hpuhrWlmZrrNs0Aq\nhF4QzdP10bj+LzX+bKXIMg9Ny/aoKp5nwLJMaNJHTy+9mIQeEL/Y8wawV2FZes7w2EO9ruRp2pwl\n8dO51w2XRx3dS4PIC+h0dLAsM5YNLP3iuh40zRxZGp8wDNbs3oH1xnToNWN2AkeuHR1qv5pm5VG9\nFJEKoQcApjm6lFZvD72VCT2apsBxNDQtu9E8mqZQKPBotbSQLUhPL70IO297EafYc/tM3RYK/HwU\nr9MxcruUnGXxPL9ea2F0bxSkSeQB/t+l1dJQKPBj07wyDJpmguPokdUkFvbtx3YlnL51G2vwzJDp\nW2C09/ScblJz9YzSeiQOoSdJHFTVyvSNvlTyDaB71R+WekT0WjFG9ALiEHue68Izw4J9YTMGw1Co\nViUQQvIoXs5QBNE9QgiqVSnR6QlpE3kBjhPU62XXXy8Y9zmqWj359n3Yrl4IbXfbFZyePo+ZIUai\nAaO9p+d0M3Kh53kebNsdqSDqWaO3goVlNUTzZJmH47hLNheUe0T0GjFH9AKiFntLiTxC+ZePILAo\nl0WoqjlXi7fiQ+asUjwPaLf1+UkRghC//UZaRV6ArltwHDf1Xcor4XpUL/lbMl0oYNOmKZStxab2\nFJzGJJ69cmSo/Xoe5u7t+YI4akYu9EbZhAEAqm5DNbprA2mKoLKC9Iksc5luwGBZGjzPoN1e+nNL\nukZvMVGKvZ4eepxfPF8sChAEFo2Gb5uRkxMFhmGj0VAhiiyKRSG2Ro20i7yAdtuYqwdOX4dyFATj\n80ZlFl3Y33tKhp++PTK0WFNVI2/KSAEjFXpBE4Zpjm6B6WWtMlEShu6ComkKDEND07JZnxCIm07n\nxl2kZT7cdduKaAxav0Ql9paqz6tU/Pm0jYaaGx/nRI7jeKjXVXieh0pFjjzaMy4iDwimjOixit5R\no2kWWHY0Ub2l6vScxhQud67hzXZYBPaDaTp5U0YKGHlEzzBGK4ii7riVZS7TKdtCQYBp2suK816p\n27ibMXoRhdjzekT0GEmAqhp5HUpO7HQ6BlTVQKUiRjYfdZxEXoBpOjBNG4VCduv1/A7c5KN67Lr1\n2FoE+MVepy4Dt13LmzLGnJELPUUZrSjq1YgxrNDLejSP4xgwDN2XuBl16nYhKxV7vVK3HsPlqdqc\nxDAMG82m34G60vTeOIq8gE7HAMPQkQnetKFpFhgm+ageIQTlffuwtUdThtNYg+euvDDUSDQA6HSy\nG/gYF0Ym9Py07egLNXs1YgzbcStJXGZFnm8AzKPd7m+8jcxKoEm3qNIdA7o9mgjYSsTech23OTlJ\nYNsu6nUVHMegWBxujRpnkRfQbuupMpiOGr8DN/n1Rd63RJ1efQ3apoITs68Mtd+03OtXMyMTeoSQ\nVIiiqKxVKIqA4xjoejafXgoFAYZhw7b7uzksNR2jNYL0bcCwYm/Y8Wc5OVET1IQCQKUiDVTongWR\nBwC2ne0Urq6b4Dgm8WkZ4rbt2ObNgnjddlmeKcLTCitK32qalTdljJCRRvTSIPSislaRJA66bmbS\nWoNlabAsDUUZLBqXpvRtwKBij6YJhB7fRpaYipGTkwTttg7TtFGpSH0Z7WZF5AUoijG/LmUNz/PF\nnigmG9UjDIPJPbuwSbsaes1prMHR6Zeh2cOORLPyiN4IGYnQ873z0rHY9Oq6nRxwzi0hBDzPpkK4\nRk3QZdtvynYhaRR6QP9ij2EolMsS9LYSei2P6OWMGlU1oWkmyuUbmytnTeQB1/0Gh01hpx1NsyAI\nbOJRMHn/fmzr1X1bXwPLtXHk6rGh923bTi72RsRIhB4hZODoUBxoho3OInFGUwSV4mBPUqLIwjCs\nTM60lSQeluUMdYMo90jdJmWavBzLiT2WpVEui+h0DJiKGnqd4vMavZzRo+sWOh0D5bK45HmcNZEX\nEKxLWTRSdl0PhmFBFOM3zF6IvPd2bNcvhrZ7SgWeyeGZy4eH3reimHn6dkQkLvQC7zzLCo/NSppe\n0bxqkQdNDfZnEUU2k5YqNE1BEJihLUR6RfSS9tK7EUuJPY67fnM0Tbtn122eus1JC6Zpz5/HHHf9\nPM6yyAvodAwIApPJWbiaZiYu9GhJxoYtGzBhNkKvOY01ON04i1m9PtS+LSv31BsVI7k60rLoRNGI\nIQgsLMvJpGFuschDUcyhL8y0eOndiMViL+hobDa1+fO0l49enrrNSROW5aDZ1FAsCuA4ZlWIPMAP\nHCiKicIKJhmlFcfxYFlOImPwFlK4Yz+29+i+dRprAADPXh5uJBqQnnv/amMkQi8NaVtgiUaMAYWe\nH83LXm0ezzMAyJKzbPshrTV6i1ko9gKRZ9vXI85LTcbIyUkTtu3Oi73VIPICdN2aq5POnreepo0g\nfbv/QM86Pbc1Ac+h8Mzl54d++E/LvX+1kajQ8zw/bOs4o0/bAkuYJQ/QcRuk+7K2mBICyDKPTmfw\nBoyF9BR6KYvoBfi1IwSAF6oj6Zm6zYVeTgrxz10PAFlV9VCdjg5Zzp63XnBvSbK7mFuzBrdUWYjO\novXfpeG2JnBZvYpznbCxcj84jjuvA3KSI/GIXpqmCUyvsONWFLNpkCxJPEzT7opqDUPP1G0KI3oc\nR6NY5NFsqj1r9jwjXH9J5TV6OSljYbq22VRRLPJdNXtZxrZdmKYNScredTmKqF5xCfPkIH27spFo\n6dEAq4XEhd6oR54tZKbHnNt+a/QoioBlqRWlNtMITRMIAhPJ59RrOobhmNDtlUUKo4Rl6a50ba8G\njV6p2zyil5MmFtfkLUzjZtFrrheKYkIQkjcajhtdt8Cyyf5ehSWF3hQ8DysaiZYmDbBaSEzoBd22\naQrZrqRGTxQ56Hr2nkxkmYeqRmNuSQjpOR0jLVE9hqHmb44Lo5eLxV7ejJGTZpZqvLBtd/48vpHP\nXlYITPiz2Jih61aiBsrCrdtwK9UE7S0Sc5YATymjbXZwsn56qH27bvq0QNZJ9OpPU8jWMB201e5o\nHCG+vUo/CAKTOUsVhqHBMHSkv1elZ53e6C1WaJqgVBLRbhs9aywXir1es27z1G1OGliuu9ayHLTb\nBkolsa8JGuOOqppz61i2hK2m+dHKpCAUhdrevbhZvRR6zWlMAcjTt+NEoldDmkK2vTz0akUeTB9+\nTILAwLLczBkkFwp85F1Raey8JYSgVJKgquYNF5xA7BE7fN6S3DA5Z8T0a6FimjZU1USpNNhs3HFF\nUYzMzcENvGeT7CyWl0rf1v06vRevvTx0GU6atMBqIBGhF3TZpClUu5IZt4LAZq42j+P8BSTqZpk0\ndt6WyyIMw+rrM7QsB5YaPlfy1G3OKBnUJ0/XLZimhfKA4x3HkWANC9a0rOCnb5NrypD27MW2XlMy\ntBJcQ4DlWjhybbiRaGnUBFkmsYieaabLgqRXI8ZEH4sgTVOgaSpzoWdZjj6aBwCllHXelkoCHMeF\nqvb/ROk54XNXPXEiyreVk9M3w5ohK4oJx3EzOx92IYpiQJazFXU3TXvu/pNMVJYWRazbfgvW6jOh\n19xIum/TpQmyTCJCjxCSunq23tYqyy+AgsBkrgmD5xm4rhuLH2CaUreSxIGiKLTbg6UbuPXrQ9ua\nTzwe1dvKSZDPfe4P8dGPfggPPngQZ8+eGfXbGZiVTrxot3XQNAVJypYIWkwwbitrJsq6bic6KUPe\ntx/b1KXTt6frr6Kuh8el9YOm5bNvkyIRoee63oo92aKmp1lyH0KP57OXtvU7beMR4pWUjEHjOAaC\nwKLZI5K7HMW77wltsy5dhGtl6zxYDbz1rQ/hc5/7AtatC4v3tBPVWLNWS4MgsJlLbS5GVU3IcrZK\nLHTdAs8nJ/QK+/Zje68pGe0aPIeGBw/PXhluJJptZ6/OPa3ELvQ8z4Ntpy9E26tGb7mIHsfRcN30\nTPaIAkFg4TjxRPMAoMSP3l6FpikUizxaLW2ompDiXQdBuO4IiKvrMI6/FNVbzEmIffv2Y+3adaN+\nGwMT5exa1/XQamkoFnnQfTSfjSv+DHI30W7VuHEcXxwlZYTNTkxi05SMoq10v+BRcJuTALCikWi2\n7eR1egkQ+1VOyMrmpcZFr4jeckIvi00YksTF2gHVuxmjndjFTQhQKonodIyho8qUIKJw4K7Q9s4z\nP1k1ZrTLQdMUWJaGIDCQJA6FAo9SSUC5LKJSkVCpSKhWJUxN+cK/WpXmt5fLIkolAYUCD0niIAgM\nWJbOtAgZhChFXoBtu+h0fNuVLGfPFMXM3LQMXbcSTd8uOSVjLn17SbmC852wDUs/BHOKc+IlkYhe\nmsaeAYBpOWguEjcEQO0GXbeEELAsA8PIjtALonlxRlxlRgKzaDqG6ZjQnWSGWxcKAizLXvE5WLrv\n/tC2xnPPQ4S5qsQeRRFwnC/mSiUB1aqEyckCSiUBksSBZRkQ4gsJXfdtPTodA52OjlZLx8xMBwDQ\naunodHR0OgZU1YSu+yP3CAFY9vr+JycLqFal+f1zXPYmH9yIOERegGHYsCw7c1YkC7HtIKqX7Aix\nODEMa+46S+Y68G1Wwulbf0qG/x6euXx4qH0bhp1H9BIgVqHneelMc/by0Kss46HH8wxM00aWzklR\n5GKrzQsghPSM6j1+/iexHhfwhSzDUOh0Vi4qpV27QZcrXds8x8H57/0oNBs3S1AUAc8zKBR41Goy\nqlUJgsCCEH+RbrV0TE93UK+raDY1tNs6FMWcs/Ow58Zx+SO5grQTgLkHDP8hw7IcmKYNXbegKCba\nbR3NpoZ6XcX0dAetlg7DsEGI/5lWqxJqNRmFAg+ez67wi1PkBXQ6BhiGypQQWoyqmolOlYgbz/M7\ncJNqNBFu2YKtjArWXRTkcDi4bX9NXMlINMdxc7EXM7FH9NIWzQN6C73lGjEEIVvRPI5j4HlebDeQ\nhdSEamjbv7z+XVxRr8V2TIahIMscWq3Bmy96QWgapXvvDW1vPHEoNBt33PH/djyqVV/Y8TwzPzt1\nZkZBq6VBUUwYhp3Ig5zjuDAMG4piotXy30Mwm5jnGVSrEqpVGbLMZ2YiQhIiL6DV0iDLXGb+doux\nLL8OLEvNJ4ZhJSb0CEWhfMcd2KKGPfUCm5WW2cap+nBd7GnUCFkj9is7bbYqwOCNGBRFQNN0pnx/\nJCn+aF7A3evC9W22a+MLR/8a2pDO6stRLArodAw4TnRPiqX7Hght08+ehXLu/NiLPYahIct+1K5Y\nFOB5HtrtQNjp0HUrVdF5x3Gh69ZcOlhBu+032hSLAmq1QPSFP4s//MP/gp/+6ffj2rWr+Mxn/j1+\n+Zd/bgTv/sYkKfIAwHE8dDpGpv31VNXMlKWMaTpgGDqxaHZhmTo9YHhPvTRqhKwRm9C77nwd1xGG\np6e1yg3q83g+W9E8lqVBSHLzBu9dfxd21XaEtl9Wr+Kvj/89XC9aAVEo8LBtN/InRf6mTeA3bQpt\nb/3kya7ZuOMi9ggBRNFPhRaLPDzPm0+ZqqqZOkukG2Hbvgl2kEL2RR+PalWCKLLzDQef+cxv4Wtf\nexQ/+tHT+MY3vo2//dt/HO0bX0TSIi/AMPwayUIhW40LAaZpz9V/jse12Q9JRvWk3XuwzbiMxTd0\nz5DhajIA4MVrx6Dbg5fJeB7yKRkxE2tEL8mFahAGjejxPJup8HKS0TwAoAiFT+35GCbFidBrL02f\nwL+89t3IjsWyNDiOQacTT6SwV1Sv9dST8OYMp8dB7DEMNRf5KoBhaLTbxry4S1PUbliCySf1uop2\n2wDD0KjVCigWhVSnJ0cl8gI6HR0cx6T63F0JmpatqJ5h2Il56lE8j6mdt2KjHi63cRpTAADTtfDi\nkCPR0qoVskJsqx4hJLXiqLe1Su/xZ37almTmRAxGuCX92UishH97+yfA0+GF9luvP4YjV1fuSUeI\nn7Jtt/XYIsnFe+7FYj8Ke2YG2ulXACDVYo9laVQqIkolEbbtYHa2g3ZbT6XPZVTYtoN2W8fsbAe2\n7aBUElEui6n8bEYp8gA/stJu6ygWhUxarui6Pb/+ZQHLckDTJLH0rbz/QG/z5AjSt36zVQZPupQQ\na+o2rUJvuuec294RPUHIVjRPFEfnBbihsA6f2P0LPV/7mxP/ExeG9GIKkGVhvtMzLphyBdKevaHt\nrZ88Mf//aRN7HEejUpFQKPDQNAuzswo0zUplWUVceB7mf3ddt1Ao8KhUpMSMZ29EGkReQNABnbWJ\nEgG6bkEUs9NhbBjJjUST7+hdp+d2qvAs/z2cqp9Bw2gOvO/cZiVeYhF6nueldrSJZbtodMJpy4lS\n74WN45jMCD1CRj/Cbd/UXrx/y7tD203HxOeP/jU6ltLjp5bHT9nSUJT4/fl6pW87zz0L17x+XqVB\n7PkRPGl+xF29rmbmXF4JhmHPp6pl2Rd8o/yM0iLyAhTFyGwKNxghlpXgkWHYiXUTs9UqNqyvoBIa\nYUngNP30rQcPz14ebiSa6+Z1enERW0QvLYvWYmZ7DLQvFziwPTr0spa2FQQWpmmPXIS/75Z3Yt/k\nntD2GX0WXzr2P4byY4o7ZbuQwv4DoITuCLCr6+i80J22GJXYoyiCYlFAsShA03yBl1TjzThhmr7g\n0zRz/u+VpCdfGkUe4Ec/Ox09k124ruvBNJOLgsWNn76lEu2+3a7euPv20MWnh9p3mq6BrBGL0Evr\n2DNgiUaMJTpuOY7JlKWKKHKpaGWnCIVf2f3zWC+vDb12qn4G//zqowPtT5Z5WJaT2EJB8TwKd70l\ntL315JOhbUmLPUniUK3KcBwXs7NKHsHrA8OwMTurwHFcVKtyIgX7aRV5AabpX09ZTOFqmglByE5T\nhmkmF9Ur7D/Qc0qG25iE5/pic1qbGarmOh+HFh+xpW7TuHgBS1irLFGf59uqZONGybI0XNdLjWWG\nwAj4tdukQxCmAAAgAElEQVQ/AZEJN8F8/9zjePpSfyN1aJqCIDCRTL8YhF4j0dTjx2A3G6HtSYg9\nlqVRq8mgaQr1upJoV3VW8NPbCmiaQq0m9/Thi4K0i7yATseAIDCZaV4IsG1/EkNWUtN+920yQo/f\nfDNuESzwi0dYegzsaxvnvzx67eWB9x0YW+dET+RXcJrr84ClrFXCYoMQ30TWsrIh9EbZhLEUa6RJ\n/OqeXwJB+Cnu7059Fa+33lx2H4UCD0UxE18gxB07wdQW2cW4LtpP905bxCn2ZJmfM4jW0W7rqb7+\n0o7remi3/Rm8pZIQeURrXEQe4K/lqmpm0lsvS00ZlmWDYehE6g4JIZBuvhmbtSuh19zW5Pz/c/Rw\nf9u8Ti8eYnlUS/MCNtNnxy3LMrBtJxOdiYQQsGw6TZ93TezAR7a9P7Tddm38+UtfRtNoL/mzwZzT\nUQhYQlEo3XtfaPvC7tvFRC32GIZCtSqDogjqdSVTZQajJqjfoyiCalWKxH9vnERegKZZ8/OOs4Rh\nWGBZJhOpQs/zbYRYNpnPyLNtTFjhzlpCXT+nDWe4jMK4XBfjRuRCz/fPS5+gCOjXLDlLaVtBYGCa\ndmpF6zs3vQ1vWXsgtL1hNPHFY38Dy+39Ocgyn3jKdiG90rfGuTdhnA/XsAREJfZEkUW5LEJRjMSa\nUFYb/hg4HYpiolwWVxQBGkeRF9DpGJmr1fM8zDVlZEPAJpm+9UwTtVDnLeA5149/Ubk81L4NI6/T\ni4NYUrdpjiz0EnqNtgF70UQAjqMz06koCOlL2y6EEIKP3faz2FzcGHrtbPMN/K9X/jkUzhdFDrad\nXANGL7j1GyBs2Rra3vpJuCljISsRe4QApZIAnmfzbtqECKJ7PM+iVBrcTHicRR7gn6+27UAUs9PA\nAPjp26x03/oNGcnUHLqm2TOi5+ny/P9fUa8N5Z5gmnmdXhxEKvTSXp9nOy7q7XAE6C+/eRKf+ewh\nfPGR4zhy+hpc+L9Hmn+XfmEYCoSk3yKGo1n82u2fQJEthF574uIzePzCU/NfE0IgSWwinnnL0Suq\n13rqJ/DcGze9DCP2aJpCpSLBdT00Gmomzs9xYeHfvFKR+m5QGHeRF6AoBiSJzVS0xbIcEEJSPRav\nX4L7VRK/i2dZvSN6hjTfeWu7Nqa1maH2n9fpRU/kZ4XjpHcxu9HJoxo2njx2GX/01ZfwG//tx/h/\nv3wYz568Cn3MIyZpj+YtpCpU8OnbPw6KhE/L/3X66zhdPwvAtxDRdRuOM/rFoPiWewC6W6g5zQbU\nE8eX/dlBxJ4/3UKEqpojTVevdjodA5pmolIRl42gZEXkAYDj+JOOsjQrFrhuoJwFTDOZOj3PNCG6\nJiR7Ub27R8EzpPkvLynhho1+SLOGGFciFXqEkFSnbVmGxs1rwxGjxeimg58cu4Q//edj+M3PHsIf\nffUonjx2CeqYCKaF8DwzNkIPALZVtuDndnw4tN31XHzx2JfRMBsQBDY19iF0sQj59jtC22/UlLGQ\nfsSeIDAoFgU0m1pm6kbHGV230WxqKBaFJeuisiTyAhTFhCCwiZpKx41hWJlpNLGsZNK3wQSgmtUj\nqqevXOiZppOpyHEaiDx1m3ZR8ZmP7sPeLTVQfZ5Ilu3iyOlpfPGRE/jNzx7Cf/vHF/DjFy+ilRKh\ncSNYlobjjF8K+q0b78MDG+4Jbe9YCr7w0t+g2emkKrTfcyTa84fh6uEO717cSOxJEgdJ4tFoqKnx\nQMzxvdgaDRWyzIeiXFkUeUCwvpuZiuoF62MWPPUsy4nN+3EhnuXf+yZ6pG9d/XogZdiGDF23UrW+\nZwH6937v934vqp15HlITaVkKgWNw3951ePjuTdi0pgBCCGaaOpw+xJDnAVfrGl44M41vP/MmTr1Z\nh246qBZ5iCl8KpQkbq6QevwEwq7aDrxSfxV1o9uAuGm0cLl9Dfun9qbmqY+dmkLjB9+HZy14yHEc\nsGvXQ9i8ua99BGbWpZIA23bhuh4KBR4cx6DZ1MZOrN+IYPbuuON5frejLPNgGGoudZZNkRdg2w6K\nRRGGYWWm05sQX5ynORvVLzwf/8P9zNe/BrguZrkSXpc2dL1GOB109er812+7KVzD3A+iyKVmfc8C\nkQm9oBEj7RG9AIamsHGqgLfctgYPv2UTtqwvgaYozLZ1WH0Ko+mmjpfOzuA7z57DsddmoOo2ygUO\ncko6uYpFEZ2OMZYLMkUo7J28DYevvAh9kQv7ReUyOJrDrZVbRvPmFkFoGtb0NIw3Xu/a7hk6SveH\no31LsVDssazvEdhsamP5+d2IrAg9IBB7FkSRA8+zkCQ2syIvgJBsjYf0H6qEVIyHXCkURc0Z/cfz\n2Xiu6ws9ADrF4Xix23WAUA6YqQsAANXW8PDND/WsuV4OQWBBCHKxFxGRRvQsyxlLuweaprB+QsZd\nO6fwc+/eiZvXFsDQvugzrf5EX71t4OXXZ/G9587jhdPTaGsWShKL4ojSHBxHg2EoaNp4CO9e8DSP\nbZUteOby83C97s/hVP0Mbi5txhppcomfTha6UEDr0I+7tlkz0yg9+FbQorTET4UJ0kgc5491S0PD\nSdRkSegFuK4HWfYj6ON8zfVD1qJ6nudHwlzXG/vrzfO8uWa1eM5BzzAw++gjAAAC4HBlV/frLg12\n/Wv+/8PDXWv2ocgtXxe/GJal5x0jclZOZEKPEAJNs8YyTRhACFAsCChwNPZvn8TDb9mEXZurEDgG\n9bYOvc8n2KZi4uQbdXz/+Qt49uRVNDsmZIFBSU4uHC1J/NimbRdS4cuoCVW8eO1Y6LVjMyewf2ov\nZFbu8ZPJwlSraD/9FFxF6d5eLEHcvqPv/fhpQBrttt6Vxs0SWRN6C9O1PM+CpqlMR/QAgKIIWDa+\nyFHSBNODxjFQsRD/gYOHrsdzfTmaivq3vwkA4F0LP6nuhbcwYufSYNa8AUL7953tla3YUFg38HH8\naSzpyIxlgUhTt+122Ix4nOA4GjRNzXc2UoRgsiLijlsn8O63bMLerROQBRaNjgG1z+7HtmrhlXMN\n/PCFi3jq5SuYbRsQeBrVAh+r6CsW+bFN2y7mpuJ6gHVxeua1ru22a+PU7Bncve5OsNRoayQJIXBV\nFdqpk13b7WYD5Yfe0ddnLUncXE2eCscJ1+xlhSwJvcU1eYZhQZZ5UFT6vStXguO4KBaF2ARF0gQ1\nsVmIxnJcfNFJp9NG43vfAeBH9I4Xt0CjuydLUdWroHhfC6yT12BHddvgx3HcvE4vQiIUeulvxFgO\nQWDhOF7PBZoQglpJwJ4tNbzr4E04sH0KRYlFW7XQ6XNxUHQbZy408fiLl/D40UuYaergWAq1ohDp\nCc0wNDiOzsSiBfgCaPfkDpy6dhbT+mzXax1LwSXlCu5cc8fIFwWmVkPjse92bXPabRT2HQBTqdzw\nZwWBhSCwXTV5vRo0skBWhN5SjReGYaNQ8EeGjXtEfSk8zzdjz0r00vP8a9C2nbG/zmiaAkXF87k4\nzQYaP3hs/us3xHWY4brXNqpYByX7M8oLrIy71u4b6li50IuOSITeuDViLIUkcTAMe9kLnRCCSoHH\nrptreOddN+HgbWtQljmouo2m0t8NTDcdnL3UwhMvXcYPj1zA1boGmvbF5Ep9qvzxYG4mFmAAKBYF\nKIqJ3bXbcOTqUaiLjDqvqtcAADuqt47i7c1DyzLUE8dhz3Y7whOW7em1F8CyNIpFHo2GFrIVyKLY\ny4LQW6671jTtTH1mvXAcNzNRMMBPFzJMNoSrILCxeG5aszNo/viH819f4Ws4L67t+h5KUECX/TXQ\nhYuHbuq/IW0heUNGdEQW0RvXRoyF+IJi8KkDJYnDzs1VPHRgI+7bsxbVEg/ddHqOW+uFYbl4/XIb\nP3n5Cr7//HlcmlZAEYKJMg+aGrxjyV98zUzcYHieAU37TSUczWJndRuevnwYjte9GJ9pnMVGeR3W\nyWuX2FMyeK4D5cUXurZZ09dQfdfDID0+S5omKJdFtFo6HKd39CdrYm/chV4/Fiqeh/nPzDTtTJRQ\nLMbzPHAcA8/DkufuOBF3I0NSeJ4HWY6ni9i6dg2tJx6f/7rNSDhdWGQhxZhgJnwPPdXS8O7ND4Gm\nBvf3C0qpcqG3ciIRelloxGAYCiy78nSnLLLYflMFb9u3AW+9Yz0mywJMy8Vsn/WLlu3i3NUOnj5x\nBd997jzOX+3AAzBR4sH0MV+TpgkEgYPSZ2Qx7RSLfsQguJEUuQLWyWvw/NUXQ997bOYkbp/chRJX\nTPptzsNOTaHx3e8AC2bdeqYJYctWcOu6i5IJAcplGapqLvuQlCWxN85CbxCfPH9mJ1AoCDCM8RYP\nS+F5gCjGEz1KGtf1hV4WhLkgMLGkoc3Ll9B+6sn5r21C42h5e+j7mLVvzv//gTV3oMQPviYTkjdk\nREVkqdt2n9GrtMLz/pNplN5QIs9g64YyHrxjPd5+YCPW1ETYjofZlt7XQuI4Hi5MK3ju5FV859lz\neP1SC67rYaLEg13CAZ3nWXielwmPK5qmIIpcaLbrOnkNPM/DmcbZru2O5+DEzCu4e92d4OjRLBAU\ny8E4fw7mxYtd2z3XQfHg3V3bSiURtu30/eSdFbE3rkJvGDNk23ZB0xQEgcuEGFqM47iQZR6m6WRi\nmkEQQRrnoAWAeWuSqH8P8+IFtJ95ev5rzrPxVHVv9zc5DJj1ZxEE4m6t3IKNhfUDH8txPIgim0f0\nIiCy1O04LtwL8Z/knNhSEDxH45Z1Jdy/dx3eeddN2DAhw/N802W3jwXSdT1cnlXx/CvX8O1nzuHV\nCy1YtotqiQe/YHyPJPEwTTsTqZTAl6zXTXVbZQsudC7hylx9XoBqazjXvoCDa/cPZdQZBYTl0H7m\nqa5t1tWrqLzjnaBY31dRFFmwLD1wp3oWxN44Cr2VTLywLGeusDybzRm+NUk2rFb8KBIz9qKcEAKO\ni/730N98A53Dz81/zXgOjkzsgdU1TZWAnrgEwvpR7LXSFG6rhaN+/SBJeUNGFKxY6AWNGONekCvL\nfl1bEg+lHENj89oi7tm9Fu86eBM2ry0AEY1im5qQQxGwcaVYFJa0iCGEYM/EbTg6fRwdq9u7blqf\nheGY2D2xM6F32g07OYnmj34Az1wgZlwX7NQaCDffAoahUCwKQ0+9GHexN25CL4qxZkFzhmWNf1fn\nYnyrlWw0ZWRnSoYHSYr+M9Ffew3KC0e6tr229jY03O4MCl2eASX667LEiji49sBQx8sbMqIhkoie\n44x3xy0hfiRsFHVtLNM9iu2WuVFsMy0ddp9RuYWj2I68chVtxUSlwEFKySi2YeB5BhRF3fC8YikG\nu2o78Mzl52G73U+ur7XexKRQw03FDUv8dHwQioLdqEM/251adlUV5QffinJZgqIYK4rujLPYGyeh\nF9XsWs+7LiLGea3shef5I9GAbDRlxFXfliSe59/TovY51M+chvLS0a5tVzbchotW9wQoIrdAF/05\n5a7r4u2bHhzqeDzPgqJILvRWSCQus44z3iF7hqFh26P/HTiWxp07pnDnjinYjosTb9Rx+NRVPP/K\ndN9efafeqOPUG3X84w/O4Oa1Rdy1cwp37ZzC+onRT48YBEFg+7ohrpEm8ak9H8OfvPgleOhemP/u\n1FexTl6Dm0ub4nqbS1K69wE0vtftqaedfgWs0oBdFCJJqViWg1ZLj0SI5ISJSuQFGIYNjmNQKPCZ\niboH6LoVm6VH0pimA45jYNvj8TCyFI7jRD731rXCa/IawQPU7m2edv1+M6PXYTgmeHrwcaD+7zCa\nEpwsseKIXhY6boNGjDTdKCmKYG1Vwv7tU3j47k24bXMVAkej3jYGGsV2Ym4U23Mnr6KlmJASHsU2\nDIQQyDLfd/3alDQJlmJxsn66a7vruXh55hQOrj0AgeHjeKtLQpfL6Bx+Fk673bWdr5SATVsiO844\nRvbGIaIXtcgLsCwbhcL4fFb94nvqZSdaKYosdH28RStN05HXhaonjoem/2DbLrzQ7l5fCeWAmbow\n//W+qT2o8OWBj0dRVN55GwGRpG4Vpb8u0rQiin7Rf1rTDhQhmKqIuOPWyflRbJLAoNkxBxrFdioY\nxXb8CuptAyLPoFJIn+gT5lLOg/gybi3fjKvaNC4ql7u2646B11pv4u51BxJtziCEwNV1qCeOd7+f\nq9dQfse7Iv2bj5vYS7vQi0vkBTiOP24rK6IoIK5Oz6QJUuxpPkf7wZ9HHO38XuXYS9DPdD9Qy3v2\n4omZbjHmuTTY9ddHVm4t3zJUGY3neRDFwSOBOd1E0owx7p5tssxB06yxsAcIRrHt3TIxP4qtILLo\naIOPYvvxixdx6KVLmG7q4Fka1WK883f7xY8MmAPNavSbM3bi+MxJtMzuKFrdaKBtdnD75O6o3+oN\nYSYm5+dCBjiKAnnv7WBrtUiPNU5iL81CL26RB/jRL45jMjM+7DpeJiJhAOZSt+m+jvrB/zyie6BQ\nXnwB+mvdtccT+/fhB9cYdP2pXBrMmjdAaF/0r5Emsau2Y+Dj+bWG6QtGjBsRCD2MdYcSIf6NZ5iJ\nGKMmGMW2+5YaPvjgVtx/+zpIPA1Ft9HqU3xrhoOzF1s49NIl/PCFi7haV8HQFGolfsWj2IaBoggk\nKeyd1w80RWP3xE48e/kITLd7cTvXvoASV0i0Xo8WRWinX4E13W0B43TaKN19b+THGxexl1ahl4TI\nC7AsB8W5Ws0xeL7sC8fxIMt8Jn4nf14sSUXt9rB4nh85jvJa6xw5DOONN7q2Fe+6Cy+qEtpq95pL\nVa+C4v3yG4ERcPe6O4c6Zj7zduWsSOhlYcYtw1BgGHqsfwfAf+oRWBrbNpbx9gMbce+etagVBx3F\n5syNYrscySi2YRAEFq47vOGzyIjYUr4Zz1x+PtSccXz2Feyo3oqaUI3irfZN58jzXV9bly+DnZwC\nv2nzEj8xPOMg9tIo9JIUeQDmhBDJzFSJgOsCabzTtxRFwHH02H82fmQyug7i9jPPwLxwvmtb8eDd\nOOsUcGmmuyODKtZByX52xXYdvGPzW4c6pm+anFusrIQV371dd7wvaJqmUlubNwgsS3U9fa6tSnjf\nvTfj//mVg/iv/+5+/OK7tmPHpgr6vVQU3cYTxy7js189it/87CH82deP4bmTV2HEPHGD41ZeU7Kt\nsgUf3f7h0HbXc/HFl76Mut5Y0f4HoXL33aD4cCPI1X/8e7j6YGbJ/bKwG5dlB58xudpIWuQFaJoJ\nhqEz1VUYdKyOO5blZOLacRx/MktUeFb4AY1wHNZNSOHvXdB5Wzca0Ozh1rss3J9HzYpTt6Zpj3Wd\nSRBBGuffgab9mYBLRUlEnsGtc6PYHjqwEWurImy3/1Fs9twotmdPXsV3nz2H1y+34TgeJkoC2Ahv\nUn4aXYjEemJz8SY0zRbOtS90bTddE6cbZ3H3ujuHGrQ9KOVaAXqjCfXMma7tnmnCmp1B4cBdsTyp\npjmyl6aI3qhEXkBQbD7ukaOA69236fh8h8Wf4Tv+c28ZhgJNk8jO7eYTT8C6eqVrW+n+B6BIVRw5\nPb3o4BaYiUvzX94xuRtVoTLwMYM59HlEb3hW9OiVhQ4rmr6xKe84MIhXUlnm8NCBjXjowEZ0NAsv\nnpnG4VPXcOy12b4Mmk3b/f/Ze+/wOK77avhMn9mKXgn2TopFYC8qtCx3S1ZiJY5sWbajxLGKS16/\nrxXbsRV//pJ8KbbVYr/uku24yJGreqMsdlEkxQp2guhtge077X5/DBbEYhfAlllg7xDnefg8xJ2Z\nO/fuzt575lfOD2+e7sWbp3vBsQyWz61A85JqrF1UBa+rsOwoUeRtW5AYhsHti29FZ6Qb54dSY0ou\nh9rx01NP4q7lHyrq4iGK1uJU9r4PIPjW0TSXR2jvHriWLYd/a34ujcngJJ291tZL+PrXv4qhoSH4\n/X586UsPoqlA1/d0kzwAiMd1KIoIUeQcUZ8asJ67YpTfmmrouqVDZxj0zkPXTciyfRZWoqa/hLOi\nhDpfBotePFW7tTPSjXn+OTnfU9fNGZJXIAq26I1XoooWWOrhdGTcjgdZFmAYJOfAYVFILcXWVOMB\nwzDoG4rlXIrt+f2X0XJ5EAnNQJlHgiLlvri4XJbMjV0vDyzDYkXlMhzsOYK4kbpAdUS6IPES5vvn\n2nKvTPD5FEQiKkwwUJYsRXDXn4Ax4uLRE8fhWXsteK+vKGMoRctePha9L3/5C7jlltvwhS98CaIo\n4kc/+h7e9a735j2GUiB5SZimlcRA+wtnEsk6q3bKekwHWJZ1RGa0ooi2PVtDr74CfTCQ0ua//kZ4\naqvx9N7W1JMNHnz9eSQ5WpVSkVdZSkIIXAUaEa52FOR3SyZj0AyOY6iPAeB5tuDsMEXisXF5LT51\n60o8dP923HvbNdi8ojZrwmYSgpOXAvjJ86fxvx7dhf/3iYN4bn8r+gZjWY/BsmrYuzn4JS/+5po7\nwbPp8/jN2adxor/F1vslIYocCLmiBSg1NKDmjjvTziOqis5vPwYzUbysb9pj9gKBAZw+fQo33fQO\nAMBNN70Dp0+fQiAQmOTKzCglkgdgxD0oivR9N5mgqroj5mJZ9OiOn7Ri9GzU7FTTX9BY0Sq36XOP\nIWOEBUlcsfR1hruRD0yTUG2IKQUUSPTsGsb0wCmJGFYJN/vmkSzFdvf7VuBb92/DZz64GttX1cOj\nZKdQTgCcbR/CL14+i//97T148EcH8Mc9F9E1EB33Go5jYZooyovDHF8T/mrJn2UYJ8EPjv8MPdG+\nDFcVBkUR02SH/Fu3wbdla9q5akc7en7+U9vHMBo0k73u7m5UVdWA46xxcxyHqqpq9PTkvnGUGslL\nIhZTHSMMa23MsDUJYDqg6yZ4nq7fSiYYBrHtuyAZiB4jWs9tXcXE7tvOMWL2Od2Xcq4x3SjQeU/3\np+8EoseyDAgp3hsPz7FYtaASqxZU4k7TxOnLQzjY0oODp3sxFM7O/XapK4RLXSH8eud5NFa5h+vv\n1mBWtXsk9kIUOWha8Vw9G+ub0RbuwMuX/5TSHtNj+M7RH+PzzfdA5mVb7mUFQLMZY5Rq/uojiJ8/\nD7WrM6U9+KfX4Fq6DL6Nm20ZQyY4KWYvH5QqyQOsOrhut+SINQm4YtWLxeidS3JdZVmGas+VYRi2\nPVeZLHqMYBG9+koXTl9OVTQwY25ww2pWQ2oIUS0Kl5BOCCcHAbLWjJjBWORN853htmVzqr5QirDb\nmjcROJbFsjnl+PDNS/Af92zFP3y4GTevb0KlL3uC1N4Xwe92XcRXfrAfD/zfvfjVq2dxoTMIni9+\nMPqtC96NpeWL0tq7It14/MQvYBJ7PkfLmpc5JoaVZdT/7afACOnW0e7Hfwy1O/+33mxAo2WvtrYW\nfX09MIbjGw3DQF9fL2pqarPuo5RJXhKxmOaYWCRVNSAI9MusOMGqZ6tFL4O8CpulRQ8AOiIz7tvp\nQEHJGIZhUp1ZJcs8DMOkOnNYkngQMvXyMCOl2OZX4u2jSrGFojmWYmuzSrG98mYbuvujRS3FxjIs\nVlQtxaGeo4jpqbGD3dFeMAAWly8o7B4sA49HRig0fmwi7/eD8/oQeetw6gFDR+zMafi2bgXDFW9z\nmeoEDZZlwHGWlVMUeUiSlV2drLwy2fqtKAr27t0NQRCwcOEivPDCs+jv78Ntt30wq/vTQPIAi8B6\nPDISCY16V5VVL1aiumoSYFnnWdY+eZLpAMex4HnWlhfp/t8+BYzRzq18/61gOA7RuIa9J1KJHMMa\n4KuvSFzN9TXlVZ1IkqySgTPZt/mhIKKnaSbVmVWyLELTdKqterIsQNOMaXX3jC7FtuPaRqxfWgO/\nW8ypFFs0rqeWYhuMgedZVHjtLcUmciIWly/Avq43YZDUhe/M4Hk0eupR567Ju39ZFmGa5qSLqjRn\nDrSuTqgdqTp/RnAIRjQKz6rVeY8hGxSL7DGMJZOjKAJcLglutwRFESAIPASBgywLYBgGLGtpP7pc\nIlwuCZLEDwe+MxlF2FesuAbf/vYj+NnPnsC5c2fwwANfht8/uSYXLSQvCY5jwLKFJ1eVApJrE82W\nGJZlIAj2J4lNJaw5FC53Q0zTInpjUHnrbWAYBgwDvHgwVUKKGByEhgtXzlUqsKJyac73FgRrfZgh\nevmhINu6adK9GFkZt/QuQkDpxRkyDIPGag8aqz14/7Z56A5E8WZLL95o6cWFzmBWfQQjKl491I5X\nD7XDLfNYs6gKzUtqsGJuhS0CzY2eety57C/wvWNPpB17/MTPUdN8Lxo8dXn1Lcs8QlmUnGMYBjV3\nfgzxixeh9fakHBt65SW4li6Ft3l9XmPIFnbG7EkSD1kWhkMJDKiqjnhcg2GYadap6movhoauWDwZ\nxnqOBYGDogjwemXouoF4XBvZnObMmYvvfvfHOY2JNpIHWLF6TrCEAVbWqiBwJbU+5Qq7K0tMByzX\nbeEEabxEjCT5qvIr4DkG+ug91RBBNAGMYHl5OsL5haZYXIP+UIDpQt4WPYZhEIupVBMlq+Bz8WQt\npgIej4RIpHTn4FEELJpVhuvXNGD7qnpU+mSouomBYHblcDTdxOWeMPad6MaLb1xGW28EIEClTwZf\nwAJc764FISbODl5IaTeIgZMDp7Gh7lqIXHZZxknwPAtZFrL+PlhBgLJoEYK7X09zh0SPH4N3/UZw\nbvc4V9uDQix7DGNpH/p8MljWEh4PheJIJPQJ+8qko5ccRyKhj5AcWRbg8UjDwuy5ETUaSR5gfQ5J\nPUnaY6CdYA0jhAzvEzQTb2JLNRojFkXguWdS2lhFQcU73w3A4gT7T/YgFE0N3WHLe8BK1nqvGire\nPueGnO/Nsgxk2Rnxq9OBgly30Si9YskMw0BRRKp/wEn313iB/6UGReKxoHFMKTbDRH8wu+dINwja\ne8eUYjPzL8W2sGw+2sId6In2prRH9RiO95/CLG9DTiV7FEWErhs5EQu+rAysoiB67GhKO9F1xM+f\ngw/NvkkAACAASURBVG/LVjBscS0K+ZC9JMEzTYJQKD5ivcsG2Ww6yfjfREKHKArwDsdtZvPZ0kry\nkmAYJqdqN6UKq4yYQL0QtCwLSCToLoVmh2iyEQ5h8MXnU9o4twflN79j5O+TFwPo7E+V0WK9AbDu\nEABANTVc17gZEpc7aXOK/NB0IG+iRwhBJMv4q1JEsn4ezYtQsiA6jQkxsshhbr0PW1bW44NvX4Iy\nxao53B+MIxtDhmESdPZH8ebpXjx/oBXnOoLQdBOVfhliltmkDMNgReVSvNV7HGEtknIspIWxp/MA\nTvS3QOYk1LqqwTITEy6fT0YkkvvLjzxvPhJtl6GNkVzRBwMgiQTcK6/JrcM8kC3Z43kWfr8ChsGI\n9S7X+eZiXUiKTquqDlm2Yvp0fXxrF+0kDwBM0xx239K7NgFOsYZZMaeGURpVZfKFLPMFW4mNoUEM\nvvJSShvn96P8bTeN/H25J4wzbUMp57ByFJy/f+TvFZVLUKlU5HRvQqyXy5kYvfxQoEWP3h8wz3Pg\nOIZKkpSEKPJgGFBdI5PnObgVETV+GZtW1OGmdU1WKTYAfcF4VqXYTAJ0D5die25UKbZyrwRZnDiu\nQ2B5LK1YhP1db0I305+FwcQQDvUexd7OgzBhot5dC4FNd+kKAgee5/LanBmGgXvFSoQO7IMZS83W\njZ8/B2n2HIh19Tn3mysmI3sulwi3W0IkoiIaVfO2cOTjRiLEil8zTQKvV85o3XMCyQOsuUqSQD25\nAKw1aiJiTgOSMkQ0qzOIIgfDIAXFS2oD/Rh67dWUNqGiHGU37Bj5OxBK4NCZMQL0vAa+8spL7Gzf\nLMz15V6neobo5Y8CLHqgOmBYEKyC8zSTJEtaBVRvauIwEUt+DwLPYla1B+uX1eLt65swt84HjmPQ\nH4ynBvmOAwKgbyiOt8714/n9l3H84gBicR1+j1WmJxM8ghuNngYc6D40br9xI45TA2ews203QmoY\nNa6qFOFPRbE25ny/C1YUIc9fgOCeXWl6I5Hjx+DduAmcko/QaG7IRPYYxqrby3EshoZiBQfXFxIv\nZBgm4nEdLpcISRJG4r+cQvKSYFkGPE9/ndVkJjXNJInnOeolVgTBKslYyPeg9fZa9bpH91tdA//2\n60b+1g2C1450pF5IAL7uSh3cCrkc11Qty/n+ijJD9PJFQa5bml0Lokg/SZJlAbo+vdIqhcKaQ2Yt\nQ55j0VDlRvOSGty8fjYWNvoh8CwGggmoWS5YA8EEjl0YwAtvtOHw2T5EYhp8bjGtnFuNqwpzvLNw\nsv80NHP859ogBi4GW7GzbTfaw50ok/wol/zweGTEYmpBlguhogKMKCJ64nhKO9E0xC9cgG9z8eP1\ngFSyZxgmfD4FhmEiFMougWYy2BEYnkjoEAQObrcE0zQdRfKAK64qmkNLAIBl7dNwmy5YpJvupBKe\n57KOcR0PalcnQnt3p7QJtbXwb9k28rckcHh676XUCw0efP15JDmawPLY3JC7ooDLJcwQvTyRF9FL\nloahmehJEg/DIFS/abpc4og7i1ZkOweOZVBb4cLaRdW4eUMTljaVQRI5BEIJJLLcRIbCKk5eCuCl\ng214o6UHwYgKjyLAO7yA1LiqcWPTNtS6qjEQG0BQDU3YX1e0B3s6D+D4QAvckgI/Wz5pHN9kkOcv\nQOLiBWhj6rjqAwOAacK1bHlB/WcL0yQjJE9VdYTD9mV220H0AMsKzPMs3G4JoZBzSB5gff5ut0S9\neDLDMJCkwjXcphMMw0CW6U4qSQqWF0K41Y52hPbvS2mTGhpTyjYKPItXD7UjkfJbZMBVdo5IrCSM\nBN4++4acSZuiCMN6fTNkL1fkbdEzDEL1g2+JeZpUW8NcLhGxWP6xUqWA5KafyxxYhkF1mYLVC6pw\n8/omrJhXAZfEYzCsIpblhhKKami5PIhXDrVj34luBMIJuCQeFV4Zs7wN2NqwEYvLFyCix9Ab7Zuw\nr6FEEPvbD2NP5xswyXAcX47SLEkk4/WC+/aAxFMtaLGzZyAvWAixJn9B5+zHgRGSJ0m8raLKdhE9\ny6JnvShYmZH0rkeZkBSIpfllFADc7vFLAtKCicoa0gCWtZIPCyHc8dZLCB98I6VNapoN77oNKW1H\nzvahf4x8FufvB6tYCW+aqWNr48aca4tLkgCWnSF6+aAAokd3+TNFEaGqdFvDkoHxtMIOiRuGYVA5\nqhTbmkVV8CgCglENkTxKse062on+oQQkkcPC6nqsr1uLdbVrAACd4S4YE9TDjRsJnAqcwc723Qiq\nIdQo1XDnUcCblSTIc+chuHtX2rHo8aPwbdoCVs5tkcwVSXdtOJywvYKGHURvdExePK4NaxiKVK9J\nY8GyVkUAml2GlgtaQjxO7zpFiH0vJ9MFS4qLRzxeANG7cAGRw6lxzPLcefCsbU5pO98xhItdqd4Q\nxhUE5x0c+Xt55RJUK5U53X+mDFr+yJvo6Trd5c8sXSF6rWG0aehlgt0SN6NLsb1tVCm2cExHMMtF\nOpYwRkqx7RwuxeZXPNg+dzVuaNoCl6CgO9qLuDG+K9MgBi4FL2Nn2260hTrgl/wol8pyWqCEyiqA\nZRE7dTKlnagq4q2X4Nu0pWgLnsslguPYkZg8u8ulFbppZkq8UFUDsiyA4+hPYEgiGadH828cwLBF\nmO7MW9q19Cz3c2Exn/GzZxA5+lZKmzx/ITyr16S0dQ9EcezCQOr9xTi48isVgJq8jZjnn5PT/UVx\npgxavsi7pgjN9QsBiyjRvPDQPn6guOXbMpViO9jSi4MtPbjQOXHsXRJDY0qxrV1UjeYl1+DL67fh\n6MAxvHz5NbSG2se9noDgSN9xHOk7jtneRtzYtB3NNavBsdnp/FW8+72ItbQgejI1OSN26iQG/vh7\nVL7vlqz6yQXJ6h6BQKroqZ3l0grBRNm1wWAc5eUuqKpOvbsTsLwmyZgkmtfbZBkxmr8T0yRUr7mm\naRZcM9zU0kkiK6aLGNdVpnsxSDy1wk9nHqXQaP4NTDfytuhpWm4VAEoNbjfdVTF4ngXHFRZzMd2Q\nJB4AmZLn6EoptkZsu6YeVX4ZqmZgIJhdkoGmm2gdLsX20sF2kJgXWxo24PqFa6AzKrrCPRNeP6SG\ncKT3GPZ0vgHDNFDnrp20xBrDMHCtWIHg3t0gidRxxk63QFm8BEJVdVbjzxZ+v4JIRM1IwO2y7OVr\n0ctGQsU0LZFemuOHR0MUOZimSXWpSUuHLvcydqUEK3mP7u+h0D0vevIEYi2nUtpcy5anJYgxLIMX\n32hLaSMGB77+wkjmLc/y2NKQGts3GQSBG5FFm0FuyJvo0fzWnIwNo1kH0BJ8Zql2n09X5rNLTpZi\na8ANaxpQU+6ySrENJZDNMp4sxfbGqV7sfyuIaizAptoNqPLL6I53wyDjb2hxI4GWwFnsbNuFoUQI\nNa5KuIXx69mysgypaTZCe/ekHYscPwbO7YFQXQNWyC/5YzQsQdKJhdDtIHv5EL1sdfIMw4Qoco5x\n4fI8C5aley4cR7/EiijyI5notCIZrpQvIseOIn72TEqba+U1cC1eknofkcfTe1thjrbAEQ587SUw\nnPX5xfU4bp5zY27hLDNEL2/kRfQYhhkpXE4jrALJdMe3WULDU2MNKxYURYSm6dP6liyLPOYNl2Lb\n0TwL9ZXunEuxtfdGcOzcEFrPyZjPrUWTpwlxdhAJEh3/OmLiUugyXmvbg9ZQG3yiDxVyecZFTKyu\nATENxE6fTmkniQQihw9h8KUXoLa3gxVFCFVVeWntWVm2MkKh+KRxSIWSvVyJXq5iyLpuwOuVHWHV\nYxgGoki3PAnL0j8HJ1glFaWwOMPIW4cRP38+pc2zag2UBQtT2hiGwf5T3QhFU39/bHkPWMmK+9WJ\ngc0N66HwStb35zgWklT4C+3ViLxj9EyTTpIHgPqYFyAZo0fvdwBYcyglV4hHEbBtVT22rapHLKHj\nyLk+HGzpxdHz/VC1yT9r3SA4fmEQuACwzDo01PHQfK0YUk6BETMTGwKCo30ncbTvJGZ5GrCjaTua\na1eDZ1N/mpXvuxWx06cRO92S3oeqIrR/L0L794Lz+eDduBm+zVsgNc3O+u1XUUQkEkbW38dUxezl\nU/HCMAhU1Sg4o7sUkIxvoxnJ+DaaYcW40f09EEKG14P81lyipv+WGDEz8aqrcKG9N7V+OIl5gFGZ\nt52RblTI5Vnfn/b9bjpxVSZjWERvukdRGJxCVkt1DorEY9PyOmxaXoeEZuDY+QEcPN2DI2f7EEtM\nTjhMArR16kBnA4AGeMsTiHsvgC3vGnmrHYu2cAceP/kL/Pbc07hu1lZsa9wIz7Bbl+E41N39SVz8\n4v/JuOAmYQSDGHzhOQy+8BzEhkb4Nm+Bd+NmCBUTFxFXFBGBQGTCc8ai2GSvkLJmkUgC5eVuhxA9\n2kkSod7dRghA+RSG55D/JMwM6w4rShnPrc8iIaMj3IUVlUuzvn+p7hU0oACLHr0fOsvS/9CwLED7\nCw7D0JHFJgkcmpdUo3lJNTTdxMlLA3ijpReHz/QhnKX7PxSQgMBSoHUpOHcQTHknuIpusHK6e3dI\nDeH355/Fsxdfwsb6ZuyYtQ217hoI5eWo/ejH0fW976TVw80EtaMdfb/+Ffr+50m4li6Dd9MWeJub\nwcqp7pJC5C+KRfYKrV1ruZcN6qsyAE7I+KTfokeIU+ZQwPU5WvTGwhybeRvpTjtnItD6/JcCrkqi\nRwvBmAi0W/RotaoKPItVC6qwakEVWI7Bha4wXjvUhjdbejGUpXi1EfEBER/0tiVglBC4ii5w5d1g\nlHCK1UAzNbzevhevt+/Fysql2NF0HRZv2Ai+shKhPbuhh4KItZyCGZnEEkcIoidPIHryBHp++jg8\na5vh27IVrmXLwbBsweWd7CZ7hZK8JOJxbUT/jGYk3bemSW98WNKaROuadcXtSS8KnYOppq8RTAZ5\nFQCor0xPMCOxsUQvN4kV2vfs6UReRM+qdWv3UKYONC84SdA+B5otFEmIAo8V8yowp9qNO96+GOfa\nh4a1+nrTSgCNBxLzQm/3Qm9fBEaKgKvoBlfeBcYdTCF9x/pP4Vj/KTR66q04vjvugMDyILqOyNEj\nCO7ZjchbR0D0iUkNUVWE9u1BaN8ecP4y+DZugvzOm5DwVRXyUdhG9uwieQCQSOjweGQwTFYG0JJF\nkujRnHiVtOqVUkxuLjDNwtyepYBC50DUdCkqVshM9DJZ9EhCATEZMKz1DHRFemASM+v64IQ4g3BP\nB/K26NEM2hd+gP45WOOneAJIJassw2DRrDIsmlWGv9ixEJe6QzjY0os3WnrRPTB+9u1okIQbeud8\n6J3zwYgxsOXd4Cq6wHoGR0hfe7gTT5z8JX577hlc17gF2xs3wbO2GZ61zTDCYYTe2I/gnt2Inzs7\n6f2MoUEEnn8WgeefhTirCb7NW+DbuAl8WfYB0qNRKNmzk+QloesG9WXEnOL6pHl/pn38FgqbA8kg\nmDyeRU+RePjd4hgvBwuScIEZrnmrmhoG4gFU5VgKbQa546okek4A7RY92scPWEQvk8QQwzCYW+fD\n3DofbrtuPtr7IiNVOdp6s0t4IKoCo3sujO65gGCVD+LKu8D6AmAYgqAawh8uPIfnLr2EDXXN2NG0\nDXWeWpTdsANlN+yA2tOD0N7dCO7ZBa23d9L7qW2X0ferX6DvyV/CtXwFfJu2wHNtM1gpc7D1eMiX\n7BWD5AGW3qcoctQTPZ53SsYnnaB9/EDhhoHMyRiZiR5gJWSMDWchcTegXFkDO8Jd1BG9j3zkI9i/\nfz8A4IEHHsBdd90FALh06RK+//3v4/Dhwzhz5gzWrVuHJ554Iuf+z549i6997Ws4fPgwvF4vPvjB\nD+Lee+8Fx12pqPTwww/jkUceAQC84x3vwEMPPTRhn1cp0cs/xbxUQL9Fj36il80cGIbBrGoPZlV7\ncMu2eegeiOLg6dxKsUGTYfTMhtEzG+BUi/RVdIP19UGDjl0d+7CrYx+WVy7BjqbtWFq+CGJNDSrf\nfysq3ncL4ufOIrhnF0IH9sOMTmJdJATR48cQPX4MzE8keK9dB+/mLXAtXZa1Pl+uZK9YJM8ai0m9\n9pYzSAbdc3BC1q2FQly3mZIxxid6dRUunGodTGkzY25woxwGnZFurKpekfeYpgsbN27E5z73OTQ2\nNo60nTlzBjt37sTq1auhZbB+ZoOhoSHcddddWLhwIR577DG0trbiX//1X2GaJj772c+OnPfBD34Q\n27dvx4MPPphVv1cl0aOdJFmgm6w64TvIRx6mtsKFd2+ag3dvmoP+ofgI6TvbNpTdt2mIMPpmweib\nBXAauLJecOXdYP29ONHfghP9LWhw12FH03asq10DgROgLFwEZeEiVP/lHYi8dQTBvVY8H4yJSRVJ\nJBDcswvBPbvAlZXBt3EzfFu2QmqcNekwsyV7xSR5AGAYBvU6dM7I+HQCUaJ7AoW6nzNZ9JhxYvQA\noC5TQkaBmbelgrKyMqxZsyalbceOHbjpppsAAPfffz8CgUDO/f785z9HIpHAI488Ao/Hg61btyIc\nDuORRx7B3XffDY/HAwCoq6tDXV3dyN+Tge4VcAbUwikWvUISSir9Mm5e34QHPtyM/7x3Kz7yjiVY\nPrccbLarsSHA6G+AenYt4od2IHFmDfS+erQHe/GTU7/Cl3f/M56+8AJCahgAwAoCvM3r0HjP/Vjw\nH99C7YfvhGfxouxuNTiIwHPP4NJXvoRLD/4jAs8/C31ocMJrRpM9q7JAKopN8oDkywTdRMk5OnQ0\nz4HutcoOEC03121GiZVYKjHpyJB5+/zzz2LbtnXYtm0dzpyxqgEdOLAX27atQzweR39/PwDghRde\nwJIlS7BkyRIcPnw4p7kUA3YIar/22mvYtm1bCoF7z3veg3g8PuIuzgczFj1K4YQ50A47vwO/R8KN\naxtx49pGhGMaDp2xsndPXByAnk2mosnDDNTBDNRBY0ywvj7oVR34g/oCnrv0CjbUXot3zN2BKsUS\nTuY8HlTedBPm3Ppe9Jw6j+De3Qju3Q29r2/SWyUut6L3cit6f/ULuFasRNn1N8Kz9tqM545n2ZsK\nkpeEYdCtQ+cMaxidn30SzvgOCkOurtvMosmulM+yO9oLwzTAsVdeBNesWTvy/+PH38KiRYtx7NhR\n63pCcPnyZVRWVuLNN98EACiKghUrcnP/EkJgTOLRAACen1qKdP78eWzatCmlraGhAYqi4Pz589ix\nY0de/V6VRA+g35o0A+fCowjYvqoB21c1WKXYzvbh4OleHD3XDzWb+tKEhTlUA3OoBkZvL5ilB7G7\ncz/e6DmMv7/2U5jlbQBwxaoq1tWh6tbbUPn+WxE7ewahvbuteL5YbJL7EESPHUX02FF4N25G/d1/\nm/G0sWQPwJSRPGuY9FvEZjCDQkEI8hZMJqaZUbqJEcaPf630yeA5Froxas0yREAXAcEijbqpoy/W\nj1p3zcgpNTW1qK9vQGdnB44dO4pbb/1zHD361shvuK2tDWvWrMGhQ4cAAKtXr4YwwTgy4amnnsID\nDzww6XktLeklJ4uJYDAIr9eb1u7z+RAMBvPu9yolegDtb5i0b1wzFsnsoEg8Nq2ow6YVyVJs/TjY\n0ovDZ/sQV7MoxRashj5QC76iG6qh4g8XnsMnV30MQLpoNcOycC1eAtfiJaj+0B2IHDmC4J5diBw7\nOmk8X2jfHvi2boN7eeY36ytkz6rKMVUkD5ixxpQCnPAd0L7mWntefkwvuPv19Eaen/AzYVkGdRVK\nmtKAPlADobZt5O8jvcdx8yiiBwCrVq0ZIXqEEJw4cQzLlllrS3t7O1RVxfHjxwEA69evH7nuK1/5\nCl5++WX09PRMSNJuvPFGPPnkk+NPeBqR6TMt9GX1KiZ6M5gBXbBKsdWgeUkNNN3EiYsDONjSi0Nn\nehGJjy8fYob9QIUV9BwcjtebDKwgwrtuPbzr1kMPBRE6sB/B3buQuHhh3Gti586OS/QAi+xFowm4\n3RLKytLdOsWEJNG/1FVXp7/p0waPR57uIRQEJ3wHLtf47tZMGHzrKHqe+HFaOy/Lk34emRKhSNQP\n4ArRGzIDaf1s374Fzz33NNraWnHpUgvC4RA2bFgHlmXR29uLAwcOQB12Ja9bt27kuve+97247777\nsHXr1gnHVVZWltFyNt3w+XwIhdLVGMLhcEHjpX/1yxt0v53R7np2whv+dELgWaxeWIXVC6tgmEvQ\n0jqIgy29ePP02FJsBFx5z8hfNzReWQCzzcLjvT6U77gJ5TtugtrZgeDePQju2Q19oP/KSSw7IclL\nIhbToOvmlLpu/X4F0ahKbWUJjmPh88kIBLIT3i5FeDwSdN0sqNTedKOqyoO+vuxelEoRiiKCZYFI\nlqUaAUDt6kTrP/8bSAaLvmfzFvT2ji8RpRsm2nrSPy+uPDUBY4V/RVo/8+cvHfn/d77zvZE2luWg\n6zp+/GOLeAqCkJL9Otq6NxFK1XU7f/58nD9/PqWts7MT0WgU8+fPz7vfq5ToOUHlfAYzsMCxLJbP\nrcDyuRW44+bFONs2hENnLMK3ZVUNLhPg4lArtjSsx+rqlSPX5eMOEOsbUPWBP0PlLR9A7OwZRA4f\nghGNwLftOigLFmbVh921cSeDEzK8ZzCDQpFruIwRCqH9W9+AGU0XeXetvAbVt39owus7+6MwxiZA\ncQlwZVdeEOd4Z2F55ZK0a2fPnovy8goEAgPYtes1AMA116warvls4rXXrLaVK1dClnO3Epeq6/a6\n667D97//fYTD4ZHM26effhqyLGPDhg1593tVEj0nrPlJi5gT5kIrStEqyTIMFjeVYXFT2UjbSrwt\n47mmScBx+U1gdDxfPphKssdx9GbcAk75nZfYDyVHOOM7yB6mpqHjsYeh9fakHVMWLUbDPfdP+pKY\nyZrHulMtd5vqx7fArV69Bq+++jJM00RNTS2qq2vAMGzKi9tot20uKC8vR3l5fqUex0MsFsPOnTsB\nAN3d3QiHw3j22WcBANdffz0UxYpP3rdvH+688048/vjj2LhxY0off/mXf4knnngC9913H+6++25c\nvnwZjzzyCO66666sNfMy4aokejOYfjghE5J2IVuL/DDTtolNBdmzHjG6iV4+wtylBvprW9P7O88V\nhBB0P/5DxIY17EZDqKlFwz33g80iy7WtNwPRc6USvVXVy8e9ftWqtXj11ZcBWNY8wHqOamquJG5k\n66qdCvT39+PTn/50Slvy75deegmzZllC8/G4pTxQWZle+s3v9+NHP/oR/umf/gmf/OQn4fP58NGP\nfhT33XdfQWO7KoleIWnmpQNrk6Y1e7gUrWG5wglCtoZhguPYjDV7pwLFJnscx8EwpmdudqFQYe5S\ngDMsYnRPINvnaOCPv0doz+60dtblRuP9nwGXpWXpcgaix4wienN9s1Em+ce9/vbbP4TbM7iH77nn\nHtxzzz1ZjaFYIIRA13VwHDeyB8yaNSurmL4jR45gw4YNWLgwc6jLwoUL8fjjj0/Yh2maME0z65cn\n6ulOfkiSJHpBO1FyikWP9jnoupGxasVUYrIKGoVAEFjoOp1JGEk4IcaQ9jk4g6gCk5HV0P596P/N\n/6Qf4Dg0fOpeiHX1Wd+pvTc9to9VrhC91UWocfvFL34R1113HQAr3u2LX/yi7fcAgOeffx4rVqwY\nSQrJBYcOHcLHPvaxgu7/6KOPYsWKFThw4EBW51+VFj0n4ArJoHP1cQJJMk26XbcAoKoGFEVALDa9\n2ZDFsuyJIj/tcysUNFf1SIJ+okf3+IHJDQOxc2fR9YPvZjxW+5G74Fq6LOt7hWMaAqHEmFYTjHLF\nyjc6McwufP3rX7e9z7F48MEHEYlYJLahoSHn63/4wx8WPIbbb78dN9xwAwBLKmYyXJVEj3ZrGED/\nHOivfWkRPZ6n2yiuaTq83tLQNisG2eN5Dpo2SYWPEgfLMtPmWrcLY8W5aQPt47cw/hy03l50PPKt\njNUvyt/1Hvi3bc/pTu2Z3LZKBAxrDaDOXYtaV3VOfZYKCpE5sQu1tbWora3N+vy8dimGYSgnGfRb\nk2ifgxOsYcn4NppBiOW+nSpBYaLrMIeDkTPBTjeuJPHQdYP6DZrjWOrjDGm3SrIs7ckk48/BiEbR\n/vA3YGQQ6vU0r0PVB/4s53tdzpRxO8qat6Yqd7ctw9BvHJgu5L26sywDI5ti6yUI2rMlAfqJXrZi\nvaUMJxA9AIjHNciygERi/OoahYIQgr5f/wqBZ58GWNaqjfuJuzOea5dlT5YFqgV6k3AC0aM969YZ\nrtv0ORDDQOd3HoPa0ZF2vjR3Huo+fjeYPDIXx5Y9A1ITMVblEZ9H+549nch7l6L5QzdN+t8MTJP+\nzGHaCbcTrJIAkEjo4HmuqHOJnjhukTwAME2E9uzCwDNPj3t+oZY9lmXA82xRyetUgX5rGN3jB5yS\n+czAHPW+QAhBz89+gujxY2nn8hUVaLzv02AlKa97ZZRWGU7EKJfKMNs7K+c+nbDWThfypgo0EyUn\nWJNot+gBTpEnIY6w6sViKlyu/Bb1bKB2d6W1Db3+2oTXFEL23G6J+iQMIGnNo5tgOEcHcLpHURjG\nWlUHX3weQztfST9PktF432fB+ycP8s8Ek5CMGbeMyyJ/q6pX5LXu075XTCcKsOjRu7k5hSTR/oZT\nSGWGUoFT3LexmApJ4or2fUiN6W/wWk839KGhCa/Lh+xxHANR5BCLZV/Ts1ThBLetEyx6LMtSP4fR\nrtvw4UPo/eXPM52E+r/9O0hNTXnfp28whsTYcAtWByNaSVFr8pRVoZlzTDfy+uRot4g5I+PTpP7B\nNwz652Dp0NE9B8D6TcRiGtzu4lj1lEWLwVdUpN00tH/vpNfmSvaS1jzaLTCAM3QAWdYpZJXuOSSJ\nXrz1Ejq/++2MJsrqD90Bz6rVBd0nU3we6wqBYQA378IC/7y8+nWCZXi6cFXG6NFOVAHnWCVpuEIK\n8wAAIABJREFUt+jpugGen17BYbsQjargOBaiaH8GLsOy8G3aktYezKDAnwnZkj1J4sFxLKJR+q15\ngCUPQzvRm3E/lwYYBtACAXQ8/E2QxFiNO6Bsx9tQvuOmgu+TqcZtMhFjZdUycGx+6yXl29204qqM\n0QPo16FzguvWCRY9TTMdQ/QAIBSKw+ORivL79mYgeonWS0i0t2d1/WRkj2EYuN0SQqHx5Vtog6UD\nSLclySnWMJpdtwwD6LE42h/6JvRAIO24a+UqVP/FX9lyr4kSMQoRSaadc0wnrlqiRztRon38gDPi\n2wghIMQZCRkAoOsm4nENPp/9IspSQwOkuelum+CeXVn3MRHZ8/lkxOMa9eLCSXAcO/J80YyZOMPp\nBwPgzH9+C4nWS2nHxMZZqP/bvwPD2fPCOp60isgKWFaxOO9+aecc04mr0nULJKU96N2cZ4he6UDT\nDOorZIxGNKqCEMDjsT9ez7c53aoX2rcHJAeLTyay5/FIIASOcdkCVnyeXaXgphMzRG/60fvkLxHI\nUBeV8/nQeP9nwSmKLfdRNQPdgWhaO6uEsbxyCUROyLtv2ve76cRVbNEzHTAHusmeZaigew6ARTyK\nEdc2nQiFYhAEDi6XaGu/3g0bgTGWAz0QQPTUyZz6GU32PB4JgsAhFKK71NlYCAJPPdGzftuE6sQY\n2kne4Guvoj+DZiUjCGi49zMQKittu1dHfyTtu2bEGBheL7i2Le379XSiAIuencOYetBOkoDkHOj+\nIpxg1VNV3XFEjxBgcDAGSeJtJXu81wf3ymvS2kNZJmWMhqYZSCR0yLKASCRBNZnIBFHkoap0Cz5z\nHEu9K51maZXIiePo+ekTGY/VfeJvoNhctzVT6TNGCYFlWKysXFpQ35RvddOKAmrdOoEk0T0HiyTR\nPQddp5/omSaBaZqOct8CVnhDkuzZ6cb1bd6a1hZ68w2YGTIBJ0LSkhcMxuD1Fl4bt5TA8xxM06SW\nYCThBLctxzFUziHR0YHO/3oEMNKtwlW3/Tm869bbfs9MQsmsK4TFZQvgElwF9e0E3jFdKGBnovsD\ndwLRM036SZKuO4MgOdGqByTJXhQsy8LvV2xZaN2rV4MdExNEEgmE3zyY1fUMw8DvV8CyLAYHo1DV\nwsqllSJEkaPemgcAPE+/RY/jWOqyhvVQEB0PfQNmLD2cwbd1O8rf9Z6i3DejRc8Vxuo8RZLH9GRD\nH1cnCojRs3MYUw8nED3DoH8OFtGjf3NWVefF6SVBCBAMxqBpBsrLXZCkwubJCiK86zemtWeTfStJ\nPMrLXcMxerERd22htXFLDZbblu74PMAZOoAsy1ClA2hqKjoeeQhaX2/aMWXJUtR+5KNFs4xd7gml\ntbFKCKtsIHq0c47pBP2mlDzhlMoS9Fv0nJGxqmkGOI6h3pU+EaJRFcFgDC6XCJ9PLmiumbJvoydP\nQMug8QVY7jOfT4bLJSIYjGXMrnUK2Us+R7QnYgDOsejR4rolhKD7Rz9A/NzZtGNibS0a/u5eMHxx\nXkiHIirCsTFWaMbE3JpylEn+otxzBtmhoKxbmjc1JxSjdwLRA5wzj3hchyTlLx9AA3TdRCAQha6b\nKCtzweOR87IqywsXQaiqTm0kBKF9e1KaWJaB1yujrMyVcu/x4ASyJ0kC4nH63bY0EaSJQNM8Bn7/\nW4T2pZcV5D0eNH76c+A8nqLdO5NQMqOEsbamsGxbwHr5mYnPyx8F7a40b87JMmg0PztJ9zPNcwAs\n8kDrpjwaiYQGWXY20UsiGlUxMBCBaZooL3fB71dycukyDANvBqtecM9uEEIgSTz8fgXl5S4YhomB\ngUjWGnm0kz1ZFpBIaNM9jIIhCBz11jyGoUdeJbh3N/p/95v0AxyHJQ/8bwg1tUW9/5mOvrQ2VgnZ\nEp/nBK/PdCLvT48QQv2H74QSXE7IWtU0g8oNeSx03Rz+XdA/l2yQFCju748gHrdIbmWlB36/AkUR\nwPPchC8hmWrfqu1tUEJ9kGUB8biG/v7IiIBzLqCV7AkCB0II9QQJsOZCu/uZFnmY2Jkz6P7RDzIe\nq//YJ+BZWpi0STY40daZ1ubzA7XumoL7TlaJmUF+KMhZz7IcAHrfPC33LZMp+5waJN2eNCxG40HT\nDCiKvcK804V4XIcs8wiHKX6o8kAioSOR0MEwltCvKHKQJGH4JYTAMMhwOS/rfIYBmLJ56F+6BKFT\nLSl9XX7mRVT/xYcKHtNoshcMxqkgHZLEO8JtC1iJGLRXKqHBbav29qDj0YdA9PTnpuI970Plddun\nJJmkvS8KIFWGaWlj4SQPSHKNGeSLAl23dPsMnZKQ4QzLqjNiMBIJDZIkUO9OzxeEWFIz4XACg4NR\n9PeHEQhEEQ7HEY2qiMetf9GoinA4Dtf6TWl9BPftAbHp7Ysmyx7DWPF5TnDbMgwznK1a2iRpMvB8\naRM9IxpBx7e+ASOcnu3qWbcBlbd8YFjwubhzCCWiiIXS7Uab5uVf23Y0aOca042CGALt0h5OSMiw\nXLelvYFlA6e4b02TQFV1yLIzLJR2wDQtV6SmGVBV65+mGdB1E57m9WlZgEYwiOiJ47bdnxayJ8si\nVFWnIh5sMjjBbQsAHFe6cYZE19H5X49C7Up3mcrz56Pu438NhmWHrZLFfaZ2XzgOkNTfFsNrWFE3\nx5b+aeca042Csm5p//CdUVnCKfIkOkSxdDfhXBCLqVCUqyMpo1BwHg/cq1antWejqZcLaCB7iiJQ\n7+pMQhQ5aBr9LmhLHqb0CCshBD0/ewLRkyfSjvGVlWi459NgRetlcyoqexxqvZjWVlbG2OYxc4rH\nZ7pQ4LdA9wfvBFkP0ySOKA2jqgYEwRmCw7puwjDMgoWFnQhCCEySuulkKokWPvQmjAyq/oWglMme\nJPEwDLOk3YS5wAmCz8l1tRQtrIHnn8XQazvT2llZRuP9nwXvv6Jbx3FcUZ8r1dBwqTuY1j6/tszG\nu9C9v003CtqJKOcWjiB6wBWrHs2uEitOjx4pg8kQi6lwuSQkEvRbNewAIQQvXHoVz1x6CYQQbKnf\ngNuX3AIAcF+zCqzHAzN8RYeLaBrCBw/Av+06W8dRqgkaiiIiGs2t1m+pIin5RDtpLVVrXvjQQfQ9\n+cv0AyyL+k/eA6lxVkpzsS16pwZOQ4uk17FdPqvBtnvQzjWmGwWxHGe4b50Rp+cESQ8nlRFTVQMM\nA8fMp1CcHbyA355/BqqhQjM17GzfhZdaXwMAMDw/Tkm03UUZS6lZ9kSRB8OAegtYEk6w5gHJ8m2l\nRVbjFy+i87vfQSa9oZoPfRjuldektE1FfN6RvuMgMW9a++za9LZ8MOO2LRwFM5xSWCgLgROsek6J\n01NV3VHEKBJJwO2eScoAgNZQG4yhCiROrUOipRlGsAKvXn595Hgm922s5RS0/nQRVjtQSmTP7RYR\niTjDmgckiR79lmxBKC2LnjYwgPaHvwmipsdxlt30dpTduCOt3SJ6xZuDYRo40tUCkki36DVWuW25\nx3T/Pp2AgtiBU0STaZ+DrjsjY1VVdUfMIwlVNWCaZCZWD4BLr4Hash5msArmUDXUU83oG1RxYegS\nAECeNw9CbV3adcG9e9La7EIpkD1Z5ocztUuHUBQKQeAcQfQsi15pfC9mPI6Oh78JY2gw7Zh71WpU\n355Zd7LY8jDnhi4iEkrfP6vLZMg2vbTz/IxYcqEomOHQ7jLUdYN6i55hkJFSPTSDEOv7cEr2LZC0\n6kmTn+hwBPtcSA2o5qC1LcKLrVZAOcMw8GUsibarqIv8dJM9l0tynDVP142cK5mUGq7EGU7/RIhp\novO730bicmvaMampCfV/80kw42S3FltM/0jvMZjRdBftrGr7aurSzjFKAQUzHCcIDtNO9ABA05wS\np+cs962um9B146qXW/F70l3YZrAKh3uOoyfaCwDwbdqcdo7W1YX4hQtFHdt0kT1FEaHrRsnFgRUC\nUXSGNa+UdAB7f/ULRI4cTmvn/GVouO8zYGVl3GuLWdmDEIIjvcczEr2mGvuInhP25+nGTDKGA1y3\ngHMEhxMJ3XGuzkgkAZdLpP63UghWzqtMz5wzBJgR30hShlBVDWXxkrRrQ3vt1dTLhKkmeyzLwOUS\nEA47x5oHWDIxTsg053kOmjb9BHzwlZcx+MJzae2MKKLxvs9AqKic8Horc7g487gcbkcgMZgxEcNO\ni54T5MOmGwUzHNo/f0KcYdVzCtEzTasuqpPct4ZBEItp8Hjk6R7KtMGjCFg+pzyt3QjUYm/XQYRU\nS1rFtyU9KSO4f1/GOp52YyrJnscjIxbTHCEllIQoWnptTphTKVj0IseOoue/f5J+gGFQ99d/C3nu\n3AmvL3ad3iO9x0EIYEbTSd0sGy16tHOMUoANRI9xQHUJ+q16Tsm8BYB43KoX6yREoyo4jnGUWzpX\nNC9JL3BuDNRCM3TsbLOsdp7m9WCE1O/eDIcROXZ0SsY4FWRPFHlwHOOYKhhJSJKAeJx+ax4w/Rp6\nifZ2dH7nMSBDjdqqP/sgvNc2T9pHMa15gBWfB00CjNSwDJFnUVM2vjs5F3DcjDXPDtjCDGivaGCR\nJPotSE7Jvk0knBWnl0Q4nIDHI121b6hrF1en6duThBsk5sVrbXuQMFRwigLP2mvTrrW7JNpEKCbZ\nYxjA45Ec57IFLALrBLetIExvtq0+NIT2h/4TZobKML7t16H8He/Kqp9iZg33RHvRGenOGJ/XUOW2\nLUyFdm5RKiiY6BFCIAh0W5KcYNEDnCM4TAiBrhuOi9XTNAOqql+1Lly/W8SipvSySMZALSJ6FHs6\nDwAAvJvSs28jRw7DiESKPsYkikX2PB4ZqqpPu1vQbkhSMtuWfrftdAo+m6qKjkcfgt7fn3ZMWboM\ntXfcmbWFy9IBLI5F70jvcQAoesatIMxIq9gBW9gNx9FtRXKKRc+qF0v/PADLfSvLznLfApZVj+c5\nx5HYbNG8pDqtzQjUAgBebv0TDNOAe8VKcF5fyjlE1xHc/XratcWE3WRPknjwPOtIa54sC4jHteke\nhi2YrsxhYpro/uH3ED9/Lu2YUFeHhr+7Fwyf/brBccWz6CWJXuZEDHuEkgH6uUWpwBaiR3s2ISGW\nFYn+WENLE9AJMQ2JhA6eZ6l/tjIhFIrB45EcObfJ0Lw4neiRmBdmzI3++AAO9x4Dw3HwbtyUdl7v\nL/4bA0//YUrf8O0ieyzLwOOREArFbRxdaYBlGfA86wi3raUkUdzYtvHQ/7unEDqwP62d9XjQeP/n\nwLmzJ1Acx4AQUhQ9w6FEEBeCltB5RouejYkYV+MaWQzYkozhhC/DKVY9TXOO4HAioTvSqqfrJqJR\nFT6fPQHLNKHCJ2N+gy+tPWnVe7H1VRBCMmbfAkDf/zyJzscegZEhfqlYsIPs+XwKolHVUZp5SVjW\nPPpJHmBZ8zRt6ucS3L0LA3/4fVo7w/NovOd+iDXpiUwToZjxeW/1DVvzTAYknk4+7XTdztS5tQe2\nBabR/mU4RZ7ESWXEYjFnum8BjEhrXI1VMzK6bwcsotcaaseZwXOQmmZDXrw44/XhQwfR+vUHkejo\nKOo4R6MQsud2SzBNS2LHiXCS29Yq3za18XnR0y3o+vEPMh6rvevjUBZl/h1MhGLKw4y4beNugKRS\nCJ9bhM+m+t60c4pSgi1Ej2EY6mOOnEL0NM05GauWJpfpmPmMRSgUgyjyjiWz4yGTzAqJ+mHGLQvn\nC607wTAMGu/5NKQ5czP2oXV1ofXr/4TQmweLOdTUe+ZB9mRZgCjyCIWmzgI5lRBFHoZhFlWvbSoh\nivyUWvTU7m50PPoQYKSTsor33QJfhsSkbFAsohfVYmgJnAUwXiKGffF5ksTPkD2bYAvRszJv6SZJ\num4Ox7dN90gKg2EQEEIckUUMWJYvp5YPIwQIBqNwu0Xqfz+5oKZMwewMcTxJ9+2J/hZ0hLvAud2Y\n/Q9fRvk7352xH5KIo/Oxh9H761+BZNAbKwZyIXuCwMHtFhEMRqmv/ToeFEVwjKWS560Mz6mqb2uE\nw2h/6BswM2STezdsQuX7b82rX6vueXHiDI/3n4JJrH6LXRFDFLmZjFubYBsbcEp8mxPm4RSZFcCK\n0+M4lvrKJePBMMgIcXBCrGu2yOy+rRv5/4utOwEADMeh+s9vR/0n7wEjZZalCTzzR7R/8z9ghMPF\nGewYZEP2WJaBzycjGIxPGXGYaiR/l06obQskZVWmZi5afx86HnsYWndX2jF5wULUfuzjeVuzihmf\nd6T32Mj/M1bEsJHozWTc2gfbXLdO2KScJDhMuyt9NOJxDS6XPXEfpQhNMxCJqPD7lavGVZHRfRsp\nA1GtmMU3ug9jMDE0csy7bj1mf/HLEGrr0q4DgOiJ47j0ta8gfuliUcY7FhORPYZh4PcriERUx+nl\njYbLJTomNg+Ymjq9WiCA7p8+jgv/8H8QO92SdpyvqkLDPfeDFfJf74rltlUNDccHrow5k0WvyeaM\n26tlPSw2bEzGoL8mnVPi9HTdAMs6g3wDQCymQhR5x8wnE+JxDYmEPkz2pns0xUdDlRv1la609mRS\nhkEMvHI5VTdPamjE7C/+I9xr1mbsU+/vx+V/+TqGdk2N3l4msscwQFmZgkRCdxQJGguWtcr5xWLO\nKOOWXC+LlRWtB4Po+cV/4+IDn8fQKy9njMljRBGN938WvC89Kz0XFKuyR0vgDFTD+r6JzoOoqaoB\nDIOMv+l84AQ+UUqwNeuW9vqkTnHdApb71ilWPUIsIqQozrXqAVY9XE0z4Pe7ropFLmPt28AVi93r\n7XsR01OTGDiXCw2fug+Vt96WcScgmobuH34P3T99AkQvvhtuLNnz+11QVcNxdWzHQlEsa55TQqgs\na5795MgIh9H3P0/iwgOfx+ALz034THrXb4TU0FjwPXm+OBa9w6PdthmseXUVLog2GUokSZix5tkI\n24ieExIyCAFM0xnl0BIJzTFED7CserIsOJ4ARSIJ6LoBv9/5GnvrMsTpmaFyEM0i9HEjgdfb96Wd\nw7AsKt/7fjR++nNgXZmz/IZeeQmX/+1foA8G7B10BiTJnt+vwDRNRCLOq3wxGgxjZRM7xZoHWERP\nVe2zwBrRKPp/9xtceODzlsh3YpJngufhv+76gu/L8yxM07SdgBumgaN9J0b+JhkybhttLX02k4hh\nJ2xlNE6whjklkUFVDXAc5xh3p2kSJBLOt+oBVpk0XTcd78ZtqvGgumxsggUDI3DF0vdq2y7oZmYr\niHvlNZj95a9AamrKeDx+7iwufe2riJ05bdeQM4JhrHi1ZAlC2l94J4OiiEgkLB1IJ4BlGXCcPfp5\nZiKBgaf/gAtf+Dz6f/cbmBMIe7OyDO/W7ah47/vR9PkvQFmwsOD7F6tO7/mhi4ho0ZG/MyViNNko\nreIELlFKsNV16wRS4STBYadZ9aJRFYoiOpr8JBEOJ2AYJsrKXI74XWUCwzCZ3bejsm8HE0N4o/vw\nuH2I1TVo+sKX4N20OeNxY2gIl//9XxF4+cWiWAhYlkFZmQuGYSIYjNlaG7cUwTAW0XOSa9py2xZm\nzTM1FYEXnsOFL3weff/zJMxoumRKEowoovyd78a8f/l31H/sE6i69TZbSB5QvDq9SZHkJIotrTKT\niGEvbGUByQBKmi2uyTg92ucBWNm3brfkGJ2rpFXP5RIRiThnoxkP4XACLpeIsjIXhoaijpTpaF5S\njWf3taa0maEKEJ0Hw1sb1kutr2FjXfO4Cz8rSaj7xN9Anjcfvb/8eXqgu2Gg92c/QfzCedR++KNg\nJXuqkXAcC79fQSymjbgxR8fsBYNxx2XdulzOsuYBVjxYvu52ousY+tNr6P/j72AMDk54LsPz8N+w\nAxXveg94vz+v+03YP2NJktj9zBFCUuLzCClujduZRAz7YTPRY4ZjN+gmFkmZlakuhWM3NM0Ax1mW\nVqcszNGoivJyN6JR7aqI4YhG1RHL3tBQzHG1UufV+1DulRAIjdpoCQsjUAO+2ipx1hHpwomBFqyo\nXDpuPwzDoPxtb4fUNBud334URjCYdk5oz26obW1o+NR9EKrT4wNzAc9bJC8cTqRJcjiV7Fnru4hA\nYHxrFW1Iro+5fkfEMBDcswv9v/8t9P7+yW4C/7brUPGe90GoqChgtBOjWNm2l8PtCCSukFiiKoCZ\nSh0kkUOlP7POZa6wYrFnmJ6dsDVGjxACUaTfZWHF2jjD5ZlI6I4qsWWaxPG6emORSOgIhaxgf1l2\nxnOZBMswaF6cQTw5kKqX9+KlnVn151q8BHP+8UHI47jCEpdbcelrX0Xk2NHcBzsMWRbg9ysIheLj\n6q4VUhu3VOF2W5m2TnlpBCxrXi7aecQ0Edy3Bxf/8R/Q/aMfTEzyGAa+rdsx7//5F9R+5KNFJXkA\nIAjFic97a6zbNqNQshusTeRspiKG/bA9vdQJatZWvVj65wFYsiROInqAZeWSZR4cd/W89amqgcHB\nGBRFhMdjj+uxVJCpSoY5VAliXPkNnh48h0vBy1n1x5eVo+nzX4D/xh0Zj5vRCNq/9Z/o/+Pvcy6d\n5vFIUBQBg4OxSTdVJ5E9jrPqmTspNg+wSHs28XnENBE6eACXvvoldH33O9C6u8c/mWHg3bgJc7/2\nz6j72CcKth5nC1HkilKnd2x8XuYatzMVMUoZtrtuWfqVSaDr5oiAJu1vr7pujkjfOMWFRAhBNKrB\n7ZYQDManezhTBsMwMTgYhdcro6zMhWAwRv3zCQCLZpXB5xIQjI7acAkHY7AafOWVElEvtu7EJ1Z+\nOKs+GZ5H7R13Qp47Dz1P/Dhdv4wQ9D/1a8QvXkDdx+8Gp0wsZ2OVNLPkUwYHs69d6xQ3rtstOS5c\nIinhMVE4BCEEkbeOoP+3TyHRemnSPj3XNqPylg9Aapxl51AnRbEEn3uifeiIpJZpm0nEoA+2+4EY\nhhnO/KFzQUsiKbPiBHX7pFWP1k0mE2IxFYridhSBzQaEAMFgHIoioLzchVAoQX2tUZZlcO3iarx6\nuCOl3RioSyF6h3qOoi/WjyqlMuu+/Vu3Q2psQsd/PZzRzRY59CZav/4gGj51P6SGhox9iCIPr1dC\nNKrmFX9MO9kTBA48zznupUqWhXHXd0IIoidPoP83v0b8/PlJ+3KvWo3KWz4Aec5cm0eZHYolq7K3\n8420Ni5ejrF3mmWTtIoocjMkrwiw3f5GCKG+QgbgrHqx8bgOUeQdl8kUiSQc58bMFrGYhqGhGNxu\nEV6vTP13m0lmxRyqBjGuLFEEBC9f/lPOfctz52LOl74K17IVGY9rXV1o/fo/IXTwQEo7wzDwemW4\n3SKGhmIFJZnR7Mb1eCTHiUAzDIZf5NNfkqKnW9D2b/+C9v/8t0lJnmvZCjQ98CU03v/ZaSN5QHHq\n9L7RfRjPXXo5pY2YLNRo+pprV8atJAmOshqXCoriaKVtIcsETdNHZFZoByEEmqY7goCPRiKhwzSJ\n42IQs4WumwgEojBNgvJyN9VC30tml8E9NtHE5GAOVaU07ek4gLCWe9Yn5/Wi8bN/j/J3vjvjcZKI\no/O/HkXvk7+EmUhAFHmUl7tgmgSBQNQWlxiNZE9RhGFZI7qtxmMhSQI0TU8hFbHz59H2jX9H2//3\nz4idbpnwemXRYsz6X/8Hs/7+87Zp4OULhkmWPbPvOzo1cAaPn/hFWrsZLgOQuil6XQLcNq3BtPwu\naENRXLdOiNMjJCmzwlPvGgMsC5DbLTnCFT0a4XBipIj81fomGIlY7luvV4am8YhEEtTF7vEcizWL\nqrDr6Jh4oMEGoKJn5G/V1PCntj1417ybcr4Hw7Ko/vPbIc+bh64ffB8kke6KDDz7NAZfegEVmzbC\n1bwR8tJlYHj7lkma3LgMw8DlEjE4OH51B1ohy1e08+Ktl9D/26cQOTK+MHcS0tx5qPrAn8G1fEXJ\nuBgFgYeuG7bpvl4OteO7Rx+HQdKfTaNndlqbx8YX7Zn4vOKgKCYAhmEcETuVdN86gehpmgGWZcDz\nrKO02AzDRDyuw+OREAo5K4YoF2iagYGBCFwuEeXlbsRiKnUZks1LajIQvVoQkwHDXtnFXm3bhbfN\nvh4il98G421eD7G+ER2PPQStqyvtONE09P/pdfT/6XWwHg+8zevh27QZ8oKFYGx4i6WF7Hk8EuJx\nHYbhnPUCsDQQGYZB+FIr+n/7FMIH0+PQxkJqakLlLbfBvXpNyRERO922fbF+PHrk+4gb6a76Kq4R\n7YN1ae0blqeHXeQDQZiJzysWGFIEMwghZET7i2awLIPychf6+50hEKooAnieo/57yYSKCjdCodLd\nNKcSLMvA7ZYgCBwikXRB31KFppv49EN/QnxMULm05E2w/p6Utr9cchu2N24q6H5GLIau7/9fRA4f\nyup8vqIS3g0b4du4GeKsWQVvSoLAlSzZE0UOHo+MgQFnrH2jIUQG0fHLXyGwe/ek5Y/EunpU3voB\neK5dZwvJLwYqKz0IBCIFW/FDahj/cfBR9MbSk5YW+OdiTvhm/HFPahUbl8zjm/dtA88V/tl4vTIk\niZ8he0UA99WvfvWrxeiYZRnqK2QQYsVyGIZJnSssEwzDhMcjI5HQqC/vNha6bsLrlR3nms4HhFg1\nm3XdhMtl6b4RQkreMsOxDNp6I2jvTSUXVS4/Et5UaYvuaA+um7WloE1B8Sho2HEdGJ5H8NixSc83\nYzHEz57B0M5XED74BoxoFEJ5BTh3fhmHpmlJe/h8MnS9dNYYhgH8fhdCoXjJjMkOaP196PvVz3H5\nu99FvLV1wnOF6hrUfOgO1Hzko5AaCyf1xUIyI7rQvTauJ/DI4e+hM5KuD1jvrsXfXfMJPP7MWSTG\nvJC8a+NsLJ9rjxC0xyOBYWZct8VA0Vy3JfrykzNU1XLfltobdz4gBEgkLKkV2tx6k0HTDKiqAbdb\nQjjsrAzBfKFpBgYHoxBFDi6XBJfLKkZfyha+5sXV2HcidbMJ9XpB6hgwzBXS0Rvrx1vnnZBUAAAg\nAElEQVS9x7Gm5pqc7yFJPFwuEYQA0WgCrre9E7MXLUP/755C9PhxEG3yTVPtaEf/U79G/1O/hrxg\nIbwbN8G7bgN4ny+nsZSiG9ftlqCqekmMxQ7ogwH0//EPGHrt1fQ6yGPAV1Si8n3vh2/zVltjM4sF\nO0KLdFPH9449gdZQW9qxMsmPe1Z/AifPRzA0pr44yzC4fk1jQfdO6W8mPq9oKNqTzDBMUVK+pxrx\nuIbycpdjyEMspsHvVxxH9AAgEomjvNwNQXDOJmUHVNWAqkYhCBxcLhFut4RYTEU8XnqW3WvmV0Lk\nWaij4kijcQMLyTVoZ95KOffF1p1YXb0yq83BqtPKQ1FEGIaJcDiR8ozIs+eg8d7PwNQ0RI8fQ2jf\nHoSPHAZRJ/+dxM+dRfzcWfT+/GdwLVsO38bN8Fx7LVh5YhHmJEqJ7AkCB1HkHVHPVg8GEXjmjxh8\n9eVJyTvnL0Ple94L3/brwQr0ZPFLEo9AIJr39SYx8ZOTT+LkwOm0Yy5ewb1r/hrlchlefvNg2vFr\nl1Sj3GuPvNWMy7a4KBrRs/T06Cd6pklgGM6pLGEYJgzDdMR3MxaEAKFQHF6vjEAgUnIkZrqhaQaG\nhmLgeRaKIqKiwrLcxONayTzbksjhmvmVOHi6N6XdE10EeFKJ3oVgK84NXcTCsnnj9icIHGRZGBaU\n1REMxiZMRmIFAZ41a+FZsxZmPIbwoUMI7tuL6IljwGTl0kwT0ePHED1+DMwTAtyr18K3cRNcK6+Z\nlDyUAtljGCtOKhSKU/3bMcJhBJ5/FoGXXgBJTPyCznm8qHj3e+C/YQdYka762YLAwTBIQe713557\nBge630zvm+XxyVUfQ727Fq3dIZxpG0o7523X2mfNkyQehJAZslckFNU27RRNnERCc4z7FrBqxXo8\nkuOIHpB04erweGRHJp3YAV03EQrFwTCWzERSdDqR0JFITH+WZfOS6jSid+GShsYNDWiPpFbPeLF1\nZxrR4zj2/2fvvePjuOv8/9f0sl3FTe5FtuMi25Jr7DiJ4xQuCVwaEEJJuRRC+wWOu+Pge9zdF+7H\ncdxBICGQQtodHIEESO/FSdwk99iWS1wly2rb+5TvH6NZaTUraSVtnZ3n46GH7Zndnc+uVzOveZfX\nGxxHpwzPY7EkQqHRixeSF+Bcuw7OtesgBQMINe9EYPs2xI4dHfG5ajKJUPMOhJp3gBRF2Bub4Fy9\nFkL9/CGL+ost9ux2vqxTtnI0Ct8br8H72itQosNbwpCiCM8VV8GzaTNIni/QCnOLdrM+9tq8t06/\nhzdOv2vYToDAbYs+hznumdrjdhlTunW1NtRPc4/52IMxi1YoVfKautX+HLGxqeSJxyV4PDbTpG+T\nSc1zSY9ymI1QKA6PRzRl1DKXqKqWyo9Gk6BpChxHw+USUl3zekNHoWmYWwOaIiDJ/ScOfziBi/l1\naAv/Ie2x+7sPoiPciamuSWBZOpUC0rr+45Ck3IgW2uGE+5JNcF+yCcmuLgR3bkdg21Yk2ttGfK4S\niSCw5T0EtrwHyu2Gc+VqOFavBTdjhiGCUSyxx3E0aJocVxqwWCjxOHxvvYHeV16CEh4+5UzyPNyb\nr4Bn8+WgxNyM7SoWHMeMOcXe3LEbfzz2QsZ9n51/HZbWalNkwrEktn1kbNDYtCJ3DSoEAasJI8/k\nvdpUENiyrwfT0reyKWb46kQiCYgia0qhB2gpXJdLgCTJkOUyv9MoAJIkQ5JkhMNx0LQWEXM4BJBk\nf6NLMikXJNoncDQumFmFfcfTbR7CnS54RDe8cV/a9g86P8QdUz+HRCKJYDCWd3HK1Nai6hNXo+oT\nVyN+9gwC27chuH0bpF6jLcVgZJ8P3tdfhff1V8FMnATn6jVwrF4DdmK/P1mhxR5FEbDbOfj95WWM\nrCQT8L/zNnpfehFyMDDsY0mWRdXmy+HafCUoe27GdRUTlqUgSfKY0raHeo/gyUO/z7jvr2ZtxoV1\nq1P/fn/fubR6WQAQOAprFk0c9XGHQhDKK2VejuTFR09Ht3Qox7vEwfA8A4YxlwedFqUsjU6/fMDz\nDASBMcX3r1iQpGZ+rhfpEwSQTCqQZRmSpECSlLyIvy372vGblw6nbatx8bj2OuC3H/0pbTtNUPiX\ndf8AFze6jtdcoioKYsePI7BjK0I7d0IOBUf1fG7mLE30rVwN2q2lxArls+fxiIhGk2VjTaRKEvxb\n3kPvS89D8nqHfSxB0/BcugkzbroeYZhHUGhTcORR/5+dDp7FT3c9hLhsDL6sr1uDz9T/dSqypqgq\nvvOrbegcNBnlsqapuPmy+rEvfhAejwiKIq2IXh7Ja0SPIAhQOTBSLAXicQk2G2eKVLRONKpF9crt\nTj5bYrEkGIaC3W5ZrowVfc6plgKP901XoUDTJFiWhiiSoCgy5TWp/SipInH9PlJVVagqUv/WUjUD\nSzwIkCQBiiJAkiQ2rpiGJ15pTYtYdPtjmKwuh0C/gqjUf8MlqTLeOfsBPjnnqsJ9MIMgSBLCvHkQ\n5s3DhE/fjMihgwhs34rQ7l0jNgQAQPzkCXSdPIGu3/8O4oKFcKxeA/uKRgDIq9iz2zlIklIWIk+V\nZQS2foieF/4Mqbt7+AdTFFzrL0LVX12Dmll12ve3DN5jNhCEVnYz2nNaV6QHD+55LKPIa6hdjE/X\nfypNbB34uNcg8gDg0hVTR7/oYbBEXv7Je+rWLDYrqqoimZTAcUxZnBSzIRZLQhRZ0DSVs1qmUiMU\nisHttoHj5LL/DpYCiqIikZAw2HWEokiQpC7WSNA0mfLF0s7h6cJOF35AvwDUhWIiIYEigIUzPPjo\nRG/acXYd7sGGaWvx2qm307ZvaduGK2ZcAp4ufmE9QdOwLVkK25KlUOJxhPfuQWDHNoT37xvRxw2q\nisihg4gcOojOp5+EbUkD3Beuw5T1qxFGbjv/OY4Gw9Dw+UrbSkVVFAR3bkfPX/6E5HljvVgaBAHn\n2gtRfc0nwdTWgqYpUBRpmnM2oNXmJZOjm+0dTITwi72PIJgMGfbNcc3CrRd8FiSRHpTJ1ISxaFYV\nJlWJo1/0EFi2KoUh70JPVVXwPGOKi6wmjDhTnTQikQRsNvNG9VQVCASicLsFyLJiqjm/pYRm25Pb\n11xRX2sQei2tXfj7Nevw1un3IA0Yuh6Vovjw3E5cOm1DbhcxTkiOg2PVajhWrYYcCiHY0ozg9q2I\nHmkd8bmqJCG0uwWh3S1of+RhVK9dDbFxNdh580FQ4+tSpGkSdjsHny+a8wyFqihQJUn7kSWokgxV\nSgJS399lCWpS3zfwcfqP9hhIEpREAsEd20dueiEIOFauRvW1nwQ7aXJqs83GIhIxVzRfM7zP/j3F\npBge3PsoujOMNptim4S7l34JzKC50Z3eCPYfNz5+U46jeTzPWLYqBaAgET2aNkfrdCIhw24nUqkq\nM6BH9cziE5gJWVYQDMbhdArweiOjuhO2KB4r5tXg6VdbMfB/q9MbRTBAYdWkFfjw3M60x791egs2\n1q0DRZbm+Yay2+HeeDHcGy9GsrcHwZ07ENy+DfHTp0Z8rhKLoevtd4G33wXtcsHetAqOVatBezx9\nQkoCZAlKUvtzsMhKE1CyDJ4m0B2JQYonAFmGmkwOePxg4SVBleW0f2OYx4zoN5hj7CsaUf3JvwZX\nly5CGEaP5pV/kEFHj5xn2xQoKRIe3v8UTgeNQtnDufHlhtsgMkZj77d3t2HwWbLayWPpnOqxLHtI\naJqyRF4BKMiMF62uhzRFNEUfIRYOm+cuMRyOm7pWD0CfMTAJl0uAz2c1Z5QDLjuHeVNdODLIrLWl\ntRObVlxkEHreuA+7Ovdh5aTlhVzmmGCqqlF1xVWouuIqxNvbEdyhde4muzpHfK7k98P35uvwvfl6\nAVZautiWNqD6k38NfsbMjPtFkTXVeRpAX3Ysu4ySNvXiGRz2Gn0ftakXt8PDG73w4kkZ7+87Z9h+\n6Yo6kGTuRJle3mGRfwrSKaGqqmlaqGMxCTxf+jMQR0M8LoEkSdObVkYiCciyAoej+HVcFtnROH+C\nYVtLaxcm2SZiSc1Cw743Tr9bdhFbbsoU1HzqOsz84Y8w7Tv/B+7LNoMa5czcSkJceAGm/cN3Ufe1\n/29IkccwFEiSMEXJ0EB4ns66dOhPx17CzvO7DdsZksE9Dbdiki2zRcr2g+cRHhQFZWgSGxqmjH7B\nwyAIbNn9rpYrBVMsLGsOEaGPEDOb2XA4HIfNxpk+2hUMxuB2ixDF8vd3rAQa59fit2+mRyTausM4\n1xPGZdMvxv7uQ2n7zobacdh7FAurcmf/UCgIgoAwezaE2bNRe+NnEDl8CMHt2xDa1QwlZh5bp7HC\nTp2GCZ+5GeICo8AfjM3GIRw21+83y9J915+RxdEbp9/Fm2feM2wnCRK3L/4cZrtmZnyeqqp4q8XY\nhLFq4QTYhdzOADaLJigHCiL0BloomEHBx2Ja+tZMQi+RkCCKrCk6pEfC74/C7RahKKqpGmvMSJWT\nx6zJTpw4l26I29zahavXzsRM53ScDJxO2/fGqXfLUugNhKAo2BYthm3RYii3fAHh/XsR3L4N4X17\ntTq4EoegaRAMA4KiAZrS/k3R2p/6D0X1PYYasI0GwdBA32PlQAByMAD7ika4Nl6SVT2XPvrOTOdn\nQEvbRqMjn692dOzCc8dezLjvs/Ovw5KaC4Z87vG2AE53GjtzNzXmtglDn4Rh1ecVhoLmIG021hR+\nZrGY5qlHksS4BkqXGqFQHE4nb3qhp6oqAoEIXC4xZedhUbo0za81CL2W1k5cs24mLpu+EY8ceCpt\n32HvUfxv63O4Yd61JduYMRpIloWjcSUcjSshR8II7doF37tvI3muHQTDgBZFqCQFDBRMupCiaVAs\nA4bnIKkASBoETfUJKsb4nJQg07cz/Y+nNQFGDhBi/a/VL+RAFtcXzWbjEAiYq95YMy4nEQgMf646\n1HMETw0x9eLqWVdg3ZRVwz7/zQyWKnOmODFzUm5LCWw2c5RylQsFFXosSwMof6EHaGJPEMxV7KuP\nwRIEFtGoudIeg5FlFYFAFC6XgEBANW3HsRlonF+LZ945nrbt9PkQOn1RNNQuQq1Qja5B1hHvtW1F\nR6QLdyy+BTYmd75fxYYSbXCt3wDX+n4bmeEmaOj7/P6oKZrhRkIU2b7zmLneqyCwI3YPnw6cxcMH\nnoSiGt/7RXVrceXMS4d9vj8UR/NhYzNQrg2SAV0LWBSKgo2t0J3vzdJlE40mTNeUAWhRPVFkKiKk\nLklKaqYoTZtjgosZmeARMW2CcT7prtYukASJK2Zuyvi8I95j+HHzz9ERHsFkt8wZOBt3YEMVTZMp\nAWg24ZMJgiAgCIwpskaD0dK2Q998d0a68cDeRzNOvVhWuwQ31n9yxHP6u3vbIQ/KUDlEBk0LjA1R\n40HXAZVwjSkVCn51E0VzhGwVRUUyqYDnc1ugWmy0ujWpYkLryaSMYDAGl0uwxF4J0zS/1rCtpVWL\nPqyZ1IhlNUsyPq8r2oMfNz+Aj3pGNiguZwaLPZrWrISCQfPOsh6MzaZFvcxUTgNoIi+ZHPp9BRJB\nPLDnEYSSxgknc92z8KULPmOYejEYSVbwzm6j195FDVPA5Pi8WCnXllKi4Fc2vVDWDESjCQg57kQq\nBSKROFiWrhjhk0jICAbjltgrYTLZrBxvD6A3EANBELhjyS24ZOr6jM+NyTH8cu9jeOvMFlM0gw3F\nQLHncokIBuNZG+uWO/rsZbNNwQAAQRi6CUObevEYumO9hn1TbJNw1xLj1ItM7DnaDV8oPRpIEMAl\ny+vGtuhhsNK2haegVzW9y4aizHEx1e+UzeY/p6qa3YrdXjl+c4mEZIm9EmZKjQ2Tq421druOdAHQ\nzi031F+LrzTcASHDvFsVKv549Hn8z+E/QlLM23yjCVkC2gxh84rawdjtPMLheM7HuRUb/dqSKSqr\nT704M8TUi3uX3Z5x6kUm3sxgqbJiXi2qnLm9BlAUaXXbFoGiXNFsNq4Yh80L0WjSlFE9rfNWNV1q\nejgssVfaDGWePJCF1fX428avYIJQk/E1Pjy3A/fvfhjBhNFCotwZmK7NVLNnVvR5qWZ0Cxgqmqeo\nCp469PuMUy9stIivLLsDbs6V1THOdoXQesZn2H7pitxH88x07S8ninI1M9PJJxZL9s1UNN8dSjAY\nh83GVtTdlyb2tJo9M31PzUCmOr0jZ30IDDLGnWibgL9t+goWeOZlfJ3j/hP4cfPP0RYyjnkqVxiG\nSom8REIaskHDbBAEYRrbrsFQFAGGoTJ6fT537EU0n99j2N4/9SL7Boq3dhkjgpOrRSyY4RndgrPA\nzN/FUqbgQk/vvmUY80RMtKie+QpMZVlBLCbBbq+su7BEov8iadWTlA7TJthR605PJakqsOtol+Gx\nIiPiyw23YePUCzO+Vk/Mi5+0PIB9XR/lZa2FhGXpVHftwJq8ShB7djuHWEyCLJuvq1izuTKKvDdO\nv4u3zmwxbNenXsxyzcj6GJGYhK0HOgzbNzVOzfkNvj6WrpICB6VCUdSWqqqmCuFGo0lwHGMa65iB\nhMNxMAxl2gvFUCSTMvz+KOx2rqLS16UMQRBZpW91KJLCTfWfxGfmX5ex6zAuJ/Dr/U/itVNvl209\nG88zsNs5+P3RjHVcZhZ7+nnJTF6mOiRJgOOMadvt51qGnHpx8/zrh516kYkPDpxDfND3hmcprF00\naXQLzgKbzZptWyyKIvQIggBNm+eko9WHmLNWD9DmwzocPCrtRkySFPj9EQgCaxpboHKnMUP69vAp\nL8LDjLLbULcGX112B2y0sZlDhYo/H38ZTx76XyTl8hqHZ7OxEAQWfn9kWJ88M4o9ggAcDh7BoDln\nAAsCg1gsmSaMDva04unDz2R8/DWzr8TaKStHdQxFVTOmbS9cPBlCHtwxaJqyonlFomj5U93c0ixE\nIgnwPGtKMZRMykgmZYiieaKw2SLLKny+CFiWhsNROV3IpcqsyU54HOnfQ1lRsedo97DPq/fMxd82\nfRWTxMy1Szs6duFnu38FfzyYs7XmE4eDB8PQ8PkiWQ25N5vYs9m41HnJbBAEwPPp04lOBc7g4QNP\nZZx6sXHqOlwx45JRH+fQSS/O90YM2y/JQxOGIFSGCX+pUjShp6qqqYSePjOV580Z+QmFYuA42lSR\n2GxRVU3sAYDbLVonrCJCEgQa6zOZJ2dO3w6kVqzGt5ruxaLqBRn3nwicxr8335/RrqJUIEkCbrcW\nmfT5IqNKhZlF7NE0BZalEQqZM5rH8ywSiX6D5M5IFx7c+xgSGaZeLK9dghvmXTumc1ImS5WFMzyY\nUmMb/aJHQBAYK21bRIoa0SOLPPw610Qi5jRQBrSi91AoXtFRLb2j0eMRLfuVIpIpfXvgRC+iWdhr\nCLSAu5d+CZumXZRxvy/ux3+2PIjdnfvHvc5cQ9Mk3G4x1Rk+Fswg9hwOHqGQ+TzzdASBQSSiiTp/\nPIhf7Hk049SLee7Z+GIWUy8y0e2LYu8xYxR8U2Pu59qa8VpfbhT9amWmcSiyrECSZNOKvURCgiTJ\nFdeFO5BIJIFQSPPaM9OUl3Ji3lQ3nGL675gkK9h3vCer55MEievmXY1bFtwIijCKnYSSxCMHnsJL\nJ14vmSgEx9FwuQSEQvGUCBgr5Sz27HYOkiQjkTCfZx6giTxJkiHLCqJSDL/c+yh6Mky9qLNPxl1L\nv5jV1ItMvL2nDYO/2VVODg1zq8f0esNht5vnGl+uFF3ocZy5RFE4nDCl1YpOKBQDy9Jg2fK6QOSS\nREKCzxeFKHIVLXqLBUkSWJExfds5qtdZO2Ulvr78LtiZzKmqF0+8jt989D8ZU2aFxG7nIIocfL5o\nzgROOYo9ljV3yhbQLFXC4QSSioSH9z+JM6F2w2OqeA++3HAbBDq7qReDSUoytuw1ekhesrwOFJl7\nScCy5rrGlyNFFXq6p56ZRIPZo3qqqqUw7Xa+okPxsqzA5wuDIAh4PKIpDbNLmUw2K/s+7jFYRYzE\nHPdMfLvpq5hiy2wn0dK5F/+165fwxf1jWud4oCjtu0UQBHy+cM694spJ7BEEAbtd67ItkSBrzhEE\nRmswkSQ8dfB/0eo9ZniMjRHxlYbbs556kYkdhzoRGmTbQlMENjRMGfNrDgXLWt55pUDRI3qqqpqu\nmzMcTkAUzdmBC2gXiHhcgsNhrv+30aKL3mg0CbdbtFK5BWT+dDdsfPrnnUgqOPCxMc01EtVCFb7Z\neC+W1izKuP90sA3/vvN+nAycHtNaxwLH0XC7RUSjybyKm3IRew4Hh3hcMmWXLaB12ooii3A4jmeP\nvoCWzr2Gx7Akg3uW3oaJo5h6MRhVVfFGhiaMlQsmwpkHCylR5Eqm/KGSKbrQ0zz1SFOJIllWkEjI\npu3ABTQjZYoiLTNhaGPw/P4oRJGtSL/BYkBTJJbNM86zbTkyuvStDk9z+Jsln8cVMy7NuN+fCOKn\nux5Cc8fuMb1+tuj+cKLIwu+PZhx/lWtKXezxPAOKIk1pjKwjCCwSCRmvnngbb59937Bfm3pxC2a5\npo/rOB+fC+BUh9FCKD9NGOi7tlsnxGJTdKGnY7Zap0gkDlFkTH3RDwRisNlYUFTJfI2KhiQp8Ho1\nuwuPx1aSF0yzkSl9u/dYN5LDmAcPB0mQuHbOlfjSBZ8FTRqjs0lFwm8O/hbPH38lo5/ZeGEYCh6P\nDYqiwusd3gQ515Sq2KMoEjYbi0DAvHV5BKGlbd869gH+dPyljI+5ecENWFyzcNzHeqvFaB00c5ID\ns6c4x/3agzHbNb2cKZkrtNkKNmVZRSIhm7oxQ5YVhEJxOJ2CqQXtaAiF4qlJInY7Z30ueWTRzCrw\ng+p7o3EZh06NPn07kJWTluMby++Gk3Vk3P/KqbfwyIGnEZNyE2EiCO2iqE96KFbkqtTEHkEATqfW\naWzGWbY6gsCi+cx+PHkw89SLT86+CmsnN437OIFwAjsPnzdsz0c0DzDfNb2cKQmhpzdl8Ly5apzC\n4TgEgTXlDFwdrW5Ggt1euf56g0kmZXi9mu+VFd3LHwxNomGuMX3bnIV58kjMck3Ht5u+immOzFMC\n9nYdwH/uehA9Ue+4jsOyWhQPALzecNFr0EpJ7NntPJJJCfEs/BHLFZIk0BZtx/07Hs0YJb546oXY\nPOPinBxry752SIOmqNgFBqsWjr3mbygEgbGaMEqIkhB6gDmbMhRFRSyWNP2c1FAoDpq26vUGohtM\n69E9rXbPOunlmkxTMvYc7YasjD8C5OHduG/FPVg+YWnG/W2hc/hx88/xsf/kqF+bIIi+qK8WxSsl\nA+BSEHs8z4CmSYRC5q3LA4CA4sOPtjyAhGKsxVwxYSmun3dNTs4bsqLg7d3GtO2Ghslg8jDtSBBY\nqwmjhCgZoadH9WjaXBfDSCQOjqNNX8cWCERhs7HWxIhBJJMyenvDUBQVVVWiJYZzzJLZ1WAHfedC\n0SRaT/ty8vosxeL2RZ/DX83anHF/MBnCz3b9ClvPNWf9moLAoKpKhKKo6O0tfhQvE8UUezSt1+VF\nC3rcQhOSQviPbQ8hmDBOvah3z8EXxjj1IhN7jvagN5AumgkCuGRZ7ufa0jRhRfNKjJK7Ktts5koB\nqqo2TcFmM1e0cjCyrCIYjMHpFEydqh4r4XAcPl8UHEfD4xGLnhYzCxxLYclso5t/NrNvs4UgCHxi\n1mbcvvgWMKRRqEuqjKcP/R7PHnth2CYNrdlCBMvS8PmiJd9FWgyxR5IEnE4BwWAMsmzeiFBUiuKB\nvY+iK2Kc5lJnn4w7l34BTIaGoLHy1i6jpUrDnBrUuMdmujwcZruGm4GSEnoEQZjyAhiNJkHTpCnf\n20ASCRmxWBJOZ+5PHmZAlhX4/VFEIgk4HDycTt4yWs4BmWbf7jrSBSXHqaMVE5bivsZ7hjSrffP0\ne/jVvscRldI7RCmKgNOppe8jkQT8/mjZNBcUWuw5nQJisSQSidKLcuaKpCLhkQNP4bTfmEqt5j24\nt+H2MU+9yER7dxiHThlrSfNlqcIwlBXNKzFKSujpmLEtOxSKm/J9DSYSSUBRlIp4r2MlHpf6UnYK\n3G6xrzvXOjGOlYa5NaAHCWZ/OIFjZ3M/zWK6Yyq+3fRVzHRm9jM70HMY/9HyALqjPX3THDi43SKS\nSQW9veGybCwolNiz23koijLuWb6lii/ux4snXsf3t/4Ih3uNUy/sjA33LrsDLi63Vidv7zIKyklV\nIhbO9OT0OABMn7kqV0pS6JmxjimRkKCq5nxvgwkEYmAYqiLe63iIRhPo7Y1AVYGqKhtsNvNOU8kn\nAkfjgplVhu25TN8OxMU58Y3ld2HlxOUZ93eEz+PHzb/AOakNqgr09kYQjZa3eMm32ON5BgxDms4v\nT1EVHO49iof3P4nvffhveOnE6xnH6bEkg3sabsVE0RidHg/RuIT3D2SYa7uiDmQeTjbWOb80ob7/\n/e9/v9iLGIge2SAIlGSR8niQJBkOB18Qt/tik0hIcDh4yLJi6lqbXKCNlEuCZWk4HJonoSSZ67uf\nb5Kygj1Hu9O2+UNxbG6alpdoKUVSaKhdDIZkcMR73LA/oSTx/ukd4CFguiM/PmWFRlFUSJICp5OH\nJClQlNz8XrMsBZuNg98fLZnO4/ESTkawpW0rnj70e7x99n10RDqhIvObI0DgrqVfQr1nTs7X8d7e\nduwe9HvBMRTuuPoCMDlunLPZWCttW6KUrHEdz7MIh8v7LngwkqQgHpdgs3Gmtw1QFBWBQBQulwC/\nP1pQl/9yRFFUhEJxRCLanOSqKjtisSSi0UTOLqhmZvm8WjxBtKbV5fUE4jjZEcSsybl3/Qe0m9LL\nZ16CyfYJ+M1Hv0VcTj9fKaqC37Y+i/bweVw/92pQZPnX6A6M7AUCsXHfjNM0CYeDh98fLfvvuaqq\nOBk4gy1tW7Grcy+SSnZp+itnXIpF1fPzsp5MTRjrFk+CmAfPWjOP/Cx3SlLoaYqbsd8AACAASURB\nVHcEKgSBQTRqruhXOBxHVZUNsVjS9OJHkhQEg9rkDJ8vUvYn8kIwUPAJAguPx4ZEQkIkkiibAv5i\nYBcYLJjhxsGT6UXnza2deRN6FEVCFFlcXL0adZ6J+K/tD6M3Zix6f/fsBzgf7sTtiz8HkRHzspZC\nkiux199hGy/rc2FcTqC5Yze2tG3FmVB71s+bJE7ApukXYd2UVXlZ1+FTXpzriRi2X7oi95YqgqCN\n+7SieaUJoZaoq6GqqlBVFT09Ro+hcofjaAgCC5/P+EtoRgSBAc8z8PkipknNFAptDiYLnmcgywqi\n0SQSifIr6C8Eb+9uw1OvtqZtm+AR8G93rsnpBYhlaQgCA4oiU1FXVQWCiRAe3v8kjg9hoDxBrMHd\nS3Nfh1UsGIYas9gjCMDtFvs+v/K8mW8PdeD99m3Yfm4XYnJ2tYUuzol1k1fhwimr4OHdeV3fA8/u\nR8uR9DrVBdPd+PbNK3J+rOpqGwjC8s4rVUpW6OkEAtGy7FQbCf0kVwn1eoDWSU1RJPx+c5ug5pPB\nAiMWS1pR0gH4Q3Hc94sPDJVQ/3zbKkybYB/Xa2sjGpkRBXdSkfC71mexbQgDZYEWcPviz2FhVf24\n1lMqjFXsuVxCalZ2OZFUJOzt3I8t7dtwzHci6+ctrJ6Hy+dehDnC3IKk8Hv8MXz7oQ8NN9Zf/tRi\nNC3I7cgzjqMtS60SpyRTtzqqqsJm40wp9EKhGFwuAfF4siKiXKFQHE4nn7ooWIyeREJCIiGBorRx\ncx6PCElSEIslTfk7Mlpcdg7zprpwZJCtSktr55iFHsfRqXFcsZg0ogceQ9K4ZcGNqLNNwrPHXjQU\n4EelKB7c+xiun3cNNtatK/sIyFjSuE4nD1VVy0rk9UR78X77dnzYvgOhZHZZJpEWsGZyEzZMXYOF\nU2fC5yucf+I7e9oM1xWPg8OyecbZ0OPFZuOgqmrZf5fNTEkLPW0smnbXaL4OXAWxmASbjUcoVBnC\nJxDQxK3dbv5mlHwiywrC4TjC4XhKiNjtPBIJCfG4uc1mR6Jx/oQMQq8Ln9owO+vXYFkKHMeAZWlI\nkjxqIU0QBC6dfhEm2ibgsQP/Y0jrKaqCZ478GedCHbip/lNl36QxGrFnt2szn8shsq+oCj7qOYwt\nbdtwsKd1yK7Zwcx0TseGujVYMaEBLMX0OS1IBRN5SUnBe3uNtYIXL5sCOsejOBmGssadlQEln7pV\nVRWyrMLrNV+tHkEAHo8NweD4u9fKCc1AVi75EVDlBEEQfaJPm6scj0tIJOSKq+frDcTwrQc/NGz/\nwd+sxuRq25DPY1m6T+DRkGXtJiwel8Y9mL0jfB6/3Pc4uqPGUVcAMM89G3cs+TzszNBrKxdGSuPa\nbBwYhir52uRAIogP23fig/btGZtrMsGSDFZOWo4NdWsxzdHf7MAwFBwOHr29hbt+bT3QgYdfOJi2\njSIJ/Me9F8Jly21nrMdjA0VZQq/UKXmhB2hiz+eLmtJbrBgngmKjF2LH45JpXfCLCUlqoo9ladC0\nFg3X076VUNP3r08048S5QNq26y6ajavXzUz9mySJPnFHg2EoSJLcFxHN/WcUSobx6IH/xhGvcRoC\nANTwVbi74VZMtk3M6XGLwVBiTxRZcBxdsg1ZqqrimO9jbGnbhj1dByCr2V1rJtkmYkPdGqyetCLj\n2LKqqsLfyP/gyWYcb0///q+5YCLuvHZRTo9D0xTcbsESeWVA2Qg9WVbg9Zb2neBYcTh4KIpaUREu\nkiTgcomprkWL/EAQSAkalqWgqnqtn4xkUh53xKoUeXnbKTzzTrqJ8YxJDvzgzrVgWQosS4MgkIp4\n6lNr8omsyPj90T/j/bZtGffzFIdbF92MxTUL87uQAjBY7Old45rIK63vW1SKYvu5XdjSvg0d4fNZ\nPYciKCyrXYwNdWsx1z1rSKFjs3EgSQLBYOFKc06cC+BfnzA2An3n842YW5d5RvNY8XhEUBRpCb0y\noKRr9HQIggBFkaBpypRRvVAoBo/Hhnjc/N56Ooqiwu+PwOXSfMUssZcfVFWbravXmFEUCZbVxtPp\nNxiSpIm+ZFI2hVdf4/xag9A71RGEP5JEFUWM2FCRDyiSwmfnX4c62yQ8c/QvUNT048fkOB7a9zg+\nNfcT2DTtorK+eA6s2YvHJTAMDb+/tETe6eBZbDm7Dc3ndyOhZOd8UMV7sH7KaqydshJO1jHsY2la\nKwModMlRJoPk6RPtmDMlt16SNE1ZIq+MKAuhp+N0cujtNV9UT1W1rlSHgzdt1DITltgrPJo1iJLy\nLqMoEgxDgWGolHWLJCmQJBmSpPSNsMvduKtcQ5LaTaB2I6jdDNbU2DFzshMnB6Vv3205gytXTy/S\nSjUumroOE8RaPHLgaUSl9IYEFSqeO/YizoXO4zMLrgNDltXpOQ1trJ8EnmcQCMRK4vuTkBNoOb8X\nW9q24VTwTFbPIUBgUfUCbKhbgwuq54MksmtmcDi0hrNCattAJIEdhzoN2zetmJpzQeZ0cjl9PYv8\nUjZnEq0DV4tGmLGrMJGQwPM0bDbzjX4bDkvsFRddyA30c9QFE02T4DgaNE0CINJEn/an9nf9Jx+Q\nJDHgRxN0A8UdoKYEqW41I0kKls2tNgi9liOdRRd6ALCgah6+3fQVPLTvcZyPdBn2b+toRme0G3cu\n+QIc7Pj8/4qFILBgGBqBQAwOB4dAQC1aw9n5cCe2tG/DtnMtBnE9FA7GjnVTVuHCKatRLXhGdTyb\njYUsKwVthJIVBQ8/fxDJQRkhnqWw6oLc1n6yLAWStKJ55URZ1OjpqKp2QTFr4wJBEKiqEuH3x0yZ\noh4OvWYvHk9aDRolCEEgJa40wUWkRJd2E0ZAVTXhrk+10X7QF9XQTjP62ab/GkH0jU5Cyllffz2C\n6H89XVzKsgpF6Y80DnX2ausO43uPbDds/8m9F8LjKI1oRCQZxWMf/TcO9R7JuN/B2jHbOQPVQhVq\nhOq+nypU8Z6SjvZpjRcM/H5t7OF4JmiMFVmRsbf7I2xp2zZkE0wm5rlnY0PdGjTULgY9hs+YprX3\n6vUWNlX99GuteGtXm2H7vKku/MMtjTk9VlWVzbJUKTNK92yRAa1WT+soNKNBrKqqfbNheXi94ZLs\nTssX/ZE9rYurkhpTygFVRV9Kd+jatoECrV+0pc+/1P868LvdLwj7xaEu8MZKXY0Nk6tFw6zPXUe6\nsKlx6phfN5eIjIB7lt6K5469iLfPvm/YH0yEsLf7I8N2AgTcnAs1gwSg/m8bLRbtImyzcWBZKq3x\nIlezcbPBG/Phgz5jY38imNVzeIrH6smN2FC3ZlydzwShmUGHQrGCirw3W85mFHkAch7B5ji6L5Ju\nUU6UVUQPMPcMXB27nQNAVIyR8kAIAnC5REiSbJkqW4yLZ987jhc+PJW2LV+zPsfLB23b8bsjzxma\nNMYCT/EDRGC/AKzhq1HFu/Nm0Gy386Bpsq/xwrg/X5E9RVVwuPcotrRtw/7ug1kbG09z1GFD3Ro0\nTVwOjhq/v5zDUfiJH/s/7sFPn9mb8fO+6dK5uHJVboWeNdO2PCk7oQdoYi8cjpftMOxsqKqyIRSK\nV5zhrY7LJUBVVWtcmsWYOdURxD8/vjNtG0EA//XV9XCKuTWOzQVHvcfx8IGnEE7mryGLJEh4OPcg\nIdj3J18NkRnbzFKnM7uJF7kUe6FEGFvP7cT7bdvQHevN6jkMSaNxwjJsmLoGMxzTciZYWJaGzcYV\ntMu2rTuMHz7VjGjc+Dl+9rJ52Nw0LafHEwQGNhtnibwypGyFnqoCPT2hYi8lb9A0CZdLgNcbKYmO\ntWKgXzwCgWhFpbEtcoOqqvi7h7ai259+s/DFK+dj47K6IZ5VXLqjvXj8o9/iRODUyA/OAyItZBSA\nNUIVPLzb0HWqpStHd1M2HrGnqio+9p/Clrat2N25D1KWxsYTxBpsmLIGqyc3wcaIozrmSJAkAY9H\nhN8fLZg9ViCSwP99otnw3QaAi5fX4fOX1+dckFVX2w2lGBblQVkKPUD7hY/FkqZO74kiC4ahymIu\nZL6w27nUZ1Cpgtdi7Pz+rWN4ZcfptG2LZ1Xhvk8vK9KKsuNA9yHs7z4IB+sAQRDoifaiO9qD7mhP\n1rVnuYYkSFTznlRdYK1YhenVk1HNVUFU7eBpPuvXGq3Yi0kx7OjYjS1tW9Ee7sh6vQ01i7Chbi3q\nPXPyJlBcLgHJpFywJrKkpODHv9uNY4NmOgPABTM9+MaNDTmfaWu3c+B5xhJ5ZUpZCz0A6O42b1QP\n0EeFJU2dph4JQWAgCCwCgcLdMVuYg+NtfvzgqZa0bRRJ4KdfWw8bzxRpVeMjISfQE/P2Cb9+Adgd\n7UV3rBeSUpxyDztjGxAFTE8NuzinIRqYjdhrC53De21bsbNjF+JydkLKzblSxsZuLrfTIAYjCAw4\njinY/F5VVfHoi4fw4QGj2J1UJeK7X2iEmOPvNUFo0Tzt75bQK0fKqut2IARBQFXV1InCrAQCUXg8\nIpJJuWJFTjSahCyrcLkEBIMxU/ooWuSHWVOc8Dg4eIP9kX9ZUbHnaDcuXDK5iCsbOyzFYrJtYsYO\nUUVVEEgE0R3tRVe0Bz1pYrAXwWT+boxDyTBCyTBOBk4b9tEEhWqhCtVCFWqF6pQQnBSsxayJU4AI\nlRJ7STmJ3V37saVtKz72Z5/CXlhVjw11a7G4ekHeGk4GQtMURJEtqMn9S9tOZRR5Np7G129cmnOR\nB2hNJoAl8sqZshV6gPbFY1kaJEmYNq2nKCqCwRicTqHg3kylRCIhwe9X4HQKiEQSaQa/FhZDQRIE\nVtTX4s2W9NFQLa1dZSv0hoMkSLg5F9ycC3Pdswz7Y1IcPbHeQdHAXnTHetAT9ULOsuZttEiqjPOR\nrowG0QDg5p2o5qvgZJ044j2WdUOKjRGxdvJKrJ+yBrVidS6XPCwEQcDp5BEMFm7qR0trJ/747seG\n7RRJ4CvXLcFET25rDwGt/lCbDW2JvHKmrIWejtMpFCx0XgwSCW2ckMPBIxCo3Ho9SVLg82leezRN\nmro+0yJ3NM03Cr0DJ3oRjUsQOFOcArOGpznU2Sejzm4UuYqqwBf3DxCB6UIwn93AvlgAvlhg5Af2\nMds1Axvq1mJ57RIwVOFT8Noc32TBsgsnOwJ4+PmDGfd94Yr5mD99dNM7ssXpHFsXtkVpUfZnOYIg\nQNPavM5ijdgpBOFwHG63CEFgK3pMmKKo8HojcDp5uN0iAgGrScNieOZNdcMpMghE+qPAkqxg/8c9\nWLUwt+OhyhmSIFHFe1DFe1A/QDeQJAGnU0AoHsaJznZjXWC0B71xX048AIeDo1isnLQCF9WtzShU\nC4UgsH2m7oU5D3uDcdz/h31IZCjduXL1dGxomJKX4zKMNgbRiuaVP2Uv9HScTt7UJspAf72eJMmm\nFrXZEAjEIIpsSuxVav2ixciQJIHl9bV4d0972vbm1i5L6I0ATZNwOgVthnCUwDRHHaY5jNY0siLD\nG/elRwGjPejuSxNHpbHXUdfZJ2ND3RqsnLh8VJ29+YBhKIgiU7C6vHhCxv1/2AdfyCgql82twQ0b\n5+Tt2E5ncT9ri9xhCqGn33HYbGzB7rKKgV6v53Dw8Pkq119PJxJJQJJkuFwCwmGrbs9iaBrnG4Xe\n/uM9SCRlsEz+C/fLEZ5nYLOxWTVAUSSVsl0B5qXtU1UVESk6KArYLwS9MV/GaRYXVM/HVTM3YZZz\nRklElUiSgMNRuLo8RVXxyAsHceq80U5n2gQ77rz2ApBkfj4Xm421JmCYCFMIPR1BYBGJJExtrptI\nyIjFkqavS8yWREKGzxeB0ymAYai+OZPFXpVFqbFgugc2nkY41m89Ek/KOHCiFyvqa4u4stKDILRx\nZhRFwueLQJbH9wtFEARsjAgbI2KG0zitQVIk9Ma86I72otV7DL64H2vrmnDhnOV5n407GpxOAdFo\n4erynnvvY7QcMTavuGwsvn7DUvBsfi7fBKFdSy3MQ9n66GVCVdVUwb7Z0Vveg0HzWsuMFs1cmUYg\nEIUsW6lci3QefeEgPhhkTbF20UT8zTWLirSi0oOitFRtMikVvdkpX7Nxx0Khz7cf7D+HR188ZNjO\n0CT+7uYVmD3Fmbdju92iVZtnMnJrn11kBjZmmJ1gMAaaJiEI5Wn6mg9CoTgikTjcbgF8mZrhWuSP\nxvkTDNv2HOuBZN0UANBStW63gEgkXnSRBwDJpIxAIAanky/qOV0QGNA0WTCRd+SMD0+8cjjjvtv/\namFeRZ7VgGFOTCX0dCqliNTvj6bGpFloxOMSfL4oBIFJzcq1sACARbM84Nj035VoXMLBk94irag0\n0D3hBIGBzxdFPF6cyRqZKLbYYxgKgsAWbAxlpy+KXzy7H1KGdPmnNszKe/NQpVw7Kw3TCT29gNRm\nM3+NgaKoqZNgvopyyxFZVuD1arVFHo8IlrWEsAXA0BQa5hhNdVtaO4uwmtKAZSl4PCJkWe37nSm9\n6GaxxJ5mK1O45otITML9f9iHUIZxl2sumIhr1s3M6/GtBgzzYjqhp6N5HRV7FfknmZQRDifgcgkV\n8X5HQzgcRzAYg93Ow27nir0cixKgKUP6dvfRbshK6QmcfGO3c7DbNSETDhc/VTschRZ7BIFUN38h\n6gNlRcFDfz6A9m6jRdicKU7c+okFeRVgVgOGuTGl0NN/IVyu3I+EKUViMa0TzHIxN5JMyvB6wyAI\nAh6PDTRtRfcqmSWzq8HS6ae9UDSJI6d9RVpR4aFpCh6PDQRBwOsNF73RIVsKKfacTiHlcFAIfvfm\nMRw40WvYXu3k8JXrl4LJ83lLv1Za0TxzYkqhB/Q3ZnAVMuIoHI5DVdVUd5hFP6qKVNTC6dSie9b5\nrDLhWAqLZxvTt80ZbCzMhmabwsHp5FPR7nLzXCiE2HM4eKiqWrAo51u7zhpG9AHad/XrNzTAlecy\nJI6jrQYMk2Naoadjt1eO8AkEYqAoEqJoheAzkUhIadE9q4mlMmmcb/TN23WkC0q5qZ5RwDBaFA/Q\noniJROk0XIyWfIo9UWRBUSQCgcJ02H50ohf/8/pRw3aCAO6+dhGmTrDnfQ1WcMD8mFroaYWlWq1F\npeD3R8HzTMVEMkeLHt3TJ4w4HFZnbqXRMKcG1KDmJX8ogeNt/iKtKH8QBJH6ngeDMdMYiudD7HEc\nDZ5nCtZh294dxoN/OpDxBuPTl8xFw9yavK9BvzZa50BzY2qhB2hfYIahKqbzUlVV+P3RPvPgynjP\nYyGZlNHbG4aiqKiqEi3fvQpC5GksmlVl2N7Saq70Lc8zqKoSoSgqenvLpxYvW3Ip9hiGgt3Owe+P\nohAzBIKRBH72h72IZrCy2bhsCjavNE4QyTUcR4FhKEvkVQCmF3o6ldSoIMtK6gRI0xXzXzwmwuE4\nfL4oOI5OOcJbmJ/GDGPPWlq7CnKRzzc0TcLtFsFxNHy+aMl31I6HXIg9miZTEzgKYS+TlBQ88Ox+\ndPmM6eGFMzz43Ob6gogvh6NyromVTkHye6qqIhgMwu/3IxwOF82rSVVVU5zIs4cASaIgHlDmQPu8\nVBUV9j0xLyRJQRDssNkcIMl+IbC8vhZPvNKaljbrCcRwsiOIWZPzN3kgn+j+oSxLIxyOl5TxcT4Z\nKPZGOy5NH/kWDMYLEvFUVRVPvnoYR84aywQmegTc86nFoKn832xaKdvKIu9CT1VVnD9/Hn5/EDab\nAzU1U0CSxevwkWXFFDUq2UIQAEmSJWmEWqqQpGYaqqqqJZLLGFVVIctJhMNB9PZ2orp6Uuq8YxcY\nzJ/uxqFT6VMxWlq7ylLoiSILQWAQi2kNR5V0jgPGJvZIkujzyosXrDnlle2n8cH+DsN2G0/j6zc2\nwF6AkZYsa6VsK4283zpokbwgamomwmZzgKKK+wUjycpKzamqFtGjCnCXaBYURU0JY4oiLSuWMkWz\nWGLhdFaBoihEIsG0/U0Zum9bWjvLKprLcTSqqmygaRJeb6TPZqnYqyoOo0njEgQBl0tENJooWORz\n15Eu/OGd44btFEngy3+9BJOqCuP7aqVsK4+8X/39fr8hbVJMCAKgqMq6cuspa0vsjQ5d8JEkaQm+\nMoYgCAiCHfF4ejflivpaDP4vPe+Noq3LOJ2g1GAYCm63CEFgEQhEEQgUZkxXqZON2CMIwO0WEI8n\nEc0wbiwfnOoI4tfPf4RM/0Ofv2I+Fs7wFGQd+gQlK5pXWeT9yh8Oh8HzpTWhQrddqSQURRd7FfbG\nc4AsK1AUXfBV3nfHDLAsh2QykbbNZecwd6rL8NjmEp59yzAUXC4BdjuHSCQBny8CSbLKMgYykthz\nuUQkEjIikUSGZ+cebzCO+/+4D4mk8f/p8pXTcFHDlIKsg+NoK2VboeRd6OkRkVKjEqNbmtirvIhm\nLlBVXfCpKcFnUT4QBAlVNV5oGzPMvm0pwSkZNK0JPIeDRyyWhNcbKWvT43wzlNhzuQRIklywTuR4\nUsbP/7gP3qDxeA1zqnHTJXMLsg6CsIyRK5mCqJ1SvYOwxJ7FaOkXfNr3x4rwlQdDnYMy2ay0dYXR\n0RvJ95KyQo/gOZ084vEkenvDFdNNO14Giz2XS4AsKwiFCiPyFFXFoy8cxMmOoGHf1Fo77rx2EUiy\nMCcPt9uaZVvJVJ7SGYDWkVp5X3xL7I0fraNTE3xWDV/5Uu3iMWuyw7C9pcjpW5bVfB3tdh7xuITe\n3jBiMUvgjRZd7LlcAlQVBRN5APCnLSfQnMGE22lj8bUblkAo0PQifaybJfIql4oWekBlCj3AEnu5\nol/wWU0b5Uqm9G2mC3Qh4HkaHo8IUWQRiSTg9YYRixWmYcCsiCKLREIGw5AFmxa09aMOvPDhScN2\nmiLx1euWoKZAYzmt2ecWgCX0AFRmChewxF4u6U/pKiBJAhRFVuxNRLnRmMFm5VRHEF2+wsw8JUkC\nosiiqsoGjmMQCsXh81k1eLlAT9fqncm5nI07FMfO+vGblw5l3HfbXy3AnDpjA1C+cLstY2QLS+gB\nqEzLFZ1+sWd9FXKBJvjSffgswVfaTPSImFprN2zP9+xbmibhcPDweGwgSQJ+fxR+f9R0M2mLgWah\nIqbV5OVyNu5QdPui+Pmz+yDJRiOVay+ciTUXTMrLcTOhWakQlsizKMwItHJAt1wpBbPUHTu24Y03\nXsX+/XvR29uDeDwOu92OadOmY/HiBlxyySZccMFiw/NuuOEadHScS9vGsiyqq2uwdOkyfOYzn8O8\nefNHfE4m7r//IaxY0TS+N5YnivF5ZfN5aL5mKgiCSAlp3eZmrOjHf+aZv2Dy5NHZMqxfr633/feb\nx3z8odaTLd/5zj/hE5+4JmfHzxVNC2pxtiuUtq3lSCeuXD09p8chCIDjGPA8A4IgEIslEArFKtbk\nOB8QBAG3W0AiYeyuHc+4tJGIxiX87A/7EIwYU+2rFk7AJ9fPytmxRkIQGMtKxSKFJfQGQFEEJKl4\nZ9ze3h780z99B7t3twAA6uqmYvnyRgiCCL/fj6NHW7F//z789rdP4YorrsL3vvevGV9n1aq1qK6u\nBgAEAn4cPnwQr776Et5441V873v/gssuuyLjc2pqqgEQGYVIdXVN7t5ojijm5zUatDo+NWVUSpJk\nysQ6Vxf48QjAXDDwM8zE9u1b0dvbU8AVjY7G+RPwpy0n0rYdbwvAG4zD4+DG/foMQ4HnGbAsjURC\nQjhcmNmqlYY21kxEPJ4c0icvH2JPVhQ89OeP0NZtNNueNdmJ2z6xsGCii6II2Gzj/85amAdL6A2C\nooozFzYQ8OPuu29De3sblixpwH33fdsQTVJVFfv378V///cTOHny5JCvdcstX0yLNsXjMfzoRz/A\na6+9jH//9x9i1ao1cDpdGZ+jCRGi5GfjFvvzGguqqkeM1ZTg09eZ7VSDn/3sl5AkCbW1xgaCYjL4\nMxzMV75yZ0kLvboaGyZXizjXk26rsutIFzY1Th3Ta1IUkYreqaqKWCyJUCheElkDM0JRJFwuAdFo\nYsSJF7kWe//71jHs/9j4/a5ycvja9UvAFqgJBLCsVCyMWIVZgyhWvd5PfvL/o729DUuXLsP99z9k\nEC3a2ggsXboMP/rRf+Gb3/y7rF+b43h861t/D0EQEImEsX371iEfq4kOJS81ez/4wfexfn0Tzp1r\nH/drlcrnNVb0bt2BtXzZWCDU1U3FjBkzQdPWPVquydSUMVqbFZIkIAgM3G4RbrcIgiAQCETh9UYQ\njSYtkZcnaJqE2y0gHI5nPdYsVzV7b+9uwxvNZw3bOYbC165fCpe9cNE1qy7PIhOW0MtAoX9Rzpw5\njbfffhMA8M1v/j0YhhnxOZlqzoZDFG2YNk2rN+ro6Bj2saqKlNgrxfNFqX1ewyHLMq688hJs3Lga\nkUh6Wuf999/F+vVNWLeuEe+/vwWKovTdaJCIxcLYuHE1rrzyEihKf3T1hhuuSRPLL730PNavb0rV\nyd1447VYv74p9TOUqH7zzddw1123YvPmDdi8+SJ8/ev3YO/ePWN+n2agsd4YJW0940NghFFZ/eJO\ngMdjA0WRCIfj6OkJIxyOWyPK8oxuhhwMxkdtJj1esffRyV7892tHDNsJAHdduwjTJxo9GvOFVZdn\nMRSW0BuCQkb1tm59H4qiYO7cesyZk7+ROOGwJjRYdmRhpIs9kiw9sVeKn9dQUBSF5csbIcsydu1q\nSdvX3LxzwN939H3mWqSvpaUFsiyjsbEJDEMP2blbVzcNV111NQRBs1G4+OJLcdVVV6d+BME4Z/qR\nRx7CP//zd8EwDNauXY8JEyagpWUnvvGNe3DgwL4xv9dyZ/pEO2pc6WOiVBXYnWEkGk1r/mQejwiP\nRwRFUYhEEujpCSEUsurvCgXH0an061jtaMYq9s71hPHgcwegZIjS3njJXCybV7i6Zqsuz2I4rPzP\nMBSqXq+1VfNcWrBgYd6OcfRoayq6kynNmQndG46iyFHVkeWbUv28hqKpgpw5+gAAIABJREFUaSW2\nbHkHLS07sX79RantLS07UFVVDVVV0dy8I+05ughcsWJl37xoIi2drovvhoZlaGhYht27WxCNRnHv\nvd8YsRnj2Wefwa9//UTq81MUBT/+8b/h+eefwyOPPISf/vTBcb3fcoUgCDTNn4BXdpxO297S2oWL\nl08Fy1JgGAosS0NVVSQSEoLBmBWxKxKiyILnGfh80XGfp0dbsxeKJvGzZ/YhmiGCuGHpZFyxatq4\n1jNarLo8i+EoqtCTAgG0P/JrhA8egiqVj/s7QdMQFlyASbfdAdrpHPfr+Xx+AIDb7cm4f8eObXj9\n9VcM22+77c4RL+qBQAD79u3Gz372n1AUBfPm1WPZshWGx33ta3cP+Rp2ux2vv/4eSBIlIfZK4fMa\nDY2NqwAAzc3bU9t6e3tw4sTHuOyyK6CqKt5663V4vb3weKoAaCIQAFau1J6rW7XoDLRsGW3d1+23\n35kmkkmSxJ133oPnn38O+/btgSRJBakBfOml5/HDH/6zYft1192I++7LvqYylzTOrzUIvUOnvGB5\nBhxDIpGQEY1GIGfwSbMoHA4HD4oi4fVGclb3mK3Yk2QFDzy7H50ZDLXnT3Pj81fML6jg8nhEqy7P\nYliKKvTaH/k1QvvKL1WkShIiB/ah47FHMPUb9+X9eCdPfoyXX37BsP3662/KKFyGEm319Qvwwx/+\nONXtOZDh7DE4jh8QVSJGvMg9//yfsG+fsd5L3/bAAz/NmFK8995vwO12D/va2VCIz2s0zJw5CzU1\ntThx4mP09HSjuromFbFraloFQMWbb76G5uYd2Lz5SvT29uDjj4+jtnYCpk+fmfE19RQvkD7GTzdo\nHs66Zd26DYZtHk8VHA4ngsEA/H5fQe10fvKTn8Nm6zcsHs6mJV+QJAGGobB4bi2qnDx6A7HUPllR\n8daOU7hwyeSCr8siHYIAnE4BqqrC54uM/IRRMpLYU1UVT77aitYzPsNzJ3gE3HvdEtAFNJ/XBa8l\n8iyGo6hCL3LsWDEPP25iH+dm/W63Zt3h83kz7r/ppptx0003p/49kkntQNHGMAxqamrR0LA8ZZ+S\niZHsMQBNXOgpxOFSJfv27ckotHTeeeetjNtvu+3OrIReKXxeo6WxcSVeffUltLTsxOWXX5WK2DU1\nrYYeqdOFXkvLztRzsmFglFWWFagqUjY5AAyib+LEzO78NpsNwWAAicTwzQe5Zv78hTkR+NlCEARo\nmgRNU2AY7U+C0C7yyaSCxvm1eH3nmbTntLR2WUKvyGgeeZmNkHPJcGLv1R1n8P4+47lE5Gh8/Yal\nsAtjr+cdLTzPgONoS+RZjEhRhZ44d25ZRvR0+Nm5aQSor1+AV199GYcPZ56POFqyEW1jRVHUVGeo\noigZo0b/+I/fxz/+4/cN23/wg+/j5ZdfGLepbzl9XjpNTavw6qsvobl5R5/Q24mpU6dh0iRNdNXV\nTU3V6elCT4v2jZ5+Yaf95+hGzToMQ6fSXbk0bS5V9PdPEASqqmwgCAKSJEOSFMTjmnnxwCj1ink1\nBqF34EQvonEJAmeVNRcDhqHgdPIIhxOIxfJf5pNJ7O0+2oVn3jbe3JMEgS//9WJMrrblfV06NE3C\nXkDbFovypqhdt1PuuBP2pUtB0IW7C8oFBE1DXLwUk267Iyevt3btehAEgWPHjuD48dKPcupee1pH\nbuHvJsvt8wL6RVtLy060tZ1FR8e5NCHX1LQK58934MyZ06OO6I2E3s2ro0X9dBGoRWhpuv9UQJJa\nNLBQ/7Vf+MKncdFFq3Djjdfiscd+DUkaffckQfSvm6L639PAtJaqAj5fBD09Ifj9UYTDmh3H4FKE\neVPdcIrp5yRJVjIa4lrkH0Fg4HBogqsQIk9noNhr74ng1385iEz3RLdcXo8LZlYVbF0EAbhcVvOF\nRfYU9faUdjox/b5vFXMJo0bvRM0l06fPwMUXb8Lbb7+B//iPf8P99z+UlTdcMUnvyC1sk0Y5fl5a\nvd0MnD59Cs899wcA6UKusXEV/vznZ/GXvzyHc+faMWPGzFFNv6D7bpZkOTtbj/4pHQAGXb70zQPT\nv9oc6NQjDFFALWqGUUUHq6trcPvtd2HhwkWgKBLbtn2IJ554FOfOteO73/2+/sqp1+//07im/gil\nHqXMtJDsOsdJksDy+lq8uyfdg7C5tQurFk7M/g1ajBuHgwdNk/D5IkVpBEskJLy+9SSefLUV8QzN\nGZubpuHi5XUFXZPHYzNE6S0shsPy0Rsl+Zqc8c1v/j0mT56C/fv34utfvwdHj7ZmfNy+fXtS/m6l\nwMDJDoWkHD8vvfv22WefAUmSg4SeVg/4xz/+HsDo07a1tdpUh5MnT4zwyJHRrXT0hg9ZViBJSurv\nimKc06uLQn3Cx+Af/aJEknp9HIkLL7wQd9xxFy68cD3WrFmHb3zjW7j11jvw8ssvoL39bF+6tV/Q\n6esaak2Z1jVWMk3J2H+8BwnLH68gkCSRsgzxeosj8vzhBB780wH84tn9CISNdatL51Tj05fmz8cz\nEy6X0Bdtt0SeRfZYBSdjQLuo5TaK5Xa78ctfPob/83/+Hvv27cGtt34OU6dOw6xZs8HzAnw+L9ra\nzqK9vQ2AFg2aODF3xeFPP/3EsA0UmzdfiVWr1mTcpzVpDF+3l2uK/XmNhaamVXjuuWeQSMRRX78g\nbX6uy+XGvHn1OHJEE6y6KMyWiy66BLt3t+Bf/uV7WLVqNex2zZH/nnu+Cpcrt40OAyN7OpoAS7eA\nSX+OmnrccL5zF198GR555Fc4dOgwJk8e24zZXLBgugc2nkY41p9GjidlHDjRixX1RhFokTsYhoLD\nwSMaTSIaLWxjEKB9V7cfOo//ef0oQkOMU3PaGNx17aIhjczzgd3OWpMvLMaEJfTGyEgWFmOhpqYG\nDz74CLZu/QBvvvkaDhzYh+bmnUgmE7Db7airm4YNGzZi06bLRz3SayR27Bh+nuu8efVDCj1Ab9JQ\nQZJkKrKSb4r5eY2FFSua+j4fJWPErqlpFY4caQVJkli+vHFUr3399TchHA7h9ddfwYcfvp/qnP3i\nF2/PudDLJ6UyC5amSCybW4MPDqSPv2tp7bSEXh4RBBaiyCAYjCGRKHz01BeK46lXW7H7aPewj/vS\nVQsL2pjDcTR4ni3Y8SzMBaHm+cz60UcHMWXKjHweoqhYrvhGSm2ShkX58Oijv8Ljjz+C3/3uOdTV\n5Tai19FxCpMmZX8u2nO0G/f/Md0VQOBo/Oxr6wvqlVYJEAQBp5MHQQCBQKzg5w5VVbH1ow789o2j\naVHcwUyuFvHZy+qxsWlaVhM0cgFNU3C7tRGHVjTPYixYEb1xQtOkJfYGMXBkVyFGyFmUJ/fd9xWs\nWNGE2bPngiAIbN/+IZ577g+4+upP5lzkjYVFszzgWArxAZGlaFzCwZNeLJ1TeFNns0LTmnVKPJ5E\nOEMtXL7xBuN48pXD2Ht86K5qu8Dgc5vrsWrhBBAEMapxaeOBoghL5FmMG0vo5QBL0BjRU7la3V5h\nUrkW5cWMGbPw4ot/QVdXJ2RZxtSp03D33V/FTTd9tthLAwAwNIWGOdXYcagzbXtLa6cl9HJEMVO1\nqqri/f3n8Ls3j2WcWavTtGACbtlcD6etP3U62tm4Y4EgALfb1vd3S+RZjB0rdZsj8mG7Yha0jlzV\nmg9qUVRGm7oFgObDnXjwTwfSttkFBv/11QtBjXM0XiVDkgQcDr4vOhYteKq2NxDD468cxoGPe4d8\njENkcMvl87FywdA2R7qRcz7EXlWVzeqwtcgJVkQvR+jTIiyxZ2RgKrdQXbkWFrlgyexqsDSJxIDy\njFA0iSOnfVhYQJNcM8GyNBwODtFoEpFIYVO1qqpiy75z+N+3jiIaH1qYrVo4ATdvrodTHL4BIl+R\nPY9HtESeRc6whF4O0T32rMiVEe2OXbUaNSzKCo6lsHh2NXYd6Urb3nykyxJ6o4QgALudB8NQ8Puj\nBa9t7vHH8PjLh/DRycwzsgHAaWPx+cvnZ/RRHIpciz23W0jznrSwGC9W7iHHDJwmYGGkWAbLFhZj\nJdNFf9eRLihWaDpraJqCx2ODqqro7Q0XVOSpqop3drfhu49uH1bkrV00Ef/3jtWjEnk6A8Uew1Bj\nXqs2CcTyyrPILVZELw/oQs+KWmVmYKOGFd2zKHUa5tSAIgnIA76n/lACx9v8mDe1fDwKi4XNxoLj\nGIRChW+46PJF8fjLh3Ho1NACz2Vn8YUr5mP5vPH5I443sme3c+A42hJ5FjnHEnp5whJ7w6M3r1g2\nLBaljsjTWDSrCvsG2W+0tHZZQm8YaJqCw8FBlhV4vZGCdt4rqoq3d7XhD+8czzijVufCxZPwmcvm\nwcbnZlb2WMWeKLLgecYSeRZ5wRJ6eSQf0zPMhhXdsygHGutrMwq9T18617o4Z8Bm06JToVAcicTQ\n1iX5oNMbwW9eOozWM74hH+NxcPjilfOxdE5Nzo8/WrHH8zTEEZo+LCzGgyX08owerbLE3tAMju5Z\nnbkWpcby+lo88UprWl1eTyCGkx1BzJrsLOLKSgt9Tm0yKcPrDRf091hRVbzZchZ/fPc4EsmhMwTr\nl07GZy6dCzFHUbxMZCv2OI6G3c4DsLzyLPKHJfQKgCX2smPgvFwrumdRStgFBvOnuw21Xi2tXZbQ\nQ3pHbTBYmNFgAznfG8FjLx3C0bP+IR9T5eTwpSsXYPHswphdjyT2WFYTxYAl8izyiyX0CoQl9rLD\nGN2zpmpYlAZN82szCL1OXL9xdkVfqHmegc3GIhaTCh/FU1S83nwGz773MZLDdPJuXDYFN10yFwJX\n2EveUGKPZSk4ndZoM4vCYAm9AmKJvewZ6LsHEFazhkXRWVFfi6dfO4KBv77nvVG0dYUxdYK9aOsq\nFjRNptKOPl+04L+j53rCeOylQzjeFhjyMdVOHl/6xAIsKqLn4WCxRxCwRJ5FQbGEXoGxxN7okGUl\nNXXESudaFBOXncPcqS5DerC5tbOihB5BpDdbxIeZE5sPFEXFqztP47n3TkAaRlxesqION2ycU/Ao\nXiYGij1d3Fkiz6JQFP83oAKxxN7osNK5FqVC4/wJBqHXcqQLn9owu0grKix6mjYel9DbW9g0LQC0\ndYfx2IuHcOLc0FG8GhePWz+xEAtneAq4spEhCFgiz6IoWEKvSFhib/QMTuda3bkWhaaxvha/e/No\n2ra2rjA6eiOYVCUWaVX5h2Eo2O0cVBVFGV8mKwpe2X4af37/BKRhRkxuapyK6zfOBs+W1qXNqsmz\nKCal9dtQYVhib2zo6VySJAGo1mxhi4JR7eIxa7IDJ84F07a3/L/27jwuqnr/H/jrnDMrM8CwirK4\no2YCyohZuKXkUt3b/blkt1XrWj70ljezUq+lddXK6qZp+/Lt2nLL0luWiluZJokgi7gg7oJiCrLD\nrOf3x+EMM8wMDDDDDPB+Ph480DMz53zmwzDz4rPm/4E7R/byTqE8iONYqNVysCyL6ur2XxMPAAqv\nVeGTn07gfHGl0/uEa5SYNWUgBsT4ViseQCGPeB8FPS+jsNc6YncuwzA0fo+0q8QB4XZBLyP/WqcK\neizLwM9PBrlcgpoaPWprDe1eBqPJjO2/X8APv5232X7OGgMgZXg0/jK6D+Rt2GPWU2QyCQICaAkV\n4l0U9HxA47CXnv47du9OxdGjOSgtLYFOp4NarUZ0dAxuvjke48aNx0033Wx3nmnT7kZx8RWbYzKZ\nDCEhoYiLS8DMmfejf/8BzT7GkXXr3sOwYdrWP0kP4XkeaWlp2L07FXl5uSgpud4u9eWt+hCvv2nT\nD+jevUeLHpucLJT3wIEMt5fHVUuWvIgpU+522/W9IXFAGL795YzNsQvFlbheVotQjdJLpXIPhgGU\nShmUShnq6gxeGYcHABevVuKTbSdw8WqV0/t0C/bD7CkDfXYbOoWCFkMmvoGCno/gOBbXr1/HsmWL\nkZWVCQCIjIzC0KGJUCr9UF5ejoKCfBw9mouvvtqIiRMnY9mylx2eKylpJEJChEVBKyrKcfLkcaSm\nbsPu3alYtuwlTJgwscnHOBIS4v6tgtqqtLQEL764pFF9aeHn54fy8jKcOuW5+vI1bQmA7tDc6+fQ\noTSUlpY4vb0j6Rbkh6gwNQqv2YaQzFPXMDEpxkulapuGgCeFXi/sauGNFnKjyYyf0i7gx4NNtOIx\nwMThMbhnVG/IfLAVDxD2rhW3NWsu5D344INIT08HACxevBiPPPIIAODChQv4+OOPkZ2djYKCAmi1\nWmzcuNGj5W6KK+V5++23sX79egDAxIkTsW7dOm8UlTRCQc9HlJeX4/HHZ6OoqBBDhsTj6aeftWtN\n4nkeR4/m4IsvPsP58+ednuuBBx62aW3S6erw6qsrsXPndrz22iokJd2CgIDAJh/j6yoqyvHEE7Nx\n+XKRw/piWeHNNScnG59//n9ury9vWbv2XRiNRoSFhXu7KDaae/3Mnz+n0wQ9QFg82S7o5XfMoKdU\nyuDnJwS8srIar415vVBciY9/OmFXr9a6h/hh9pRB6BvpG7+PjqjVcijqt1dztSVvxIgRePrppxEZ\nGWk5VlBQgH379iE+Ph4GQ/t3nTfmSnmmT5+OUaNGYcWKFe1cOtIUCno+Ys2a1SgqKkR8fALWrXsP\nHGf/o2EYBnFxCYiLS8Dx43kun1suV+CZZ57H/v2/oKamGocOpSElZZI7i++SlSuXY/v2H93S6vTG\nG6/g8uUixMUlYO3adyGV2u5bKbZGxMcnICFhLfLyjrp8bl+pL0ciI6O8XQQCofv2fwfO2Rw7XVSO\nG5U6BPnLvVSqllEqpVAqZTAYTF5Z8FhkMJqx9eB5bEu7YLOXsDWGASaP6Ik/J/eCVOKbrXgA4O+v\ngFwuaXFXrUajQUJCgs2x22+/HRMmTAAAPPnkk7hx44ajh7YbV8oTERGBiIgIqNVdZ13JjoD1dgEI\ncPHiRezduxsAsGjRYsjlMnBc028UjsacNcXPT4XoaKG1obi4uHUF9RGXLl3Ezz/vAQAsXPi8Xciz\nZjbzMJnMGDz4ZnAc6/IbsLvqy2QyYdKkcRgzZgRqaqptbjtwYB+Sk7VITtYiLe03m9uqq6swZswI\nTJo0DmZzwwfwtGl3IzlZiytXLgMAtm3biuRkrWWc3PTpf7Kc0/p+je3ZsxOPPz4LKSmjkJIyGk89\nNRc5Odmtfp5dTY9QlcPlVI6cuuaF0rhO7KINDlZBKuVQXl6Lyso6r4W8c1cq8NJnh/HjwfNOQ15k\nqAr/fEiLaWP7tirk7dy5w/L7UFBwCgBw+PDvlmOFhZcAAPv2/Ww51pI/DEUajbJVIc8ZYVUB3+Fr\n5SGuo5+cDzh4cD/MZjP6949Fv379AcAym9SdqquFoCGTOQ9GHUFa2gGYzWb06xeLvn37ufQYMfCJ\nu2yIXbtNcUd9cRyHoUMTYTKZcORIps1tGRmHrf6dbnNbVtYRmEwmDBumbfINNjIyGpMn3wWlUpgE\nMHbs7Zg8+S7Ll1JpH0Y++ug9rFjxT0ilUowcmYzw8HBkZh7GggVzkZeX2+rn2pUwDIPEAWF2xzPz\n//BCaZrHsgxUKhmCg9WQSFiUl9eiosJ7Ac9gNOG7fWew8j+ZKLpW7fA+LMPgrlt74oVHhqN394BW\nXyshYajl38eOCa9v6yAnvubF7wqFAgMHDmrRNTQaP0gkHMxmM4xGo9MvQrzBq123FbpKfHbsa5ws\nPQ2jueP8EkhYCQYG98PDg+9FgNy/zec7efIEAGDgwJtsjouhxB1vxgUF+ZbWncZj/zqa/Hyxvlr2\nZgw0LLrcXNBzZ31ptcOxf/8vyMw8jOTk0ZbjmZnpCA4OAc/zdkEvM1MIgYmJw5s8d3x8AuLjE5CV\nlYna2lrMm7eg2W7xzZs34YMPPrPUn9lsxpo1q7F16xZ89NF7eOutd1rzNLsc7YBw/JR2weZY/qUy\nVNToEVA/EN/bOI6BUimDXC5FXZ3Ba5MsrJ25XI5PfjqBKyU1Tu8TFabC7DsHoVdE6wOeKDy8G7p3\n74ErVy4jL+8o7rlnGo4ezQXDMOB5Hnl5RzFp0p3Iy8sBAAwePAQSiWsfjQwDBAWpYDabcN999yMr\nK6vJ++fn57f5+RDSUl4Nep8d+xp51096switYjQbkXf9JD479jX+PuyxNp+vrKwMABAUZL/YJ8MA\nGRmHkJq63e622bPnNPuhXlFRgdzcLKxd+6al1TAhYZjd/Z588gmn51Cr1dix45dmnkX7KSsTtqDS\naBwvjpqe/jt27dphd9y6vqw/7MQWPp7nUV7uWn21RGJiEgDh5ygqLS3BuXNnMWHCRPA8j717d+HG\njVIEBQmbr2dmCsFv+PCkNl3bkUcfnWMTklmWxZw5c7F16xbk5mbDaDS6/EHXFoWFl/DVVxtx7Fge\nzp07g5iYnti48Ru7++3duxu7dm3HyZMnUFlZgcjIaEybdi/uuuvPXl22IqabGqGBClwvr7Mc43kg\nu+A6Rse3/8xna1IpB6VSCqmUQ22tuEyKdwOe3mDC/w6cQ2r6RadLtnAsgztH9sRdt/aCxI09GnFx\nCZagx/M8jh/Pw6BBg1FcfAV5ebkwGAzIzxc+i+LjG1oA58+fg8rKSgA8oqNjsHjxC1CphPFnHMdA\no1GBYYCqqhosXbrUbeX1hMrKSvzxR/Mtzn379m2H0pD25NWgd7bsQvN38mHtVf7z589i+/Yf7Y5P\nnTrDYdBzFtpiYwdi1ao1DrsCm1oeQy5XtKi8W7f+D7m59uO9xGMbNrzlsEtx3rwF0GjaviZWS+tr\n3rw5Ds/TVH21RK9evREaGoZz586ipOQ6QkJCLd22Wm0SAB579uxERkY6UlImobS0BGfPnkFYWDhi\nYnq16dqO3HrrKLtjQUHB8PcPQGVlBcrLy9plOZ1z584gLe033HTTYPC82WYsorWvv/4CERHdMX/+\nAmg0QTh8+BDWrFmFP/64ikcffdzj5XRG7L5NTb9kczwj/w+vBT2FQgqlUhhqUFtrQEVFXTOPaB+n\nC8vxybYTKC513ooXE67G7DsHIaZb23tJGktIGIbU1G0oLLyInJwsVFVVYsiQOISEhODgwQPIzs6E\nXq+33Ff0yitvWiYWvP32m/jyy43429/mQiLhoNE07HYREBCAQYNa3sPQnnbs2IF//vOfzd6PWh07\nH68GvT6anh2yRU/UR9PTLecRw42zWVUzZ96PmTPvByDsBjF1atOL1FqHNqlUitDQMMTHD8WwYVqn\nLSDuXF4lNzfbYdAS/fLLXofHZ8+e41LQ02iEpRXKyhzX14wZf8WMGX+1/L+5RX2t60smkyI0NBwJ\nCUJ9uasRJDFxOFJTtyEz8zDuuGOypcVOqx0BQLiIGPRc7bZtrW7dIhweV6lUqKyssHzgedptt43G\nqFFjAQgzsk+ePO7wfq+++m+b10Vi4nCUl5fjm2++xKxZf/PqIPHEAeF2Qe/E+RuoqTPAT9E+Y2FZ\nVuieVSgkMBhMqKrSwWAwtcu1m6MzmLDl17PYdfgSnP0qcSyDu2/rhSm39HRrK561+PiGGa1ff/0l\nAGDw4DgEBQVj//59+OabrwAAEokEgwc3THQTQ57ZbEZtbS2USj/I5RL4+9suhLxlyxYsXry42XJ4\nM0RNnz4d06dP99r1ifd4Neg9PPjeDj9Gzx0GDBiIHTu2Of2gs+bKBA1vr4m3dOlyLF263O64u5ZX\niY0diNTU7ZaxjW3lrL4YhrF06Qpfrb+GVpuE1NRtyMhIrw96hxEVFY2ICCF0RUZGWcbpiUFPaO1z\nP1+ZPedqORyF/9jYAdi6dQv0ej0Uipa1OLtTnx4B0KhlKKtqCMcmM4/s09dx683dPXptmUwChUIK\nqZRFXZ0RN27UeH38nbVTl8rwybYT+ONGrdP79Izwx6NTBiEq3LPLccTE9EJQUDBu3CjFb7/9CgAY\nMiQOwcHCUInffz8IQBgn3bgH45lnnsTJk8fRq1cfLFu2zC7kAcC4cePw7bffevQ5ENJaXg16AXJ/\nt4xx6+huu20U1q37NwoKTuH06QLLzFvi2MiRyVi//i2cPn0KZ86cdnnmbUuJEzcYRlyAufXjwcTQ\nlpl5GEVFhSguvoJ77plqc/v332/GpUsXPd6i1xnk5GShe/ceXg15gDAzNDE2HHuOFNocz8y/5pGg\nx3EsFAopFAoJTCZzffesb/2RrNMLM2r3ZBY6bcWTcAz+nNwbk0bEgGunPzzi4xPwyy97YTabER7e\nDWFh4fD3DwDHcTCZTPX3GWr3uNdfXweTyYTa2jL4+wtDThr3jAQFBTkcY90WtbW12LdvHwDg6tWr\nqKqqwo4dwtjjMWPGQKlU4tChQ3jooYfwn//8ByNGjHDr9VtTHuKbaMFkHxAT0xO33z4Be/bswmuv\nrcaGDe83uTacyFdaZtpbTExPjB07Hj//vBuvv74a69a951J9tRbPo363ANsJHOKsPVcI4+164uLF\nC9iyRfjL3zrIJSYKQe+HH7bgypXL6NmzV4t2v5BIhOcvfmB1Zjk52di7dxeeeOLv3i4KAGHx5MZB\nL+9cKer0RihkbX+LZRhALpdCoZCCZRnodIZ238GC53nU6IyoqNajvEqPipqmvuvQVMNi7+4BmD1l\nICLD2ndR3bi4oZZhI0OGxAEQllLp1y/WMpPfeikWEcMAYWEBYJgAvPLKKy510bpDSUkJnnrqKZtj\n4v/37NmDqKgo1NUJYzCb2n6wPctDfBMFPR+xaNHzOH78GHJzszF//uNYuPA5xMbaL+uRk5NtWXjX\nncuvdDQLFz6PkyeP4+jRHDz11Fz84x+LHC6DkpubbVkPz53MZnN9Sx/rctduYmISLl68gM2bN4Fl\n2UZBTxg/+d13wqzTlnbbhoWFobDwIs6fP4eoqOgWP5+O4o8/ruLFFxcjIWEY7r33r80/oB3ERmvg\n7ydFZU3DtlAGoxm5Z0qQNKhbq88rk3GQy6WQySQwGIyoqdFBr3eZNzt7AAAYsklEQVRfkOd5HrU6\nE8qrdaio1qOixoDyKl1DaKvWo7xaCG8V1XoY2xgsJRyLv4zqjTuSotutFc/ajBn3YcaM++yOf/yx\n4/1jKyoqIJGwiI6OAMMAX3/9tUuzVluD53kYjUZwHGdpLYyKimp2TF9OTg6SkpLQr59nejWsuVIe\ns1mYVOXtGd7EFgU9H6HRBOHDDz/F0qXPIScnGw89dB+ioqLRp09fKBRKlJXdQFFRIYqKhJYDrXY4\nIiK6g2EAiYRt81/3n3/+WZMTKFJSJiEp6ZY2XcOdNBoN3n33E7zwwvPIzc3GrFn3IyoqGr1797Gp\nr8uXiwAIrWfdurmvK43nrbt2GUvXblOhT6tNwpYtm6DX6xAbO9Bm/9zAQA3694/FqVP59eVtWdAb\nPXocsrIy8dJLy5CUNAJqtTBzce7cvyMwsO0zmX1BZWUlnnnmSQQEBGDVqtfBcb6xFRbLMhjaPwy/\n5tjuQpKZf63FQU8q5SCXSyCXS2E0mqDTGVFVpXP5g5PnedTpTQ0hrZnvxnb6I7FvjwDMvnMQuoeo\n2uV67iCXcwgPD0F+/kmsXLkSISEhWLZsmUeutXPnTgwePBiLFy/GI4884vLjsrKyMGvWLI+UqTU2\nbNiA9evXAwAmTpzo5dIQEQU9HxIaGob33/8EBw/+ht27U5Gbm4OMjHTo9Xqo1WpERUVj1KgxSEmZ\naDMzDECzW6Y1Jz09rcnb+/eP9amgBwChoaF4552PkJb2G/bs2Ym8vFxkZByGwSDUV2SkUF/jx9/R\n4i3jWoLneQg9pmLoYy3HrUOfuMuF2Wx22GKn1Sbh1Kl8sCyLoUMTW1SGqVNnoLq6Crt27cDBgwcs\nM2cffvjRThH0dLo6PPvsAlRVVeH99z/1ub00tQPsg17umRLoDSbIpE0H0oZwJ4HJxEOns1/YWKcX\nW94M9UFN5zTA6Y2+08LPcQymjemLFG20S7vR+Ap/fwVCQ4XX2KBBg/D555977ForVqyw9Dr06NGy\nSWqffvqpJ4rUajNmzMDYsWMBOJ5ERbyD4T3cxnrs2HH06OGeZUhI84TxZL7zRt+VsSxj6YZxx8zd\nzkxcXsXRgslGoxFLlixCXl4uNmz4EL1792nVNYqLLyAiwjPvRUaTGQvWHUCNznZixN//3xAMjbXd\nKo1hAKlUArAManRGlJTXoeRGDa7dqEF5leOWN52PLJfiKgnHoH+UBg9OHOBwT2BfFhTk16J9sQnx\nddSi18l05XF7vkbs2gVg070L8DCb0eXHsdTV1SEt7QAAoLj4Cqqrq/Hzz7sBAIMGDUZEhNDV/sYb\nr+Lgwf2YP38BqqurbfYp7d27t2WnAm+ScCwS+ofiYF6xzfGdhy+h8FoVKmoMqKw1oLJ+/NuNSh1q\ndb41W7Y5MimLAD8ZAtWy+u9yBPhJ67/XH1fJEOgng1zmG93qLSHsdOEHhmEo5JFOhVr0OjGTie/y\nYcIXMQxsPky6amvflSuXMX36nxzetmTJi5gy5W4ATS94vW7dey6vGenJFj0AyCq4hre/O9r8HX2I\nVNI4vDn4rhL+rZBxnTYAKZVSqFRyAPZLpxDS0VGLXifGcYzV0iDEV/C82JrnuLWvYaJH59a9ew8c\nOJDR7P2+/XZrO5Sm7eL7h0Ih41DnxpmxrSHhGKFlTWUb1gJV8obj9bcp5Z03vLkqMFAJaf04yq5e\nF6RzoqDXyTEMA45jqCvXh9lO5hB/ZuLyE7wlGHa1Fj9fJsx25yCVCl8SCQez2YyhseFIy3O+3V5r\ncawQ3qyDms13q0DnJ5dQYHEBddWSroKCXhdgvQQLdeX6NvvWvoYWP2GB5q7b1etNHMfYBDuOY2Ew\nmGAwmFBbq4fBYALPA+OHRboc9FiGgb9Kah/c/GQIUIvf5QhUyeCnkIClMOI21FVLuhIKel0IdeV2\nPA3BD7Du6m3o7hWOU6uf+3AcC4mErQ92LDiOq1/QVgh2dXUGGJ0sYdKnRwAW3puAHw+ex40qHcI1\nSkSFqxt1oQrf1UophTcvoK5a0tVQ0OtiqCu342sIdA2tfgBj1fJnGxApADrGcawl1Fn/22Qyw2g0\nw2g0obraCKPR1KL6G9w7GIN7B3uu4KRVOI6FRqOkrlrS5VDQ64LErlyzme8Sg/47OzH0WYc/wHZ2\nr+MAaP24zss6CAcEKMBxXP0fOzxMJhNMJjP0eqMl4JHOx89PBj8/GQBqxSNdDwW9Lkwc90Wte52T\no25fwDr4CN+tQ6DwON7mHOJjfS0QNnxeM7D+7BY/yBsHWwCoqzPCZNLTa76LYBhAo/GzTG6ikEe6\nIgp6XVzDRA2zz32QE8+wb8mz/cFbB8HGoVC83f610nzLYOPbm/vMtb6m9THrclufU3xezlqpeZ6H\nXt+xFikmrSeXS+DvrwBAAY90bRT0CABh/IqwzAelva7OeZeu89eGdeua4+NNBztnwZFmiZPWoAkX\nhDSgoEcsxIkaZjO17pGWcdY6SK8j0p5kMg7+/krL+FRCCAU90oi4Vy617hFCOhJqxSPEMQp6xCGG\nYSCRMDR2jxDi0+RyoRUPoIBHiCMU9EiTqHWPEOKrqBWPkOZR0CPNotY9QogvoRm1hLiOgh5xmdC6\nB1qDjBDiFQwDBAb6QSKhdfEIcRUFPdIitKsGIcQbVCoZlEra3YKQlqKg54MOHUrDzp07cPRoLkpK\nSqDT1UGtViM6uifi4uJw++0pGDz4ZrvH3XPPnSguvmJzTCaTISQkFAkJQ3HffQ8gNnZAs49xZMOG\nD5CYqLX8X9xVwxeWYklP/x27d6fi6NEclJaWQKfT1ddXDG6+OR7jxo3HTTfZ19e0aXc7ra+4uATM\nnHk/+vcf4PAx69a9h2HDtGhv4vU3bfoB3bv3aNFjk5OF8h44kOH28rhqyZIXMWXK3W67Pun8pFIO\nAQEKqx1PKOQR0hIU9HxISUkJli1bjCNHhA/iqKgoDBuWCKXSDxUVZcjPz8fRozn44ouNmDRpCpYv\n/5fD89xyy0gEB4cCACoqynHixHFs3/4Tdu5MxfLlLyMlZWKTj3EkJCTE7ljDUize6c4tLS3Biy8u\nQVZWJgAgMjIKQ4cK9VVeXo6CgnwcPZqLr77aiIkTJ2PZspcdnicpaaTl+VVUlOPkyeNITd2G3btT\nsWzZS5gwwb6+fE1bAqA7WNehI4cOpaG0tKQdS0Q6OuqmJcQ9KOj5iPLycsyZMwtFRYWIi0vAM888\nZ9f6xvM8cnNzsHHj/+H8+XNOz/Xgg7NsWt/q6uqwevXLSE3djtWr/4WkpFsQGBjY5GNawhvduRUV\n5Xjiidm4fLkIQ4bE4+mnn7VrfeN5vj4Yf4bz5887PdcDDzxs0zqn09Xh1VdXYufO7XjttVVISroF\nAQGBTh/fntaufRdGoxFhYeHeLoqNxnXY2Pz5cyjoEZdRNy0h7kNBz0esWbMaRUWFiI9PwPr170Mq\nldrdh2EYxMcnID7+LRw7lufyuRUKBZ59dgl+/fUX1NRU49ChNNxxxyR3Fh9A8925K1cux/btP7ql\n1emNN17B5ctFiItLwNq17zqtr7i4BMTFJeD4cdfrSy5X4Jlnnsf+/Q31lZLi/vpqjcjIKG8XgRCP\noW5aQtyP9XYBCHDx4kXs3bsbALBo0WKHoaUxR2P0mqJSqRAd3RMAWjSmqqXE7lyO89xL69Kli/j5\n5z0AgIULn3epvhyN0WuKn58K0dExAIDi4uKWF7KeyWTCpEnjMGbMCNTUVNvcduDAPiQna5GcrEVa\n2m82t1VXV2HMmBGYNGkczOaGbvFp0+5GcrIWV65cBgBs27YVyclay890+vQ/Wc5pfb/G9uzZiccf\nn4WUlFFISRmNp56ai5yc7FY/T0LagmUZaDR+CAxUgmEYyxchpO0o6PmAgwf3w2w2o3//WPTr199j\n16mpqQIAl4JRW4nduSzr/jfrtLQDMJvN6NcvFn379nP7+UXV1UIwk8laX18cx2Ho0ESYTCYcOZJp\nc1tGxmGrf6fb3JaVdQQmkwnDhmnBss5/TSMjozF58l1QKoWdAcaOvR2TJ99l+VIq/ewe89FH72HF\nin9CKpVi5MhkhIeHIzPzMBYsmIu8vNxWP1dCWophgIAABYKDVZBIWAp4hHiAV7tuK6r1+OCHYzhx\n/gYMHWhtNinHYlCvIMz502AEqGRtPt/JkycAAAMH3tTmczlz6lQ+Ll8WWncaj/3zJJZlwLKMW8fu\n5eeL9TXIbedsrKAg39Ia1njsX0tptcOxf/8vyMw8jOTk0ZbjmZnpCA4OAc/zdkEvM1MIgYmJw5s8\nt9CVn4CsrEzU1tZi3rwFzXaLb968CR988Jml/sxmM9asWY2tW7fgo4/ew1tvvdOap0lIi6jVcigU\nwh9RFO4I8RyvBr0PfjiG3DMdb4C2wWRG7pkSfPDDMTxz39A2n6+srAwAEBQU5PD2Q4fSkJq6w+74\nY489jh49mv5Qr6ioQHZ2Ft5663WYzWbExg7A0KGJdvebN2+O03Oo1Wrs3v1rk9dpjjh+zx3KysoB\nABqN4/pKT/8du3bZ19fs2XOaDUEVFRXIzc3C2rVvWlpZExKGtam8iYlJAICMjEOWY6WlJTh37iwm\nTJgInuexd+8u3LhRiqCgYABCCASA4cOT2nRtRx59dI5NSGZZFnPmzMXWrVuQm5sNo9EIicTzbw37\n9u3Ff//7BS5ePI/a2lqEhoZh9OhxeOSRx6BWqx0+xmQy4W9/ewinTuXj5ZdfwbhxEzxeTuJefn5S\nKJVyiG8HFPII8SyvBr3TReXevHybtVf5z507i23bttodnz79XodBz1loGzBgIF555XWHXYFNLa+i\nUChaVN7vv9/icLxXbm4WAOCdd9ZCoVDa3T5v3gJoNJoWXcuR8+fPYvv2H+2OT506w2HQe/LJJxye\nJzZ2IFatWtNk16krevXqjdDQMJw7dxYlJdcREhJq6bbVapMA8NizZycyMtKRkjIJpaUlOHv2DMLC\nwhET06tN13bk1ltH2R0LCgqGv38AKisrUF5ehpAQ50vtuEtFRQUSEoZh5sz74e8fgLNnT+PTTz/E\nmTMF+Pe/Nzh8zP/+9y2uX7/u8bIR95PLJVCr5TTRgpB25tWg1y8ysEO26In6RbpnyQ0x3Ny4ccPh\n7TNn3o+ZM++3/L+5RY6tQ5tMJkVoaBgSEoYiMXG40zfXtiyv0lhOTrbDYCoSJ1I0Nnv2HJeCnkYj\n1HtZmeP6mjHjr5gx46+W/ze3qK/1GnBSqVBf8fFDMWyY1m0fRomJw5Gaug2ZmYdxxx2TLS12Wu0I\nAEK3thj0XO22ba1u3SIcHlepVKisrIBer/fIdRu7++57bP4/bJgWMpkcr722EtevX0NoaJjN7aWl\nJfjww/fw5JNPY9WqFe1SRtJ2MhkHtVpRv+YmTwGPkHbm1aA350+DO/wYPXcYMGAgduzYhpMnj7vl\nfO4Mba3xwgsr8MIL9h/EL730IrZt24rNm3+0aYls6YLLsbEDkZq63TK2sa2aWwPOHbTaJKSmbkNG\nRnp90DuMqKhoREQIoSsyMsoyTk8MekJrn/u1tYXSk8T1HY1Go91tGzasxYgRtzgcekB8j0TCISBA\nbvN6o5BHSPvzatALUMncMsato7vttlFYt+7fKCg4hdOnCzw689YXiTN0XQ18I0cmY/36t3D69Cmc\nOXPaozNv3UUMbZmZh1FUVIji4iu4556pNrd///1mXLp00eMter7GZDLBaDTi3Lmz+PTTj3DbbaMQ\nEdHd5j7Z2Ufw668/4/PPN9ksN0N8j0TCwd9fblliicIdId7lu3/adyExMT1x++3CoPLXXlsNg8Hg\n5RJ5hxj4OI5FU58NMTE9MXbseADA6693jPoSxtv1xNWrxdiy5VsAtkFOnLDxww9bcOXKZfTs2atF\nu19IJMLsRZPJ5MZSt4877xyP8eNvw2OPPYiQkFAsX77K5naj0Yg333wVDzzwiNNuZ+J9UimHoCAV\nNBpl/e8wLZVCiC+goOcjFi16Ht2790Bubjbmz38cp07lO7xfTk623cK7nY31osvOPicWLhTq6+jR\nHDz11FwUFDiur9zcbMt6eN4mhrnNmzeBZdlGQU8YD/jdd98AaHm3bViYMJ6tqa3xfNXbb7+Pd9/9\nGIsWLcG5c2fw3HP/sAmsmzb9FzqdDvfd96AXS0mckcslCA5WITBQCY6jxY4J8TW0BZqP0GiC8OGH\nn2Lp0ueQk5ONhx66D1FR0ejTpy8UCiXKym6gqKgQRUWFAIS12Rp3b7XFxo2f4qefnE+gmDhxEkaM\nGOm267lCDHw8D5jNPHirfdU0Gg3effcTvPDC88jNzcasWfcjKioavXv3samvy5eLAAitZ926ua++\nWkOrTcKWLZug1+sQGzvQZv/cwEAN+vePtQR8MRS6avToccjKysRLLy1DUtIIqNX+AIC5c/+OwMC2\nz2T2JHGdwiFD4jFgwCA89tiD+PXXnzFu3ASUlZXhk08+wMKFz0Gn00Gn01mCe11dHaqqqpwuxUI8\nS6mUws9PBpalSRaE+DIKej4kNDQM77//CQ4e/A27d6ciNzcHGRnp0Ov1UKvViIqKxqhRY5CSMrHF\nW6A15/ff05q8PTY2tt2DnkgIfAx4ngHP85bFl0NDQ/HOOx8hLe037NmzE3l5ucjIOAyDQaivyEih\nvsaPv6PFW6B5grjLhdlsdthip9Um4dSpfLAs2+IJB1OnzkB1dRV27dqBgwcPWGbOPvzwoz4f9Kz1\n7x8LlmVRWCj8QXPt2lXU1tbgX/960e6+K1cuh1qtxo4dv7RzKbs2lUoGhUJm09pOIY8Q38XwvKPt\n593n2LHj6NGjpycvQbogs5l3624bxDdkZx/B/PlzsGLFaowfn4Kamhq72eilpSVYvnwpZs+eg8TE\nJMTHJ7h07uLiC4iIoPei1mAYQKVq2MlCOEbhjpCOgFr0SIckbq3G8zxMJgp8HdHTT89HYuJw9O7d\nF1KpFAUF+fjyy43o27c/Ro8eCwDw8/OzW/pG3Jqud+8+Loc80joSCQOVSgGplLMco4BHSMdCQY90\naAzDQCJhHI7jI77tpptuxs6d2y17MHfv3h1/+cs0zJx5P6RSaTOPJp6kVEqhVMrAsrSLBSEdHXXd\nkk6F52Ezjo8QEXXdNo1hALVaDplMamktp4BHSMdHLXqkU2EYofVB+KACzGYzqJGPEOdkMg5+fnJI\nJLarbVHII6RzoKBHOi3r5VmolY+QBgzDQK2WUesdIV0ABT3S6dm38tFYPtI1CWPvpHb7HVPII6Tz\noqBHuhRxTT6gYU0+ynykM5NKOahUMkgkHBiGWu8I6Woo6JEui2GY+oWYqWuXdC4cx0KlkkMq5ey6\nZinkEdK1tEvQo78giS9r3LVLoa/z6Qpd9SzLQKWSQSaT2L3f0vsvIV2Xx4MexwlbPnEc1/ydCfEy\nCn2dE8+bwTBs83fsYBimIdyJa96JxwkhBGiHoKdSqVBXVwOVyt/TlyLErSj0dR56vQ5SqczbxXAL\niYSFUimDTMbZBDoKd4QQRzwe9AIDA3HlylUolX5gWWrVIx1T49AH0ESOjoLnedTWVkEuV3q7KK0m\nl0ugUEghlTZMqAAo3BFCmufxoOfv74+amhpcv34VKpU/FAolWJajNyjSYQkvXaZ+9i7txuGrhH2Q\nDaiuroTZbIafX8fpVWAYQKmUQS6XgONYu9my9P5JCHGVx7dAA4Q33MrKSpSXl6O6uhomk9nTlyTE\nS/j64Cf8m3gXy3JQKtVQqfx9vkdBLpdALpdYWu1EFOoIIW3RLkGPkK7CuktNbOUzGEyoqzPAYDB5\nuXTEl0ilnKU7lmUZ6pIlhHgEBT1CPMhZ8NPpDNDrKfh1JTIZB7mcgh0hpH1R0COkHTkKfiaTCXq9\n0OpHv42dA8MACoUUMhkHjqNgRwjxHgp6hHhR4+An7sVrNJosLX/0G+rbGAaWljqJRAx1oGBHCPEJ\nFPQI8THOwp/Y8qfTGbvETg++iGEYyOWSRi11FOoIIb6Lgh4hHUDj8AcI4U8MgAaDGQaDESYT/Tq7\nA8cxkEolkEpZS6ATd56gUEcI6Ugo6BHSQVn/6oqBQ2wBFNaQM8NoNMFoNMNgMNE6f42wLFPf3cpC\nIuEs69WJLXSA4zomhJCOhIIeIZ1QUyFQ3NVDaA3kYTab6kOhudO0CHIcA4mEBcexYFkOHMdYtcpR\nmCOEdB0U9Ajpghr/2jcOPWIgFGYGN+z8IYTFhnGDZrPZcps7t4RjGFiCmbD1HGszHk7cjk74Lpaf\ngZjTHIU46+OEENJVUNAjhDjV1NuDo9DkrreTlp6bAhwhhDhGQY8QQgghpJNivV0AQgghhBDiGRT0\nCCGEEEI6KQp6hBBCCCGdFAU9QgghhJBOioIeIYQQQkgnRUGPEEIIIaSToqBHCCGEENJJUdAjhBBC\nCOmkKOgRQgghhHRSFPQIIYQQQjopCnqEEEIIIZ0UBT1CCCGEkE7q/wMIcax6pLyHSQAAAABJRU5E\nrkJggg==\n", "text/plain": [ "\u003cFigure size 1000x1000 with 1 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Plot\n", "\n", "use_polar = True\n", "plt.figure(figsize=(10, 10))\n", "ax = plt.subplot(111, polar=use_polar)\n", "\n", "policy_5_mean_df = policy_5_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_5_mean_df.index,\n", " policy_5_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='r')\n", "\n", "policy_12_mean_df = policy_12_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_12_mean_df.index,\n", " policy_12_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='g')\n", "\n", "policy_34_mean_df = policy_34_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_34_mean_df.index,\n", " policy_34_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='b')\n", "\n", "legend = ax.legend([\n", " r\"GPE + GPI with $\\Pi_{5}$\", r\"GPE + GPI with $\\Pi_{12}$\", r\"GPE + GPI with $\\Pi_{34}$\",\n", " r\"$Q$-learning\"\n", "],\n", " fontsize=\"22\",\n", " loc=\"lower left\")\n", "\n", "ax.set_theta_zero_location(\"N\")\n", "ax.set_theta_direction(-1)\n", "\n", "lines, labels = ax.set_thetagrids(\n", " (0, 45, 90, 135, 315),\n", " (r\"$\\mathbf{w}_2 = [0,1]$\", r\"$\\mathbf{w}_5 = [1,1]$\",\n", " r\"$\\qquad \\mathbf{w}_1 = [1,0]$\", r\"$\\mathbf{w}_3 = [1,-1]$\",\n", " r\"$\\mathbf{w}_4 = [-1,1]$\"),\n", " fontweight=\"bold\",\n", " fontsize=15)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "MlOymzIuhQh3" }, "source": [ "# Figure 5b\n", "\n", "To generate the result for each set of policies:\n", "\n", "```\n", "# Train a keyboard for a set of policies, i.e. replace {POLICY} with 4, 42, 425, 4251 or 42513\n", "python3 train_keyboard.py --num_pretrain_episodes=20000 --policy_weights_name={POLICY} --export_path=/tmp/fig5a_keyboard_{POLICY}\n", "# Evaluate the trained keyboard at regular interval between [-1, 0] to [0, -1]\n", "python3 eval_keyboard_fig5.py --num_episodes=1000 --keyboard_paths=/tmp/fig5a_keyboard_{POLICY}/tfhub \\\n", " --output_path=/tmp/fig5_polar_{POLICY}.csv\n", "```\n", "\n", "Repeat the above steps for multiple runs. Below shows the results for 10 runs." ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "executionInfo": { "elapsed": 12379, "status": "ok", "timestamp": 1596666804399, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "lkACArMNhUbl" }, "outputs": [], "source": [ "#@title Load Data\n", "\n", "policy_42513_path = os.path.join(DATA_DIR, \"fig5_polar_{}_42513.csv\")\n", "policy_42513_df = read_data(policy_42513_path, num_seeds=10)\n", "policy_4251_path = os.path.join(DATA_DIR, \"fig5_polar_{}_4251.csv\")\n", "policy_4251_df = read_data(policy_4251_path, num_seeds=10)\n", "policy_425_path = os.path.join(DATA_DIR, \"fig5_polar_{}_425.csv\")\n", "policy_425_df = read_data(policy_425_path, num_seeds=10)\n", "policy_42_path = os.path.join(DATA_DIR, \"fig5_polar_{}_42.csv\")\n", "policy_42_df = read_data(policy_42_path, num_seeds=10)\n", "policy_4_path = os.path.join(DATA_DIR, \"fig5_polar_{}_4.csv\")\n", "policy_4_df = read_data(policy_4_path, num_seeds=10)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "cellView": "form", "colab": { "height": 606 }, "colab_type": "code", "executionInfo": { "elapsed": 1288, "status": "ok", "timestamp": 1596666805694, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "mm46b10CiThP", "outputId": "1bad8fe4-fa1d-4134-aaec-1805664229d3" }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "\u003cFigure size 1000x1000 with 1 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Plot\n", "\n", "use_polar = True\n", "plt.figure(figsize=(10, 10))\n", "ax = plt.subplot(111, polar=use_polar)\n", "\n", "policy_42513_mean_df = policy_42513_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_42513_mean_df.index,\n", " policy_42513_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='y')\n", "\n", "policy_4251_mean_df = policy_4251_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_4251_mean_df.index,\n", " policy_4251_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='k')\n", "\n", "policy_425_mean_df = policy_425_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_425_mean_df.index,\n", " policy_425_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='b')\n", "\n", "policy_42_mean_df = policy_42_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_42_mean_df.index,\n", " policy_42_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='g')\n", "\n", "policy_4_mean_df = policy_4_df.groupby(\"angle\").mean()\n", "ax.plot(\n", " policy_4_mean_df.index,\n", " policy_4_mean_df[\"return\"],\n", " \".-\",\n", " linewidth=5, color='r')\n", "\n", "legend = ax.legend([\n", " r\"GPE + GPI with $\\Pi_{4}$\",\n", " r\"GPE + GPI with $\\Pi_{42}$\",\n", " r\"GPE + GPI with $\\Pi_{425}$\",\n", " r\"GPE + GPI with $\\Pi_{4251}$\",\n", " r\"GPE + GPI with $\\Pi_{42513}$\",\n", " r\"$Q$-learning\",\n", " ],\n", " fontsize=\"15\",\n", " loc=\"best\")\n", "\n", "ax.set_theta_zero_location(\"N\")\n", "ax.set_theta_direction(-1)\n", "\n", "lines, labels = ax.set_thetagrids(\n", " (0, 45, 90, 135, 315),\n", " (r\"$\\mathbf{w}_2 = [0,1]$\", r\"$\\mathbf{w}_5 = [1,1]$\",\n", " r\"$\\qquad \\mathbf{w}_1 = [1,0]$\", r\"$\\mathbf{w}_3 = [1,-1]$\",\n", " r\"$\\mathbf{w}_4 = [-1,1]$\"),\n", " fontweight=\"bold\",\n", " fontsize=15)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vB8evAxHCsEF" }, "source": [ "# Figure 6\n", "\n", "To generate the q-learning results:\n", "```\n", "python3 ../run_dqn.py --num_episodes=20000 --report_every=100 --output_path=/tmp/fig6_dqn.csv\n", "```\n", "\n", "To generate the OK results:\n", "```\n", "python3 train_keybooard.py --num_pretrain_episodes=20000 --policy_weights_name=12 --export_path=/tmp/fig6_keyboard\n", "python3 ../run_ok.py --num_episodes=20000 --report_every=100 --keyboard_path=/tmp/fig6_keyboard/tfhub --output_path=/tmp/fig6_ok.csv\n", "```\n", "\n", "To generate the results with fixed w:\n", "```\n", "# Make use of a pretrained keyboard. Change test_w to evaluate other policies such as [1,0] and [1,-1].\n", "python3 run_true_w_fig6.py --num_episodes=1000 --keyboard_path=/tmp/fig6_keyboard/tfhub --test_w=1,1\n", "```\n", "\n", "Repeat the above steps for multiple runs. Below shows the results for 10 runs." ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "executionInfo": { "elapsed": 881, "status": "ok", "timestamp": 1596666806583, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "8RubRCQ-EhDf" }, "outputs": [], "source": [ "#@title Load Data\n", "\n", "dqn_path = os.path.join(DATA_DIR, \"fig6_dqn_{}.csv\")\n", "dqn_df = read_data(dqn_path, num_seeds=10)\n", "dqn_df[\"method\"] = \"Q-Learning\"\n", "ok_path = os.path.join(DATA_DIR, \"fig6_ok_{}.csv\")\n", "ok_df = read_data(ok_path, num_seeds=10)\n", "ok_df[\"method\"] = \"GPE + GPI with varying w\"\n", "fig6_df = pd.concat([dqn_df, ok_df])\n", "\n", "test_ws = [[1, 1], [1, 0], [1, -1]]\n", "test_dfs = []\n", "for test_w in test_ws:\n", " test_w_str = \"|\".join([str(x) for x in test_w])\n", " path = os.path.join(DATA_DIR, \"fig6_true_w=\" + test_w_str + \"_{}.csv\")\n", " test_dfs.append(read_data(path, num_seeds=10))" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "cellView": "form", "colab": { "height": 400 }, "colab_type": "code", "executionInfo": { "elapsed": 1491, "status": "ok", "timestamp": 1596666808084, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "7PBgQoxELoAz", "outputId": "497bfb1c-f3d6-4c74-d180-e7b571b9b3e9" }, "outputs": [ { "data": { "image/png": "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\nNGGm7zreB9sfePsbl2NNWYI15bRezq9QEanlLY4tGk1Da5agHw/u3uYsT6zczuZdbVQnXT584TRm\njCvv9YOpYSgqy1wScUeCbiGEEBJ8H2+UKgbDOvRRYVBc+OgX8HOllRSEroG3Pf+y3oML1yU0+24z\nL8RwodE0t+fJF/quXAKwpzHDinfqeGNTI65tcsmS8SyaWYNZQv3t8rhDMu7IAkohhBCABN/HDUN7\n6FwKHXiEfgEdagg1Wpc+272fv/nlXgNvZRig6Ti3EUnQ/6sIMbSUgiCETM6jLV3otWSg1pq2dIFt\ndSleWVfP9r0pbMtgyayRnLNwDFG3tD+d5r563RJ4CyGE2O+YCb7vX/NTWnJtHf9+ysj5nDPuDApB\nge+vvr/L/qeNXsTS0YtIFdL8aE3XKitnjz2dU2sX0pxr4cdv/6LL9gsnnMO8EbOpS+/l5+t+22X7\npZMuZFbVdLa37+I3G37XZftVUy9lSvkkNre+y+82PdZl+9XTr2J8Ygxrmzbw2Lt/7LL9upkfpDY+\nkjcb3uaP257rsv3G2R+hMlLBq3Wv8/zO5Wi/0KmKyV9OuIQyK8qK5rWsaF7b8XPLMvD9kFsnXYFj\n2DzfuIbXWjd2bNeBR9i8i/9TOw17/mUsa3idt9q3drq240T59IK/gDDgkXeXsXb7NopZrUVxO8bH\n5/05AP+76VG2tHY+vsIt56Y51wHw4PrfsSO1q9P2kbERXD/rGgB+tvZB9mYaOm0fVzaGa2ZcBcAD\nb/2clnxrp+2TyyfyvqmXAfDDN/+LtNe5KdDMymlcNvkiAO55/T/wQq/T9rkjTuKiCecCcOeqeznU\nwc/ebcv+Bc/rHMSdWM/eS1223zz3BsqcOMt3v8KK3a902f5XC/4Sx3R4bseLrNr7Rqdttm3yyXkf\nB+Cpbc+ypuGdztsNm08u/BgAj255inXNGztt7+7ZC7VGawi1Jm4muHzM+wBYtucJ9ub2dBwbagiz\nMfT2eexpyuCPXo2KpLFqDEZNtItNb2KjibrFhce/3/kQKa+t0/XHRMdxTu0FADy0/UE8ncPecWB2\nfDCfvVL+7tm22en5lGev52cP4LOn3Ap0/+zFIxE+PvsmoPRn72DH09+9wXjPPfTZlGev52evlL97\nf3/BJwF59g73PffRrU/xf8/9RJd9BtsxE3yLnmjwvcEpCqw1ur0BlMI5+aruU02UAmUSGg4YoE2X\ngwNvIYYLP9TkvWDfS6P4+giNrq8TP9C0Zwq0Zz2CTEhF1mPWhEpaK8sIbI1jmwN6whVgmvLaEEII\n0ZnSx0hxWWkvX9QpHtYa3V5PkCu93XtlZazH9vDexuV4bz6Oc8r7sSZ2X9PbTlYRutIcaT9p6Tu4\nBut+pnMeTW25PhdTNrXluP8Pa8kWfE6aWMmSk0YyfmRZr2scShV1bUZVRY9qyok8n4NH7uXgkvs5\nuOR+Do7jqr28GByGnyHMpw9UTNABQS43KOcO2xvw3v4jRu10zAkLut1HmSY40i5eDF8aTUuqUFLd\n7kzO5+dPbUCjufV9c6ipiA7aOBSQiEuutxBCiK4k+D4GGNonTDfj5TJHpOd02LKb/Mu/AsPCOfnK\nHmf9TDcm7eLFsKXRNLblSWUKfe7rByG/enojLakCN1wyY1ADbyg204k6Zt87CiGEOOFI8D3MGUEO\nv7UeHZRWEq0/tNYE775K4Y1HUU4Md+mfYUS7Tykp1vIuk1reYljSQENrjnTW63PfMNT87oV32VaX\n4oPnTGFCbWJQx6IUlJc5KFkLIYQQohsSfA9jSmnCdMsRCbzDVCPeO08T7FiDMXIq7qIPotye28NL\nLW8xXIVa09CSI5PvO/BOZTz+5/nNbNndzgWnjGXulKpBHYttmlSWu8RdS1JOhBBCdEuC72FM5dP4\n+dKb45Qiv2cz+VVPE+xZB4aJfdJ5WDPPQanemoUoqeUthqVQQ31LjmwJgffmXW38z3ObyXshV545\niYXTqgdtHEpB1LGpKnexDEMCbyGEED2S4HuYUoQEmVYGM8Ha2/QSDW88Bk4Ua+Y52FOWoCJ9r+o1\nY3G0E5NcbzGshBoaWrLdBt5+EPLMa7vY3Zim4IUU/ID6lhw1FRFuuGQqIysPP8fbNk1cxyTimNi2\niWv13e1SCCGEkOB7mFL5dkKv79m8UoXt9XhrnsQdPwtj4QdRllPScWYkiopXobXkr4rhQ1MMvLtL\nNWnPFPjV05vYWZ9m7Ig4rmOSiNvMnFDB2fNHY1uHtxBSKSiLOlSWuZimklluIYQQ/SLB9zBkaB8/\n3db3jiXSYUDh1YfAdKg881ra8qUFH6YbwUiMIERm9MTRp1QxvztbCGhPe93OeO+sT/GrpzeRKwRc\ne95UTppUOajXt0yTikQxpxuOSPEhIYQQxzkJvochnWsf1EWW/oYXCZt34iy+GjOWgHzfTXkMy94X\neEu5NHH0haGmLVMglfXwg+5XH2ze1cbPn9pAImbzl5fPorZqYDXpXcfEsUwMQ2EYClMpTMvAVArL\nVBiD0IBHCCHEiUuC72FGERLmUoN2vrC1Du+dpzHHzMYcO7fEQSjMRCWhksdDHH1+EFLfkiXv9fyB\ntK45w6+f3kR1MsKfXzqDWMTu93UMQ1Eed0nGbQwl6SRCCCGODImuhhnlZQn9w5/1Dtvr8Te/jL9t\nNdgRnIVXlNwy24zG0XZcvlMXR13eD2lozuL18k1QW7rAz57cgGMbXPee6QMKvB3LpLo8QsQx0Voe\nfSGEEEeOBN/DiFKKMNfe7+O01uj2vYStdcX/Ne8gbNgKhok5di72jLN6reF9MMOyMGIVhBJ9iKMs\nnfdpas0S9NLZKVfw+dlTG8h7AX9x2SzK46UtJD6Ya5vUVsYwDJntFkIIceRJ8D2MqCBHUOi7NfbB\ngsZteG8+Qdi8Y99JDFSiBvuk87Emn4py+y4leGAACrNM0k3E0RWGmuZUnlS20Gsw/O7uNv6wfCvN\n7QWue8+0AeV426ZJTUUUw5A8biGEEENDoqxhRBey6LDvVjbaLxC27cXf8CLBrrdRkTLsBZdjjpiI\nKqtGGQP7z2pG4oR2aTPkQgw2paAtnWd3Uwavl9SrTM7nqVe28/rGRioTLte/ZzpTxiT7fT3DUFRX\nRLBMqeYjhBBi6EjwPUwoQsJszwstdT5D4c1HCZt2oNPNxR+aNvas87CmL0VZh9P6XWHFyyBWKX10\nxFGTLQS05rI9Bt57GjOs2lDPm5uaKPgBZ84bxTkLBla3WymoTkaI7svxFkL0LQh8mpvr8f3+fUPb\nnb17DcISJptEaeR+9p9lOVRW1mCaQx8KS/A9TBQXWvrdbtP5DLkX/gvdXo85eibG+AWoZE1xprs/\naSXdXVcprEQFoVt+WOcR4nD4QUhjS46yRKTLtj1NGX7/4lZ2NaQxDcXsSZWcMXfUgEsJApSXuZRF\nbQm8heiH5uZ6IpEY8fiokhfw98SyDHxfgsXBIvezf7TWpNNtNDfXM2LE6CG/vgTfQ0wphQoK4OdA\nh2CYoIweF1rqwoHA2z39OszaaYc/BsNAmQbKdDAiZdI6XhxVoYb61u4rmqzb3sJvn91MxDG5ZMl4\n5k+tJuoe3p+tsqhNRdyVwFuIfvL9wqAE3kIcbUop4vEkqVTLUbm+BN9DRClQhQxhro2gUCgtt7uQ\nJfen/YH3RwYn8I6WYRmVaNMCFKFGAm9xVDW2ZckXOgfeWmuWv1XHU6/sYEx1jA9fOI1ErP+VTA7l\nOiZVyehhn0eIE5UE3uJ4cTSfZVlpNESUl8FvayDI5UoLvHVIfuWDxcD7tI9g1k4/7DEYto2dqCI0\nbLSWsmriKFPQB3aYIwAAIABJREFU1J4jne3cJj6b9/mf57bw1Cs7mD2pkhsvm3lYgbdSxcWVjmVS\nUx5FCpsIcfwoFArcdde/8qEPvY/rr7+am266nmXLnup231WrXuFjH7thiEd4wE03XU8+nztq1xfD\nh8x8DwFDewTtjSUF3fv5618g3LsJe+EVmKMOP/BWysBMVKFMG5AXvzi6lIKWdIH2dOeFW2s2N/DL\nJ9eTyfmcd/IYzp4/esCzE1HXJlnmYCqFUmAa0hpeiOPNd7/7TbLZLD/5ya9wXZfNmzfy+c9/mmQy\nyaJFS4ZsHL7vY1m9h1QPPPCzIRqNGO4k+D7CFCFhe2O/ulYGDVvx3lmGOXYO1qRFgzIOM55AW/J1\nuzj6lIJU1qOlPdeR8aS15g/Lt7JqfQO1lVGuv2g6o6oHtqDSNBQVZS5lMRuFBNtCHK/27NnNsmVP\n8pvf/B7XLVb8mjJlGjfe+DH+8z9/2K/g+9FHf89vf/trgiCgrKyML3zhS0yYMIlNmzby3e9+k1wu\nS6FQ4KqrPsCHPnQ9ALfffhuxWIzt27fT0tLM/ff/N2edtYhbbvkrnnvuGVpbW/nkJ/+a8867EICz\nzlrEE088RywW45prruTSS69g5coVNDY2cN11H+Xqqz8MwOrVr/Hd734TpRQnn7yI559/hjvuuJMp\nUw4/9VQMDxJ8H2E63UTQj6+ZdD5NYeWDqFgFzslXDkpOkuG4EC2XNBNx1CgFodb4vibnBTS35zo9\nj6+uq2fV+gbOO2UcZ84ZiTnA2tuuU0wtkdrdQhxZL7y5mz+9sXvAxytFj+9JZ80fzZnz+q5AsWnT\nRsaOHU8y2bla15w5c7nvvntKHsvq1a+xbNmT3HPPD3Ech+XLX+Ab3/gn/v3f72f06NHceef3cRyH\nTCbDLbfcyJIlS5k0aTIAa9a8yd13/4Bo9MDkVjwe50c/+i/eeON1vvKVv+sIvg+Vy+W4777/ZPfu\nXfz5n3+Yyy67EsuyuO22L3PbbbezYMHJPPvs0zz44C9K/l3EsUGC7yPICHJ42XS/jim8/nt0IUPk\n3JtRdteya/2iFGYkhhGvJJT0fnGUKKVobMuSyfuEgSY85B23qS3Hk6/sYMqYJFedPYWW1syArmNb\nxW6VliHPuhAnAt3LjFJ/Jq5eeOE5Nm7cwC233NRx3vb2NqAYIN999zfZuHE9Shk0NNSzceP6juD7\nvPMu7BR4A1x44SUAzJkzj4aGevL5fMfM/MEuuuhiAEaPHkMikaS+fi+e5+G6LgsWnAzAueeeT1lZ\nouTfRRwbJPg+gsJMa88f7bvbv7WOYNc72Cedh1FxeHUnDdsutoq3YkjlT3E0FfyAdNYjCLu+FsJQ\n87sX3sVQiivPnDTgb3pM02BkpQTeQgyVM+eVNjvdk8GoSz116jR27txOW1trp9nvt95aw7x58/m7\nv/sCu3fvAuD73/9hj+fRGq644ipuvvnWLtvuu+8eqqqquf/+n2JZFp/73CcpFA6sVYnFuqZzOk5x\ngbhpFhuABd2UUT14PwDDMAgCf98HCkmXO97JO9URYgS5fqWbAHgbXgTTxpoygEUiSmGYJmYsjl0x\nEqNiNKE18CYkQgyWXN7vNvAGWPF2HdvqUlx62njK4wOraGIaipqKKLakmghxQhk9egznn38R3/nO\nN8nn8wBs3ryRX/7yZ3z84/+Hb3zjOzzwwM944IGfEYvFezzPmWeezWOP/YG9e+uAYrC8du07AKRS\n7YwcWYtlWWzevJHVq18/or/TxImTyOWyvPFG8TrPP/8MqVT3fUDEsUtmvo+Qfs96Z1sJdryJNWUx\nyuklaFYKZRgYjovhRMEwAAXKRJt2sWGP5HaL4UJBe8brdtO7e9pZtmonM8dXMH9qdX9Pi2kZxCM2\n8YiNY0ngLcSJ6G/+5kvcd9/dfPSjH0IpaGio5777/pPp02d2u/+mTRv4wAcu7/j3RYuW8OUv38Yt\nt/wVX/rS5wmCEN/3OP/8i5g16yRuvPFjfO1rX+GJJx5l7NixLFx48hH9fRzH4R//8et85zvfwHUj\nnHrqYqqqqonHD6+btRhelO4taWoYaWxMER4jUaUR5PCa6/oVfBfefAJ/03Ii7/lrjHhl9+e1bMxk\nFdp0QRkDWkBZU5Ogvl4+RQ8WuZ+9y/shexpTnZ5VrTUvvLmHp1/bSWXC5abLZlEWtQGorIjT3NJ1\nnYRSYJsmtm3i2gbOvv83lNSr7408n4NH7iXs2bOVUaMmDsq5jkQ7dM/zuOOOf2bv3jq+9a1/7TbP\n+liQyaQ7ZupXrXqFr3/9H3nwwYcxekmrk/byA3PoM20YiurqI/9BR2a+D5NSoIIC2rBAFV8YYaat\nS+CtQx+03ldnuzPt5fDffQVz7JweA2+UKuZwm/vyyyTgEMOcUpDJeZ1eCpmcx0N/epeNO1qZM6mS\n954xCdcx+zxPVSJCcl9aSudA/kiMXAhxLLJtm7//+3882sM4bM88s4xf/vJnaB3iOC633XZ7r4G3\nOPZI8H0YlNKobCt+ug2lFMp2UKZNkM922i9oeJf8y7+GfAaVqMYoH4VRMQazdhoqUYO/5VXwC9jT\nz+jxWlasDO3EJOgWx4xQ647ulXubs6x8Zy9vbG4kDDWXnT6BRTNrSlpgmYy7JGKOBNpCiBPC5Zdf\nyeWXX3m0hyGOIAm+B0gRotub8LMpYF9MHGSBA4G31hp/88t4bz6OildiTjoF3VpH2LidYMcavDVP\noGIVaC+PUTMZo2JMt9cybBsVq5BcbnFMyRYCCl7Ag89uYu3WFixTMW9KNafPqaWmorSGT/GoTWXZ\nsfnVsRBCCNEdCb4HwCAgbNtLsG91dXd0GFB47WGCba9jjJqBu+iDnep2h5lWwroNBHs2EDTvwJ51\nbvcn2p9uQu9fzQsxnBiGIpXx2LSrjbVbWzh9Ti1nzRtFLNI17arb45XCsU2qk9KVVQghxPFFgu8B\n0JmWXgNvAG/NkwTbXseaeQ72SeehVOd8LSNWjjF5Edbk3tvHW7EE2pZ0EzH8KQVeEOL5IblCQC7v\n8+q6euIRiwtPGdtn10qlIBaxsCqiOJaJLRVMhBBCHIck+O4nw0vjZVK97uPvfAt/00tYU5bgzL5g\n4NdyXIhVSK6rGPa8IKSpLU/e8zuqErWlC2zY0cIZc0eV1C4+5tqMHhGnoUEeeCGEEMcvCb77wdA+\nQaq5o8RC2N5AfuWDqGgSZ85FGMmRhG31FFb9L0bVOOx5Fw/4WsowMBNV0hZeDHvt2QIt7fkujXRW\nra9HazhlRk2f5zANRWXCHXCHSyGEEOJYIcF3iZTShKkmQt8HINiznvzK34BhoDPN5P7475gTTyZs\n2gaGhbPkWpQx0NursBIVhIYsNBPDl0bT0JrrqGhysDDUvLahgaljk1Qm+n6Oy8tcSTMRQvSL7/v8\n+Mf/wVNPPY5pWliWxbhx4/jYx25l8uQpPPLIw3zve99l1Kgx+L7HxImT+OIX/4FkspxPfeoW6urq\niMcPdL78m7/5IvPmLRiUsT355GP84hc/JZ1OEYvFicViXHfdDZx55tns3r2Lj3zkA0yePBWtQyKR\nKF/4wpeYPn0m//Ef95HNZvnUpz47oOt+4Qt/zec+97eMHTuORx55mLlz5zNhQrGO9SOPPMyLLz7P\n17/+7UH5HQ/HQw89SD6f58Mf/rOjPZSjQoLvEij2lRTMZosVTNY/j/f2MlT5KNzTP4IyHbx1z+Jv\nXgla4551A0a0fMDXM6MxQic5iL+BEIOvuT3fbeANsGFHC+0Zj8tOm9DneVzbJBGzJb1KCNEv//zP\nXyWXy/GDH/yYRCKB1pqnn/4jW7duYfLkKUCxg+XXv/5twjDkK1/5Ej/+8X/w6U9/HoDPfvYLnHnm\n2SVfb9WqV3j00d/z5S/f1ut+Dz/8EL/85U+5/fY7mDhxEgDr1q1l5cqXOq5XVlbGAw/8DIBf/ern\nfOMb/8T99/+0n3egq+9853sd//zIIw9TXl7REXwPJd/3sayeQ8z3v/+aIRzN8CPBdx8M7ROmmvBz\nGQCCHW/ivb0Mc9w8nJOvRFnFxh/O/Muwpp6GzqUwq/sOOHqiDAMjXoH0qRLDldrXMr49U+hxn1fX\n1ZOI2cwYX9HruQxDUZmIoJB0EyFE6bZv38Zzzz3Nb3/7CIlEAgClFBdccFG3+xuGwSmnLGb58j8d\n8bHdf/8P+NKX/l9H4A0wc+YsZs6c1e3+ixefxg9+cE+v51yxYjkPPvgL7rjj32hubuLKKy/mn/7p\nm1xwwUX89Kc/JpNJ8fGPf5JrrrmSb3/7X3nnnbdZt+4d7rzzO/zwh//OJz/5GQDS6TRf+crfsXnz\nJhKJMr7+9W9TXT2i07Uee+wPPPvs03zjG98BioH01Ve/l3vvvZ9MJsN3v/tNcrkshUKBq676AB/6\n0PUA3H77bcRiMbZv305LSzMXXvge6ur28PnPfxGApqZGbrzxOn7969/x05/+uGOG/5FHHubJJx8j\nkUh2GZfnefzLv3yb1157lcrKSqZPn0FTU2OX2fu+7k8qleITn/hk6f8Rj7B+B9+tra2k02ni8Tjl\n5QOf3T0WGEGeoL2B0CvO7unQx3vnaVT5KJxFH+hawSReBfGqw7tmJIo2bKluIoatXCGgqT3XZaba\n8wMaWvPUNWXYuLONcxaMxjA6B9WGoUjGHBzbRBkKQylcSwJvIY413voX8NY9N+DjlVLoHr7usmee\ngz3jzF6PX79+HePGTSCZLO1b4kKhwJ/+9ByzZp3U8bP9gel+//qvd1NZeXjv4c3NTdTX72X27Lkl\nH/P0008xffrMXvdZsOBkvvrVf8D3fV555WXmzp3Pq6++zAUXXMSrr67khhtu7LT/FVdcxaOP/r4j\n1QWKM+HvvPM2P/7xz6mtHcW3vvV1Hnzwl12C0vPOu5C77voXWlpaqKio4KWXXmTixEmMHj2GTCbN\nnXd+H8dxyGQy3HLLjSxZspRJkyYDsGbNm9x99w+IRqO0tbXx0Y9ey623fppYLMbvfvc/vOc9lxCJ\nRDhUT+P63//9DXV1e/jv//4VQRDw6U9/gpEjR/b7/lx//Z+X/N9jKJQUfHuex1133cVvf/tbGhsb\n0VqjlKK6upqrr76aT33qU9h2afV7jxUGAUFbfUeON4D/7mvodDPu0uu7BN6DQSmFEUlKMx0xLCkF\nOS+koSXXUdFEa82W3e08t3oX2+oOVAGKR6wuCy1dx6QqGSViG5JiIoQYVFu2bOarX/0Hcrkcp59+\nBp/97BcAeOWVl7nppuLM7Lx5C7jhhr/oOKaUtJMNG9Zx++1fBSCbzdDW1tZxvnPPPZ+/+IuP9zm2\nW2/9S9LpFK4b4Uc/+i8AUqkUN910PVprxowZ22cqSyQSYfLkKbz11pp9v9PNfP/7/4bneaxd+w7z\n5y/scxwA8+cvoLZ2FABz5sxl5coV3V7rrLPO5cknH+Paaz/Co48+3NFxM5fLcffd32TjxvUoZdDQ\nUM/Gjes7gu/zzruQaLTYnyGZTHLmmefw+OOPcOWV7+d3v/sf7rzz+/0a16pVr3LppZdjWcWc/osu\nuoQ33nit3/dnsHL5B0tJwfdtt93Gtm3buOOOO5g1axaJRIJUKsU777zDvffey2233cbtt99+pMc6\nZJQCnWntFHhrv4C/7lmM6gkYtdNLOo9h2xhuDGWaYJigQXs5wkIW7Ydo3Tm5xHBdQlMWWYrhJ9Sa\n1lSB9kyhI/DesruNZ17bxfa9KRIxm7MXjKa2MsqI8ihVSRdrX3lBpaA87lJe5qBQEngLcRywZ5zZ\n5+x0byzLwPcHnmA5Y8ZMduzYRnt7O4lEgsmTp/DAAz/jN7/5JWvXvtOx3/6c74GaPn1mR252KTnf\nlZVV1NSMZO3at1i8+HQA7r33fjZv3sjf/u3nOvY7OOe7VKeeuphXX32Zt95awxe+8HdUVlbz5JOP\nMW3adFzXLel+Oo7T8c+GYRIEQbf7XX75lfzbv32Xiy++lNdfX8X/+39fA+C+++6hqqqa++//KZZl\n8bnPfZJC4UAKYizWuTHatdd+mK9+9R+orKxk0qTJPeaf9zSu4rcjpX072tf9GU5Kmr594okn+P73\nv8/SpUuprKzEsiwqKipYunQp3/ve93j88ceP9DiHlPLzBIfU8vY3v4zOpbBnX9ipHJqyTOzyaoxD\nZv7NSASzvBYdrSR0koRWnNCOQ7wao3IsVmVtsY73gTNhRGSRpRhelIJMwWd3Y4bWVL4j8F65di8/\neXw9rak8l58+gU9fPY/zTx7L7ElVjKyMdgTeAI5tUpFwJa9bCDFoxo+fwFlnncu3vvV1UqkD79fZ\nbPYojqropptu5nvf+xe2bdva8bNsNnfY5z311CU88sjDjBxZi23bLFq0mPvv/wGnnrq42/3j8Tjp\ndO99SXqyYMHJZDJp7r33Hs4++7yOVJFUqp2RI2uxLIvNmzeyevXrvZ5nypRpJJPlfO97/8IHP3ht\nv8dxyimLeOKJR/B9n3w+z7JlT/a4b3/vz9FU0sy367rs3bu3Y1HDwRoaGobdJ4rDoZQmTDejwwOf\nILWXw1v/J4zaaZgjJh60r4GVqEbbMUwnhpFpJcimirPdZd3X6C7O+im06WIma1DtDQT5HIZtoW1p\npS2GD6UglfVobM0RHjRdveLtOh5/eTszxpdzzblTsfooEZiMObKGQQgx6L785dt44IEfcfPNf45l\nWSQSCUaMqOGjH72ppOMPzfm++eZPcNZZ5x72uN73vg8SiUS47bYvk8mkqaysxHUjfPrTn+v74F7M\nmTOX1tYWFi0qBpOnnrqY++67p8fg8qqrPsg999zJz3/+E/7qrz7T7+tdeukV/OhH93LPPT/q+NmN\nN36Mr33tKzzxxKOMHTuWhQtP7vM8V175fu677x6WLj2r32N4//uvZuPG9dxww4cYOXIUM2fOIpfr\n/oNMf+/P0aR0TyseDvLAAw/wox/9iKuvvrpT2snatWt58MEHufnmm7npppuO6EAbG1Mds26D7eC+\nHirfjtfa2Gl74Y1H8TetIHL+JzAqRu/fEztZgY6Ud3yNrlRx1lxbDlqXNstnEBC212O4Q1NesKYm\nQX19+xG/zonieL2f+yuaNLV1DryXr9nDk6/sYNbECq4+Z0qfnStt02RMTazkWe/j9X4eLXI/B4/c\nS9izZyujRg1O2brDTTsRnQ3n+/nNb36NCRMmDnjRYyaTJhaLUygU+NKXPs/551/ElVe+f1DGdugz\nbRiK6uqyQTl3b0qa+b7pppuYOnUqDz30EM888wyZTIZYLMa0adP4xje+wdlnl14nc7gxvAxhIY3C\nAKXw8+lO273NL+NvWoE1ZclBgTeYsTihW95pRk9r0Kbbr1m+EBMjMVImBsXwoaAtU6C5Ld8p8P7T\nG7tZtmonsydV8oFzJmMafWetlcUsSTcRQogTUENDPZ/+9Ceorh7BZz/7fwd8ns985q/wPI9CIc+i\nRUu47LL3DuIoj46SSw2effbZJQXZP/jBD7jlllsOa1BDKcy2EeS7/wrD370Ob/WjmKNmYM+7pOPn\nhu2g4lWDFjBLC3kxHCgF2UJAa6pAruB1Whj57Ou7ePb1XcydUsX7z5rcpYRgd0xDEY8eX1WQhBBC\nlGbEiBp+/vPfHvZ5fvjDHw/CaIaXQY/67r333sE+5RFjhHnCQveNQoLmnRRWPohRMRpn8TUow9y3\nRWHGy9ESMIvjhFKQ90PqmrLUNaXJ5g8E3lprnl61k2df38WCqdUlB94A0YiN3UdaihBCCHGiGfQO\nlyWkkA8bupDtUu4PQAcehZd+gXLjxZre1kElcBwH7cRkAZk4LmiKJQRb04Uuayq01jz16g6Wr6nj\n5OkjeO8ZEztV+umNUpCIOVJWUAghhDjEoAffpb45H22KkDDbfQkef+vr6Fw77lk3oiIHJd4rhRkr\nJyxxMaUQw1khCGlszZIvdK3zGoQhv39hK6s3NbJoVg2XnTah5Ne2aRrEI5Y00xFCCCG6MejB97FC\neblOTXT202GAv+EFjMpxGCMmddpmOi7aicqstzjm5byA+uYMQTcVhApewIPPbmbjjlbOXTiGcxaM\n7jPwNgyFY5kkYjZR18I0pJmOEEII0Z0TMu1EKQhz3c96B7veRmdasOdd0jngUAojlpRZb3HMyxUC\n6lu6D7zbMwV+tWwTuxrTXLF0IqfOrOnmDEWGUlimQdm+gNuxjINyxY/U6IUQQohj26Cvhlq0aNFg\nn3LQqcAnLHStcKK1xlv/AqpsBObomZ22ma6LtmNDNUQhjohsL4H35l1t3Pe7t9nbkuXa86Z2G3gr\nBa5jUpWMMGpEnDE1cZIxB9uUFBMhxNA666xF3HjjR1i5cgUAL7/8Eh/72A2cf/5S7r77zpLP09tx\nv/71L/jwh9/Pxz52w6COXZzY+pz5Xr58eUknWrp0KQA//OEPD29EQ8FLd+pguV+4dxO6dQ/OKe9D\nqQOfS5RSGLEKjlCPHyGGxP7A+9CFlWGoef6N3Tz7+i5qKiJcc95Uaiq6dls1lKK6PEJZ1D4QaMtr\nQghxFP37v99PLFacGBszZixf/OKXeeaZZRR6qGTWnd6Ou/bajzB16jTuueffBnXc4sTWZ/D95S9/\nuc+TKKX44x//OCgDOtKUUoT5bLfbvPV/QkUSmOPndfq5EY2jrYgEGuKYdWjgHYQhW/ekeOfdZtZu\nayad85k/tZrLT5+AY5tdjlcKKhJu58BbCHFCu3NV19LCp4yczznjzqAQFPj+6vu7bD9t9CKWjl5E\nqpDm3te71m8+e+zpnFq7cEDjGTduPADPP//skBwnxED1GXwvW7ZsKMYxdHRA6HsAeOuex9u4fF9/\neQX5FPbci1HGgduiTFNmvcUxLVsIaDgo8G5szfHLZRtpaM3hWAbTx1cwd0oVM8aV97iwsjzukpTS\ngUIIIcRhO+GqnaiggA5DdBjgbXoJFSnDrCp+6sW0sSZ3zlm34klCdcLdJnEcUAoyeZ+GlmxHjvfG\nna385pnNmIbi6nOnMGN8BbbV89IPBSTiDhUJV775EUJ08tlTbu1xm2M6vW4vc+K9bhfieNavqDKV\nSnHXXXexcuVKmpubO1U2eeaZZ0o6x913381dd93Fww8/zIwZM/o12EER+qA1YcO7kE9jL7gCa+zs\nbnc17P/f3p3HSVXf+f5/fc+pOrV09Q4N3bLjhguKgsSVCEk0UZMxuUbHyTY3mVw1JNeZ8ZcwmWTG\naHwkPJIZmXGc9JibTHSWmKjjhhhwRaMIaguCKCA7NHTTe3d113bO+f1RTQHSLA29Vff7+Zen6tSp\n0x9PF+/69vd8vkH8UOHAnp9IHzAGOhIZGlu78Dwf3/dZub6O597aRUVJhBvnnpoN1EdhWYaSWIii\nAkfBW0REpI/0qtvJnXfeyfr167nttttoaWnhBz/4AZWVlXzta187rte/9957rF69mqqqqhM515Nm\nDPipJACZXesg4GCPPe1Ie2MXlGgZeck7xkBbZ4rGlmzwTqQyPLZ8C8ve3MUZ40v488+ceczgHbRt\nKkqiFCt4i8gwsHz5S9x9998N9mmIAL0c+X7ttddYsmQJpaWl2LbNJz7xCc4991xuueWWYwbwVCrF\nXXfdxc9//nO++tWvnsw5nwSDl07iexnc2vexK8/E2MEe97SCtloLSl4xBjKuT3tXitaOJL4Pexo7\nefTlzbR0JJl34Slccs7YYy6YE3JsRpdECFhqHygi+WPNmtXceef3icfj+L7PCy8sY8GCHzJ79sXs\n3r2TgoKCXr9OpD/0Knx7nkdhYXYaRjQapa2tjdGjR7N9+/Zjvvaf/umf+OxnP8v48eNP7Ez7gPHS\n+K6LV7cZ0gkC48454r5WOIaPFtSRoc8YQyrj0t6ZIp5I47o+nuez6v06Xnh7N9FwgK9efQYTxhx7\nClUomB3xti1d+yKSX84773wef3xJj8+9995a5s//y16/TqQ/9Cp8n3nmmbz55ptcfPHFzJw5kx/9\n6EcUFBQwadKko77unXfeYe3atdxxxx0nfKLl5bETfu1+blcHGTdE0zvvY0JRyk8/B2P3UAJjCJSW\nY4eG58j36NGax96XBrOeXck0zW1JujI+djBIUTDInsY4v3tuI9v3tnPW5DL+9JNnEIs6xzxWwDaM\nHVVA2BncG4x1ffYt1bPvjPRa1tdbBI5yg3ZvneyxysrKue22r/Od7/wVF100+6j7Llz4Dyf0Hr/7\n3W95/PFHGTt2bJ/+7P1hqJ/fUGRZ1qD8Xhu/F+vB79y5E9/3mTBhAk1NTfzDP/wD8Xic+fPnc+qp\npx7xdQ888AAPPfQQjpMNAHv37qW8vJyf/OQnXHbZZcf13o2NHYctDtJbVqqNVONeupb8jMD46Tgz\nrut5PyeEVVI5LP/kPnp0Ifv2tQ/2aQwbg1VPH5/WeIr2eCrXycR1Pf64di+vvruHcNDmqtnjOWdy\nWY/TTIK2TUlhCM/zSGU8Mq5PeVGIgD24H966PvuW6tl3VEvYu3c7Y8dO7JNjBQIWmczhi93JiVE9\nT8xHr2nLMn0y2HssvRriqqqqwrazC3CUlZVxzz33HNfrvvnNb/LNb34ztz137lyqq6sHtNuJMeCl\nkrh1m8BNYx9lyokdKVBfbxnSGloTxLvSue3d+zp4+rXt1Ld0cc6UMq66aDwF4Z7vZwgFu+d0dwft\nbDY39OJ7uIiIiJygXoXvSy+9lKuvvpprr72WmTNnHvsFQ4qPn0ni7loHoRjWqJ6/vRvLguDhS2uL\nDAXGQEtHMhe80xmPl97Zzcr1dcQiQW6adyqnjy854uuj4SCjisNYB42GZzO3greIiMhA6FX4/vWv\nf83ixYu54447sCyLa665hmuvvZYzzjijV286GKtmGjeDl0rh7t1EYNIFGNM96mfZ+J7H/vBhOWF8\nK6gsIkNSPJmhtSMFwL6WLh5bvoX65i5mnjGaeReOI+QcvjQ8gG0ZimIhiqJBjG4kFhERGTS9Ct9n\nnXUWZ50KZkgPAAAgAElEQVR1Ft/97ndZtWoVixcv5mtf+xqjRo3i6aef7q9z7BtuGq91L3iZQ0a9\nA0Vl4Pu4na146QxWWFNOZGhKux6NrV24nsc7mxr4w8qdOEGLmz9xGqeOK+7xNQaIhIKUFoVwAmod\nKCIiMthOuK3B5MmTmTp1KuvWrWPbtm19eEr9w88k8Vr2AGAVVwJgbBs/GMbHxnKi2Il2fE05kSEo\n43rsa+4ik/FYsmIHb2/cx+TKQq6/fAqx6KFzu23LYFsW0XCAkGMT6e5eouAtIiIy+HoVvtva2li6\ndCmLFy9m9erVXHbZZXzjG99g3rx5/XV+fcIYg5/uDt/BEKagFMh2NcHY4IOPhR/uefRQZDClXI99\nTV2kMhmeWbGdmo0NXHLOWOZdeMohnUwsY4hFgxQVOARtjXKLyPB22WUzmTr1VObP/0tmzZrNqlVv\n8G//dj9btnzIF75wI/Pn335cx3Fdl0WLfs7Kla9jjOFLX/oa1133JwA88sjDPProw8RihfzqV//R\nnz+OjCC9Ct+XX345M2bM4LrrruNf/uVfcgvuDHm+i5dJ47XswSquzAUWKxTVFBMZdMb0PCptDHSl\nXPa1dOZGvGs2NnDpuWOZe8GhwTvsBCgtDBF2bHxfo9wiMjL84he/JhrNrslRVXUK3/ve3/Lyyy+S\nSqWO+xjLlj3L7t07efjhx2ltbeV//+8/Y+bMi6isrOKGG25i6tRTuf/+f+qvH0FGoF6F7+eee46N\nGzfyzDPP8Pzzz1NdXc3atWvp6Ojg4ouH7jKsxk1lw3frXgJTLso+ZlkQCA3ymclI15XKkEi5OAGL\nYMAmYBsyrk8649KZdOlKpkmlXJ5duYN3Nh0evI2B4oIQJbHstazQLSIDZVFN9TH3OWfUND4xYU5u\n/9mVM7m4ciYdqTjVqx/s8TW3X3DLCZ3PuHHZFbRffXV5r1734ovPcd11f4JlWZSWlnL55XN46aXn\nufnmr5zQeYgcS6/C97Jly3jwwQe54YYbWLZsGQDhcJh77rlnSIdvvAx+2z7wXKyS7HxvK+jgW47S\nigwIY8DzfFwPfN8nmXZpi6dIu27uEjQGbMvC8/3cglJ7mzp5/JUt7GtJcNn0Sq6cUXXgLzfGUFoU\nojBy7NUrRUSkZ3V1exk7tjK3PWbMWOrr6wbxjGS461X4/s1vfsNvfvMbxo0bxy9/+UsApkyZwtat\nW/vl5PqCMeCnEgduttwfvsNRPAVv6Wc+Pl1Jl9Z4Ctf18H0f3yd37bXGUySSGSzLYFsGH0ilXZJp\nj5117Sxfs4doKHBYRxPbMowqiRANBfT9UUQGRW9HqA/eP+YUnPAIt0i+61X4jsfjVFZ2dwrpHn3L\nZDIEgz2vpDdUeOkkXusesIOYWHn3lJPwYJ+WDHPtXSna42lSGTf3mO/71Dd38cGOFj7Y3kxdc9dR\nj3HmxBKuvXgi0YNWq3QCNqNKIzi6qVJE5KSNGTOWvXv3MG3a2cDhI+Eifa1X4XvWrFk88MAD3Hrr\nrbnHHnroIWbPnt3nJ9ZXjJfGd1285lqs4rEYY2HsAL7taCEdOWlNbV2kXe+QHtqu59PYmqAzmV2F\nsq6pk407W9i5L87ufR10JbNhfHxFjE/OHEdJLITr+bnR8FDQwgnaRMMBKkoih9xYGQ0FKS8JYxst\nlCMicryWL3+JV155iR/+8K7Dnrvyyk/w9NNPMGfOXFpbW3n11eX8y788MAhnKSNFr8L3D37wA265\n5RYeeeQR4vE4V111FbFYjOrqY990MWjcNJ6byd5sOXEGAHZYXU7k6I7UgWQ/z/dpaksQDDm0tXUS\nizoURoOkMz5NrQm6kmnWb2/mrQ/q2bUvDsDokjBnTihlfEWMU08pPqw/97HOpzDqUFYYAq1QKSJy\nmDVrVnPnnd8nHo/j+z4vvLCMBQt+yOzZF7N7904KCgp6fN1VV32G9evXcdNN1wPwta99g1NOGTeQ\npy4jTK/Cd0VFBY899hhr165l9+7dVFZWMn36dCzL6q/zO3mZFH5HI7hprJKqbIrRQjojh8lO9TjW\nkurGZEes0xmPVNollfGIhgOEHTv32uxgsyGVcWlo6aIrmaHYDuB6Pq0dSTo6U/g+fLi7lSf/uJX2\nzjTlRSE+NWsc06eWHzJ1pDecgE1pUZjIEZaOFxEROO+883n88SU9Pvfee2uZP/8ve3zOtm3uuONv\n+vPURA7R6xUujTFMnz6d6dOn98f59Cljuud7H3SzpbEsfPuEF/aUISqRdrGMIRgwWMbC9Xy6kmna\n4ilsy2JUcRjL6jmAJ9Iu7Z1pEqkM6UyGfS0JXNentDBEYfeItmUMqYxHKuOSTGV4e0MDr6ypJZXx\nuOD0UXzsrDFEwwFefqeW19buZVRxmM99ajKTKwsPmTbyUUHbJhzKhur9+3letttJxvWIRgIUFzjH\n/PIgIjLSlJWVc+utX2f+/NuZNevo01/vuednJ/QejzzyME8++RgVFWNP6PUiPRneKdT38NOpbPi2\nApjCUdmbLU1ALQaHCR+f5vYk7Z0pDAbLMgQDNumMSyrt0tCaoLw4RMb1GF0aIWhbGGNIuy5dyQzt\n8TS1jR28+X52ekh9cxfuQXOSQkGbsqJsH+3SwhDRcICajftoaksyrqKA0SVR3nivjlXr6ymJOTS2\nJbng9FF8atZ4nGDPI9X7z7G4wCESsrF6DOf7H/N1qYqI9OCpp5b2+3vccMNN3HDDTf3+PjKyDOvw\nbbw0vud1r2w5BmPZmKCD7rQcHjzPp6E1QTyRIplyiScyxBNpGloTbN7dxpbaNpJpl8ryKJ+7bDKu\n71FSEKYrlSGZyrBtbzuvr93Lhp0tBGyL8RUFXDStgrHlUZyARXN7kub2JE3tSeqbO9mwswXP86ko\niXDjvFM5fVwxZaUxLtvZxIp1e9lR18EX5kzh7Mllh5ynAWzbIuwEiIRsggGbUPDADZo9h2tdoyIi\nIsPRsA7fuGk8z8Vr2UNg/LkAWHZQN1vmuf3Lrje1Jtjd0MH/LN9yWMu+wmiQsyaVMrokzB/X7uWX\nT69nzvlVTD2liA+2t/D+9mYaWhNEQjZXnFfJRdMqjjkn2/N84ok0sUjwkKkkpYUhPnPxxMP2ty1D\n2AkQiwYJO9kR7qMHbhERERnuhm34zi6uk8SPt0AmmVtcB1urAeYzz4fWjiTt8RTvbNrHkjd2EAxY\nzLvwFIqiTnaOdNShvDicC8jnTi1nyYodvFizmxdrdmMMTBxTyKxpFZw3tTw3PcQyJjfbw5BdbdIJ\n2oQdm1TGJZ5IU2gduH6MyU4h+WhnFNsyFEYdYtEgQdvG735SgVtERESGbfgGc2BxHbpvtjQW6GbL\n/GSgK5mhuS1JWzzJsjd3svrDRiaOifH5OVMojPb8pcqyDIURh//18Sls2tVKZyLDaeOLKTholNuy\nDEUFDgWhIJhsqDYYAnY2ifs+GBOkuCBEZzJDIuUScWyCQZuKUTEcC5KpDJ2JDE7QoqjAIdi9AI6v\nxC0iIiIHGbZJNLu4TiZ7s6WxMIUVYBl8a9j+yMOSMZBIe7S2J+lMpnhnYwMv1OymM5Hh8umVzDm/\n6pAuJpbJTvUIh7LhOGCZ3Gj5GRNKDhl9NgYiTpCSohChwOGrRR687fvdI9qRIEXRYO45J2gTCliE\nAg7FBSH23yCpzC0i0r8uu2wmU6eeyvz5f8msWbNZteoN/u3f7mfLlg/5whduZP7820/ouEc7ziOP\nPMyjjz5MLFbIr371H331o8gIM3yTqJfG93y8lj2YogqMHcBYNhhbySgP+Pgk0x7xrjTxRJpd9R0s\nWbGd2sZOxlfE+LNPTqCyPJrb37YtYpEgsUiQoH143/mKkgiJlENbZwrbMoSCNsGARcixoZdh+Uj7\napRbRGRg/eIXvyYazf5bUFV1Ct/73t/y8ssvkkqlTviYRzvODTfcxNSpp3L//f90UuctI9sQXh3n\nJKWT+L6H11Kbm+9tqdPJkOd5Pi3xJLUNndQ1xWlq6+IPK3fwq2fep60zzfWXT+Zrnz4jF7wtk50y\nUlVeQFlhqMfgvV/YsRlTGmVUcZhYJEgoaOtyEBE5QYtqqlmx5y0AXM9lUU01q/bWAJByUyyqqebt\nutUAdGW6WFRTzer6tQB0pOIsqqlmbcN6AFqT7Syqqea9xg0nfD7jxo3n9NPPxLZPbkGyvjqOyJEM\ny5FvYwxuMoHf1Qqprlz4NgF1OhmqjIGupEtjW4J0xsX3fT7c3cofVu6kuT3JhaePZt7MUwg7By7Z\nkGNTVhgm7NjHPdVDo9MiIiIymIZn+PbS+Jn0QStbVmWfUKeTIcOYbJcQz/PxfJ+2jhRt8RRtnSnW\nfNhAzcYGmtuTlBWG+MrVZzBpbCGQvTkyHMy274uEsku/K0+LiAy82y+4JffftmUfsu3YziHbkUDk\nkO2YU3DIdnGo8JBtkeFsWIZv3DR+d39vjOleYMcCS39CGgoyrkdTe5JMxsPDx/V8PtzVQs2GBjbs\naMHzfSaOifHxGVVMm1hKwLYwhu6l3h2cgK0RbBEROWmtrS383/97GwATJkzkrrt+MshnJCPBsAzf\nfiq74IrXsgdTOBpjB8Go08lgMwbiyQyNrQna4yl21rezva6DDTtaaG5PEgkFuOisCi44fTSjisO5\n11nGUFIYoqi7naCCt4iI9Mby5S/xyisv8cMf3nXI48XFJfzmN/89SGclI9WwS6PGgJdKANnwbVdM\nzT5uB9TpZAAZA8m0R8b1MJbBMoauRJq1Wxp47q1d7KqPA9n2fRPGxLhyRhVnTiglEDj0hknbMpQV\nR4iFA/pfJyIiR7RmzWruvPP7xONxfN/nhReWsWDBD5k9+2J2795JQUHBSR9HpC8Mv/DtZvt7+4l2\nSHYc6HQSUKeTgWIMdHSlaWxL4HXf4drakeS5t3axflszhdEgV86oYsLYQk4pLzgscFvGELAtIuEA\nBZEgjn14D24REZGDnXfe+Tz++JIen3vvvbXMn/+XJ30ckb4w7MI3bgrf8w662bK700lQnU4GhIGW\njhQtHQl8H1zPY8W6OpavrsUYw5zzq7j47DG5Jd0hO7ptW9me22HHxgnYBIMWBv2hQkREelZWVs6t\nt36d+fNvZ9as2Ufd9557ftYn7/nIIw/z5JOPUVExtk+OJyPTsArfxoB/0JQTAKu4+xdE8737n4Gm\ntux8bh/Y0xjn6de2sbepi2kTS7nqovEUFTj7dyUYsIlFg0TDgVx/7lzY9vV3ChERObKnnlo64O95\nww03ccMNNw34+8rwMswSqY+XPuhmy1g5Jhjq7nQSHORzG/5aOpK54L1yfR3L3txJQTjIF6+cypkT\nS4HuVoFOgMJokLCTbRUIGuEWEckHvu9jjBns0xA5aYPZvGFYhW/jpvEzHpAN31b5+OzjxuCrzWC/\nMQbaO9O0diTxgbc37GPpqp2cOaGE6y6dRCQUwLYMxbEQkVBArQJFRPKQZdm4boZAQINZkv9cN4M1\nSNlweC0vn8kuKe8n4/hdrbn53tjBbKcT6RedSZem9uwc73VbmnhmxXZOHVfMFz4+hUgogDFQVhSm\nKOoQtC0FbxGRPBSJxGhvb8H3vcE+FZGT4vse7e3NRCKxQXn/YTPybQx46Y/M9851OgmiGcT9I5nx\naGjpxPN8Nu5s4YlXtzJhTIwbPj4F28p+tyuIOMQiQU0tERHJY7FYMc3N+6ir28XJ/ptqWRaepxDf\nV1TP3jI4TphYrHhQ3n3YhG8w+JkMcPDNlvs7nTjqdNIPMq5HQ3MXruezr6WLx5ZvYUxZhD+ddxrB\nQPYvDUHbpjQWUvAWEclzxhjKyir65FijRxeyb197nxxLVM98M4ymnXjgutn/aqnFREswTiT7lOZ7\n9znX86lv7iLtuqQzHo+9vIWgbXHTvFMJOdl6GwOlxSFsSzfniIiIiMBwCt+ei+/7+L6P27gDq3wC\nQHenk2E0wD8EeH52pDuVyX7ZWbpqB/UtXfzJ5ZMp7F4CHqAw6hB1VHsRERGR/YZN+Da+B76H39EA\nyTh2+cTuJwy+wnefamhNkEhlp/i8t7WJmo0NXHLOWE4dd2DuVNgJUFoYGqxTFBERERmShk34xsvg\n+z5ew3YArFHZ8G0sW51O+lBLR5LORBrILqjz9OvbOGV0AVdeUJXbJ2jbjCoO53p4i4iIiEjW8Anf\n3a2P3IbtEIphYuUAWEEHdTrpG/FEmtZ4EoBU2uX3L27GtgxfmHOgs4llDGXFYQL28Lm0RERERPrK\nsElIvrt/5Hsb9qiJuRW4TEAt7vpCMuPR1Jbt5e37Pk+9to19rV18/ooplMQOTC8pLgwRDekvDSIi\nIiI9GRbh2xjAzeDHm/ET7VijJh14UsvKnzRjoLktgdvdr3HFe3Ws39bM3AtOYeopB+Z5h4I2RVF9\n2RERERE5kmERvsHgZTJ4jdn53vb++d7GgK2bLU9WKu3lOptsqW3jhbd3MW1iKZecMza3jzFQUhjS\nPG8RERGRoxgm4dsHL4PbsA2cKKZwdPZhy1Knkz7QlcrgeT4tHUkeW76FUcVhPnvZpNzUHoCIEyQS\nUq1FREREjmZ4hG/fzXU6OWS+t2Wp08nJMtDRmSad8fj9i5vxPJ8vXnkqoeCBulrGUFwY0n2tIiIi\nIscwLMK38Vy8eDN+Z0uuxSCACajTyclKpj1SmQzPrNjO3qZOrr9iMuXF4UP2KYgECQf1JUdERETk\nWIZF+Mb3cPdtA8A+6GZLS51OTlpXMs2q9/fx7uZG5pxfxenjSw553rYMRQUOvgotIiIickzDJHy7\n2fAdDGOKKg48bqvTycnw8alr7OK5N3dy2rhirjiv8pDnDVASC+EEhsdlJCIiItLfhkdqyqSz/b3L\nJ2JM949kDFiaCnEykmmPVe/vxfV8Pjlr/CE3WAIURB0KCxz9dUFERETkOOV9+DYGvK4O/HgTVvn4\ngx5Xp5OTYQy0d6Z4a8M+plQVMeoj87ydgE2ZbrIUERER6ZW8D98Abvs+AExBae4xYxtQ+D5hGden\nZsM+2jvTzDqz4pDnbMtQXhLBMurpLSIiItIbeR++jTF47Q3Z/44euBkw2+lEToSPT2NrgpXr6ygu\ncDht3IFVLI2B0sIwIc3zFhEREem1vE9QvufidTQDYB0cvm11OjlRLR0ptu1tY9vedmaeORrLOjDC\nXVwQIhbRjawiIiIiJyLvw/f+Ht/YAXCiBx7XyPcJiSfStMWTvLWhHtsyzDhtVO65WCRISSw0iGcn\nIiIikt/yPnzju/idLZhIyYGVLY2lNoMnIJnxaGpLkEi6vPthI+dMLiMaztYx7AQoK4oM8hmKiIiI\n5LfhE76jB81Ltix8S+G7Vwy0tCdxPZ/X1+0llfGYNS17o6VtGcqLw1i6v1JERETkpOR/+PZcvM6W\nQ+d7B4PZOwPluHUmMyRSaeqbu3ht7V6mTy2nalQBAIUFjhbSEREREekDeZ+ovEQcUl2HdjoJhnSz\nZS/4+LS0JXFdn6df30bYsfnUrHEA2LZFYUQL6YiIiIj0hbwO38aA27a/zeBB004CuimwNzq60qQy\nLm9t2MfufXE+ddH43FzvogIHW/NNRERERPpEXodvMHj7F9jpHvk2lqXFdXrB833aOtK0xlO8+PYu\nplYVce6UMgCCtk2h2gqKiIiI9Jn8Dt++i9/d43v/yLexLXx1OjlubfEUadflDyt34AOfuXhirmtM\nUUFQq1iKiIiI9KG8Dt/G7+7xbSxMuDD7mKacHB8DLfEkrfEkH+5uZcOOFi6fXklpYbZ+wYBNQUS9\n0kVERET6Un7Pz/B9vO42g8Zkv0dYTghPNwceU1NbgvZ4iozrsXTlDsqKQnzs7DG554sLHLUWFBER\nEeljeT3yje/hd7ZiIt03WxoDtkZrj8Z1PRraErTFU/jAyvfraWxLctVF4wnY2cvBCdgURPL7e5mI\niIjIUJTn4Xv/AjvdN1saC183Wx5VvCtNvDMFQHtnildW13LauGJOG3egVWNxYQiDhr1FRERE+tqA\nJNXm5ma++93vsmPHDhzHYeLEidx1112UlZWd1HH9dBI/0X7QzZY2WEHUlPrI2jqzI94Az7+1C9fz\nueqi8bnnQ0GbaMgenJMTERERGeYGZOTbGMM3vvENli5dytNPP8348eP5+c9/ftLH9bp7fO9f3dIK\nhgAF7yNJux7JlAvAjrp21m5p4uJzxlBWFAays3Y06i0iIiLSfwYkfJeUlDB79uzc9vnnn09tbe1J\nHdMY8Doas/+9f9qJo5Utj8SY7GI6vg+e5/OHlTsoiga57NzK3D6hYIBoSNN2RERERPrLgM/59jyP\n3/72t8ydO/fkj9XeBHT3+DZGi+schev5dHSlAajZuI+9TV18ctZ4nGB2iollmWybQX15EREREek3\nA55W7777bqLRKF/60pd69bry8thhj+3LtJLAUFY5FhNwcEaVYAJaYKcnTW1dFBVGiHeleXl1LaeO\nK+HS88flFtQpjjmMLo0O8lnmp9GjCwf7FIYV1bNvqZ59R7XsW6pn31I988eAhu+FCxeyfft2qqur\nsazeDbo3NnbgHdTA2xifrsZ9mHCMlrYUVsDDCiTw/URfn/awUNsQJ5VxeaGmlq5khk9ceAotrZ0A\nhJ0ARWGLffvaB/ks88/o0YWqWx9SPfuW6tl3VMu+pXr2LdWzb1iW6XGwt68NWPi+9957WbduHQ88\n8ACO0we9uH0fL958YL63HQAMmjdxuK6US9p12dvUyetra5l1ZgUVpREAbMtQXhzWTZYiIiIiA2BA\nwvemTZuorq5m0qRJ3HTTTQCMGzeO+++//4SPabxsj2+rLNsmLxu+Fbw/ysenpSOB78Py1bWEnQAf\nP78q93xJYYignd/t3kVERETyxYCE79NOO40NGzb06TF9N43f1XZQj++AlpXvQUdXmmTKpa65kw07\nWrhq9kTC3R1NnIBNYUQrgoqIiIgMlLwd8vTjTeB7uWkn2Op08lGu59PSkV3N8o9r9uAELS6fcUru\n+cICBW8RERGRgZS34Xt/j29LbQaPqKUjiet6NLQmeG9bM7POrKAgnO0GY9uWenqLiIiIDLD8Dd/t\n2dUtTaQk2y7PaEn0gyVSLh1d3aPe7+4hYFt87OwxuedjkSABWzdZioiIiAyk/A3fHfsX2CkCY/At\nhe/9jMmOevs+NLcnWbulkQvPGJ0b9bYsQywS1GqgIiIiIgMsL8O3MeDFmyEYxgRCGMtgFL5zUhmP\nVMYF4NV392AZwyXnHBj1DjsBnIDqJSIiIjLQ8jJ8A/jxFkykCABjB/E1jJuTSGbwPJ/tde2s3tTA\nrGkVFEYP3FxZWOCoXiIiIiKDIE/vuDN4nQeH74CmUHQzBjoSaTIZj8WvbaMk5hzS1ztgGyLBvP3O\nJSIiIpLX8jOF+R5+ZxsmfCB8S1Yq7ZHOeLzybi2NbUmuuWQiTjA7xcSY7KI6IiIiIjI48jJ8+5kk\nfrIDq3vkW20GD+hKZahtiPP62jrOm1rO1Kri3HNhJ0hRgcK3iIiIyGDJy/BNvLvTSaRIPb4PZqC9\nM8Xi17YRCdl86qLxuacsYygpDGFZai8oIiIiMljyMnzn2gxGirp7fOflj9Hn0mmP9duaqW3s5JOz\nxhM5aBGdWDRIWHO9RURERAZVXqaxj4Zv9fjO6kplWLm+jsJokLMnl+Yet21DUYGjm1JFREREBlle\nhm//4GknlqXVLQEMbK1tY0ttGzPPGI1tHfhfW1wQImDl5f9qERERkWElLxOZF2+CgAOBECYQBDSk\nm0i6vL5uD7ZluOD00bnHQ45NYTQ4iGcmIiIiIvvlafhuwYSzU06MpR7fGKhr6mTNh42cM7mMgkj3\nMvLGUFYYxqCbLEVERESGgrwL39ml5Q9aYCegUd3OZIY31u8llfGYNa0i93hhgUPY0ZQcERERkaEi\n78I3GPyDVrcc6fO9fXya2xO8+X494yoKqBpVAIATsCkuCOmvAiIiIiJDSN6Fb9/L4He1H9TjO+9+\nhD7VmXRZt7mJpvYkF505BsiWpbQohFp6i4iIiAwteZdc/c4WwD/Q43sEL7Dj41Pf1MnSVTsoLwox\nbWIJANFQkIgzcusiIiIiMlTlX/juaADAihRhjIU/QqedGAPtnWmWrtpBS0eK6y6dhG1bWFZ2JUsR\nERERGXryMHwf1OPbtkfs6paJlMu7mxtY9X49s86sYMKYQgAKow5OYGTWRERERGSoy7uUllvdMlyE\nsQOMxB7fru+zp7GTJ1/dRnGBw7wLTwHAti2KolrJUkRERGSoyr/wHW/KzvN2Ihh7ZPb4bmxN8Pxb\nO2lsS3DtJRNxgtmpN8UFDrbushQREREZsvIufPvx5tzNliOtx7cx0BJPsnrTPl5ft5cZp41i6inF\nQLa1oFayFBERERna8i58H1hgx4A1sm62jCczbK1t4/FXtlJZHuXq2RMAsC1DebFWshQREREZ6vI2\nfBvLjKgFdtKux56GOL978UMsC274+FSCAQtjoKwoTCg4cmohIiIikq/yLHx7+F2tuQV2/BHS49vz\nYV9LJ0/+cSv1zV18/oopuXaCJbEQsYimm4iIiIjkg7wK335XO3hubuTbjIRpJwaa2hO8VLObdVua\nuHJGVW6edyzqUBzTEvIiIiIi+SK/wne8GdjfZtDBH+6p00BLe5K336/jhbd3c/bkMi6bXglAyLEp\nLwqPxE6LIiIiInkrL8O3FSka/m0Gu4P3hu3N/M+rW6kaVcBnL52EMQbbNowqjuj2ShEREZE8k1fh\n2+teWt5EioZ3m8Hu4L2rvp3fvrCJiGNz49yDb7CMELTz6n+diIiIiJB34bsp2+EkFM0utDMcdQfv\nhpYuHn5xM10pl5vmnUZh1AGguCBELDxMf3YRERGRYS6vwnd2gZ3C7I2WVl6d+nHx8WlqS9DcnuDJ\n17ZR2xDn+ssnM7Y8Cuy/wVLLx4uIiIjkq7waQvXiTbnVLf1h1uPbx6exNUFHV5pX1uzhva1NzLvw\nFP/dsuIAABSJSURBVM6cWApAYdShrCikhXRERERE8lheDR/7na2YcCHGWMNqdUsfn33N2eC9dnMj\ny1fXct7Uci45Zyyg4C0iIiIyXOTXyHdnK4FRk8AOkP3eMDzmXzS2JWls62LZqp2s2dzIhDExrrlk\nIsYYYlEn21JQRERERPJe3oRvP52AdAITLsQKBBguwbslnmTV+r08+8YOupIul00fyxXTqwjYFqGg\nTVmhgreIiIjIcJE/4burHSA77cQO4OV59jYG2jvTPP/WTpas2EFleZQ/+9QkxpZlb660LUN5SQRL\nM01EREREho08Ct+tQDZ8k+c9vo2BeDLDiveyI96njSvmxrmnYnUnbWOgtDCMo17eIiIiIsNK/qS7\nZPfId6Qo2+s7TxkDHYkMaz5s4NGXNzO2LMoX5kw5JHjHIg6F0fz+giEiIiIih8ubkW+vMzvybUXz\nN3zvn2qyYUcz/71sI9FQgD+ddxpO0Ma2DZFQkFgkSDhoq5e3iIiIyDCUN+Hb72oHO4gJhvHzsM2g\nj8+Hu9t45rVtvLulkVDQ5itXn0YsGqQgEqSsMEzANgrdIiIiIsNYHoXv1uzqlnYgO/KdRym1rrmL\nR1/6kJpN+7Ati9lnjeGSs8cSiwaJhIKMKo5gyKsfSUREREROQN6Eb6+rLdvpJI/aDCYzGZ5dsYOl\nb+4knfG4aFoFl55TSax7PnfYCTC6JKylc0RERERGiLwJ3+wP33YwL0aIN+xs4TfPfkBdUydTqoq4\nevYERpeEsYzBGEPAthhdEsEyit4iIiIiI0XehG+vsw1TNgFjB4bsuLcxkHY9nvrjVpa8sYNoKMAN\nH5/KtEklRMMOxbEQtmWwDNiWhZ8P3yJEREREpM/kTfjGTWHCRd1Lyw8xBhIpl827W3jila1srm3j\njPElXHfpRIoLwpQUhSgIBw6ZLaPgLSIiIjLyDMEke2RWtBDM0DhlY6ArmeHdLU2s3riPD3Y009KR\nImBbXHPxRC48YxSF0RClsVC2h7eytoiIiMiINzSS7HEykaJBaTNoDMQTGRrbEjS1Jqhr7mTtliY2\n7WwhlfEI2BZTqoq4bHolp48robQwTGlxiKiTV+UVERERkX6WV+nQipYMaJvBxrYEr6/dy8r366ht\niB/yXFGBw/RTyzltXAmTxxYScmxsyyISDlAUdbAt3UgpIiIiIofKq/BtF5bRn/M3fN9nb1MnNZv2\n8c7GBrbUtgEwbnQBH59RRXGBQ1GBQ0nMobwojBMMEAkHCAVtArZF0Dbdx+m3UxQRERGRPJY/4dsO\nYsKxfgm29c2dvLZ2D2+sr2dfSxcAleVR5l5wCudOLWNsWYxIKBuwLau7VaCVbRd48I2TCt0iIiIi\ncjR5E76tcBHGdvpk3Nv1PHbUdbBhRzNvb9jH5to2DDC5qpBZ0yZw9qQyKssLCIcCOAHriG0B1bFE\nRERERHojb8I34RjYJ3azZSrtsqW2jU27Wtmws5nNu1tJpj0ARpeEmXfhKcw4bTRVowuIhoM4toUx\nB0ayFbJFREREpC/kTfg24QJ8q3en296Z4unXt/HyO7vJuD4GqCiLcN6po5g4NsbEsUWUF0WIRQJE\nQoFDVptU3hYRERGRvpY34dsKx7o7nRx733TG44WaXTz92lYSKZcZp43mrEmlnDGhlLKiEAHbyq40\naRkMRiPbIiIiIjIg8iZ8m0jhce23dU8bv3x6PXubOjltXDGf+dhEzpxYStjJTlk5JGf74Gv1GxER\nEREZIHkTvq1I8VGngriexzMrtvPUa9uIhQN86VOnc9G0McQiQUDTSERERERk8OVN+DbRoiM+t6u+\ng39/9n227mnn3CllfP7jUxk3KqaFbkRERERkSMmb8G1FS/E+8lg64/L069t49o0dhB2bL145lcvP\nq6IgEuzPtXhERERERE5I3oTvX+98kZZkR267K5VhT2MnqbRL8fkOHxt3Lp84czwBy2LR29XMrpzJ\nxZUz6UjF+X/r/uOYx//o/vMmXMG5o86iLl7Pbzf8zzFf/9H9Pzv1aqYUT2JL6zae2vyHY77+o/v/\n6RmfZ0xBBWsb1vPCjleO+fqP7v+Nc75MzClgxZ63WLnnrdx+waBNOu0e9vqP7n/7BbcA8PyO5axr\neP+Y73/w/ltbt/MX534FgCc3P8vW1u1HfW1BMHrI/vF0nJvP/F8A/PcHj1Lf2XDU11dERx2yf0Gw\ngM9N/TQAv1z7EPF051FfP7l44iH7Ty6eyCcmzAFgUU31UV8bDNqcUXz6Ifvr2uv52juSg/evWfsO\n3zr3LwBde8e69gDOGTXtqNfekX7f99O1d/yfez3VUtfeiX/uffL0yzg7do6uvT76N/f7c78F6No7\n2X9zn93+PP/fnP9zzGOcrLwJ3xgLyA5ot3YkqWvuwrYMVaMKiEWClMRCBCxrcM9RREREROQojD9A\nffa2bt3KggULaGlpoaSkhIULFzJp0qTjfn1TU5yuRJr/XLaRP67dwxkTSviL686mvCikmyl7YfTo\nQvbtax/s0xg2VM++pXr2LdWz76iWfUv17FuqZ9+wLEN5eaz/36ff36Hb3//933PzzTezdOlSbr75\nZv7u7/6uV69vbuviJ/9Zwx/X7uETM8fxV188n7JCBW8RERERyR8DEr4bGxtZv3491157LQDXXnst\n69evp6mp6biPce+ypdS3dPK1z5xOXdmLvNOwGoCUm2JRTTVv12W3uzJdLKqpZnX9WgA6UnEW1VSz\ntmE9AK3JdhbVVPNe4wYAmhMtLKqp5oOmTQA0dDWyqKaaTc2bAaiL17OoppotrdsAqO3Yy6Kaara3\n7QRgZ3sti2qq2dleC8D2tp0sqqmmtmMvAFtat7Goppq6eD0Am5o3s6immoauRgA+aNrEoppqmhMt\nALzXuIFFNdW0JrPfYNc2rGdRTTUdqTgAq+vXsqimmq5MFwBv161mUU01KTcFwKq9NSyqqcb1snMT\nV+x565A5VM9v/iP//M4Due1Xdr3O/at/ldt+aecfqX733w/sv2M5v1z7UG572baX+PW6/8ptP7v1\neX7z3m9z24u3LOU/1v8+t/3k5mf57w8ezW3/z6bF/G7D47ntRzc+xaMbn8pt/27D4/zPpsW57f/+\n4FGe3Pxsbvs/1v+exVuW5rZ/895veXbr87ntX6/7L5Zteym3/cu1D/H8juW57ep3/52Xdv4xt33/\n6l/xyq7Xc9v//M4DvLZ7ZW57UU01K7rn77mey6KaalbtrQGy196dL/6jrr3jvPZe273ymNfewlf/\nNbeta+/o197xfO69tftdQNfe8Vx7x/rcW/T6/8tt69o7+X9z392bndesa0//5g70tXe0z72Da92f\nBiR879mzhzFjxmDb2YVubNumoqKCPXv2HPcxwiGb7918AZeeU4kaCIqIiIhIPhqQOd/r1q3je9/7\nHs8880zusc985jP87Gc/4+yzzz6uY8S7UhREnP46RRERERGRfjcg3U4qKyupq6vDdV1s28Z1Xerr\n66msrDzuYyQ6U3R2JPvxLEcG3ZTRt1TPvqV69i3Vs++oln1L9exbqmffGFY3XJaXlzNt2jQWL87O\nK1q8eDHTpk2jrKxsIN5eRERERGRIGLA+33feeScLFizgX//1XykqKmLhwoUD9dYiIiIiIkPCgIXv\nqVOn8sgjjwzU24mIiIiIDDlaElJEREREZIAofIuIiIiIDBCFbxERERGRAaLwLSIiIiIyQBS+RURE\nREQGiMK3iIiIiMgAUfgWERERERkgCt8iIiIiIgNE4VtEREREZIAM2AqXJ8uyzGCfwrChWvYt1bNv\nqZ59S/XsO6pl31I9+5bqefIGqobG931/QN5JRERERGSE07QTEREREZEBovAtIiIiIjJAFL5FRERE\nRAaIwreIiIiIyABR+BYRERERGSAK3yIiIiIiA0ThW0RERERkgCh8i4iIiIgMEIVvEREREZEBMqSX\nl9+6dSsLFiygpaWFkpISFi5cyKRJkwb7tIaM5uZmvvvd77Jjxw4cx2HixIncddddlJWVMXfuXBzH\nIRQKAXDHHXdw+eWXA0ev60iv+ZHqdqI1G8n13LVrF9/61rdy2+3t7XR0dLBq1Spdn8dh4cKFLF26\nlN27d/P0009z+umnAyden5Fe157qebTPUDjy5wGonke6PvujZsO9nj3V8mifn6Br82iO9ns9ZD4/\n/SHsy1/+sv/EE0/4vu/7TzzxhP/lL395kM9oaGlubvbfeOON3PZPf/pT/2/+5m983/f9K6+80t+w\nYUOPrztaXUd6zY9UtxOt2Uiv58F+/OMf+z/60Y9839f1eTzefPNNv7a29rBa9ce1OBLq2lM9j/YZ\n6vu6To/mSNdnf9RsuNfzSLU82MGfn76va/NojvZ7PVQ+P4ds+G5oaPAvvPBCP5PJ+L7v+5lMxr/w\nwgv9xsbGQT6zoesPf/iD/9WvftX3/SP/Yh6trqp5z3U70Zqpngckk0l/9uzZ/rp163zf1/XZGwfX\nqj+uxZFW16OFloM/Q4+2r+p5wPGGb12fx3ak2n308/No+6qWh9v/ez2UPj+H7LSTPXv2MGbMGGzb\nBsC2bSoqKtizZ0/uT4JygOd5/Pa3v2Xu3Lm5x+644w583+fCCy/kr/7qrygqKjpqXX3fV805vG4n\nWjPV84AXX3yRMWPGcPbZZ+ce0/XZe/1xLaquWT19hoKu0xPRlzVTPXv+/ARdm8fj4N/rofT5qRsu\nh4m7776baDTKl770JQD+67/+i6eeeorHHnsM3/e56667BvkM84Pq1j8ee+wxvvCFL+S2VWcZaj76\nGQq6Tk+Eatb3Pvr5Carz8erp93ooGLLhu7Kykrq6OlzXBcB1Xerr66msrBzkMxt6Fi5cyPbt21m0\naBGWlf1fur9OjuNw8803U1NTk3v8SHVVzXuu24nWTPXMqqur48033+S6667LPabr88T0x7Wouvb8\nGQq6Tk9EX9dspNezp89P0LV5PD76ez2UPj+HbPguLy9n2rRpLF68GIDFixczbdq0YfunkRN17733\nsm7dOu6//34cxwGgs7OT9vZ2AHzfZ8mSJUybNg04el1Hes2PVLcTrdlIr+d+jz/+OHPmzKG0tBTQ\n9Xky+uNaHOl17ekzFHSdnoj+qNlIricc/vkJujaPR0+/10Pp89P4vu/31w9/sjZv3syCBQtoa2uj\nqKiIhQsXMmXKlME+rSFj06ZNXHvttUyaNIlwOAzAuHHjWLBgAd/+9rdxXRfP85g6dSo/+MEPqKio\nAI5e15Fc8507dx6xbidas5Fcz/2uuuoq/vZv/5YrrrgCOHqdQfXc78c//jHLli2joaGB0tJSSkpK\neOaZZ/rlWhwJde2pnosWLerxM/T+++/XdXoMPdWzurq6X2o23Ot5pN91OPzzE/QZeixHykb333//\nkPn8HNLhW0RERERkOBmy005ERERERIYbhW8RERERkQGi8C0iIiIiMkAUvkVEREREBojCt4iIiIjI\nAFH4FhHJU9dccw0rV67s02MuWLCAe++9t0+PKSIiBwQG+wREROTE7O8FLCIi+UMj3yIiIiIiA0Th\nW0RkkNXV1fHtb3+bj33sY8ydO5eHHnoIgPvuu4/vfOc73H777cyYMYPrr7+eDz74IPe6uXPn8vrr\nrwPw7rvv8vnPf54LLriASy65hJ/85Ce5/V544QWuueYaZs6cyZe//GU2b96ce279+vVcf/31zJgx\ng9tvv51kMnnIub300kt87nOfY+bMmdx0002HvL+IiPSewreIyCDyPI9bb72VM844g1deeYUHH3yQ\nBx98kFdffRXIBuerr76aVatWce2113LbbbeRTqcPO84999zDV77yFWpqanjuuef49Kc/DcDWrVv5\n67/+a77//e+zYsUKrrjiCm655RZSqRSpVIpvfetbfO5zn2PVqlVcffXVLFu2LHfM9957j+9///vc\nddddrFy5khtvvJHbbruNVCo1MMURERmGFL5FRAbR2rVraWpqYv78+TiOw/jx4/niF7/IkiVLADj7\n7LO5+uqrCQaD/Pmf/zmpVIo1a9YcdpxAIMCOHTtoamqioKCA888/H4AlS5YwZ84cLr30UoLBIF//\n+tdJJBK88847rFmzhnQ6zVe/+lWCwSBXX3015557bu6Yv//977nxxhs577zzsG2b66+/nmAwyOrV\nqwemOCIiw5BuuBQRGUS7d++mvr6emTNn5h5zXZeZM2dSVVXF2LFjc49blsWYMWOor68/7Dj33HMP\n//zP/8ynP/1pxo0bx/z587nyyiupr6+nqqrqkGNUVlZSV1eHbduMGTMGY0zu+YP3ra2t5YknnuA/\n//M/c4+l0+ke319ERI6PwreIyCCqrKxk3Lhxh0z32O++++5j7969uW3P86irq6OiouKwfSdNmsQ/\n/uM/4nkey5Yt4zvf+Q4rV66koqKCjRs35vbzfZ89e/bkQnddXR2+7+cCeG1tLePHj8+d2y233MKt\nt97a1z+2iMiIpWknIiKDaPr06cRiMR544AESiQSu67Jx40beffddIDvvetmyZWQyGR588EEcx+G8\n88477DhPPvkkTU1NWJZFUVERALZt8+lPf5rly5ezYsUK0uk0v/71r3EchxkzZnD++ecTCAR46KGH\nyGQyLFu2jLVr1+aOecMNN/Dwww+zZs0afN+ns7OTl19+mY6OjoEpjojIMKSRbxGRQWTbNr/4xS9Y\nuHAh8+bNI5VKMXnyZG6//XYA5s2bx5IlS/je977HxIkTue+++wgGg4cd59VXX+WnP/0piUSCqqoq\n7r33XkKhEFOmTOFnP/sZd999N3V1dUybNo3q6mocxwGyo+s//OEPWbRoEXPmzOGTn/xk7pjnnnsu\nd999N3fddRfbt28nHA5zwQUXHDJFRkREesf4vu8P9kmIiMjh7rvvPrZv387Pf/7zwT4VERHpI5p2\nIiIiIiIyQBS+RUREREQGiKadiIiIiIgMEI18i4iIiIgMEIVvEREREZEBovAtIiIiIjJAFL5FRERE\nRAaIwreIiIiIyABR+BYRERERGSD/P4XeUz01vwISAAAAAElFTkSuQmCC\n", "text/plain": [ "\u003cFigure size 1200x600 with 1 Axes\u003e" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "#@title Plot\n", "\n", "fig, ax = plt.subplots(figsize=(12,6))\n", "sns.tsplot(fig6_df, time=\"episode\", unit=\"seed\", value=\"eval_0\", condition=\"method\", ci=95, ax=ax)\n", "\n", "ax.axhline(test_dfs[0][\"return\"].mean(), color='g', linestyle='--', label=test_ws[0])\n", "ax.axhline(test_dfs[1][\"return\"].mean(), color='g', linestyle='-.', label=test_ws[1])\n", "ax.axhline(test_dfs[2][\"return\"].mean(), color='g', linestyle=':', label=test_ws[2])\n", "\n", "ax.legend();" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/applications/hippos/atlantic:light_atlantic_auditable_colab", "kind": "shared" }, "name": "generate_figures.ipynb", "provenance": [ { "file_id": "1uLGieQXt93jX0ASo-qSCvnjEV67_4ZOO", "timestamp": 1591027877583 } ], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: option_keyboard/gpe_gpi_experiments/regressed_agent.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Regressed agent.""" import numpy as np import tensorflow.compat.v1 as tf class Agent(): """A DQN Agent.""" def __init__( self, batch_size, optimizer_name, optimizer_kwargs, init_w, ): """A simple DQN agent. Args: batch_size: Size of update batch. optimizer_name: Name of an optimizer from tf.train optimizer_kwargs: Keyword arguments for the optimizer. init_w: The initial cumulant weight. """ self._batch_size = batch_size self._init_w = np.array(init_w) self._replay = [] # Regress w by gradient descent, could also use closed-form solution. self._n_cumulants = len(init_w) self._regressed_w = tf.get_variable( "regressed_w", dtype=tf.float32, initializer=lambda: tf.to_float(init_w)) cumulants_ph = tf.placeholder( shape=(None, self._n_cumulants), dtype=tf.float32) rewards_ph = tf.placeholder(shape=(None,), dtype=tf.float32) predicted_rewards = tf.reduce_sum( tf.multiply(self._regressed_w, cumulants_ph), axis=-1) loss = tf.reduce_sum(tf.square(predicted_rewards - rewards_ph)) with tf.variable_scope("optimizer"): self._optimizer = getattr(tf.train, optimizer_name)(**optimizer_kwargs) train_op = self._optimizer.minimize(loss) # Make session and callables. session = tf.Session() self._update_fn = session.make_callable(train_op, [cumulants_ph, rewards_ph]) self._action = session.make_callable(self._regressed_w.read_value(), []) session.run(tf.global_variables_initializer()) def step(self, timestep, is_training=False): """Select actions according to epsilon-greedy policy.""" del timestep if is_training: # Can also just use random actions at environment level. return np.random.uniform(low=-1.0, high=1.0, size=(self._n_cumulants,)) return self._action() def update(self, step_tm1, action, step_t): """Takes in a transition from the environment.""" del step_tm1, action transition = [ step_t.observation["cumulants"], step_t.reward, ] self._replay.append(transition) if len(self._replay) == self._batch_size: batch = list(zip(*self._replay)) self._update_fn(*batch) self._replay = [] # Just a queue. def get_logs(self): return dict(regressed=self._action()) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_dqn_fig4b.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Run an experiment. Run a q-learning agent on task (1, -1). """ from absl import app from absl import flags import tensorflow.compat.v1 as tf from option_keyboard import configs from option_keyboard import dqn_agent from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 10000, "Number of training episodes.") flags.DEFINE_integer("report_every", 5, "Frequency at which metrics are reported.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Create the task environment. env_config = configs.get_fig4_task_config() env = scavenger.Scavenger(**env_config) env = environment_wrappers.EnvironmentWithLogging(env) # Create the flat agent. agent = dqn_agent.Agent( obs_spec=env.observation_spec(), action_spec=env.action_spec(), network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), epsilon=0.1, additional_discount=0.9, batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-4,)) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_dqn_fig5.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Run an experiment. Run a q-learning agent on a task. """ from absl import app from absl import flags import tensorflow.compat.v1 as tf from option_keyboard import configs from option_keyboard import dqn_agent from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 10000, "Number of training episodes.") flags.DEFINE_list("test_w", None, "The w to test.") flags.DEFINE_integer("report_every", 200, "Frequency at which metrics are reported.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Create the task environment. test_w = [float(x) for x in FLAGS.test_w] env_config = configs.get_fig5_task_config(test_w) env = scavenger.Scavenger(**env_config) env = environment_wrappers.EnvironmentWithLogging(env) # Create the flat agent. agent = dqn_agent.Agent( obs_spec=env.observation_spec(), action_spec=env.action_spec(), network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), epsilon=0.1, additional_discount=0.9, batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-4,)) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_regressed_w_fig4b.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ r"""Run an experiment. Run GPE/GPI on task (1, -1) with w obtained by regression. For example, first train a keyboard: python3 train_keyboard.py -- --logtostderr --policy_weights_name=12 \ --export_path=/tmp/option_keyboard/keyboard Then, evaluate the keyboard with w by regression. python3 run_regressed_w_fig4b.py -- --logtostderr \ --keyboard_path=/tmp/option_keyboard/keyboard_12/tfhub """ from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger from option_keyboard import smart_module from option_keyboard.gpe_gpi_experiments import regressed_agent FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 4000, "Number of training episodes.") flags.DEFINE_integer("report_every", 5, "Frequency at which metrics are reported.") flags.DEFINE_string("keyboard_path", None, "Path to keyboard model.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(FLAGS.keyboard_path)) # Create the task environment. base_env_config = configs.get_fig4_task_config() base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) # Wrap the task environment with the keyboard. additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboardDirect( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = regressed_agent.Agent( batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-2,), init_w=np.random.normal(size=keyboard.num_cumulants) * 0.1, ) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every, num_eval_reps=20) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_regressed_w_fig4c.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ r"""Run an experiment. Run GPE/GPI on task (1, -1) with w obtained by regression. For example, first train a keyboard: python3 train_keyboard.py -- --logtostderr --policy_weights_name=12 \ --export_path=/tmp/option_keyboard/keyboard Then, evaluate the keyboard with w by regression. python3 run_regressed_w_fig4c.py -- --logtostderr \ --keyboard_path=/tmp/option_keyboard/keyboard_12/tfhub """ from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger from option_keyboard import smart_module from option_keyboard.gpe_gpi_experiments import regressed_agent FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 100, "Number of training episodes.") flags.DEFINE_integer("report_every", 1, "Frequency at which metrics are reported.") flags.DEFINE_string("keyboard_path", None, "Path to keyboard model.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(FLAGS.keyboard_path)) # Create the task environment. base_env_config = configs.get_fig4_task_config() base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) # Wrap the task environment with the keyboard. additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboardDirect( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = regressed_agent.Agent( batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-2,), init_w=np.random.normal(size=keyboard.num_cumulants) * 0.1, ) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every, num_eval_reps=100) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_regressed_w_with_phi_fig4c.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ r"""Run an experiment. Run GPE/GPI on task (1, -1) with a learned phi model and w by regression. For example, first train a phi model with 3 dimenional phi: python3 train_phi_model.py -- --logtostderr --use_random_tasks \ --export_path=/tmp/option_keyboard/phi_model_3d --num_phis=3 Then train a keyboard: python3 train_keyboard_with_phi.py -- --logtostderr \ --export_path=/tmp/option_keyboard/keyboard_3d \ --phi_model_path=/tmp/option_keyboard/phi_model_3d \ --num_phis=2 Finally, evaluate the keyboard with w by regression. python3 run_regressed_w_with_phi_fig4c.py -- --logtostderr \ --phi_model_path=/tmp/option_keyboard/phi_model_3d \ --keyboard_path=/tmp/option_keyboard/keyboard_3d/tfhub """ from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger from option_keyboard import smart_module from option_keyboard.gpe_gpi_experiments import regressed_agent FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 100, "Number of training episodes.") flags.DEFINE_integer("report_every", 1, "Frequency at which metrics are reported.") flags.DEFINE_string("phi_model_path", None, "Path to phi model.") flags.DEFINE_string("keyboard_path", None, "Path to keyboard model.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(FLAGS.keyboard_path)) # Create the task environment. base_env_config = configs.get_fig4_task_config() base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) base_env = environment_wrappers.EnvironmentWithLearnedPhi( base_env, FLAGS.phi_model_path) # Wrap the task environment with the keyboard. additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboardDirect( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = regressed_agent.Agent( batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-2,), init_w=np.random.normal(size=keyboard.num_cumulants) * 0.1, ) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every, num_eval_reps=100) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_true_w_fig4.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ r"""Run an experiment. Run GPE/GPI on task (1, -1) with the groundtruth w. For example, first train a keyboard: python3 train_keyboard.py -- --logtostderr --policy_weights_name=12 Then, evaluate the keyboard with groundtruth w. python3 run_true_w_fig4.py -- --logtostderr \ --keyboard_path=/tmp/option_keyboard/keyboard_12/tfhub """ import csv from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf from tensorflow.compat.v1.io import gfile import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger from option_keyboard import smart_module from option_keyboard.gpe_gpi_experiments import regressed_agent FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 1000, "Number of training episodes.") flags.DEFINE_string("keyboard_path", None, "Path to keyboard model.") flags.DEFINE_string("output_path", None, "Path to write out returns.") def main(argv): del argv # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(FLAGS.keyboard_path)) # Create the task environment. base_env_config = configs.get_fig4_task_config() base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) # Wrap the task environment with the keyboard. additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboardDirect( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = regressed_agent.Agent( batch_size=10, optimizer_name="AdamOptimizer", # Disable training. optimizer_kwargs=dict(learning_rate=0.0,), init_w=[1., -1.]) returns = [] for _ in range(FLAGS.num_episodes): returns.append(experiment.run_episode(env, agent)) tf.logging.info("#" * 80) tf.logging.info( f"Avg. return over {FLAGS.num_episodes} episodes is {np.mean(returns)}") tf.logging.info("#" * 80) if FLAGS.output_path: with gfile.GFile(FLAGS.output_path, "w") as file: writer = csv.writer(file, delimiter=" ", quoting=csv.QUOTE_MINIMAL) writer.writerow(["return"]) for val in returns: writer.writerow([val]) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/run_true_w_fig6.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ r"""Run an experiment. Run GPE/GPI on the "balancing" task with a fixed w For example, first train a keyboard: python3 train_keyboard.py -- --logtostderr --policy_weights_name=12 Then, evaluate the keyboard with a fixed w. python3 run_true_w_fig6.py -- --logtostderr \ --keyboard_path=/tmp/option_keyboard/keyboard_12/tfhub """ import csv from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf from tensorflow.compat.v1.io import gfile import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger from option_keyboard import smart_module from option_keyboard.gpe_gpi_experiments import regressed_agent FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 1000, "Number of training episodes.") flags.DEFINE_string("keyboard_path", None, "Path to keyboard model.") flags.DEFINE_list("test_w", None, "The w to test.") flags.DEFINE_string("output_path", None, "Path to write out returns.") def main(argv): del argv # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(FLAGS.keyboard_path)) # Create the task environment. base_env_config = configs.get_task_config() base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) # Wrap the task environment with the keyboard. additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboardDirect( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = regressed_agent.Agent( batch_size=10, optimizer_name="AdamOptimizer", # Disable training. optimizer_kwargs=dict(learning_rate=0.0,), init_w=[float(x) for x in FLAGS.test_w]) returns = [] for _ in range(FLAGS.num_episodes): returns.append(experiment.run_episode(env, agent)) tf.logging.info("#" * 80) tf.logging.info( f"Avg. return over {FLAGS.num_episodes} episodes is {np.mean(returns)}") tf.logging.info("#" * 80) if FLAGS.output_path: with gfile.GFile(FLAGS.output_path, "w") as file: writer = csv.writer(file, delimiter=" ", quoting=csv.QUOTE_MINIMAL) writer.writerow(["return"]) for val in returns: writer.writerow([val]) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/train_keyboard.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Train a keyboard.""" from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf from option_keyboard import keyboard_utils FLAGS = flags.FLAGS flags.DEFINE_integer("num_pretrain_episodes", 20000, "Number of pretraining episodes.") flags.DEFINE_string("export_path", None, "Where to save the keyboard checkpoints.") flags.DEFINE_string("policy_weights_name", None, "A string repsenting the policy weights.") def main(argv): del argv all_policy_weights = { "1": [1., 0.], "2": [0., 1.], "3": [1., -1.], "4": [-1., 1.], "5": [1., 1.], } if FLAGS.policy_weights_name: policy_weights = np.array( [all_policy_weights[v] for v in FLAGS.policy_weights_name]) num_episodes = ((FLAGS.num_pretrain_episodes // 2) * max(2, len(policy_weights))) export_path = FLAGS.export_path + "_" + FLAGS.policy_weights_name else: policy_weights = None num_episodes = FLAGS.num_pretrain_episodes export_path = FLAGS.export_path keyboard_utils.create_and_train_keyboard( num_episodes=num_episodes, policy_weights=policy_weights, export_path=export_path) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/train_keyboard_with_phi.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Train a keyboard.""" from absl import app from absl import flags import numpy as np import tensorflow.compat.v1 as tf from option_keyboard import keyboard_utils FLAGS = flags.FLAGS flags.DEFINE_integer("num_pretrain_episodes", 20000, "Number of pretraining episodes.") flags.DEFINE_integer("num_phis", None, "Size of phi") flags.DEFINE_string("phi_model_path", None, "Where to load the phi model checkpoints.") flags.DEFINE_string("export_path", None, "Where to save the keyboard checkpoints.") def main(argv): del argv keyboard_utils.create_and_train_keyboard_with_phi( num_episodes=FLAGS.num_pretrain_episodes, phi_model_path=FLAGS.phi_model_path, policy_weights=np.eye(FLAGS.num_phis, dtype=np.float32), export_path=FLAGS.export_path) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/gpe_gpi_experiments/train_phi_model.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Train simple phi model.""" import collections import random from absl import app from absl import flags from absl import logging import numpy as np import sonnet as snt import tensorflow.compat.v1 as tf import tree from option_keyboard import scavenger from option_keyboard import smart_module FLAGS = flags.FLAGS flags.DEFINE_integer("num_phis", 2, "Dimensionality of phis.") flags.DEFINE_integer("num_train_steps", 2000, "Number of training steps.") flags.DEFINE_integer("num_replay_steps", 500, "Number of replay steps.") flags.DEFINE_integer("min_replay_size", 1000, "Minimum replay size before starting training.") flags.DEFINE_integer("num_train_repeats", 10, "Number of training repeats.") flags.DEFINE_float("learning_rate", 3e-3, "Learning rate.") flags.DEFINE_bool("use_random_tasks", False, "Use random tasks.") flags.DEFINE_string("normalisation", "L2", "Normalisation method for cumulant weights.") flags.DEFINE_string("export_path", None, "Export path.") StepOutput = collections.namedtuple("StepOutput", ["obs", "actions", "rewards", "next_obs"]) def collect_experience(env, num_episodes, verbose=False): """Collect experience.""" num_actions = env.action_spec().maximum + 1 observations = [] actions = [] rewards = [] next_observations = [] for _ in range(num_episodes): timestep = env.reset() episode_return = 0 while not timestep.last(): action = np.random.randint(num_actions) observations.append(timestep.observation) actions.append(action) timestep = env.step(action) rewards.append(timestep.observation["aux_tasks_reward"]) episode_return += timestep.reward next_observations.append(timestep.observation) if verbose: logging.info("Total return for episode: %f", episode_return) observation_spec = tree.map_structure(lambda _: None, observations[0]) def stack_observations(obs_list): obs_list = [ np.stack(obs) for obs in zip(*[tree.flatten(obs) for obs in obs_list]) ] obs_dict = tree.unflatten_as(observation_spec, obs_list) obs_dict.pop("aux_tasks_reward") return obs_dict observations = stack_observations(observations) actions = np.array(actions, dtype=np.int32) rewards = np.stack(rewards) next_observations = stack_observations(next_observations) return StepOutput(observations, actions, rewards, next_observations) class PhiModel(snt.AbstractModule): """A model for learning phi.""" def __init__(self, n_actions, n_phis, network_kwargs, final_activation="sigmoid", name="PhiModel"): super(PhiModel, self).__init__(name=name) self._n_actions = n_actions self._n_phis = n_phis self._network_kwargs = network_kwargs self._final_activation = final_activation def _build(self, observation, actions): obs = observation["arena"] n_outputs = self._n_actions * self._n_phis flat_obs = snt.BatchFlatten()(obs) net = snt.nets.MLP(**self._network_kwargs)(flat_obs) net = snt.Linear(output_size=n_outputs)(net) net = snt.BatchReshape((self._n_actions, self._n_phis))(net) indices = tf.stack([tf.range(tf.shape(actions)[0]), actions], axis=1) values = tf.gather_nd(net, indices) if self._final_activation: values = getattr(tf.nn, self._final_activation)(values) return values def create_ph(tensor): return tf.placeholder(shape=(None,) + tensor.shape[1:], dtype=tensor.dtype) def main(argv): del argv if FLAGS.use_random_tasks: tasks = np.random.normal(size=(8, 2)) else: tasks = [ [1.0, 0.0], [0.0, 1.0], [1.0, 1.0], [-1.0, 1.0], ] if FLAGS.normalisation == "L1": tasks /= np.sum(np.abs(tasks), axis=-1, keepdims=True) elif FLAGS.normalisation == "L2": tasks /= np.linalg.norm(tasks, axis=-1, keepdims=True) else: raise ValueError("Unknown normlisation_method {}".format( FLAGS.normalisation)) logging.info("Tasks: %s", tasks) env_config = dict( arena_size=11, num_channels=2, max_num_steps=100, num_init_objects=10, object_priors=[1.0, 1.0], egocentric=True, default_w=None, aux_tasks_w=tasks) env = scavenger.Scavenger(**env_config) num_actions = env.action_spec().maximum + 1 model_config = dict( n_actions=num_actions, n_phis=FLAGS.num_phis, network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), ) model = smart_module.SmartModuleExport(lambda: PhiModel(**model_config)) dummy_steps = collect_experience(env, num_episodes=10, verbose=True) num_rewards = dummy_steps.rewards.shape[-1] # Placeholders steps_ph = tree.map_structure(create_ph, dummy_steps) phis = model(steps_ph.obs, steps_ph.actions) phis_to_rewards = snt.Linear( num_rewards, initializers=dict(w=tf.zeros), use_bias=False) preds = phis_to_rewards(phis) loss_per_batch = tf.square(preds - steps_ph.rewards) loss_op = tf.reduce_mean(loss_per_batch) replay = [] # Optimizer and train op. with tf.variable_scope("optimizer"): optimizer = tf.train.AdamOptimizer(learning_rate=FLAGS.learning_rate) train_op = optimizer.minimize(loss_op) # Add normalisation of weights in phis_to_rewards if FLAGS.normalisation == "L1": w_norm = tf.reduce_sum(tf.abs(phis_to_rewards.w), axis=0, keepdims=True) elif FLAGS.normalisation == "L2": w_norm = tf.norm(phis_to_rewards.w, axis=0, keepdims=True) else: raise ValueError("Unknown normlisation_method {}".format( FLAGS.normalisation)) normalise_w = tf.assign(phis_to_rewards.w, phis_to_rewards.w / tf.maximum(w_norm, 1e-6)) def filter_steps(steps): mask = np.sum(np.abs(steps.rewards), axis=-1) > 0.1 nonzero_inds = np.where(mask)[0] zero_inds = np.where(np.logical_not(mask))[0] zero_inds = np.random.choice( zero_inds, size=len(nonzero_inds), replace=False) selected_inds = np.concatenate([nonzero_inds, zero_inds]) selected_steps = tree.map_structure(lambda x: x[selected_inds], steps) return selected_steps, selected_inds with tf.Session() as sess: sess.run(tf.global_variables_initializer()) step = 0 while step < FLAGS.num_train_steps: step += 1 steps_output = collect_experience(env, num_episodes=10) selected_step_outputs, selected_inds = filter_steps(steps_output) if len(replay) > FLAGS.min_replay_size: # Do training. for _ in range(FLAGS.num_train_repeats): train_samples = random.choices(replay, k=128) train_samples = tree.map_structure( lambda *x: np.stack(x, axis=0), *train_samples) train_samples = tree.unflatten_as(steps_ph, train_samples) feed_dict = dict( zip(tree.flatten(steps_ph), tree.flatten(train_samples))) _, train_loss = sess.run([train_op, loss_op], feed_dict=feed_dict) sess.run(normalise_w) # Do evaluation. if step % 50 == 0: feed_dict = dict( zip(tree.flatten(steps_ph), tree.flatten(selected_step_outputs))) eval_loss = sess.run(loss_op, feed_dict=feed_dict) logging.info("Step %d, train loss %f, eval loss %f, replay %s", step, train_loss, eval_loss, len(replay)) print(sess.run(phis_to_rewards.get_variables())[0].T) values = dict(step=step, train_loss=train_loss, eval_loss=eval_loss) logging.info(values) # Add to replay. if step <= FLAGS.num_replay_steps: def select_fn(ind): return lambda x: x[ind] for idx in range(len(selected_inds)): replay.append( tree.flatten( tree.map_structure(select_fn(idx), selected_step_outputs))) # Export trained model. if FLAGS.export_path: model.export(FLAGS.export_path, sess, overwrite=True) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/keyboard_agent.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Keyboard agent.""" import os import numpy as np import sonnet as snt import tensorflow.compat.v1 as tf from option_keyboard import smart_module class Agent(): """An Option Keyboard Agent.""" def __init__( self, obs_spec, action_spec, policy_weights, network_kwargs, epsilon, additional_discount, batch_size, optimizer_name, optimizer_kwargs, ): """A simple DQN agent. Args: obs_spec: The observation spec. action_spec: The action spec. policy_weights: A list of vectors each representing the cumulant weights for that particular option/policy. network_kwargs: Keyword arguments for snt.nets.MLP epsilon: Exploration probability. additional_discount: Discount on returns used by the agent. batch_size: Size of update batch. optimizer_name: Name of an optimizer from tf.train optimizer_kwargs: Keyword arguments for the optimizer. """ tf.logging.info(policy_weights) self._policy_weights = tf.convert_to_tensor( policy_weights, dtype=tf.float32) self._current_policy = None self._epsilon = epsilon self._additional_discount = additional_discount self._batch_size = batch_size self._n_actions = action_spec.num_values self._n_policies, self._n_cumulants = policy_weights.shape def create_network(): return OptionValueNet( self._n_policies, self._n_cumulants, self._n_actions, network_kwargs=network_kwargs, ) self._network = smart_module.SmartModuleExport(create_network) self._replay = [] obs_spec = self._extract_observation(obs_spec) def option_values(values, policy): return tf.tensordot( values[:, policy, ...], self._policy_weights[policy], axes=[1, 0]) # Placeholders for policy. o = tf.placeholder(shape=obs_spec.shape, dtype=obs_spec.dtype) p = tf.placeholder(shape=(), dtype=tf.int32) q = self._network(tf.expand_dims(o, axis=0)) qo = option_values(q, p) # Placeholders for update. o_tm1 = tf.placeholder(shape=(None,) + obs_spec.shape, dtype=obs_spec.dtype) a_tm1 = tf.placeholder(shape=(None,), dtype=tf.int32) c_t = tf.placeholder(shape=(None, self._n_cumulants), dtype=tf.float32) d_t = tf.placeholder(shape=(None,), dtype=tf.float32) o_t = tf.placeholder(shape=(None,) + obs_spec.shape, dtype=obs_spec.dtype) # Compute values over all options. q_tm1 = self._network(o_tm1) q_t = self._network(o_t) qo_t = option_values(q_t, p) a_t = tf.cast(tf.argmax(qo_t, axis=-1), tf.int32) qa_tm1 = _batched_index(q_tm1[:, p, ...], a_tm1) qa_t = _batched_index(q_t[:, p, ...], a_t) # TD error g = additional_discount * tf.expand_dims(d_t, axis=-1) td_error = tf.stop_gradient(c_t + g * qa_t) - qa_tm1 loss = tf.reduce_sum(tf.square(td_error) / 2) # Dummy calls to keyboard for SmartModule _ = self._network.gpi(o_tm1[0], c_t[0]) _ = self._network.num_cumulants _ = self._network.num_policies _ = self._network.num_actions with tf.variable_scope("optimizer"): self._optimizer = getattr(tf.train, optimizer_name)(**optimizer_kwargs) train_op = self._optimizer.minimize(loss) # Make session and callables. session = tf.Session() self._session = session self._update_fn = session.make_callable( train_op, [o_tm1, a_tm1, c_t, d_t, o_t, p]) self._value_fn = session.make_callable(qo, [o, p]) session.run(tf.global_variables_initializer()) self._saver = tf.train.Saver(var_list=self._network.variables) @property def keyboard(self): return self._network def _extract_observation(self, obs): return obs["arena"] def step(self, timestep, is_training=False): """Select actions according to epsilon-greedy policy.""" if timestep.first(): self._current_policy = np.random.randint(self._n_policies) if is_training and np.random.rand() < self._epsilon: return np.random.randint(self._n_actions) q_values = self._value_fn( self._extract_observation(timestep.observation), self._current_policy) return int(np.argmax(q_values)) def update(self, step_tm1, action, step_t): """Takes in a transition from the environment.""" transition = [ self._extract_observation(step_tm1.observation), action, step_t.observation["cumulants"], step_t.discount, self._extract_observation(step_t.observation), ] self._replay.append(transition) if len(self._replay) == self._batch_size: batch = list(zip(*self._replay)) + [self._current_policy] self._update_fn(*batch) self._replay = [] # Just a queue. def export(self, path): tf.logging.info("Exporting keyboard to %s", path) self._network.export( os.path.join(path, "tfhub"), self._session, overwrite=True) self._saver.save(self._session, os.path.join(path, "checkpoints")) class OptionValueNet(snt.AbstractModule): """Option Value net.""" def __init__(self, n_policies, n_cumulants, n_actions, network_kwargs, name="option_keyboard"): """Construct an Option Value Net sonnet module. Args: n_policies: Number of policies. n_cumulants: Number of cumulants. n_actions: Number of actions. network_kwargs: Network arguments. name: Name """ super(OptionValueNet, self).__init__(name=name) self._n_policies = n_policies self._n_cumulants = n_cumulants self._n_actions = n_actions self._network_kwargs = network_kwargs def _build(self, observation): values = [] flat_obs = snt.BatchFlatten()(observation) for _ in range(self._n_cumulants): net = snt.nets.MLP(**self._network_kwargs)(flat_obs) net = snt.Linear(output_size=self._n_policies * self._n_actions)(net) net = snt.BatchReshape([self._n_policies, self._n_actions])(net) values.append(net) values = tf.stack(values, axis=2) return values def gpi(self, observation, cumulant_weights): q_values = self.__call__(tf.expand_dims(observation, axis=0))[0] q_w = tf.tensordot(q_values, cumulant_weights, axes=[1, 0]) # [P,a] q_w_actions = tf.reduce_max(q_w, axis=0) action = tf.cast(tf.argmax(q_w_actions), tf.int32) return action @property def num_cumulants(self): return self._n_cumulants @property def num_policies(self): return self._n_policies @property def num_actions(self): return self._n_actions def _batched_index(values, indices): one_hot_indices = tf.one_hot(indices, values.shape[-1], dtype=values.dtype) one_hot_indices = tf.expand_dims(one_hot_indices, axis=1) return tf.reduce_sum(values * one_hot_indices, axis=-1) ================================================ FILE: option_keyboard/keyboard_utils.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Keyboard utils.""" import numpy as np from option_keyboard import configs from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import keyboard_agent from option_keyboard import scavenger def create_and_train_keyboard(num_episodes, policy_weights=None, export_path=None): """Train an option keyboard.""" if policy_weights is None: policy_weights = np.eye(2, dtype=np.float32) env_config = configs.get_pretrain_config() env = scavenger.Scavenger(**env_config) env = environment_wrappers.EnvironmentWithLogging(env) agent = keyboard_agent.Agent( obs_spec=env.observation_spec(), action_spec=env.action_spec(), policy_weights=policy_weights, network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), epsilon=0.1, additional_discount=0.9, batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-4,)) if num_episodes: experiment.run(env, agent, num_episodes=num_episodes) agent.export(export_path) return agent def create_and_train_keyboard_with_phi(num_episodes, phi_model_path, policy_weights, export_path=None): """Train an option keyboard.""" env_config = configs.get_pretrain_config() env = scavenger.Scavenger(**env_config) env = environment_wrappers.EnvironmentWithLogging(env) env = environment_wrappers.EnvironmentWithLearnedPhi(env, phi_model_path) agent = keyboard_agent.Agent( obs_spec=env.observation_spec(), action_spec=env.action_spec(), policy_weights=policy_weights, network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), epsilon=0.1, additional_discount=0.9, batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-4,)) if num_episodes: experiment.run(env, agent, num_episodes=num_episodes) agent.export(export_path) return agent ================================================ FILE: option_keyboard/requirements.txt ================================================ absl-py dm-env==1.2 dm-sonnet==1.34 dm-tree numpy==1.16.4 tensorflow==1.13.2 tensorflow_hub==0.7.0 tensorflow_probability==0.6.0 wrapt ================================================ FILE: option_keyboard/run.sh ================================================ #!/bin/sh # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. python3 -m venv /tmp/ok_venv source /tmp/ok_venv/bin/activate pip install -U pip pip install -r option_keyboard/requirements.txt python3 -m option_keyboard.run_dqn_test python3 -m option_keyboard.run_ok_test ================================================ FILE: option_keyboard/run_dqn.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Run an experiment.""" from absl import app from absl import flags import tensorflow.compat.v1 as tf from option_keyboard import configs from option_keyboard import dqn_agent from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import scavenger FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 10000, "Number of training episodes.") flags.DEFINE_integer("report_every", 200, "Frequency at which metrics are reported.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Create the task environment. env_config = configs.get_task_config() env = scavenger.Scavenger(**env_config) env = environment_wrappers.EnvironmentWithLogging(env) # Create the flat agent. agent = dqn_agent.Agent( obs_spec=env.observation_spec(), action_spec=env.action_spec(), network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), epsilon=0.1, additional_discount=0.9, batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-4,)) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/run_dqn_test.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tests for running the simple DQN agent.""" from absl import flags from absl.testing import absltest import tensorflow.compat.v1 as tf from option_keyboard import run_dqn FLAGS = flags.FLAGS class RunDQNTest(absltest.TestCase): def test_run(self): FLAGS.num_episodes = 200 run_dqn.main(None) if __name__ == '__main__': tf.disable_v2_behavior() absltest.main() ================================================ FILE: option_keyboard/run_ok.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Run an experiment.""" import os from absl import app from absl import flags import tensorflow.compat.v1 as tf import tensorflow_hub as hub from option_keyboard import configs from option_keyboard import dqn_agent from option_keyboard import environment_wrappers from option_keyboard import experiment from option_keyboard import keyboard_utils from option_keyboard import scavenger from option_keyboard import smart_module FLAGS = flags.FLAGS flags.DEFINE_integer("num_episodes", 10000, "Number of training episodes.") flags.DEFINE_integer("num_pretrain_episodes", 20000, "Number of pretraining episodes.") flags.DEFINE_integer("report_every", 200, "Frequency at which metrics are reported.") flags.DEFINE_string("keyboard_path", None, "Path to pretrained keyboard model.") flags.DEFINE_string("output_path", None, "Path to write out training curves.") def main(argv): del argv # Pretrain the keyboard and save a checkpoint. if FLAGS.keyboard_path: keyboard_path = FLAGS.keyboard_path else: with tf.Graph().as_default(): export_path = "/tmp/option_keyboard/keyboard" _ = keyboard_utils.create_and_train_keyboard( num_episodes=FLAGS.num_pretrain_episodes, export_path=export_path) keyboard_path = os.path.join(export_path, "tfhub") # Load the keyboard. keyboard = smart_module.SmartModuleImport(hub.Module(keyboard_path)) # Create the task environment. base_env_config = configs.get_task_config() base_env = scavenger.Scavenger(**base_env_config) base_env = environment_wrappers.EnvironmentWithLogging(base_env) # Wrap the task environment with the keyboard. additional_discount = 0.9 env = environment_wrappers.EnvironmentWithKeyboard( env=base_env, keyboard=keyboard, keyboard_ckpt_path=None, n_actions_per_dim=3, additional_discount=additional_discount, call_and_return=False) # Create the player agent. agent = dqn_agent.Agent( obs_spec=env.observation_spec(), action_spec=env.action_spec(), network_kwargs=dict( output_sizes=(64, 128), activate_final=True, ), epsilon=0.1, additional_discount=additional_discount, batch_size=10, optimizer_name="AdamOptimizer", optimizer_kwargs=dict(learning_rate=3e-4,)) _, ema_returns = experiment.run( env, agent, num_episodes=FLAGS.num_episodes, report_every=FLAGS.report_every) if FLAGS.output_path: experiment.write_returns_to_file(FLAGS.output_path, ema_returns) if __name__ == "__main__": tf.disable_v2_behavior() app.run(main) ================================================ FILE: option_keyboard/run_ok_test.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tests for training a keyboard and then running a DQN agent on top of it.""" from absl import flags from absl.testing import absltest import tensorflow.compat.v1 as tf from option_keyboard import run_ok FLAGS = flags.FLAGS class RunDQNTest(absltest.TestCase): def test_run(self): FLAGS.num_episodes = 200 FLAGS.num_pretrain_episodes = 200 run_ok.main(None) if __name__ == '__main__': tf.disable_v2_behavior() absltest.main() ================================================ FILE: option_keyboard/scavenger.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Simple Scavenger environment.""" import copy import enum import sys import dm_env import numpy as np from option_keyboard import auto_reset_environment this_module = sys.modules[__name__] class Action(enum.IntEnum): """Actions available to the player.""" UP = 0 DOWN = 1 LEFT = 2 RIGHT = 3 def _one_hot(indices, depth): return np.eye(depth)[indices] def _random_pos(arena_size): return tuple(np.random.randint(0, arena_size, size=[2]).tolist()) class Scavenger(auto_reset_environment.Base): """Simple Scavenger.""" def __init__(self, arena_size, num_channels, max_num_steps, default_w=None, num_init_objects=15, object_priors=None, egocentric=True, rewarder=None, aux_tasks_w=None): self._arena_size = arena_size self._num_channels = num_channels self._max_num_steps = max_num_steps self._num_init_objects = num_init_objects self._egocentric = egocentric self._rewarder = ( getattr(this_module, rewarder)() if rewarder is not None else None) self._aux_tasks_w = aux_tasks_w if object_priors is None: self._object_priors = np.ones(num_channels) / num_channels else: assert len(object_priors) == num_channels self._object_priors = np.array(object_priors) / np.sum(object_priors) if default_w is None: self._default_w = np.ones(shape=(num_channels,)) else: self._default_w = default_w self._num_channels_all = self._num_channels + 2 self._step_in_episode = None @property def state(self): return copy.deepcopy([ self._step_in_episode, self._walls, self._objects, self._player_pos, self._prev_collected, ]) def set_state(self, state): state_ = copy.deepcopy(state) self._step_in_episode = state_[0] self._walls = state_[1] self._objects = state_[2] self._player_pos = state_[3] self._prev_collected = state_[4] @property def player_pos(self): return self._player_pos def _reset(self): self._step_in_episode = 0 # Walls. self._walls = [] for col in range(self._arena_size): new_pos = (0, col) if new_pos not in self._walls: self._walls.append(new_pos) for row in range(self._arena_size): new_pos = (row, 0) if new_pos not in self._walls: self._walls.append(new_pos) # Objects. self._objects = dict() for _ in range(self._num_init_objects): while True: new_pos = _random_pos(self._arena_size) if new_pos not in self._objects and new_pos not in self._walls: self._objects[new_pos] = np.random.multinomial(1, self._object_priors) break # Player self._player_pos = _random_pos(self._arena_size) while self._player_pos in self._objects or self._player_pos in self._walls: self._player_pos = _random_pos(self._arena_size) self._prev_collected = np.zeros(shape=(self._num_channels,)) obs = self.observation() return dm_env.restart(obs) def _step(self, action): self._step_in_episode += 1 if action == Action.UP: new_player_pos = (self._player_pos[0], self._player_pos[1] + 1) elif action == Action.DOWN: new_player_pos = (self._player_pos[0], self._player_pos[1] - 1) elif action == Action.LEFT: new_player_pos = (self._player_pos[0] - 1, self._player_pos[1]) elif action == Action.RIGHT: new_player_pos = (self._player_pos[0] + 1, self._player_pos[1]) else: raise ValueError("Invalid action `{}`".format(action)) # Toroidal. new_player_pos = ( (new_player_pos[0] + self._arena_size) % self._arena_size, (new_player_pos[1] + self._arena_size) % self._arena_size, ) if new_player_pos not in self._walls: self._player_pos = new_player_pos # Compute rewards. consumed = self._objects.pop(self._player_pos, np.zeros(shape=(self._num_channels,))) if self._rewarder is None: reward = np.dot(consumed, np.array(self._default_w)) else: reward = self._rewarder.get_reward(self.state, consumed) self._prev_collected = np.copy(consumed) assert self._player_pos not in self._objects assert self._player_pos not in self._walls # Render everything. obs = self.observation() if self._step_in_episode < self._max_num_steps: return dm_env.transition(reward=reward, observation=obs) else: # termination with discount=1.0 return dm_env.truncation(reward=reward, observation=obs) def observation(self, force_non_egocentric=False): arena_shape = [self._arena_size] * 2 + [self._num_channels_all] arena = np.zeros(shape=arena_shape, dtype=np.float32) def offset_position(pos_): use_egocentric = self._egocentric and not force_non_egocentric offset = self._player_pos if use_egocentric else (0, 0) x = (pos_[0] - offset[0] + self._arena_size) % self._arena_size y = (pos_[1] - offset[1] + self._arena_size) % self._arena_size return (x, y) player_pos = offset_position(self._player_pos) arena[player_pos] = _one_hot(self._num_channels, self._num_channels_all) for pos, obj in self._objects.items(): x, y = offset_position(pos) arena[x, y, :self._num_channels] = obj for pos in self._walls: x, y = offset_position(pos) arena[x, y] = _one_hot(self._num_channels + 1, self._num_channels_all) collected_resources = np.copy(self._prev_collected).astype(np.float32) obs = dict( arena=arena, cumulants=collected_resources, ) if self._aux_tasks_w is not None: obs["aux_tasks_reward"] = np.dot( np.array(self._aux_tasks_w), self._prev_collected).astype(np.float32) return obs def observation_spec(self): arena = dm_env.specs.BoundedArray( shape=(self._arena_size, self._arena_size, self._num_channels_all), dtype=np.float32, minimum=0., maximum=1., name="arena") collected_resources = dm_env.specs.BoundedArray( shape=(self._num_channels,), dtype=np.float32, minimum=-1e9, maximum=1e9, name="collected_resources") obs_spec = dict( arena=arena, cumulants=collected_resources, ) if self._aux_tasks_w is not None: obs_spec["aux_tasks_reward"] = dm_env.specs.BoundedArray( shape=(len(self._aux_tasks_w),), dtype=np.float32, minimum=-1e9, maximum=1e9, name="aux_tasks_reward") return obs_spec def action_spec(self): return dm_env.specs.DiscreteArray(num_values=len(Action), name="action") class SequentialCollectionRewarder(object): """SequentialCollectionRewarder.""" def get_reward(self, state, consumed): """Get reward.""" object_counts = sum(list(state[2].values()) + [np.zeros(len(consumed))]) reward = 0.0 if np.sum(consumed) > 0: for i in range(len(consumed)): if np.all(object_counts[:i] <= object_counts[i]): reward += consumed[i] else: reward -= consumed[i] return reward class BalancedCollectionRewarder(object): """BalancedCollectionRewarder.""" def get_reward(self, state, consumed): """Get reward.""" object_counts = sum(list(state[2].values()) + [np.zeros(len(consumed))]) reward = 0.0 if np.sum(consumed) > 0: for i in range(len(consumed)): if (object_counts[i] + consumed[i]) >= np.max(object_counts): reward += consumed[i] else: reward -= consumed[i] return reward ================================================ FILE: option_keyboard/smart_module.py ================================================ # pylint: disable=g-bad-file-header # Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Smart module export/import utilities.""" import inspect import pickle import tensorflow.compat.v1 as tf from tensorflow.compat.v1.io import gfile import tensorflow_hub as hub import tree as nest import wrapt _ALLOWED_TYPES = (bool, float, int, str) def _getcallargs(signature, *args, **kwargs): bound_args = signature.bind(*args, **kwargs) bound_args.apply_defaults() inputs = bound_args.arguments inputs.pop("self", None) return inputs def _to_placeholder(arg): if arg is None or isinstance(arg, bool): return arg arg = tf.convert_to_tensor(arg) return tf.placeholder(dtype=arg.dtype, shape=arg.shape) class SmartModuleExport(object): """Helper class for exporting TF-Hub modules.""" def __init__(self, object_factory): self._object_factory = object_factory self._wrapped_object = self._object_factory() self._variable_scope = tf.get_variable_scope() self._captured_calls = {} self._captured_attrs = {} def _create_captured_method(self, method_name): """Creates a wrapped method that captures its inputs.""" with tf.variable_scope(self._variable_scope): method_ = getattr(self._wrapped_object, method_name) @wrapt.decorator def wrapper(method, instance, args, kwargs): """Wrapped method to capture inputs.""" del instance specs = inspect.signature(method) inputs = _getcallargs(specs, *args, **kwargs) with tf.variable_scope(self._variable_scope): output = method(*args, **kwargs) self._captured_calls[method_name] = [inputs, specs] return output return wrapper(method_) # pylint: disable=no-value-for-parameter def __getattr__(self, name): """Helper method for accessing an attributes of the wrapped object.""" # if "_wrapped_object" not in self.__dict__: # return super(ExportableModule, self).__getattr__(name) with tf.variable_scope(self._variable_scope): attr = getattr(self._wrapped_object, name) if inspect.ismethod(attr) or inspect.isfunction(attr): return self._create_captured_method(name) else: if all([isinstance(v, _ALLOWED_TYPES) for v in nest.flatten(attr)]): self._captured_attrs[name] = attr return attr def __call__(self, *args, **kwargs): return self._create_captured_method("__call__")(*args, **kwargs) def export(self, path, session, overwrite=False): """Build the TF-Hub spec, module and sync ops.""" method_specs = {} def module_fn(): """A module_fn for use with hub.create_module_spec().""" # We will use a copy of the original object to build the graph. wrapped_object = self._object_factory() for method_name, method_info in self._captured_calls.items(): captured_inputs, captured_specs = method_info tensor_inputs = nest.map_structure(_to_placeholder, captured_inputs) method_to_call = getattr(wrapped_object, method_name) tensor_outputs = method_to_call(**tensor_inputs) flat_tensor_inputs = nest.flatten(tensor_inputs) flat_tensor_inputs = { str(k): v for k, v in zip( range(len(flat_tensor_inputs)), flat_tensor_inputs) } flat_tensor_outputs = nest.flatten(tensor_outputs) flat_tensor_outputs = { str(k): v for k, v in zip( range(len(flat_tensor_outputs)), flat_tensor_outputs) } method_specs[method_name] = dict( specs=captured_specs, inputs=nest.map_structure(lambda _: None, tensor_inputs), outputs=nest.map_structure(lambda _: None, tensor_outputs)) signature_name = ("default" if method_name == "__call__" else method_name) hub.add_signature(signature_name, flat_tensor_inputs, flat_tensor_outputs) hub.attach_message( "methods", tf.train.BytesList(value=[pickle.dumps(method_specs)])) hub.attach_message( "properties", tf.train.BytesList(value=[pickle.dumps(self._captured_attrs)])) # Create the spec that will be later used in export. hub_spec = hub.create_module_spec(module_fn, drop_collections=["sonnet"]) # Get variables values module_weights = [ session.run(v) for v in self._wrapped_object.get_all_variables() ] # create the sync ops with tf.Graph().as_default(): hub_module = hub.Module(hub_spec, trainable=True, name="hub") assign_ops = [] assign_phs = [] for _, v in sorted(hub_module.variable_map.items()): ph = tf.placeholder(shape=v.shape, dtype=v.dtype) assign_phs.append(ph) assign_ops.append(tf.assign(v, ph)) with tf.Session() as module_session: module_session.run(tf.local_variables_initializer()) module_session.run(tf.global_variables_initializer()) module_session.run( assign_ops, feed_dict=dict(zip(assign_phs, module_weights))) if overwrite and gfile.exists(path): gfile.rmtree(path) gfile.makedirs(path) hub_module.export(path, module_session) class SmartModuleImport(object): """A class for importing graph building objects from TF-Hub modules.""" def __init__(self, module): self._module = module self._method_specs = pickle.loads( self._module.get_attached_message("methods", tf.train.BytesList).value[0]) self._properties = pickle.loads( self._module.get_attached_message("properties", tf.train.BytesList).value[0]) def _create_wrapped_method(self, method): """Creates a wrapped method that converts nested inputs and outputs.""" def wrapped_method(*args, **kwargs): """A wrapped method around a TF-Hub module signature.""" inputs = _getcallargs(self._method_specs[method]["specs"], *args, **kwargs) nest.assert_same_structure(self._method_specs[method]["inputs"], inputs) flat_inputs = nest.flatten(inputs) flat_inputs = { str(k): v for k, v in zip(range(len(flat_inputs)), flat_inputs) } signature = "default" if method == "__call__" else method flat_outputs = self._module( flat_inputs, signature=signature, as_dict=True) flat_outputs = [v for _, v in sorted(flat_outputs.items())] output_spec = self._method_specs[method]["outputs"] if output_spec is None: if len(flat_outputs) != 1: raise ValueError( "Expected output containing a single tensor, found {}".format( flat_outputs)) outputs = flat_outputs[0] else: outputs = nest.unflatten_as(output_spec, flat_outputs) return outputs return wrapped_method def __getattr__(self, name): if name in self._method_specs: return self._create_wrapped_method(name) if name in self._properties: return self._properties[name] return getattr(self._module, name) def __call__(self, *args, **kwargs): return self._create_wrapped_method("__call__")(*args, **kwargs) ================================================ FILE: perceiver/README.md ================================================ # Perceiver and Perceiver IO Perceiver [1] is a general architecture that works on many kinds of data, including images, video, audio, 3D point clouds, language and symbolic inputs, multimodal combinations, etc. Perceivers can handle new types of data with only minimal modifications. Perceivers process inputs using domain-agnostic Transformer-style attention. Unlike Transformers, Perceivers first map inputs to a small latent space where processing is cheap and doesn't depend on the input size. This makes it possible to build very deep networks even when using large inputs like images or videos. Perceiver IO [2] is a generalization of Perceiver to handle arbitrary *outputs* in addition to arbitrary inputs. The original Perceiver only produced a single classification label. In addition to classification labels, Perceiver IO can produce (for example) language, optical flow, and multimodal videos with audio. This is done using the same building blocks as the original Perceiver. The computational complexity of Perceiver IO is linear in the input and output size and the bulk of the processing occurs in the latent space, allowing us to process inputs and outputs that are much larger than can be handled by standard Transformers. This means, for example, Perceiver IO can do BERT-style masked language modeling directly using *bytes* instead of tokenized inputs. This directory contains our implementation of Perceiver IO (encompassing the original Perceiver as a special case). The `perceiver.py` file contains our implementation of Perceiver IO, and `io_processors.py` contains domain-specific input and output processors for the experiments we ran. We provide example colabs in the `colabs` directory to demonstrate how our models can be used and show the qualitative performance of Perceiver IO on a diverse collection of tasks. ## Usage First, install dependencies following these instructions: 1. Create a virtual env: `python3 -m venv ~/.venv/perceiver` 2. Switch to the virtual env: `source ~/.venv/perceiver/bin/activate` 3. Follow instructions for installing JAX on your platform: https://github.com/google/jax#installation 4. Install other dependencies: `pip install -f requirements.txt` After installing dependencies, you can open the notebooks in the `colabs` directory using Jupyter or Colab, and you can run our example training script. Our colabs and training script assume that you are running from the `deepmind_research` directory. ### Colabs We provide the following colabs: * [colabs/masked_language_modelling.ipynb](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/perceiver/colabs/masked_language_modelling.ipynb): Colab for running a pre-trained Perceiver IO masked-language model (Section 4.1 in [2]). * [colabs/optical_flow.ipynb](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/perceiver/colabs/optical_flow.ipynb): Colab for running a pre-trained optical flow Perceiver IO model and visualizing the output flow (Section 4.2 in [2]). * [colabs/video_autoencoding.ipynb](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/perceiver/colabs/video_autoencoding.ipynb): Colab for running a pre-trained video autoencoding Perceiver IO model and visualizing video reconstructions (Section 4.3 in [2]). * [colabs/imagenet_classification.ipynb](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/perceiver/colabs/imagenet_classification.ipynb): Colab for running three pre-trained ImageNet classification Perceiver IO models (Section 4.5 in [2]). ### Training scripts We also provide an example training script to train a Perceiver IO model for ImageNet classification. The provided hyperparameters are the settings used to train Perceiver IO with 2D Fourier position encodings, as described in section 4.5 and supplemental section H of the paper [2]. To run the script locally and train a miniature Perceiver model, run: `perceiver/train/launch_local.sh`. The script would need to be adapted to run on a distributed training setup in order to train a full-scale model with the full batch size. ## Attributions and Disclaimers The file `perceiver/train/autoaugment.py` originates from the `tensorflow/tpu` repository (https://github.com/tensorflow/tpu/blob/b24729de804fdb751b06467d3dce0637fa652060/models/official/efficientnet/autoaugment.py), copyright (c) The Tensorflow Authors. Sintel data is provided by and available from Sintel.org (https://durian.blender.org/), copyright (c) Blender Foundation/www.sintel.org. The sample image in `imagenet_classification.ipynb` is obtained from Getty Images under license (https://www.gettyimages.co.uk/eula#RF). Video content may include clips provided as part of the THUMOS Challenge datasets, which may be accessed at http://crcv.ucf.edu/THUMOS14/download.html, copyrights held by the creators. All data and parameters included with Perceiver are made available under the terms of the CC BY 4.0 license, available at https://creativecommons.org/licenses/by/4.0/legalcode. This is not an officially supported Google product. ## References [1] Andrew Jaegle, Felix Gimeno, Andrew Brock, Andrew Zisserman, Oriol Vinyals, João Carreira. *Perceiver: General Perception with Iterative Attention*. ICML 2021. https://arxiv.org/abs/2103.03206 [2] Andrew Jaegle, Sebastian Borgeaud, Jean-Baptiste Alayrac, Carl Doersch, Catalin Ionescu, David Ding, Skanda Koppula, Daniel Zoran, Andrew Brock, Evan Shelhamer, Olivier Hénaff, Matthew M. Botvinick, Andrew Zisserman, Oriol Vinyals, João Carreira. *Perceiver IO: A General Architecture for Structured Inputs & Outputs*. arXiv, 2021. https://arxiv.org/abs/2107.14795 ================================================ FILE: perceiver/bytes_tokenizer.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tokenizer implementation mapping strings to their UTF-8 bytes.""" from typing import Union import numpy as np class BytesTokenizer: """Tokenizes string to utf-8 bytes.""" def __init__(self): self._num_reserved_tokens = 6 # PAD, BOS, EOS, MASK, CLS, SEP def to_string(self, inputs: np.ndarray) -> str: inputs_no_special = ( inputs[inputs >= self._num_reserved_tokens] - self._num_reserved_tokens) decoded_bytes = inputs_no_special.astype(np.uint8).tobytes() return decoded_bytes.decode('utf-8', errors='replace') def to_int(self, inputs: Union[str, bytes]) -> np.ndarray: if isinstance(inputs, str): inputs = inputs.encode('utf-8') encoded = np.frombuffer(inputs, np.uint8).astype(np.int32) encoded = encoded + self._num_reserved_tokens return encoded.astype(np.int32) @property def vocab_size(self) -> int: return 256 + self._num_reserved_tokens @property def pad_token(self) -> int: return 0 @property def bos_token(self) -> int: return 1 @property def eos_token(self) -> int: return 2 @property def mask_token(self) -> int: return 3 @property def cls_token(self) -> int: return 4 @property def sep_token(self) -> int: return 5 ================================================ FILE: perceiver/colabs/imagenet_classification.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "id": "532jUiWVFvuK" }, "outputs": [], "source": [ "# Copyright 2021 DeepMind Technologies Limited\n", "#\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "TJtDrQ8nxlbs" }, "outputs": [], "source": [ "# Install dependencies for Google Colab.\n", "# If you want to run this notebook on your own machine, you can skip this cell\n", "!pip install dm-haiku\n", "!pip install einops\n", "\n", "!mkdir /content/perceiver\n", "!touch /content/perceiver/__init__.py\n", "!wget -O /content/perceiver/io_processors.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/io_processors.py\n", "!wget -O /content/perceiver/perceiver.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/perceiver.py\n", "!wget -O /content/perceiver/position_encoding.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/position_encoding.py" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "VHzUTH5KqNEt" }, "outputs": [], "source": [ "#@title Imports\n", "\n", "import functools\n", "import itertools\n", "import pickle\n", "\n", "import cv2\n", "import haiku as hk\n", "import imageio\n", "import jax\n", "import jax.numpy as jnp\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from perceiver import perceiver, io_processors\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "uxeP5yit7hJg" }, "outputs": [], "source": [ "#@title Model construction\n", "\n", "# One of learned_position_encoding, fourier_position_encoding, or conv_preprocessing'\n", "# learned_position_encoding: Uses a learned position encoding over the image\n", "# and 1x1 convolution over the pixels\n", "# fourier_position_encoding: Uses a 2D fourier position encoding\n", "# and the raw pixels\n", "# conv_preprocessing: Uses a 2D fourier position encoding\n", "# and a 2D conv-net as preprocessing\n", "model_type = 'conv_preprocessing' #@param ['learned_position_encoding', 'fourier_position_encoding', 'conv_preprocessing']\n", "\n", "IMAGE_SIZE = (224, 224)\n", "\n", "learned_pos_configs = dict(\n", " input_preprocessor=dict(\n", " position_encoding_type='trainable',\n", " trainable_position_encoding_kwargs=dict(\n", " init_scale=0.02,\n", " num_channels=256,\n", " ),\n", " prep_type='conv1x1',\n", " project_pos_dim=256,\n", " num_channels=256,\n", " spatial_downsample=1,\n", " concat_or_add_pos='concat',\n", " ),\n", " encoder=dict(\n", " cross_attend_widening_factor=1,\n", " cross_attention_shape_for_attn='kv',\n", " dropout_prob=0,\n", " num_blocks=8,\n", " num_cross_attend_heads=1,\n", " num_self_attend_heads=8,\n", " num_self_attends_per_block=6,\n", " num_z_channels=1024,\n", " self_attend_widening_factor=1,\n", " use_query_residual=True,\n", " z_index_dim=512,\n", " z_pos_enc_init_scale=0.02\n", " ),\n", " decoder=dict(\n", " num_z_channels=1024,\n", " position_encoding_type='trainable',\n", " trainable_position_encoding_kwargs=dict(\n", " init_scale=0.02,\n", " num_channels=1024,\n", " ),\n", " use_query_residual=False,\n", " )\n", ")\n", "\n", "fourier_pos_configs = dict(\n", " input_preprocessor=dict(\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " concat_pos=True,\n", " max_resolution=(224, 224),\n", " num_bands=64,\n", " sine_only=False\n", " ),\n", " prep_type='pixels',\n", " spatial_downsample=1,\n", " ),\n", " encoder=dict(\n", " cross_attend_widening_factor=1,\n", " cross_attention_shape_for_attn='kv',\n", " dropout_prob=0,\n", " num_blocks=8,\n", " num_cross_attend_heads=1,\n", " num_self_attend_heads=8,\n", " num_self_attends_per_block=6,\n", " num_z_channels=1024,\n", " self_attend_widening_factor=1,\n", " use_query_residual=True,\n", " z_index_dim=512,\n", " z_pos_enc_init_scale=0.02\n", " ),\n", " decoder=dict(\n", " num_z_channels=1024,\n", " position_encoding_type='trainable',\n", " trainable_position_encoding_kwargs=dict(\n", " init_scale=0.02,\n", " num_channels=1024,\n", " ),\n", " use_query_residual=True,\n", " )\n", ")\n", "\n", "conv_maxpool_configs = dict(\n", " input_preprocessor=dict(\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " concat_pos=True,\n", " max_resolution=(56, 56),\n", " num_bands=64,\n", " sine_only=False\n", " ),\n", " prep_type='conv',\n", " ),\n", " encoder=dict(\n", " cross_attend_widening_factor=1,\n", " cross_attention_shape_for_attn='kv',\n", " dropout_prob=0,\n", " num_blocks=8,\n", " num_cross_attend_heads=1,\n", " num_self_attend_heads=8,\n", " num_self_attends_per_block=6,\n", " num_z_channels=1024,\n", " self_attend_widening_factor=1,\n", " use_query_residual=True,\n", " z_index_dim=512,\n", " z_pos_enc_init_scale=0.02\n", " ),\n", " decoder=dict(\n", " num_z_channels=1024,\n", " position_encoding_type='trainable',\n", " trainable_position_encoding_kwargs=dict(\n", " init_scale=0.02,\n", " num_channels=1024,\n", " ),\n", " use_query_residual=True,\n", " )\n", ")\n", "\n", "CONFIGS = {\n", " 'learned_position_encoding': learned_pos_configs,\n", " 'fourier_position_encoding': fourier_pos_configs,\n", " 'conv_preprocessing': conv_maxpool_configs,\n", "}\n", "\n", "def imagenet_classifier(config, images):\n", " input_preprocessor = io_processors.ImagePreprocessor(\n", " **config['input_preprocessor'])\n", " encoder = perceiver.PerceiverEncoder(**config['encoder'])\n", " decoder = perceiver.ClassificationDecoder(\n", " 1000,\n", " **config['decoder'])\n", " model = perceiver.Perceiver(\n", " encoder=encoder,\n", " decoder=decoder,\n", " input_preprocessor=input_preprocessor)\n", " logits = model(images, is_training=False)\n", " return logits\n", "\n", "\n", "imagenet_classifier = hk.transform_with_state(imagenet_classifier)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "EVRWatw4LXFx" }, "outputs": [], "source": [ "#@title Load parameters from checkpoint\n", "\n", "rng = jax.random.PRNGKey(42)\n", "\n", "CHECKPOINT_URLS = {\n", " 'conv_preprocessing': 'https://storage.googleapis.com/perceiver_io/imagenet_conv_preprocessing.pystate',\n", " 'fourier_position_encoding': 'https://storage.googleapis.com/perceiver_io/imagenet_fourier_position_encoding.pystate',\n", " 'learned_position_encoding': 'https://storage.googleapis.com/perceiver_io/imagenet_learned_position_encoding.pystate',\n", "}\n", "url = CHECKPOINT_URLS[model_type]\n", "!wget -O imagenet_checkpoint.pystate $url\n", "\n", "rng = jax.random.PRNGKey(42)\n", "with open('imagenet_checkpoint.pystate', 'rb') as f:\n", " ckpt = pickle.loads(f.read())\n", "\n", "params = ckpt['params']\n", "state = ckpt['state']" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "NJ_9qoQvRFPY" }, "outputs": [], "source": [ "#@title Imagenet labels\n", "\n", "# ImageNet labels were obtained from the ImageNet dataset: https://image-net.org/.\n", "# ImageNet is provided for non-commercial research and educational purposes.\n", "# See https://image-net.org/download for details.\n", "\n", "IMAGENET_LABELS = [\n", " \"tench, Tinca tinca\",\n", " \"goldfish, Carassius auratus\",\n", " \"great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias\",\n", " \"tiger shark, Galeocerdo cuvieri\",\n", " \"hammerhead, hammerhead shark\",\n", " \"electric ray, crampfish, numbfish, torpedo\",\n", " \"stingray\",\n", " \"cock\",\n", " \"hen\",\n", " \"ostrich, Struthio camelus\",\n", " \"brambling, Fringilla montifringilla\",\n", " \"goldfinch, Carduelis carduelis\",\n", " \"house finch, linnet, Carpodacus mexicanus\",\n", " \"junco, snowbird\",\n", " \"indigo bunting, indigo finch, indigo bird, Passerina cyanea\",\n", " \"robin, American robin, Turdus migratorius\",\n", " \"bulbul\",\n", " \"jay\",\n", " \"magpie\",\n", " \"chickadee\",\n", " \"water ouzel, dipper\",\n", " \"kite\",\n", " \"bald eagle, American eagle, Haliaeetus leucocephalus\",\n", " \"vulture\",\n", " \"great grey owl, great gray owl, Strix nebulosa\",\n", " \"European fire salamander, Salamandra salamandra\",\n", " \"common newt, Triturus vulgaris\",\n", " \"eft\",\n", " \"spotted salamander, Ambystoma maculatum\",\n", " \"axolotl, mud puppy, Ambystoma mexicanum\",\n", " \"bullfrog, Rana catesbeiana\",\n", " \"tree frog, tree-frog\",\n", " \"tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui\",\n", " \"loggerhead, loggerhead turtle, Caretta caretta\",\n", " \"leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea\",\n", " \"mud turtle\",\n", " \"terrapin\",\n", " \"box turtle, box tortoise\",\n", " \"banded gecko\",\n", " \"common iguana, iguana, Iguana iguana\",\n", " \"American chameleon, anole, Anolis carolinensis\",\n", " \"whiptail, whiptail lizard\",\n", " \"agama\",\n", " \"frilled lizard, Chlamydosaurus kingi\",\n", " \"alligator lizard\",\n", " \"Gila monster, Heloderma suspectum\",\n", " \"green lizard, Lacerta viridis\",\n", " \"African chameleon, Chamaeleo chamaeleon\",\n", " \"Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis\",\n", " \"African crocodile, Nile crocodile, Crocodylus niloticus\",\n", " \"American alligator, Alligator mississipiensis\",\n", " \"triceratops\",\n", " \"thunder snake, worm snake, Carphophis amoenus\",\n", " \"ringneck snake, ring-necked snake, ring snake\",\n", " \"hognose snake, puff adder, sand viper\",\n", " \"green snake, grass snake\",\n", " \"king snake, kingsnake\",\n", " \"garter snake, grass snake\",\n", " \"water snake\",\n", " \"vine snake\",\n", " \"night snake, Hypsiglena torquata\",\n", " \"boa constrictor, Constrictor constrictor\",\n", " \"rock python, rock snake, Python sebae\",\n", " \"Indian cobra, Naja naja\",\n", " \"green mamba\",\n", " \"sea snake\",\n", " \"horned viper, cerastes, sand viper, horned asp, Cerastes cornutus\",\n", " \"diamondback, diamondback rattlesnake, Crotalus adamanteus\",\n", " \"sidewinder, horned rattlesnake, Crotalus cerastes\",\n", " \"trilobite\",\n", " \"harvestman, daddy longlegs, Phalangium opilio\",\n", " \"scorpion\",\n", " \"black and gold garden spider, Argiope aurantia\",\n", " \"barn spider, Araneus cavaticus\",\n", " \"garden spider, Aranea diademata\",\n", " \"black widow, Latrodectus mactans\",\n", " \"tarantula\",\n", " \"wolf spider, hunting spider\",\n", " \"tick\",\n", " \"centipede\",\n", " \"black grouse\",\n", " \"ptarmigan\",\n", " \"ruffed grouse, partridge, Bonasa umbellus\",\n", " \"prairie chicken, prairie grouse, prairie fowl\",\n", " \"peacock\",\n", " \"quail\",\n", " \"partridge\",\n", " \"African grey, African gray, Psittacus erithacus\",\n", " \"macaw\",\n", " \"sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita\",\n", " \"lorikeet\",\n", " \"coucal\",\n", " \"bee eater\",\n", " \"hornbill\",\n", " \"hummingbird\",\n", " \"jacamar\",\n", " \"toucan\",\n", " \"drake\",\n", " \"red-breasted merganser, Mergus serrator\",\n", " \"goose\",\n", " \"black swan, Cygnus atratus\",\n", " \"tusker\",\n", " \"echidna, spiny anteater, anteater\",\n", " \"platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus\",\n", " \"wallaby, brush kangaroo\",\n", " \"koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus\",\n", " \"wombat\",\n", " \"jellyfish\",\n", " \"sea anemone, anemone\",\n", " \"brain coral\",\n", " \"flatworm, platyhelminth\",\n", " \"nematode, nematode worm, roundworm\",\n", " \"conch\",\n", " \"snail\",\n", " \"slug\",\n", " \"sea slug, nudibranch\",\n", " \"chiton, coat-of-mail shell, sea cradle, polyplacophore\",\n", " \"chambered nautilus, pearly nautilus, nautilus\",\n", " \"Dungeness crab, Cancer magister\",\n", " \"rock crab, Cancer irroratus\",\n", " \"fiddler crab\",\n", " \"king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica\",\n", " \"American lobster, Northern lobster, Maine lobster, Homarus americanus\",\n", " \"spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish\",\n", " \"crayfish, crawfish, crawdad, crawdaddy\",\n", " \"hermit crab\",\n", " \"isopod\",\n", " \"white stork, Ciconia ciconia\",\n", " \"black stork, Ciconia nigra\",\n", " \"spoonbill\",\n", " \"flamingo\",\n", " \"little blue heron, Egretta caerulea\",\n", " \"American egret, great white heron, Egretta albus\",\n", " \"bittern\",\n", " \"crane\",\n", " \"limpkin, Aramus pictus\",\n", " \"European gallinule, Porphyrio porphyrio\",\n", " \"American coot, marsh hen, mud hen, water hen, Fulica americana\",\n", " \"bustard\",\n", " \"ruddy turnstone, Arenaria interpres\",\n", " \"red-backed sandpiper, dunlin, Erolia alpina\",\n", " \"redshank, Tringa totanus\",\n", " \"dowitcher\",\n", " \"oystercatcher, oyster catcher\",\n", " \"pelican\",\n", " \"king penguin, Aptenodytes patagonica\",\n", " \"albatross, mollymawk\",\n", " \"grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus\",\n", " \"killer whale, killer, orca, grampus, sea wolf, Orcinus orca\",\n", " \"dugong, Dugong dugon\",\n", " \"sea lion\",\n", " \"Chihuahua\",\n", " \"Japanese spaniel\",\n", " \"Maltese dog, Maltese terrier, Maltese\",\n", " \"Pekinese, Pekingese, Peke\",\n", " \"Shih-Tzu\",\n", " \"Blenheim spaniel\",\n", " \"papillon\",\n", " \"toy terrier\",\n", " \"Rhodesian ridgeback\",\n", " \"Afghan hound, Afghan\",\n", " \"basset, basset hound\",\n", " \"beagle\",\n", " \"bloodhound, sleuthhound\",\n", " \"bluetick\",\n", " \"black-and-tan coonhound\",\n", " \"Walker hound, Walker foxhound\",\n", " \"English foxhound\",\n", " \"redbone\",\n", " \"borzoi, Russian wolfhound\",\n", " \"Irish wolfhound\",\n", " \"Italian greyhound\",\n", " \"whippet\",\n", " \"Ibizan hound, Ibizan Podenco\",\n", " \"Norwegian elkhound, elkhound\",\n", " \"otterhound, otter hound\",\n", " \"Saluki, gazelle hound\",\n", " \"Scottish deerhound, deerhound\",\n", " \"Weimaraner\",\n", " \"Staffordshire bullterrier, Staffordshire bull terrier\",\n", " \"American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier\",\n", " \"Bedlington terrier\",\n", " \"Border terrier\",\n", " \"Kerry blue terrier\",\n", " \"Irish terrier\",\n", " \"Norfolk terrier\",\n", " \"Norwich terrier\",\n", " \"Yorkshire terrier\",\n", " \"wire-haired fox terrier\",\n", " \"Lakeland terrier\",\n", " \"Sealyham terrier, Sealyham\",\n", " \"Airedale, Airedale terrier\",\n", " \"cairn, cairn terrier\",\n", " \"Australian terrier\",\n", " \"Dandie Dinmont, Dandie Dinmont terrier\",\n", " \"Boston bull, Boston terrier\",\n", " \"miniature schnauzer\",\n", " \"giant schnauzer\",\n", " \"standard schnauzer\",\n", " \"Scotch terrier, Scottish terrier, Scottie\",\n", " \"Tibetan terrier, chrysanthemum dog\",\n", " \"silky terrier, Sydney silky\",\n", " \"soft-coated wheaten terrier\",\n", " \"West Highland white terrier\",\n", " \"Lhasa, Lhasa apso\",\n", " \"flat-coated retriever\",\n", " \"curly-coated retriever\",\n", " \"golden retriever\",\n", " \"Labrador retriever\",\n", " \"Chesapeake Bay retriever\",\n", " \"German short-haired pointer\",\n", " \"vizsla, Hungarian pointer\",\n", " \"English setter\",\n", " \"Irish setter, red setter\",\n", " \"Gordon setter\",\n", " \"Brittany spaniel\",\n", " \"clumber, clumber spaniel\",\n", " \"English springer, English springer spaniel\",\n", " \"Welsh springer spaniel\",\n", " \"cocker spaniel, English cocker spaniel, cocker\",\n", " \"Sussex spaniel\",\n", " \"Irish water spaniel\",\n", " \"kuvasz\",\n", " \"schipperke\",\n", " \"groenendael\",\n", " \"malinois\",\n", " \"briard\",\n", " \"kelpie\",\n", " \"komondor\",\n", " \"Old English sheepdog, bobtail\",\n", " \"Shetland sheepdog, Shetland sheep dog, Shetland\",\n", " \"collie\",\n", " \"Border collie\",\n", " \"Bouvier des Flandres, Bouviers des Flandres\",\n", " \"Rottweiler\",\n", " \"German shepherd, German shepherd dog, German police dog, alsatian\",\n", " \"Doberman, Doberman pinscher\",\n", " \"miniature pinscher\",\n", " \"Greater Swiss Mountain dog\",\n", " \"Bernese mountain dog\",\n", " \"Appenzeller\",\n", " \"EntleBucher\",\n", " \"boxer\",\n", " \"bull mastiff\",\n", " \"Tibetan mastiff\",\n", " \"French bulldog\",\n", " \"Great Dane\",\n", " \"Saint Bernard, St Bernard\",\n", " \"Eskimo dog, husky\",\n", " \"malamute, malemute, Alaskan malamute\",\n", " \"Siberian husky\",\n", " \"dalmatian, coach dog, carriage dog\",\n", " \"affenpinscher, monkey pinscher, monkey dog\",\n", " \"basenji\",\n", " \"pug, pug-dog\",\n", " \"Leonberg\",\n", " \"Newfoundland, Newfoundland dog\",\n", " \"Great Pyrenees\",\n", " \"Samoyed, Samoyede\",\n", " \"Pomeranian\",\n", " \"chow, chow chow\",\n", " \"keeshond\",\n", " \"Brabancon griffon\",\n", " \"Pembroke, Pembroke Welsh corgi\",\n", " \"Cardigan, Cardigan Welsh corgi\",\n", " \"toy poodle\",\n", " \"miniature poodle\",\n", " \"standard poodle\",\n", " \"Mexican hairless\",\n", " \"timber wolf, grey wolf, gray wolf, Canis lupus\",\n", " \"white wolf, Arctic wolf, Canis lupus tundrarum\",\n", " \"red wolf, maned wolf, Canis rufus, Canis niger\",\n", " \"coyote, prairie wolf, brush wolf, Canis latrans\",\n", " \"dingo, warrigal, warragal, Canis dingo\",\n", " \"dhole, Cuon alpinus\",\n", " \"African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus\",\n", " \"hyena, hyaena\",\n", " \"red fox, Vulpes vulpes\",\n", " \"kit fox, Vulpes macrotis\",\n", " \"Arctic fox, white fox, Alopex lagopus\",\n", " \"grey fox, gray fox, Urocyon cinereoargenteus\",\n", " \"tabby, tabby cat\",\n", " \"tiger cat\",\n", " \"Persian cat\",\n", " \"Siamese cat, Siamese\",\n", " \"Egyptian cat\",\n", " \"cougar, puma, catamount, mountain lion, painter, panther, Felis concolor\",\n", " \"lynx, catamount\",\n", " \"leopard, Panthera pardus\",\n", " \"snow leopard, ounce, Panthera uncia\",\n", " \"jaguar, panther, Panthera onca, Felis onca\",\n", " \"lion, king of beasts, Panthera leo\",\n", " \"tiger, Panthera tigris\",\n", " \"cheetah, chetah, Acinonyx jubatus\",\n", " \"brown bear, bruin, Ursus arctos\",\n", " \"American black bear, black bear, Ursus americanus, Euarctos americanus\",\n", " \"ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus\",\n", " \"sloth bear, Melursus ursinus, Ursus ursinus\",\n", " \"mongoose\",\n", " \"meerkat, mierkat\",\n", " \"tiger beetle\",\n", " \"ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle\",\n", " \"ground beetle, carabid beetle\",\n", " \"long-horned beetle, longicorn, longicorn beetle\",\n", " \"leaf beetle, chrysomelid\",\n", " \"dung beetle\",\n", " \"rhinoceros beetle\",\n", " \"weevil\",\n", " \"fly\",\n", " \"bee\",\n", " \"ant, emmet, pismire\",\n", " \"grasshopper, hopper\",\n", " \"cricket\",\n", " \"walking stick, walkingstick, stick insect\",\n", " \"cockroach, roach\",\n", " \"mantis, mantid\",\n", " \"cicada, cicala\",\n", " \"leafhopper\",\n", " \"lacewing, lacewing fly\",\n", " \"dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk\",\n", " \"damselfly\",\n", " \"admiral\",\n", " \"ringlet, ringlet butterfly\",\n", " \"monarch, monarch butterfly, milkweed butterfly, Danaus plexippus\",\n", " \"cabbage butterfly\",\n", " \"sulphur butterfly, sulfur butterfly\",\n", " \"lycaenid, lycaenid butterfly\",\n", " \"starfish, sea star\",\n", " \"sea urchin\",\n", " \"sea cucumber, holothurian\",\n", " \"wood rabbit, cottontail, cottontail rabbit\",\n", " \"hare\",\n", " \"Angora, Angora rabbit\",\n", " \"hamster\",\n", " \"porcupine, hedgehog\",\n", " \"fox squirrel, eastern fox squirrel, Sciurus niger\",\n", " \"marmot\",\n", " \"beaver\",\n", " \"guinea pig, Cavia cobaya\",\n", " \"sorrel\",\n", " \"zebra\",\n", " \"hog, pig, grunter, squealer, Sus scrofa\",\n", " \"wild boar, boar, Sus scrofa\",\n", " \"warthog\",\n", " \"hippopotamus, hippo, river horse, Hippopotamus amphibius\",\n", " \"ox\",\n", " \"water buffalo, water ox, Asiatic buffalo, Bubalus bubalis\",\n", " \"bison\",\n", " \"ram, tup\",\n", " \"bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis\",\n", " \"ibex, Capra ibex\",\n", " \"hartebeest\",\n", " \"impala, Aepyceros melampus\",\n", " \"gazelle\",\n", " \"Arabian camel, dromedary, Camelus dromedarius\",\n", " \"llama\",\n", " \"weasel\",\n", " \"mink\",\n", " \"polecat, fitch, foulmart, foumart, Mustela putorius\",\n", " \"black-footed ferret, ferret, Mustela nigripes\",\n", " \"otter\",\n", " \"skunk, polecat, wood pussy\",\n", " \"badger\",\n", " \"armadillo\",\n", " \"three-toed sloth, ai, Bradypus tridactylus\",\n", " \"orangutan, orang, orangutang, Pongo pygmaeus\",\n", " \"gorilla, Gorilla gorilla\",\n", " \"chimpanzee, chimp, Pan troglodytes\",\n", " \"gibbon, Hylobates lar\",\n", " \"siamang, Hylobates syndactylus, Symphalangus syndactylus\",\n", " \"guenon, guenon monkey\",\n", " \"patas, hussar monkey, Erythrocebus patas\",\n", " \"baboon\",\n", " \"macaque\",\n", " \"langur\",\n", " \"colobus, colobus monkey\",\n", " \"proboscis monkey, Nasalis larvatus\",\n", " \"marmoset\",\n", " \"capuchin, ringtail, Cebus capucinus\",\n", " \"howler monkey, howler\",\n", " \"titi, titi monkey\",\n", " \"spider monkey, Ateles geoffroyi\",\n", " \"squirrel monkey, Saimiri sciureus\",\n", " \"Madagascar cat, ring-tailed lemur, Lemur catta\",\n", " \"indri, indris, Indri indri, Indri brevicaudatus\",\n", " \"Indian elephant, Elephas maximus\",\n", " \"African elephant, Loxodonta africana\",\n", " \"lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens\",\n", " \"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca\",\n", " \"barracouta, snoek\",\n", " \"eel\",\n", " \"coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch\",\n", " \"rock beauty, Holocanthus tricolor\",\n", " \"anemone fish\",\n", " \"sturgeon\",\n", " \"gar, garfish, garpike, billfish, Lepisosteus osseus\",\n", " \"lionfish\",\n", " \"puffer, pufferfish, blowfish, globefish\",\n", " \"abacus\",\n", " \"abaya\",\n", " \"academic gown, academic robe, judge's robe\",\n", " \"accordion, piano accordion, squeeze box\",\n", " \"acoustic guitar\",\n", " \"aircraft carrier, carrier, flattop, attack aircraft carrier\",\n", " \"airliner\",\n", " \"airship, dirigible\",\n", " \"altar\",\n", " \"ambulance\",\n", " \"amphibian, amphibious vehicle\",\n", " \"analog clock\",\n", " \"apiary, bee house\",\n", " \"apron\",\n", " \"ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin\",\n", " \"assault rifle, assault gun\",\n", " \"backpack, back pack, knapsack, packsack, rucksack, haversack\",\n", " \"bakery, bakeshop, bakehouse\",\n", " \"balance beam, beam\",\n", " \"balloon\",\n", " \"ballpoint, ballpoint pen, ballpen, Biro\",\n", " \"Band Aid\",\n", " \"banjo\",\n", " \"bannister, banister, balustrade, balusters, handrail\",\n", " \"barbell\",\n", " \"barber chair\",\n", " \"barbershop\",\n", " \"barn\",\n", " \"barometer\",\n", " \"barrel, cask\",\n", " \"barrow, garden cart, lawn cart, wheelbarrow\",\n", " \"baseball\",\n", " \"basketball\",\n", " \"bassinet\",\n", " \"bassoon\",\n", " \"bathing cap, swimming cap\",\n", " \"bath towel\",\n", " \"bathtub, bathing tub, bath, tub\",\n", " \"beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon\",\n", " \"beacon, lighthouse, beacon light, pharos\",\n", " \"beaker\",\n", " \"bearskin, busby, shako\",\n", " \"beer bottle\",\n", " \"beer glass\",\n", " \"bell cote, bell cot\",\n", " \"bib\",\n", " \"bicycle-built-for-two, tandem bicycle, tandem\",\n", " \"bikini, two-piece\",\n", " \"binder, ring-binder\",\n", " \"binoculars, field glasses, opera glasses\",\n", " \"birdhouse\",\n", " \"boathouse\",\n", " \"bobsled, bobsleigh, bob\",\n", " \"bolo tie, bolo, bola tie, bola\",\n", " \"bonnet, poke bonnet\",\n", " \"bookcase\",\n", " \"bookshop, bookstore, bookstall\",\n", " \"bottlecap\",\n", " \"bow\",\n", " \"bow tie, bow-tie, bowtie\",\n", " \"brass, memorial tablet, plaque\",\n", " \"brassiere, bra, bandeau\",\n", " \"breakwater, groin, groyne, mole, bulwark, seawall, jetty\",\n", " \"breastplate, aegis, egis\",\n", " \"broom\",\n", " \"bucket, pail\",\n", " \"buckle\",\n", " \"bulletproof vest\",\n", " \"bullet train, bullet\",\n", " \"butcher shop, meat market\",\n", " \"cab, hack, taxi, taxicab\",\n", " \"caldron, cauldron\",\n", " \"candle, taper, wax light\",\n", " \"cannon\",\n", " \"canoe\",\n", " \"can opener, tin opener\",\n", " \"cardigan\",\n", " \"car mirror\",\n", " \"carousel, carrousel, merry-go-round, roundabout, whirligig\",\n", " \"carpenter's kit, tool kit\",\n", " \"carton\",\n", " \"car wheel\",\n", " \"cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM\",\n", " \"cassette\",\n", " \"cassette player\",\n", " \"castle\",\n", " \"catamaran\",\n", " \"CD player\",\n", " \"cello, violoncello\",\n", " \"cellular telephone, cellular phone, cellphone, cell, mobile phone\",\n", " \"chain\",\n", " \"chainlink fence\",\n", " \"chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour\",\n", " \"chain saw, chainsaw\",\n", " \"chest\",\n", " \"chiffonier, commode\",\n", " \"chime, bell, gong\",\n", " \"china cabinet, china closet\",\n", " \"Christmas stocking\",\n", " \"church, church building\",\n", " \"cinema, movie theater, movie theatre, movie house, picture palace\",\n", " \"cleaver, meat cleaver, chopper\",\n", " \"cliff dwelling\",\n", " \"cloak\",\n", " \"clog, geta, patten, sabot\",\n", " \"cocktail shaker\",\n", " \"coffee mug\",\n", " \"coffeepot\",\n", " \"coil, spiral, volute, whorl, helix\",\n", " \"combination lock\",\n", " \"computer keyboard, keypad\",\n", " \"confectionery, confectionary, candy store\",\n", " \"container ship, containership, container vessel\",\n", " \"convertible\",\n", " \"corkscrew, bottle screw\",\n", " \"cornet, horn, trumpet, trump\",\n", " \"cowboy boot\",\n", " \"cowboy hat, ten-gallon hat\",\n", " \"cradle\",\n", " \"crane\",\n", " \"crash helmet\",\n", " \"crate\",\n", " \"crib, cot\",\n", " \"Crock Pot\",\n", " \"croquet ball\",\n", " \"crutch\",\n", " \"cuirass\",\n", " \"dam, dike, dyke\",\n", " \"desk\",\n", " \"desktop computer\",\n", " \"dial telephone, dial phone\",\n", " \"diaper, nappy, napkin\",\n", " \"digital clock\",\n", " \"digital watch\",\n", " \"dining table, board\",\n", " \"dishrag, dishcloth\",\n", " \"dishwasher, dish washer, dishwashing machine\",\n", " \"disk brake, disc brake\",\n", " \"dock, dockage, docking facility\",\n", " \"dogsled, dog sled, dog sleigh\",\n", " \"dome\",\n", " \"doormat, welcome mat\",\n", " \"drilling platform, offshore rig\",\n", " \"drum, membranophone, tympan\",\n", " \"drumstick\",\n", " \"dumbbell\",\n", " \"Dutch oven\",\n", " \"electric fan, blower\",\n", " \"electric guitar\",\n", " \"electric locomotive\",\n", " \"entertainment center\",\n", " \"envelope\",\n", " \"espresso maker\",\n", " \"face powder\",\n", " \"feather boa, boa\",\n", " \"file, file cabinet, filing cabinet\",\n", " \"fireboat\",\n", " \"fire engine, fire truck\",\n", " \"fire screen, fireguard\",\n", " \"flagpole, flagstaff\",\n", " \"flute, transverse flute\",\n", " \"folding chair\",\n", " \"football helmet\",\n", " \"forklift\",\n", " \"fountain\",\n", " \"fountain pen\",\n", " \"four-poster\",\n", " \"freight car\",\n", " \"French horn, horn\",\n", " \"frying pan, frypan, skillet\",\n", " \"fur coat\",\n", " \"garbage truck, dustcart\",\n", " \"gasmask, respirator, gas helmet\",\n", " \"gas pump, gasoline pump, petrol pump, island dispenser\",\n", " \"goblet\",\n", " \"go-kart\",\n", " \"golf ball\",\n", " \"golfcart, golf cart\",\n", " \"gondola\",\n", " \"gong, tam-tam\",\n", " \"gown\",\n", " \"grand piano, grand\",\n", " \"greenhouse, nursery, glasshouse\",\n", " \"grille, radiator grille\",\n", " \"grocery store, grocery, food market, market\",\n", " \"guillotine\",\n", " \"hair slide\",\n", " \"hair spray\",\n", " \"half track\",\n", " \"hammer\",\n", " \"hamper\",\n", " \"hand blower, blow dryer, blow drier, hair dryer, hair drier\",\n", " \"hand-held computer, hand-held microcomputer\",\n", " \"handkerchief, hankie, hanky, hankey\",\n", " \"hard disc, hard disk, fixed disk\",\n", " \"harmonica, mouth organ, harp, mouth harp\",\n", " \"harp\",\n", " \"harvester, reaper\",\n", " \"hatchet\",\n", " \"holster\",\n", " \"home theater, home theatre\",\n", " \"honeycomb\",\n", " \"hook, claw\",\n", " \"hoopskirt, crinoline\",\n", " \"horizontal bar, high bar\",\n", " \"horse cart, horse-cart\",\n", " \"hourglass\",\n", " \"iPod\",\n", " \"iron, smoothing iron\",\n", " \"jack-o'-lantern\",\n", " \"jean, blue jean, denim\",\n", " \"jeep, landrover\",\n", " \"jersey, T-shirt, tee shirt\",\n", " \"jigsaw puzzle\",\n", " \"jinrikisha, ricksha, rickshaw\",\n", " \"joystick\",\n", " \"kimono\",\n", " \"knee pad\",\n", " \"knot\",\n", " \"lab coat, laboratory coat\",\n", " \"ladle\",\n", " \"lampshade, lamp shade\",\n", " \"laptop, laptop computer\",\n", " \"lawn mower, mower\",\n", " \"lens cap, lens cover\",\n", " \"letter opener, paper knife, paperknife\",\n", " \"library\",\n", " \"lifeboat\",\n", " \"lighter, light, igniter, ignitor\",\n", " \"limousine, limo\",\n", " \"liner, ocean liner\",\n", " \"lipstick, lip rouge\",\n", " \"Loafer\",\n", " \"lotion\",\n", " \"loudspeaker, speaker, speaker unit, loudspeaker system, speaker system\",\n", " \"loupe, jeweler's loupe\",\n", " \"lumbermill, sawmill\",\n", " \"magnetic compass\",\n", " \"mailbag, postbag\",\n", " \"mailbox, letter box\",\n", " \"maillot\",\n", " \"maillot, tank suit\",\n", " \"manhole cover\",\n", " \"maraca\",\n", " \"marimba, xylophone\",\n", " \"mask\",\n", " \"matchstick\",\n", " \"maypole\",\n", " \"maze, labyrinth\",\n", " \"measuring cup\",\n", " \"medicine chest, medicine cabinet\",\n", " \"megalith, megalithic structure\",\n", " \"microphone, mike\",\n", " \"microwave, microwave oven\",\n", " \"military uniform\",\n", " \"milk can\",\n", " \"minibus\",\n", " \"miniskirt, mini\",\n", " \"minivan\",\n", " \"missile\",\n", " \"mitten\",\n", " \"mixing bowl\",\n", " \"mobile home, manufactured home\",\n", " \"Model T\",\n", " \"modem\",\n", " \"monastery\",\n", " \"monitor\",\n", " \"moped\",\n", " \"mortar\",\n", " \"mortarboard\",\n", " \"mosque\",\n", " \"mosquito net\",\n", " \"motor scooter, scooter\",\n", " \"mountain bike, all-terrain bike, off-roader\",\n", " \"mountain tent\",\n", " \"mouse, computer mouse\",\n", " \"mousetrap\",\n", " \"moving van\",\n", " \"muzzle\",\n", " \"nail\",\n", " \"neck brace\",\n", " \"necklace\",\n", " \"nipple\",\n", " \"notebook, notebook computer\",\n", " \"obelisk\",\n", " \"oboe, hautboy, hautbois\",\n", " \"ocarina, sweet potato\",\n", " \"odometer, hodometer, mileometer, milometer\",\n", " \"oil filter\",\n", " \"organ, pipe organ\",\n", " \"oscilloscope, scope, cathode-ray oscilloscope, CRO\",\n", " \"overskirt\",\n", " \"oxcart\",\n", " \"oxygen mask\",\n", " \"packet\",\n", " \"paddle, boat paddle\",\n", " \"paddlewheel, paddle wheel\",\n", " \"padlock\",\n", " \"paintbrush\",\n", " \"pajama, pyjama, pj's, jammies\",\n", " \"palace\",\n", " \"panpipe, pandean pipe, syrinx\",\n", " \"paper towel\",\n", " \"parachute, chute\",\n", " \"parallel bars, bars\",\n", " \"park bench\",\n", " \"parking meter\",\n", " \"passenger car, coach, carriage\",\n", " \"patio, terrace\",\n", " \"pay-phone, pay-station\",\n", " \"pedestal, plinth, footstall\",\n", " \"pencil box, pencil case\",\n", " \"pencil sharpener\",\n", " \"perfume, essence\",\n", " \"Petri dish\",\n", " \"photocopier\",\n", " \"pick, plectrum, plectron\",\n", " \"pickelhaube\",\n", " \"picket fence, paling\",\n", " \"pickup, pickup truck\",\n", " \"pier\",\n", " \"piggy bank, penny bank\",\n", " \"pill bottle\",\n", " \"pillow\",\n", " \"ping-pong ball\",\n", " \"pinwheel\",\n", " \"pirate, pirate ship\",\n", " \"pitcher, ewer\",\n", " \"plane, carpenter's plane, woodworking plane\",\n", " \"planetarium\",\n", " \"plastic bag\",\n", " \"plate rack\",\n", " \"plow, plough\",\n", " \"plunger, plumber's helper\",\n", " \"Polaroid camera, Polaroid Land camera\",\n", " \"pole\",\n", " \"police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria\",\n", " \"poncho\",\n", " \"pool table, billiard table, snooker table\",\n", " \"pop bottle, soda bottle\",\n", " \"pot, flowerpot\",\n", " \"potter's wheel\",\n", " \"power drill\",\n", " \"prayer rug, prayer mat\",\n", " \"printer\",\n", " \"prison, prison house\",\n", " \"projectile, missile\",\n", " \"projector\",\n", " \"puck, hockey puck\",\n", " \"punching bag, punch bag, punching ball, punchball\",\n", " \"purse\",\n", " \"quill, quill pen\",\n", " \"quilt, comforter, comfort, puff\",\n", " \"racer, race car, racing car\",\n", " \"racket, racquet\",\n", " \"radiator\",\n", " \"radio, wireless\",\n", " \"radio telescope, radio reflector\",\n", " \"rain barrel\",\n", " \"recreational vehicle, RV, R.V.\",\n", " \"reel\",\n", " \"reflex camera\",\n", " \"refrigerator, icebox\",\n", " \"remote control, remote\",\n", " \"restaurant, eating house, eating place, eatery\",\n", " \"revolver, six-gun, six-shooter\",\n", " \"rifle\",\n", " \"rocking chair, rocker\",\n", " \"rotisserie\",\n", " \"rubber eraser, rubber, pencil eraser\",\n", " \"rugby ball\",\n", " \"rule, ruler\",\n", " \"running shoe\",\n", " \"safe\",\n", " \"safety pin\",\n", " \"saltshaker, salt shaker\",\n", " \"sandal\",\n", " \"sarong\",\n", " \"sax, saxophone\",\n", " \"scabbard\",\n", " \"scale, weighing machine\",\n", " \"school bus\",\n", " \"schooner\",\n", " \"scoreboard\",\n", " \"screen, CRT screen\",\n", " \"screw\",\n", " \"screwdriver\",\n", " \"seat belt, seatbelt\",\n", " \"sewing machine\",\n", " \"shield, buckler\",\n", " \"shoe shop, shoe-shop, shoe store\",\n", " \"shoji\",\n", " \"shopping basket\",\n", " \"shopping cart\",\n", " \"shovel\",\n", " \"shower cap\",\n", " \"shower curtain\",\n", " \"ski\",\n", " \"ski mask\",\n", " \"sleeping bag\",\n", " \"slide rule, slipstick\",\n", " \"sliding door\",\n", " \"slot, one-armed bandit\",\n", " \"snorkel\",\n", " \"snowmobile\",\n", " \"snowplow, snowplough\",\n", " \"soap dispenser\",\n", " \"soccer ball\",\n", " \"sock\",\n", " \"solar dish, solar collector, solar furnace\",\n", " \"sombrero\",\n", " \"soup bowl\",\n", " \"space bar\",\n", " \"space heater\",\n", " \"space shuttle\",\n", " \"spatula\",\n", " \"speedboat\",\n", " \"spider web, spider's web\",\n", " \"spindle\",\n", " \"sports car, sport car\",\n", " \"spotlight, spot\",\n", " \"stage\",\n", " \"steam locomotive\",\n", " \"steel arch bridge\",\n", " \"steel drum\",\n", " \"stethoscope\",\n", " \"stole\",\n", " \"stone wall\",\n", " \"stopwatch, stop watch\",\n", " \"stove\",\n", " \"strainer\",\n", " \"streetcar, tram, tramcar, trolley, trolley car\",\n", " \"stretcher\",\n", " \"studio couch, day bed\",\n", " \"stupa, tope\",\n", " \"submarine, pigboat, sub, U-boat\",\n", " \"suit, suit of clothes\",\n", " \"sundial\",\n", " \"sunglass\",\n", " \"sunglasses, dark glasses, shades\",\n", " \"sunscreen, sunblock, sun blocker\",\n", " \"suspension bridge\",\n", " \"swab, swob, mop\",\n", " \"sweatshirt\",\n", " \"swimming trunks, bathing trunks\",\n", " \"swing\",\n", " \"switch, electric switch, electrical switch\",\n", " \"syringe\",\n", " \"table lamp\",\n", " \"tank, army tank, armored combat vehicle, armoured combat vehicle\",\n", " \"tape player\",\n", " \"teapot\",\n", " \"teddy, teddy bear\",\n", " \"television, television system\",\n", " \"tennis ball\",\n", " \"thatch, thatched roof\",\n", " \"theater curtain, theatre curtain\",\n", " \"thimble\",\n", " \"thresher, thrasher, threshing machine\",\n", " \"throne\",\n", " \"tile roof\",\n", " \"toaster\",\n", " \"tobacco shop, tobacconist shop, tobacconist\",\n", " \"toilet seat\",\n", " \"torch\",\n", " \"totem pole\",\n", " \"tow truck, tow car, wrecker\",\n", " \"toyshop\",\n", " \"tractor\",\n", " \"trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi\",\n", " \"tray\",\n", " \"trench coat\",\n", " \"tricycle, trike, velocipede\",\n", " \"trimaran\",\n", " \"tripod\",\n", " \"triumphal arch\",\n", " \"trolleybus, trolley coach, trackless trolley\",\n", " \"trombone\",\n", " \"tub, vat\",\n", " \"turnstile\",\n", " \"typewriter keyboard\",\n", " \"umbrella\",\n", " \"unicycle, monocycle\",\n", " \"upright, upright piano\",\n", " \"vacuum, vacuum cleaner\",\n", " \"vase\",\n", " \"vault\",\n", " \"velvet\",\n", " \"vending machine\",\n", " \"vestment\",\n", " \"viaduct\",\n", " \"violin, fiddle\",\n", " \"volleyball\",\n", " \"waffle iron\",\n", " \"wall clock\",\n", " \"wallet, billfold, notecase, pocketbook\",\n", " \"wardrobe, closet, press\",\n", " \"warplane, military plane\",\n", " \"washbasin, handbasin, washbowl, lavabo, wash-hand basin\",\n", " \"washer, automatic washer, washing machine\",\n", " \"water bottle\",\n", " \"water jug\",\n", " \"water tower\",\n", " \"whiskey jug\",\n", " \"whistle\",\n", " \"wig\",\n", " \"window screen\",\n", " \"window shade\",\n", " \"Windsor tie\",\n", " \"wine bottle\",\n", " \"wing\",\n", " \"wok\",\n", " \"wooden spoon\",\n", " \"wool, woolen, woollen\",\n", " \"worm fence, snake fence, snake-rail fence, Virginia fence\",\n", " \"wreck\",\n", " \"yawl\",\n", " \"yurt\",\n", " \"web site, website, internet site, site\",\n", " \"comic book\",\n", " \"crossword puzzle, crossword\",\n", " \"street sign\",\n", " \"traffic light, traffic signal, stoplight\",\n", " \"book jacket, dust cover, dust jacket, dust wrapper\",\n", " \"menu\",\n", " \"plate\",\n", " \"guacamole\",\n", " \"consomme\",\n", " \"hot pot, hotpot\",\n", " \"trifle\",\n", " \"ice cream, icecream\",\n", " \"ice lolly, lolly, lollipop, popsicle\",\n", " \"French loaf\",\n", " \"bagel, beigel\",\n", " \"pretzel\",\n", " \"cheeseburger\",\n", " \"hotdog, hot dog, red hot\",\n", " \"mashed potato\",\n", " \"head cabbage\",\n", " \"broccoli\",\n", " \"cauliflower\",\n", " \"zucchini, courgette\",\n", " \"spaghetti squash\",\n", " \"acorn squash\",\n", " \"butternut squash\",\n", " \"cucumber, cuke\",\n", " \"artichoke, globe artichoke\",\n", " \"bell pepper\",\n", " \"cardoon\",\n", " \"mushroom\",\n", " \"Granny Smith\",\n", " \"strawberry\",\n", " \"orange\",\n", " \"lemon\",\n", " \"fig\",\n", " \"pineapple, ananas\",\n", " \"banana\",\n", " \"jackfruit, jak, jack\",\n", " \"custard apple\",\n", " \"pomegranate\",\n", " \"hay\",\n", " \"carbonara\",\n", " \"chocolate sauce, chocolate syrup\",\n", " \"dough\",\n", " \"meat loaf, meatloaf\",\n", " \"pizza, pizza pie\",\n", " \"potpie\",\n", " \"burrito\",\n", " \"red wine\",\n", " \"espresso\",\n", " \"cup\",\n", " \"eggnog\",\n", " \"alp\",\n", " \"bubble\",\n", " \"cliff, drop, drop-off\",\n", " \"coral reef\",\n", " \"geyser\",\n", " \"lakeside, lakeshore\",\n", " \"promontory, headland, head, foreland\",\n", " \"sandbar, sand bar\",\n", " \"seashore, coast, seacoast, sea-coast\",\n", " \"valley, vale\",\n", " \"volcano\",\n", " \"ballplayer, baseball player\",\n", " \"groom, bridegroom\",\n", " \"scuba diver\",\n", " \"rapeseed\",\n", " \"daisy\",\n", " \"yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum\",\n", " \"corn\",\n", " \"acorn\",\n", " \"hip, rose hip, rosehip\",\n", " \"buckeye, horse chestnut, conker\",\n", " \"coral fungus\",\n", " \"agaric\",\n", " \"gyromitra\",\n", " \"stinkhorn, carrion fungus\",\n", " \"earthstar\",\n", " \"hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa\",\n", " \"bolete\",\n", " \"ear, spike, capitulum\",\n", " \"toilet tissue, toilet paper, bathroom tissue\",\n", "]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MAfLTtEXeE3-" }, "outputs": [], "source": [ "# dalmation.jpg is obtained from Getty Images under license\n", "# (https://www.gettyimages.co.uk/eula#RF).\n", "\n", "!wget -O dog.jpg https://storage.googleapis.com/perceiver_io/dalmation.jpg\n", "with open('dog.jpg', 'rb') as f:\n", " img = imageio.imread(f)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "Z7ZQJ2auy4Lt" }, "outputs": [], "source": [ "#@title Image Utility Functions\n", "\n", "MEAN_RGB = (0.485 * 255, 0.456 * 255, 0.406 * 255)\n", "STDDEV_RGB = (0.229 * 255, 0.224 * 255, 0.225 * 255)\n", "\n", "def normalize(im):\n", " return (im - np.array(MEAN_RGB)) / np.array(STDDEV_RGB)\n", "\n", "def resize_and_center_crop(image):\n", " \"\"\"Crops to center of image with padding then scales.\"\"\"\n", " shape = image.shape\n", "\n", " image_height = shape[0]\n", " image_width = shape[1]\n", "\n", " padded_center_crop_size = ((224 / (224 + 32)) *\n", " np.minimum(image_height, image_width).astype(np.float32)).astype(np.int32)\n", "\n", " offset_height = ((image_height - padded_center_crop_size) + 1) // 2\n", " offset_width = ((image_width - padded_center_crop_size) + 1) // 2\n", " crop_window = [offset_height, offset_width,\n", " padded_center_crop_size, padded_center_crop_size]\n", "\n", " # image = tf.image.crop_to_bounding_box(image_bytes, *crop_window)\n", " image = image[crop_window[0]:crop_window[0] + crop_window[2], crop_window[1]:crop_window[1]+crop_window[3]]\n", " return cv2.resize(image, (224, 224), interpolation=cv2.INTER_CUBIC)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "FfWpBNZJLib4" }, "outputs": [], "source": [ "# Imagenet classification\n", "\n", "# Obtain a [224, 224] crop of the image while preserving aspect ratio.\n", "# With Fourier position encoding, no resize is needed -- the model can\n", "# generalize to image sizes it never saw in training\n", "centered_img = resize_and_center_crop(img) # img\n", "logits, _ = imagenet_classifier.apply(params, state, rng, CONFIGS[model_type], normalize(centered_img)[None])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "vy75nEs6PdYO" }, "outputs": [], "source": [ "_, indices = jax.lax.top_k(logits[0], 5)\n", "probs = jax.nn.softmax(logits[0])\n", "\n", "plt.imshow(img)\n", "plt.axis('off')\n", "print('Top 5 labels:')\n", "for i in list(indices):\n", " print(f'{IMAGENET_LABELS[i]}: {probs[i]}')" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "Perceiver IO: ImageNet Classification.ipynb", "private_outputs": true, "provenance": [ { "file_id": "13GmNq76sKk9-gQSxpiaYg-ASC4rFQkIk", "timestamp": 1627599827239 }, { "file_id": "1bt4J3-jS7C-xZQrtx0AgAeKSBxOUoOPy", "timestamp": 1627592566036 } ], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: perceiver/colabs/masked_language_modelling.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "id": "uFsBlyxwmRq2" }, "outputs": [], "source": [ "# Copyright 2021 DeepMind Technologies Limited\n", "#\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "rmw6HSr7xZvZ" }, "outputs": [], "source": [ "# Install dependencies for Google Colab.\n", "# If you want to run this notebook on your own machine, you can skip this cell\n", "!pip install dm-haiku\n", "!pip install einops\n", "\n", "!mkdir /content/perceiver\n", "!touch /content/perceiver/__init__.py\n", "!wget -O /content/perceiver/bytes_tokenizer.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/bytes_tokenizer.py\n", "!wget -O /content/perceiver/io_processors.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/io_processors.py\n", "!wget -O /content/perceiver/perceiver.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/perceiver.py\n", "!wget -O /content/perceiver/position_encoding.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/position_encoding.py" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "IBVh06qUojjm" }, "outputs": [], "source": [ "#@title Import\n", "from typing import Union\n", "\n", "import haiku as hk\n", "import jax\n", "import jax.numpy as jnp\n", "import numpy as np\n", "import pickle\n", "\n", "from perceiver import perceiver, position_encoding, io_processors, bytes_tokenizer" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "sFa-lRuVfKZt" }, "outputs": [], "source": [ "#@title Load parameters from checkpoint\n", "!wget -O language_perceiver_io_bytes.pickle https://storage.googleapis.com/perceiver_io/language_perceiver_io_bytes.pickle\n", "\n", "with open(\"language_perceiver_io_bytes.pickle\", \"rb\") as f:\n", " params = pickle.loads(f.read())" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "LBzQQ7t_VCBo" }, "outputs": [], "source": [ "#@title Model config\n", "D_MODEL = 768\n", "D_LATENTS = 1280\n", "MAX_SEQ_LEN = 2048\n", "\n", "encoder_config = dict(\n", " num_self_attends_per_block=26,\n", " num_blocks=1,\n", " z_index_dim=256,\n", " num_z_channels=D_LATENTS,\n", " num_self_attend_heads=8,\n", " num_cross_attend_heads=8,\n", " qk_channels=8 * 32,\n", " v_channels=D_LATENTS,\n", " use_query_residual=True,\n", " cross_attend_widening_factor=1,\n", " self_attend_widening_factor=1)\n", "\n", "decoder_config = dict(\n", " output_num_channels=D_LATENTS,\n", " position_encoding_type='trainable',\n", " output_index_dims=MAX_SEQ_LEN,\n", " num_z_channels=D_LATENTS,\n", " qk_channels=8 * 32,\n", " v_channels=D_MODEL,\n", " num_heads=8,\n", " final_project=False,\n", " use_query_residual=False,\n", " trainable_position_encoding_kwargs=dict(num_channels=D_MODEL))\n", "\n", "# The tokenizer is just UTF-8 encoding (with an offset)\n", "tokenizer = bytes_tokenizer.BytesTokenizer()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "EWOeFoF0aCaT" }, "outputs": [], "source": [ "#@title Decoding Perceiver Model\n", "def apply_perceiver(\n", " inputs: jnp.ndarray, input_mask: jnp.ndarray) -\u003e jnp.ndarray:\n", " \"\"\"Runs a forward pass on the Perceiver.\n", "\n", " Args:\n", " inputs: input bytes, an int array of shape [B, T]\n", " input_mask: Array of shape indicating which entries are valid and which are\n", " masked. A truthy value indicates that the entry is valid.\n", "\n", " Returns:\n", " The output logits, an array of shape [B, T, vocab_size].\n", " \"\"\"\n", " assert inputs.shape[1] == MAX_SEQ_LEN\n", "\n", " embedding_layer = hk.Embed(\n", " vocab_size=tokenizer.vocab_size,\n", " embed_dim=D_MODEL)\n", " embedded_inputs = embedding_layer(inputs)\n", "\n", " batch_size = embedded_inputs.shape[0]\n", "\n", " input_pos_encoding = perceiver.position_encoding.TrainablePositionEncoding(\n", " index_dim=MAX_SEQ_LEN, num_channels=D_MODEL)\n", " embedded_inputs = embedded_inputs + input_pos_encoding(batch_size)\n", " perceiver_mod = perceiver.Perceiver(\n", " encoder=perceiver.PerceiverEncoder(**encoder_config),\n", " decoder=perceiver.BasicDecoder(**decoder_config))\n", " output_embeddings = perceiver_mod(\n", " embedded_inputs, is_training=False, input_mask=input_mask, query_mask=input_mask)\n", "\n", " logits = io_processors.EmbeddingDecoder(\n", " embedding_matrix=embedding_layer.embeddings)(output_embeddings)\n", " return logits\n", "\n", "apply_perceiver = hk.transform(apply_perceiver).apply" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Pna1ZXEyOJZb" }, "outputs": [], "source": [ "input_str = \"This is an incomplete sentence where some words are missing.\"\n", "input_tokens = tokenizer.to_int(input_str)\n", "\n", "# Mask \" missing.\". Note that the model performs much better if the masked chunk\n", "# starts with a space.\n", "input_tokens[51:60] = tokenizer.mask_token\n", "print(\"Tokenized string without masked bytes:\")\n", "print(tokenizer.to_string(input_tokens))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "6TCMuVUabnTg" }, "outputs": [], "source": [ "#@title Pad and reshape inputs\n", "inputs = input_tokens[None]\n", "input_mask = np.ones_like(inputs)\n", "\n", "def pad(max_sequence_length: int, inputs, input_mask):\n", " input_len = inputs.shape[1]\n", " assert input_len \u003c= max_sequence_length\n", " pad_len = max_sequence_length - input_len\n", " padded_inputs = np.pad(\n", " inputs,\n", " pad_width=((0, 0), (0, pad_len)),\n", " constant_values=tokenizer.pad_token)\n", " padded_mask = np.pad(\n", " input_mask,\n", " pad_width=((0, 0), (0, pad_len)),\n", " constant_values=0)\n", " return padded_inputs, padded_mask\n", "\n", "inputs, input_mask = pad(MAX_SEQ_LEN, inputs, input_mask)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ipZs6p0Xk3lb" }, "outputs": [], "source": [ "rng = jax.random.PRNGKey(1) # Unused\n", "\n", "out = apply_perceiver(params, rng=rng, inputs=inputs, input_mask=input_mask)\n", "\n", "masked_tokens_predictions = out[0, 51:60].argmax(axis=-1)\n", "print(\"Greedy predictions:\")\n", "print(masked_tokens_predictions)\n", "print()\n", "print(\"Predicted string:\")\n", "print(tokenizer.to_string(masked_tokens_predictions))" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "Perceiver IO: Masked Language Modelling", "private_outputs": true, "provenance": [ { "file_id": "1N31dQM-SzjG-_acz405i3jCR_m6D4bq8", "timestamp": 1627567455889 } ], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: perceiver/colabs/optical_flow.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "id": "AEigJ-mOGOk9" }, "outputs": [], "source": [ "# Copyright 2021 DeepMind Technologies Limited\n", "#\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "YyGBRVPJxLzo" }, "outputs": [], "source": [ "# Install dependencies for Google Colab.\n", "# If you want to run this notebook on your own machine, you can skip this cell\n", "!pip install dm-haiku\n", "!pip install einops\n", "\n", "!mkdir /content/perceiver\n", "!touch /content/perceiver/__init__.py\n", "!wget -O /content/perceiver/io_processors.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/io_processors.py\n", "!wget -O /content/perceiver/perceiver.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/perceiver.py\n", "!wget -O /content/perceiver/position_encoding.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/position_encoding.py" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "VHzUTH5KqNEt" }, "outputs": [], "source": [ "#@title Imports\n", "\n", "import functools\n", "import itertools\n", "import pickle\n", "\n", "import haiku as hk\n", "import jax\n", "import jax.numpy as jnp\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "import cv2\n", "import imageio\n", "\n", "from perceiver import perceiver, io_processors" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "uxeP5yit7hJg" }, "outputs": [], "source": [ "#@title Model construction\n", "\n", "FLOW_SCALE_FACTOR = 20\n", "# The network assumes images are of the following size\n", "TRAIN_SIZE = (368, 496)\n", "\n", "def optical_flow(images):\n", " \"\"\"Perceiver IO model for optical flow.\n", "\n", " Args:\n", " images: Array of two stacked images, of shape [B, 2, H, W, C]\n", " Returns:\n", " Optical flow field, of shape [B, H, W, 2].\n", " \"\"\"\n", " input_preprocessor = io_processors.ImagePreprocessor(\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " num_bands=64,\n", " max_resolution=TRAIN_SIZE,\n", " sine_only=False,\n", " concat_pos=True,\n", " ),\n", " n_extra_pos_mlp=0,\n", " prep_type='patches',\n", " spatial_downsample=1,\n", " conv_after_patching=True,\n", " temporal_downsample=2)\n", "\n", " encoder = encoder = perceiver.PerceiverEncoder(\n", " num_self_attends_per_block=24,\n", " # Weights won't be shared if num_blocks is set to 1.\n", " num_blocks=1,\n", " z_index_dim=2048,\n", " num_cross_attend_heads=1,\n", " num_z_channels=512,\n", " num_self_attend_heads=16,\n", " cross_attend_widening_factor=1,\n", " self_attend_widening_factor=1,\n", " dropout_prob=0.0,\n", " z_pos_enc_init_scale=0.02,\n", " cross_attention_shape_for_attn='kv',\n", " name='perceiver_encoder')\n", "\n", " decoder = perceiver.FlowDecoder(\n", " TRAIN_SIZE,\n", " rescale_factor=100.0,\n", " use_query_residual=False,\n", " output_num_channels=2,\n", " output_w_init=jnp.zeros,\n", " # We query the decoder using the first frame features\n", " # rather than a standard decoder position encoding.\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " concat_pos=True,\n", " max_resolution=TRAIN_SIZE,\n", " num_bands=64,\n", " sine_only=False\n", " )\n", " )\n", "\n", " model = perceiver.Perceiver(\n", " input_preprocessor=input_preprocessor,\n", " encoder=encoder,\n", " decoder=decoder,\n", " output_postprocessor=None)\n", "\n", " return model(io_processors.patches_for_flow(images),\n", " is_training=False) * FLOW_SCALE_FACTOR\n", "\n", "\n", "optical_flow = hk.transform(optical_flow)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "dmvRv3o-6ASw" }, "outputs": [], "source": [ "#@title Function to compute flow between pairs of images\n", "\n", "# If you encounter GPU memory errors while running the function below,\n", "# you can run it on the CPU instead:\n", "# _apply_optical_flow_model = jax.jit(optical_flow.apply, backend=\"cpu\")\n", "_apply_optical_flow_model = jax.jit(optical_flow.apply)\n", "\n", "def compute_grid_indices(image_shape, patch_size=TRAIN_SIZE, min_overlap=20):\n", " if min_overlap \u003e= TRAIN_SIZE[0] or min_overlap \u003e= TRAIN_SIZE[1]:\n", " raise ValueError(\n", " f\"Overlap should be less than size of patch (got {min_overlap}\"\n", " f\"for patch size {patch_size}).\")\n", " ys = list(range(0, image_shape[0], TRAIN_SIZE[0] - min_overlap))\n", " xs = list(range(0, image_shape[1], TRAIN_SIZE[1] - min_overlap))\n", " # Make sure the final patch is flush with the image boundary\n", " ys[-1] = image_shape[0] - patch_size[0]\n", " xs[-1] = image_shape[1] - patch_size[1]\n", " return itertools.product(ys, xs)\n", "\n", "def compute_optical_flow(params, rng, img1, img2, grid_indices,\n", " patch_size=TRAIN_SIZE):\n", " \"\"\"Function to compute optical flow between two images.\n", "\n", " To compute the flow between images of arbitrary sizes, we divide the image\n", " into patches, compute the flow for each patch, and stitch the flows together.\n", "\n", " Args:\n", " params: model parameters\n", " rng: jax.random.PRNGKey, not used in this model\n", " img1: first image\n", " img2: second image\n", " grid_indices: indices of the upper left corner for each patch.\n", " patch_size: size of patch, should be TRAIN_SIZE.\n", " \"\"\"\n", " imgs = jnp.stack([img1, img2], axis=0)[None]\n", " height = imgs.shape[-3]\n", " width = imgs.shape[-2]\n", "\n", " if height \u003c patch_size[0]:\n", " raise ValueError(\n", " f\"Height of image (shape: {imgs.shape}) must be at least {patch_size[0]}.\"\n", " \"Please pad or resize your image to the minimum dimension.\"\n", " )\n", " if width \u003c patch_size[1]:\n", " raise ValueError(\n", " f\"Width of image (shape: {imgs.shape}) must be at least {patch_size[1]}.\"\n", " \"Please pad or resize your image to the minimum dimension.\"\n", " )\n", "\n", " flows = 0\n", " flow_count = 0\n", "\n", " for y, x in grid_indices:\n", " inp_piece = imgs[..., y : y + patch_size[0],\n", " x : x + patch_size[1], :]\n", " flow_piece = _apply_optical_flow_model(params, rng, inp_piece)\n", " weights_x, weights_y = jnp.meshgrid(\n", " jnp.arange(patch_size[1]), jnp.arange(patch_size[0]))\n", "\n", " weights_x = jnp.minimum(weights_x + 1, patch_size[1] - weights_x)\n", " weights_y = jnp.minimum(weights_y + 1, patch_size[0] - weights_y)\n", " weights = jnp.minimum(weights_x, weights_y)[jnp.newaxis, :, :,\n", " jnp.newaxis]\n", " padding = [(0, 0), (y, height - y - patch_size[0]),\n", " (x, width - x - patch_size[1]), (0, 0)]\n", " flows += jnp.pad(flow_piece * weights, padding)\n", " flow_count += jnp.pad(weights, padding)\n", "\n", " flows /= flow_count\n", " return flows" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "EVRWatw4LXFx" }, "outputs": [], "source": [ "#@title Load parameters from checkpoint\n", "\n", "!wget -O optical_flow_checkpoint.pystate https://storage.googleapis.com/perceiver_io/optical_flow_checkpoint.pystate\n", "\n", "rng = jax.random.PRNGKey(42)\n", "with open(\"optical_flow_checkpoint.pystate\", \"rb\") as f:\n", " params = pickle.loads(f.read())\n", "\n", "state = {}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MAfLTtEXeE3-" }, "outputs": [], "source": [ "# Download two example frames from the Sintel dataset.\n", "# These files are obtained from the Sintel dataset test split,\n", "# downloaded from http://sintel.is.tue.mpg.de/downloads.\n", "# They correspond to MPI-Sintel-testing/test/clean/cave_3/frame_0001.png\n", "# and MPI-Sintel-testing/test/clean/cave_3/frame_0002.png.\n", "#\n", "# Citation for Sintel dataset:\n", "# D. J. Butler, J. Wulff, G. B. Stanley, and M. J. Black.\n", "# A naturalistic open source movie for optical flow evaluation.\n", "# European Conf. on Computer Vision (ECCV), 2012.\n", "# https://files.is.tue.mpg.de/black/papers/ButlerECCV2012.pdf\n", "#\n", "# The Sintel images are originally generated for the Durian Open Movie project\n", "# and are licensed under the Creative Commons Attribution 3.0 license (https://durian.blender.org/sharing/).\n", "# The images are copyrighted by the Blender Foundation (https://durian.blender.org).\n", "\n", "\n", "!wget -O sintel_frame1.png https://storage.googleapis.com/perceiver_io/sintel_frame1.png\n", "!wget -O sintel_frame2.png https://storage.googleapis.com/perceiver_io/sintel_frame2.png\n", "\n", "with open(\"sintel_frame1.png\", \"rb\") as f:\n", " im1 = imageio.imread(f)\n", "with open(\"sintel_frame2.png\", \"rb\") as f:\n", " im2 = imageio.imread(f)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "Z7ZQJ2auy4Lt" }, "outputs": [], "source": [ "#@title Image Utility Functions\n", "\n", "def normalize(im):\n", " return im / 255.0 * 2 - 1\n", "\n", "def visualize_flow(flow):\n", " flow = np.array(flow)\n", " # Use Hue, Saturation, Value colour model \n", " hsv = np.zeros((flow.shape[0], flow.shape[1], 3), dtype=np.uint8)\n", " hsv[..., 2] = 255\n", "\n", " mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])\n", " hsv[..., 0] = ang / np.pi / 2 * 180\n", " hsv[..., 1] = np.clip(mag * 255 / 24, 0, 255)\n", " bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)\n", " plt.imshow(bgr)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "FfWpBNZJLib4" }, "outputs": [], "source": [ "# Compute optical flow\n", "\n", "# Divide images into patches, compute flow between corresponding patches\n", "# of both images, and stitch the flows together\n", "grid_indices = compute_grid_indices(im1.shape)\n", "flow = compute_optical_flow(params, rng, normalize(im1), normalize(im2), grid_indices)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Bz7G04rmtHVI" }, "outputs": [], "source": [ "# Visualize the computed flow\n", "visualize_flow(flow[0])" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Perceiver IO: Optical Flow Visualization.ipynb", "private_outputs": true, "provenance": [ { "file_id": "1bt4J3-jS7C-xZQrtx0AgAeKSBxOUoOPy", "timestamp": 1627577366926 } ], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: perceiver/colabs/video_autoencoding.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "id": "6hVqbkgBFVKB" }, "outputs": [], "source": [ "# Copyright 2021 DeepMind Technologies Limited\n", "#\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "sm0mo9ciwhKu" }, "outputs": [], "source": [ "# Install dependencies for Google Colab.\n", "# If you want to run this notebook on your own machine, you can skip this cell\n", "!pip install dm-haiku\n", "!pip install einops\n", "\n", "!mkdir /content/perceiver\n", "!touch /content/perceiver/__init__.py\n", "!wget -O /content/perceiver/io_processors.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/io_processors.py\n", "!wget -O /content/perceiver/perceiver.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/perceiver.py\n", "!wget -O /content/perceiver/position_encoding.py https://raw.githubusercontent.com/deepmind/deepmind-research/master/perceiver/position_encoding.py" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "VHzUTH5KqNEt" }, "outputs": [], "source": [ "#@title Imports\n", "\n", "import base64\n", "import functools\n", "import os\n", "import pickle\n", "import ssl\n", "import re\n", "import tempfile\n", "\n", "from urllib import request\n", "\n", "import cv2\n", "import haiku as hk\n", "import imageio\n", "import jax\n", "import jax.numpy as jnp\n", "import numpy as np\n", "import scipy.io.wavfile\n", "\n", "from IPython.display import HTML\n", "\n", "from perceiver import perceiver, io_processors\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "Bn1jTwkv3gHf" }, "outputs": [], "source": [ "#@title Helper functions for the UCF101 dataset\n", "\n", "# Utilities to fetch videos from UCF101 dataset\n", "UCF_ROOT = 'https://www.crcv.ucf.edu/THUMOS14/UCF101/UCF101/'\n", "_VIDEO_LIST = None\n", "_CACHE_DIR = tempfile.mkdtemp()\n", "# As of July 2020, crcv.ucf.edu doesn't use a certificate accepted by the\n", "# default Colab environment anymore.\n", "unverified_context = ssl._create_unverified_context()\n", "\n", "def list_ucf_videos():\n", " \"\"\"Lists videos available in UCF101 dataset.\"\"\"\n", " global _VIDEO_LIST\n", " if not _VIDEO_LIST:\n", " index = request.urlopen(UCF_ROOT, context=unverified_context).read().decode('utf-8')\n", " videos = re.findall('(v_[\\w_]+\\.avi)', index)\n", " _VIDEO_LIST = sorted(set(videos))\n", " return list(_VIDEO_LIST)\n", "\n", "def fetch_ucf_video(video):\n", " \"\"\"Fetchs a video and cache into local filesystem.\"\"\"\n", " cache_path = os.path.join(_CACHE_DIR, video)\n", " if not os.path.exists(cache_path):\n", " urlpath = request.urljoin(UCF_ROOT, video)\n", " print('Fetching %s =\u003e %s' % (urlpath, cache_path))\n", " data = request.urlopen(urlpath, context=unverified_context).read()\n", " open(cache_path, \"wb\").write(data)\n", " return cache_path\n", "\n", "# Utilities to open video files using CV2\n", "def crop_center_square(frame):\n", " y, x = frame.shape[0:2]\n", " min_dim = min(y, x)\n", " start_x = (x // 2) - (min_dim // 2)\n", " start_y = (y // 2) - (min_dim // 2)\n", " return frame[start_y:start_y+min_dim,start_x:start_x+min_dim]\n", "\n", "def load_video(path, max_frames=0, resize=(224, 224)):\n", " cap = cv2.VideoCapture(path)\n", " frames = []\n", " try:\n", " while True:\n", " ret, frame = cap.read()\n", " if not ret:\n", " break\n", " frame = crop_center_square(frame)\n", " frame = cv2.resize(frame, resize)\n", " frame = frame[:, :, [2, 1, 0]]\n", " frames.append(frame)\n", " \n", " if len(frames) == max_frames:\n", " break\n", " finally:\n", " cap.release()\n", " return np.array(frames) / 255.0\n", "\n", "def to_gif(images):\n", " converted_images = np.clip(images * 255, 0, 255).astype(np.uint8)\n", " imageio.mimsave('./animation.gif', converted_images, fps=25)\n", " with open('./animation.gif', 'rb') as f:\n", " gif_64 = base64.b64encode(f.read()).decode('utf-8')\n", " return HTML('\u003cimg src=\"data:image/gif;base64,%s\"/\u003e' % gif_64)\n", "\n", "def play_audio(data, sample_rate=48000):\n", " scipy.io.wavfile.write('tmp_audio.wav', sample_rate, data)\n", "\n", " with open('./tmp_audio.wav', 'rb') as f:\n", " audio_64 = base64.b64encode(f.read()).decode('utf-8')\n", " return HTML('\u003caudio controls src=\"data:audio/wav;base64,%s\"/\u003e' % audio_64)\n", "\n", "def table(elements):\n", " row = ['\u003ctd\u003e%s\u003c/td\u003e' % el.data for el in elements]\n", " return HTML('\u003ctable\u003e\u003ctr\u003e%s\u003c/tr\u003e\u003c/table\u003e' % ''.join(row))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "QqXUfdsF3iZ6" }, "outputs": [], "source": [ "#@title Load video and audio from UCF\n", "\n", "video_names = list_ucf_videos()\n", "video_path = fetch_ucf_video(video_names[0])\n", "\n", "# Extract audio using FFMPEG and encode as pcm float wavfile (only format readable by scipy.io.wavfile).\n", "!yes | ffmpeg -i \"$video_path\" -c copy -f wav -map 0:a pcm_f32le -ar 48000 output.wav\n", "\n", "sample_rate, audio = scipy.io.wavfile.read(\"output.wav\")\n", "if audio.dtype == np.int16:\n", " audio = audio.astype(np.float32) / 2**15\n", "elif audio.dtype != np.float32:\n", " raise ValueError('Unexpected datatype. Model expects sound samples to lie in [-1, 1]')\n", "\n", "video = load_video(video_path)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "6hxYUvnpqD8Y" }, "outputs": [], "source": [ "#@title Kinetics 700 Classes\n", "KINETICS_CLASSES = [\"abseiling\", \"acting in play\", \"adjusting glasses\", \"air drumming\", \n", "\"alligator wrestling\", \"answering questions\", \"applauding\", \"applying cream\", \n", "\"archaeological excavation\", \"archery\", \"arguing\", \"arm wrestling\", \n", "\"arranging flowers\", \"arresting\", \"assembling bicycle\", \"assembling computer\", \n", "\"attending conference\", \"auctioning\", \"baby waking up\", \"backflip (human)\", \n", "\"baking cookies\", \"bandaging\", \"barbequing\", \"bartending\", \n", "\"base jumping\", \"bathing dog\", \"battle rope training\", \"beatboxing\", \n", "\"bee keeping\", \"being excited\", \"being in zero gravity\", \"belly dancing\", \n", "\"bench pressing\", \"bending back\", \"bending metal\", \"biking through snow\", \n", "\"blasting sand\", \"blending fruit\", \"blowdrying hair\", \"blowing bubble gum\", \n", "\"blowing glass\", \"blowing leaves\", \"blowing nose\", \"blowing out candles\", \n", "\"bobsledding\", \"bodysurfing\", \"bookbinding\", \"bottling\", \n", "\"bouncing ball (not juggling)\", \"bouncing on bouncy castle\", \"bouncing on trampoline\", \"bowling\", \n", "\"braiding hair\", \"breading or breadcrumbing\", \"breakdancing\", \"breaking boards\", \n", "\"breaking glass\", \"breathing fire\", \"brush painting\", \"brushing floor\", \n", "\"brushing hair\", \"brushing teeth\", \"building cabinet\", \"building lego\", \n", "\"building sandcastle\", \"building shed\", \"bulldozing\", \"bungee jumping\", \n", "\"burping\", \"busking\", \"calculating\", \"calligraphy\", \n", "\"canoeing or kayaking\", \"capoeira\", \"capsizing\", \"card stacking\", \n", "\"card throwing\", \"carrying baby\", \"carrying weight\", \"cartwheeling\", \n", "\"carving ice\", \"carving marble\", \"carving pumpkin\", \"carving wood with a knife\", \n", "\"casting fishing line\", \"catching fish\", \"catching or throwing baseball\", \"catching or throwing frisbee\", \n", "\"catching or throwing softball\", \"celebrating\", \"changing gear in car\", \"changing oil\", \n", "\"changing wheel (not on bike)\", \"chasing\", \"checking tires\", \"checking watch\", \n", "\"cheerleading\", \"chewing gum\", \"chiseling stone\", \"chiseling wood\", \n", "\"chopping meat\", \"chopping wood\", \"clam digging\", \"clapping\", \n", "\"clay pottery making\", \"clean and jerk\", \"cleaning gutters\", \"cleaning pool\", \n", "\"cleaning shoes\", \"cleaning toilet\", \"cleaning windows\", \"climbing a rope\", \n", "\"climbing ladder\", \"climbing tree\", \"closing door\", \"coloring in\", \n", "\"combing hair\", \"contact juggling\", \"contorting\", \"cooking chicken\", \n", "\"cooking egg\", \"cooking on campfire\", \"cooking sausages (not on barbeque)\", \"cooking scallops\", \n", "\"cosplaying\", \"coughing\", \"counting money\", \"country line dancing\", \n", "\"cracking back\", \"cracking knuckles\", \"cracking neck\", \"crawling baby\", \n", "\"crocheting\", \"crossing eyes\", \"crossing river\", \"crying\", \n", "\"cumbia\", \"curling (sport)\", \"curling eyelashes\", \"curling hair\", \n", "\"cutting apple\", \"cutting cake\", \"cutting nails\", \"cutting orange\", \n", "\"cutting pineapple\", \"cutting watermelon\", \"dancing ballet\", \"dancing charleston\", \n", "\"dancing gangnam style\", \"dancing macarena\", \"deadlifting\", \"dealing cards\", \n", "\"decorating the christmas tree\", \"decoupage\", \"delivering mail\", \"digging\", \n", "\"dining\", \"directing traffic\", \"disc golfing\", \"diving cliff\", \n", "\"docking boat\", \"dodgeball\", \"doing aerobics\", \"doing jigsaw puzzle\", \n", "\"doing laundry\", \"doing nails\", \"doing sudoku\", \"drawing\", \n", "\"dribbling basketball\", \"drinking shots\", \"driving car\", \"driving tractor\", \n", "\"drooling\", \"drop kicking\", \"drumming fingers\", \"dumpster diving\", \n", "\"dunking basketball\", \"dyeing eyebrows\", \"dyeing hair\", \"eating burger\", \n", "\"eating cake\", \"eating carrots\", \"eating chips\", \"eating doughnuts\", \n", "\"eating hotdog\", \"eating ice cream\", \"eating nachos\", \"eating spaghetti\", \n", "\"eating watermelon\", \"egg hunting\", \"embroidering\", \"entering church\", \n", "\"exercising arm\", \"exercising with an exercise ball\", \"extinguishing fire\", \"faceplanting\", \n", "\"falling off bike\", \"falling off chair\", \"feeding birds\", \"feeding fish\", \n", "\"feeding goats\", \"fencing (sport)\", \"fidgeting\", \"filling cake\", \n", "\"filling eyebrows\", \"finger snapping\", \"fixing bicycle\", \"fixing hair\", \n", "\"flint knapping\", \"flipping bottle\", \"flipping pancake\", \"fly tying\", \n", "\"flying kite\", \"folding clothes\", \"folding napkins\", \"folding paper\", \n", "\"front raises\", \"frying vegetables\", \"gargling\", \"geocaching\", \n", "\"getting a haircut\", \"getting a piercing\", \"getting a tattoo\", \"giving or receiving award\", \n", "\"gold panning\", \"golf chipping\", \"golf driving\", \"golf putting\", \n", "\"gospel singing in church\", \"grinding meat\", \"grooming cat\", \"grooming dog\", \n", "\"grooming horse\", \"gymnastics tumbling\", \"hammer throw\", \"hand washing clothes\", \n", "\"head stand\", \"headbanging\", \"headbutting\", \"helmet diving\", \n", "\"herding cattle\", \"high fiving\", \"high jump\", \"high kick\", \n", "\"historical reenactment\", \"hitting baseball\", \"hockey stop\", \"holding snake\", \n", "\"home roasting coffee\", \"hopscotch\", \"hoverboarding\", \"huddling\", \n", "\"hugging (not baby)\", \"hugging baby\", \"hula hooping\", \"hurdling\", \n", "\"hurling (sport)\", \"ice climbing\", \"ice fishing\", \"ice skating\", \n", "\"ice swimming\", \"inflating balloons\", \"installing carpet\", \"ironing\", \n", "\"ironing hair\", \"javelin throw\", \"jaywalking\", \"jetskiing\", \n", "\"jogging\", \"juggling balls\", \"juggling fire\", \"juggling soccer ball\", \n", "\"jumping bicycle\", \"jumping into pool\", \"jumping jacks\", \"jumping sofa\", \n", "\"jumpstyle dancing\", \"karaoke\", \"kicking field goal\", \"kicking soccer ball\", \n", "\"kissing\", \"kitesurfing\", \"knitting\", \"krumping\", \n", "\"land sailing\", \"laughing\", \"lawn mower racing\", \"laying bricks\", \n", "\"laying concrete\", \"laying decking\", \"laying stone\", \"laying tiles\", \n", "\"leatherworking\", \"letting go of balloon\", \"licking\", \"lifting hat\", \n", "\"lighting candle\", \"lighting fire\", \"listening with headphones\", \"lock picking\", \n", "\"long jump\", \"longboarding\", \"looking at phone\", \"looking in mirror\", \n", "\"luge\", \"lunge\", \"making a cake\", \"making a sandwich\", \n", "\"making balloon shapes\", \"making bubbles\", \"making cheese\", \"making horseshoes\", \n", "\"making jewelry\", \"making latte art\", \"making paper aeroplanes\", \"making pizza\", \n", "\"making slime\", \"making snowman\", \"making sushi\", \"making tea\", \n", "\"making the bed\", \"marching\", \"marriage proposal\", \"massaging back\", \n", "\"massaging feet\", \"massaging legs\", \"massaging neck\", \"massaging person's head\", \n", "\"metal detecting\", \"milking cow\", \"milking goat\", \"mixing colours\", \n", "\"moon walking\", \"mopping floor\", \"mosh pit dancing\", \"motorcycling\", \n", "\"mountain climber (exercise)\", \"moving baby\", \"moving child\", \"moving furniture\", \n", "\"mowing lawn\", \"mushroom foraging\", \"needle felting\", \"news anchoring\", \n", "\"opening bottle (not wine)\", \"opening coconuts\", \"opening door\", \"opening present\", \n", "\"opening refrigerator\", \"opening wine bottle\", \"packing\", \"paragliding\", \n", "\"parasailing\", \"parkour\", \"passing American football (in game)\", \"passing American football (not in game)\", \n", "\"passing soccer ball\", \"peeling apples\", \"peeling banana\", \"peeling potatoes\", \n", "\"person collecting garbage\", \"petting animal (not cat)\", \"petting cat\", \"petting horse\", \n", "\"photobombing\", \"photocopying\", \"picking apples\", \"picking blueberries\", \n", "\"pillow fight\", \"pinching\", \"pirouetting\", \"planing wood\", \n", "\"planting trees\", \"plastering\", \"playing accordion\", \"playing american football\", \n", "\"playing badminton\", \"playing bagpipes\", \"playing basketball\", \"playing bass guitar\", \n", "\"playing beer pong\", \"playing billiards\", \"playing blackjack\", \"playing cards\", \n", "\"playing cello\", \"playing checkers\", \"playing chess\", \"playing clarinet\", \n", "\"playing controller\", \"playing cricket\", \"playing cymbals\", \"playing darts\", \n", "\"playing didgeridoo\", \"playing dominoes\", \"playing drums\", \"playing field hockey\", \n", "\"playing flute\", \"playing gong\", \"playing guitar\", \"playing hand clapping games\", \n", "\"playing harmonica\", \"playing harp\", \"playing ice hockey\", \"playing keyboard\", \n", "\"playing kickball\", \"playing laser tag\", \"playing lute\", \"playing mahjong\", \n", "\"playing maracas\", \"playing marbles\", \"playing monopoly\", \"playing netball\", \n", "\"playing nose flute\", \"playing oboe\", \"playing ocarina\", \"playing organ\", \n", "\"playing paintball\", \"playing pan pipes\", \"playing piano\", \"playing piccolo\", \n", "\"playing pinball\", \"playing ping pong\", \"playing poker\", \"playing polo\", \n", "\"playing recorder\", \"playing road hockey\", \"playing rounders\", \"playing rubiks cube\", \n", "\"playing saxophone\", \"playing scrabble\", \"playing shuffleboard\", \"playing slot machine\", \n", "\"playing squash or racquetball\", \"playing tennis\", \"playing trombone\", \"playing trumpet\", \n", "\"playing ukulele\", \"playing violin\", \"playing volleyball\", \"playing with trains\", \n", "\"playing xylophone\", \"poaching eggs\", \"poking bellybutton\", \"pole vault\", \n", "\"polishing furniture\", \"polishing metal\", \"popping balloons\", \"pouring beer\", \n", "\"pouring milk\", \"pouring wine\", \"preparing salad\", \"presenting weather forecast\", \n", "\"pretending to be a statue\", \"pull ups\", \"pulling espresso shot\", \"pulling rope (game)\", \n", "\"pumping fist\", \"pumping gas\", \"punching bag\", \"punching person (boxing)\", \n", "\"push up\", \"pushing car\", \"pushing cart\", \"pushing wheelbarrow\", \n", "\"pushing wheelchair\", \"putting in contact lenses\", \"putting on eyeliner\", \"putting on foundation\", \n", "\"putting on lipstick\", \"putting on mascara\", \"putting on sari\", \"putting on shoes\", \n", "\"putting wallpaper on wall\", \"raising eyebrows\", \"reading book\", \"reading newspaper\", \n", "\"recording music\", \"repairing puncture\", \"riding a bike\", \"riding camel\", \n", "\"riding elephant\", \"riding mechanical bull\", \"riding mule\", \"riding or walking with horse\", \n", "\"riding scooter\", \"riding snow blower\", \"riding unicycle\", \"ripping paper\", \n", "\"roasting marshmallows\", \"roasting pig\", \"robot dancing\", \"rock climbing\", \n", "\"rock scissors paper\", \"roller skating\", \"rolling eyes\", \"rolling pastry\", \n", "\"rope pushdown\", \"running on treadmill\", \"sailing\", \"salsa dancing\", \n", "\"saluting\", \"sanding floor\", \"sanding wood\", \"sausage making\", \n", "\"sawing wood\", \"scrambling eggs\", \"scrapbooking\", \"scrubbing face\", \n", "\"scuba diving\", \"seasoning food\", \"separating eggs\", \"setting table\", \n", "\"sewing\", \"shaking hands\", \"shaking head\", \"shaping bread dough\", \n", "\"sharpening knives\", \"sharpening pencil\", \"shaving head\", \"shaving legs\", \n", "\"shearing sheep\", \"shining flashlight\", \"shining shoes\", \"shoot dance\", \n", "\"shooting basketball\", \"shooting goal (soccer)\", \"shooting off fireworks\", \"shopping\", \n", "\"shot put\", \"shouting\", \"shoveling snow\", \"shredding paper\", \n", "\"shucking oysters\", \"shuffling cards\", \"shuffling feet\", \"side kick\", \n", "\"sieving\", \"sign language interpreting\", \"silent disco\", \"singing\", \n", "\"sipping cup\", \"situp\", \"skateboarding\", \"ski ballet\", \n", "\"ski jumping\", \"skiing crosscountry\", \"skiing mono\", \"skiing slalom\", \n", "\"skipping rope\", \"skipping stone\", \"skydiving\", \"slacklining\", \n", "\"slapping\", \"sled dog racing\", \"sleeping\", \"slicing onion\", \n", "\"smashing\", \"smelling feet\", \"smoking\", \"smoking hookah\", \n", "\"smoking pipe\", \"snatch weight lifting\", \"sneezing\", \"snorkeling\", \n", "\"snowboarding\", \"snowkiting\", \"snowmobiling\", \"somersaulting\", \n", "\"spelunking\", \"spinning plates\", \"spinning poi\", \"splashing water\", \n", "\"spray painting\", \"spraying\", \"springboard diving\", \"square dancing\", \n", "\"squat\", \"squeezing orange\", \"stacking cups\", \"stacking dice\", \n", "\"standing on hands\", \"staring\", \"steer roping\", \"steering car\", \n", "\"sticking tongue out\", \"stomping grapes\", \"stretching arm\", \"stretching leg\", \n", "\"sucking lolly\", \"surfing crowd\", \"surfing water\", \"surveying\", \n", "\"sweeping floor\", \"swimming backstroke\", \"swimming breast stroke\", \"swimming butterfly stroke\", \n", "\"swimming front crawl\", \"swimming with dolphins\", \"swimming with sharks\", \"swing dancing\", \n", "\"swinging baseball bat\", \"swinging on something\", \"sword fighting\", \"sword swallowing\", \n", "\"tackling\", \"tagging graffiti\", \"tai chi\", \"taking photo\", \n", "\"talking on cell phone\", \"tango dancing\", \"tap dancing\", \"tapping guitar\", \n", "\"tapping pen\", \"tasting beer\", \"tasting food\", \"tasting wine\", \n", "\"testifying\", \"texting\", \"threading needle\", \"throwing axe\", \n", "\"throwing ball (not baseball or American football)\", \"throwing discus\", \"throwing knife\", \"throwing snowballs\", \n", "\"throwing tantrum\", \"throwing water balloon\", \"tickling\", \"tie dying\", \n", "\"tightrope walking\", \"tiptoeing\", \"tobogganing\", \"tossing coin\", \n", "\"tossing salad\", \"training dog\", \"trapezing\", \"treating wood\", \n", "\"trimming or shaving beard\", \"trimming shrubs\", \"trimming trees\", \"triple jump\", \n", "\"twiddling fingers\", \"tying bow tie\", \"tying knot (not on a tie)\", \"tying necktie\", \n", "\"tying shoe laces\", \"unboxing\", \"uncorking champagne\", \"unloading truck\", \n", "\"using a microscope\", \"using a paint roller\", \"using a power drill\", \"using a sledge hammer\", \n", "\"using a wrench\", \"using atm\", \"using bagging machine\", \"using circular saw\", \n", "\"using inhaler\", \"using megaphone\", \"using puppets\", \"using remote controller (not gaming)\", \n", "\"using segway\", \"vacuuming car\", \"vacuuming floor\", \"visiting the zoo\", \n", "\"wading through mud\", \"wading through water\", \"waiting in line\", \"waking up\", \n", "\"walking on stilts\", \"walking the dog\", \"walking through snow\", \"walking with crutches\", \n", "\"washing dishes\", \"washing feet\", \"washing hair\", \"washing hands\", \n", "\"watching tv\", \"water skiing\", \"water sliding\", \"watering plants\", \n", "\"waving hand\", \"waxing armpits\", \"waxing back\", \"waxing chest\", \n", "\"waxing eyebrows\", \"waxing legs\", \"weaving basket\", \"weaving fabric\", \n", "\"welding\", \"whistling\", \"windsurfing\", \"winking\", \n", "\"wood burning (art)\", \"wrapping present\", \"wrestling\", \"writing\", \n", "\"yarn spinning\", \"yawning\", \"yoga\", \"zumba\"]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "bQpSe7DMhuln" }, "outputs": [], "source": [ "# Visualize inputs\n", "table([to_gif(video), play_audio(audio)])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "uxeP5yit7hJg" }, "outputs": [], "source": [ "#@title Model construction\n", "NUM_FRAMES = 16\n", "AUDIO_SAMPLES_PER_FRAME = 48000 // 25\n", "SAMPLES_PER_PATCH = 16\n", "NUM_CLASSES = 700\n", "IMG_SZ = 56\n", "\n", "def video_autoencoder(images, audio, subsampling):\n", " n_audio_samples = NUM_FRAMES * AUDIO_SAMPLES_PER_FRAME\n", " input_preprocessor = io_processors.MultimodalPreprocessor(\n", " min_padding_size=4,\n", " modalities={\n", " 'audio': io_processors.AudioPreprocessor(\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " num_bands=192,\n", " max_resolution=(n_audio_samples,),\n", " sine_only=False,\n", " concat_pos=True,\n", " ),\n", " n_extra_pos_mlp=0,\n", " prep_type='patches',\n", " samples_per_patch=16),\n", " 'image': io_processors.ImagePreprocessor(\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " num_bands=32,\n", " max_resolution=(NUM_FRAMES, IMG_SZ, IMG_SZ),\n", " sine_only=False,\n", " concat_pos=True,\n", " ),\n", " n_extra_pos_mlp=0,\n", " prep_type='patches',\n", " spatial_downsample=4,\n", " temporal_downsample=1),\n", " 'label': io_processors.OneHotPreprocessor(),\n", " },\n", " mask_probs={'image': 0.0, 'audio': 0.0, 'label': 1.0},\n", " )\n", "\n", " output_postprocessor = io_processors.MultimodalPostprocessor(\n", " modalities={\n", " 'audio': io_processors.AudioPostprocessor(\n", " samples_per_patch=SAMPLES_PER_PATCH),\n", " 'image': io_processors.ProjectionPostprocessor(\n", " num_outputs=3),\n", " 'label': io_processors.ClassificationPostprocessor(\n", " num_classes=NUM_CLASSES),\n", " })\n", "\n", " encoder = encoder = perceiver.PerceiverEncoder(\n", " num_self_attends_per_block=8,\n", " # Weights won't be shared if num_blocks is set to 1.\n", " num_blocks=1,\n", " z_index_dim=28*28*1,\n", " num_z_channels=512,\n", " num_cross_attend_heads=1,\n", " num_self_attend_heads=8,\n", " cross_attend_widening_factor=1,\n", " self_attend_widening_factor=1,\n", " dropout_prob=0.0,\n", " z_pos_enc_init_scale=0.02,\n", " cross_attention_shape_for_attn='kv',\n", " name='encoder')\n", "\n", " subsampled_index_dims = {\n", " 'audio': subsampling['audio'].shape[0],\n", " 'image': subsampling['image'].shape[0],\n", " 'label': 1,\n", " }\n", " image_decoder = perceiver.BasicVideoAutoencodingDecoder(\n", " # Autoencoding, don't pass inputs to the queries.\n", " concat_preprocessed_input=False,\n", " subsampled_index_dims=subsampling['image'],\n", " output_shape=images.shape[:4],\n", " num_z_channels=1024,\n", " output_num_channels=512,\n", " use_query_residual=False,\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " num_bands=32,\n", " max_resolution=(NUM_FRAMES, IMG_SZ, IMG_SZ),\n", " sine_only=False,\n", " concat_pos=True,\n", " ),\n", " )\n", "\n", " decoder = perceiver.MultimodalDecoder(\n", " # Autoencoding, don't pass inputs to the queries.\n", " concat_preprocessed_input=False,\n", " subsampled_index_dims=subsampled_index_dims,\n", " # Modality specific decoders are used ONLY to generate queries.\n", " # All modalties are decoded together using a unified decoder.\n", " modalities={\n", " 'audio': perceiver.BasicDecoder(\n", " # Autoencoding, don't pass inputs to the queries.\n", " concat_preprocessed_input=False,\n", " subsampled_index_dims=subsampling['audio'],\n", " output_index_dims=(n_audio_samples // SAMPLES_PER_PATCH,),\n", " num_z_channels=1024,\n", " output_num_channels=512,\n", " use_query_residual=False,\n", " position_encoding_type='fourier',\n", " fourier_position_encoding_kwargs=dict(\n", " num_bands=192,\n", " max_resolution=(n_audio_samples,),\n", " sine_only=False,\n", " concat_pos=True,\n", " ),\n", " ),\n", " 'image': image_decoder,\n", " 'label': perceiver.ClassificationDecoder(\n", " # Autoencoding, don't pass inputs to the queries.\n", " concat_preprocessed_input=False,\n", " num_classes=NUM_CLASSES,\n", " num_z_channels=1024,\n", " use_query_residual=False,\n", " position_encoding_type='trainable',\n", " trainable_position_encoding_kwargs=dict(\n", " num_channels=1024,\n", " init_scale=0.02,\n", " ),\n", " ),\n", " },\n", " num_outputs=None,\n", " output_num_channels=512,\n", " use_query_residual=False,)\n", " \n", " model = perceiver.Perceiver(\n", " input_preprocessor=input_preprocessor,\n", " encoder=encoder,\n", " decoder=decoder,\n", " output_postprocessor=output_postprocessor)\n", " \n", " return model({'image': images,\n", " 'audio': audio,\n", " 'label': np.zeros((images.shape[0], 700))},\n", " is_training=False, subsampled_output_points=subsampling)\n", "\n", "\n", "video_autoencoder = hk.transform_with_state(video_autoencoder)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "N88EZZ7QHvbu" }, "outputs": [], "source": [ "#@title Model application\n", "\n", "\n", "def autoencode_video(params, state, rng, images, audio):\n", " nchunks = 128\n", " reconstruction = {}\n", " for chunk_idx in range(nchunks):\n", " image_chunk_size = np.prod(images.shape[1:-1]) // nchunks\n", " audio_chunk_size = audio.shape[1] // SAMPLES_PER_PATCH // nchunks\n", " subsampling = {\n", " 'image': jnp.arange(\n", " image_chunk_size * chunk_idx, image_chunk_size * (chunk_idx + 1)),\n", " 'audio': jnp.arange(\n", " audio_chunk_size * chunk_idx, audio_chunk_size * (chunk_idx + 1)),\n", " 'label': None,\n", " }\n", " output, state = video_autoencoder.apply(\n", " params, state, rng, images, audio, subsampling)\n", " reconstruction['label'] = output['label']\n", " if 'image' not in reconstruction:\n", " reconstruction['image'] = output['image']\n", " reconstruction['audio'] = output['audio']\n", " else:\n", " reconstruction['image'] = jnp.concatenate(\n", " [reconstruction['image'], output['image']], axis=1)\n", " reconstruction['audio'] = jnp.concatenate(\n", " [reconstruction['audio'], output['audio']], axis=1)\n", " \n", " reconstruction['image'] = jnp.reshape(reconstruction['image'], images.shape)\n", " reconstruction['audio'] = jnp.reshape(reconstruction['audio'], audio.shape)\n", " return reconstruction" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "EVRWatw4LXFx" }, "outputs": [], "source": [ "#@title Load parameters from checkpoint\n", "\n", "!wget -O video_autoencoding_checkpoint.pystate https://storage.googleapis.com/perceiver_io/video_autoencoding_checkpoint.pystate\n", "\n", "rng = jax.random.PRNGKey(42)\n", "with open(\"video_autoencoding_checkpoint.pystate\", \"rb\") as f:\n", " params = pickle.loads(f.read())\n", "\n", "state = {}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "FfWpBNZJLib4" }, "outputs": [], "source": [ "# Auto-encode the first 16 frames of the video and one of the audio channels\n", "reconstruction = autoencode_video(params, state, rng, video[None, :16], audio[None, :16*AUDIO_SAMPLES_PER_FRAME, 0:1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "cZpggBTO4eO5" }, "outputs": [], "source": [ "# Visualize reconstruction of first 16 frames\n", "table([to_gif(reconstruction[\"image\"][0]), play_audio(np.array(reconstruction[\"audio\"][0]))])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "oTJzBsl6xkOP" }, "outputs": [], "source": [ "# Kinetics 700 Labels\n", "scores, indices = jax.lax.top_k(jax.nn.softmax(reconstruction[\"label\"]), 5)\n", "\n", "for score, index in zip(scores[0], indices[0]):\n", " print(\"%s: %s\" % (KINETICS_CLASSES[index], score))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "7JZRtQdwC4eE" }, "outputs": [], "source": [ "# Auto-encode the entire video, one chunk at a time\n", "\n", "# Partial video and audio into 16-frame chunks\n", "nframes = video.shape[0]\n", "# Truncate to be divisible by 16\n", "nframes = nframes - (nframes % 16)\n", "video_chunks = jnp.reshape(video[:nframes], [nframes // 16, 16, 224, 224, 3])\n", "audio_chunks = jnp.reshape(audio[:nframes * AUDIO_SAMPLES_PER_FRAME],\n", " [nframes // 16, 16 * AUDIO_SAMPLES_PER_FRAME, 2])\n", "\n", "encode = jax.jit(functools.partial(autoencode_video, params, state, rng))\n", "\n", "# Logically, what we do is the following code. We write out the loop to allocate\n", "# GPU memory for only one chunk\n", "#\n", "# reconstruction = jax.vmap(encode, in_axes=1, out_axes=1)(\n", "# video_chunks[None, :], audio_chunks[None, :, :, 0:1])\n", "\n", "chunks = []\n", "for i in range(nframes // 16):\n", " reconstruction = encode(video_chunks[None, i], audio_chunks[None, i, :, 0:1])\n", " chunks.append(jax.tree_map(lambda x: np.array(x), reconstruction))\n", "\n", "reconstruction = jax.tree_multimap(lambda *args: np.stack(args, axis=1),\n", " *chunks)\n", "\n", "reconstruction = jax.tree_map(lambda x: np.reshape(x, [-1] + list(x.shape[2:])), reconstruction)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "lzwbz1mgES4d" }, "outputs": [], "source": [ "# Visualize reconstruction of entire video\n", "table([to_gif(reconstruction['image'][0]), play_audio(np.array(reconstruction['audio'][0]))])" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "", "kind": "local" }, "name": "Perceiver IO: Video Autoencoding.ipynb", "private_outputs": true, "provenance": [ { "file_id": "1qD1lvE-5c4LVw9l7H9XjA3DNtiYIcTgj", "timestamp": 1626089023488 } ], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: perceiver/io_processors.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """IO pre- and post-processors for Perceiver.""" import functools import math from typing import Any, Callable, Mapping, Optional, Sequence, Tuple import einops import haiku as hk import jax import jax.numpy as jnp import numpy as np from perceiver import position_encoding ModalitySizeT = Mapping[str, int] PreprocessorOutputT = Tuple[jnp.ndarray, Optional[jnp.ndarray], jnp.ndarray] PreprocessorT = Callable[..., PreprocessorOutputT] PostprocessorT = Callable[..., Any] def reverse_space_to_depth( frames: jnp.ndarray, temporal_block_size: int = 1, spatial_block_size: int = 1) -> jnp.ndarray: """Reverse space to depth transform.""" if len(frames.shape) == 4: return einops.rearrange( frames, 'b h w (dh dw c) -> b (h dh) (w dw) c', dh=spatial_block_size, dw=spatial_block_size) elif len(frames.shape) == 5: return einops.rearrange( frames, 'b t h w (dt dh dw c) -> b (t dt) (h dh) (w dw) c', dt=temporal_block_size, dh=spatial_block_size, dw=spatial_block_size) else: raise ValueError( 'Frames should be of rank 4 (batch, height, width, channels)' ' or rank 5 (batch, time, height, width, channels)') def space_to_depth( frames: jnp.ndarray, temporal_block_size: int = 1, spatial_block_size: int = 1) -> jnp.ndarray: """Space to depth transform.""" if len(frames.shape) == 4: return einops.rearrange( frames, 'b (h dh) (w dw) c -> b h w (dh dw c)', dh=spatial_block_size, dw=spatial_block_size) elif len(frames.shape) == 5: return einops.rearrange( frames, 'b (t dt) (h dh) (w dw) c -> b t h w (dt dh dw c)', dt=temporal_block_size, dh=spatial_block_size, dw=spatial_block_size) else: raise ValueError( 'Frames should be of rank 4 (batch, height, width, channels)' ' or rank 5 (batch, time, height, width, channels)') def extract_patches(images: jnp.ndarray, sizes: Sequence[int], strides: Sequence[int], rates: Sequence[int], padding: str = 'VALID') -> jnp.ndarray: """Extract patches from images. This function is a wrapper for jax.lax.conv_general_dilated_patches to conforms to the same interface as tf.image.extract_patches. The function extracts patches of shape sizes from the input images in the same manner as a convolution with kernel of shape sizes, stride equal to strides, and the given padding scheme. The patches are stacked in the channel dimension. Args: images: input batch of images of shape [B, H, W, C]. sizes: size of extracted patches. Must be [1, size_rows, size_cols, 1]. strides: strides, must be [1, stride_rows, stride_cols, 1]. rates: sampling rate (as in dilated convolutions), must be [1, rate_rows, rate_cols, 1]. padding: padding algorithm to use. Returns: Tensor of shape [B, patch_rows, patch_cols, size_rows * size_cols * C] """ if len(sizes) != 4 or sizes[0] != 1 or sizes[3] != 1: raise ValueError( f'Shape of sizes must be [1, size_rows, size_cols, 1], got {sizes}.') if len(strides) != 4 or strides[0] != 1 or strides[3] != 1: raise ValueError( f'Shape of strides must be [1, size_rows, size_cols, 1], ' f'got {strides}.') if len(rates) != 4 or rates[0] != 1 or rates[3] != 1: raise ValueError( f'Shape of rates must be [1, size_rows, size_cols, 1], got {rates}.') if images.ndim != 4: raise ValueError( f'Rank of images must be 4 (got tensor of shape {jnp.shape(images)})') # Rearrange axes of images to NCHW for conv_general_dilated_patches images = einops.rearrange(images, 'n h w c -> n c h w') channels = images.shape[1] patches = jax.lax.conv_general_dilated_patches( images, sizes[1:-1], strides[1:-1], padding, rhs_dilation=rates[1:-1]) # conv_general_dilated_patches returns patches in channel-major order. # Rearrange to match interface of tf.image.extract_patches. patches = einops.rearrange(patches, 'n (c ph pw) h w -> n h w (ph pw c)', c=channels, ph=sizes[1], pw=sizes[2]) return patches def patches_for_flow(inputs: jnp.ndarray) -> jnp.ndarray: """Extract 3x3x2 image patches for flow inputs.""" def pad_and_extract_patches(inputs): padded_inputs = jnp.pad(inputs, [[0, 0], [1, 1], [1, 1], [0, 0]], mode='constant') return extract_patches( padded_inputs, sizes=[1, 3, 3, 1], strides=[1, 1, 1, 1], padding='VALID', rates=[1, 1, 1, 1]) return jax.vmap(pad_and_extract_patches, in_axes=1, out_axes=1)(inputs) # ------------------------------------------------------------ # ------------------- Up/down-sampling --------------------- # ------------------------------------------------------------ class Conv2DDownsample(hk.Module): """Downsamples 4x by applying a 2D convolution and doing max pooling.""" def __init__( self, num_layers: int = 1, num_channels: int = 64, use_batchnorm: bool = True, bn_config: Optional[Mapping[str, float]] = None, name: Optional[str] = None, ): """Constructs a Conv2DDownsample model. Args: num_layers: The number of conv->max_pool layers. num_channels: The number of conv output channels. use_batchnorm: Whether to use batchnorm. bn_config: A dictionary of two elements, ``decay_rate`` and ``eps`` to be passed on to the :class:`~haiku.BatchNorm` layers. By default the ``decay_rate`` is ``0.9`` and ``eps`` is ``1e-5``. name: Name of the module. """ super().__init__(name=name) self._num_layers = num_layers self._use_batchnorm = use_batchnorm bn_config = dict(bn_config or {}) bn_config.setdefault('decay_rate', 0.9) bn_config.setdefault('eps', 1e-5) bn_config.setdefault('create_scale', True) bn_config.setdefault('create_offset', True) self.layers = [] for _ in range(self._num_layers): conv = hk.Conv2D( output_channels=num_channels, kernel_shape=7, stride=2, with_bias=False, padding='SAME', name='conv') if use_batchnorm: batchnorm = hk.BatchNorm(name='batchnorm', **bn_config) else: batchnorm = None self.layers.append(dict(conv=conv, batchnorm=batchnorm)) def __call__(self, inputs: jnp.ndarray, *, is_training: bool, test_local_stats: bool = False) -> jnp.ndarray: out = inputs for layer in self.layers: out = layer['conv'](out) if layer['batchnorm'] is not None: out = layer['batchnorm'](out, is_training, test_local_stats) out = jax.nn.relu(out) out = hk.max_pool(out, window_shape=(1, 3, 3, 1), strides=(1, 2, 2, 1), padding='SAME') return out class Conv2DUpsample(hk.Module): """Upsamples 4x using 2 2D transposed convolutions.""" def __init__( self, n_outputs: int, name: Optional[str] = None, ): """Constructs a Conv2DUpsample model. Args: n_outputs: The number of output channels of the module. name: Name of the module. """ super().__init__(name=name) self.transp_conv1 = hk.Conv2DTranspose( output_channels=n_outputs*2, kernel_shape=4, stride=2, with_bias=True, padding='SAME', name='transp_conv_1') self.transp_conv2 = hk.Conv2DTranspose( output_channels=n_outputs, kernel_shape=4, stride=2, with_bias=True, padding='SAME', name='transp_conv_2') def __call__(self, inputs: jnp.ndarray, *, is_training: bool, test_local_stats: bool = False) -> jnp.ndarray: out = inputs out = self.transp_conv1(out) out = jax.nn.relu(out) out = self.transp_conv2(out) return out class Conv3DUpsample(hk.Module): """Simple convolutional auto-encoder.""" def __init__(self, n_outputs: int, n_time_upsamples: int = 2, n_space_upsamples: int = 4, name: Optional[str] = None): super().__init__(name=name) self._n_outputs = n_outputs self._n_time_upsamples = n_time_upsamples self._n_space_upsamples = n_space_upsamples def __call__(self, x: jnp.ndarray, *, is_training: bool) -> jnp.ndarray: n_upsamples = max(self._n_time_upsamples, self._n_space_upsamples) time_stride = 2 space_stride = 2 for i in range(n_upsamples): if i >= self._n_time_upsamples: time_stride = 1 if i >= self._n_space_upsamples: space_stride = 1 channels = self._n_outputs * pow(2, n_upsamples - 1 - i) x = hk.Conv3DTranspose(output_channels=channels, stride=[time_stride, space_stride, space_stride], kernel_shape=[4, 4, 4], name=f'conv3d_transpose_{i}')(x) if i != n_upsamples - 1: x = jax.nn.relu(x) return x class ImagePreprocessor(hk.Module): """Image preprocessing for Perceiver Encoder.""" def __init__( self, prep_type='conv', spatial_downsample: int = 4, temporal_downsample: int = 1, position_encoding_type: str = 'fourier', n_extra_pos_mlp: int = 0, num_channels: int = 64, conv_after_patching: bool = False, conv2d_use_batchnorm: bool = True, concat_or_add_pos: str = 'concat', name: Optional[str] = None, **position_encoding_kwargs): super().__init__(name=name) if prep_type not in ('conv', 'patches', 'pixels', 'conv1x1'): raise ValueError('Invalid prep_type!') if concat_or_add_pos not in ['concat', 'add']: raise ValueError( f'Invalid value {concat_or_add_pos} for concat_or_add_pos.') self._prep_type = prep_type self._spatial_downsample = spatial_downsample self._temporal_downsample = temporal_downsample self._concat_or_add_pos = concat_or_add_pos self._conv_after_patching = conv_after_patching self._num_channels = num_channels if self._prep_type == 'conv': # Downsampling with conv is currently restricted convnet_num_layers = math.log(spatial_downsample, 4) convnet_num_layers_is_int = ( convnet_num_layers == np.round(convnet_num_layers)) if not convnet_num_layers_is_int or temporal_downsample != 1: raise ValueError('Only powers of 4 expected for spatial ' 'and 1 expected for temporal ' 'downsampling with conv.') self.convnet = Conv2DDownsample( num_layers=int(convnet_num_layers), num_channels=num_channels, use_batchnorm=conv2d_use_batchnorm) elif self._prep_type == 'conv1x1': assert temporal_downsample == 1, 'conv1x1 does not downsample in time.' self.convnet_1x1 = hk.Conv2D( num_channels, kernel_shape=[1, 1], # spatial_downsample is unconstrained for 1x1 convolutions. stride=[spatial_downsample, spatial_downsample]) # Partially construct the positional encoding function. # We fully construct it when we know the input size. self._positional_encoding_ctor = functools.partial( position_encoding.build_position_encoding, position_encoding_type=position_encoding_type, **position_encoding_kwargs) # Stack MLPs to get a deeper positional embedding. self._n_extra_pos_mlp = n_extra_pos_mlp def _build_network_inputs( self, inputs: jnp.ndarray, pos: jnp.ndarray, network_input_is_1d: bool = True) -> Tuple[jnp.ndarray, jnp.ndarray]: """Construct the final input, including position encoding.""" batch_size = inputs.shape[0] index_dims = inputs.shape[1:-1] # Reshape input features to a 1D index dimension if necessary. if len(inputs.shape) > 3 and network_input_is_1d: inputs = jnp.reshape( inputs, [batch_size, np.prod(index_dims), -1]) # Construct the position encoding. pos_enc = self._positional_encoding_ctor( index_dims=index_dims)(batch_size=batch_size, pos=pos) for i in range(0, self._n_extra_pos_mlp): pos_enc += hk.Linear(pos_enc.shape[-1])(pos_enc) if i < (self._n_extra_pos_mlp-1): pos_enc = jax.nn.relu(pos_enc) if not network_input_is_1d: # Reshape pos to match the input feature shape # if the network takes non-1D inputs sh = inputs.shape pos_enc = jnp.reshape(pos_enc, list(sh)[:-1]+[-1]) if self._concat_or_add_pos == 'concat': inputs_with_pos = jnp.concatenate([inputs, pos_enc], axis=-1) elif self._concat_or_add_pos == 'add': inputs_with_pos = inputs + pos_enc return inputs_with_pos, inputs def __call__( self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, network_input_is_1d: bool = True) -> PreprocessorOutputT: if self._prep_type == 'conv': # Convnet image featurization. # Downsamples spatially by a factor of 4 conv = self.convnet if len(inputs.shape) == 5: conv = hk.BatchApply(conv) inputs = conv(inputs, is_training=is_training) elif self._prep_type == 'conv1x1': # maps inputs to 64d conv = self.convnet_1x1 if len(inputs.shape) == 5: conv = hk.BatchApply(conv) inputs = conv(inputs) elif self._prep_type == 'patches': # Space2depth featurization. # Video: B x T x H x W x C inputs = space_to_depth( inputs, temporal_block_size=self._temporal_downsample, spatial_block_size=self._spatial_downsample) if inputs.ndim == 5 and inputs.shape[1] == 1: # for flow inputs = jnp.squeeze(inputs, axis=1) if self._conv_after_patching: inputs = hk.Linear(self._num_channels, name='patches_linear')(inputs) elif self._prep_type == 'pixels': # if requested, downsamples in the crudest way if inputs.ndim == 4: inputs = inputs[:, ::self._spatial_downsample, ::self._spatial_downsample] elif inputs.ndim == 5: inputs = inputs[:, ::self._temporal_downsample, ::self._spatial_downsample, ::self._spatial_downsample] else: raise ValueError('Unsupported data format for pixels.') inputs, inputs_without_pos = self._build_network_inputs( inputs, pos, network_input_is_1d) modality_sizes = None # Size for each modality, only needed for multimodal return inputs, modality_sizes, inputs_without_pos class ImagePostprocessor(hk.Module): """Image postprocessing for Perceiver.""" def __init__( self, postproc_type: str = 'pixels', spatial_upsample: int = 1, temporal_upsample: int = 1, n_outputs: int = -1, # only relevant for 'conv1x1', 'conv', and 'raft' input_reshape_size: Optional[Sequence[int]] = None, name: Optional[str] = None): super().__init__(name=name) if postproc_type not in ('conv', 'patches', 'pixels', 'raft', 'conv1x1'): raise ValueError('Invalid postproc_type!') # Architecture parameters: self._postproc_type = postproc_type self._temporal_upsample = temporal_upsample self._spatial_upsample = spatial_upsample self._input_reshape_size = input_reshape_size if self._postproc_type == 'pixels': # No postprocessing. if self._temporal_upsample != 1 or self._spatial_upsample != 1: raise ValueError('Pixels postprocessing should not currently upsample.') elif self._postproc_type == 'conv1x1': assert self._temporal_upsample == 1, 'conv1x1 does not upsample in time.' if n_outputs == -1: raise ValueError('Expected value for n_outputs') self.conv1x1 = hk.Conv2D( n_outputs, kernel_shape=[1, 1], # spatial_downsample is unconstrained for 1x1 convolutions. stride=[self._spatial_upsample, self._spatial_upsample]) elif self._postproc_type == 'conv': if n_outputs == -1: raise ValueError('Expected value for n_outputs') if self._temporal_upsample != 1: def int_log2(x): return int(np.round(np.log(x) / np.log(2))) self.convnet = Conv3DUpsample( n_outputs, int_log2(temporal_upsample), int_log2(spatial_upsample)) else: self.convnet = Conv2DUpsample(n_outputs) def __call__( self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, modality_sizes: Optional[ModalitySizeT] = None) -> jnp.ndarray: if self._input_reshape_size is not None: inputs = jnp.reshape( inputs, [inputs.shape[0]] + list(self._input_reshape_size) + [inputs.shape[-1]]) if self._postproc_type == 'conv' or self._postproc_type == 'raft': # Convnet image featurization. conv = self.convnet if len(inputs.shape) == 5 and self._temporal_upsample == 1: conv = hk.BatchApply(conv) inputs = conv(inputs, is_training=is_training) elif self._postproc_type == 'conv1x1': inputs = self.conv1x1(inputs) elif self._postproc_type == 'patches': inputs = reverse_space_to_depth( inputs, self._temporal_upsample, self._spatial_upsample) return inputs class OneHotPreprocessor(hk.Module): """One-hot preprocessor for Perceiver Encoder.""" def __init__(self, name: Optional[str] = None): super().__init__(name=name) def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, network_input_is_1d: bool = True) -> PreprocessorOutputT: # Add a dummy index dimension. inputs = inputs[:, None, :] # No position encodings, so the 1st (input) and 3rd (inputs_without_pos) # outputs are identical. return inputs, None, inputs class AudioPreprocessor(hk.Module): """Audio preprocessing for Perceiver Encoder.""" def __init__( self, prep_type: str = 'patches', samples_per_patch: int = 96, position_encoding_type: str = 'fourier', n_extra_pos_mlp: int = 0, concat_or_add_pos: str = 'concat', name: Optional[str] = None, **position_encoding_kwargs): super().__init__(name=name) if prep_type not in ('patches',): raise ValueError('Invalid prep_type!') if concat_or_add_pos not in ['concat', 'add']: raise ValueError( f'Invalid value {concat_or_add_pos} for concat_or_add_pos.') self._samples_per_patch = samples_per_patch self._concat_or_add_pos = concat_or_add_pos # Partially construct the positional encoding function. # We fully construct it when we know the input size. self._positional_encoding_ctor = functools.partial( position_encoding.build_position_encoding, position_encoding_type=position_encoding_type, **position_encoding_kwargs) # for deeper positional embeddings self._n_extra_pos_mlp = n_extra_pos_mlp def _build_network_inputs( self, inputs: jnp.ndarray, pos: jnp.ndarray) -> Tuple[jnp.ndarray, jnp.ndarray]: """Construct the final input, including position encoding.""" batch_size = inputs.shape[0] index_dims = inputs.shape[1:-1] # Construct the position encoding. pos_enc = self._positional_encoding_ctor( index_dims=index_dims)(batch_size=batch_size, pos=pos) for i in range(0, self._n_extra_pos_mlp): pos_enc += hk.Linear(pos_enc.shape[-1])(pos_enc) if i < (self._n_extra_pos_mlp-1): pos_enc = jax.nn.relu(pos_enc) if self._concat_or_add_pos == 'concat': inputs_with_pos = jnp.concatenate([inputs, pos_enc], axis=-1) elif self._concat_or_add_pos == 'add': inputs_with_pos = inputs + pos_enc return inputs_with_pos, inputs def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, network_input_is_1d: bool = True) -> PreprocessorOutputT: inputs = jnp.reshape(inputs, [inputs.shape[0], -1, self._samples_per_patch]) inputs, inputs_without_pos = self._build_network_inputs(inputs, pos) modality_sizes = None # Size for each modality, only needed for multimodal return inputs, modality_sizes, inputs_without_pos class AudioPostprocessor(hk.Module): """Audio postprocessing for Perceiver.""" def __init__( self, postproc_type: str = 'patches', # 'conv', 'patches', 'pixels' samples_per_patch: int = 96, name: Optional[str] = None): super().__init__(name=name) if postproc_type not in ('patches',): raise ValueError('Invalid postproc_type!') self._samples_per_patch = samples_per_patch # Architecture parameters: self._postproc_type = postproc_type def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, modality_sizes: Optional[ModalitySizeT] = None) -> jnp.ndarray: out = hk.Linear(self._samples_per_patch)(inputs) return jnp.reshape(out, [inputs.shape[0], -1]) class IdentityPostprocessor(hk.Module): """Passes through the inputs unchanged.""" def __init__(self, name: Optional[str] = None): super().__init__(name=name) def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, modality_sizes: Optional[ModalitySizeT] = None) -> jnp.ndarray: return inputs def restructure(modality_sizes: ModalitySizeT, inputs: jnp.ndarray) -> Mapping[str, jnp.ndarray]: """Partitions a [B, N, C] tensor into tensors for each modality. Args: modality_sizes: dict specifying the size of the modality inputs: input tensor Returns: dict mapping name of modality to its associated tensor. """ outputs = {} index = 0 # Apply a predictable ordering to the modalities for modality in sorted(modality_sizes.keys()): size = modality_sizes[modality] inp = inputs[:, index:index + size] index += size outputs[modality] = inp return outputs class MultimodalPreprocessor(hk.Module): """Multimodal preprocessing for Perceiver Encoder. Inputs for each modality is preprocessed then padded with trainable position embeddings to have the same number of channels. """ def __init__( self, modalities: Mapping[str, PreprocessorT], mask_probs: Optional[Mapping[str, float]] = None, min_padding_size: int = 2, name: Optional[str] = None): """Constructor. Args: modalities: dict mapping modality name to preprocessor mask_probs: dict mapping modality name to masking probability of that modality min_padding_size: the minimum padding size for all modalities. The final output will have num_channels equal to the maximum channels across all modalities plus min_padding_size. name: name of module """ super().__init__(name=name) self._modalities = modalities self._min_padding_size = min_padding_size self._mask_probs = mask_probs def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, network_input_is_1d: bool = True) -> PreprocessorOutputT: outputs = {} inputs_without_pos = {} for modality, preprocessor in self._modalities.items(): outputs[modality], _, inputs_without_pos[modality] = preprocessor( inputs[modality], is_training=is_training, pos=pos, network_input_is_1d=network_input_is_1d) common_channel_size = (max(o.shape[2] for o in outputs.values()) + self._min_padding_size) padded = {} modality_sizes = {} for modality, output in outputs.items(): pos_enc = position_encoding.TrainablePositionEncoding( 1, num_channels=common_channel_size-output.shape[2], init_scale=0.02, name=f'{modality}_padding') padding = jnp.broadcast_to( pos_enc(batch_size=output.shape[0]), [output.shape[0], output.shape[1], common_channel_size-output.shape[2]]) output_padded = jnp.concatenate([output, padding], axis=2) if self._mask_probs is not None: # Randomly mask out each token corresponding to this modality mask_token = position_encoding.TrainablePositionEncoding( 1, num_channels=output_padded.shape[2], init_scale=0.02, name=f'{modality}_mask_token')(output.shape[0]) mask_prob = self._mask_probs[modality] rng = hk.next_rng_key() mask = jax.random.bernoulli(rng, mask_prob, shape=[output.shape[0], output.shape[1]]) mask = jnp.expand_dims(mask, axis=2) output_padded = (1 - mask) * output_padded + mask * mask_token padded[modality] = output_padded modality_sizes[modality] = output_padded.shape[1] # Apply a predictable ordering to the modalities padded_ls = [padded[k] for k in sorted(padded.keys())] return (jnp.concatenate(padded_ls, axis=1), # pytype: disable=bad-return-type # jax-ndarray modality_sizes, inputs_without_pos) class MultimodalPostprocessor(hk.Module): """Multimodal postprocessing for Perceiver.""" def __init__( self, modalities: Mapping[str, PostprocessorT], input_is_dict: bool = False, name: Optional[str] = None): """Constructor. Args: modalities: dict mapping modality name to post processor for that modality input_is_dict: If True, input is assumed to be dictionary structured, and outputs keep the same dictionary shape. If False, input is a tensor which is sliced up during postprocessing by `modality_sizes`. name: name of the module """ super().__init__(name=name) self._modalities = modalities self._input_is_dict = input_is_dict def __call__( self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, modality_sizes: Optional[ModalitySizeT] = None) -> Mapping[str, jnp.ndarray]: if not self._input_is_dict: # Slice up modalities by their sizes. assert modality_sizes is not None inputs = restructure(modality_sizes=modality_sizes, inputs=inputs) outputs = {modality: postprocessor( inputs[modality], is_training=is_training, pos=pos, modality_sizes=None) for modality, postprocessor in self._modalities.items()} return outputs class ClassificationPostprocessor(hk.Module): """Classification postprocessing for Perceiver.""" def __init__( self, num_classes: int, name: Optional[str] = None): super().__init__(name=name) self._num_classes = num_classes def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, modality_sizes: Optional[ModalitySizeT] = None) -> jnp.ndarray: logits = hk.Linear(self._num_classes)(inputs) return logits[:, 0, :] class ProjectionPostprocessor(hk.Module): """Projection postprocessing for Perceiver.""" def __init__( self, num_outputs: int, name: Optional[str] = None): super().__init__(name=name) self._num_outputs = num_outputs def __call__(self, inputs: jnp.ndarray, *, is_training: bool, pos: Optional[jnp.ndarray] = None, modality_sizes: Optional[ModalitySizeT] = None) -> jnp.ndarray: logits = hk.Linear(self._num_outputs)(inputs) return logits class EmbeddingDecoder(hk.Module): """Haiku module to decode embeddings.""" def __init__(self, embedding_matrix: jnp.ndarray, name='embedding_decoder'): """Constructs the module. Args: embedding_matrix: Array of shape [vocab_size, d_model]. name: Name of the module. """ super().__init__(name=name) self._embedding_matrix = embedding_matrix self._vocab_size, self._d_model = embedding_matrix.shape def __call__(self, embeddings: jnp.ndarray) -> jnp.ndarray: batch_size, seq_len, _ = embeddings.shape output = jnp.matmul( embeddings.reshape([-1, self._d_model]), # Flatten batch dim jnp.transpose(self._embedding_matrix)) bias = hk.get_parameter('bias', shape=[self._vocab_size], init=jnp.zeros) output = output + bias return output.reshape([batch_size, seq_len, self._vocab_size]) ================================================ FILE: perceiver/io_processors_test.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for io_processors.""" import numpy as np import tensorflow as tf from perceiver import io_processors def _create_test_image(shape): image = np.arange(np.prod(np.array(shape))) return np.reshape(image, shape) def test_space_to_depth_image(): image_shape = (2, 3 * 5, 3 * 7, 11) image = _create_test_image(image_shape) output = io_processors.space_to_depth(image, spatial_block_size=3) assert output.shape == (2, 5, 7, 3 * 3 * 11) def test_space_to_depth_video(): image_shape = (2, 5 * 7, 3 * 11, 3 * 13, 17) image = _create_test_image(image_shape) output = io_processors.space_to_depth(image, spatial_block_size=3, temporal_block_size=5) assert output.shape == (2, 7, 11, 13, 5 * 3 * 3 * 17) def test_reverse_space_to_depth_image(): image_shape = (2, 5, 7, 3 * 3 * 11) image = _create_test_image(image_shape) output = io_processors.reverse_space_to_depth(image, spatial_block_size=3) assert output.shape == (2, 3 * 5, 3 * 7, 11) def test_reverse_space_to_depth_video(): image_shape = (2, 7, 11, 13, 5 * 3 * 3 * 17) image = _create_test_image(image_shape) output = io_processors.reverse_space_to_depth( image, spatial_block_size=3, temporal_block_size=5) assert output.shape == (2, 5 * 7, 3 * 11, 3 * 13, 17) def test_extract_patches(): image_shape = (2, 5, 7, 3) image = _create_test_image(image_shape) sizes = [1, 2, 3, 1] strides = [1, 1, 2, 1] rates = [1, 2, 1, 1] for padding in ["VALID", "SAME"]: jax_patches = io_processors.extract_patches( image, sizes=sizes, strides=strides, rates=rates, padding=padding) tf_patches = tf.image.extract_patches( image, sizes=sizes, strides=strides, rates=rates, padding=padding) assert np.array_equal( np.array(jax_patches), tf_patches.numpy()) ================================================ FILE: perceiver/perceiver.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Perceiver architecture and components.""" import abc import math import haiku as hk import jax import jax.numpy as jnp import numpy as np from perceiver import io_processors from perceiver import position_encoding # ----------------------------------------------------------- # ---------------------- Primitives ----------------------- # ----------------------------------------------------------- def attend(q, k, v, dropout_prob=0.0, attention_mask=None): """Computes multi-head attention using a query, key and value. Args: q: Query with shape [batch, q_indices, num_heads, head_dim]. k: Key with shape [batch, kv_indices, num_heads, head_dim]. v: Value with shape [batch, kv_indices, num_heads, head_dim]. dropout_prob: dropout probability on the attention weights. attention_mask: Array of shape [batch, q_indices, kv_indices] indicating which attentions are valid Returns: Output of the attention with shape [batch, q_indices, hiddens] """ batch, q_indices, num_heads, q_head_dim = q.shape _, _, _, v_head_dim = v.shape hiddens = num_heads * v_head_dim attention = jnp.einsum('bthd,bThd->bhtT', q, k) scale = 1. / math.sqrt(q_head_dim) attention *= scale if attention_mask is not None: # Use large_k instead of np.NINF because np.NINF breaks for causal-masked # left-padded sampling. large_k = jnp.array(1e4 if attention.dtype == jnp.float16 else 1e30, dtype=attention.dtype) attention = jnp.where(attention_mask[:, None, :, :], attention, -large_k) normalized = jax.nn.softmax(attention) if dropout_prob > 0: normalized = hk.dropout(hk.next_rng_key(), dropout_prob, normalized) summed = jnp.einsum('bhtT,bThd->bthd', normalized, v) summed = jnp.reshape(summed, [batch, q_indices, hiddens]) if attention_mask is not None: # If all attended tokens are masked, or for masked tokens # some rows of logits gets completely masked, in which case the softmax # gives a uniform row and we obtain non-zero outputs where it should be # zero. We force zeros. wipe_attn = jnp.all( attention_mask == 0, axis=2, keepdims=True) # shape (B, T, 1) summed = jnp.where(wipe_attn, jnp.zeros_like(summed), summed) return summed def conv_1d( output_channels, init_scale=1.0, with_bias=True, name=None): """A 1D convolution.""" return hk.Linear( output_size=output_channels, with_bias=with_bias, w_init=hk.initializers.VarianceScaling(init_scale), name=name) def layer_norm(x, name=None): return hk.LayerNorm(axis=-1, create_scale=True, create_offset=True, name=name)(x) def make_cross_attention_mask(query_mask, kv_mask): batch_size, query_len = query_mask.shape _, key_len = kv_mask.shape mask = jax.vmap(jnp.outer)(query_mask, kv_mask) assert mask.shape == (batch_size, query_len, key_len) return mask # ----------------------------------------------------------- # ----------------------- Modules ------------------------- # ----------------------------------------------------------- class Attention(hk.Module): """Multi-headed {cross, self}-attention.""" def __init__(self, num_heads=8, init_scale=1.0, with_final_bias=True, final_init_scale_multiplier=1., dropout_prob=0.0, qk_channels=None, v_channels=None, output_channels=None, name=None): super(Attention, self).__init__(name=name) self._num_heads = num_heads self._init_scale = init_scale self._with_final_bias = with_final_bias self._final_init_scale = final_init_scale_multiplier * init_scale self._dropout_prob = dropout_prob # If none of these are passed, the Q input determines the output shape: self._qk_channels = qk_channels self._v_channels = v_channels self._output_channels = output_channels def __call__(self, inputs_q, inputs_kv, attention_mask=None): # Q and K must have the same number of channels. # Default to preserving Q's input's shape. if self._qk_channels is None: self._qk_channels = inputs_q.shape[-1] # V's num_channels determines the shape of the output of QKV-attention. # Default to the same number of channels used in the key-query operation. if self._v_channels is None: self._v_channels = self._qk_channels # Project the output of QKV attention to a desired number of channels. # Default to the same number as the output of the QKV attention operation. if self._output_channels is None: self._output_channels = self._v_channels if self._qk_channels % self._num_heads != 0: raise ValueError(f'qk_channels ({self._qk_channels}) must be divisible by' f' num_heads ({self._num_heads}).') if self._v_channels % self._num_heads != 0: raise ValueError(f'v_channels ({self._v_channels}) must be divisible by' f' num_heads ({self._num_heads}).') qk_channels_per_head = self._qk_channels // self._num_heads v_channels_per_head = self._v_channels // self._num_heads # Project QKV to a common feature dimension. q = conv_1d(self._qk_channels, init_scale=self._init_scale)(inputs_q) k = conv_1d(self._qk_channels, init_scale=self._init_scale)(inputs_kv) v = conv_1d(self._v_channels, init_scale=self._init_scale)(inputs_kv) # Reshape channels for multi-head attention. batch, q_time, _ = q.shape _, kv_time, _ = k.shape q = jnp.reshape(q, [batch, q_time, self._num_heads, qk_channels_per_head]) k = jnp.reshape(k, [batch, kv_time, self._num_heads, qk_channels_per_head]) v = jnp.reshape(v, [batch, kv_time, self._num_heads, v_channels_per_head]) result = attend(q, k, v, dropout_prob=self._dropout_prob, attention_mask=attention_mask) return conv_1d( self._output_channels, with_bias=self._with_final_bias, init_scale=self._final_init_scale)(result) class MLP(hk.Module): """A Transformer-style dense module to follow attention.""" def __init__(self, widening_factor=4, dropout_prob=0.0, init_scale=1., name=None): super(MLP, self).__init__(name=name) self._widening_factor = widening_factor self._dropout_prob = dropout_prob self._init_scale = init_scale def __call__(self, x, *, is_training): dropout_prob = self._dropout_prob if is_training else 0.0 output_channels = x.shape[-1] x = conv_1d( output_channels=self._widening_factor * output_channels, init_scale=self._init_scale)(x) x = jax.nn.gelu(x) x = conv_1d( output_channels=output_channels, init_scale=self._init_scale)(x) return hk.dropout(hk.next_rng_key(), dropout_prob, x) class SelfAttention(hk.Module): """A self-attention module, including a dense block.""" def __init__(self, widening_factor=4, dropout_prob=0.0, dropout_attn_prob=0.0, num_heads=8, att_init_scale=1.0, dense_init_scale=1.0, qk_channels=None, v_channels=None, name=None): super(SelfAttention, self).__init__(name=name) self._widening_factor = widening_factor self._dropout_prob = dropout_prob self._dropout_attn_prob = dropout_attn_prob self._num_heads = num_heads self._att_init_scale = att_init_scale self._dense_init_scale = dense_init_scale self._qk_channels = qk_channels self._v_channels = v_channels def __call__(self, inputs, *, attention_mask=None, is_training): dropout_prob = self._dropout_prob if is_training else 0.0 dropout_attn_prob = self._dropout_attn_prob if is_training else 0.0 x = inputs qkv_inputs = layer_norm(inputs) attention = Attention( num_heads=self._num_heads, init_scale=self._att_init_scale, qk_channels=self._qk_channels, v_channels=self._v_channels, dropout_prob=dropout_attn_prob)(qkv_inputs, qkv_inputs, attention_mask=attention_mask) attention = hk.dropout(hk.next_rng_key(), dropout_prob, attention) x += attention x += MLP( widening_factor=self._widening_factor, dropout_prob=dropout_prob, init_scale=self._dense_init_scale)( layer_norm(x), is_training=is_training) return x class CrossAttention(hk.Module): """A cross-attention module, including a dense block.""" def __init__(self, widening_factor=1, dropout_prob=0.0, dropout_attn_prob=0.0, num_heads=8, att_init_scale=1.0, dense_init_scale=1.0, shape_for_attn='kv', use_query_residual=True, qk_channels=None, v_channels=None, name=None): super(CrossAttention, self).__init__(name=name) self._widening_factor = widening_factor self._dropout_prob = dropout_prob self._dropout_attn_prob = dropout_attn_prob self._num_heads = num_heads self._att_init_scale = att_init_scale self._dense_init_scale = dense_init_scale self._shape_for_attn = shape_for_attn self._use_query_residual = use_query_residual self._qk_channels = qk_channels self._v_channels = v_channels def __call__(self, inputs_q, inputs_kv, *, attention_mask=None, is_training): dropout_prob = self._dropout_prob if is_training else 0.0 dropout_attn_prob = self._dropout_attn_prob if is_training else 0.0 output_channels = inputs_q.shape[-1] if self._shape_for_attn == 'q': qk_channels = inputs_q.shape[-1] elif self._shape_for_attn == 'kv': qk_channels = inputs_kv.shape[-1] else: raise ValueError(f'Unknown value {self._shape_for_attn} for ' 'shape_for_attention.') v_channels = None if self._qk_channels is not None: qk_channels = self._qk_channels if self._v_channels is not None: v_channels = self._v_channels attention = Attention( num_heads=self._num_heads, init_scale=self._att_init_scale, dropout_prob=dropout_attn_prob, qk_channels=qk_channels, v_channels=v_channels, output_channels=output_channels)(layer_norm(inputs_q), layer_norm(inputs_kv), attention_mask=attention_mask) attention = hk.dropout(hk.next_rng_key(), dropout_prob, attention) # Optionally include a residual to the query. # Consider omitting the residual if the semantics of query and output # are different, e.g. if queries are positions and outputs are pixels. if self._use_query_residual: x = inputs_q + attention else: x = attention x += MLP( widening_factor=self._widening_factor, dropout_prob=dropout_prob, init_scale=self._dense_init_scale)( layer_norm(x), is_training=is_training) return x # ----------------------------------------------------------- # ----------------------- Perceiver ----------------------- # ----------------------------------------------------------- class Perceiver(hk.Module): """The Perceiver: a scalable, fully attentional architecture.""" def __init__( self, encoder, decoder, input_preprocessor=None, output_postprocessor=None, name='perceiver'): super().__init__(name=name) # Feature and task parameters: self._input_preprocessor = input_preprocessor self._output_postprocessor = output_postprocessor self._decoder = decoder self._encoder = encoder def __call__(self, inputs, *, is_training, subsampled_output_points=None, pos=None, input_mask=None, query_mask=None): if self._input_preprocessor: network_input_is_1d = self._encoder._input_is_1d inputs, modality_sizes, inputs_without_pos = self._input_preprocessor( inputs, pos=pos, is_training=is_training, network_input_is_1d=network_input_is_1d) else: modality_sizes = None inputs_without_pos = None # Get the queries for encoder and decoder cross-attends. encoder_query = self._encoder.latents(inputs) decoder_query = self._decoder.decoder_query( inputs, modality_sizes, inputs_without_pos, subsampled_points=subsampled_output_points) # Run the network forward: z = self._encoder(inputs, encoder_query, is_training=is_training, input_mask=input_mask) _, output_modality_sizes = self._decoder.output_shape( inputs) output_modality_sizes = output_modality_sizes or modality_sizes outputs = self._decoder( decoder_query, z, is_training=is_training, query_mask=query_mask) if self._output_postprocessor: outputs = self._output_postprocessor(outputs, is_training=is_training, modality_sizes=output_modality_sizes) return outputs class PerceiverEncoder(hk.Module): """The Perceiver Encoder: a scalable, fully attentional encoder.""" def __init__( self, # The encoder has a total of # num_self_attends_per_block * num_blocks # self-attend layers. We share weights between blocks. num_self_attends_per_block=6, num_blocks=8, z_index_dim=512, num_z_channels=1024, qk_channels=None, v_channels=None, num_cross_attend_heads=1, num_self_attend_heads=8, cross_attend_widening_factor=1, self_attend_widening_factor=1, dropout_prob=0.0, z_pos_enc_init_scale=0.02, cross_attention_shape_for_attn='kv', use_query_residual=True, name='perceiver_encoder'): super().__init__(name=name) # Check that we can use multihead-attention with these shapes. if num_z_channels % num_self_attend_heads != 0: raise ValueError(f'num_z_channels ({num_z_channels}) must be divisible by' f' num_self_attend_heads ({num_self_attend_heads}).') if num_z_channels % num_cross_attend_heads != 0: raise ValueError(f'num_z_channels ({num_z_channels}) must be divisible by' f' num_cross_attend_heads ({num_cross_attend_heads}).') self._input_is_1d = True self._num_blocks = num_blocks # Construct the latent array initial state. self.z_pos_enc = position_encoding.TrainablePositionEncoding( index_dim=z_index_dim, num_channels=num_z_channels, init_scale=z_pos_enc_init_scale) # Construct the cross attend: self.cross_attend = CrossAttention( dropout_prob=dropout_prob, num_heads=num_cross_attend_heads, widening_factor=cross_attend_widening_factor, shape_for_attn=cross_attention_shape_for_attn, qk_channels=qk_channels, v_channels=v_channels, use_query_residual=use_query_residual) # Construct the block of self-attend layers. # We get deeper architectures by applying this block more than once. self.self_attends = [] for _ in range(num_self_attends_per_block): self_attend = SelfAttention( num_heads=num_self_attend_heads, dropout_prob=dropout_prob, qk_channels=qk_channels, v_channels=v_channels, widening_factor=self_attend_widening_factor) self.self_attends.append(self_attend) def latents(self, inputs): # Initialize the latent array for the initial cross-attend. return self.z_pos_enc(batch_size=inputs.shape[0]) def __call__(self, inputs, z, *, is_training, input_mask=None): attention_mask = None if input_mask is not None: attention_mask = make_cross_attention_mask( query_mask=jnp.ones(z.shape[:2], dtype=jnp.int32), kv_mask=input_mask) z = self.cross_attend(z, inputs, is_training=is_training, attention_mask=attention_mask) for _ in range(self._num_blocks): for self_attend in self.self_attends: z = self_attend(z, is_training=is_training) return z class AbstractPerceiverDecoder(hk.Module, metaclass=abc.ABCMeta): """Abstract Perceiver decoder.""" @abc.abstractmethod def decoder_query(self, inputs, modality_sizes=None, inputs_without_pos=None, subsampled_points=None): raise NotImplementedError @abc.abstractmethod def output_shape(self, inputs): raise NotImplementedError @abc.abstractmethod def __call__(self, query, z, *, is_training, query_mask=None): raise NotImplementedError class ProjectionDecoder(AbstractPerceiverDecoder): """Baseline projection decoder (no cross-attention).""" def __init__( self, num_classes, final_avg_before_project=False, name='projection_decoder'): super().__init__(name=name) self._final_avg_before_project = final_avg_before_project self._num_classes = num_classes self.final_layer = hk.Linear( num_classes, w_init=jnp.zeros, name='logits') def decoder_query(self, inputs, modality_sizes=None, inputs_without_pos=None, subsampled_points=None): return None def output_shape(self, inputs): return ((inputs.shape[0], self._num_classes), None) def __call__(self, query, z, *, is_training, query_mask=None): # b x n_z x c -> b x c z = jnp.mean(z, axis=1, dtype=z.dtype) # b x c -> b x n_logits logits = self.final_layer(z) return logits class BasicDecoder(AbstractPerceiverDecoder): """Cross-attention-based decoder.""" def __init__(self, output_num_channels, position_encoding_type='trainable', # Ignored if position_encoding_type == 'none': output_index_dims=None, subsampled_index_dims=None, num_z_channels=1024, qk_channels=None, v_channels=None, use_query_residual=False, output_w_init=None, concat_preprocessed_input=False, num_heads=1, name='basic_decoder', final_project=True, **position_encoding_kwargs): super().__init__(name=name) self._position_encoding_type = position_encoding_type # If `none`, the decoder will not construct any position encodings. # You should construct your own when quering the decoder. self.output_pos_enc = None if self._position_encoding_type != 'none': self.output_pos_enc = position_encoding.build_position_encoding( position_encoding_type, index_dims=output_index_dims, **position_encoding_kwargs) self._output_index_dim = output_index_dims if subsampled_index_dims is None: subsampled_index_dims = output_index_dims self._subsampled_index_dims = subsampled_index_dims self._output_num_channels = output_num_channels self._output_w_init = output_w_init self._use_query_residual = use_query_residual self._qk_channels = qk_channels self._v_channels = v_channels self._final_project = final_project self._num_heads = num_heads self._concat_preprocessed_input = concat_preprocessed_input def output_shape(self, inputs): return ((inputs[0], self._subsampled_index_dims, self._output_num_channels), None) def decoder_query(self, inputs, modality_sizes=None, inputs_without_pos=None, subsampled_points=None): assert self._position_encoding_type != 'none' # Queries come from elsewhere if subsampled_points is not None: # unravel_index returns a tuple (x_idx, y_idx, ...) # stack to get the [n, d] tensor of coordinates pos = jnp.stack( jnp.unravel_index(subsampled_points, self._output_index_dim), axis=1) # Map these coordinates to [-1, 1] pos = -1 + 2 * pos / jnp.array(self._output_index_dim)[None, :] pos = jnp.broadcast_to(pos[None], [inputs.shape[0], pos.shape[0], pos.shape[1]]) pos_emb = self.output_pos_enc( batch_size=inputs.shape[0], pos=pos) pos_emb = jnp.reshape(pos_emb, [pos_emb.shape[0], -1, pos_emb.shape[-1]]) else: pos_emb = self.output_pos_enc(batch_size=inputs.shape[0]) if self._concat_preprocessed_input: if inputs_without_pos is None: raise ValueError('Value is required for inputs_without_pos if' ' concat_preprocessed_input is True') pos_emb = jnp.concatenate([inputs_without_pos, pos_emb], axis=-1) return pos_emb def __call__(self, query, z, *, is_training, query_mask=None): # Cross-attention decoding. # key, value: B x N x K; query: B x M x K # Attention maps -> B x N x M # Output -> B x M x K # Construct cross attention and linear layer lazily, in case we don't need # them. attention_mask = None if query_mask is not None: attention_mask = make_cross_attention_mask( query_mask=query_mask, kv_mask=jnp.ones(z.shape[:2], dtype=jnp.int32)) decoding_cross_attn = CrossAttention( dropout_prob=0.0, num_heads=self._num_heads, widening_factor=1, shape_for_attn='kv', qk_channels=self._qk_channels, v_channels=self._v_channels, use_query_residual=self._use_query_residual) final_layer = hk.Linear( self._output_num_channels, w_init=self._output_w_init, name='output') output = decoding_cross_attn(query, z, is_training=is_training, attention_mask=attention_mask) if self._final_project: output = final_layer(output) return output class ClassificationDecoder(AbstractPerceiverDecoder): """Cross-attention based classification decoder. Light-weight wrapper of `BasicDecoder` for logit output. """ def __init__(self, num_classes, name='classification_decoder', **decoder_kwargs): super().__init__(name=name) self._num_classes = num_classes self.decoder = BasicDecoder( output_index_dims=(1,), # Predict a single logit array. output_num_channels=num_classes, **decoder_kwargs) def decoder_query(self, inputs, modality_sizes=None, inputs_without_pos=None, subsampled_points=None): return self.decoder.decoder_query(inputs, modality_sizes, inputs_without_pos, subsampled_points=subsampled_points) def output_shape(self, inputs): return (inputs.shape[0], self._num_classes), None def __call__(self, query, z, *, is_training, query_mask=None): # B x 1 x num_classes -> B x num_classes logits = self.decoder(query, z, is_training=is_training) return logits[:, 0, :] class MultimodalDecoder(AbstractPerceiverDecoder): """Multimodal decoding by composing uni-modal decoders. The modalities argument of the constructor is a dictionary mapping modality name to the decoder of that modality. That decoder will be used to construct queries for that modality. However, there is a shared cross attention across all modalities, using the concatenated per-modality query vectors. """ def __init__(self, modalities, num_outputs, output_num_channels, min_padding_size=2, subsampled_index_dims=None, name='multimodal_decoder', **decoder_kwargs): super().__init__(name=name) self._modalities = modalities self._subsampled_index_dims = subsampled_index_dims self._min_padding_size = min_padding_size self._output_num_channels = output_num_channels self._num_outputs = num_outputs self._decoder = BasicDecoder( output_index_dims=(num_outputs,), output_num_channels=output_num_channels, position_encoding_type='none', **decoder_kwargs) def decoder_query(self, inputs, modality_sizes, inputs_without_pos=None, # pytype: disable=signature-mismatch # overriding-parameter-count-checks subsampled_points=None): # Partition the flat inputs among the different modalities inputs = io_processors.restructure(modality_sizes, inputs) # Obtain modality-specific decoders' queries subsampled_points = subsampled_points or dict() decoder_queries = dict() for modality, decoder in self._modalities.items(): # Get input_without_pos for this modality if it exists. input_without_pos = None if inputs_without_pos is not None: input_without_pos = inputs_without_pos.get(modality, None) decoder_queries[modality] = decoder.decoder_query( inputs=inputs[modality], modality_sizes=None, inputs_without_pos=input_without_pos, subsampled_points=subsampled_points.get(modality, None) ) # Pad all queries with trainable position encodings to make them # have the same channels num_channels = (max(query.shape[2] for query in decoder_queries.values()) + self._min_padding_size) def embed(modality, x): x = jnp.reshape(x, [x.shape[0], np.prod(x.shape[1:-1]), x.shape[-1]]) pos = position_encoding.TrainablePositionEncoding( 1, num_channels=num_channels - x.shape[2], init_scale=0.02, name=f'{modality}_padding')(x.shape[0]) pos = jnp.broadcast_to( pos, [x.shape[0], x.shape[1], num_channels - x.shape[2]]) return jnp.concatenate([x, pos], axis=2) # Apply a predictable ordering to the modalities return jnp.concatenate([ embed(modality, decoder_queries[modality]) for modality in sorted(self._modalities.keys()) ], axis=1) def output_shape(self, inputs): if self._subsampled_index_dims is not None: subsampled_index_dims = sum(self._subsampled_index_dims.values()) else: subsampled_index_dims = self._num_outputs return ((inputs.shape[0], subsampled_index_dims, self._output_num_channels), self._subsampled_index_dims) def __call__(self, query, z, *, is_training, query_mask=None): # B x 1 x num_classes -> B x num_classes return self._decoder(query, z, is_training=is_training) class BasicVideoAutoencodingDecoder(AbstractPerceiverDecoder): """Cross-attention based video-autoencoding decoder. Light-weight wrapper of `BasicDecoder` with video reshaping logic. """ def __init__(self, output_shape, position_encoding_type, name='basic_video_autoencoding_decoder', **decoder_kwargs): super().__init__(name=name) if len(output_shape) != 4: # B, T, H, W raise ValueError(f'Expected rank 4 output_shape, got {output_shape}.') # Build the decoder components: self._output_shape = output_shape self._output_num_channels = decoder_kwargs['output_num_channels'] self.decoder = BasicDecoder( output_index_dims=self._output_shape[1:4], # T*H*W position_encoding_type=position_encoding_type, **decoder_kwargs) def decoder_query(self, inputs, modality_sizes=None, inputs_without_pos=None, subsampled_points=None): return self.decoder.decoder_query(inputs, modality_sizes=modality_sizes, inputs_without_pos=inputs_without_pos, subsampled_points=subsampled_points) def output_shape(self, inputs): return ([inputs.shape[0]] + self._output_shape[1:] + [self._output_num_channels], None) def __call__(self, query, z, *, is_training, query_mask=None): output = self.decoder(query, z, is_training=is_training) output = jnp.reshape(output, self._output_shape + [output.shape[-1]]) return output class FlowDecoder(AbstractPerceiverDecoder): """Cross-attention based flow decoder.""" def __init__(self, output_image_shape, output_num_channels=2, rescale_factor=100.0, name='flow_decoder', **decoder_kwargs): super().__init__(name=name) self._output_image_shape = output_image_shape self._output_num_channels = output_num_channels self._rescale_factor = rescale_factor self.decoder = BasicDecoder( output_num_channels=output_num_channels, **decoder_kwargs) def output_shape(self, inputs): # The channel dimensions of output here don't necessarily correspond to # (u, v) of flow: they may contain dims needed for the post-processor. return ((inputs.shape[0],) + tuple(self._output_image_shape) + ( self._output_num_channels,), None) def decoder_query( self, inputs, modality_sizes=None, inputs_without_pos=None, subsampled_points=None): if subsampled_points is not None: raise ValueError("FlowDecoder doesn't support subsampling yet.") # assumes merged in time return inputs def __call__(self, query, z, *, is_training, query_mask=None): # Output flow and rescale. preds = self.decoder(query, z, is_training=is_training) preds /= self._rescale_factor return preds.reshape([preds.shape[0]] + list(self._output_image_shape) + [preds.shape[-1]]) ================================================ FILE: perceiver/position_encoding.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Position encodings and utilities.""" import abc import functools import haiku as hk import jax import jax.numpy as jnp import numpy as np def generate_fourier_features( pos, num_bands, max_resolution=(224, 224), concat_pos=True, sine_only=False): """Generate a Fourier frequency position encoding with linear spacing. Args: pos: The position of n points in d dimensional space. A jnp array of shape [n, d]. num_bands: The number of bands (K) to use. max_resolution: The maximum resolution (i.e. the number of pixels per dim). A tuple representing resolution for each dimension concat_pos: Concatenate the input position encoding to the Fourier features? sine_only: Whether to use a single phase (sin) or two (sin/cos) for each frequency band. Returns: embedding: A 1D jnp array of shape [n, n_channels]. If concat_pos is True and sine_only is False, output dimensions are ordered as: [dim_1, dim_2, ..., dim_d, sin(pi*f_1*dim_1), ..., sin(pi*f_K*dim_1), ..., sin(pi*f_1*dim_d), ..., sin(pi*f_K*dim_d), cos(pi*f_1*dim_1), ..., cos(pi*f_K*dim_1), ..., cos(pi*f_1*dim_d), ..., cos(pi*f_K*dim_d)], where dim_i is pos[:, i] and f_k is the kth frequency band. """ min_freq = 1.0 # Nyquist frequency at the target resolution: freq_bands = jnp.stack([ jnp.linspace(min_freq, res / 2, num=num_bands, endpoint=True) for res in max_resolution], axis=0) # Get frequency bands for each spatial dimension. # Output is size [n, d * num_bands] per_pos_features = pos[:, :, None] * freq_bands[None, :, :] per_pos_features = jnp.reshape(per_pos_features, [-1, np.prod(per_pos_features.shape[1:])]) if sine_only: # Output is size [n, d * num_bands] per_pos_features = jnp.sin(jnp.pi * (per_pos_features)) else: # Output is size [n, 2 * d * num_bands] per_pos_features = jnp.concatenate( [jnp.sin(jnp.pi * per_pos_features), jnp.cos(jnp.pi * per_pos_features)], axis=-1) # Concatenate the raw input positions. if concat_pos: # Adds d bands to the encoding. per_pos_features = jnp.concatenate([pos, per_pos_features], axis=-1) return per_pos_features def build_linear_positions(index_dims, output_range=(-1.0, 1.0)): """Generate an array of position indices for an N-D input array. Args: index_dims: The shape of the index dimensions of the input array. output_range: The min and max values taken by each input index dimension. Returns: A jnp array of shape [index_dims[0], index_dims[1], .., index_dims[-1], N]. """ def _linspace(n_xels_per_dim): return jnp.linspace( output_range[0], output_range[1], num=n_xels_per_dim, endpoint=True, dtype=jnp.float32) dim_ranges = [ _linspace(n_xels_per_dim) for n_xels_per_dim in index_dims] array_index_grid = jnp.meshgrid(*dim_ranges, indexing='ij') return jnp.stack(array_index_grid, axis=-1) class AbstractPositionEncoding(hk.Module, metaclass=abc.ABCMeta): """Abstract Perceiver decoder.""" @abc.abstractmethod def __call__(self, batch_size, pos): raise NotImplementedError class TrainablePositionEncoding(AbstractPositionEncoding): """Trainable position encoding.""" def __init__(self, index_dim, num_channels=128, init_scale=0.02, name=None): super(TrainablePositionEncoding, self).__init__(name=name) self._index_dim = index_dim self._num_channels = num_channels self._init_scale = init_scale def __call__(self, batch_size, pos=None): del pos # Unused. pos_embs = hk.get_parameter( 'pos_embs', [self._index_dim, self._num_channels], init=hk.initializers.TruncatedNormal(stddev=self._init_scale)) if batch_size is not None: pos_embs = jnp.broadcast_to( pos_embs[None, :, :], (batch_size,) + pos_embs.shape) return pos_embs def _check_or_build_spatial_positions(pos, index_dims, batch_size): """Checks or builds spatial position features (x, y, ...). Args: pos: None, or an array of position features. If None, position features are built. Otherwise, their size is checked. index_dims: An iterable giving the spatial/index size of the data to be featurized. batch_size: The batch size of the data to be featurized. Returns: An array of position features, of shape [batch_size, prod(index_dims)]. """ if pos is None: pos = build_linear_positions(index_dims) pos = jnp.broadcast_to(pos[None], (batch_size,) + pos.shape) pos = jnp.reshape(pos, [batch_size, np.prod(index_dims), -1]) else: # Just a warning label: you probably don't want your spatial features to # have a different spatial layout than your pos coordinate system. # But feel free to override if you think it'll work! assert pos.shape[-1] == len(index_dims) return pos class FourierPositionEncoding(AbstractPositionEncoding): """Fourier (Sinusoidal) position encoding.""" def __init__(self, index_dims, num_bands, concat_pos=True, max_resolution=None, sine_only=False, name=None): super(FourierPositionEncoding, self).__init__(name=name) self._num_bands = num_bands self._concat_pos = concat_pos self._sine_only = sine_only self._index_dims = index_dims # Use the index dims as the maximum resolution if it's not provided. self._max_resolution = max_resolution or index_dims def __call__(self, batch_size, pos=None): pos = _check_or_build_spatial_positions(pos, self._index_dims, batch_size) build_ff_fn = functools.partial( generate_fourier_features, num_bands=self._num_bands, max_resolution=self._max_resolution, concat_pos=self._concat_pos, sine_only=self._sine_only) return jax.vmap(build_ff_fn, 0, 0)(pos) class PositionEncodingProjector(AbstractPositionEncoding): """Projects a position encoding to a target size.""" def __init__(self, output_size, base_position_encoding, name=None): super(PositionEncodingProjector, self).__init__(name=name) self._output_size = output_size self._base_position_encoding = base_position_encoding def __call__(self, batch_size, pos=None): base_pos = self._base_position_encoding(batch_size, pos) projected_pos = hk.Linear(output_size=self._output_size)(base_pos) return projected_pos def build_position_encoding( position_encoding_type, index_dims, project_pos_dim=-1, trainable_position_encoding_kwargs=None, fourier_position_encoding_kwargs=None, name=None): """Builds the position encoding.""" if position_encoding_type == 'trainable': assert trainable_position_encoding_kwargs is not None output_pos_enc = TrainablePositionEncoding( # Construct 1D features: index_dim=np.prod(index_dims), name=name, **trainable_position_encoding_kwargs) elif position_encoding_type == 'fourier': assert fourier_position_encoding_kwargs is not None output_pos_enc = FourierPositionEncoding( index_dims=index_dims, name=name, **fourier_position_encoding_kwargs) else: raise ValueError(f'Unknown position encoding: {position_encoding_type}.') if project_pos_dim > 0: # Project the position encoding to a target dimension: output_pos_enc = PositionEncodingProjector( output_size=project_pos_dim, base_position_encoding=output_pos_enc) return output_pos_enc ================================================ FILE: perceiver/requirements.txt ================================================ absl-py==0.13.0 dill==0.3.4 dm-haiku==0.0.4 einops==0.3.0 flatbuffers~=1.12.0 imageio==2.9.0 immutabledict==2.0.0 jaxline==0.0.3 numpy~=1.19.2 opencv-python==4.5.2.54 opt-einsum==3.3.0 optax==0.0.9 Pillow==8.3.1 scipy==1.7.0 six~=1.15.0 tabulate==0.8.9 tensorflow==2.5.0 tensorflow-addons==0.13.0 tensorflow-datasets==4.3.0 tensorflow-probability==0.13.0 ================================================ FILE: perceiver/train/autoaugment.py ================================================ # Copyright 2019 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """AutoAugment and RandAugment policies for enhanced image preprocessing. AutoAugment Reference: https://arxiv.org/abs/1805.09501 RandAugment Reference: https://arxiv.org/abs/1909.13719 """ from __future__ import absolute_import from __future__ import division from __future__ import print_function import inspect import math from ml_collections import config_dict import tensorflow.compat.v1 as tf from tensorflow_addons import image as contrib_image # pylint: disable=deprecated-method # This signifies the max integer that the controller RNN could predict for the # augmentation scheme. _MAX_LEVEL = 10. def policy_v0(): """Autoaugment policy that was used in AutoAugment Paper.""" # Each tuple is an augmentation operation of the form # (operation, probability, magnitude). Each element in policy is a # sub-policy that will be applied sequentially on the image. policy = [ [('Equalize', 0.8, 1), ('ShearY', 0.8, 4)], [('Color', 0.4, 9), ('Equalize', 0.6, 3)], [('Color', 0.4, 1), ('Rotate', 0.6, 8)], [('Solarize', 0.8, 3), ('Equalize', 0.4, 7)], [('Solarize', 0.4, 2), ('Solarize', 0.6, 2)], [('Color', 0.2, 0), ('Equalize', 0.8, 8)], [('Equalize', 0.4, 8), ('SolarizeAdd', 0.8, 3)], [('ShearX', 0.2, 9), ('Rotate', 0.6, 8)], [('Color', 0.6, 1), ('Equalize', 1.0, 2)], [('Invert', 0.4, 9), ('Rotate', 0.6, 0)], [('Equalize', 1.0, 9), ('ShearY', 0.6, 3)], [('Color', 0.4, 7), ('Equalize', 0.6, 0)], [('Posterize', 0.4, 6), ('AutoContrast', 0.4, 7)], [('Solarize', 0.6, 8), ('Color', 0.6, 9)], [('Solarize', 0.2, 4), ('Rotate', 0.8, 9)], [('Rotate', 1.0, 7), ('TranslateY', 0.8, 9)], [('ShearX', 0.0, 0), ('Solarize', 0.8, 4)], [('ShearY', 0.8, 0), ('Color', 0.6, 4)], [('Color', 1.0, 0), ('Rotate', 0.6, 2)], [('Equalize', 0.8, 4), ('Equalize', 0.0, 8)], [('Equalize', 1.0, 4), ('AutoContrast', 0.6, 2)], [('ShearY', 0.4, 7), ('SolarizeAdd', 0.6, 7)], [('Posterize', 0.8, 2), ('Solarize', 0.6, 10)], [('Solarize', 0.6, 8), ('Equalize', 0.6, 1)], [('Color', 0.8, 6), ('Rotate', 0.4, 5)], ] return policy def policy_vtest(): """Autoaugment test policy for debugging.""" # Each tuple is an augmentation operation of the form # (operation, probability, magnitude). Each element in policy is a # sub-policy that will be applied sequentially on the image. policy = [ [('TranslateX', 1.0, 4), ('Equalize', 1.0, 10)], ] return policy def blend(image1, image2, factor): """Blend image1 and image2 using 'factor'. Factor can be above 0.0. A value of 0.0 means only image1 is used. A value of 1.0 means only image2 is used. A value between 0.0 and 1.0 means we linearly interpolate the pixel values between the two images. A value greater than 1.0 "extrapolates" the difference between the two pixel values, and we clip the results to values between 0 and 255. Args: image1: An image Tensor of type uint8. image2: An image Tensor of type uint8. factor: A floating point value above 0.0. Returns: A blended image Tensor of type uint8. """ if factor == 0.0: return tf.convert_to_tensor(image1) if factor == 1.0: return tf.convert_to_tensor(image2) image1 = tf.to_float(image1) image2 = tf.to_float(image2) difference = image2 - image1 scaled = factor * difference # Do addition in float. temp = tf.to_float(image1) + scaled # Interpolate if factor > 0.0 and factor < 1.0: # Interpolation means we always stay within 0 and 255. return tf.cast(temp, tf.uint8) # Extrapolate: # # We need to clip and then cast. return tf.cast(tf.clip_by_value(temp, 0.0, 255.0), tf.uint8) def cutout(image, pad_size, replace=0): """Apply cutout (https://arxiv.org/abs/1708.04552) to image. This operation applies a (2*pad_size x 2*pad_size) mask of zeros to a random location within `img`. The pixel values filled in will be of the value `replace`. The located where the mask will be applied is randomly chosen uniformly over the whole image. Args: image: An image Tensor of type uint8. pad_size: Specifies how big the zero mask that will be generated is that is applied to the image. The mask will be of size (2*pad_size x 2*pad_size). replace: What pixel value to fill in the image in the area that has the cutout mask applied to it. Returns: An image Tensor that is of type uint8. """ image_height = tf.shape(image)[0] image_width = tf.shape(image)[1] # Sample the center location in the image where the zero mask will be applied. cutout_center_height = tf.random_uniform( shape=[], minval=0, maxval=image_height, dtype=tf.int32) cutout_center_width = tf.random_uniform( shape=[], minval=0, maxval=image_width, dtype=tf.int32) lower_pad = tf.maximum(0, cutout_center_height - pad_size) upper_pad = tf.maximum(0, image_height - cutout_center_height - pad_size) left_pad = tf.maximum(0, cutout_center_width - pad_size) right_pad = tf.maximum(0, image_width - cutout_center_width - pad_size) cutout_shape = [image_height - (lower_pad + upper_pad), image_width - (left_pad + right_pad)] padding_dims = [[lower_pad, upper_pad], [left_pad, right_pad]] mask = tf.pad( tf.zeros(cutout_shape, dtype=image.dtype), padding_dims, constant_values=1) mask = tf.expand_dims(mask, -1) mask = tf.tile(mask, [1, 1, 3]) image = tf.where( tf.equal(mask, 0), tf.ones_like(image, dtype=image.dtype) * replace, image) return image def solarize(image, threshold=128): # For each pixel in the image, select the pixel # if the value is less than the threshold. # Otherwise, subtract the pixel from 255. return tf.where(image < threshold, image, 255 - image) def solarize_add(image, addition=0, threshold=128): # For each pixel in the image less than threshold # we add 'addition' amount to it and then clip the # pixel value to be between 0 and 255. The value # of 'addition' is between -128 and 128. added_image = tf.cast(image, tf.int64) + addition added_image = tf.cast(tf.clip_by_value(added_image, 0, 255), tf.uint8) return tf.where(image < threshold, added_image, image) def color(image, factor): """Equivalent of PIL Color.""" degenerate = tf.image.grayscale_to_rgb(tf.image.rgb_to_grayscale(image)) return blend(degenerate, image, factor) def contrast(image, factor): """Equivalent of PIL Contrast.""" degenerate = tf.image.rgb_to_grayscale(image) # Cast before calling tf.histogram. degenerate = tf.cast(degenerate, tf.int32) # Compute the grayscale histogram, then compute the mean pixel value, # and create a constant image size of that value. Use that as the # blending degenerate target of the original image. hist = tf.histogram_fixed_width(degenerate, [0, 255], nbins=256) mean = tf.reduce_sum(tf.cast(hist, tf.float32)) / 256.0 degenerate = tf.ones_like(degenerate, dtype=tf.float32) * mean degenerate = tf.clip_by_value(degenerate, 0.0, 255.0) degenerate = tf.image.grayscale_to_rgb(tf.cast(degenerate, tf.uint8)) return blend(degenerate, image, factor) def brightness(image, factor): """Equivalent of PIL Brightness.""" degenerate = tf.zeros_like(image) return blend(degenerate, image, factor) def posterize(image, bits): """Equivalent of PIL Posterize.""" shift = 8 - bits return tf.bitwise.left_shift(tf.bitwise.right_shift(image, shift), shift) def rotate(image, degrees, replace): """Rotates the image by degrees either clockwise or counterclockwise. Args: image: An image Tensor of type uint8. degrees: Float, a scalar angle in degrees to rotate all images by. If degrees is positive the image will be rotated clockwise otherwise it will be rotated counterclockwise. replace: A one or three value 1D tensor to fill empty pixels caused by the rotate operation. Returns: The rotated version of image. """ # Convert from degrees to radians. degrees_to_radians = math.pi / 180.0 radians = degrees * degrees_to_radians # In practice, we should randomize the rotation degrees by flipping # it negatively half the time, but that's done on 'degrees' outside # of the function. image = contrib_image.rotate(wrap(image), radians) return unwrap(image, replace) def translate_x(image, pixels, replace): """Equivalent of PIL Translate in X dimension.""" image = contrib_image.translate(wrap(image), [-pixels, 0]) return unwrap(image, replace) def translate_y(image, pixels, replace): """Equivalent of PIL Translate in Y dimension.""" image = contrib_image.translate(wrap(image), [0, -pixels]) return unwrap(image, replace) def shear_x(image, level, replace): """Equivalent of PIL Shearing in X dimension.""" # Shear parallel to x axis is a projective transform # with a matrix form of: # [1 level # 0 1]. image = contrib_image.transform( wrap(image), [1., level, 0., 0., 1., 0., 0., 0.]) return unwrap(image, replace) def shear_y(image, level, replace): """Equivalent of PIL Shearing in Y dimension.""" # Shear parallel to y axis is a projective transform # with a matrix form of: # [1 0 # level 1]. image = contrib_image.transform( wrap(image), [1., 0., 0., level, 1., 0., 0., 0.]) return unwrap(image, replace) def autocontrast(image): """Implements Autocontrast function from PIL using TF ops. Args: image: A 3D uint8 tensor. Returns: The image after it has had autocontrast applied to it and will be of type uint8. """ def scale_channel(image): """Scale the 2D image using the autocontrast rule.""" # A possibly cheaper version can be done using cumsum/unique_with_counts # over the histogram values, rather than iterating over the entire image. # to compute mins and maxes. lo = tf.to_float(tf.reduce_min(image)) hi = tf.to_float(tf.reduce_max(image)) # Scale the image, making the lowest value 0 and the highest value 255. def scale_values(im): scale = 255.0 / (hi - lo) offset = -lo * scale im = tf.to_float(im) * scale + offset im = tf.clip_by_value(im, 0.0, 255.0) return tf.cast(im, tf.uint8) result = tf.cond(hi > lo, lambda: scale_values(image), lambda: image) return result # Assumes RGB for now. Scales each channel independently # and then stacks the result. s1 = scale_channel(image[:, :, 0]) s2 = scale_channel(image[:, :, 1]) s3 = scale_channel(image[:, :, 2]) image = tf.stack([s1, s2, s3], 2) return image def sharpness(image, factor): """Implements Sharpness function from PIL using TF ops.""" orig_image = image image = tf.cast(image, tf.float32) # Make image 4D for conv operation. image = tf.expand_dims(image, 0) # SMOOTH PIL Kernel. kernel = tf.constant( [[1, 1, 1], [1, 5, 1], [1, 1, 1]], dtype=tf.float32, shape=[3, 3, 1, 1]) / 13. # Tile across channel dimension. kernel = tf.tile(kernel, [1, 1, 3, 1]) strides = [1, 1, 1, 1] with tf.device('/cpu:0'): # Some augmentation that uses depth-wise conv will cause crashing when # training on GPU. See (b/156242594) for details. degenerate = tf.nn.depthwise_conv2d( image, kernel, strides, padding='VALID', rate=[1, 1]) degenerate = tf.clip_by_value(degenerate, 0.0, 255.0) degenerate = tf.squeeze(tf.cast(degenerate, tf.uint8), [0]) # For the borders of the resulting image, fill in the values of the # original image. mask = tf.ones_like(degenerate) padded_mask = tf.pad(mask, [[1, 1], [1, 1], [0, 0]]) padded_degenerate = tf.pad(degenerate, [[1, 1], [1, 1], [0, 0]]) result = tf.where(tf.equal(padded_mask, 1), padded_degenerate, orig_image) # Blend the final result. return blend(result, orig_image, factor) def equalize(image): """Implements Equalize function from PIL using TF ops.""" def scale_channel(im, c): """Scale the data in the channel to implement equalize.""" im = tf.cast(im[:, :, c], tf.int32) # Compute the histogram of the image channel. histo = tf.histogram_fixed_width(im, [0, 255], nbins=256) # For the purposes of computing the step, filter out the nonzeros. nonzero = tf.where(tf.not_equal(histo, 0)) nonzero_histo = tf.reshape(tf.gather(histo, nonzero), [-1]) step = (tf.reduce_sum(nonzero_histo) - nonzero_histo[-1]) // 255 def build_lut(histo, step): # Compute the cumulative sum, shifting by step // 2 # and then normalization by step. lut = (tf.cumsum(histo) + (step // 2)) // step # Shift lut, prepending with 0. lut = tf.concat([[0], lut[:-1]], 0) # Clip the counts to be in range. This is done # in the C code for image.point. return tf.clip_by_value(lut, 0, 255) # If step is zero, return the original image. Otherwise, build # lut from the full histogram and step and then index from it. result = tf.cond(tf.equal(step, 0), lambda: im, lambda: tf.gather(build_lut(histo, step), im)) return tf.cast(result, tf.uint8) # Assumes RGB for now. Scales each channel independently # and then stacks the result. s1 = scale_channel(image, 0) s2 = scale_channel(image, 1) s3 = scale_channel(image, 2) image = tf.stack([s1, s2, s3], 2) return image def invert(image): """Inverts the image pixels.""" image = tf.convert_to_tensor(image) return 255 - image def wrap(image): """Returns 'image' with an extra channel set to all 1s.""" shape = tf.shape(image) extended_channel = tf.ones([shape[0], shape[1], 1], image.dtype) extended = tf.concat([image, extended_channel], 2) return extended def unwrap(image, replace): """Unwraps an image produced by wrap. Where there is a 0 in the last channel for every spatial position, the rest of the three channels in that spatial dimension are grayed (set to 128). Operations like translate and shear on a wrapped Tensor will leave 0s in empty locations. Some transformations look at the intensity of values to do preprocessing, and we want these empty pixels to assume the 'average' value, rather than pure black. Args: image: A 3D Image Tensor with 4 channels. replace: A one or three value 1D tensor to fill empty pixels. Returns: image: A 3D image Tensor with 3 channels. """ image_shape = tf.shape(image) # Flatten the spatial dimensions. flattened_image = tf.reshape(image, [-1, image_shape[2]]) # Find all pixels where the last channel is zero. alpha_channel = flattened_image[:, 3] replace = tf.concat([replace, tf.ones([1], image.dtype)], 0) # Where they are zero, fill them in with 'replace'. flattened_image = tf.where( tf.equal(alpha_channel, 0), tf.ones_like(flattened_image, dtype=image.dtype) * replace, flattened_image) image = tf.reshape(flattened_image, image_shape) image = tf.slice(image, [0, 0, 0], [image_shape[0], image_shape[1], 3]) return image NAME_TO_FUNC = { 'AutoContrast': autocontrast, 'Equalize': equalize, 'Invert': invert, 'Rotate': rotate, 'Posterize': posterize, 'Solarize': solarize, 'SolarizeAdd': solarize_add, 'Color': color, 'Contrast': contrast, 'Brightness': brightness, 'Sharpness': sharpness, 'ShearX': shear_x, 'ShearY': shear_y, 'TranslateX': translate_x, 'TranslateY': translate_y, 'Cutout': cutout, } def _randomly_negate_tensor(tensor): """With 50% prob turn the tensor negative.""" should_flip = tf.cast(tf.floor(tf.random_uniform([]) + 0.5), tf.bool) final_tensor = tf.cond(should_flip, lambda: tensor, lambda: -tensor) return final_tensor def _rotate_level_to_arg(level): level = (level/_MAX_LEVEL) * 30. level = _randomly_negate_tensor(level) return (level,) def _shrink_level_to_arg(level): """Converts level to ratio by which we shrink the image content.""" if level == 0: return (1.0,) # if level is zero, do not shrink the image # Maximum shrinking ratio is 2.9. level = 2. / (_MAX_LEVEL / level) + 0.9 return (level,) def _enhance_level_to_arg(level): return ((level/_MAX_LEVEL) * 1.8 + 0.1,) def _shear_level_to_arg(level): level = (level/_MAX_LEVEL) * 0.3 # Flip level to negative with 50% chance. level = _randomly_negate_tensor(level) return (level,) def _translate_level_to_arg(level, translate_const): level = (level/_MAX_LEVEL) * float(translate_const) # Flip level to negative with 50% chance. level = _randomly_negate_tensor(level) return (level,) def level_to_arg(hparams): return { 'AutoContrast': lambda level: (), 'Equalize': lambda level: (), 'Invert': lambda level: (), 'Rotate': _rotate_level_to_arg, 'Posterize': lambda level: (int((level/_MAX_LEVEL) * 4),), 'Solarize': lambda level: (int((level/_MAX_LEVEL) * 256),), 'SolarizeAdd': lambda level: (int((level/_MAX_LEVEL) * 110),), 'Color': _enhance_level_to_arg, 'Contrast': _enhance_level_to_arg, 'Brightness': _enhance_level_to_arg, 'Sharpness': _enhance_level_to_arg, 'ShearX': _shear_level_to_arg, 'ShearY': _shear_level_to_arg, 'Cutout': lambda level: (int((level/_MAX_LEVEL) * hparams.cutout_const),), # pylint:disable=g-long-lambda 'TranslateX': lambda level: _translate_level_to_arg( level, hparams.translate_const), 'TranslateY': lambda level: _translate_level_to_arg( level, hparams.translate_const), # pylint:enable=g-long-lambda } def _parse_policy_info(name, prob, level, replace_value, augmentation_hparams): """Return the function that corresponds to `name` and update `level` param.""" func = NAME_TO_FUNC[name] args = level_to_arg(augmentation_hparams)[name](level) # Check to see if prob is passed into function. This is used for operations # where we alter bboxes independently. # pytype:disable=wrong-arg-types if 'prob' in inspect.getargspec(func)[0]: args = tuple([prob] + list(args)) # pytype:enable=wrong-arg-types # Add in replace arg if it is required for the function that is being called. # pytype:disable=wrong-arg-types if 'replace' in inspect.getargspec(func)[0]: # Make sure replace is the final argument assert 'replace' == inspect.getargspec(func)[0][-1] args = tuple(list(args) + [replace_value]) # pytype:enable=wrong-arg-types return (func, prob, args) def _apply_func_with_prob(func, image, args, prob): """Apply `func` to image w/ `args` as input with probability `prob`.""" assert isinstance(args, tuple) # If prob is a function argument, then this randomness is being handled # inside the function, so make sure it is always called. # pytype:disable=wrong-arg-types if 'prob' in inspect.getargspec(func)[0]: prob = 1.0 # pytype:enable=wrong-arg-types # Apply the function with probability `prob`. should_apply_op = tf.cast( tf.floor(tf.random_uniform([], dtype=tf.float32) + prob), tf.bool) augmented_image = tf.cond( should_apply_op, lambda: func(image, *args), lambda: image) return augmented_image def select_and_apply_random_policy(policies, image): """Select a random policy from `policies` and apply it to `image`.""" policy_to_select = tf.random_uniform([], maxval=len(policies), dtype=tf.int32) # Note that using tf.case instead of tf.conds would result in significantly # larger graphs and would even break export for some larger policies. for (i, policy) in enumerate(policies): image = tf.cond( tf.equal(i, policy_to_select), lambda selected_policy=policy: selected_policy(image), lambda: image) return image def build_and_apply_nas_policy(policies, image, augmentation_hparams): """Build a policy from the given policies passed in and apply to image. Args: policies: list of lists of tuples in the form `(func, prob, level)`, `func` is a string name of the augmentation function, `prob` is the probability of applying the `func` operation, `level` is the input argument for `func`. image: tf.Tensor that the resulting policy will be applied to. augmentation_hparams: Hparams associated with the NAS learned policy. Returns: A version of image that now has data augmentation applied to it based on the `policies` pass into the function. """ replace_value = [128, 128, 128] # func is the string name of the augmentation function, prob is the # probability of applying the operation and level is the parameter associated # with the tf op. # tf_policies are functions that take in an image and return an augmented # image. tf_policies = [] for policy in policies: tf_policy = [] # Link string name to the correct python function and make sure the correct # argument is passed into that function. for policy_info in policy: policy_info = list(policy_info) + [replace_value, augmentation_hparams] tf_policy.append(_parse_policy_info(*policy_info)) # Now build the tf policy that will apply the augmentation procedue # on image. def make_final_policy(tf_policy_): def final_policy(image_): for func, prob, args in tf_policy_: image_ = _apply_func_with_prob( func, image_, args, prob) return image_ return final_policy tf_policies.append(make_final_policy(tf_policy)) augmented_image = select_and_apply_random_policy( tf_policies, image) return augmented_image def distort_image_with_autoaugment(image, augmentation_name): """Applies the AutoAugment policy to `image`. AutoAugment is from the paper: https://arxiv.org/abs/1805.09501. Args: image: `Tensor` of shape [height, width, 3] representing an image. augmentation_name: The name of the AutoAugment policy to use. The available options are `v0` and `test`. `v0` is the policy used for all of the results in the paper and was found to achieve the best results on the COCO dataset. `v1`, `v2` and `v3` are additional good policies found on the COCO dataset that have slight variation in what operations were used during the search procedure along with how many operations are applied in parallel to a single image (2 vs 3). Returns: A tuple containing the augmented versions of `image`. """ available_policies = {'v0': policy_v0, 'test': policy_vtest} if augmentation_name not in available_policies: raise ValueError('Invalid augmentation_name: {}'.format(augmentation_name)) policy = available_policies[augmentation_name]() # Hparams that will be used for AutoAugment. augmentation_hparams = config_dict.ConfigDict(dict( cutout_const=100, translate_const=250)) return build_and_apply_nas_policy(policy, image, augmentation_hparams) def distort_image_with_randaugment(image, num_layers, magnitude): """Applies the RandAugment policy to `image`. RandAugment is from the paper https://arxiv.org/abs/1909.13719, Args: image: `Tensor` of shape [height, width, 3] representing an image. num_layers: Integer, the number of augmentation transformations to apply sequentially to an image. Represented as (N) in the paper. Usually best values will be in the range [1, 3]. magnitude: Integer, shared magnitude across all augmentation operations. Represented as (M) in the paper. Usually best values are in the range [5, 30]. Returns: The augmented version of `image`. """ replace_value = [128] * 3 tf.logging.info('Using RandAug.') augmentation_hparams = config_dict.ConfigDict(dict( cutout_const=40, translate_const=100)) available_ops = [ 'AutoContrast', 'Equalize', 'Invert', 'Rotate', 'Posterize', 'Solarize', 'Color', 'Contrast', 'Brightness', 'Sharpness', 'ShearX', 'ShearY', 'TranslateX', 'TranslateY', 'Cutout', 'SolarizeAdd'] for layer_num in range(num_layers): op_to_select = tf.random_uniform( [], maxval=len(available_ops), dtype=tf.int32) random_magnitude = float(magnitude) with tf.name_scope('randaug_layer_{}'.format(layer_num)): for (i, op_name) in enumerate(available_ops): prob = tf.random_uniform([], minval=0.2, maxval=0.8, dtype=tf.float32) func, _, args = _parse_policy_info(op_name, prob, random_magnitude, replace_value, augmentation_hparams) image = tf.cond( tf.equal(i, op_to_select), # pylint:disable=g-long-lambda lambda selected_func=func, selected_args=args: selected_func( image, *selected_args), # pylint:enable=g-long-lambda lambda: image) return image ================================================ FILE: perceiver/train/dataset.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ImageNet dataset with pre-processing and augmentation. Deng, et al CVPR 2009 - ImageNet: A large-scale hierarchical image database. https://image-net.org/ """ import enum from typing import Any, Generator, Mapping, Optional, Sequence, Text, Tuple import jax import numpy as np import tensorflow.compat.v2 as tf import tensorflow_datasets as tfds import tensorflow_probability as tfp from perceiver.train import autoaugment Batch = Mapping[Text, np.ndarray] MEAN_RGB = (0.485 * 255, 0.456 * 255, 0.406 * 255) STDDEV_RGB = (0.229 * 255, 0.224 * 255, 0.225 * 255) AUTOTUNE = tf.data.experimental.AUTOTUNE INPUT_DIM = 224 # The number of pixels in the image resize. class Split(enum.Enum): """ImageNet dataset split.""" TRAIN = 1 TRAIN_AND_VALID = 2 VALID = 3 TEST = 4 @classmethod def from_string(cls, name: Text) -> 'Split': return {'TRAIN': Split.TRAIN, 'TRAIN_AND_VALID': Split.TRAIN_AND_VALID, 'VALID': Split.VALID, 'VALIDATION': Split.VALID, 'TEST': Split.TEST}[name.upper()] @property def num_examples(self): return {Split.TRAIN_AND_VALID: 1281167, Split.TRAIN: 1271167, Split.VALID: 10000, Split.TEST: 50000}[self] def load( split: Split, *, is_training: bool, # batch_dims should be: # [device_count, per_device_batch_size] or [total_batch_size] batch_dims: Sequence[int], augmentation_settings: Mapping[str, Any], # The shape to which images are resized. im_dim: int = INPUT_DIM, threadpool_size: int = 48, max_intra_op_parallelism: int = 1, ) -> Generator[Batch, None, None]: """Loads the given split of the dataset.""" start, end = _shard(split, jax.host_id(), jax.host_count()) im_size = (im_dim, im_dim) total_batch_size = np.prod(batch_dims) tfds_split = tfds.core.ReadInstruction(_to_tfds_split(split), from_=start, to=end, unit='abs') ds = tfds.load('imagenet2012:5.*.*', split=tfds_split, decoders={'image': tfds.decode.SkipDecoding()}) options = tf.data.Options() options.experimental_threading.private_threadpool_size = threadpool_size options.experimental_threading.max_intra_op_parallelism = ( max_intra_op_parallelism) options.experimental_optimization.map_parallelization = True if is_training: options.experimental_deterministic = False ds = ds.with_options(options) if is_training: if jax.host_count() > 1: # Only cache if we are reading a subset of the dataset. ds = ds.cache() ds = ds.repeat() ds = ds.shuffle(buffer_size=10 * total_batch_size, seed=0) else: if split.num_examples % total_batch_size != 0: raise ValueError(f'Test/valid must be divisible by {total_batch_size}') def crop_augment_preprocess(example): image, _ = _preprocess_image( example['image'], is_training, im_size, augmentation_settings) label = tf.cast(example['label'], tf.int32) out = {'images': image, 'labels': label} if is_training: if augmentation_settings['cutmix']: out['mask'] = cutmix_padding(*im_size) out['cutmix_ratio'] = tf.reduce_mean(out['mask']) if augmentation_settings['mixup_alpha'] is not None: beta = tfp.distributions.Beta( augmentation_settings['mixup_alpha'], augmentation_settings['mixup_alpha']) out['mixup_ratio'] = beta.sample() return out ds = ds.map(crop_augment_preprocess, num_parallel_calls=AUTOTUNE) # Mixup/cutmix by temporarily batching (using the per-device batch size): use_cutmix = augmentation_settings['cutmix'] use_mixup = augmentation_settings['mixup_alpha'] is not None if is_training and (use_cutmix or use_mixup): inner_batch_size = batch_dims[-1] # Apply mixup, cutmix, or mixup + cutmix on batched data. # We use data from 2 batches to produce 1 mixed batch. ds = ds.batch(inner_batch_size * 2) if not use_cutmix and use_mixup: ds = ds.map(my_mixup, num_parallel_calls=AUTOTUNE) elif use_cutmix and not use_mixup: ds = ds.map(my_cutmix, num_parallel_calls=AUTOTUNE) elif use_cutmix and use_mixup: ds = ds.map(my_mixup_cutmix, num_parallel_calls=AUTOTUNE) # Unbatch for further processing. ds = ds.unbatch() for batch_size in reversed(batch_dims): ds = ds.batch(batch_size) ds = ds.prefetch(AUTOTUNE) yield from tfds.as_numpy(ds) # cutmix_padding, my_cutmix, my_mixup, and my_mixup_cutmix taken from: # https://github.com/deepmind/deepmind-research/blob/master/nfnets/dataset.py def cutmix_padding(h, w): """Returns image mask for CutMix. Taken from (https://github.com/google/edward2/blob/master/experimental /marginalization_mixup/data_utils.py#L367) Args: h: image height. w: image width. """ r_x = tf.random.uniform([], 0, w, tf.int32) r_y = tf.random.uniform([], 0, h, tf.int32) # Beta dist in paper, but they used Beta(1,1) which is just uniform. image1_proportion = tf.random.uniform([]) patch_length_ratio = tf.math.sqrt(1 - image1_proportion) r_w = tf.cast(patch_length_ratio * tf.cast(w, tf.float32), tf.int32) r_h = tf.cast(patch_length_ratio * tf.cast(h, tf.float32), tf.int32) bbx1 = tf.clip_by_value(tf.cast(r_x - r_w // 2, tf.int32), 0, w) bby1 = tf.clip_by_value(tf.cast(r_y - r_h // 2, tf.int32), 0, h) bbx2 = tf.clip_by_value(tf.cast(r_x + r_w // 2, tf.int32), 0, w) bby2 = tf.clip_by_value(tf.cast(r_y + r_h // 2, tf.int32), 0, h) # Create the binary mask. pad_left = bbx1 pad_top = bby1 pad_right = tf.maximum(w - bbx2, 0) pad_bottom = tf.maximum(h - bby2, 0) r_h = bby2 - bby1 r_w = bbx2 - bbx1 mask = tf.pad( tf.ones((r_h, r_w)), paddings=[[pad_top, pad_bottom], [pad_left, pad_right]], mode='CONSTANT', constant_values=0) mask.set_shape((h, w)) return mask[..., None] # Add channel dim. def my_cutmix(batch): """Apply CutMix: https://arxiv.org/abs/1905.04899.""" batch = dict(**batch) bs = tf.shape(batch['images'])[0] // 2 mask = batch['mask'][:bs] images = (mask * batch['images'][:bs] + (1.0 - mask) * batch['images'][bs:]) mix_labels = batch['labels'][bs:] labels = batch['labels'][:bs] ratio = batch['cutmix_ratio'][:bs] return {'images': images, 'labels': labels, 'mix_labels': mix_labels, 'ratio': ratio} def my_mixup(batch): """Apply mixup: https://arxiv.org/abs/1710.09412.""" batch = dict(**batch) bs = tf.shape(batch['images'])[0] // 2 ratio = batch['mixup_ratio'][:bs, None, None, None] images = (ratio * batch['images'][:bs] + (1.0 - ratio) * batch['images'][bs:]) mix_labels = batch['labels'][bs:] labels = batch['labels'][:bs] ratio = ratio[..., 0, 0, 0] # Unsqueeze return {'images': images, 'labels': labels, 'mix_labels': mix_labels, 'ratio': ratio} def my_mixup_cutmix(batch): """Apply mixup to half the batch, and cutmix to the other.""" batch = dict(**batch) bs = tf.shape(batch['images'])[0] // 4 mixup_ratio = batch['mixup_ratio'][:bs, None, None, None] mixup_images = (mixup_ratio * batch['images'][:bs] + (1.0 - mixup_ratio) * batch['images'][bs:2*bs]) mixup_labels = batch['labels'][:bs] mixup_mix_labels = batch['labels'][bs:2*bs] cutmix_mask = batch['mask'][2*bs:3*bs] cutmix_images = (cutmix_mask * batch['images'][2*bs:3*bs] + (1.0 - cutmix_mask) * batch['images'][-bs:]) cutmix_labels = batch['labels'][2*bs:3*bs] cutmix_mix_labels = batch['labels'][-bs:] cutmix_ratio = batch['cutmix_ratio'][2*bs : 3*bs] return {'images': tf.concat([mixup_images, cutmix_images], axis=0), 'labels': tf.concat([mixup_labels, cutmix_labels], axis=0), 'mix_labels': tf.concat([mixup_mix_labels, cutmix_mix_labels], 0), 'ratio': tf.concat([mixup_ratio[..., 0, 0, 0], cutmix_ratio], axis=0)} def _to_tfds_split(split: Split) -> tfds.Split: """Returns the TFDS split appropriately sharded.""" # NOTE: Imagenet did not release labels for the test split used in the # competition, so it has been typical at DeepMind to consider the VALID # split the TEST split and to reserve 10k images from TRAIN for VALID. if split in ( Split.TRAIN, Split.TRAIN_AND_VALID, Split.VALID): return tfds.Split.TRAIN else: assert split == Split.TEST return tfds.Split.VALIDATION def _shard( split: Split, shard_index: int, num_shards: int) -> Tuple[int, int]: """Returns [start, end) for the given shard index.""" assert shard_index < num_shards arange = np.arange(split.num_examples) shard_range = np.array_split(arange, num_shards)[shard_index] start, end = shard_range[0], (shard_range[-1] + 1) if split == Split.TRAIN: # Note that our TRAIN=TFDS_TRAIN[10000:] and VALID=TFDS_TRAIN[:10000]. offset = Split.VALID.num_examples start += offset end += offset return start, end def _preprocess_image( image_bytes: tf.Tensor, is_training: bool, image_size: Sequence[int], augmentation_settings: Mapping[str, Any], ) -> Tuple[tf.Tensor, tf.Tensor]: """Returns processed and resized images.""" # Get the image crop. if is_training: image, im_shape = _decode_and_random_crop(image_bytes) image = tf.image.random_flip_left_right(image) else: image, im_shape = _decode_and_center_crop(image_bytes) assert image.dtype == tf.uint8 # Optionally apply RandAugment: https://arxiv.org/abs/1909.13719 if is_training: if augmentation_settings['randaugment'] is not None: # Input and output images are dtype uint8. image = autoaugment.distort_image_with_randaugment( image, num_layers=augmentation_settings['randaugment']['num_layers'], magnitude=augmentation_settings['randaugment']['magnitude']) # Resize and normalize the image crop. # NOTE: Bicubic resize (1) casts uint8 to float32 and (2) resizes without # clamping overshoots. This means values returned will be outside the range # [0.0, 255.0] (e.g. we have observed outputs in the range [-51.1, 336.6]). image = tf.image.resize( image, image_size, tf.image.ResizeMethod.BICUBIC) image = _normalize_image(image) return image, im_shape def _normalize_image(image: tf.Tensor) -> tf.Tensor: """Normalize the image to zero mean and unit variance.""" image -= tf.constant(MEAN_RGB, shape=[1, 1, 3], dtype=image.dtype) image /= tf.constant(STDDEV_RGB, shape=[1, 1, 3], dtype=image.dtype) return image def _distorted_bounding_box_crop( image_bytes: tf.Tensor, *, jpeg_shape: tf.Tensor, bbox: tf.Tensor, min_object_covered: float, aspect_ratio_range: Tuple[float, float], area_range: Tuple[float, float], max_attempts: int, ) -> Tuple[tf.Tensor, tf.Tensor]: """Generates cropped_image using one of the bboxes randomly distorted.""" bbox_begin, bbox_size, _ = tf.image.sample_distorted_bounding_box( jpeg_shape, bounding_boxes=bbox, min_object_covered=min_object_covered, aspect_ratio_range=aspect_ratio_range, area_range=area_range, max_attempts=max_attempts, use_image_if_no_bounding_boxes=True) # Crop the image to the specified bounding box. offset_y, offset_x, _ = tf.unstack(bbox_begin) target_height, target_width, _ = tf.unstack(bbox_size) crop_window = [offset_y, offset_x, target_height, target_width] if image_bytes.dtype == tf.dtypes.string: image = tf.image.decode_and_crop_jpeg(image_bytes, tf.stack(crop_window), channels=3) else: image = tf.image.crop_to_bounding_box(image_bytes, *crop_window) im_shape = tf.stack([target_height, target_width]) return image, im_shape def _decode_whole_image(image_bytes: tf.Tensor) -> Tuple[tf.Tensor, tf.Tensor]: image = tf.io.decode_jpeg(image_bytes, channels=3) im_shape = tf.io.extract_jpeg_shape(image_bytes, output_type=tf.int32) return image, im_shape def _decode_and_random_crop( image_bytes: tf.Tensor ) -> Tuple[tf.Tensor, tf.Tensor]: """Make a random crop of INPUT_DIM.""" if image_bytes.dtype == tf.dtypes.string: jpeg_shape = tf.image.extract_jpeg_shape(image_bytes) else: jpeg_shape = tf.shape(image_bytes) bbox = tf.constant([0.0, 0.0, 1.0, 1.0], dtype=tf.float32, shape=[1, 1, 4]) image, im_shape = _distorted_bounding_box_crop( image_bytes, jpeg_shape=jpeg_shape, bbox=bbox, min_object_covered=0.1, aspect_ratio_range=(3 / 4, 4 / 3), area_range=(0.08, 1.0), max_attempts=10) if tf.reduce_all(tf.equal(jpeg_shape, tf.shape(image))): # If the random crop failed fall back to center crop. image, im_shape = _decode_and_center_crop(image_bytes, jpeg_shape) return image, im_shape def _center_crop(image, crop_dim): """Center crops an image to a target dimension.""" image_height = image.shape[0] image_width = image.shape[1] offset_height = ((image_height - crop_dim) + 1) // 2 offset_width = ((image_width - crop_dim) + 1) // 2 return tf.image.crop_to_bounding_box( image, offset_height, offset_width, crop_dim, crop_dim) def _decode_and_center_crop( image_bytes: tf.Tensor, jpeg_shape: Optional[tf.Tensor] = None, ) -> Tuple[tf.Tensor, tf.Tensor]: """Crops to center of image with padding then scales.""" if jpeg_shape is None: if image_bytes.dtype == tf.dtypes.string: jpeg_shape = tf.image.extract_jpeg_shape(image_bytes) else: jpeg_shape = tf.shape(image_bytes) image_height = jpeg_shape[0] image_width = jpeg_shape[1] padded_center_crop_size = tf.cast( ((INPUT_DIM / (INPUT_DIM + 32)) * tf.cast(tf.minimum(image_height, image_width), tf.float32)), tf.int32) offset_height = ((image_height - padded_center_crop_size) + 1) // 2 offset_width = ((image_width - padded_center_crop_size) + 1) // 2 crop_window = [offset_height, offset_width, padded_center_crop_size, padded_center_crop_size] if image_bytes.dtype == tf.dtypes.string: image = tf.image.decode_and_crop_jpeg(image_bytes, tf.stack(crop_window), channels=3) else: image = tf.image.crop_to_bounding_box(image_bytes, *crop_window) im_shape = tf.stack([padded_center_crop_size, padded_center_crop_size]) return image, im_shape ================================================ FILE: perceiver/train/experiment.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A reference training pipeline for Perceiver/Perceiver IO on ImageNet. We use the Jaxline (https://github.com/deepmind/jaxline) training framework. Two sets of hyperparameters are provided, the hyperparameters we used for the Perceiver IO paper, and scaled-down hyperparameters for local testing. This script should run out-of-the-box with the local hyper parameters. The scaled-up hyperparameters requires a distributed learning setup to run, and this script will need to be adapted to your specific setup. """ import functools from typing import Generator, Mapping, Text, Tuple from absl import app from absl import flags from absl import logging import haiku as hk import jax import jax.numpy as jnp from jaxline import base_config from jaxline import experiment from jaxline import platform from jaxline import utils as jl_utils from ml_collections import config_dict import numpy as np import optax from perceiver import io_processors from perceiver import perceiver from perceiver.train import dataset from perceiver.train import utils FLAGS = flags.FLAGS OptState = Tuple[optax.TraceState, optax.ScaleByScheduleState, optax.ScaleState] Scalars = Mapping[Text, jnp.ndarray] N_TRAIN_EXAMPLES = dataset.Split.TRAIN_AND_VALID.num_examples N_CLASSES = 1000 # Only local/debug parameters are supported out of the box. # To use the scaled-up hyperparameters, please adapt this script to your # training setup and set this flag to False IS_LOCAL = True def get_training_steps(batch_size, n_epochs): return (N_TRAIN_EXAMPLES * n_epochs) // batch_size def get_config(): """Return config object for training.""" use_debug_settings = IS_LOCAL config = base_config.get_base_config() # Experiment config. local_batch_size = 2 # Modify this to adapt to your custom distributed learning setup num_devices = 1 config.train_batch_size = local_batch_size * num_devices config.n_epochs = 110 def _default_or_debug(default_value, debug_value): return debug_value if use_debug_settings else default_value n_train_examples = N_TRAIN_EXAMPLES num_classes = N_CLASSES config.experiment_kwargs = config_dict.ConfigDict( dict( config=dict( optimizer=dict( base_lr=5e-4, max_norm=10.0, # < 0 to turn off. schedule_type='constant_cosine', weight_decay=1e-1, decay_pos_embs=True, scale_by_batch=True, cosine_decay_kwargs=dict( init_value=0.0, warmup_epochs=0, end_value=0.0, ), step_decay_kwargs=dict( decay_boundaries=[0.5, 0.8, 0.95], decay_rate=0.1, ), constant_cosine_decay_kwargs=dict( constant_fraction=0.5, end_value=0.0, ), optimizer='lamb', # Optimizer-specific kwargs: adam_kwargs=dict( b1=0.9, b2=0.999, eps=1e-8, ), lamb_kwargs=dict( b1=0.9, b2=0.999, eps=1e-6, ), ), # Don't specify output_channels - it's not used for # classifiers. model=dict( perceiver_kwargs=dict( input_preprocessor=dict( prep_type='pixels', # Channels for conv/conv1x1 preprocessing: num_channels=64, # ------------------------- # Position encoding arguments: # ------------------------- position_encoding_type='fourier', concat_or_add_pos='concat', spatial_downsample=1, # If >0, project position to this size: project_pos_dim=-1, trainable_position_encoding_kwargs=dict( num_channels=258, # Match default # for Fourier. init_scale=0.02, ), fourier_position_encoding_kwargs=dict( num_bands=64, max_resolution=(224, 224), sine_only=False, concat_pos=True, ), ), encoder=dict( num_self_attends_per_block=_default_or_debug(6, 2), # Weights won't be shared if num_blocks is set to 1. num_blocks=_default_or_debug(8, 2), z_index_dim=512, num_z_channels=1024, num_cross_attend_heads=1, num_self_attend_heads=8, cross_attend_widening_factor=1, self_attend_widening_factor=1, dropout_prob=0.0, # Position encoding for the latent array. z_pos_enc_init_scale=0.02, cross_attention_shape_for_attn='kv', use_query_residual=True, ), decoder=dict( num_z_channels=1024, use_query_residual=True, # Position encoding for the output logits. position_encoding_type='trainable', trainable_position_encoding_kwargs=dict( num_channels=1024, init_scale=0.02, ), ), ), ), training=dict( images_per_epoch=n_train_examples, label_smoothing=0.1, n_epochs=config.get_oneway_ref('n_epochs'), batch_size=config.get_oneway_ref('train_batch_size') ), data=dict( num_classes=num_classes, # Run on smaller images to debug. im_dim=_default_or_debug(224, 32), augmentation=dict( # Typical randaug params: # num_layers in [1, 3] # magnitude in [5, 30] # Set randaugment to None to disable. randaugment=dict( num_layers=4, magnitude=5), cutmix=True, # Mixup alpha should be in [0, 1]. # Set to None to disable. mixup_alpha=0.2, ), ), evaluation=dict( subset='test', batch_size=2, ), ) ) ) # Training loop config. config.training_steps = get_training_steps( config.get_oneway_ref('train_batch_size'), config.get_oneway_ref('n_epochs')) config.log_train_data_interval = 60 config.log_tensors_interval = 60 config.save_checkpoint_interval = 300 config.eval_specific_checkpoint_dir = '' config.best_model_eval_metric = 'eval_top_1_acc' config.checkpoint_dir = '/tmp/perceiver_imagnet_checkpoints' config.train_checkpoint_all_hosts = False # Prevents accidentally setting keys that aren't recognized (e.g. in tests). config.lock() return config class Experiment(experiment.AbstractExperiment): """ImageNet experiment.""" # A map from object properties that will be checkpointed to their name # in a checkpoint. Currently we assume that these are all sharded # device arrays. CHECKPOINT_ATTRS = { '_params': 'params', '_state': 'state', '_opt_state': 'opt_state', } def __init__(self, mode, init_rng, config): """Initializes experiment.""" super(Experiment, self).__init__(mode=mode, init_rng=init_rng) self.mode = mode self.init_rng = init_rng self.config = config # Checkpointed experiment state. self._params = None self._state = None self._opt_state = None # Input pipelines. self._train_input = None self._eval_input = None self.forward = hk.transform_with_state(self._forward_fn) # NOTE: We "donate" the `params, state, opt_state` arguments which allows # JAX (on some backends) to reuse the device memory associated with these # inputs to store the outputs of our function (which also start with # `params, state, opt_state`). self._update_func = jax.pmap(self._update_func, axis_name='i', donate_argnums=(0, 1, 2)) self._eval_batch = jax.jit(self._eval_batch) def _forward_fn( self, inputs: dataset.Batch, is_training: bool, ) -> jnp.ndarray: images = inputs['images'] perceiver_kwargs = self.config.model.perceiver_kwargs input_preprocessor = io_processors.ImagePreprocessor( **perceiver_kwargs['input_preprocessor']) encoder = perceiver.PerceiverEncoder(**perceiver_kwargs['encoder']) decoder = perceiver.ClassificationDecoder( self.config.data.num_classes, **perceiver_kwargs['decoder']) model = perceiver.Perceiver( encoder=encoder, decoder=decoder, input_preprocessor=input_preprocessor) return model(images, is_training=is_training) # _ _ # | |_ _ __ __ _(_)_ __ # | __| '__/ _` | | '_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step(self, global_step: int, rng: jnp.ndarray, # pytype: disable=signature-mismatch # jax-ndarray *unused_args, **unused_kwargs): """See base class.""" if self._train_input is None: self._initialize_train() inputs = next(self._train_input) self._params, self._state, self._opt_state, scalars = ( self._update_func( self._params, self._state, self._opt_state, inputs, rng, global_step )) scalars = jl_utils.get_first(scalars) return scalars def _initialize_train(self): self._train_input = jl_utils.py_prefetch(self._build_train_input) total_batch_size = self.config.training.batch_size steps_per_epoch = ( self.config.training.images_per_epoch / self.config.training.batch_size) total_steps = self.config.training.n_epochs * steps_per_epoch # Scale by the (negative) learning rate. self._lr_schedule = utils.get_learning_rate_schedule( total_batch_size, steps_per_epoch, total_steps, self.config.optimizer) self._optimizer = utils.make_optimizer( self.config.optimizer, self._lr_schedule) # Check we haven't already restored params if self._params is None: logging.info('Initializing parameters.') inputs = next(self._train_input) init_net = jax.pmap(lambda *a: self.forward.init(*a, is_training=True)) init_opt = jax.pmap(self._optimizer.init) # Init uses the same RNG key on all hosts+devices to ensure everyone # computes the same initial state. init_rng = jl_utils.bcast_local_devices(self.init_rng) self._params, self._state = init_net(init_rng, inputs) self._opt_state = init_opt(self._params) def _load_data(self, split, is_training, batch_dims): """Wrapper for dataset loading.""" return dataset.load( split=split, is_training=is_training, batch_dims=batch_dims, im_dim=self.config.data.im_dim, augmentation_settings=self.config.data.augmentation, ) def _build_train_input(self) -> Generator[dataset.Batch, None, None]: """See base class.""" num_devices = jax.device_count() global_batch_size = self.config.training.batch_size per_device_batch_size, ragged = divmod(global_batch_size, num_devices) if ragged: raise ValueError( f'Global batch size {global_batch_size} must be divisible by ' f'num devices {num_devices}') split = dataset.Split.TRAIN_AND_VALID return self._load_data( split=split, is_training=True, batch_dims=[jax.local_device_count(), per_device_batch_size]) def _one_hot(self, value): """One-hot encoding potentially over a sequence of labels.""" y = jax.nn.one_hot(value, self.config.data.num_classes) return y def _loss_fn( self, params: hk.Params, state: hk.State, inputs: dataset.Batch, rng: jnp.ndarray, ) -> Tuple[jnp.ndarray, Tuple[Scalars, hk.State]]: logits, state = self.forward.apply( params, state, rng, inputs, is_training=True) label = self._one_hot(inputs['labels']) # Handle cutmix/mixup label mixing: if 'mix_labels' in inputs: logging.info('Using mixup or cutmix!') mix_label = self._one_hot(inputs['mix_labels']) mix_ratio = inputs['ratio'][:, None] label = mix_ratio * label + (1. - mix_ratio) * mix_label # Apply label-smoothing to one-hot labels. label_smoothing = self.config.training.label_smoothing if not (label_smoothing >= 0. and label_smoothing < 1.): raise ValueError( f"'label_smoothing is {label_smoothing} and should be in [0, 1)") if label_smoothing > 0: smooth_positives = 1. - label_smoothing smooth_negatives = label_smoothing / self.config.data.num_classes label = smooth_positives * label + smooth_negatives loss_w_batch = utils.softmax_cross_entropy(logits, label) loss = jnp.mean(loss_w_batch, dtype=loss_w_batch.dtype) scaled_loss = loss / jax.device_count() metrics = utils.topk_correct(logits, inputs['labels'], prefix='') metrics = jax.tree_map(jnp.mean, metrics) top_1_acc = metrics['top_1_acc'] top_5_acc = metrics['top_5_acc'] loss_scalars = dict( loss=loss, top_1_acc=top_1_acc, top_5_acc=top_5_acc, ) return scaled_loss, (loss_scalars, state) def _update_func( self, params: hk.Params, state: hk.State, opt_state: OptState, inputs: dataset.Batch, rng: jnp.ndarray, global_step: int, ) -> Tuple[hk.Params, hk.State, OptState, Scalars]: """Applies an update to parameters and returns new state.""" # This function computes the gradient of the first output of loss_fn and # passes through the other arguments unchanged. grad_loss_fn = jax.grad(self._loss_fn, has_aux=True) scaled_grads, (loss_scalars, state) = grad_loss_fn( params, state, inputs, rng) grads = jax.lax.psum(scaled_grads, axis_name='i') # Grab the learning rate to log before performing the step. learning_rate = self._lr_schedule(global_step) # Compute and apply updates via our optimizer. updates, opt_state = self._optimizer.update(grads, opt_state, params) params = optax.apply_updates(params, updates) n_params = 0 for k in params.keys(): # pytype: disable=attribute-error # numpy-scalars for l in params[k]: n_params = n_params + np.prod(params[k][l].shape) # pytype: disable=attribute-error # numpy-scalars # Scalars to log (note: we log the mean across all hosts/devices). scalars = {'learning_rate': learning_rate, 'n_params (M)': float(n_params/1e6), 'global_gradient_norm': optax.global_norm(grads)} loss_scalars = {f'train_{k}': v for k, v in loss_scalars.items()} scalars.update(loss_scalars) scalars = jax.lax.pmean(scalars, axis_name='i') return params, state, opt_state, scalars # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step, rng, **unused_args): """See base class.""" global_step = np.array(jl_utils.get_first(global_step)) scalars = jax.device_get(self._eval_epoch(jl_utils.get_first(rng))) logging.info('[Step %d] Eval scalars: %s', global_step, scalars) return scalars def _eval_batch( self, params: hk.Params, state: hk.State, inputs: dataset.Batch, rng: jnp.ndarray, ) -> Scalars: """Evaluates a batch.""" logits, _ = self.forward.apply( params, state, rng, inputs, is_training=False) labels = self._one_hot(inputs['labels']) loss = utils.softmax_cross_entropy(logits, labels) metrics = utils.topk_correct(logits, inputs['labels'], prefix='') metrics = jax.tree_map(jnp.mean, metrics) top_1_acc = metrics['top_1_acc'] top_5_acc = metrics['top_5_acc'] bs = logits.shape[0] top_1_acc = jnp.expand_dims(top_1_acc, axis=0) * bs top_5_acc = jnp.expand_dims(top_5_acc, axis=0) * bs # NOTE: Returned values will be summed and finally divided by num_samples. return { 'eval_loss': loss, 'eval_top_1_acc': top_1_acc, 'eval_top_5_acc': top_5_acc} def _build_eval_input(self) -> Generator[dataset.Batch, None, None]: split = dataset.Split.from_string(self.config.evaluation.subset) return self._load_data( split=split, is_training=False, batch_dims=[self.config.evaluation.batch_size]) def _eval_epoch(self, rng): """Evaluates an epoch.""" num_samples = 0. summed_scalars = None params = jl_utils.get_first(self._params) state = jl_utils.get_first(self._state) for inputs in self._build_eval_input(): num_samples += inputs['labels'].shape[0] scalars = self._eval_batch(params, state, inputs, rng) # Accumulate the sum of scalars for each step. scalars = jax.tree_map(lambda x: jnp.sum(x, axis=0), scalars) if summed_scalars is None: summed_scalars = scalars else: summed_scalars = jax.tree_map(jnp.add, summed_scalars, scalars) mean_scalars = jax.tree_map(lambda x: x / num_samples, summed_scalars) return mean_scalars if __name__ == '__main__': flags.mark_flag_as_required('config') app.run(functools.partial(platform.main, Experiment)) ================================================ FILE: perceiver/train/launch_local.sh ================================================ #!/bin/bash # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Command for running training script. PYTHONPATH=.::$PYTHONPATH python perceiver/train/experiment.py \ --config=perceiver/train/experiment.py --logtostderr ================================================ FILE: perceiver/train/utils.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities.""" from typing import Callable, List, Mapping, NamedTuple, Optional, Tuple, Union import haiku as hk import jax import jax.numpy as jnp import numpy as np import optax Batch = Mapping[str, np.ndarray] OptState = Tuple[optax.TraceState, optax.ScaleByScheduleState, optax.ScaleState] Scalars = Mapping[str, jnp.ndarray] ParamsOrState = Union[hk.Params, hk.State] NORM_NAMES = ['layer_norm', 'batchnorm'] # any_in and topk_correct taken from # https://github.com/deepmind/deepmind-research/blob/master/nfnets/utils.py @jax.vmap def any_in(prediction, target): """For each row in a and b, checks if any element of a is in b.""" return jnp.isin(prediction, target) def topk_correct(logits, labels, mask=None, prefix='', topk=(1, 5)): """Calculate top-k error for multiple k values.""" metrics = {} argsorted_logits = jnp.argsort(logits) for k in topk: pred_labels = argsorted_logits[..., -k:] # Get the number of examples where the label is in the top-k predictions correct = any_in(pred_labels, labels).any(axis=-1).astype(jnp.float32) if mask is not None: correct *= mask metrics[f'{prefix}top_{k}_acc'] = correct return metrics def softmax_cross_entropy(logits, labels): """Computes softmax cross entropy given logits and one-hot class labels. Args: logits: Logit output values. labels: Ground truth one-hot-encoded labels. Returns: Loss value with the same shape as `labels`; """ return jnp.asarray(optax.softmax_cross_entropy(logits, labels)) def _get_batch_scaled_lr(total_batch_size, lr, scale_by_batch=True): # This is the linear scaling rule in Section 5.1 of # https://arxiv.org/pdf/1706.02677.pdf. if scale_by_batch: lr = (lr * total_batch_size) / 256 return lr def get_learning_rate_schedule( total_batch_size, steps_per_epoch, total_steps, optimizer_config): """Build the learning rate schedule function.""" base_lr = _get_batch_scaled_lr(total_batch_size, optimizer_config.base_lr, optimizer_config.scale_by_batch) schedule_type = optimizer_config.schedule_type if schedule_type == 'steps': boundaries = optimizer_config.step_decay_kwargs.decay_boundaries boundaries.sort() decay_rate = optimizer_config.step_decay_kwargs.decay_rate boundaries_and_scales = { int(boundary * total_steps): decay_rate for boundary in boundaries} schedule_fn = optax.piecewise_constant_schedule( init_value=base_lr, boundaries_and_scales=boundaries_and_scales) elif schedule_type == 'cosine': warmup_steps = (optimizer_config.cosine_decay_kwargs.warmup_epochs * steps_per_epoch) # Batch scale the other lr values as well: init_value = _get_batch_scaled_lr( total_batch_size, optimizer_config.cosine_decay_kwargs.init_value, optimizer_config.scale_by_batch) end_value = _get_batch_scaled_lr( total_batch_size, optimizer_config.cosine_decay_kwargs.end_value, optimizer_config.scale_by_batch) schedule_fn = optax.warmup_cosine_decay_schedule( init_value=init_value, peak_value=base_lr, warmup_steps=warmup_steps, decay_steps=total_steps, end_value=end_value) elif schedule_type == 'constant_cosine': # Convert end_value to alpha, used by cosine_decay_schedule. alpha = optimizer_config.constant_cosine_decay_kwargs.end_value / base_lr # Number of steps spent in constant phase. constant_steps = int( optimizer_config.constant_cosine_decay_kwargs.constant_fraction * total_steps) decay_steps = total_steps - constant_steps constant_phase = optax.constant_schedule(value=base_lr) decay_phase = optax.cosine_decay_schedule( init_value=base_lr, decay_steps=decay_steps, alpha=alpha) schedule_fn = optax.join_schedules( schedules=[constant_phase, decay_phase], boundaries=[constant_steps]) else: raise ValueError(f'Unknown learning rate schedule: {schedule_type}') return schedule_fn def _weight_decay_exclude( exclude_names: Optional[List[str]] = None ) -> Callable[[str, str, jnp.ndarray], bool]: """Logic for deciding which parameters to include for weight decay.. Args: exclude_names: an optional list of names to include for weight_decay. ['w'] by default. Returns: A predicate that returns True for params that need to be excluded from weight_decay. """ # By default weight_decay the weights but not the biases. if not exclude_names: exclude_names = ['b'] def exclude(module_name: str, name: str, value: jnp.array): del value # Do not weight decay the parameters of normalization blocks. if any([norm_name in module_name for norm_name in NORM_NAMES]): return True else: return name in exclude_names return exclude class AddWeightDecayState(NamedTuple): """Stateless transformation.""" def add_weight_decay( weight_decay: float, exclude_names: Optional[List[str]] = None) -> optax.GradientTransformation: """Add parameter scaled by `weight_decay` to the `updates`. Same as optax.add_decayed_weights but can exclude parameters by name. Args: weight_decay: weight_decay coefficient. exclude_names: an optional list of names to exclude for weight_decay. ['b'] by default. Returns: An (init_fn, update_fn) tuple. """ def init_fn(_): return AddWeightDecayState() def update_fn(updates, state, params): exclude = _weight_decay_exclude(exclude_names=exclude_names) u_ex, u_in = hk.data_structures.partition(exclude, updates) _, p_in = hk.data_structures.partition(exclude, params) u_in = jax.tree_map(lambda g, p: g + weight_decay * p, u_in, p_in) updates = hk.data_structures.merge(u_ex, u_in) return updates, state return optax.GradientTransformation(init_fn, update_fn) def make_optimizer(optimizer_config, lr_schedule): """Construct the optax optimizer with given LR schedule.""" if (optimizer_config.get('decay_pos_embs') is None or optimizer_config.decay_pos_embs): # Decay learned position embeddings by default. weight_decay_exclude_names = ['b'] else: weight_decay_exclude_names = ['pos_embs', 'b'] optax_chain = [] if optimizer_config.max_norm > 0: optax_chain.append( optax.clip_by_global_norm(optimizer_config.max_norm)) if optimizer_config.optimizer == 'adam': # See: https://arxiv.org/abs/1412.6980 optax_chain.extend([ optax.scale_by_adam(**optimizer_config.adam_kwargs), add_weight_decay( optimizer_config.weight_decay, exclude_names=weight_decay_exclude_names) ]) elif optimizer_config.optimizer == 'lamb': # See: https://arxiv.org/abs/1904.00962 optax_chain.extend([ optax.scale_by_adam(**optimizer_config.lamb_kwargs), add_weight_decay( optimizer_config.weight_decay, exclude_names=weight_decay_exclude_names), optax.scale_by_trust_ratio() ]) else: raise ValueError(f'Undefined optimizer {optimizer_config.optimizer}') # Scale by the (negative) learning rate. optax_chain.extend([ optax.scale_by_schedule(lr_schedule), optax.scale(-1), ]) return optax.chain(*optax_chain) ================================================ FILE: physics_inspired_models/README.md ================================================ # Implementation of multiple physics inspired models for modelling dynamics This repository contains an implementation of different physics inspired models used in the papers: **SyMetric: Measuring the Quality of Learnt Hamiltonian Dynamics Inferred from Vision** and **Which priors matter? Benchmarking models for learning latent dynamics**. ## Contributing This is purely research code, provided with no further intentions of support or any guarantees of backward compatibility. ## Installation All package requirements are listed in `requirements.txt`. You will still need to download and setup the datasets from the [DeepMind Hamiltonian Dynamics Suite] manually. ```shell git clone git@github.com:deepmind/deepmind-research.git pip install -r ./deepmind_research/physics_inspired_models/requirements.txt pip install ./deepmind_research/physics_inspired_models pip install --upgrade "jax[XXX]" ``` where `XXX` is the correct type of accelerator that you have on your machine. Note that if you are using a GPU you might need `XXX` to also include the correct version of CUDA and cuDNN installed on your machine. For more details please read [here](https://github.com/google/jax#installation). ## Usage The file `jaxline_configs.py` contains all the configurations specifications for the experiments in the two papers. To run an experiment, in addition to passing the location of the configs file, you must provide extra arguments in the following manner: `${name_of_configuration},${index_in_sweep},${dataset_name}` For example to run the second hyper-parameter configuration of the improved Hamiltonian Generative Network (HGN++) on the mass-spring dataset you should run in the command line (assuming that you are in the folder of the project): ```shell python3 jaxline_train.py \ --config="jaxline_configs.py:sym_metric_hgn_plus_plus_sweep,1,toy_physics/mass_spring" \ --jaxline_mode="train" \ --logtostderr ``` ## Reference **SyMetric: Measuring the Quality of Learnt Hamiltonian Dynamics Inferred from Vision** Irina Higgins, Peter Wirnsberger, Andrew Jaegle, Aleksandar Botev URL: https://openreview.net/forum?id=9Qu0U9Fj7IP **Which priors matter? Benchmarking models for learning latent dynamics** Aleksandar Botev, Drew Jaegle, Peter Wirnsberger, Daniel Hennes and Irina Higgins URL: https://openreview.net/forum?id=qBl8hnwR0px [DeepMind Hamiltonian Dynamics Suite]: https://github.com/deepmind/dm_hamiltonian_dynamics_suite ================================================ FILE: physics_inspired_models/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: physics_inspired_models/eval_metric.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing model evaluation metric.""" import _thread as thread import sys import threading import time import warnings from absl import logging import distrax import numpy as np from sklearn import linear_model from sklearn import model_selection from sklearn import preprocessing def quit_function(fn_name): logging.error('%s took too long', fn_name) sys.stderr.flush() thread.interrupt_main() def exit_after(s): """Use as decorator to exit function after s seconds.""" def outer(fn): def inner(*args, **kwargs): timer = threading.Timer(s, quit_function, args=[fn.__name__]) timer.start() try: result = fn(*args, **kwargs) finally: timer.cancel() return result return inner return outer @exit_after(400) def do_grid_search(data_x_exp, data_y, clf, parameters, cv): scoring_choice = 'explained_variance' regressor = model_selection.GridSearchCV( clf, parameters, cv=cv, refit=True, scoring=scoring_choice) regressor.fit(data_x_exp, data_y) return regressor def symplectic_matrix(dim): """Return anti-symmetric identity matrix of given dimensionality.""" half_dims = int(dim/2) eye = np.eye(half_dims) zeros = np.zeros([half_dims, half_dims]) top_rows = np.concatenate([zeros, - eye], axis=1) bottom_rows = np.concatenate([eye, zeros], axis=1) return np.concatenate([top_rows, bottom_rows], axis=0) def create_latent_mask(z0, dist_std_threshold=0.5): """Create mask based on informativeness of each latent dimension. For stochastic models those latent dimensions that are too close to the prior are likely to be uninformative and can be ignored. Args: z0: distribution or array of phase space dist_std_threshold: informative latents have average inferred stds < dist_std_threshold Returns: latent_mask_final: boolean mask of the same dimensionality as z0 """ if isinstance(z0, distrax.Normal): std_vals = np.mean(z0.variance(), axis=0) elif isinstance(z0, distrax.Distribution): raise NotImplementedError() else: # If the latent is deterministic, pass through all dimensions return np.array([True]*z0.shape[-1]) tensor_shape = std_vals.shape half_dims = int(tensor_shape[-1] / 2) std_vals_q = std_vals[:half_dims] std_vals_p = std_vals[half_dims:] # Keep both q and corresponding p as either one is informative informative_latents_inds = np.array([ x for x in range(len(std_vals_q)) if std_vals_q[x] < dist_std_threshold or std_vals_p[x] < dist_std_threshold ]) if informative_latents_inds.shape[0] > 0: latent_mask_final = np.zeros_like(std_vals_q) latent_mask_final[informative_latents_inds] = 1 latent_mask_final = np.concatenate([latent_mask_final, latent_mask_final]) latent_mask_final = latent_mask_final == 1 return latent_mask_final else: return np.array([True]*tensor_shape[-1]) def standardize_data(data): """Applies the sklearn standardization to the data.""" scaler = preprocessing.StandardScaler() scaler.fit(data) return scaler.transform(data) def find_best_polynomial(data_x, data_y, max_poly_order, rsq_threshold, max_dim_n=32, alpha_sweep=None, max_iter=1000, cv=2): """Find minimal polynomial expansion that is sufficient to explain data using Lasso regression.""" rsq = 0 poly_order = 1 if not np.any(alpha_sweep): alpha_sweep = [1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2] # Avoid a large polynomial expansion for large latent sizes if data_x.shape[-1] > max_dim_n: print(f'>WARNING! Data is too high dimensional at {data_x.shape[-1]}') print('>WARNING! Setting max_poly_order = 1') max_poly_order = 1 while rsq < rsq_threshold and poly_order <= max_poly_order: time_start = time.perf_counter() poly = preprocessing.PolynomialFeatures(poly_order, include_bias=False) data_x_exp = poly.fit_transform(data_x) time_end = time.perf_counter() print( f'Took {time_end-time_start}s to create polynomial features of order ' f'{poly_order} and size {data_x_exp.shape[1]}.') with warnings.catch_warnings(): warnings.simplefilter('ignore') time_start = time.perf_counter() clf = linear_model.Lasso( random_state=0, max_iter=max_iter, normalize=False, warm_start=False) parameters = {'alpha': alpha_sweep} try: regressor = do_grid_search(data_x_exp, data_y, clf, parameters, cv) time_end = time.perf_counter() print(f'Took {time_end-time_start}s to do regression grid search.') # Get rsq results time_start = time.perf_counter() clf = linear_model.Lasso( random_state=0, alpha=regressor.best_params_['alpha'], max_iter=max_iter, normalize=False, warm_start=False) clf.fit(data_x_exp, data_y) rsq = clf.score(data_x_exp, data_y) time_end = time.perf_counter() print(f'Took {time_end-time_start}s to get rsq results.') old_regressor = regressor old_poly_order = poly_order old_poly = poly old_data_x_exp = data_x_exp old_rsq = rsq old_clf = clf print(f'Polynomial of order {poly_order} with ' f' alpha={regressor.best_params_} RSQ: {rsq}') poly_order += 1 except KeyboardInterrupt: time_end = time.perf_counter() print(f'Timed out after {time_end-time_start}s of doing grid search.') # pytype: disable=name-error # py39-upgrade print(f'Continuing with previous poly_order={old_poly_order}...') regressor = old_regressor poly_order = old_poly_order poly = old_poly data_x_exp = old_data_x_exp rsq = old_rsq clf = old_clf # pytype: enable=name-error # py39-upgrade print(f'Polynomial of order {poly_order} with ' f' alpha={regressor.best_params_} RSQ: {rsq}') break return clf, poly, data_x_exp, rsq def eval_monomial_grad(feature, x, w, grad_acc): """Accumulates gradient from polynomial features and their weights.""" features = feature.split(' ') variable_indices = [] grads = np.ones(len(features)) * w for i, feature in enumerate(features): name_and_power = feature.split('^') if len(name_and_power) == 1: name, power = name_and_power[0], 1 else: name, power = name_and_power power = int(power) var_index = int(name[1:]) variable_indices.append(var_index) new_prod = np.ones_like(grads) * (x[var_index] ** power) # This needs a special case, for situation where x[index] = 0.0 if power == 1: new_prod[i] = 1.0 else: new_prod[i] = power * (x[var_index] ** (power - 1)) grads = grads * new_prod grad_acc[variable_indices] += grads return grad_acc def compute_jacobian_manual(x, polynomial_features, weight_matrix, tolerance): """Computes the jacobian manually.""" # Put together the equation for each output var # polynomial_features = np.array(polynomial_obj.get_feature_names()) weight_mask = np.abs(weight_matrix) > tolerance weight_matrix = weight_mask * weight_matrix jacobians = list() for i in range(weight_matrix.shape[0]): grad_accumulator = np.zeros_like(x) for j, feature in enumerate(polynomial_features): eval_monomial_grad(feature, x, weight_matrix[i, j], grad_accumulator) jacobians.append(grad_accumulator) return np.stack(jacobians) def calculate_jacobian_prod(jacobian, noise_eps=1e-6): """Calculates AA*, where A=JEJ^T and A*=JE^TJ^T, which should be I.""" # Add noise as 0 in jacobian creates issues in calculations later jacobian = jacobian + noise_eps sym_matrix = symplectic_matrix(jacobian.shape[1]) pred = np.matmul(jacobian, sym_matrix) pred = np.matmul(pred, np.transpose(jacobian)) pred_t = np.matmul(jacobian, np.transpose(sym_matrix)) pred_t = np.matmul(pred_t, np.transpose(jacobian)) pred_id = np.matmul(pred, pred_t) return pred_id def normalise_jacobian_prods(jacobian_preds): """Normalises Jacobians evaluated at various points by a constant.""" stacked_preds = np.stack(jacobian_preds) # For each attempt at estimating E, get the max term, and take their average normalisation_factor = np.mean(np.max(np.abs(stacked_preds), axis=(1, 2))) if normalisation_factor != 0: stacked_preds = stacked_preds/normalisation_factor return stacked_preds def calculate_symetric_score( gt_data, model_data, max_poly_order, max_sym_score, rsq_threshold, sym_threshold, evaluation_point_n, trajectory_n=1, weight_tolerance=1e-5, alpha_sweep=None, max_iter=1000, cv=2): """Finds minimal polynomial expansion to explain data using Lasso regression, gets the Jacobian of the mapping and calculates how symplectic the map is.""" model_data = model_data[..., :gt_data.shape[0], :] # Fing polynomial expansion that explains enough variance in the gt data print('Finding best polynomial expansion...') time_start = time.perf_counter() # Clean up model data to ensure it doesn't contain NaN, infinity # or values too large for dtype('float32') model_data = np.nan_to_num(model_data) model_data = np.clip(model_data, -999999, 999999) clf, poly, model_data_exp, best_rsq = find_best_polynomial( model_data, gt_data, max_poly_order, rsq_threshold, 32, alpha_sweep, max_iter, cv) time_end = time.perf_counter() print(f'Took {time_end - time_start}s to find best polynomial.') # Calculate Symplecticity score all_raw_scores = [] features = np.array(poly.get_feature_names()) points_per_trajectory = int(len(gt_data) / trajectory_n) for trajectory in range(trajectory_n): random_data_inds = np.random.permutation( range(points_per_trajectory))[:evaluation_point_n] jacobian_preds = [] for point_ind in random_data_inds: input_data_point = model_data[points_per_trajectory * trajectory + point_ind] time_start = time.perf_counter() jacobian = compute_jacobian_manual(input_data_point, features, clf.coef_, weight_tolerance) pred = calculate_jacobian_prod(jacobian) jacobian_preds.append(pred) time_end = time.perf_counter() print(f'Took {time_end - time_start}s to evaluate jacobian ' f'around point {point_ind}.') # Normalise normalised_jacobian_preds = normalise_jacobian_prods(jacobian_preds) # The score is measured as the deviation from I identity = np.eye(normalised_jacobian_preds.shape[-1]) scores = np.mean(np.power(normalised_jacobian_preds - identity, 2), axis=(1, 2)) all_raw_scores.append(scores) sym_score = np.min([np.mean(all_raw_scores), max_sym_score]) # Calculate final SyMetric score if best_rsq > rsq_threshold and sym_score < sym_threshold: sy_metric = 1.0 else: sy_metric = 0.0 results = { 'poly_exp_order': poly.get_params()['degree'], 'rsq': best_rsq, 'sym': sym_score, 'SyMetric': sy_metric, } with np.printoptions(precision=4, suppress=True): print(f'----------------FINAL RESULTS FOR {trajectory_n} ' 'TRAJECTORIES------------------') print(f'BEST POLYNOMIAL EXPANSION ORDER: {results["poly_exp_order"]}') print(f'BEST RSQ (1-best): {results["rsq"]}') print(f'SYMPLECTICITY SCORE AROUND ALL POINTS AND ALL ' f'TRAJECTORIES (0-best): {sym_score}') print(f'SyMETRIC SCORE: {sy_metric}') print(f'----------------FINAL RESULTS FOR {trajectory_n} ' f'TRAJECTORIES------------------') return results, clf, poly, model_data_exp ================================================ FILE: physics_inspired_models/integrators.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing the implementations of the various numerical integrators. Higher order methods mostly taken from [1]. References: [1] Leimkuhler, Benedict and Sebastian Reich. Simulating hamiltonian dynamics. Vol. 14. Cambridge university press, 2004. [2] Forest, Etienne and Ronald D. Ruth. Fourth-order symplectic integration. Physica D: Nonlinear Phenomena 43.1 (1990): 105-117. [3] Blanes, Sergio and Per Christian Moan. Practical symplectic partitioned Runge–Kutta and Runge–Kutta–Nyström methods. Journal of Computational and Applied Mathematics 142.2 (2002): 313-330. [4] McLachlan, Robert I. On the numerical integration of ordinary differential equations by symmetric composition methods. SIAM Journal on Scientific Computing 16.1 (1995): 151-168. [5] Yoshida, Haruo. Construction of higher order symplectic integrators. Physics letters A 150.5-7 (1990): 262-268. [6] Süli, Endre; Mayers, David (2003), An Introduction to Numerical Analysis, Cambridge University Press, ISBN 0-521-00794-1. [7] Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (1993), Solving ordinary differential equations I: Nonstiff problems, Berlin, New York: Springer-Verlag, ISBN 978-3-540-56670-0. """ from typing import Callable, Dict, Optional, Sequence, Tuple, TypeVar, Union from dm_hamiltonian_dynamics_suite.hamiltonian_systems import phase_space import jax from jax import lax from jax.experimental import ode import jax.numpy as jnp import numpy as np M = TypeVar("M") TM = TypeVar("TM") TimeInterval = Union[jnp.ndarray, Tuple[float, float]] # _____ _ # / ____| | | # | | __ ___ _ __ ___ _ __ __ _| | # | | |_ |/ _ \ '_ \ / _ \ '__/ _` | | # | |__| | __/ | | | __/ | | (_| | | # \_____|\___|_| |_|\___|_| \__,_|_| # _____ _ _ _ # |_ _| | | | | (_) # | | _ __ | |_ ___ __ _ _ __ __ _| |_ _ ___ _ __ # | | | '_ \| __/ _ \/ _` | '__/ _` | __| |/ _ \| '_ \ # _| |_| | | | || __/ (_| | | | (_| | |_| | (_) | | | | # |_____|_| |_|\__\___|\__, |_| \__,_|\__|_|\___/|_| |_| # __/ | # |___/ GeneralTangentFunction = Callable[ [ Optional[Union[float, jnp.ndarray]], # t M # y ], TM # dy_dt ] GeneralIntegrator = Callable[ [ GeneralTangentFunction, Optional[Union[float, jnp.ndarray]], # t M, # y jnp.ndarray, # dt ], M # y_next ] def solve_ivp_dt( fun: GeneralTangentFunction, y0: M, t0: Union[float, jnp.ndarray], dt: Union[float, jnp.ndarray], method: Union[str, GeneralIntegrator], num_steps: Optional[int] = None, steps_per_dt: int = 1, use_scan: bool = True, ode_int_kwargs: Optional[Dict[str, Union[float, int]]] = None ) -> Tuple[jnp.ndarray, M]: """Solve an initial value problem for a system of ODEs using explicit method. This function numerically integrates a system of ordinary differential equations given an initial value:: dy / dt = f(t, y) y(t0) = y0 Here t is a one-dimensional independent variable (time), y(t) is an n-dimensional vector-valued function (state), and an n-dimensional vector-valued function f(t, y) determines the differential equations. The goal is to find y(t) approximately satisfying the differential equations, given an initial value y(t0)=y0. All of the solvers supported here are explicit and non-adaptive. This makes them easy to run with a fixed amount of computation and ensures solutions are easily differentiable. Args: fun: callable Right-hand side of the system. The calling signature is ``fun(t, y)``. Here `t` is a scalar representing the time instance. `y` can be any type `M`, including a flat array, that is registered as a pytree. In addition, there is a type denoted as `TM` that represents the tangent space to `M`. It is assumed that any element of `TM` can be multiplied by arrays and scalars, can be added to other `TM` instances as well as they can be right added to an element of `M`, that is add(M, TM) exists. The function should return an element of `TM` that defines the time derivative of `y`. y0: an instance of `M` Initial state at `t_span[0]`. t0: float or array. The initial time point of integration. dt: array Array containing all consecutive increments in time, at which the integral to be evaluated. The size of this array along axis 0 defines the number of steps that the integrator would do. method: string or `GeneralIntegrator` The integrator method to use. Possible values for string are: * general_euler - see `GeneralEuler` * rk2 - see `RungaKutta2` * rk4 - see `RungaKutta4` * rk38 - see `RungaKutta38` num_steps: Optional int. If provided the `dt` will be treated as the same per step time interval, applied for this many steps. In other words setting this argument is equivalent to replicating `dt` num_steps times and stacking over axis=0. steps_per_dt: int This determines the overall step size. Between any two values of t_eval the step size is `dt = (t_eval[i+1] - t_eval[i]) / steps_per_dt. use_scan: bool Whether for the loop to use `lax.scan` or a python loop ode_int_kwargs: dict Extra arguments to be passed to `ode.odeint` when method="adaptive" Returns: t: array Time points at which the solution is evaluated. y : an instance of M Values of the solution at `t`. """ if method == "adaptive": ndim = y0.q.ndim if isinstance(y0, phase_space.PhaseSpace) else y0.ndim signs = jnp.asarray(jnp.sign(dt)) signs = signs.reshape([-1] + [1] * (ndim - 1)) if isinstance(dt, float) or dt.ndim == 0: true_t_eval = t0 + dt * np.arange(1, num_steps + 1) else: true_t_eval = t0 + dt[None] * np.arange(1, num_steps + 1)[:, None] if isinstance(dt, float): dt = np.asarray(dt) if isinstance(dt, np.ndarray) and dt.ndim > 0: if np.all(np.abs(dt) != np.abs(dt[0])): raise ValueError("Not all values of `dt` where the same.") elif isinstance(dt, jnp.ndarray) and dt.ndim > 0: raise ValueError("The code here works only when `dy_dt` is time " "independent and `np.abs(dt)` is the same. For this we " "allow calling this only with numpy (not jax.numpy) " "arrays.") dt: jnp.ndarray = jnp.abs(jnp.asarray(dt)) dt = dt.reshape([-1])[0] t_eval = t0 + dt * np.arange(num_steps + 1) outputs = ode.odeint( func=lambda y_, t_: fun(None, y_) * signs, y0=y0, t=jnp.abs(t_eval - t0), **(ode_int_kwargs or dict()) ) # Note that we do not return the initial point return true_t_eval, jax.tree_map(lambda x: x[1:], outputs) method = get_integrator(method) if num_steps is not None: dt = jnp.repeat(jnp.asarray(dt)[None], repeats=num_steps, axis=0) t_eval = t0 + jnp.cumsum(dt, axis=0) t0 = jnp.ones_like(t_eval[..., :1]) * t0 t = jnp.concatenate([t0, t_eval[..., :-1]], axis=-1) def loop_body(y_: M, t_dt: Tuple[jnp.ndarray, jnp.ndarray]) -> Tuple[M, M]: t_, dt_ = t_dt dt_: jnp.ndarray = dt_ / steps_per_dt for _ in range(steps_per_dt): y_ = method(fun, t_, y_, dt_) t_ = t_ + dt_ return y_, y_ if use_scan: return t_eval, lax.scan(loop_body, init=y0, xs=(t, dt))[1] else: y = [y0] for t_and_dt_i in zip(t, dt): y.append(loop_body(y[-1], t_and_dt_i)[0]) # Note that we do not return the initial point return t_eval, jax.tree_map(lambda *args: jnp.stack(args, axis=0), *y[1:]) def solve_ivp_dt_two_directions( fun: GeneralTangentFunction, y0: M, t0: Union[float, jnp.ndarray], dt: Union[float, jnp.ndarray], method: Union[str, GeneralIntegrator], num_steps_forward: int, num_steps_backward: int, include_y0: bool = True, steps_per_dt: int = 1, use_scan: bool = True, ode_int_kwargs: Optional[Dict[str, Union[float, int]]] = None ) -> M: """Equivalent to `solve_ivp_dt` but you can specify unrolling the problem for a fixed number of steps in both time directions.""" yt = [] if num_steps_backward > 0: yt_bck = solve_ivp_dt( fun=fun, y0=y0, t0=t0, dt=- dt, method=method, num_steps=num_steps_backward, steps_per_dt=steps_per_dt, use_scan=use_scan, ode_int_kwargs=ode_int_kwargs )[1] yt.append(jax.tree_map(lambda x: jnp.flip(x, axis=0), yt_bck)) if include_y0: yt.append(jax.tree_map(lambda x: x[None], y0)) if num_steps_forward > 0: yt_fwd = solve_ivp_dt( fun=fun, y0=y0, t0=t0, dt=dt, method=method, num_steps=num_steps_forward, steps_per_dt=steps_per_dt, use_scan=use_scan, ode_int_kwargs=ode_int_kwargs )[1] yt.append(yt_fwd) if len(yt) > 1: return jax.tree_map(lambda *a: jnp.concatenate(a, axis=0), *yt) else: return yt[0] def solve_ivp_t_eval( fun: GeneralTangentFunction, t_span: TimeInterval, y0: M, method: Union[str, GeneralIntegrator], t_eval: Optional[jnp.ndarray] = None, steps_per_dt: int = 1, use_scan: bool = True, ode_int_kwargs: Optional[Dict[str, Union[float, int]]] = None ) -> Tuple[jnp.ndarray, M]: """Solve an initial value problem for a system of ODEs using an explicit method. This function numerically integrates a system of ordinary differential equations given an initial value:: dy / dt = f(t, y) y(t0) = y0 Here t is a one-dimensional independent variable (time), y(t) is an n-dimensional vector-valued function (state), and an n-dimensional vector-valued function f(t, y) determines the differential equations. The goal is to find y(t) approximately satisfying the differential equations, given an initial value y(t0)=y0. All of the solvers supported here are explicit and non-adaptive. This in terms makes them easy to run with fixed amount of computation and the solutions to be easily differentiable. Args: fun: callable Right-hand side of the system. The calling signature is ``fun(t, y)``. Here `t` is a scalar representing the time instance. `y` can be any type `M`, including a flat array, that is registered as a pytree. In addition, there is a type denoted as `TM` that represents the tangent space to `M`. It is assumed that any element of `TM` can be multiplied by arrays and scalars, can be added to other `TM` instances as well as they can be right added to an element of `M`, that is add(M, TM) exists. The function should return an element of `TM` that defines the time derivative of `y`. t_span: 2-tuple of floats Interval of integration (t0, tf). The solver starts with t=t0 and integrates until it reaches t=tf. y0: an instance of `M` Initial state at `t_span[0]`. method: string or `GeneralIntegrator` The integrator method to use. Possible values for string are: * general_euler - see `GeneralEuler` * rk2 - see `RungaKutta2` * rk4 - see `RungaKutta4` * rk38 - see `RungaKutta38` t_eval: array or None. Times at which to store the computed solution. Must be sorted and lie within `t_span`. If None then t_eval = [t_span[-1]] steps_per_dt: int This determines the overall step size. Between any two values of t_eval the step size is `dt = (t_eval[i+1] - t_eval[i]) / steps_per_dt. use_scan: bool Whether for the loop to use `lax.scan` or a python loop ode_int_kwargs: dict Extra arguments to be passed to `ode.odeint` when method="adaptive" Returns: t: array Time points at which the solution is evaluated. y : an instance of M Values of the solution at `t`. """ # Check for t_eval if t_eval is None: t_eval = np.asarray([t_span[-1]]) if isinstance(t_span[0], float) and isinstance(t_span[1], float): t_span = np.asarray(t_span) elif isinstance(t_span[0], float) and isinstance(t_span[1], jnp.ndarray): t_span = (np.full_like(t_span[1], t_span[0]), t_span[1]) t_span = np.stack(t_span, axis=0) elif isinstance(t_span[1], float) and isinstance(t_span[0], jnp.ndarray): t_span = (t_span[0], jnp.full_like(t_span[0], t_span[1])) t_span = np.stack(t_span, axis=0) else: t_span = np.stack(t_span, axis=0) def check_span(span, ts): # Verify t_span and t_eval if span[0] < span[1]: # Forward in time if not np.all(np.logical_and(span[0] <= ts, ts <= span[1])): raise ValueError("Values in `t_eval` are not within `t_span`.") if not np.all(ts[:-1] < ts[1:]): raise ValueError("Values in `t_eval` are not properly sorted.") else: # Backward in time if not np.all(np.logical_and(span[0] >= ts, ts >= span[1])): raise ValueError("Values in `t_eval` are not within `t_span`.") if not np.all(ts[:-1] > ts[1:]): raise ValueError("Values in `t_eval` are not properly sorted.") if t_span.ndim == 1: check_span(t_span, t_eval) elif t_span.ndim == 2: if t_eval.ndim != 2: raise ValueError("t_eval should have rank 2.") for i in range(t_span.shape[1]): check_span(t_span[:, i], t_eval[:, i]) t = np.concatenate([t_span[:1], t_eval[:-1]], axis=0) return solve_ivp_dt( fun=fun, y0=y0, t0=t_span[0], dt=t_eval - t, method=method, steps_per_dt=steps_per_dt, use_scan=use_scan, ode_int_kwargs=ode_int_kwargs ) class RungaKutta(GeneralIntegrator): """A general Runga-Kutta integrator defined using a Butcher tableau.""" def __init__( self, a_tableau: Sequence[Sequence[float]], b_tableau: Sequence[float], c_tableau: Sequence[float], order: int): if len(b_tableau) != len(c_tableau) + 1: raise ValueError("The length of b_tableau should be exactly one more than" " the length of c_tableau.") if len(b_tableau) != len(a_tableau) + 1: raise ValueError("The length of b_tableau should be exactly one more than" " the length of a_tableau.") self.a_tableau = a_tableau self.b_tableau = b_tableau self.c_tableau = c_tableau self.order = order def __call__( self, tangent_func: GeneralTangentFunction, t: jnp.ndarray, y: M, dt: jnp.ndarray ) -> M: # pytype: disable=invalid-annotation k = [tangent_func(t, y)] zero = jax.tree_map(jnp.zeros_like, k[0]) # We always broadcast opposite to numpy (e.g. leading dims (batch) count) if dt.ndim > 0: dt = dt.reshape(dt.shape + (1,) * (y.ndim - dt.ndim)) if t.ndim > 0: t = t.reshape(t.shape + (1,) * (y.ndim - t.ndim)) for c_n, a_n_row in zip(self.c_tableau, self.a_tableau): t_n = t + dt * c_n products = [a_i * k_i for a_i, k_i in zip(a_n_row, k) if a_i != 0.0] delta_n = sum(products, zero) y_n = y + dt * delta_n k.append(tangent_func(t_n, y_n)) products = [b_i * k_i for b_i, k_i in zip(self.b_tableau, k) if b_i != 0.0] delta = sum(products, zero) return y + dt * delta class GeneralEuler(RungaKutta): """The standard Euler method (for general ODE problems).""" def __init__(self): super().__init__( a_tableau=[], b_tableau=[1.0], c_tableau=[], order=1 ) class RungaKutta2(RungaKutta): """The second order Runga-Kutta method corresponding to the mid-point rule.""" def __init__(self): super().__init__( a_tableau=[[1.0 / 2.0]], b_tableau=[0.0, 1.0], c_tableau=[1.0 / 2.0], order=2 ) class RungaKutta4(RungaKutta): """The fourth order Runga-Kutta method from [6].""" def __init__(self): super().__init__( a_tableau=[[1.0 / 2.0], [0.0, 1.0 / 2.0], [0.0, 0.0, 1.0]], b_tableau=[1.0 / 6.0, 1.0 / 3.0, 1.0 / 3.0, 1.0 / 6.0], c_tableau=[1.0 / 2.0, 1.0 / 2.0, 1.0], order=4 ) class RungaKutta38(RungaKutta): """The fourth order 3/8 rule Runga-Kutta method from [7].""" def __init__(self): super().__init__( a_tableau=[[1.0 / 3.0], [-1.0 / 3.0, 1.0], [1.0, -1.0, 1.0]], b_tableau=[1.0 / 8.0, 3.0 / 8.0, 3.0 / 8.0, 1.0 / 8.0], c_tableau=[1.0 / 3.0, 2.0 / 3.0, 1.0], order=4 ) # _____ _ _ _ # / ____| | | | | (_) # | (___ _ _ _ __ ___ _ __ | | ___ ___| |_ _ ___ # \___ \| | | | '_ ` _ \| '_ \| |/ _ \/ __| __| |/ __| # ____) | |_| | | | | | | |_) | | __/ (__| |_| | (__ # |_____/ \__, |_| |_| |_| .__/|_|\___|\___|\__|_|\___| # __/ | | | # |___/ |_| # _____ _ _ _ # |_ _| | | | | (_) # | | _ __ | |_ ___ __ _ _ __ __ _| |_ _ ___ _ __ # | | | '_ \| __/ _ \/ _` | '__/ _` | __| |/ _ \| '_ \ # _| |_| | | | || __/ (_| | | | (_| | |_| | (_) | | | | # |_____|_| |_|\__\___|\__, |_| \__,_|\__|_|\___/|_| |_| # __/ | # |___/ SymplecticIntegrator = Callable[ [ phase_space.SymplecticTangentFunction, jnp.ndarray, # t phase_space.PhaseSpace, # (q, p) jnp.ndarray, # dt ], phase_space.PhaseSpace # (q_next, p_next) ] def solve_hamiltonian_ivp_dt( hamiltonian: phase_space.HamiltonianFunction, y0: phase_space.PhaseSpace, t0: Union[float, jnp.ndarray], dt: Union[float, jnp.ndarray], method: Union[str, SymplecticIntegrator], num_steps: Optional[int] = None, steps_per_dt: int = 1, use_scan: bool = True, ode_int_kwargs: Optional[Dict[str, Union[float, int]]] = None ) -> Tuple[jnp.ndarray, phase_space.PhaseSpace]: """Solve an initial value problem for a Hamiltonian system. This function numerically integrates a Hamiltonian system given an initial value:: dq / dt = dH / dp dp / dt = - dH / dq q(t0), p(t0) = y0.q, y0.p Here t is a one-dimensional independent variable (time), y(t) is an n-dimensional vector-valued function (state), and an n-dimensional vector-valued function H(t, q, p) determines the value of the Hamiltonian. The goal is to find q(t) and p(t) approximately satisfying the differential equations, given an initial values q(t0), p(t0) = y0.q, y0.p All of the solvers supported here are explicit and non-adaptive. This in terms makes them easy to run with fixed amount of computation and the solutions to be easily differentiable. Args: hamiltonian: callable The Hamiltonian function. The calling signature is ``h(t, s)``, where `s` is an instance of `PhaseSpace`. y0: an instance of `M` Initial state at t=t0. t0: float or array. The initial time point of integration. dt: array Array containing all consecutive increments in time, at which the integral to be evaluated. The size of this array along axis 0 defines the number of steps that the integrator would do. method: string or `GeneralIntegrator` The integrator method to use. Possible values for string are: * symp_euler - see `SymplecticEuler` * symp_euler_q - a `SymplecticEuler` with position_first=True * symp_euler_p - a `SymplecticEuler` with position_first=False * leap_frog - see `LeapFrog` * leap_frog_q - a `LeapFrog` with position_first=True * leap_frog_p - a `LeapFrog` with position_first=False * stormer_verlet - same as leap_frog * stormer_verlet_q - same as leap_frog_q * stormer_verlet_p - same as leap_frog_p * ruth4 - see `Ruth4`, * sym4 - see `Symmetric4` * sym6 - see `Symmetric6` * so4 - see `SymmetricSo4` * so4_q - a `SymmetricSo4` with position_first=True * so4_p - a `SymmetricSo4` with position_first=False * so6 - see `SymmetricSo6` * so6_q - a `SymmetricSo6` with position_first=True * so6_p - a `SymmetricSo6` with position_first=False * so8 - see `SymmetricSo8` * so8_q - a `SymmetricSo8` with position_first=True * so8_p - a `SymmetricSo8` with position_first=False num_steps: Optional int. If provided the `dt` will be treated as the same per step time interval, applied for this many steps. In other words setting this argument is equivalent to replicating `dt` num_steps times and stacking over axis=0. steps_per_dt: int This determines the overall step size. Between any two values of t_eval the step size is `dt = (t_eval[i+1] - t_eval[i]) / steps_per_dt. use_scan: bool Whether for the loop to use `lax.scan` or a python loop ode_int_kwargs: dict Extra arguments to be passed to `ode.odeint` when method="adaptive" Returns: t: array Time points at which the solution is evaluated. y : an instance of M Values of the solution at `t`. """ if not isinstance(y0, phase_space.PhaseSpace): raise ValueError("The initial state must be an instance of `PhaseSpace`.") dy_dt = phase_space.poisson_bracket_with_q_and_p(hamiltonian) return solve_ivp_dt( fun=dy_dt, y0=y0, t0=t0, dt=dt, method=method, num_steps=num_steps, steps_per_dt=steps_per_dt, use_scan=use_scan, ode_int_kwargs=ode_int_kwargs ) def solve_hamiltonian_ivp_t_eval( hamiltonian: phase_space.HamiltonianFunction, t_span: TimeInterval, y0: phase_space.PhaseSpace, method: Union[str, SymplecticIntegrator], t_eval: Optional[jnp.ndarray] = None, steps_per_dt: int = 1, use_scan: bool = True, ode_int_kwargs: Optional[Dict[str, Union[float, int]]] = None ) -> Tuple[jnp.ndarray, phase_space.PhaseSpace]: """Solve an initial value problem for a Hamiltonian system. This function numerically integrates a Hamiltonian system given an initial value:: dq / dt = dH / dp dp / dt = - dH / dq q(t0), p(t0) = y0.q, y0.p Here t is a one-dimensional independent variable (time), y(t) is an n-dimensional vector-valued function (state), and an n-dimensional vector-valued function H(t, q, p) determines the value of the Hamiltonian. The goal is to find q(t) and p(t) approximately satisfying the differential equations, given an initial values q(t0), p(t0) = y0.q, y0.p All of the solvers supported here are explicit and non-adaptive. This in terms makes them easy to run with fixed amount of computation and the solutions to be easily differentiable. Args: hamiltonian: callable The Hamiltonian function. The calling signature is ``h(t, s)``, where `s` is an instance of `PhaseSpace`. t_span: 2-tuple of floats Interval of integration (t0, tf). The solver starts with t=t0 and integrates until it reaches t=tf. y0: an instance of `M` Initial state at `t_span[0]`. method: string or `GeneralIntegrator` The integrator method to use. Possible values for string are: * symp_euler - see `SymplecticEuler` * symp_euler_q - a `SymplecticEuler` with position_first=True * symp_euler_p - a `SymplecticEuler` with position_first=False * leap_frog - see `LeapFrog` * leap_frog_q - a `LeapFrog` with position_first=True * leap_frog_p - a `LeapFrog` with position_first=False * stormer_verlet - same as leap_frog * stormer_verlet_q - same as leap_frog_q * stormer_verlet_p - same as leap_frog_p * ruth4 - see `Ruth4`, * sym4 - see `Symmetric4` * sym6 - see `Symmetric6` * so4 - see `SymmetricSo4` * so4_q - a `SymmetricSo4` with position_first=True * so4_p - a `SymmetricSo4` with position_first=False * so6 - see `SymmetricSo6` * so6_q - a `SymmetricSo6` with position_first=True * so6_p - a `SymmetricSo6` with position_first=False * so8 - see `SymmetricSo8` * so8_q - a `SymmetricSo8` with position_first=True * so8_p - a `SymmetricSo8` with position_first=False t_eval: array or None. Times at which to store the computed solution. Must be sorted and lie within `t_span`. If None then t_eval = [t_span[-1]] steps_per_dt: int This determines the overall step size. Between any two values of t_eval the step size is `dt = (t_eval[i+1] - t_eval[i]) / steps_per_dt. use_scan: bool Whether for the loop to use `lax.scan` or a python loop ode_int_kwargs: dict Extra argumrnts to be passed to `ode.odeint` when method="adaptive" Returns: t: array Time points at which the solution is evaluated. y : an instance of M Values of the solution at `t`. """ if not isinstance(y0, phase_space.PhaseSpace): raise ValueError("The initial state must be an instance of `PhaseSpace`.") dy_dt = phase_space.poisson_bracket_with_q_and_p(hamiltonian) if method == "adaptive": dy_dt = phase_space.transform_symplectic_tangent_function_using_array(dy_dt) return solve_ivp_t_eval( # pytype: disable=bad-return-type # jax-ndarray fun=dy_dt, t_span=t_span, y0=y0, method=method, t_eval=t_eval, steps_per_dt=steps_per_dt, use_scan=use_scan, ode_int_kwargs=ode_int_kwargs ) class CompositionSymplectic(SymplecticIntegrator): """A generalized symplectic integrator based on compositions. Simulates Hamiltonian dynamics using a composition of symplectic steps: q_{0} = q_init, p_{0} = p_init for i in [1, n]: p_{i+1} = p_{i} - c_{i} * dH/dq(q_{i}) * dt q_{i+1} = q_{i} + d_{i} * dH/dp(p_{i+1}) * dt q_next = q_{n}, p_next = p_{n} This integrator always starts with updating the momentum. The order argument is used mainly for testing to estimate the error when integrating various systems. """ def __init__( self, momentum_coefficients: Sequence[float], position_coefficients: Sequence[float], order: int): if len(position_coefficients) != len(momentum_coefficients): raise ValueError("The number of momentum_coefficients and " "position_coefficients must be the same.") if not np.allclose(sum(position_coefficients), 1.0): raise ValueError("The sum of the position_coefficients " "must be equal to 1.") if not np.allclose(sum(momentum_coefficients), 1.0): raise ValueError("The sum of the momentum_coefficients " "must be equal to 1.") self.momentum_coefficients = momentum_coefficients self.position_coefficients = position_coefficients self.order = order def __call__( self, tangent_func: phase_space.SymplecticTangentFunction, t: jnp.ndarray, y: phase_space.PhaseSpace, dt: jnp.ndarray ) -> phase_space.PhaseSpace: q, p = y.q, y.p # This is intentional to prevent a bug where one uses y later del y # We always broadcast opposite to numpy (e.g. leading dims (batch) count) if dt.ndim > 0: dt = dt.reshape(dt.shape + (1,) * (q.ndim - dt.ndim)) if t.ndim > 0: t = t.reshape(t.shape + (1,) * (q.ndim - t.ndim)) t_q = t t_p = t for c, d in zip(self.momentum_coefficients, self.position_coefficients): # Update momentum if c != 0.0: dp_dt = tangent_func(t_p, phase_space.PhaseSpace(q, p)).p p = p + c * dt * dp_dt t_p = t_p + c * dt # Update position if d != 0.0: dq_dt = tangent_func(t_q, phase_space.PhaseSpace(q, p)).q q = q + d * dt * dq_dt t_q = t_q + d * dt return phase_space.PhaseSpace(position=q, momentum=p) class SymplecticEuler(CompositionSymplectic): """The symplectic Euler method (for Hamiltonian systems). If position_first = True: q_{t+1} = q_{t} + dH/dp(p_{t}) * dt p_{t+1} = p_{t} - dH/dq(q_{t+1}) * dt else: p_{t+1} = p_{t} - dH/dq(q_{t}) * dt q_{t+1} = q_{t} + dH/dp(p_{t+1}) * dt """ def __init__(self, position_first=True): if position_first: super().__init__( momentum_coefficients=[0.0, 1.0], position_coefficients=[1.0, 0.0], order=1 ) else: super().__init__( momentum_coefficients=[1.0], position_coefficients=[1.0], order=1 ) class SymmetricCompositionSymplectic(CompositionSymplectic): """A generalized composition integrator that is symmetric. The integrators produced are always of the form: [update_q, update_p, ..., update_p, update_q] or [update_p, update_q, ..., update_q, update_p] based on the position_first argument. The method will expect which ever is updated first to have one more coefficient. """ def __init__( self, momentum_coefficients: Sequence[float], position_coefficients: Sequence[float], position_first: bool, order: int): position_coefficients = list(position_coefficients) momentum_coefficients = list(momentum_coefficients) if position_first: if len(position_coefficients) != len(momentum_coefficients) + 1: raise ValueError("The number of position_coefficients must be one more " "than momentum_coefficients when position_first=True.") momentum_coefficients = [0.0] + momentum_coefficients else: if len(position_coefficients) + 1 != len(momentum_coefficients): raise ValueError("The number of momentum_coefficients must be one more " "than position_coefficients when position_first=True.") position_coefficients = position_coefficients + [0.0] super().__init__( position_coefficients=position_coefficients, momentum_coefficients=momentum_coefficients, order=order ) def symmetrize_coefficients( coefficients: Sequence[float], odd_number: bool ) -> Sequence[float]: """Symmetrizes the coefficients for an integrator.""" coefficients = list(coefficients) if odd_number: final = 1.0 - 2.0 * sum(coefficients) return coefficients + [final] + coefficients[::-1] else: final = 0.5 - sum(coefficients) return coefficients + [final, final] + coefficients[::-1] class LeapFrog(SymmetricCompositionSymplectic): """The standard Leap-Frog method (also known as Stormer-Verlet). If position_first = True: q_half = q_{t} + dH/dp(p_{t}) * dt / 2 p_{t+1} = p_{t} - dH/dq(q_half) * dt q_{t+1} = q_half + dH/dp(p_{t+1}) * dt / 2 else: p_half = p_{t} - dH/dq(q_{t}) * dt / 2 q_{t+1} = q_{t} + dH/dp(p_half) * dt p_{t+1} = p_half - dH/dq(q_{t+1}) * dt / 2 """ def __init__(self, position_first=False): if position_first: super().__init__( position_coefficients=[0.5, 0.5], momentum_coefficients=[1.0], position_first=True, order=2 ) else: super().__init__( position_coefficients=[1.0], momentum_coefficients=[0.5, 0.5], position_first=False, order=2 ) class Ruth4(SymmetricCompositionSymplectic): """The Fourth order method from [2].""" def __init__(self): cbrt_2 = float(np.cbrt(2.0)) c = [1.0 / (2.0 - cbrt_2)] # 3: [c1, 1.0 - 2*c1, c1] c = symmetrize_coefficients(c, odd_number=True) d = [1.0 / (4.0 - 2.0 * cbrt_2)] # 4: [d1, 0.5 - d1, 0.5 - d1, d1] d = symmetrize_coefficients(d, odd_number=False) super().__init__( position_coefficients=d, momentum_coefficients=c, position_first=True, order=4 ) class Symmetric4(SymmetricCompositionSymplectic): """The fourth order method from Table 6.1 in [1] (originally from [3]).""" def __init__(self): c = [0.0792036964311957, 0.353172906049774, -0.0420650803577195] # 7 : [c1, c2, c3, 1.0 - c1 - c2 - c3, c3, c2, c1] c = symmetrize_coefficients(c, odd_number=True) d = [0.209515106613362, -0.143851773179818] # 6: [d1, d2, 0.5 - d1, 0.5 - d1, d2, d1] d = symmetrize_coefficients(d, odd_number=False) super().__init__( position_coefficients=d, momentum_coefficients=c, position_first=False, order=4 ) class Symmetric6(SymmetricCompositionSymplectic): """The sixth order method from Table 6.1 in [1] (originally from [3]).""" def __init__(self): c = [0.0502627644003922, 0.413514300428344, 0.0450798897943977, -0.188054853819569, 0.541960678450780] # 11 : [c1, c2, c3, c4, c5, 1.0 - sum(ci), c5, c4, c3, c2, c1] c = symmetrize_coefficients(c, odd_number=True) d = [0.148816447901042, -0.132385865767784, 0.067307604692185, 0.432666402578175] # 10: [d1, d2, d3, d4, 0.5 - sum(di), 0.5 - sum(di), d4, d3, d2, d1] d = symmetrize_coefficients(d, odd_number=False) super().__init__( position_coefficients=d, momentum_coefficients=c, position_first=False, order=4 ) def coefficients_based_on_composing_second_order( weights: Sequence[float] ) -> Tuple[Sequence[float], Sequence[float]]: """Constructs the coefficients for methods based on second-order schemes.""" coefficients_0 = [] coefficients_1 = [] coefficients_0.append(weights[0] / 2.0) for i in range(len(weights) - 1): coefficients_1.append(weights[i]) coefficients_0.append((weights[i] + weights[i + 1]) / 2.0) coefficients_1.append(weights[-1]) coefficients_0.append(weights[-1] / 2.0) return coefficients_0, coefficients_1 class SymmetricSo4(SymmetricCompositionSymplectic): """The fourth order method from Table 6.2 in [1] (originally from [4]).""" def __init__(self, position_first: bool = False): w = [0.28, 0.62546642846767004501] # 5 w = symmetrize_coefficients(w, odd_number=True) c0, c1 = coefficients_based_on_composing_second_order(w) c_q, c_p = (c0, c1) if position_first else (c1, c0) super().__init__( position_coefficients=c_q, momentum_coefficients=c_p, position_first=position_first, order=4 ) class SymmetricSo6(SymmetricCompositionSymplectic): """The sixth order method from Table 6.2 in [1] (originally from [5]).""" def __init__(self, position_first: bool = False): w = [0.78451361047755726382, 0.23557321335935813368, -1.17767998417887100695] # 7 w = symmetrize_coefficients(w, odd_number=True) c0, c1 = coefficients_based_on_composing_second_order(w) c_q, c_p = (c0, c1) if position_first else (c1, c0) super().__init__( position_coefficients=c_q, momentum_coefficients=c_p, position_first=position_first, order=6 ) class SymmetricSo8(SymmetricCompositionSymplectic): """The eighth order method from Table 6.2 in [1] (originally from [4]).""" def __init__(self, position_first: bool = False): w = [0.74167036435061295345, -0.40910082580003159400, 0.19075471029623837995, -0.57386247111608226666, 0.29906418130365592384, 0.33462491824529818378, 0.31529309239676659663] # 15 w = symmetrize_coefficients(w, odd_number=True) c0, c1 = coefficients_based_on_composing_second_order(w) c_q, c_p = (c0, c1) if position_first else (c1, c0) super().__init__( position_coefficients=c_q, momentum_coefficients=c_p, position_first=position_first, order=8 ) general_integrators = dict( general_euler=GeneralEuler(), rk2=RungaKutta2(), rk4=RungaKutta4(), rk38=RungaKutta38() ) symplectic_integrators = dict( symp_euler=SymplecticEuler(position_first=True), symp_euler_q=SymplecticEuler(position_first=True), symp_euler_p=SymplecticEuler(position_first=False), leap_frog=LeapFrog(position_first=False), leap_frog_q=LeapFrog(position_first=True), leap_frog_p=LeapFrog(position_first=False), stormer_verlet=LeapFrog(position_first=False), stormer_verlet_q=LeapFrog(position_first=True), stormer_verlet_p=LeapFrog(position_first=False), ruth4=Ruth4(), sym4=Symmetric4(), sym6=Symmetric6(), so4=SymmetricSo4(position_first=False), so4_q=SymmetricSo4(position_first=True), so4_p=SymmetricSo4(position_first=False), so6=SymmetricSo6(position_first=False), so6_q=SymmetricSo6(position_first=True), so6_p=SymmetricSo6(position_first=False), so8=SymmetricSo8(position_first=False), so8_q=SymmetricSo8(position_first=True), so8_p=SymmetricSo8(position_first=False), ) def get_integrator( name_or_callable: Union[str, GeneralIntegrator] ) -> GeneralIntegrator: """Returns any integrator with the provided name or the argument.""" if isinstance(name_or_callable, str): if name_or_callable in general_integrators: return general_integrators[name_or_callable] elif name_or_callable in symplectic_integrators: return symplectic_integrators[name_or_callable] else: raise ValueError(f"Unrecognized integrator with name {name_or_callable}.") if not callable(name_or_callable): raise ValueError(f"Expected a callable, but got {type(name_or_callable)}.") return name_or_callable ================================================ FILE: physics_inspired_models/jaxline_configs.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing all of the configurations for various models.""" import copy import os from jaxline import base_config import ml_collections as collections _DATASETS_PATH_VAR_NAME = "DM_HAMILTONIAN_DYNAMICS_SUITE_DATASETS" def get_config(arg_string): """Return config object for training.""" args = arg_string.split(",") if len(args) != 3: raise ValueError("You must provide exactly three arguments separated by a " "comma - model_config_name,sweep_index,dataset_name.") model_config_name, sweep_index, dataset_name = args sweep_index = int(sweep_index) config = base_config.get_base_config() config.random_seed = 123109801 config.eval_modes = ("eval", "eval_metric") # Get the model config and the sweeps if model_config_name not in globals(): raise ValueError(f"The config name {model_config_name} does not exist in " f"jaxline_configs.py") config_and_sweep_fn = globals()[model_config_name] model_config, sweeps = config_and_sweep_fn() if not os.environ.get(_DATASETS_PATH_VAR_NAME, None): raise ValueError(f"You need to set the {_DATASETS_PATH_VAR_NAME}") dm_hamiltonian_suite_path = os.environ[_DATASETS_PATH_VAR_NAME] dataset_folder = os.path.join(dm_hamiltonian_suite_path, dataset_name) # Experiment config. Note that batch_size is per device. # In the experiments we run on 4 GPUs, so the effective batch size was 128. config.experiment_kwargs = collections.ConfigDict( dict( config=dict( dataset_folder=dataset_folder, model_kwargs=model_config, num_extrapolation_steps=60, drop_stats_containing=("neg_log_p_x", "l2_over_time", "neg_elbo"), optimizer=dict( name="adam", kwargs=dict( learning_rate=1.5e-4, b1=0.9, b2=0.999, ) ), training=dict( batch_size=32, burnin_steps=5, num_epochs=None, lagging_vae=False ), evaluation=dict( batch_size=64, ), evaluation_metric=dict( batch_size=5, batch_n=20, num_eval_metric_steps=60, max_poly_order=5, max_jacobian_score=1000, rsq_threshold=0.9, sym_threshold=0.05, evaluation_point_n=10, weight_tolerance=1e-03, max_iter=1000, cv=2, alpha_min_logspace=-4, alpha_max_logspace=-0.5, alpha_step_n=10, calculate_fully_after_steps=40000, ), evaluation_metric_mlp=dict( batch_size=64, batch_n=10000, datapoint_param_multiplier=1000, num_eval_metric_steps=60, evaluation_point_n=10, evaluation_trajectory_n=50, rsq_threshold=0.9, sym_threshold=0.05, ridge_lambda=0.01, model=dict( num_units=4, num_layers=4, activation="tanh", ), optimizer=dict( name="adam", kwargs=dict( learning_rate=1.5e-3, ) ), ), evaluation_vpt=dict( batch_size=5, batch_n=2, vpt_threshold=0.025, ) ) ) ) # Training loop config. config.training_steps = int(500000) config.interval_type = "steps" config.log_tensors_interval = 50 config.log_train_data_interval = 50 config.log_all_train_data = False config.save_checkpoint_interval = 100 config.checkpoint_dir = "/tmp/physics_inspired_models/" config.train_checkpoint_all_hosts = False config.eval_specific_checkpoint_dir = "" config.update_from_flattened_dict(sweeps[sweep_index]) return config config_prefix = "experiment_kwargs.config." model_prefix = config_prefix + "model_kwargs." default_encoder_kwargs = collections.ConfigDict(dict( conv_channels=64, num_blocks=3, blocks_depth=2, activation="leaky_relu", )) default_decoder_kwargs = collections.ConfigDict(dict( conv_channels=64, num_blocks=3, blocks_depth=2, activation="leaky_relu", )) default_latent_system_net_kwargs = collections.ConfigDict(dict( conv_channels=64, num_units=250, num_layers=5, activation="swish", )) default_latent_system_kwargs = collections.ConfigDict(dict( # Physics model arguments input_space=collections.config_dict.placeholder(str), simulation_space=collections.config_dict.placeholder(str), potential_func_form="separable_net", kinetic_func_form=collections.config_dict.placeholder(str), hgn_kinetic_func_form="separable_net", lgn_kinetic_func_form="matrix_dep_quad", parametrize_mass_matrix=collections.config_dict.placeholder(bool), hgn_parametrize_mass_matrix=False, lgn_parametrize_mass_matrix=True, mass_eps=1.0, # ODE model arguments integrator_method=collections.config_dict.placeholder(str), # RGN model arguments residual=collections.config_dict.placeholder(bool), # General arguments net_kwargs=default_latent_system_net_kwargs )) default_config_dict = collections.ConfigDict(dict( name=collections.config_dict.placeholder(str), latent_system_dim=32, latent_system_net_type="mlp", latent_system_kwargs=default_latent_system_kwargs, encoder_aggregation_type="linear_projection", decoder_de_aggregation_type=collections.config_dict.placeholder(str), encoder_kwargs=default_encoder_kwargs, decoder_kwargs=default_decoder_kwargs, has_latent_transform=False, num_inference_steps=5, num_target_steps=60, latent_training_type="forward", # Choices: overlap_by_one, no_overlap, include_inference training_data_split="overlap_by_one", objective_type="ELBO", elbo_beta_delay=0, elbo_beta_final=1.0, geco_kappa=0.001, geco_alpha=0.0, dt=0.125, )) hgn_paper_encoder_kwargs = collections.ConfigDict(dict( conv_channels=[[32, 64], [64, 64], [64]], num_blocks=3, blocks_depth=2, activation="relu", kernel_shapes=[2, 4], padding=["VALID", "SAME"], )) hgn_paper_decoder_kwargs = collections.ConfigDict(dict( conv_channels=64, num_blocks=3, blocks_depth=2, activation="tf_leaky_relu", )) hgn_paper_latent_net_kwargs = collections.ConfigDict(dict( conv_channels=[32, 64, 64, 64], num_units=250, num_layers=5, activation="softplus", kernel_shapes=[3, 2, 2, 2, 2], strides=[1, 2, 1, 2, 1], padding=["SAME", "VALID", "SAME", "VALID", "SAME"] )) hgn_paper_latent_system_kwargs = collections.ConfigDict(dict( potential_func_form="separable_net", kinetic_func_form="separable_net", parametrize_mass_matrix=False, net_kwargs=hgn_paper_latent_net_kwargs )) hgn_paper_latent_transform_kwargs = collections.ConfigDict(dict( num_layers=5, conv_channels=64, num_units=64, activation="relu", )) hgn_paper_config = copy.deepcopy(default_config_dict) hgn_paper_config.training_data_split = "include_inference" hgn_paper_config.latent_system_net_type = "conv" hgn_paper_config.encoder_aggregation_type = (collections.config_dict. placeholder(str)) hgn_paper_config.decoder_de_aggregation_type = (collections.config_dict. placeholder(str)) hgn_paper_config.latent_system_kwargs = hgn_paper_latent_system_kwargs hgn_paper_config.encoder_kwargs = hgn_paper_encoder_kwargs hgn_paper_config.decoder_kwargs = hgn_paper_decoder_kwargs hgn_paper_config.has_latent_transform = True hgn_paper_config.latent_transform_kwargs = hgn_paper_latent_transform_kwargs hgn_paper_config.num_inference_steps = 31 hgn_paper_config.num_target_steps = 0 hgn_paper_config.objective_type = "GECO" forward_overlap_by_one = { model_prefix + "latent_training_type": "forward", model_prefix + "training_data_split": "overlap_by_one", } forward_backward_include_inference = { model_prefix + "latent_training_type": "forward_backward", model_prefix + "training_data_split": "include_inference", } latent_training_sweep = [ forward_overlap_by_one, forward_backward_include_inference, ] def sym_metric_hgn_plus_plus_sweep(): """HGN++ experimental sweep for the SyMetric paper.""" model_config = copy.deepcopy(default_config_dict) model_config.name = "HGN" sweeps = list() for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "latent_training_type": "forward", model_prefix + "training_data_split": "overlap_by_one", model_prefix + "elbo_beta_final": elbo_beta_final, }) for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "latent_training_type": "forward_backward", model_prefix + "training_data_split": "include_inference", model_prefix + "elbo_beta_final": elbo_beta_final, }) return model_config, sweeps def sym_metric_hgn_sweep(): """HGN experimental sweep for the SyMetric paper.""" model_config = copy.deepcopy(hgn_paper_config) model_config.name = "HGN" return model_config, list(dict()) def benchmark_hgn_overlap_sweep(): """HGN++ sweep for the benchmark paper.""" model_config = copy.deepcopy(default_config_dict) model_config.name = "HGN" sweeps = list() for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: for train_dict in latent_training_sweep: sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "elbo_beta_final": elbo_beta_final, }) sweeps[-1].update(train_dict) return model_config, sweeps def benchmark_lgn_sweep(): """LGN sweep for the benchmark paper.""" model_config = copy.deepcopy(default_config_dict) model_config.name = "LGN" sweeps = list() for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: for train_dict in latent_training_sweep: sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "latent_system_kwargs.kinetic_func_form": "matrix_dep_pure_quad", model_prefix + "elbo_beta_final": elbo_beta_final, }) sweeps[-1].update(train_dict) return model_config, sweeps def benchmark_ode_sweep(): """Neural ODE sweep for the benchmark paper.""" model_config = copy.deepcopy(default_config_dict) model_config.name = "ODE" sweeps = list() for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: for integrator in ("adaptive", "rk2"): for train_dict in latent_training_sweep: sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "integrator_method": integrator, model_prefix + "elbo_beta_final": elbo_beta_final, }) sweeps[-1].update(train_dict) return model_config, sweeps def benchmark_rgn_sweep(): """RGN sweep for the benchmark paper.""" model_config = copy.deepcopy(default_config_dict) model_config.name = "RGN" sweeps = list() for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: for residual in (True, False): sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "latent_system_kwargs.residual": residual, model_prefix + "elbo_beta_final": elbo_beta_final, }) return model_config, sweeps def benchmark_ar_sweep(): """AR sweep for the benchmark paper.""" model_config = copy.deepcopy(default_config_dict) model_config.name = "AR" model_config.latent_dynamics_type = "vanilla" sweeps = list() for elbo_beta_final in [0.001, 0.1, 1.0, 2.0]: for ar_type in ("vanilla", "lstm", "gru"): sweeps.append({ config_prefix + "optimizer.kwargs.learning_rate": 1.5e-4, model_prefix + "latent_dynamics_type": ar_type, model_prefix + "elbo_beta_final": elbo_beta_final, }) return model_config, sweeps ================================================ FILE: physics_inspired_models/jaxline_train.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """The training script for the HGN models.""" import functools from absl import app from absl import flags from absl import logging from dm_hamiltonian_dynamics_suite import load_datasets import haiku as hk import jax import jax.numpy as jnp from jaxline import experiment from jaxline import platform import numpy as np import optax from physics_inspired_models import eval_metric from physics_inspired_models import utils from physics_inspired_models.models import common AutoregressiveModel = common.autoregressive.TeacherForcingAutoregressiveModel class HGNExperiment(experiment.AbstractExperiment): """HGN experiment.""" CHECKPOINT_ATTRS = { "_params": "params", "_state": "state", "_opt_state": "opt_state", } NON_BROADCAST_CHECKPOINT_ATTRS = { "_python_step": "python_step" } def __init__(self, mode, init_rng, config): super().__init__(mode=mode) self.mode = mode self.init_rng = init_rng self.config = config # Checkpointed experiment state. self._python_step = None self._params = None self._state = None self._opt_state = None # Input pipelines. self._train_input = None self._step_fn = None self._burnin_fn = None self._eval_input = None self._eval_batch = None self._eval_input_metric = None self._eval_input_vpt = None self._compute_gt_state_and_latents = None self._get_reconstructions = None self._get_samples = None # Construct the model model_kwargs = dict(**self.config.model_kwargs) self.model = common.construct_model(**model_kwargs) # Construct the optimizer optimizer_ctor = getattr(optax, self.config.optimizer.name) self.optimizer = optimizer_ctor(**self.config.optimizer.kwargs) self.model_init = jax.pmap(self.model.init) self.opt_init = jax.pmap(self.optimizer.init) logging.info("Number of hosts: %d/%d", jax.process_index(), jax.process_count()) logging.info("Number of local devices: %d/%d", jax.local_device_count(), jax.device_count()) def _process_stats(self, stats, axis_name=None): keys_to_remove = list() for key in stats.keys(): for dropped_keys in self.config.drop_stats_containing: if dropped_keys in key: keys_to_remove.append(key) break for key in keys_to_remove: stats.pop(key) # Take average statistics stats = jax.tree_map(utils.mean_if_not_scalar, stats) stats = utils.filter_only_scalar_stats(stats) if axis_name is not None: stats = utils.pmean_if_pmap(stats, axis_name="i") return stats # _ _ # | |_ _ __ __ _(_)_ __ # | __| '__/ _` | | '_ \ # | |_| | | (_| | | | | | # \__|_| \__,_|_|_| |_| # def step(self, global_step, rng, **unused_args): """See base class.""" if self._train_input is None: self._initialize_train() # Do a small burnin to accumulate any persistent network state if self._python_step == 0 and self._state: for _ in range(self.config.training.burnin_steps): rng, key = utils.p_split(rng, 2) batch = next(self._train_input) self._state = self._burnin_fn(self._params, self._state, key, batch) self._state = jax.tree_map( lambda x: x / self.config.training.burnin_steps, self._state) batch = next(self._train_input) self._params, self._state, self._opt_state, stats = self._step_fn( self._params, self._state, self._opt_state, rng, batch, global_step) self._python_step += 1 stats = utils.get_first(stats) logging.info("global_step: %d, %s", self._python_step, jax.tree_map(float, stats)) return stats def _initialize_train(self): self._train_input = utils.py_prefetch( load_datasets.dataset_as_iter(self._build_train_input)) self._burnin_fn = jax.pmap( self._jax_burnin_fn, axis_name="i", donate_argnums=list(range(1, 4))) self._step_fn = jax.pmap( self._jax_train_step_fn, axis_name="i", donate_argnums=list(range(5))) if self._params is not None: logging.info("Not running initialization - loaded from checkpoint.") assert self._opt_state is not None return logging.info("Initializing parameters - NOT loading from checkpoint.") # Use the same rng on all devices, so that the initialization is identical init_rng = utils.bcast_local_devices(self.init_rng) # Initialize the parameters and the optimizer batch = next(self._train_input) self._params, self._state = self.model_init(init_rng, batch) self._python_step = 0 self._opt_state = self.opt_init(self._params) def _build_train_input(self): batch_size = self.config.training.batch_size return load_datasets.load_dataset( path=self.config.dataset_folder, tfrecord_prefix="train", sub_sample_length=self.model.train_sequence_length, per_device_batch_size=batch_size, num_epochs=self.config.training.num_epochs, drop_remainder=True, multi_device=True, shuffle=True, shuffle_buffer=100 * batch_size, cache=False, keys_to_preserve=["image"], ) def _jax_train_step_fn(self, params, state, opt_state, rng_key, batch, step): # The loss and the stats are averaged over the batch def loss_func(*args): outs = self.model.training_objectives(*args, is_training=True) # Average everything over the batch return jax.tree_map(utils.mean_if_not_scalar, outs) # Compute gradients grad_fn = jax.grad(loss_func, has_aux=True) grads, (state, stats, _) = grad_fn(params, state, rng_key, batch, step) # Average everything over the devices (e.g. average and sync) grads, state = utils.pmean_if_pmap((grads, state), axis_name="i") # Apply updates updates, opt_state = self.optimizer.update(grads, opt_state) params = optax.apply_updates(params, updates) return params, state, opt_state, self._process_stats(stats, axis_name="i") def _jax_burnin_fn(self, params, state, rng_key, batch): _, (new_state, _, _) = self.model.training_objectives( params, state, rng_key, batch, jnp.zeros([]), is_training=True) new_state = jax.tree_map(utils.mean_if_not_scalar, new_state) new_state = utils.pmean_if_pmap(new_state, axis_name="i") new_state = hk.data_structures.to_mutable_dict(new_state) new_state = hk.data_structures.to_immutable_dict(new_state) return jax.tree_map(jnp.add, new_state, state) # _ # _____ ____ _| | # / _ \ \ / / _` | | # | __/\ V / (_| | | # \___| \_/ \__,_|_| # def evaluate(self, global_step, rng, writer): """See base class.""" logging.info("Starting evaluation.") if self.mode == "eval": if self._eval_input is None: self._initialize_eval() self._initialize_eval_vpt() key1, _ = utils.p_split(rng, 2) stats = utils.to_numpy(self._eval_epoch(global_step, key1)) stats.update(utils.to_numpy(self._eval_epoch_vpt(global_step, rng))) elif self.mode == "eval_metric": if self._eval_input_metric is None: self._initialize_eval_metric() stats = utils.to_numpy(self._eval_epoch_metric(global_step, rng)) else: raise NotImplementedError() logging.info("Finished evaluation.") return stats def _eval_epoch(self, step, rng): """Evaluates an epoch.""" accumulator = utils.MultiBatchAccumulator() for batch in self._eval_input(): rng, key = utils.p_split(rng, 2) stats, num_samples = utils.get_first( self._eval_batch(self._params, self._state, key, batch, step) ) accumulator.add(stats, num_samples) return accumulator.value() def _eval_epoch_metric(self, step, rng): """Evaluates an epoch.""" # To prevent from calculating SyMetric early on in training where a large # polynomial expansion is likely to be required and the score is likely # to be bad anyway, we only compute using a single batch to save compute if step[0] > self.config.evaluation_metric.calculate_fully_after_steps: batch_n = self.config.evaluation_metric.batch_n else: batch_n = 1 logging.info("Step: %d, batch_n: %d", step[0], batch_n) accumulator = utils.MultiBatchAccumulator() for _ in range(self.config.evaluation_metric.batch_n): batch = next(self._eval_input_metric) rng, key = utils.p_split(rng, 2) stats = self._eval_batch_metric( self._params, key, batch, eval_seq_len=self.config.evaluation_metric.num_eval_metric_steps, ) accumulator.add(stats, 1) stats = utils.flatten_dict(accumulator.value()) max_keys = ("sym", "SyMetric") for k, v in utils.flatten_dict(accumulator.max()).items(): if any(m in k for m in max_keys): stats[k + "_max"] = v min_keys = ("sym", "SyMetric") for k, v in utils.flatten_dict(accumulator.min()).items(): if any(m in k for m in min_keys): stats[k + "_min"] = v sum_keys = ("sym", "SyMetric") for k, v in utils.flatten_dict(accumulator.sum()).items(): if any(m in k for m in sum_keys): stats[k + "_sum"] = v return stats def _eval_epoch_vpt(self, step, rng): """Evaluates an epoch.""" accumulator = utils.MultiBatchAccumulator() for _ in range(self.config.evaluation_vpt.batch_n): batch = next(self._eval_input_vpt) rng, key = utils.p_split(rng, 2) stats = self._eval_batch_vpt(self._params, self._state, key, batch) accumulator.add(stats, 1) stats = utils.flatten_dict(accumulator.value()) return stats def _reconstruct_and_align(self, rng_key, full_trajectory, prefix, suffix): if hasattr(self.model, "training_data_split"): if self.model.training_data_split == "overlap_by_one": reconstruction_skip = self.model.num_inference_steps - 1 elif self.model.training_data_split == "no_overlap": reconstruction_skip = self.model.num_inference_steps elif self.model.training_data_split == "include_inference": reconstruction_skip = 0 else: raise NotImplementedError() else: reconstruction_skip = 1 full_forward_targets = jax.tree_map( lambda x: x[:, :, reconstruction_skip:], full_trajectory) full_backward_targets = jax.tree_map( lambda x: x[:, :, :x.shape[2] - reconstruction_skip], full_trajectory) train_targets_length = (self.model.train_sequence_length - reconstruction_skip) full_targets_length = full_forward_targets.shape[2] # Fully unroll the model and reconstruct the whole sequence, take the mean full_prediction = self._get_reconstructions(self._params, full_trajectory, rng_key, prefix == "forward", True).mean() full_targets = (full_forward_targets if prefix == "forward" else full_backward_targets) # In cases where the model can run backwards it is possible to reconstruct # parts which were indented to be skipped, so here we take care of that. if full_prediction.mean().shape[2] > full_targets_length: if prefix == "forward": full_prediction = jax.tree_map( lambda x: x[:, :, -full_targets_length:], full_prediction) else: full_prediction = jax.tree_map( lambda x: x[:, :, :full_targets_length], full_prediction) # Based on the prefix and suffix fetch correct predictions and targets if prefix == "forward" and suffix == "train": predict, targets = jax.tree_map( lambda x: x[:, :, :train_targets_length], (full_prediction, full_targets)) elif prefix == "forward" and suffix == "extrapolation": predict, targets = jax.tree_map( lambda x: x[:, :, train_targets_length:], (full_prediction, full_targets)) elif prefix == "backward" and suffix == "train": predict, targets = jax.tree_map( lambda x: x[:, :, -train_targets_length:], (full_prediction, full_targets)) elif prefix == "backward" and suffix == "extrapolation": predict, targets = jax.tree_map( lambda x: x[:, :, :-train_targets_length], (full_prediction, full_targets)) else: predict, targets = full_prediction, full_targets return predict, targets def _initialize_eval(self): length = (self.model.train_sequence_length + self.config.num_extrapolation_steps) batch_size = self.config.evaluation.batch_size self._eval_input = load_datasets.dataset_as_iter( load_datasets.load_dataset, path=self.config.dataset_folder, tfrecord_prefix="test", sub_sample_length=length, per_device_batch_size=batch_size, num_epochs=1, drop_remainder=False, shuffle=False, cache=False, keys_to_preserve=["image"] ) self._eval_batch = jax.pmap( self._jax_eval_step_fn, axis_name="i") self._get_reconstructions = jax.pmap( self.model.reconstruct, axis_name="i", static_broadcasted_argnums=(3, 4)) if isinstance(self.model, common.deterministic_vae.DeterministicLatentsGenerativeModel): self._get_samples = jax.pmap( self.model.sample_trajectories_from_prior, static_broadcasted_argnums=(1, 3, 4)) def _initialize_eval_metric(self): self._eval_input_metric = utils.py_prefetch( load_datasets.dataset_as_iter( load_datasets.load_dataset, path=self.config.dataset_folder, tfrecord_prefix="test", sub_sample_length=None, per_device_batch_size=self.config.evaluation_metric.batch_size, num_epochs=None, drop_remainder=False, cache=False, shuffle=False, keys_to_preserve=["image", "x"] ) ) def compute_gt_state_and_latents(*args): # Note that the `dt` has to be passed as a kwargs argument if len(args) == 4: return self.model.gt_state_and_latents(*args[:4]) elif len(args) == 5: return self.model.gt_state_and_latents(*args[:4], dt=args[4]) else: raise NotImplementedError() self._compute_gt_state_and_latents = jax.pmap( compute_gt_state_and_latents, static_broadcasted_argnums=3) def _initialize_eval_vpt(self): dataset_name = self.config.dataset_folder.split("/")[-1] dataset_folder = self.config.dataset_folder if dataset_name in ("hnn_mass_spring_dt_0_05", "mass_spring_colors_v1_dt_0_05", "hnn_pendulum_dt_0_05", "pendulum_colors_v1_dt_0_05", "matrix_rps_dt_0_1", "matrix_mp_dt_0_1"): dataset_folder += "_long_trajectory" self._eval_input_vpt = utils.py_prefetch( load_datasets.dataset_as_iter( load_datasets.load_dataset, path=dataset_folder, tfrecord_prefix="test", sub_sample_length=None, per_device_batch_size=self.config.evaluation_vpt.batch_size, num_epochs=None, drop_remainder=False, cache=False, shuffle=False, keys_to_preserve=["image", "x"] ) ) self._get_reconstructions = jax.pmap( self.model.reconstruct, axis_name="i", static_broadcasted_argnums=(3, 4)) def _jax_eval_step_fn(self, params, state, rng_key, batch, step): # We care only about the statistics _, (_, stats, _) = self.model.training_objectives(params, state, rng_key, batch, step, is_training=False) # Compute the full batch size batch_size = jax.tree_flatten(batch)[0][0].shape[0] batch_size = utils.psum_if_pmap(batch_size, axis_name="i") return self._process_stats(stats, axis_name="i"), batch_size def _eval_batch_vpt(self, params, state, rng_key, batch): full_trajectory = utils.extract_image(batch) prefixes = ("forward", "backward") if self.model.can_run_backwards else ("forward",) stats = dict() vpt_abs_scores = [] vpt_rel_scores = [] seq_length = None for prefix in prefixes: reconstruction, gt_images = self._reconstruct_and_align( rng_key, full_trajectory, prefix, "extrapolation") seq_length = gt_images.shape[2] mse_norm = np.mean( (gt_images - reconstruction)**2, axis=(3, 4, 5)) / np.mean( gt_images**2, axis=(3, 4, 5)) vpt_scores = [] for i in range(mse_norm.shape[1]): vpt_ind = np.argwhere( mse_norm[:, i:i + 1, :] > self.config.evaluation_vpt.vpt_threshold) if vpt_ind.shape[0] > 0: vpt_ind = vpt_ind[0][2] else: vpt_ind = mse_norm.shape[-1] vpt_scores.append(vpt_ind) vpt_abs_scores.append(np.median(vpt_scores)) vpt_rel_scores.append(np.median(vpt_scores) / seq_length) scores = {"vpt_abs": vpt_abs_scores[-1], "vpt_rel": vpt_rel_scores[-1]} scores = utils.to_numpy(scores) scores = utils.filter_only_scalar_stats(scores) stats[prefix] = scores stats["vpt_abs"] = utils.to_numpy(np.mean(vpt_abs_scores)) stats["vpt_rel"] = utils.to_numpy(np.mean(vpt_rel_scores)) logging.info("vpt_abs: %s, seq_length: %d}", str(vpt_abs_scores), seq_length) return stats def _eval_batch_metric(self, params, rng, batch, eval_seq_len=200): # Initialise alpha values for Lasso regression alpha_sweep = np.logspace(self.config.evaluation_metric.alpha_min_logspace, self.config.evaluation_metric.alpha_max_logspace, self.config.evaluation_metric.alpha_step_n) trajectory_n = self.config.evaluation_metric.batch_size subsection = f"{trajectory_n}tr" stats = dict() # Get data (gt_trajectory, model_trajectory, informative_dim_n) = self._get_gt_and_model_phase_space_for_eval( params, rng, batch, eval_seq_len) # Calculate SyMetric scores if informative_dim_n > 1: scores, *_ = eval_metric.calculate_symetric_score( gt_trajectory, model_trajectory, self.config.evaluation_metric.max_poly_order, self.config.evaluation_metric.max_jacobian_score, self.config.evaluation_metric.rsq_threshold, self.config.evaluation_metric.sym_threshold, self.config.evaluation_metric.evaluation_point_n, trajectory_n=trajectory_n, weight_tolerance=self.config.evaluation_metric.weight_tolerance, alpha_sweep=alpha_sweep, max_iter=self.config.evaluation_metric.max_iter, cv=self.config.evaluation_metric.cv) scores["unmasked_latents"] = informative_dim_n scores = utils.to_numpy(scores) scores = utils.filter_only_scalar_stats(scores) stats[subsection] = scores else: scores = { "poly_exp_order": self.config.evaluation_metric.max_poly_order, "rsq": 0, "sym": self.config.evaluation_metric.max_jacobian_score, "SyMetric": 0.0, "unmasked_latents": informative_dim_n } scores = utils.to_numpy(scores) scores = utils.filter_only_scalar_stats(scores) stats[subsection] = scores return stats def _get_gt_and_model_phase_space_for_eval(self, params, rng, batch, eval_seq_len): # Get data gt_data, model_data, z0 = utils.stack_device_dim_into_batch( self._compute_gt_state_and_latents(params, rng, batch, eval_seq_len) ) if isinstance(self.model, AutoregressiveModel): # These models return the `z` for the whole sequence z0 = z0[:, 0] # If latent space is image like, reshape it down to vector if self.model.latent_system_net_type == "conv": z0 = jax.tree_map(utils.reshape_latents_conv_to_flat, z0) model_data = jax.tree_map( lambda x: utils.reshape_latents_conv_to_flat(x, axis_n_to_keep=2), model_data) # Create mask to get rid of uninformative latents latent_mask = eval_metric.create_latent_mask(z0) informative_dim_n = np.sum(latent_mask) model_data = model_data[:, :, latent_mask] logging.info("Masking out model data, leaving dim_n=%d dimensions.", model_data.shape[-1]) gt_trajectory = np.reshape( gt_data, [np.product(gt_data.shape[:-1]), gt_data.shape[-1]] ) model_trajectory = np.reshape(model_data, [ np.product(model_data.shape[:-1]), model_data.shape[-1] ]) # Standardize data gt_trajectory = eval_metric.standardize_data(gt_trajectory) model_trajectory = eval_metric.standardize_data(model_trajectory) return gt_trajectory, model_trajectory, informative_dim_n if __name__ == "__main__": flags.mark_flag_as_required("config") logging.set_stderrthreshold(logging.INFO) app.run(functools.partial(platform.main, HGNExperiment)) ================================================ FILE: physics_inspired_models/launch_all.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Script to execute a single configuration on all datasets. if [[ "$#" -eq 2 ]]; then readonly CONFIG_NAME="$1" readonly NUM_SWEEPS="$2" else echo "You must provide exactly two arguments - the configuration name and " \ "how many sweeps it contains. For example:" echo "./launch_all.sh sym_metric_hgn_plus_plus_sweep 1" exit 2 fi DATASETS=( "toy_physics/mass_spring" "toy_physics/mass_spring_colors" "toy_physics/mass_spring_colors_friction" "toy_physics/pendulum" "toy_physics/pendulum_colors" "toy_physics/pendulum_colors_friction" "toy_physics/two_body" "toy_physics/two_body_colors" "toy_physics/double_pendulum" "toy_physics/double_pendulum_colors" "toy_physics/double_pendulum_colors_friction" "molecular_dynamics/lj_4" "molecular_dynamics/lj_16" "multi_agent/rock_paper_scissors" "multi_agent/matching_pennies" "mujoco_room/circle" "mujoco_room/spiral" ) readonly DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" for dataset in "${DATASETS[@]}"; do "${DIR}/launch_local.sh" "${CONFIG_NAME}" "${NUM_SWEEPS}" "${dataset}" done ================================================ FILE: physics_inspired_models/launch_local.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # A script to execute a single configuration name on a given dataset. if [[ "$#" -eq 3 ]]; then readonly CONFIG_NAME="$1" readonly NUM_SWEEPS="$2" readonly DATASET="$3" else echo "You must provide exactly three arguments - the configuration name, " \ "the number of sweeps it contains and the dataset name. For example:" echo "./launch_local.sh sym_metric_hgn_plus_plus_sweep 1 " \ "toy_physics/mass_spring" exit 2 fi echo "Running with config ${CONFIG_NAME} on ${DATASET}." readonly EXPERIMENT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" readonly TRAIN_FILE="${EXPERIMENT_DIR}/jaxline_train.py" readonly CONFIG_FILE="${EXPERIMENT_DIR}/jaxline_configs.py" for sweep_id in $(seq 0 $((NUM_SWEEPS - 1))); do python3 "${TRAIN_FILE}" \ --config="${CONFIG_FILE}:${CONFIG_NAME},${sweep_id},${DATASET}" \ --jaxline_mode="train" \ --logtostderr done ================================================ FILE: physics_inspired_models/metrics.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing code for computing various metrics for training and evaluation.""" from typing import Callable, Dict, Optional import distrax import haiku as hk import jax import jax.nn as nn import jax.numpy as jnp import numpy as np import physics_inspired_models.utils as utils _ReconstructFunc = Callable[[utils.Params, jnp.ndarray, jnp.ndarray, bool], distrax.Distribution] def calculate_small_latents(dist, threshold=0.5): """Calculates the number of active latents by thresholding the variance of their distribution.""" if not isinstance(dist, distrax.Normal): raise NotImplementedError() latent_means = dist.mean() latent_stddevs = dist.variance() small_latents = jnp.sum( (latent_stddevs < threshold) & (jnp.abs(latent_means) > 0.1), axis=1) return jnp.mean(small_latents) def compute_scale( targets: jnp.ndarray, rescale_by: str ) -> jnp.ndarray: """Compute a scaling factor based on targets shape and the rescale_by argument.""" if rescale_by == "pixels_and_time": return jnp.asarray(np.prod(targets.shape[-4:])) elif rescale_by is not None: raise ValueError(f"Unrecognized rescale_by={rescale_by}.") else: return jnp.ones([]) def compute_data_domain_stats( p_x: distrax.Distribution, targets: jnp.ndarray ) -> Dict[str, jnp.ndarray]: """Compute several statistics in the data domain, such as L2 and negative log likelihood.""" axis = tuple(range(2, targets.ndim)) l2_over_time = jnp.sum((p_x.mean() - targets) ** 2, axis=axis) l2 = jnp.sum(l2_over_time, axis=1) # Calculate relative L2 normalised by image "length" norm_factor = jnp.sum(targets**2, axis=(2, 3, 4)) l2_over_time_norm = l2_over_time / norm_factor l2_norm = jnp.sum(l2_over_time_norm, axis=1) # Compute negative log-likelihood under p(x) neg_log_p_x_over_time = - np.sum(p_x.log_prob(targets), axis=axis) neg_log_p_x = jnp.sum(neg_log_p_x_over_time, axis=1) return dict( neg_log_p_x_over_time=neg_log_p_x_over_time, neg_log_p_x=neg_log_p_x, l2_over_time=l2_over_time, l2=l2, l2_over_time_norm=l2_over_time_norm, l2_norm=l2_norm, ) def compute_vae_stats( neg_log_p_x: jnp.ndarray, rng: jnp.ndarray, q_z: distrax.Distribution, prior: distrax.Distribution ) -> Dict[str, jnp.ndarray]: """Compute the KL(q(z|x)||p(z)) and the negative ELBO, which are used for VAE models.""" # Compute the KL kl = distrax.estimate_kl_best_effort(q_z, prior, rng_key=rng, num_samples=1) kl = np.sum(kl, axis=list(range(1, kl.ndim))) # Sanity check assert kl.shape == neg_log_p_x.shape return dict( kl=kl, neg_elbo=neg_log_p_x + kl, ) def training_statistics( p_x: distrax.Distribution, targets: jnp.ndarray, rescale_by: Optional[str], rng: Optional[jnp.ndarray] = None, q_z: Optional[distrax.Distribution] = None, prior: Optional[distrax.Distribution] = None, p_x_learned_sigma: bool = False ) -> Dict[str, jnp.ndarray]: """Computes various statistics we track during training.""" stats = compute_data_domain_stats(p_x, targets) if rng is not None and q_z is not None and prior is not None: stats.update(compute_vae_stats(stats["neg_log_p_x"], rng, q_z, prior)) else: assert rng is None and q_z is None and prior is None # Rescale these stats accordingly scale = compute_scale(targets, rescale_by) # Note that "_over_time" stats are getting normalised by time here stats = jax.tree_map(lambda x: x / scale, stats) if p_x_learned_sigma: stats["p_x_sigma"] = p_x.variance().reshape([-1])[0] # pytype: disable=attribute-error # numpy-scalars if q_z is not None: stats["small_latents"] = calculate_small_latents(q_z) return stats def evaluation_only_statistics( reconstruct_func: _ReconstructFunc, params: hk.Params, inputs: jnp.ndarray, rng: jnp.ndarray, rescale_by: str, can_run_backwards: bool, train_sequence_length: int, reconstruction_skip: int, p_x_learned_sigma: bool = False, ) -> Dict[str, jnp.ndarray]: """Computes various statistics we track only during evaluation.""" full_trajectory = utils.extract_image(inputs) prefixes = ("forward", "backward") if can_run_backwards else ("forward",) full_forward_targets = jax.tree_map( lambda x: x[:, reconstruction_skip:], full_trajectory) full_backward_targets = jax.tree_map( lambda x: x[:, :x.shape[1]-reconstruction_skip], full_trajectory) train_targets_length = train_sequence_length - reconstruction_skip full_targets_length = full_forward_targets.shape[1] stats = dict() keys = () for prefix in prefixes: # Fully unroll the model and reconstruct the whole sequence full_prediction = reconstruct_func(params, full_trajectory, rng, prefix == "forward") assert isinstance(full_prediction, distrax.Normal) full_targets = (full_forward_targets if prefix == "forward" else full_backward_targets) # In cases where the model can run backwards it is possible to reconstruct # parts which were indented to be skipped, so here we take care of that. if full_prediction.mean().shape[1] > full_targets_length: if prefix == "forward": full_prediction = jax.tree_map(lambda x: x[:, -full_targets_length:], full_prediction) else: full_prediction = jax.tree_map(lambda x: x[:, :full_targets_length], full_prediction) # Based on the prefix and suffix fetch correct predictions and targets for suffix in ("train", "extrapolation", "full"): if prefix == "forward" and suffix == "train": predict, targets = jax.tree_map(lambda x: x[:, :train_targets_length], (full_prediction, full_targets)) elif prefix == "forward" and suffix == "extrapolation": predict, targets = jax.tree_map(lambda x: x[:, train_targets_length:], (full_prediction, full_targets)) elif prefix == "backward" and suffix == "train": predict, targets = jax.tree_map(lambda x: x[:, -train_targets_length:], (full_prediction, full_targets)) elif prefix == "backward" and suffix == "extrapolation": predict, targets = jax.tree_map(lambda x: x[:, :-train_targets_length], (full_prediction, full_targets)) else: predict, targets = full_prediction, full_targets # Compute train statistics train_stats = training_statistics(predict, targets, rescale_by, p_x_learned_sigma=p_x_learned_sigma) for key, value in train_stats.items(): stats[prefix + "_" + suffix + "_" + key] = value # Copy all stats keys keys = tuple(train_stats.keys()) # Make a combined metric summing forward and backward if can_run_backwards: # Also compute for suffix in ("train", "extrapolation", "full"): for key in keys: forward = stats["forward_" + suffix + "_" + key] backward = stats["backward_" + suffix + "_" + key] combined = (forward + backward) / 2 stats["combined_" + suffix + "_" + key] = combined return stats def geco_objective( l2_loss, kl, alpha, kappa, constraint_ema, lambda_var, is_training ) -> Dict[str, jnp.ndarray]: """Computes the objective for GECO and some of it statistics used ofr updates.""" # C_t constraint_t = l2_loss - kappa if is_training: # We update C_ma only during training constraint_ema = alpha * constraint_ema + (1 - alpha) * constraint_t lagrange = nn.softplus(lambda_var) lagrange = jnp.broadcast_to(lagrange, constraint_ema.shape) # Add this special op for getting all gradients correct loss = utils.geco_lagrange_product(lagrange, constraint_ema, constraint_t) return dict( loss=loss + kl, geco_multiplier=lagrange, geco_constraint=constraint_t, geco_constraint_ema=constraint_ema ) def elbo_objective(neg_log_p_x, kl, final_beta, beta_delay, step): """Computes objective for optimizing the Evidence Lower Bound (ELBO).""" if beta_delay == 0: beta = final_beta else: delayed_beta = jnp.minimum(float(step) / float(beta_delay), 1.0) beta = delayed_beta * final_beta return dict( loss=neg_log_p_x + beta * kl, elbo_beta=beta ) ================================================ FILE: physics_inspired_models/models/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: physics_inspired_models/models/autoregressive.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module for all autoregressive models.""" import functools from typing import Any, Dict, Mapping, Optional, Sequence, Tuple, Union import distrax import haiku as hk from jax import lax import jax.numpy as jnp import jax.random as jnr import physics_inspired_models.metrics as metrics import physics_inspired_models.models.base as base import physics_inspired_models.models.networks as nets import physics_inspired_models.utils as utils class TeacherForcingAutoregressiveModel(base.SequenceModel): """A standard autoregressive model trained via teacher forcing.""" def __init__( self, latent_system_dim: int, latent_system_net_type: str, latent_system_kwargs: Dict[str, Any], latent_dynamics_type: str, encoder_aggregation_type: Optional[str], decoder_de_aggregation_type: Optional[str], encoder_kwargs: Dict[str, Any], decoder_kwargs: Dict[str, Any], num_inference_steps: int, num_target_steps: int, name: Optional[str] = None, **kwargs ): # Remove any parameters from vae models encoder_kwargs = dict(**encoder_kwargs) encoder_kwargs["distribution_name"] = None if kwargs.get("has_latent_transform", False): raise ValueError("We do not support AR models with latent transform.") super().__init__( can_run_backwards=False, latent_system_dim=latent_system_dim, latent_system_net_type=latent_system_net_type, latent_system_kwargs=latent_system_kwargs, encoder_aggregation_type=encoder_aggregation_type, decoder_de_aggregation_type=decoder_de_aggregation_type, encoder_kwargs=encoder_kwargs, decoder_kwargs=decoder_kwargs, num_inference_steps=num_inference_steps, num_target_steps=num_target_steps, name=name, **kwargs ) self.latent_dynamics_type = latent_dynamics_type # Arguments checks if self.latent_system_net_type != "mlp": raise ValueError("Currently we do not support non-mlp AR models.") def recurrence_function(sequence, initial_state=None): core = nets.make_flexible_recurrent_net( core_type=latent_dynamics_type, net_type=latent_system_net_type, output_dims=self.latent_system_dim, **self.latent_system_kwargs["net_kwargs"]) initial_state = initial_state or core.initial_state(sequence.shape[1]) core(sequence[0], initial_state) return hk.dynamic_unroll(core, sequence, initial_state) self.recurrence = hk.transform(recurrence_function) def process_inputs_for_encoder(self, x: jnp.ndarray) -> jnp.ndarray: return x def process_latents_for_dynamics(self, z: jnp.ndarray) -> jnp.ndarray: return z def process_latents_for_decoder(self, z: jnp.ndarray) -> jnp.ndarray: return z @property def inferred_index(self) -> int: return self.num_inference_steps - 1 @property def train_sequence_length(self) -> int: return self.num_target_steps def train_data_split( self, images: jnp.ndarray ) -> Tuple[jnp.ndarray, jnp.ndarray, Mapping[str, Any]]: images = images[:, :self.train_sequence_length] inference_data = images[:, :-1] target_data = images[:, 1:] return inference_data, target_data, dict( num_steps_forward=1, num_steps_backward=0, include_z0=False) def unroll_without_inputs( self, params: utils.Params, rng: jnp.ndarray, x_init: jnp.ndarray, h_init: jnp.ndarray, num_steps: int, is_training: bool ) -> Tuple[Tuple[distrax.Distribution, jnp.ndarray], Any]: if num_steps < 1: raise ValueError("`num_steps` must be at least 1.") def step_fn(carry, key): x_last, h_last = carry enc_key, dec_key = jnr.split(key) z_in_next = self.encoder.apply(params, enc_key, x_last, is_training=is_training) z_next, h_next = self.recurrence.apply(params, None, z_in_next[None], h_last) p_x_next = self.decode_latents(params, dec_key, z_next[0], is_training=is_training) return (p_x_next.mean(), h_next), (p_x_next, z_next[0]) return lax.scan( step_fn, init=(x_init, h_init), xs=jnr.split(rng, num_steps) ) def unroll_latent_dynamics( self, z: jnp.ndarray, params: utils.Params, key: jnp.ndarray, num_steps_forward: int, num_steps_backward: int, include_z0: bool, is_training: bool, **kwargs: Any ) -> Tuple[jnp.ndarray, Mapping[str, jnp.ndarray]]: init_key, unroll_key, dec_key = jnr.split(key, 3) if num_steps_backward != 0: raise ValueError("This model can not run backwards.") # Change 'z' time dimension to be first z = jnp.swapaxes(z, 0, 1) # Run recurrent model on inputs z_0, h_0 = self.recurrence.apply(params, init_key, z) if num_steps_forward == 1: z_t = z_0 elif num_steps_forward > 1: p_x_0 = self.decode_latents(params, dec_key, z_0[-1], is_training=False) _, (_, z_t) = self.unroll_without_inputs( params=params, rng=unroll_key, x_init=p_x_0.mean(), h_init=h_0, num_steps=num_steps_forward-1, is_training=is_training ) z_t = jnp.concatenate([z_0, z_t], axis=0) else: raise ValueError("num_steps_forward should be at least 1.") # Make time dimension second return jnp.swapaxes(z_t, 0, 1), dict() def _models_core( self, params: utils.Params, keys: jnp.ndarray, image_data: jnp.ndarray, is_training: bool, **unroll_kwargs: Any ) -> Tuple[distrax.Distribution, jnp.ndarray, jnp.ndarray]: enc_key, _, transform_key, unroll_key, dec_key, _ = keys # Calculate latent input representation inference_data = self.process_inputs_for_encoder(image_data) z_raw = self.encoder.apply(params, enc_key, inference_data, is_training=is_training) # Apply latent transformation (should be identity) z0 = self.apply_latent_transform(params, transform_key, z_raw, is_training=is_training) z0 = self.process_latents_for_dynamics(z0) # Calculate latent output representation decoder_z, _ = self.unroll_latent_dynamics( z=z0, params=params, key=unroll_key, is_training=is_training, **unroll_kwargs ) decoder_z = self.process_latents_for_decoder(decoder_z) # Compute p(x|z) p_x = self.decode_latents(params, dec_key, decoder_z, is_training=is_training) return p_x, z0, decoder_z def training_objectives( # pytype: disable=signature-mismatch # jax-ndarray self, params: hk.Params, state: hk.State, rng: jnp.ndarray, inputs: jnp.ndarray, step: jnp.ndarray, is_training: bool = True, use_mean_for_eval_stats: bool = True ) -> Tuple[jnp.ndarray, Sequence[Dict[str, jnp.ndarray]]]: """Computes the training objective and any supporting stats.""" # Split all rng keys keys = jnr.split(rng, 6) # Process training data images = utils.extract_image(inputs) image_data, target_data, unroll_kwargs = self.train_data_split(images) p_x, _, _ = self._models_core( params=params, keys=keys, image_data=image_data, is_training=is_training, **unroll_kwargs ) # Compute training statistics stats = metrics.training_statistics( p_x=p_x, targets=target_data, rescale_by=self.rescale_by, p_x_learned_sigma=self.decoder_kwargs.get("learned_sigma", False) ) # The loss is just the negative log-likelihood (e.g. the L2 loss) stats["loss"] = stats["neg_log_p_x"] if not is_training: # Optionally add the evaluation stats when not training # Add also the evaluation statistics # We need to be able to set `use_mean = False` for some of the tests stats.update(metrics.evaluation_only_statistics( reconstruct_func=functools.partial( self.reconstruct, use_mean=use_mean_for_eval_stats), params=params, inputs=inputs, rng=rng, rescale_by=self.rescale_by, can_run_backwards=self.can_run_backwards, train_sequence_length=self.train_sequence_length, reconstruction_skip=1, p_x_learned_sigma=self.decoder_kwargs.get("learned_sigma", False) )) return stats["loss"], (dict(), stats, dict()) def reconstruct( self, params: utils.Params, inputs: jnp.ndarray, rng: jnp.ndarray, forward: bool, use_mean: bool = True, ) -> distrax.Distribution: """Reconstructs the input sequence.""" if not forward: raise ValueError("This model can not run backwards.") images = utils.extract_image(inputs) image_data = images[:, :self.num_inference_steps] return self._models_core( params=params, keys=jnr.split(rng, 6), image_data=image_data, is_training=False, num_steps_forward=images.shape[1] - self.num_inference_steps, num_steps_backward=0, include_z0=False, )[0] def gt_state_and_latents( # pytype: disable=signature-mismatch # jax-ndarray self, params: hk.Params, rng: jnp.ndarray, inputs: Dict[str, jnp.ndarray], seq_length: int, is_training: bool = False, unroll_direction: str = "forward", **kwargs: Dict[str, Any] ) -> Tuple[jnp.ndarray, jnp.ndarray, Union[distrax.Distribution, jnp.ndarray]]: """Computes the ground state and matching latents.""" assert unroll_direction == "forward" images = utils.extract_image(inputs) gt_state = utils.extract_gt_state(inputs) image_data = images[:, :self.num_inference_steps] gt_state = gt_state[:, 1:seq_length + 1] _, z_in, z_out = self._models_core( params=params, keys=jnr.split(rng, 6), image_data=image_data, is_training=False, num_steps_forward=images.shape[1] - self.num_inference_steps, num_steps_backward=0, include_z0=False, ) return gt_state, z_out, z_in def _init_non_model_params_and_state( self, rng: jnp.ndarray ) -> Tuple[Dict[str, jnp.ndarray], Dict[str, jnp.ndarray]]: return dict(), dict() def _init_latent_system( # pytype: disable=signature-mismatch # jax-ndarray self, rng: jnp.ndarray, z: jnp.ndarray, **kwargs: Any ) -> utils.Params: return self.recurrence.init(rng, z) ================================================ FILE: physics_inspired_models/models/base.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing the base abstract classes for sequence models.""" import abc from typing import Any, Dict, Generic, Mapping, Optional, Sequence, Tuple, TypeVar, Union from absl import logging import distrax import haiku as hk import jax import jax.numpy as jnp import jax.random as jnr from physics_inspired_models import utils from physics_inspired_models.models import networks T = TypeVar("T") class SequenceModel(abc.ABC, Generic[T]): """An abstract class for sequence models.""" def __init__( self, can_run_backwards: bool, latent_system_dim: int, latent_system_net_type: str, latent_system_kwargs: Dict[str, Any], encoder_aggregation_type: Optional[str], decoder_de_aggregation_type: Optional[str], encoder_kwargs: Dict[str, Any], decoder_kwargs: Dict[str, Any], num_inference_steps: int, num_target_steps: int, name: str, latent_spatial_shape: Optional[Tuple[int, int]] = (4, 4), has_latent_transform: bool = False, latent_transform_kwargs: Optional[Dict[str, Any]] = None, rescale_by: Optional[str] = "pixels_and_time", data_format: str = "NHWC", **unused_kwargs ): # Arguments checks encoder_kwargs = encoder_kwargs or dict() decoder_kwargs = decoder_kwargs or dict() # Set the decoder de-aggregation type the "same" type as the encoder if not # provided if (decoder_de_aggregation_type is None and encoder_aggregation_type is not None): if encoder_aggregation_type == "linear_projection": decoder_de_aggregation_type = "linear_projection" elif encoder_aggregation_type in ("mean", "max"): decoder_de_aggregation_type = "tile" else: raise ValueError(f"Unrecognized encoder_aggregation_type=" f"{encoder_aggregation_type}") if latent_system_net_type == "conv": if encoder_aggregation_type is not None: raise ValueError("When the latent system is convolutional, the encoder " "aggregation type should be None.") if decoder_de_aggregation_type is not None: raise ValueError("When the latent system is convolutional, the decoder " "aggregation type should be None.") else: if encoder_aggregation_type is None: raise ValueError("When the latent system is not convolutional, the " "you must provide an encoder aggregation type.") if decoder_de_aggregation_type is None: raise ValueError("When the latent system is not convolutional, the " "you must provide an decoder aggregation type.") if has_latent_transform and latent_transform_kwargs is None: raise ValueError("When using latent transformation you have to provide " "the latent_transform_kwargs argument.") if unused_kwargs: logging.warning("Unused kwargs: %s", str(unused_kwargs)) super().__init__(**unused_kwargs) self.can_run_backwards = can_run_backwards self.latent_system_dim = latent_system_dim self.latent_system_kwargs = latent_system_kwargs self.latent_system_net_type = latent_system_net_type self.latent_spatial_shape = latent_spatial_shape self.num_inference_steps = num_inference_steps self.num_target_steps = num_target_steps self.rescale_by = rescale_by self.data_format = data_format self.name = name # Encoder self.encoder_kwargs = encoder_kwargs self.encoder = hk.transform( lambda *args, **kwargs: networks.SpatialConvEncoder( # pylint: disable=unnecessary-lambda,g-long-lambda latent_dim=latent_system_dim, aggregation_type=encoder_aggregation_type, data_format=data_format, name="Encoder", **encoder_kwargs )(*args, **kwargs)) # Decoder self.decoder_kwargs = decoder_kwargs self.decoder = hk.transform( lambda *args, **kwargs: networks.SpatialConvDecoder( # pylint: disable=unnecessary-lambda,g-long-lambda initial_spatial_shape=self.latent_spatial_shape, de_aggregation_type=decoder_de_aggregation_type, data_format=data_format, max_de_aggregation_dims=self.latent_system_dim // 2, name="Decoder", **decoder_kwargs, )(*args, **kwargs)) self.has_latent_transform = has_latent_transform if has_latent_transform: self.latent_transform = hk.transform( lambda *args, **kwargs: networks.make_flexible_net( # pylint: disable=unnecessary-lambda,g-long-lambda net_type=latent_system_net_type, output_dims=latent_system_dim, name="LatentTransform", **latent_transform_kwargs )(*args, **kwargs)) else: self.latent_transform = None self._jit_init = None @property @abc.abstractmethod def train_sequence_length(self) -> int: """Computes the total length of a sequence needed for training or evaluation.""" pass @abc.abstractmethod def train_data_split( self, images: jnp.ndarray, ) -> Tuple[jnp.ndarray, jnp.ndarray, Mapping[str, Any]]: """Extracts from the inputs the data splits for training.""" pass def decode_latents( self, params: hk.Params, rng: jnp.ndarray, z: jnp.ndarray, **kwargs: Any ) -> distrax.Distribution: """Decodes the latent variable given the parameters of the model.""" # Allow to run with both the full parameters and only the decoders if self.latent_system_net_type == "mlp": fixed_dims = 1 elif self.latent_system_net_type == "conv": fixed_dims = 1 + len(self.latent_spatial_shape) else: raise NotImplementedError() n_shape = z.shape[:-fixed_dims] z = z.reshape((-1,) + z.shape[-fixed_dims:]) x = self.decoder.apply(params, rng, z, **kwargs) return jax.tree_map(lambda a: a.reshape(n_shape + a.shape[1:]), x) def apply_latent_transform( self, params: hk.Params, key: jnp.ndarray, z: jnp.ndarray, **kwargs: Any ) -> jnp.ndarray: if self.latent_transform is not None: return self.latent_transform.apply(params, key, z, **kwargs) else: return z @abc.abstractmethod def process_inputs_for_encoder(self, x: jnp.ndarray) -> jnp.ndarray: pass @abc.abstractmethod def process_latents_for_dynamics(self, z: jnp.ndarray) -> T: pass @abc.abstractmethod def process_latents_for_decoder(self, z: T) -> jnp.ndarray: pass @abc.abstractmethod def unroll_latent_dynamics( self, z: T, params: utils.Params, key: jnp.ndarray, num_steps_forward: int, num_steps_backward: int, include_z0: bool, is_training: bool, **kwargs: Any ) -> Tuple[T, Mapping[str, jnp.ndarray]]: """Unrolls the latent dynamics starting from z and pre-processing for the decoder.""" pass @abc.abstractmethod def reconstruct( self, params: utils.Params, inputs: jnp.ndarray, rng_key: Optional[jnp.ndarray], forward: bool, ) -> distrax.Distribution: """Using the first `num_inference_steps` parts of inputs reconstructs the rest.""" pass @abc.abstractmethod def training_objectives( self, params: utils.Params, state: hk.State, rng: jnp.ndarray, inputs: Union[Dict[str, jnp.ndarray], jnp.ndarray], step: jnp.ndarray, is_training: bool = True, use_mean_for_eval_stats: bool = True ) -> Tuple[jnp.ndarray, Sequence[Dict[str, jnp.ndarray]]]: """Returns all training objectives statistics and update states.""" pass @property @abc.abstractmethod def inferred_index(self): """Returns the time index in the input sequence, for which the encoder infers. If the encoder takes as input the sequence x[0:n-1], where `n = self.num_inference_steps`, then this outputs the index `k` relative to the begging of the input sequence `x_0`, which the encoder infers. """ pass @property def inferred_right_offset(self): return self.num_inference_steps - 1 - self.inferred_index @abc.abstractmethod def gt_state_and_latents( self, params: hk.Params, rng: jnp.ndarray, inputs: Dict[str, jnp.ndarray], seq_len: int, is_training: bool = False, unroll_direction: str = "forward", **kwargs: Dict[str, Any] ) -> Tuple[jnp.ndarray, jnp.ndarray, jnp.ndarray]: """Computes the ground state and matching latents.""" pass @abc.abstractmethod def _init_non_model_params_and_state( self, rng: jnp.ndarray ) -> Tuple[utils.Params, utils.Params]: """Initializes any non-model parameters and state.""" pass @abc.abstractmethod def _init_latent_system( self, rng: jnp.ndarray, z: jnp.ndarray, **kwargs: Any ) -> hk.Params: """Initializes the parameters of the latent system.""" pass def _init( self, rng: jnp.ndarray, images: jnp.ndarray ) -> Tuple[hk.Params, hk.State]: """Initializes the whole model parameters and state.""" inference_data, _, _ = self.train_data_split(images) # Initialize parameters and state for the vae training rng, key = jnr.split(rng) params, state = self._init_non_model_params_and_state(key) # Initialize and run encoder inference_data = self.process_inputs_for_encoder(inference_data) rng, key = jnr.split(rng) encoder_params = self.encoder.init(key, inference_data, is_training=True) rng, key = jnr.split(rng) z_in = self.encoder.apply(encoder_params, key, inference_data, is_training=True) # For probabilistic models this will be a distribution if isinstance(z_in, distrax.Distribution): z_in = z_in.mean() # Initialize and run the optional latent transform if self.latent_transform is not None: rng, key = jnr.split(rng) transform_params = self.latent_transform.init(key, z_in, is_training=True) rng, key = jnr.split(rng) z_in = self.latent_transform.apply(transform_params, key, z_in, is_training=True) else: transform_params = dict() # Initialize and run the latent system z_in = self.process_latents_for_dynamics(z_in) rng, key = jnr.split(rng) latent_params = self._init_latent_system(key, z_in, is_training=True) rng, key = jnr.split(rng) z_out, _ = self.unroll_latent_dynamics( z=z_in, params=latent_params, key=key, num_steps_forward=1, num_steps_backward=0, include_z0=False, is_training=True ) z_out = self.process_latents_for_decoder(z_out) # Initialize and run the decoder rng, key = jnr.split(rng) decoder_params = self.decoder.init(key, z_out[:, 0], is_training=True) _ = self.decoder.apply(decoder_params, rng, z_out[:, 0], is_training=True) # Combine all and make immutable params = hk.data_structures.merge(params, encoder_params, transform_params, latent_params, decoder_params) params = hk.data_structures.to_immutable_dict(params) state = hk.data_structures.to_immutable_dict(state) return params, state # pytype: disable=bad-return-type # jax-ndarray def init( self, rng: jnp.ndarray, inputs_or_shape: Union[jnp.ndarray, Mapping[str, jnp.ndarray], Sequence[int]], ) -> Tuple[utils.Params, hk.State]: """Initializes the whole model parameters and state.""" if (isinstance(inputs_or_shape, (tuple, list)) and isinstance(inputs_or_shape[0], int)): images = jnp.zeros(inputs_or_shape) else: images = utils.extract_image(inputs_or_shape) if self._jit_init is None: self._jit_init = jax.jit(self._init) return self._jit_init(rng, images) ================================================ FILE: physics_inspired_models/models/common.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module for all models.""" from typing import Any, Dict, Optional import physics_inspired_models.models.autoregressive as autoregressive import physics_inspired_models.models.deterministic_vae as deterministic_vae _physics_arguments = ( "input_space", "simulation_space", "potential_func_form", "kinetic_func_form", "hgn_kinetic_func_form", "lgn_kinetic_func_form", "parametrize_mass_matrix", "hgn_parametrize_mass_matrix", "lgn_parametrize_mass_matrix", "mass_eps" ) def construct_model( name: str, *args, **kwargs: Dict[str, Any] ): """Constructs the correct instance of a model given the short name.""" latent_dynamics_type: Optional[str] = kwargs.pop("latent_dynamics_type", None) # pytype: disable=annotation-type-mismatch latent_system_kwargs = dict(**kwargs.pop("latent_system_kwargs", dict())) if name == "AR": assert latent_dynamics_type in ("vanilla", "lstm", "gru") # This arguments are not part of the AR models for k in _physics_arguments + ("integrator_method", "residual"): latent_system_kwargs.pop(k, None) return autoregressive.TeacherForcingAutoregressiveModel( *args, latent_dynamics_type=latent_dynamics_type, latent_system_kwargs=latent_system_kwargs, **kwargs ) elif name == "RGN": assert latent_dynamics_type in ("Discrete", None) latent_dynamics_type = "Discrete" # This arguments are not part of the RGN models for k in _physics_arguments + ("integrator_method",): latent_system_kwargs.pop(k, None) elif name == "ODE": assert latent_dynamics_type in ("ODE", None) latent_dynamics_type = "ODE" # This arguments are not part of the ODE models for k in _physics_arguments + ("residual",): latent_system_kwargs.pop(k, None) elif name == "HGN": assert latent_dynamics_type in ("Physics", None) latent_dynamics_type = "Physics" assert latent_system_kwargs.get("input_space", None) in ("momentum", None) latent_system_kwargs["input_space"] = "momentum" assert (latent_system_kwargs.get("simulation_space", None) in ("momentum", None)) latent_system_kwargs["simulation_space"] = "momentum" # Kinetic func form hgn_specific = latent_system_kwargs.pop("hgn_kinetic_func_form", None) if hgn_specific is not None: latent_system_kwargs["kinetic_func_form"] = hgn_specific # Mass matrix hgn_specific = latent_system_kwargs.pop("hgn_parametrize_mass_matrix", None) if hgn_specific is not None: latent_system_kwargs["parametrize_mass_matrix"] = hgn_specific # This arguments are not part of the HGN models latent_system_kwargs.pop("residual", None) latent_system_kwargs.pop("lgn_kinetic_func_form", None) latent_system_kwargs.pop("lgn_parametrize_mass_matrix", None) elif name == "LGN": assert latent_dynamics_type in ("Physics", None) latent_dynamics_type = "Physics" assert latent_system_kwargs.get("input_space", None) in ("velocity", None) latent_system_kwargs["input_space"] = "velocity" assert (latent_system_kwargs.get("simulation_space", None) in ("velocity", None)) latent_system_kwargs["simulation_space"] = "velocity" # Kinetic func form lgn_specific = latent_system_kwargs.pop("lgn_kinetic_func_form", None) if lgn_specific is not None: latent_system_kwargs["kinetic_func_form"] = lgn_specific # Mass matrix lgn_specific = latent_system_kwargs.pop("lgn_parametrize_mass_matrix", None) if lgn_specific is not None: latent_system_kwargs["parametrize_mass_matrix"] = lgn_specific # This arguments are not part of the HGN models latent_system_kwargs.pop("residual", None) latent_system_kwargs.pop("hgn_kinetic_func_form", None) latent_system_kwargs.pop("hgn_parametrize_mass_matrix", None) elif name == "PGN": assert latent_dynamics_type in ("Physics", None) latent_dynamics_type = "Physics" # This arguments are not part of the PGN models latent_system_kwargs.pop("residual") latent_system_kwargs.pop("hgn_kinetic_func_form", None) latent_system_kwargs.pop("hgn_parametrize_mass_matrix", None) latent_system_kwargs.pop("lgn_kinetic_func_form", None) latent_system_kwargs.pop("lgn_parametrize_mass_matrix", None) else: raise NotImplementedError() return deterministic_vae.DeterministicLatentsGenerativeModel( *args, latent_dynamics_type=latent_dynamics_type, latent_system_kwargs=latent_system_kwargs, **kwargs) ================================================ FILE: physics_inspired_models/models/deterministic_vae.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing the main models code.""" import functools from typing import Any, Dict, Mapping, Optional, Sequence, Tuple, Union import distrax from dm_hamiltonian_dynamics_suite.hamiltonian_systems import phase_space import haiku as hk import jax.numpy as jnp import jax.random as jnr import numpy as np from physics_inspired_models import metrics from physics_inspired_models import utils from physics_inspired_models.models import base from physics_inspired_models.models import dynamics _ArrayOrPhase = Union[jnp.ndarray, phase_space.PhaseSpace] class DeterministicLatentsGenerativeModel(base.SequenceModel[_ArrayOrPhase]): """Common class for generative models with deterministic latent dynamics.""" def __init__( self, latent_system_dim: int, latent_system_net_type: str, latent_system_kwargs: Dict[str, Any], latent_dynamics_type: str, encoder_aggregation_type: Optional[str], decoder_de_aggregation_type: Optional[str], encoder_kwargs: Dict[str, Any], decoder_kwargs: Dict[str, Any], num_inference_steps: int, num_target_steps: int, latent_training_type: str, training_data_split: str, objective_type: str, dt: float = 0.125, render_from_q_only: bool = True, prior_type: str = "standard_normal", use_analytical_kl: bool = True, geco_kappa: float = 0.001, geco_alpha: Optional[float] = 0.0, elbo_beta_delay: int = 0, elbo_beta_final: float = 1.0, name: Optional[str] = None, **kwargs ): can_run_backwards = latent_dynamics_type in ("ODE", "Physics") # Verify arguments if objective_type not in ("GECO", "ELBO", "NON-PROB"): raise ValueError(f"Unrecognized training type - {objective_type}") if geco_alpha is None: geco_alpha = 0 if geco_alpha < 0 or geco_alpha >= 1: raise ValueError("GECO alpha parameter must be in [0, 1).") if prior_type not in ("standard_normal", "made", "made_gated"): raise ValueError(f"Unrecognized prior_type='{prior_type}.") if (latent_training_type == "forward_backward" and training_data_split != "include_inference"): raise ValueError("Training forward_backward works only when " "training_data_split=include_inference.") if (latent_training_type == "forward_backward" and num_inference_steps % 2 == 0): raise ValueError("Training forward_backward works only when " "num_inference_steps are odd.") if latent_training_type == "forward_backward" and not can_run_backwards: raise ValueError("Training forward_backward works only when the model can" " be run backwards.") if prior_type != "standard_normal": raise ValueError("For now we support only `standard_normal`.") super().__init__( can_run_backwards=can_run_backwards, latent_system_dim=latent_system_dim, latent_system_net_type=latent_system_net_type, latent_system_kwargs=latent_system_kwargs, encoder_aggregation_type=encoder_aggregation_type, decoder_de_aggregation_type=decoder_de_aggregation_type, encoder_kwargs=encoder_kwargs, decoder_kwargs=decoder_kwargs, num_inference_steps=num_inference_steps, num_target_steps=num_target_steps, name=name, **kwargs ) # VAE specific arguments self.prior_type = prior_type self.objective_type = objective_type self.use_analytical_kl = use_analytical_kl self.geco_kappa = geco_kappa self.geco_alpha = geco_alpha self.elbo_beta_delay = elbo_beta_delay self.elbo_beta_final = jnp.asarray(elbo_beta_final) # The dynamics module and arguments self.latent_dynamics_type = latent_dynamics_type self.latent_training_type = latent_training_type self.training_data_split = training_data_split self.dt = dt self.render_from_q_only = render_from_q_only latent_system_kwargs["net_kwargs"] = dict( latent_system_kwargs["net_kwargs"]) latent_system_kwargs["net_kwargs"]["net_type"] = self.latent_system_net_type if self.latent_dynamics_type == "Physics": # Note that here system_dim means the dimensionality of `q` and `p`. model_constructor = functools.partial( dynamics.PhysicsSimulationNetwork, system_dim=self.latent_system_dim // 2, name="Physics", **latent_system_kwargs ) elif self.latent_dynamics_type == "ODE": model_constructor = functools.partial( dynamics.OdeNetwork, system_dim=self.latent_system_dim, name="ODE", **latent_system_kwargs ) elif self.latent_dynamics_type == "Discrete": model_constructor = functools.partial( dynamics.DiscreteDynamicsNetwork, system_dim=self.latent_system_dim, name="Discrete", **latent_system_kwargs ) else: raise NotImplementedError() self.dynamics = hk.transform( lambda *args, **kwargs_: model_constructor()(*args, **kwargs_)) # pylint: disable=unnecessary-lambda def process_inputs_for_encoder(self, x: jnp.ndarray) -> jnp.ndarray: return utils.stack_time_into_channels(x, self.data_format) def process_latents_for_dynamics(self, z: jnp.ndarray) -> _ArrayOrPhase: if self.latent_dynamics_type == "Physics": return phase_space.PhaseSpace.from_state(z) return z def process_latents_for_decoder(self, z: _ArrayOrPhase) -> jnp.ndarray: if self.latent_dynamics_type == "Physics": return z.q if self.render_from_q_only else z.single_state # pytype: disable=attribute-error # jax-ndarray return z # pytype: disable=bad-return-type # jax-ndarray @property def inferred_index(self) -> int: if self.latent_training_type == "forward": return self.num_inference_steps - 1 elif self.latent_training_type == "forward_backward": assert self.num_inference_steps % 2 == 1 return self.num_inference_steps // 2 else: raise NotImplementedError() @property def targets_index_offset(self) -> int: if self.training_data_split == "overlap_by_one": return -1 elif self.training_data_split == "no_overlap": return 0 elif self.training_data_split == "include_inference": return - self.num_inference_steps else: raise NotImplementedError() @property def targets_length(self) -> int: if self.training_data_split == "include_inference": return self.num_inference_steps + self.num_target_steps return self.num_target_steps @property def train_sequence_length(self) -> int: """Computes the total length of a sequence needed for training.""" if self.training_data_split == "overlap_by_one": # Input - [-------------------------------------------------] # Inference - [---------------] # Targets - [---------------------------------] return self.num_inference_steps + self.num_target_steps - 1 elif self.training_data_split == "no_overlap": # Input - [-------------------------------------------------] # Inference - [---------------] # Targets - [--------------------------------] return self.num_inference_steps + self.num_target_steps elif self.training_data_split == "include_inference": # Input - [-------------------------------------------------] # Inference - [---------------] # Targets - [-------------------------------------------------] return self.num_inference_steps + self.num_target_steps else: raise NotImplementedError() def train_data_split( self, images: jnp.ndarray ) -> Tuple[jnp.ndarray, jnp.ndarray, Mapping[str, Any]]: images = images[:, :self.train_sequence_length] inf_idx = self.num_inference_steps t_idx = self.num_inference_steps + self.targets_index_offset if self.latent_training_type == "forward": inference_data = images[:, :inf_idx] target_data = images[:, t_idx:] if self.training_data_split == "include_inference": num_steps_backward = self.inferred_index else: num_steps_backward = 0 num_steps_forward = self.num_target_steps if self.training_data_split == "overlap_by_one": num_steps_forward -= 1 unroll_kwargs = dict( num_steps_backward=num_steps_backward, include_z0=self.training_data_split != "no_overlap", num_steps_forward=num_steps_forward, dt=self.dt ) elif self.latent_training_type == "forward_backward": assert self.training_data_split == "include_inference" n_fwd = images.shape[0] // 2 inference_fwd = images[:n_fwd, :inf_idx] targets_fwd = images[:n_fwd, t_idx:] inference_bckwd = images[n_fwd:, -inf_idx:] targets_bckwd = jnp.flip(images[n_fwd:, :images.shape[1] - t_idx], axis=1) inference_data = jnp.concatenate([inference_fwd, inference_bckwd], axis=0) target_data = jnp.concatenate([targets_fwd, targets_bckwd], axis=0) # This needs to by numpy rather than jax.numpy, because we make some # verification checks in `integrators.py:149-161`. dt_fwd = np.full([n_fwd], self.dt) dt_bckwd = np.full([images.shape[0] - n_fwd], self.dt) dt = np.concatenate([dt_fwd, -dt_bckwd], axis=0) unroll_kwargs = dict( num_steps_backward=self.inferred_index, include_z0=True, num_steps_forward=self.targets_length - self.inferred_index - 1, dt=dt ) else: raise NotImplementedError() return inference_data, target_data, unroll_kwargs def prior(self) -> distrax.Distribution: """Given the parameters returns the prior distribution of the model.""" # Allow to run with both the full parameters and only the priors if self.prior_type == "standard_normal": # assert self.prior_nets is None and self.gated_made is None if self.latent_system_net_type == "mlp": event_shape = (self.latent_system_dim,) elif self.latent_system_net_type == "conv": if self.data_format == "NHWC": event_shape = self.latent_spatial_shape + (self.latent_system_dim,) else: event_shape = (self.latent_system_dim,) + self.latent_spatial_shape else: raise NotImplementedError() return distrax.Normal(jnp.zeros(event_shape), jnp.ones(event_shape)) else: raise ValueError(f"Unrecognized prior_type='{self.prior_type}'.") def sample_latent_from_prior( self, params: utils.Params, rng: jnp.ndarray, num_samples: int = 1, **kwargs: Any) -> jnp.ndarray: """Takes sample from the prior (and optionally puts them through the latent transform function.""" _, sample_key, transf_key = jnr.split(rng, 3) prior = self.prior() z_raw = prior.sample(seed=sample_key, sample_shape=[num_samples]) return self.apply_latent_transform(params, transf_key, z_raw, **kwargs) def sample_trajectories_from_prior( self, params: utils.Params, num_steps: int, rng: jnp.ndarray, num_samples: int = 1, is_training: bool = False, **kwargs ) -> distrax.Distribution: """Generates samples from the prior (unconditional generation).""" sample_key, unroll_key, dec_key = jnr.split(rng, 3) z0 = self.sample_latent_from_prior(params, sample_key, num_samples, is_training=is_training) z, _ = self.unroll_latent_dynamics( z=self.process_latents_for_dynamics(z0), params=params, key=unroll_key, num_steps_forward=num_steps, num_steps_backward=0, include_z0=True, is_training=is_training, **kwargs ) z = self.process_latents_for_decoder(z) return self.decode_latents(params, dec_key, z, is_training=is_training) def verify_unroll_args( self, num_steps_forward: int, num_steps_backward: int, include_z0: bool ) -> None: if num_steps_forward < 0 or num_steps_backward < 0: raise ValueError("num_steps_forward and num_steps_backward can not be " "negative.") if num_steps_forward == 0 and num_steps_backward == 0: raise ValueError("You need one of num_steps_forward or " "num_of_steps_backward to be positive.") if num_steps_forward > 0 and num_steps_backward > 0 and not include_z0: raise ValueError("When both num_steps_forward and num_steps_backward are " "positive include_t0 should be True.") if num_steps_backward > 0 and not self.can_run_backwards: raise ValueError("This model can not be unrolled backward in time.") def unroll_latent_dynamics( # pytype: disable=signature-mismatch # jax-ndarray self, z: phase_space.PhaseSpace, params: hk.Params, key: jnp.ndarray, num_steps_forward: int, num_steps_backward: int, include_z0: bool, is_training: bool, **kwargs: Any ) -> Tuple[_ArrayOrPhase, Mapping[str, jnp.ndarray]]: self.verify_unroll_args(num_steps_forward, num_steps_backward, include_z0) return self.dynamics.apply( params, key, y0=z, dt=kwargs.pop("dt", self.dt), num_steps_forward=num_steps_forward, num_steps_backward=num_steps_backward, include_y0=include_z0, return_stats=True, is_training=is_training ) def _models_core( self, params: utils.Params, keys: jnp.ndarray, image_data: jnp.ndarray, use_mean: bool, is_training: bool, **unroll_kwargs: Any ) -> Tuple[distrax.Distribution, distrax.Distribution, distrax.Distribution, jnp.ndarray, jnp.ndarray, Mapping[str, jnp.ndarray]]: enc_key, sample_key, transform_key, unroll_key, dec_key, _ = keys # Calculate the approximate posterior q(z|x) inference_data = self.process_inputs_for_encoder(image_data) q_z: distrax.Distribution = self.encoder.apply(params, enc_key, inference_data, is_training=is_training) # Sample latent variables or take the mean z_raw = q_z.mean() if use_mean else q_z.sample(seed=sample_key) # Apply latent transformation z0 = self.apply_latent_transform(params, transform_key, z_raw, is_training=is_training) # Unroll the latent variable z, dyn_stats = self.unroll_latent_dynamics( z=self.process_latents_for_dynamics(z0), params=params, key=unroll_key, is_training=is_training, **unroll_kwargs ) decoder_z = self.process_latents_for_decoder(z) # Compute p(x|z) p_x = self.decode_latents(params, dec_key, decoder_z, is_training=is_training) z = z.single_state if isinstance(z, phase_space.PhaseSpace) else z return p_x, q_z, self.prior(), z0, z, dyn_stats def training_objectives( # pytype: disable=signature-mismatch # jax-ndarray self, params: utils.Params, state: hk.State, rng: jnp.ndarray, inputs: jnp.ndarray, step: jnp.ndarray, is_training: bool = True, use_mean_for_eval_stats: bool = True ) -> Tuple[jnp.ndarray, Sequence[Dict[str, jnp.ndarray]]]: # Split all rng keys keys = jnr.split(rng, 6) # Process training data images = utils.extract_image(inputs) image_data, target_data, unroll_kwargs = self.train_data_split(images) p_x, q_z, prior, _, _, dyn_stats = self._models_core( params=params, keys=keys, image_data=image_data, use_mean=False, is_training=is_training, **unroll_kwargs ) # Note: we reuse the rng key used to sample the latent variable here # so that it can be reused to evaluate a (non-analytical) KL at that sample. stats = metrics.training_statistics( p_x=p_x, targets=target_data, rescale_by=self.rescale_by, rng=keys[1], q_z=q_z, prior=prior, p_x_learned_sigma=self.decoder_kwargs.get("learned_sigma", False) ) stats.update(dyn_stats) # Compute other (non-reported statistics) z_stats = dict() other_stats = dict(x_reconstruct=p_x.mean(), z_stats=z_stats) # The loss computation and GECO state update new_state = dict() if self.objective_type == "GECO": geco_stats = metrics.geco_objective( l2_loss=stats["l2"], kl=stats["kl"], alpha=self.geco_alpha, kappa=self.geco_kappa, constraint_ema=state["GECO"]["geco_constraint_ema"], lambda_var=params["GECO"]["geco_lambda_var"], is_training=is_training ) new_state["GECO"] = dict( geco_constraint_ema=geco_stats["geco_constraint_ema"]) stats.update(geco_stats) elif self.objective_type == "ELBO": elbo_stats = metrics.elbo_objective( neg_log_p_x=stats["neg_log_p_x"], kl=stats["kl"], final_beta=self.elbo_beta_final, beta_delay=self.elbo_beta_delay, step=step ) stats.update(elbo_stats) elif self.objective_type == "NON-PROB": stats["loss"] = stats["neg_log_p_x"] else: raise ValueError() if not is_training: if self.training_data_split == "overlap_by_one": reconstruction_skip = self.num_inference_steps - 1 elif self.training_data_split == "no_overlap": reconstruction_skip = self.num_inference_steps elif self.training_data_split == "include_inference": reconstruction_skip = 0 else: raise NotImplementedError() # We intentionally reuse the same rng as the training, in order to be able # to run tests and verify that the evaluation and reconstruction work # correctly. # We need to be able to set `use_mean = False` for some of the tests stats.update(metrics.evaluation_only_statistics( reconstruct_func=functools.partial( self.reconstruct, use_mean=use_mean_for_eval_stats), params=params, inputs=inputs, rng=rng, rescale_by=self.rescale_by, can_run_backwards=self.can_run_backwards, train_sequence_length=self.train_sequence_length, reconstruction_skip=reconstruction_skip, p_x_learned_sigma=self.decoder_kwargs.get("learned_sigma", False) )) # Make new state the same type as state new_state = utils.convert_to_pytype(new_state, state) return stats["loss"], (new_state, stats, other_stats) def reconstruct( self, params: utils.Params, inputs: jnp.ndarray, rng: Optional[jnp.ndarray], forward: bool, use_mean: bool = True, ) -> distrax.Distribution: if not self.can_run_backwards and not forward: raise ValueError("This model can not be run backwards.") images = utils.extract_image(inputs) # This is intentionally matching the split for the training stats if forward: num_steps_backward = self.inferred_index num_steps_forward = images.shape[1] - num_steps_backward - 1 else: num_steps_forward = self.num_inference_steps - self.inferred_index - 1 num_steps_backward = images.shape[1] - num_steps_forward - 1 if not self.can_run_backwards: num_steps_backward = 0 if forward: image_data = images[:, :self.num_inference_steps] else: image_data = images[:, -self.num_inference_steps:] return self._models_core( params=params, keys=jnr.split(rng, 6), image_data=image_data, use_mean=use_mean, is_training=False, num_steps_forward=num_steps_forward, num_steps_backward=num_steps_backward, include_z0=True, )[0] def gt_state_and_latents( # pytype: disable=signature-mismatch # jax-ndarray self, params: hk.Params, rng: jnp.ndarray, inputs: Dict[str, jnp.ndarray], seq_length: int, is_training: bool = False, unroll_direction: str = "forward", **kwargs: Dict[str, Any] ) -> Tuple[jnp.ndarray, jnp.ndarray, Union[distrax.Distribution, jnp.ndarray]]: """Computes the ground state and matching latents.""" assert unroll_direction in ("forward", "backward") if unroll_direction == "backward" and not self.can_run_backwards: raise ValueError("This model can not be unrolled backwards.") images = utils.extract_image(inputs) gt_state = utils.extract_gt_state(inputs) if unroll_direction == "forward": image_data = images[:, :self.num_inference_steps] if self.can_run_backwards: num_steps_backward = self.inferred_index gt_start_idx = 0 else: num_steps_backward = 0 gt_start_idx = self.inferred_index num_steps_forward = seq_length - num_steps_backward - 1 gt_state = gt_state[:, gt_start_idx: seq_length + gt_start_idx] elif unroll_direction == "backward": inference_start_idx = seq_length - self.num_inference_steps image_data = images[:, inference_start_idx: seq_length] num_steps_forward = self.num_inference_steps - self.inferred_index - 1 num_steps_backward = seq_length - num_steps_forward - 1 gt_state = gt_state[:, :seq_length] else: raise NotImplementedError() _, q_z, _, z0, z, _ = self._models_core( params=params, keys=jnr.split(rng, 6), image_data=image_data, use_mean=True, is_training=False, num_steps_forward=num_steps_forward, num_steps_backward=num_steps_backward, include_z0=True, ) if self.has_latent_transform: return gt_state, z, z0 else: return gt_state, z, q_z def _init_non_model_params_and_state( self, rng: jnp.ndarray ) -> Tuple[utils.Params, utils.Params]: if self.objective_type == "GECO": # Initialize such that softplus(lambda_var) = 1 geco_lambda_var = jnp.asarray(jnp.log(jnp.e - 1.0)) geco_constraint_ema = jnp.asarray(0.0) return (dict(GECO=dict(geco_lambda_var=geco_lambda_var)), dict(GECO=dict(geco_constraint_ema=geco_constraint_ema))) else: return dict(), dict() def _init_latent_system( self, rng: jnp.ndarray, z: jnp.ndarray, **kwargs: Mapping[str, Any] ) -> hk.Params: """Initializes the parameters of the latent system.""" return self.dynamics.init( rng, y0=z, dt=self.dt, num_steps_forward=1, num_steps_backward=0, include_y0=True, **kwargs ) ================================================ FILE: physics_inspired_models/models/dynamics.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing all of the networks as Haiku modules.""" from typing import Any, Mapping, Optional, Tuple, Union from dm_hamiltonian_dynamics_suite.hamiltonian_systems import phase_space import haiku as hk import jax import jax.numpy as jnp from physics_inspired_models import integrators from physics_inspired_models import utils from physics_inspired_models.models import networks _PhysicsSimulationOutput = Union[ phase_space.PhaseSpace, Tuple[phase_space.PhaseSpace, Mapping[str, jnp.ndarray]] ] class PhysicsSimulationNetwork(hk.Module): """A model for simulating an abstract physical system, whose energy is defined by a neural network.""" def __init__( self, system_dim: int, input_space: str, simulation_space: str, potential_func_form: str, kinetic_func_form: str, parametrize_mass_matrix: bool, net_kwargs: Mapping[str, Any], mass_eps: float = 1.0, integrator_method: Optional[str] = None, steps_per_dt: int = 1, ode_int_kwargs: Optional[Mapping[str, float]] = None, use_scan: bool = True, feature_axis: int = -1, features_extra_dims: Optional[int] = None, network_creation_func=networks.make_flexible_net, name: Optional[str] = None ): """Initializes the model. Args: system_dim: The number of system dimensions. Note that this specifies the number of dimensions only of the position vectors, not of position and momentum. Hence the generalized coordinates would be of dimension `2 * system_dim`. input_space: Either `velocity` or `momentum`. Specifies whether the inputs to the model are to be interpreted as `(position, velocity)` or as `(position, momentum)`. simulation_space: Either `velocity` or `momentum`. Specifies whether the model should simulate the dynamics in `(position, velocity)` space using the Lagrangian formulation or in `(position, momentum)` space using the Hamiltonian formulation. If this is different than the value of `input_space` then `kinetic_func_form` must be one of pure_quad, matrix_diag_quad, matrix_quad, matrix_dep_diag_quad, matrix_dep_quad. In all other cases one can not compute analytically the form of the functional (Lagrangian or Hamiltonian) from the other. potential_func_form: String specifying the form of the potential energy: * separable_net - The network uses only the position: U(q, q_dot/p) = f(q) f: R^d -> R * dep_net - The network uses both the position and velocity/momentum: U(q, q_dot/p) = f(q, q_dot/p) f: R^d x R^d -> R * embed_quad - A quadratic of the embedding of a network embedding of the velocity/momentum: U(q, q_dot/p) = f(q)^T f(q) / 2 f: R^d -> R^d kinetic_func_form: String specifying the form of the potential energy: * separable_net - The network uses only the velocity/momentum: K(q, q_dot/p) = f(q_dot/p) f: R^d -> R * dep_net - The network uses both the position and velocity/momentum: K(q, q_dot/p) = f(q, q_dot/p) f: R^d x R^d -> R * pure_quad - A quadratic function of the velocity/momentum: K(q, q_dot/p) = (q_dot/p)^T (q_dot/p) / 2 * matrix_diag_quad - A quadratic function of the velocity/momentum, where there is diagonal mass matrix, whose log `P` is a parameter: K(q, q_dot) = q_dot^T M q_dot / 2 K(q, p) = p^T M^-1 p / 2 [if `parameterize_mass_matrix`] M = diag(exp(P) + mass_eps) [else] M^-1 = diag(exp(P) + mass_eps) * matrix_quad - A quadratic function of the velocity/momentum, where there is a full mass matrix, whose Cholesky factor L is a parameter: K(q, q_dot) = q_dot^T M q_dot / 2 K(q, p) = p^T M^-1 p / 2 [if `parameterize_mass_matrix`] M = LL^T + mass_eps * I [else] M^-1 = LL^T + mass_eps * I * matrix_dep_quad - A quadratic function of the velocity/momentum, where there is a full mass matrix defined as a function of the position: K(q, q_dot) = q_dot^T M(q) q_dot / 2 K(q, p) = p^T M(q)^-1 p / 2 [if `parameterize_mass_matrix`] M(q) = g(q) g(q)^T + mass_eps * I g: R^d -> R^(d(d+1)/2) [else] M(q)^-1 = g(q) g(q)^T + mass_eps * I g: R^d -> R^(d(d+1)/2) * embed_quad - A quadratic of the embedding of a network embedding of the velocity/momentum: K(q, q_dot/p) = f(q_dot/p)^T f(q_dot/p) / 2 f: R^d -> R^d * matrix_dep_diag_embed_quad - A quadratic of the embedding of a network embedding of the velocity/momentum where there is diagonal mass matrix defined as a function of the position: K(q, q_dot) = f(q_dot)^T M(q) f(q_dot) / 2 f: R^d -> R^d K(q, p) = f(p)^T M(q)^-1 f(p) / 2 f: R^d -> R^d [if `parameterize_mass_matrix`] M(q) = diag(exp(g(q)) + mass_eps * I g: R^d -> R^d [else] M(q)^-1 = diag(exp(g(q)) + mass_eps * I g: R^d -> R^d * matrix_dep_embed_quad - A quadratic of the embedding of a network embedding of the velocity/momentum where there is a full mass matrix defined as a function of the position: K(q, q_dot) = f(q_dot)^T M(q) f(q_dot) / 2 f: R^d -> R^d K(q, p) = f(p)^T M(q)^-1 f(p) / 2 f: R^d -> R^d [if `parameterize_mass_matrix`] M(q) = g(q) g(q)^T + mass_eps * I g: R^d -> R^(d(d+1)/2) [else] M(q)^-1 = g(q) g(q)^T + mass_eps * I g: R^d -> R^(d(d+1)/2) For any of the function forms with mass matrices, if we have a convolutional input it is assumed that the matrix is shared across all spatial locations. parametrize_mass_matrix: Defines for the kinetic functional form, whether the network output defines the mass or the inverse of the mass matrix. net_kwargs: Any keyword arguments to pass down to the networks. mass_eps: The additional weight of the identity added to the mass matrix, when relevant. integrator_method: What method to use for integrating the system. steps_per_dt: How many internal steps per a single `dt` step to do. ode_int_kwargs: Extra arguments when using "implicit" integrator method. use_scan: Whether to use `lax.scan` for explicit integrators. feature_axis: The number of the features axis in the inputs. features_extra_dims: If the inputs have extra features (like spatial for convolutions) this specifies how many of them there are. network_creation_func: A function that creates the networks. Should have a signature `network_creation_func(output_dims, name, **net_kwargs)`. name: The name of this Haiku module. """ super().__init__(name=name) if input_space not in ("velocity", "momentum"): raise ValueError("input_space must be either velocity or momentum.") if simulation_space not in ("velocity", "momentum"): raise ValueError("simulation_space must be either velocity or momentum.") if potential_func_form not in ("separable_net", "dep_net", "embed_quad"): raise ValueError("The potential network can be only a network.") if kinetic_func_form not in ("separable_net", "dep_net", "pure_quad", "matrix_diag_quad", "matrix_quad", "matrix_dep_diag_quad", "matrix_dep_quad", "embed_quad", "matrix_dep_diag_embed_quad", "matrix_dep_embed_quad"): raise ValueError(f"Unrecognized kinetic func form {kinetic_func_form}.") if input_space != simulation_space: if kinetic_func_form not in ( "pure_quad", "matrix_diag_quad", "matrix_quad", "matrix_dep_diag_quad", "matrix_dep_quad"): raise ValueError( "When the input and simulation space are not the same, it is " "possible to simulate the physical system only if kinetic_func_form" " is one of pure_quad, matrix_diag_quad, matrix_quad, " "matrix_dep_diag_quad, matrix_dep_quad. In all other cases one can" "not compute analytically the form of the functional (Lagrangian or" " Hamiltonian) from the other.") if feature_axis != -1: raise ValueError("Currently we only support features_axis=-1.") if integrator_method is None: if simulation_space == "velocity": integrator_method = "rk2" else: integrator_method = "leap_frog" if features_extra_dims is None: if net_kwargs["net_type"] == "mlp": features_extra_dims = 0 elif net_kwargs["net_type"] == "conv": features_extra_dims = 2 else: raise NotImplementedError() ode_int_kwargs = dict(ode_int_kwargs or {}) ode_int_kwargs.setdefault("rtol", 1e-6) ode_int_kwargs.setdefault("atol", 1e-6) ode_int_kwargs.setdefault("mxstep", 50) self.system_dim = system_dim self.input_space = input_space self.simulation_space = simulation_space self.potential_func_form = potential_func_form self.kinetic_func_form = kinetic_func_form self.parametrize_mass_matrix = parametrize_mass_matrix self.features_axis = feature_axis self.features_extra_dims = features_extra_dims self.integrator_method = integrator_method self.steps_per_dt = steps_per_dt self.ode_int_kwargs = ode_int_kwargs self.net_kwargs = net_kwargs self.mass_eps = mass_eps self.use_scan = use_scan self.name = name self.potential_net = network_creation_func( output_dims=1, name="PotentialNet", **net_kwargs) if kinetic_func_form in ("separable_net", "dep_net"): self.kinetic_net = network_creation_func( output_dims=1, name="KineticNet", **net_kwargs) else: self.kinetic_net = None if kinetic_func_form in ("matrix_dep_quad", "matrix_dep_embed_quad"): output_dims = (system_dim * (system_dim + 1)) // 2 name = "MatrixNet" if parametrize_mass_matrix else "InvMatrixNet" self.mass_matrix_net = network_creation_func( output_dims=output_dims, name=name, **net_kwargs) elif kinetic_func_form in ("matrix_dep_diag_quad", "matrix_dep_diag_embed_quad", "matrix_dep_embed_quad"): name = "MatrixNet" if parametrize_mass_matrix else "InvMatrixNet" self.mass_matrix_net = network_creation_func( output_dims=system_dim, name=name, **net_kwargs) else: self.mass_matrix_net = None if kinetic_func_form in ("embed_quad", "matrix_dep_diag_embed_quad", "matrix_dep_embed_quad"): self.kinetic_embed_net = network_creation_func( output_dims=system_dim, name="KineticEmbed", **net_kwargs) else: self.kinetic_embed_net = None def sum_per_dim_energy(self, energy: jnp.ndarray) -> jnp.ndarray: """Sums the per dimension energy.""" axis = [-i-1 for i in range(self.features_extra_dims + 1)] return jnp.sum(energy, axis=axis) def feature_matrix_vector(self, m, v): """A utility function to compute the product of a matrix and vector in the features axis.""" v = jnp.expand_dims(v, axis=self.features_axis-1) return jnp.sum(m * v, axis=self.features_axis) def mass_matrix_mul( self, q: jnp.ndarray, v: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the product of the mass matrix with a vector and throws an error if not applicable.""" if self.kinetic_func_form in ("separable_net", "dep_net"): raise ValueError("It is not possible to compute `M q_dot` when using a " "network for the kinetic energy.") if self.kinetic_func_form in ("pure_quad", "embed_quad"): return v if self.kinetic_func_form == "matrix_diag_quad": if self.parametrize_mass_matrix: m_diag_log = hk.get_parameter("MassMatrixDiagLog", shape=[self.system_dim], init=hk.initializers.Constant(0.0)) m_diag = jnp.exp(m_diag_log) + self.mass_eps else: m_inv_diag_log = hk.get_parameter("InvMassMatrixDiagLog", shape=[self.system_dim], init=hk.initializers.Constant(0.0)) m_diag = 1.0 / (jnp.exp(m_inv_diag_log) + self.mass_eps) return m_diag * v if self.kinetic_func_form == "matrix_quad": if self.parametrize_mass_matrix: m_triu = hk.get_parameter("MassMatrixU", shape=[self.system_dim, self.system_dim], init=hk.initializers.Identity()) m_triu = jnp.triu(m_triu) m = jnp.matmul(m_triu.T, m_triu) m = m + self.mass_eps * jnp.eye(self.system_dim) return self.feature_matrix_vector(m, v) else: m_inv_triu = hk.get_parameter("InvMassMatrixU", shape=[self.system_dim, self.system_dim], init=hk.initializers.Identity()) m_inv_triu = jnp.triu(m_inv_triu) m_inv = jnp.matmul(m_inv_triu.T, m_inv_triu) m_inv = m_inv + self.mass_eps * jnp.eye(self.system_dim) solve = jnp.linalg.solve for _ in range(v.ndim + 1 - m_inv.ndim): solve = jax.vmap(solve, in_axes=(None, 0)) return solve(m_inv, v) if self.kinetic_func_form in ("matrix_dep_diag_quad", "matrix_dep_diag_embed_quad"): if self.parametrize_mass_matrix: m_diag_log = self.mass_matrix_net(q, **kwargs) m_diag = jnp.exp(m_diag_log) + self.mass_eps else: m_inv_diag_log = self.mass_matrix_net(q, **kwargs) m_diag = 1.0 / (jnp.exp(m_inv_diag_log) + self.mass_eps) return m_diag * v if self.kinetic_func_form in ("matrix_dep_quad", "matrix_dep_embed_quad"): if self.parametrize_mass_matrix: m_triu = self.mass_matrix_net(q, **kwargs) m_triu = utils.triu_matrix_from_v(m_triu, self.system_dim) m = jnp.matmul(jnp.swapaxes(m_triu, -1, -2), m_triu) m = m + self.mass_eps * jnp.eye(self.system_dim) return self.feature_matrix_vector(m, v) else: m_inv_triu = self.mass_matrix_net(q, **kwargs) m_inv_triu = utils.triu_matrix_from_v(m_inv_triu, self.system_dim) m_inv = jnp.matmul(jnp.swapaxes(m_inv_triu, -1, -2), m_inv_triu) m_inv = m_inv + self.mass_eps * jnp.eye(self.system_dim) return jnp.linalg.solve(m_inv, v) raise NotImplementedError() def mass_matrix_inv_mul( self, q: jnp.ndarray, v: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the product of the inverse mass matrix with a vector.""" if self.kinetic_func_form in ("separable_net", "dep_net"): raise ValueError("It is not possible to compute `M^-1 p` when using a " "network for the kinetic energy.") if self.kinetic_func_form in ("pure_quad", "embed_quad"): return v if self.kinetic_func_form == "matrix_diag_quad": if self.parametrize_mass_matrix: m_diag_log = hk.get_parameter("MassMatrixDiagLog", shape=[self.system_dim], init=hk.initializers.Constant(0.0)) m_inv_diag = 1.0 / (jnp.exp(m_diag_log) + self.mass_eps) else: m_inv_diag_log = hk.get_parameter("InvMassMatrixDiagLog", shape=[self.system_dim], init=hk.initializers.Constant(0.0)) m_inv_diag = jnp.exp(m_inv_diag_log) + self.mass_eps return m_inv_diag * v if self.kinetic_func_form == "matrix_quad": if self.parametrize_mass_matrix: m_triu = hk.get_parameter("MassMatrixU", shape=[self.system_dim, self.system_dim], init=hk.initializers.Identity()) m_triu = jnp.triu(m_triu) m = jnp.matmul(m_triu.T, m_triu) m = m + self.mass_eps * jnp.eye(self.system_dim) solve = jnp.linalg.solve for _ in range(v.ndim + 1 - m.ndim): solve = jax.vmap(solve, in_axes=(None, 0)) return solve(m, v) else: m_inv_triu = hk.get_parameter("InvMassMatrixU", shape=[self.system_dim, self.system_dim], init=hk.initializers.Identity()) m_inv_triu = jnp.triu(m_inv_triu) m_inv = jnp.matmul(m_inv_triu.T, m_inv_triu) m_inv = m_inv + self.mass_eps * jnp.eye(self.system_dim) return self.feature_matrix_vector(m_inv, v) if self.kinetic_func_form in ("matrix_dep_diag_quad", "matrix_dep_diag_embed_quad"): if self.parametrize_mass_matrix: m_diag_log = self.mass_matrix_net(q, **kwargs) m_inv_diag = 1.0 / (jnp.exp(m_diag_log) + self.mass_eps) else: m_inv_diag_log = self.mass_matrix_net(q, **kwargs) m_inv_diag = jnp.exp(m_inv_diag_log) + self.mass_eps return m_inv_diag * v if self.kinetic_func_form in ("matrix_dep_quad", "matrix_dep_embed_quad"): if self.parametrize_mass_matrix: m_triu = self.mass_matrix_net(q, **kwargs) m_triu = utils.triu_matrix_from_v(m_triu, self.system_dim) m = jnp.matmul(jnp.swapaxes(m_triu, -2, -1), m_triu) m = m + self.mass_eps * jnp.eye(self.system_dim) return jnp.linalg.solve(m, v) else: m_inv_triu = self.mass_matrix_net(q, **kwargs) m_inv_triu = utils.triu_matrix_from_v(m_inv_triu, self.system_dim) m_inv = jnp.matmul(jnp.swapaxes(m_inv_triu, -2, -1), m_inv_triu) m_inv = m_inv + self.mass_eps * jnp.eye(self.system_dim) return self.feature_matrix_vector(m_inv, v) raise NotImplementedError() def momentum_from_velocity( self, q: jnp.ndarray, q_dot: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the momentum from position and velocity.""" def local_lagrangian(q_dot_): # We take the sum so we can easily take gradients return jnp.sum(self.lagrangian( phase_space.PhaseSpace(q, q_dot_), **kwargs)) return jax.grad(local_lagrangian)(q_dot) def velocity_from_momentum( self, q: jnp.ndarray, p: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the velocity from position and momentum.""" def local_hamiltonian(p_): # We take the sum so we can easily take gradients return jnp.sum(self.hamiltonian( phase_space.PhaseSpace(q, p_), **kwargs)) return jax.grad(local_hamiltonian)(p) def kinetic_energy_velocity( self, q: jnp.ndarray, q_dot: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the kinetic energy in velocity coordinates.""" if self.kinetic_func_form in ("separable_net", "dep_net"): if self.input_space != "velocity": raise ValueError("Can not evaluate the Kinetic energy from velocity, " "when the input space is momentum and " "kinetic_func_form is separable_net or dep_net.") if self.kinetic_func_form == "separable_net": s = q_dot else: s = jnp.concatenate([q, q_dot], axis=-1) per_dim_energy = self.kinetic_net(s, **kwargs) else: if self.kinetic_embed_net is not None: if self.input_space != "velocity": raise ValueError("Can not evaluate the Kinetic energy from velocity, " "when the input space is momentum and " "kinetic_func_form is embed_quad, " "matrix_dep_diag_embed_quad or " "matrix_dep_embed_quad.") q_dot = self.kinetic_embed_net(q_dot, **kwargs) m_q_dot = self.mass_matrix_mul(q, q_dot, **kwargs) per_dim_energy = q_dot * m_q_dot / 2 return self.sum_per_dim_energy(per_dim_energy) def kinetic_energy_momentum( self, q: jnp.ndarray, p: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the kinetic energy in momentum coordinates.""" if self.kinetic_func_form in ("separable_net", "dep_net"): if self.input_space != "momentum": raise ValueError("Can not evaluate the Kinetic energy from momentum, " "when the input space is velocity and " "kinetic_func_form is separable_net or dep_net.") if self.kinetic_func_form == "separable_net": s = p else: s = jnp.concatenate([q, p], axis=-1) per_dim_energy = self.kinetic_net(s, **kwargs) else: if self.kinetic_embed_net is not None: if self.input_space != "momentum": raise ValueError("Can not evaluate the Kinetic energy from momentum, " "when the input space is velocity and " "kinetic_func_form is embed_quad, " "matrix_dep_diag_embed_quad or " "matrix_dep_embed_quad.") p = self.kinetic_embed_net(p, **kwargs) m_inv_p = self.mass_matrix_inv_mul(q, p, **kwargs) per_dim_energy = p * m_inv_p / 2 return self.sum_per_dim_energy(per_dim_energy) def potential_energy_velocity( self, q: jnp.ndarray, q_dot: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the potential energy in velocity coordinates.""" if self.potential_func_form == "separable_net": per_dim_energy = self.potential_net(q, **kwargs) elif self.input_space != "momentum": raise ValueError("Can not evaluate the Potential energy from velocity, " "when the input space is momentum and " "potential_func_form is dep_net.") else: s = jnp.concatenate([q, q_dot], axis=-1) per_dim_energy = self.potential_net(s, **kwargs) return self.sum_per_dim_energy(per_dim_energy) def potential_energy_momentum( self, q: jnp.ndarray, p: jnp.ndarray, **kwargs ) -> jnp.ndarray: """Computes the potential energy in momentum coordinates.""" if self.potential_func_form == "separable_net": per_dim_energy = self.potential_net(q, **kwargs) elif self.input_space != "momentum": raise ValueError("Can not evaluate the Potential energy from momentum, " "when the input space is velocity and " "potential_func_form is dep_net.") else: s = jnp.concatenate([q, p], axis=-1) per_dim_energy = self.potential_net(s, **kwargs) return self.sum_per_dim_energy(per_dim_energy) def hamiltonian( self, s: phase_space.PhaseSpace, **kwargs ) -> jnp.ndarray: """Computes the Hamiltonian in momentum coordinates.""" potential = self.potential_energy_momentum(s.q, s.p, **kwargs) kinetic = self.kinetic_energy_momentum(s.q, s.p, **kwargs) # Sanity check assert potential.shape == kinetic.shape return kinetic + potential def lagrangian( self, s: phase_space.PhaseSpace, **kwargs ) -> jnp.ndarray: """Computes the Lagrangian in velocity coordinates.""" potential = self.potential_energy_velocity(s.q, s.p, **kwargs) kinetic = self.kinetic_energy_velocity(s.q, s.p, **kwargs) # Sanity check assert potential.shape == kinetic.shape return kinetic - potential def energy_from_momentum( self, s: phase_space.PhaseSpace, **kwargs ) -> jnp.ndarray: """Computes the energy of the system in momentum coordinates.""" return self.hamiltonian(s, **kwargs) def energy_from_velocity( self, s: phase_space.PhaseSpace, **kwargs ) -> jnp.ndarray: """Computes the energy of the system in velocity coordinates.""" q, q_dot = s.q, s.p p = self.momentum_from_velocity(q, q_dot, **kwargs) q_dot_p = jnp.sum(q_dot * p, self.features_axis) return q_dot_p - self.lagrangian(s, **kwargs) def velocity_and_acceleration( self, q: jnp.ndarray, q_dot: jnp.ndarray, **kwargs ) -> phase_space.TangentPhaseSpace: """Computes the velocity and acceleration of the system in velocity coordinates.""" def local_lagrangian(*q_and_q_dot): # We take the sum so we can easily take gradients return jnp.sum(self.lagrangian( phase_space.PhaseSpace(*q_and_q_dot), **kwargs)) grad_q = jax.grad(local_lagrangian, 0)(q, q_dot) grad_q_dot_func = jax.grad(local_lagrangian, 1) _, grad_q_dot_grad_q_times_q_dot = jax.jvp(grad_q_dot_func, (q, q_dot), (q_dot, jnp.zeros_like(q_dot))) pre_acc_vector = grad_q - grad_q_dot_grad_q_times_q_dot if self.kinetic_func_form in ("pure_quad", "matrix_diag_quad", "matrix_quad", "matrix_dep_diag_quad", "matrix_dep_quad"): q_dot_dot = self.mass_matrix_inv_mul(q, pre_acc_vector, **kwargs) else: hess_q_dot = jax.vmap(jax.hessian(local_lagrangian, 1))(q, q_dot) q_dot_dot = jnp.linalg.solve(hess_q_dot, pre_acc_vector) return phase_space.TangentPhaseSpace(q_dot, q_dot_dot) def simulate( self, y0: phase_space.PhaseSpace, dt: Union[float, jnp.ndarray], num_steps_forward: int, num_steps_backward: int, include_y0: bool, return_stats: bool = True, **nets_kwargs ) -> _PhysicsSimulationOutput: """Simulates the continuous dynamics of the physical system. Args: y0: Initial state of the system. dt: The size of the time intervals at which to evolve the system. num_steps_forward: Number of steps to make into the future. num_steps_backward: Number of steps to make into the past. include_y0: Whether to include the initial state in the result. return_stats: Whether to return additional statistics. **nets_kwargs: Keyword arguments to pass to the networks. Returns: * The state of the system evolved as many steps as specified by the arguments into the past and future, all in chronological order. * Optionally return a dictionary of additional statistics. For the moment this only returns the energy of the system at each evaluation point. """ # Define the dynamics if self.simulation_space == "velocity": dy_dt = lambda t_, y: self.velocity_and_acceleration( # pylint: disable=g-long-lambda y.q, y.p, **nets_kwargs) # Special Haiku magic to avoid tracer issues if hk.running_init(): return self.lagrangian(y0, **nets_kwargs) # pytype: disable=bad-return-type # jax-ndarray else: hamiltonian = lambda t_, y: self.hamiltonian(y, **nets_kwargs) dy_dt = phase_space.poisson_bracket_with_q_and_p(hamiltonian) if hk.running_init(): return self.hamiltonian(y0, **nets_kwargs) # pytype: disable=bad-return-type # jax-ndarray # Optionally switch coordinate frame if self.input_space == "velocity" and self.simulation_space == "momentum": p = self.momentum_from_velocity(y0.q, y0.p, **nets_kwargs) y0 = phase_space.PhaseSpace(y0.q, p) if self.input_space == "momentum" and self.simulation_space == "velocity": q_dot = self.velocity_from_momentum(y0.q, y0.p, **nets_kwargs) y0 = phase_space.PhaseSpace(y0.q, q_dot) yt = integrators.solve_ivp_dt_two_directions( fun=dy_dt, y0=y0, t0=0.0, dt=dt, method=self.integrator_method, num_steps_forward=num_steps_forward, num_steps_backward=num_steps_backward, include_y0=include_y0, steps_per_dt=self.steps_per_dt, ode_int_kwargs=self.ode_int_kwargs ) # Make time axis second yt = jax.tree_map(lambda x: jnp.swapaxes(x, 0, 1), yt) # Compute energies for the full trajectory yt_energy = jax.tree_map(utils.merge_first_dims, yt) if self.simulation_space == "momentum": energy = self.energy_from_momentum(yt_energy, **nets_kwargs) else: energy = self.energy_from_velocity(yt_energy, **nets_kwargs) energy = energy.reshape(yt.q.shape[:2]) # Optionally switch back to input coordinate frame if self.input_space == "velocity" and self.simulation_space == "momentum": q_dot = self.velocity_from_momentum(yt.q, yt.p, **nets_kwargs) yt = phase_space.PhaseSpace(yt.q, q_dot) if self.input_space == "momentum" and self.simulation_space == "velocity": p = self.momentum_from_velocity(yt.q, yt.p, **nets_kwargs) yt = phase_space.PhaseSpace(yt.q, p) # Compute energy deficit t = energy.shape[-1] non_zero_diffs = float((t * (t - 1)) // 2) energy_deficits = jnp.abs(energy[..., None, :] - energy[..., None]) avg_deficit = jnp.sum(energy_deficits, axis=(-2, -1)) / non_zero_diffs max_deficit = jnp.max(energy_deficits) # Return the states and energies if return_stats: return yt, dict(avg_energy_deficit=avg_deficit, max_energy_deficit=max_deficit) else: return yt def __call__(self, *args, **kwargs): return self.simulate(*args, **kwargs) class OdeNetwork(hk.Module): """A simple haiku module for constructing a NeuralODE.""" def __init__( self, system_dim: int, net_kwargs: Mapping[str, Any], integrator_method: Optional[str] = None, steps_per_dt: int = 1, ode_int_kwargs: Optional[Mapping[str, float]] = None, use_scan: bool = True, network_creation_func=networks.make_flexible_net, name: Optional[str] = None, ): super().__init__(name=name) ode_int_kwargs = dict(ode_int_kwargs or {}) ode_int_kwargs.setdefault("rtol", 1e-6) ode_int_kwargs.setdefault("atol", 1e-6) ode_int_kwargs.setdefault("mxstep", 50) self.system_dim = system_dim self.integrator_method = integrator_method or "adaptive" self.steps_per_dt = steps_per_dt self.ode_int_kwargs = ode_int_kwargs self.net_kwargs = net_kwargs self.use_scan = use_scan self.core = network_creation_func( output_dims=system_dim, name="Net", **net_kwargs) def simulate( self, y0: jnp.ndarray, dt: Union[float, jnp.ndarray], num_steps_forward: int, num_steps_backward: int, include_y0: bool, return_stats: bool = True, **nets_kwargs ) -> Union[jnp.ndarray, Tuple[jnp.ndarray, Mapping[str, jnp.ndarray]]]: """Simulates the continuous dynamics of the ODE specified by the network. Args: y0: Initial state of the system. dt: The size of the time intervals at which to evolve the system. num_steps_forward: Number of steps to make into the future. num_steps_backward: Number of steps to make into the past. include_y0: Whether to include the initial state in the result. return_stats: Whether to return additional statistics. **nets_kwargs: Keyword arguments to pass to the networks. Returns: * The state of the system evolved as many steps as specified by the arguments into the past and future, all in chronological order. * Optionally return a dictionary of additional statistics. For the moment this is just an empty dictionary. """ if hk.running_init(): return self.core(y0, **nets_kwargs) yt = integrators.solve_ivp_dt_two_directions( fun=lambda t, y: self.core(y, **nets_kwargs), y0=y0, t0=0.0, dt=dt, method=self.integrator_method, num_steps_forward=num_steps_forward, num_steps_backward=num_steps_backward, include_y0=include_y0, steps_per_dt=self.steps_per_dt, ode_int_kwargs=self.ode_int_kwargs ) # Make time axis second yt = jax.tree_map(lambda x: jnp.swapaxes(x, 0, 1), yt) if return_stats: return yt, dict() else: return yt def __call__(self, *args, **kwargs): return self.simulate(*args, **kwargs) class DiscreteDynamicsNetwork(hk.Module): """A simple haiku module for constructing a discrete dynamics network.""" def __init__( self, system_dim: int, residual: bool, net_kwargs: Mapping[str, Any], use_scan: bool = True, network_creation_func=networks.make_flexible_net, name: Optional[str] = None, ): super().__init__(name=name) self.system_dim = system_dim self.residual = residual self.net_kwargs = net_kwargs self.use_scan = use_scan self.core = network_creation_func( output_dims=system_dim, name="Net", **net_kwargs) def simulate( self, y0: jnp.ndarray, num_steps_forward: int, include_y0: bool, return_stats: bool = True, **nets_kwargs ) -> Union[jnp.ndarray, Tuple[jnp.ndarray, Mapping[str, jnp.ndarray]]]: """Simulates the dynamics of the discrete system. Args: y0: Initial state of the system. num_steps_forward: Number of steps to make into the future. include_y0: Whether to include the initial state in the result. return_stats: Whether to return additional statistics. **nets_kwargs: Keyword arguments to pass to the networks. Returns: * The state of the system evolved as many steps as specified by the arguments into the past and future, all in chronological order. * Optionally return a dictionary of additional statistics. For the moment this is just an empty dictionary. """ if num_steps_forward < 0: raise ValueError("It is required to unroll at least one step.") nets_kwargs.pop("dt", None) nets_kwargs.pop("num_steps_backward", None) if hk.running_init(): return self.core(y0, **nets_kwargs) def step(*args): y, _ = args if self.residual: y_next = y + self.core(y, **nets_kwargs) else: y_next = self.core(y, **nets_kwargs) return y_next, y_next if self.use_scan: _, yt = jax.lax.scan(step, init=y0, xs=None, length=num_steps_forward) if include_y0: yt = jnp.concatenate([y0[None], yt], axis=0) # Make time axis second yt = jax.tree_map(lambda x: jnp.swapaxes(x, 0, 1), yt) else: yt = [y0] for _ in range(num_steps_forward): yt.append(step(yt[-1], None)[0]) if not include_y0: yt = yt[1:] if len(yt) == 1: yt = yt[0][:, None] else: yt = jax.tree_map(lambda args: jnp.stack(args, 1), yt) if return_stats: return yt, dict() else: return yt def __call__(self, *args, **kwargs): return self.simulate(*args, **kwargs) ================================================ FILE: physics_inspired_models/models/networks.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Module containing all of the networks as Haiku modules.""" from typing import Any, Callable, Mapping, Optional, Sequence, Union from absl import logging import distrax import haiku as hk import jax.numpy as jnp from physics_inspired_models import utils Activation = Union[str, Callable[[jnp.ndarray], jnp.ndarray]] class DenseNet(hk.Module): """A feed forward network (MLP).""" def __init__( self, num_units: Sequence[int], activate_final: bool = False, activation: Activation = "leaky_relu", name: Optional[str] = None): super().__init__(name=name) self.num_units = num_units self.num_layers = len(self.num_units) self.activate_final = activate_final self.activation = utils.get_activation(activation) self.linear_modules = [] for i in range(self.num_layers): self.linear_modules.append( hk.Linear( output_size=self.num_units[i], name=f"ff_{i}" ) ) def __call__(self, inputs: jnp.ndarray, is_training: bool): net = inputs for i, linear in enumerate(self.linear_modules): net = linear(net) if i < self.num_layers - 1 or self.activate_final: net = self.activation(net) return net class Conv2DNet(hk.Module): """Convolutional Network.""" def __init__( self, output_channels: Sequence[int], kernel_shapes: Union[int, Sequence[int]] = 3, strides: Union[int, Sequence[int]] = 1, padding: Union[str, Sequence[str]] = "SAME", data_format: str = "NHWC", with_batch_norm: bool = False, activate_final: bool = False, activation: Activation = "leaky_relu", name: Optional[str] = None): super().__init__(name=name) self.output_channels = tuple(output_channels) self.num_layers = len(self.output_channels) self.kernel_shapes = utils.bcast_if(kernel_shapes, int, self.num_layers) self.strides = utils.bcast_if(strides, int, self.num_layers) self.padding = utils.bcast_if(padding, str, self.num_layers) self.data_format = data_format self.with_batch_norm = with_batch_norm self.activate_final = activate_final self.activation = utils.get_activation(activation) if len(self.kernel_shapes) != self.num_layers: raise ValueError(f"Kernel shapes is of size {len(self.kernel_shapes)}, " f"while output_channels is of size{self.num_layers}.") if len(self.strides) != self.num_layers: raise ValueError(f"Strides is of size {len(self.kernel_shapes)}, while " f"output_channels is of size{self.num_layers}.") if len(self.padding) != self.num_layers: raise ValueError(f"Padding is of size {len(self.padding)}, while " f"output_channels is of size{self.num_layers}.") self.conv_modules = [] self.bn_modules = [] for i in range(self.num_layers): self.conv_modules.append( hk.Conv2D( output_channels=self.output_channels[i], kernel_shape=self.kernel_shapes[i], stride=self.strides[i], padding=self.padding[i], data_format=data_format, name=f"conv_2d_{i}") ) if with_batch_norm: self.bn_modules.append( hk.BatchNorm( create_offset=True, create_scale=False, decay_rate=0.999, name=f"batch_norm_{i}") ) else: self.bn_modules.append(None) def __call__(self, inputs: jnp.ndarray, is_training: bool): assert inputs.ndim == 4 net = inputs for i, (conv, bn) in enumerate(zip(self.conv_modules, self.bn_modules)): net = conv(net) # Batch norm if bn is not None: net = bn(net, is_training=is_training) if i < self.num_layers - 1 or self.activate_final: net = self.activation(net) return net class SpatialConvEncoder(hk.Module): """Spatial Convolutional Encoder for learning the Hamiltonian.""" def __init__( self, latent_dim: int, conv_channels: Union[Sequence[int], int], num_blocks: int, blocks_depth: int = 2, distribution_name: str = "diagonal_normal", aggregation_type: Optional[str] = None, data_format: str = "NHWC", activation: Activation = "leaky_relu", scale_factor: int = 2, kernel_shapes: Union[Sequence[int], int] = 3, padding: Union[Sequence[str], str] = "SAME", name: Optional[str] = None): super().__init__(name=name) if aggregation_type not in (None, "max", "mean", "linear_projection"): raise ValueError(f"Unrecognized aggregation_type={aggregation_type}.") self.latent_dim = latent_dim self.conv_channels = conv_channels self.num_blocks = num_blocks self.scale_factor = scale_factor self.data_format = data_format self.distribution_name = distribution_name self.aggregation_type = aggregation_type # Compute the required size of the output if distribution_name is None: self.output_dim = latent_dim elif distribution_name == "diagonal_normal": self.output_dim = 2 * latent_dim else: raise ValueError(f"Unrecognized distribution_name={distribution_name}.") if isinstance(conv_channels, int): conv_channels = [[conv_channels] * blocks_depth for _ in range(num_blocks)] conv_channels[-1] += [self.output_dim] else: assert isinstance(conv_channels, (list, tuple)) assert len(conv_channels) == num_blocks conv_channels = list(list(c) for c in conv_channels) conv_channels[-1].append(self.output_dim) if isinstance(kernel_shapes, tuple): kernel_shapes = list(kernel_shapes) # Convolutional blocks self.blocks = [] for i, channels in enumerate(conv_channels): if isinstance(kernel_shapes, int): extra_kernel_shapes = 0 else: extra_kernel_shapes = [3] * (len(channels) - len(kernel_shapes)) self.blocks.append(Conv2DNet( output_channels=channels, kernel_shapes=kernel_shapes + extra_kernel_shapes, strides=[self.scale_factor] + [1] * (len(channels) - 1), padding=padding, data_format=data_format, with_batch_norm=False, activate_final=i < num_blocks - 1, activation=activation, name=f"block_{i}" )) def spatial_aggregation(self, x: jnp.ndarray) -> jnp.ndarray: if self.aggregation_type is None: return x axis = (1, 2) if self.data_format == "NHWC" else (2, 3) if self.aggregation_type == "max": return jnp.max(x, axis=axis) if self.aggregation_type == "mean": return jnp.mean(x, axis=axis) if self.aggregation_type == "linear_projection": x = x.reshape(x.shape[:-3] + (-1,)) return hk.Linear(self.output_dim, name="LinearProjection")(x) raise NotImplementedError() def make_distribution(self, net_output: jnp.ndarray) -> distrax.Distribution: if self.distribution_name is None: return net_output elif self.distribution_name == "diagonal_normal": if self.aggregation_type is None: split_axis, num_axes = self.data_format.index("C"), 3 else: split_axis, num_axes = 1, 1 # Add an extra axis if the input has more than 1 batch dimension split_axis += net_output.ndim - num_axes - 1 loc, log_scale = jnp.split(net_output, 2, axis=split_axis) return distrax.Normal(loc, jnp.exp(log_scale)) else: raise NotImplementedError() def __call__( self, inputs: jnp.ndarray, is_training: bool ) -> Union[jnp.ndarray, distrax.Distribution]: # Treat any extra dimensions (like time) as the batch batched_shape = inputs.shape[:-3] net = jnp.reshape(inputs, (-1,) + inputs.shape[-3:]) # Apply all blocks in sequence for block in self.blocks: net = block(net, is_training=is_training) # Final projection net = self.spatial_aggregation(net) # Reshape back to correct dimensions (like batch + time) net = jnp.reshape(net, batched_shape + net.shape[1:]) # Return a distribution over the observations return self.make_distribution(net) class SpatialConvDecoder(hk.Module): """Spatial Convolutional Decoder for learning the Hamiltonian.""" def __init__( self, initial_spatial_shape: Sequence[int], conv_channels: Union[Sequence[int], int], num_blocks: int, max_de_aggregation_dims: int, blocks_depth: int = 2, scale_factor: int = 2, output_channels: int = 3, h_const_channels: int = 2, data_format: str = "NHWC", activation: Activation = "leaky_relu", learned_sigma: bool = False, de_aggregation_type: Optional[str] = None, final_activation: Activation = "sigmoid", discard_half_de_aggregated: bool = False, kernel_shapes: Union[Sequence[int], int] = 3, padding: Union[Sequence[str], str] = "SAME", name: Optional[str] = None): super().__init__(name=name) if de_aggregation_type not in (None, "tile", "linear_projection"): raise ValueError(f"Unrecognized de_aggregation_type=" f"{de_aggregation_type}.") self.num_blocks = num_blocks self.scale_factor = scale_factor self.h_const_channels = h_const_channels self.data_format = data_format self.learned_sigma = learned_sigma self.initial_spatial_shape = tuple(initial_spatial_shape) self.final_activation = utils.get_activation(final_activation) self.de_aggregation_type = de_aggregation_type self.max_de_aggregation_dims = max_de_aggregation_dims self.discard_half_de_aggregated = discard_half_de_aggregated if isinstance(conv_channels, int): conv_channels = [[conv_channels] * blocks_depth for _ in range(num_blocks)] conv_channels[-1] += [output_channels] else: assert isinstance(conv_channels, (list, tuple)) assert len(conv_channels) == num_blocks conv_channels = list(list(c) for c in conv_channels) conv_channels[-1].append(output_channels) # Convolutional blocks self.blocks = [] for i, channels in enumerate(conv_channels): is_final_block = i == num_blocks - 1 self.blocks.append( Conv2DNet( # pylint: disable=g-complex-comprehension output_channels=channels, kernel_shapes=kernel_shapes, strides=1, padding=padding, data_format=data_format, with_batch_norm=False, activate_final=not is_final_block, activation=activation, name=f"block_{i}" )) def spatial_de_aggregation(self, x: jnp.ndarray) -> jnp.ndarray: if self.de_aggregation_type is None: assert x.ndim >= 4 if self.data_format == "NHWC": assert x.shape[1:3] == self.initial_spatial_shape elif self.data_format == "NCHW": assert x.shape[2:4] == self.initial_spatial_shape return x elif self.de_aggregation_type == "linear_projection": assert x.ndim == 2 n, d = x.shape d = min(d, self.max_de_aggregation_dims or d) out_d = d * self.initial_spatial_shape[0] * self.initial_spatial_shape[1] x = hk.Linear(out_d, name="LinearProjection")(x) if self.data_format == "NHWC": shape = (n,) + self.initial_spatial_shape + (d,) else: shape = (n, d) + self.initial_spatial_shape return x.reshape(shape) elif self.de_aggregation_type == "tile": assert x.ndim == 2 if self.data_format == "NHWC": repeats = (1,) + self.initial_spatial_shape + (1,) x = x[:, None, None, :] else: repeats = (1, 1) + self.initial_spatial_shape x = x[:, :, None, None] return jnp.tile(x, repeats) else: raise NotImplementedError() def add_constant_channels(self, inputs: jnp.ndarray) -> jnp.ndarray: # -------------------------------------------- # This is purely for TF compatibility purposes if self.discard_half_de_aggregated: axis = self.data_format.index("C") inputs, _ = jnp.split(inputs, 2, axis=axis) # -------------------------------------------- # An extra constant channels if self.data_format == "NHWC": h_shape = self.initial_spatial_shape + (self.h_const_channels,) else: h_shape = (self.h_const_channels,) + self.initial_spatial_shape h_const = hk.get_parameter("h", h_shape, dtype=inputs.dtype, init=hk.initializers.Constant(1)) h_const = jnp.tile(h_const, reps=[inputs.shape[0], 1, 1, 1]) return jnp.concatenate([h_const, inputs], axis=self.data_format.index("C")) def make_distribution(self, net_output: jnp.ndarray) -> distrax.Distribution: if self.learned_sigma: init = hk.initializers.Constant(- jnp.log(2.0) / 2.0) log_scale = hk.get_parameter("log_scale", shape=(), dtype=net_output.dtype, init=init) scale = jnp.full_like(net_output, jnp.exp(log_scale)) else: scale = jnp.full_like(net_output, 1 / jnp.sqrt(2.0)) return distrax.Normal(net_output, scale) def __call__( self, inputs: jnp.ndarray, is_training: bool ) -> distrax.Distribution: # Apply the spatial de-aggregation inputs = self.spatial_de_aggregation(inputs) # Add the parameterized constant channels net = self.add_constant_channels(inputs) # Apply all the blocks for block in self.blocks: # Up-sample the image net = utils.nearest_neighbour_upsampling(net, self.scale_factor) # Apply the convolutional block net = block(net, is_training=is_training) # Apply any specific output nonlinearity net = self.final_activation(net) # Construct the distribution over the observations return self.make_distribution(net) def make_flexible_net( net_type: str, output_dims: int, conv_channels: Union[Sequence[int], int], num_units: Union[Sequence[int], int], num_layers: Optional[int], activation: Activation, activate_final: bool = False, kernel_shapes: Union[Sequence[int], int] = 3, strides: Union[Sequence[int], int] = 1, padding: Union[Sequence[str], str] = "SAME", name: Optional[str] = None, **unused_kwargs: Mapping[str, Any] ): """Commonly used for creating a flexible network.""" if unused_kwargs: logging.warning("Unused kwargs of `make_flexible_net`: %s", str(unused_kwargs)) if net_type == "mlp": if isinstance(num_units, int): assert num_layers is not None num_units = [num_units] * (num_layers - 1) + [output_dims] else: num_units = list(num_units) + [output_dims] return DenseNet( num_units=num_units, activation=activation, activate_final=activate_final, name=name ) elif net_type == "conv": if isinstance(conv_channels, int): assert num_layers is not None conv_channels = [conv_channels] * (num_layers - 1) + [output_dims] else: conv_channels = list(conv_channels) + [output_dims] return Conv2DNet( output_channels=conv_channels, kernel_shapes=kernel_shapes, strides=strides, padding=padding, activation=activation, activate_final=activate_final, name=name ) elif net_type == "transformer": raise NotImplementedError() else: raise ValueError(f"Unrecognized net_type={net_type}.") def make_flexible_recurrent_net( core_type: str, net_type: str, output_dims: int, num_units: Union[Sequence[int], int], num_layers: Optional[int], activation: Activation, activate_final: bool = False, name: Optional[str] = None, **unused_kwargs ): """Commonly used for creating a flexible recurrences.""" if net_type != "mlp": raise ValueError("We do not support convolutional recurrent nets atm.") if unused_kwargs: logging.warning("Unused kwargs of `make_flexible_recurrent_net`: %s", str(unused_kwargs)) if isinstance(num_units, (list, tuple)): num_units = list(num_units) + [output_dims] num_layers = len(num_units) else: assert num_layers is not None num_units = [num_units] * (num_layers - 1) + [output_dims] name = name or f"{core_type.upper()}" activation = utils.get_activation(activation) core_list = [] for i, n in enumerate(num_units): if core_type.lower() == "vanilla": core_list.append(hk.VanillaRNN(hidden_size=n, name=f"{name}_{i}")) elif core_type.lower() == "lstm": core_list.append(hk.LSTM(hidden_size=n, name=f"{name}_{i}")) elif core_type.lower() == "gru": core_list.append(hk.GRU(hidden_size=n, name=f"{name}_{i}")) else: raise ValueError(f"Unrecognized core_type={core_type}.") if i != num_layers - 1: core_list.append(activation) if activate_final: core_list.append(activation) return hk.DeepRNN(core_list, name="RNN") ================================================ FILE: physics_inspired_models/requirements.txt ================================================ git+https://github.com/deepmind/dm_hamiltonian_dynamics_suite@main#egg=dm_hamiltonian_dynamics_suite absl-py==0.12.0 numpy>=1.16.4 scikit-learn>=1.0 typing>=3.7.4.3 jax==0.2.20 jaxline==0.0.3 distrax==0.0.2 optax==0.0.6 dm-haiku==0.0.3 ================================================ FILE: physics_inspired_models/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from setuptools import setup REQUIRED_PACKAGES = ( "dm_hamiltonian_dynamics_suite@git+https://github.com/deepmind/dm_hamiltonian_dynamics_suite", # pylint: disable=line-too-long. "absl-py>=0.12.0", "numpy>=1.16.4", "scikit-learn>=1.0", "typing>=3.7.4.3", "jax==0.2.20", "jaxline==0.0.3", "distrax==0.0.2", "optax==0.0.6", "dm-haiku==0.0.3", ) LONG_DESCRIPTION = "\n".join([ "A codebase containing the implementation of the following models:", "Hamiltonian Generative Network (HGN)", "Lagrangian Generative Network (LGN)", "Neural ODE", "Recurrent Generative Network (RGN)", "and RNN, LSTM and GRU.", "This is code accompanying the publication of:" ]) setup( name="physics_inspired_models", version="0.0.1", description="Implementation of multiple physically inspired models.", long_description=LONG_DESCRIPTION, url="https://github.com/deepmind/deepmind-research/physics_inspired_models", author="DeepMind", package_dir={"physics_inspired_models": "."}, packages=["physics_inspired_models", "physics_inspired_models.models"], install_requires=REQUIRED_PACKAGES, platforms=["any"], license="Apache License, Version 2.0", ) ================================================ FILE: physics_inspired_models/utils.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities functions for Jax.""" from collections import abc import functools from typing import Any, Callable, Dict, Mapping, Union import distrax import jax from jax import core from jax import lax from jax import nn import jax.numpy as jnp from jax.tree_util import register_pytree_node from jaxline import utils import numpy as np HaikuParams = Mapping[str, Mapping[str, jnp.ndarray]] Params = Union[Mapping[str, jnp.ndarray], HaikuParams, jnp.ndarray] _Activation = Callable[[jnp.ndarray], jnp.ndarray] tf_leaky_relu = functools.partial(nn.leaky_relu, negative_slope=0.2) def filter_only_scalar_stats(stats): return {k: v for k, v in stats.items() if v.size == 1} def to_numpy(obj): return jax.tree_map(np.array, obj) @jax.custom_gradient def geco_lagrange_product(lagrange_multiplier, constraint_ema, constraint_t): """Modifies the gradients so that they work as described in GECO. The evaluation gives: lagrange * C_ema The gradient w.r.t lagrange: - g * C_t The gradient w.r.t constraint_ema: 0.0 The gradient w.r.t constraint_t: g * lagrange Note that if you pass the same value for `constraint_ema` and `constraint_t` this would only flip the gradient for the lagrange multiplier. Args: lagrange_multiplier: The lagrange multiplier constraint_ema: The moving average of the constraint constraint_t: The current constraint Returns: """ def grad(gradient): return (- gradient * constraint_t, jnp.zeros_like(constraint_ema), gradient * lagrange_multiplier) return lagrange_multiplier * constraint_ema, grad def bcast_if(x, t, n): return [x] * n if isinstance(x, t) else x def stack_time_into_channels( images: jnp.ndarray, data_format: str ) -> jnp.ndarray: axis = data_format.index("C") list_of_time = [jnp.squeeze(v, axis=1) for v in jnp.split(images, images.shape[1], axis=1)] return jnp.concatenate(list_of_time, axis) def stack_device_dim_into_batch(obj): return jax.tree_map(lambda x: x.reshape((-1,) + x.shape[2:]), obj) def nearest_neighbour_upsampling(x, scale, data_format="NHWC"): """Performs nearest-neighbour upsampling.""" if data_format == "NCHW": b, c, h, w = x.shape x = jnp.reshape(x, [b, c, h, 1, w, 1]) ones = jnp.ones([1, 1, 1, scale, 1, scale], dtype=x.dtype) return jnp.reshape(x * ones, [b, c, scale * h, scale * w]) elif data_format == "NHWC": b, h, w, c = x.shape x = jnp.reshape(x, [b, h, 1, w, 1, c]) ones = jnp.ones([1, 1, scale, 1, scale, 1], dtype=x.dtype) return jnp.reshape(x * ones, [b, scale * h, scale * w, c]) else: raise ValueError(f"Unrecognized data_format={data_format}.") def get_activation(arg: Union[_Activation, str]) -> _Activation: """Returns an activation from provided string.""" if isinstance(arg, str): # Try fetch in order - [this module, jax.nn, jax.numpy] if arg in globals(): return globals()[arg] if hasattr(nn, arg): return getattr(nn, arg) elif hasattr(jnp, arg): return getattr(jnp, arg) else: raise ValueError(f"Unrecognized activation with name {arg}.") if not callable(arg): raise ValueError(f"Expected a callable, but got {type(arg)}") return arg def merge_first_dims(x: jnp.ndarray, num_dims_to_merge: int = 2) -> jnp.ndarray: return x.reshape((-1,) + x.shape[num_dims_to_merge:]) def extract_image( inputs: Union[jnp.ndarray, Mapping[str, jnp.ndarray]] ) -> jnp.ndarray: """Extracts a tensor with key `image` or `x_image` if it is a dict, otherwise returns the inputs.""" if isinstance(inputs, dict): if "image" in inputs: return inputs["image"] else: return inputs["x_image"] elif isinstance(inputs, jnp.ndarray): return inputs raise NotImplementedError(f"Not implemented of inputs of type" f" {type(inputs)}.") def extract_gt_state(inputs: Any) -> jnp.ndarray: if isinstance(inputs, dict): return inputs["x"] elif not isinstance(inputs, jnp.ndarray): raise NotImplementedError(f"Not implemented of inputs of type" f" {type(inputs)}.") return inputs def reshape_latents_conv_to_flat(conv_latents, axis_n_to_keep=1): q, p = jnp.split(conv_latents, 2, axis=-1) q = jax.tree_map(lambda x: x.reshape(x.shape[:axis_n_to_keep] + (-1,)), q) p = jax.tree_map(lambda x: x.reshape(x.shape[:axis_n_to_keep] + (-1,)), p) flat_latents = jnp.concatenate([q, p], axis=-1) return flat_latents def triu_matrix_from_v(x, ndim): assert x.shape[-1] == (ndim * (ndim + 1)) // 2 matrix = jnp.zeros(x.shape[:-1] + (ndim, ndim)) idx = jnp.triu_indices(ndim) index_update = lambda x, idx, y: x.at[idx].set(y) for _ in range(x.ndim - 1): index_update = jax.vmap(index_update, in_axes=(0, None, 0)) return index_update(matrix, idx, x) def flatten_dict(d, parent_key: str = "", sep: str = "_") -> Dict[str, Any]: items = [] for k, v in d.items(): new_key = parent_key + sep + k if parent_key else k if isinstance(v, abc.MutableMapping): items.extend(flatten_dict(v, new_key, sep=sep).items()) else: items.append((new_key, v)) return dict(items) def convert_to_pytype(target, reference): """Makes target the same pytype as reference, by jax.tree_flatten.""" _, pytree = jax.tree_flatten(reference) leaves, _ = jax.tree_flatten(target) return jax.tree_unflatten(pytree, leaves) def func_if_not_scalar(func): """Makes a function that uses func only on non-scalar values.""" @functools.wraps(func) def wrapped(array, axis=0): if array.ndim == 0: return array return func(array, axis=axis) return wrapped mean_if_not_scalar = func_if_not_scalar(jnp.mean) class MultiBatchAccumulator(object): """Class for abstracting statistics accumulation over multiple batches.""" def __init__(self): self._obj = None self._obj_max = None self._obj_min = None self._num_samples = None def add(self, averaged_values, num_samples): """Adds an element to the moving average and the max.""" if self._obj is None: self._obj_max = jax.tree_map(lambda y: y * 1.0, averaged_values) self._obj_min = jax.tree_map(lambda y: y * 1.0, averaged_values) self._obj = jax.tree_map(lambda y: y * num_samples, averaged_values) self._num_samples = num_samples else: self._obj_max = jax.tree_map(jnp.maximum, self._obj_max, averaged_values) self._obj_min = jax.tree_map(jnp.minimum, self._obj_min, averaged_values) self._obj = jax.tree_map(lambda x, y: x + y * num_samples, self._obj, averaged_values) self._num_samples += num_samples def value(self): return jax.tree_map(lambda x: x / self._num_samples, self._obj) def max(self): return jax.tree_map(float, self._obj_max) def min(self): return jax.tree_map(float, self._obj_min) def sum(self): return self._obj register_pytree_node( distrax.Normal, lambda instance: ([instance.loc, instance.scale], None), lambda _, args: distrax.Normal(*args) ) def inner_product(x: Any, y: Any) -> jnp.ndarray: products = jax.tree_map(lambda x_, y_: jnp.sum(x_ * y_), x, y) return sum(jax.tree_leaves(products)) get_first = utils.get_first bcast_local_devices = utils.bcast_local_devices py_prefetch = utils.py_prefetch p_split = jax.pmap(lambda x, num: list(jax.random.split(x, num)), static_broadcasted_argnums=1) def wrap_if_pmap(p_func): def p_func_if_pmap(obj, axis_name): try: core.axis_frame(axis_name) return p_func(obj, axis_name) except NameError: return obj return p_func_if_pmap pmean_if_pmap = wrap_if_pmap(lax.pmean) psum_if_pmap = wrap_if_pmap(lax.psum) ================================================ FILE: physics_planning_games/README.md ================================================ # Physically Embedded Planning Environments This repository contains the three environments introduced in 'Physically Embedded Planning Problems: New Challenges for Reinforcement Learning' If you use this package, please cite our accompanying [tech report]: ``` @misc{mirza2020physically, title={Physically Embedded Planning Problems: New Challenges for Reinforcement Learning}, author={Mehdi Mirza and Andrew Jaegle and Jonathan J. Hunt and Arthur Guez and Saran Tunyasuvunakool and Alistair Muldal and Théophane Weber and Peter Karkus and Sébastien Racanière and Lars Buesing and Timothy Lillicrap and Nicolas Heess}, year={2020}, eprint={2009.05524}, archivePrefix={arXiv}, primaryClass={cs.AI} } ``` ## Requirements and Installation This repository is divided into 'mujoban' and 'board_games' folders. Both of them are built on top of [dm_control] which requires MuJoCo. Please follow [these] instructions to install MuJoCo. Other dependencies can be installed by: ``` pip3 install -r requirements.txt ``` ### Board games The game logic is based on [open_spiel]. Please install as instructed [here]. [gnugo] is required to play the game of Go against a non-random opponent. [gnugo] can be installed in Ubuntu by: ``` apt install gnugo ``` Board game scripts expect gnugo binary to be at: `/usr/games/gnugo`. Users can change this path inside `board_games/go_logic.py` This library has only been tested on Ubuntu. ## Example usage The code snippets below show examples of instantiating each of the environments. ### Mujoban ```python from dm_control import composer from dm_control.locomotion import walkers from physics_planning_games.mujoban.mujoban import Mujoban from physics_planning_games.mujoban.mujoban_level import MujobanLevel from physics_planning_games.mujoban.boxoban import boxoban_level_generator walker = walkers.JumpingBallWithHead(add_ears=True, camera_height=0.25) maze = MujobanLevel(boxoban_level_generator) task = Mujoban(walker=walker, maze=maze, control_timestep=0.1, top_camera_height=96, top_camera_width=96) env = composer.Environment(time_limit=1000, task=task) ``` ### Board games ```python from physics_planning_games import board_games environment_name = 'go_7x7' env = board_games.load(environment_name=environment_name) ``` ### Stepping through environment. The returned environments are of type of `dm_env.Environment` and can be stepped through as shown here with random actions: ```python import numpy as np timestep = env.reset() action_spec = env.action_spec() while True: action = np.stack([ np.random.uniform(low=minimum, high=maximum) for minimum, maximum in zip(action_spec.minimum, action_spec.maximum) ]) timestep = env.step(action) ``` ### Visualization For visualization of the environments `explore.py` loads them using the [viewer] from [dm_control]. ## More details For more details please refer to the [tech report], [dm_control] and [dm_env]. [tech report]: https://arxiv.org/abs/2009.05524 [dm_control]: https://github.com/deepmind/dm_control [dm_env]: https://github.com/deepmind/dm_env [gnugo]: https://www.gnu.org/software/gnugo/ [open_spiel]: https://github.com/deepmind/open_spiel [here]: https://github.com/deepmind/open_spiel/blob/master/docs/install.md [these]: https://github.com/deepmind/dm_control#requirements-and-installation [viewer]: https://github.com/deepmind/dm_control/tree/master/dm_control/viewer ================================================ FILE: physics_planning_games/board_games/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Physically-grounded board game environments.""" from dm_control import composer as _composer from physics_planning_games.board_games import go as _go from physics_planning_games.board_games import tic_tac_toe as _tic_tac_toe from physics_planning_games.board_games._internal import registry as _registry _registry.done_importing_tasks() ALL = tuple(_registry.get_all_names()) TAGS = tuple(_registry.get_tags()) def get_environments_by_tag(tag): """Returns the names of all environments matching a given tag. Args: tag: A string from `TAGS`. Returns: A tuple of environment names. """ return tuple(_registry.get_names_by_tag(tag)) def load(environment_name, env_kwargs=None, seed=None, time_limit=float('inf'), strip_singleton_obs_buffer_dim=False): """Loads an environment from board_games. Args: environment_name: String, the name of the environment to load. Must be in `ALL`. env_kwargs: extra params to pass to task creation. seed: Optional, either an int seed or an `np.random.RandomState` object. If None (default), the random number generator will self-seed from a platform-dependent source of entropy. time_limit: (optional) A float, the time limit in seconds beyond which an episode is forced to terminate. strip_singleton_obs_buffer_dim: (optional) A boolean, if `True`, the array shape of observations with `buffer_size == 1` will not have a leading buffer dimension. Returns: An instance of `composer.Environment`. """ if env_kwargs is not None: task = _registry.get_constructor(environment_name)(**env_kwargs) else: task = _registry.get_constructor(environment_name)() return _composer.Environment( task=task, time_limit=time_limit, strip_singleton_obs_buffer_dim=strip_singleton_obs_buffer_dim, random_state=seed) ================================================ FILE: physics_planning_games/board_games/_internal/arenas.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Board game-specific arena classes.""" from dm_control import composer from dm_control.composer.observation import observable from dm_control.mujoco import wrapper # Robot geoms will be assigned to this group in order to disable their # visibility to the top-down camera. ROBOT_GEOM_GROUP = 1 class Standard(composer.Arena): """"Board game-specific arena class.""" def _build(self, name=None): """Initializes this arena. Args: name: (optional) A string, the name of this arena. If `None`, use the model name defined in the MJCF file. """ super(Standard, self)._build(name=name) # Add visual assets. self.mjcf_model.asset.add( 'texture', type='skybox', builtin='gradient', rgb1=(0.4, 0.6, 0.8), rgb2=(0., 0., 0.), width=100, height=100) groundplane_texture = self.mjcf_model.asset.add( 'texture', name='groundplane', type='2d', builtin='checker', rgb1=(0.2, 0.3, 0.4), rgb2=(0.1, 0.2, 0.3), width=300, height=300, mark='edge', markrgb=(.8, .8, .8)) groundplane_material = self.mjcf_model.asset.add( 'material', name='groundplane', texture=groundplane_texture, texrepeat=(5, 5), texuniform='true', reflectance=0.2) # Add ground plane. self.mjcf_model.worldbody.add( 'geom', name='ground', type='plane', material=groundplane_material, size=(1, 1, 0.1), friction=(0.4,), solimp=(0.95, 0.99, 0.001), solref=(0.002, 1)) # Add lighting self.mjcf_model.worldbody.add( 'light', pos=(0, 0, 1.5), dir=(0, 0, -1), diffuse=(0.7, 0.7, 0.7), specular=(.3, .3, .3), directional='false', castshadow='true') # Add some fixed cameras to the arena. self._front_camera = self.mjcf_model.worldbody.add( 'camera', name='front', pos=(0., -0.6, 0.75), xyaxes=(1., 0., 0., 0., 0.7, 0.75)) # Ensures a 7x7 go board fits into the view from camera self._front_camera_2 = self.mjcf_model.worldbody.add( 'camera', name='front_2', pos=(0., -0.65, 0.85), xyaxes=(1., 0., 0., 0., 0.85, 0.6)) self._top_down_camera = self.mjcf_model.worldbody.add( 'camera', name='top_down', pos=(0., 0., 0.5), xyaxes=(1., 0., 0., 0., 1., 0.)) # Always initialize the free camera so that it points at the origin. self.mjcf_model.statistic.center = (0., 0., 0.) def _build_observables(self): return ArenaObservables(self) @property def front_camera(self): return self._front_camera @property def front_camera_2(self): return self._front_camera_2 @property def top_down_camera(self): return self._top_down_camera def attach_offset(self, entity, offset, attach_site=None): """Attaches another entity at a position offset from the attachment site. Args: entity: The `Entity` to attach. offset: A length 3 array-like object representing the XYZ offset. attach_site: (optional) The site to which to attach the entity's model. If not set, defaults to self.attachment_site. Returns: The frame of the attached model. """ frame = self.attach(entity, attach_site=attach_site) frame.pos = offset return frame class ArenaObservables(composer.Observables): """Observables belonging to the arena.""" @composer.observable def front_camera(self): return observable.MJCFCamera(mjcf_element=self._entity.front_camera) @composer.observable def front_camera_2(self): return observable.MJCFCamera(mjcf_element=self._entity.front_camera_2) @composer.observable def top_down_camera(self): return observable.MJCFCamera(mjcf_element=self._entity.top_down_camera) @composer.observable def top_down_camera_invisible_robot(self): # Custom scene options for making robot geoms invisible. robot_geoms_invisible = wrapper.MjvOption() robot_geoms_invisible.geomgroup[ROBOT_GEOM_GROUP] = 0 return observable.MJCFCamera(mjcf_element=self._entity.top_down_camera, scene_option=robot_geoms_invisible) ================================================ FILE: physics_planning_games/board_games/_internal/boards.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Composer entities corresponding to game boards.""" import copy import os from dm_control import composer from dm_control import mjcf import numpy as np from dm_control.utils import io as resources _TOUCH_THRESHOLD = 1e-3 # Activation threshold for touch sensors (N). # whether to display underlying sensors for Goboard (useful to align texture) _SHOW_DEBUG_GRID = False _TEXTURE_PATH = os.path.join(os.path.dirname(__file__), 'goboard_7x7.png') def _make_checkerboard(rows, columns, square_halfwidth, height=0.01, sensor_size=0.7, name='checkerboard'): """Builds a checkerboard with touch sensors centered on each square.""" root = mjcf.RootElement(model=name) black_mat = root.asset.add('material', name='black', rgba=(0.2, 0.2, 0.2, 1)) white_mat = root.asset.add('material', name='white', rgba=(0.8, 0.8, 0.8, 1)) sensor_mat = root.asset.add('material', name='sensor', rgba=(0, 1, 0, 0.3)) root.default.geom.set_attributes( type='box', size=(square_halfwidth, square_halfwidth, height)) root.default.site.set_attributes( type='box', size=(sensor_size * square_halfwidth,) * 2 + (0.5 * height,), material=sensor_mat, group=composer.SENSOR_SITES_GROUP) xpos = (np.arange(columns) - 0.5*(columns - 1)) * 2 * square_halfwidth ypos = (np.arange(rows) - 0.5*(rows - 1)) * 2 * square_halfwidth geoms = [] touch_sensors = [] for i in range(rows): for j in range(columns): geom_mat = black_mat if ((i % 2) == (j % 2)) else white_mat name = '{}_{}'.format(i, j) geoms.append( root.worldbody.add( 'geom', pos=(xpos[j], ypos[i], height), name=name, material=geom_mat)) site = root.worldbody.add('site', pos=(xpos[j], ypos[i], 2*height), name=name) touch_sensors.append(root.sensor.add('touch', site=site, name=name)) return root, geoms, touch_sensors def _make_goboard(boardsize, square_halfwidth, height=0.01, sensor_size=0.7, name='goboard'): """Builds a Go with touch sensors centered on each intersection.""" y_offset = -0.08 rows = boardsize columns = boardsize root = mjcf.RootElement(model=name) if _SHOW_DEBUG_GRID: black_mat = root.asset.add('material', name='black', rgba=(0.2, 0.2, 0.2, 0.5)) white_mat = root.asset.add('material', name='white', rgba=(0.8, 0.8, 0.8, 0.5)) else: transparent_mat = root.asset.add('material', name='intersection', rgba=(0, 1, 0, 0.0)) sensor_mat = root.asset.add('material', name='sensor', rgba=(0, 1, 0, 0.3)) contents = resources.GetResource(_TEXTURE_PATH) root.asset.add('texture', name='goboard', type='2d', file=mjcf.Asset(contents, '.png')) board_mat = root.asset.add( 'material', name='goboard', texture='goboard', texrepeat=[0.97, 0.97]) root.default.geom.set_attributes( type='box', size=(square_halfwidth, square_halfwidth, height)) root.default.site.set_attributes( type='box', size=(sensor_size * square_halfwidth,) * 2 + (0.5 * height,), material=sensor_mat, group=composer.SENSOR_SITES_GROUP) board_height = height if _SHOW_DEBUG_GRID: board_height = 0.5*height root.worldbody.add( 'geom', pos=(0, 0+y_offset, height), type='box', size=(square_halfwidth * boardsize,) * 2 + (board_height,), name=name, material=board_mat) xpos = (np.arange(columns) - 0.5*(columns - 1)) * 2 * square_halfwidth ypos = (np.arange(rows) - 0.5*(rows - 1)) * 2 * square_halfwidth + y_offset geoms = [] touch_sensors = [] for i in range(rows): for j in range(columns): name = '{}_{}'.format(i, j) if _SHOW_DEBUG_GRID: transparent_mat = black_mat if ((i % 2) == (j % 2)) else white_mat geoms.append( root.worldbody.add( 'geom', pos=(xpos[j], ypos[i], height), name=name, material=transparent_mat)) site = root.worldbody.add('site', pos=(xpos[j], ypos[i], 2*height), name=name) touch_sensors.append(root.sensor.add('touch', site=site, name=name)) pass_geom = root.worldbody.add( 'geom', pos=(0, y_offset, 0.0), size=(square_halfwidth*boardsize*2, square_halfwidth*boardsize) + (0.5 * height,), name='pass', material=transparent_mat) site = root.worldbody.add('site', pos=(0, y_offset, 0.0), size=(square_halfwidth*boardsize*2, square_halfwidth*boardsize) + (0.5 * height,), name='pass') pass_sensor = root.sensor.add('touch', site=site, name='pass') return root, geoms, touch_sensors, pass_geom, pass_sensor class CheckerBoard(composer.Entity): """An entity representing a checkerboard.""" def __init__(self, *args, **kwargs): super(CheckerBoard, self).__init__(*args, **kwargs) self._contact_from_before_substep = None def _build(self, rows=3, columns=3, square_halfwidth=0.05): """Builds a `CheckerBoard` entity. Args: rows: Integer, the number of rows. columns: Integer, the number of columns. square_halfwidth: Float, the halfwidth of the squares on the board. """ root, geoms, touch_sensors = _make_checkerboard( rows=rows, columns=columns, square_halfwidth=square_halfwidth) self._mjcf_model = root self._geoms = np.array(geoms).reshape(rows, columns) self._touch_sensors = np.array(touch_sensors).reshape(rows, columns) @property def mjcf_model(self): return self._mjcf_model def before_substep(self, physics, random_state): del random_state # Unused. # Cache a copy of the array of active contacts before each substep. self._contact_from_before_substep = [ copy.copy(c) for c in physics.data.contact ] def validate_finger_touch(self, physics, row, col, hand): # Geom for the board square geom_id = physics.bind(self._geoms[row, col]).element_id # finger geoms finger_geoms_ids = set(physics.bind(hand.finger_geoms).element_id) contacts = self._contact_from_before_substep set1, set2 = set([geom_id]), finger_geoms_ids for contact in contacts: finger_tile_contact = ((contact.geom1 in set1 and contact.geom2 in set2) or (contact.geom1 in set2 and contact.geom2 in set1)) if finger_tile_contact: return True return False def get_contact_pos(self, physics, row, col): geom_id = physics.bind(self._geoms[row, col]).element_id # Here we use the array of active contacts from the previous substep, rather # than the current values in `physics.data.contact`. This is because we use # touch sensors to detect when a square on the board is being pressed, and # the pressure readings are based on forces that were calculated at the end # of the previous substep. It's possible that `physics.data.contact` no # longer contains any active contacts involving the board geoms, even though # the touch sensors are telling us that one of the squares on the board is # being pressed. contacts = self._contact_from_before_substep relevant_contacts = [ c for c in contacts if c.geom1 == geom_id or c.geom2 == geom_id ] if relevant_contacts: # If there are multiple contacts involving this square of the board, just # pick the first one. return relevant_contacts[0].pos.copy() else: print("Touch sensor at ({},{}) doesn't have any active contacts!".format( row, col)) return False def get_contact_indices(self, physics): pressures = physics.bind(self._touch_sensors.ravel()).sensordata # If any of the touch sensors exceed the threshold, return the (row, col) # indices of the most strongly activated sensor. if np.any(pressures > _TOUCH_THRESHOLD): return np.unravel_index(np.argmax(pressures), self._touch_sensors.shape) else: return None def sample_pos_inside_touch_sensor(self, physics, random_state, row, col): bound_site = physics.bind(self._touch_sensors[row, col].site) jitter = bound_site.size * np.array([1., 1., 0.]) return bound_site.xpos + random_state.uniform(-jitter, jitter) class GoBoard(CheckerBoard): """An entity representing a Goboard.""" def _build(self, boardsize=7, square_halfwidth=0.05): # pytype: disable=signature-mismatch # overriding-default-value-checks """Builds a `GoBoard` entity. Args: boardsize: Integer, the size of the board (boardsize x boardsize). square_halfwidth: Float, the halfwidth of the squares on the board. """ if boardsize != 7: raise ValueError('Only boardsize of 7x7 is implemented at the moment') root, geoms, touch_sensors, pass_geom, pass_sensor = _make_goboard( boardsize=boardsize, square_halfwidth=square_halfwidth) self._mjcf_model = root self._geoms = np.array(geoms).reshape(boardsize, boardsize) self._touch_sensors = np.array(touch_sensors).reshape(boardsize, boardsize) self._pass_geom = pass_geom self._pass_sensor = pass_sensor def get_contact_indices(self, physics): pressures = physics.bind(self._touch_sensors.ravel()).sensordata # Deal with pass first pass_pressure = physics.bind(self._pass_sensor).sensordata if pass_pressure > np.max(pressures) and pass_pressure > _TOUCH_THRESHOLD: return -1, -1 # If any of the other touch sensors exceed the threshold, return the # (row, col) indices of the most strongly activated sensor. if np.any(pressures > _TOUCH_THRESHOLD): return np.unravel_index(np.argmax(pressures), self._touch_sensors.shape) else: return None def validate_finger_touch(self, physics, row, col, hand): # Geom for the board square if row == -1 and col == -1: geom_id = physics.bind(self._pass_geom).element_id else: geom_id = physics.bind(self._geoms[row, col]).element_id # finger geoms finger_geoms_ids = set(physics.bind(hand.finger_geoms).element_id) contacts = self._contact_from_before_substep set1, set2 = set([geom_id]), finger_geoms_ids for contact in contacts: finger_tile_contact = ((contact.geom1 in set1 and contact.geom2 in set2) or (contact.geom1 in set2 and contact.geom2 in set1)) if finger_tile_contact: return True return False def sample_pos_inside_touch_sensor(self, physics, random_state, row, col): bound_site = physics.bind(self._touch_sensors[row, col].site) jitter = bound_site.size * np.array([0.25, 0.25, 0.]) return bound_site.xpos + random_state.uniform(-jitter, jitter) ================================================ FILE: physics_planning_games/board_games/_internal/observations.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Configuration for observations.""" import collections import numpy as np class ObservableSpec(collections.namedtuple( 'ObservableSpec', ['enabled', 'update_interval', 'buffer_size', 'delay', 'aggregator', 'corruptor'])): """Configuration options for generic observables.""" __slots__ = () class CameraObservableSpec(collections.namedtuple( 'CameraObservableSpec', ('height', 'width') + ObservableSpec._fields)): """Configuration options for camera observables.""" __slots__ = () class ObservationSettings(collections.namedtuple( 'ObservationSettings', ['proprio', 'ftt', 'prop_pose', 'board_state', 'camera'])): """Container of `ObservableSpecs` grouped by category.""" __slots__ = () class ObservableNames(collections.namedtuple( 'ObservableNames', ['proprio', 'ftt', 'prop_pose', 'board_state', 'camera'])): """Container that groups the names of observables by category.""" __slots__ = () def __new__(cls, proprio=(), ftt=(), prop_pose=(), board_state=(), camera=()): return super(ObservableNames, cls).__new__( cls, proprio=proprio, ftt=ftt, prop_pose=prop_pose, board_state=board_state, camera=camera) # Global defaults for "feature" observables (i.e. anything that isn't a camera). _DISABLED_FEATURE = ObservableSpec( enabled=False, update_interval=1, buffer_size=1, delay=0, aggregator=None, corruptor=None) _ENABLED_FEATURE = _DISABLED_FEATURE._replace(enabled=True) # Force, torque and touch-sensor readings are scaled using a symmetric # logarithmic transformation that handles 0 and negative values. _symlog1p = lambda x, random_state: np.sign(x) * np.log1p(abs(x)) _DISABLED_FTT = _DISABLED_FEATURE._replace(corruptor=_symlog1p) _ENABLED_FTT = _ENABLED_FEATURE._replace(corruptor=_symlog1p) # Global defaults for camera observables. _DISABLED_CAMERA = CameraObservableSpec( height=84, width=84, enabled=False, update_interval=1, buffer_size=1, delay=0, aggregator=None, corruptor=None) _ENABLED_CAMERA = _DISABLED_CAMERA._replace(enabled=True) # Predefined sets of configurations options to apply to each category of # observable. PERFECT_FEATURES = ObservationSettings( proprio=_ENABLED_FEATURE, ftt=_ENABLED_FTT, prop_pose=_ENABLED_FEATURE, board_state=_ENABLED_FEATURE, camera=_ENABLED_CAMERA) ARENA_OBSERVABLES = ObservableNames(camera=['front_camera', 'front_camera_2']) JACO_ARM_OBSERVABLES = ObservableNames( proprio=['joints_pos', 'joints_vel'], ftt=['joints_torque']) JACO_HAND_OBSERVABLES = ObservableNames( proprio=['joints_pos', 'joints_vel', 'pinch_site_pos', 'pinch_site_rmat']) MARKER_OBSERVABLES = ObservableNames(prop_pose=['position']) def make_options(obs_settings, obs_names): """Constructs a dict of configuration options for a set of named observables. Args: obs_settings: An `ObservationSettings` instance. obs_names: An `ObservableNames` instance. Returns: A nested dict containing `{observable_name: {option_name: value}}`. """ observable_options = {} for category, spec in obs_settings._asdict().items(): for observable_name in getattr(obs_names, category): observable_options[observable_name] = spec._asdict() return observable_options ================================================ FILE: physics_planning_games/board_games/_internal/pieces.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Entities representing board game pieces.""" import itertools from dm_control import composer from dm_control import mjcf from dm_control.composer.observation import observable import numpy as np _VISIBLE_SITE_GROUP = 0 _INVISIBLE_SITE_GROUP = 3 _RED = (1., 0., 0., 0.5) _BLUE = (0., 0, 1., 0.5) _INVALID_PLAYER_ID = '`player_id` must be between 0 and {}, got {}.' _NO_MORE_MARKERS_AVAILABLE = ( 'All {} markers for player {} have already been placed.') class Markers(composer.Entity): """A collection of non-physical entities for marking board positions.""" def _build(self, num_per_player, player_colors=(_RED, _BLUE), halfwidth=0.025, height=0.01, board_size=7): """Builds a `Markers` entity. Args: num_per_player: Integer, the total number of markers to create per player. player_colors: Sequence of (R, G, B, A) values specifying the marker colors for each player. halfwidth: Scalar, the halfwidth of each marker. height: Scalar, height of each marker. board_size: Integer, optional if using the integer indexing. """ root = mjcf.RootElement(model='markers') root.default.site.set_attributes(type='cylinder', size=(halfwidth, height)) all_markers = [] for i, color in enumerate(player_colors): player_name = 'player_{}'.format(i) # TODO(alimuldal): Would look cool if these were textured. material = root.asset.add('material', name=player_name, rgba=color) player_markers = [] for j in range(num_per_player): player_markers.append( root.worldbody.add( 'site', name='player_{}_move_{}'.format(i, j), material=material)) all_markers.append(player_markers) self._num_players = len(player_colors) self._mjcf_model = root self._all_markers = all_markers self._move_counts = [0] * self._num_players # To go from integer position to marker index in the all_markers array self._marker_ids = np.zeros((2, board_size, board_size)) self._board_size = board_size def _build_observables(self): return MarkersObservables(self) @property def mjcf_model(self): """`mjcf.RootElement` for this entity.""" return self._mjcf_model @property def markers(self): """Marker sites belonging to all players. Returns: A nested list, where `markers[i][j]` contains the `mjcf.Element` corresponding to player i's jth marker. """ return self._all_markers def initialize_episode(self, physics, random_state): """Resets the markers at the start of an episode.""" del random_state # Unused. self._reset(physics) def _reset(self, physics): for player_markers in self._all_markers: for marker in player_markers: bound_marker = physics.bind(marker) bound_marker.pos = 0. # Markers are initially placed at the origin. bound_marker.group = _INVISIBLE_SITE_GROUP self._move_counts = [0] * self._num_players self._marker_ids = np.zeros((2, self._board_size, self._board_size), dtype=np.int32) def make_all_invisible(self, physics): for player_markers in self._all_markers: for marker in player_markers: bound_marker = physics.bind(marker) bound_marker.group = _INVISIBLE_SITE_GROUP def make_visible_by_bpos(self, physics, player_id, all_bpos): for bpos in all_bpos: marker_id = self._marker_ids[player_id][bpos[0]][bpos[1]] marker = self._all_markers[player_id][marker_id] bound_marker = physics.bind(marker) bound_marker.group = _VISIBLE_SITE_GROUP def mark(self, physics, player_id, pos, bpos=None): """Enables the visibility of a marker, moves it to the specified position. Args: physics: `mjcf.Physics` instance. player_id: Integer specifying the ID of the player whose marker to use. pos: Array-like object specifying the cartesian position of the marker. bpos: Board position, optional integer coordinates to index the markers. Raises: ValueError: If `player_id` is invalid. RuntimeError: If `player_id` has no more available markers. """ if not 0 <= player_id < self._num_players: raise ValueError( _INVALID_PLAYER_ID.format(self._num_players - 1, player_id)) markers = self._all_markers[player_id] move_count = self._move_counts[player_id] if move_count >= len(markers): raise RuntimeError( _NO_MORE_MARKERS_AVAILABLE.format(move_count, player_id)) bound_marker = physics.bind(markers[move_count]) bound_marker.pos = pos # TODO(alimuldal): Set orientation as well (random? same as contact frame?) bound_marker.group = _VISIBLE_SITE_GROUP self._move_counts[player_id] += 1 if bpos: self._marker_ids[player_id][bpos[0]][bpos[1]] = move_count class MarkersObservables(composer.Observables): """Observables for a `Markers` entity.""" @composer.observable def position(self): """Cartesian positions of all marker sites. Returns: An `observable.MJCFFeature` instance. When called with an instance of `physics` as the argument, this will return a numpy float64 array of shape (num_players * num_markers, 3) where each row contains the cartesian position of a marker. Unplaced markers will have position (0, 0, 0). """ return observable.MJCFFeature( 'xpos', list(itertools.chain.from_iterable(self._entity.markers))) ================================================ FILE: physics_planning_games/board_games/_internal/pieces_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tests for physics_planning_games.board_games._internal.pieces.py.""" from absl.testing import absltest from dm_control import mjcf import numpy as np from physics_planning_games.board_games._internal import pieces class MarkersTest(absltest.TestCase): def test_position_observable(self): num_per_player = 3 markers = pieces.Markers(num_per_player=num_per_player) physics = mjcf.Physics.from_mjcf_model(markers.mjcf_model) all_positions = [ [(0, 1, 2), (3, 4, 5), (6, 7, 8)], # Player 0 [(-1, 2, -3), (4, -5, 6)], # Player 1 ] for player_id, positions in enumerate(all_positions): for marker_pos in positions: markers.mark(physics=physics, player_id=player_id, pos=marker_pos) expected_positions = np.zeros((2, num_per_player, 3), dtype=np.double) expected_positions[0, :len(all_positions[0])] = all_positions[0] expected_positions[1, :len(all_positions[1])] = all_positions[1] observed_positions = markers.observables.position(physics) np.testing.assert_array_equal( expected_positions.reshape(-1, 3), observed_positions) def test_invalid_player_id(self): markers = pieces.Markers(num_per_player=5) physics = mjcf.Physics.from_mjcf_model(markers.mjcf_model) invalid_player_id = 99 with self.assertRaisesWithLiteralMatch( ValueError, pieces._INVALID_PLAYER_ID.format(1, 99)): markers.mark(physics=physics, player_id=invalid_player_id, pos=(1, 2, 3)) def test_too_many_moves(self): num_per_player = 5 player_id = 0 markers = pieces.Markers(num_per_player=num_per_player) physics = mjcf.Physics.from_mjcf_model(markers.mjcf_model) for _ in range(num_per_player): markers.mark(physics=physics, player_id=player_id, pos=(1, 2, 3)) with self.assertRaisesWithLiteralMatch( RuntimeError, pieces._NO_MORE_MARKERS_AVAILABLE.format(num_per_player, player_id)): markers.mark(physics=physics, player_id=player_id, pos=(1, 2, 3)) if __name__ == '__main__': absltest.main() ================================================ FILE: physics_planning_games/board_games/_internal/registry.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """A global registry of constructors for board game environments.""" from dm_control.utils import containers _ALL_CONSTRUCTORS = containers.TaggedTasks(allow_overriding_keys=False) add = _ALL_CONSTRUCTORS.add get_constructor = _ALL_CONSTRUCTORS.__getitem__ get_all_names = _ALL_CONSTRUCTORS.keys get_tags = _ALL_CONSTRUCTORS.tags get_names_by_tag = _ALL_CONSTRUCTORS.tagged # This disables the check that prevents the same task constructor name from # being added to the container more than once. This is done in order to allow # individual task modules to be reloaded without also reloading `registry.py` # first (e.g. when "hot-reloading" environments in domain explorer). def done_importing_tasks(): _ALL_CONSTRUCTORS.allow_overriding_keys = True ================================================ FILE: physics_planning_games/board_games/_internal/tags.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """String constants used to annotate task constructors.""" FEATURES = 'features' VISION = 'vision' EASY = 'easy' MED = 'medium' HARD = 'hard' ================================================ FILE: physics_planning_games/board_games/board_games_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Basic smoke test for board_games environments.""" from absl.testing import absltest from dm_env import test_utils from physics_planning_games import board_games class GoTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return board_games.load(environment_name='go_7x7', seed=0) class TicTacToeTest(test_utils.EnvironmentTestMixin, absltest.TestCase): def make_object_under_test(self): return board_games.load( environment_name='tic_tac_toe_mixture_opponent_markers_features', seed=0) if __name__ == '__main__': absltest.main() ================================================ FILE: physics_planning_games/board_games/go.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """A Go board game.""" from dm_control.composer.observation import observable import numpy as np from physics_planning_games.board_games import go_logic from physics_planning_games.board_games import jaco_arm_board_game from physics_planning_games.board_games._internal import boards from physics_planning_games.board_games._internal import observations from physics_planning_games.board_games._internal import pieces from physics_planning_games.board_games._internal import registry from physics_planning_games.board_games._internal import tags _BLACK = (0., 0., 0., 0.75) _WHITE = (1., 1., 1., 0.75) _GO_PIECE_SIZE = 0.04 _DEFAULT_OPPONENT_MIXTURE = 0.2 class Go(jaco_arm_board_game.JacoArmBoardGame): """Single-player Go of configurable size.""" def __init__(self, board_size, observation_settings, opponent=None, reset_arm_after_move=True): """Initializes a `Go` task. Args: board_size: board size observation_settings: An `observations.ObservationSettings` namedtuple specifying configuration options for each category of observation. opponent: Go opponent to use for the opponent player actions. reset_arm_after_move: Whether to reset arm to random position after every piece being placed on the board. """ game_logic = go_logic.GoGameLogic(board_size=board_size) if opponent is None: opponent = go_logic.GoGTPOpponent(board_size=board_size, mixture_p=_DEFAULT_OPPONENT_MIXTURE) self._last_valid_move_is_pass = False super(Go, self).__init__(observation_settings=observation_settings, opponent=opponent, game_logic=game_logic, board=boards.GoBoard(boardsize=board_size), markers=pieces.Markers( player_colors=(_BLACK, _WHITE), halfwidth=_GO_PIECE_SIZE, num_per_player=board_size*board_size*2, observable_options=observations.make_options( observation_settings, observations.MARKER_OBSERVABLES), board_size=board_size)) self._reset_arm_after_move = reset_arm_after_move # Add an observable exposing the move history (to reconstruct game states) move_history_observable = observable.Generic( lambda physics: self._game_logic.get_move_history()) move_history_observable.configure( **observation_settings.board_state._asdict()) self._task_observables['move_history'] = move_history_observable @property def name(self): return 'Go' @property def control_timestep(self): return 0.05 def after_substep(self, physics, random_state): if not self._made_move_this_step: # which board square received the most contact pressure indices = self._board.get_contact_indices(physics) if not indices: return row, col = indices # Makes sure that contact with that board square involved a finger finger_touch = self._board.validate_finger_touch(physics, row, col, self._hand) if not finger_touch: return pass_action = True if (row == -1 and col == -1) else False if pass_action and self._last_valid_move_is_pass: # Don't allow two passes in a row (otherwise hard to only pass once) valid_move = False else: valid_move = self._game_logic.apply( player=jaco_arm_board_game.SELF, action=go_logic.GoMarkerAction(row=int(row), col=int(col), pass_action=pass_action)) if valid_move: self._made_move_this_step = True if not pass_action: self._last_valid_move_is_pass = False marker_pos = self._board.get_contact_pos( physics=physics, row=row, col=col) self._markers.mark(physics=physics, player_id=jaco_arm_board_game.SELF, pos=marker_pos, bpos=(row, col)) else: self._last_valid_move_is_pass = True if not self._game_logic.is_game_over: opponent_move = self._game_opponent.policy( game_logic=self._game_logic, player=jaco_arm_board_game.OPPONENT, random_state=random_state) assert opponent_move assert self._game_logic.apply(player=jaco_arm_board_game.OPPONENT, action=opponent_move) marker_pos = self._board.sample_pos_inside_touch_sensor( physics=physics, random_state=random_state, row=opponent_move.row, col=opponent_move.col) self._markers.mark(physics=physics, player_id=jaco_arm_board_game.OPPONENT, pos=marker_pos, bpos=(opponent_move.row, opponent_move.col)) if self._reset_arm_after_move: self._tcp_initializer(physics, random_state) # Redraw all markers that are on the board (after captures) self._markers.make_all_invisible(physics) board = self._game_logic.get_board_state() black_stones = np.transpose(np.nonzero(board[:, :, 1])) white_stones = np.transpose(np.nonzero(board[:, :, 2])) if black_stones.size > 0: self._markers.make_visible_by_bpos(physics, 0, black_stones) if white_stones.size > 0: self._markers.make_visible_by_bpos(physics, 1, white_stones) @registry.add(tags.EASY, tags.FEATURES) def go_7x7(): return Go(board_size=7, observation_settings=observations.PERFECT_FEATURES) ================================================ FILE: physics_planning_games/board_games/go_logic.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Logic for the Go Game.""" import abc import collections import enum import shutil import subprocess from absl import logging import numpy as np from dm_control.utils import io as resources from physics_planning_games.board_games import logic_base import pyspiel GNUGO_PATH = '/usr/games/gnugo' GoMarkerAction = collections.namedtuple('GoMarkerAction', ['row', 'col', 'pass_action']) # Note that there is no 'i' in these Go board coordinates # (cf https://senseis.xmp.net/?Coordinates) _X_CHARS = 'abcdefghjklmnopqrstuvwxyz' _X_MAP = {c: x for c, x in zip(_X_CHARS, range(len(_X_CHARS)))} def _go_marker_to_int(go_marker, board_size): """Convert GoMarkerAction into GoPoint integer encoding of move. Args: go_marker: GoMarkerAction. board_size: Board size of the go board (e.g. 9 or 19). Returns: GoPoint int value. """ if go_marker.pass_action: return board_size * board_size else: return int((go_marker.row) * board_size + go_marker.col) def _int_to_go_marker(move_int, board_size): """Decode the integer move encoding to a GoMarkerAction. Args: move_int: Integer encoding the go move. board_size: Board size of the go board (e.g. 9 or 19). Returns: GoMarkerAction encoding of move. """ if move_int == board_size * board_size: go_marker_action = GoMarkerAction(row=-1, col=-1, pass_action=True) else: row = move_int // board_size col = move_int % board_size go_marker_action = GoMarkerAction(row=row, col=col, pass_action=False) return go_marker_action def _go_marker_to_str(go_marker): if go_marker.pass_action: return 'PASS' else: move_str = _X_CHARS[go_marker.col] + str(go_marker.row + 1) return move_str def _str_to_go_marker(move_str): """Convert from a 2-letter Go move str (e.g. a3) to a GoMarker. Args: move_str: String describing the move (e.g. a3). Returns: GoMarkerAction encoding of move. """ move_str = move_str.lower() if move_str == 'pass': action = GoMarkerAction(row=-1, col=-1, pass_action=True) elif move_str == 'resign': raise NotImplementedError('Not dealing with resign') else: assert len(move_str) == 2 col, row = move_str[0], move_str[1] col = _X_MAP[col] row = int(row) - 1 action = GoMarkerAction(row=row, col=col, pass_action=False) return action def _get_gnugo_ref_config(level=1, binary_path=None): """Reference config for GnuGo. Args: level: GnuGo level binary_path: string pointing to GnuGo binary Returns: Config dict that can be passed to gtp engine """ try: gnugo_binary_path = resources.GetResourceFilename(binary_path) except FileNotFoundError: gnugo_binary_path = shutil.which('gnugo') if not gnugo_binary_path: raise FileNotFoundError('Not able to locate gnugo library. ', 'Try installing it by: apt install gnugo') gnugo_extra_flags = ['--mode', 'gtp'] gnugo_extra_flags += ['--chinese-rules', '--capture-all-dead'] gtp_player_cfg = { 'name': 'gnugo', 'binary_path': gnugo_binary_path, 'level': level, 'extra_flags': gnugo_extra_flags, } return gtp_player_cfg class Stone(enum.Enum): EMPTY = 1 WHITE = 2 BLACK = 3 def __lt__(self, other): value = int(self.value) return value < other.value def gtp_to_sgf_point(gtp_point, board_size): """Format a GTP point according to the SGF format.""" if gtp_point.lower() == 'pass' or gtp_point.lower() == 'resign': return 'tt' column, row = gtp_point[0], gtp_point[1:] # GTP doesn't use i, but SGF does, so we need to convert. gtp_columns = 'abcdefghjklmnopqrstuvwxyz' sgf_columns = 'abcdefghijklmnopqrstuvwxyz' x = gtp_columns.find(column.lower()) y = board_size - int(row) return '%s%s' % (sgf_columns[x], sgf_columns[y]) class Gtp(object): """Wrapper around Go playing program that communicates using GTP.""" __metaclass__ = abc.ABCMeta def __init__(self, checkpoint_file=None): self.stones = { '.': Stone.EMPTY, '+': Stone.EMPTY, 'O': Stone.WHITE, 'X': Stone.BLACK } self.moves = [] self.comments = [] self.handicap = 0 self.board_size = 19 self.komi = 0 self.free_handicap = None self.byo_yomi_time = None self.checkpoint_file = checkpoint_file self.stderr = None def set_board_size(self, size): self.board_size = size self.gtp_command('boardsize %d' % size) self.gtp_command('clear_board') def set_komi(self, komi): self.komi = komi self.gtp_command('komi %s' % komi) def set_free_handicap(self, vertices): self.free_handicap = vertices self.gtp_command('set_free_handicap %s' % vertices) def place_free_handicap(self, n): self.free_handicap = self.gtp_command('place_free_handicap %d' % n) return self.free_handicap def make_move(self, move, record=True): self.gtp_command('play %s' % move) if record: self._record_move(move) def set_byo_yomi_time(self, t): self.byo_yomi_time = t def num_moves(self): return len(self.moves) def clear_board(self): self.moves = [] self.comments = [] self.gtp_command('clear_board') def generate_move(self, color): if self.byo_yomi_time is not None: self.gtp_command('time_left %s %d 1' % (color, self.byo_yomi_time)) move = '%s %s' % (color, self.gtp_command( 'genmove %s' % color).split(' ')[-1].lower()) self._record_move(move, stderr=self.stderr) return move def board(self): raw_board = self.gtp_command('showboard', log=False)[1:].strip() rows = [line.strip().split(' ')[0] for line in raw_board.split('\n')][1:-1] rows = [''.join(row.split(' ')[1:-1]) for row in rows] return [[self.stones[cell] for cell in row] for row in rows] def quit(self): self.gtp_command('quit') def final_status(self, status): return self.gtp_command('final_status_list %s' % status)[2:].replace( '\n', ' ').split(' ') def fixed_handicap(self, handicap): self.handicap = handicap self.gtp_command('fixed_handicap %d' % handicap) def undo(self, num_moves): self.gtp_command('gg-undo %d' % num_moves) for _ in range(num_moves): self.moves.pop() self.comments.pop() def _record_move(self, move, stderr=None): self.moves.append(move) self.comments.append(stderr) if self.checkpoint_file: with open(self.checkpoint_file, 'w') as f: f.write(self.to_sgf()) def to_sgf(self): sgf = '(;PB[Black]PW[White]KM[%.1f]HA[%d]SZ[19]' % (self.komi, self.handicap) for i, move in enumerate(self.moves): sgf += '\n;' + self._format_sgf_move(move) if self.comments[i]: sgf += 'C[' + self._sgf_escape(self.comments[i]) + ']' return sgf + ')' def _format_sgf_move(self, move): """Format a move according to the SGF format.""" color, vertex = str(move).split(' ') return '%s[%s]' % (color[0].upper(), gtp_to_sgf_point(vertex, self.board_size)) def _sgf_escape(self, text): return ''.join(['\\' + t if t == ']' or t == '\\' else t for t in text]) @abc.abstractmethod def gtp_command(self, command, log=True): """Executes a GTP command and returns its response. Args: command: The GTP command to run, no trailing newline. log: Whether to log command and response to INFO. Returns: The GTP response. Raises: GtpError: if the response is not ok (doesn't start with '='). """ pass class GtpError(Exception): def __init__(self, response): super(GtpError, self).__init__() self.response = response def __str__(self): return self.response class GoEngine(Gtp): """GTP-based Go engine. Supports at least GnuGo and Pachi. For GnuGo, at least specify ['--mode', 'gtp'] in extra_flags. """ def __init__(self, command='', checkpoint_file=None, extra_flags=None): super(GoEngine, self).__init__(checkpoint_file) if extra_flags: command = [command] + extra_flags self.p = subprocess.Popen( command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True) def gtp_command(self, command, log=True): if log: logging.info('GTP: %s', command) self.p.stdin.write(command) self.p.stdin.write('\n') self.p.stdin.flush() response = [self.p.stdout.readline()] while response[-1] != '\n': response.append(self.p.stdout.readline()) response = ''.join(response).strip() if log: logging.info('GTP: %s', response) if response[0][0] != '=': raise GtpError(response) return response class GoGameLogic(logic_base.OpenSpielBasedLogic): """Logic for Go game.""" def __init__(self, board_size, gnugo_level=1, komi=5.5): self._board_size = board_size self._komi = komi gtp_player_cfg = _get_gnugo_ref_config( level=gnugo_level, binary_path=GNUGO_PATH) self._gtp_player = GoEngine( command=gtp_player_cfg['binary_path'], extra_flags=gtp_player_cfg['extra_flags']) self._gtp_player.set_board_size(board_size) self.reset() def board_size(self): return self._board_size def get_gtp_player(self): return self._gtp_player def reset(self): """Resets the game state.""" # For now we always assume we are the starting player and use a random # opponent. self._gtp_player.gtp_command('clear_board', log=False) self._gtp_player.set_board_size(self._board_size) self._gtp_player.set_komi(self._komi) game = pyspiel.load_game('go', {'board_size': self._board_size}) self._open_spiel_state = game.new_initial_state() self._moves = np.ones( (self._board_size * self._board_size * 2,), dtype=np.int32) * -1 self._move_id = 0 def show_board(self): self._gtp_player.gtp_command('showboard') def get_gtp_reward(self): self._gtp_player.gtp_command('final_score') def get_board_state(self): """Returns the logical board state as a numpy array. Returns: A boolean array of shape (H, W, C), where H=3, W=3 (height and width of the board) and C=4 for the 4 planes. The 4 planes are, in order, unmarked, black (player 0), white (player 1) and komi (this layer is always all the same value indicating whether white is to play). """ board_state = np.reshape( np.array(self._open_spiel_state.observation_tensor(0), dtype=bool), [4, self._board_size, self._board_size]) board_state = np.transpose(board_state, [1, 2, 0]) board_state = board_state[:, :, [2, 0, 1, 3]] return board_state def set_state_from_history(self, move_history): self.reset() move_history = np.squeeze(move_history.numpy()) for t in range(move_history.size): if move_history[t] < 0: break else: self.apply(t % 2, move_history[t]) # self.show_board() def get_move_history(self): """Returns the move history as padded numpy array.""" return self._moves def apply(self, player, action): """Checks whether action is valid, and if so applies it to the game state. Args: player: Integer specifying the player ID; either 0 or 1. action: A `GoMarkerAction` instance (or numpy.int32) which represent the action in the board of size `board_size`. Returns: True if the action was valid, else False. """ if isinstance(action, GoMarkerAction): action = _go_marker_to_int(action, self._board_size) if self._open_spiel_state.current_player() != player: return False legal_actions = self._open_spiel_state.legal_actions() if np.isin(action, legal_actions): self._open_spiel_state.apply_action(action) was_valid_move = True else: was_valid_move = False if not was_valid_move: return False self._moves[self._move_id] = action self._move_id += 1 # Apply to the Go program player_color = 'B' if player == 0 else 'W' action_str = _go_marker_to_str(_int_to_go_marker(action, self._board_size)) self._gtp_player.gtp_command('play {} {}'.format(player_color, action_str)) return was_valid_move def gen_move(game_logic, player): """Generate move from GTP player and game state defined in game_logic.""" player_color = 'B' if player == 0 else 'W' gtp_player = game_logic.get_gtp_player() move_str = gtp_player.gtp_command( 'reg_genmove {}'.format(player_color), log=True) move_str = move_str[2:].lower() action = _str_to_go_marker(move_str) return action def gen_random_move(game_logic, random_state): """Generate random move for current state in game logic.""" if game_logic.is_game_over: return None valid_moves = game_logic.open_spiel_state.legal_actions() assert valid_moves move = random_state.choice(valid_moves) go_action = _int_to_go_marker(move, board_size=game_logic.board_size()) return go_action class GoGTPOpponent(logic_base.Opponent): """Use external binary Pachi to generate opponent moves.""" def __init__(self, board_size, mixture_p=0.0): """Initialize Go opponent. Args: board_size: Go board size (int) mixture_p: Probability of playing a random move (amongst legal moves). """ self._board_size = board_size self._mixture_p = mixture_p def reset(self): pass def policy(self, game_logic, player, random_state): """Return policy action. Args: game_logic: Go game logic state. player: Integer specifying the player ID; either 0 or 1. random_state: Numpy random state object. Returns: GoMarkerAction indicating opponent move. """ if random_state.rand() < self._mixture_p: return gen_random_move(game_logic, random_state) else: return gen_move(game_logic, player) class GoRandomOpponent(logic_base.Opponent): """An easy opponent for Go.""" def __init__(self, board_size): self._board_size = board_size def reset(self): """Resets the opponent's internal state (not implemented).""" pass def policy(self, game_logic, player, random_state): """Return a random, valid move. Args: game_logic: TicTacToeGameLogic state of the game. player: Integer specifying the player ID; either 0 or 1. random_state: An instance of `np.random.RandomState` Returns: GoMarkerAction of opponent. """ return gen_random_move(game_logic, random_state) ================================================ FILE: physics_planning_games/board_games/go_logic_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ from absl.testing import absltest from absl.testing import parameterized import numpy as np from physics_planning_games.board_games import go_logic class GoGameLogicTest(parameterized.TestCase): def setUp(self): super(GoGameLogicTest, self).setUp() self.logic = go_logic.GoGameLogic(board_size=5) self.expected_board_state = np.zeros((5, 5, 4), dtype=bool) self.expected_board_state[:, :, 0] = True def test_valid_move_sequence(self): np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) action = go_logic.GoMarkerAction(col=1, row=2, pass_action=False) self.assertTrue(self.logic.apply(player=0, action=action), msg='Invalid action: {}'.format(action)) def test_pass(self): action = go_logic.GoMarkerAction(col=0, row=0, pass_action=True) self.assertTrue(self.logic.apply(player=0, action=action), msg='Invalid action: {}'.format(action)) self.expected_board_state[:, :, 3] = True np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) def test_invalid_move_sequence(self): np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) action = go_logic.GoMarkerAction(col=1, row=2, pass_action=False) self.assertTrue(self.logic.apply(player=0, action=action), msg='Invalid action: {}'.format(action)) self.expected_board_state[action.row, action.col, 0] = False self.expected_board_state[action.row, action.col, 1] = True self.expected_board_state[:, :, 3] = True np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) action = go_logic.GoMarkerAction(col=1, row=2, pass_action=False) self.assertFalse(self.logic.apply(player=0, action=action), msg='Invalid action was accepted: {}'.format(action)) # Player 1 tries to move in the same location as player 0. self.assertFalse(self.logic.apply(player=1, action=action), msg='Invalid action was accepted: {}'.format(action)) # The board state should not have changed as a result of invalid actions. np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) def test_random_opponent_vs_gnugo(self): """Play random v gnugo opponents and check that optimal largely wins. """ board_size = 9 rand_state = np.random.RandomState(42) pachi_opponent = go_logic.GoGTPOpponent(board_size) random_opponent = go_logic.GoRandomOpponent(board_size) players = [pachi_opponent, random_opponent] pachi_returns = [] random_returns = [] for _ in range(3): logic = go_logic.GoGameLogic(board_size) pachi_opponent.reset() random_opponent.reset() rand_state.shuffle(players) current_player_idx = 0 while not logic.is_game_over: current_player = players[current_player_idx] action = current_player.policy(logic, current_player_idx, rand_state) valid_action = logic.apply(current_player_idx, action) self.assertTrue(valid_action, msg='Opponent {} selected invalid action {}'.format( current_player, action)) current_player_idx = (current_player_idx + 1) % 2 # Record the winner. reward = logic.get_reward if players[0] == pachi_opponent: pachi_return = reward[0] random_return = reward[1] else: pachi_return = reward[1] random_return = reward[0] pachi_returns.append(pachi_return) random_returns.append(random_return) mean_pachi_returns = np.mean(pachi_returns) mean_random_returns = np.mean(random_returns) self.assertGreater(mean_pachi_returns, 0.95) self.assertLess(mean_random_returns, 0.05) @parameterized.named_parameters([ dict(testcase_name='00', row=0, col=0), dict(testcase_name='01', row=1, col=0)]) def test_go_marker_to_int(self, row, col): go_marker = go_logic.GoMarkerAction(row=row, col=col, pass_action=False) int_action = go_logic._go_marker_to_int(go_marker, board_size=19) recovered_go_marker = go_logic._int_to_go_marker(int_action, board_size=19) self.assertEqual(go_marker, recovered_go_marker, msg='Initial go marker {}, recovered {}'.format( go_marker, recovered_go_marker)) @parameterized.named_parameters([ dict(testcase_name='00', row=0, col=0), dict(testcase_name='01', row=1, col=0)]) def test_go_marker_to_str(self, row, col): go_marker = go_logic.GoMarkerAction(row=row, col=col, pass_action=False) str_action = go_logic._go_marker_to_str(go_marker) recovered_go_marker = go_logic._str_to_go_marker(str_action) self.assertEqual(go_marker, recovered_go_marker, msg='Initial go marker {}, recovered {}, ' 'str_action {}'.format(go_marker, recovered_go_marker, str_action)) if __name__ == '__main__': absltest.main() ================================================ FILE: physics_planning_games/board_games/jaco_arm_board_game.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Shared base class for two-player Jaco arm board games. """ import functools from dm_control import composer from dm_control.composer import initializers from dm_control.composer.observation import observable from dm_control.composer.variation import distributions from dm_control.composer.variation import rotations from dm_control.entities.manipulators import base from dm_control.entities.manipulators import kinova import numpy as np from physics_planning_games.board_games._internal import arenas from physics_planning_games.board_games._internal import observations _ARM_Y_OFFSET = 0.4 _TCP_LOWER_BOUNDS = (-0.1, -0.1, 0.2) _TCP_UPPER_BOUNDS = (0.1, 0.1, 0.4) # Player IDs SELF = 0 OPPONENT = 1 def _uniform_downward_rotation(): angle = distributions.Uniform(-np.pi, np.pi, single_sample=True) quaternion = rotations.QuaternionFromAxisAngle(axis=(0., 0., 1.), angle=angle) return functools.partial(rotations.QuaternionPreMultiply(quaternion), initial_value=base.DOWN_QUATERNION) class JacoArmBoardGame(composer.Task): """Base class for two-player checker-like board games.""" def __init__(self, observation_settings, opponent, game_logic, board, markers): """Initializes the task. Args: observation_settings: An `observations.ObservationSettings` namedtuple specifying configuration options for each category of observation. opponent: Opponent used for generating opponent moves. game_logic: Logic for keeping track of the logical state of the board. board: Board to use. markers: Markers to use. """ self._game_logic = game_logic self._game_opponent = opponent arena = arenas.Standard(observable_options=observations.make_options( observation_settings, observations.ARENA_OBSERVABLES)) arena.attach(board) arm = kinova.JacoArm(observable_options=observations.make_options( observation_settings, observations.JACO_ARM_OBSERVABLES)) hand = kinova.JacoHand(observable_options=observations.make_options( observation_settings, observations.JACO_HAND_OBSERVABLES)) arm.attach(hand) arena.attach_offset(arm, offset=(0, _ARM_Y_OFFSET, 0)) arena.attach(markers) # Geoms belonging to the arm and hand are placed in a custom group in order # to disable their visibility to the top-down camera. NB: we assume that # there are no other geoms in ROBOT_GEOM_GROUP that don't belong to the # robot (this is usually the case since the default geom group is 0). If # there are then these will also be invisible to the top-down camera. for robot_geom in arm.mjcf_model.find_all('geom'): robot_geom.group = arenas.ROBOT_GEOM_GROUP self._arena = arena self._board = board self._arm = arm self._hand = hand self._markers = markers self._tcp_initializer = initializers.ToolCenterPointInitializer( hand=hand, arm=arm, position=distributions.Uniform(_TCP_LOWER_BOUNDS, _TCP_UPPER_BOUNDS), quaternion=_uniform_downward_rotation()) # Add an observable exposing the logical state of the board. board_state_observable = observable.Generic( lambda physics: self._game_logic.get_board_state()) board_state_observable.configure( **observation_settings.board_state._asdict()) self._task_observables = {'board_state': board_state_observable} @property def root_entity(self): return self._arena @property def arm(self): return self._arm @property def hand(self): return self._hand @property def task_observables(self): return self._task_observables def get_reward(self, physics): del physics # Unused. return self._game_logic.get_reward[SELF] def should_terminate_episode(self, physics): return self._game_logic.is_game_over def initialize_episode(self, physics, random_state): self._tcp_initializer(physics, random_state) self._game_logic.reset() self._game_opponent.reset() def before_step(self, physics, action, random_state): super(JacoArmBoardGame, self).before_step(physics, action, random_state) self._made_move_this_step = False def after_substep(self, physics, random_state): raise NotImplementedError('Subclass must implement after_substep.') ================================================ FILE: physics_planning_games/board_games/logic_base.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Abstract base classes and utility functions for logical aspects of the games. """ import abc ABC = abc.ABCMeta('ABC', (object,), {'__slots__': ()}) class GameLogic(ABC): """Define the abstrat game logic class. """ @abc.abstractmethod def __init__(self): pass @abc.abstractmethod def reset(self): pass @abc.abstractproperty def is_game_over(self): """Boolean specifying whether the current game has ended.""" @abc.abstractproperty def get_reward(self): pass @abc.abstractmethod def get_board_state(self): """Returns the logical board state as a numpy array.""" @abc.abstractmethod def apply(self, player, action): """Checks whether action is valid, and if so applies it to the game state. Args: player: Integer specifying the player ID; either 0 or 1. action: A `GoMarkerAction` instance. Returns: True if the action was valid, else False. """ class OpenSpielBasedLogic(GameLogic): """GameLogic using OpenSpiel for tracking game state. """ @property def is_game_over(self): """Boolean specifying whether the current game has ended.""" return self._open_spiel_state.is_terminal() @property def get_reward(self): """Returns a dictionary that maps from `{player_id: player_reward}`.""" if self.is_game_over: player0_return = self._open_spiel_state.player_return(0) # Translate from OpenSpiel returns to 0.5 for draw, -1 for loss, # +1 for win. if player0_return == 0.: reward = {0: 0.5, 1: 0.5} elif player0_return == 1.: reward = {0: 1., 1: 0.} else: assert player0_return == -1. reward = {0: 0., 1: 1.} else: reward = {0: 0., 1: 0.} return reward @property def open_spiel_state(self): """OpenSpiel object representing the underlying game state.""" return self._open_spiel_state class Opponent(ABC): """Abstract Opponent class.""" @abc.abstractmethod def __init__(self): pass @abc.abstractmethod def reset(self): pass @abc.abstractmethod def policy(self, game_logic, random_state): """Return policy action. Args: game_logic: Go game logic state. random_state: Numpy random state object. Returns: NamedTuple indicating opponent move. """ ================================================ FILE: physics_planning_games/board_games/tic_tac_toe.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """A Tic Tac Toe task.""" from physics_planning_games.board_games import jaco_arm_board_game from physics_planning_games.board_games import tic_tac_toe_logic from physics_planning_games.board_games._internal import boards from physics_planning_games.board_games._internal import observations from physics_planning_games.board_games._internal import pieces from physics_planning_games.board_games._internal import registry from physics_planning_games.board_games._internal import tags class TicTacToe(jaco_arm_board_game.JacoArmBoardGame): """Single-player Tic Tac Toe.""" def __init__(self, observation_settings, opponent=None, reset_arm_after_move=True): """Initializes a `TicTacToe` task. Args: observation_settings: An `observations.ObservationSettings` namedtuple specifying configuration options for each category of observation. opponent: TicTacToeOpponent used for generating opponent moves. reset_arm_after_move: Whether to reset arm to random position after every piece being placed on the board. """ game_logic = tic_tac_toe_logic.TicTacToeGameLogic() if opponent is None: opponent = tic_tac_toe_logic.TicTacToeRandomOpponent() markers = pieces.Markers(num_per_player=5, observable_options=observations.make_options( observation_settings, observations.MARKER_OBSERVABLES)) self._reset_arm_after_move = reset_arm_after_move super(TicTacToe, self).__init__(observation_settings=observation_settings, opponent=opponent, game_logic=game_logic, board=boards.CheckerBoard(), markers=markers) @property def control_timestep(self): return 0.05 def after_substep(self, physics, random_state): if not self._made_move_this_step: indices = self._board.get_contact_indices(physics) if not indices: return row, col = indices valid_move = self._game_logic.apply( player=jaco_arm_board_game.SELF, action=tic_tac_toe_logic.SingleMarkerAction(row=row, col=col)) if valid_move: self._made_move_this_step = True marker_pos = self._board.get_contact_pos( physics=physics, row=row, col=col) self._markers.mark(physics=physics, player_id=jaco_arm_board_game.SELF, pos=marker_pos) if not self._game_logic.is_game_over: opponent_move = self._game_opponent.policy( game_logic=self._game_logic, random_state=random_state) assert opponent_move assert self._game_logic.apply(player=jaco_arm_board_game.OPPONENT, action=opponent_move) marker_pos = self._board.sample_pos_inside_touch_sensor( physics=physics, random_state=random_state, row=opponent_move.row, col=opponent_move.col) self._markers.mark(physics=physics, player_id=jaco_arm_board_game.OPPONENT, pos=marker_pos) if self._reset_arm_after_move: self._tcp_initializer(physics, random_state) @registry.add(tags.EASY, tags.FEATURES) def tic_tac_toe_markers_features(**unused_kwargs): return TicTacToe(observation_settings=observations.PERFECT_FEATURES) @registry.add(tags.MED, tags.FEATURES) def tic_tac_toe_mixture_opponent_markers_features(mixture_p=0.25): print('Creating tictactoe task with random/optimal opponent mixture, p={}' .format(mixture_p)) return TicTacToe( observation_settings=observations.PERFECT_FEATURES, opponent=tic_tac_toe_logic.TicTacToeMixtureOpponent(mixture_p)) @registry.add(tags.HARD, tags.FEATURES) def tic_tac_toe_optimal_opponent_markers_features(**unused_kwargs): return TicTacToe(observation_settings=observations.PERFECT_FEATURES, opponent=tic_tac_toe_logic.TicTacToeOptimalOpponent()) ================================================ FILE: physics_planning_games/board_games/tic_tac_toe_logic.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """TicTacToe logic wrapper for use in manipulation tasks.""" import collections import itertools import numpy as np from physics_planning_games.board_games import logic_base from open_spiel.python.algorithms import minimax import pyspiel SingleMarkerAction = collections.namedtuple('SingleMarkerAction', ['row', 'col']) force_random_start_position = False class TicTacToeGameLogic(logic_base.OpenSpielBasedLogic): """Logic for TicTacToe game.""" def __init__(self): self.reset() def reset(self): """Resets the game state.""" # For now we always assume we are the starting player. game = pyspiel.load_game('tic_tac_toe') self._open_spiel_state = game.new_initial_state() if force_random_start_position: # For debugging purposes only, force some random moves rand_state = np.random.RandomState(46) rand_player = TicTacToeRandomOpponent() num_moves = 4 for _ in range(num_moves): action = rand_player.policy(self, rand_state) action_1d = np.ravel_multi_index(action, (3, 3)) self._open_spiel_state.apply_action(action_1d) def get_board_state(self): """Returns the logical board state as a numpy array. Returns: A boolean array of shape (H, W, C), where H=3, W=3 (height and width of the board) and C=3 for the 3 planes. The 3 planes are, in order, unmarked squares, x's (player 0) and y's (player 1). """ board_state = np.reshape( np.array(self._open_spiel_state.observation_tensor(0), dtype=bool), [3, 3, 3]) board_state = np.transpose(board_state, [1, 2, 0]) board_state = board_state[:, :, [0, 2, 1]] return board_state def apply(self, player, action): """Checks whether action is valid, and if so applies it to the game state. Args: player: Integer specifying the player ID; either 0 or 1. action: A `SingleMarkerAction` instance. Returns: True if the action was valid, else False. """ action_value = np.ravel_multi_index((action.row, action.col), (3, 3)) if self._open_spiel_state.current_player() != player: return False try: self._open_spiel_state.apply_action(action_value) was_valid_move = True except RuntimeError: was_valid_move = False return was_valid_move class TicTacToeRandomOpponent(logic_base.Opponent): """An easy opponent for TicTacToe.""" def __init__(self): pass def reset(self): """Resets the opponent's internal state (not implemented).""" pass def policy(self, game_logic, random_state): """Return a random, valid move. Args: game_logic: TicTacToeGameLogic state of the game. random_state: An instance of `np.random.RandomState` Returns: SingleMarkerAction of opponent. """ if game_logic.is_game_over: return None valid_moves = game_logic.open_spiel_state.legal_actions() assert valid_moves move = random_state.choice(valid_moves) row, col = np.unravel_index(move, shape=(3, 3)) return SingleMarkerAction(row=row, col=col) class TicTacToeMixtureOpponent(logic_base.Opponent): """A TicTacToe opponent which makes a mixture of optimal and random moves. The optimal mixture component uses minimax search. """ def __init__(self, mixture_p): """Initialize the mixture opponent. Args: mixture_p: The mixture probability. We choose moves from the random opponent with probability mixture_p and moves from the optimal opponent with probability 1 - mixture_p. """ self._random_opponent = TicTacToeRandomOpponent() self._optimal_opponent = TicTacToeOptimalOpponent() self._mixture_p = mixture_p def reset(self): pass def policy(self, game_logic, random_state): if random_state.rand() < self._mixture_p: return self._random_opponent.policy(game_logic, random_state) else: return self._optimal_opponent.policy(game_logic, random_state) class TicTacToeOptimalOpponent(logic_base.Opponent): """A TicTacToe opponent which makes perfect moves. Uses minimax search. """ def __init__(self): pass def reset(self): pass def policy(self, game_logic, random_state): action = tic_tac_toe_minimax(game_logic.open_spiel_state, random_state) return action def numpy_array_to_open_spiel_state(board_state): """Take a numpy observation [3x3x3] bool area and create an OpenSpiel state. Args: board_state: 3x3x3 bool array with [col, row, c] with c indexing, in order, empty squares, x moves, y moves. Returns: open_spiel_state: OpenSpiel state of this position. """ game = pyspiel.load_game('tic_tac_toe') open_spiel_state = game.new_initial_state() x_moves = np.flatnonzero(board_state[:, :, 1]) y_moves = np.flatnonzero(board_state[:, :, 2]) for x_m, y_m in itertools.zip_longest(x_moves, y_moves): if open_spiel_state.is_terminal(): break open_spiel_state.apply_action(x_m) if open_spiel_state.is_terminal(): break if y_m is not None: open_spiel_state.apply_action(y_m) return open_spiel_state def open_spiel_move_to_single_marker_action(action): row, col = np.unravel_index(action, shape=(3, 3)) return SingleMarkerAction(row=row, col=col) def tic_tac_toe_random_move(state, random_state): """Returns a legal move at random from current state. Args: state: World state of the game. Either an OpenSpiel state or a numpy encoding of the board. random_state: numpy random state used for choosing randomly if there is more than one optimal action. Returns: action: SingleMarkerAction of a random move. """ if isinstance(state, np.ndarray): spiel_state = numpy_array_to_open_spiel_state(state) else: spiel_state = state if spiel_state.is_terminal(): return False legal_actions = spiel_state.legal_actions() action = random_state.choice(legal_actions) return open_spiel_move_to_single_marker_action(action) def tic_tac_toe_minimax(state, random_state): """Tree search from the world_state in order to find the optimal action. Args: state: World state of the game. Either an OpenSpiel state or a numpy encoding of the board. random_state: numpy random state used for choosing randomly if there is more than one optimal action. Returns: action: SingleMarkerAction of an optimal move. """ if isinstance(state, np.ndarray): spiel_state = numpy_array_to_open_spiel_state(state) else: spiel_state = state if spiel_state.is_terminal(): return False current_player = spiel_state.current_player() legal_actions = spiel_state.legal_actions() best_actions = [] best_value = -100 for action in legal_actions: state_after_action = spiel_state.clone() state_after_action.apply_action(action) value, _ = minimax.expectiminimax(state_after_action, 100, None, current_player) if value > best_value: best_value = value best_actions = [action] elif value == best_value: best_actions.append(action) assert best_actions action = random_state.choice(best_actions) return open_spiel_move_to_single_marker_action(action) ================================================ FILE: physics_planning_games/board_games/tic_tac_toe_logic_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ from absl.testing import absltest from absl.testing import parameterized import numpy as np from physics_planning_games.board_games import tic_tac_toe_logic class TicTacToeGameLogicTest(parameterized.TestCase): def setUp(self): super(TicTacToeGameLogicTest, self).setUp() self.logic = tic_tac_toe_logic.TicTacToeGameLogic() self.expected_board_state = np.zeros((3, 3, 3), dtype=bool) self.expected_board_state[..., 0] = True # All positions initially empty. def test_valid_move_sequence(self): np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) action = tic_tac_toe_logic.SingleMarkerAction(col=1, row=2) self.assertTrue(self.logic.apply(player=0, action=action), msg='Invalid action: {}'.format(action)) self.expected_board_state[action.row, action.col, 0] = False self.expected_board_state[action.row, action.col, 1] = True np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) action = tic_tac_toe_logic.SingleMarkerAction(col=0, row=1) self.assertTrue(self.logic.apply(player=1, action=action), msg='Invalid action: {}'.format(action)) self.expected_board_state[action.row, action.col, 0] = False self.expected_board_state[action.row, action.col, 2] = True np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) def test_invalid_move_sequence(self): np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) action = tic_tac_toe_logic.SingleMarkerAction(col=1, row=2) self.assertTrue(self.logic.apply(player=0, action=action), msg='Invalid action: {}'.format(action)) self.expected_board_state[action.row, action.col, 0] = False self.expected_board_state[action.row, action.col, 1] = True np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) # Player 0 tries to move again in the same location. action = tic_tac_toe_logic.SingleMarkerAction(col=1, row=2) self.assertFalse(self.logic.apply(player=0, action=action), msg='Invalid action was accepted: {}'.format(action)) # Player 1 tries to move in the same location as player 0. self.assertFalse(self.logic.apply(player=1, action=action), msg='Invalid action was accepted: {}'.format(action)) # The board state should not have changed as a result of invalid actions. np.testing.assert_array_equal(self.logic.get_board_state(), self.expected_board_state) @parameterized.named_parameters([ dict(testcase_name='player_0_win', move_sequence=((0, 0, 0), (1, 0, 1), (0, 1, 0), (1, 2, 1), (0, 2, 0)), winner_id=0), dict(testcase_name='player_1_win', move_sequence=((0, 0, 0), (1, 0, 2), (0, 1, 0), (1, 1, 1), (0, 0, 1), (1, 2, 0)), winner_id=1), dict(testcase_name='draw', move_sequence=((0, 0, 0), (1, 1, 1), (0, 1, 0), (1, 2, 0), (0, 0, 2), (1, 0, 1), (0, 2, 1), (1, 2, 2), (0, 1, 2)), winner_id=None)]) def test_reward_and_termination(self, move_sequence, winner_id): for (player_id, row, col) in move_sequence: self.assertFalse(self.logic.is_game_over) self.assertDictEqual(self.logic.get_reward, {0: 0.0, 1: 0.0}) action = tic_tac_toe_logic.SingleMarkerAction(col=col, row=row) self.assertTrue(self.logic.apply(player=player_id, action=action), msg='Invalid action: {}'.format(action)) self.assertTrue(self.logic.is_game_over) rewards = self.logic.get_reward if winner_id is not None: loser_id = 1 - winner_id self.assertDictEqual(rewards, {winner_id: 1.0, loser_id: 0.0}) else: # Draw self.assertDictEqual(rewards, {0: 0.5, 1: 0.5}) def test_random_opponent_vs_optimal(self): """Play random v optimal opponents and check that optimal largely wins. """ rand_state = np.random.RandomState(42) optimal_opponent = tic_tac_toe_logic.TicTacToeOptimalOpponent() random_opponent = tic_tac_toe_logic.TicTacToeRandomOpponent() players = [optimal_opponent, random_opponent] optimal_returns = [] random_returns = [] for _ in range(20): logic = tic_tac_toe_logic.TicTacToeGameLogic() optimal_opponent.reset() random_opponent.reset() rand_state.shuffle(players) current_player_idx = 0 while not logic.is_game_over: current_player = players[current_player_idx] action = current_player.policy(logic, rand_state) self.assertTrue(logic.apply(current_player_idx, action), msg='Opponent {} selected invalid action {}'.format( current_player, action)) current_player_idx = (current_player_idx + 1) % 2 # Record the winner. reward = logic.get_reward if players[0] == optimal_opponent: optimal_return = reward[0] random_return = reward[1] else: optimal_return = reward[1] random_return = reward[0] optimal_returns.append(optimal_return) random_returns.append(random_return) mean_optimal_returns = np.mean(optimal_returns) mean_random_returns = np.mean(random_returns) self.assertGreater(mean_optimal_returns, 0.9) self.assertLess(mean_random_returns, 0.1) @parameterized.named_parameters([ dict(testcase_name='pos0', move_sequence=((0, 0, 1), (1, 1, 1), (0, 0, 2), (1, 1, 2)), optimal_move=(0, 0)), dict(testcase_name='pos1', move_sequence=((0, 0, 1), (1, 1, 2), (0, 0, 2), (1, 1, 1)), optimal_move=(0, 0)), dict(testcase_name='pos2', move_sequence=((0, 2, 1), (1, 1, 2), (0, 2, 2), (1, 1, 1)), optimal_move=(2, 0)), ]) def test_minimax_policy(self, move_sequence, optimal_move): rand_state = np.random.RandomState(42) for (player_id, row, col) in move_sequence: action = tic_tac_toe_logic.SingleMarkerAction(col=col, row=row) self.assertTrue(self.logic.apply(player=player_id, action=action), msg='Invalid action: {}'.format(action)) state = self.logic.open_spiel_state planner_action = tic_tac_toe_logic.tic_tac_toe_minimax(state, rand_state) self.assertEqual(planner_action, optimal_move) # Do the same but with np array as input self.logic = tic_tac_toe_logic.TicTacToeGameLogic() for (player_id, row, col) in move_sequence: action = tic_tac_toe_logic.SingleMarkerAction(col=col, row=row) self.assertTrue(self.logic.apply(player=player_id, action=action), msg='Invalid action: {}'.format(action)) board = self.logic.get_board_state() planner_action = tic_tac_toe_logic.tic_tac_toe_minimax(board, rand_state) self.assertEqual(planner_action, optimal_move) if __name__ == '__main__': absltest.main() ================================================ FILE: physics_planning_games/explore.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Visualize physical planning games in Domain Explorer. """ import functools from absl import app from absl import flags from dm_control import composer from dm_control import viewer from dm_control.locomotion import walkers from physics_planning_games import board_games from physics_planning_games.mujoban.boxoban import boxoban_level_generator from physics_planning_games.mujoban.mujoban import Mujoban from physics_planning_games.mujoban.mujoban_level import MujobanLevel flags.DEFINE_enum('environment_name', 'mujoban', [ 'mujoban', 'go_7x7', 'tic_tac_toe_markers_features', 'tic_tac_toe_mixture_opponent_markers_features', 'tic_tac_toe_optimal_opponent_markers_features'], 'Name of an environment to load.') FLAGS = flags.FLAGS TIME_LIMIT = 1000 CONTROL_TIMESTEP = .1 def main(argv): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') environment_name = FLAGS.environment_name if environment_name == 'mujoban': walker = walkers.JumpingBallWithHead(add_ears=True, camera_height=0.25) arena = MujobanLevel(boxoban_level_generator) task = Mujoban( walker=walker, maze=arena, control_timestep=CONTROL_TIMESTEP, top_camera_height=64, top_camera_width=48) env = composer.Environment( time_limit=TIME_LIMIT, task=task, strip_singleton_obs_buffer_dim=True) else: env = functools.partial( board_games.load, environment_name=environment_name) viewer.launch(env) if __name__ == '__main__': app.run(main) ================================================ FILE: physics_planning_games/mujoban/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Top-level module definitions for mujoban.""" from physics_planning_games.mujoban.mujoban import Mujoban from physics_planning_games.mujoban.mujoban_level import MujobanLevel ================================================ FILE: physics_planning_games/mujoban/boxoban.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Level generator for Mujoban based on levels from follwing dataset. https://github.com/deepmind/boxoban-levels/ """ import glob import os import zipfile import numpy as np import requests BOXOBAN_URL = "https://github.com/deepmind/boxoban-levels/archive/master.zip" def boxoban_level_generator(levels_set="unfiltered", data_split="valid"): env = Boxoban(levels_set=levels_set, data_split=data_split) while True: index = np.random.randint(0, env.num_levels-1) yield env.levels[index] class Boxoban(object): """Class for loading and generatting Boxoban levels.""" def __init__(self, levels_set="unfiltered", data_split="valid"): self._levels_set = levels_set self._data_split = data_split self._levels = [] data_file_path_local = os.path.join(os.path.dirname(__file__), "boxoban_cache", "{}_{}.npz".format(self._levels_set, self._data_split)) data_file_path_global = os.path.join("/tmp/boxoban_cache", "{}_{}.npz".format(self._levels_set, self._data_split)) if os.path.exists(data_file_path_local): self.levels = np.load(data_file_path_local)["levels"] elif os.path.exists(data_file_path_global): self.levels = np.load(data_file_path_global)["levels"] else: self.levels = self.get_data() self.num_levels = len(self.levels) def get_data(self): """Downloads and cache the data.""" try: cache_path = os.path.join( os.path.dirname(__file__), "boxoban_cache") os.makedirs(cache_path, exist_ok=True) except PermissionError: cache_path = os.path.join("/tmp/boxoban_cache") if not os.path.exists(cache_path): os.makedirs(cache_path, exist_ok=True) # Get the zip file zip_file_path = os.path.join(cache_path, "master.zip") if not os.path.exists(zip_file_path): response = requests.get(BOXOBAN_URL, stream=True) handle = open(zip_file_path, "wb") for chunk in response.iter_content(chunk_size=512): if chunk: handle.write(chunk) handle.close() with zipfile.ZipFile(zip_file_path, "r") as zipref: zipref.extractall(cache_path) # convert to npz path = os.path.join(cache_path, "boxoban-levels-master", self._levels_set, self._data_split) files = glob.glob(path + "/*.txt") levels = "".join([open(f, "r").read() for f in files]) levels = levels.split("\n;") levels = ["\n".join(item.split("\n")[1:]) for item in levels] levels = np.asarray(levels) data_file_path = os.path.join( cache_path, "{}_{}.npz".format(self._levels_set, self._data_split)) np.savez(data_file_path, levels=levels) return levels ================================================ FILE: physics_planning_games/mujoban/mujoban.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """MuJoban task. Mujoban is a single player puzzle-solving game embedded in the MuJoCo simulation environment. The puzzle is based on the 2D game of Sokoban, where an agent situated on a grid has to push boxes onto target locations. """ import collections from dm_control import composer from dm_control.composer.observation import observable as observable_lib from dm_control.locomotion.arenas import labmaze_textures from dm_control.locomotion.arenas.mazes import MazeWithTargets from dm_env import specs import numpy as np from six.moves import range from six.moves import zip from physics_planning_games.mujoban import mujoban_level from physics_planning_games.mujoban.mujoban_pad import MujobanPad from physics_planning_games.mujoban.props import BoxWithSites _FLOOR_GAP_CHAR = '#' _AMBIENT_HEADLIGHT = 0.8 _BOX_SIZE = 0.4 _BOX_HEIGHT = 0.15 _BOX_MASS = 2.5 _BOX_FRICTION = [0.5, 0.005, 0.0001] _BOX_RGBA = [173. / 255., 179. / 255., 60. / 255., 1.] _BOX_PRESSED_RGBA = [0, 0, 1, 1] _TARGET_RGBA = [1.0, 0., 0., 1.] _PRESSED_TARGET_RGBA = [0., 1., 0., 1.] _PEG_SIZE = 0.05 _PEG_HEIGHT = 0.25 _PEG_RGBA = [0.5, 0.5, 0.5, 1] _PEG_ANGLE = np.pi / 4 # Aliveness in [-1., 0.]. _ALIVE_THRESHOLD = -0.5 # Constants used by the full entity layer _WALL_LAYER = 0 _TARGET_LAYER = 1 _SOKOBAN_LAYER = 2 _BOX_LAYER = 3 def _round_positions(boxes, walker, last_round_walker): """Round float positions to snap objects to grid.""" round_walker = np.round(walker).astype('int32') round_boxes = [np.round(box).astype('int32') for box in boxes] for box in round_boxes: if np.array_equal(box, round_walker): round_walker = last_round_walker return round_boxes, round_walker class Mujoban(composer.Task): """Requires objects to be moved onto matching-colored floor pads. Agent only receives instantaneous rewards of +1 for the timestep in which a box first enters a target, and -1 for the timestep in which a box leaves the target. There is an additional reward of +10 when all the boxes are put on targets, at which point the episode terminates. """ def __init__(self, walker, maze, target_height=0, box_prop=None, box_size=None, box_mass=None, with_grid_pegs=False, detection_tolerance=0.0, physics_timestep=0.001, control_timestep=0.025, top_camera_height=128, top_camera_width=128, box_on_target_reward=1.0, level_solved_reward=10.0): """Initializes this task. Args: walker: A `Walker` object. maze: A `BaseMaze` object. target_height: The height of the target pads above the ground, in meters. box_prop: An optional `Primitive` prop to use as the box. box_size: An optional three element sequence defining the half lengths of the sides of the box. box_mass: Box mass. If this is a list or tuple, a random value is sampled from the truncated exponential distribution in [a, b) where a = box_mass[0] and b = box_mass[1], with scale factor box_mass[2] * (b - a). with_grid_pegs: Whether to add solid pegs at the corners of the maze grid cells. This helps to enforce the usual Sokoban rules where diagonal movements are forbidden. detection_tolerance: A maximum length scale (in metres) within which a box is allowed to stick outside a target pad while still activating it. For example, if this is set to 0.1 then a box will activate a pad if it sticks out of the pad by no more than 10 centimetres. physics_timestep: The time step of the physics simulation. control_timestep: Should be an integer multiple of the physics time step. top_camera_height: An int; the height of the top camera in the observation. Setting this to 0 will disable the top camera. top_camera_width: An int; the width of the top camera in the observation. Setting this to 0 will disable the top camera. box_on_target_reward: A float; reward for putting a box on a target. level_solved_reward: A float: reward for solving the level. """ skybox_texture = labmaze_textures.SkyBox(style='sky_03') wall_textures = labmaze_textures.WallTextures(style='style_01') floor_textures = labmaze_textures.FloorTextures(style='style_01') self._detection_tolerance = detection_tolerance self._box_prop = box_prop self._box_on_target_reward = box_on_target_reward self._level_solved_reward = level_solved_reward self._maze = maze self._arena = MazeWithTargets( maze=maze, xy_scale=1, z_height=1, skybox_texture=skybox_texture, wall_textures=wall_textures, floor_textures=floor_textures) self._walker = walker self._arena.mjcf_model.visual.headlight.ambient = [_AMBIENT_HEADLIGHT] * 3 self._arena.text_maze_regenerated_hook = self._regenerate_positions self._first_step = True # Targets. self._targets = [] self._target_positions = [] # Boxes. self._box_size = box_size or [_BOX_SIZE] * 2 + [_BOX_HEIGHT] self._box_mass = box_mass or _BOX_MASS self._boxes = [] self._box_positions = [] self._with_grid_pegs = with_grid_pegs self._peg_body = None self._last_walker_position = None # Create walkers and corresponding observables. self._walker.create_root_joints(self._arena.attach(self._walker)) enabled_observables = [self._walker.observables.sensors_touch, self._walker.observables.orientation] enabled_observables += self._walker.observables.proprioception enabled_observables += self._walker.observables.kinematic_sensors for observable in enabled_observables: observable.enabled = True if top_camera_width and top_camera_height: self._arena.observables.top_camera.enabled = True self._arena.observables.top_camera.width = top_camera_width self._arena.observables.top_camera.height = top_camera_height # symbolic entity repenstaion in labyrinth format. self._entity_layer = self._maze.entity_layer # pixel layer is same as pixel rendering of symbolic sokoban. self._pixel_layer = np.zeros(self._entity_layer.shape + (3,), dtype='uint8') self._full_entity_layer = np.zeros(self._entity_layer.shape + (4,), dtype='bool') pixel_layer_obs = observable_lib.Generic(lambda _: self._pixel_layer) pixel_layer_obs.enabled = True full_entity_layer_obs = observable_lib.Generic( lambda _: self._full_entity_layer) full_entity_layer_obs.enabled = True self._task_observables = collections.OrderedDict({ 'pixel_layer': pixel_layer_obs, 'full_entity_layer': full_entity_layer_obs, }) # Set time steps. self.set_timesteps( physics_timestep=physics_timestep, control_timestep=control_timestep) self._discount = 1. @property def name(self): return 'Mujoban' @property def root_entity(self): return self._arena def _regenerate_positions(self): self._object_positions = self._arena.find_token_grid_positions( [mujoban_level.TARGET_CHAR, mujoban_level.BOX_CHAR]) self._box_positions = self._arena.grid_to_world_positions( self._object_positions[mujoban_level.BOX_CHAR]) target_grid_positions = self._object_positions[mujoban_level.TARGET_CHAR] self._target_positions = self._arena.grid_to_world_positions( target_grid_positions) for idx in range(len(self._target_positions)): target_grid_position = target_grid_positions[idx] grid_y, grid_x = target_grid_position self._arena.maze.variations_layer[grid_y, grid_x] = _FLOOR_GAP_CHAR def initialize_episode_mjcf(self, random_state): self._arena.regenerate() # Clear existing targets and boxes for target in self._targets: target.detach() self._targets = [] for box in self._boxes: box.detach() self._boxes = [] self._arena.mjcf_model.contact.remove('pair') for _ in range(self._maze.num_targets): target = MujobanPad( size=self._arena.xy_scale, height=0, detection_tolerance=self._detection_tolerance) self._arena.attach(target) self._targets.append(target) for _ in range(self._maze.num_boxes): box = self._box_prop if not box: box = BoxWithSites(half_lengths=self._box_size) box.geom.mass = _BOX_MASS box.geom.rgba = [0, 0, 0, 1] # Will be randomized for each episode. frame = self._arena.attach(box) frame.add('joint', type='slide', axis=[1, 0, 0], name='x_slider') frame.add('joint', type='slide', axis=[0, 1, 0], name='y_slider') frame.add('joint', type='slide', axis=[0, 0, 1], name='z_slider') self._boxes.append(box) for target in self._targets: target.register_box(box) # Reduce the friction between box and ground. ground_geom = self._arena.mjcf_model.find('geom', 'ground') self._arena.mjcf_model.contact.add( 'pair', geom1=box.geom, geom2=ground_geom, condim=6, friction=[ _BOX_FRICTION[0], _BOX_FRICTION[0], _BOX_FRICTION[1], _BOX_FRICTION[2], _BOX_FRICTION[2] ]) # Set box masses. for box in self._boxes: box.geom.mass = _BOX_MASS box.geom.rgba[:] = _BOX_RGBA for target in self._targets: target.rgba[:] = _TARGET_RGBA target.pressed_rgba[:] = _PRESSED_TARGET_RGBA if self._with_grid_pegs: if self._peg_body is not None: self._peg_body.remove() self._peg_body = self._arena.mjcf_model.worldbody.add('body') for y in range(self._arena.maze.height - 1): for x in range(self._arena.maze.width - 1): peg_x, peg_y, _ = self._arena.grid_to_world_positions( [[x + 0.5, y + 0.5]])[0] self._peg_body.add( 'geom', type='box', size=[_PEG_SIZE / np.sqrt(2), _PEG_SIZE / np.sqrt(2), _PEG_HEIGHT / 2], pos=[peg_x, peg_y, _PEG_HEIGHT / 2], quat=[np.cos(_PEG_ANGLE / 2), 0, 0, np.sin(_PEG_ANGLE / 2)], rgba=_PEG_RGBA) def initialize_episode(self, physics, random_state): self._first_step = True self._was_activated = [False] * len(self._targets) self._is_solved = False self._discount = 1. self._walker.reinitialize_pose(physics, random_state) spawn_position = self._arena.spawn_positions[0] spawn_rotation = random_state.uniform(-np.pi, np.pi) spawn_quat = np.array( [np.cos(spawn_rotation / 2), 0, 0, np.sin(spawn_rotation / 2)]) self._walker.shift_pose( physics, [spawn_position[0], spawn_position[1], 0.0], spawn_quat) for box, box_xy_position in zip(self._boxes, self._box_positions): # Position at the middle of a maze cell. box_position = np.array( [box_xy_position[0], box_xy_position[1], self._box_size[2]]) # Commit the box's final pose. box.set_pose(physics, position=box_position, quaternion=[1., 0., 0., 0.]) for target, target_position in zip(self._targets, self._target_positions): target.set_pose(physics, position=target_position) target.reset(physics) self._update_entity_pixel_layers(physics) def before_step(self, physics, actions, random_state): if isinstance(actions, list): actions = np.concatenate(actions) super(Mujoban, self).before_step(physics, actions, random_state) if self._first_step: self._first_step = False else: self._was_activated = [target.activated for target in self._targets] def _get_object_positions_in_grid(self, physics): box_positions = self._arena.world_to_grid_positions( [physics.bind(box.geom).xpos for box in self._boxes]) walker_position = self._arena.world_to_grid_positions( [physics.bind(self._walker.root_body).xpos])[0] return box_positions, walker_position def _update_entity_pixel_layers(self, physics): """Updates the pixel observation and both layered representations. Mujoban offers 3 grid representations of the world: * the pixel layer: this is a grid representations with an RGB value at each grid point; * the entity layer: this is a grid representation with a character at each grid point. This representation hides information since if Sokoban or a box are over a target, then the target is occluded. This is the official entity layer used by arenas which is based on dm_control labmaze; * the full entity layer: this is a grid represention with a boolean vector of length 4 at each grid point. The first value is `True` iff there is a wall at this location. The second value is `True` iff there is a target at this location. The third value is for Sokoban, and fourth value is for boxes. Note that this is not a one-hot encoding since Sokoban or a box can share the same location as a target. Args: physics: a Mujoco physics object. Raises: RuntimeError: if a box or walker are overlapping with a wall. """ # The entity layer from the maze is a string that shows the maze at the # *beginning* of the level. This is fixed throughout an episode. entity_layer = self._maze.entity_layer.copy() box_positions, walker_position = self._get_object_positions_in_grid(physics) # round positions to snap to grid. box_positions, walker_position = _round_positions( box_positions, walker_position, self._last_walker_position) # setup pixel layer map_size = entity_layer.shape pixel_layer = np.ndarray(map_size + (3,), dtype='uint8') pixel_layer.fill(128) # setup full entity layer full_entity_layer = np.zeros(map_size + (4,), dtype='bool') # remove boxes and agent entity_layer[entity_layer == mujoban_level.BOX_CHAR] = '.' entity_layer[entity_layer == 'P'] = '.' # draw empty space and goals pixel_layer[entity_layer == '.'] = [0, 0, 0] pixel_layer[entity_layer == 'G'] = [255, 0, 0] full_entity_layer[:, :, _WALL_LAYER] = True full_entity_layer[:, :, _WALL_LAYER][entity_layer == '.'] = False full_entity_layer[:, :, _WALL_LAYER][entity_layer == 'G'] = False full_entity_layer[:, :, _TARGET_LAYER][entity_layer == 'G'] = True # update boxes for pos in box_positions: # to ensure we are not changing the walls. if entity_layer[pos[0], pos[1]] == '*': raise RuntimeError('Box and wall positions are overlapping and this ', 'should not happen. It requires investigation and ', 'and fixing.') # the entity layer has no representation of box on goal. entity_layer[pos[0], pos[1]] = mujoban_level.BOX_CHAR if np.array_equal(pixel_layer[pos[0], pos[1]], [255, 0, 0]): pixel_layer[pos[0], pos[1]] = [0, 255, 0] # box on goal else: pixel_layer[pos[0], pos[1]] = [255, 255, 0] full_entity_layer[pos[0], pos[1], _BOX_LAYER] = True # update player if entity_layer[walker_position[0], walker_position[1]] == '*': raise RuntimeError('Walker and wall positions are overlapping and this ', 'should have not happen. It requires investigation ', 'and fixing.') entity_layer[walker_position[0], walker_position[1]] = 'P' pixel_layer[walker_position[0], walker_position[1]] = 0, 0, 255 full_entity_layer[ walker_position[0], walker_position[1], _SOKOBAN_LAYER] = True self._last_walker_position = walker_position self._entity_layer = entity_layer self._pixel_layer = pixel_layer self._full_entity_layer = full_entity_layer def after_step(self, physics, random_state): super(Mujoban, self).after_step(physics, random_state) for box in self._boxes: physics.bind(box.geom).rgba = _BOX_RGBA for target in self._targets: if target.activated: target.activator.rgba = _BOX_PRESSED_RGBA self._update_entity_pixel_layers(physics) self._is_solved = all([target.activated for target in self._targets]) if self._is_solved: self._discount = 0. def get_reward(self, physics): reward = 0.0 for target, was_activated in zip(self._targets, self._was_activated): if target.activated and not was_activated: reward += self._box_on_target_reward elif was_activated and not target.activated: reward -= self._box_on_target_reward if self._is_solved: reward += self._level_solved_reward return reward def get_discount(self, physics): return self._discount def should_terminate_episode(self, physics): is_dead = self._walker.aliveness(physics) < _ALIVE_THRESHOLD return self._is_solved or is_dead def get_reward_spec(self): return specs.ArraySpec(shape=[], dtype=np.float32) @property def task_observables(self): return self._task_observables ================================================ FILE: physics_planning_games/mujoban/mujoban_level.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Module for generating Mujoban level. """ import labmaze BOX_CHAR = 'B' TARGET_CHAR = labmaze.defaults.OBJECT_TOKEN _DEFAULT_LEVEL = """ ##### # # #### # # # . .# # # . # # .## $## ## #$$ # ## $@# ## ### ####""" # The meaning of symbols here are the same as defined in # http://sneezingtiger.com/sokoban/levels/sasquatch5Text.html. These are the # same symbols as used by the Sokoban community. EMPTY_CELL = ' ' GOAL = '.' PLAYER = '@' PLAYER_ON_GOAL = '+' BOX = '$' BOX_ON_GOAL = '*' WALL = '#' _SOKOBAN_SYMBOLS = [ EMPTY_CELL, GOAL, PLAYER, PLAYER_ON_GOAL, BOX, BOX_ON_GOAL, WALL ] def single_level_generator(level=_DEFAULT_LEVEL): while True: yield level def _ascii_to_text_grid_level(ascii_level): """Goes from official Sokoban ASCII art to string understood by Mujoban. Args: ascii_level: a multiline string; each character is a location in a gridworld. Returns: A string. """ level = ascii_level if level.startswith('\n'): level = level[1:] level = level.replace('$', BOX_CHAR) level = level.replace('.', TARGET_CHAR) level = level.replace(' ', '.') level = level.replace('#', '*') level = level.replace('@', 'P') if level[-1] == '\n': level = level[:-1] # Pad all_rows = level.split('\n') width = max(len(row) for row in all_rows) padded_rows = [] for row in all_rows: row += '*' * (width - len(row)) padded_rows.append(row) level = '\n'.join(padded_rows) return level + '\n' class MujobanLevel(labmaze.BaseMaze): """A maze that represents a level in Mujoban.""" def __init__(self, ascii_level_generator=single_level_generator): """Constructor. Args: ascii_level_generator: a Python generator. At each iteration, this should return a string representing a level. The symbols in the string should be those of http://sneezingtiger.com/sokoban/levels/sasquatch5Text.html. These are the same symbols as used by the Sokoban community. """ self._level_iterator = ascii_level_generator() self.regenerate() def regenerate(self): """Regenerates the maze if required.""" level = next(self._level_iterator) self._entity_layer = labmaze.TextGrid(_ascii_to_text_grid_level(level)) self._variation_layer = self._entity_layer.copy() self._variation_layer[:] = '.' self._num_boxes = (self._entity_layer == BOX_CHAR).sum() num_targets = (self._entity_layer == TARGET_CHAR).sum() if num_targets != self._num_boxes: raise ValueError('Number of targets {} should equal number of boxes {}.' .format(num_targets, self._num_boxes)) @property def num_boxes(self): return self._num_boxes @property def num_targets(self): return self._num_boxes @property def entity_layer(self): return self._entity_layer @property def variations_layer(self): return self._variation_layer @property def height(self): return self._entity_layer.shape[0] @property def width(self): return self._entity_layer.shape[1] ================================================ FILE: physics_planning_games/mujoban/mujoban_level_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tests for mujoban_level.""" from absl.testing import absltest from physics_planning_games.mujoban import mujoban_level _LEVEL = """ ##### # @#### # $. # ###$.# # # $.# # # #$. # # ### ######""" _GRID_LEVEL = """******** *..P**** *..BG..* ***BG*.* *..BG*.* *.*BG..* *....*** ******** """ class MujobanLevelTest(absltest.TestCase): def test_ascii_to_text_grid_level(self): grid_level = mujoban_level._ascii_to_text_grid_level(_LEVEL) self.assertEqual(_GRID_LEVEL, grid_level) if __name__ == '__main__': absltest.main() ================================================ FILE: physics_planning_games/mujoban/mujoban_pad.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """A floor pad that is activated through touch.""" import weakref from dm_control import composer from dm_control import mjcf import numpy as np def _get_activator_box(pad_xpos, pad_size, boxes, tolerance=0.0): """Returns the activator box, if any. Otherwise returns None.""" # Ignore the height pad_min = pad_xpos[0:2] - pad_size[0:2] pad_max = pad_xpos[0:2] + pad_size[0:2] for box in boxes: box_xpos = np.array(box.xpos[0:2]) box_size = np.array(box.size[0:2]) min_ = pad_min + box_size - tolerance max_ = pad_max - box_size + tolerance in_range = np.logical_and(box_xpos >= min_, box_xpos <= max_).all() if in_range: return box # No activator box was found return None class MujobanPad(composer.Entity): """A less sensitive floor pad for Mujoban.""" def _build(self, rgba=None, pressed_rgba=None, size=1, height=0.02, detection_tolerance=0.0, name='mujoban_pad'): rgba = tuple(rgba or (1, 0, 0, 1)) pressed_rgba = tuple(pressed_rgba or (0.2, 0, 0, 1)) self._mjcf_root = mjcf.RootElement(model=name) self._site = self._mjcf_root.worldbody.add( 'site', type='box', name='site', pos=[0, 0, (height / 2 or -0.001)], size=[size / 2, size / 2, (height / 2 or 0.001)], rgba=rgba) self._activated = False self._rgba = np.array(rgba, dtype=float) self._pressed_rgba = np.array(pressed_rgba, dtype=float) self._activator = None self._detection_tolerance = detection_tolerance self._boxes = [] @property def rgba(self): return self._rgba @property def pressed_rgba(self): return self._pressed_rgba def register_box(self, box_entity): self._boxes.append(weakref.proxy(box_entity)) @property def site(self): return self._site @property def boxes(self): return self._boxes @property def activator(self): return self._activator if self._activated else None @property def mjcf_model(self): return self._mjcf_root def initialize_episode_mjcf(self, unused_random_state): self._activated = False def initialize_episode(self, physics, unused_random_state): self._update_activation(physics) def _update_activation(self, physics): # Note: we get the physically bound box, not an object from self._boxes. # That's because the generator expression below generates bound objects. box = _get_activator_box( pad_xpos=np.array(physics.bind(self._site).xpos), pad_size=np.array(physics.bind(self._site).size), boxes=(physics.bind(box.geom) for box in self._boxes), tolerance=self._detection_tolerance,) if box: self._activated = True self._activator = box else: self._activated = False self._activator = None if self._activated: physics.bind(self._site).rgba = self._pressed_rgba else: physics.bind(self._site).rgba = self._rgba def before_step(self, physics, unused_random_state): self._update_activation(physics) def after_substep(self, physics, unused_random_state): self._update_activation(physics) @property def activated(self): """Whether this floor pad is pressed at the moment.""" return self._activated def reset(self, physics): self._activated = False physics.bind(self._site).rgba = self._rgba ================================================ FILE: physics_planning_games/mujoban/mujoban_test.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tests for Mujoban.""" from absl.testing import absltest from dm_control import composer from dm_control.locomotion import walkers import dm_env as environment import numpy as np from physics_planning_games.mujoban.mujoban import Mujoban from physics_planning_games.mujoban.mujoban_level import MujobanLevel TIME_LIMIT = 5 CONTROL_TIMESTEP = .1 class MujobanTest(absltest.TestCase): def test(self): walker = walkers.JumpingBallWithHead(add_ears=True, camera_height=0.25) arena = MujobanLevel() task = Mujoban( walker=walker, maze=arena, control_timestep=CONTROL_TIMESTEP, top_camera_height=64, top_camera_width=48) env = composer.Environment( time_limit=TIME_LIMIT, task=task, strip_singleton_obs_buffer_dim=True) time_step = env.reset() self.assertEqual( set([ 'pixel_layer', 'full_entity_layer', 'top_camera', 'walker/body_height', 'walker/end_effectors_pos', 'walker/joints_pos', 'walker/joints_vel', 'walker/sensors_accelerometer', 'walker/sensors_gyro', 'walker/sensors_touch', 'walker/sensors_velocimeter', 'walker/world_zaxis', 'walker/orientation', ]), set(time_step.observation.keys())) top_camera = time_step.observation['top_camera'] self.assertEqual(np.uint8, top_camera.dtype) self.assertEqual((64, 48, 3), top_camera.shape) all_step_types = [] # Run enough actions that we are guaranteed to have restarted the # episode at least once. for _ in range(int(2*TIME_LIMIT/CONTROL_TIMESTEP)): action = 2*np.random.random(env.action_spec().shape) - 1 time_step = env.step(action) all_step_types.append(time_step.step_type) self.assertEqual(set([environment.StepType.FIRST, environment.StepType.MID, environment.StepType.LAST]), set(all_step_types)) if __name__ == '__main__': absltest.main() ================================================ FILE: physics_planning_games/mujoban/props.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Box props used in Mujoban that the agent pushes. """ import itertools from dm_control import composer from dm_control.entities import props class Box(props.Primitive): """A class representing a box prop.""" def _build(self, half_lengths=None, mass=None, name='box'): half_lengths = half_lengths or [0.05, 0.1, 0.15] super(Box, self)._build(geom_type='box', size=half_lengths, mass=mass, name=name) class BoxWithSites(Box): """A class representing a box prop with sites on the corners.""" def _build(self, half_lengths=None, mass=None, name='box'): half_lengths = half_lengths or [0.05, 0.1, 0.15] super(BoxWithSites, self)._build(half_lengths=half_lengths, mass=mass, name=name) corner_positions = itertools.product([half_lengths[0], -half_lengths[0]], [half_lengths[1], -half_lengths[1]], [half_lengths[2], -half_lengths[2]]) corner_sites = [] for i, corner_pos in enumerate(corner_positions): corner_sites.append( self.mjcf_model.worldbody.add( 'site', type='sphere', name='corner_{}'.format(i), size=[0.1], pos=corner_pos, rgba=[1, 0, 0, 1.0], group=composer.SENSOR_SITES_GROUP)) self._corner_sites = tuple(corner_sites) @property def corner_sites(self): return self._corner_sites ================================================ FILE: physics_planning_games/requirements.txt ================================================ absl-py == 0.9.0 dm-control == 0.0.403778684 dm-env labmaze numpy == 1.19.1 requests == 2.24.0 ================================================ FILE: pitfalls_static_language_models/README.md ================================================ # Mind the Gap: Assessing Temporal Generalization in Neural Language Models This repository contains the dataset splits used in [Mind the Gap: Assessing Temporal Generalization in Neural Language Models](https://arxiv.org/abs/2102.01951) (Lazaridou, Kuncoro, Gribovskaya et al., 2021). ## Datasets We provide splits of two public datasets used in the paper: WMT News Crawl and arXiv abstracts. Each subset is stored on Google Cloud Storage as gzipped text file specifying publication dates (in the `YYYYMMDD` format) and IDs of documents contained in the subset. ### arXiv arXiv abstracts and publication dates were obtained through arXiv's [OAI-PMH service](https://arxiv.org/help/oa) on January 2, 2021. We used the value in the `created` field as the article's publication date. The arXiv dataset can also be downloaded from [Kaggle](https://www.kaggle.com/Cornell-University/arxiv). ### WMT We downloaded document-split versions of the English and German [WMT News Crawl dataset](http://data.statmt.org/news-crawl/README). As the dataset does not provide document IDs, we used SHA256 hashes of the Base64 encoded unsplit texts of articles as their IDs, i.e.: ```python import gzip import hashlib with gzip.open('news-docs.2007.en.filtered.gz', 'rb') as gz_file: for line in gz_file: date, sentence_split_text, unsplit_text = line.decode('utf-8').strip().split('\t') docid = hashlib.sha256(unsplit_text.encode('utf-8')).hexdigest() yield docid, (date, sentence_split_text, unsplit_text) ``` We trained models on sentence split article texts. Some articles may appear multiple times in the dataset with different publication dates; we used each article's earliest publication date. ## Splits used in experiments | Experiments | Dataset | Splits | |---|:---:|:---:| | Sections 3-5 | WMT | control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2017-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2017-09-30/control_validation.gz)
time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2017-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2017-09-30/time_stratified_validation.gz)
[test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2017-09-30/test.gz)| || arXiv | control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/arxiv/time_stratified_control/split_2017-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/arxiv/time_stratified_control/split_2017-09-30/control_validation.gz)
time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/arxiv/time_stratified_control/split_2017-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/arxiv/time_stratified_control/split_2017-09-30/time_stratified_validation.gz)
[test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/arxiv/time_stratified_control/split_2017-09-30/test.gz)| | Appendix B: The effect of outdated models persists beyond the 2018/2019 test period | WMT | test period 2017/2018: control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2016-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2016-09-30/control_validation.gz); time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2016-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2016-09-30/time_stratified_validation.gz); [test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2016-09-30/test.gz)
test period 2016/2017: control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2015-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2015-09-30/control_validation.gz); time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2015-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2015-09-30/time_stratified_validation.gz); [test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2015-09-30/test.gz)
test period 2015/2016: control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2014-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2014-09-30/control_validation.gz); time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2014-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2014-09-30/time_stratified_validation.gz); [test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2014-09-30/test.gz)
test period 2014/2015: control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2013-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2013-09-30/control_validation.gz); time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2013-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2013-09-30/time_stratified_validation.gz); [test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2013-09-30/test.gz)
test period 2013/2014: control: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2012-09-30/control_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2012-09-30/control_validation.gz); time-stratified: [train](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2012-09-30/time_stratified_train.gz), [validation](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2012-09-30/time_stratified_validation.gz); [test](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/time_stratified_control/split_2012-09-30/test.gz) | | Appendix C: The effect of outdated models persists beyond the two-year gap | WMT | test: same as the one for Sections 3-5
validation: same as the one for the time-stratified setup for Sections 3-5
train until: [2017-09-30](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2017-09-30/train.gz), [2017-03-31](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2017-03-31/train.gz), [2016-09-30](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2016-09-30/train.gz), [2016-03-31](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2016-03-31/train.gz), [2015-09-30](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2015-09-30/train.gz), [2015-03-31](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2015-03-31/train.gz), [2014-09-30](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2014-09-30/train.gz), [2014-03-31](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2014-03-31/train.gz), [2013-09-30](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2013-09-30/train.gz), [2013-03-31](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2013-03-31/train.gz), [2012-09-30](https://storage.googleapis.com/deepmind-pitfalls-static-language-models/wmt/increasing_distance/split_2012-09-30/train.gz) ================================================ FILE: polygen/README.md ================================================ # PolyGen: An Autoregressive Generative Model of 3D Meshes ![](media/example_samples.png) This package provides an implementation of PolyGen as described in: > **PolyGen: An Autoregressive Generative Model of 3D Meshes**, *Charlie Nash, Yaroslav Ganin, S. M. Ali Eslami, Peter W. Battaglia*, ICML, 2020. ([abs](https://arxiv.org/abs/2002.10880)) PolyGen is a generative model of 3D meshes that sequentially outputs mesh vertices and faces. PolyGen consists of two parts: A vertex model, that unconditionally models mesh vertices, and a face model, that models the mesh faces conditioned on input vertices. The vertex model uses a masked Transformer decoder to express a distribution over the vertex sequences. For the face model we combine Transformers with [pointer networks](https://arxiv.org/abs/1506.03134) to express a distribution over variable length vertex sequences. In this repository we provide model code in `modules.py`, as well as data processing utilities in `data_utils.py`. We also provide Colabs that demo training PolyGen from scratch on a toy dataset, as well as sampling from a pre-trained model. There are some minor differences between this implementation and the paper: * We add global information (e.g. class label embeddings) as an additional input in the first sequence position rather than project it at each layer. This reduces parameters, but does not significantly impact performance. * We use [ReZero](https://arxiv.org/abs/2003.04887) which improves training speed. * We train with only shifting augmentations, which we find to be as effective as the combination of augmentations described in the paper. This helps to simplify the data pre-processing pipeline. ## Training Colab [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/polygen/training.ipynb) To train a PolyGen model from scratch on a collection of simple meshes use this colab. This demonstrates the data pre-processing required to create inputs for the vertex and face models. ## Sampling pre-trained model Colab [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/polygen/sample-pretrained.ipynb) To sample a model pre-trained on [ShapeNet](https://www.shapenet.org/) use this colab. The model is class-conditional, and is trained on longer sequence lengths than those described in the paper. This colab uses the following checkpoints: ([Google Cloud Storage bucket](https://console.cloud.google.com/storage/browser/deepmind-research-polygen)). ## Installation To install the package locally run: ```bash git clone https://github.com/deepmind/deepmind-research.git . cd deepmind-research/polygen pip install -e . ``` ## Giving Credit If you use this code in your work, we ask you to cite this paper: ``` @article{nash2020polygen, author={Charlie Nash and Yaroslav Ganin and S. M. Ali Eslami and Peter W. Battaglia}, title={PolyGen: An Autoregressive Generative Model of 3D Meshes}, journal={ICML}, year={2020} } ``` ## Disclaimer This is not an official Google product. ================================================ FILE: polygen/data_utils.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Mesh data utilities.""" import matplotlib.pyplot as plt from mpl_toolkits import mplot3d # pylint: disable=unused-import from mpl_toolkits.mplot3d.art3d import Poly3DCollection import networkx as nx import numpy as np import six from six.moves import range import tensorflow.compat.v1 as tf import tensorflow_probability as tfp tfd = tfp.distributions def random_shift(vertices, shift_factor=0.25): """Apply random shift to vertices.""" max_shift_pos = tf.cast(255 - tf.reduce_max(vertices, axis=0), tf.float32) max_shift_pos = tf.maximum(max_shift_pos, 1e-9) max_shift_neg = tf.cast(tf.reduce_min(vertices, axis=0), tf.float32) max_shift_neg = tf.maximum(max_shift_neg, 1e-9) shift = tfd.TruncatedNormal( tf.zeros([1, 3]), shift_factor*255, -max_shift_neg, max_shift_pos).sample() shift = tf.cast(shift, tf.int32) vertices += shift return vertices def make_vertex_model_dataset(ds, apply_random_shift=False): """Prepare dataset for vertex model training.""" def _vertex_model_map_fn(example): vertices = example['vertices'] # Randomly shift vertices if apply_random_shift: vertices = random_shift(vertices) # Re-order vertex coordinates as (z, y, x). vertices_permuted = tf.stack( [vertices[:, 2], vertices[:, 1], vertices[:, 0]], axis=-1) # Flatten quantized vertices, reindex starting from 1, and pad with a # zero stopping token. vertices_flat = tf.reshape(vertices_permuted, [-1]) example['vertices_flat'] = tf.pad(vertices_flat + 1, [[0, 1]]) # Create mask to indicate valid tokens after padding and batching. example['vertices_flat_mask'] = tf.ones_like( example['vertices_flat'], dtype=tf.float32) return example return ds.map(_vertex_model_map_fn) def make_face_model_dataset( ds, apply_random_shift=False, shuffle_vertices=True, quantization_bits=8): """Prepare dataset for face model training.""" def _face_model_map_fn(example): vertices = example['vertices'] # Randomly shift vertices if apply_random_shift: vertices = random_shift(vertices) example['num_vertices'] = tf.shape(vertices)[0] # Optionally shuffle vertices and re-order faces to match if shuffle_vertices: permutation = tf.random_shuffle(tf.range(example['num_vertices'])) vertices = tf.gather(vertices, permutation) face_permutation = tf.concat( [tf.constant([0, 1], dtype=tf.int32), tf.argsort(permutation) + 2], axis=0) example['faces'] = tf.cast( tf.gather(face_permutation, example['faces']), tf.int64) def _dequantize_verts(verts, n_bits): min_range = -0.5 max_range = 0.5 range_quantize = 2**n_bits - 1 verts = tf.cast(verts, tf.float32) verts = verts * (max_range - min_range) / range_quantize + min_range return verts # Vertices are quantized. So convert to floats for input to face model example['vertices'] = _dequantize_verts(vertices, quantization_bits) example['vertices_mask'] = tf.ones_like( example['vertices'][..., 0], dtype=tf.float32) example['faces_mask'] = tf.ones_like(example['faces'], dtype=tf.float32) return example return ds.map(_face_model_map_fn) def read_obj_file(obj_file): """Read vertices and faces from already opened file.""" vertex_list = [] flat_vertices_list = [] flat_vertices_indices = {} flat_triangles = [] for line in obj_file: tokens = line.split() if not tokens: continue line_type = tokens[0] # We skip lines not starting with v or f. if line_type == 'v': vertex_list.append([float(x) for x in tokens[1:]]) elif line_type == 'f': triangle = [] for i in range(len(tokens) - 1): vertex_name = tokens[i + 1] if vertex_name in flat_vertices_indices: triangle.append(flat_vertices_indices[vertex_name]) continue flat_vertex = [] for index in six.ensure_str(vertex_name).split('/'): if not index: continue # obj triangle indices are 1 indexed, so subtract 1 here. flat_vertex += vertex_list[int(index) - 1] flat_vertex_index = len(flat_vertices_list) flat_vertices_list.append(flat_vertex) flat_vertices_indices[vertex_name] = flat_vertex_index triangle.append(flat_vertex_index) flat_triangles.append(triangle) return np.array(flat_vertices_list, dtype=np.float32), flat_triangles def read_obj(obj_path): """Open .obj file from the path provided and read vertices and faces.""" with open(obj_path) as obj_file: return read_obj_file(obj_file) def write_obj(vertices, faces, file_path, transpose=True, scale=1.): """Write vertices and faces to obj.""" if transpose: vertices = vertices[:, [1, 2, 0]] vertices *= scale if faces is not None: if min(min(faces)) == 0: f_add = 1 else: f_add = 0 with open(file_path, 'w') as f: for v in vertices: f.write('v {} {} {}\n'.format(v[0], v[1], v[2])) for face in faces: line = 'f' for i in face: line += ' {}'.format(i + f_add) line += '\n' f.write(line) def quantize_verts(verts, n_bits=8): """Convert vertices in [-1., 1.] to discrete values in [0, n_bits**2 - 1].""" min_range = -0.5 max_range = 0.5 range_quantize = 2**n_bits - 1 verts_quantize = (verts - min_range) * range_quantize / ( max_range - min_range) return verts_quantize.astype('int32') def dequantize_verts(verts, n_bits=8, add_noise=False): """Convert quantized vertices to floats.""" min_range = -0.5 max_range = 0.5 range_quantize = 2**n_bits - 1 verts = verts.astype('float32') verts = verts * (max_range - min_range) / range_quantize + min_range if add_noise: verts += np.random.uniform(size=verts.shape) * (1 / range_quantize) return verts def face_to_cycles(face): """Find cycles in face.""" g = nx.Graph() for v in range(len(face) - 1): g.add_edge(face[v], face[v + 1]) g.add_edge(face[-1], face[0]) return list(nx.cycle_basis(g)) def flatten_faces(faces): """Converts from list of faces to flat face array with stopping indices.""" if not faces: return np.array([0]) else: l = [f + [-1] for f in faces[:-1]] l += [faces[-1] + [-2]] return np.array([item for sublist in l for item in sublist]) + 2 # pylint: disable=g-complex-comprehension def unflatten_faces(flat_faces): """Converts from flat face sequence to a list of separate faces.""" def group(seq): g = [] for el in seq: if el == 0 or el == -1: yield g g = [] else: g.append(el - 1) yield g outputs = list(group(flat_faces - 1))[:-1] # Remove empty faces return [o for o in outputs if len(o) > 2] def center_vertices(vertices): """Translate the vertices so that bounding box is centered at zero.""" vert_min = vertices.min(axis=0) vert_max = vertices.max(axis=0) vert_center = 0.5 * (vert_min + vert_max) return vertices - vert_center def normalize_vertices_scale(vertices): """Scale the vertices so that the long diagonal of the bounding box is one.""" vert_min = vertices.min(axis=0) vert_max = vertices.max(axis=0) extents = vert_max - vert_min scale = np.sqrt(np.sum(extents**2)) return vertices / scale def quantize_process_mesh(vertices, faces, tris=None, quantization_bits=8): """Quantize vertices, remove resulting duplicates and reindex faces.""" vertices = quantize_verts(vertices, quantization_bits) vertices, inv = np.unique(vertices, axis=0, return_inverse=True) # Sort vertices by z then y then x. sort_inds = np.lexsort(vertices.T) vertices = vertices[sort_inds] # Re-index faces and tris to re-ordered vertices. faces = [np.argsort(sort_inds)[inv[f]] for f in faces] if tris is not None: tris = np.array([np.argsort(sort_inds)[inv[t]] for t in tris]) # Merging duplicate vertices and re-indexing the faces causes some faces to # contain loops (e.g [2, 3, 5, 2, 4]). Split these faces into distinct # sub-faces. sub_faces = [] for f in faces: cliques = face_to_cycles(f) for c in cliques: c_length = len(c) # Only append faces with more than two verts. if c_length > 2: d = np.argmin(c) # Cyclically permute faces just that first index is the smallest. sub_faces.append([c[(d + i) % c_length] for i in range(c_length)]) faces = sub_faces if tris is not None: tris = np.array([v for v in tris if len(set(v)) == len(v)]) # Sort faces by lowest vertex indices. If two faces have the same lowest # index then sort by next lowest and so on. faces.sort(key=lambda f: tuple(sorted(f))) if tris is not None: tris = tris.tolist() tris.sort(key=lambda f: tuple(sorted(f))) tris = np.array(tris) # After removing degenerate faces some vertices are now unreferenced. # Remove these. num_verts = vertices.shape[0] vert_connected = np.equal( np.arange(num_verts)[:, None], np.hstack(faces)[None]).any(axis=-1) vertices = vertices[vert_connected] # Re-index faces and tris to re-ordered vertices. vert_indices = ( np.arange(num_verts) - np.cumsum(1 - vert_connected.astype('int'))) faces = [vert_indices[f].tolist() for f in faces] if tris is not None: tris = np.array([vert_indices[t].tolist() for t in tris]) return vertices, faces, tris def process_mesh(vertices, faces, quantization_bits=8): """Process mesh vertices and faces.""" # Transpose so that z-axis is vertical. vertices = vertices[:, [2, 0, 1]] # Translate the vertices so that bounding box is centered at zero. vertices = center_vertices(vertices) # Scale the vertices so that the long diagonal of the bounding box is equal # to one. vertices = normalize_vertices_scale(vertices) # Quantize and sort vertices, remove resulting duplicates, sort and reindex # faces. vertices, faces, _ = quantize_process_mesh( vertices, faces, quantization_bits=quantization_bits) # Flatten faces and add 'new face' = 1 and 'stop' = 0 tokens. faces = flatten_faces(faces) # Discard degenerate meshes without faces. return { 'vertices': vertices, 'faces': faces, } def load_process_mesh(mesh_obj_path, quantization_bits=8): """Load obj file and process.""" # Load mesh vertices, faces = read_obj(mesh_obj_path) return process_mesh(vertices, faces, quantization_bits) def plot_meshes(mesh_list, ax_lims=0.3, fig_size=4, el=30, rot_start=120, vert_size=10, vert_alpha=0.75, n_cols=4): """Plots mesh data using matplotlib.""" n_plot = len(mesh_list) n_cols = np.minimum(n_plot, n_cols) n_rows = np.ceil(n_plot / n_cols).astype('int') fig = plt.figure(figsize=(fig_size * n_cols, fig_size * n_rows)) for p_inc, mesh in enumerate(mesh_list): for key in [ 'vertices', 'faces', 'vertices_conditional', 'pointcloud', 'class_name' ]: if key not in list(mesh.keys()): mesh[key] = None ax = fig.add_subplot(n_rows, n_cols, p_inc + 1, projection='3d') if mesh['faces'] is not None: if mesh['vertices_conditional'] is not None: face_verts = np.concatenate( [mesh['vertices_conditional'], mesh['vertices']], axis=0) else: face_verts = mesh['vertices'] collection = [] for f in mesh['faces']: collection.append(face_verts[f]) plt_mesh = Poly3DCollection(collection) plt_mesh.set_edgecolor((0., 0., 0., 0.3)) plt_mesh.set_facecolor((1, 0, 0, 0.2)) ax.add_collection3d(plt_mesh) if mesh['vertices'] is not None: ax.scatter3D( mesh['vertices'][:, 0], mesh['vertices'][:, 1], mesh['vertices'][:, 2], lw=0., s=vert_size, c='g', alpha=vert_alpha) if mesh['vertices_conditional'] is not None: ax.scatter3D( mesh['vertices_conditional'][:, 0], mesh['vertices_conditional'][:, 1], mesh['vertices_conditional'][:, 2], lw=0., s=vert_size, c='b', alpha=vert_alpha) if mesh['pointcloud'] is not None: ax.scatter3D( mesh['pointcloud'][:, 0], mesh['pointcloud'][:, 1], mesh['pointcloud'][:, 2], lw=0., s=2.5 * vert_size, c='b', alpha=1.) ax.set_xlim(-ax_lims, ax_lims) ax.set_ylim(-ax_lims, ax_lims) ax.set_zlim(-ax_lims, ax_lims) ax.view_init(el, rot_start) display_string = '' if mesh['faces'] is not None: display_string += 'Num. faces: {}\n'.format(len(collection)) if mesh['vertices'] is not None: num_verts = mesh['vertices'].shape[0] if mesh['vertices_conditional'] is not None: num_verts += mesh['vertices_conditional'].shape[0] display_string += 'Num. verts: {}\n'.format(num_verts) if mesh['class_name'] is not None: display_string += 'Synset: {}'.format(mesh['class_name']) if mesh['pointcloud'] is not None: display_string += 'Num. pointcloud: {}\n'.format( mesh['pointcloud'].shape[0]) ax.text2D(0.05, 0.8, display_string, transform=ax.transAxes) plt.subplots_adjust( left=0., right=1., bottom=0., top=1., wspace=0.025, hspace=0.025) plt.show() ================================================ FILE: polygen/meshes/cone.obj ================================================ v 0.000000 -1.000000 -1.000000 v 0.195090 -1.000000 -0.980785 v 0.382683 -1.000000 -0.923880 v 0.555570 -1.000000 -0.831470 v 0.707107 -1.000000 -0.707107 v 0.831470 -1.000000 -0.555570 v 0.923880 -1.000000 -0.382683 v 0.980785 -1.000000 -0.195090 v 1.000000 -1.000000 -0.000000 v 0.980785 -1.000000 0.195090 v 0.923880 -1.000000 0.382683 v 0.831470 -1.000000 0.555570 v 0.707107 -1.000000 0.707107 v 0.555570 -1.000000 0.831470 v 0.382683 -1.000000 0.923880 v 0.195090 -1.000000 0.980785 v -0.000000 -1.000000 1.000000 v -0.195091 -1.000000 0.980785 v -0.382684 -1.000000 0.923879 v -0.555571 -1.000000 0.831469 v -0.707107 -1.000000 0.707106 v -0.831470 -1.000000 0.555570 v -0.923880 -1.000000 0.382683 v 0.000000 1.000000 0.000000 v -0.980785 -1.000000 0.195089 v -1.000000 -1.000000 -0.000001 v -0.980785 -1.000000 -0.195091 v -0.923879 -1.000000 -0.382684 v -0.831469 -1.000000 -0.555571 v -0.707106 -1.000000 -0.707108 v -0.555569 -1.000000 -0.831470 v -0.382682 -1.000000 -0.923880 v -0.195089 -1.000000 -0.980786 f 1 24 2 f 2 24 3 f 3 24 4 f 4 24 5 f 5 24 6 f 6 24 7 f 7 24 8 f 8 24 9 f 9 24 10 f 10 24 11 f 11 24 12 f 12 24 13 f 13 24 14 f 14 24 15 f 15 24 16 f 16 24 17 f 17 24 18 f 18 24 19 f 19 24 20 f 20 24 21 f 21 24 22 f 22 24 23 f 23 24 25 f 25 24 26 f 26 24 27 f 27 24 28 f 28 24 29 f 29 24 30 f 30 24 31 f 31 24 32 f 32 24 33 f 33 24 1 f 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 ================================================ FILE: polygen/meshes/cube.obj ================================================ v -1.000000 -1.000000 1.000000 v -1.000000 1.000000 1.000000 v -1.000000 -1.000000 -1.000000 v -1.000000 1.000000 -1.000000 v 1.000000 -1.000000 1.000000 v 1.000000 1.000000 1.000000 v 1.000000 -1.000000 -1.000000 v 1.000000 1.000000 -1.000000 f 1 2 4 3 f 3 4 8 7 f 7 8 6 5 f 5 6 2 1 f 3 7 5 1 f 8 4 2 6 ================================================ FILE: polygen/meshes/cylinder.obj ================================================ v 0.000000 -1.000000 -1.000000 v 0.000000 1.000000 -1.000000 v 0.195090 -1.000000 -0.980785 v 0.195090 1.000000 -0.980785 v 0.382683 -1.000000 -0.923880 v 0.382683 1.000000 -0.923880 v 0.555570 -1.000000 -0.831470 v 0.555570 1.000000 -0.831470 v 0.707107 -1.000000 -0.707107 v 0.707107 1.000000 -0.707107 v 0.831470 -1.000000 -0.555570 v 0.831470 1.000000 -0.555570 v 0.923880 -1.000000 -0.382683 v 0.923880 1.000000 -0.382683 v 0.980785 -1.000000 -0.195090 v 0.980785 1.000000 -0.195090 v 1.000000 -1.000000 -0.000000 v 1.000000 1.000000 -0.000000 v 0.980785 -1.000000 0.195090 v 0.980785 1.000000 0.195090 v 0.923880 -1.000000 0.382683 v 0.923880 1.000000 0.382683 v 0.831470 -1.000000 0.555570 v 0.831470 1.000000 0.555570 v 0.707107 -1.000000 0.707107 v 0.707107 1.000000 0.707107 v 0.555570 -1.000000 0.831470 v 0.555570 1.000000 0.831470 v 0.382683 -1.000000 0.923880 v 0.382683 1.000000 0.923880 v 0.195090 -1.000000 0.980785 v 0.195090 1.000000 0.980785 v -0.000000 -1.000000 1.000000 v -0.000000 1.000000 1.000000 v -0.195091 -1.000000 0.980785 v -0.195091 1.000000 0.980785 v -0.382684 -1.000000 0.923879 v -0.382684 1.000000 0.923879 v -0.555571 -1.000000 0.831469 v -0.555571 1.000000 0.831469 v -0.707107 -1.000000 0.707106 v -0.707107 1.000000 0.707106 v -0.831470 -1.000000 0.555570 v -0.831470 1.000000 0.555570 v -0.923880 -1.000000 0.382683 v -0.923880 1.000000 0.382683 v -0.980785 -1.000000 0.195089 v -0.980785 1.000000 0.195089 v -1.000000 -1.000000 -0.000001 v -1.000000 1.000000 -0.000001 v -0.980785 -1.000000 -0.195091 v -0.980785 1.000000 -0.195091 v -0.923879 -1.000000 -0.382684 v -0.923879 1.000000 -0.382684 v -0.831469 -1.000000 -0.555571 v -0.831469 1.000000 -0.555571 v -0.707106 -1.000000 -0.707108 v -0.707106 1.000000 -0.707108 v -0.555569 -1.000000 -0.831470 v -0.555569 1.000000 -0.831470 v -0.382682 -1.000000 -0.923880 v -0.382682 1.000000 -0.923880 v -0.195089 -1.000000 -0.980786 v -0.195089 1.000000 -0.980786 f 1 2 4 3 f 3 4 6 5 f 5 6 8 7 f 7 8 10 9 f 9 10 12 11 f 11 12 14 13 f 13 14 16 15 f 15 16 18 17 f 17 18 20 19 f 19 20 22 21 f 21 22 24 23 f 23 24 26 25 f 25 26 28 27 f 27 28 30 29 f 29 30 32 31 f 31 32 34 33 f 33 34 36 35 f 35 36 38 37 f 37 38 40 39 f 39 40 42 41 f 41 42 44 43 f 43 44 46 45 f 45 46 48 47 f 47 48 50 49 f 49 50 52 51 f 51 52 54 53 f 53 54 56 55 f 55 56 58 57 f 57 58 60 59 f 59 60 62 61 f 4 2 64 62 60 58 56 54 52 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 f 61 62 64 63 f 63 64 2 1 f 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 ================================================ FILE: polygen/meshes/icosphere.obj ================================================ v 0.000000 -1.000000 0.000000 v 0.723607 -0.447220 0.525725 v -0.276388 -0.447220 0.850649 v -0.894426 -0.447216 0.000000 v -0.276388 -0.447220 -0.850649 v 0.723607 -0.447220 -0.525725 v 0.276388 0.447220 0.850649 v -0.723607 0.447220 0.525725 v -0.723607 0.447220 -0.525725 v 0.276388 0.447220 -0.850649 v 0.894426 0.447216 0.000000 v 0.000000 1.000000 0.000000 v -0.162456 -0.850654 0.499995 v 0.425323 -0.850654 0.309011 v 0.262869 -0.525738 0.809012 v 0.850648 -0.525736 0.000000 v 0.425323 -0.850654 -0.309011 v -0.525730 -0.850652 0.000000 v -0.688189 -0.525736 0.499997 v -0.162456 -0.850654 -0.499995 v -0.688189 -0.525736 -0.499997 v 0.262869 -0.525738 -0.809012 v 0.951058 0.000000 0.309013 v 0.951058 0.000000 -0.309013 v 0.000000 0.000000 1.000000 v 0.587786 0.000000 0.809017 v -0.951058 0.000000 0.309013 v -0.587786 0.000000 0.809017 v -0.587786 0.000000 -0.809017 v -0.951058 0.000000 -0.309013 v 0.587786 0.000000 -0.809017 v 0.000000 0.000000 -1.000000 v 0.688189 0.525736 0.499997 v -0.262869 0.525738 0.809012 v -0.850648 0.525736 0.000000 v -0.262869 0.525738 -0.809012 v 0.688189 0.525736 -0.499997 v 0.162456 0.850654 0.499995 v 0.525730 0.850652 0.000000 v -0.425323 0.850654 0.309011 v -0.425323 0.850654 -0.309011 v 0.162456 0.850654 -0.499995 f 1 14 13 f 2 14 16 f 1 13 18 f 1 18 20 f 1 20 17 f 2 16 23 f 3 15 25 f 4 19 27 f 5 21 29 f 6 22 31 f 2 23 26 f 3 25 28 f 4 27 30 f 5 29 32 f 6 31 24 f 7 33 38 f 8 34 40 f 9 35 41 f 10 36 42 f 11 37 39 f 39 42 12 f 39 37 42 f 37 10 42 f 42 41 12 f 42 36 41 f 36 9 41 f 41 40 12 f 41 35 40 f 35 8 40 f 40 38 12 f 40 34 38 f 34 7 38 f 38 39 12 f 38 33 39 f 33 11 39 f 24 37 11 f 24 31 37 f 31 10 37 f 32 36 10 f 32 29 36 f 29 9 36 f 30 35 9 f 30 27 35 f 27 8 35 f 28 34 8 f 28 25 34 f 25 7 34 f 26 33 7 f 26 23 33 f 23 11 33 f 31 32 10 f 31 22 32 f 22 5 32 f 29 30 9 f 29 21 30 f 21 4 30 f 27 28 8 f 27 19 28 f 19 3 28 f 25 26 7 f 25 15 26 f 15 2 26 f 23 24 11 f 23 16 24 f 16 6 24 f 17 22 6 f 17 20 22 f 20 5 22 f 20 21 5 f 20 18 21 f 18 4 21 f 18 19 4 f 18 13 19 f 13 3 19 f 16 17 6 f 16 14 17 f 14 1 17 f 13 15 3 f 13 14 15 f 14 2 15 ================================================ FILE: polygen/model_test.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for the PolyGen open-source version.""" from modules import FaceModel from modules import VertexModel import numpy as np import tensorflow as tf _BATCH_SIZE = 4 _TRANSFORMER_CONFIG = { 'num_layers': 2, 'hidden_size': 64, 'fc_size': 256 } _CLASS_CONDITIONAL = True _NUM_CLASSES = 4 _NUM_INPUT_VERTS = 50 _NUM_PAD_VERTS = 10 _NUM_INPUT_FACE_INDICES = 200 _QUANTIZATION_BITS = 8 _VERTEX_MODEL_USE_DISCRETE_EMBEDDINGS = True _FACE_MODEL_DECODER_CROSS_ATTENTION = True _FACE_MODEL_DISCRETE_EMBEDDINGS = True _MAX_SAMPLE_LENGTH_VERTS = 10 _MAX_SAMPLE_LENGTH_FACES = 10 def _get_vertex_model_batch(): """Returns batch with placeholders for vertex model inputs.""" return { 'class_label': tf.range(_BATCH_SIZE), 'vertices_flat': tf.placeholder( dtype=tf.int32, shape=[_BATCH_SIZE, None]), } def _get_face_model_batch(): """Returns batch with placeholders for face model inputs.""" return { 'vertices': tf.placeholder( dtype=tf.float32, shape=[_BATCH_SIZE, None, 3]), 'vertices_mask': tf.placeholder( dtype=tf.float32, shape=[_BATCH_SIZE, None]), 'faces': tf.placeholder( dtype=tf.int32, shape=[_BATCH_SIZE, None]), } class VertexModelTest(tf.test.TestCase): def setUp(self): """Defines a vertex model.""" super(VertexModelTest, self).setUp() self.model = VertexModel( decoder_config=_TRANSFORMER_CONFIG, class_conditional=_CLASS_CONDITIONAL, num_classes=_NUM_CLASSES, max_num_input_verts=_NUM_INPUT_VERTS, quantization_bits=_QUANTIZATION_BITS, use_discrete_embeddings=_VERTEX_MODEL_USE_DISCRETE_EMBEDDINGS) def test_model_runs(self): """Tests if the model runs without crashing.""" batch = _get_vertex_model_batch() pred_dist = self.model(batch, is_training=False) logits = pred_dist.logits with self.session() as sess: sess.run(tf.global_variables_initializer()) vertices_flat = np.random.randint( 2**_QUANTIZATION_BITS + 1, size=[_BATCH_SIZE, _NUM_INPUT_VERTS * 3 + 1]) sess.run(logits, {batch['vertices_flat']: vertices_flat}) def test_sample_outputs_range(self): """Tests if the model produces samples in the correct range.""" context = {'class_label': tf.zeros((_BATCH_SIZE,), dtype=tf.int32)} sample_dict = self.model.sample( _BATCH_SIZE, max_sample_length=_MAX_SAMPLE_LENGTH_VERTS, context=context) with self.session() as sess: sess.run(tf.global_variables_initializer()) sample_dict_np = sess.run(sample_dict) in_range = np.logical_and( 0 <= sample_dict_np['vertices'], sample_dict_np['vertices'] <= 2**_QUANTIZATION_BITS).all() self.assertTrue(in_range) class FaceModelTest(tf.test.TestCase): def setUp(self): """Defines a face model.""" super(FaceModelTest, self).setUp() self.model = FaceModel( encoder_config=_TRANSFORMER_CONFIG, decoder_config=_TRANSFORMER_CONFIG, class_conditional=False, max_seq_length=_NUM_INPUT_FACE_INDICES, decoder_cross_attention=_FACE_MODEL_DECODER_CROSS_ATTENTION, use_discrete_vertex_embeddings=_FACE_MODEL_DISCRETE_EMBEDDINGS, quantization_bits=_QUANTIZATION_BITS) def test_model_runs(self): """Tests if the model runs without crashing.""" batch = _get_face_model_batch() pred_dist = self.model(batch, is_training=False) logits = pred_dist.logits with self.session() as sess: sess.run(tf.global_variables_initializer()) vertices = np.random.rand(_BATCH_SIZE, _NUM_INPUT_VERTS, 3) - 0.5 vertices_mask = np.ones([_BATCH_SIZE, _NUM_INPUT_VERTS]) faces = np.random.randint( _NUM_INPUT_VERTS + 2, size=[_BATCH_SIZE, _NUM_INPUT_FACE_INDICES]) sess.run( logits, {batch['vertices']: vertices, batch['vertices_mask']: vertices_mask, batch['faces']: faces} ) def test_sample_outputs_range(self): """Tests if the model produces samples in the correct range.""" context = _get_face_model_batch() del context['faces'] sample_dict = self.model.sample( context, max_sample_length=_MAX_SAMPLE_LENGTH_FACES) with self.session() as sess: sess.run(tf.global_variables_initializer()) # Pad the vertices in order to test that the face model only outputs # vertex indices in the unpadded range vertices = np.pad( np.random.rand(_BATCH_SIZE, _NUM_INPUT_VERTS, 3) - 0.5, [[0, 0], [0, _NUM_PAD_VERTS], [0, 0]], mode='constant') vertices_mask = np.pad( np.ones([_BATCH_SIZE, _NUM_INPUT_VERTS]), [[0, 0], [0, _NUM_PAD_VERTS]], mode='constant') sample_dict_np = sess.run( sample_dict, {context['vertices']: vertices, context['vertices_mask']: vertices_mask}) in_range = np.logical_and( 0 <= sample_dict_np['faces'], sample_dict_np['faces'] <= _NUM_INPUT_VERTS + 1).all() self.assertTrue(in_range) if __name__ == '__main__': tf.test.main() ================================================ FILE: polygen/modules.py ================================================ # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Modules and networks for mesh generation.""" import sonnet as snt from tensor2tensor.layers import common_attention from tensor2tensor.layers import common_layers import tensorflow.compat.v1 as tf from tensorflow.python.framework import function import tensorflow_probability as tfp tfd = tfp.distributions tfb = tfp.bijectors def dequantize_verts(verts, n_bits, add_noise=False): """Quantizes vertices and outputs integers with specified n_bits.""" min_range = -0.5 max_range = 0.5 range_quantize = 2**n_bits - 1 verts = tf.cast(verts, tf.float32) verts = verts * (max_range - min_range) / range_quantize + min_range if add_noise: verts += tf.random_uniform(tf.shape(verts)) * (1 / float(range_quantize)) return verts def quantize_verts(verts, n_bits): """Dequantizes integer vertices to floats.""" min_range = -0.5 max_range = 0.5 range_quantize = 2**n_bits - 1 verts_quantize = ( (verts - min_range) * range_quantize / (max_range - min_range)) return tf.cast(verts_quantize, tf.int32) def top_k_logits(logits, k): """Masks logits such that logits not in top-k are small.""" if k == 0: return logits else: values, _ = tf.math.top_k(logits, k=k) k_largest = tf.reduce_min(values) logits = tf.where(tf.less_equal(logits, k_largest), tf.ones_like(logits)*-1e9, logits) return logits def top_p_logits(logits, p): """Masks logits using nucleus (top-p) sampling.""" if p == 1: return logits else: logit_shape = tf.shape(logits) seq, dim = logit_shape[1], logit_shape[2] logits = tf.reshape(logits, [-1, dim]) sort_indices = tf.argsort(logits, axis=-1, direction='DESCENDING') probs = tf.gather(tf.nn.softmax(logits), sort_indices, batch_dims=1) cumprobs = tf.cumsum(probs, axis=-1, exclusive=True) # The top 1 candidate always will not be masked. # This way ensures at least 1 indices will be selected. sort_mask = tf.cast(tf.greater(cumprobs, p), logits.dtype) batch_indices = tf.tile( tf.expand_dims(tf.range(tf.shape(logits)[0]), axis=-1), [1, dim]) top_p_mask = tf.scatter_nd( tf.stack([batch_indices, sort_indices], axis=-1), sort_mask, tf.shape(logits)) logits -= top_p_mask * 1e9 return tf.reshape(logits, [-1, seq, dim]) _function_cache = {} # For multihead_self_attention_memory_efficient def multihead_self_attention_memory_efficient(x, bias, num_heads, head_size=None, cache=None, epsilon=1e-6, forget=True, test_vars=None, name=None): """Memory-efficient Multihead scaled-dot-product self-attention. Based on Tensor2Tensor version but adds optional caching. Returns multihead-self-attention(layer_norm(x)) Computes one attention head at a time to avoid exhausting memory. If forget=True, then forget all forwards activations and recompute on the backwards pass. Args: x: a Tensor with shape [batch, length, input_size] bias: an attention bias tensor broadcastable to [batch, 1, length, length] num_heads: an integer head_size: an optional integer - defaults to input_size/num_heads cache: Optional dict containing tensors which are the results of previous attentions, used for fast decoding. Expects the dict to contain two keys ('k' and 'v'), for the initial call the values for these keys should be empty Tensors of the appropriate shape. 'k' [batch_size, 0, key_channels] 'v' [batch_size, 0, value_channels] epsilon: a float, for layer norm forget: a boolean - forget forwards activations and recompute on backprop test_vars: optional tuple of variables for testing purposes name: an optional string Returns: A Tensor. """ io_size = x.get_shape().as_list()[-1] if head_size is None: assert io_size % num_heads == 0 head_size = io_size / num_heads def forward_internal(x, wqkv, wo, attention_bias, norm_scale, norm_bias): """Forward function.""" n = common_layers.layer_norm_compute(x, epsilon, norm_scale, norm_bias) wqkv_split = tf.unstack(wqkv, num=num_heads) wo_split = tf.unstack(wo, num=num_heads) y = 0 if cache is not None: cache_k = [] cache_v = [] for h in range(num_heads): with tf.control_dependencies([y] if h > 0 else []): combined = tf.nn.conv1d(n, wqkv_split[h], 1, 'SAME') q, k, v = tf.split(combined, 3, axis=2) if cache is not None: k = tf.concat([cache['k'][:, h], k], axis=1) v = tf.concat([cache['v'][:, h], v], axis=1) cache_k.append(k) cache_v.append(v) o = common_attention.scaled_dot_product_attention_simple( q, k, v, attention_bias) y += tf.nn.conv1d(o, wo_split[h], 1, 'SAME') if cache is not None: cache['k'] = tf.stack(cache_k, axis=1) cache['v'] = tf.stack(cache_v, axis=1) return y key = ( 'multihead_self_attention_memory_efficient %s %s' % (num_heads, epsilon)) if not forget: forward_fn = forward_internal elif key in _function_cache: forward_fn = _function_cache[key] else: @function.Defun(compiled=True) def grad_fn(x, wqkv, wo, attention_bias, norm_scale, norm_bias, dy): """Custom gradient function.""" with tf.control_dependencies([dy]): n = common_layers.layer_norm_compute(x, epsilon, norm_scale, norm_bias) wqkv_split = tf.unstack(wqkv, num=num_heads) wo_split = tf.unstack(wo, num=num_heads) deps = [] dwqkvs = [] dwos = [] dn = 0 for h in range(num_heads): with tf.control_dependencies(deps): combined = tf.nn.conv1d(n, wqkv_split[h], 1, 'SAME') q, k, v = tf.split(combined, 3, axis=2) o = common_attention.scaled_dot_product_attention_simple( q, k, v, attention_bias) partial_y = tf.nn.conv1d(o, wo_split[h], 1, 'SAME') pdn, dwqkvh, dwoh = tf.gradients( ys=[partial_y], xs=[n, wqkv_split[h], wo_split[h]], grad_ys=[dy]) dn += pdn dwqkvs.append(dwqkvh) dwos.append(dwoh) deps = [dn, dwqkvh, dwoh] dwqkv = tf.stack(dwqkvs) dwo = tf.stack(dwos) with tf.control_dependencies(deps): dx, dnorm_scale, dnorm_bias = tf.gradients( ys=[n], xs=[x, norm_scale, norm_bias], grad_ys=[dn]) return (dx, dwqkv, dwo, tf.zeros_like(attention_bias), dnorm_scale, dnorm_bias) @function.Defun( grad_func=grad_fn, compiled=True, separate_compiled_gradients=True) def forward_fn(x, wqkv, wo, attention_bias, norm_scale, norm_bias): return forward_internal(x, wqkv, wo, attention_bias, norm_scale, norm_bias) _function_cache[key] = forward_fn if bias is not None: bias = tf.squeeze(bias, 1) with tf.variable_scope(name, default_name='multihead_attention', values=[x]): if test_vars is not None: wqkv, wo, norm_scale, norm_bias = list(test_vars) else: wqkv = tf.get_variable( 'wqkv', [num_heads, 1, io_size, 3 * head_size], initializer=tf.random_normal_initializer(stddev=io_size**-0.5)) wo = tf.get_variable( 'wo', [num_heads, 1, head_size, io_size], initializer=tf.random_normal_initializer( stddev=(head_size * num_heads)**-0.5)) norm_scale, norm_bias = common_layers.layer_norm_vars(io_size) y = forward_fn(x, wqkv, wo, bias, norm_scale, norm_bias) y.set_shape(x.get_shape()) # pytype: disable=attribute-error return y class TransformerEncoder(snt.AbstractModule): """Transformer encoder. Sonnet Transformer encoder module as described in Vaswani et al. 2017. Uses the Tensor2Tensor multihead_attention function for full self attention (no masking). Layer norm is applied inside the residual path as in sparse transformers (Child 2019). This module expects inputs to be already embedded, and does not add position embeddings. """ def __init__(self, hidden_size=256, fc_size=1024, num_heads=4, layer_norm=True, num_layers=8, dropout_rate=0.2, re_zero=True, memory_efficient=False, name='transformer_encoder'): """Initializes TransformerEncoder. Args: hidden_size: Size of embedding vectors. fc_size: Size of fully connected layer. num_heads: Number of attention heads. layer_norm: If True, apply layer normalization num_layers: Number of Transformer blocks, where each block contains a multi-head attention layer and a MLP. dropout_rate: Dropout rate applied immediately after the ReLU in each fully-connected layer. re_zero: If True, alpha scale residuals with zero init. memory_efficient: If True, recompute gradients for memory savings. name: Name of variable scope """ super(TransformerEncoder, self).__init__(name=name) self.hidden_size = hidden_size self.num_heads = num_heads self.layer_norm = layer_norm self.fc_size = fc_size self.num_layers = num_layers self.dropout_rate = dropout_rate self.re_zero = re_zero self.memory_efficient = memory_efficient def _build(self, inputs, is_training=False): """Passes inputs through Transformer encoder network. Args: inputs: Tensor of shape [batch_size, sequence_length, embed_size]. Zero embeddings are masked in self-attention. is_training: If True, dropout is applied. Returns: output: Tensor of shape [batch_size, sequence_length, embed_size]. """ if is_training: dropout_rate = self.dropout_rate else: dropout_rate = 0. # Identify elements with all zeros as padding, and create bias to mask # out padding elements in self attention. encoder_padding = common_attention.embedding_to_padding(inputs) encoder_self_attention_bias = ( common_attention.attention_bias_ignore_padding(encoder_padding)) x = inputs for layer_num in range(self.num_layers): with tf.variable_scope('layer_{}'.format(layer_num)): # Multihead self-attention from Tensor2Tensor. res = x if self.memory_efficient: res = multihead_self_attention_memory_efficient( res, bias=encoder_self_attention_bias, num_heads=self.num_heads, head_size=self.hidden_size // self.num_heads, forget=True if is_training else False, name='self_attention' ) else: if self.layer_norm: res = common_layers.layer_norm(res, name='self_attention') res = common_attention.multihead_attention( res, memory_antecedent=None, bias=encoder_self_attention_bias, total_key_depth=self.hidden_size, total_value_depth=self.hidden_size, output_depth=self.hidden_size, num_heads=self.num_heads, dropout_rate=0., make_image_summary=False, name='self_attention') if self.re_zero: res *= tf.get_variable('self_attention/alpha', initializer=0.) if dropout_rate: res = tf.nn.dropout(res, rate=dropout_rate) x += res # MLP res = x if self.layer_norm: res = common_layers.layer_norm(res, name='fc') res = tf.layers.dense( res, self.fc_size, activation=tf.nn.relu, name='fc_1') res = tf.layers.dense(res, self.hidden_size, name='fc_2') if self.re_zero: res *= tf.get_variable('fc/alpha', initializer=0.) if dropout_rate: res = tf.nn.dropout(res, rate=dropout_rate) x += res if self.layer_norm: output = common_layers.layer_norm(x, name='output') else: output = x return output class TransformerDecoder(snt.AbstractModule): """Transformer decoder. Sonnet Transformer decoder module as described in Vaswani et al. 2017. Uses the Tensor2Tensor multihead_attention function for masked self attention, and non-masked cross attention attention. Layer norm is applied inside the residual path as in sparse transformers (Child 2019). This module expects inputs to be already embedded, and does not add position embeddings. """ def __init__(self, hidden_size=256, fc_size=1024, num_heads=4, layer_norm=True, num_layers=8, dropout_rate=0.2, re_zero=True, memory_efficient=False, name='transformer_decoder'): """Initializes TransformerDecoder. Args: hidden_size: Size of embedding vectors. fc_size: Size of fully connected layer. num_heads: Number of attention heads. layer_norm: If True, apply layer normalization. If mem_efficient_attention is True, then layer norm is always applied. num_layers: Number of Transformer blocks, where each block contains a multi-head attention layer and a MLP. dropout_rate: Dropout rate applied immediately after the ReLU in each fully-connected layer. re_zero: If True, alpha scale residuals with zero init. memory_efficient: If True, recompute gradients for memory savings. name: Name of variable scope """ super(TransformerDecoder, self).__init__(name=name) self.hidden_size = hidden_size self.num_heads = num_heads self.layer_norm = layer_norm self.fc_size = fc_size self.num_layers = num_layers self.dropout_rate = dropout_rate self.re_zero = re_zero self.memory_efficient = memory_efficient def _build(self, inputs, sequential_context_embeddings=None, is_training=False, cache=None): """Passes inputs through Transformer decoder network. Args: inputs: Tensor of shape [batch_size, sequence_length, embed_size]. Zero embeddings are masked in self-attention. sequential_context_embeddings: Optional tensor with global context (e.g image embeddings) of shape [batch_size, context_seq_length, context_embed_size]. is_training: If True, dropout is applied. cache: Optional dict containing tensors which are the results of previous attentions, used for fast decoding. Expects the dict to contain two keys ('k' and 'v'), for the initial call the values for these keys should be empty Tensors of the appropriate shape. 'k' [batch_size, 0, key_channels] 'v' [batch_size, 0, value_channels] Returns: output: Tensor of shape [batch_size, sequence_length, embed_size]. """ if is_training: dropout_rate = self.dropout_rate else: dropout_rate = 0. # create bias to mask future elements for causal self-attention. seq_length = tf.shape(inputs)[1] decoder_self_attention_bias = common_attention.attention_bias_lower_triangle( seq_length) # If using sequential_context, identify elements with all zeros as padding, # and create bias to mask out padding elements in self attention. if sequential_context_embeddings is not None: encoder_padding = common_attention.embedding_to_padding( sequential_context_embeddings) encoder_decoder_attention_bias = ( common_attention.attention_bias_ignore_padding(encoder_padding)) x = inputs for layer_num in range(self.num_layers): with tf.variable_scope('layer_{}'.format(layer_num)): # If using cached decoding, access cache for current layer, and create # bias that enables un-masked attention into the cache if cache is not None: layer_cache = cache[layer_num] layer_decoder_bias = tf.zeros([1, 1, 1, 1]) # Otherwise use standard masked bias else: layer_cache = None layer_decoder_bias = decoder_self_attention_bias # Multihead self-attention from Tensor2Tensor. res = x if self.memory_efficient: res = multihead_self_attention_memory_efficient( res, bias=layer_decoder_bias, cache=layer_cache, num_heads=self.num_heads, head_size=self.hidden_size // self.num_heads, forget=True if is_training else False, name='self_attention' ) else: if self.layer_norm: res = common_layers.layer_norm(res, name='self_attention') res = common_attention.multihead_attention( res, memory_antecedent=None, bias=layer_decoder_bias, total_key_depth=self.hidden_size, total_value_depth=self.hidden_size, output_depth=self.hidden_size, num_heads=self.num_heads, cache=layer_cache, dropout_rate=0., make_image_summary=False, name='self_attention') if self.re_zero: res *= tf.get_variable('self_attention/alpha', initializer=0.) if dropout_rate: res = tf.nn.dropout(res, rate=dropout_rate) x += res # Optional cross attention into sequential context if sequential_context_embeddings is not None: res = x if self.layer_norm: res = common_layers.layer_norm(res, name='cross_attention') res = common_attention.multihead_attention( res, memory_antecedent=sequential_context_embeddings, bias=encoder_decoder_attention_bias, total_key_depth=self.hidden_size, total_value_depth=self.hidden_size, output_depth=self.hidden_size, num_heads=self.num_heads, dropout_rate=0., make_image_summary=False, name='cross_attention') if self.re_zero: res *= tf.get_variable('cross_attention/alpha', initializer=0.) if dropout_rate: res = tf.nn.dropout(res, rate=dropout_rate) x += res # FC layers res = x if self.layer_norm: res = common_layers.layer_norm(res, name='fc') res = tf.layers.dense( res, self.fc_size, activation=tf.nn.relu, name='fc_1') res = tf.layers.dense(res, self.hidden_size, name='fc_2') if self.re_zero: res *= tf.get_variable('fc/alpha', initializer=0.) if dropout_rate: res = tf.nn.dropout(res, rate=dropout_rate) x += res if self.layer_norm: output = common_layers.layer_norm(x, name='output') else: output = x return output def create_init_cache(self, batch_size): """Creates empty cache dictionary for use in fast decoding.""" def compute_cache_shape_invariants(tensor): """Helper function to get dynamic shapes for cache tensors.""" shape_list = tensor.shape.as_list() if len(shape_list) == 4: return tf.TensorShape( [shape_list[0], shape_list[1], None, shape_list[3]]) elif len(shape_list) == 3: return tf.TensorShape([shape_list[0], None, shape_list[2]]) # Build cache k = common_attention.split_heads( tf.zeros([batch_size, 0, self.hidden_size]), self.num_heads) v = common_attention.split_heads( tf.zeros([batch_size, 0, self.hidden_size]), self.num_heads) cache = [{'k': k, 'v': v} for _ in range(self.num_layers)] shape_invariants = tf.nest.map_structure( compute_cache_shape_invariants, cache) return cache, shape_invariants def conv_residual_block(inputs, output_channels=None, downsample=False, kernel_size=3, re_zero=True, dropout_rate=0., name='conv_residual_block'): """Convolutional block with residual connections for 2D or 3D inputs. Args: inputs: Input tensor of shape [batch_size, height, width, channels] or [batch_size, height, width, depth, channels]. output_channels: Number of output channels. downsample: If True, downsample by 1/2 in this block. kernel_size: Spatial size of convolutional kernels. re_zero: If True, alpha scale residuals with zero init. dropout_rate: Dropout rate applied after second ReLU in residual path. name: Name for variable scope. Returns: outputs: Output tensor of shape [batch_size, height, width, output_channels] or [batch_size, height, width, depth, output_channels]. """ with tf.variable_scope(name): input_shape = inputs.get_shape().as_list() num_dims = len(input_shape) - 2 if num_dims == 2: conv = tf.layers.conv2d elif num_dims == 3: conv = tf.layers.conv3d input_channels = input_shape[-1] if output_channels is None: output_channels = input_channels if downsample: shortcut = conv( inputs, filters=output_channels, strides=2, kernel_size=kernel_size, padding='same', name='conv_shortcut') else: shortcut = inputs res = inputs res = tf.nn.relu(res) res = conv( res, filters=input_channels, kernel_size=kernel_size, padding='same', name='conv_1') res = tf.nn.relu(res) if dropout_rate: res = tf.nn.dropout(res, rate=dropout_rate) if downsample: out_strides = 2 else: out_strides = 1 res = conv( res, filters=output_channels, kernel_size=kernel_size, padding='same', strides=out_strides, name='conv_2') if re_zero: res *= tf.get_variable('alpha', initializer=0.) return shortcut + res class ResNet(snt.AbstractModule): """ResNet architecture for 2D image or 3D voxel inputs.""" def __init__(self, num_dims, hidden_sizes=(64, 256), num_blocks=(2, 2), dropout_rate=0.1, re_zero=True, name='res_net'): """Initializes ResNet. Args: num_dims: Number of spatial dimensions. 2 for images or 3 for voxels. hidden_sizes: Sizes of hidden layers in resnet blocks. num_blocks: Number of resnet blocks at each size. dropout_rate: Dropout rate applied immediately after the ReLU in each fully-connected layer. re_zero: If True, alpha scale residuals with zero init. name: Name of variable scope """ super(ResNet, self).__init__(name=name) self.num_dims = num_dims self.hidden_sizes = hidden_sizes self.num_blocks = num_blocks self.dropout_rate = dropout_rate self.re_zero = re_zero def _build(self, inputs, is_training=False): """Passes inputs through resnet. Args: inputs: Tensor of shape [batch_size, height, width, channels] or [batch_size, height, width, depth, channels]. is_training: If True, dropout is applied. Returns: output: Tensor of shape [batch_size, height, width, depth, output_size]. """ if is_training: dropout_rate = self.dropout_rate else: dropout_rate = 0. # Initial projection with large kernel as in original resnet architecture if self.num_dims == 3: conv = tf.layers.conv3d elif self.num_dims == 2: conv = tf.layers.conv2d x = conv( inputs, filters=self.hidden_sizes[0], kernel_size=7, strides=2, padding='same', name='conv_input') if self.num_dims == 2: x = tf.layers.max_pooling2d( x, strides=2, pool_size=3, padding='same', name='pool_input') for d, (hidden_size, blocks) in enumerate(zip(self.hidden_sizes, self.num_blocks)): with tf.variable_scope('resolution_{}'.format(d)): # Downsample at the start of each collection of blocks x = conv_residual_block( x, downsample=False if d == 0 else True, dropout_rate=dropout_rate, output_channels=hidden_size, re_zero=self.re_zero, name='block_1_downsample') for i in range(blocks - 1): x = conv_residual_block( x, dropout_rate=dropout_rate, output_channels=hidden_size, re_zero=self.re_zero, name='block_{}'.format(i + 2)) return x class VertexModel(snt.AbstractModule): """Autoregressive generative model of quantized mesh vertices. Operates on flattened vertex sequences with a stopping token: [z_0, y_0, x_0, z_1, y_1, x_1, ..., z_n, y_n, z_n, STOP] Input vertex coordinates are embedded and tagged with learned coordinate and position indicators. A transformer decoder outputs logits for a quantized vertex distribution. """ def __init__(self, decoder_config, quantization_bits, class_conditional=False, num_classes=55, max_num_input_verts=2500, use_discrete_embeddings=True, name='vertex_model'): """Initializes VertexModel. Args: decoder_config: Dictionary with TransformerDecoder config quantization_bits: Number of quantization used in mesh preprocessing. class_conditional: If True, then condition on learned class embeddings. num_classes: Number of classes to condition on. max_num_input_verts: Maximum number of vertices. Used for learned position embeddings. use_discrete_embeddings: If True, use discrete rather than continuous vertex embeddings. name: Name of variable scope """ super(VertexModel, self).__init__(name=name) self.embedding_dim = decoder_config['hidden_size'] self.class_conditional = class_conditional self.num_classes = num_classes self.max_num_input_verts = max_num_input_verts self.quantization_bits = quantization_bits self.use_discrete_embeddings = use_discrete_embeddings with self._enter_variable_scope(): self.decoder = TransformerDecoder(**decoder_config) @snt.reuse_variables def _embed_class_label(self, labels): """Embeds class label with learned embedding matrix.""" init_dict = {'embeddings': tf.glorot_uniform_initializer} return snt.Embed( vocab_size=self.num_classes, embed_dim=self.embedding_dim, initializers=init_dict, densify_gradients=True, name='class_label')(labels) @snt.reuse_variables def _prepare_context(self, context, is_training=False): """Prepare class label context.""" if self.class_conditional: global_context_embedding = self._embed_class_label(context['class_label']) else: global_context_embedding = None return global_context_embedding, None @snt.reuse_variables def _embed_inputs(self, vertices, global_context_embedding=None): """Embeds flat vertices and adds position and coordinate information.""" # Dequantize inputs and get shapes input_shape = tf.shape(vertices) batch_size, seq_length = input_shape[0], input_shape[1] # Coord indicators (x, y, z) coord_embeddings = snt.Embed( vocab_size=3, embed_dim=self.embedding_dim, initializers={'embeddings': tf.glorot_uniform_initializer}, densify_gradients=True, name='coord_embeddings')(tf.mod(tf.range(seq_length), 3)) # Position embeddings pos_embeddings = snt.Embed( vocab_size=self.max_num_input_verts, embed_dim=self.embedding_dim, initializers={'embeddings': tf.glorot_uniform_initializer}, densify_gradients=True, name='coord_embeddings')(tf.floordiv(tf.range(seq_length), 3)) # Discrete vertex value embeddings if self.use_discrete_embeddings: vert_embeddings = snt.Embed( vocab_size=2**self.quantization_bits + 1, embed_dim=self.embedding_dim, initializers={'embeddings': tf.glorot_uniform_initializer}, densify_gradients=True, name='value_embeddings')(vertices) # Continuous vertex value embeddings else: vert_embeddings = tf.layers.dense( dequantize_verts(vertices[..., None], self.quantization_bits), self.embedding_dim, use_bias=True, name='value_embeddings') # Step zero embeddings if global_context_embedding is None: zero_embed = tf.get_variable( 'embed_zero', shape=[1, 1, self.embedding_dim]) zero_embed_tiled = tf.tile(zero_embed, [batch_size, 1, 1]) else: zero_embed_tiled = global_context_embedding[:, None] # Aggregate embeddings embeddings = vert_embeddings + (coord_embeddings + pos_embeddings)[None] embeddings = tf.concat([zero_embed_tiled, embeddings], axis=1) return embeddings @snt.reuse_variables def _project_to_logits(self, inputs): """Projects transformer outputs to logits for predictive distribution.""" return tf.layers.dense( inputs, 2**self.quantization_bits + 1, # + 1 for stopping token use_bias=True, kernel_initializer=tf.zeros_initializer(), name='project_to_logits') @snt.reuse_variables def _create_dist(self, vertices, global_context_embedding=None, sequential_context_embeddings=None, temperature=1., top_k=0, top_p=1., is_training=False, cache=None): """Outputs categorical dist for quantized vertex coordinates.""" # Embed inputs decoder_inputs = self._embed_inputs(vertices, global_context_embedding) if cache is not None: decoder_inputs = decoder_inputs[:, -1:] # pass through decoder outputs = self.decoder( decoder_inputs, cache=cache, sequential_context_embeddings=sequential_context_embeddings, is_training=is_training) # Get logits and optionally process for sampling logits = self._project_to_logits(outputs) logits /= temperature logits = top_k_logits(logits, top_k) logits = top_p_logits(logits, top_p) cat_dist = tfd.Categorical(logits=logits) return cat_dist def _build(self, batch, is_training=False): """Pass batch through vertex model and get log probabilities under model. Args: batch: Dictionary containing: 'vertices_flat': int32 vertex tensors of shape [batch_size, seq_length]. is_training: If True, use dropout. Returns: pred_dist: tfd.Categorical predictive distribution with batch shape [batch_size, seq_length]. """ global_context, seq_context = self._prepare_context( batch, is_training=is_training) pred_dist = self._create_dist( batch['vertices_flat'][:, :-1], # Last element not used for preds global_context_embedding=global_context, sequential_context_embeddings=seq_context, is_training=is_training) return pred_dist def sample(self, num_samples, context=None, max_sample_length=None, temperature=1., top_k=0, top_p=1., recenter_verts=True, only_return_complete=True): """Autoregressive sampling with caching. Args: num_samples: Number of samples to produce. context: Dictionary of context, such as class labels. See _prepare_context for details. max_sample_length: Maximum length of sampled vertex sequences. Sequences that do not complete are truncated. temperature: Scalar softmax temperature > 0. top_k: Number of tokens to keep for top-k sampling. top_p: Proportion of probability mass to keep for top-p sampling. recenter_verts: If True, center vertex samples around origin. This should be used if model is trained using shift augmentations. only_return_complete: If True, only return completed samples. Otherwise return all samples along with completed indicator. Returns: outputs: Output dictionary with fields: 'completed': Boolean tensor of shape [num_samples]. If True then corresponding sample completed within max_sample_length. 'vertices': Tensor of samples with shape [num_samples, num_verts, 3]. 'num_vertices': Tensor indicating number of vertices for each example in padded vertex samples. 'vertices_mask': Tensor of shape [num_samples, num_verts] that masks corresponding invalid elements in 'vertices'. """ # Obtain context for decoder global_context, seq_context = self._prepare_context( context, is_training=False) # num_samples is the minimum value of num_samples and the batch size of # context inputs (if present). if global_context is not None: num_samples = tf.minimum(num_samples, tf.shape(global_context)[0]) global_context = global_context[:num_samples] if seq_context is not None: seq_context = seq_context[:num_samples] elif seq_context is not None: num_samples = tf.minimum(num_samples, tf.shape(seq_context)[0]) seq_context = seq_context[:num_samples] def _loop_body(i, samples, cache): """While-loop body for autoregression calculation.""" cat_dist = self._create_dist( samples, global_context_embedding=global_context, sequential_context_embeddings=seq_context, cache=cache, temperature=temperature, top_k=top_k, top_p=top_p) next_sample = cat_dist.sample() samples = tf.concat([samples, next_sample], axis=1) return i + 1, samples, cache def _stopping_cond(i, samples, cache): """Stopping condition for sampling while-loop.""" del i, cache # Unused return tf.reduce_any(tf.reduce_all(tf.not_equal(samples, 0), axis=-1)) # Initial values for loop variables samples = tf.zeros([num_samples, 0], dtype=tf.int32) max_sample_length = max_sample_length or self.max_num_input_verts cache, cache_shape_invariants = self.decoder.create_init_cache(num_samples) _, v, _ = tf.while_loop( cond=_stopping_cond, body=_loop_body, loop_vars=(0, samples, cache), shape_invariants=(tf.TensorShape([]), tf.TensorShape([None, None]), cache_shape_invariants), maximum_iterations=max_sample_length * 3 + 1, back_prop=False, parallel_iterations=1) # Check if samples completed. Samples are complete if the stopping token # is produced. completed = tf.reduce_any(tf.equal(v, 0), axis=-1) # Get the number of vertices in the sample. This requires finding the # index of the stopping token. For complete samples use to argmax to get # first nonzero index. stop_index_completed = tf.argmax( tf.cast(tf.equal(v, 0), tf.int32), axis=-1, output_type=tf.int32) # For incomplete samples the stopping index is just the maximum index. stop_index_incomplete = ( max_sample_length * 3 * tf.ones_like(stop_index_completed)) stop_index = tf.where( completed, stop_index_completed, stop_index_incomplete) num_vertices = tf.floordiv(stop_index, 3) # Convert to 3D vertices by reshaping and re-ordering x -> y -> z v = v[:, :(tf.reduce_max(num_vertices) * 3)] - 1 verts_dequantized = dequantize_verts(v, self.quantization_bits) vertices = tf.reshape(verts_dequantized, [num_samples, -1, 3]) vertices = tf.stack( [vertices[..., 2], vertices[..., 1], vertices[..., 0]], axis=-1) # Pad samples to max sample length. This is required in order to concatenate # Samples across different replicator instances. Pad with stopping tokens # for incomplete samples. pad_size = max_sample_length - tf.shape(vertices)[1] vertices = tf.pad(vertices, [[0, 0], [0, pad_size], [0, 0]]) # 3D Vertex mask vertices_mask = tf.cast( tf.range(max_sample_length)[None] < num_vertices[:, None], tf.float32) if recenter_verts: vert_max = tf.reduce_max( vertices - 1e10 * (1. - vertices_mask)[..., None], axis=1, keepdims=True) vert_min = tf.reduce_min( vertices + 1e10 * (1. - vertices_mask)[..., None], axis=1, keepdims=True) vert_centers = 0.5 * (vert_max + vert_min) vertices -= vert_centers vertices *= vertices_mask[..., None] if only_return_complete: vertices = tf.boolean_mask(vertices, completed) num_vertices = tf.boolean_mask(num_vertices, completed) vertices_mask = tf.boolean_mask(vertices_mask, completed) completed = tf.boolean_mask(completed, completed) # Outputs outputs = { 'completed': completed, 'vertices': vertices, 'num_vertices': num_vertices, 'vertices_mask': vertices_mask, } return outputs class ImageToVertexModel(VertexModel): """Generative model of quantized mesh vertices with image conditioning. Operates on flattened vertex sequences with a stopping token: [z_0, y_0, x_0, z_1, y_1, x_1, ..., z_n, y_n, z_n, STOP] Input vertex coordinates are embedded and tagged with learned coordinate and position indicators. A transformer decoder outputs logits for a quantized vertex distribution. Image inputs are encoded and used to condition the vertex decoder. """ def __init__(self, res_net_config, decoder_config, quantization_bits, use_discrete_embeddings=True, max_num_input_verts=2500, name='image_to_vertex_model'): """Initializes VoxelToVertexModel. Args: res_net_config: Dictionary with ResNet config. decoder_config: Dictionary with TransformerDecoder config. quantization_bits: Number of quantization used in mesh preprocessing. use_discrete_embeddings: If True, use discrete rather than continuous vertex embeddings. max_num_input_verts: Maximum number of vertices. Used for learned position embeddings. name: Name of variable scope """ super(ImageToVertexModel, self).__init__( decoder_config=decoder_config, quantization_bits=quantization_bits, max_num_input_verts=max_num_input_verts, use_discrete_embeddings=use_discrete_embeddings, name=name) with self._enter_variable_scope(): self.res_net = ResNet(num_dims=2, **res_net_config) @snt.reuse_variables def _prepare_context(self, context, is_training=False): # Pass images through encoder image_embeddings = self.res_net( context['image'] - 0.5, is_training=is_training) # Add 2D coordinate grid embedding processed_image_resolution = tf.shape(image_embeddings)[1] x = tf.linspace(-1., 1., processed_image_resolution) image_coords = tf.stack(tf.meshgrid(x, x), axis=-1) image_coord_embeddings = tf.layers.dense( image_coords, self.embedding_dim, use_bias=True, name='image_coord_embeddings') image_embeddings += image_coord_embeddings[None] # Reshape spatial grid to sequence batch_size = tf.shape(image_embeddings)[0] sequential_context_embedding = tf.reshape( image_embeddings, [batch_size, -1, self.embedding_dim]) return None, sequential_context_embedding class VoxelToVertexModel(VertexModel): """Generative model of quantized mesh vertices with voxel conditioning. Operates on flattened vertex sequences with a stopping token: [z_0, y_0, x_0, z_1, y_1, x_1, ..., z_n, y_n, z_n, STOP] Input vertex coordinates are embedded and tagged with learned coordinate and position indicators. A transformer decoder outputs logits for a quantized vertex distribution. Image inputs are encoded and used to condition the vertex decoder. """ def __init__(self, res_net_config, decoder_config, quantization_bits, use_discrete_embeddings=True, max_num_input_verts=2500, name='voxel_to_vertex_model'): """Initializes VoxelToVertexModel. Args: res_net_config: Dictionary with ResNet config. decoder_config: Dictionary with TransformerDecoder config. quantization_bits: Integer number of bits used for vertex quantization. use_discrete_embeddings: If True, use discrete rather than continuous vertex embeddings. max_num_input_verts: Maximum number of vertices. Used for learned position embeddings. name: Name of variable scope """ super(VoxelToVertexModel, self).__init__( decoder_config=decoder_config, quantization_bits=quantization_bits, max_num_input_verts=max_num_input_verts, use_discrete_embeddings=use_discrete_embeddings, name=name) with self._enter_variable_scope(): self.res_net = ResNet(num_dims=3, **res_net_config) @snt.reuse_variables def _prepare_context(self, context, is_training=False): # Embed binary input voxels voxel_embeddings = snt.Embed( vocab_size=2, embed_dim=self.pre_embed_dim, initializers={'embeddings': tf.glorot_uniform_initializer}, densify_gradients=True, name='voxel_embeddings')(context['voxels']) # Pass embedded voxels through voxel encoder voxel_embeddings = self.res_net( voxel_embeddings, is_training=is_training) # Add 3D coordinate grid embedding processed_voxel_resolution = tf.shape(voxel_embeddings)[1] x = tf.linspace(-1., 1., processed_voxel_resolution) voxel_coords = tf.stack(tf.meshgrid(x, x, x), axis=-1) voxel_coord_embeddings = tf.layers.dense( voxel_coords, self.embedding_dim, use_bias=True, name='voxel_coord_embeddings') voxel_embeddings += voxel_coord_embeddings[None] # Reshape spatial grid to sequence batch_size = tf.shape(voxel_embeddings)[0] sequential_context_embedding = tf.reshape( voxel_embeddings, [batch_size, -1, self.embedding_dim]) return None, sequential_context_embedding class FaceModel(snt.AbstractModule): """Autoregressive generative model of n-gon meshes. Operates on sets of input vertices as well as flattened face sequences with new face and stopping tokens: [f_0^0, f_0^1, f_0^2, NEW, f_1^0, f_1^1, ..., STOP] Input vertices are encoded using a Transformer encoder. Input face sequences are embedded and tagged with learned position indicators, as well as their corresponding vertex embeddings. A transformer decoder outputs a pointer which is compared to each vertex embedding to obtain a distribution over vertex indices. """ def __init__(self, encoder_config, decoder_config, class_conditional=True, num_classes=55, decoder_cross_attention=True, use_discrete_vertex_embeddings=True, quantization_bits=8, max_seq_length=5000, name='face_model'): """Initializes FaceModel. Args: encoder_config: Dictionary with TransformerEncoder config. decoder_config: Dictionary with TransformerDecoder config. class_conditional: If True, then condition on learned class embeddings. num_classes: Number of classes to condition on. decoder_cross_attention: If True, the use cross attention from decoder querys into encoder outputs. use_discrete_vertex_embeddings: If True, use discrete vertex embeddings. quantization_bits: Number of quantization bits for discrete vertex embeddings. max_seq_length: Maximum face sequence length. Used for learned position embeddings. name: Name of variable scope """ super(FaceModel, self).__init__(name=name) self.embedding_dim = decoder_config['hidden_size'] self.class_conditional = class_conditional self.num_classes = num_classes self.max_seq_length = max_seq_length self.decoder_cross_attention = decoder_cross_attention self.use_discrete_vertex_embeddings = use_discrete_vertex_embeddings self.quantization_bits = quantization_bits with self._enter_variable_scope(): self.decoder = TransformerDecoder(**decoder_config) self.encoder = TransformerEncoder(**encoder_config) @snt.reuse_variables def _embed_class_label(self, labels): """Embeds class label with learned embedding matrix.""" init_dict = {'embeddings': tf.glorot_uniform_initializer} return snt.Embed( vocab_size=self.num_classes, embed_dim=self.embedding_dim, initializers=init_dict, densify_gradients=True, name='class_label')(labels) @snt.reuse_variables def _prepare_context(self, context, is_training=False): """Prepare class label and vertex context.""" if self.class_conditional: global_context_embedding = self._embed_class_label(context['class_label']) else: global_context_embedding = None vertex_embeddings = self._embed_vertices( context['vertices'], context['vertices_mask'], is_training=is_training) if self.decoder_cross_attention: sequential_context_embeddings = ( vertex_embeddings * tf.pad(context['vertices_mask'], [[0, 0], [2, 0]], constant_values=1)[..., None]) else: sequential_context_embeddings = None return (vertex_embeddings, global_context_embedding, sequential_context_embeddings) @snt.reuse_variables def _embed_vertices(self, vertices, vertices_mask, is_training=False): """Embeds vertices with transformer encoder.""" # num_verts = tf.shape(vertices)[1] if self.use_discrete_vertex_embeddings: vertex_embeddings = 0. verts_quantized = quantize_verts(vertices, self.quantization_bits) for c in range(3): vertex_embeddings += snt.Embed( vocab_size=256, embed_dim=self.embedding_dim, initializers={'embeddings': tf.glorot_uniform_initializer}, densify_gradients=True, name='coord_{}'.format(c))(verts_quantized[..., c]) else: vertex_embeddings = tf.layers.dense( vertices, self.embedding_dim, use_bias=True, name='vertex_embeddings') vertex_embeddings *= vertices_mask[..., None] # Pad vertex embeddings with learned embeddings for stopping and new face # tokens stopping_embeddings = tf.get_variable( 'stopping_embeddings', shape=[1, 2, self.embedding_dim]) stopping_embeddings = tf.tile(stopping_embeddings, [tf.shape(vertices)[0], 1, 1]) vertex_embeddings = tf.concat( [stopping_embeddings, vertex_embeddings], axis=1) # Pass through Transformer encoder vertex_embeddings = self.encoder(vertex_embeddings, is_training=is_training) return vertex_embeddings @snt.reuse_variables def _embed_inputs(self, faces_long, vertex_embeddings, global_context_embedding=None): """Embeds face sequences and adds within and between face positions.""" # Face value embeddings are gathered vertex embeddings face_embeddings = tf.gather(vertex_embeddings, faces_long, batch_dims=1) # Position embeddings pos_embeddings = snt.Embed( vocab_size=self.max_seq_length, embed_dim=self.embedding_dim, initializers={'embeddings': tf.glorot_uniform_initializer}, densify_gradients=True, name='coord_embeddings')(tf.range(tf.shape(faces_long)[1])) # Step zero embeddings batch_size = tf.shape(face_embeddings)[0] if global_context_embedding is None: zero_embed = tf.get_variable( 'embed_zero', shape=[1, 1, self.embedding_dim]) zero_embed_tiled = tf.tile(zero_embed, [batch_size, 1, 1]) else: zero_embed_tiled = global_context_embedding[:, None] # Aggregate embeddings embeddings = face_embeddings + pos_embeddings[None] embeddings = tf.concat([zero_embed_tiled, embeddings], axis=1) return embeddings @snt.reuse_variables def _project_to_pointers(self, inputs): """Projects transformer outputs to pointer vectors.""" return tf.layers.dense( inputs, self.embedding_dim, use_bias=True, kernel_initializer=tf.zeros_initializer(), name='project_to_pointers' ) @snt.reuse_variables def _create_dist(self, vertex_embeddings, vertices_mask, faces_long, global_context_embedding=None, sequential_context_embeddings=None, temperature=1., top_k=0, top_p=1., is_training=False, cache=None): """Outputs categorical dist for vertex indices.""" # Embed inputs decoder_inputs = self._embed_inputs( faces_long, vertex_embeddings, global_context_embedding) # Pass through Transformer decoder if cache is not None: decoder_inputs = decoder_inputs[:, -1:] decoder_outputs = self.decoder( decoder_inputs, cache=cache, sequential_context_embeddings=sequential_context_embeddings, is_training=is_training) # Get pointers pred_pointers = self._project_to_pointers(decoder_outputs) # Get logits and mask logits = tf.matmul(pred_pointers, vertex_embeddings, transpose_b=True) logits /= tf.sqrt(float(self.embedding_dim)) f_verts_mask = tf.pad( vertices_mask, [[0, 0], [2, 0]], constant_values=1.)[:, None] logits *= f_verts_mask logits -= (1. - f_verts_mask) * 1e9 logits /= temperature logits = top_k_logits(logits, top_k) logits = top_p_logits(logits, top_p) return tfd.Categorical(logits=logits) def _build(self, batch, is_training=False): """Pass batch through face model and get log probabilities. Args: batch: Dictionary containing: 'vertices_dequantized': Tensor of shape [batch_size, num_vertices, 3]. 'faces': int32 tensor of shape [batch_size, seq_length] with flattened faces. 'vertices_mask': float32 tensor with shape [batch_size, num_vertices] that masks padded elements in 'vertices'. is_training: If True, use dropout. Returns: pred_dist: tfd.Categorical predictive distribution with batch shape [batch_size, seq_length]. """ vertex_embeddings, global_context, seq_context = self._prepare_context( batch, is_training=is_training) pred_dist = self._create_dist( vertex_embeddings, batch['vertices_mask'], batch['faces'][:, :-1], global_context_embedding=global_context, sequential_context_embeddings=seq_context, is_training=is_training) return pred_dist def sample(self, context, max_sample_length=None, temperature=1., top_k=0, top_p=1., only_return_complete=True): """Sample from face model using caching. Args: context: Dictionary of context, including 'vertices' and 'vertices_mask'. See _prepare_context for details. max_sample_length: Maximum length of sampled vertex sequences. Sequences that do not complete are truncated. temperature: Scalar softmax temperature > 0. top_k: Number of tokens to keep for top-k sampling. top_p: Proportion of probability mass to keep for top-p sampling. only_return_complete: If True, only return completed samples. Otherwise return all samples along with completed indicator. Returns: outputs: Output dictionary with fields: 'completed': Boolean tensor of shape [num_samples]. If True then corresponding sample completed within max_sample_length. 'faces': Tensor of samples with shape [num_samples, num_verts, 3]. 'num_face_indices': Tensor indicating number of vertices for each example in padded vertex samples. """ vertex_embeddings, global_context, seq_context = self._prepare_context( context, is_training=False) num_samples = tf.shape(vertex_embeddings)[0] def _loop_body(i, samples, cache): """While-loop body for autoregression calculation.""" pred_dist = self._create_dist( vertex_embeddings, context['vertices_mask'], samples, global_context_embedding=global_context, sequential_context_embeddings=seq_context, cache=cache, temperature=temperature, top_k=top_k, top_p=top_p) next_sample = pred_dist.sample()[:, -1:] samples = tf.concat([samples, next_sample], axis=1) return i + 1, samples, cache def _stopping_cond(i, samples, cache): """Stopping conditions for autoregressive calculation.""" del i, cache # Unused return tf.reduce_any(tf.reduce_all(tf.not_equal(samples, 0), axis=-1)) # While loop sampling with caching samples = tf.zeros([num_samples, 0], dtype=tf.int32) max_sample_length = max_sample_length or self.max_seq_length cache, cache_shape_invariants = self.decoder.create_init_cache(num_samples) _, f, _ = tf.while_loop( cond=_stopping_cond, body=_loop_body, loop_vars=(0, samples, cache), shape_invariants=(tf.TensorShape([]), tf.TensorShape([None, None]), cache_shape_invariants), back_prop=False, parallel_iterations=1, maximum_iterations=max_sample_length) # Record completed samples complete_samples = tf.reduce_any(tf.equal(f, 0), axis=-1) # Find number of faces sample_length = tf.shape(f)[-1] # Get largest new face (1) index as stopping point for incomplete samples. max_one_ind = tf.reduce_max( tf.range(sample_length)[None] * tf.cast(tf.equal(f, 1), tf.int32), axis=-1) zero_inds = tf.cast( tf.argmax(tf.cast(tf.equal(f, 0), tf.int32), axis=-1), tf.int32) num_face_indices = tf.where(complete_samples, zero_inds, max_one_ind) + 1 # Mask faces beyond stopping token with zeros # This mask has a -1 in order to replace the last new face token with zero faces_mask = tf.cast( tf.range(sample_length)[None] < num_face_indices[:, None] - 1, tf.int32) f *= faces_mask # This is the real mask faces_mask = tf.cast( tf.range(sample_length)[None] < num_face_indices[:, None], tf.int32) # Pad to maximum size with zeros pad_size = max_sample_length - sample_length f = tf.pad(f, [[0, 0], [0, pad_size]]) if only_return_complete: f = tf.boolean_mask(f, complete_samples) num_face_indices = tf.boolean_mask(num_face_indices, complete_samples) context = tf.nest.map_structure( lambda x: tf.boolean_mask(x, complete_samples), context) complete_samples = tf.boolean_mask(complete_samples, complete_samples) # outputs outputs = { 'context': context, 'completed': complete_samples, 'faces': f, 'num_face_indices': num_face_indices, } return outputs ================================================ FILE: polygen/run.sh ================================================ #!/bin/sh # Copyright 2020 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. python3 -m venv polygen source polygen/bin/activate pip3 install . python3 model_test.py deactivate ================================================ FILE: polygen/sample-pretrained.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "lUh_eWpealmh" }, "source": [ "Copyright 2020 DeepMind Technologies Limited\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "kYd9gIfGJYZ8" }, "source": [ "## Clone repo and import dependencies" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Ux33ZDQ_tqUV" }, "outputs": [], "source": [ "!pip install tensorflow==1.15 dm-sonnet==1.36 tensor2tensor==1.14\n", "\n", "import time\n", "import numpy as np\n", "import tensorflow.compat.v1 as tf\n", "tf.logging.set_verbosity(tf.logging.ERROR) # Hide TF deprecation messages\n", "import matplotlib.pyplot as plt\n", "\n", "%cd /tmp\n", "%rm -rf /tmp/deepmind_research\n", "!git clone https://github.com/deepmind/deepmind-research.git \\\n", " /tmp/deepmind_research\n", "%cd /tmp/deepmind_research/polygen\n", "import modules\n", "import data_utils" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "YUZNqHTVJbm3" }, "source": [ "## Download pre-trained model weights from Google Cloud Storage" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "LpZjBUmq10gX" }, "outputs": [], "source": [ "!mkdir /tmp/vertex_model\n", "!mkdir /tmp/face_model\n", "!gsutil cp gs://deepmind-research-polygen/vertex_model.tar.gz /tmp/vertex_model/\n", "!gsutil cp gs://deepmind-research-polygen/face_model.tar.gz /tmp/face_model/\n", "!tar xvfz /tmp/vertex_model/vertex_model.tar.gz -C /tmp/vertex_model/\n", "!tar xvfz /tmp/face_model/face_model.tar.gz -C /tmp/face_model/" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vXhMOoxaJ3Xb" }, "source": [ "## Pre-trained model config" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "7VGSSS9vJSn-" }, "outputs": [], "source": [ "vertex_module_config=dict(\n", " decoder_config=dict(\n", " hidden_size=512,\n", " fc_size=2048,\n", " num_heads=8,\n", " layer_norm=True,\n", " num_layers=24,\n", " dropout_rate=0.4,\n", " re_zero=True,\n", " memory_efficient=True\n", " ),\n", " quantization_bits=8,\n", " class_conditional=True,\n", " max_num_input_verts=5000,\n", " use_discrete_embeddings=True,\n", " )\n", "\n", "face_module_config=dict(\n", " encoder_config=dict(\n", " hidden_size=512,\n", " fc_size=2048,\n", " num_heads=8,\n", " layer_norm=True,\n", " num_layers=10,\n", " dropout_rate=0.2,\n", " re_zero=True,\n", " memory_efficient=True,\n", " ),\n", " decoder_config=dict(\n", " hidden_size=512,\n", " fc_size=2048,\n", " num_heads=8,\n", " layer_norm=True,\n", " num_layers=14,\n", " dropout_rate=0.2,\n", " re_zero=True,\n", " memory_efficient=True,\n", " ),\n", " class_conditional=False,\n", " decoder_cross_attention=True,\n", " use_discrete_vertex_embeddings=True,\n", " max_seq_length=8000,\n", " )" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "WNXf_XbuKW4S" }, "source": [ "## Generate class-conditional samples\n", "\n", "Try varying the `class_id` parameter to generate meshes from different object categories. Good classes to try are tables (49), lamps (30), and cabinets (32). \n", "\n", "We can also specify the maximum number of vertices / face indices we want to see in the generated meshes using `max_num_vertices` and `max_num_face_indices`. The code will keep generating batches of samples until there are at least `num_samples_min` complete samples with the required number of vertices / faces.\n", "\n", "`top_p_vertex_model` and `top_p_face_model` control how varied the outputs are, with `1.` being the most varied, and `0.` the least varied. `0.9` is a good value for both the vertex and face models.\n", "\n", "Sampling should take around 2-5 minutes with a colab GPU using the default settings depending on the object class." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "kqKMbPJJu3lk" }, "outputs": [], "source": [ "class_id = '49) table' #@param ['0) airplane,aeroplane,plane','1) ashcan,trash can,garbage can,wastebin,ash bin,ash-bin,ashbin,dustbin,trash barrel,trash bin','2) bag,traveling bag,travelling bag,grip,suitcase','3) basket,handbasket','4) bathtub,bathing tub,bath,tub','5) bed','6) bench','7) birdhouse','8) bookshelf','9) bottle','10) bowl','11) bus,autobus,coach,charabanc,double-decker,jitney,motorbus,motorcoach,omnibus,passenger vehi','12) cabinet','13) camera,photographic camera','14) can,tin,tin can','15) cap','16) car,auto,automobile,machine,motorcar','17) cellular telephone,cellular phone,cellphone,cell,mobile phone','18) chair','19) clock','20) computer keyboard,keypad','21) dishwasher,dish washer,dishwashing machine','22) display,video display','23) earphone,earpiece,headphone,phone','24) faucet,spigot','25) file,file cabinet,filing cabinet','26) guitar','27) helmet','28) jar','29) knife','30) lamp','31) laptop,laptop computer','32) loudspeaker,speaker,speaker unit,loudspeaker system,speaker system','33) mailbox,letter box','34) microphone,mike','35) microwave,microwave oven','36) motorcycle,bike','37) mug','38) piano,pianoforte,forte-piano','39) pillow','40) pistol,handgun,side arm,shooting iron','41) pot,flowerpot','42) printer,printing machine','43) remote control,remote','44) rifle','45) rocket,projectile','46) skateboard','47) sofa,couch,lounge','48) stove','49) table','50) telephone,phone,telephone set','51) tower','52) train,railroad train','53) vessel,watercraft','54) washer,automatic washer,washing machine']\n", "num_samples_min = 1 #@param\n", "num_samples_batch = 8 #@param\n", "max_num_vertices = 400 #@param\n", "max_num_face_indices = 2000 #@param\n", "top_p_vertex_model = 0.9 #@param\n", "top_p_face_model = 0.9 #@param\n", "\n", "tf.reset_default_graph()\n", "\n", "# Build models\n", "vertex_model = modules.VertexModel(**vertex_module_config)\n", "face_model = modules.FaceModel(**face_module_config)\n", "\n", "# Tile out class label to every element in batch\n", "class_id = int(class_id.split(')')[0])\n", "vertex_model_context = {'class_label': tf.fill([num_samples_batch,], class_id)}\n", "vertex_samples = vertex_model.sample(\n", " num_samples_batch, context=vertex_model_context, \n", " max_sample_length=max_num_vertices, top_p=top_p_vertex_model, \n", " recenter_verts=True, only_return_complete=True)\n", "vertex_model_saver = tf.train.Saver(var_list=vertex_model.variables)\n", "\n", "# The face model generates samples conditioned on a context, which here is\n", "# the vertex model samples\n", "face_samples = face_model.sample(\n", " vertex_samples, max_sample_length=max_num_face_indices, \n", " top_p=top_p_face_model, only_return_complete=True)\n", "face_model_saver = tf.train.Saver(var_list=face_model.variables)\n", "\n", "# Start sampling\n", "start = time.time()\n", "print('Generating samples...')\n", "with tf.Session() as sess:\n", " vertex_model_saver.restore(sess, '/tmp/vertex_model/model')\n", " face_model_saver.restore(sess, '/tmp/face_model/model')\n", " mesh_list = []\n", " num_samples_complete = 0\n", " while num_samples_complete \u003c num_samples_min:\n", " v_samples_np = sess.run(vertex_samples)\n", " if v_samples_np['completed'].size == 0:\n", " print('No vertex samples completed in this batch. Try increasing ' +\n", " 'max_num_vertices.')\n", " continue\n", " f_samples_np = sess.run(\n", " face_samples,\n", " {vertex_samples[k]: v_samples_np[k] for k in vertex_samples.keys()})\n", " v_samples_np = f_samples_np['context']\n", " num_samples_complete_batch = f_samples_np['completed'].sum()\n", " num_samples_complete += num_samples_complete_batch\n", " print('Num. samples complete: {}'.format(num_samples_complete))\n", " for k in range(num_samples_complete_batch):\n", " verts = v_samples_np['vertices'][k][:v_samples_np['num_vertices'][k]]\n", " faces = data_utils.unflatten_faces(\n", " f_samples_np['faces'][k][:f_samples_np['num_face_indices'][k]])\n", " mesh_list.append({'vertices': verts, 'faces': faces})\n", "end = time.time()\n", "print('sampling time: {}'.format(end - start))\n", "\n", "data_utils.plot_meshes(mesh_list, ax_lims=0.4) " ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "OOQV6pMvSymz" }, "source": [ "## Export meshes as `.obj` files\n", "Pick a `mesh_id` (starting at 0) corresponding to the samples generated above. Refresh the colab file browser to find an `.obj` file with the mesh data." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "fO0Klbq2Sx0m" }, "outputs": [], "source": [ "mesh_id = 4 #@param\n", "data_utils.write_obj(\n", " mesh_list[mesh_id]['vertices'], mesh_list[mesh_id]['faces'], \n", " 'mesh-{}.obj'.format(mesh_id))" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "sampling-pretrained.ipynb", "provenance": [ { "file_id": "1yj-oHYqCnwYVGSM22coa68NqnSoNdyVr", "timestamp": 1591622616999 }, { "file_id": "1v_7DtLnpXrEhVbwZhzDiVQW7ghroi11Y", "timestamp": 1591264007511 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: polygen/setup.py ================================================ # Copyright 2020 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Setup for pip package.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from setuptools import find_packages from setuptools import setup REQUIRED_PACKAGES = ['numpy', 'dm-sonnet==1.36', 'tensorflow==1.14', 'tensor2tensor==1.15', 'networkx', 'matplotlib', 'six'] setup( name='polygen', version='0.1', description='A library for PolyGen: An Autoregressive Generative Model of 3D Meshes.', url='https://github.com/deepmind/deepmind-research/polygen', author='DeepMind', author_email='no-reply@google.com', # Contained modules and scripts. packages=find_packages(), install_requires=REQUIRED_PACKAGES, platforms=['any'], license='Apache 2.0', ) ================================================ FILE: polygen/training.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "szgmaK1HajOc" }, "source": [ "Copyright 2020 DeepMind Technologies Limited\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_dv0afOrKheU" }, "source": [ "## Clone repo and import dependencies" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Ux33ZDQ_tqUV" }, "outputs": [], "source": [ "!pip install tensorflow==1.15 dm-sonnet==1.36 tensor2tensor==1.14\n", "\n", "import os\n", "import numpy as np\n", "import tensorflow.compat.v1 as tf\n", "tf.logging.set_verbosity(tf.logging.ERROR) # Hide TF deprecation messages\n", "import matplotlib.pyplot as plt\n", "\n", "%cd /tmp\n", "%rm -rf /tmp/deepmind_research\n", "!git clone https://github.com/deepmind/deepmind-research.git \\\n", " /tmp/deepmind_research\n", "%cd /tmp/deepmind_research/polygen\n", "import modules\n", "import data_utils" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "U3GDZhJ5wGOf" }, "source": [ "## Prepare a synthetic dataset\n", "We prepare a dataset of meshes using four simple geometric primitives.\n", "\n", "The important function here is `data_utils.load_process_mesh`, which loads the raw `.obj` file, normalizes and centers the meshes, and applies quantization to the vertex positions. The mesh faces are flattened and treated as a long sequence, with a new-face token (`=1`) separating the faces. For each of the four synthetic meshes, we associate a unique class label, so we can train class-conditional models.\n", "\n", "After processing the raw mesh data into numpy arrays, we create a `tf.data.Dataset` that we can use to feed data to our models. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "3QAqwyZjtOdC" }, "outputs": [], "source": [ "# Prepare synthetic dataset\n", "ex_list = []\n", "for k, mesh in enumerate(['cube', 'cylinder', 'cone', 'icosphere']):\n", " mesh_dict = data_utils.load_process_mesh(\n", " os.path.join('meshes', '{}.obj'.format(mesh)))\n", " mesh_dict['class_label'] = k\n", " ex_list.append(mesh_dict)\n", "synthetic_dataset = tf.data.Dataset.from_generator(\n", " lambda: ex_list, \n", " output_types={\n", " 'vertices': tf.int32, 'faces': tf.int32, 'class_label': tf.int32},\n", " output_shapes={\n", " 'vertices': tf.TensorShape([None, 3]), 'faces': tf.TensorShape([None]), \n", " 'class_label': tf.TensorShape(())}\n", " )\n", "ex = synthetic_dataset.make_one_shot_iterator().get_next()\n", "\n", "# Inspect the first mesh\n", "with tf.Session() as sess:\n", " ex_np = sess.run(ex)\n", "print(ex_np)\n", "\n", "# Plot the meshes\n", "mesh_list = []\n", "with tf.Session() as sess:\n", " for i in range(4):\n", " ex_np = sess.run(ex)\n", " mesh_list.append(\n", " {'vertices': data_utils.dequantize_verts(ex_np['vertices']), \n", " 'faces': data_utils.unflatten_faces(ex_np['faces'])})\n", "data_utils.plot_meshes(mesh_list, ax_lims=0.4)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "9G2FCQQyyTXw" }, "source": [ "## Vertex model\n", "\n", "#### Prepare the dataset for vertex model training\n", "We need to perform some additional processing to make the dataset ready for vertex model training. In particular, `data_utils.make_vertex_model_dataset` flattens the `[V, 3]` vertex arrays, ordering by `Z-\u003eY-\u003eX` coordinates. It also creates masks, which are used to mask padded elements in data batches. We also add random shifts to make the modelling task more challenging.\n", "\n", "#### Create a vertex model\n", "`modules.VertexModel` is a Sonnet module that. Calling the module on a batch of data will produce outputs which are the sequential predictions for each vertex coordinate. The basis of the vertex model is a Transformer decoder, and we specify it's parameters in `decoder_config`. \n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "o2KCoDeeFP8C" }, "outputs": [], "source": [ "# Prepare the dataset for vertex model training\n", "vertex_model_dataset = data_utils.make_vertex_model_dataset(\n", " synthetic_dataset, apply_random_shift=False)\n", "vertex_model_dataset = vertex_model_dataset.repeat()\n", "vertex_model_dataset = vertex_model_dataset.padded_batch(\n", " 4, padded_shapes=vertex_model_dataset.output_shapes)\n", "vertex_model_dataset = vertex_model_dataset.prefetch(1)\n", "vertex_model_batch = vertex_model_dataset.make_one_shot_iterator().get_next()\n", "\n", "# Create vertex model\n", "vertex_model = modules.VertexModel(\n", " decoder_config={\n", " 'hidden_size': 128,\n", " 'fc_size': 512, \n", " 'num_layers': 3,\n", " 'dropout_rate': 0.\n", " },\n", " class_conditional=True,\n", " num_classes=4,\n", " max_num_input_verts=250,\n", " quantization_bits=8,\n", ")\n", "vertex_model_pred_dist = vertex_model(vertex_model_batch)\n", "vertex_model_loss = -tf.reduce_sum(\n", " vertex_model_pred_dist.log_prob(vertex_model_batch['vertices_flat']) * \n", " vertex_model_batch['vertices_flat_mask'])\n", "vertex_samples = vertex_model.sample(\n", " 4, context=vertex_model_batch, max_sample_length=200, top_p=0.95,\n", " recenter_verts=False, only_return_complete=False)\n", "\n", "print(vertex_model_batch)\n", "print(vertex_model_pred_dist)\n", "print(vertex_samples)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-9RNYr5x1jov" }, "source": [ "## Face model\n", "\n", "#### Prepare the dataset for face model training\n", "We need to perform some additional processing to make the dataset ready for vertex model training. In particular, `data_utils.make_vertex_model_dataset` flattens the `[V, 3]` vertex arrays, ordering by `Z-\u003eY-\u003eX` coordinates. It also creates masks, which are used to mask padded elements in data batches. We also add random shifts to make the modelling task more challenging.\n", "\n", "#### Create a face model\n", "`modules.VertexModel` is a Sonnet module that. Calling the module on a batch of data will produce outputs which are the sequential predictions for each vertex coordinate. The basis of the vertex model is a Transformer decoder, and we specify it's parameters in `decoder_config`. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "a2yO6dOGzn8c" }, "outputs": [], "source": [ "face_model_dataset = data_utils.make_face_model_dataset(\n", " synthetic_dataset, apply_random_shift=False)\n", "face_model_dataset = face_model_dataset.repeat()\n", "face_model_dataset = face_model_dataset.padded_batch(\n", " 4, padded_shapes=face_model_dataset.output_shapes)\n", "face_model_dataset = face_model_dataset.prefetch(1)\n", "face_model_batch = face_model_dataset.make_one_shot_iterator().get_next()\n", "\n", "# Create face model\n", "face_model = modules.FaceModel(\n", " encoder_config={\n", " 'hidden_size': 128,\n", " 'fc_size': 512, \n", " 'num_layers': 3,\n", " 'dropout_rate': 0.\n", " },\n", " decoder_config={\n", " 'hidden_size': 128,\n", " 'fc_size': 512, \n", " 'num_layers': 3,\n", " 'dropout_rate': 0.\n", " },\n", " class_conditional=False,\n", " max_seq_length=500,\n", " quantization_bits=8,\n", " decoder_cross_attention=True,\n", " use_discrete_vertex_embeddings=True,\n", ")\n", "face_model_pred_dist = face_model(face_model_batch)\n", "face_model_loss = -tf.reduce_sum(\n", " face_model_pred_dist.log_prob(face_model_batch['faces']) * \n", " face_model_batch['faces_mask'])\n", "face_samples = face_model.sample(\n", " context=vertex_samples, max_sample_length=500, top_p=0.95,\n", " only_return_complete=False)\n", "print(face_model_batch)\n", "print(face_model_pred_dist)\n", "print(face_samples)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "hL7yloXB1pUb" }, "source": [ "## Train on the synthetic data\n", "\n", "Now that we've created vertex and face models and their respective data loaders, we can train them and look at some outputs. While we train the models together here, they can be trained seperately and recombined later if required. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "hjrbofa8zqQt" }, "outputs": [], "source": [ "# Optimization settings\n", "learning_rate = 5e-4\n", "training_steps = 500\n", "check_step = 5\n", "\n", "# Create an optimizer an minimize the summed log probability of the mesh \n", "# sequences\n", "optimizer = tf.train.AdamOptimizer(learning_rate)\n", "vertex_model_optim_op = optimizer.minimize(vertex_model_loss)\n", "face_model_optim_op = optimizer.minimize(face_model_loss)\n", "\n", "# Training loop\n", "with tf.Session() as sess:\n", " sess.run(tf.global_variables_initializer())\n", " for n in range(training_steps):\n", " if n % check_step == 0:\n", " v_loss, f_loss = sess.run((vertex_model_loss, face_model_loss))\n", " print('Step {}'.format(n))\n", " print('Loss (vertices) {}'.format(v_loss))\n", " print('Loss (faces) {}'.format(f_loss))\n", " v_samples_np, f_samples_np, b_np = sess.run(\n", " (vertex_samples, face_samples, vertex_model_batch))\n", " mesh_list = []\n", " for n in range(4):\n", " mesh_list.append(\n", " {\n", " 'vertices': v_samples_np['vertices'][n][:v_samples_np['num_vertices'][n]],\n", " 'faces': data_utils.unflatten_faces(\n", " f_samples_np['faces'][n][:f_samples_np['num_face_indices'][n]])\n", " }\n", " )\n", " data_utils.plot_meshes(mesh_list, ax_lims=0.5)\n", " sess.run((vertex_model_optim_op, face_model_optim_op))" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "training.ipynb", "provenance": [ { "file_id": "1QL8ib2FKPGUWFQbuX8AttUk-H34Al8Ue", "timestamp": 1591364245034 }, { "file_id": "1v_7DtLnpXrEhVbwZhzDiVQW7ghroi11Y", "timestamp": 1591355096822 } ], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: powerpropagation/README.md ================================================ # Powerpropagation This notebook contains code to accompany the NeurIPS 2021 paper on Powerpropagation. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/powerpropagation/powerpropagation.ipynb) If you find this code useful, please consider citing this paper: ``` @article{schwarz2021powerpropagation, title={Powerpropagation: A sparsity inducing weight reparameterisation}, author={Schwarz, Jonathan and Jayakumar, Siddhant M and Pascanu, Razvan and Latham, Peter and Teh, Yee Whye}, year={2021}, journal={Neural Information Processing Systems (NeurIPS)}, keywords={conference}, } ``` ================================================ FILE: powerpropagation/powerpropagation.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "V7L7Byz8qQZd" }, "source": [ "Copyright 2021 The Powerpropagation Authors. All rights reserved\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "SuSveOpsxQuA" }, "outputs": [], "source": [ "#@title Imports\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "\n", "import tensorflow as tf\n", "import tensorflow_probability as tfp\n", "\n", "#@title Installing and Importing Dependencies\n", "\n", "print('Installing necessary libraries...')\n", "\n", "def install_libraries():\n", " !pip install dm-sonnet\n", "\n", "import IPython\n", "\n", "with IPython.utils.io.capture_output() as captured:\n", " install_libraries()\n", "\n", "import sonnet as snt" ] }, { "cell_type": "markdown", "metadata": { "id": "zNZE9eU_poe0" }, "source": [ "### Implementation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pQBoLdNFL7fE" }, "outputs": [], "source": [ "#@title Training \u0026 Pruning functions\n", "\n", "@tf.function\n", "def train_fn(model, train_x, train_y, optimizer_to_use):\n", " with tf.GradientTape() as tape:\n", " loss, stats = model.loss(train_x, train_y)\n", "\n", " train_vars = model.trainable_variables()\n", " train_grads = tape.gradient(loss, train_vars)\n", " optimizer_to_use.apply(train_grads, train_vars)\n", "\n", " return stats\n", "\n", "@tf.function\n", "def eval_fn(model, eval_x, eval_y):\n", " _, stats = model.loss(eval_x, eval_y)\n", "\n", " return stats\n", "\n", "def _bottom_k_mask(percent_to_keep, condition):\n", " how_many = int(percent_to_keep * condition.size)\n", " top_k = tf.nn.top_k(condition, k=how_many)\n", "\n", " mask = np.zeros(shape=condition.shape, dtype=np.float32)\n", " mask[top_k.indices.numpy()] = 1\n", "\n", " assert np.sum(mask) == how_many\n", "\n", " return mask\n", "\n", "def prune_by_magnitude(percent_to_keep, weight):\n", " mask = _bottom_k_mask(percent_to_keep, np.abs(weight.flatten()))\n", "\n", " return mask.reshape(weight.shape)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "uAPa99KakJDB" }, "outputs": [], "source": [ "#@title Initialisers\n", "\n", "class PowerPropVarianceScaling(snt.initializers.VarianceScaling):\n", "\n", " def __init__(self, alpha, *args, **kwargs):\n", " super(PowerPropVarianceScaling, self).__init__(*args, **kwargs)\n", " self._alpha = alpha\n", "\n", " def __call__(self, shape, dtype):\n", " u = super(PowerPropVarianceScaling, self).__call__(shape, dtype).numpy()\n", "\n", " return tf.sign(u) * tf.pow(tf.abs(u), 1.0/self._alpha)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "UXtgeSdPgufJ" }, "outputs": [], "source": [ "#@title Models\n", "\n", "class PowerPropLinear(snt.Linear):\n", " \"\"\"Powerpropagation Linear module.\"\"\"\n", " def __init__(self, alpha, *args, **kwargs):\n", " super(PowerPropLinear, self).__init__(*args, **kwargs)\n", " self._alpha = alpha\n", "\n", " def get_weights(self):\n", " return tf.sign(self.w) * tf.pow(tf.abs(self.w), self._alpha)\n", "\n", " def __call__(self, inputs, mask=None):\n", " self._initialize(inputs)\n", " params = self.w * tf.pow(tf.abs(self.w), self._alpha-1)\n", "\n", " if mask is not None:\n", " params *= mask\n", "\n", " outputs = tf.matmul(inputs, params) + self.b\n", "\n", " return outputs\n", "\n", "class MLP(snt.Module):\n", " \"\"\"A multi-layer perceptron module.\"\"\"\n", "\n", " def __init__(self, alpha, w_init, output_sizes=[300, 100, 10], name='MLP'):\n", "\n", " super(MLP, self).__init__(name=name)\n", " self._alpha = alpha\n", " self._w_init = w_init\n", "\n", " self._layers = []\n", " for index, output_size in enumerate(output_sizes):\n", " self._layers.append(\n", " PowerPropLinear(\n", " output_size=output_size,\n", " alpha=alpha,\n", " w_init=w_init,\n", " name=\"linear_{}\".format(index)))\n", "\n", " def get_weights(self):\n", " return [l.get_weights().numpy() for l in self._layers]\n", "\n", " def __call__(self, inputs, masks=None):\n", " num_layers = len(self._layers)\n", "\n", " for i, layer in enumerate(self._layers):\n", " if masks is not None:\n", " inputs = layer(inputs, masks[i])\n", " else:\n", " inputs = layer(inputs)\n", " if i \u003c (num_layers - 1):\n", " inputs = tf.nn.relu(inputs)\n", "\n", " return inputs\n", "\n", "\n", "class DensityNetwork(snt.Module):\n", " \"\"\"Produces categorical distribution.\"\"\"\n", "\n", " def __init__(self, network=None, name=\"DensityNetwork\", *args, **kwargs):\n", " super(DensityNetwork, self).__init__(name=name)\n", " self._network = network\n", "\n", " def __call__(self, inputs, masks=None, *args, **kwargs):\n", " outputs = self._network(inputs, masks, *args, **kwargs)\n", "\n", " return tfp.distributions.Categorical(logits=outputs), outputs\n", "\n", " def trainable_variables(self):\n", " return self._network.trainable_variables\n", "\n", " def get_weights(self):\n", " return self._network.get_weights()\n", "\n", " def loss(self, inputs, targets, masks=None, *args, **kwargs):\n", " dist, logits = self.__call__(\n", " inputs, masks, *args, **kwargs)\n", " loss = -tf.reduce_mean(dist.log_prob(targets))\n", "\n", " accuracy = tf.reduce_mean(\n", " tf.cast(tf.equal(tf.argmax(logits, axis=1), targets), tf.float32))\n", "\n", " return loss, {'loss': loss, 'acc': accuracy}" ] }, { "cell_type": "markdown", "metadata": { "id": "J8M6PJ4oNK0X" }, "source": [ "### Training" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "9TwBkiSmKWCz" }, "outputs": [], "source": [ "#@title Training configuration\n", "\n", "model_seed = 0 #@param\n", "\n", "alphas = [1.0, 2.0, 3.0, 4.0, 5.0] #@param\n", "init_distribution = 'truncated_normal'\n", "init_mode = 'fan_in'\n", "init_scale = 1.0\n", "\n", "# Fixed values taken from the Lottery Ticket Hypothesis paper\n", "train_batch_size = 60\n", "num_train_steps = 50000\n", "learning_rate = 0.1\n", "\n", "report_interval = 2500\n", "\n", "tf.random.set_seed(model_seed)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "JGFVxUjCRe3v" }, "outputs": [], "source": [ "#@title Get data\n", "\n", "(train_x, train_y), (test_x, test_y) = tf.keras.datasets.mnist.load_data()\n", "\n", "train_x = train_x.reshape([60000, 784]).astype(np.float32) / 255.0\n", "test_x = test_x.reshape([10000, 784]).astype(np.float32) / 255.0\n", "\n", "train_y = train_y.astype(np.int64)\n", "test_y = test_y.astype(np.int64)\n", "\n", "# Reserve some data for a validation set\n", "valid_x = train_x[-5000:]\n", "valid_y = train_y[-5000:]\n", "train_x = train_x[:-5000]\n", "train_y = train_y[:-5000]\n", "\n", "train_dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))\n", "\n", "# Sample random batches of data from the entire training set\n", "train_iterator = iter(\n", " train_dataset.repeat().shuffle(10000).batch(train_batch_size))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "nWemRI-x4FEa" }, "outputs": [], "source": [ "#@title Training set-up\n", "\n", "model_types = []\n", "models = []\n", "n_models = len(alphas)\n", "\n", "for alpha in alphas:\n", " w_init = PowerPropVarianceScaling(alpha)\n", " models.append(DensityNetwork(MLP(alpha=alpha, w_init=w_init)))\n", " if alpha \u003e 1.0:\n", " model_types.append('Powerprop. ($\\\\alpha={}$)'.format(alpha))\n", " else:\n", " model_types.append('Baseline')\n", "\n", "# Initalise variables\n", "for m in models:\n", " m(valid_x)\n", "\n", "initial_weights = [m.get_weights() for m in models]\n", "\n", "\n", "optimizers = [snt.optimizers.SGD(learning_rate=learning_rate)\n", " for _ in range(n_models)]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "xvtAESbqFGaQ" }, "outputs": [], "source": [ "#@title Training loop\n", "\n", "all_train_stats = [[] for _ in range(n_models)]\n", "all_valid_stats = [[] for _ in range(n_models)]\n", "\n", "for step in range(num_train_steps+1):\n", " train_x_batch, train_y_batch = next(train_iterator)\n", "\n", " for m_id, model in enumerate(models):\n", " all_train_stats[m_id].append(\n", " train_fn(model, train_x_batch, train_y_batch, optimizers[m_id]))\n", "\n", " if step % report_interval == 0:\n", " for m_id, model in enumerate(models):\n", " print('[Train Step {}, Alpha {}] Loss: {:1.3f}. Acc: {:1.3f}'.format(\n", " step, \n", " alphas[m_id], \n", " all_train_stats[m_id][-1]['loss'], \n", " all_train_stats[m_id][-1]['acc']))\n", " all_valid_stats[m_id].append(eval_fn(model, valid_x, valid_y))\n", "\n", " print('[Eval Step {}, Alpha {}] Loss: {:1.3f}. Acc: {:1.3f}'.format(\n", " step, \n", " alphas[m_id], \n", " all_valid_stats[m_id][-1]['loss'], \n", " all_valid_stats[m_id][-1]['acc']))\n", " print('---')" ] }, { "cell_type": "markdown", "metadata": { "id": "NDBNpC_4piOg" }, "source": [ "### Results" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "dG7tyvmOQxeX" }, "outputs": [], "source": [ "#@title Pruning\n", "\n", "final_weights = [m.get_weights() for m in models]\n", "\n", "eval_at_sparsity_level = np.geomspace(0.01, 1.0, 20).tolist()\n", "acc_at_sparsity = [[] for _ in range(n_models)]\n", "\n", "for p_to_use in eval_at_sparsity_level:\n", "\n", " # Half the sparsity at output layer\n", " percent = 2*[p_to_use] + [min(1.0, p_to_use*2)]\n", "\n", " for m_id, model_to_use in enumerate(models):\n", " masks = []\n", " for i, w in enumerate(final_weights[m_id]):\n", " masks.append(prune_by_magnitude(percent[i], w))\n", "\n", " _, stats = model_to_use.loss(test_x, test_y, masks=masks)\n", "\n", " acc_at_sparsity[m_id].append(stats['acc'].numpy())\n", " print(' Performance @ {:1.0f}% of weights [Alpha {}]: Acc {:1.3f} NLL {:1.3f} '.format(\n", " 100*p_to_use, alphas[m_id], stats['acc'], stats['loss']))\n", " print('---')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "nv8u662-4yug" }, "outputs": [], "source": [ "sns.set_style(\"whitegrid\")\n", "sns.set_context(\"paper\")\n", "\n", "#@title Plot\n", "f, ax = plt.subplots(1, 1, figsize=(7,5))\n", "\n", "for acc, label in zip(acc_at_sparsity, model_types):\n", " ax.plot(eval_at_sparsity_level, acc, label=label, marker='o', lw=2)\n", "\n", "ax.set_xscale('log')\n", "ax.set_xlim([1.0, 0.01])\n", "ax.set_ylim([0.0, 1.0])\n", "ax.legend(frameon=False)\n", "ax.set_xlabel('Weights Remaining (%)')\n", "ax.set_ylabel('Test Accuracy (%)')\n", "\n", "sns.despine()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-NEnDx52w9NL" }, "outputs": [], "source": [ "" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "zNZE9eU_poe0", "J8M6PJ4oNK0X", "NDBNpC_4piOg" ], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "Powerpropagation", "private_outputs": true, "provenance": [ { "file_id": "12kDm1gRUsFQaQUfmf1AzONNtg2Oxm96h", "timestamp": 1621155153435 }, { "file_id": "1m7j2OKVrTR0YkvMXwDIZRmZdvFlB_HMk", "timestamp": 1615900826226 }, { "file_id": "11JbbynSJgkt4n92oEKrrgfHzCQo-4sRp", "timestamp": 1613740982607 }, { "file_id": "1Pa7Szt1OuHZXczMcMxLE_UctRRtMIbkO", "timestamp": 1612795019221 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rapid_task_solving/README.md ================================================ # One-shot StreetLearn and Memory & Planning Game This repository contains code for the environments used in the paper ["Rapid Task-Solving in Novel Environments"](https://arxiv.org/abs/2006.03662) by Sam Ritter, Ryan Faulkner, Laurent Sartran, Adam Santoro, Matt Botvinick and David Raposo. It was published as a conference paper at ICLR 2021. To cite this work: ``` @inproceedings{ ritter2021rapid, title={Rapid Task-Solving in Novel Environments}, author={Samuel Ritter and Ryan Faulkner and Laurent Sartran and Adam Santoro and Matthew Botvinick and David Raposo}, booktitle={International Conference on Learning Representations}, year={2021}, url={https://openreview.net/forum?id=F-mvpFpn_0q} } ``` ### Memory&Planning Game The _Memory&Planning Game_ is a simple variation of the well-known _Memory Game_, wherein players must remember the locations of cards in a grid. This variation extends the challenge to require planning as well as remembering. In the _Memory&Planning Game_, the agent occupies an environment consisting of a grid of symbols (e.g. 4x4). The observation consists of two symbols — one which corresponds to the agent's current location, and another that corresponds to the "goal" the agent is tasked with navigating to. The agent can not see its relative location with respect to other symbols in the grid. At each step the agent selects one of 5 possible actions: _move left_, _move right_, _move up_, _move down_, and _collect_. If the agent chooses the "collect" action when its current location symbol matches the goal symbol, a reward of +1 is received. Otherwise, the agent receives a reward of 0. At the beginning of each episode, a new set of symbols is sampled, effectively inducing a new transition function. The agent is allowed a fixed number of steps (e.g. 100) per episode to "collect" as many goals as possible. Each time the agent collects a goal — which corresponds to completing a task —, a new goal is sampled in and the transition function stays fixed. #### Example The following code snipped shows an example of how to load the environment, start a new episode and take a few random steps. A plot representing the current state of the environment is displayed for each step. ``` import memory_planning_game env = memory_planning_game.MemoryPlanningGame(4, seed=123) _ = env.reset() for _ in range(5): timestep = env.take_random_action() fig, ax = env.draw_maze() ``` ![Memory & Planning Game environment](images/example_mpg.png) ### One-Shot StreetLearn The _One-Shot StreetLearn_ is a domain wherein environments are sampled as neighborhoods from the _StreetLearn_ dataset (Mirowski et al., 2019). Tasks are then sampled by selecting a position and orientation that the agent must navigate to from its current location. In _One-Shot StreetLearn_, the agent's observations consist of a representation of the current state and a representation of the goal state. The agent receives no other information from the environment. The available actions are _turn right_, which orients the agent clockwise toward the next available direction of motion from its current location; _turn left_, which does the same in the other direction; and _move forward_, which moves the agent along the direction it is facing to the next available location. In each episode, we sample a new neighborhood with 5 intersections from one of 12 cities. To reduce the exploration problem while keeping the planning difficulty constant, we removed all the locations that were not intersections (i.e. that corresponded to degree-2 nodes in the connectivity graph of the sampled neighbourhood). Note: In the paper we used images to represent each location, taken from the _StreetLearn_ dataset. In this codebase, to simplify the public release process, we replace the images with one-hot vectors, to represent each location. Every time the agent reaches a goal, a new starting- and goal-state pair is sampled, initiating a new task, until the fixed episode step limit is reached (e.g. 200 steps). A step that takes the agent to the goal state results in a reward of +1. Any other step results in a reward of 0. #### City graph datasets In this [link] (https://console.cloud.google.com/storage/browser/one_shot_streetlearn_graphs) you can download the datasets containing the connectivity graphs of different cities. You will need at least one of these datasets in order to build the environment. #### Example The following code snipped shows an example of how to load the environment for an example city (in this case, Madrid), start a new episode and take a few random steps. A plot representing the current state of the environment is displayed for each step. ``` import numpy as np import one_shot_streetlearn region = 'madrid' sl_config = { 'dataset_path': f'./datasets/{region}_full_graph.gexf', 'max_episode_steps': 200, 'num_junctions': 5, } env = one_shot_streetlearn.OneShotStreetLearn(**sl_config) _ = env.reset() for _ in range(4): rnd_action = np.random.randint(env.NUM_ACTIONS) timestep = env.step(rnd_action) fig, ax = env.draw_subgraph() ``` ![One-shot StreetLearn environment](images/example_osl.png) ================================================ FILE: rapid_task_solving/memory_planning_game.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Memory & Planning Game environment.""" import string import dm_env import matplotlib.pyplot as plt import networkx as nx import numpy as np class MemoryPlanningGame(dm_env.Environment): """Memory & Planning Game environment.""" ACTION_NAMES = ['Up', 'Down', 'Left', 'Right', 'Collect'] NUM_ACTIONS = len(ACTION_NAMES) DIRECTIONS = [ (0, 1), # Up (0, -1), # Down (-1, 0), # Left (1, 0), # Right (0, 0), # Collect ] def __init__(self, maze_size=4, max_episode_steps=100, target_reward=1., per_step_reward=0., random_respawn=False, seed=None): """The Memory & Planning Game environment. Args: maze_size: (int) size of the maze dimension. max_episode_steps: (int) number of steps per episode. target_reward: (float) reward value of the target. per_step_reward: (float) reward/cost of taking a step. random_respawn: (bool) whether the agent respawns in a random location upon collecting the goal. seed: (int or None) seed for random number generator. """ self._maze_size = maze_size self._num_labels = maze_size * maze_size # The graph itself is the same across episodes, but the node labels will be # randomly sampled in each episode. self._graph = nx.grid_2d_graph( self._maze_size, self._maze_size, periodic=True) self._max_episode_steps = max_episode_steps self._target_reward = target_reward self._per_step_reward = per_step_reward self._random_respawn = random_respawn self._rng = np.random.RandomState(seed) def _one_hot(self, node): one_hot_vector = np.zeros([self._num_labels], dtype=np.int32) one_hot_vector[self._labels[node]] = 1 return one_hot_vector def step(self, action): # If previous step was the last step of an episode, reset. if self._needs_reset: return self.reset() # Increment step count and check if it's the last step of the episode. self._episode_steps += 1 if self._episode_steps >= self._max_episode_steps: self._needs_reset = True transition = dm_env.termination else: transition = dm_env.transition # Recompute agent's position given the selected action. direction = self.DIRECTIONS[action] self._position = tuple( (np.array(self._position) + np.array(direction)) % self._maze_size) self._previous_action = self.ACTION_NAMES[action] # Get reward if agent is over the goal location and the selected action is # `collect`. if self._position == self._goal and self.ACTION_NAMES[action] == 'Collect': reward = self._target_reward self._set_new_goal() else: reward = self._per_step_reward self._episode_reward += reward return transition(reward, self._observation()) def _observation(self): return { 'position': np.array(self._one_hot(self.position), dtype=np.int32), 'goal': np.array(self._one_hot(self.goal), dtype=np.int32), } def observation_spec(self): return { 'position': dm_env.specs.Array( shape=(self._num_labels,), dtype=np.int32, name='position'), 'goal': dm_env.specs.Array( shape=(self._num_labels,), dtype=np.int32, name='goal'), } def action_spec(self): return dm_env.specs.DiscreteArray(self.NUM_ACTIONS) def take_random_action(self): return self.step(self._rng.randint(self.NUM_ACTIONS)) def reset(self): self._previous_action = '' self._episode_reward = 0. self._episode_steps = 0 self._needs_reset = False random_labels = self._rng.permutation(self._num_labels) self._labels = {n: random_labels[i] for i, n in enumerate(self._graph.nodes())} self._respawn() self._set_new_goal() return dm_env.restart(self._observation()) def _respawn(self): random_idx = self._rng.randint(self._num_labels) self._position = list(self._graph.nodes())[random_idx] def _set_new_goal(self): if self._random_respawn: self._respawn() goal = self._position while goal == self._position: random_idx = self._rng.randint(self._num_labels) goal = list(self._graph.nodes())[random_idx] self._goal = goal @property def position(self): return self._position @property def goal(self): return self._goal @property def previous_action(self): return self._previous_action @property def episode_reward(self): return self._episode_reward def draw_maze(self, ax=None): if ax is None: plt.figure() ax = plt.gca() node_positions = {(x, y): (x, y) for x, y in self._graph.nodes()} letters = string.ascii_uppercase + string.ascii_lowercase labels = {n: letters[self._labels[n]] for n in self._graph.nodes()} node_list = list(self._graph.nodes()) colors = [] for n in node_list: if n == self.position: colors.append('lightblue') elif n == self.goal: colors.append('lightgreen') else: colors.append('pink') nx.draw(self._graph, pos=node_positions, nodelist=node_list, ax=ax, node_color=colors, with_labels=True, node_size=200, labels=labels) ax.set_title('{}\nEpisode reward={:.1f}'.format( self.previous_action, self.episode_reward)) ax.margins(.1) return plt.gcf(), ax ================================================ FILE: rapid_task_solving/one_shot_streetlearn.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """One-shot StreetLearn environment.""" import dm_env import matplotlib.pyplot as plt import networkx as nx import numpy as np def deg_to_rad(x): """Convert degrees to radians.""" return x / 180. * np.pi def rad_to_deg(x): """Convert radians to degrees.""" return x * 180. / np.pi class OneShotStreetLearn(dm_env.Environment): """One-shot Streetlearn environment.""" ACTION_NAMES = [ 'Forward', 'Left', 'Right', 'Collect', ] NUM_ACTIONS = len(ACTION_NAMES) def __init__(self, dataset_path, max_episode_steps, num_junctions=8, target_reward=1., per_step_reward=0., observation_length=60, seed=None): self._graph = nx.read_gexf(dataset_path) self._node_attrs = self._graph.nodes(data=True) self._num_junctions = num_junctions self._observation_length = observation_length self._max_episode_steps = max_episode_steps self._target_reward = target_reward self._per_step_reward = per_step_reward self._rng = np.random.RandomState(seed) self.reset() def reset(self): self._previous_action = '' self._episode_reward = 0. self._episode_steps = 0 self._needs_reset = False self._subgraph = self.get_random_subgraph() self._observation_map = self.randomize_observations(self._subgraph) self._position = self._rng.choice(list(self._subgraph.nodes())) neighbours = self._neighbors_bearings(self._subgraph, self._position) self._neighbour = neighbours[self._rng.randint(len(neighbours))] self._set_new_goal() return dm_env.restart(self._observation()) @property def _current_edge(self): return (self._position, self._neighbour['neighbour']) def _set_new_goal(self): goal = None edges = list(self._observation_map.keys()) while goal is None or goal == self._current_edge: goal = edges[self._rng.randint(len(edges))] self._goal = goal def _one_hot(self, edge): one_hot_vector = np.zeros([self._observation_length], dtype=np.int32) one_hot_vector[self._observation_map[edge]] = 1 return one_hot_vector def _observation(self): return { 'position': np.array(self._one_hot(self._current_edge), dtype=np.int32), 'goal': np.array(self._one_hot(self._goal), dtype=np.int32), } def observation_spec(self): return { 'position': dm_env.specs.Array( shape=(self._observation_length,), dtype=np.int32, name='position'), 'goal': dm_env.specs.Array( shape=(self._observation_length,), dtype=np.int32, name='goal'), } def action_spec(self): return dm_env.specs.DiscreteArray(self.NUM_ACTIONS) def step(self, action): # If previous step was the last step of an episode, reset. if self._needs_reset: return self.reset() # Increment step count and check if it's the last step of the episode. self._episode_steps += 1 if self._episode_steps >= self._max_episode_steps: self._needs_reset = True transition = dm_env.termination else: transition = dm_env.transition # Recompute agent's position self._move(action) self._previous_action = self.ACTION_NAMES[action] # Get reward if agent is at the goal location and the selected action is # `collect`. if (self._current_edge == self._goal and self.ACTION_NAMES[action] == 'Collect'): reward = self._target_reward self._set_new_goal() else: reward = self._per_step_reward self._episode_reward += reward return transition(reward, self._observation()) def randomize_observations(self, subgraph): edges = list(subgraph.edges()) edges.extend([(y, x) for (x, y) in edges]) obs_permutation = self._rng.permutation(self._observation_length) return {e: obs_permutation[i] for i, e in enumerate(edges)} def _calculate_bearing(self, node, neighbor): lat1 = deg_to_rad(self._node_attrs[node]['lat']) lng1 = deg_to_rad(self._node_attrs[node]['lng']) lat2 = deg_to_rad(self._node_attrs[neighbor]['lat']) lng2 = deg_to_rad(self._node_attrs[neighbor]['lng']) delta_lng = lng2 - lng1 theta = np.arctan2( np.sin(delta_lng) * np.cos(lat2), np.cos(lat1) * np.sin(lat2) - np.sin(lat1) * np.cos(lat2) * np.cos(delta_lng)) return theta def _neighbors_bearings(self, subgraph, node): bearings = [] for neighbor in list(subgraph[node]): orientation = self._calculate_bearing(node, neighbor) bearings.append({'neighbour': neighbor, 'orientation': orientation}) bearings.sort(key=lambda x: x['orientation']) return bearings def _sort_neighbors(self, node, neighbour): bearings = self._neighbors_bearings(self._subgraph, node) bs = [x['orientation'] for x in bearings] idx = np.argmin(np.abs(bs - neighbour['orientation'])) return { 'forward': bearings[idx], 'right': bearings[idx-1], 'left': bearings[(idx+1) % len(bearings)], } def _move(self, action): neighbours = self._sort_neighbors(self._position, self._neighbour) if action == 0: new_node = self._neighbour['neighbour'] neighbours = self._sort_neighbors(new_node, neighbours['forward']) new_neighbour = neighbours['forward'] else: new_node = self._position if action == 1: new_neighbour = neighbours['left'] elif action == 2: new_neighbour = neighbours['right'] else: new_neighbour = self._neighbour self._position = new_node self._neighbour = new_neighbour def _all_next_junctions(self, subgraph, node): neighbors = list(subgraph[node]) edges = [self._get_next_junction(subgraph, node, nb) for nb in neighbors] nodes = [y for (_, y) in edges] return nodes, edges def _get_next_junction(self, subgraph, initial_node, next_node): node = initial_node while subgraph.degree(next_node) == 2: neighbours = list(subgraph.neighbors(next_node)) neighbours.remove(node) node = next_node next_node = neighbours.pop() return (initial_node, next_node) def get_random_subgraph(self): graph = self._graph num_nodes = len(graph) rnd_index = self._rng.randint(num_nodes) center_node = list(graph.nodes())[rnd_index] while graph.degree(center_node) <= 2: rnd_index = self._rng.randint(num_nodes) center_node = list(graph.nodes())[rnd_index] to_visit = [center_node] visited = [] subgraph = nx.Graph() while to_visit: node = to_visit.pop(0) visited.append(node) new_nodes, new_edges = self._all_next_junctions(graph, node) subgraph.add_edges_from(new_edges) node_degrees = [subgraph.degree(n) for n in subgraph.nodes()] count_junctions = len(list(filter(lambda x: x > 2, node_degrees))) if count_junctions >= self._num_junctions: break new_nodes = filter(lambda x: x not in visited + to_visit, new_nodes) to_visit.extend(new_nodes) return subgraph def draw_subgraph(self, ax=None): if ax is None: _ = plt.figure(figsize=(3, 3)) ax = plt.gca() node_ids = list(self._subgraph.nodes()) pos = { x: (self._node_attrs[x]['lat'], self._node_attrs[x]['lng']) for x in node_ids } labels = {} nc = 'pink' ec = 'black' ns = 50 nshape = 'o' # Draw the current subgraph nx.draw(self._subgraph, pos=pos, node_color=nc, with_labels=False, node_size=ns, labels=labels, edgecolors=ec, node_shape=nshape, ax=ax) max_xy = np.array([np.array(x) for x in pos.values()]).max(0) min_xy = np.array([np.array(x) for x in pos.values()]).min(0) delta_xy = (max_xy - min_xy) / 6. ax.set_xlim([min_xy[0] - delta_xy[0], max_xy[0] + delta_xy[0]]) ax.set_ylim([min_xy[1] - delta_xy[1], max_xy[1] + delta_xy[1]]) # Draw goal position and orientation x = self._node_attrs[self._goal[0]]['lat'] y = self._node_attrs[self._goal[0]]['lng'] rotation = rad_to_deg(self._calculate_bearing(*self._goal)) _ = ax.plot(x, y, marker=(3, 0, rotation - 90), color=(0, 0, 0), markersize=14, markerfacecolor='white') _ = ax.plot(x, y, marker=(2, 0, rotation - 90), color=(0, 0, 0), markersize=12, markerfacecolor='None') # Draw current position and orientation x = self._node_attrs[self._position]['lat'] y = self._node_attrs[self._position]['lng'] rotation = rad_to_deg(self._neighbour['orientation']) _ = ax.plot(x, y, marker=(3, 0, rotation - 90), color=(0, 0, 0), markersize=14, markerfacecolor='lightgreen') _ = ax.plot(x, y, marker=(2, 0, rotation - 90), color=(0, 0, 0), markersize=12, markerfacecolor='None') ax.set_title('{}\nEpisode reward = {}'.format( self._previous_action, self._episode_reward)) return plt.gcf(), ax ================================================ FILE: rapid_task_solving/requirements.txt ================================================ dm-env>=1.2 dm-haiku>=0.0.3 jax>=0.2.8 matplotlib>=3.1.2 networkx>=2.3 numpy>=1.18.0 ================================================ FILE: regal/README.md ================================================ # REGAL This dataset contains dataflow computational graphs generated procedurally, intended for training and evaluating algorithms that optimize execution (e.g. placement and scheduling), in [TensorFlow's CostGraphDef](https://github.com/tensorflow/tensorflow/blob/59ee7f9138482d85cd93c004aca961bea35820c7/tensorflow/core/framework/cost_graph.proto#L12) [protocol buffer](https://en.wikipedia.org/wiki/Protocol_Buffers) format and encoded as [text](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.text_format). Original paper [REGAL: Transfer Learning For Fast Optimization of Computation Graphs](https://arxiv.org/abs/1905.02494) (Paliwal, Gimeno, Nair, Li, Lubin, Kohli, Vinyals) ## Folder structure There are 10000 training graphs, 1000 validation graphs and 1000 test graphs. The file names follow the format of "graph_" plus a hash of the graph topology plus ".pbtxt". ## Filtering For each set (train, valid, test) there are not two graphs with the same topology. We used the Biased Random Key Genetic Algorithm (BRKGA) to filter out graphs that did not have "room for improvement" "Room for improvement" was defined as the union of two conditions: * if BRKGA with a low fitness evaluation limit (number of calls to fitness function) did not fit the hardware constraints and BRKGA with a high number did. * if BRKGA with a high fitness evaluation limit was 20% faster in running time that BRKGA with a low number. ## Example Graph ```protobuf node { name: "_SOURCE" } node { name: "node_0" id: 1 control_input: 0 } node { name: "node_1" id: 2 output_info { size: 70 alias_input_port: -1 } control_input: 0 compute_cost: 58 } node { name: "node_2" id: 3 output_info { size: 52 alias_input_port: -1 } control_input: 0 compute_cost: 47 } node { name: "node_3" id: 4 input_info { preceding_node: 2 } output_info { size: 55 alias_input_port: -1 } control_input: 0 compute_cost: 58 } ``` ## Dataset Location The dataset is available in the following [link](https://storage.googleapis.com/synthetic-graphs-dataset/synthetic-graphs.tar.gz) ## Dataset Metadata The following table is necessary for this dataset to be indexed by search engines such as Google Dataset Search.
property value
name REGAL CostGraphDef Synthetic Dataset
url
sameAs https://github.com/deepmind/deepmind-research/tree/master/regal
description This dataset contains dataflow computational graphs generated procedurally, intended for training and evaluating algorithms that optimize execution (e.g. placement and scheduling), in [TensorFlow's CostGraphDef](https://github.com/tensorflow/tensorflow/blob/59ee7f9138482d85cd93c004aca961bea35820c7/tensorflow/core/framework/cost_graph.proto#L12) [protocol buffer](https://en.wikipedia.org/wiki/Protocol_Buffers) format and encoded as [text](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.text_format).
provider
property value
name DeepMind
sameAs https://en.wikipedia.org/wiki/DeepMind
citation https://identifiers.org/arxiv:1905.02494
## Disclaimer This is not an officially supported Google product. ================================================ FILE: rl_unplugged/README.md ================================================ # RL Unplugged: Benchmarks for Offline Reinforcement Learning RL Unplugged is suite of benchmarks for offline reinforcement learning. The RL Unplugged is designed around the following considerations: to facilitate ease of use, we provide the datasets with a unified API which makes it easy for the practitioner to work with all data in the suite once a general pipeline has been established. This is a dataset accompanying the paper [RL Unplugged: Benchmarks for Offline Reinforcement Learning]([https://arxiv.org/abs/2006.13888]). In this suite of benchmarks, we try to focus on the following problems: - High dimensional action spaces, for example the locomotion humanoid domains, we have 56 dimensional actions. - High dimensional observations. - Partial observability, observations have egocentric vision. - Difficulty of exploration, using states of the art algorithms and imitation to generate data for difficult environments. - Real world challenges. The data is available under [RL Unplugged GCP bucket](https://console.cloud.google.com/storage/browser/rl_unplugged). ## Atari Dataset We are releasing a large and diverse dataset of gameplay following the protocol described by [Agarwal et al., 2020], which can be used to evaluate several discrete offline RL algorithms. The dataset is generated by running an online DQN agent and recording transitions from its replay during training with sticky actions [Machado et al., 2018]. As stated in [Agarwal et al., 2020], for each game we use data from five runs with 50 million transitions each. States in each transition include stacks of four frames to be able to do frame-stacking with our baselines. We release datasets for 46 Atari games. For details on how the dataset was generated, please refer to the paper. Atari is a standard RL benchmark. We recommend you to try offline RL methods on Atari if you are interested in comparing your approach to other state of the art offline RL methods with discrete actions. ## DeepMind Locomotion Dataset These tasks are made up of the corridor locomotion tasks involving the CMU Humanoid, for which prior efforts have either used motion capture data [Merel et al., 2019a], [Merel et al., 2019b] or training from scratch [Song et al., 2020]. In addition, the DM Locomotion repository contains a set of tasks adapted to be suited to a virtual rodent [Merel et al., 2020]. We emphasize that the DM Locomotion tasks feature the combination of challenging high-DoF continuous control along with perception from rich egocentric observations. For details on how the dataset was generated, please refer to the paper. We recommend you to try offline RL methods on DeepMind Locomotion dataset, if you are interested in very challenging offline RL dataset with continuous action space. ## DeepMind Control Suite Dataset DeepMind Control Suite [Tassa et al., 2018] is a set of control tasks implemented in MuJoCo [Todorov et al., 2012]. We consider a subset of the tasks provided in the suite that cover a wide range of difficulties. Most of the datasets in this domain are generated using D4PG. For the environments Manipulator insert ball and Manipulator insert peg we use V-MPO [Song et al., 2020] to generate the data as D4PG is unable to solve these tasks. We release datasets for 9 control suite tasks. For details on how the dataset was generated, please refer to the paper. DeepMind Control Suite is a traditional continuous action RL benchmark. In particular, we recommend you test your approach in DeepMind Control Suite if you are interested in comparing against other state of the art offline RL methods. ## Realworld RL Dataset Examples in the dataset represent SARS transitions stored when running a partially online trained agent as described in [RWRL](https://arxiv.org/abs/2003.11881). We release 8 datasets in total -- with no combined challenge and easy combined challenge on the cartpole, walker, quadruped, and humanoid tasks. For details on how the dataset was generated, please refer to the paper. ## DeepMind Lab Dataset DeepMind Lab dataset has several levels from the challenging, partially observable [Deepmind Lab suite](https://github.com/deepmind/lab). DeepMind Lab dataset is collected by training distributed R2D2 by [Kapturowski et al., 2018] agents from scratch on individual tasks. We recorded the experience across all actors during entire training runs a few times for every task. The details of the dataset generation process is described in [Gulcehre et al., 2021]. We release datasets for five different DeepMind Lab levels: `seekavoid_arena_01`, `explore_rewards_few`, `explore_rewards_many`, `rooms_watermaze`, `rooms_select_nonmatching_object`. We also release the snapshot datasets for `seekavoid_arena_01` level that we generated the datasets from a trained R2D2 snapshot with different levels of epsilons for the epsilon-greedy algorithm when evaluating the agent in the environment. DeepMind Lab dataset is fairly large-scale. We recommend you to try it if you are interested in large-scale offline RL models with memory. ## bsuite Dataset [bsuite](https://github.com/deepmind/bsuite) data was collected by training DQN agents with the default setting in [Acme](https://github.com/deepmind/acme) from scratch in each one of the following three tasks: cartpole, catch, and mountain_car. We converted the originally deterministic environments into stochastic ones by randomly replacing the agent action with a uniformly sampled action with a probability of {0, 0.1, 0.2, 0.3, 0.4, 0.5}. In this case, probability of 0 corresponds to original environment. The details of the dataset generation process is described in [Gulcehre et al., 2021]. bsuite datasets are fairly light-weight and running experiments doesn't require too much compute. We recommend you to try bsuite, if you are interested in small-scale and easy to run offline RL datasets generated by stochastic environments where the stochasticity of the environment is easy to control. ## Running the code ### Installation * Install dependencies: `pip install -r requirements.txt` * (Optional) Setup MuJoCo license key for DM Control environments ([instructions](https://github.com/deepmind/dm_control#requirements-and-installation)). * (Optional) Install [realworldrl_suite](https://github.com/google-research/realworldrl_suite#installation). ### Atari example ``` mkdir -p /tmp/dataset/Asterix gsutil cp gs://rl_unplugged/atari/Asterix/run_1-00000-of-00100 \ /tmp/dataset/Asterix/run_1-00000-of-00001 python atari_example.py --path=/tmp/dataset --game=Asterix ``` This copies a single shard from one of the Asterix datasets from GCP to a local folder, and then runs a script that loads a single example and runs a step on the Atari environment. ## Citation Please use the following bibtex for citations: ``` @misc{gulcehre2020rl, title={RL Unplugged: Benchmarks for Offline Reinforcement Learning}, author={Caglar Gulcehre and Ziyu Wang and Alexander Novikov and Tom Le Paine and Sergio Gómez Colmenarejo and Konrad Zolna and Rishabh Agarwal and Josh Merel and Daniel Mankowitz and Cosmin Paduraru and Gabriel Dulac-Arnold and Jerry Li and Mohammad Norouzi and Matt Hoffman and Ofir Nachum and George Tucker and Nicolas Heess and Nando deFreitas}, year={2020}, eprint={2006.13888}, archivePrefix={arXiv}, primaryClass={cs.LG} } ``` # Dataset Metadata The following table is necessary for this dataset to be indexed by search engines such as Google Dataset Search.
property value
name RL Unplugged
url
sameAs https://github.com/deepmind/deepmind-research/tree/master/rl_unplugged
description Data accompanying [RL Unplugged: Benchmarks for Offline Reinforcement Learning]().
provider
property value
name DeepMind
sameAs https://en.wikipedia.org/wiki/DeepMind
citation https://identifiers.org/arxiv:2006.13888
[Agarwal et al., 2020]: https://arxiv.org/abs/1907.04543 [Machado et al., 2018]: https://arxiv.org/abs/1709.06009 [Merel et al., 2019a]: https://arxiv.org/abs/1811.09656 [Merel et al., 2019b]: https://arxiv.org/abs/1811.11711 [Merel et al., 2020]: https://arxiv.org/abs/1911.09451 [Song et al., 2020]: https://arxiv.org/abs/1909.12238 [Tassa et al., 2018]: https://arxiv.org/abs/1801.00690 [Todorov et al., 2012]: https://homes.cs.washington.edu/~todorov/papers/TodorovIROS12.pdf [Kapturowski et al., 2018]: https://openreview.net/forum?id=r1lyTjAqYX [Gulcehre et al., 2021]: https://arxiv.org/abs/2103.09575 ================================================ FILE: rl_unplugged/atari.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Atari RL Unplugged datasets. Examples in the dataset represent SARSA transitions stored during a DQN training run as described in https://arxiv.org/pdf/1907.04543. For every training run we have recorded all 50 million transitions corresponding to 200 million environment steps (4x factor because of frame skipping). There are 5 separate datasets for each of the 45 games. Every transition in the dataset is a tuple containing the following features: * o_t: Observation at time t. Observations have been processed using the canonical Atari frame processing, including 4x frame stacking. The shape of a single observation is [84, 84, 4]. * a_t: Action taken at time t. * r_t: Reward after a_t. * d_t: Discount after a_t. * o_tp1: Observation at time t+1. * a_tp1: Action at time t+1. * extras: * episode_id: Episode identifier. * episode_return: Total episode return computed using per-step [-1, 1] clipping. """ import functools import os from typing import Dict from acme import wrappers import dm_env from dm_env import specs from dopamine.discrete_domains import atari_lib import reverb import tensorflow as tf # 9 tuning games. TUNING_SUITE = [ 'BeamRider', 'DemonAttack', 'DoubleDunk', 'IceHockey', 'MsPacman', 'Pooyan', 'RoadRunner', 'Robotank', 'Zaxxon', ] # 36 testing games. TESTING_SUITE = [ 'Alien', 'Amidar', 'Assault', 'Asterix', 'Atlantis', 'BankHeist', 'BattleZone', 'Boxing', 'Breakout', 'Carnival', 'Centipede', 'ChopperCommand', 'CrazyClimber', 'Enduro', 'FishingDerby', 'Freeway', 'Frostbite', 'Gopher', 'Gravitar', 'Hero', 'Jamesbond', 'Kangaroo', 'Krull', 'KungFuMaster', 'NameThisGame', 'Phoenix', 'Pong', 'Qbert', 'Riverraid', 'Seaquest', 'SpaceInvaders', 'StarGunner', 'TimePilot', 'UpNDown', 'VideoPinball', 'WizardOfWor', 'YarsRevenge', ] # Total of 45 games. ALL = TUNING_SUITE + TESTING_SUITE def _decode_frames(pngs: tf.Tensor): """Decode PNGs. Args: pngs: String Tensor of size (4,) containing PNG encoded images. Returns: 4 84x84 grayscale images packed in a (84, 84, 4) uint8 Tensor. """ # Statically unroll png decoding frames = [tf.image.decode_png(pngs[i], channels=1) for i in range(4)] frames = tf.concat(frames, axis=2) frames.set_shape((84, 84, 4)) return frames def _make_reverb_sample(o_t: tf.Tensor, a_t: tf.Tensor, r_t: tf.Tensor, d_t: tf.Tensor, o_tp1: tf.Tensor, a_tp1: tf.Tensor, extras: Dict[str, tf.Tensor]) -> reverb.ReplaySample: """Create Reverb sample with offline data. Args: o_t: Observation at time t. a_t: Action at time t. r_t: Reward at time t. d_t: Discount at time t. o_tp1: Observation at time t+1. a_tp1: Action at time t+1. extras: Dictionary with extra features. Returns: Replay sample with fake info: key=0, probability=1, table_size=0. """ info = reverb.SampleInfo( key=tf.constant(0, tf.uint64), probability=tf.constant(1.0, tf.float64), table_size=tf.constant(0, tf.int64), priority=tf.constant(1.0, tf.float64), times_sampled=tf.constant(1, tf.int32)) data = (o_t, a_t, r_t, d_t, o_tp1, a_tp1, extras) return reverb.ReplaySample(info=info, data=data) def _tf_example_to_reverb_sample(tf_example: tf.train.Example ) -> reverb.ReplaySample: """Create a Reverb replay sample from a TF example.""" # Parse tf.Example. feature_description = { 'o_t': tf.io.FixedLenFeature([4], tf.string), 'o_tp1': tf.io.FixedLenFeature([4], tf.string), 'a_t': tf.io.FixedLenFeature([], tf.int64), 'a_tp1': tf.io.FixedLenFeature([], tf.int64), 'r_t': tf.io.FixedLenFeature([], tf.float32), 'd_t': tf.io.FixedLenFeature([], tf.float32), 'episode_id': tf.io.FixedLenFeature([], tf.int64), 'episode_return': tf.io.FixedLenFeature([], tf.float32), } data = tf.io.parse_single_example(tf_example, feature_description) # Process data. o_t = _decode_frames(data['o_t']) o_tp1 = _decode_frames(data['o_tp1']) a_t = tf.cast(data['a_t'], tf.int32) a_tp1 = tf.cast(data['a_tp1'], tf.int32) episode_id = tf.bitcast(data['episode_id'], tf.uint64) # Build Reverb replay sample. extras = { 'episode_id': episode_id, 'return': data['episode_return'] } return _make_reverb_sample(o_t, a_t, data['r_t'], data['d_t'], o_tp1, a_tp1, extras) def dataset(path: str, game: str, run: int, num_shards: int = 100, shuffle_buffer_size: int = 100000) -> tf.data.Dataset: """TF dataset of Atari SARSA tuples.""" path = os.path.join(path, f'{game}/run_{run}') filenames = [f'{path}-{i:05d}-of-{num_shards:05d}' for i in range(num_shards)] file_ds = tf.data.Dataset.from_tensor_slices(filenames) file_ds = file_ds.repeat().shuffle(num_shards) example_ds = file_ds.interleave( functools.partial(tf.data.TFRecordDataset, compression_type='GZIP'), cycle_length=tf.data.experimental.AUTOTUNE, block_length=5) example_ds = example_ds.shuffle(shuffle_buffer_size) return example_ds.map(_tf_example_to_reverb_sample, num_parallel_calls=tf.data.experimental.AUTOTUNE) class AtariDopamineWrapper(dm_env.Environment): """Wrapper for Atari Dopamine environmnet.""" def __init__(self, env, max_episode_steps=108000): self._env = env self._max_episode_steps = max_episode_steps self._episode_steps = 0 self._reset_next_episode = True def reset(self): self._episode_steps = 0 self._reset_next_step = False observation = self._env.reset() return dm_env.restart(observation.squeeze(-1)) def step(self, action): if self._reset_next_step: return self.reset() observation, reward, terminal, _ = self._env.step(action.item()) observation = observation.squeeze(-1) discount = 1 - float(terminal) self._episode_steps += 1 if terminal: self._reset_next_episode = True return dm_env.termination(reward, observation) elif self._episode_steps == self._max_episode_steps: self._reset_next_episode = True return dm_env.truncation(reward, observation, discount) else: return dm_env.transition(reward, observation, discount) def observation_spec(self): space = self._env.observation_space return specs.Array(space.shape[:-1], space.dtype) def action_spec(self): return specs.DiscreteArray(self._env.action_space.n) def environment(game: str) -> dm_env.Environment: """Atari environment.""" env = atari_lib.create_atari_environment(game_name=game, sticky_actions=True) env = AtariDopamineWrapper(env) env = wrappers.FrameStackingWrapper(env, num_frames=4) return wrappers.SinglePrecisionWrapper(env) ================================================ FILE: rl_unplugged/atari_dqn.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KDiJzbb8KFvP" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ULdrhOaVbsdO" }, "source": [ "# RL Unplugged: Offline DQN - Atari\n", "## Guide to training an Acme DQN agent on Atari data.\n", "# \u003ca href=\"https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/rl_unplugged/atari_dqn.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "xaJxoatMhJ71" }, "source": [ "## Installation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "KH3O0zcXUeun" }, "outputs": [], "source": [ "!pip install dm-acme\n", "!pip install dm-acme[reverb]\n", "!pip install dm-acme[tf]\n", "!pip install dm-sonnet\n", "!pip install dopamine-rl==3.1.2\n", "!pip install atari-py\n", "!git clone https://github.com/deepmind/deepmind-research.git\n", "%cd deepmind-research" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "c-H2d6UZi7Sf" }, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "HJ74Id-8MERq" }, "outputs": [], "source": [ "import copy\n", "\n", "import acme\n", "from acme.agents.tf import actors\n", "from acme.agents.tf.dqn import learning as dqn\n", "from acme.tf import utils as acme_utils\n", "from acme.utils import loggers\n", "from rl_unplugged import atari\n", "import sonnet as snt\n", "import tensorflow as tf" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "JrOSnoWiY4Xl" }, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Vi3_H_h1zy_0" }, "outputs": [], "source": [ "game = 'Pong' #@param\n", "run = 1 #@param\n", "\n", "tmp_path = '/tmp/atari'\n", "gs_path = 'gs://rl_unplugged/atari'\n", "\n", "!mkdir -p {tmp_path}/{game}\n", "\n", "src = f'{gs_path}/{game}/run_{run}-00000-of-00100'\n", "dest = f'{tmp_path}/{game}/run_{run}-00000-of-00001'\n", "!gsutil cp {src} {dest}" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "a9vF7LtYvLzy" }, "source": [ "## Dataset and environment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "01AHHNd9cEX2" }, "outputs": [], "source": [ "batch_size = 10 #@param\n", "\n", "def discard_extras(sample):\n", " return sample._replace(data=sample.data[:5])\n", "\n", "dataset = atari.dataset(path=tmp_path, game='Pong', run=1, num_shards=1)\n", "# Small batch size, experiments in the paper were run with batch size 256.\n", "dataset = dataset.map(discard_extras).batch(batch_size)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KoYBhjPtI_N6" }, "source": [ "" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "4b4_rHwCmQg-" }, "outputs": [], "source": [ "environment = atari.environment(game='Pong')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "BukOfOsmtSQn" }, "source": [ "## DQN learner" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 83, "status": "ok", "timestamp": 1593614657342, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "3Jcjk1w6oHVX", "outputId": "1746b0bb-5a5c-45dd-b5a1-c77852545e12" }, "outputs": [ { "data": { "text/plain": [ "TensorSpec(shape=(6,), dtype=tf.float32, name=None)" ] }, "execution_count": 20, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "# Get total number of actions.\n", "num_actions = environment.action_spec().num_values\n", "\n", "# Create the Q network.\n", "network = snt.Sequential([\n", " lambda x: tf.image.convert_image_dtype(x, tf.float32),\n", " snt.Conv2D(32, [8, 8], [4, 4]),\n", " tf.nn.relu,\n", " snt.Conv2D(64, [4, 4], [2, 2]),\n", " tf.nn.relu,\n", " snt.Conv2D(64, [3, 3], [1, 1]),\n", " tf.nn.relu,\n", " snt.Flatten(),\n", " snt.nets.MLP([512, num_actions])\n", "])\n", "acme_utils.create_variables(network, [environment.observation_spec()])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "9CD2sNK-oA9S" }, "outputs": [], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='learner', time_delta=1.)\n", "\n", "# Create the DQN learner.\n", "learner = dqn.DQNLearner(\n", " network=network,\n", " target_network=copy.deepcopy(network),\n", " discount=0.99,\n", " learning_rate=3e-4,\n", " importance_sampling_exponent=0.2,\n", " target_update_period=2500,\n", " dataset=dataset,\n", " logger=logger)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "oKeGQxzitXYC" }, "source": [ "## Training loop" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 4694, "status": "ok", "timestamp": 1593614662237, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "VWZd5N-Qoz82", "outputId": "5ee2ce7c-b3fe-483b-8893-5a6e13519f48" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Learner] Loss = 0.003 | Steps = 1 | Walltime = 0\n", "[Learner] Loss = 0.004 | Steps = 54 | Walltime = 1.126\n" ] } ], "source": [ "for _ in range(100):\n", " learner.step()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "qFQDrp0CgIzU" }, "source": [ "## Evaluation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 102 }, "colab_type": "code", "executionInfo": { "elapsed": 15099, "status": "ok", "timestamp": 1593614677360, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "DWYHBalygIDF", "outputId": "4ec412c3-810a-4208-b521-919a8ece40df" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Evaluation] Episode Length = 842 | Episode Return = -20.000 | Episodes = 1 | Steps = 842 | Steps Per Second = 265.850\n", "[Evaluation] Episode Length = 792 | Episode Return = -21.000 | Episodes = 2 | Steps = 1634 | Steps Per Second = 270.043\n", "[Evaluation] Episode Length = 812 | Episode Return = -21.000 | Episodes = 3 | Steps = 2446 | Steps Per Second = 274.792\n", "[Evaluation] Episode Length = 812 | Episode Return = -21.000 | Episodes = 4 | Steps = 3258 | Steps Per Second = 270.967\n", "[Evaluation] Episode Length = 812 | Episode Return = -21.000 | Episodes = 5 | Steps = 4070 | Steps Per Second = 274.253\n" ] } ], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='evaluation', time_delta=1.)\n", "\n", "# Create an environment loop.\n", "policy_network = snt.Sequential([\n", " network,\n", " lambda q: tf.argmax(q, axis=-1),\n", "])\n", "loop = acme.EnvironmentLoop(\n", " environment=environment,\n", " actor=actors.DeprecatedFeedForwardActor(policy_network=policy_network),\n", " logger=logger)\n", "\n", "loop.run(5)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "//learning/deepmind/dm_python:dm_notebook3", "kind": "private" }, "name": "RL Unplugged: Offline DQN - Atari", "provenance": [ { "file_id": "1g9yTbTuk9aeERxWflOWqUGpx2M3osx0l", "timestamp": 1593685504110 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rl_unplugged/atari_example.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. r"""Atari dataset example. Instructions: > mkdir -p /tmp/dataset/Asterix > gsutil cp gs://rl_unplugged/atari/Asterix/run_1-00000-of-00100 \ /tmp/dataset/Asterix/run_1-00000-of-00001 > python atari_example.py --path=/tmp/dataset --game=Asterix """ from absl import app from absl import flags from acme import specs import tree from rl_unplugged import atari flags.DEFINE_string('path', '/tmp/dataset', 'Path to dataset.') flags.DEFINE_string('game', 'Asterix', 'Game.') FLAGS = flags.FLAGS def main(_): ds = atari.dataset(FLAGS.path, FLAGS.game, 1, num_shards=1, shuffle_buffer_size=1) for sample in ds.take(1): print('Data spec') print(tree.map_structure(lambda x: (x.dtype, x.shape), sample.data)) env = atari.environment(FLAGS.game) print('Environment spec') print(specs.make_environment_spec(env)) print('Environment observation') timestep = env.reset() print(tree.map_structure(lambda x: (x.dtype, x.shape), timestep.observation)) if __name__ == '__main__': app.run(main) ================================================ FILE: rl_unplugged/bsuite.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "KDiJzbb8KFvP" }, "source": [ "Copyright 2021 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "ULdrhOaVbsdO" }, "source": [ "# RL Unplugged: Offline DQN - Bsuite\n", "## Guide to training an Acme DQN agent on Bsuite data.\n", "# \u003ca href=\"https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/rl_unplugged/atari_dqn.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "collapsed": true, "id": "KH3O0zcXUeun" }, "outputs": [], "source": [ "# @title Installation\n", "!pip install dm-acme\n", "!pip install dm-acme[reverb]\n", "!pip install dm-acme[tf]\n", "!pip install dm-sonnet\n", "!pip install dopamine-rl==3.1.2\n", "!pip install atari-py\n", "!pip install dm_env\n", "!git clone https://github.com/deepmind/deepmind-research.git\n", "%cd deepmind-research\n", "\n", "!git clone https://github.com/deepmind/bsuite.git\n", "!pip install -q bsuite/" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "HJ74Id-8MERq" }, "outputs": [], "source": [ "# @title Imports\n", "import copy\n", "import functools\n", "from typing import Dict, Tuple\n", "\n", "\n", "import acme\n", "from acme.agents.tf import actors\n", "from acme.agents.tf.dqn import learning as dqn\n", "from acme.tf import utils as acme_utils\n", "from acme.utils import loggers\n", "\n", "import sonnet as snt\n", "import tensorflow as tf\n", "\n", "import numpy as np\n", "import tree\n", "import dm_env\n", "import reverb\n", "from acme.wrappers import base as wrapper_base\n", "from acme.wrappers import single_precision\n", "\n", "import bsuite" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "j0Aahizs2ff-" }, "outputs": [], "source": [ "# @title Data Loading Utilities\n", "def _parse_seq_tf_example(example, shapes, dtypes):\n", " \"\"\"Parse tf.Example containing one or two episode steps.\"\"\"\n", "\n", " def to_feature(shape, dtype):\n", " if np.issubdtype(dtype, np.floating):\n", " return tf.io.FixedLenSequenceFeature(\n", " shape=shape, dtype=tf.float32, allow_missing=True)\n", " elif dtype == np.bool or np.issubdtype(dtype, np.integer):\n", " return tf.io.FixedLenSequenceFeature(\n", " shape=shape, dtype=tf.int64, allow_missing=True)\n", " else:\n", " raise ValueError(f'Unsupported type {dtype} to '\n", " f'convert from TF Example.')\n", "\n", " feature_map = {}\n", " for k, v in shapes.items():\n", " feature_map[k] = to_feature(v, dtypes[k])\n", "\n", " parsed = tf.io.parse_single_example(example, features=feature_map)\n", "\n", " restructured = {}\n", " for k, v in parsed.items():\n", " dtype = tf.as_dtype(dtypes[k])\n", " if v.dtype == dtype:\n", " restructured[k] = parsed[k]\n", " else:\n", " restructured[k] = tf.cast(parsed[k], dtype)\n", "\n", " return restructured\n", "\n", "\n", "def _build_sars_example(sequences):\n", " \"\"\"Convert raw sequences into a Reverb SARS' sample.\"\"\"\n", "\n", " o_tm1 = tree.map_structure(lambda t: t[0], sequences['observation'])\n", " o_t = tree.map_structure(lambda t: t[1], sequences['observation'])\n", " a_tm1 = tree.map_structure(lambda t: t[0], sequences['action'])\n", " r_t = tree.map_structure(lambda t: t[0], sequences['reward'])\n", " p_t = tree.map_structure(\n", " lambda d, st: d[0] * tf.cast(st[1] != dm_env.StepType.LAST, d.dtype),\n", " sequences['discount'], sequences['step_type'])\n", "\n", " info = reverb.SampleInfo(key=tf.constant(0, tf.uint64),\n", " probability=tf.constant(1.0, tf.float64),\n", " table_size=tf.constant(0, tf.int64),\n", " priority=tf.constant(1.0, tf.float64))\n", " return reverb.ReplaySample(info=info, data=(\n", " o_tm1, a_tm1, r_t, p_t, o_t))\n", "\n", "\n", "def bsuite_dataset_params(env):\n", " \"\"\"Return shapes and dtypes parameters for bsuite offline dataset.\"\"\"\n", " shapes = {\n", " 'observation': env.observation_spec().shape,\n", " 'action': env.action_spec().shape,\n", " 'discount': env.discount_spec().shape,\n", " 'reward': env.reward_spec().shape,\n", " 'episodic_reward': env.reward_spec().shape,\n", " 'step_type': (),\n", " }\n", "\n", " dtypes = {\n", " 'observation': env.observation_spec().dtype,\n", " 'action': env.action_spec().dtype,\n", " 'discount': env.discount_spec().dtype,\n", " 'reward': env.reward_spec().dtype,\n", " 'episodic_reward': env.reward_spec().dtype,\n", " 'step_type': np.int64,\n", " }\n", "\n", " return {'shapes': shapes, 'dtypes': dtypes}\n", "\n", "\n", "def bsuite_dataset(path: str,\n", " shapes: Dict[str, Tuple[int]],\n", " dtypes: Dict[str, type], # pylint:disable=g-bare-generic\n", " num_threads: int,\n", " batch_size: int,\n", " num_shards: int,\n", " shuffle_buffer_size: int = 100000,\n", " shuffle: bool = True) -\u003e tf.data.Dataset:\n", " \"\"\"Create tf dataset for training.\"\"\"\n", "\n", " filenames = [f'{path}-{i:05d}-of-{num_shards:05d}' for i in range(\n", " num_shards)]\n", " file_ds = tf.data.Dataset.from_tensor_slices(filenames)\n", " if shuffle:\n", " file_ds = file_ds.repeat().shuffle(num_shards)\n", "\n", " example_ds = file_ds.interleave(\n", " functools.partial(tf.data.TFRecordDataset, compression_type='GZIP'),\n", " cycle_length=tf.data.experimental.AUTOTUNE,\n", " block_length=5)\n", " if shuffle:\n", " example_ds = example_ds.shuffle(shuffle_buffer_size)\n", "\n", " def map_func(example):\n", " example = _parse_seq_tf_example(example, shapes, dtypes)\n", " return example\n", "\n", " example_ds = example_ds.map(map_func, num_parallel_calls=num_threads)\n", " if shuffle:\n", " example_ds = example_ds.repeat().shuffle(batch_size * 10)\n", "\n", " example_ds = example_ds.map(\n", " _build_sars_example,\n", " num_parallel_calls=tf.data.experimental.AUTOTUNE)\n", " example_ds = example_ds.batch(batch_size, drop_remainder=True)\n", "\n", " example_ds = example_ds.prefetch(tf.data.experimental.AUTOTUNE)\n", "\n", " return example_ds\n", "\n", "\n", "def load_offline_bsuite_dataset(\n", " bsuite_id: str,\n", " path: str,\n", " batch_size: int,\n", " num_shards: int = 1,\n", " num_threads: int = 1,\n", " single_precision_wrapper: bool = True,\n", " shuffle: bool = True) -\u003e Tuple[tf.data.Dataset,\n", " dm_env.Environment]:\n", " \"\"\"Load bsuite offline dataset.\"\"\"\n", " # Data file path format: {path}-?????-of-{num_shards:05d}\n", " # The dataset is not deterministic and not repeated if shuffle = False.\n", " environment = bsuite.load_from_id(bsuite_id)\n", " if single_precision_wrapper:\n", " environment = single_precision.SinglePrecisionWrapper(environment)\n", " params = bsuite_dataset_params(environment)\n", " dataset = bsuite_dataset(path=path,\n", " num_threads=num_threads,\n", " batch_size=batch_size,\n", " num_shards=num_shards,\n", " shuffle_buffer_size=2,\n", " shuffle=shuffle,\n", " **params)\n", " return dataset, environment" ] }, { "cell_type": "markdown", "metadata": { "id": "a9vF7LtYvLzy" }, "source": [ "## Dataset and environment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "2I4lHR5jLeXm" }, "outputs": [], "source": [ "tmp_path = 'gs://rl_unplugged/bsuite'\n", "level = 'catch'\n", "dir = '0_0.0'\n", "filename = '0_full'\n", "path = f'{tmp_path}/{level}/{dir}/{filename}'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "id": "01AHHNd9cEX2" }, "outputs": [], "source": [ "batch_size = 2 #@param\n", "bsuite_id = level + '/0'\n", "dataset, environment = load_offline_bsuite_dataset(bsuite_id=bsuite_id,\n", " path=path,\n", " batch_size=batch_size)\n", "dataset = dataset.prefetch(1)" ] }, { "cell_type": "markdown", "metadata": { "id": "BukOfOsmtSQn" }, "source": [ "## DQN learner" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "3Jcjk1w6oHVX" }, "outputs": [], "source": [ "# Get total number of actions.\n", "num_actions = environment.action_spec().num_values\n", "obs_spec = environment.observation_spec()\n", "print(environment.observation_spec())\n", "# Create the Q network.\n", "network = snt.Sequential([\n", " snt.flatten,\n", " snt.nets.MLP([56, 56]),\n", " snt.nets.MLP([num_actions])\n", " ])\n", "acme_utils.create_variables(network, [environment.observation_spec()])\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "9CD2sNK-oA9S" }, "outputs": [], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='learner', time_delta=1.)\n", "\n", "# Create the DQN learner.\n", "learner = dqn.DQNLearner(\n", " network=network,\n", " target_network=copy.deepcopy(network),\n", " discount=0.99,\n", " learning_rate=3e-4,\n", " importance_sampling_exponent=0.2,\n", " target_update_period=2500,\n", " dataset=dataset,\n", " logger=logger)" ] }, { "cell_type": "markdown", "metadata": { "id": "oKeGQxzitXYC" }, "source": [ "## Training loop" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "VWZd5N-Qoz82" }, "outputs": [], "source": [ "for _ in range(10000):\n", " learner.step()" ] }, { "cell_type": "markdown", "metadata": { "id": "qFQDrp0CgIzU" }, "source": [ "## Evaluation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "DWYHBalygIDF" }, "outputs": [], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='evaluation', time_delta=1.)\n", "\n", "# Create an environment loop.\n", "policy_network = snt.Sequential([\n", " network,\n", " lambda q: tf.argmax(q, axis=-1),\n", "])\n", "loop = acme.EnvironmentLoop(\n", " environment=environment,\n", " actor=actors.DeprecatedFeedForwardActor(policy_network=policy_network),\n", " logger=logger)\n", "\n", "loop.run(400)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "RL_Unplugged_Offline_DQN_Bsuite.ipynb", "provenance": [ { "file_id": "1rhoeTFuan8B_q8eBeCEtQPiIeMux1pWU", "timestamp": 1613499802780 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rl_unplugged/dm_control_suite.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Control RL Unplugged datasets. Examples in the dataset represent sequences stored when running a partially trained agent (trained in online way) as described in https://arxiv.org/abs/2006.13888. Every dataset has a SARSA version, and datasets for environments for solving which we believe one may need a recurrent agent also include a version of the dataset with overlapping sequences of length 40. Datasets for the dm_control_suite environments only include proprio observations, while datasets for dm_locomotion include both pixel and proprio observations. """ import collections import functools import os from typing import Dict, Optional, Tuple, Set from acme import wrappers from acme.adders import reverb as adders from dm_control import composer from dm_control import suite from dm_control.composer.variation import colors from dm_control.composer.variation import distributions from dm_control.locomotion import arenas from dm_control.locomotion import props from dm_control.locomotion import tasks from dm_control.locomotion import walkers from dm_env import specs import numpy as np import reverb import tensorflow as tf import tree def _build_rodent_escape_env(): """Build environment where a rodent escapes from a bowl.""" walker = walkers.Rat( observable_options={'egocentric_camera': dict(enabled=True)}, ) arena = arenas.bowl.Bowl( size=(20., 20.), aesthetic='outdoor_natural') locomotion_task = tasks.escape.Escape( walker=walker, arena=arena, physics_timestep=0.001, control_timestep=.02) raw_env = composer.Environment( time_limit=20, task=locomotion_task, strip_singleton_obs_buffer_dim=True) return raw_env def _build_rodent_maze_env(): """Build environment where a rodent runs to targets.""" walker = walkers.Rat( observable_options={'egocentric_camera': dict(enabled=True)}, ) wall_textures = arenas.labmaze_textures.WallTextures( style='style_01') arena = arenas.mazes.RandomMazeWithTargets( x_cells=11, y_cells=11, xy_scale=.5, z_height=.3, max_rooms=4, room_min_size=4, room_max_size=5, spawns_per_room=1, targets_per_room=3, wall_textures=wall_textures, aesthetic='outdoor_natural') rodent_task = tasks.random_goal_maze.ManyGoalsMaze( walker=walker, maze_arena=arena, target_builder=functools.partial( props.target_sphere.TargetSphere, radius=0.05, height_above_ground=.125, rgb1=(0, 0, 0.4), rgb2=(0, 0, 0.7)), target_reward_scale=50., contact_termination=False, control_timestep=.02, physics_timestep=0.001) raw_env = composer.Environment( time_limit=30, task=rodent_task, strip_singleton_obs_buffer_dim=True) return raw_env def _build_rodent_corridor_gaps(): """Build environment where a rodent runs over gaps.""" walker = walkers.Rat( observable_options={'egocentric_camera': dict(enabled=True)}, ) platform_length = distributions.Uniform(low=0.4, high=0.8) gap_length = distributions.Uniform(low=0.05, high=0.2) arena = arenas.corridors.GapsCorridor( corridor_width=2, platform_length=platform_length, gap_length=gap_length, corridor_length=40, aesthetic='outdoor_natural') rodent_task = tasks.corridors.RunThroughCorridor( walker=walker, arena=arena, walker_spawn_position=(5, 0, 0), walker_spawn_rotation=0, target_velocity=1.0, contact_termination=False, terminate_at_height=-0.3, physics_timestep=0.001, control_timestep=.02) raw_env = composer.Environment( time_limit=30, task=rodent_task, strip_singleton_obs_buffer_dim=True) return raw_env def _build_rodent_two_touch_env(): """Build environment where a rodent touches targets.""" walker = walkers.Rat( observable_options={'egocentric_camera': dict(enabled=True)}, ) arena_floor = arenas.floors.Floor( size=(10., 10.), aesthetic='outdoor_natural') task_reach = tasks.reach.TwoTouch( walker=walker, arena=arena_floor, target_builders=[ functools.partial( props.target_sphere.TargetSphereTwoTouch, radius=0.025), ], randomize_spawn_rotation=True, target_type_rewards=[25.], shuffle_target_builders=False, target_area=(1.5, 1.5), physics_timestep=0.001, control_timestep=.02) raw_env = composer.Environment( time_limit=30, task=task_reach, strip_singleton_obs_buffer_dim=True) return raw_env def _build_humanoid_walls_env(): """Build humanoid walker walls environment.""" walker = walkers.CMUHumanoidPositionControlled( name='walker', observable_options={'egocentric_camera': dict(enabled=True)}, ) wall_width = distributions.Uniform(low=1, high=7) wall_height = distributions.Uniform(low=2.5, high=4.0) swap_wall_side = distributions.Bernoulli(prob=0.5) wall_r = distributions.Uniform(low=0.5, high=0.6) wall_g = distributions.Uniform(low=0.21, high=0.41) wall_rgba = colors.RgbVariation(r=wall_r, g=wall_g, b=0, alpha=1) arena = arenas.WallsCorridor( wall_gap=5.0, wall_width=wall_width, wall_height=wall_height, swap_wall_side=swap_wall_side, wall_rgba=wall_rgba, corridor_width=10, corridor_length=100) humanoid_task = tasks.RunThroughCorridor( walker=walker, arena=arena, walker_spawn_rotation=1.57, # pi / 2 physics_timestep=0.005, control_timestep=0.03) raw_env = composer.Environment( time_limit=30, task=humanoid_task, strip_singleton_obs_buffer_dim=True) return raw_env def _build_humanoid_corridor_env(): """Build humanoid walker walls environment.""" walker = walkers.CMUHumanoidPositionControlled( name='walker', observable_options={'egocentric_camera': dict(enabled=True)}, ) arena = arenas.EmptyCorridor( corridor_width=10, corridor_length=100) humanoid_task = tasks.RunThroughCorridor( walker=walker, arena=arena, walker_spawn_rotation=1.57, # pi / 2 physics_timestep=0.005, control_timestep=0.03) raw_env = composer.Environment( time_limit=30, task=humanoid_task, strip_singleton_obs_buffer_dim=True) return raw_env def _build_humanoid_corridor_gaps(): """Build humanoid walker walls environment.""" walker = walkers.CMUHumanoidPositionControlled( name='walker', observable_options={'egocentric_camera': dict(enabled=True)}, ) platform_length = distributions.Uniform(low=0.3, high=2.5) gap_length = distributions.Uniform(low=0.75, high=1.25) arena = arenas.GapsCorridor( corridor_width=10, platform_length=platform_length, gap_length=gap_length, corridor_length=100) humanoid_task = tasks.RunThroughCorridor( walker=walker, arena=arena, walker_spawn_position=(2, 0, 0), walker_spawn_rotation=1.57, # pi / 2 physics_timestep=0.005, control_timestep=0.03) raw_env = composer.Environment( time_limit=30, task=humanoid_task, strip_singleton_obs_buffer_dim=True) return raw_env class MujocoActionNormalizer(wrappers.EnvironmentWrapper): """Rescale actions to [-1, 1] range for mujoco physics engine. For control environments whose actions have bounded range in [-1, 1], this adaptor rescale actions to the desired range. This allows actor network to output unscaled actions for better gradient dynamics. """ def __init__(self, environment, rescale='clip'): super().__init__(environment) self._rescale = rescale def step(self, action): """Rescale actions to [-1, 1] range before stepping wrapped environment.""" if self._rescale == 'tanh': scaled_actions = tree.map_structure(np.tanh, action) elif self._rescale == 'clip': scaled_actions = tree.map_structure(lambda a: np.clip(a, -1., 1.), action) else: raise ValueError('Unrecognized scaling option: %s' % self._rescale) return self._environment.step(scaled_actions) class NormilizeActionSpecWrapper(wrappers.EnvironmentWrapper): """Turn each dimension of the actions into the range of [-1, 1].""" def __init__(self, environment): super().__init__(environment) action_spec = environment.action_spec() # pytype: disable=attribute-error # always-use-return-annotations self._scale = action_spec.maximum - action_spec.minimum self._offset = action_spec.minimum minimum = action_spec.minimum * 0 - 1. maximum = action_spec.minimum * 0 + 1. self._action_spec = specs.BoundedArray( action_spec.shape, action_spec.dtype, minimum, maximum, name=action_spec.name) # pytype: enable=attribute-error # always-use-return-annotations def _from_normal_actions(self, actions): actions = 0.5 * (actions + 1.0) # a_t is now in the range [0, 1] # scale range to [minimum, maximum] return actions * self._scale + self._offset def step(self, action): action = self._from_normal_actions(action) return self._environment.step(action) def action_spec(self): return self._action_spec class FilterObservationsWrapper(wrappers.EnvironmentWrapper): """Filter out all the observations not specified to this wrapper.""" def __init__(self, environment, observations_to_keep): super().__init__(environment) self._observations_to_keep = observations_to_keep spec = self._environment.observation_spec() filtered = [(k, spec[k]) for k in observations_to_keep] self._observation_spec = collections.OrderedDict(filtered) def _filter_observation(self, timestep): observation = timestep.observation filtered = [(k, observation[k]) for k in self._observations_to_keep] return timestep._replace(observation=collections.OrderedDict(filtered)) def step(self, action): return self._filter_observation(self._environment.step(action)) def reset(self): return self._filter_observation(self._environment.reset()) def observation_spec(self): return self._observation_spec class ControlSuite: """Create bits needed to run agents on an Control Suite dataset.""" def __init__(self, task_name='humanoid_run'): """Initializes datasets/environments for the Deepmind Control suite. Args: task_name: take name. Must be one of, finger_turn_hard, manipulator_insert_peg, humanoid_run, cartpole_swingup, cheetah_run, fish_swim, manipulator_insert_ball, walker_stand, walker_walk """ self.task_name = task_name self._uint8_features = set([]) self._environment = None if task_name == 'swim': self._domain_name = 'fish' self._task_name = 'swim' self._shapes = { 'observation/target': (3,), 'observation/velocity': (13,), 'observation/upright': (1,), 'observation/joint_angles': (7,), 'action': (5,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': () } elif task_name == 'humanoid_run': self._domain_name = 'humanoid' self._task_name = 'run' self._shapes = { 'observation/velocity': (27,), 'observation/com_velocity': (3,), 'observation/torso_vertical': (3,), 'observation/extremities': (12,), 'observation/head_height': (1,), 'observation/joint_angles': (21,), 'action': (21,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': () } elif task_name == 'manipulator_insert_ball': self._domain_name = 'manipulator' self._task_name = 'insert_ball' self._shapes = { 'observation/arm_pos': (16,), 'observation/arm_vel': (8,), 'observation/touch': (5,), 'observation/hand_pos': (4,), 'observation/object_pos': (4,), 'observation/object_vel': (3,), 'observation/target_pos': (4,), 'action': (5,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': ()} elif task_name == 'manipulator_insert_peg': self._domain_name = 'manipulator' self._task_name = 'insert_peg' self._shapes = { 'observation/arm_pos': (16,), 'observation/arm_vel': (8,), 'observation/touch': (5,), 'observation/hand_pos': (4,), 'observation/object_pos': (4,), 'observation/object_vel': (3,), 'observation/target_pos': (4,), 'episodic_reward': (), 'action': (5,), 'discount': (), 'reward': (), 'step_type': ()} elif task_name == 'cartpole_swingup': self._domain_name = 'cartpole' self._task_name = 'swingup' self._shapes = { 'observation/position': (3,), 'observation/velocity': (2,), 'action': (1,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': ()} elif task_name == 'walker_walk': self._domain_name = 'walker' self._task_name = 'walk' self._shapes = { 'observation/orientations': (14,), 'observation/velocity': (9,), 'observation/height': (1,), 'action': (6,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': ()} elif task_name == 'walker_stand': self._domain_name = 'walker' self._task_name = 'stand' self._shapes = { 'observation/orientations': (14,), 'observation/velocity': (9,), 'observation/height': (1,), 'action': (6,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': ()} elif task_name == 'cheetah_run': self._domain_name = 'cheetah' self._task_name = 'run' self._shapes = { 'observation/position': (8,), 'observation/velocity': (9,), 'action': (6,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': ()} elif task_name == 'finger_turn_hard': self._domain_name = 'finger' self._task_name = 'turn_hard' self._shapes = { 'observation/position': (4,), 'observation/velocity': (3,), 'observation/touch': (2,), 'observation/target_position': (2,), 'observation/dist_to_target': (1,), 'action': (2,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': ()} else: raise ValueError('Task \'{}\' not found.'.format(task_name)) self._data_path = 'dm_control_suite/{}/train'.format(task_name) @property def shapes(self): return self._shapes @property def data_path(self): return self._data_path @property def uint8_features(self): return self._uint8_features @property def environment(self): """Build and return the environment.""" if self._environment is not None: return self._environment self._environment = suite.load( domain_name=self._domain_name, task_name=self._task_name) self._environment = wrappers.SinglePrecisionWrapper(self._environment) self._environment = NormilizeActionSpecWrapper(self._environment) return self._environment class CmuThirdParty: """Create bits needed to run agents on an locomotion humanoid dataset.""" def __init__(self, task_name='humanoid_walls'): # 'humanoid_corridor|humanoid_gaps|humanoid_walls' self._task_name = task_name self._pixel_keys = self.get_pixel_keys() self._uint8_features = set(['observation/walker/egocentric_camera']) self.additional_paths = {} self._proprio_keys = [ 'walker/joints_vel', 'walker/sensors_velocimeter', 'walker/sensors_gyro', 'walker/joints_pos', 'walker/world_zaxis', 'walker/body_height', 'walker/sensors_accelerometer', 'walker/end_effectors_pos' ] self._shapes = { 'observation/walker/joints_vel': (56,), 'observation/walker/sensors_velocimeter': (3,), 'observation/walker/sensors_gyro': (3,), 'observation/walker/joints_pos': (56,), 'observation/walker/world_zaxis': (3,), 'observation/walker/body_height': (1,), 'observation/walker/sensors_accelerometer': (3,), 'observation/walker/end_effectors_pos': (12,), 'observation/walker/egocentric_camera': ( 64, 64, 3, ), 'action': (56,), 'discount': (), 'reward': (), 'episodic_reward': (), 'step_type': () } if task_name == 'humanoid_corridor': self._data_path = 'dm_locomotion/humanoid_corridor/seq2/train' elif task_name == 'humanoid_gaps': self._data_path = 'dm_locomotion/humanoid_gaps/seq2/train' elif task_name == 'humanoid_walls': self._data_path = 'dm_locomotion/humanoid_walls/seq40/train' else: raise ValueError('Task \'{}\' not found.'.format(task_name)) @staticmethod def get_pixel_keys(): return ('walker/egocentric_camera',) @property def uint8_features(self): return self._uint8_features @property def shapes(self): return self._shapes @property def data_path(self): return self._data_path @property def environment(self): """Build and return the environment.""" if self._task_name == 'humanoid_corridor': self._environment = _build_humanoid_corridor_env() elif self._task_name == 'humanoid_gaps': self._environment = _build_humanoid_corridor_gaps() elif self._task_name == 'humanoid_walls': self._environment = _build_humanoid_walls_env() self._environment = NormilizeActionSpecWrapper(self._environment) self._environment = MujocoActionNormalizer( environment=self._environment, rescale='clip') self._environment = wrappers.SinglePrecisionWrapper(self._environment) all_observations = list(self._proprio_keys) + list(self._pixel_keys) self._environment = FilterObservationsWrapper(self._environment, all_observations) return self._environment class Rodent: """Create bits needed to run agents on an Rodent dataset.""" def __init__(self, task_name='rodent_gaps'): # 'rodent_escape|rodent_two_touch|rodent_gaps|rodent_mazes' self._task_name = task_name self._pixel_keys = self.get_pixel_keys() self._uint8_features = set(['observation/walker/egocentric_camera']) self._proprio_keys = [ 'walker/joints_pos', 'walker/joints_vel', 'walker/tendons_pos', 'walker/tendons_vel', 'walker/appendages_pos', 'walker/world_zaxis', 'walker/sensors_accelerometer', 'walker/sensors_velocimeter', 'walker/sensors_gyro', 'walker/sensors_touch', ] self._shapes = { 'observation/walker/joints_pos': (30,), 'observation/walker/joints_vel': (30,), 'observation/walker/tendons_pos': (8,), 'observation/walker/tendons_vel': (8,), 'observation/walker/appendages_pos': (15,), 'observation/walker/world_zaxis': (3,), 'observation/walker/sensors_accelerometer': (3,), 'observation/walker/sensors_velocimeter': (3,), 'observation/walker/sensors_gyro': (3,), 'observation/walker/sensors_touch': (4,), 'observation/walker/egocentric_camera': (64, 64, 3), 'action': (38,), 'discount': (), 'reward': (), 'step_type': () } if task_name == 'rodent_gaps': self._data_path = 'dm_locomotion/rodent_gaps/seq2/train' elif task_name == 'rodent_escape': self._data_path = 'dm_locomotion/rodent_bowl_escape/seq2/train' elif task_name == 'rodent_two_touch': self._data_path = 'dm_locomotion/rodent_two_touch/seq40/train' elif task_name == 'rodent_mazes': self._data_path = 'dm_locomotion/rodent_mazes/seq40/train' else: raise ValueError('Task \'{}\' not found.'.format(task_name)) @staticmethod def get_pixel_keys(): return ('walker/egocentric_camera',) @property def shapes(self): return self._shapes @property def uint8_features(self): return self._uint8_features @property def data_path(self): return self._data_path @property def environment(self): """Return environment.""" if self._task_name == 'rodent_escape': self._environment = _build_rodent_escape_env() elif self._task_name == 'rodent_gaps': self._environment = _build_rodent_corridor_gaps() elif self._task_name == 'rodent_two_touch': self._environment = _build_rodent_two_touch_env() elif self._task_name == 'rodent_mazes': self._environment = _build_rodent_maze_env() self._environment = NormilizeActionSpecWrapper(self._environment) self._environment = MujocoActionNormalizer( environment=self._environment, rescale='clip') self._environment = wrappers.SinglePrecisionWrapper(self._environment) all_observations = list(self._proprio_keys) + list(self._pixel_keys) self._environment = FilterObservationsWrapper(self._environment, all_observations) return self._environment def _parse_seq_tf_example(example, uint8_features, shapes): """Parse tf.Example containing one or two episode steps.""" def to_feature(key, shape): if key in uint8_features: return tf.io.FixedLenSequenceFeature( shape=[], dtype=tf.string, allow_missing=True) else: return tf.io.FixedLenSequenceFeature( shape=shape, dtype=tf.float32, allow_missing=True) feature_map = {} for k, v in shapes.items(): feature_map[k] = to_feature(k, v) parsed = tf.io.parse_single_example(example, features=feature_map) observation = {} restructured = {} for k in parsed.keys(): if 'observation' not in k: restructured[k] = parsed[k] continue if k in uint8_features: observation[k.replace('observation/', '')] = tf.reshape( tf.io.decode_raw(parsed[k], out_type=tf.uint8), (-1,) + shapes[k]) else: observation[k.replace('observation/', '')] = parsed[k] restructured['observation'] = observation restructured['length'] = tf.shape(restructured['action'])[0] return restructured def _build_sequence_example(sequences): """Convert raw sequences into a Reverb sequence sample.""" data = adders.Step( observation=sequences['observation'], action=sequences['action'], reward=sequences['reward'], discount=sequences['discount'], start_of_episode=(), extras=()) info = reverb.SampleInfo( key=tf.constant(0, tf.uint64), probability=tf.constant(1.0, tf.float64), table_size=tf.constant(0, tf.int64), priority=tf.constant(1.0, tf.float64), times_sampled=tf.constant(1.0, tf.int32)) return reverb.ReplaySample(info=info, data=data) def _build_sarsa_example(sequences): """Convert raw sequences into a Reverb n-step SARSA sample.""" o_tm1 = tree.map_structure(lambda t: t[0], sequences['observation']) o_t = tree.map_structure(lambda t: t[1], sequences['observation']) a_tm1 = tree.map_structure(lambda t: t[0], sequences['action']) a_t = tree.map_structure(lambda t: t[1], sequences['action']) r_t = tree.map_structure(lambda t: t[0], sequences['reward']) p_t = tree.map_structure(lambda t: t[0], sequences['discount']) info = reverb.SampleInfo( key=tf.constant(0, tf.uint64), probability=tf.constant(1.0, tf.float64), table_size=tf.constant(0, tf.int64), priority=tf.constant(1.0, tf.float64), times_sampled=tf.constant(1.0, tf.int32)) return reverb.ReplaySample(info=info, data=(o_tm1, a_tm1, r_t, p_t, o_t, a_t)) def _padded_batch(example_ds, batch_size, shapes, drop_remainder=False): """Batch data while handling unequal lengths.""" padded_shapes = {} padded_shapes['observation'] = {} for k, v in shapes.items(): if 'observation' in k: padded_shapes['observation'][ k.replace('observation/', '')] = (-1,) + v else: padded_shapes[k] = (-1,) + v padded_shapes['length'] = () return example_ds.padded_batch(batch_size, padded_shapes=padded_shapes, drop_remainder=drop_remainder) def dataset(root_path: str, data_path: str, shapes: Dict[str, Tuple[int]], num_threads: int, batch_size: int, uint8_features: Optional[Set[str]] = None, num_shards: int = 100, shuffle_buffer_size: int = 100000, sarsa: bool = True) -> tf.data.Dataset: """Create tf dataset for training.""" uint8_features = uint8_features if uint8_features else {} path = os.path.join(root_path, data_path) filenames = [f'{path}-{i:05d}-of-{num_shards:05d}' for i in range(num_shards)] file_ds = tf.data.Dataset.from_tensor_slices(filenames) file_ds = file_ds.repeat().shuffle(num_shards) example_ds = file_ds.interleave( functools.partial(tf.data.TFRecordDataset, compression_type='GZIP'), cycle_length=tf.data.experimental.AUTOTUNE, block_length=5) example_ds = example_ds.shuffle(shuffle_buffer_size) def map_func(example): example = _parse_seq_tf_example(example, uint8_features, shapes) return example example_ds = example_ds.map(map_func, num_parallel_calls=num_threads) example_ds = example_ds.repeat().shuffle(batch_size * 10) if sarsa: example_ds = example_ds.map( _build_sarsa_example, num_parallel_calls=tf.data.experimental.AUTOTUNE) example_ds.batch(batch_size) else: example_ds = _padded_batch( example_ds, batch_size, shapes, drop_remainder=True) example_ds = example_ds.map( _build_sequence_example, num_parallel_calls=tf.data.experimental.AUTOTUNE) example_ds = example_ds.prefetch(tf.data.experimental.AUTOTUNE) return example_ds ================================================ FILE: rl_unplugged/dm_control_suite_crr.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KDiJzbb8KFvP" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zzJlIvx4tnrM" }, "source": [ "# RL Unplugged: CRR agent with GPU/TPU support - DM control\n", "\n", "## Guide to training an Acme CRR agent on DM control data.\n", "# \u003ca href=\"https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/rl_unplugged/dm_control_suite_crr.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "o1eig5zGEL4y" }, "source": [ "## Installation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "WbpMoLbgEL41" }, "outputs": [], "source": [ "!pip install git+https://github.com/deepmind/acme.git#egg=dm-acme\n", "!pip install dm-acme[reverb]\n", "!pip install dm-acme[tf]\n", "!pip install dm-sonnet\n", "!git clone https://github.com/deepmind/deepmind-research.git\n", "%cd deepmind-research" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "04bMANoeEPM3" }, "source": [ "### dm_control\n", "\n", "More detailed instructions in [this tutorial](https://colab.research.google.com/github/deepmind/dm_control/blob/master/tutorial.ipynb#scrollTo=YvyGCsgSCxHQ)." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "VEEj3Qw60y73" }, "source": [ "#### Institutional MuJoCo license." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "IbZxYDxzoz5R" }, "outputs": [], "source": [ "#@title Edit and run\n", "mjkey = \"\"\"\n", "\n", "REPLACE THIS LINE WITH YOUR MUJOCO LICENSE KEY\n", "\n", "\"\"\".strip()\n", "\n", "mujoco_dir = \"$HOME/.mujoco\"\n", "\n", "# Install OpenGL deps\n", "!apt-get update \u0026\u0026 apt-get install -y --no-install-recommends \\\n", " libgl1-mesa-glx libosmesa6 libglew2.0\n", "\n", "# Fetch MuJoCo binaries from Roboti\n", "!wget -q https://www.roboti.us/download/mujoco200_linux.zip -O mujoco.zip\n", "!unzip -o -q mujoco.zip -d \"$mujoco_dir\"\n", "\n", "# Copy over MuJoCo license\n", "!echo \"$mjkey\" \u003e \"$mujoco_dir/mjkey.txt\"\n", "\n", "\n", "# Configure dm_control to use the OSMesa rendering backend\n", "%env MUJOCO_GL=osmesa\n", "\n", "# Install dm_control\n", "!pip install dm_control" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-_7tVg-zzjzW" }, "source": [ "#### Machine-locked MuJoCo license." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "OvMLEDE-D9oF" }, "outputs": [], "source": [ "#@title Add your MuJoCo License and run\n", "mjkey = \"\"\"\n", "\"\"\".strip()\n", "\n", "mujoco_dir = \"$HOME/.mujoco\"\n", "\n", "# Install OpenGL dependencies\n", "!apt-get update \u0026\u0026 apt-get install -y --no-install-recommends \\\n", " libgl1-mesa-glx libosmesa6 libglew2.0\n", "\n", "# Get MuJoCo binaries\n", "!wget -q https://www.roboti.us/download/mujoco200_linux.zip -O mujoco.zip\n", "!unzip -o -q mujoco.zip -d \"$mujoco_dir\"\n", "\n", "# Copy over MuJoCo license\n", "!echo \"$mjkey\" \u003e \"$mujoco_dir/mjkey.txt\"\n", "\n", "# Install dm_control\n", "!pip install dm_control[locomotion_mazes]\n", "\n", "# Configure dm_control to use the OSMesa rendering backend\n", "%env MUJOCO_GL=osmesa" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "IE2nV9Hivnv5" }, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "RI7NgnJIvs4s" }, "outputs": [], "source": [ "import copy\n", "from typing import Sequence\n", "import acme\n", "from acme import specs\n", "from acme.agents.tf import actors\n", "from acme.agents.tf import crr\n", "from acme.tf import networks as acme_networks\n", "from acme.tf import utils as tf2_utils\n", "from acme.utils import loggers\n", "import numpy as np\n", "from rl_unplugged import dm_control_suite\n", "from rl_unplugged import networks\n", "import sonnet as snt\n", "import tensorflow as tf" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "a2PCwF3bwBII" }, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "VaEJbXjampPy" }, "outputs": [], "source": [ "task_name = 'cartpole_swingup' #@param\n", "gs_path = 'gs://rl_unplugged/dm_control_suite'\n", "\n", "num_shards_str, = !gsutil ls {gs_path}/{task_name}/* | wc -l\n", "num_shards = int(num_shards_str)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mQ1as51Mww7X" }, "source": [ "## Dataset and environment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "5kHzJpfcw306" }, "outputs": [], "source": [ "batch_size = 256 #@param\n", "\n", "task = dm_control_suite.ControlSuite(task_name)\n", "\n", "environment = task.environment\n", "environment_spec = specs.make_environment_spec(environment)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "T2wd9sHeGrD-" }, "source": [ "## Networks" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Gc2Qsdi7GpCI" }, "outputs": [], "source": [ "def make_networks(\n", " action_spec: specs.BoundedArray,\n", " policy_lstm_sizes: Sequence[int] = None,\n", " critic_lstm_sizes: Sequence[int] = None,\n", " num_components: int = 5,\n", " vmin: float = 0.,\n", " vmax: float = 100.,\n", " num_atoms: int = 21,\n", "):\n", " \"\"\"Creates recurrent networks with GMM head used by the agents.\"\"\"\n", "\n", " action_size = np.prod(action_spec.shape, dtype=int)\n", " actor_head = acme_networks.MultivariateGaussianMixture(\n", " num_components=num_components, num_dimensions=action_size)\n", "\n", " if policy_lstm_sizes is None:\n", " policy_lstm_sizes = [1024, 1024]\n", " if critic_lstm_sizes is None:\n", " critic_lstm_sizes = [1024, 1024]\n", "\n", " actor_neck = acme_networks.LayerNormAndResidualMLP(hidden_size=1024,\n", " num_blocks=4)\n", " actor_encoder = networks.ControlNetwork(\n", " proprio_encoder_size=300,\n", " activation=tf.nn.relu)\n", "\n", " policy_lstms = [snt.LSTM(s) for s in policy_lstm_sizes]\n", "\n", " policy_network = snt.DeepRNN([actor_encoder, actor_neck] + policy_lstms +\n", " [actor_head])\n", "\n", " critic_encoder = networks.ControlNetwork(\n", " proprio_encoder_size=400,\n", " activation=tf.nn.relu)\n", " critic_neck = acme_networks.LayerNormAndResidualMLP(\n", " hidden_size=1024, num_blocks=4)\n", " distributional_head = acme_networks.DiscreteValuedHead(\n", " vmin=vmin, vmax=vmax, num_atoms=num_atoms)\n", " critic_lstms = [snt.LSTM(s) for s in critic_lstm_sizes]\n", " critic_network = acme_networks.CriticDeepRNN([critic_encoder, critic_neck] +\n", " critic_lstms + [\n", " distributional_head,\n", " ])\n", "\n", " return {\n", " 'policy': policy_network,\n", " 'critic': critic_network,\n", " }" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zL1fAYN8GvCf" }, "source": [ "## Set up TPU if present" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "V3fQxmeiGtrQ" }, "outputs": [], "source": [ "try:\n", " tpu = tf.distribute.cluster_resolver.TPUClusterResolver() # TPU detection\n", " tf.config.experimental_connect_to_cluster(tpu)\n", " tf.tpu.experimental.initialize_tpu_system(tpu)\n", " accelerator_strategy = snt.distribute.TpuReplicator()\n", " print('Running on TPU ', tpu.cluster_spec().as_dict()['worker'])\n", "except ValueError:\n", " print('Running on CPU or GPU (no TPUs available)')\n", " accelerator_strategy = snt.distribute.Replicator()\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "adb0cyE5qu9G" }, "source": [ "## CRR learner" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "83naOY7a_A4I" }, "outputs": [], "source": [ "action_spec = environment_spec.actions\n", "action_size = np.prod(action_spec.shape, dtype=int)\n", "\n", "with accelerator_strategy.scope():\n", " dataset = dm_control_suite.dataset(\n", " 'gs://rl_unplugged/',\n", " data_path=task.data_path,\n", " shapes=task.shapes,\n", " uint8_features=task.uint8_features,\n", " num_threads=1,\n", " batch_size=batch_size,\n", " num_shards=num_shards,\n", " sarsa=False)\n", " # CRR learner assumes that the dataset samples don't have metadata,\n", " # so let's remove it here.\n", " dataset = dataset.map(lambda sample: sample.data)\n", " nets = make_networks(action_spec)\n", " policy_network, critic_network = nets['policy'], nets['critic']\n", "\n", " # Create the target networks\n", " target_policy_network = copy.deepcopy(policy_network)\n", " target_critic_network = copy.deepcopy(critic_network)\n", "\n", " # Create variables.\n", " tf2_utils.create_variables(network=policy_network,\n", " input_spec=[environment_spec.observations])\n", " tf2_utils.create_variables(network=critic_network,\n", " input_spec=[environment_spec.observations,\n", " environment_spec.actions])\n", " tf2_utils.create_variables(network=target_policy_network,\n", " input_spec=[environment_spec.observations])\n", " tf2_utils.create_variables(network=target_critic_network,\n", " input_spec=[environment_spec.observations,\n", " environment_spec.actions])\n", "\n", "# The learner updates the parameters (and initializes them).\n", "learner = crr.RCRRLearner(\n", " policy_network=policy_network,\n", " critic_network=critic_network,\n", " accelerator_strategy=accelerator_strategy,\n", " target_policy_network=target_policy_network,\n", " target_critic_network=target_critic_network,\n", " dataset=dataset,\n", " discount=0.99,\n", " target_update_period=100)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "PYkjKaduy_xj" }, "source": [ "## Training loop" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "HbQOyCG4zCwa" }, "outputs": [], "source": [ "# Run\n", "# tf.config.run_functions_eagerly(True)\n", "# if you want to debug the code in eager mode.\n", "\n", "for _ in range(100):\n", " learner.step()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LJ_XsuQSzFSV" }, "source": [ "## Evaluation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "blvNCANKb22J" }, "outputs": [], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='evaluation', time_delta=1.)\n", "\n", "# Create an environment loop.\n", "loop = acme.EnvironmentLoop(\n", " environment=environment,\n", " actor=actors.DeprecatedRecurrentActor(policy_network),\n", " logger=logger)\n", "\n", "loop.run(5)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "", "kind": "local" }, "name": "RL Unplugged: Offline CRR - DM control", "provenance": [ { "file_id": "1OerSIsTjv4d3rQCjAsi0ljPaLan87juJ", "timestamp": 1593080049369 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rl_unplugged/dm_control_suite_d4pg.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KDiJzbb8KFvP" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zzJlIvx4tnrM" }, "source": [ "# RL Unplugged: Offline D4PG - DM control\n", "\n", "## Guide to training an Acme D4PG agent on DM control data.\n", "# \u003ca href=\"https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/rl_unplugged/dm_control_suite_d4pg.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "o1eig5zGEL4y" }, "source": [ "## Installation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "WbpMoLbgEL41" }, "outputs": [], "source": [ "!pip install dm-acme\n", "!pip install dm-acme[reverb]\n", "!pip install dm-acme[tf]\n", "!pip install dm-sonnet\n", "!git clone https://github.com/deepmind/deepmind-research.git\n", "%cd deepmind-research" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "04bMANoeEPM3" }, "source": [ "### dm_control\n", "\n", "More detailed instructions in [this tutorial](https://colab.research.google.com/github/deepmind/dm_control/blob/master/tutorial.ipynb#scrollTo=YvyGCsgSCxHQ)." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "VEEj3Qw60y73" }, "source": [ "#### Institutional MuJoCo license." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "IbZxYDxzoz5R" }, "outputs": [], "source": [ "#@title Edit and run\n", "mjkey = \"\"\"\n", "\n", "REPLACE THIS LINE WITH YOUR MUJOCO LICENSE KEY\n", "\n", "\"\"\".strip()\n", "\n", "mujoco_dir = \"$HOME/.mujoco\"\n", "\n", "# Install OpenGL deps\n", "!apt-get update \u0026\u0026 apt-get install -y --no-install-recommends \\\n", " libgl1-mesa-glx libosmesa6 libglew2.0\n", "\n", "# Fetch MuJoCo binaries from Roboti\n", "!wget -q https://www.roboti.us/download/mujoco200_linux.zip -O mujoco.zip\n", "!unzip -o -q mujoco.zip -d \"$mujoco_dir\"\n", "\n", "# Copy over MuJoCo license\n", "!echo \"$mjkey\" \u003e \"$mujoco_dir/mjkey.txt\"\n", "\n", "\n", "# Configure dm_control to use the OSMesa rendering backend\n", "%env MUJOCO_GL=osmesa\n", "\n", "# Install dm_control\n", "!pip install dm_control" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-_7tVg-zzjzW" }, "source": [ "#### Machine-locked MuJoCo license." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "OvMLEDE-D9oF" }, "outputs": [], "source": [ "#@title Add your MuJoCo License and run\n", "mjkey = \"\"\"\n", "\"\"\".strip()\n", "\n", "mujoco_dir = \"$HOME/.mujoco\"\n", "\n", "# Install OpenGL dependencies\n", "!apt-get update \u0026\u0026 apt-get install -y --no-install-recommends \\\n", " libgl1-mesa-glx libosmesa6 libglew2.0\n", "\n", "# Get MuJoCo binaries\n", "!wget -q https://www.roboti.us/download/mujoco200_linux.zip -O mujoco.zip\n", "!unzip -o -q mujoco.zip -d \"$mujoco_dir\"\n", "\n", "# Copy over MuJoCo license\n", "!echo \"$mjkey\" \u003e \"$mujoco_dir/mjkey.txt\"\n", "\n", "# Install dm_control\n", "!pip install dm_control[locomotion_mazes]\n", "\n", "# Configure dm_control to use the OSMesa rendering backend\n", "%env MUJOCO_GL=osmesa" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "IE2nV9Hivnv5" }, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "RI7NgnJIvs4s" }, "outputs": [], "source": [ "import collections\n", "import copy\n", "from typing import Mapping, Sequence\n", "\n", "import acme\n", "from acme import specs\n", "from acme.agents.tf import actors\n", "from acme.agents.tf import d4pg\n", "from acme.tf import networks\n", "from acme.tf import utils as tf2_utils\n", "from acme.utils import loggers\n", "from acme.wrappers import single_precision\n", "from acme.tf import utils as tf2_utils\n", "import numpy as np\n", "from rl_unplugged import dm_control_suite\n", "import sonnet as snt\n", "import tensorflow as tf" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "a2PCwF3bwBII" }, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "VaEJbXjampPy" }, "outputs": [], "source": [ "task_name = 'cartpole_swingup' #@param\n", "tmp_path = '/tmp/dm_control_suite'\n", "gs_path = 'gs://rl_unplugged/dm_control_suite'\n", "\n", "!mkdir -p {tmp_path}/{task_name}\n", "!gsutil cp {gs_path}/{task_name}/* {tmp_path}/{task_name}\n", "\n", "num_shards_str, = !ls {tmp_path}/{task_name}/* | wc -l\n", "num_shards = int(num_shards_str)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mQ1as51Mww7X" }, "source": [ "## Dataset and environment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "5kHzJpfcw306" }, "outputs": [], "source": [ "batch_size = 10 #@param\n", "\n", "task = dm_control_suite.ControlSuite(task_name)\n", "\n", "environment = task.environment\n", "environment_spec = specs.make_environment_spec(environment)\n", "\n", "dataset = dm_control_suite.dataset(\n", " '/tmp',\n", " data_path=task.data_path,\n", " shapes=task.shapes,\n", " uint8_features=task.uint8_features,\n", " num_threads=1,\n", " batch_size=batch_size,\n", " num_shards=num_shards)\n", "\n", "def discard_extras(sample):\n", " return sample._replace(data=sample.data[:5])\n", "\n", "dataset = dataset.map(discard_extras).batch(batch_size)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "adb0cyE5qu9G" }, "source": [ "## D4PG learner" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "83naOY7a_A4I" }, "outputs": [], "source": [ "# Create the networks to optimize.\n", "action_spec = environment_spec.actions\n", "action_size = np.prod(action_spec.shape, dtype=int)\n", "\n", "policy_network = snt.Sequential([\n", " tf2_utils.batch_concat,\n", " networks.LayerNormMLP(layer_sizes=(300, 200, action_size)),\n", " networks.TanhToSpec(spec=environment_spec.actions)])\n", "\n", "critic_network = snt.Sequential([\n", " networks.CriticMultiplexer(\n", " observation_network=tf2_utils.batch_concat,\n", " action_network=tf.identity,\n", " critic_network=networks.LayerNormMLP(\n", " layer_sizes=(400, 300),\n", " activate_final=True)),\n", " # Value-head gives a 51-atomed delta distribution over state-action values.\n", " networks.DiscreteValuedHead(vmin=-150., vmax=150., num_atoms=51)])\n", "\n", "# Create the target networks\n", "target_policy_network = copy.deepcopy(policy_network)\n", "target_critic_network = copy.deepcopy(critic_network)\n", "\n", "# Create variables.\n", "tf2_utils.create_variables(network=policy_network,\n", " input_spec=[environment_spec.observations])\n", "tf2_utils.create_variables(network=critic_network,\n", " input_spec=[environment_spec.observations,\n", " environment_spec.actions])\n", "tf2_utils.create_variables(network=target_policy_network,\n", " input_spec=[environment_spec.observations])\n", "tf2_utils.create_variables(network=target_critic_network,\n", " input_spec=[environment_spec.observations,\n", " environment_spec.actions])\n", "\n", "# The learner updates the parameters (and initializes them).\n", "learner = d4pg.D4PGLearner(\n", " policy_network=policy_network,\n", " critic_network=critic_network,\n", " target_policy_network=target_policy_network,\n", " target_critic_network=target_critic_network,\n", " dataset=dataset,\n", " discount=0.99,\n", " target_update_period=100)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "PYkjKaduy_xj" }, "source": [ "## Training loop" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 3493, "status": "ok", "timestamp": 1593622068277, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "HbQOyCG4zCwa", "outputId": "cfb99d00-da2d-4ce8-e010-034a26e2ada0" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Learner] Critic Loss = 3.919 | Policy Loss = 0.326 | Steps = 1 | Walltime = 0\n" ] } ], "source": [ "for _ in range(100):\n", " learner.step()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LJ_XsuQSzFSV" }, "source": [ "## Evaluation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 51 }, "colab_type": "code", "executionInfo": { "elapsed": 4197, "status": "ok", "timestamp": 1593620604870, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "blvNCANKb22J", "outputId": "af5ae073-9847-45cc-e51e-a803fc2148b0" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Evaluation] Episode Length = 1000 | Episode Return = 129.717 | Episodes = 2 | Steps = 2000 | Steps Per Second = 1480.399\n", "[Evaluation] Episode Length = 1000 | Episode Return = 34.790 | Episodes = 4 | Steps = 4000 | Steps Per Second = 1449.009\n" ] } ], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='evaluation', time_delta=1.)\n", "\n", "# Create an environment loop.\n", "loop = acme.EnvironmentLoop(\n", " environment=environment,\n", " actor=actors.DeprecatedFeedForwardActor(policy_network),\n", " logger=logger)\n", "\n", "loop.run(5)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "last_runtime": { "build_target": "", "kind": "local" }, "name": "RL Unplugged: Offline D4PG - DM control", "provenance": [ { "file_id": "1OerSIsTjv4d3rQCjAsi0ljPaLan87juJ", "timestamp": 1593080049369 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rl_unplugged/dm_control_suite_example.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. r"""DM control suite and locomotion dataset examples. Example: Instructions: > export TMP_PATH=/tmp/dataset > export TASK_NAME=humanoid_run > mkdir -p $TMP_PATH/$TASK_NAME > gsutil cp gs://rl_unplugged/dm_control_suite/$TASK_NAME/train-00000-of-00100 \ $TMP_PATH/dm_control_suite/$TASK_NAME/train-00000-of-00001 > python dm_control_suite_example.py --path=$TMP_PATH \ --task_class=control_suite --task_name=$TASK_NAME """ from absl import app from absl import flags import tree from rl_unplugged import dm_control_suite flags.DEFINE_string('path', '/tmp/dataset', 'Path to dataset.') flags.DEFINE_string('task_name', 'humanoid_run', 'Game.') flags.DEFINE_enum('task_class', 'control_suite', ['humanoid', 'rodent', 'control_suite'], 'Task classes.') FLAGS = flags.FLAGS def main(_): if FLAGS.task_class == 'control_suite': task = dm_control_suite.ControlSuite(task_name=FLAGS.task_name) elif FLAGS.task_class == 'humanoid': task = dm_control_suite.CmuThirdParty(task_name=FLAGS.task_name) elif FLAGS.task_class == 'rodent': task = dm_control_suite.Rodent(task_name=FLAGS.task_name) ds = dm_control_suite.dataset(root_path=FLAGS.path, data_path=task.data_path, shapes=task.shapes, num_threads=1, batch_size=2, uint8_features=task.uint8_features, num_shards=1, shuffle_buffer_size=10) for sample in ds.take(1): print('Data spec') print(tree.map_structure(lambda x: (x.dtype, x.shape), sample.data)) environment = task.environment timestep = environment.reset() print(tree.map_structure(lambda x: (x.dtype, x.shape), timestep.observation)) if __name__ == '__main__': app.run(main) ================================================ FILE: rl_unplugged/dmlab_r2d2.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "id": "pdgOfM42e7in" }, "source": [ "Copyright 2021 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "WOzmAie8e-NK" }, "source": [ "# RL Unplugged: Offline R2D2 - DeepMind Lab\n", "\n", "## A Colab example of an Acme R2D2 agent on DeepMind Lab data.\n", "# \u003ca href=\"https://colab.research.google.com/github/deepmind/deepmind_research/blob/master/rl_unplugged/dmlab_r2d2.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n" ] }, { "cell_type": "markdown", "metadata": { "id": "tr2MoADAQepq" }, "source": [ "## Installation\n" ] }, { "cell_type": "markdown", "metadata": { "id": "SvWeEWGd5Nx_" }, "source": [ "### External dependencies" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "fTuqZxDv4v0y" }, "outputs": [], "source": [ "!apt-get install libsdl2-dev\n", "!apt-get install libosmesa6-dev\n", "!apt-get install libffi-dev\n", "!apt-get install gettext\n", "!apt-get install python3-numpy-dev python3-dev" ] }, { "cell_type": "markdown", "metadata": { "id": "ewPoBUDd04xh" }, "source": [ "### Bazel" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ewVV3-Oh0sBm" }, "outputs": [], "source": [ "BAZEL_VERSION = '3.6.0'\n", "!wget https://github.com/bazelbuild/bazel/releases/download/{BAZEL_VERSION}/bazel-{BAZEL_VERSION}-installer-linux-x86_64.sh\n", "!chmod +x bazel-{BAZEL_VERSION}-installer-linux-x86_64.sh\n", "!./bazel-{BAZEL_VERSION}-installer-linux-x86_64.sh\n", "!bazel --version" ] }, { "cell_type": "markdown", "metadata": { "id": "fwdmJWW3KB7g" }, "source": [ "### DeepMind Lab" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Ng9xopirzVYA" }, "outputs": [], "source": [ "!git clone https://github.com/deepmind/lab.git" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "NeO57QYqDG-L" }, "outputs": [], "source": [ "%%writefile lab/bazel/python.BUILD\n", "\n", "# Description:\n", "# Build rule for Python and Numpy.\n", "# This rule works for Debian and Ubuntu. Other platforms might keep the\n", "# headers in different places, cf. 'How to build DeepMind Lab' in build.md.\n", "\n", "cc_library(\n", " name = \"python\",\n", " hdrs = select(\n", " {\n", " \"@bazel_tools//tools/python:PY3\": glob([\n", " \"usr/include/python3.6m/*.h\",\n", " \"usr/local/lib/python3.6/dist-packages/numpy/core/include/numpy/*.h\",\n", " ]),\n", " },\n", " no_match_error = \"Internal error, Python version should be one of PY2 or PY3\",\n", " ),\n", " includes = select(\n", " {\n", " \"@bazel_tools//tools/python:PY3\": [\n", " \"usr/include/python3.6m\",\n", " \"usr/local/lib/python3.6/dist-packages/numpy/core/include\",\n", " ],\n", " },\n", " no_match_error = \"Internal error, Python version should be one of PY2 or PY3\",\n", " ),\n", " visibility = [\"//visibility:public\"],\n", ")\n", "\n", "alias(\n", " name = \"python_headers\",\n", " actual = \":python\",\n", " visibility = [\"//visibility:public\"],\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "pRuLCRzpzX8E" }, "outputs": [], "source": [ "!cd lab \u0026\u0026 bazel build -c opt --python_version=PY3 //python/pip_package:build_pip_package" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Oen2E99T0E58" }, "outputs": [], "source": [ "!cd lab \u0026\u0026 ./bazel-bin/python/pip_package/build_pip_package /tmp/dmlab_pkg" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "okrzzmrC0H_O" }, "outputs": [], "source": [ "!pip install /tmp/dmlab_pkg/deepmind_lab-1.0-py3-none-any.whl --force-reinstall" ] }, { "cell_type": "markdown", "metadata": { "id": "hq-VGgvbRKSI" }, "source": [ "### Python dependencies" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "8Fme7zxOKejg" }, "outputs": [], "source": [ "!pip install dm_env\n", "!pip install dm-acme[reverb]\n", "!pip install dm-acme[tf]\n", "!pip install dm-sonnet" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Rfd4jQGFt-HB" }, "outputs": [], "source": [ "# Upgrade to recent commit for latest R2D2 learner.\n", "!pip install --upgrade git+https://github.com/deepmind/acme.git@3dfda9d392312d948906e6c567c7f56d8c911de5" ] }, { "cell_type": "markdown", "metadata": { "id": "DvicrJPBqemz" }, "source": [ "## Imports and Utils" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "_8qxA0KLU468" }, "outputs": [], "source": [ "# @title Imports\n", "import copy\n", "import functools\n", "\n", "from acme import environment_loop\n", "from acme import specs\n", "from acme.adders import reverb as acme_reverb\n", "from acme.agents.tf import actors\n", "from acme.agents.tf.r2d2 import learning as r2d2\n", "from acme.tf import utils as tf_utils\n", "from acme.tf import networks\n", "from acme.utils import loggers\n", "from acme.wrappers import observation_action_reward\n", "import tree\n", "\n", "import deepmind_lab\n", "import dm_env\n", "import numpy as np\n", "import reverb\n", "import sonnet as snt\n", "import tensorflow as tf\n", "import trfl" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "becmQVMMuCRU" }, "outputs": [], "source": [ "# @title Environment\n", "\n", "_ACTION_MAP = {\n", " 0: (0, 0, 0, 1, 0, 0, 0),\n", " 1: (0, 0, 0, -1, 0, 0, 0),\n", " 2: (0, 0, -1, 0, 0, 0, 0),\n", " 3: (0, 0, 1, 0, 0, 0, 0),\n", " 4: (-10, 0, 0, 0, 0, 0, 0),\n", " 5: (10, 0, 0, 0, 0, 0, 0),\n", " 6: (-60, 0, 0, 0, 0, 0, 0),\n", " 7: (60, 0, 0, 0, 0, 0, 0),\n", " 8: (0, 10, 0, 0, 0, 0, 0),\n", " 9: (0, -10, 0, 0, 0, 0, 0),\n", " 10: (-10, 0, 0, 1, 0, 0, 0),\n", " 11: (10, 0, 0, 1, 0, 0, 0),\n", " 12: (-60, 0, 0, 1, 0, 0, 0),\n", " 13: (60, 0, 0, 1, 0, 0, 0),\n", " 14: (0, 0, 0, 0, 1, 0, 0),\n", "}\n", "\n", "class DeepMindLabEnvironment(dm_env.Environment):\n", " \"\"\"DeepMind Lab environment.\"\"\"\n", "\n", " def __init__(self, level_name: str, action_repeats: int = 4):\n", " \"\"\"Construct environment.\n", "\n", " Args:\n", " level_name: DeepMind lab level name (e.g. 'rooms_watermaze').\n", " action_repeats: Number of times the same action is repeated on every\n", " step().\n", " \"\"\"\n", " config = dict(fps='30',\n", " height='72',\n", " width='96',\n", " maxAltCameraHeight='1',\n", " maxAltCameraWidth='1',\n", " hasAltCameras='false')\n", "\n", " # seekavoid_arena_01 is not part of dmlab30.\n", " if level_name != 'seekavoid_arena_01':\n", " level_name = 'contributed/dmlab30/{}'.format(level_name)\n", "\n", " self._lab = deepmind_lab.Lab(level_name, ['RGB_INTERLEAVED'], config)\n", " self._action_repeats = action_repeats\n", " self._reward = 0\n", "\n", " def _observation(self):\n", " last_action = getattr(self, '_action', 0)\n", " last_reward = getattr(self, '_reward', 0)\n", " self._last_observation = observation_action_reward.OAR(\n", " observation=self._lab.observations()['RGB_INTERLEAVED'],\n", " action=np.array(last_action, dtype=np.int64),\n", " reward=np.array(last_reward, dtype=np.float32))\n", " return self._last_observation\n", "\n", " def reset(self):\n", " self._lab.reset()\n", " return dm_env.restart(self._observation())\n", "\n", " def step(self, action):\n", " if not self._lab.is_running():\n", " return dm_env.restart(self.reset())\n", "\n", " self._action = action.item()\n", " if self._action not in _ACTION_MAP:\n", " raise ValueError('Action not available')\n", " lab_action = np.array(_ACTION_MAP[self._action], dtype=np.intc)\n", " self._reward = self._lab.step(lab_action, num_steps=self._action_repeats)\n", "\n", " if self._lab.is_running():\n", " return dm_env.transition(self._reward, self._observation())\n", " return dm_env.termination(self._reward, self._last_observation)\n", "\n", " def observation_spec(self):\n", " return observation_action_reward.OAR(\n", " observation=dm_env.specs.Array(shape=(72, 96, 3), dtype=np.uint8),\n", " action=dm_env.specs.Array(shape=(), dtype=np.int64),\n", " reward=dm_env.specs.Array(shape=(), dtype=np.float32))\n", "\n", " def action_spec(self):\n", " return dm_env.specs.DiscreteArray(num_values=15, dtype=np.int64)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "4ms1TBjDSXr0" }, "outputs": [], "source": [ "# @title Dataset\n", "\n", "def _decode_images(pngs):\n", " \"\"\"Decode tensor of PNGs.\"\"\"\n", " decode_rgb_png = functools.partial(tf.io.decode_png, channels=3)\n", " images = tf.map_fn(decode_rgb_png, pngs, dtype=tf.uint8,\n", " parallel_iterations=10)\n", " # [N, 72, 96, 3]\n", " images.set_shape((pngs.shape[0], 72, 96, 3))\n", " return images\n", "\n", "def _tf_example_to_step_ds(tf_example: tf.train.Example,\n", " episode_length: int) -\u003e reverb.ReplaySample:\n", " \"\"\"Create a Reverb replay sample from a TF example.\"\"\"\n", "\n", " # Parse tf.Example.\n", " def sequence_feature(shape, dtype=tf.float32):\n", " return tf.io.FixedLenFeature(shape=[episode_length] + shape, dtype=dtype)\n", "\n", " feature_description = {\n", " 'episode_id': tf.io.FixedLenFeature([], tf.int64),\n", " 'start_idx': tf.io.FixedLenFeature([], tf.int64),\n", " 'episode_return': tf.io.FixedLenFeature([], tf.float32),\n", " 'observations_pixels': sequence_feature([], tf.string),\n", " 'observations_reward': sequence_feature([]),\n", " # actions are one-hot arrays.\n", " 'observations_action': sequence_feature([15]),\n", " 'actions': sequence_feature([], tf.int64),\n", " 'rewards': sequence_feature([]),\n", " 'discounted_rewards': sequence_feature([]),\n", " 'discounts': sequence_feature([]),\n", " }\n", "\n", " data = tf.io.parse_single_example(tf_example, feature_description)\n", " pixels = _decode_images(data['observations_pixels'])\n", "\n", " observation = observation_action_reward.OAR(\n", " observation=pixels,\n", " action=tf.argmax(data['observations_action'],\n", " axis=1, output_type=tf.int64),\n", " reward=data['observations_reward'])\n", "\n", " data = acme_reverb.Step(\n", " observation=observation,\n", " action=data['actions'],\n", " reward=data['rewards'],\n", " discount=data['discounts'],\n", " start_of_episode=tf.zeros((episode_length,), tf.bool),\n", " extras={})\n", "\n", " # Keys are all zero and probabilities are all one.\n", " info = reverb.SampleInfo(key=tf.zeros((episode_length,), tf.int64),\n", " probability=tf.ones((episode_length,), tf.float32),\n", " table_size=tf.zeros((episode_length,), tf.int64),\n", " priority=tf.ones((episode_length,), tf.float32))\n", " sample = reverb.ReplaySample(info=info, data=data)\n", " return tf.data.Dataset.from_tensor_slices(sample)\n", "\n", "def subsequences(step_ds: tf.data.Dataset,\n", " length: int, shift: int = 1\n", " ) -\u003e tf.data.Dataset:\n", " \"\"\"Dataset of subsequences from a dataset of episode steps.\"\"\"\n", " window_ds = step_ds.window(length, shift=shift, stride=1)\n", " return window_ds.interleave(_nest_ds).batch(length, drop_remainder=True)\n", "\n", "\n", "def _nest_ds(nested_ds: tf.data.Dataset) -\u003e tf.data.Dataset:\n", " \"\"\"Produces a dataset of nests from a nest of datasets of the same size.\"\"\"\n", " flattened_ds = tuple(tree.flatten(nested_ds))\n", " zipped_ds = tf.data.Dataset.zip(flattened_ds)\n", " return zipped_ds.map(lambda *x: tree.unflatten_as(nested_ds, x))\n", "\n", "\n", "def make_dataset(path: str,\n", " episode_length: int,\n", " sequence_length: int,\n", " sequence_shift: int,\n", " num_shards: int = 500) -\u003e tf.data.Dataset:\n", " \"\"\"Create dataset of DeepMind Lab sequences.\"\"\"\n", "\n", " filenames = [f'{path}/tfrecord-{i:05d}-of-{num_shards:05d}'\n", " for i in range(num_shards)]\n", " file_ds = tf.data.Dataset.from_tensor_slices(filenames)\n", " file_ds = file_ds.repeat().shuffle(num_shards)\n", " tfrecord_dataset = functools.partial(tf.data.TFRecordDataset,\n", " compression_type='GZIP')\n", "\n", " # Dataset of tf.Examples containing full episodes.\n", " example_ds = file_ds.interleave(tfrecord_dataset)\n", "\n", " # Dataset of episodes, each represented as a dataset of steps.\n", " _tf_example_to_step_ds_with_length = functools.partial(\n", " _tf_example_to_step_ds, episode_length=episode_length)\n", " episode_ds = example_ds.map(_tf_example_to_step_ds_with_length,\n", " num_parallel_calls=tf.data.experimental.AUTOTUNE)\n", "\n", " # Dataset of sequences.\n", " training_sequences = functools.partial(subsequences, length=sequence_length,\n", " shift=sequence_shift)\n", " return episode_ds.interleave(training_sequences)" ] }, { "cell_type": "markdown", "metadata": { "id": "sV2vXWAsU5Zg" }, "source": [ "## Experiment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0F-l-4LolX1c" }, "outputs": [], "source": [ "# task | episode length | run\n", "# ----------------------------------------------------------------------------\n", "# seekavoid_arena_01 | 301 | training_{0..2}\n", "# seekavoid_arena_01 | 301 | snapshot_{0..1}_eps_0.0\n", "# seekavoid_arena_01 | 301 | snapshot_{0..1}_eps_0.01\n", "# seekavoid_arena_01 | 301 | snapshot_{0..1}_eps_0.1\n", "# seekavoid_arena_01 | 301 | snapshot_{0..1}_eps_0.25\n", "# explore_object_rewards_few | 1351 | training_{0..2}\n", "# explore_object_rewards_many | 1801 | training_{0..2}\n", "# rooms_select_nonmatching_object | 181 | training_{0..2}\n", "# rooms_watermaze | 1801 | training_{0..2}\n", "\n", "TASK = 'seekavoid_arena_01'\n", "RUN = 'training_0'\n", "EPISODE_LENGTH = 301\n", "BATCH_SIZE = 1\n", "DATASET_PATH = f'gs://rl_unplugged/dmlab/{TASK}/{RUN}'" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "H7YN_qwDVPqQ" }, "outputs": [], "source": [ "environment = DeepMindLabEnvironment(TASK, action_repeats=2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-B25Lcgt8JD4" }, "outputs": [], "source": [ "dataset = make_dataset(DATASET_PATH, num_shards=500,\n", " episode_length=EPISODE_LENGTH,\n", " sequence_length=120,\n", " sequence_shift=40)\n", "dataset = dataset.padded_batch(BATCH_SIZE, drop_remainder=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "gTO61WolqkzG" }, "source": [ "### Learning" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "cBFmIYxTtBg4" }, "outputs": [], "source": [ "# Create network.\n", "def process_observations(x):\n", " return x._replace(observation=tf.image.convert_image_dtype(x.observation, tf.float32))\n", "\n", "environment_spec = specs.make_environment_spec(environment)\n", "num_actions = environment_spec.actions.maximum + 1\n", "network = snt.DeepRNN([\n", " process_observations,\n", " networks.R2D2AtariNetwork(num_actions=num_actions)\n", "])\n", "tf_utils.create_variables(network, [environment_spec.observations])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "QLoAU2zwwi3X" }, "outputs": [], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='learner', time_delta=1.)\n", "\n", "# Create the R2D2 learner.\n", "learner = r2d2.R2D2Learner(\n", " environment_spec=environment_spec,\n", " network=network,\n", " target_network=copy.deepcopy(network),\n", " discount=0.99,\n", " learning_rate=1e-4,\n", " importance_sampling_exponent=0.2,\n", " target_update_period=100,\n", " burn_in_length=0,\n", " sequence_length=120,\n", " store_lstm_state=False,\n", " dataset=dataset,\n", " logger=logger)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "lqMgZS9UWfWl" }, "outputs": [], "source": [ "for _ in range(5):\n", " learner.step()" ] }, { "cell_type": "markdown", "metadata": { "id": "eMpO7eBeqmZn" }, "source": [ "### Evaluation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "orUDJVmpA0lU" }, "outputs": [], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='evaluator', time_delta=1.)\n", "\n", "# Create evaluation loop.\n", "eval_network = snt.DeepRNN([\n", " network,\n", " lambda q: trfl.epsilon_greedy(q, epsilon=0.4**8).sample(),\n", "])\n", "eval_loop = environment_loop.EnvironmentLoop(\n", " environment=environment,\n", " actor=actors.DeprecatedRecurrentActor(policy_network=eval_network),\n", " logger=logger)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6FDsfWVXCcYZ" }, "outputs": [], "source": [ "eval_loop.run(2)" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "tr2MoADAQepq", "SvWeEWGd5Nx_", "ewPoBUDd04xh", "fwdmJWW3KB7g" ], "name": "RL Unplugged: Offline R2D2 - DeepMind Lab", "provenance": [ { "file_id": "1vgfEtkThYTNWHhi3pisuRFxgmoMniuQz", "timestamp": 1605722818242 }, { "file_id": "/v2/external/notebooks/intro.ipynb", "timestamp": 1602763830869 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rl_unplugged/networks.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Networks used for training agents. """ from acme.tf import networks as acme_networks from acme.tf import utils as tf2_utils import numpy as np import sonnet as snt import tensorflow as tf def instance_norm_and_elu(x): mean = tf.reduce_mean(x, axis=[1, 2], keepdims=True) x_ = x - mean var = tf.reduce_mean(x_**2, axis=[1, 2], keepdims=True) x_norm = x_ / (var + 1e-6) return tf.nn.elu(x_norm) class ControlNetwork(snt.Module): """Image, proprio and optionally action encoder used for actors and critics. """ def __init__(self, proprio_encoder_size: int, proprio_keys=None, activation=tf.nn.elu): """Creates a ControlNetwork. Args: proprio_encoder_size: Size of the linear layer for the proprio encoder. proprio_keys: Optional list of names of proprioceptive observations. Defaults to all observations. Note that if this is specified, any observation not contained in proprio_keys will be ignored by the agent. activation: Linear layer activation function. """ super().__init__(name='control_network') self._activation = activation self._proprio_keys = proprio_keys self._proprio_encoder = acme_networks.LayerNormMLP([proprio_encoder_size]) def __call__(self, inputs, action: tf.Tensor = None, task=None): """Evaluates the ControlNetwork. Args: inputs: A dictionary of agent observation tensors. action: Agent actions. task: Optional encoding of the task. Raises: ValueError: if neither proprio_input is provided. ValueError: if some proprio input looks suspiciously like pixel inputs. Returns: Processed network output. """ if not isinstance(inputs, dict): inputs = {'inputs': inputs} proprio_input = [] # By default, treat all observations as proprioceptive. if self._proprio_keys is None: self._proprio_keys = list(sorted(inputs.keys())) for key in self._proprio_keys: proprio_input.append(snt.Flatten()(inputs[key])) if np.prod(inputs[key].shape[1:]) > 32*32*3: raise ValueError( 'This input does not resemble a proprioceptive ' 'state: {} with shape {}'.format( key, inputs[key].shape)) # Append optional action input (i.e. for critic networks). if action is not None: proprio_input.append(action) proprio_input = tf2_utils.batch_concat(proprio_input) proprio_state = self._proprio_encoder(proprio_input) return proprio_state ================================================ FILE: rl_unplugged/requirements.txt ================================================ absl-py==0.9.0 astunparse==1.6.3 atari-py==0.2.6 cachetools==4.1.1 certifi==2020.6.20 chardet==3.0.4 cloudpickle==1.3.0 decorator==4.4.2 dm-acme==0.1.7 dm-control==0.0.319497192 dm-env==1.2 dm-reverb-nightly==0.1.0.dev20200616 dm-sonnet==2.0.0 dm-tree==0.1.5 dopamine-rl==3.1.2 future==0.18.2 gast==0.3.3 gin-config==0.3.0 glfw==1.11.2 google-auth==1.18.0 google-auth-oauthlib==0.4.1 google-pasta==0.2.0 grpcio==1.30.0 gym==0.17.2 h5py==2.10.0 idna==2.10 Keras-Preprocessing==1.1.2 lxml==4.5.1 Markdown==3.2.2 numpy==1.19.0 oauthlib==3.1.0 opencv-python==4.3.0.36 opt-einsum==3.2.1 Pillow==7.2.0 pkg-resources==0.0.0 portpicker==1.3.1 protobuf==3.12.2 pyasn1==0.4.8 pyasn1-modules==0.2.8 pyglet==1.5.0 PyOpenGL==3.1.5 pyparsing==2.4.7 requests==2.24.0 requests-oauthlib==1.3.0 rsa==4.6 scipy==1.4.1 six==1.15.0 tabulate==0.8.7 tb-nightly==2.3.0a20200706 tensorboard-plugin-wit==1.7.0 termcolor==1.1.0 tf-estimator-nightly==2.4.0.dev2020070701 tf-nightly==2.3.0.dev20200616 tfp-nightly==0.11.0.dev20200707 trfl==1.1.0 urllib3==1.25.9 Werkzeug==1.0.1 wrapt==1.12.1 ================================================ FILE: rl_unplugged/rwrl.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Real World RL for RL Unplugged datasets. Examples in the dataset represent SARS transitions stored when running a partially online trained agent as described in https://arxiv.org/abs/1904.12901. We release 8 datasets in total -- with no combined challenge and easy combined challenge on the cartpole, walker, quadruped, and humanoid tasks. For details on how the dataset was generated, please refer to the paper. Every transition in the dataset is a tuple containing the following features: * o_t: Observation at time t. Observations have been processed using the canonical * a_t: Action taken at time t. * r_t: Reward at time t. * d_t: Discount at time t. * o_tp1: Observation at time t+1. * a_tp1: Action taken at time t+1. This is set to equal to the last action for the last timestep. Note that this serves as an example. For optimal data loading speed, consider separating out data preprocessing from the data loading loop during training, e.g. saving the preprocessed data. """ import collections import functools import os from typing import Any, Dict, Optional, Sequence from acme import wrappers import dm_env import realworldrl_suite.environments as rwrl_envs import reverb import tensorflow as tf import tree DELIMITER = ':' # Control suite tasks have 1000 timesteps per episode. One additional timestep # accounts for the very first observation where no action has been taken yet. DEFAULT_NUM_TIMESTEPS = 1001 def _decombine_key(k: str, delimiter: str = DELIMITER) -> Sequence[str]: return k.split(delimiter) def tf_example_to_feature_description(example, num_timesteps=DEFAULT_NUM_TIMESTEPS): """Takes a string tensor encoding an tf example and returns its features.""" if not tf.executing_eagerly(): raise AssertionError( 'tf_example_to_reverb_sample() only works under eager mode.') example = tf.train.Example.FromString(example.numpy()) ret = {} for k, v in example.features.feature.items(): l = len(v.float_list.value) if l % num_timesteps: raise ValueError('Unexpected feature length %d. It should be divisible ' 'by num_timesteps: %d' % (l, num_timesteps)) size = l // num_timesteps ret[k] = tf.io.FixedLenFeature([num_timesteps, size], tf.float32) return ret def tree_deflatten_with_delimiter( flat_dict: Dict[str, Any], delimiter: str = DELIMITER) -> Dict[str, Any]: """De-flattens a dict to its originally nested structure. Does the opposite of {combine_nested_keys(k) :v for k, v in tree.flatten_with_path(nested_dicts)} Example: {'a:b': 1} -> {'a': {'b': 1}} Args: flat_dict: the keys of which equals the `path` separated by `delimiter`. delimiter: the delimiter that separates the keys of the nested dict. Returns: An un-flattened dict. """ root = collections.defaultdict(dict) for delimited_key, v in flat_dict.items(): keys = _decombine_key(delimited_key, delimiter=delimiter) node = root for k in keys[:-1]: node = node[k] node[keys[-1]] = v return dict(root) def get_slice_of_nested(nested: Dict[str, Any], start: int, end: int) -> Dict[str, Any]: return tree.map_structure(lambda item: item[start:end], nested) def repeat_last_and_append_to_nested(nested: Dict[str, Any]) -> Dict[str, Any]: return tree.map_structure( lambda item: tf.concat((item, item[-1:]), axis=0), nested) def tf_example_to_reverb_sample(example, feature_description, num_timesteps=DEFAULT_NUM_TIMESTEPS): """Converts the episode encoded as a tf example into SARSA reverb samples.""" example = tf.io.parse_single_example(example, feature_description) kv = tree_deflatten_with_delimiter(example) output = ( get_slice_of_nested(kv['observation'], 0, num_timesteps - 1), get_slice_of_nested(kv['action'], 1, num_timesteps), kv['reward'][1:num_timesteps], # The two fields below aren't needed for learning, # but are kept here to be compatible with acme learner format. kv['discount'][1:num_timesteps], get_slice_of_nested(kv['observation'], 1, num_timesteps), repeat_last_and_append_to_nested( get_slice_of_nested(kv['action'], 2, num_timesteps))) ret = tf.data.Dataset.from_tensor_slices(output) ret = ret.map(lambda *x: reverb.ReplaySample(info=b'None', data=x)) # pytype: disable=wrong-arg-types return ret def dataset(path: str, combined_challenge: str, domain: str, task: str, difficulty: str, num_shards: int = 100, shuffle_buffer_size: int = 100000) -> tf.data.Dataset: """TF dataset of RWRL SARSA tuples.""" path = os.path.join( path, f'combined_challenge_{combined_challenge}/{domain}/{task}/' f'offline_rl_challenge_{difficulty}' ) filenames = [ f'{path}/episodes.tfrecord-{i:05d}-of-{num_shards:05d}' for i in range(num_shards) ] file_ds = tf.data.Dataset.from_tensor_slices(filenames) file_ds = file_ds.repeat().shuffle(num_shards) tf_example_ds = file_ds.interleave( tf.data.TFRecordDataset, cycle_length=tf.data.experimental.AUTOTUNE, block_length=5) # Take one item to get the output types and shapes. example_item = None for example_item in tf.data.TFRecordDataset(filenames[:1]).take(1): break if example_item is None: raise ValueError('Empty dataset') feature_description = tf_example_to_feature_description(example_item) reverb_ds = tf_example_ds.interleave( functools.partial( tf_example_to_reverb_sample, feature_description=feature_description), num_parallel_calls=tf.data.experimental.AUTOTUNE, deterministic=False) reverb_ds = reverb_ds.prefetch(100) reverb_ds = reverb_ds.shuffle(shuffle_buffer_size) return reverb_ds def environment( combined_challenge: str, domain: str, task: str, log_output: Optional[str] = None, environment_kwargs: Optional[Dict[str, Any]] = None) -> dm_env.Environment: """RWRL environment.""" env = rwrl_envs.load( domain_name=domain, task_name=task, log_output=log_output, environment_kwargs=environment_kwargs, combined_challenge=combined_challenge) return wrappers.SinglePrecisionWrapper(env) ================================================ FILE: rl_unplugged/rwrl_d4pg.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KDiJzbb8KFvP" }, "source": [ "Copyright 2020 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n", "this file except in compliance with the License. You may obtain a copy of the\n", "License at\n", "\n", "[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n", "\n", "Unless required by applicable law or agreed to in writing, software distributed\n", "under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n", "CONDITIONS OF ANY KIND, either express or implied. See the License for the\n", "specific language governing permissions and limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zzJlIvx4tnrM" }, "source": [ "# RL Unplugged: Offline D4PG - RWRL\n", "\n", "## Guide to training an Acme D4PG agent on RWRL data.\n", "# \u003ca href=\"https://colab.research.google.com/github/deepmind/deepmind-research/blob/master/rl_unplugged/rwrl_d4pg.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "L6EObDZat-6b" }, "source": [ "## Installation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "GxZogj3guCzN" }, "outputs": [], "source": [ "!pip install dm-acme\n", "!pip install dm-acme[reverb]\n", "!pip install dm-acme[tf]\n", "!pip install dm-sonnet" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "pDil_q8cDjov" }, "source": [ "### MuJoCo\n", "\n", "More detailed instructions in [this tutorial](https://colab.research.google.com/github/deepmind/dm_control/blob/master/tutorial.ipynb#scrollTo=YvyGCsgSCxHQ)." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "VEEj3Qw60y73" }, "source": [ "#### Institutional MuJoCo license." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "IbZxYDxzoz5R" }, "outputs": [], "source": [ "#@title Edit and run\n", "mjkey = \"\"\"\n", "\n", "REPLACE THIS LINE WITH YOUR MUJOCO LICENSE KEY\n", "\n", "\"\"\".strip()\n", "\n", "mujoco_dir = \"$HOME/.mujoco\"\n", "\n", "# Install OpenGL deps\n", "!apt-get update \u0026\u0026 apt-get install -y --no-install-recommends \\\n", " libgl1-mesa-glx libosmesa6 libglew2.0\n", "\n", "# Fetch MuJoCo binaries from Roboti\n", "!wget -q https://www.roboti.us/download/mujoco200_linux.zip -O mujoco.zip\n", "!unzip -o -q mujoco.zip -d \"$mujoco_dir\"\n", "\n", "# Copy over MuJoCo license\n", "!echo \"$mjkey\" \u003e \"$mujoco_dir/mjkey.txt\"\n", "\n", "# Configure dm_control to use the OSMesa rendering backend\n", "%env MUJOCO_GL=osmesa\n", "\n", "# Install dm_control\n", "!pip install dm_control" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "-_7tVg-zzjzW" }, "source": [ "#### Machine-locked MuJoCo license." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "ZvCGB5LSr-30" }, "outputs": [], "source": [ "#@title Add your MuJoCo License and run\n", "mjkey = \"\"\"\n", "\"\"\".strip()\n", "\n", "mujoco_dir = \"$HOME/.mujoco\"\n", "\n", "# Install OpenGL dependencies\n", "!apt-get update \u0026\u0026 apt-get install -y --no-install-recommends \\\n", " libgl1-mesa-glx libosmesa6 libglew2.0\n", "\n", "# Get MuJoCo binaries\n", "!wget -q https://www.roboti.us/download/mujoco200_linux.zip -O mujoco.zip\n", "!unzip -o -q mujoco.zip -d \"$mujoco_dir\"\n", "\n", "# Copy over MuJoCo license\n", "!echo \"$mjkey\" \u003e \"$mujoco_dir/mjkey.txt\"\n", "\n", "# Configure dm_control to use the OSMesa rendering backend\n", "%env MUJOCO_GL=osmesa\n", "\n", "# Install dm_control, including extra dependencies needed for the locomotion\n", "# mazes.\n", "!pip install dm_control[locomotion_mazes]" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "ZrszOaSSMGiF" }, "source": [ "### RWRL" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "Oe5D7pEQAq82" }, "outputs": [], "source": [ "!git clone https://github.com/google-research/realworldrl_suite.git\n", "!pip install realworldrl_suite/" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "jSr-8p2BA1wl" }, "source": [ "### RL Unplugged" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "DGCc6SBaAnyb" }, "outputs": [], "source": [ "!git clone https://github.com/deepmind/deepmind-research.git\n", "%cd deepmind-research" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "IE2nV9Hivnv5" }, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "RI7NgnJIvs4s" }, "outputs": [], "source": [ "import collections\n", "import copy\n", "from typing import Mapping, Sequence\n", "\n", "import acme\n", "from acme import specs\n", "from acme.agents.tf import actors\n", "from acme.agents.tf import d4pg\n", "from acme.tf import networks\n", "from acme.tf import utils as tf2_utils\n", "from acme.utils import loggers\n", "from acme.wrappers import single_precision\n", "from acme.tf import utils as tf2_utils\n", "import numpy as np\n", "import realworldrl_suite.environments as rwrl_envs\n", "from reverb import replay_sample\n", "import six\n", "from rl_unplugged import rwrl\n", "import sonnet as snt\n", "import tensorflow as tf" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "a2PCwF3bwBII" }, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "VaEJbXjampPy" }, "outputs": [], "source": [ "domain_name = 'cartpole' #@param\n", "task_name = 'swingup' #@param\n", "difficulty = 'easy' #@param\n", "combined_challenge = 'easy' #@param\n", "combined_challenge_str = str(combined_challenge).lower()\n", "\n", "tmp_path = '/tmp/rwrl'\n", "gs_path = f'gs://rl_unplugged/rwrl'\n", "data_path = (f'combined_challenge_{combined_challenge_str}/{domain_name}/'\n", " f'{task_name}/offline_rl_challenge_{difficulty}')\n", "\n", "!mkdir -p {tmp_path}/{data_path}\n", "!gsutil cp -r {gs_path}/{data_path}/* {tmp_path}/{data_path}\n", "\n", "num_shards_str, = !ls {tmp_path}/{data_path}/* | wc -l\n", "num_shards = int(num_shards_str)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "mQ1as51Mww7X" }, "source": [ "## Dataset and environment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": {}, "colab_type": "code", "id": "K8HnIIi3ywYC" }, "outputs": [], "source": [ "#@title Auxiliary functions\n", "\n", "def flatten_observation(observation):\n", " \"\"\"Flattens multiple observation arrays into a single tensor.\n", "\n", " Args:\n", " observation: A mutable mapping from observation names to tensors.\n", "\n", " Returns:\n", " A flattened and concatenated observation array.\n", "\n", " Raises:\n", " ValueError: If `observation` is not a `collections.MutableMapping`.\n", " \"\"\"\n", " if not isinstance(observation, collections.MutableMapping):\n", " raise ValueError('Can only flatten dict-like observations.')\n", "\n", " if isinstance(observation, collections.OrderedDict):\n", " keys = six.iterkeys(observation)\n", " else:\n", " # Keep a consistent ordering for other mappings.\n", " keys = sorted(six.iterkeys(observation))\n", "\n", " observation_arrays = [tf.reshape(observation[key], [-1]) for key in keys]\n", " return tf.concat(observation_arrays, 0)\n", "\n", "\n", "def preprocess_fn(sample):\n", " o_tm1, a_tm1, r_t, d_t, o_t = sample.data[:5]\n", " o_tm1 = flatten_observation(o_tm1)\n", " o_t = flatten_observation(o_t)\n", " return replay_sample.ReplaySample(\n", " info=sample.info, data=(o_tm1, a_tm1, r_t, d_t, o_t))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "5kHzJpfcw306" }, "outputs": [], "source": [ "batch_size = 10 #@param\n", "\n", "environment = rwrl_envs.load(\n", " domain_name=domain_name,\n", " task_name=f'realworld_{task_name}',\n", " environment_kwargs=dict(log_safety_vars=False, flat_observation=True),\n", " combined_challenge=combined_challenge)\n", "environment = single_precision.SinglePrecisionWrapper(environment)\n", "environment_spec = specs.make_environment_spec(environment)\n", "act_spec = environment_spec.actions\n", "obs_spec = environment_spec.observations\n", "\n", "dataset = rwrl.dataset(\n", " tmp_path,\n", " combined_challenge=combined_challenge_str,\n", " domain=domain_name,\n", " task=task_name,\n", " difficulty=difficulty,\n", " num_shards=num_shards,\n", " shuffle_buffer_size=10)\n", "dataset = dataset.map(preprocess_fn).batch(batch_size)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "adb0cyE5qu9G" }, "source": [ "## D4PG learner" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "both", "colab": {}, "colab_type": "code", "id": "CriIaelxqwQg" }, "outputs": [], "source": [ "#@title Auxiliary functions\n", "\n", "def make_networks(\n", " action_spec: specs.BoundedArray,\n", " hidden_size: int = 1024,\n", " num_blocks: int = 4,\n", " num_mixtures: int = 5,\n", " vmin: float = -150.,\n", " vmax: float = 150.,\n", " num_atoms: int = 51,\n", "):\n", " \"\"\"Creates networks used by the agent.\"\"\"\n", " num_dimensions = np.prod(action_spec.shape, dtype=int)\n", "\n", " policy_network = snt.Sequential([\n", " networks.LayerNormAndResidualMLP(\n", " hidden_size=hidden_size, num_blocks=num_blocks),\n", " # Converts the policy output into the same shape as the action spec.\n", " snt.Linear(num_dimensions),\n", " # Note that TanhToSpec applies tanh to the input.\n", " networks.TanhToSpec(action_spec)\n", " ])\n", " # The multiplexer concatenates the (maybe transformed) observations/actions.\n", " critic_network = snt.Sequential([\n", " networks.CriticMultiplexer(\n", " critic_network=networks.LayerNormAndResidualMLP(\n", " hidden_size=hidden_size, num_blocks=num_blocks),\n", " observation_network=tf2_utils.batch_concat),\n", " networks.DiscreteValuedHead(vmin, vmax, num_atoms)\n", " ])\n", "\n", " return {\n", " 'policy': policy_network,\n", " 'critic': critic_network,\n", " }\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "83naOY7a_A4I" }, "outputs": [], "source": [ "# Create the networks to optimize.\n", "online_networks = make_networks(act_spec)\n", "target_networks = copy.deepcopy(online_networks)\n", "\n", "# Create variables.\n", "tf2_utils.create_variables(online_networks['policy'], [obs_spec])\n", "tf2_utils.create_variables(online_networks['critic'], [obs_spec, act_spec])\n", "tf2_utils.create_variables(target_networks['policy'], [obs_spec])\n", "tf2_utils.create_variables(target_networks['critic'], [obs_spec, act_spec])\n", "\n", "# The learner updates the parameters (and initializes them).\n", "learner = d4pg.D4PGLearner(\n", " policy_network=online_networks['policy'],\n", " critic_network=online_networks['critic'],\n", " target_policy_network=target_networks['policy'],\n", " target_critic_network=target_networks['critic'],\n", " dataset=dataset,\n", " discount=0.99,\n", " target_update_period=100)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "PYkjKaduy_xj" }, "source": [ "## Training loop" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 136 }, "colab_type": "code", "executionInfo": { "elapsed": 15293, "status": "ok", "timestamp": 1593617156917, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "HbQOyCG4zCwa", "outputId": "7a1055c4-4256-41b9-92a6-6fb05af89725" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Learner] Critic Loss = 4.016 | Policy Loss = 0.500 | Steps = 1 | Walltime = 0\n", "[Learner] Critic Loss = 3.851 | Policy Loss = 0.279 | Steps = 16 | Walltime = 2.165\n", "[Learner] Critic Loss = 3.832 | Policy Loss = 0.190 | Steps = 32 | Walltime = 3.216\n", "[Learner] Critic Loss = 3.744 | Policy Loss = 0.223 | Steps = 48 | Walltime = 4.262\n", "[Learner] Critic Loss = 3.782 | Policy Loss = 0.287 | Steps = 64 | Walltime = 5.305\n", "[Learner] Critic Loss = 3.799 | Policy Loss = 0.315 | Steps = 80 | Walltime = 6.353\n", "[Learner] Critic Loss = 3.796 | Policy Loss = 0.230 | Steps = 96 | Walltime = 7.397\n" ] } ], "source": [ "for _ in range(100):\n", " learner.step()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LJ_XsuQSzFSV" }, "source": [ "## Evaluation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 102 }, "colab_type": "code", "executionInfo": { "elapsed": 21830, "status": "ok", "timestamp": 1593617178762, "user": { "displayName": "", "photoUrl": "", "userId": "" }, "user_tz": -60 }, "id": "blvNCANKb22J", "outputId": "b05b7272-78cc-4bef-fe64-b95cc6fe5688" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Evaluation] Episode Length = 1000 | Episode Return = 135.244 | Episodes = 1 | Steps = 1000 | Steps Per Second = 222.692\n", "[Evaluation] Episode Length = 1000 | Episode Return = 136.972 | Episodes = 2 | Steps = 2000 | Steps Per Second = 233.214\n", "[Evaluation] Episode Length = 1000 | Episode Return = 136.173 | Episodes = 3 | Steps = 3000 | Steps Per Second = 229.496\n", "[Evaluation] Episode Length = 1000 | Episode Return = 146.131 | Episodes = 4 | Steps = 4000 | Steps Per Second = 230.199\n", "[Evaluation] Episode Length = 1000 | Episode Return = 137.818 | Episodes = 5 | Steps = 5000 | Steps Per Second = 232.834\n" ] } ], "source": [ "# Create a logger.\n", "logger = loggers.TerminalLogger(label='evaluation', time_delta=1.)\n", "\n", "# Create an environment loop.\n", "loop = acme.EnvironmentLoop(\n", " environment=environment,\n", " actor=actors.DeprecatedFeedForwardActor(online_networks['policy']),\n", " logger=logger)\n", "\n", "loop.run(5)" ] } ], "metadata": { "colab": { "collapsed_sections": [ "VEEj3Qw60y73", "-_7tVg-zzjzW" ], "last_runtime": { "build_target": "", "kind": "local" }, "name": "RL Unplugged: Offline D4PG - RWRL", "provenance": [ { "file_id": "1OerSIsTjv4d3rQCjAsi0ljPaLan87juJ", "timestamp": 1593080049369 } ] }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: rl_unplugged/rwrl_example.py ================================================ # pylint: disable=line-too-long # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. r"""RWRL dataset example. Instructions: > export TMP_PATH=/tmp/dataset/rwrl > export DATA_PATH=combined_challenge_easy/quadruped/walk/offline_rl_challenge_easy > mkdir -p $TMP_PATH/$DATA_PATH > gsutil cp gs://rl_unplugged/rwrl/$DATA_PATH/episodes.tfrecord-00001-of-00015 \ $TMP_PATH/$DATA_PATH/episodes.tfrecord-00000-of-00001 > python rwrl_example.py --path=$TMP_PATH """ # pylint: enable=line-too-long from absl import app from absl import flags import tree from rl_unplugged import rwrl flags.DEFINE_string('path', '/tmp/dataset', 'Path to dataset.') def main(_): ds = rwrl.dataset( flags.FLAGS.path, combined_challenge='easy', domain='quadruped', task='walk', difficulty='easy', num_shards=1, shuffle_buffer_size=1) for replay_sample in ds.take(1): print(tree.map_structure(lambda x: (x.dtype, x.shape), replay_sample.data)) break if __name__ == '__main__': app.run(main) ================================================ FILE: satore/Clause.rkt ================================================ #lang racket/base ;**************************************************************************************; ;**** Clause: Clauses With Additional Properties In A Struct ****; ;**************************************************************************************; (require define2 define2/define-wrapper racket/format racket/list racket/string satore/clause satore/clause-format satore/misc satore/unification text-table) (provide (all-defined-out)) ;==============; ;=== Clause ===; ;==============; ;; TODO: A lot of space is wasted in Clause (boolean flags?) ;; TODO: What's the best way to gain space without losing time or readability? ;; idx : exact-nonnegative-integer? ; unique id of the Clause. ;; parents : (listof Clause?) ; The first parent is the 'mother'. ;; clause : clause? ; the list of literals. ;; type : symbol? ; How the Clause was generated (loaded from file, input clause, rewrite, resolution, ;; factor, etc.) ;; binary-rewrite-rule? : boolean? ; Initially #false, set to #true if the clause has been added ;; (at some point) to the binary rewrite rules (but may not be in the set anymore if subsumed). ;; candidate? : boolean? ; Whether the clause is currently a candidate (see `saturation` in ;; saturation.rkt). ;; discarded? : boolean? ; whether the Clause has been discarded (see `saturation` in saturation.rkt). ;; n-literals : exact-nonnegative-integer? ; number of literals in the clause. ;; size : number? ; tree-size of the clause. ;; depth : exact-nonnegative-integer? : Number of parents up to the input clauses, when following ;; resolutions and factorings. ;; cost : number? ; Used to sort Clauses in `saturation` (in saturation.rkt). (struct Clause (idx parents clause type [binary-rewrite-rule? #:mutable] [candidate? #:mutable] [discarded? #:mutable] n-literals size depth [cost #:mutable]) #:prefab) ;; Unique clause index. No two Clauses should have the same index. (define-counter clause-index 0) ;; Clause constructor. See the struct Clause for more information. ;; ;; parents : (listof Clause?) ;; candidate? : boolean? ;; n-literals : exact-nonnegative-integer? ;; size : number? ;; depth : exact-nonnegative-integer? (define (make-Clause cl [parents '()] #:? [type '?] #:? [candidate? #false] #:? [n-literals (length cl)] #:? [size (clause-size cl)] #:? [depth (if (empty? parents) 1 (+ 1 (Clause-depth (first parents))))]) (++clause-index) (when-debug>= steps (define cl2 (clause-normalize cl)) ; costly, hence done only in debug mode (unless (= (tree-size cl) (tree-size cl2)) (displayln "Assertion failed: clause is in normal form") (printf "Clause (type: ~a):\n~a\n" type (clause->string cl)) (displayln "Parents:") (print-Clauses parents) (error (format "Assertion failed: (= (tree-size cl) (tree-size cl2)): ~a ~a" (tree-size cl) (tree-size cl2))))) ; Notice: Variables are ASSUMED freshed. Freshing is not performed here. (Clause clause-index parents cl type #false ; binary-rewrite-rule candidate? #false ; discarded? n-literals size depth ; depth (C0 is of depth 0, axioms are of depth 1) 0. ; cost )) ;; Sets the Clause as discarded. Used in `saturation`. ;; ;; Clause? -> void? (define (discard-Clause! C) (set-Clause-discarded?! C #true)) ;; A tautological clause used for as parent of the converse of a unit Clause. (define true-Clause (make-Clause (list ltrue))) ;; Returns a converse Clause of a unit or binary Clause. ;; These are meant to be temporary. ;; ;; C : Clause? ;; candidate? : boolean? ;; -> Clause? (define (make-converse-Clause C #:? [candidate? #false]) (if (unit-Clause? C) true-Clause ; If C has 1 literal A, then C = A | false, and converse is ~A | true = true (make-Clause (fresh (clause-converse (Clause-clause C))) (list C) #:type 'converse #:candidate? candidate?))) ;; List of possible fields for output formatting. (define Clause->string-all-fields '(idx parents clause type binary-rw? depth size cost)) ;; Returns a tree representation of the Clause, for human reading. ;; If what is a list, each element is printed (possibly multiple times). ;; If what is 'all, all fields are printed. ;; ;; Clause? (or/c 'all (listof symbol?)) -> list? (define (Clause->list C [what '(idx parents clause)]) (when (eq? what 'all) (set! what Clause->string-all-fields)) (for/list ([w (in-list what)]) (case w [(idx) (~a (Clause-idx C))] [(parents) (~a (map Clause-idx (Clause-parents C)))] [(clause) (clause->string (Clause-clause C))] [(clause-pretty) (clause->string/pretty (Clause-clause C))] [(type) (~a (Clause-type C))] [(binary-rw?) (~a (Clause-binary-rewrite-rule? C))] [(depth) (~r (Clause-depth C))] [(size) (~r (Clause-size C))] [(cost) (~r2 (Clause-cost C))]))) ;; Returns a string representation of a Clause. ;; ;; Clause? (or/c 'all (listof symbol?)) -> string? (define (Clause->string C [what '(idx parents clause)]) (string-join (Clause->list C what) " ")) ;; Returns a string representation of a Clause, for displaying a single Clause. ;; ;; Clause? (listof symbol?) -> string? (define (Clause->string/alone C [what '(idx parents clause)]) (when (eq? what 'all) (set! what Clause->string-all-fields)) (string-join (map (λ (f w) (format "~a: ~a " w f)) (Clause->list C what) what) " ")) ;; Outputs the Clauses `Cs` in a table for human reading. ;; ;; (listof Clause?) (or/c 'all (listof symbol?)) -> void? (define (print-Clauses Cs [what '(idx parents clause)]) (when (eq? what 'all) (set! what Clause->string-all-fields)) (print-simple-table (cons what (map (λ (C) (Clause->list C what)) Cs)))) ;; Returns a substitution if C1 subsumes C2 and the number of literals of C1 is no larger ;; than that of C2, #false otherwise. ;; Indeed, even when the clauses are safely factored, there can still be issues, for example, ;; this prevents cases infinite chains such as: ;; p(A, A) subsumed by p(A, B) | p(B, A) subsumed by p(A, B) | p(B, C) | p(C, A) subsumed by… ;; Notice: This is an approximation of the correct subsumption based on multisets. ;; ;; Clause? Clause? -> (or/c #false subst?) (define (Clause-subsumes C1 C2) (and (<= (Clause-n-literals C1) (Clause-n-literals C2)) (clause-subsumes (Clause-clause C1) (Clause-clause C2)))) ;; Like Clause-subsumes but first takes the converse of C1. ;; Useful for rewrite rules. ;; ;; Clause? Clause? -> (or/c #false subst?) (define (Clause-converse-subsumes C1 C2) (and (<= (Clause-n-literals C1) (Clause-n-literals C2)) (clause-subsumes (clause-converse (Clause-clause C1)) (Clause-clause C2)))) ;; Clause? -> boolean? (define (unit-Clause? C) (= 1 (Clause-n-literals C))) ;; Clause? -> boolean? (define (binary-Clause? C) (= 2 (Clause-n-literals C))) ;; Clause? -> boolean? (define (Clause-tautology? C) (clause-tautology? (Clause-clause C))) ;; Returns whether C1 and C2 are α-equivalences, that is, ;; if there exists a renaming substitution α such that C1α = C2 ;; and C2α⁻¹ = C1. ;; ;; Clause? Clause? -> boolean? (define (Clause-equivalence? C1 C2) (and (Clause-subsumes C1 C2) (Clause-subsumes C2 C1))) ;================; ;=== Printing ===; ;================; ;; Returns the tree of ancestor Clauses of C up to init Clauses, ;; but each Clause appears only once in the tree. ;; (The full tree can be further retrieved from the Clause-parents.) ;; Used for proofs. ;; ;; C : Clause? ;; dmax : number? ;; -> (treeof Clause?) (define (Clause-ancestor-graph C #:depth [dmax +inf.0]) (define h (make-hasheq)) (let loop ([C C] [depth 0]) (cond [(or (> depth dmax) (hash-has-key? h C)) #false] [else (hash-set! h C #true) (cons C (filter-map (λ (C2) (loop C2 (+ depth 1))) (Clause-parents C)))]))) ;; Like `Clause-ancestor-graph` but represented as a string for printing. ;; ;; C : Clause? ;; prefix : string? ; a prefix before each line ;; tab : string? ; tabulation string to show the tree-like structure ;; what : (or/c 'all (listof symbol?)) ; see `Clause->string` ;; -> string? (define (Clause-ancestor-graph-string C #:? [depth +inf.0] #:? [prefix ""] #:? [tab " "] #:? [what '(idx parents type clause)]) (define h (make-hasheq)) (define str-out "") (let loop ([C C] [d 0]) (unless (or (> d depth) (hash-has-key? h C)) (set! str-out (string-append str-out prefix (string-append* (make-list d tab)) (Clause->string C what) "\n")) (hash-set! h C #true) (for ([P (in-list (Clause-parents C))]) (loop P (+ d 1))))) str-out) ;; Like `Clause-ancestor-graph-string` but directly outputs it. (define-wrapper (display-Clause-ancestor-graph (Clause-ancestor-graph-string C #:? depth #:? prefix #:? tab #:? what)) #:call-wrapped call (display (call))) ;; Returns #true if C1 was generated before C2 ;; ;; Clause? Clause? -> boolean? (define (Clause-age>= C1 C2) (<= (Clause-idx C1) (Clause-idx C2))) ;=================; ;=== Save/load ===; ;=================; ;; Saves the Clauses `Cs` to the file `f`. ;; ;; Cs : (listof Clause?) ;; f : file? ;; exists : symbol? ; see `with-output-to-file` ;; -> void? (define (save-Clauses! Cs f #:? exists) (save-clauses! (map Clause-clause Cs) f #:exists exists)) ;; Loads Clauses from a file. If `sort?` is not #false, Clauses are sorted by Clause-size. ;; The type defaults to `'load` and can be changed with `type`. ;; ;; f : file? ;; sort? : boolean? ;; type : symbol? ;; -> (listof Clause?) (define (load-Clauses f #:? [sort? #true] #:? [type 'load]) (define Cs (map (λ (c) (make-Clause c #:type type)) (load-clauses f))) (if sort? (sort Cs <= #:key Clause-size) Cs)) ;======================; ;=== Test utilities ===; ;======================; ;; Provides testing utilities. Use with `(require (submod satore/Clause test))`. (module+ test (require rackunit) (provide Clausify check-Clause-set-equivalent?) ;; Takes a symbol tree, turns symbol variables into actual `Var`s, freshes them, ;; sorts the literals and makes a new Clause. ;; ;; tree? -> Clause? (define Clausify (compose make-Clause clausify)) ;; Returns whether for every clause of Cs1 there is an α-equivalent clause in Cs2. ;; ;; (listof Clause?) (listof Clause?) -> any/c (define-check (check-Clause-set-equivalent? Cs1 Cs2) (unless (= (length Cs1) (length Cs2)) (fail-check "not =")) (for/fold ([Cs2 Cs2]) ([C1 (in-list Cs1)]) (define C1b (for/first ([C2 (in-list Cs2)] #:when (Clause-equivalence? C1 C2)) C2)) (unless C1b (printf "Cannot find equivalence Clause for ~a\n" (Clause->string C1)) (print-Clauses Cs1) (print-Clauses Cs2) (fail-check)) (remq C1b Cs2)))) ================================================ FILE: satore/README.md ================================================ # Satore: First-order logic saturation with atom rewriting Satore is a first-order logic resolution based theorem prover in CNF without equality, but with atom rewrite rules. New rewrite rules can be discovered during the proof search, potentially reducing exponentially the search space. Satore stands for Saturation with Atom Rewriting. ## Installation First, install the **Racket** programming language (Apache2/MIT): https://download.racket-lang.org Note for Linux users: Do read the comments on the download page. You may need to [configure the PATH environment variable](https://github.com/racket/racket/wiki/Configure-Command-Line-for-Racket) to include the directory containing the `racket` and `raco` executables. To install **satore** and its dependencies (all are Apache2/MIT licensed), type: ```shell raco pkg install --auto --update-deps satore ``` ## Running Satore First, you can check that satore is correctly installed by typing: ```shell racket -l- satore --help ``` There are some examples in the `examples` subdirectory of the `satore` directory, and its location can be found with ```shell racket -e '(displayln (collection-file-path "examples" "satore"))' ``` Run a trivial example: ```shell racket -l- satore -p path-to-satore/examples/socrates.p --proof ``` The `.p` file is assumed to be a standalone file with only comments and `cnf(…).` lines without equality, where the logic clause must be surrounded by parentheses. All axioms must be included. (This will likely be improved soon.) ## Results on TPTP 7.2.0 (corrected) Corrected results on TPTP 7.2.0, on a 2-2.5GHz CPU, with a limit of 5 minutes and 32GB per problem, either with the default settings, or with `--no-discover-online` to disable atom rewriting: ``` ┌────────────────────────────┬───────┬───────┬───────┬───────┬───────┬────────┐ │Strategy │ UEQ │ CNE │ CEQ │ FNE │ FEQ │ All │ │ Class size→│ 1092 │ 2212 │ 4436 │ 1784 │ 5860 │ 15384 │ ├────────────────────────────┼───────┼───────┼───────┼───────┼───────┼────────┤ │Satore (all) │ 177 │ 1140 │ 956 │ 822 │ 1324 │ 4419 │ │ (proof) │ 177 │ 1078 │ 952 │ 766 │ 1324 │ 4297 │ │ (sat) │ 0 │ 62 │ 4 │ 56 │ 0 │ 122 │ ├────────────────────────────┼───────┼───────┼───────┼───────┼───────┼────────┤ │Satore w/o atom rw (all) │ 128 │ 967 │ 674 │ 711 │ 843 │ 3323 │ │ (proof) │ 128 │ 913 │ 670 │ 658 │ 843 │ 3212 │ │ (sat) │ 0 │ 54 │ 4 │ 53 │ 0 │ 111 │ └────────────────────────────┴───────┴───────┴───────┴───────┴───────┴────────┘ ``` ================================================ FILE: satore/clause-format.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Clause <-> String Conversions ****; ;***************************************************************************************; ;;; In a separate file because of cyclic dependencies with "tptp.rkt" if in "clause.rkt" (require define2 racket/format racket/list racket/pretty satore/tptp satore/unification text-table) (provide (all-defined-out)) ;; Returns a string representation of the clause. ;; ;; clause? -> string? (define (clause->string cl) ((if (*tptp-out?*) clause->tptp-string ~a) (Vars->symbols cl))) ;; Same as clause->string but pretty prints the result for better reading. ;; ;; clause? -> string? (define (clause->string/pretty cl) (pretty-format (Vars->symbols cl))) ;; clause? -> void? (define (print-clause cl) (displayln (clause->string cl))) ;; Prints the list of clauses in a table, possibly sothing them first. ;; ;; cls : (listof clause?) ;; sort? : boolean? (define (print-clauses cls #:? [sort? #false]) (unless (empty? cls) (print-table (for/list ([cl (in-list (if sort? (sort cls < #:key tree-size #:cache-keys? #true) cls))] [i (in-naturals)]) (cons i (Vars->symbols cl))) #:border-style 'space #:row-sep? #false #:framed? #false))) ================================================ FILE: satore/clause.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Operations on clauses ****; ;***************************************************************************************; (require bazaar/cond-else bazaar/list bazaar/loop bazaar/mutation (except-in bazaar/order atom<=>) define2 global racket/file racket/list satore/misc satore/trie satore/unification syntax/parse/define) (provide (all-defined-out)) (define-global *subsumes-iter-limit* 0 '("Number of iterations in the θ-subsumption loop before failing." "May help in cases where subsumption take far too long." "0 = no limit.") exact-nonnegative-integer? string->number) (define-counter n-tautologies 0) ;; Returns a new clause where the literals have been sorted according to `literal (listof literal?) (define (sort-clause cl) (sort cl literal (listof literal?) (define (clause-normalize cl) ; fresh the variables just to make sure (fresh (safe-factoring (sort-clause cl)))) ;; Takes a tree of symbols and returns a clause, after turning symbol variables into `Var`s. ;; Used to turn human-readable clauses into computer-friendly clauses. ;; ;; tree? -> clause? (define (clausify l) (clause-normalize (Varify l))) ;; clause? -> boolean? (define (empty-clause? cl) (empty? cl)) ;; Returns whether the clause `cl` is a tautologie. ;; cl is a tautology if it contains the literals `l` and `(not l)`. ;; Assumes that the clause cl is sorted according to `sort-clause`. ;; ;; clause? -> boolean? (define (clause-tautology? cl) (define-values (neg pos) (partition lnot? cl)) (define pneg (map lnot neg)) (and (or (memq ltrue pos) (memq lfalse pneg) (let loop ([pos pos] [pneg pneg]) (cond/else [(or (empty? pos) (empty? pneg)) #false] #:else (define p (first pos)) (define n (first pneg)) (define c (literal<=> p n)) #:cond [(order? c) (loop pos (rest pneg))] [(literal==? p n)] #:else (error "uh?")))) (begin (++n-tautologies) #true))) ;; Returns the converse clause of `cl`. ;; Notice: This does *not* rename the variables. ;; ;; clause? -> clause? (define (clause-converse cl) (sort-clause (map lnot cl))) ;; Returns the pair of (predicate-symbol . arity) of the literal. ;; ;; literal? -> (cons/c symbol? exact-nonnegative-integer?) (define (predicate.arity lit) (let ([lit (depolarize lit)]) (cond [(list? lit) (cons (first lit) (length lit))] [else (cons lit 0)]))) ;; Several counters to keep track of statistics. (define-counter n-subsumes-checks 0) (define-counter n-subsumes-steps 0) (define-counter n-subsumes-breaks 0) (define (reset-subsumes-stats!) (reset-n-subsumes-checks!) (reset-n-subsumes-steps!) (reset-n-subsumes-breaks!)) ;; θ-subsumption. Returns a (unreduced) most-general unifier θ such that caθ ⊆ cb, in the sense ;; of set inclusion. ;; Assumes vars(ca) ∩ vars(cb) = ∅. ;; Note that this function does not check for multiset inclusion. A length check is performed in ;; Clause-subsumes?. ;; ;; clause? clause? -> subst? (define (clause-subsumes ca cb) (++n-subsumes-checks) ; For every each la of ca with current substitution β, we need to find a literal lb of cb ; such that we can extend β to β' so that la β' = lb. (define cbtrie (make-trie #:variable? Var?)) (for ([litb (in-list cb)]) ; the key must be a list, but a literal may be just a constant, so we need to `list` it. (trie-insert! cbtrie (list litb) litb)) ;; Each literal lita of ca is paired with a list of potential literals in cb that lita matches, ;; for subsequent left-unification. ;; We sort the groups by smallest size first, to fail fast. (define groups (sort (for/list ([lita (in-list ca)]) ; lita must match litb, hence inverse-ref (cons lita (append* (trie-inverse-ref cbtrie (list lita))))) < #:key length #:cache-keys? #true)) ;; Depth-first search while trying to find a substitution that works for all literals of ca. (define n-iter-max (*subsumes-iter-limit*)) (define n-iter 0) (let/ec return (let loop ([groups groups] [subst '()]) (++ n-iter) ; Abort when we have reached the step limit (when (= n-iter n-iter-max) ; if n-iter-max = 0 then no limit (++n-subsumes-breaks) (return #false)) (++n-subsumes-steps) (cond [(empty? groups) subst] [else (define gp (first groups)) (define lita (car gp)) (define litbs (cdr gp)) (for/or ([litb (in-list litbs)]) ; We use a immutable substitution to let racket handle copies when needed. (define new-subst (left-unify/assoc lita litb subst)) (and new-subst (loop (rest groups) new-subst)))])))) ;; Returns the shortest clause `cl2` such that `cl2` subsumes `cl`. ;; Since `cl` subsumes each of its factors (safe or unsafe, and in the sense of ;; non-multiset subsumption above), this means that `cl2` is equivalent to `cl` ;; (hence no information is lost in `cl2`, it's a 'safe' factor). ;; Assumes that the clause cl is sorted according to `sort-clause`. ;; - The return value is eq? to the argument cl if no safe-factoring is possible. ;; - Applies safe-factoring as much as possible. ;; ;; clause? -> clause? (define (safe-factoring cl) (let/ec return (zip-loop ([(l x r) cl]) (define pax (predicate.arity x)) (zip-loop ([(l2 y r2) r] #:break (not (equal? pax (predicate.arity y)))) ; To avoid code duplication: (define-simple-macro (attempt a b) (begin (define s (left-unify a b)) (when s (define new-cl (sort-clause (fresh ; required for clause-subsumes below (left-substitute (rev-append l (rev-append l2 (cons a r2))) ; remove b s)))) (when (clause-subsumes new-cl cl) ; Try one more time with new-cl. (return (safe-factoring new-cl)))))) (attempt x y) (attempt y x))) cl)) ;; Returns whether the two clauses subsume each other, ;; in the sense of (non-multiset) subsumption above. ;; ;; clause? clause? -> boolean? (define (clause-equivalence? cl1 cl2) (and (clause-subsumes cl1 cl2) (clause-subsumes cl2 cl1))) ;=================; ;=== Save/load ===; ;=================; ;; Save the clauses `cls` to the file `f`. ;; ;; cls : (listof clause?) ;; f : file? ;; exists : symbol? ; See `with-output-to-file`. (define (save-clauses! cls f #:? [exists 'replace]) (with-output-to-file f #:exists exists (λ () (for-each writeln cls)))) ;; Returns the list of clauses loaded from the file `f`. ;; ;; file? -> (listof clause?) (define (load-clauses f) (map clausify (file->list f))) ================================================ FILE: satore/examples/binary30.p ================================================ cnf(i_0, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a))). cnf(i_1, plain, (~num(b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28) | num(a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28))). cnf(i_2, plain, (num(b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28) | ~num(a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28))). cnf(i_3, plain, (~num(a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27) | num(b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27))). cnf(i_4, plain, (num(a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27) | ~num(b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27))). cnf(i_5, plain, (~num(a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26) | num(b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26))). cnf(i_6, plain, (num(a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26) | ~num(b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26))). cnf(i_7, plain, (~num(a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25) | num(b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25))). cnf(i_8, plain, (num(a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25) | ~num(b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25))). cnf(i_9, plain, (~num(a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24) | num(b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24))). cnf(i_10, plain, (num(a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24) | ~num(b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24))). cnf(i_11, plain, (~num(a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23) | num(b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23))). cnf(i_12, plain, (num(a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23) | ~num(b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23))). cnf(i_13, plain, (~num(a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22) | num(b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22))). cnf(i_14, plain, (num(a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22) | ~num(b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22))). cnf(i_15, plain, (~num(a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21) | num(b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21))). cnf(i_16, plain, (num(a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21) | ~num(b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21))). cnf(i_17, plain, (~num(a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20) | num(b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20))). cnf(i_18, plain, (num(a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20) | ~num(b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20))). cnf(i_19, plain, (~num(a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19) | num(b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19))). cnf(i_20, plain, (num(a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19) | ~num(b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19))). cnf(i_21, plain, (~num(a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18) | num(b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18))). cnf(i_22, plain, (num(a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18) | ~num(b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18))). cnf(i_23, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17) | num(b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17))). cnf(i_24, plain, (num(a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17) | ~num(b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17))). cnf(i_25, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16) | num(b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16))). cnf(i_26, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16))). cnf(i_27, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15))). cnf(i_28, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15))). cnf(i_29, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14))). cnf(i_30, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14))). cnf(i_31, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13))). cnf(i_32, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13))). cnf(i_33, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12))). cnf(i_34, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12))). cnf(i_35, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11))). cnf(i_36, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11))). cnf(i_37, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10))). cnf(i_38, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10))). cnf(i_39, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9))). cnf(i_40, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8, X9))). cnf(i_41, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8))). cnf(i_42, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7, X8) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7, X8))). cnf(i_43, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7))). cnf(i_44, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6, X7) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6, X7))). cnf(i_45, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6))). cnf(i_46, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5, X6) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5, X6))). cnf(i_47, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5))). cnf(i_48, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4, X5) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4, X5))). cnf(i_49, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4))). cnf(i_50, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3, X4) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3, X4))). cnf(i_51, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3))). cnf(i_52, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2, X3) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2, X3))). cnf(i_53, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2))). cnf(i_54, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1, X2) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1, X2))). cnf(i_55, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1))). cnf(i_56, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0, X1) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0, X1))). cnf(i_57, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0))). cnf(i_58, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b, X0) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a, X0))). cnf(i_59, plain, (~num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b) | num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a))). cnf(i_60, plain, (num(a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b) | ~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, a))). cnf(i_0, negated_conjecture, (~num(b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b, b))). ================================================ FILE: satore/examples/socrates.p ================================================ cnf(humans_are_mortal, axiom, (~human(X) | mortal(X))). cnf(socrates_is_human, hypothesis, (human(socrates))). cnf(socrates_is_mortal, negated_conjecture, (~mortal(socrates))). ================================================ FILE: satore/info.rkt ================================================ #lang info (define collection "satore") (define deps '("bazaar" "data-lib" "define2" "global" "math-lib" "text-table" "base")) (define build-deps '("rackunit-lib" "scribble-lib" )) (define scribblings '(("scribblings/satore.scrbl" ()))) (define pkg-desc "First-order logic prover in CNF without equality, but with atom rewrite rules") (define version "0.1") (define pkg-authors '(orseau)) (define racket-launcher-names '("satore")) (define racket-launcher-libraries '("satore.rkt")) (define test-omit-paths '("info.rkt" "last-results.rkt" "parse-log.rkt" "in-progress/" "find-rules.rkt" "print-rules.rkt" "run-eprover.rkt" "rules/" "logs/" "scribblings/")) ================================================ FILE: satore/interact.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** User Interaction Commands ****; ;***************************************************************************************; (require (for-syntax racket/base syntax/parse) racket/format racket/list racket/match racket/port) (provide (all-defined-out)) ;; Notice: variables set via eval or only set locally, in the local namespace, ;; and not in the main namespace. ;; variables set via the (list 'var val) pattern are set in the main namespace. ;; Even though the namespace is at the module level, the variables ;; are set in the namespace with their value so they can be used with eval. (define-syntax (interact stx) (syntax-parse stx #:literals (list) [(_ (~alt (~optional (~seq #:prompt prompt:expr)) ; must evaluate to a string, default "> " (~optional (~seq #:command command:expr)) (~optional (~seq #:namespace-anchor ns-anchor:expr)) ; default #false (~optional (~seq #:variables (var:id ...))) ; must be bound identifiers (~optional (~seq #:readline? readline?:expr))) ; start with readline enabled? (#false) ... [(list pat ...) help-string body ...+] ...) ; match patterns (with-syntax ([(var ...) #'(~? (var ...) ())]) #'(begin (define names (list 'var ...)) (define nsa (~? ns-anchor #false)) (define ns (and nsa (namespace-anchor->namespace nsa))) (when (~? readline? #false) (eval '(require readline) ns)) (when ns (namespace-set-variable-value! 'var var #false ns) ... (void)) ; to avoid bad 'when' form if no variable (define the-prompt (~? prompt "> ")) (let loop () (with-handlers ([exn:fail? (λ (e) (displayln (exn-message e)) (loop))]) (define cmd (~? command #false)) (when (and cmd (not (string? cmd))) (error "command must be a string")) (unless cmd (display the-prompt)) (define cmd-str (or cmd (read-line))) (unless (eof-object? cmd-str) (define cmd (with-input-from-string (string-append "(" cmd-str ")") read)) (match cmd ['() (void)] ['(help) (unless (empty? names) (printf "Available variables: ~a\n" names)) (displayln "Other commands:") (parameterize ([print-reader-abbreviations #true] [print-as-expression #false]) (void) (begin (displayln (string-append " " (apply ~v '(pat ...) #:separator " "))) (displayln (string-append " " help-string))) ...) (when ns (displayln " eval expr") (displayln " Evaluate expr in a namespace that is local to this interaction loop.")) (loop)] [(list 'eval cmd) (if ns (call-with-values (λ () (eval cmd ns)) (λ l (if (= 1 (length l)) (unless (void? (first l)) (displayln (first l))) (for-each displayln l)))) (displayln "Cannot use eval without a namespace-anchor")) (loop)] ['(var) (println var) (loop)] ... [(list 'var val) (set! var val) (loop)] ... [(list pat ...) body ... (loop)] ... [else (printf "Unknown command: ~a\n" cmd) (loop)]))))))])) ;; For manual testing in DrRacket (module+ drracket (define-namespace-anchor ns-anchor) ; optional, to use the eval command (let ([x 3] [y 'a]) (interact #:prompt ">> " #:namespace-anchor ns-anchor #:variables (x y) ;; All patterns must be of the form (list ....) [(list 'yo) "prints yo" (displayln "yo")] [(list 'yo (? number? n)) "prints multiple yos" (displayln (make-list n 'yo))]))) ================================================ FILE: satore/json-output.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Json Output ****; ;***************************************************************************************; (require racket/dict racket/string) (provide (all-defined-out)) ;; Correspondance with Eprover output values (define status-dict '((running . UNSPECIFIED_PROOF_STATUS) (refuted . REFUTATION_FOUND) (time . TIME_LIMIT_REACHED) (memory . MEMORY_LIMIT_REACHED) (steps . STEP_LIMIT_REACHED) (saturated . COUNTER_SATISFIABLE))) ;; Take a result dictionary from `saturation` and returns a JSON string representation of it. ;; ;; dict? -> string? (define (saturation-result->json res) (define d (let* ([res (dict-remove res 'name)] [res (dict-remove res 'file)] [res (dict-update res 'status (λ (v) (dict-ref status-dict v)))]) res)) (string-join #:before-first "{\n " (for/list ([(k v) (in-dict d)]) (define kstr (regexp-replace* #px"-|:" (symbol->string k) "_")) (format "~s: ~s" kstr (if (symbol? v) (symbol->string v) v))) ",\n " #:after-last "\n}")) ;; Simple visual test. (module+ drracket (define res '((name . "GEO170+1.p") (file . "data/tptp_geo/GEO170+1.p") (status . refuted) (steps . 205) (generated . 3186) (actives . 106) (candidates . 2651) (priority-remaining . 0) (tautologies . 156) (rules . 30) (unit-rules . 24) (binary-rules . 6) (binary-rules-static . 0) (binary-rules-dynamic . 6) (binary-rewrites . 164) (forward-subsumed . 96) (backward-subsumed . 0) (subsumes-checks . 7654) (subsumes-steps . 13268) (subsumes-breaks . 0) (L-resolvent-pruning . 0) (memory . 181509744) (time . 196) (proof-length . 12) (proof-inferences . 5) (proof-type:in . 7) (proof-type:res . 4) (proof-type:rw . 1))) (displayln (saturation-result->json res))) ================================================ FILE: satore/log.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Logging To File With Consistent Debugging Information ****; ;***************************************************************************************; (require bazaar/date bazaar/debug define2 global racket/file racket/port racket/pretty racket/string racket/system) (provide call-with-log *log*) (define-global:boolean *log* #false "Output to a log file?") (define-global:boolean *git?* #false "Commit to git if needed and include the last git commit hash in the globals.") ;; Calls thunk. Outputs to a log file if `log?` is not #false. ;; When `git?` is not #false, also commits to git to ensure consistency of the code base ;; with the experiment, and adds the git commit number to the global variables. ;; ;; thunk : thunk? ;; dir : path-string? ;; filename : string? ;; filepath : path-string? ;; log? : boolean? ;; git? : boolean? ;; quiet? : boolean? (define (call-with-log thunk #:? [dir "logs"] #:? [filename (string-append "log-" (date-iso-file) ".txt")] ; if given, dir and filename have no effect: #:? [filepath (build-path dir filename)] #:? [log? (*log*)] #:? [git? (*git?*)] #:? [quiet? #false]) (when git? (define cmd "git commit -am \".\" ") (displayln cmd) (system cmd)) ;; Non-quiet mode. (define (thunk2) ; Also write the last commit hash for easy retrieval. (pretty-write (list* `(cmd-line . ,(current-command-line-arguments)) `(git-commit . ,(and git? (string-normalize-spaces (with-output-to-string (λ () (system "git rev-parse HEAD")))))) (globals->assoc))) (thunk)) (cond [log? (make-parent-directory* filepath) (assert (not (file-exists? filepath)) filepath) (printf "Logging to: ~a\n" filepath) (pretty-write (globals->assoc)) (with-output-to-file filepath thunk2)] [quiet? (thunk)] [else (thunk2)])) ================================================ FILE: satore/main.rkt ================================================ #!/usr/bin/env racket #lang racket/base ;**************************************************************************************; ;**** Satore ****; ;**************************************************************************************; ;;; Try: ;;; racket -l- satore --help ;;; to see all the available flags. (module+ main (require global racket/file racket/port satore/misc satore/rewrite-tree satore/saturation satore/unification) (define-global *prog* #false '("Data file containing a single TPTP program." "If not provided, reads from the input port.") file-exists? values '("-p")) ;; If -p is not specified, reads from current-input-port (void (globals->command-line #:program "satore")) ;; No validation here yet. (define program (if (*prog*) (file->string (*prog*)) (port->string))) (iterative-saturation (λ (#:clauses input-clauses #:cpu-limit cpu-limit #:rwtree-in rwtree-in #:rwtree-out rwtree-out) (saturation input-clauses #:cpu-limit cpu-limit #:rwtree rwtree-in #:rwtree-out rwtree-out)) #:tptp-program program #:rwtree-in (make-rewrite-tree #:atom<=> (get-atom<=>) #:dynamic-ok? (*dynamic-rules?*) #:rules-file (*input-rules*)))) ================================================ FILE: satore/misc.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Various Utilities ****; ;***************************************************************************************; (require (for-syntax racket/base racket/port racket/syntax) global racket/format racket/port) (provide (all-defined-out)) ;; Prints #true and #false (print-boolean-long-form #true) (define-syntax-rule (begin-for-both e) (begin e (begin-for-syntax e))) (begin-for-both ;; (or/c string? symbol? number?) -> number? (define (debug-level->number lev) (cond [(number? lev) lev] [(string? lev) (debug-level->number (with-input-from-string lev read))] [else (case lev [(none) 0] [(init) 1] [(step steps) 2] [(interact) 3] [else (error "unknown debug level" lev)])]))) (define-global *debug-level* 0 "Number or one of (none=0 init=1 steps interact)." exact-nonnegative-integer? debug-level->number '("--debug")) ;; ;; (or/c string? symbol? number?) -> boolean? (define (debug>= lev) (>= (*debug-level*) (debug-level->number lev))) ;; Do a sequence of actions only when debug-level is greater than a given level. (define-syntax (when-debug>= stx) (syntax-case stx () [(_ lev body ...) (with-syntax ([levv (debug-level->number (syntax-e #'lev))]) #'(when (>= (*debug-level*) levv) body ...))])) ;; any/c -> boolean? (define (thunk? p) (and (procedure? p) (procedure-arity-includes? p 0))) ;; Defines a counter with a reset function and an increment function. ;; Ex: ;; (define-counter num 0) ;; (++num) ;; (++num 3) ;; (reset-num!) (define-syntax (define-counter stx) (syntax-case stx () [(_ name init) (with-syntax ([reset (format-id stx #:source stx "reset-~a!" (syntax-e #'name))] [++ (format-id stx #:source stx "++~a" (syntax-e #'name))]) #'(begin (define name init) (define (reset) (set! name init)) (define (++ [n 1]) (set! name (+ name n)))))])) ;; -> number? (define (current-inexact-seconds) (* 0.001 (current-inexact-milliseconds))) ;; -> exact-nonnegative-integere? (define (current-memory-use-MB) (arithmetic-shift (current-memory-use) -20)) ;; Prints `x` with a given precision if it is a rational, otherwise formants it with `~a`. ;; ;; x : any/c ;; precision : (or/c exact-nonnegative-integer? (list/c '= exact-nonnegative-integer?)) (define (~r2 x #:precision [precision 2]) (if (rational? x) (~r x #:precision precision) (~a x))) ================================================ FILE: satore/rewrite-tree.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Binary Rewrite Tree ****; ;***************************************************************************************; (require bazaar/cond-else bazaar/mutation (except-in bazaar/order atom<=>) define2 define2/define-wrapper global racket/file racket/list racket/string satore/Clause satore/clause-format satore/clause satore/misc satore/trie satore/unification) (provide (all-defined-out) (all-from-out satore/trie)) ;===============; ;=== Globals ===; ;===============; (define-counter n-rule-added 0) (define-counter n-binary-rewrites 0) (define-global:boolean *bounded-confluence?* #true '("When performing confluence, should the size of the critical pairs " "be bounded by the size of parent rules?")) (define-global *confluence-max-steps* 10 "Maximum number of confluence steps" number? string->number) ;====================; ;=== Rewrite tree ===; ;====================; ;; atom<=> : comparator? ;; dynamic-ok? : boolean? ; whether we keep dynamic rules ;; rules-file : file? ; if not #false, loads rules from the given file (struct rewrite-tree trie (atom<=> dynamic?)) ;; rewrite-tree constructor. ;; ;; constructor: procedure? ;; atom<=> : comparator? ;; dynamic-ok? : boolean? ;; rules-file : file? ;; other-args : list? ;; -> rewrite-tree? (define (make-rewrite-tree #:? [constructor rewrite-tree] #:! atom<=> #:? [dynamic-ok? #true] #:? [rules-file #false] . other-args) (define rwtree (apply make-trie #:constructor constructor #:variable? Var? atom<=> dynamic-ok? other-args)) (when rules-file (load-rules! rwtree #:rules-file rules-file #:rewrite? #true)) rwtree) ;; Returns a new rewrite-tree. ;; Duplicates the structure of rwtree, but the Clauses and rules are shared. ;; This means that the Clause ancestors of the rules are preserved. ;; ;; rwtree : rewrite-tree? ;; -> rewrite-tree? (define (rewrite-tree-shallow-copy rwtree) (define new-rwtree (make-rewrite-tree #:atom<=> (rewrite-tree-atom<=> rwtree) #:dynamic-ok? (rewrite-tree-dynamic? rwtree))) (for ([rl (in-list (rewrite-tree-rules rwtree))]) (add-rule! new-rwtree rl)) new-rwtree) ;; Returns the list of values that match the literal t. ;; ;; rwtree : rewrite-tree? ;; t : any/c ;; -> list? (define (rewrite-tree-ref rwtree t) ; Node values are lists of rules, and trie-ref returns a list of node-values, ; hence the append*. (append* (trie-ref rwtree t))) ;; Clause : The Clause from which this rule originates ;; NOTICE: Clause may subsume the rule, and can be *more* general if the rule is asymmetric. ;; from-literal : heavy-side ;; to-literal : light side ;; to-fresh : variables of to-literal not in from-literal that need to be freshed ;; after applying the rule ;; ;; Clause : Clause? ;; rule-group : rule-group? ;; from-literal? : literal? ;; to-literal? : literal? ;; to-fresh : unused ;; static? : boolean? (struct rule (Clause rule-group from-literal to-literal to-fresh static?) #:prefab) ;; A rule group holds all the rules that have been created by a single call to ;; Clause->rules. ;; A rule also has a reference to its rule group, so it makes it easy to find ;; the other rules of the same group from a given group. ;; A single group can have 2 or 4 rules: 2 for static rules or dynamic self-converse rules, ;; and 4 for dynamic non-self-converse rules. ;; ;; Clause : (or/c false/c Clause?) ;; Converse : Clause? ;; rules: (listof rule?) (struct rule-group (Clause Converse [rules #:mutable]) #:prefab) ;; Rule constructor. ;; ;; C : Clause? ;; rule-gp : rule-group? ;; from : literal? ;; to : literal? ;; static? : boolean? ;; -> rule? (define (make-rule C rule-gp from to static?) (define-values (lit1 lit2) (apply values (fresh (list from to)))) (rule C rule-gp lit1 lit2 (variables-minus lit2 lit1) static?)) ;; Returns whether rule is a unit rule, that is, if the `to` literal ;; is either ltrue or lfalse. ;; ;; rl : rule? ;; -> any/c (define (unit-rule? rl) (memq (rule-to-literal rl) (list lfalse ltrue))) ;; Returns whether rl is a 'tautology', that is, if its `to` and `from` ;; literals are syntactically equal. ;; ;; rl : rule? ;; -> boolean? (define (rule-tautology? rl) (equal? (rule-from-literal rl) (rule-to-literal rl))) ;; Returns whether the rule is left linear, that is, if each variable ;; occurs at most once in the `from` literal. ;; ;; rl : rule? ;; -> boolean? (define (left-linear? rl) (define occs (var-occs (rule-from-literal rl))) (for/and ([(v n) (in-hash occs)]) (<= n 1))) ;; Returns whether rl1 subsumes rl2. ;; ;; rl1 : rule? ;; rl2 : rule? ;; -> any/c (define (rule-subsumes rl1 rl2) (define subst (left-unify (rule-from-literal rl1) (rule-from-literal rl2))) (and subst (left-unify (rule-to-literal rl1) (rule-to-literal rl2) subst))) ;; A binary Clause [lit1 lit2] is treated as an *equivalence* (4 implications) ;; rather than two implications, ;; which means that a converse Clause or one that subsumes the latter MUST have been proven too ;; before adding the rules. ;; Thus: (Clause->rules C <=>) == (Clause->rules (make-converse-Clause C) <=>). ;; That is, if C = ~q | p, the converse C' = q | ~p MUST have been proven. ;; We MUST add the four rules at the same time, because the if we add just the (max 2) rules ;; corresponding to the implications of C only, and then add the rules for C', ;; then C' is going to be rewritten to a tautology before it has a chance to propose its rules ;; (since resolution(C, converse(C)) = tautology). ;; The number of returned rules is either 2 or 4. ;; Conv is either the converse Clause of C, or a Clause that subsumes it, and is used ;; as a parent reference (for proofs), even if converse(C) is more specific than Conv. ;; Conv is *not* used to generate the rules themselves (only C), so if Conv is more general than C ;; (as for asymmetric rules) the generated rules will *not* be more general than those of C. ;; ;; C : Clause? ;; Conv : Clause? ;; atom<=> : comparator? ;; dynamic-ok? : boolean? ;; -> (listof rule?) (define (Clause->rules C Conv #:! atom<=> #:? [dynamic-ok? #true]) (define cl (Clause-clause C)) (define unit? (unit-Clause? C)) (define lit1 (first cl)) (define lit2 (if unit? lfalse (second cl))) (define rg (rule-group C Conv #false)) ; Not the most efficient. The last 2 cases can be deduced from the first 2, ; as long as atom<=> does not count polarity (which SHOULD be the case). (define rules (for/list ([parent (in-list (cond [unit? (list C #false C)] [(eq? C Conv) ; self-converse, no need to duplicate the rules (list C C)] [else (list C C Conv Conv)]))] [from (in-list (list (lnot lit1) (lnot lit2) lit1 lit2))] [to (in-list (list lit2 lit1 (lnot lit2) (lnot lit1)))] ; if Conv is #false for example, skip it (see force-add-binary-Clause!) ; also useful for unit? #:when parent [c (in-value (atom<=> from to))] #:when (and (not (order? c)))) ; rule cannot be oriented to → from, ; so the rule from → to is valid. ; It is 'static' if it can be oriented from → to, 'dynamic' otherwise. (make-rule parent rg from to (order>? c)))) (set-rule-group-rules! rg rules) rules) ;; a is left-unify< to b if a left-unifies with b. ;; ;; comparator? ;; literal? literal? -> (one-of '< '> '= #false) (define left-unify<=> (make<=> left-unify) ; left-unify is <=? ; equivalent to: #;(if (left-unify c1 c2) (if (left-unify c2 c1) '= '<) (if (left-unify c2 c1) '> #false))) ;;; What we want to assess is whether ;;; when applying rl1 to any clause c to get c1, ;;; c1 is always necessarily better than c2 when applying rl2 to c. ;; Compares 2 rules. May help decide if one should be discarded. ;; rl1 <= rl2 if the heavyside of rl1 subsumes that of rl2, ;; and its light side is no heavier than that of rl2. ;; NOTICE: A return value of '= does not mean that rl1 and rl2 are equal or equivalent; ;; it only means that either can be used. It does mean that their heavy sides are equivalent though. ;; ;; rl1 : rule? ;; rl2 : rule? ;; atom<=> : comparator? ;; -> (one-of '< '> '= #false) (define (rule<=> rl1 rl2 atom<=>) (chain-comparisons (left-unify<=> (rule-from-literal rl1) (rule-from-literal rl2)) (atom<=> (rule-to-literal rl1) (rule-to-literal rl2)))) ;; Returns a rule of rwtree that subsumes rl if any. ;; ;; rwtree : rewrite-tree? ;; rl : rule? ;; -> (or/c #false rule?) (define (find-subsuming-rule rwtree rl) (for/or ([rl2 (in-list (rewrite-tree-ref rwtree (rule-from-literal rl)))]) (and (rule-subsumes rl2 rl) rl2))) ;; If there is a substitution α such that rule-from α = lit, then rule-to α is returned, ;; otherwise #false is returned. ;; If the rule introduces variables, these are freshed. ;; ;; rl : rule? ;; lit : literal? ;; -> literal? (define (rule-rewrite-literal rl lit) (define subst (left-unify (rule-from-literal rl) lit)) (cond [subst ; NOTICE: We need to fresh the variables ; that are introduced by the rule. ; Ex: ; clause: [(p a) (p b)] rule: (p X) -> (q Y) ; Then this must be rewritten to: ; [(q A) (q B)] and NOT [(q Y) (q Y)] (for ([v (in-list (rule-to-fresh rl))]) (subst-set!/name subst v (new-Var))) (left-substitute (rule-to-literal rl) subst)] [else #false])) ;; Recursively rewrites the given literal lit from the rules in rwtree. ;; Returns the new literal and the sequence of rules used to rewrite it ;; (may contain duplicate rules). ;; lit: literal? ;; C: The Clause containing the literal lit. Used to avoid backward rewriting C to a tautology. ;; ;; rwtree : rewrite-tree? ;; lit : literal? ;; C : Clause? (define (binary-rewrite-literal rwtree lit C) (define atom<=> (rewrite-tree-atom<=> rwtree)) (let loop ([lit lit] [rules '()]) (define candidate-rules (rewrite-tree-ref rwtree lit)) ; Find the best rewrite of lit according to atom<=>. ; Q: Can we rewrite more greedily, that is, applied each rewrite asap? ; A: if the set of rules is confluent, yes, since they are all equivalent (although ; choosing the one that leads to the smallest literal may still be faster) ; But if the rules are not confluent then we may have a problem. (for/fold ([best-lit lit] [best-rule #false] #:result (if best-rule (loop best-lit (cons best-rule rules)) ; try once more (values best-lit (reverse rules)))) ; no more rewrites ([r (in-list candidate-rules)] #:unless (let ([g (rule-rule-group r)]) ; Don't rewrite yourself or your converse! (or (eq? C (rule-group-Clause g)) (eq? C (rule-group-Converse g))))) (define new-lit (rule-rewrite-literal r lit)) (if (and new-lit (order new-lit best-lit))) (values new-lit r) (values best-lit best-rule))))) ;; Returns a rewritten clause and the set (without duplicates) of rules used for rewriting. ;; Rewriting a clause is a simple as rewriting each literal, because ;; only left-unification is used, so the substitution cannot apply to the rest of the clause. ;; NOTICE: The variables of the resulting clause are not freshed. ;; ;; rwtree : rewrite-tree? ;; cl : clause? ;; C : Clause? (define (binary-rewrite-clause rwtree cl C) (let/ec return (for/fold ([lits '()] [rules '()] #:result (values (sort-clause lits) (remove-duplicates rules eq?))) ([lit (in-list cl)]) (define-values (new-lit new-rules) (binary-rewrite-literal rwtree lit C)) (values (cond [(ltrue? new-lit) (return (list new-lit) new-rules)] ; tautology shortcut [(lfalse? new-lit) lits] [else (cons new-lit lits)]) (append new-rules rules))))) (define Clause-type-rw 'rw) ;; Clause? -> boolean? (define (Clause-type-rw? C) (eq? (Clause-type C) Clause-type-rw)) ;; Returns a new Clause if C can be rewritten, C otherwise. ;; The parents of the new Clause are C followed by the set of clauses from which the rules ;; used for rewriting C originate. ;; ;; rwtree : rewrite-tree? ;; C : Clause? ;; -> Clause? (define (binary-rewrite-Clause rwtree C) (define-values (new-cl rules) (binary-rewrite-clause rwtree (Clause-clause C) C)) (cond [(empty? rules) C] [else (++n-binary-rewrites) (make-Clause (clause-normalize new-cl) (cons C (remove-duplicates (map rule-Clause rules) eq?)) #:type Clause-type-rw)])) ;; Returns whether the clause cl would be rewritten. Does not perform the rewriting. ;; ;; rwtree : rewrite-tree? ;; cl : clause? ;; C : Clause? ;; -> boolean? (define (binary-rewrite-clause? rwtree cl C) (for/or ([lit (in-list cl)]) ; We need to perform the literal rewriting anyway, because ; we need to check if the result is order boolean? (define (binary-rewrite-Clause? rwtree C) (binary-rewrite-clause? rwtree (Clause-clause C) C)) ;; Unconditionally adds the rule rl to the rewrite-tree rwtree, ;; and removes from rwtree the rules that are subsumed by rl ;; ;; rwtree : rewrite-tree? ;; rl : rule? ;; -> void? (define (add-rule! rwtree rl) (define atom<=> (rewrite-tree-atom<=> rwtree)) (unless (or (rule-tautology? rl) (find-subsuming-rule rwtree rl)) ;; Remove existing rules that are subsumed by rl. (define from-lit (rule-from-literal rl)) (trie-inverse-find rwtree from-lit (λ (nd) (define matches (trie-node-value nd)) (when (list? matches) ; o.w. no-value (define new-value (for/list ([rl2 (in-list matches)] #:unless (rule-subsumes rl rl2)) rl2)) ;; TODO: If new-value is '(), the node should be removed from the trie, ;; TODO: along with any similar parent. (this could be made automatic?) (set-trie-node-value! nd new-value)))) ;; NOTICE: No need to backward-rewrite the rules. ;; Resolution (in the saturation loop) will take care of generating new rules ;; and rewriting both their heavy sides and the light sides, ;; while add-rule! takes care of subsumption on the heavy side. ;; Letting the resolution loop take care of this is much safer, as it ensures ;; that rwtree and utree are in sync, and that rwtree is not going to rewrite ;; clauses before utree has a chance to generate new candidates via resolution. ;; That is, if we only *remove* stuff from rwtree, and not do the job of resolution ;; (apart from forward rewriting), then we should be fine? (++n-rule-added) (trie-insert! rwtree from-lit rl))) ;; Unconditionally removes a single (oriented) rule from the tree. ;; Use with caution and see instead remove-rule-group!. ;; ;; rwtree : rewrite-tree? ;; rl : rule? ;; -> void? (define (remove-rule! rwtree rl) (trie-find rwtree (rule-from-literal rl) (λ (nd) (define old-value (trie-node-value nd)) (when (list? old-value) ; o.w. no-value ;; TODO: If new-value is '(), the node should be removed from the trie, ;; TODO: along with any similar parent. (this could be made automatic?) (set-trie-node-value! nd (remove rl old-value eq?)))))) ;; Removes a group of rules that were added at the same time via Clause->rules ;; (via add-binary-Clause!). ;; ;; rwtree : rewrite-tree? ;; gp : rule-group? ;; -> void? (define (remove-rule-group! rwtree gp) (for ([rl (in-list (rule-group-rules gp))]) (remove-rule! rwtree rl))) ;; Turn the unit Clause into a binary Clause before adding it. ;; As for self-converses, we say that C is its own converse but that's a lie; ;; This is to avoid problems and specific cases when loading/saving rules. ;; A self-converse rule is necessarily dynamic (unless commutativity can be handled statically?),. ;; A unit rule is necessarily static (since $false is the bottom element). ;; Hence a 'self-converse' static rule is necessarily a unit rule (for now). ;; ;; rwtree : rewrite-tree? ;; C : Clause? ;; rewrite? : boolean? ;; -> void? (define (rewrite-tree-add-unit-Clause! rwtree C #:? rewrite?) (unless (unit-Clause? C) (error "Non-unit Clause v" C)) (rewrite-tree-add-binary-Clause! rwtree C C #:rewrite? rewrite?)) ;; Rewriting of the clause C must be done prior to calling this function. ;; Conv: Converse of C. See Clause->rules. ;; Returns the new rules (use these to obtain the rewritten Clauses). ;; ;; rwtree : rewrite-tree? ;; C : Clause? ;; Conv : Clause? ;; rewrite? : boolean? ;; -> void? (define (rewrite-tree-add-binary-Clause! rwtree C Conv #:? [rewrite? #true]) (cond [(Clause-binary-rewrite-rule? C) ; already added as a rule in the past? (when-debug>= steps (displayln "Clause has already been added before. Skipping.")) '()] [else (let-values ([(C Conv) (cond/else [(not rewrite?) (values C Conv)] #:else ; Rewriting (define C2 (binary-rewrite-Clause rwtree C)) (when-debug>= steps (displayln "Considering binary Clause for a rule (before rewriting):") (display-Clause-ancestor-graph C #:depth 0) (displayln "After rewriting:") (display-Clause-ancestor-graph C2) (when (Clause-tautology? C2) (displayln "...but tautology."))) #:cond [(Clause-tautology? C2) (values #false #false)] #:else ; Rewritten rule can still be used, rewrite the converse too. Not very efficient. (define Conv2 (if (eq? C Conv) Conv (binary-rewrite-Clause rwtree Conv))) (values C2 Conv2))]) (cond [(not C) '()] [(empty-clause? (Clause-clause C)) ; Refutation found! (when-debug>= steps (displayln "Refutation found while adding rules!") (display-Clause-ancestor-graph C)) ; TODO: Let's just discard it for now. A refutation will probably be found very early ; TODO: at the next saturation iteration. '()] [else (define atom<=> (rewrite-tree-atom<=> rwtree)) (define dynamic-ok? (rewrite-tree-dynamic? rwtree)) (define rls (Clause->rules C Conv #:atom<=> atom<=> #:dynamic-ok? dynamic-ok?)) (when-debug>= steps (displayln "Adding the following rules:") (display-rules rls)) (for ([rl (in-list rls)]) (add-rule! rwtree rl)) ; We set the bit to #true, *even if* no rule has been added, ; because the purpose of this bit is to avoid considering ; C later again to save time. ; TODO: We could set Conv as a rewrite-rule too but ONLY if C also subsumes the converse ; TODO: of conv. (set-Clause-binary-rewrite-rule?! C #true) rls]))])) ;; Adds the binary Clauses Cs as rules and returns the corresponding rules. ;; If rewrite? is not #false, the clauses are rewritten beforehand using the rules in the tree ;; (the order of the rules in Cs does matter as of now) ;; and tautologies are filtered out. ;; The default rewrite = #true is 'safe' because when considering A->B, Clause->rules also considers ;; B->A because we provide it with the converse equivalence (that is, the proof that B->A is valid). ;; Hence even converse implications can safely be rewritten to tautologies without losing rules. ;; Conv: MUST Subsumes the converse clause of each of Cs. ;; ;; rwtree : rewrite-tree? ;; Cs : (listof Clause?) ;; Conv : Clause? ;; rewrite? : boolean? ;; -> void? (define (rewrite-tree-add-binary-Clauses! rwtree Cs Conv #:? rewrite?) (for/fold ([rules '()]) ([C (in-list Cs)]) (define rls (rewrite-tree-add-binary-Clause! rwtree C Conv #:rewrite? rewrite?)) (append rls rules))) ;; Returns the list of rules (without duplicates) of rwtree. ;; ;; rwtree : rewrite-tree? ;; -> (listof rule?) (define (rewrite-tree-rules rwtree) (remove-duplicates (append* (trie-values rwtree)) eq?)) ;; Returns the list of rule groups (without duplicates) of rwtree. ;; ;; rwtree : rewrite-tree? ;; -> (listof rule-group?) (define (rewrite-tree-rule-groups rwtree) (remove-duplicates (map rule-rule-group (append* (trie-values rwtree))) eq?)) ;; Returns the list of unique Clauses that have been used to create the rules ;; held by the given rule groups. ;; ;; groups : (listof rule-group?) ;; -> (listof Clause?) (define (rule-groups-original-Clauses groups) (remove-duplicates (append (map rule-group-Clause groups) (map rule-group-Converse groups)) eq?)) ;; Returns the list of unique Clauses that have been used to create the rules. ;; ;; rules : (listof rule?) ;; -> (listof Clause?) (define (rules-original-Clauses rules) (rule-groups-original-Clauses (map rule-rule-group rules))) ;; Returns the list of unique Clauses that have been used to create the rules ;; of the rewrite tree. ;; ;; rwtree : rewrite-tree? ;; -> (listof Clause?) (define (rewrite-tree-original-Clauses rwtree) (rule-groups-original-Clauses (rewrite-tree-rule-groups rwtree))) ;; Returns the number of rules in the rewrite tree. ;; ;; rwtree : rewrite-tree? ;; -> exact-nonnegative-integer? (define (rewrite-tree-count rwtree) (length (rewrite-tree-rules rwtree))) ; not efficient ;; Returns a dictionary of statistics about the rewrite tree. ;; ;; rwtree : rewrite-tree? ;; -> list? (define (rewrite-tree-stats rwtree) (define rules (rewrite-tree-rules rwtree)) (define n-rules (length rules)) (define n-dyn (count (λ (r) (not (rule-static? r))) rules)) (define n-unit (count unit-rule? rules)) (define n-bin (- n-rules n-unit)) `((rules . ,n-rules) (unit-rules . ,n-unit) (binary-rules . ,n-bin) (binary-rules-static . ,(- n-bin n-dyn)) (binary-rules-dynamic . ,n-dyn))) ;; Attempts to simplify the rules by successively removing each rule, ;; rewrite its underlying Clause and add the rule again—checking for subsumption. ;; Since all rules are processed, the new set of rules can be obtained via rewrite-tree-rules. ;; Notice: Not (currently) suitable for use *inside* the saturation loop because the new Clauses ;; (as per `eq?` are not part of the active set or candidates. ;; ;; rwtree : rewrite-tree? ;; -> void? (define (re-add-rules! rwtree) (define groups (rewrite-tree-rule-groups rwtree)) (for ([gp (in-list groups)]) (remove-rule-group! rwtree gp) (define C (rule-group-Clause gp)) (set-Clause-binary-rewrite-rule?! C #false) ; otherwise will not be added (rewrite-tree-add-binary-Clause! rwtree C (rule-group-Converse gp) #:rewrite? #true))) ;===================; ;=== Save / load ===; ;===================; ;; Save the rules to file f (as clauses). ;; ;; rwtree : rewrite-tree? ;; rules-file : file? ;; exists : symbol? ; see `display-to-file`. ;; -> void? (define (save-rules! rwtree #:! rules-file #:? [exists 'replace]) (define groups (rewrite-tree-rule-groups rwtree)) ; We use hash to avoid duplicating clauses, so that we also avoid loading ; the same clause under different names. (define-counter idx 0) (define h (make-hasheq)) (define (get-clause C) (if (hash-has-key? h C) (hash-ref h C) (begin0 (Clause-clause C) (++idx) (hash-set! h C idx)))) (make-parent-directory* rules-file) ; ensure the path exists (with-output-to-file rules-file #:exists exists (λ () (for ([gp (in-list groups)]) (define C (rule-group-Clause gp)) (define Conv (rule-group-Converse gp)) (writeln (if (eq? C Conv) (list (get-clause C)) ; self-converse (list (get-clause C) (get-clause Conv)))))))) ;; Private. ;; ;; rules-file : file? ;; -> (listof Clause?) (define (load-rule-Clause-lists #:! rules-file) (define-counter idx 0) ; Each clause has a number (local to the file) and if a number appears while reading ; then we must load the saved clause of the same number. (define h (make-hasheqv)) (define (get-Clause! x) (cond [(number? x) (hash-ref h x)] [else (++idx) (define C (make-Clause x #:type 'load)) (hash-set! h idx C) C])) (for/list ([cls (in-list (file->list rules-file))]) (map get-Clause! cls))) ;; Load the rules from file into the rewrite-tree. ;; Optionally: rewrites the rules before adding them ;; Returns the set of new rules. ;; ;; rwtree : rewrite-tree? ;; rules-file : file? ;; rewrite? : boolean? ;; -> (listof rule?) (define (load-rules! rwtree #:! rules-file #:? [rewrite? #true]) (define Crules (load-rule-Clause-lists #:rules-file rules-file)) (for/fold ([rules '()]) ([Cs (in-list Crules)]) (define C (first Cs)) (define Conv (if (= (length Cs) 1) C ; self-converse (second Cs))) (define new-rules (rewrite-tree-add-binary-Clause! rwtree C Conv #:rewrite? rewrite?)) (append new-rules rules))) ;=======================; ;=== Filtering rules ===; ;=======================; ;; Returns a new rwtree containing only the filtered rules ;; ;; rwtree : rewrite-tree? ;; proc : rule-group? -> boolean? ;; -> rewrite-tree? (define (filter-rule-groups rwtree proc) (define rwtree2 (make-rewrite-tree #:atom<=> (rewrite-tree-atom<=> rwtree) #:dynamic-ok? (rewrite-tree-dynamic? rwtree))) (define groups (rewrite-tree-rule-groups rwtree)) (for ([gp (in-list groups)]) (when (proc gp) ; Copy the clauses (shallow) (define C (make-Clause (Clause-clause (rule-group-Clause gp)) #:type 'filter-rule-groups)) (define Conv (make-Clause (Clause-clause (rule-group-Converse gp)) #:type 'filter-rule-groups)) (rewrite-tree-add-binary-Clause! rwtree2 C Conv #:rewrite? #true))) rwtree2) ;==================; ;=== Confluence ===; ;==================; ;; Unifies (resolves) only with the lhs of rules and returns ;; the new set of Clauses (and converse Clauses). ;; If bounded? is not #false, then Clauses which have a literal ;; that is heavier (in literal-size) than a `from' literal of its parent rules ;; are discarded. ;; ;; rwtree : rewrite-tree? ;; rl : rule? ;; bounded? : boolean? ;; -> (listof Clause?) (define (find-critical-pairs rwtree rl #:? [bounded? (*bounded-confluence?*)]) (define lnot-from-lit1 (lnot (rule-from-literal rl))) (define to-lit1 (rule-to-literal rl)) (define new-Clauses '()) ; Resolution (like unification with the converse) ; to ensure that the Clause parents are correct (trie-both-find rwtree lnot-from-lit1 (λ (nd) (define rls (trie-node-value nd)) (when (list? rls) (for ([rl2 (in-list rls)] #:unless (eq? rl rl2)) (define from-lit2 (rule-from-literal rl2)) (define to-lit2 (rule-to-literal rl2)) (define s (unify lnot-from-lit1 from-lit2)) (when s (define cl (clause-normalize (substitute (list to-lit1 to-lit2) s))) (define C (make-Clause cl (list (rule-Clause rl) (rule-Clause rl2)) #:type 'c-p)) ; critical-pair (define max-size (max (literal-size (rule-from-literal rl)) (literal-size from-lit2))) (unless (or (Clause-tautology? C) (and bounded? (> (max (literal-size (first cl)) (literal-size (second cl))) max-size))) (cons! C new-Clauses))))))) new-Clauses) ;; This is a bad fix. Instead we should find the correct converse Clause (via rule groups) ;; Returns the list of rules that were added, or '() if none. ;; ;; rwtree : rewrite-tree? ;; C : Clause? ;; -> void? (define (force-add-binary-Clause! rwtree C) (define Conv (make-converse-Clause C)) (rewrite-tree-add-binary-Clause! rwtree C (if (Clause-equivalence? C Conv) C Conv))) ;; Add all critical pairs between existing rules. ;; This procedure may need to be called several times, but such a loop may not terminate ;; as some rules can be inductive. ;; It is recommended to call `simplify-rewrite-tree!` before and after calling this procedure. ;; Returns #true if any rules has been added. ;; ;; rwtree : rewrite-tree? ;; bounded? : boolean? ;; -> boolean? (define (rewrite-tree-confluence-step! rwtree #:? bounded?) (define rules (rewrite-tree-rules rwtree)) (for/fold ([any-change? #false]) ([rl (in-list rules)]) (define pairs (find-critical-pairs rwtree rl #:bounded? bounded?)) (for/fold ([any-change? any-change?]) ([C (in-list pairs)]) (define change? (force-add-binary-Clause! rwtree C)) (or any-change? (and change? #true))))) ;; Performs several steps of confluence until no more change happens. ;; Returns whether any change has been made. ;; Notice: if bounded? is #false, this may loop forever. ;; If it does halt however, the system is confluent, but may not be minimal; ;; call re-add-rules! to remove unnecessary rules and simplify rhs of rules ;; (this should help make rewriting faster). ;; It is advised to call re-add-rules! once before and once after rewrite-tree-confluence!. ;; ;; rwtree : rewrite-tree? ;; bounded? : boolean? ;; max-steps : exact-nonnegative-integer? ;; -> boolean? (define (rewrite-tree-confluence! rwtree #:? bounded? #:? [max-steps (*confluence-max-steps*)]) (let loop ([step 1] [any-change? #false]) (define changed? (rewrite-tree-confluence-step! rwtree #:bounded? bounded?)) (cond [(or (>= step max-steps) (not changed?)) any-change?] [else (loop (+ step 1) #true)]))) ;================; ;=== Printing ===; ;================; ;; Returns a list representing the rule. ;; ;; rule? -> list? (define (rule->list rl) (cons (Clause-idx (rule-Clause rl)) (Vars->symbols (list (rule-from-literal rl) (rule-to-literal rl))))) ;; A comparator to sort the rules for printing (define display-rule<=> (make-chain<=> boolean<=> rule-static? boolean<=> unit-rule? boolean<=> (λ (r) (lnot? (rule-from-literal r))) number<=> (λ (r) (+ (tree-size (rule-from-literal r)) (tree-size (rule-to-literal r)))) number<=> (λ (r) (tree-size (rule-to-literal r))) length<=> rule-to-fresh)) ;; (listof rule?) -> (listof rule?) (define (sort-rules rls) (sort rls (λ (a b) (order>? (display-rule<=> a b))))) ;; Human-readable output ;; Notice: Since unit rules are asymmetric (only one rule per unit clause), ;; if positive-only is not #false it may not display some unit rules. ;; ;; rls : (listof rule?) ;; sort? : boolean? ;; positive-only? : boolean? ;; unit? : boolean? (define (rules->string rls #:? [sort? #true] #:? [positive-only? #false] #:? [unit? #true]) (string-join (for/list ([rl (in-list (if sort? (sort-rules rls) rls))] #:unless (or (and (not unit?) (unit-rule? rl)) (and positive-only? (lnot? (rule-from-literal rl))))) ; abusing clause->string: (clause->string (list (if (rule-static? rl) "static " "dynamic") (map Var (rule-to-fresh rl)) ': (rule-from-literal rl) '→ (rule-to-literal rl)))) "\n")) ;; Like rules->string but directly displays the result. ;; ;; rls : (listof rule?) ;; sort? : boolean? ;; positive-only? : boolean? ;; unit? : boolean? (define-wrapper (display-rules (rules->string rls #:? sort? #:? positive-only? #:? unit?)) #:call-wrapped call (displayln (call))) ================================================ FILE: satore/saturation.rkt ================================================ #lang racket/base ;**************************************************************************************; ;**** Saturation Algorithm ****; ;**************************************************************************************; (require bazaar/cond-else bazaar/date bazaar/debug bazaar/dict bazaar/mutation data/heap/unsafe data/queue define2 global racket/block racket/dict racket/format racket/list racket/math racket/pretty racket/string satore/Clause satore/clause-format satore/clause satore/interact satore/json-output satore/misc satore/rewrite-tree satore/tptp satore/unification-tree satore/unification) (provide (all-defined-out)) ;===============; ;=== Globals ===; ;===============; (define-global:boolean *quiet-json?* #false '("JSON output format and silent mode. Deactivates some verbose options.")) (define-global *memory-limit* 4096 "Memory limit in MB, including the Racket VM." exact-positive-integer? string->number) (define-global:boolean *find-unit-rules-in-candidates?* #false '("Search for unit rewrite rules in the condidate set?" "This may speed up the search significantly, or slow it down significantly," "depending on how many unit rules can be generated.")) (define-global:boolean *backward-rw?* #true '("Use binary-clause rewriting? (aka θ-equivalences)." "The iterative mode does not use backward rewrites.")) (define-global:boolean *dynamic-rules?* #false "Use dynamic rules? Experimental.") (define-global:boolean *proof?* #false "Display the proof when found?") (define-global *age:cost* '(1 9) "Age:cost ratio. Format: :, e.g., '1:3'" (λ (p) (and (list? p) (= 2 (length p)) (andmap exact-nonnegative-integer? p))) (λ (s) (map string->number (string-split s ":")))) (define-global:category *cost-type* 'weight-fair '(weight-fair weight) "Cost type.") (define-global *cost-depth-factor* 1.5 "Cost = weight + cost-depth-factor * depth" (λ (x) #true) string->number) (define-global *cost-noise* 0. "Noise factor to add to costs" (λ (x) (and (real? x) (>= x 0))) string->number) (define-global:boolean *parent-discard?* #false "Discard clauses when at least one parent has been discarded?") (define-global:boolean *discover-online?* #true '("Use rewrite rules as soon as they are discovered?" "The rules will not be made confluence until the next restart")) (define-global:boolean *negative-literal-selection?* #true "When resolving, if a clause has negative literals, only select one of them.") (define-global *cpu-limit* +inf.0 "CPU limit in seconds per problem." exact-positive-integer? string->number) (define-global *cpu-first-limit* +inf.0 "CPU limit in seconds per problem." exact-positive-integer? string->number) (define-global *cpu-limit-factor* 3 '("Increase of cpu limit of cpu-first-limit once an iteration has failed." "Set to 0 to avoid restarting." "Assumes --cpu-limit.") (λ (x) (and (real? x) (>= x 0))) string->number) (define-global *input-rules* #false '("File to read rewrite rules from.") file-exists? values) (define-global *output-rules* #false '("File to write rewrite rules to. If 'auto', a unique name is chosen automatically.") (λ (x) #true) (λ (str) (if (string=? str "auto") (build-path "rules" (string-append "rules-" (date-iso-file) ".txt")) str))) ;======================; ;=== Rule discovery ===; ;======================; ;; Finds new binary equivalences between `C` and the clauses of `utree`, ;; and adds and returns the set of resulting new rules that can be added to `rwtree`. ;; ;; rwtree-out : rewrite-tree? ;; C : Clause? ;; utree : unification-tree? (define (discover-new-rules! rwtree-out C utree) (cond/else [(not rwtree-out) '()] ;; FIND UNIT REWRITE RULES ;; Unit rewrite using the binary rewrite tree [(unit-Clause? C) (when-debug>= steps (displayln "Found unit clause")) ;; Add the new unit clause to the set of unit rewrite rules (rewrite-tree-add-unit-Clause! rwtree-out C #:rewrite? #false)] [(not (binary-Clause? C)) '()] ;; FIND BINARY REWRITE RULES #:else (when-debug>= steps (displayln "Found binary clause")) ;; We search for the converse implication in the active set. ;; This takes care of clauses that have converse clauses but not the converse. ;; Ex: C1 = p(X) | q(X) ; C2 = ~p(a) | ~q(a) ;; C2 has a converse clause, but not C1. Hence C2 can be added as a binary rewrite rule ;; but not C1. (define Conv (make-converse-Clause C)) (define self-conv? (Clause-subsumes C Conv)) #:cond [self-conv? ; Self-converse Clause, so only one Clause to add (but will lead to 2 rules). (when-debug>= steps (displayln "Self-converse")) (rewrite-tree-add-binary-Clause! rwtree-out C C #:rewrite? #false)] #:else (define Subs (utree-find/any utree Conv (λ (a Conv) (and (binary-Clause? a) (Clause-subsumes a Conv))))) #:cond [Subs ; We found a converse Clause in the active set, or a Clause that subsumes the ; converse Clause, so we can add selected-Clause as a rule and also its ; converse Clause. ; We can't add Subs, since Subs may not itself have a converse ; clause in the active set. Ex: ; selected-Clause = p(a) | q(a), so Conv = ~p(a) | ~q(a) and Subs = ~p(X) | ~q(X) ; Subs cannot be added as a rule because (supposedly) we haven't found a converse ; clause yet, but we can still add Conv as a rule. ; If Subs is aleardy a rule, Conv will be rewritten to a tautology and discarded. (when-debug>= steps (printf "Found converse subsuming clause: ~a\n" (Clause->string Subs))) ; Since C has already been rewritten, there is no need to do it again. (rewrite-tree-add-binary-Clause! rwtree-out C Subs #:rewrite? #false)] #:else ; Asymmetric rules. ; Even when selected-Clause is not a rule (yet?), it may still enable ; other more specific Clauses of the active set to be added as rules too. ; Eg, selected-Clause = p(X) | q(X) and some other active clause is ~p(a) | ~q(a). (define Subsd (utree-find/all utree Conv (λ (a Conv) (and (binary-Clause? a) (Clause-subsumes Conv a))))) #:cond [(not (empty? Subsd)) (when-debug>= steps (displayln "Found converse subsumed clauses:") (print-Clauses Subsd)) ; rewrite=#true is ok here because Clause->rules already considers both directions ; of the implication. Hence if a potential rule is rewritten to a tautology, ; we know it's already redundant anyway. ; TODO: Rename this to add-asymmetric-rules ? (rewrite-tree-add-binary-Clauses! rwtree-out Subsd C #:rewrite? #true)] #:else '())) ;====================; ;=== Clause costs ===; ;====================; ;; Clause comparison for the cost queue. ;; ;; Clause? Clause? -> boolean? (define (Candidate<= C1 C2) (<= (Clause-cost C1) (Clause-cost C2))) ;; Sets the cost of a list of Clauses that all have the same parent `parent`. ;; Some noise can be added to the cost via *cost-noise*. ;; ;; Cs : (listof Clause?) ;; cost-type: symbol? ;; parent : Clause? ;; cost-depth-factor : number? ;; -> void? (define (Clauses-calculate-cost! Cs cost-type parent #:! cost-depth-factor) (case cost-type ;; Very simple cost function that uses the weight of the Clause. May not be fair. [(weight) (for ([C (in-list Cs)]) (set-Clause-cost! C (if (empty? (Clause-clause C)) -inf.0 ; empty clause should always be top of the list (Clause-size C))))] ;; Very simple cost function that is fair [(weight-fair) (for ([C (in-list Cs)]) (set-Clause-cost! C (if (empty? (Clause-clause C)) -inf.0 ; empty clause should always be top of the list (+ (* (Clause-depth C) cost-depth-factor) (Clause-size C)))))]) ;; Add noise to the cost so as to potentially solve more later. ;; To combine with a slowly increasing step-limit-factor in iterative saturation (unless (zero? (*cost-noise*)) (define ε (*cost-noise*)) (for ([C (in-list Cs)]) (set-Clause-cost! C (* (+ (- 1. ε) (* ε (random))) (Clause-cost C)))))) ;==================; ;=== Saturation ===; ;==================; ;; List of possible status values. Used to prevent mistakes. (define statuses '(refuted saturated time memory steps running)) ;; Returns whether the result dictionary `res` has the status `status`. ;; ;; res : dict? ;; status : symbol? (define (check-status res status) (define res-status (dict-ref res 'status #false)) ; To avoid silent typo bugs. (assert (memq status statuses) status) (assert (memq res-status statuses) res-status) (eq? status res-status)) ;; The main algorithm. Saturates the formula given by the input clauses ;; by adding new clauses (either resolutions or factors) until either ;; the empty clause is produced, or a resource limit is reached (steps, time, memory). ;; ;; input-clauses : (listof clause?) ;; step-limit : number? ;; memory-limit : number? ;; cpu-limit : number? ;; rwtree : (or/c #false rewrite-tree?) ;; rwtree-out : (or/c #false rewrite-tree?) ;; backward-rewrite? : boolean? ;; parent-discard? : boolean? ;; age:cost : (list/c exact-nonnegative-integer? exact-nonnegative-integer?) ;; cost-type : symbol? ;; disp-proof? : boolean? ;; L-resolvent-pruning : boolean? ;; find-unit-rules-in-candidates? : boolean? ;; negative-literal-selection? : boolean? ;; -> dict? (define (saturation input-clauses #:? [step-limit +inf.0] #:? [memory-limit (*memory-limit*)] ; in MB #:? [cpu-limit +inf.0] ; in seconds ; The rewrite tree holding the binary rules. ; Set it to #false to deactivate it. #:? [rwtree (make-rewrite-tree #:atom<=> (get-atom<=>) #:dynamic-ok? (*dynamic-rules?*) #:rules-file (*input-rules*))] ; rewrite-tree where new rules found during saturation are stored. ; If rwtree-out is different from rwtree, new rules are not used but only stored, ; and backward rewriting is deactivated. #:? [rwtree-out rwtree] ; or #false if don't care ; Only effective if (eq? rwtree rwtree-out) #:? [backward-rewrite? (*backward-rw?*)] #:? [parent-discard? (*parent-discard?*)] #:? [age:cost (*age:cost*)] ; chooses age if (< (modulo t (+ age cost)) age) #:? [cost-type (*cost-type*)] #:? [disp-proof? (*proof?*)] #:? [L-resolvent-pruning? (*L-resolvent-pruning?*)] #:? [find-unit-rules-in-candidates? (*find-unit-rules-in-candidates?*)] #:? [negative-literal-selection? (*negative-literal-selection?*)]) ;; Do NOT reset the clause-index, in particular if rwtree is kept over several calls to saturation. #;(reset-clause-index!) ;; Tree containing the active Clauses (define utree (make-unification-tree)) ;; Clauses are pulled from priority first, unless empty. ;; INVARIANT: active-Clauses U priority is (should be!) equisatisfiable with input-Clauses. ;; In other words, if priority is empty, then the set of active-Clauses ;; is equisatisfiable with the input-Clauses. ;; Some active clauses may be removed from utree and pushed back into priority for further ;; processing like 'backward' rewriting. In that case, the active Clauses (utree) is not ;; 'complete'. (define priority (make-queue)) ;; Both heaps contain the candidate clauses (there may be duplicates between the two, ;; but this is checked when extracting Clauses from either heap). (define candidates (make-heap Candidate<=)) (define age-queue (make-heap Clause-age>=)) ;; Frequency of extracting Clauses from either heap. (define age-freq (first age:cost)) (define cost-freq (second age:cost)) (define age+cost-freq (+ age-freq cost-freq)) ;; Add the Clauses Cs to the priority queue for priority processing. (define (add-priority-Clauses! Cs) (for ([C (in-list Cs)]) ; Need to set candidate? to #true otherwise it may be skipped. ; (or maybe we should not skip clauses loaded from `priority`?) (set-Clause-candidate?! C #true) (enqueue! priority C))) (define cost-depth-factor (*cost-depth-factor*)) ; immutable value (define (add-candidates! parent Cs) ;; Calculate costs and add to candidate heap. (unless (empty? Cs) (Clauses-calculate-cost! Cs cost-type parent #:cost-depth-factor cost-depth-factor) (for ([C (in-list Cs)]) (set-Clause-candidate?! C #true)) (unless (= 0 cost-freq) (heap-add-all! candidates Cs)) (unless (= 0 age-freq) (heap-add-all! age-queue Cs)) (when-debug>= steps (printf "#new candidates: ~a #candidates: ~a\n" (length Cs) (heap-count candidates))))) (define input-Clauses (map (λ (c) (make-Clause c '() #:type 'in)) input-clauses)) ;; This maintains the invariant: If priority is empty, then the set of active-Clauses ;; is equisatisfiable with the input-Clauses. ;; In other words active-Clauses U priority is (should be!) equisatisfiable with input-Clauses. (add-priority-Clauses! input-Clauses) ;; We add the Clauses of the binary rules as candidates, so as to not cluter the active set ;; in case there are many rules. ;; Another option is to add them to the priority queue because they can be seen as possibly ;; useful lemmas. (when rwtree ; A mock root clause parent of all input rules (define C0rules (make-Clause (list ltrue) '() #:type 'rules-root)) ; rewrite=#false should not be necessary (since rewriting checks if a clause is from the original (add-candidates! C0rules (rewrite-tree-original-Clauses rwtree))) (define step 0) (reset-n-tautologies!) (define n-parent-discard 0) (define n-forward-subsumed 0) (define n-backward-subsumed 0) (reset-n-binary-rewrites!) (reset-n-rule-added!) (reset-subsumes-stats!) (reset-n-L-resolvent-pruning!) (define start-time (current-milliseconds)) ;; TODO: Some calls are very slow... (define (make-return-dict status [other '()]) (assert (memq status statuses) status) (define stop-time (current-milliseconds)) `((status . ,status) (steps . ,step) (generated . ,clause-index) ; includes all input clauses and rules and intermediate steps (actives . ,(length (unification-tree-Clauses utree))) (candidates . ,(heap-count candidates)) (priority-remaining . ,(queue-length priority)) (tautologies . ,n-tautologies) ; counted in generated, (mostly) not in candidates ,@(rewrite-tree-stats rwtree) (binary-rewrites . ,n-binary-rewrites) (forward-subsumed . ,n-forward-subsumed) (backward-subsumed . ,n-backward-subsumed) (subsumes-checks . ,n-subsumes-checks) (subsumes-steps . ,n-subsumes-steps) (subsumes-breaks . ,n-subsumes-breaks) (parent-discard . ,n-parent-discard) (L-resolvent-pruning . ,n-L-resolvent-pruning) (memory . ,(current-memory-use)) ; doesn't account for GC---this would take too much time (time . ,(- stop-time start-time)) . ,other)) (define (make-refuted-dict C) (define proof (Clause-ancestor-graph C)) ; no duplicates (define flat-proof (flatten proof)) (define type-occs (occurrences flat-proof #:key Clause-type)) (when disp-proof? (displayln "#| begin-proof") (display-Clause-ancestor-graph C #:tab " ") (displayln "end-proof |#")) (make-return-dict 'refuted `((proof-length . ,(length flat-proof)) ; doesn't account for compound rewrites (proof-steps . ,(for/sum ([C2 (in-list flat-proof)]) (define n (length (Clause-parents C2))) (if (< n 2) n (- n 1)))) (proof-inferences . ,(count (λ (C2) (not (empty? (Clause-parents C2)))) flat-proof)) ,@(for/list ([(t o) (in-dict type-occs)]) (cons (string->symbol (format "proof-type:~a" t)) o))))) ;:::::::::::::::::::::; ;:: Saturation Loop ::; ;:::::::::::::::::::::; (define result (let loop () (++ step) (define time-passed (- (current-milliseconds) start-time)) ; this is fast (define mem (current-memory-use-MB)) ; mflatt says it's fast (when-debug>= steps (printf "\nstep: ~a generated: ~a processed/s: ~a generated/s: ~a\n" step clause-index (quotient (* 1000 step) (+ 1 time-passed)) (quotient (* 1000 clause-index) (+ 1 time-passed)))) (cond/else [(and (= 0 (heap-count candidates)) (= 0 (heap-count age-queue)) (= 0 (queue-length priority))) (when-debug>= steps (displayln "Saturated")) (make-return-dict 'saturated)] [(> step step-limit) (make-return-dict 'steps)] [(> time-passed (* 1000 cpu-limit)) (make-return-dict 'time)] [(and (> mem memory-limit) (block (define pre (current-milliseconds)) ;; Memory is full, but try to collect garbage first. (unless (*quiet-json?*) (printf "; before GC: memory-limit: ~a memory-use: ~a\n" memory-limit mem)) (collect-garbage) (collect-garbage) (define mem2 (current-memory-use-MB)) (define post (current-milliseconds)) (unless (*quiet-json?*) (printf "; after GC: memory-limit: ~a memory-use: ~a gc-time: ~a\n" memory-limit mem2 (* 0.001 (- post pre)))) (> mem2 memory-limit))) ; mem is full even after GC, so exit (make-return-dict 'memory)] #:else ;; Choose a queue/heap to extract the selected-Clause from. (define queue (cond [(> (queue-length priority) 0) ; Always has priority. priority] [(or (= 0 (heap-count candidates)) (and (> (heap-count age-queue) 0) (< (modulo step age+cost-freq) age-freq))) ; TODO: This is somewhat defeated by the `priority` queue. age-queue] [else candidates])) (when-debug>= steps (printf "Selected queue: ~a\n" (cond [(eq? queue priority) "priority"] [(eq? queue candidates) "candidates"] [else "age queue"]))) (define selected-Clause (if (heap? queue) (begin0 (heap-min queue) (heap-remove-min! queue)) (dequeue! queue))) #:cond ;; ALREADY PROCESSED [(not (Clause-candidate? selected-Clause)) (when-debug>= steps (displayln "Clause already processed. Skipping.")) (-- step) ; don't count this as a step (loop)] ;; ONE PARENT DISCARDED [(and parent-discard? (ormap Clause-discarded? (Clause-parents selected-Clause))) (when-debug>= steps (displayln "At least one parent has been discarded. Discard too.")) (discard-Clause! selected-Clause) (++ n-parent-discard) (loop)] #:else (set-Clause-candidate?! selected-Clause #false) ;; FORWARD REWRITE ;; BINARY CLAUSE REWRITE OF SELECTED ;; NOTICE: We do binary rewrites first because if we did unit then binary ;; we would need to attempt a second unit-rewrite after that. ;; (This may lead to unnecessary binary rewrites, but it's cleaner this way.) (define selected-Clause-brw (if rwtree (binary-rewrite-Clause rwtree selected-Clause) selected-Clause)) (when-debug>= steps (printf "|\nstep ~a: selected: ~a\n" step (Clause->string/alone selected-Clause 'all)) (define binary-rewritten? (not (eq? selected-Clause-brw selected-Clause))) (when binary-rewritten? (displayln "Binary rewritten:") (display-Clause-ancestor-graph selected-Clause-brw #:depth 1)) (unless (eq? selected-Clause-brw selected-Clause-brw) (displayln "Unit rewritten:") (display-Clause-ancestor-graph selected-Clause-brw #:depth 1)) (when-debug>= interact (interact-saturation (priority utree rwtree selected-Clause make-return-dict) selected-Clause-brw selected-Clause-brw))) (set! selected-Clause selected-Clause-brw) ;;; From now on, only selected-Clause should be used (define selected-clause (Clause-clause selected-Clause)) #:cond ;; REFUTED? [(empty-clause? selected-clause) (make-refuted-dict selected-Clause)] ;; TAUTOLOGY? [(clause-tautology? selected-clause) (when-debug>= steps (displayln "Tautology.")) (discard-Clause! selected-Clause) (loop)] ; skip clause ;; FORWARD SUBSUMPTION [(utree-find/any utree selected-Clause Clause-subsumes) ;; TODO: Tests => (λ (C2) (++ n-forward-subsumed) (when-debug>= steps (printf "Subsumed by ~a\n" (Clause->string C2 'all))) (discard-Clause! selected-Clause) (loop))] ; skip clause #:else ;; Clause is being processed. ;; BACKWARD SUBSUMPTION (define removed (utree-inverse-find/remove! utree selected-Clause Clause-subsumes)) (for-each discard-Clause! removed) (+= n-backward-subsumed (length removed)) (when-debug>= steps (define n-removed (length removed)) (when (> n-removed 0) (printf "#backward subsumed: ~a\n" n-removed) (when-debug>= interact (print-Clauses removed 'all)))) ;; FIND NEW REWRITE RULES (define clause-index-before-discover clause-index) (define new-rules (discover-new-rules! rwtree-out selected-Clause utree)) (define new-rule-Clauses (rules-original-Clauses new-rules)) ;; NOTICE: We MUST add Clauses that are newly generated to the set of active rules ;; (via priority) otherwise we may miss some resolutions. ;; Only the Clauses that have been created during the discovery process need to be added. ;; Notice: To prevent the clauses from which the rules have originated to be rewritten to ;; tautologies, a test is performed in binary-rewrite-literal. ;; But this applies *only* to the `eq?`-Clause of the rule, hence beware of copies or ;; rewrites. (add-priority-Clauses! (filter (λ (C) (> (Clause-idx C) clause-index-before-discover)) new-rule-Clauses)) ;; BACKWARD BINARY REWRITING ;; We don't need to backward rewrite if the new rules are not stored in rwtree, ;; as this means the set of used rules does not change during the whole saturation. (when (and backward-rewrite? rwtree (eq? rwtree rwtree-out) ; not storing new rules in a different rwtree (not (empty? new-rules))) ; Remove active Clauses that can be rewritten, and push them into priority. ; We must check whether the clauses we remove will be rewritten, ; otherwise we might add all the same candidates again when the removed Clause ; is popped from priority. (define removed-active-Clauses ;; TODO: This is inefficient. We should modify utree-inverse-find/remove! ;; TODO: to handle multiple rule-C so as to take advantage of its hash/cache. (remove-duplicates (flatten (for/list ([rule-C (in-list new-rule-Clauses)]) (utree-inverse-find/remove! utree rule-C (λ (_rule-C C2) (binary-rewrite-Clause? rwtree C2))))) eq?)) (unless (empty? removed-active-Clauses) (when-debug>= steps (displayln "Some active Clauses can be backward binary rewritten:") (print-Clauses removed-active-Clauses)) (add-priority-Clauses! removed-active-Clauses))) ;; Note that backward-rewritable Clauses are not yet discarded. They may be discarded ;; when they are pulled from priority and deemed discardable. ;;; Even if the selected Clause is a unit/binary rewrite rule, we must continue processing it ;;; and generate resolutions (because rewriting is only left-unification, not full unification) ;;; NEW CANDIDATES (define L-resolvent-pruning-allowed? (and L-resolvent-pruning? ; As per the invariant, if no Clause is in the priority queue, ; then the set of active Clauses of utree is equisatisfiable with the input clauses. (= 0 (queue-length priority)))) (define new-Candidates (if negative-literal-selection? (utree-resolve+unsafe-factors/select utree selected-Clause #:rewriter (λ (C) (binary-rewrite-Clause rwtree C))) (utree-resolve+unsafe-factors utree selected-Clause #:rewriter (λ (C) (binary-rewrite-Clause rwtree C)) #:L-resolvent-pruning? L-resolvent-pruning-allowed?))) (when-debug>= interact (displayln "New candidates:") (print-Clauses new-Candidates)) ;; If a clause has no resolvent with the active set (when complete) ;; then it will never resolve with anything and can thus be discarded. #:cond [(and L-resolvent-pruning-allowed? (empty? new-Candidates)) (discard-Clause! selected-Clause) (when-debug>= steps (printf "No resolvent (L-resolvent-pruning?=~a). Clause discarded. \n" L-resolvent-pruning?)) (loop)] #:else ;; ADD CLAUSE TO ACTIVES ;; Rewrite the candidates with unit and binary rules, filter out tautologies, ;; calculate their costs and add them to the queues. (add-candidates! selected-Clause new-Candidates) ;; UNIT RULE DISCOVERY IN CANDIDATES ;; Look for unit rewrite rules in the candidate set. ;; (Looking for binary rules would be too costly here) (when find-unit-rules-in-candidates? (when rwtree-out (for ([C (in-list new-Candidates)]) (when (unit-Clause? C) ;; TODO: Should be calling/merged with discover-rules! to avoid inconsistencies (rewrite-tree-add-unit-Clause! rwtree-out C #:rewrite? #false))))) (add-Clause! utree selected-Clause) (when-debug>= steps (displayln "Adding clause.") (print-active-Clauses utree #false)) (loop)))) (when-debug>= interact (displayln "Saturation loop finished.") (pretty-print result) (define selected-Clause #false) ; mock up (interact-saturation (priority utree rwtree selected-Clause make-return-dict))) result) ;========================; ;=== User interaction ===; ;========================; ;; Some commands to use with '--debug interact'. Type 'help' for information. (define interact-commands '()) (define-namespace-anchor ns-anchor) (define-syntax-rule (interact-saturation (priority utree rwtree selected-Clause make-return-dict) more ...) (begin (define what '(idx parents clause-pretty)) (interact #:command (and (not (empty? interact-commands)) (begin0 (first interact-commands) (rest! interact-commands))) #:variables (priority utree rwtree what more ...) #:namespace-anchor ns-anchor #:readline? #true [(list 'steps (? number? n)) "skips n steps" (when (> n 0) (cons! "" interact-commands) (cons! (format "steps ~a" (- n 1)) interact-commands))] [(list (or 'ancestors 'ancestor-graph 'graph)) "display the ancestor graph of the selected Clause." (display-Clause-ancestor-graph selected-Clause)] [(list (or 'ancestors 'ancestor-graph 'graph) (? number? depth)) "display the ancestor graph of the selected Clause down to the given depth." (display-Clause-ancestor-graph selected-Clause #:depth depth)] [(list 'what-fields) (string-append "Prints which fields are available for 'what,\n" "which is used for printing clause information.") (displayln Clause->string-all-fields)] [(list 'selected) "Selected clause" (print-Clauses (list selected-Clause) what)] [(list 'active) "Active clauses" (print-active-Clauses utree #true what)] [(list (or 'binary 'rules)) "Found binary rules" (print-binary-rules rwtree #true)] [(list 'stats) "Return-dictionary-like stats" (pretty-print (make-return-dict 'running))] [(list 'save-rules) "Save the binary rules from the default rules-file" (save-rules! rwtree #:rules-file (*output-rules*))]))) ;; Prints the set of active Clauses (held in utree). ;; ;; utree : unification-tree? ;; long? : boolean? ;; what : (or/c 'all (listof symbol?)) ;; -> void? (define (print-active-Clauses utree long? [what 'all]) (define actives (unification-tree-Clauses utree)) (printf "#active clauses: ~a\n" (length actives)) (when long? (displayln "Active clauses:") (print-Clauses (sort actives < #:key Clause-idx) what))) ;; Prints the set of binary rules. ;; ;; rewrite-tree? boolean? -> void? (define (print-binary-rules rwtree long?) (define rules (rewrite-tree-rules rwtree)) (printf "#binary rules: ~a #original clauses: ~a\n" (length rules) (length (remove-duplicates (map rule-Clause rules) eq?))) (when long? (display-rules (rewrite-tree-rules rwtree)))) ;============================; ;=== Iterative saturation ===; ;============================; ;; A struct holding information about a given input formula. (struct problem (file name clauses [time-used #:mutable] [last-time #:mutable])) ;; file? (or/ #false string?) (listof clause?) -> problem? (define (make-problem file name clauses) (problem file name clauses 0 0)) ;; Returns the same values as body ... but evaluates time-body ... before returning. ;; The result of time-body ... is discarded. (define-syntax-rule (with-time-result [(cpu real gc) time-body ...] body ...) (let-values ([(res cpu real gc) (time-apply (λ () body ...) '())]) time-body ... (apply values res))) ;; Calls saturation for a set of problems in a loop. ;; Tries again each unsolved problem after multiplying the step-limit by step-limit-factor ;; and so on untill all problems are solved. ;; Loading time from files is *not* taken into account. ;; ;; problems : (listof problem?) ;; saturate : procedure? ;; memory-limit : number? ;; cpu-limit : number? ;; cpu-first-limit : number? ;; cpu-limit-factor? : number? ;; -> void? (define (iterative-saturation/problem-set problems saturate #:! memory-limit #:! cpu-limit ; in second #:! cpu-first-limit ; in seconds #:! cpu-limit-factor) ; in seconds (define n-problems (length problems)) (define n-attempted 0) (define n-solved 0) (with-time-result [(cpu real gc) (unless (*quiet-json?*) (printf "; Total time: cpu: ~a real: ~a gc: ~a\n" cpu real gc))] (let loop ([problems problems] [iter 0]) (define n-unsolved (length problems)) (define n-solved-iter 0) (define n-attempted-iter 0) (define new-unsolved (for/fold ([unsolved '()] [cumu-time 0] #:result (reverse unsolved)) ([prob (in-list problems)]) (define input-clauses (problem-clauses prob)) (when-debug>= init (for-each (compose displayln clause->string) input-clauses)) ;; Collecting garbage can take time even when there's nothing to collect, ;; and can take a significant proportion of the time when solving is fast, ;; hence it's better to trigger GC only if needed. (when (>= (current-memory-use-MB) (* 0.8 memory-limit)) (collect-garbage) (collect-garbage)) ;; Main call (define cpu-limit-problem (min (max cpu-first-limit (* cpu-limit-factor (problem-last-time prob))) (- cpu-limit (problem-time-used prob)))) (define res (saturate input-clauses cpu-limit-problem)) (set! res (append `((name . ,(problem-name prob)) (file . ,(problem-file prob))) res)) (++ n-attempted-iter) (when (= 0 iter) (++ n-attempted)) (define solved? (or (check-status res 'refuted) (check-status res 'saturated))) (when solved? (++ n-solved-iter) (++ n-solved)) (define last-time (* 0.001 (dict-ref res 'time))) (set-problem-last-time! prob last-time) (set-problem-time-used! prob (+ (problem-time-used prob) last-time)) (set! res (dict-set res 'cumulative-time (exact-ceiling (* 1000 (problem-time-used prob))))) (define remove-problem? (or solved? (check-status res 'memory) ; more time won't help if status=memory (>= (problem-time-used prob) cpu-limit))) ; cpu exhausted for this problem ; Don't pretty-print to keep it on a single line which is simpler for parsing. ; Only print the last iteration of a problem for borg. (cond [(*quiet-json?*) (when remove-problem? (displayln (saturation-result->json res)))] [else (pretty-write res) (printf "; ~a/~a solved (iter: ~a/~a/~a success: ~a% avg-time: ~as ETA: ~as)\n" n-solved n-attempted n-solved-iter n-attempted-iter n-unsolved (~r (* 100 (/ n-solved-iter n-attempted-iter)) #:precision '(= 1)) (~r (/ cumu-time n-attempted-iter 1000.) #:precision '(= 3)) (~r (* (/ cumu-time n-attempted-iter 1000.) (- n-unsolved n-attempted-iter)) #:precision '(= 2)))]) (flush-output) (values (if remove-problem? unsolved (cons prob unsolved)) (+ cumu-time last-time)))) (unless (or (empty? new-unsolved) (= cpu-limit-factor 0)) (loop new-unsolved (+ iter 1)))))) ;; Calls saturate on a single set of clauses, first with a time limit of cpu-first-limit, ;; then restarts and doubles it until the cumulative time reaches cpu-limit. ;; Loading time is taken into account. ;; During a call to saturate, the new rewrite rules are saved in a separate tree, ;; which means that no new rule is introduced until the next restart—and thus the first ;; call to saturate uses no rewrite rule. ;; ;; NOTICE: In this mode the unit rewrites are gathered only for the next round, but this is ;; likely not necessary! ;; ;; saturate : procedure? ;; tptp-program : string? ;; rwtree-in : rewrite-tree? ;; discover-online? : boolean? ;; cpu-limit : number? ;; cpu-first-limit : number? ;; cpu-limit-factor? : number? ;; -> void? (define (iterative-saturation saturate #:! tptp-program #:! rwtree-in #:? [discover-online? (*discover-online?*)] #:? [cpu-limit (*cpu-limit*)] #:? [cpu-first-limit (*cpu-first-limit*)] #:? [cpu-limit-factor (*cpu-limit-factor*)]) (define cpu-start (current-inexact-seconds)) ; Don't make new Clauses here, they need to be created at each `saturation` call. (define clauses (tptp-prog->clauses tptp-program)) (define quiet? (*quiet-json?*)) (define n-rules-init (rewrite-tree-count rwtree-in)) (let loop ([iter 1] [uncapped-current-cpu-limit cpu-first-limit] [rwtree-in rwtree-in]) (define remaining-cpu (- cpu-limit (- (current-inexact-seconds) cpu-start))) (define current-cpu-limit (min remaining-cpu uncapped-current-cpu-limit)) (unless quiet? (printf "; iter: ~a remaining-cpu: ~a current-cpu-limit: ~a\n" iter remaining-cpu current-cpu-limit)) ; Simplify the set of rules (only once) (unless (and (= 1 iter) (= 0 n-rules-init)) ; don't do this if no restarting ; Note that these steps destroy the Clause ancestry, and proofs will be incomplete. (unless quiet? (printf "; Rules stats: ~v\n" (rewrite-tree-stats rwtree-in)) (displayln "; Simplifying the rules via re-add-rules!")) ;; Rewrite lhs and rhs of rules, remove subsumed and tautologies. (re-add-rules! rwtree-in) (unless quiet? (printf "; Rules stats: ~v\n" (rewrite-tree-stats rwtree-in)) (printf "; Confluence! bounded? = ~a\n" (*bounded-confluence?*))) ;; Unify rhs of rules to produce new rules. (rewrite-tree-confluence! rwtree-in) (unless quiet? (printf "; Rules stats: ~v\n" (rewrite-tree-stats rwtree-in)) (displayln "; Simplifying the rules via re-add-rules! (again)")) ;; Rewrite and simplify again. (re-add-rules! rwtree-in) (unless quiet? (printf "; Rules stats: ~v\n" (rewrite-tree-stats rwtree-in)))) (flush-output) (define rwtree-out (if discover-online? rwtree-in (rewrite-tree-shallow-copy rwtree-in))) (define res (saturate #:clauses clauses #:cpu-limit current-cpu-limit #:rwtree-in rwtree-in #:rwtree-out rwtree-out)) (define new-cumulative-cpu (- (current-inexact-seconds) cpu-start)) (set! res (dict-set res 'cumulative-time (exact-ceiling (* 1000. new-cumulative-cpu)))) ; ms (set! res (dict-set res 'saturation-iter iter)) (define solved? (or (check-status res 'refuted) (check-status res 'saturated))) ;; We exit also if memory limit has been reached, but we could instead restart ;; if new rules have been found. (define finished? (or solved? (check-status res 'memory) (> new-cumulative-cpu cpu-limit))) (cond [(*quiet-json?*) (when finished? (displayln (saturation-result->json res)))] [else (pretty-write res)]) (flush-output) (cond [finished? (when (*output-rules*) (unless quiet? (printf "Saving rules to ~a\n" (if (string? (*output-rules*)) (*output-rules*) (path->string (*output-rules*))))) (save-rules! rwtree-out #:rules-file (*output-rules*)))] [else (loop (+ iter 1) (* uncapped-current-cpu-limit cpu-limit-factor) rwtree-out)]))) ================================================ FILE: satore/scribblings/satore.scrbl ================================================ #lang scribble/manual @title{First-order logic saturation with atom rewriting} See the @hyperlink["https://github.com/deepmind/deepmind-research/tree/master/satore"]{readme}. ================================================ FILE: satore/tests/Clause.rkt ================================================ #lang racket/base (require racket/list rackunit (submod satore/Clause test) satore/Clause satore/unification) ;; Polarity should not count for the 'weight' cost function because otherwise it will be harder ;; to prove ~A | ~B than A | B. (check-equal? (Clause-size (make-Clause '[p q])) (Clause-size (make-Clause '[(not p) (not q)]))) (check-equal? (Clause-size (make-Clause '[p q])) (Clause-size (make-Clause '[(not p) q]))) (let () (define Cs1 (map Clausify '([(p A B) (p B C) (p D E)] [(q A B C) (q B A C)] [(r X Y)]))) (define Cs2 (shuffle (map (λ (C) (make-Clause (fresh (Clause-clause C)))) Cs1))) (check-Clause-set-equivalent? Cs1 Cs2) (check-Clause-set-equivalent? Cs2 Cs1)) ================================================ FILE: satore/tests/clause.rkt ================================================ #lang racket/base (require racket/dict rackunit satore/clause satore/misc satore/unification) (*subsumes-iter-limit* 0) (begin (define-simple-check (check-tautology cl res) (check-equal? (clause-tautology? (sort-clause (Varify cl))) res)) (check-tautology '[] #false) (check-tautology `[,ltrue] #true) (check-tautology `[,(lnot lfalse)] #true) (check-tautology '[a] #false) (check-tautology '[a a] #false) (check-tautology '[a (not a)] #true) (check-tautology '[a b (not c)] #false) (check-tautology '[a b (not a)] #true) (check-tautology '[a (not (a a)) (a b) (not (a (not a)))] #false) (check-tautology '[a (a a) b c (not (a a))] #true) (check-tautology `[(a b) b (not (b a)) (not (b b)) (not (a c)) (not (a ,(Var 'b)))] #false) ) (begin ;; Equivalences (for ([(A B) (in-dict '(([] . [] ) ; if empty clause #true, everything is #true ([p] . [p] ) ([(p X)] . [(p X)] ) ([(p X)] . [(p Y)] ) ([(not (p X))] . [(not (p X))] ) ([(p X) (q X)] . [(p X) (q X) (q Y)] ) ))]) (define cl1 (sort-clause (Varify A))) (define cl2 (sort-clause (fresh (Varify B)))) (check-not-false (clause-subsumes cl1 cl2) (format "cl1: ~a\ncl2: ~a" cl1 cl2)) (check-not-false (clause-subsumes cl2 cl1) (format "cl1: ~a\ncl2: ~a" cl1 cl2)) ) ;; One-way implication (not equivalence) (for ([(A B) (in-dict '(([] . [p] ) ; if empty clause #true, everything is #true ([p] . [p q] ) ([(p X)] . [(p c)] ) ([(p X) (p X) (p Y)] . [(p c)] ) ([(p X)] . [(p X) (q X)] ) ([(p X)] . [(p X) (q Y)] ) ([(p X Y)] . [(p X X)] ) ([(p X) (q Y)] . [(p X) (p Y) (q Y)] ) ([(p X) (p Y) (q Y)] . [(p Y) (q Y) c] ) ([(p X Y) (p Y X)] . [(p X X)] ) ([(q X X) (q X Y) (q Y Z)] . [(q a a) (q b b)]) ([(f (q X)) (p X)] . [(p c) (f (q c))]) ; A θ-subsumes B, but does not θ-subsume it 'strictly' ([(p X Y) (p Y X)] . [(p X X) (r)]) ))]) (define cl1 (sort-clause (Varify A))) (define cl2 (sort-clause (fresh (Varify B)))) (check-not-false (clause-subsumes cl1 cl2)) (check-false (clause-subsumes cl2 cl1))) ; Not implications, both ways. Actually, this is independence (for ([(A B) (in-dict '(([p] . [q]) ([(p X)] . [(q X)]) ([p] . [(not p)]) ([(p X c)] . [(p d Y)]) ([(p X) (q X)] . [(p c)]) ([(p X) (f (q X))] . [(p c)]) ([(eq X X)] . [(eq (mul X0 X1) (mul X2 X3)) (not (eq X0 X2)) (not (eq X1 X3))]) ; A implies B, but there is no θ-subsumption ; https://www.doc.ic.ac.uk/~kb/MACTHINGS/SLIDES/2013Notes/6LSub4up13.pdf ([(p (f X)) (not (p X))] . [(p (f (f Y))) (not (p Y))]) ))]) (define cl1 (sort-clause (Varify A))) (define cl2 (sort-clause (fresh (Varify B)))) (check-false (clause-subsumes cl1 cl2) (list (list 'A= A) (list 'B= B))) (check-false (clause-subsumes cl2 cl1) (list A B))) (let* () (define cl (Varify `((not (incident X Y)) (not (incident ab Y)) (not (incident ab Z)) (not (incident ab Z)) (not (incident ac Y)) (not (incident ac Z)) (not (incident ac Z)) (not (incident bc a1b1)) (not (line_equal Z Z)) (not (point_equal bc X))))) (define cl2 (sort-clause (fresh (left-substitute cl (hasheq (symbol->Var-name 'X) 'bc (symbol->Var-name 'Y) 'a1b1))))) (check-not-false (clause-subsumes cl cl2)))) #; (begin ; This case SHOULD pass, according to the standard definition of clause subsumption based on ; multisets, but our current definition of subsumption is more general (not necessarily in a ; good way.) ; Our definition is based on sets, with a constraint on the number of literals (in ; Clause-subsumes). ; This makes it more general, but also not well-founded (though I'm not sure yet whether this is ; really bad). (check-false (clause-subsumes (clausify '[(p A A) (q X Y) (q Y Z)]) (clausify '[(p a a) (p b b) (q C C)])))) (begin (*debug-level* (debug-level->number 'steps)) (define-simple-check (check-safe-factoring cl res) (define got (safe-factoring (sort-clause (Varify cl)))) (set! res (sort-clause (Varify res))) ; Check equivalence (check-not-false (clause-subsumes res got)) (check-not-false (clause-subsumes got res))) (check-safe-factoring '[(p a b) (p A B)] '[(p a b)]) ; Note that [(p a b) (p A B)] ≠> (p A B) (check-safe-factoring '[(p X) (p Y)] '[(p Y)]) (check-safe-factoring '[(p Y) (p Y)] '[(p Y)]) (check-safe-factoring '[(p X) (q X) (p Y) (q Y)] '[(p Y) (q Y)]) (check-safe-factoring '[(p X Y) (p A X)] '[(p X Y) (p A X)]) (check-safe-factoring '[(p X Y) (p X X)] '[(p X X)]) ; is a subset of above, so necessarily no less general (check-safe-factoring '[(p X Y) (p A X) (p Y A)] '[(p X Y) (p A X) (p Y A)]) ; cannot be safely factored? (check-safe-factoring '[(p X) (p Y) (q X Y)] '[(p X) (p Y) (q X Y)]) ; Cannot be safely factored (proven) (check-safe-factoring '[(leq B A) (leq A B) (not (def B)) (not (def A))] '[(leq B A) (leq A B) (not (def B)) (not (def A))]) ; no safe factor (check-safe-factoring '[(p X) (p (f X))] '[(p X) (p (f X))]) (check-safe-factoring (fresh '((not (incident #s(Var 5343) #s(Var 5344))) (not (incident ab #s(Var 5344))) (not (incident ab #s(Var 5345))) (not (incident ab #s(Var 5345))) (not (incident ac #s(Var 5344))) (not (incident ac #s(Var 5345))) (not (incident ac #s(Var 5345))) (not (incident bc a1b1)) (not (line_equal #s(Var 5345) #s(Var 5345))) (not (point_equal bc #s(Var 5343))))) (fresh '((not (incident #s(Var 148) #s(Var 149))) (not (incident ab #s(Var 149))) (not (incident ab #s(Var 150))) (not (incident ac #s(Var 149))) (not (incident ac #s(Var 150))) (not (incident bc a1b1)) (not (line_equal #s(Var 150) #s(Var 150))) (not (point_equal bc #s(Var 148)))))) (check-not-exn (λ () (safe-factoring (fresh '((not (incident #s(Var 5343) #s(Var 5344))) (not (incident ab #s(Var 5344))) (not (incident ab #s(Var 5345))) (not (incident ab #s(Var 5345))) (not (incident ac #s(Var 5344))) (not (incident ac #s(Var 5345))) (not (incident ac #s(Var 5345))) (not (incident bc a1b1)) (not (line_equal #s(Var 5345) #s(Var 5345))) (not (point_equal bc #s(Var 5343)))))))) ) ================================================ FILE: satore/tests/confluence.rkt ================================================ #lang racket/base (require (for-syntax racket/base syntax/parse) define2 global racket/list racket/pretty rackunit satore/Clause satore/clause satore/rewrite-tree satore/unification) (define-global:boolean *dynamic-ok?* #true "Use dynamic rules?") (define (take-at-most l n) (take l (min (length l) n))) (define (display-rwtree rwtree #:? [n-max 100]) (define rules (rewrite-tree-rules rwtree)) (define-values (statics dyns) (partition rule-static? (filter-not (λ (rl) (lnot? (rule-from-literal rl))) rules))) (display-rules (take-at-most (reverse (sort-rules statics)) n-max)) (display-rules (take-at-most (reverse (sort-rules dyns)) n-max)) (when (or (> (length statics) n-max) (> (length dyns) n-max)) (displayln "(output truncated because there are too many rules)")) (pretty-write (rewrite-tree-stats rwtree))) ;; Adds an equivalence as rules. ;; For testing purposes. (define (add-equiv! rwtree equiv) (define C (make-Clause (clausify (list (lnot (first equiv)) (second equiv))))) (force-add-binary-Clause! rwtree C)) (define (rewrite-literal rwt lit) (define-values (new-lit rls) (binary-rewrite-literal rwt lit #false)) new-lit) ;; Given a set of implications, generate equivalence (define (equivs->rwtree equivs #:? [dynamic-ok? (*dynamic-ok?*)] #:? [atom<=> (get-atom<=>)]) (define rwt (make-rewrite-tree #:atom<=> atom<=> #:dynamic-ok? dynamic-ok?)) (for ([equiv (in-list equivs)]) (add-equiv! rwt equiv) (add-equiv! rwt (map lnot equiv))) rwt) (define-syntax (test-confluence stx) (syntax-parse stx [(_ equivs expected-stats #:with rwt body ...) #'(let () (define rwt (equivs->rwtree equivs)) (rewrite-tree-confluence! rwt) (define stats (rewrite-tree-stats rwt)) (unless (equal? stats expected-stats) (display-rwtree rwt)) (check-equal? stats expected-stats) body ...)] [(_ equivs expected-stats) #'(test-confluence equivs expected-stats #:with _rwt)])) (with-globals ([*bounded-confluence?* #true] [*dynamic-ok?* #false]) ;; This induction does work and is not subsumed. ;; This is possibly the minimal induction scheme (that doesn't lead to subsumed rules). (test-confluence '([(p A (f B)) (p A B)] [(p C C) d]) ; not left linear ; Should not produce longer rules than the parents! '((rules . 6) (unit-rules . 0) (binary-rules . 6) (binary-rules-static . 6) (binary-rules-dynamic . 0))) (test-confluence '([(p (f (f (f z))) (f (f (f z)))) (g (g (g b)))] ; should -> b [(p (f (f (f z))) (f (f (f X)))) b] [(p (f (f z)) (f (f X))) c] [(p (f z) (f X)) d] [(p X X) (q X)]) '((rules . 18) ; 16 also ok (unit-rules . 0) (binary-rules . 18) (binary-rules-static . 18) (binary-rules-dynamic . 0)) #:with rwt (check-equal? (rewrite-literal rwt '(p z z)) '(q z)) (check-equal? (rewrite-literal rwt '(p (f (f (f z))) (f (f (f a))))) 'b) (check-equal? (rewrite-literal rwt '(p (f (f (f z))) (f (f (f z))))) 'b)) (test-confluence '([(p a X) q] [(p X a) f] [(p a a) (g b)]) '((rules . 8) (unit-rules . 0) (binary-rules . 8) (binary-rules-static . 8) (binary-rules-dynamic . 0)) #:with rwt (check-equal? (rewrite-literal rwt '(p a a)) 'f) (check-equal? (rewrite-literal rwt '(p a b)) 'f) (check-equal? (rewrite-literal rwt '(g b)) 'f) (check-equal? (rewrite-literal rwt 'q) 'f)) ) ================================================ FILE: satore/tests/interact.rkt ================================================ #lang racket/base (require racket/list racket/port rackunit satore/interact) (define-syntax-rule (check-interact in out args ...) (check-equal? (with-output-to-string (λ () (with-input-from-string (string-append in "\n\n") ; ensure no read loop (λ () (interact args ...))))) out)) (define-namespace-anchor ns-anchor) ; optional, to use the eval command (let ([x 2] [y 'a]) (check-interact "x\ny\nx 3\nx" "2\n'a\n3\n" #:prompt "" #:variables (x y))) (let ([x 3] [y 'a]) (check-interact "yo\nyo 4\nx\nx 2\nx" "yo\n(yo yo yo yo)\n3\n2\n" #:prompt "" #:namespace-anchor ns-anchor #:variables (x y) ;; All patterns must be of the form (list ....) [(list 'yo) "prints yo" (displayln "yo")] [(list 'yo (? number? n)) "prints multiple yos" (displayln (make-list n 'yo))])) ================================================ FILE: satore/tests/misc.rkt ================================================ #lang racket/base (require rackunit satore/misc) (define-counter num 0) (check-equal? num 0) (++num) (check-equal? num 1) (++num 3) (check-equal? num 4) (reset-num!) (check-equal? num 0) ================================================ FILE: satore/tests/rewrite-tree.rkt ================================================ #lang racket/base (require bazaar/debug (except-in bazaar/order atom<=>) racket/file racket/list racket/random rackunit (submod satore/Clause test) satore/Clause satore/clause satore/misc satore/rewrite-tree satore/unification) (*debug-level* 0) (define-check (check-rewrite rwtree c crw) (define C (Clausify c)) (define Crw (binary-rewrite-Clause rwtree C)) (define crw-sorted (sort-clause crw)) (unless (equal? (Clause-clause Crw) crw-sorted) (eprintf "c-sorted : ~a\ncrw-sorted: ~a\n" (Clause-clause C) crw-sorted) (eprintf (Clause-ancestor-graph-string Crw)) (fail-check))) (define-simple-check (check-not-rewrite rwtree c) (check-rewrite rwtree c c)) ;;; Self-equivalence (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define C1 (make-Clause (clausify '[(not (eq A B)) (eq B A)]))) (define rls1 (Clause->rules C1 C1 #:atom<=> atom1<=>)) (rewrite-tree-add-binary-Clause! rwtree C1 C1) (check-equal? (rewrite-tree-count rwtree) 2) ; Rewrite clause in lexicographical order (check-rewrite rwtree '[(eq b a)] '[(eq a b)])) ;;; Adding two converse implications (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define C1 (make-Clause (clausify '[(not (p A A)) (q A)]))) (define C2 (make-Clause (clausify '[(not (q A)) (p A A)]))) (define rls1 (Clause->rules C1 C2 #:atom<=> atom1<=>)) (rewrite-tree-add-binary-Clause! rwtree C1 C2) ; This is not needed because both polarities are considered by Clause->rules: (rewrite-tree-add-binary-Clauses! rwtree (list C2) C1 #:rewrite? #true) (check-equal? (rewrite-tree-count rwtree) 2) (check-rewrite rwtree '[(p a a) (z c)] '[(q a) (z c)]) (check-rewrite rwtree '[(not (p a a)) (z c)] '[(not (q a)) (z c)])) ;;; Adding rules where the converse implication is more general (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define Crules (map (compose make-Clause clausify) '([(not (p A A)) (q A)] [(not (q a)) (p a a)] [(not (q b)) (p b b)]))) (for ([C (in-list (rest Crules))]) (rewrite-tree-add-binary-Clause! rwtree C (first Crules))) (check-equal? (rewrite-tree-count rwtree) 4) (check-rewrite rwtree '[(p a a) (z c)] '[(q a) (z c)]) (check-rewrite rwtree '[(not (p a a)) (z c)] '[(not (q a)) (z c)]) (check-rewrite rwtree '[(p b b) (z c)] '[(q b) (z c)]) (check-rewrite rwtree '[(not (p b b)) (z c)] '[(not (q b)) (z c)]) (check-not-rewrite rwtree '[(p x x) (z c)])) ;;; The same with add-binary-Clauses (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define Crules (map (compose make-Clause clausify) '([(not (p A A)) (q A)] [(not (q a)) (p a a)] [(not (q b)) (p b b)]))) (rewrite-tree-add-binary-Clauses! rwtree (rest Crules) (first Crules)) (check-equal? (rewrite-tree-count rwtree) 4) (check-rewrite rwtree '[(p a a) (z c)] '[(q a) (z c)]) (check-rewrite rwtree '[(not (p a a)) (z c)] '[(not (q a)) (z c)]) (check-not-rewrite rwtree '[(p x x) (z c)])) ;;; Dynamic, non-self-converse Clauses, leading to 4 rules (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define C1 (make-Clause (clausify '[(not (p A B C)) (p C A B)]))) (define C2 (make-converse-Clause C1)) (define rls1 (Clause->rules C1 C2 #:atom<=> atom1<=>)) (rewrite-tree-add-binary-Clause! rwtree C1 C2) (check-equal? (rewrite-tree-count rwtree) 4) (check-rewrite rwtree '[(p a b c)] '[(p a b c)]) (check-rewrite rwtree '[(p c a b)] '[(p a b c)]) (check-rewrite rwtree '[(p b c a)] '[(p a b c)]) (check-rewrite rwtree '[(p b a c)] '[(p a c b)])) ;;; Some random testing to make sure atom<=> has the Groundedness property. (define (random-atom) (define syms '(aaa a p q r z zzz)) (define choices (append syms syms '(NV OV L L))) ; reduce proba of NV and OV (define vars '()) (let loop () (define r (random-ref choices)) (case r [(NV) ; new var (define v (new-Var)) (set! vars (cons v vars)) v] [(OV) (if (empty? vars) (loop) (random-ref vars))] ; old vars [(L) (cons (random-ref syms) ; first element must be a symbol (build-list (random 4) (λ (i) (loop))))] [else r]))) (define random-atom-bank (remove-duplicates (build-list 1000 (λ _ (random-atom))))) (debug-vars (length random-atom-bank)) (define (check-groundedness atom<=> lita litb) (define from<=>to (atom<=> lita litb)) ; no point in testing groundedness if we don't have from literal< to (assert (orderto) lita litb from<=>to) (define vs (vars (list lita litb))) (define s (make-subst)) (for ([v (in-list vs)]) (subst-set!/name s v (random-ref random-atom-bank))) (define lita2 (substitute lita s)) (define litb2 (substitute litb s)) (check-equal? (atom<=> lita2 litb2) '<)) (for ([i 10000]) (apply check-groundedness atom1<=> (Varify '[(eq A B) (eq A (mul B a))])) (apply check-groundedness atom1<=> (Varify '[(eq A B a) (eq A (mul B a))]))) ; IMPORTANT CASE: Check circularity of the rules ; Imagine we have two clauses: ; c1 = p | q ; c2 = ~p | ~q ; They are converse implications. ; From c1 we can generate the rules: ; r1 = ~p → q ; r2 = ~q → p ; and from c2 we can generate: ; r3 = p → ~q ; r4 = q → ~p ; If we choose {r1, r4} or {r2, r3} we run in circles! ; Hence the valid choices are {r2, r4} and {r1, r2} ; {r2, r4} is justified by removing negations and considering 'p < 'q. ; {r1, r2} is justified by considering that the negated atoms 'weigh' more. ; ; Now if the two clauses are: ; c3 = ~p | q with rules p → q and ~q → ~p ; c4 = p | ~q with rules ~p → ~q and q → p ; Now we should choose q → p and ~q → ~p to avoid running in circles. (for* ([lits (in-list '( (p q) ; + ((not p) (not q)) (p (not q)) ((distinct_points A B) (equal_points A B)) ((distinct_points A B) (not (equal_points A B))) ))] [r1 (in-list (Clause->rules (Clausify lits) #false #:atom<=> atom1<=>))] [r2 (in-list (Clause->rules (Clausify (map lnot lits)) #false #:atom<=> atom1<=>))]) ; The rules should NOT be circular! (check-not-equal? (Vars->symbols (list (rule-from-literal r1) (rule-to-literal r1))) (Vars->symbols (list (rule-to-literal r2) (rule-from-literal r2))))) ;; Saving and loading rules, especially with asymmetric rules. (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define rwtree2 (make-rewrite-tree #:atom<=> atom1<=>)) ;; Asymmetric rules (let ([Conv (Clausify '[(not (p A A)) (q A)])]) (rewrite-tree-add-binary-Clauses! rwtree (map Clausify '([(not (q a)) (p a a)] [(not (q b)) (p b b)] [(not (q c)) (p c c)])) Conv)) ; Self-converse (let ([C (Clausify '[(not (eq A B)) (eq B A)])]) (rewrite-tree-add-binary-Clause! rwtree C C)) ; Symmetric (rewrite-tree-add-binary-Clause! rwtree (Clausify '[(not (pp A A)) (qq A)]) (Clausify '[(pp A A) (not (qq A))])) (define Crules (rewrite-tree-original-Clauses rwtree)) (define f (make-temporary-file)) (save-rules! rwtree #:rules-file f) (load-rules! rwtree2 #:rules-file f) (define Crules2 (rewrite-tree-original-Clauses rwtree2)) (check-equal? (length Crules2) (length Crules)) ;; not efficient (for ([C (in-list Crules)]) (define cl (Clause-clause C)) (check-not-false (for/or ([C2 (in-list Crules2)]) (Clause-equivalence? C C2)) cl))) ;; Tautology reduction (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (rewrite-tree-add-binary-Clause! rwtree (make-Clause (clausify '[(not (p (p X))) (p X)])) (make-Clause (clausify '[(p (p X)) (not (p X))]))) (check-equal? (rewrite-tree-stats rwtree) '((rules . 2) (unit-rules . 0) (binary-rules . 2) (binary-rules-static . 2) (binary-rules-dynamic . 0))) ; These should be reduced to tautologies and thus not added (rewrite-tree-add-binary-Clause! rwtree (make-Clause (clausify '[(not (p (p (p X)))) (p X)])) (make-Clause (clausify '[(p (p (p X))) (not (p X))]))) (check-equal? (rewrite-tree-stats rwtree) '((rules . 2) (unit-rules . 0) (binary-rules . 2) (binary-rules-static . 2) (binary-rules-dynamic . 0)))) ;; Tautology reduction by dynamic rule ;; Currently fails #; (let () (define rwtree (make-rewrite-tree #:atom<=> atom1<=>)) (define Cp (Clausify '[(not (p A B)) (p B A)])) (rewrite-tree-add-binary-Clause! rwtree Cp Cp) ; What should we do? ; The dynamic rule *can* reduce this to a tautology, but doesn't because ; it can't be ground-oriented. (check Clause-equivalence? (binary-rewrite-Clause rwtree (Clausify '[(p A B) (p B A) q])) (Clausify '[(p A B) q])) ; Same, but after a rewrite (rewrite-tree-add-binary-Clause! rwtree (Clausify '[(not (p (f A) B)) (p A B)]) (Clausify '[(p (f A) B) (not (p A B))])) (check Clause-equivalence? (binary-rewrite-Clause rwtree (Clausify '[(p (f A) B) (p B A) q])) (Clausify '[(p A B) q]))) ================================================ FILE: satore/tests/saturation.rkt ================================================ #lang racket/base (require (for-syntax racket/base) define2 define2/define-wrapper global racket/dict racket/pretty rackunit (prefix-in sat: satore/saturation) satore/clause satore/misc satore/rewrite-tree satore/unification syntax/parse/define) (define-global *cpu-limit* 10 "Time limit in seconds for tests" number? string->number) (define (Vars+clausify-list l) (map clausify (symbol-variables->Vars l))) (define current-saturation-args #false) (define-syntax (for-in-list* stx) (syntax-parse stx [(_ ([var x ...] ... clauses ...) body ...) #:with (name ...) (generate-temporaries #'(var ...)) #'(for ((~@ [var (in-list (list x ...))] [name (in-list '(x ...))] #:when #true) ...) (set! current-saturation-args (list (cons 'var name) ...)) body ...)])) ;; Print additional information (define old-check-handler (current-check-handler)) (current-check-handler (λ (e) (eprintf (pretty-format current-saturation-args)) (eprintf "\n") (old-check-handler e))) ;; USE THIS FOR DEBUGGING (define-simple-macro (replay-on-failure body ...) (let ([old-check-handler (current-check-handler)]) (parameterize ([current-check-handler (λ (e) (old-check-handler e) (eprintf "Some checks have failed. Replaying in interactive mode for debugging.\n") (*debug-level* 3) (*cpu-limit* +inf.0) (let () body ...))]) ; encapsulated to avoid collisions (let () body ...)))) (for-in-list* ([neg-lit-select? #true #false] [l-res-pruning? #true #false] [atom<=> #false KBO1lex<=> atom1<=>] [dynamic-ok? #;#true #false] [parent-discard? #false] ; notice: if parent-discard? is #true, then can't have both rewriting and ; neg-lit-select. ) (define-wrapper (saturation (sat:saturation input-clauses #:? [step-limit 200] #:? [memory-limit 4096] ; in MB #:? [cpu-limit (*cpu-limit*)] ; in seconds #:? [rwtree (make-rewrite-tree #:atom<=> atom<=> #:dynamic-ok? dynamic-ok?)] #:? [rwtree-out (and atom<=> rwtree)] #:? backward-rewrite? #:? age:cost #:? cost-type #:? [parent-discard? parent-discard?] #:? [disp-proof? #false] #:? [L-resolvent-pruning? l-res-pruning?] #:? [negative-literal-selection? neg-lit-select?])) #:call-wrapped call (define res (call)) (unless l-res-pruning? (check-equal? (dict-ref res 'L-resolvent-pruning) 0)) (unless dynamic-ok? (check-equal? (dict-ref res 'binary-rules-dynamic) 0)) (unless atom<=> (check-equal? (dict-ref res 'binary-rules) 0) (check-true (= (dict-ref res 'binary-rewrites) 0))) res) ;; Some refutation tests (check-equal? (dict-ref (saturation (Vars+clausify-list '( [] ))) 'status) 'refuted) (check-equal? (dict-ref (saturation (Vars+clausify-list '( [p] ))) 'status) 'saturated) (check-equal? (dict-ref (saturation (Vars+clausify-list '( [p] [(not p)]))) 'status) 'refuted) (check-equal? (dict-ref (saturation (Vars+clausify-list '( [p] [(not q)]))) 'status) 'saturated) ;; To do: If L-resolvents-pruning applied to input clauses too, ;; it would discard the 2nd clause immediately and would saturate. (replay-on-failure (check-equal? (dict-ref (saturation (Vars+clausify-list '( [(p z)] [(not (p X)) (p (s X))] [(not q)]))) 'status) 'steps)) ;; Russell's 'paradox', requires factoring: (check-equal? (dict-ref (saturation (Vars+clausify-list '( [(s X X) (s b X)] [(not (s X X)) (not (s b X))]))) 'status) 'refuted) ;; Second version (check-equal? (dict-ref (saturation (Vars+clausify-list '( [(s X b) (s b X)] [(not (s X b)) (not (s b X))]))) 'status) 'refuted) (check-equal? (dict-ref (saturation (Vars+clausify-list '( [(big_f T0_0 T0_1) (big_g T0_0 T0_2)] [(big_f T1_0 T1_1) (not (big_g T1_0 T1_0))] [(big_g T2_0 T2_1) (not (big_f T2_0 T2_2))] [(not (big_f T3_0 T3_1)) (not (big_g T3_0 (esk1_1 T3_0)))]))) 'status) 'refuted) (check-equal? (dict-ref (saturation (Vars+clausify-list '( [p1 p2] [p1 (not p2)] [p2 (not p1)] [(not p1) (not p2)]))) 'status) 'refuted) (check-equal? (dict-ref (saturation '((p1 p2 p3) (p1 p3 (not p2)) (p2 p3 (not p1)) (p1 p2 (not p3)) (p1 (not p2) (not p3)) (p2 (not p1) (not p3)) (p3 (not p1) (not p2)) ((not p1) (not p2) (not p3)))) 'status) 'refuted) (check-equal? (dict-ref (saturation (Vars+clausify-list '( [(big_f T0_0 T0_1 (esk3_2 T0_0 T0_1))] [(big_f esk1_0 esk2_0 esk2_0) (not (big_f esk1_0 esk1_0 esk2_0))] [(big_f esk1_0 esk1_0 esk2_0) (big_f esk1_0 esk2_0 esk2_0) (not (big_f esk2_0 esk2_0 T2_0))] [(big_f esk1_0 esk1_0 esk2_0) (big_f esk2_0 T3_0 T3_1) (not (big_f esk1_0 esk2_0 esk2_0))] [(not (big_f esk1_0 esk1_0 esk2_0)) (not (big_f esk1_0 esk2_0 esk2_0)) (not (big_f esk2_0 esk2_0 T4_0))] [(big_f esk1_0 esk2_0 esk2_0) (not (big_f T5_0 T5_1 (esk3_2 T5_1 T5_0))) (not (big_f esk1_0 esk1_0 esk2_0))] [(big_f esk1_0 esk1_0 esk2_0) (not (big_f T6_0 (esk3_2 T6_0 T6_1) (esk3_2 T6_0 T6_1))) (not (big_f esk1_0 esk2_0 esk2_0))] ))) 'status) 'refuted) (check-equal? (dict-ref (saturation (Vars+clausify-list '([(p X) (not (p (p X)))] [(not (p a))] [(not (q a))] [(q X) (not (q (q (q X))))] [(q (q (q (q (q (q (q (q (q (q (q (q (q (q (q a)))))))))))))))]))) 'status) 'refuted) ;; This problem shows there may be some loops with implication-removal and factoring! (check-equal? (dict-ref (saturation (Vars+clausify-list '([(not (p X Y)) (p X Z) (p Z Y)] [(p x x)] [(not (q a a a a b b b b c c c c))] [(q A A A A B B B B C C C C) (not (q (q A A A A) (q B B B B) (q C C C C)))] [(q (q a a a a) (q b b b b) (q c c c c))]))) 'status) 'refuted) ;; Binary rewrite ;; This example shows that *not* backward rewriting rules can be a problem: ;; Around step 19, there should be immediate resolution to '() with an active clause. ;; But because [(not (p a A))] has not been rewritten to [(notp a A)], ;; it cannot unify to '() immediately, and must wait for a *resolution* between ;; the rule and the clause to pop up from the queue. (replay-on-failure (define res (saturation (map clausify '(((notp A B) (p A B)) ; axiom, binary clause ((not (notp A B)) (not (p A B))) ; axiom, converse binary clause ((p a A) (q b B) (r c C) (s d D)) ; these two clauses should resolve to '() immediately ((not (p A a))) ; Note that 'a A' is to prevent unit-clause rewrites ((not (q B b))) ((not (r C c))) ((not (s D d))) )))) (check-equal? (dict-ref res 'status) 'refuted) (when atom<=> (check > (dict-ref res 'unit-rules) 0) (check-equal? (dict-ref res 'binary-rules) 2) (check > (dict-ref res 'binary-rewrites) 0))) ;; 'Asymmetric' rules (replay-on-failure (define res (saturation (map clausify '([(not (p A A)) (q A)] ; Not a rule in itself (too general), but enables the next ones [(p a a) (not (q a))] ; rule (p a a) <-> (q a) [(p b b) (not (q b))] ; rule (p b b) <-> (q b) [(p a a) (p b b) (p c c)] [(not (q a)) (remove-me x Y)] [(not (q b)) (remove-me x Y)] [(not (p c c)) (remove-me x Y)] [(not (remove-me X y))] ; defeats urw )))) (check-equal? (dict-ref res 'status) 'refuted) (when atom<=> (check-equal? (dict-ref res 'binary-rules) 4) (check-true (> (dict-ref res 'binary-rewrites) 0)))) ;; TODO: Same test but with rules loaded from a file ;; Greedy selection of binary rewrites can lead to failure (replay-on-failure (define res (saturation (map clausify '(; equivalences [(not (q A B C D)) (p A B C)] ; (q A B C D) <=> (p A B C) [(q A B C D) (not (p A B C))] [(not (p A b C)) (t a)] ; (p A b C) <=> (t a) [(p A b C) (not (t a))] [(not (q A B c D)) (s b c)] ; (q A b c D) <=> (s b c) [(q A B c D) (not (s b c))] ; inputs ; may be rewritten to (s b c) [(q a b c d) (remove-me x Y) (remove-me y Y) (remove-me z Y)] [(not (t a)) (remove-me x Y) (remove-me y Y) (remove-me z Y)] ; [(not (remove-me X y))] ; defeats urw )))) (check-equal? (dict-ref res 'status) 'refuted) (when atom<=> (check-equal? (dict-ref res 'binary-rules) 6) (check-true (> (dict-ref res 'binary-rewrites) 0)))) ;; Overlapping rewrites can lead to failures (but not without rewrites) (replay-on-failure (define res (saturation (map clausify '(; equivalences [(not (q A B C D)) (p A B C)] ; (q A B C D) <=> (p A B C) [(q A B C D) (not(p A B C))] [(not (p A b C)) (t a)] ; (p A b C) <=> (t a) [(p A b C) (not (t a))] [(not (q A b c D)) (s b c)] ; (q A b c D) <=> (s b c) [(q A b c D) (not (s b c))] ; inputs [(s b c) (remove-me x Y) (remove-me y Y) (remove-me z Y)] [(not (t a)) (remove-me x Y) (remove-me y Y) (remove-me z Y)] ; [(not (remove-me X y))] ; defeats urw )))) (check-equal? (dict-ref res 'status) 'refuted) (when atom<=> (check-equal? (dict-ref res 'binary-rules) 6) (check-true (> (dict-ref res 'binary-rewrites) 0)))) ;; Greedy selection of overlapping rewrites can lead to failures (replay-on-failure (define res (saturation (map clausify '(; equivalences [(not (q A B C D)) (p A B C)] ; (q A B C D) <=> (p A B C) [(q A B C D) (not(p A B C))] [(not (p A b C)) (r A C)] ; (p A b C) <=> (r A C) [(p A b C) (not (r A C))] [(not (r A c)) (t a)] ; (r A c) <=> (t a) [(r A c) (not (t a))] [(not (q A b c D)) (s b c)] ; (q A b c D) <=> (s b c) [(q A b c D) (not (s b c))] ; inputs [(s b c) (remove-me x Y) (remove-me y Y) (remove-me z Y)] [(not (t a)) (remove-me x Y) (remove-me y Y) (remove-me z Y)] ; [(not (remove-me X y))] ; defeats urw )))) (check-equal? (dict-ref res 'status) 'refuted) (when atom<=> (check-equal? (dict-ref res 'binary-rules) 8) (check-true (> (dict-ref res 'binary-rewrites) 0))))) ================================================ FILE: satore/tests/stress-test1.rkt ================================================ #lang racket/base (require satore/clause satore/unification) (define cms current-milliseconds) ;;; Stress test. ;;; There's only one predicate of two arguments. ;;; This takes basically exponential time with n. ;;; All the time is taken by clausify (safe-factoring, which includes subsumption check) (define (stress n) (define pre (cms)) (define cl1 (time (clausify (fresh ; ensures the names are adequate variable names (for/list ([i n]) `(eq #s(Var ,i) #s(Var ,(+ i 1)))))))) (define cl2 (time (clausify (fresh (for/list ([i (+ n 1)]) `(eq #s(Var ,i) #s(Var ,(+ i 1)))))))) (void (time (clause-subsumes cl1 cl2))) (void (time (clause-subsumes cl2 cl1))) (- (cms) pre)) ;; Takes about 10s on my desktop machine for n=40 (subsumes-iter-limit=0). (for/list ([n (in-list '(10 20 30 40))]) (printf "n = ~a\n" n) (stress n)) ================================================ FILE: satore/tests/trie.rkt ================================================ #lang racket/base (require rackunit satore/trie (only-in satore/unification symbol-variable?)) (let ([atrie (make-trie #:variable? symbol-variable?)]) (trie-set! atrie '(a X (f Y) c) 'A) (trie-set! atrie '(a b (f Y) c) 'B) (trie-set! atrie '(a b (f Y) E) 'C) (check-equal? (sort (trie-ref atrie '(a b (f (g e)) c)) symbolimsubst s) (cond [(subst? s) (subst->list s)] [(list? s) (sort (map (λ (p) (cons (Var-name (Varify (car p))) (Varify (cdr p)))) s) Var-namesymbol (symbol->Var-name 'C)) 'C) (check-eq? (Var-name->symbol (symbol->Var-name 'X0)) 'X0) (check-eq? (Var-name->symbol (symbol->Var-name 'X1353)) 'X1353) (check-equal? (find-var-names (Varify '(p D C A B))) (map Var-name (Varify '(D C A B)))) (check-equal? (find-var-names (Varify '(p (q D E) C A B E D D A))) (map Var-name (Varify '(D E C A B)))) (let () (define-check (check/fail-var-occs<=> p q c) (let ([res (var-occs<=> p q)]) (unless (eq? res c) (fail-check (format "Params: ~a ~a \nExpected: ~a\nGot: ~a\n" p q c res))))) (define (check-var-occs<=> p q c) (let ([p (Varify p)] [q (Varify q)]) (check/fail-var-occs<=> p q c) (case c [(<) (check/fail-var-occs<=> q p '>)] [(>) (check/fail-var-occs<=> q p '<)] [(= #false) (check/fail-var-occs<=> q p c)]))) (check-var-occs<=> '(p) '(q) '=) (check-var-occs<=> '(p X) '(q) '>) (check-var-occs<=> '(p X) '(q X) '=) (check-var-occs<=> '(p X X) '(q X) '>) (check-var-occs<=> '(p X Y) '(q X) '>) (check-var-occs<=> '(p X Y) '(q X Z) #false) (check-var-occs<=> '(p X X Y) '(q X Z) #false) (check-var-occs<=> '(p X X Y) '(q X Y) '>) (check-var-occs<=> '(p X X Y) '(q X Y Y) #false)) (let () (check equal? (lnot 'auie) `(not auie)) (check equal? (lnot (lnot 'auie)) 'auie) (check equal? (lnot lfalse) ltrue) (check equal? (lnot `(not ,lfalse)) lfalse) ; to fix non-reduced values (check equal? (lnot `(not ,ltrue)) ltrue) ; to fix non-reduced values (check equal? (lnot ltrue) lfalse) (check equal? (lnot (lnot ltrue)) ltrue) (check equal? (lnot (lnot lfalse)) lfalse) (check<=> polarity<=> 'a '(not a) '<)) (let () (define-simple-check (check-atom1<=> a b res) (check<=> atom1<=> (Varify a) (Varify b) res)) (check-atom1<=> lfalse 'a '<) (check-atom1<=> lfalse lfalse '=) (check-atom1<=> '() '() '=) (check-atom1<=> '(eq b a) '(eq a b) '>) ; lexicographical order (check-atom1<=> '(p X Y) '(p Y X) '=) ; no lex order between variables (check-atom1<=> '(p a X) '(p X a) '=) ; no lex order between variable and symbol (check-atom1<=> '(p A (q B)) '(p (q A) B) '=) ; no lex order when variable is involved (check-atom1<=> '(p A (q b)) '(p (q A) b) '=) ; ???? (check-atom1<=> '(not (eq X0 X1 X1)) ; var-occs= '(not (eq X0 X1 X1)) '=) (check-atom1<=> '(eq X0 X1 X1) '(not (eq X0 X1 X1)) '=) ; negation should NOT count ;;; This is very important, otherwise the following problem can end with 'saturated: ;;; ((notp A B) (p A B)) ; axiom, binary clause ;;; ((not (notp A B)) (not (p A B))) ; axiom, converse binary clause ;;; ((p a A)) ; these two clauses should resolve to '() immediately ;;; ((not (p A a))) ; Note that 'a A' is to prevent unit-clause rewrites (check-atom1<=> 'p 'q '<) (check-atom1<=> '(not p) '(not q) '<) (check-atom1<=> '(not (eq X0 X1 X1)) '(not (eq X1 X0)) '>) (check-atom1<=> '(p X Y Z) '(p X Y one) '>) (check-atom1<=> '(p X A one) '(p X Y one) '#false) (check-atom1<=> '(p X one one) '(p X one) '>) (check-atom1<=> '(p X one (q one)) '(p X one one) '>) ) ;; Tests for KBO (let () (define-simple-check (check-KBO1lex<=> a b res) (check<=> KBO1lex<=> (Varify a) (Varify b) res)) (check-KBO1lex<=> lfalse 'a '<) (check-KBO1lex<=> lfalse lfalse '=) ;(check-KBO1lex<=> '() '() '=) ; not a term (check-KBO1lex<=> '(eq b a) '(eq a b) '>) ; lexicographical order (check-KBO1lex<=> '(p X Y) '(p Y X) #false) ; commutativity cannot be oriented (check-KBO1lex<=> '(p a X) '(p X a) #false) ; left->right order: a <=> X -> #false (check-KBO1lex<=> '(p A (q B)) '(p (q A) B) '<) ; left->right order: A < (q A) (check-KBO1lex<=> '(p A (q b)) '(p (q A) b) '<) ; left->right order: A < (q A) (check-KBO1lex<=> '(not (eq X0 X1 X1)) ; var-occs= '(not (eq X0 X1 X1)) '=) (check-KBO1lex<=> '(eq X0 X1 X1) '(not (eq X0 X1 X1)) '=) ; negation should NOT count ;;; This is very important, otherwise the following problem can end with 'saturated: ;;; ((notp A B) (p A B)) ; axiom, binary clause ;;; ((not (notp A B)) (not (p A B))) ; axiom, converse binary clause ;;; ((p a A)) ; these two clauses should resolve to '() immediately ;;; ((not (p A a))) ; Note that 'a A' is to prevent unit-clause rewrites (check-KBO1lex<=> 'p 'q '<) ; lex (check-KBO1lex<=> '(not p) '(not q) '<) ; lex (check-KBO1lex<=> '(not (eq X0 X1 X1)) '(not (eq X1 X0)) '>) ; by var-occs and weight (check-KBO1lex<=> '(p X Y Z) '(p X Y one) #false) ; var-occs incomparable (check-KBO1lex<=> '(p X Y (f Z)) '(p X (f Y) one) #false) ; var-occs incomparable (check-KBO1lex<=> '(p X Y (f Z)) '(p X (f Y) Z) '<) ; same weight, Y < (f Y) (check-KBO1lex<=> '(p X A one) '(p X Y one) #false) (check-KBO1lex<=> '(p X one one) '(p X one) '>) (check-KBO1lex<=> '(p X one (q one)) '(p X one one) '>) (check-KBO1lex<=> '(p A (p B C)) '(p (p A B) C) '<) ; associativity ok: A < (p A B) ) (let () (check-equal? (term-lex2<=> '(p a) '(p b)) '<)) (let () (define-simple-check (check-term-lex<=> a b res) (let-values ([(a b) (apply values (fresh (Varify (list a b))))]) (check<=> term-lex<=> (Varify a) (Varify b) res))) (check-term-lex<=> 'a (Var 'X) '>) (check-term-lex<=> (Var 'X) (Var 'X) '=) (check-term-lex<=> 'a 'a '=) (check-term-lex<=> 'a 'b '<) (define-simple-check (check-literal<=> a b res) (let-values ([(a b) (apply values (fresh (Varify (list a b))))]) (check<=> literal<=> (Varify a) (Varify b) res))) (check-literal<=> 'a '(not a) '<) (check-literal<=> 'a 'b '<) (check-literal<=> 'z '(not a) '<) (check-literal<=> '(z b) '(not a) '<) (check-literal<=> 'a 'a '=) (check-literal<=> 'z '(a a) '>) (check-literal<=> '(z z) '(z (a a)) '<)) (let () (check-true (literal==? 'a 'a)) (check-true (literal==? (Var 'X) (Var 'X))) (check-true (literal==? (Var 'X) #s(Var X))) ; prefab (check-false (literal==? (Var 'X) (Var 'Y))) (check-false (literal==? (fresh (Var 'X)) (Var 'X))) (check-false (literal==? 'X (Var 'X))) ; not considered the same?? (check-true (literal==? `(p (f ,(Var 'X) ,(Var 'X)) y) `(p (f ,(Var 'X) ,(Var 'X)) y)))) (let () (define-check (test-unify t1 t2 subst) (let ([t1 (Varify t1)] [t2 (Varify t2)]) (set! subst (subst/#false->imsubst subst)) (define sh (unify t1 t2)) (define sl (subst/#false->imsubst (and sh (for/list ([(k v) (in-subst sh)]) (cons (Var k) (if (already-substed? v) (already-substed-term v) v)))))) (unless (equal? sl subst) (fail-check (format "Expected ~a. Got: ~a\nt1 = ~a\nt2 = ~a\n" subst sl t1 t2))) (when sh (define r1 (substitute t1 sh)) (define r2 (substitute t2 sh)) (unless (equal? r1 r2) (fail-check "r1≠r2" sh r1 r2))))) (test-unify '(p X) '(p X) '()) (test-unify '(p (f X) X) '(p (f a) a) '((X . a))) (test-unify '(p (f c) (g X)) '(p Y Y) #false) (test-unify '(p X (f X)) '(p a Y) '((X . a) (Y . (f a)))) (test-unify '(p (f X Y) (f Y Z)) '(p (f (f a) (f b)) (f (f b) c)) '((X . (f a)) (Y . (f b)) (Z . c))) (test-unify '(p X (p X) a) '(p Y (p (p Z)) Z) (if reduce-mgu? '((Z . a) (X . (p a)) (Y . (p a))) '((X . Y) (Y . (p Z)) (Z . a)))) (test-unify '(p X (p X) (p (p X))) '(p a Y Z) '((X . a) (Y . (p a)) (Z . (p (p a))))) (test-unify '(p X (p X) (p (p X))) '(p a (p Y) (p (p Z))) '((X . a) (Y . a) (Z . a))) (test-unify '(p (p X) (p X) a) '(p Y (p (p Z)) Z) (if reduce-mgu? '((Z . a) (X . (p a)) (Y . (p (p a)))) '((Y . (p X)) (X . (p Z)) (Z . a)))) (test-unify '(p X X) '(p a Y) '((X . a) (Y . a))) (test-unify '(p X X) '(p (f Y) Z) '((X . (f Y)) (Z . (f Y)))) (test-unify '(p X X) '(p (f Y) Y) #false) (test-unify '(p (f X Y) (g Z Z)) '(p (f (f W U) V) W) (if reduce-mgu? '((W . (g Z Z)) (Y . V) (X . (f (g Z Z) U))) '((X . (f W U)) (Y . V) (W . (g Z Z))))) (test-unify '(eq X30 (mul X31 (mul X32 (inv (mul X31 X32))))) '(eq (mul X25 one) X26) `((X26 . (mul X31 (mul X32 (inv (mul X31 X32))))) (X30 . (mul X25 one)))) (test-unify '(p A B) '(p B A) '((A . B))) ) (let () (define (test-suite-left-unify left-unify) (define-simple-check (test-left-unify t1 t2 subst) (let ([t1 (Varify t1)] [t2 (Varify t2)]) (set! subst (subst/#false->imsubst subst)) (define sh (left-unify t1 t2)) (define sl (subst/#false->imsubst sh)) (check-equal? sl subst (format "Expected ~a. Got: ~at1 = ~a\nt2 = ~a\n" subst sl t1 t2)) (when sh (define r1 (left-substitute t1 sh)) (check-equal? r1 t2 (format "r1≠t2\nsh=~a\nr1=~a\nt2=~a\n" sh r1 t2))))) (test-left-unify '(p (f X) X) '(p (f a) a) '((X . a))) (test-left-unify '(p (f c) (g X)) '(p Y Y) #false) (test-left-unify '(p X (f X)) '(p a Y) #false) (test-left-unify '(p (f X Y) (f Y Z)) '(p (f (f a) (f b)) (f (f b) c)) '((Z . c) (Y . (f b)) (X . (f a)))) (test-left-unify '(p X X) '(p a Y) #false) (test-left-unify '(p X X) '(p (f Y) Z) #false) (test-left-unify '(p X X) '(p (f Y) Y) #false) (test-left-unify '(p (f X Y) (g Z Z)) '(p (f (f W U) V) W) #false) (test-left-unify '(p X X) '(p A B) #false) ; This MUST return false because of the circularity. ; The found substitution must be specializing, that is C2σ = C2 (and C1σ = C2), ; otherwise safe factoring can fail, in particular. ; Hence we must ensure that vars(C2) ∩ dom(σ) = ø. (test-left-unify '(p A B) '(p B A) #false) (test-left-unify '(p B A) '(p A B) #false) (test-left-unify '(p A A) '(p B B) '((A . B))) (test-left-unify '(p A) '(p A) '()) (test-left-unify '(p a) '(p a) '()) (test-left-unify '(p A X) '(p X Y) #false)) (test-suite-left-unify left-unify) (test-suite-left-unify (λ (t1 t2) (define subst-assoc (left-unify/assoc t1 t2)) (and subst-assoc (make-subst subst-assoc))))) (let ([pat '(_not_ (_not_ #s(Var A)))] [t (fresh (Varify '(q (p (_not_ (_not_ (f A B)))))))]) (define s (left-unify-anywhere pat t)) (check-equal? (left-substitute pat s) (cadadr t))) (let ([t '(q (p (_not_ (_not_ (f A B)))))]) (check-equal? (match-anywhere (match-lambda [`(_not_ (_not_ ,x)) `([x . ,x])] [else #false]) t) '([x . (f A B)]))) (let ([c1 (clausify '((theorem (or A B)) (not (theorem (or A (or (or A B) B))))))] [c2 (clausify '((theorem (or (_not_ A) (or B A)))))]) (define s1 (unify (first c2) (lnot (second c1)))) (define s2 (unify (lnot (second c1)) (first c2))) (list c1 c2 s1 (substitute (first c1) s1) s2 (substitute (first c1) s2)) (check clause-equivalence? (substitute (list (first c1)) s1) (substitute (list (first c1)) s2))) ;; Stress test for unification ;; This should take 0ms ;; See https://en.wikipedia.org/wiki/Unification_(computer_science) ;; #Examples_of_syntactic_unification_of_first-order_terms (let () (define last-var? #true) (define (stress-unify n) (define A (let left ([d 1]) (if (>= d n) (list '* (Var d) (if last-var? (Var (+ d 1)) 'a)) (list '* (left (+ d 1)) (Var d))))) (define B (let right ([d 1]) (if (>= d n) (list '* (if last-var? (Var (+ d 1)) 'a) (Var d)) (list '* (Var d) (right (+ d 1)))))) (define subst (time (unify A B))) ; Verify that there's only 1 variable in the each rhs (when (and reduce-mgu? last-var?) (check-equal? (length (Vars (map cdr (subst->list subst)))) 1 subst)) (time (substitute A subst))) (for ([n (in-range 30 50)]) (printf "~a: " n) (stress-unify n))) ================================================ FILE: satore/tptp.rkt ================================================ #lang racket/base ;**************************************************************************************; ;**** Tptp Input/Output Format ****; ;**************************************************************************************; (require bazaar/debug bazaar/string global racket/dict racket/file racket/format racket/list racket/match racket/port racket/string satore/clause satore/unification) (provide (all-defined-out)) (define-global:boolean *tptp-out?* #false "Output is in TPTP format?") #| File formats: .rktd: Racket data, one Racket clause per line. .p: Prolog format, with Prolog clauses that contain tptp (FOL) clauses. .tptp: only the tptp clauses, one per line. |# ;; Reads a .p file and returns a list of clauses. ;; ;; program-file : file? ;; -> (listof clause?) (define (tptp-program-file->clauses program-file) ; Not efficient: Loads the whole program as a string then parses it. ; It would be more efficient to read it as a stream with an actual parser. ; Another possibility is to read it line by line and parse each line as a cnf(…) ; but that will file if the cnf(…) is multiline. (tptp-prog->clauses (file->string program-file))) ;; Helper function (define (tptp-pre-clauses->clauses pre-clauses) (define clauses (for/list ([cl (in-list pre-clauses)]) (let loop ([t cl]) (match t [(? symbol? x) x] [(? string? x) (string->symbol (string-append "_str_" x))] ; to avoid being interpreted as a variable ['() '()] [(list '~ (? symbol? pred) (list a ...) r ...) (cons (list 'not (cons (loop pred) (loop a))) (loop r))] [(list (? symbol? pred) (list a ...) r ...) (cons (cons (loop pred) (loop a)) (loop r))] [(list '~ x r ...) (cons (list 'not (loop x)) (loop r))] [(list x a ...) (cons (loop x) (loop a))] [else (error "Unrecognized token: " t)])))) (map (compose clausify symbol-variables->Vars) clauses)) ;; Reads the .p program given as a string and returns a list of clauses. ;; ;; str : string? ;; -> (listof clause?) (define (tptp-prog->clauses str) ; hardly tested and not strict enough ; It should be mostly robust to line breaking though. ; Doesn't parse strings properly (will remove lines that look like comments in multiline strings) (define l (filter (λ (x) (if (list? x) x (begin (assert (memq x '(cnf end_cnf)) x) #false))) ; Ensure operators are surrounded with spaces ; turn racket special symbols (| and ,) into normal symbols. ; then use racket's reader to parse it like an s-expression (string->data (regexp-replaces str (list* '[#px"(?:^|\n)\\s*[%#][^\n]*" "\n"] ; prolog and shell/python/eprover full-line comments '[#px"\\bnot\\b" "_not_"] ;; To do: Use $not for `lnot` instead? (as in TPTP) (map (λ (p) (list (regexp-quote (first p)) (string-append " " (regexp-replace-quote (second p)) " "))) '(["|" "" ] ["&" "" ] ["," "" ] ["$false" ""] ; empty literal ["~" "~"] ["." "end_cnf"] ["'" "\""]))))))) ; first is name, second is type, third is clause, rest is comments(?) (define pre-clauses (map third l)) (tptp-pre-clauses->clauses pre-clauses)) ;; Simple parser for the proposer output into s-exp clauses. ;; The format is expected to be in cnf. ;; ;; str : string? ;; -> (listof clause?) (define (tptp-string->clauses str) ; To do: Optimize. This can be very slow for large conjectures. (define pre-clauses (append* ; split first to avoid regenerating the whole string after each substitution? (for/list ([str (in-list (string-split str #px"&|\n"))]) ; & and \n play the same role (with-handlers ([exn? (λ (e) (displayln str) (raise e))]) (string->data ; Ensure operators are surrounded with spaces ; turn racket special symbols (| and ,) into normal symbols (regexp-replaces str (list* '[#px"\\bnot\\b" "_not_"] ;; To do: use $not for `lnot` instead? (as TPTP) (map (λ (p) (list (regexp-quote (first p)) (string-append " " (regexp-replace-quote (second p)) " "))) '(["|" ""] ["," ""] ["~" "~"] ["'" "\""]))))))))) (tptp-pre-clauses->clauses pre-clauses)) ;; Returns a string representing the literal lit. ;; ;; lit : literal? ;; -> string? (define (literal->tptp-string lit) (cond [(lnot? lit) (string-append "~ " (literal->tptp-string (second lit)))] [(empty? lit) "$false"] [(list? lit) (string-append (literal->tptp-string (first lit)) "(" (string-join (map literal->tptp-string (rest lit)) ", ") ")")] [(Var? lit) (symbol->string (Var-name->symbol lit))] [else (format "~a" lit)])) ;; Returns a string representing the clause cl. ;; ;; cl : clause? ;; ->string? (define (clause->tptp-string cl) (string-join (map literal->tptp-string (Vars->symbols cl)) " | ")) ;; Returns a string representing the clauses cls. ;; ;; cls : (listof clause?) ;; -> string? (define (clauses->tptp-string cls) (string-join (map clause->tptp-string cls) "\n")) ;; String replacement of tptp names with shorter ones to improve readability ;; ;; str : string? ;; -> string? (define (tptp-shortener str) (define substs (sort (map (λ (p) (cons (~a (car p)) (~a (cdr p)))) ; fld_1 (append '((multiplicative_identity . _1) (additive_identity . _0) (less_or_equal . ≤) (additive_inverse . –) (multiplicative_inverse . /) (equalish . ≃) (multiply . ×) (product . ×=) (inverse . /) (add . +) ) ;grp_5 '((equalish . ≃) (multiply . ×) (product . ×=) (inverse . /) (identity . _1) ) ; geo '((convergent_lines . /\\) (unorthogonal_lines . ¬⊥) (orthogonal_through_point . ⊥_thru_pt) (parallel_through_point . //_thru_pt) (distinct_lines . ≠_ln) (apart_point_and_line . ≠_pt_ln) (orthogonal_lines . ⊥) (distinct_points . ≠_pt) (parallel_lines . //) (equal_lines . =_ln) (equal_points . =_pt))) ) ; forces prefixes to appear later to match longer strings first: > #:key (compose string-length car))) (string-join (for/list ([line (in-lines (open-input-string str))]) (for/fold ([line line]) ([(from to) (in-dict substs)]) (string-replace line from to #:all? #true))) "\n")) ;; Helper: Surround any printing operation with this macro ;; to automatically replace the output with shortened names. (define-syntax-rule (with-tptp-shortener body ...) (let ([str (with-output-to-string (λ () body ...))]) (displayln (tptp-shortener str)))) ;============; ;=== Main ===; ;============; (module+ main (require global racket/file) (define-global *rktd-file* #false "file in rktd format to output in tptp format" file-exists? values) (void (globals->command-line)) (when (*rktd-file*) (displayln (clauses->tptp-string (file->list (*rktd-file*)))))) ================================================ FILE: satore/trie.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Trie: Imperfect Discrimination Tree ****; ;***************************************************************************************; ;;; A discrimination tree is like a hashtable where the key is a list of elements. ;;; The keys are organized in a tree structure so that to retrieving an object ;;; takes at most O(A×l) steps, where l is the length of the key and A is the size of ;;; the alphabet. In practice it will be closer to O(l) since a hash table is used ;;; at each node to store the branches. ;;; ;;; A key is a actually tree (a list of lists of ...), which is flattened to a list ;;; where parenthesis are replaced with symbols. ;;; Variables are considered to be unnamed and there is no unification/matching. ;;; The only dependency on first-order logic specifics is `variable?`. ;;; ;;; An imperfect discrimination tree does not differentiate variable names. ;;; Hence p(X Y) is stored in the same node as p(A A). An additional tests ;;; is required to tell them apart. (require bazaar/cond-else define2 racket/list racket/match satore/misc) (provide (except-out (all-defined-out) no-value) (rename-out [no-value trie-no-value])) ;; Default value at the leaves. Should not be visible to the user. (define no-value (string->uninterned-symbol "no-value")) ; Tokens used in the keys of the tree (define anyvar (string->uninterned-symbol "¿")) (define sublist-begin (string->uninterned-symbol "<<")) (define sublist-end (string->uninterned-symbol ">>")) ;; edges : hasheq(key . node?) ;; value : any/c (struct trie-node (edges value) #:transparent #:mutable) (define (make-node) (trie-node (make-hasheq) no-value)) ;; Trie structure with variables. ;; ;; root : trie-node? ;; variable? : any/c -> boolean? (struct trie (root variable?)) ;; Trie constructor. ;; ;; constructor : procedure? ;; variable? : any/c -> boolean? ;; other-args : (listof any/c) ;; -> trie? (define (make-trie #:? [constructor trie] #:? [variable? (λ (x) #false)] . other-args) (apply constructor (make-node) variable? other-args)) ;; Updates the value of the node for the given key (or sets one if none exists). ;; If default-val/proc is a procedure of arity 0, then it is applied to produce the ;; default value when requested, otherwise default-val/proc is used itself as the ;; default value. ;; ;; atrie : trie? ;; key : any/c ;; update : any/c -> any/c ;; default-val/proc : (or/c thunk? any/c) ;; -> void? (define (trie-update! atrie key update default-val/proc) (match-define (trie root variable?) atrie) ; The key is `list`ed because we need a list, and this allows the given key to not be a list. (let node-insert! ([nd root] [key (list key)]) (cond/else [(empty? key) ; Stop here. (define old-value (trie-node-value nd)) (set-trie-node-value! nd (update (if (eq? old-value no-value) (if (thunk? default-val/proc) (default-val/proc) default-val/proc) old-value)))] #:else ; key is a list (define k (car key)) (define edges (trie-node-edges nd)) #:cond [(pair? k) ; Linearize the tree structure of the key. (define key2 (cons sublist-begin (append k (cons sublist-end (cdr key))))) (node-insert! nd key2)] #:else ; nil, atom, variable (let ([k (if (variable? k) anyvar k)]) (define nd2 (hash-ref! edges k make-node)) (node-insert! nd2 (cdr key)))))) ;; Keeps a list of values at the leaves. ;; If `trie-insert!` is used, any use of `trie-update!` should be consistent with values being lists. ;; ;; atrie : trie? ;; key : any/c ;; val : any/c ;; -> void? (define (trie-insert! atrie key val) (trie-update! atrie key (λ (old) (cons val old)) '())) ;; Replacing the current value (if any) for key with val. ;; ;; atrie : trie? ;; key : any/c ;; val : any/C (define (trie-set! atrie key val) (trie-update! atrie key (λ _ val) #false)) ;; Applies on-leaf at each node that match with key. ;; The matching keys of the trie are necessarily no less general than the given key. ;; `on-leaf` may be effectful. ;; ;; atrie : trie? ;; key : any/c ;; on-leaf : trie-node? -> any ;; -> void? (define (trie-find atrie key on-leaf) (define variable? (trie-variable? atrie)) (let node-ref ([nd (trie-root atrie)] [key (list key)]) (cond/else [(empty? key) ; Leaf found. (unless (eq? no-value (trie-node-value nd)) (on-leaf nd))] #:else (define k (car key)) (define var-nd (hash-ref (trie-node-edges nd) anyvar #false)) #:cond [(variable? k) (when var-nd ; both the key and the node are variables (node-ref var-nd (cdr key)))] #:else (when var-nd ; If a variable matches, consider the two paths. (node-ref var-nd (cdr key))) #:cond [(pair? k) ; Linearize the tree structure of the key. (define key2 (cons sublist-begin (append k (cons sublist-end (cdr key))))) (node-ref nd key2)] #:else (define nd2 (hash-ref (trie-node-edges nd) k #false)) (when nd2 (node-ref nd2 (cdr key)))))) ;; Applies the procedure `on-leaf` to any node for which the key is matched by the given key. ;; The matching keys of the trie are necessarily no more general than the given key. ;; `on-leaf` may be effectful. ;; ;; atrie : trie? ;; key : any/c ;; on-leaf : trie-node -> any/c ;; -> void? (define (trie-inverse-find atrie key on-leaf) (define variable? (trie-variable? atrie)) (let node-find ([nd (trie-root atrie)] [key (list key)] [depth 0]) (define edges (trie-node-edges nd)) (cond/else [(> depth 0) ; If the depth is positive, that means we are currently matching a variable. ; We need to continue through every branch and decrease the depth only if we encounter ; a sublist-end, and increase the counter if we encounter a sublist-begin. ; Note that key can be empty while depth > 0. (for([(k2 nd2) (in-hash edges)]) (node-find nd2 key (cond [(eq? k2 sublist-begin) (+ depth 1)] [(eq? k2 sublist-end) (- depth 1)] [else depth])))] [(empty? key) ; Leaf found. (unless (eq? no-value (trie-node-value nd)) (on-leaf nd))] #:else (define k (car key)) #:cond [(variable? k) ;; Anything matches. For sublist we need to keep track of the depth. ;; Note that variables in the tree can only be matched if k is a variable. (for ([(k2 nd2) (in-hash edges)]) (node-find nd2 (cdr key) (if (eq? k2 sublist-begin) 1 0)))] [(pair? k) ; Linearize the tree structure of the key. (define key2 (cons sublist-begin (append k (cons sublist-end (cdr key))))) (node-find nd key2 0)] #:else (define nd2 (hash-ref edges k #false)) (when nd2 (node-find nd2 (cdr key) 0))))) ;; Both find and inverse-find at the same time. ;; Useful when (full) unification must be performed afterwards. ;; `on-leaf` may be effectful. ;; ;; atrie : trie? ;; key : any/c ;; on-leaf : trie-node? -> any ;; -> void? (define (trie-both-find atrie key on-leaf) (define variable? (trie-variable? atrie)) (let node-find ([nd (trie-root atrie)] [key (list key)] [depth 0]) (define edges (trie-node-edges nd)) (cond/else [(> depth 0) ; If the depth is positive, that means we are currently matching a variable. ; Consume everything until we find a sublist-end at depth 1. ; We need to continue through every branch and decrease the depth only if we encounter ; a sublist-end, and increase the counter if we encounter a sublist-begin. ; Note that key can be empty while depth > 0. (for([(k2 nd2) (in-hash edges)]) (node-find nd2 key (cond [(eq? k2 sublist-begin) (+ depth 1)] [(eq? k2 sublist-end) (- depth 1)] [else depth])))] [(empty? key) ; Leaf found. (unless (eq? no-value (trie-node-value nd)) (on-leaf nd))] #:else (define k (car key)) (define var-nd (hash-ref (trie-node-edges nd) anyvar #false)) #:cond [(variable? k) ;; Anything matches. For sublist we need to keep track of the depth. ;; Note that variables in the tree can only be matched if k is a variable. (for ([(k2 nd2) (in-hash edges)]) (node-find nd2 (cdr key) (if (eq? k2 sublist-begin) 1 0)))] #:else (when var-nd ; The node contains a variable, which thus matches the key. (node-find var-nd (cdr key) 0)) #:cond [(pair? k) ; Linearize the tree structure of the key. (define key2 (cons sublist-begin (append k (cons sublist-end (cdr key))))) (node-find nd key2 0)] #:else (define nd2 (hash-ref edges k #false)) (when nd2 (node-find nd2 (cdr key) 0))))) ;; Helper function (define ((make-proc-tree-ref proc) atrie key) (define res '()) (proc atrie key (λ (nd) (set! res (cons (trie-node-value nd) res)))) res) ;; Returns a list of values which keys are matched by the given key. ;; The matching keys of the trie are necessarily no more general than the given key. ;; These functions do not have side effects. ;; ;; Each function takes as input: ;; atrie : trie? ;; key : any/c ;; -> list? (define trie-inverse-ref (make-proc-tree-ref trie-inverse-find)) (define trie-ref (make-proc-tree-ref trie-find)) (define trie-both-ref (make-proc-tree-ref trie-both-find)) ;; Returns the list of all values in all nodes. ;; ;; atrie : trie? ;; -> list? (define (trie-values atrie) (let loop ([nd (trie-root atrie)] [res '()]) (define edges (trie-node-edges nd)) (define val (trie-node-value nd)) (for/fold ([res (if (eq? val no-value) res (cons val res))]) ([(key nd2) (in-hash edges)]) (loop nd2 res)))) ================================================ FILE: satore/unification-tree.rkt ================================================ #lang racket/base ;**************************************************************************************; ;**** Unification Tree ****; ;**************************************************************************************; ;;; An imperfect discrimination tree specialized for unifying literals and other ;;; operations. This is *different* from "substitution trees" ;;; (https://link.springer.com/chapter/10.1007%2F3-540-59200-8_52) ;;; Note: This should be probably named a Clause-trie instead, since the ;;; major difference with the trie is that we are dealing with Clauses, which ;;; are lists of literals, and the same Clause can appear in different leaves ;;; of the trie. Unification is only one of the operations performed on Clauses. (require bazaar/list bazaar/loop bazaar/mutation define2 global racket/list satore/Clause satore/clause satore/misc satore/trie satore/unification) (provide (all-defined-out) (all-from-out satore/trie)) (module+ test (require rackunit)) ;; Experimental. ;; Based on "A Unifying Principle for Clause Elimination in First-Order Logic", ;; by Kiesl, Benjamin and Suda, Martin, CADE 26, 2017. ;; ;; Notice: This cannot be applied to input clauses. ;; Notice: To pass Russell's problem, we must ;; do 1-to-N resolution (non-binary resolution), OR, maybe, ;; binary resolution + unsafe factoring, but the 'resolutions' ;; for factoring must be taken into account too. (define-global:boolean *L-resolvent-pruning?* #false '("Discard clauses for which a literal leads to 0 resolvents." "Currently doesn't apply to input clauses.")) (define-counter n-L-resolvent-pruning 0) ;========================; ;=== Unification Tree ===; ;========================; ;; A unification tree is simply a discrimination tree where trie-node-values ;; are lists of `utree-leaf`. (struct unification-tree trie () #:transparent) ;; A leaf value. ;; Several leaves may have the same clause-idx but different clauses——well, the same clauses ;; but ordered differently. It's named `uclause` to make it clear it's not a well-formed clause ;; (stands for unordered-clause). (struct utree-leaf (Clause uclause) #:transparent) ;; Returns a new unification tree (or a substruct). ;; ;; constructor : procedure? ;; other-args : list? ;; -> unification-tree? (define (make-unification-tree #:constructor [constructor unification-tree] . other-args) (apply make-trie #:constructor constructor #:variable? Var? other-args)) ;; Inserts a Clause into the unification tree. ;; Each literal of the clause cl is added to the tree, and the leaf value at each literal lite is the ;; clause, but where the first literal is lit. ;; Notice: Thus the clause is *not* sorted according to `sort-clause`. ;; Note: We could also keep the clause unchanged and cons the index of the literal, ;; that would avoid using up new cons cells, while keeping the clause intact. ;; ;; unification-tree? Clause? -> void? (define (add-Clause! utree C) (define cl (Clause-clause C)) (zip-loop ([(left lit right) cl]) (define reordered-clause (cons lit (rev-append left right))) (trie-insert! utree lit (utree-leaf C reordered-clause)))) ;; Returns the list of unique Clauses present in the utree. ;; ;; unification-tree? -> (listof Clause?) (define (unification-tree-Clauses utree) (remove-duplicates (map utree-leaf-Clause (append* (trie-values utree))) eq?)) ;; Calls `on-unified` for each literal of each clause of utree that unifies with `lit`. ;; If a clause `cl` has n literals that unify with `lit`, then `on-unified` is called n times. ;; ;; utree : unification-tree? ;; lit : literal? ;; on-unified : utree-leaf? subst lit1 lit2 other-lit2s -> void? ;; -> void? (define (find-unifiers utree lit on-unified) (trie-both-find utree lit (λ (nd) (define val (trie-node-value nd)) (when (list? val) (for ([lf (in-list val)]) (define cl (utree-leaf-uclause lf)) ; Unify only with the first literal, assuming clauses in node-values ; are so that the first literal corresponds to the key ; (the path from the root) (define lit2 (first cl)) (define subst (unify lit2 lit)) (when subst (on-unified lf subst lit lit2 (rest cl)))))))) ;; Returns the set of Clauses that *may* left-unify with lit. ;; The returned clauses are sorted according to `sort-clause` and duplicate clauses are removed. ;; ;; unification-tree? literal? -> (listof Clause?) (define (unification-tree-ref utree lit) ; Node values are lists of rules, and trie-ref returns a list of node-values, ; hence the append*. (remove-duplicates (append* (map utree-leaf-Clause (trie-ref utree lit))) eq?)) ;; Helper for the resolve/factors functions below. ;; Defines a new set of Clauses, and a helper function that creates new Clauses, ;; rewrites them, checks for tautologies and add them to the new-Clauses. (define-syntax-rule (define-add-Clause! C new-Clauses add-Clause! rewriter) (begin (define new-Clauses '()) (define (add-Clause! lits subst type parents) (define cl (clause-normalize (substitute lits subst))) (define new-C (make-Clause cl (cons C parents) #:type type)) ; Rewrite (let ([new-C (rewriter new-C)]) (unless (Clause-tautology? new-C) (cons! new-C new-Clauses)))))) ;; Resolves the Clause `C` with all the Clauses in `utree` and returns the list of resolvents. ;; Uses negative literal selection based on `literal-cost`: ;; If `C` has at least one negative literal, the costliest one is selected using `literal-cost`, ;; and only this literal is used for resolution with other Clauses. ;; The resolvents are immediately rewritten with `rewriter`. ;; ;; utree : unification-tree? ;; C : Clause? ;; rewriter : Clause? -> Clause? ;; literal-cost : literal? -> number? ;; -> (listof Clause?) (define (utree-resolve/select-literal utree C #:? [rewriter (λ (C) C)] #:? [literal-cost literal-size]) (define cl (Clause-clause C)) ;; Choose the costliest negative literal if any (for elimination) (define selected-idx (for/fold ([best-idx #false] [best-cost -inf.0] #:result best-idx) ([lit (in-list cl)] [idx (in-naturals)] #:when (lnot? lit)) ; negative literals only (define c (literal-cost lit)) (if (> c best-cost) (values idx c) (values best-idx best-cost)))) (zip-loop ([(left lit right) cl] [resolvents '()] [lit-idx 0] #:result (or resolvents '())) (cond [(or (not selected-idx) (= lit-idx selected-idx)) (define-add-Clause! C new-Clauses add-Clause! rewriter) ; Find resolvents (find-unifiers utree (lnot lit) (λ (lf subst nlit lit2 rcl2) (add-Clause! (rev-append left (rev-append right rcl2)) subst 'res (list (utree-leaf-Clause lf))))) (values (rev-append new-Clauses resolvents) (+ 1 lit-idx))] [else (values resolvents (+ 1 lit-idx))]))) ;; Returns the list of unsafe factors of `C`. ;; Factors are immediately rewritten with `rewriter`. ;; ;; C : Clause? ;; rewriter : Clause? -> Clause? ;; -> (listof Clause?) (define (unsafe-factors C #:? [rewriter (λ (C) C)]) (define-add-Clause! C factors add-Clause! rewriter) (define cl (Clause-clause C)) (zip-loop ([(left lit1 right) cl]) (define pax (predicate.arity lit1)) (zip-loop ([(left2 lit2 right2) right] ; Literals are sorted, so no need to go further. #:break (not (equal? pax (predicate.arity lit2)))) (define subst (unify lit1 lit2)) ; We could do left-unify instead, but then we need to do both sides, ; at the risk of generating twice as many clauses, so may not be worth it. (when subst (add-Clause! (rev-append left right) ; remove lit1 subst 'fac '())))) factors) ;; Appends and returns the results of `unsafe-factors` and `utree-resolve/select-literal`. ;; ;; utree : unification-tree? ;; C : Clause? ;; rewriter : Clause? -> Clause? ;; literal-cost : literal? -> number? ;; -> (listof Clause?) (define (utree-resolve+unsafe-factors/select utree C #:? rewriter #:? literal-cost) (rev-append (unsafe-factors C #:rewriter rewriter) (utree-resolve/select-literal utree C #:rewriter rewriter #:literal-cost literal-cost))) ;; Like `utree-resolve+unsafe-factors/select` but without negative literal selection, ;; and with L-resolvent pruning. ;; Returns the set of Clauses from resolutions between cl and the clauses in utree, ;; as well as the factors. ;; Clauses are immediately rewritten with `rewriter`. ;; ;; utree : unification-tree? ;; C : Clause? ;; rewriter : Clause? -> Clause? ;; L-resolvent-pruning? : boolean? ;; -> (listof Clause?) (define (utree-resolve+unsafe-factors utree C #:? [rewriter (λ (C) C)] #:! L-resolvent-pruning?) ;; Used to prevent pruning by L-resolvent-discard. ;; This is used to mark the second literals in unsafe factors. (define lit-marks (make-vector (Clause-n-literals C) #false)) (define (mark-literal! idx) (vector-set! lit-marks idx #true)) (define (literal-marked? idx) (vector-ref lit-marks idx)) (zip-loop ([(left lit right) (Clause-clause C)] [resolvents+factors '()] [lit-idx 0] #:break (not resolvents+factors) ; shortcut #:result (or resolvents+factors '())) (define-add-Clause! C new-Clauses add-Clause! rewriter) ;; Resolutions (find-unifiers utree (lnot lit) (λ (lf subst nlit lit2 rcl2) (add-Clause! (rev-append left (rev-append right rcl2)) subst 'res (list (utree-leaf-Clause lf))))) ;; Unsafe binary factors ;; Somewhat efficient implementation since the literals are sorted by predicate.arity. (define pax (predicate.arity lit)) (zip-loop ([(left2 lit2 right2) right] [lit2-idx (+ 1 lit-idx)] #:break (not (equal? pax (predicate.arity lit2)))) (define subst (unify lit lit2)) (when subst (mark-literal! lit2-idx) ; prevents pruning (add-Clause! (rev-append left right) ; remove lit subst 'fac '())) (+ 1 lit2-idx)) ;; L-resolvent 'pruning' ;; See the principle of implication modulo resolution: ;; "A unifying principle for clause elimination in first-order logic", CADE 26. ;; which contains other techniques and short proofs of their soundness. ;; We return the empty set of resolution, meaning that the selected clause ;; can (must) be discarded, i.e., not added to the active set. (cond [(and L-resolvent-pruning? (empty? new-Clauses) (not (literal-marked? lit-idx))) (++n-L-resolvent-pruning) (values #false (+ 1 lit-idx))] [else (values (rev-append new-Clauses resolvents+factors) (+ 1 lit-idx))]))) ;; Returns the first (in any order) Clause C2 such that ;; there is a literal of C2 that imperfectly matches a literal of C, ;; and (pred C C2). ;; ;; utree : unification-tree? ;; C2 : Clause? ;; pred : Clause? Clause? -> boolean? (define (utree-find/any utree C2 pred) (define tested (make-hasheq)) ; don't test the same C2 twice (define cl2 (Clause-clause C2)) (let/ec return (for ([lit (in-list cl2)]) (trie-find utree lit (λ (nd) (define val (trie-node-value nd)) (when (list? val) (for ([lf (in-list val)]) (define C (utree-leaf-Clause lf)) (hash-ref! tested C (λ () (when (pred C C2) (return C)) #true))))))) #false)) ;; Return all Clauses C that left-subunify on at least one literal and for which (pred C C2). ;; ;; utree : unification-tree? ;; C2 : Clause? ;; pred : Clause? Clause? -> boolean? (define (utree-find/all utree C2 pred) (define tested (make-hasheq)) ; don't test the same C2 twice (define cl2 (Clause-clause C2)) (define res '()) (for ([lit (in-list cl2)]) (trie-find utree lit (λ (nd) (define val (trie-node-value nd)) (when (list? val) (for ([lf (in-list val)]) (define C (utree-leaf-Clause lf)) (hash-ref! tested C (λ () (when (pred C C2) (set! res (cons C res))) #true))))))) res) ;; Removes the Clause C from the utree. ;; ;; utree : unification-tree? ;; C : Clause? (define (utree-remove-Clause! utree C) (define cl (Clause-clause C)) (for ([lit (in-list cl)]) (trie-find utree lit (λ (nd) (define val (trie-node-value nd)) (when (list? val) (set-trie-node-value! nd (filter-not (λ (lf2) (eq? C (utree-leaf-Clause lf2))) val))))))) ;; Finds the leaves for which C loosely left-unifies on some literal and remove those which clause C2 ;; where (pred C C2). ;; Returns the set of Clauses that have been removed. ;; ;; utree : unification-tree? ;; C2 : Clause? ;; pred: Clause? Clause? -> boolean (define (utree-inverse-find/remove! utree C pred) ; Since the same Clause may match multiple times, ; We use a hash to remember which clauses have already been tested (and if the result ; was #true or #false). ; Then remove all the leaves of each clause to remove. (define tested (make-hasheq)) (define Clauses-to-remove '()) (define cl (Clause-clause C)) (for ([lit (in-list cl)]) (trie-inverse-find utree lit (λ (nd) (define val (trie-node-value nd)) (when (list? val) (for ([lf (in-list (trie-node-value nd))]) (define C2 (utree-leaf-Clause lf)) (hash-ref! tested C2 (λ () (cond [(pred C C2) (cons! C2 Clauses-to-remove) #true] [else #false])))))))) (for ([C2 (in-list Clauses-to-remove)]) (utree-remove-Clause! utree C2)) Clauses-to-remove) ================================================ FILE: satore/unification.rkt ================================================ #lang racket/base ;***************************************************************************************; ;**** Operations On Literals: Unification And Friends ****; ;***************************************************************************************; ;;; * A literal A unifies with a literal B iff there exists a substitution σ s.t. Aσ = Bσ. ;;; * A literal A left-unifies (= matches) with a literal B iff there exists a substitution ;;; σ s.t. Aσ = B. ;;; Note that left-unifies => unifies. (require bazaar/cond-else bazaar/list bazaar/mutation (except-in bazaar/order atom<=>) define2 global racket/dict racket/list racket/match (submod racket/performance-hint begin-encourage-inline)) (provide (all-defined-out)) ;===============; ;=== Globals ===; ;===============; (define-global:category *atom-order* 'atom1 '(atom1 KBO1lex) "Atom comparison function for rewrite rules.") (define (get-atom<=> #:? [atom-order (*atom-order*)]) (case atom-order [(KBO1lex) KBO1lex<=>] [(atom1) atom1<=>] [else (error "Unknown atom order: ~a" (*atom-order*))])) ;=================; ;=== Variables ===; ;=================; ;; The name of a variable is a number. (struct Var (name) #:prefab) ;; Comparisons between variables (begin-encourage-inline (define Var-name number<=>) (define (Var=? v1 v2) (Var-name=? (Var-name v1) (Var-name v2))) (define (Var v1 v2) (Var-name<=> (Var-name v1) (Var-name v2))) ; Ensures: (order=? (Var<=> v1 v2)) = (Vars=? v1 v2) ;:::::::::::::::::::::::::::::::::::; ;:: Basic operations on Variables ::; ;:::::::::::::::::::::::::::::::::::; ;; All symbols starting with a capitale letter are considered as variables. ;; ;; any/c -> boolean? (define (symbol-variable? t) (and (symbol? t) (char<=? #\A (string-ref (symbol->string t) 0) #\Z))) ;; Returns a variable 'name' corresponding to the given symbol. ;; Currently accepts only symbols like X1, X2, … and A, B, C, … ;; The same symbol is always mapped to the same Var-name, globally. ;; ;; symbol? -> exact-nonnegative-integer? (define (symbol->Var-name s) (define str (symbol->string s)) (cond [(regexp-match #px"^X(\\d+)$" str) => (λ (m) (+ 26 (string->number (second m))))] [(regexp-match #px"^[A-Z]$" str) => (λ (m) (- (char->integer (string-ref str 0)) (char->integer #\A)))] [else (error 'Varify "Unknown variable format: ~a" s)])) ;; Inverse operation of symbol->Var-name. ;; The same Var-name is always mapped to the same symbol, globally. ;; ;; exact-nonnegative-integer? -> symbol? (define (Var-name->symbol n) (cond [(symbol-variable? n) n] [(number? n) (if (< n 26) (string->symbol (string (integer->char (+ (char->integer #\A) n)))) (string->symbol (format "X~a" (- n 26))))] [else (error 'Var-name->symbol "Don't know what to do with ~a" n)])) ;; Returns a new atom like t where all symbol-variables have been turned into `Var?`s. ;; Notice: Does *not* ensure unicity of the variables across clauses. ;; ;; tree? -> atom? (define (Varify t) (cond [(pair? t) ; Works also in assocs (cons (Varify (car t)) (Varify (cdr t)))] [(symbol-variable? t) (Var (symbol->Var-name t))] [else t])) ;====================================; ;=== Substitutions data structure ===; ;====================================; ;; Basic substitution operations. ;; Simply put, a substitution is a `hasheqv`, where the keys are variables names, ;; and the values are terms. (begin-encourage-inline (define make-subst make-hasheqv) (define subst? hash?) (define in-subst in-hash) (define subst-count hash-count) (define subst-ref/name hash-ref) ; for when the name is retrieved from the subst (define subst-set!/name hash-set!) (define subst-copy hash-copy) ;; Modifies the substitution to bind `t` to `var`. ;; Returns the substitution to mimick the immutable update behaviour. ;; ;; subst? Var? term? -> subst? (define (subst-set! subst V t) (hash-set! subst (Var-name V) t) subst) ;; Returns the binding for the variable `V` in `subst`, or `default` if it doesn't exist. ;; ;; susbt? Var? term? -> term? (define (subst-ref subst V [default #false]) (hash-ref subst (Var-name V) default)) ;; Returns the binding for the variable `V` in `susbt` if it exists, ;; otherwise sets it to `default` and returns `default`. ;; ;; subst? Var? term? -> term? (define (subst-ref! subst V default) (hash-ref! subst (Var-name V) default)) ;; Updates the binding for the variable `V` with `update` ;; Returns the modified substitution ;; ;; subst : subst? ;; V : Var? ;; update : term? -> term? ;; default : term (define (subst-update! subst V update default) (hash-update! subst (Var-name V) update default) subst) ;; Returns the substitution as an association list sorted by `Var-name list? (define (subst->list s) (sort (hash->list s) Var-name list? (define (make-imsubst [pairs '()]) pairs) ;; Like subst-ref for immutable substitutions. ;; ;; imsubst? Var? term? -> term? (define (imsubst-ref subst V default) (define p (assoc (Var-name V) subst Var-name=?)) (if p (cdr p) default))) ;; like subst-set!, but does not modify the substitution and returns a new substitution. ;; ;; subst : imsubst? ;; V : var? ;; t : term? (define (imsubst-set subst V t) (define name (Var-name V)) (let loop ([s subst] [left '()]) (cond/else [(empty? s) (cons (cons name t) subst)] #:else (define p (car s)) #:cond [(Var-name=? (car p) name) (rev-append left (cons (cons name t) (cdr s)))] #:else (loop (cdr s) (cons p left))))) ;===============================; ;=== Operations on Variables ===; ;===============================; ;; Global index to ensure unicity of variable names. (define fresh-idx 0) ;; Returns a fresh variable with a unique name. ;; ;; -> Var? (define (new-Var) (++ fresh-idx) (Var fresh-idx)) ;; Renames all variables with fresh names to avoid collisions. ;; ;; term? -> term? (define (fresh t) (define h (make-subst)) (let loop ([t t]) (cond [(pair? t) (cons (loop (car t)) (loop (cdr t)))] [(Var? t) (subst-ref! h t new-Var)] [else t]))) ;; Variables names are mapped to a unique symbol, but the resulting Var-name is unpredictable, ;; and this mapping is guaranteed to be consistent only locally to the term t. ;; Used mostly to turn human-readable expressions into terms, without needing to worry about ;; the actual names of the variables. ;; ;; tree? -> term? (define (symbol-variables->Vars t) (define h (make-hasheq)) (let loop ([t t]) (cond [(pair? t) (cons (loop (car t)) (loop (cdr t)))] [(symbol-variable? t) (hash-ref! h t new-Var)] [else t]))) ;; Variables are replaced with symbols by order of appearence. Mostly for ease of reading by humans. ;; ;; term? -> tree? (define (Vars->symbols t) (define h (make-subst)) (define idx -1) (let loop ([t t]) (cond [(pair? t) (cons (loop (car t)) (loop (cdr t)))] [(Var? t) (subst-ref! h t (λ () (++ idx) (Var-name->symbol idx)))] [else t]))) ;; Returns a subst of the number of occurrences of the variables *names* in the term `t`. ;; ;; term? -> subst? (define (var-occs t) (define h (make-subst)) (let loop ([t t]) (cond [(pair? t) (loop (car t)) (loop (cdr t))] [(Var? t) (subst-update! h t add1 0)])) h) ;; Returns the variable names of the term `t`. ;; ;; term? -> list? (define (vars t) (map car (subst->list (var-occs t)))) ;; Returns the variables of the term `t`. ;; ;; term? -> (listof Var?) (define (Vars t) (map Var (vars t))) ;; Returns the set of variables *names* that appear in `t1` but not in `t2`. ;; ;; term? term? -> list? (define (variables-minus t1 t2) (define h2 (var-occs t2)) (for/list ([(v n) (in-hash (var-occs t1))] #:unless (hash-has-key? h2 v)) v)) ;; Returns the lexicographical index of each occurrence of the variable names of `t`, ;; in depth-first order. ;; ;; term? -> list? (define (find-var-names t) (define h (make-subst)) (let loop ([t t] [idx 0]) (cond [(pair? t) (loop (cdr t) (loop (car t) idx))] [(Var? t) (subst-update! h t min idx) (+ idx 1)] [else idx])) (map car (sort (subst->list h) < #:key cdr))) ;; Returns '< if each variable of t1 appears no more times in t1 ;; than the same variable in t2, ;; and at least one variable appears strictly fewer times. ;; Returns '= if the occurrences are equal. ;; Returns #false otherwise. ;; This can be seen as a kind of Pareto dominance. ;; This is used for KBO in particular. ;; Note: (var-occs<=> t1 t2) == (var-occs<=> t2 t1) ;; Note: t1 and t2 may have variables in common if they are two subterms of the same clause. ;; ;; term? term? -> (or/c '< '> '= #false) (define (var-occs<=> t1 t2) (define h1 (var-occs t1)) ; assumes does not contain 0s (define h2 (var-occs t2)) ; assumes does not contain 0s (define n-common 0) (define cmp (for/fold ([cmp '=]) ([(v1 n1) (in-subst h1)]) (define n2 (subst-ref/name h2 v1 0)) (cond [(> n2 0) (++ n-common) (define c (number<=> n1 n2)) (cond [(eq? cmp '=) c] [(eq? c '=) cmp] [(eq? cmp c) c] [else #false])] ; incomparable [else cmp]))) (define n1 (subst-count h1)) (define n2 (subst-count h2)) (cond [(and (< n-common n1) (< n-common n2)) #false] [(< n-common n2) (case cmp [(< =) '<] [else #false])] [(< n-common n1) (case cmp [(> =) '>] [else #false])] [else cmp])) ;=====================; ;=== Boolean logic ===; ;=====================; (begin-encourage-inline ;; Logical false (define lfalse '$false) ;; any/c -> boolean (define (lfalse? x) (eq? lfalse x)) ;; lfalse must be the bottom element for the various atom orders. ;; ;; any/c any/c -> (or/c '< '> '= #false) (define (lfalse<=> a b) (define afalse? (lfalse? a)) (define bfalse? (lfalse? b)) (cond [(and afalse? bfalse?) '=] [afalse? '<] [bfalse? '>] [else #false])) (define ltrue '$true) ;; any/c -> boolean? (define (ltrue? x) (eq? x ltrue)) ;; Returns whether the literal `lit` has negative polarity. ;; ;; literal? -> boolean? (define (lnot? lit) (and (pair? lit) (eq? 'not (car lit)))) ;; Inverses the polarity of the literal. ;; NOTICE: Always use `lnot`, do not construct negated atoms yourself. ;; ;; literal? -> literal? (define (lnot x) (cond [(lnot? x) (cadr x)] [(lfalse? x) ltrue] [(ltrue? x) lfalse] [else (list 'not x)])) ;; Compares the polarities of the two literals. ;; (polarity<=> 'a '(not a)) returns '< ;; ;; literal? literal? -> (or/c '< '> '= #false) (define (polarity<=> lit1 lit2) (boolean<=> (lnot? lit1) (lnot? lit2)))) ;=================================; ;=== Literals, atoms, terms, … ===; ;=================================; #| literal = atom | (not atom) atom = constant | (predicate term ...) term = (funtion term ...) | variable | constant predicate = symbol? function = symbol? constant = symbol? variable = (Var number?) For simplicity, we sometimes use 'term' to mean 'atom or term', or even 'literal, atom or term'. |# ;; Returns the number of nodes in the tree representing the term `t` (or literal, atom). ;; ;; term? -> exact-nonnegative-integer? (define (tree-size t) (let loop ([t t] [s 0]) (cond [(Var? t) (+ s 1)] [(pair? t) (loop (cdr t) (loop (car t) s))] [else (+ s 1)]))) ;; The literals are depolarized first, because negation should not count. ;; ;; literal? -> exact-nonnegative-integer? (define (literal-size lit) (tree-size (depolarize lit))) ;; In particular, it should be as easy to prove A | B as ~A | ~B, otherwise finding equivalences ;; can be more difficult. ;; ;; clause? -> exact-nonnegative-integer? (define (clause-size cl) (for/sum ([lit (in-list cl)]) (literal-size lit))) ;; Comparison of atoms (or literals) for atom rewriting. ;; Returns < if for every substitution α, (atom1<=> t1α t2α) returns <. ;; (Can this be calculated given a base atom1<=> ?) ;; - Rk: variables of t2 that don't appear in t1 are not a problem since they are not instanciated ;; in t2α. ;; - Equality is loose and is based only on *some* properties of the atoms. ;; - This is a good first comparator, but not good enough (e.g., does not associativity) ;; Notice: (order=? (atom<=> t1 t2)) does NOT necessarily mean that t1 and t2 are syntactically equal. ;; ;; literal? literal? -> (or/c '< '> '= #false) (define (atom1<=> lit1 lit2) (let ([t1 (depolarize lit1)] [t2 (depolarize lit2)]) (cond/else [(lfalse<=> t1 t2)] ; continue if neither is lfalse #:else (define size (number<=> (tree-size t1) (tree-size t2))) (define vs (var-occs<=> t1 t2)) #:cond [(and (order=? vs) (order=? size)) (or (term-lex2<=> t1 t2) '=)] ; for commutativity [(and (order≤? vs) (order≤? size)) '<] ; one is necessarily '< [(and (order≥? vs) (order≥? size)) '>] #:else #false))) ;; For KBO. ;; fun-weight is also for constants, hence it's more like symbol-weight ;; (but the name 'function' is commonly used for constants too). ;; ;; t : term? ;; var-weight : number? ;; fun-weight : symbol? -> number? ;; -> number? (define (term-weight t #:? [var-weight 1] #:? [fun-weight (λ (f) 1)]) (let loop ([t t]) (cond [(Var? t) var-weight] [(symbol? t) (fun-weight t)] [(list? t) (for/sum ([s (in-list t)]) (loop s))] [else (error "Unknown term ~a" t)]))) ;; Knuth-Bendix Ordering, naive version. ;; Can be used for atom rewriting. ;; To do: Implement a faster version. ;; See "Things to know when implementing KB", Löchner, 2006. ;; var-weight MUST be ≤ to all fun-weights of constants. ;; Simple version for clarity and proximity to the specifications. ;; ;; var-weight : number? ;; fun-weight : symbol? -> number? ;; fun<=> : symbol? symbol? -> (or/c '< '> '= #false) ;; -> (term? term? -> (or/c '< '> '= #false)) (define (make-KBO<=> #:? var-weight #:? fun-weight #:? [fun<=> symbol<=>]) (define (weight t) (term-weight t #:var-weight var-weight #:fun-weight fun-weight)) (define (KBO<=> t1 t2) (cond [(and (Var? t1) (Var? t2)) (and (Var=? t1 t2) '=)] ; not specified, but surely right? [(Var? t1) (and (occurs? t1 t2) '<)] [(Var? t2) (and (occurs? t2 t1) '>)] [else ; both are fun apps or constants (define v (var-occs<=> t1 t2)) (and v (let ([t-cmp (sub-KBO<=> (if (list? t1) t1 (list t1)) ; turn constants into fun apps. (if (list? t2) t2 (list t2)))]) (case v [(<) (and (order<=? t-cmp) t-cmp)] [(>) (and (order>=? t-cmp) t-cmp)] [(=) t-cmp])))])) ;; t1 and t2 MUST be lists. (define (sub-KBO<=> t1 t2) (chain-comparisons (number<=> (weight t1) (weight t2)) (fun<=> (first t1) (first t2)) ;; Chain on subterms. (<=>map KBO<=> (rest t1) (rest t2)))) (λ (t1 t2) (let ([t1 (depolarize t1)] [t2 (depolarize t2)]) (or (lfalse<=> t1 t2) (KBO<=> t1 t2))))) ;; Default KBO comparator. ;; ;; term? term? -> (or/c '< '> '= #false) (define KBO1lex<=> (make-KBO<=>)) ;; Returns the atom of the literal. ;; ;; literal? -> atom? (define (depolarize lit) (match lit [`(not ,x) x] [else lit])) ;; Returns the number of arguments of the predicate of the literal lit, after depolarizing it. ;; ;; literal? -> exact-nonnegative-integer? (define (literal-arity lit) (let ([lit (depolarize lit)]) (if (list? lit) (length lit) 0))) ;; Returns the name of the predicate (or constant) of the literal. ;; ;; literal? -> symbol? (define (literal-symbol lit) (match lit [`(not (,p . ,r)) p] [`(not ,a) a] [`(,p . ,r) p] [else lit])) ;; Lexicographical comparison. ;; Used in literal<=> to sort literals within a clause. NOT used for rewriting. ;; Guarantees: (order=? (term-lex<=> t1 t2)) = (term==? t1 t2) (but maybe a slightly slower?) ;; ;; term? term? -> (or/c '< '> '= #false) (define (term-lex<=> t1 t2) (cond [(eq? t1 t2) '=] ; takes care of '() [(and (pair? t1) (pair? t2)) (chain-comparisons (term-lex<=> (car t1) (car t2)) (term-lex<=> (cdr t1) (cdr t2)))] [(pair? t1) '>] [(pair? t2) '<] [(and (Var? t1) (Var? t2)) (Var<=> t1 t2)] [(Var? t1) '<] [(Var? t2) '>] [(and (symbol? t1) (symbol? t2)) (symbol<=> t1 t2)] [else (error 'term-lex<=> "Unknown term kind for: ~a, ~a" t1 t2)])) ;; Comparator for terms used in atom1<=> for atom rewriting. ;; Can't compare vars with symbols, or vars with vars. Can only compare ground symbols: ;; A binary rule can't be oriented with variables ;; ;; term? term? -> (or/c '< '> '= #false) (define (term-lex2<=> t1 t2) (cond [(eq? t1 t2) '=] ; takes care of '() [(and (Var? t1) (Var? t2) (Var=? t1 t2)) '=] [(or (Var? t1) (Var? t2)) #false] ; incomparable, cannot be oriented [(and (pair? t1) (pair? t2)) (chain-comparisons (term-lex2<=> (car t1) (car t2)) (term-lex2<=> (cdr t1) (cdr t2)))] [(pair? t1) '>] [(pair? t2) '<] [(and (symbol? t1) (symbol? t2)) (symbol<=> t1 t2)] [else (error 'term-lex2<=> "Unknown term kind for: ~a, ~a" t1 t2)])) ;; Depth-first lexicographical order (df-lex) ;; Used for literal ordering in clauses. Not used for atom rewriting. ;; Guarantees: (order=? (literal<=> lit1 lit2)) = (literal==? lit1 lit2). (or it's a bug) ;; ;; literal? literal? -> (or/c '< '> '= #false) (define (literal<=> lit1 lit2) (chain-comparisons (polarity<=> lit1 lit2) (symbol<=> (literal-symbol lit1) (literal-symbol lit2)) ; A literal cannot be a variable (cond [(and (list? lit1) (list? lit2)) ; this also checks arity (<=>map term-lex<=> (rest lit1) (rest lit2))] [(list? lit2) '<] [(list? lit1) '>] [else '=]))) ;; Used to sort literals in a clause. ;; ;; literal? literal? -> boolean? (define (literal lit1 lit2))) ;; Syntactic comparison of terms and literals. ;; This works because variables are transparent (prefab), hence equal? traverses the Var struct too. ;; We use `==` to denote syntactic equivalence. ;; ;; term? term? -> boolean? (define term==? equal?) ;; literal? literal? -> boolean? (define literal==? equal?) ;==================================; ;=== Substitution / Unification ===; ;==================================; ;; Notice: Setting this to #true forces the mgu substitutions to ensure ;; dom(σ)\cap vran(σ) = ø ;; but can be exponentially slow in some rare cases. ;; Also, it's not necessary. (define reduce-mgu? #false) ;; Returns a term where the substitution s is applied to the term t. ;; The substitution `s` may not be 'reduced' in the sense that variables ;; of the domain may appear in the range. ;; ;; term? subst? -> term? (define (substitute/slow t s) (define t-orig t) (let loop ([t t]) (cond [(null? t) t] [(pair? t) (cons (loop (car t)) (loop (cdr t)))] [(and (Var? t) (subst-ref s t #false)) ; Recur into the substitution. => loop] [else t]))) ;; A simple box to signify that there is no need to attempt to substitute ;; inside `term` as this has already been done. (struct already-substed (term) #:prefab) ;; Like `substitute/slow` but avoids unnecessary work. ;; Such substitutions are performed 'on-demand', if needed. ;; Once a substitution has been applied recursively to a rhs, the resulting ;; term is marked with `already-substed` to avoid attempting it again. ;; ;; Notice: This function can only be used if `s` is *not* going to be extended, ;; otherwise it may not produce the correct result. ;; ;; term? subst? -> term? (define (substitute t s) (define t-orig t) (let loop ([t t]) (cond [(null? t) t] [(pair? t) (cons (loop (car t)) (loop (cdr t)))] [(and (Var? t) (subst-ref s t #false)) ; Recur into the substitution. ; This avoids recurring many times inside the same substitution. => (λ (rhs) (cond [(already-substed? rhs) ; No need to loop inside the new term. (already-substed-term rhs)] [else (define new-rhs (loop rhs)) (subst-set! s t (already-substed new-rhs)) new-rhs]))] [else t]))) ;; Checks whether the variable `V` occurs un `t`. ;; ;; Var? term? -> boolean? (define (occurs? V t) (cond [(Var? t) (Var=? V t)] [(pair? t) (or (occurs? V (car t)) (occurs? V (cdr t)))] [else #false])) ;; Returns #false if `V` occurs in `t2`, otherwise binds `t2` to `V` in `subst` and returns `subst`. ;; ;; Var? term? subst? -> (or/c #false subst?) (define (occurs?/extend V t2 subst) (define t2c (substitute/slow t2 subst)) (if (occurs? V t2c) #false (begin (subst-set! subst V t2c) subst))) ;; Returns one most general unifier α such that t1α = t2α. ;; ;; term? term? subst? -> subst? (define (unify t1 t2 [subst (make-subst)]) (define success? (let loop ([t1 t1] [t2 t2]) (cond/else [(eq? t1 t2) ; takes care of both null? subst] [(and (pair? t1) (pair? t2)) (and (loop (car t1) (car t2)) (loop (cdr t1) (cdr t2)))] #:else (define v1? (Var? t1)) (define v2? (Var? t2)) #:cond [(and (not v1?) (not v2?)) ; since they are not `eq?` #false] [(and v1? v2? (Var=? t1 t2)) ; since at least one is a Var ; Same variable, no need to substitute, and should not fail occurs?/extend. subst] #:else (define t1b (and v1? (subst-ref subst t1 #false))) (define t2b (and v2? (subst-ref subst t2 #false))) #:cond [(or t1b t2b) ; rec (loop (or t1b t1) (or t2b t2))] [v1? ; t2 may also be a variable (occurs?/extend t1 t2 subst)] [v2? ; v2? but not v1? (occurs?/extend t2 t1 subst)] #:else (void)))) ; Make sure we return a most general unifier ; NOTICE: This can take a lot of time (see strest tests), but may prevent issues too. (and success? (if reduce-mgu? (let ([s2 (make-subst)]) (for ([(k v) (in-subst subst)]) (subst-set!/name s2 k (substitute v subst))) s2) subst))) ;; Creates a procedure that returns the substitution α such that t1α = t2, of #false if none exists. ;; t2 is assumed to not contain any variable of t1. ;; Also known as matching ;; - The optional argument is useful to chain left-unify over several literals, say. ;; - Works with both mutable and immutable substitutions. ;; NOTICE: ;; The found substitution must be specializing, that is C2σ = C2 (and C1σ = C2), ;; otherwise safe factoring can fail, in particular. ;; Hence we must ensure that vars(C2) ∩ dom(σ) = ø. (define-syntax-rule (define-left-subst+unify left-substitute left-unify make-subst subst-ref subst-set) (begin ;; Returns a term like `t` where the substitution `s` has been applied. ;; ;; term? subst? -> term? (define (left-substitute t s) (let loop ([t t]) (cond [(null? t) t] [(pair? t) (cons (loop (car t)) (loop (cdr t)))] [(and (Var? t) (subst-ref s t #false))] [else t]))) ;; Returns a substitution α such that t1α = t2, if it exists, #false otherwise. ;; ;; term? term? subst? -> (or/c #false subst?) (define (left-unify t1 t2 [subst (make-subst)]) (cond/else [(eq? t1 t2) ; takes care of both null? subst] [(and (pair? t1) (pair? t2)) (define new-subst (left-unify (car t1) (car t2) subst)) (and new-subst (left-unify (cdr t1) (cdr t2) new-subst))] [(term==? t1 t2) subst] ; To do: This is costly [(not (Var? t1)) #false] #:else (define t1b (subst-ref subst t1 #false)) #:cond [t1b (and (term==? t1b t2) subst)] ; This ensures that vars(C2) ∩ dom(σ) = ø: ; if var, t1 must not occur in rhs of subst ; and any lhs of subst and t1 must not occur in t2 [(or (occurs? t1 t2) (for/or ([(var-name val) (in-dict subst)]) (or (occurs? t1 val) (occurs? (Var var-name) t2)))) #false] #:else (subst-set subst t1 t2))))) ;; Mutable substitutions (define-left-subst+unify left-substitute left-unify make-subst subst-ref subst-set!) ;; Immutable substitutions (define-left-subst+unify left-substitute/assoc left-unify/assoc make-imsubst imsubst-ref imsubst-set) ;; Returns #true if `pat` left-unifies with any subterm of `t`. ;; ;; term? term? -> (or/c #false term?) (define (left-unify-anywhere pat t) (let loop ([t t]) (cond [(left-unify pat t)] [(list? t) (ormap loop t)] [else #false]))) ;; Returns #true if `(filt tt)` is true for any subterm `tt` of `t`. ;; ;; (term? -> boolean?) term? -> boolean? (define (match-anywhere filt t) (let loop ([t t]) (cond [(filt t)] [(list? t) (ormap loop (rest t))] [else #false]))) ================================================ FILE: scratchgan/README.md ================================================ # ScratchGAN This is the example code for the following NeurIPS 2019 paper. If you use the code here please cite this paper: @article{DBLP:journals/corr/abs-1905-09922, author = {Cyprien de Masson d'Autume and Mihaela Rosca and Jack W. Rae and Shakir Mohamed}, title = {Training language GANs from Scratch}, journal = {CoRR}, volume = {abs/1905.09922}, year = {2019}, url = {http://arxiv.org/abs/1905.09922}, archivePrefix = {arXiv}, eprint = {1905.09922}, timestamp = {Wed, 29 May 2019 11:27:50 +0200}, biburl = {https://dblp.org/rec/bib/journals/corr/abs-1905-09922}, bibsource = {dblp computer science bibliography, https://dblp.org} } ## Contents The code contains: * `generators.py`: implementation of the generator. * `discriminator_nets.py`: implementation of the discriminator. * `eval_metrics.py`: implementation of the FED metric. * `losses.py`: implementation of the RL loss for the generator. * `reader.py`: data reader / tokenizer. * `experiment.py`: main training script. The data contains: * `{train,valid,test}.json`: the EMNLP2017 News dataset. * `glove_emnlp2017.txt`: the relevant subset of GloVe embeddings. ## Running ./scratchgan/run.sh ================================================ FILE: scratchgan/__init__.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: scratchgan/discriminator_nets.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Discriminator networks for text data.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import sonnet as snt import tensorflow.compat.v1 as tf from scratchgan import utils class LSTMEmbedDiscNet(snt.AbstractModule): """An LSTM discriminator that operates on word indexes.""" def __init__(self, feature_sizes, vocab_size, use_layer_norm, trainable_embedding_size, dropout, pad_token, embedding_source=None, vocab_file=None, name='LSTMEmbedDiscNet'): super(LSTMEmbedDiscNet, self).__init__(name=name) self._feature_sizes = feature_sizes self._vocab_size = vocab_size self._use_layer_norm = use_layer_norm self._trainable_embedding_size = trainable_embedding_size self._embedding_source = embedding_source self._vocab_file = vocab_file self._dropout = dropout self._pad_token = pad_token if self._embedding_source: assert vocab_file def _build(self, sequence, sequence_length, is_training=True): """Connect to the graph. Args: sequence: A [batch_size, max_sequence_length] tensor of int. For example the indices of words as sampled by the generator. sequence_length: A [batch_size] tensor of int. Length of the sequence. is_training: Boolean, False to disable dropout. Returns: A [batch_size, max_sequence_length, feature_size] tensor of floats. For each sequence in the batch, the features should (hopefully) allow to distinguish if the value at each timestep is real or generated. """ batch_size, max_sequence_length = sequence.shape.as_list() keep_prob = (1.0 - self._dropout) if is_training else 1.0 if self._embedding_source: all_embeddings = utils.make_partially_trainable_embeddings( self._vocab_file, self._embedding_source, self._vocab_size, self._trainable_embedding_size) else: all_embeddings = tf.get_variable( 'trainable_embedding', shape=[self._vocab_size, self._trainable_embedding_size], trainable=True) _, self._embedding_size = all_embeddings.shape.as_list() input_embeddings = tf.nn.dropout(all_embeddings, keep_prob=keep_prob) embeddings = tf.nn.embedding_lookup(input_embeddings, sequence) embeddings.shape.assert_is_compatible_with( [batch_size, max_sequence_length, self._embedding_size]) position_dim = 8 embeddings_pos = utils.append_position_signal(embeddings, position_dim) embeddings_pos = tf.reshape( embeddings_pos, [batch_size * max_sequence_length, self._embedding_size + position_dim]) lstm_inputs = snt.Linear(self._feature_sizes[0])(embeddings_pos) lstm_inputs = tf.reshape( lstm_inputs, [batch_size, max_sequence_length, self._feature_sizes[0]]) lstm_inputs.shape.assert_is_compatible_with( [batch_size, max_sequence_length, self._feature_sizes[0]]) encoder_cells = [] for feature_size in self._feature_sizes: encoder_cells += [ snt.LSTM(feature_size, use_layer_norm=self._use_layer_norm) ] encoder_cell = snt.DeepRNN(encoder_cells) initial_state = encoder_cell.initial_state(batch_size) hidden_states, _ = tf.nn.dynamic_rnn( cell=encoder_cell, inputs=lstm_inputs, sequence_length=sequence_length, initial_state=initial_state, swap_memory=True) hidden_states.shape.assert_is_compatible_with( [batch_size, max_sequence_length, sum(self._feature_sizes)]) logits = snt.BatchApply(snt.Linear(1))(hidden_states) logits.shape.assert_is_compatible_with([batch_size, max_sequence_length, 1]) logits_flat = tf.reshape(logits, [batch_size, max_sequence_length]) # Mask past first PAD symbol # # Note that we still rely on tf.nn.bidirectional_dynamic_rnn taking # into account the sequence_length properly, because otherwise # the logits at a given timestep will depend on the inputs for all other # timesteps, including the ones that should be masked. mask = utils.get_mask_past_symbol(sequence, self._pad_token) masked_logits_flat = logits_flat * tf.cast(mask, tf.float32) return masked_logits_flat ================================================ FILE: scratchgan/eval_metrics.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Evaluation metrics.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import tensorflow.compat.v1 as tf import tensorflow_gan as tfgan import tensorflow_hub as hub def fid(generated_sentences, real_sentences): """Compute FID rn sentences using pretrained universal sentence encoder. Args: generated_sentences: list of N strings. real_sentences: list of N strings. Returns: Frechet distance between activations. """ embed = hub.Module("https://tfhub.dev/google/universal-sentence-encoder/2") real_embed = embed(real_sentences) generated_embed = embed(generated_sentences) distance = tfgan.eval.frechet_classifier_distance_from_activations( real_embed, generated_embed) # Restrict the thread pool size to prevent excessive CPU usage. config = tf.ConfigProto() config.intra_op_parallelism_threads = 16 config.inter_op_parallelism_threads = 16 with tf.Session(config=config) as session: session.run(tf.global_variables_initializer()) session.run(tf.tables_initializer()) distance_np = session.run(distance) return distance_np ================================================ FILE: scratchgan/experiment.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Training script for ScratchGAN.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import os import time from absl import app from absl import flags from absl import logging import numpy as np import tensorflow.compat.v1 as tf from tensorflow.compat.v1.io import gfile from scratchgan import discriminator_nets from scratchgan import eval_metrics from scratchgan import generators from scratchgan import losses from scratchgan import reader from scratchgan import utils flags.DEFINE_string("dataset", "emnlp2017", "Dataset.") flags.DEFINE_integer("batch_size", 512, "Batch size") flags.DEFINE_string("gen_type", "lstm", "Generator type.") flags.DEFINE_string("disc_type", "lstm", "Discriminator type.") flags.DEFINE_string("disc_loss_type", "ce", "Loss type.") flags.DEFINE_integer("gen_feature_size", 512, "Generator feature size.") flags.DEFINE_integer("disc_feature_size", 512, "Discriminator feature size.") flags.DEFINE_integer("num_layers_gen", 2, "Number of generator layers.") flags.DEFINE_integer("num_layers_disc", 1, "Number of discriminator layers.") flags.DEFINE_bool("layer_norm_gen", False, "Layer norm generator.") flags.DEFINE_bool("layer_norm_disc", True, "Layer norm discriminator.") flags.DEFINE_float("gen_input_dropout", 0.0, "Input dropout generator.") flags.DEFINE_float("gen_output_dropout", 0.0, "Input dropout discriminator.") flags.DEFINE_float("l2_gen", 0.0, "L2 regularization generator.") flags.DEFINE_float("l2_disc", 1e-6, "L2 regularization discriminator.") flags.DEFINE_float("disc_dropout", 0.1, "Dropout discriminator") flags.DEFINE_integer("trainable_embedding_size", 64, "Size of trainable embedding.") flags.DEFINE_bool("use_pretrained_embedding", True, "Use pretrained embedding.") flags.DEFINE_integer("num_steps", int(200 * 1000), "Number of training steps.") flags.DEFINE_integer("num_disc_updates", 1, "Number of discriminator updates.") flags.DEFINE_integer("num_gen_updates", 1, "Number of generator updates.") flags.DEFINE_string("data_dir", "/tmp/emnlp2017", "Directory where data is.") flags.DEFINE_float("gen_lr", 9.59e-5, "Learning rate generator.") flags.DEFINE_float("disc_lr", 9.38e-3, "Learning rate discriminator.") flags.DEFINE_float("gen_beta1", 0.5, "Beta1 for generator.") flags.DEFINE_float("disc_beta1", 0.5, "Beta1 for discriminator.") flags.DEFINE_float("gamma", 0.23, "Discount factor.") flags.DEFINE_float("baseline_decay", 0.08, "Baseline decay rate.") flags.DEFINE_string("mode", "train", "train or evaluate_pair.") flags.DEFINE_string("checkpoint_dir", "/tmp/emnlp2017/checkpoints/", "Directory for checkpoints.") flags.DEFINE_integer("export_every", 1000, "Frequency of checkpoint exports.") flags.DEFINE_integer("num_examples_for_eval", int(1e4), "Number of examples for evaluation") EVALUATOR_SLEEP_PERIOD = 60 # Seconds evaluator sleeps if nothing to do. def main(_): config = flags.FLAGS gfile.makedirs(config.checkpoint_dir) if config.mode == "train": train(config) elif config.mode == "evaluate_pair": while True: checkpoint_path = utils.maybe_pick_models_to_evaluate( checkpoint_dir=config.checkpoint_dir) if checkpoint_path: evaluate_pair( config=config, batch_size=config.batch_size, checkpoint_path=checkpoint_path, data_dir=config.data_dir, dataset=config.dataset, num_examples_for_eval=config.num_examples_for_eval) else: logging.info("No models to evaluate found, sleeping for %d seconds", EVALUATOR_SLEEP_PERIOD) time.sleep(EVALUATOR_SLEEP_PERIOD) else: raise Exception( "Unexpected mode %s, supported modes are \"train\" or \"evaluate_pair\"" % (config.mode)) def train(config): """Train.""" logging.info("Training.") tf.reset_default_graph() np.set_printoptions(precision=4) # Get data. raw_data = reader.get_raw_data( data_path=config.data_dir, dataset=config.dataset) train_data, valid_data, word_to_id = raw_data id_to_word = {v: k for k, v in word_to_id.items()} vocab_size = len(word_to_id) max_length = reader.MAX_TOKENS_SEQUENCE[config.dataset] logging.info("Vocabulary size: %d", vocab_size) iterator = reader.iterator(raw_data=train_data, batch_size=config.batch_size) iterator_valid = reader.iterator( raw_data=valid_data, batch_size=config.batch_size) real_sequence = tf.placeholder( dtype=tf.int32, shape=[config.batch_size, max_length], name="real_sequence") real_sequence_length = tf.placeholder( dtype=tf.int32, shape=[config.batch_size], name="real_sequence_length") first_batch_np = next(iterator) valid_batch_np = next(iterator_valid) test_real_batch = {k: tf.constant(v) for k, v in first_batch_np.items()} test_fake_batch = { "sequence": tf.constant( np.random.choice( vocab_size, size=[config.batch_size, max_length]).astype(np.int32)), "sequence_length": tf.constant( np.random.choice(max_length, size=[config.batch_size]).astype(np.int32)), } valid_batch = {k: tf.constant(v) for k, v in valid_batch_np.items()} # Create generator. if config.use_pretrained_embedding: embedding_source = utils.get_embedding_path(config.data_dir, config.dataset) vocab_file = "/tmp/vocab.txt" with gfile.GFile(vocab_file, "w") as f: for i in range(len(id_to_word)): f.write(id_to_word[i] + "\n") logging.info("Temporary vocab file: %s", vocab_file) else: embedding_source = None vocab_file = None gen = generators.LSTMGen( vocab_size=vocab_size, feature_sizes=[config.gen_feature_size] * config.num_layers_gen, max_sequence_length=reader.MAX_TOKENS_SEQUENCE[config.dataset], batch_size=config.batch_size, use_layer_norm=config.layer_norm_gen, trainable_embedding_size=config.trainable_embedding_size, input_dropout=config.gen_input_dropout, output_dropout=config.gen_output_dropout, pad_token=reader.PAD_INT, embedding_source=embedding_source, vocab_file=vocab_file, ) gen_outputs = gen() # Create discriminator. disc = discriminator_nets.LSTMEmbedDiscNet( vocab_size=vocab_size, feature_sizes=[config.disc_feature_size] * config.num_layers_disc, trainable_embedding_size=config.trainable_embedding_size, embedding_source=embedding_source, use_layer_norm=config.layer_norm_disc, pad_token=reader.PAD_INT, vocab_file=vocab_file, dropout=config.disc_dropout, ) disc_logits_real = disc( sequence=real_sequence, sequence_length=real_sequence_length) disc_logits_fake = disc( sequence=gen_outputs["sequence"], sequence_length=gen_outputs["sequence_length"]) # Loss of the discriminator. if config.disc_loss_type == "ce": targets_real = tf.ones( [config.batch_size, reader.MAX_TOKENS_SEQUENCE[config.dataset]]) targets_fake = tf.zeros( [config.batch_size, reader.MAX_TOKENS_SEQUENCE[config.dataset]]) loss_real = losses.sequential_cross_entropy_loss(disc_logits_real, targets_real) loss_fake = losses.sequential_cross_entropy_loss(disc_logits_fake, targets_fake) disc_loss = 0.5 * loss_real + 0.5 * loss_fake # Loss of the generator. gen_loss, cumulative_rewards, baseline = losses.reinforce_loss( disc_logits=disc_logits_fake, gen_logprobs=gen_outputs["logprobs"], gamma=config.gamma, decay=config.baseline_decay) # Optimizers disc_optimizer = tf.train.AdamOptimizer( learning_rate=config.disc_lr, beta1=config.disc_beta1) gen_optimizer = tf.train.AdamOptimizer( learning_rate=config.gen_lr, beta1=config.gen_beta1) # Get losses and variables. disc_vars = disc.get_all_variables() gen_vars = gen.get_all_variables() l2_disc = tf.reduce_sum(tf.add_n([tf.nn.l2_loss(v) for v in disc_vars])) l2_gen = tf.reduce_sum(tf.add_n([tf.nn.l2_loss(v) for v in gen_vars])) scalar_disc_loss = tf.reduce_mean(disc_loss) + config.l2_disc * l2_disc scalar_gen_loss = tf.reduce_mean(gen_loss) + config.l2_gen * l2_gen # Update ops. global_step = tf.train.get_or_create_global_step() disc_update = disc_optimizer.minimize( scalar_disc_loss, var_list=disc_vars, global_step=global_step) gen_update = gen_optimizer.minimize( scalar_gen_loss, var_list=gen_vars, global_step=global_step) # Saver. saver = tf.train.Saver() # Metrics test_disc_logits_real = disc(**test_real_batch) test_disc_logits_fake = disc(**test_fake_batch) valid_disc_logits = disc(**valid_batch) disc_predictions_real = tf.nn.sigmoid(disc_logits_real) disc_predictions_fake = tf.nn.sigmoid(disc_logits_fake) valid_disc_predictions = tf.reduce_mean( tf.nn.sigmoid(valid_disc_logits), axis=0) test_disc_predictions_real = tf.reduce_mean( tf.nn.sigmoid(test_disc_logits_real), axis=0) test_disc_predictions_fake = tf.reduce_mean( tf.nn.sigmoid(test_disc_logits_fake), axis=0) # Only log results for the first element of the batch. metrics = { "scalar_gen_loss": scalar_gen_loss, "scalar_disc_loss": scalar_disc_loss, "disc_predictions_real": tf.reduce_mean(disc_predictions_real), "disc_predictions_fake": tf.reduce_mean(disc_predictions_fake), "test_disc_predictions_real": tf.reduce_mean(test_disc_predictions_real), "test_disc_predictions_fake": tf.reduce_mean(test_disc_predictions_fake), "valid_disc_predictions": tf.reduce_mean(valid_disc_predictions), "cumulative_rewards": tf.reduce_mean(cumulative_rewards), "baseline": tf.reduce_mean(baseline), } # Training. logging.info("Starting training") with tf.Session() as sess: sess.run(tf.global_variables_initializer()) latest_ckpt = tf.train.latest_checkpoint(config.checkpoint_dir) if latest_ckpt: saver.restore(sess, latest_ckpt) for step in range(config.num_steps): real_data_np = next(iterator) train_feed = { real_sequence: real_data_np["sequence"], real_sequence_length: real_data_np["sequence_length"], } # Update generator and discriminator. for _ in range(config.num_disc_updates): sess.run(disc_update, feed_dict=train_feed) for _ in range(config.num_gen_updates): sess.run(gen_update, feed_dict=train_feed) # Reporting if step % config.export_every == 0: gen_sequence_np, metrics_np = sess.run( [gen_outputs["sequence"], metrics], feed_dict=train_feed) metrics_np["gen_sentence"] = utils.sequence_to_sentence( gen_sequence_np[0, :], id_to_word) saver.save( sess, save_path=config.checkpoint_dir + "scratchgan", global_step=global_step) metrics_np["model_path"] = tf.train.latest_checkpoint( config.checkpoint_dir) logging.info(metrics_np) # After training, export models. saver.save( sess, save_path=config.checkpoint_dir + "scratchgan", global_step=global_step) logging.info("Saved final model at %s.", tf.train.latest_checkpoint(config.checkpoint_dir)) def evaluate_pair(config, batch_size, checkpoint_path, data_dir, dataset, num_examples_for_eval): """Evaluates a pair generator discriminator. This function loads a discriminator from disk, a generator, and evaluates the discriminator against the generator. It returns the mean probability of the discriminator against several batches, and the FID of the generator against the validation data. It also writes evaluation samples to disk. Args: config: dict, the config file. batch_size: int, size of the batch. checkpoint_path: string, full path to the TF checkpoint on disk. data_dir: string, path to a directory containing the dataset. dataset: string, "emnlp2017", to select the right dataset. num_examples_for_eval: int, number of examples for evaluation. """ tf.reset_default_graph() logging.info("Evaluating checkpoint %s.", checkpoint_path) # Build graph. train_data, valid_data, word_to_id = reader.get_raw_data( data_dir, dataset=dataset) id_to_word = {v: k for k, v in word_to_id.items()} vocab_size = len(word_to_id) train_iterator = reader.iterator(raw_data=train_data, batch_size=batch_size) valid_iterator = reader.iterator(raw_data=valid_data, batch_size=batch_size) train_sequence = tf.placeholder( dtype=tf.int32, shape=[batch_size, reader.MAX_TOKENS_SEQUENCE[dataset]], name="train_sequence") train_sequence_length = tf.placeholder( dtype=tf.int32, shape=[batch_size], name="train_sequence_length") valid_sequence = tf.placeholder( dtype=tf.int32, shape=[batch_size, reader.MAX_TOKENS_SEQUENCE[dataset]], name="valid_sequence") valid_sequence_length = tf.placeholder( dtype=tf.int32, shape=[batch_size], name="valid_sequence_length") disc_inputs_train = { "sequence": train_sequence, "sequence_length": train_sequence_length, } disc_inputs_valid = { "sequence": valid_sequence, "sequence_length": valid_sequence_length, } if config.use_pretrained_embedding: embedding_source = utils.get_embedding_path(config.data_dir, config.dataset) vocab_file = "/tmp/vocab.txt" with gfile.GFile(vocab_file, "w") as f: for i in range(len(id_to_word)): f.write(id_to_word[i] + "\n") logging.info("Temporary vocab file: %s", vocab_file) else: embedding_source = None vocab_file = None gen = generators.LSTMGen( vocab_size=vocab_size, feature_sizes=[config.gen_feature_size] * config.num_layers_gen, max_sequence_length=reader.MAX_TOKENS_SEQUENCE[config.dataset], batch_size=config.batch_size, use_layer_norm=config.layer_norm_gen, trainable_embedding_size=config.trainable_embedding_size, input_dropout=config.gen_input_dropout, output_dropout=config.gen_output_dropout, pad_token=reader.PAD_INT, embedding_source=embedding_source, vocab_file=vocab_file, ) gen_outputs = gen() disc = discriminator_nets.LSTMEmbedDiscNet( vocab_size=vocab_size, feature_sizes=[config.disc_feature_size] * config.num_layers_disc, trainable_embedding_size=config.trainable_embedding_size, embedding_source=embedding_source, use_layer_norm=config.layer_norm_disc, pad_token=reader.PAD_INT, vocab_file=vocab_file, dropout=config.disc_dropout, ) disc_inputs = { "sequence": gen_outputs["sequence"], "sequence_length": gen_outputs["sequence_length"], } gen_logits = disc(**disc_inputs) train_logits = disc(**disc_inputs_train) valid_logits = disc(**disc_inputs_valid) # Saver. saver = tf.train.Saver() # Reduce over time and batch. train_probs = tf.reduce_mean(tf.nn.sigmoid(train_logits)) valid_probs = tf.reduce_mean(tf.nn.sigmoid(valid_logits)) gen_probs = tf.reduce_mean(tf.nn.sigmoid(gen_logits)) outputs = { "train_probs": train_probs, "valid_probs": valid_probs, "gen_probs": gen_probs, "gen_sequences": gen_outputs["sequence"], "valid_sequences": valid_sequence } # Get average discriminator score and store generated sequences. all_valid_sentences = [] all_gen_sentences = [] all_gen_sequences = [] mean_train_prob = 0.0 mean_valid_prob = 0.0 mean_gen_prob = 0.0 logging.info("Graph constructed, generating batches.") num_batches = num_examples_for_eval // batch_size + 1 # Restrict the thread pool size to prevent excessive GCU usage on Borg. tf_config = tf.ConfigProto() tf_config.intra_op_parallelism_threads = 16 tf_config.inter_op_parallelism_threads = 16 with tf.Session(config=tf_config) as sess: # Restore variables from checkpoints. logging.info("Restoring variables.") saver.restore(sess, checkpoint_path) for i in range(num_batches): logging.info("Batch %d / %d", i, num_batches) train_data_np = next(train_iterator) valid_data_np = next(valid_iterator) feed_dict = { train_sequence: train_data_np["sequence"], train_sequence_length: train_data_np["sequence_length"], valid_sequence: valid_data_np["sequence"], valid_sequence_length: valid_data_np["sequence_length"], } outputs_np = sess.run(outputs, feed_dict=feed_dict) all_gen_sequences.extend(outputs_np["gen_sequences"]) gen_sentences = utils.batch_sequences_to_sentences( outputs_np["gen_sequences"], id_to_word) valid_sentences = utils.batch_sequences_to_sentences( outputs_np["valid_sequences"], id_to_word) all_valid_sentences.extend(valid_sentences) all_gen_sentences.extend(gen_sentences) mean_train_prob += outputs_np["train_probs"] / batch_size mean_valid_prob += outputs_np["valid_probs"] / batch_size mean_gen_prob += outputs_np["gen_probs"] / batch_size logging.info("Evaluating FID.") # Compute FID fid = eval_metrics.fid( generated_sentences=all_gen_sentences[:num_examples_for_eval], real_sentences=all_valid_sentences[:num_examples_for_eval]) utils.write_eval_results(config.checkpoint_dir, all_gen_sentences, os.path.basename(checkpoint_path), mean_train_prob, mean_valid_prob, mean_gen_prob, fid) if __name__ == "__main__": app.run(main) ================================================ FILE: scratchgan/generators.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Generators for text data.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from absl import logging import sonnet as snt import tensorflow.compat.v1 as tf import tensorflow_probability as tfp from scratchgan import utils class LSTMGen(snt.AbstractModule): """A multi-layer LSTM language model. Uses tied input/output embedding weights. """ def __init__(self, vocab_size, feature_sizes, max_sequence_length, batch_size, use_layer_norm, trainable_embedding_size, input_dropout, output_dropout, pad_token, embedding_source=None, vocab_file=None, name='lstm_gen'): super(LSTMGen, self).__init__(name=name) self._feature_sizes = feature_sizes self._max_sequence_length = max_sequence_length self._vocab_size = vocab_size self._batch_size = batch_size self._use_layer_norm = use_layer_norm self._trainable_embedding_size = trainable_embedding_size self._embedding_source = embedding_source self._vocab_file = vocab_file self._input_dropout = input_dropout self._output_dropout = output_dropout self._pad_token = pad_token if self._embedding_source: assert vocab_file def _build(self, is_training=True, temperature=1.0): input_keep_prob = (1. - self._input_dropout) if is_training else 1.0 output_keep_prob = (1. - self._output_dropout) if is_training else 1.0 batch_size = self._batch_size max_sequence_length = self._max_sequence_length if self._embedding_source: all_embeddings = utils.make_partially_trainable_embeddings( self._vocab_file, self._embedding_source, self._vocab_size, self._trainable_embedding_size) else: all_embeddings = tf.get_variable( 'trainable_embeddings', shape=[self._vocab_size, self._trainable_embedding_size], trainable=True) _, self._embedding_size = all_embeddings.shape.as_list() input_embeddings = tf.nn.dropout(all_embeddings, keep_prob=input_keep_prob) output_embeddings = tf.nn.dropout( all_embeddings, keep_prob=output_keep_prob) out_bias = tf.get_variable( 'out_bias', shape=[1, self._vocab_size], dtype=tf.float32) in_proj = tf.get_variable( 'in_proj', shape=[self._embedding_size, self._feature_sizes[0]]) # If more than 1 layer, then output has dim sum(self._feature_sizes), # which is different from input dim == self._feature_sizes[0] # So we need a different projection matrix for input and output. if len(self._feature_sizes) > 1: out_proj = tf.get_variable( 'out_proj', shape=[self._embedding_size, sum(self._feature_sizes)]) else: out_proj = in_proj encoder_cells = [] for feature_size in self._feature_sizes: encoder_cells += [ snt.LSTM(feature_size, use_layer_norm=self._use_layer_norm) ] encoder_cell = snt.DeepRNN(encoder_cells) state = encoder_cell.initial_state(batch_size) # Manual unrolling. samples_list, logits_list, logprobs_list, embeddings_list = [], [], [], [] sample = tf.tile( tf.constant(self._pad_token, dtype=tf.int32)[None], [batch_size]) logging.info('Unrolling over %d steps.', max_sequence_length) for _ in range(max_sequence_length): # Input is sampled word at t-1. embedding = tf.nn.embedding_lookup(input_embeddings, sample) embedding.shape.assert_is_compatible_with( [batch_size, self._embedding_size]) embedding_proj = tf.matmul(embedding, in_proj) embedding_proj.shape.assert_is_compatible_with( [batch_size, self._feature_sizes[0]]) outputs, state = encoder_cell(embedding_proj, state) outputs_proj = tf.matmul(outputs, out_proj, transpose_b=True) logits = tf.matmul( outputs_proj, output_embeddings, transpose_b=True) + out_bias categorical = tfp.distributions.Categorical(logits=logits/temperature) sample = categorical.sample() logprobs = categorical.log_prob(sample) samples_list.append(sample) logits_list.append(logits) logprobs_list.append(logprobs) embeddings_list.append(embedding) # Create an op to retrieve embeddings for full sequence, useful for testing. embeddings = tf.stack( # pylint: disable=unused-variable embeddings_list, axis=1, name='embeddings') sequence = tf.stack(samples_list, axis=1) logprobs = tf.stack(logprobs_list, axis=1) # The sequence stops after the first occurrence of a PAD token. sequence_length = utils.get_first_occurrence_indices( sequence, self._pad_token) mask = utils.get_mask_past_symbol(sequence, self._pad_token) masked_sequence = sequence * tf.cast(mask, tf.int32) masked_logprobs = logprobs * tf.cast(mask, tf.float32) return { 'sequence': masked_sequence, 'sequence_length': sequence_length, 'logprobs': masked_logprobs } ================================================ FILE: scratchgan/losses.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Losses for sequential GANs.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import numpy as np import tensorflow.compat.v1 as tf def sequential_cross_entropy_loss(logits, expected): """The cross entropy loss for binary classification. Used to train the discriminator when not using WGAN loss. Assume logits is the log probability of classifying as 1. (real). Args: logits: a `tf.Tensor`, the model produced logits, shape [batch_size, sequence_length]. expected: a `tf.Tensor`, the expected output, shape [batch_size, sequence_length]. Returns: A scalar `tf.Tensor`, the average loss obtained on the given inputs. """ batch_size, sequence_length = logits.shape.as_list() expected = tf.cast(expected, tf.float32) ce = tf.nn.sigmoid_cross_entropy_with_logits(labels=expected, logits=logits) return tf.reshape(ce, [batch_size, sequence_length]) def reinforce_loss(disc_logits, gen_logprobs, gamma, decay): """The REINFORCE loss. Args: disc_logits: float tensor, shape [batch_size, sequence_length]. gen_logprobs: float32 tensor, shape [batch_size, sequence_length] gamma: a float, discount factor for cumulative reward. decay: a float, decay rate for the EWMA baseline of REINFORCE. Returns: Float tensor, shape [batch_size, sequence_length], the REINFORCE loss for each timestep. """ # Assume 1 logit for each timestep. batch_size, sequence_length = disc_logits.shape.as_list() gen_logprobs.shape.assert_is_compatible_with([batch_size, sequence_length]) disc_predictions = tf.nn.sigmoid(disc_logits) # MaskGAN uses log(D), but this is more stable empirically. rewards = 2.0 * disc_predictions - 1 # Compute cumulative rewards. rewards_list = tf.unstack(rewards, axis=1) cumulative_rewards = [] for t in range(sequence_length): cum_value = tf.zeros(shape=[batch_size]) for s in range(t, sequence_length): cum_value += np.power(gamma, (s - t)) * rewards_list[s] cumulative_rewards.append(cum_value) cumulative_rewards = tf.stack(cumulative_rewards, axis=1) cumulative_rewards.shape.assert_is_compatible_with( [batch_size, sequence_length]) with tf.variable_scope("reinforce", reuse=tf.AUTO_REUSE): ewma_reward = tf.get_variable("ewma_reward", initializer=0.0) mean_reward = tf.reduce_mean(cumulative_rewards) new_ewma_reward = decay * ewma_reward + (1.0 - decay) * mean_reward update_op = tf.assign(ewma_reward, new_ewma_reward) # REINFORCE with tf.control_dependencies([update_op]): advantage = cumulative_rewards - ewma_reward loss = -tf.stop_gradient(advantage) * gen_logprobs loss.shape.assert_is_compatible_with([batch_size, sequence_length]) return loss, cumulative_rewards, ewma_reward ================================================ FILE: scratchgan/reader.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities for parsing text files.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import collections import json import os from absl import logging import numpy as np from tensorflow.compat.v1.io import gfile # sequences: [N, MAX_TOKENS_SEQUENCE] array of int32 # lengths: [N, 2] array of int32, such that # lengths[i, 0] is the number of non-pad tokens in sequences[i, :] FILENAMES = { "emnlp2017": ("train.json", "valid.json", "test.json"), } # EMNLP2017 sentences have max length 50, add one for a PAD token so that all # sentences end with PAD. MAX_TOKENS_SEQUENCE = {"emnlp2017": 52} UNK = "" PAD = " " PAD_INT = 0 def tokenize(sentence): """Split a string into words.""" return sentence.split(" ") + [PAD] def _build_vocab(json_data): """Builds full vocab from json data.""" vocab = collections.Counter() for sentence in json_data: tokens = tokenize(sentence["s"]) vocab.update(tokens) for title in sentence["t"]: title_tokens = tokenize(title) vocab.update(title_tokens) # Most common words first. count_pairs = sorted(list(vocab.items()), key=lambda x: (-x[1], x[0])) words, _ = list(zip(*count_pairs)) words = list(words) if UNK not in words: words = [UNK] + words word_to_id = dict(list(zip(words, list(range(len(words)))))) # Tokens are now sorted by frequency. There's no guarantee that `PAD` will # end up at `PAD_INT` index. Enforce it by swapping whatever token is # currently at the `PAD_INT` index with the `PAD` token. word = list(word_to_id.keys())[list(word_to_id.values()).index(PAD_INT)] word_to_id[PAD], word_to_id[word] = word_to_id[word], word_to_id[PAD] assert word_to_id[PAD] == PAD_INT return word_to_id def string_sequence_to_sequence(string_sequence, word_to_id): result = [] for word in string_sequence: if word in word_to_id: result.append(word_to_id[word]) else: result.append(word_to_id[UNK]) return result def _integerize(json_data, word_to_id, dataset): """Transform words into integers.""" sequences = np.full((len(json_data), MAX_TOKENS_SEQUENCE[dataset]), word_to_id[PAD], np.int32) sequence_lengths = np.zeros(shape=(len(json_data)), dtype=np.int32) for i, sentence in enumerate(json_data): sequence_i = string_sequence_to_sequence( tokenize(sentence["s"]), word_to_id) sequence_lengths[i] = len(sequence_i) sequences[i, :sequence_lengths[i]] = np.array(sequence_i) return { "sequences": sequences, "sequence_lengths": sequence_lengths, } def get_raw_data(data_path, dataset, truncate_vocab=20000): """Load raw data from data directory "data_path". Reads text files, converts strings to integer ids, and performs mini-batching of the inputs. Args: data_path: string path to the directory where simple-examples.tgz has been extracted. dataset: one of ["emnlp2017"] truncate_vocab: int, number of words to keep in the vocabulary. Returns: tuple (train_data, valid_data, vocabulary) where each of the data objects can be passed to iterator. Raises: ValueError: dataset not in ["emnlp2017"]. """ if dataset not in FILENAMES: raise ValueError("Invalid dataset {}. Valid datasets: {}".format( dataset, list(FILENAMES.keys()))) train_file, valid_file, _ = FILENAMES[dataset] train_path = os.path.join(data_path, train_file) valid_path = os.path.join(data_path, valid_file) with gfile.GFile(train_path, "r") as json_file: json_data_train = json.load(json_file) with gfile.GFile(valid_path, "r") as json_file: json_data_valid = json.load(json_file) word_to_id = _build_vocab(json_data_train) logging.info("Full vocab length: %d", len(word_to_id)) # Assume the vocab is sorted by frequency. word_to_id_truncated = { k: v for k, v in word_to_id.items() if v < truncate_vocab } logging.info("Truncated vocab length: %d", len(word_to_id_truncated)) train_data = _integerize(json_data_train, word_to_id_truncated, dataset) valid_data = _integerize(json_data_valid, word_to_id_truncated, dataset) return train_data, valid_data, word_to_id_truncated def iterator(raw_data, batch_size, random=False): """Looping iterators on the raw data.""" sequences = raw_data["sequences"] sequence_lengths = raw_data["sequence_lengths"] num_examples = sequences.shape[0] indice_range = np.arange(num_examples) if random: while True: indices = np.random.choice(indice_range, size=batch_size, replace=True) yield { "sequence": sequences[indices, :], "sequence_length": sequence_lengths[indices], } else: start = 0 while True: sequence = sequences[start:(start + batch_size), :] sequence_length = sequence_lengths[start:(start + batch_size)] start += batch_size if start + batch_size > num_examples: start = (start + batch_size) % num_examples yield { "sequence": sequence, "sequence_length": sequence_length, } ================================================ FILE: scratchgan/requirements.txt ================================================ absl-py==0.7.1 dm-sonnet==1.34 numpy==1.16.4 tensorflow==1.15 tensorflow-probability==0.7.0 tensorflow-gan == 1.0.0.dev0 tensorflow-hub == 0.6.0 tensorflow-io == 0.8.0 tensorflow-gpu==1.15 ================================================ FILE: scratchgan/run.sh ================================================ #!/bin/sh # Copyright 2019 Deepmind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Get EMNLP data. mkdir -p /tmp/emnlp2017 curl https://storage.googleapis.com/deepmind-scratchgan-data/train.json --output /tmp/emnlp2017/train.json curl https://storage.googleapis.com/deepmind-scratchgan-data/valid.json --output /tmp/emnlp2017/valid.json curl https://storage.googleapis.com/deepmind-scratchgan-data/test.json --output /tmp/emnlp2017/test.json curl https://storage.googleapis.com/deepmind-scratchgan-data/glove_emnlp2017.txt --output /tmp/emnlp2017/glove_emnlp2017.txt # Install python3.5 which python3.5 if [ $? -eq 1 ]; then echo 'Installing python3.5' (cd /usr/src/ sudo wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz tar -xvzf Python-3.5.6.tgz sudo tar -xvzf Python-3.5.6.tgz cd Python-3.5.6 ./configure --enable-loadable-sqlite-extensions --enable-optimizations sudo make altinstall) fi # Fail on any error. set -e python3.5 -m venv scratchgan-venv echo 'Created venv' source scratchgan-venv/bin/activate echo 'Installing pip' curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3.5 get-pip.py pip==20.2.3 echo 'Getting requirements.' pip install -r scratchgan/requirements.txt echo 'Starting training...' python3.5 -m scratchgan.experiment --mode="train" & python3.5 -m scratchgan.experiment --mode="evaluate_pair" & ================================================ FILE: scratchgan/utils.py ================================================ # Copyright 2019 DeepMind Technologies Limited and Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Utilities.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import math import os from absl import logging import numpy as np import tensorflow.compat.v1 as tf from tensorflow.compat.v1.io import gfile from scratchgan import reader EVAL_FILENAME = "evaluated_checkpoints.csv" GLOVE_DIM = 300 GLOVE_STD = 0.3836 # Standard dev. of GloVe embeddings. def _get_embedding_initializer(vocab_file, embedding_source, vocab_size): """Loads pretrained embeddings from a file in GloVe format.""" with gfile.GFile(embedding_source, "r") as f: embedding_lines = f.readlines() # First line contains embedding dim. _, embedding_dim = list(map(int, embedding_lines[0].split())) # Get the tokens as strings. tokens = [line.split()[0] for line in embedding_lines[1:]] # Get the actual embedding matrix. unsorted_emb = np.array( [[float(x) for x in line.split()[1:]] for line in embedding_lines[1:]]) # Get the expected vocab order. with gfile.GFile(vocab_file, "r") as f: tokens_order = [l.strip() for l in f.readlines()] assert vocab_size == len(tokens_order) # Put the embeddings in the order. sorted_emb = np.zeros((vocab_size, embedding_dim)) for i, token in enumerate(tokens_order): if token in tokens: sorted_emb[i, :] = unsorted_emb[tokens.index(token), :] else: # If we don't have a pretrained embedding, initialize randomly. sorted_emb[i, :] = np.random.normal( loc=0.0, scale=GLOVE_STD, size=(GLOVE_DIM,)) return sorted_emb.astype(np.float32) def append_position_signal(embeddings, position_dim=8): """Append position signal. See get_position_signal.""" batch_size, sequence_length, embedding_dim = embeddings.get_shape().as_list() positions = get_position_signal(sequence_length, position_dim) # Append to embeddings. position_inputs = tf.tile(positions[None, :, :], [batch_size, 1, 1]) embeddings_pos = tf.concat([embeddings, position_inputs], axis=2) embeddings_pos.shape.assert_is_compatible_with( [batch_size, sequence_length, embedding_dim + position_dim]) return embeddings_pos def get_position_signal(sequence_length, position_dim=8): """Return fixed position signal as sine waves. Sine waves frequencies are linearly spaced so that shortest is 2 and longest is half the maximum length. That way the longest frequency is long enough to be monotonous over the whole sequence length. Sine waves are also shifted so that they don't all start with the same value. We don't use learned positional embeddings because these embeddings are projected linearly along with the original embeddings, and the projection is learned. Args: sequence_length: int, T, length of the sequence.. position_dim: int, P, number of sine waves. Returns: A [T, P] tensor, position embeddings. """ # Compute the frequencies. periods = tf.exp( tf.lin_space( tf.log(2.0), tf.log(tf.to_float(sequence_length)), position_dim)) frequencies = 1.0 / periods # Shape [T, P]. # Compute the sine waves. xs = frequencies[None, :] * tf.to_float(tf.range(sequence_length)[:, None]) shifts = tf.lin_space(0.0, 2.0, position_dim)[None, :] # [1, P] positions = tf.math.cos(math.pi * (xs + shifts)) # [T, P] positions.shape.assert_is_compatible_with([sequence_length, position_dim]) return positions def get_mask_by_length(lengths, max_length): """Returns a mask where x[i , j] = (j < lengths[i]). Args: lengths: [B] tensor of int32 such that 0 <= lengths[i] <= max_length. max_length: scalar tensor of int32. Returns: [B, max_length] tensor of booleans such that x[i, j] is True if and only if j < lengths[i]. """ batch_size = lengths.get_shape().as_list()[0] indices = tf.range(start=0, limit=max_length) all_indices = tf.tile(indices[None, :], [batch_size, 1]) all_lengths = tf.tile(lengths[:, None], [1, max_length]) mask = (all_indices < all_lengths) mask_boolean = tf.cast(mask, tf.bool) return mask_boolean def get_mask_past_symbol(reference, symbol, optimize_for_tpu=False): """For each row, mask is True before and at the first occurrence of symbol.""" batch_size, max_length = reference.get_shape().as_list() symbol = tf.convert_to_tensor(symbol) symbol.shape.assert_is_compatible_with([]) first_indices = get_first_occurrence_indices(reference, symbol, optimize_for_tpu) first_indices.shape.assert_is_compatible_with([batch_size]) keep_lengths = tf.minimum(first_indices, max_length) mask = get_mask_by_length(keep_lengths, max_length) mask.shape.assert_is_compatible_with([batch_size, max_length]) mask.set_shape([batch_size, max_length]) return mask def get_first_occurrence_indices(reference, symbol, optimize_for_tpu=False): """For each row in reference, get index after the first occurrence of symbol. If symbol is not present on a row, return reference.shape[1] instead. Args: reference: [B, T] tensor of elements of the same type as symbol. symbol: int or [] scalar tensor of the same dtype as symbol. optimize_for_tpu: bool, whether to use a TPU-capable variant. Returns: A [B] reference of tf.int32 where x[i] is such that reference[i, x[i]-1] == symbol, and reference[i, j] != symbol for j= batch size since there can be # several `symbol` in one row of tensor. We need to take only the position # of the first occurrence for each row. `segment_min` does that, taking the # lowest column index for each row index. index_first_occurrences = tf.segment_min(index_all_occurrences[:, 1], index_all_occurrences[:, 0]) index_first_occurrences.set_shape([batch_size]) index_first_occurrences = tf.minimum(index_first_occurrences + 1, max_length) return index_first_occurrences def sequence_to_sentence(sequence, id_to_word): """Turn a sequence into a sentence , inverse of sentence_to_sequence.""" words = [] for token_index in sequence: if token_index in id_to_word: words.append(id_to_word[token_index]) else: words.append(reader.UNK) return " ".join(words) def batch_sequences_to_sentences(sequences, id_to_word): return [sequence_to_sentence(sequence, id_to_word) for sequence in sequences] def write_eval_results(checkpoint_dir, all_gen_sentences, checkpoint_name, mean_train_prob, mean_valid_prob, mean_gen_prob, fid): """Write evaluation results to disk.""" to_write = ",".join( map(str, [ checkpoint_name, mean_train_prob, mean_valid_prob, mean_gen_prob, fid ])) eval_filepath = os.path.join(checkpoint_dir, EVAL_FILENAME) previous_eval_content = "" if gfile.exists(eval_filepath): with gfile.GFile(eval_filepath, "r") as f: previous_eval_content = f.read() with gfile.GFile(eval_filepath, "w") as f: f.write(previous_eval_content + to_write + "\n") with gfile.GFile( os.path.join(checkpoint_dir, checkpoint_name + "_sentences.txt"), "w") as f: f.write("\n".join(all_gen_sentences)) def maybe_pick_models_to_evaluate(checkpoint_dir): """Pick a checkpoint to evaluate that has not been evaluated already.""" logging.info("Picking checkpoint to evaluate from %s.", checkpoint_dir) filenames = gfile.listdir(checkpoint_dir) filenames = [f[:-5] for f in filenames if f[-5:] == ".meta"] logging.info("Found existing checkpoints: %s", filenames) evaluated_filenames = [] if gfile.exists(os.path.join(checkpoint_dir, EVAL_FILENAME)): with gfile.GFile(os.path.join(checkpoint_dir, EVAL_FILENAME), "r") as f: evaluated_filenames = [l.strip().split(",")[0] for l in f.readlines()] logging.info("Found already evaluated checkpoints: %s", evaluated_filenames) checkpoints_to_evaluate = [ f for f in filenames if f not in evaluated_filenames ] logging.info("Remaining potential checkpoints: %s", checkpoints_to_evaluate) if checkpoints_to_evaluate: return os.path.join(checkpoint_dir, checkpoints_to_evaluate[0]) else: return None def get_embedding_path(data_dir, dataset): """By convention, this is where we store the embedding.""" return os.path.join(data_dir, "glove_%s.txt" % dataset) def make_partially_trainable_embeddings(vocab_file, embedding_source, vocab_size, trainable_embedding_size): """Makes embedding matrix with pretrained GloVe [1] part and trainable part. [1] Pennington, J., Socher, R., & Manning, C. (2014, October). Glove: Global vectors for word representation. In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP) (pp. 1532-1543). Args: vocab_file: vocabulary file. embedding_source: path to the actual embeddings. vocab_size: number of words in vocabulary. trainable_embedding_size: size of the trainable part of the embeddings. Returns: A matrix of partially pretrained embeddings. """ # Our embeddings have 2 parts: a pre-trained, frozen, GloVe part, # and a trainable, randomly initialized part. # The standard deviation of the GloVe part is used to initialize # the trainable part, so that both part have roughly the same distribution. # # Let g_ij be the j-th coordinates of the GloVe embedding of the i-th word. # So that 0 < i < |vocab| and 0 < j < 300. # Then sum_ij (g_ij - sum_kl g_kl)^2 = (0.3836)^2 # # In reality g_ij follows a truncated normal distribution # min(max(N(0, s), -4.2), 4.2) but we approximate it by N(0, 0.3836). embedding_initializer = _get_embedding_initializer( vocab_file=vocab_file, embedding_source=embedding_source, vocab_size=vocab_size) pretrained_embedding = tf.get_variable( "pretrained_embedding", initializer=embedding_initializer, dtype=tf.float32) trainable_embedding = tf.get_variable( "trainable_embedding", shape=[vocab_size, trainable_embedding_size], initializer=tf.initializers.random_normal(mean=0.0, stddev=GLOVE_STD)) # We just concatenate embeddings, they will pass through a projection # matrix afterwards. embedding = tf.concat([pretrained_embedding, trainable_embedding], axis=1) return embedding ================================================ FILE: side_effects_penalties/README.md ================================================ # Side effects penalties Side effects are unnecessary disruptions to the agent's environment while completing a task. Instead of trying to explicitly penalize all possible side effects, we give the agent a general penalty for impacting the environment, defined as a deviation from some baseline state. For example, a reversibility penalty measures unreachability (deviation) of the starting state (baseline). This code implements a tabular Q-learning agent with different impact penalties. Each penalty consists of a deviation measure (none, unreachability, relative reachability, or attainable utility), a baseline (starting state, inaction, or stepwise inaction), and some other design choices. This is the code for the paper [Penalizing side effects using stepwise relative reachability](https://arxiv.org/abs/1806.01186) by Krakovna et al (2019). In our latest paper "Avoiding Side Effects By Considering Future Tasks" by Krakovna et al (NeurIPS 2020), the agent receives an auxiliary reward for preserving the ability to perform future tasks. This approach is equivalent to relative reachability with an inaction baseline in deterministic environments. The UVFA approximation for the auxiliary reward is included as an option for the deviation measure. ## Instructions Clone the repository: `git clone https://github.com/deepmind/deepmind-research/side_effects_penalties.git` ### Running an agent with a side effects penalty Run the agent with a given penalty on an AI Safety Gridworlds environment: `python -m side_effects_penalties.run_experiment -baseline -dev_measure -env_name -suffix ` The following settings can be specified for the side effects penalty: * Baseline state (`-baseline`): starting state (`start`), inaction (`inaction`), stepwise inaction with rollouts (`stepwise`), stepwise inaction without rollouts (`step_noroll`) * Deviation measure (`-dev_measure`): none (`none`), unreachability (`reach`), relative reachability (`rel_reach`), attainable utility (`att_util`), UVFA approximation of relative reachability (`uvfa_rel_reach`) * Summary function to apply to the relative reachability or attainable utility deviation measure (`-dev_fun`): max (0, x) (`truncation`) or |x| (`absolute`) * Discount factor for rewards (`discount`). We use `discount=0.95` for the UVFA approximation of relative reachability. * Discount factor for the deviation measure value function (`-value_discount`). Should be the same as `discount` unless using an undiscounted reachability measure. * Weight for the side effects penalty relative to the reward (`-beta`) * Penalty for nonterminal states relative to terminal states (`-nonterminal'): 1 (`full`) is used in the stepwise relative reachability paper, while (1-discount) (`disc`) is used in the future tasks paper. Other settings include: * Number of episodes (`-num_episodes`) * AI Safety Gridworlds environment name (`-env_name`) * Filename suffix for saving result files (`-suffix`) ### Plotting the results Make a summary data frame from the result files generated by `run_experiment`: `python -m side_effects_penalties.results_summary -compare_penalties -input_suffix ` Arguments: * -bar_plot: make a data frame for a bar plot (True) or learning curve plot (False) * -compare_penalties: compare different penalties using the best beta value for each penalty (True), or compare different beta values for a given penalty (False) * If compare_penalties=False, specify the penalty parameters (`-dev_measure`, `-dev_fun` and `-value_discount`) * Environment name (`-env_name`) * Filename suffix for loading result files (`-input_suffix`) * Filename suffix for the summary data frame (`-output_suffix`) Import the summary data frame into `plot_results.ipynb` and make a bar plot or learning curve plot. ## Dependencies * Python 2.7 or 3 (tested with Python 2.7.15 and 3.6.7) * [AI Safety Gridworlds](https://github.com/deepmind/ai-safety-gridworlds) suite of safety environments * [Abseil](https://github.com/abseil/abseil-py) Python common libraries * Numpy * Tensorflow 1 * Sonnet * Pandas * Six * Matplotlib * Seaborn ## Citing this work If you use this code in your work, please cite one of the accompanying papers: `@article{srr2019, title = {Penalizing Side Effects using Stepwise Relative Reachability}, author = {Victoria Krakovna and Laurent Orseau and Ramana Kumar and Miljan Martic and Shane Legg}, journal = {CoRR}, volume = {abs/1806.01186}, year = {2019} }` `@inproceedings{ft2020, title = {Avoiding Side Effects By Considering Future Tasks}, author = {Victoria Krakovna and Laurent Orseau and Richard Ngo and Miljan Martic and Shane Legg}, booktitle = {Neural Information Processing Systems}, year = {2020} }` ================================================ FILE: side_effects_penalties/__init__.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ ================================================ FILE: side_effects_penalties/agent.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Vanilla Q-Learning agent.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import collections from collections import abc import numpy as np from six.moves import range class EpsilonGreedyPolicy(object): """Epsilon greedy policy for table value function lookup.""" def __init__(self, value_function, actions): """Construct an epsilon greedy policy object. Args: value_function: agent value function as a dict. actions: list of possible actions. Raises: ValueError: if `actions` agument is not an iterable. """ if not isinstance(actions, abc.Iterable): raise ValueError('`actions` argument must be an iterable.') self._value_function = value_function self._actions = actions def get_action(self, epsilon, state): """Get action following the e-greedy policy. Args: epsilon: probability of selecting a random action state: current state of the game as a state/action tuple. Returns: Chosen action. """ if np.random.random() < epsilon: return np.random.choice(self._actions) else: values = [self._value_function[(state, action)] for action in self._actions] max_value = max(values) max_indices = [i for i, value in enumerate(values) if value == max_value] return self._actions[np.random.choice(max_indices)] class QLearning(object): """Q-learning agent.""" def __init__(self, actions, alpha=0.1, epsilon=0.1, q_initialisation=0.0, discount=0.99): """Create a Q-learning agent. Args: actions: a BoundedArraySpec that specifes full discrete action spec. alpha: agent learning rate. epsilon: agent exploration rate. q_initialisation: float, used to initialise the value function. discount: discount factor for rewards. """ self._value_function = collections.defaultdict(lambda: q_initialisation) self._valid_actions = list(range(actions.minimum, actions.maximum + 1)) self._policy = EpsilonGreedyPolicy(self._value_function, self._valid_actions) # Hyperparameters. self.alpha = alpha self.epsilon = epsilon self.discount = discount # Episode internal variables. self._current_action = None self._current_state = None def begin_episode(self): """Perform episode initialisation.""" self._current_state = None self._current_action = None def _timestep_to_state(self, timestep): return tuple(map(tuple, np.copy(timestep.observation['board']))) def step(self, timestep): """Perform a single step in the environment.""" # Get state observations. state = self._timestep_to_state(timestep) # This is one of the follow up states (i.e. not the initial state). if self._current_state is not None: self._update(timestep, state) self._current_state = state # Determine action. self._current_action = self._policy.get_action(self.epsilon, state) # Emit action. return self._current_action def _calculate_reward(self, timestep, unused_state): """Calculate reward: to be extended when impact penalty is added.""" reward = timestep.reward return reward def _update(self, timestep, state): """Perform value function update.""" reward = self._calculate_reward(timestep, state) # Terminal state. if not state: delta = (reward - self._value_function[(self._current_state, self._current_action)]) # Non-terminal state. else: max_action = self._policy.get_action(0, state) delta = ( reward + self.discount * self._value_function[(state, max_action)] - self._value_function[(self._current_state, self._current_action)]) self._value_function[(self._current_state, self._current_action)] += self.alpha * delta def end_episode(self, timestep): """Performs episode cleanup.""" # Update for the terminal state. self._update(timestep, None) @property def value_function(self): return self._value_function ================================================ FILE: side_effects_penalties/agent_with_penalties.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Q-learning with side effects penalties.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import numpy as np from side_effects_penalties import agent from side_effects_penalties import side_effects_penalty as sep class QLearningSE(agent.QLearning): """Q-learning agent with side-effects penalties.""" def __init__( self, actions, alpha=0.1, epsilon=0.1, q_initialisation=0.0, baseline='start', dev_measure='none', dev_fun='truncation', discount=0.99, value_discount=1.0, beta=1.0, num_util_funs=10, exact_baseline=False, baseline_env=None, start_timestep=None, state_size=None, nonterminal_weight=0.01): """Create a Q-learning agent with a side effects penalty. Args: actions: full discrete action spec. alpha: agent learning rate. epsilon: agent exploration rate. q_initialisation: float, used to initialise the value function. baseline: which baseline state to use ('start', 'inaction', 'stepwise'). dev_measure: deviation measure: - "none" for no penalty, - "reach" for unreachability, - "rel_reach" for relative reachability, - "att_util" for attainable utility, dev_fun: what function to apply in the deviation measure ('truncation' or 'absolute' (for 'rel_reach' and 'att_util'), or 'none' (otherwise)). discount: discount factor for rewards. value_discount: discount factor for value functions in penalties. beta: side effects penalty weight. num_util_funs: number of random utility functions for attainable utility. exact_baseline: whether to use an exact or approximate baseline. baseline_env: copy of environment (with noops) for the exact baseline. start_timestep: copy of starting timestep for the baseline. state_size: the size of each state (flattened) for NN reachability. nonterminal_weight: penalty weight on nonterminal states. Raises: ValueError: for incorrect baseline, dev_measure, or dev_fun """ super(QLearningSE, self).__init__(actions, alpha, epsilon, q_initialisation, discount) # Impact penalty: set dev_fun (f) if 'rel_reach' in dev_measure or 'att_util' in dev_measure: if dev_fun == 'truncation': dev_fun = lambda diff: np.maximum(0, diff) elif dev_fun == 'absolute': dev_fun = np.abs else: raise ValueError('Deviation function not recognized') else: assert dev_fun == 'none' dev_fun = None # Impact penalty: create deviation measure if dev_measure in {'reach', 'rel_reach'}: deviation = sep.Reachability(value_discount, dev_fun, discount) elif dev_measure == 'uvfa_rel_reach': deviation = sep.UVFAReachability(value_discount, dev_fun, discount, state_size) elif dev_measure == 'att_util': deviation = sep.AttainableUtility(value_discount, dev_fun, num_util_funs, discount) elif dev_measure == 'none': deviation = sep.NoDeviation() else: raise ValueError('Deviation measure not recognized') use_inseparable_rollout = ( dev_measure == 'reach' and baseline == 'stepwise') # Impact penalty: create baseline if baseline in {'start', 'inaction', 'stepwise'}: baseline_class = getattr(sep, baseline.capitalize() + 'Baseline') baseline = baseline_class(start_timestep, exact_baseline, baseline_env, self._timestep_to_state) elif baseline == 'step_noroll': baseline_class = getattr(sep, 'StepwiseBaseline') baseline = baseline_class(start_timestep, exact_baseline, baseline_env, self._timestep_to_state, False) else: raise ValueError('Baseline not recognized') self._impact_penalty = sep.SideEffectPenalty( baseline, deviation, beta, nonterminal_weight, use_inseparable_rollout) def begin_episode(self): """Perform episode initialisation.""" super(QLearningSE, self).begin_episode() self._impact_penalty.reset() def _calculate_reward(self, timestep, state): reward = super(QLearningSE, self)._calculate_reward(timestep, state) return (reward - self._impact_penalty.calculate( self._current_state, self._current_action, state)) ================================================ FILE: side_effects_penalties/file_loading.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Helper functions for loading files.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function import os.path import pandas as pd def filename(env_name, noops, dev_measure, dev_fun, baseline, beta, value_discount, seed, path='', suffix=''): """Generate filename for the given set of parameters.""" noop_str = 'noops' if noops else 'nonoops' seed_str = '_' + str(seed) if seed else '' filename_template = ('{env_name}_{noop_str}_{dev_measure}_{dev_fun}' + '_{baseline}_beta_{beta}_vd_{value_discount}' + '{suffix}{seed_str}.csv') full_path = os.path.join(path, filename_template.format( env_name=env_name, noop_str=noop_str, dev_measure=dev_measure, dev_fun=dev_fun, baseline=baseline, beta=beta, value_discount=value_discount, suffix=suffix, seed_str=seed_str)) return full_path def load_files(baseline, dev_measure, dev_fun, value_discount, beta, env_name, noops, path, suffix, seed_list, final=True): """Load result files generated by run_experiment with the given parameters.""" def try_loading(f, final): if os.path.isfile(f): df = pd.read_csv(f, index_col=0) if final: last_episode = max(df['episode']) return df[df.episode == last_episode] else: return df else: return pd.DataFrame() dataframes = [] for seed in seed_list: f = filename(baseline=baseline, dev_measure=dev_measure, dev_fun=dev_fun, value_discount=value_discount, beta=beta, env_name=env_name, noops=noops, path=path, suffix=suffix, seed=int(seed)) df_part = try_loading(f, final) dataframes.append(df_part) df = pd.concat(dataframes) return df ================================================ FILE: side_effects_penalties/plot_results.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "rINYEKJlYpQU" }, "source": [ "Copyright 2019 DeepMind Technologies Limited.\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", "https://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "KbCarv91XChI" }, "outputs": [], "source": [ "from __future__ import absolute_import\n", "from __future__ import division\n", "from __future__ import print_function\n", "\n", "from google.colab import files\n", "import io\n", "import pandas as pd\n", "import seaborn as sns" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "irahOycBZM1E" }, "source": [ "### Plot parameters (edit as needed)\n" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "VeaB-Y9TYWCP" }, "outputs": [], "source": [ "# Make a bar plot for average results from the final 100 episodes (True),\n", "# or make a learning curve plot (False)\n", "bar_plot = False\n", "\n", "# Compare different penalties using the best beta value for each penalty (True),\n", "# or compare different beta values for the same penalty (False):\n", "compare_penalties = False\n", "\n", "# If compare_penalties is False, specify the penalty parameters:\n", "dev_measure = 'rel_reach'\n", "dev_fun = 'truncation'\n", "value_discount = 0.99\n", "\n", "# Environment name\n", "env_name = 'box'\n", "\n", "# Filename suffix\n", "suffix = '' " ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "t8hYO3f2ZaHq" }, "source": [ "### Plot settings" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "foyP_qrUeTsx" }, "outputs": [], "source": [ "final_str = '_final' if bar_plot else ''\n", "if compare_penalties:\n", " var = 'label'\n", " x_label = 'deviation_measure'\n", " legend_title = 'penalty'\n", " palette = sns.color_palette()\n", " filename = ('df_summary_penalties_' + env_name + final_str + suffix\n", " + '.csv')\n", "else:\n", " var = 'beta'\n", " x_label = 'beta'\n", " legend_title = 'beta'\n", " palette = sns.cubehelix_palette()\n", " filename = ('df_summary_betas_' + env_name + '_' + dev_measure + '_' + dev_fun \n", " + '_' + str(value_discount) + final_str + suffix + '.csv')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "5RakwQsFZc0V" }, "source": [ "### Load summary data output by results_summary.py" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "PQ615uuGYLF3" }, "outputs": [], "source": [ "uploaded = files.upload()" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "-FoI7u8BtYol" }, "outputs": [], "source": [ "df = pd.read_csv(io.BytesIO(uploaded[filename]))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "A7BGierpZi6t" }, "source": [ "### Make bar plots" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "ch06DzzeXlGK" }, "outputs": [], "source": [ "plot = sns.catplot(data=df, col='baseline', x=var, y='performance_smooth',\n", " kind='bar', height=4, aspect=1.3)\n", "axes = plot.axes.flatten()\n", "for ax in axes:\n", " title = ax.get_title().split()\n", " ax.set_title(title[2] + ' baseline')\n", " ax.set_ylabel('performance')\n", " ax.set_xlabel(x_label)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "BU9PYyzOZlRu" }, "source": [ "### Make learning curve plots" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "RRfU_2iIX-jo" }, "outputs": [], "source": [ "plot = sns.FacetGrid(df, col='baseline', size=5, aspect=1.3,\n", " sharey=False, sharex=False)\n", "plot.map_dataframe(sns.tsplot, time='episode', unit='seed', condition=var,\n", " value='performance_smooth', n_boot=100, color=palette,\n", " alpha=1.0, linewidth=1)\n", "plot.add_legend(title=legend_title)\n", "axes = plot.axes.flatten()\n", "for ax in axes:\n", " title = ax.get_title().split()\n", " ax.set_title(title[2] + ' baseline')\n", " ax.set_ylabel('performance')\n", " ax.set_xlabel('episode')" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "plot_results.ipynb", "provenance": [ { "file_id": "1a8ub19XYD4M-r5mGm0lKYTrNwTo1zF7Z", "timestamp": 1569850224175 } ] }, "kernelspec": { "display_name": "Python 2", "name": "python2" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: side_effects_penalties/requirements.txt ================================================ absl-py==0.10.0 apparmor==2.13.4 asn1crypto==0.24.0 attrs==19.3.0 bcrypt==3.1.7 beautifulsoup4==4.9.1 blinker==1.4 Brlapi==0.7.0 certifi==2020.4.5.1 chardet==3.0.4 chrome-gnome-shell==0.0.0 cloudpickle==1.6.0 CredentialKit==0.7 credentialkit-client==1 cryptography==2.8 cupshelpers==1.0 dbus-python==1.2.16 decorator==4.4.2 distro==1.5.0 distro-info==0.23 dm-tree==0.1.5 duplicity==0.8.12.0 entrypoints==0.3 enum34==1.1.10 evdev==1.3.0 extras==1.0.0 fasteners==0.14.1 fixtures==3.0.0 future==0.18.2 gast==0.4.0 gbulb==0.6.1 gpg===1.13.1-unknown hg-evolve==10.1.0.dev0 html5lib==1.0.1 httplib2==0.18.1 idna==2.9 iniparse==0.4 IPy==1.0 jeepney==0.4.3 keyring==18.0.1 keyrings.alt==3.4.0 LibAppArmor==2.13.4 linecache2==1.0.0 lockfile==0.12.2 louis==3.14.0 lxml==4.5.0 lz4==3.0.2+dfsg mercurial==5.5.1+348.80bf7b1ada15 monotonic==1.5 mox3==1.0.0 networkx==1.8.1 numpy==1.18.4 oauthlib==3.1.0 obno==39 olefile==0.46 onboard==1.4.1 PAM==0.4.2 pandas==1.1.3 paramiko==2.6.0 pbr==5.4.5 pexpect==4.6.0 Pillow==7.2.0 protobuf==3.11.4 psutil==5.6.7 pyasn1==0.4.2 pyasn1-modules==0.2.1 pycairo==1.16.2 pycrypto==2.6.1 pycups==1.9.73 pycurl==7.43.0.2 Pygments==2.3.1 PyGObject==3.36.0 pyinotify==0.9.6 PyJWT==1.7.1 PyKCS11==1.5.8 PyNaCl==1.4.0 pyOpenSSL==19.1.0 pyparsing==2.4.7 pysmbc==1.0.22 python-apt==2.1.3 python-augeas==0.5.0 python-dateutil==2.8.1 python-debian==0.1.37 python-mimeparse==1.6.0 python-networkmanager==2.1 python-pam==1.8.4 python-xapp==2.0.1 python-xlib==0.27 pytz==2020.1 pyudev==0.21.0 pyusb==1.0.2 pyxattr==0.6.1 pyxdg==0.26 PyYAML==5.3.1 reboot-enforcer==0.1 reconfigure==0.1.81 rekey==1 requests==2.23.0 scour==0.37 SecretStorage==3.1.2 setproctitle==1.1.10 six==1.15.0 sonnet==0.1.6 soupsieve==2.0.1 tensorflow-probability==0.11.1 testtools==2.3.0 tinycss==0.4 tinycss2==1.0.2 traceback2==1.4.0 ufw==0.36 unittest2==1.1.0 urllib3==1.25.9 webencodings==0.5.1 youtube-dl==2020.6.16.1 ================================================ FILE: side_effects_penalties/results_summary.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Plot results for different side effects penalties. Loads csv result files generated by `run_experiment' and outputs a summary data frame in a csv file to be used for plotting by plot_results.ipynb. """ from __future__ import absolute_import from __future__ import division from __future__ import print_function import os.path from absl import app from absl import flags import pandas as pd from side_effects_penalties.file_loading import load_files FLAGS = flags.FLAGS if __name__ == '__main__': # Avoid defining flags when used as a library. flags.DEFINE_string('path', '', 'File path.') flags.DEFINE_string('input_suffix', '', 'Filename suffix to use when loading data files.') flags.DEFINE_string('output_suffix', '', 'Filename suffix to use when saving files.') flags.DEFINE_bool('bar_plot', True, 'Make a data frame for a bar plot (True) ' + 'or learning curves (False)') flags.DEFINE_string('env_name', 'box', 'Environment name.') flags.DEFINE_bool('noops', True, 'Whether the environment includes noops.') flags.DEFINE_list('beta_list', [0.1, 0.3, 1.0, 3.0, 10.0, 30.0, 100.0], 'List of beta values.') flags.DEFINE_list('seed_list', [1], 'List of random seeds.') flags.DEFINE_bool('compare_penalties', True, 'Compare different penalties using the best beta value ' + 'for each penalty (True), or compare different beta values ' + 'for the same penalty (False).') flags.DEFINE_enum('dev_measure', 'rel_reach', ['none', 'reach', 'rel_reach', 'att_util'], 'Deviation measure (used if compare_penalties=False).') flags.DEFINE_enum('dev_fun', 'truncation', ['truncation', 'absolute'], 'Summary function for the deviation measure ' + '(used if compare_penalties=False)') flags.DEFINE_float('value_discount', 0.99, 'Discount factor for deviation measure value function ' + '(used if compare_penalties=False)') def beta_choice(baseline, dev_measure, dev_fun, value_discount, env_name, beta_list, seed_list, noops=False, path='', suffix=''): """Choose beta value that gives the highest final performance.""" if dev_measure == 'none': return 0.1 perf_max = float('-inf') best_beta = 0.0 for beta in beta_list: df = load_files(baseline=baseline, dev_measure=dev_measure, dev_fun=dev_fun, value_discount=value_discount, beta=beta, env_name=env_name, noops=noops, path=path, suffix=suffix, seed_list=seed_list) if df.empty: perf = float('-inf') else: perf = df['performance_smooth'].mean() if perf > perf_max: perf_max = perf best_beta = beta return best_beta def penalty_label(dev_measure, dev_fun, value_discount): """Penalty label specifying design choices.""" dev_measure_labels = { 'none': 'None', 'rel_reach': 'RR', 'att_util': 'AU', 'reach': 'UR'} label = dev_measure_labels[dev_measure] disc_lab = 'u' if value_discount == 1.0 else 'd' dev_lab = '' if dev_measure in ['rel_reach', 'att_util']: dev_lab = 't' if dev_fun == 'truncation' else 'a' if dev_measure != 'none': label = label + '(' + disc_lab + dev_lab + ')' return label def make_summary_data_frame( env_name, beta_list, seed_list, final=True, baseline=None, dev_measure=None, dev_fun=None, value_discount=None, noops=False, compare_penalties=True, path='', input_suffix='', output_suffix=''): """Make summary dataframe from multiple csv result files and output to csv.""" # For each of the penalty parameters (baseline, dev_measure, dev_fun, and # value_discount), compare a list of multiple values if the parameter is None, # or use the provided parameter value if it is not None baseline_list = ['start', 'inaction', 'stepwise', 'step_noroll'] if dev_measure is not None: dev_measure_list = [dev_measure] else: dev_measure_list = ['none', 'reach', 'rel_reach', 'att_util'] dataframes = [] for dev_measure in dev_measure_list: # These deviation measures don't have a deviation function: if dev_measure in ['reach', 'none']: dev_fun_list = ['none'] elif dev_fun is not None: dev_fun_list = [dev_fun] else: dev_fun_list = ['truncation', 'absolute'] # These deviation measures must be discounted: if dev_measure in ['none', 'att_util']: value_discount_list = [0.99] elif value_discount is not None: value_discount_list = [value_discount] else: value_discount_list = [0.99, 1.0] for baseline in baseline_list: for vd in value_discount_list: for devf in dev_fun_list: # Choose the best beta for this set of penalty parameters if # compare_penalties=True, or compare all betas otherwise if compare_penalties: beta = beta_choice( baseline=baseline, dev_measure=dev_measure, dev_fun=devf, value_discount=vd, env_name=env_name, noops=noops, beta_list=beta_list, seed_list=seed_list, path=path, suffix=input_suffix) betas = [beta] else: betas = beta_list for beta in betas: label = penalty_label( dev_measure=dev_measure, dev_fun=devf, value_discount=vd) df_part = load_files( baseline=baseline, dev_measure=dev_measure, dev_fun=devf, value_discount=vd, beta=beta, env_name=env_name, noops=noops, path=path, suffix=input_suffix, final=final, seed_list=seed_list) df_part = df_part.assign( baseline=baseline, dev_measure=dev_measure, dev_fun=devf, value_discount=vd, beta=beta, env_name=env_name, label=label) dataframes.append(df_part) df = pd.concat(dataframes, sort=False) # Output summary data frame final_str = '_final' if final else '' if compare_penalties: filename = ('df_summary_penalties_' + env_name + final_str + output_suffix + '.csv') else: filename = ('df_summary_betas_' + env_name + '_' + dev_measure + '_' + dev_fun + '_' + str(value_discount) + final_str + output_suffix + '.csv') f = os.path.join(path, filename) df.to_csv(f) return df def main(unused_argv): compare_penalties = FLAGS.compare_penalties dev_measure = None if compare_penalties else FLAGS.dev_measure dev_fun = None if compare_penalties else FLAGS.dev_fun value_discount = None if compare_penalties else FLAGS.value_discount make_summary_data_frame( compare_penalties=compare_penalties, env_name=FLAGS.env_name, noops=FLAGS.noops, final=FLAGS.bar_plot, dev_measure=dev_measure, value_discount=value_discount, dev_fun=dev_fun, path=FLAGS.path, input_suffix=FLAGS.input_suffix, output_suffix=FLAGS.output_suffix, beta_list=FLAGS.beta_list, seed_list=FLAGS.seed_list) if __name__ == '__main__': app.run(main) ================================================ FILE: side_effects_penalties/run_experiment.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Run a Q-learning agent with a side effects penalty.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from absl import app from absl import flags import pandas as pd from six.moves import range from six.moves import zip from side_effects_penalties import agent_with_penalties from side_effects_penalties import training from side_effects_penalties.file_loading import filename FLAGS = flags.FLAGS if __name__ == '__main__': # Avoid defining flags when used as a library. # Side effects penalty settings flags.DEFINE_enum('baseline', 'inaction', ['start', 'inaction', 'stepwise', 'step_noroll'], 'Baseline.') flags.DEFINE_enum('dev_measure', 'rel_reach', ['none', 'reach', 'rel_reach', 'uvfa_rel_reach', 'att_util'], 'Deviation measure.') flags.DEFINE_enum('dev_fun', 'truncation', ['truncation', 'absolute'], 'Summary function for the deviation measure.') flags.DEFINE_float('discount', 0.99, 'Discount factor for rewards.') flags.DEFINE_float('value_discount', 0.99, 'Discount factor for deviation measure value function.') flags.DEFINE_float('beta', 30.0, 'Weight for side effects penalty.') flags.DEFINE_string('nonterminal', 'disc', 'Penalty for nonterminal states relative to terminal' 'states: none (0), full (1), or disc (1-discount).') flags.DEFINE_bool('exact_baseline', False, 'Compute the exact baseline using an environment copy.') # Agent settings flags.DEFINE_bool('anneal', True, 'Whether to anneal the exploration rate from 1 to 0.') flags.DEFINE_integer('num_episodes', 10000, 'Number of episodes.') flags.DEFINE_integer('num_episodes_noexp', 0, 'Number of episodes with no exploration.') flags.DEFINE_integer('seed', 1, 'Random seed.') # Environment settings flags.DEFINE_string('env_name', 'box', 'Environment name.') flags.DEFINE_bool('noops', True, 'Whether the environment includes noops.') flags.DEFINE_integer('movement_reward', 0, 'Movement reward.') flags.DEFINE_integer('goal_reward', 1, 'Reward for reaching a goal state.') flags.DEFINE_integer('side_effect_reward', -1, 'Hidden reward for causing side effects.') # Settings for outputting results flags.DEFINE_enum('mode', 'save', ['print', 'save'], 'Print results or save to file.') flags.DEFINE_string('path', '', 'File path.') flags.DEFINE_string('suffix', '', 'Filename suffix.') def run_experiment( baseline, dev_measure, dev_fun, discount, value_discount, beta, nonterminal, exact_baseline, anneal, num_episodes, num_episodes_noexp, seed, env_name, noops, movement_reward, goal_reward, side_effect_reward, mode, path, suffix): """Run agent and save or print the results.""" performances = [] rewards = [] seeds = [] episodes = [] if 'rel_reach' not in dev_measure and 'att_util' not in dev_measure: dev_fun = 'none' nonterminal_weights = {'none': 0.0, 'disc': 1.0-discount, 'full': 1.0} nonterminal_weight = nonterminal_weights[nonterminal] reward, performance = training.run_agent( baseline=baseline, dev_measure=dev_measure, dev_fun=dev_fun, discount=discount, value_discount=value_discount, beta=beta, nonterminal_weight=nonterminal_weight, exact_baseline=exact_baseline, anneal=anneal, num_episodes=num_episodes, num_episodes_noexp=num_episodes_noexp, seed=seed, env_name=env_name, noops=noops, movement_reward=movement_reward, goal_reward=goal_reward, side_effect_reward=side_effect_reward, agent_class=agent_with_penalties.QLearningSE) rewards.extend(reward) performances.extend(performance) seeds.extend([seed] * (num_episodes + num_episodes_noexp)) episodes.extend(list(range(num_episodes + num_episodes_noexp))) if mode == 'save': d = {'reward': rewards, 'performance': performances, 'seed': seeds, 'episode': episodes} df = pd.DataFrame(d) df1 = add_smoothed_data(df) f = filename(env_name, noops, dev_measure, dev_fun, baseline, beta, value_discount, path=path, suffix=suffix, seed=seed) df1.to_csv(f) return reward, performance def _smooth(values, window=100): return values.rolling(window,).mean() def add_smoothed_data(df, groupby='seed', window=100): grouped = df.groupby(groupby)[['reward', 'performance']] grouped = grouped.apply(_smooth, window=window).rename(columns={ 'performance': 'performance_smooth', 'reward': 'reward_smooth'}) temp = pd.concat([df, grouped], axis=1) return temp def main(unused_argv): reward, performance = run_experiment( baseline=FLAGS.baseline, dev_measure=FLAGS.dev_measure, dev_fun=FLAGS.dev_fun, discount=FLAGS.discount, value_discount=FLAGS.value_discount, beta=FLAGS.beta, nonterminal=FLAGS.nonterminal, exact_baseline=FLAGS.exact_baseline, anneal=FLAGS.anneal, num_episodes=FLAGS.num_episodes, num_episodes_noexp=FLAGS.num_episodes_noexp, seed=FLAGS.seed, env_name=FLAGS.env_name, noops=FLAGS.noops, movement_reward=FLAGS.movement_reward, goal_reward=FLAGS.goal_reward, side_effect_reward=FLAGS.side_effect_reward, mode=FLAGS.mode, path=FLAGS.path, suffix=FLAGS.suffix) if FLAGS.mode == 'print': print('Performance and reward in the last 10 steps:') print(list(zip(performance, reward))[-10:-1]) if __name__ == '__main__': app.run(main) ================================================ FILE: side_effects_penalties/side_effects_penalty.py ================================================ [File too large to display: 25.0 KB] ================================================ FILE: side_effects_penalties/side_effects_penalty_test.py ================================================ # Copyright 2019 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Tests for side_effects_penalty.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function from absl.testing import absltest from absl.testing import parameterized import numpy as np from six.moves import range from side_effects_penalties import side_effects_penalty from side_effects_penalties import training from side_effects_penalties.side_effects_penalty import Actions environments = ['box', 'vase', 'sushi_goal'] class SideEffectsTestCase(parameterized.TestCase): def _timestep_to_state(self, timestep): return tuple(map(tuple, np.copy(timestep.observation['board']))) def _env_to_action_range(self, env): action_spec = env.action_spec() action_range = list(range(action_spec.minimum, action_spec.maximum + 1)) return action_range class BaselineTestCase(SideEffectsTestCase): def _create_baseline(self, env_name): self._env, _ = training.get_env(env_name, True) self._baseline_env, _ = training.get_env(env_name, True) baseline_class = getattr(side_effects_penalty, self.__class__.__name__[:-4]) # remove 'Test' self._baseline = baseline_class( self._env.reset(), True, self._baseline_env, self._timestep_to_state) def _test_trajectory(self, actions, key): init_state = self._timestep_to_state(self._env.reset()) self._baseline.reset() current_state = init_state for action in actions: timestep = self._env.step(action) next_state = self._timestep_to_state(timestep) baseline_state = self._baseline.calculate(current_state, action, next_state) comparison_dict = { 'current_state': current_state, 'next_state': next_state, 'init_state': init_state } self.assertEqual(baseline_state, comparison_dict[key]) current_state = next_state if timestep.last(): return class StartBaselineTest(BaselineTestCase): @parameterized.parameters(*environments) def testInit(self, env_name): self._create_baseline(env_name) self._test_trajectory([Actions.NOOP], 'init_state') @parameterized.parameters(*environments) def testTenNoops(self, env_name): self._create_baseline(env_name) self._test_trajectory([Actions.NOOP for _ in range(10)], 'init_state') class InactionBaselineTest(BaselineTestCase): box_env, _ = training.get_env('box', True) box_action_spec = box_env.action_spec() @parameterized.parameters( *list(range(box_action_spec.minimum, box_action_spec.maximum + 1))) def testStaticEnvOneAction(self, action): self._create_baseline('box') self._test_trajectory([action], 'init_state') def testStaticEnvRandomActions(self): self._create_baseline('box') num_steps = np.random.randint(low=1, high=20) action_range = self._env_to_action_range(self._env) actions = [np.random.choice(action_range) for _ in range(num_steps)] self._test_trajectory(actions, 'init_state') @parameterized.parameters(*environments) def testInactionPolicy(self, env_name): self._create_baseline(env_name) num_steps = np.random.randint(low=1, high=20) self._test_trajectory([Actions.NOOP for _ in range(num_steps)], 'next_state') class StepwiseBaselineTest(BaselineTestCase): def testStaticEnvRandomActions(self): self._create_baseline('box') action_range = self._env_to_action_range(self._env) num_steps = np.random.randint(low=1, high=20) actions = [np.random.choice(action_range) for _ in range(num_steps)] self._test_trajectory(actions, 'current_state') @parameterized.parameters(*environments) def testInactionPolicy(self, env_name): self._create_baseline(env_name) num_steps = np.random.randint(low=1, high=20) self._test_trajectory([Actions.NOOP for _ in range(num_steps)], 'next_state') @parameterized.parameters(*environments) def testInactionRollout(self, env_name): self._create_baseline(env_name) init_state = self._timestep_to_state(self._env.reset()) self._baseline.reset() action = Actions.NOOP state1 = init_state trajectory = [init_state] for _ in range(10): trajectory.append(self._timestep_to_state(self._env.step(action))) state2 = trajectory[-1] self._baseline.calculate(state1, action, state2) state1 = state2 chain = self._baseline.rollout_func(init_state) self.assertEqual(chain, trajectory[:len(chain)]) if len(chain) < len(trajectory): self.assertEqual(trajectory[len(chain) - 1], trajectory[len(chain)]) def testStaticRollouts(self): self._create_baseline('box') action_range = self._env_to_action_range(self._env) num_steps = np.random.randint(low=1, high=20) actions = [np.random.choice(action_range) for _ in range(num_steps)] state1 = self._timestep_to_state(self._env.reset()) states = [state1] self._baseline.reset() for action in actions: state2 = self._timestep_to_state(self._env.step(action)) states.append(state2) self._baseline.calculate(state1, action, state2) state1 = state2 i1, i2 = np.random.choice(len(states), 2) chain = self._baseline.parallel_inaction_rollouts(states[i1], states[i2]) self.assertLen(chain, 1) chain1 = self._baseline.rollout_func(states[i1]) self.assertLen(chain1, 1) chain2 = self._baseline.rollout_func(states[i2]) self.assertLen(chain2, 1) @parameterized.parameters(('parallel', 'vase'), ('parallel', 'sushi'), ('inaction', 'vase'), ('inaction', 'sushi')) def testConveyorRollouts(self, which_rollout, env_name): self._create_baseline(env_name) init_state = self._timestep_to_state(self._env.reset()) self._baseline.reset() action = Actions.NOOP state1 = init_state init_state_next = self._timestep_to_state(self._env.step(action)) state2 = init_state_next self._baseline.calculate(state1, action, state2) state1 = state2 for _ in range(10): state2 = self._timestep_to_state(self._env.step(action)) self._baseline.calculate(state1, action, state2) state1 = state2 if which_rollout == 'parallel': chain = self._baseline.parallel_inaction_rollouts(init_state, init_state_next) else: chain = self._baseline.rollout_func(init_state) self.assertLen(chain, 5) class NoDeviationTest(SideEffectsTestCase): def _random_initial_transition(self): env_name = np.random.choice(environments) noops = np.random.choice([True, False]) env, _ = training.get_env(env_name, noops) action_range = self._env_to_action_range(env) action = np.random.choice(action_range) state1 = self._timestep_to_state(env.reset()) state2 = self._timestep_to_state(env.step(action)) return (state1, state2) def testNoDeviation(self): deviation = side_effects_penalty.NoDeviation() state1, state2 = self._random_initial_transition() self.assertEqual(deviation.calculate(state1, state2), 0) def testNoDeviationUpdate(self): deviation = side_effects_penalty.NoDeviation() state1, state2 = self._random_initial_transition() deviation.update(state1, state2) self.assertEqual(deviation.calculate(state1, state2), 0) class UnreachabilityTest(SideEffectsTestCase): @parameterized.named_parameters(('Discounted', 0.99), ('Undiscounted', 1.0)) def testUnreachabilityCycle(self, gamma): # Reachability with no dev_fun means unreachability deviation = side_effects_penalty.Reachability(value_discount=gamma) env, _ = training.get_env('box', False) state0 = self._timestep_to_state(env.reset()) state1 = self._timestep_to_state(env.step(Actions.LEFT)) # deviation should not be calculated before calling update deviation.update(state0, state1) self.assertEqual(deviation.calculate(state0, state0), 1.0 - 1.0) self.assertEqual(deviation.calculate(state0, state1), 1.0 - gamma) self.assertEqual(deviation.calculate(state1, state0), 1.0 - 0.0) state2 = self._timestep_to_state(env.step(Actions.RIGHT)) self.assertEqual(state0, state2) deviation.update(state1, state2) self.assertEqual(deviation.calculate(state0, state0), 1.0 - 1.0) self.assertEqual(deviation.calculate(state0, state1), 1.0 - gamma) self.assertEqual(deviation.calculate(state1, state0), 1.0 - gamma) self.assertEqual(deviation.calculate(state1, state1), 1.0 - 1.0) if __name__ == '__main__': absltest.main() ================================================ FILE: side_effects_penalties/training.py ================================================ [File too large to display: 5.6 KB] ================================================ FILE: sketchy/README.md ================================================ # Sketchy data This is a dataset accompanying the paper [Scaling data-driven robotics with reward sketching and batch reinforcement learning](https://arxiv.org/abs/1909.12200). If you use this dataset in your research please cite ``` @article{cabi2019, title={Scaling data-driven robotics with reward sketching and batch reinforcement learning}, author={Serkan Cabi and Sergio G{\'o}mez Colmenarejo and Alexander Novikov and Ksenia Konyushkova and Scott Reed and Rae Jeong and Konrad Zolna and Yusuf Aytar and David Budden and Mel Vecerik and Oleg Sushkov and David Barker and Jonathan Scholz and Misha Denil and Nando de Freitas and Ziyu Wang}, journal={arXiv preprint arXiv:1909.12200}, year={2019} } ``` ## See example data There is a small amount of example data included in this repository. To examine it, run the following commands from the repository root (i.e. one level up from this folder): ``` python3 -m venv .sketchy_env source .sketchy_env/bin/activate pip install --upgrade pip pip install -r sketchy/requirements.txt python -m sketchy.dataset_example --show_images ``` For an example of loading rewards for episodes see `reward_example.py`. ## Download the full dataset Run `./download.sh path/to/download/folder` to download the full dataset. The full dataset requires ~5.0TB of disk space to download, and extracts to approximately the same size. You can edit `download.sh` to download subsets of the data. Once the dataset has been downloaded it can be extracted wtih `./extract.sh path/to/download/folder`. ### Named subsets We provide several named subsets of the full dataset, which can be easily downloaded on their own. See `download.sh` for a description of the subsets that are provided. The episodes in each of these named subsets are identified by a tag in the metadata. If you would like to curate your own subset you can download the metadata file and inspect the `ArchiveFiles` table (see below) to figure out which archive files contain the episodes you want. # Dataset Contents The dataset is distribted as a *metadata file* (`metadata.sqlite`) and a collection of *archive files* (with names ending in `.tar.bz2`). The metadata file contains information about the episodes, including annotated rewards for a subset of the episodes. Each archive file contains several *episode files*, which have names like `10000313341320364033_b615a417-ce34-41a8-8411-2a1ce3f3bd07`. Each episode file is a [tfrecord](https://www.tensorflow.org/tutorials/load_data/tfrecord) file, containing a sequence of *timesteps* for a single episode. Each timestep is a `tf.train.Example` proto containing features corresponding to the observations and actions from a particular point in time. ## Metadata The metadata file, `metadata.sqlite`, is a sqlite database containing metadata describing the contents of the files in the dataset. The following sections describe the important metadata tables. You can find the full schema by running ``` sqlite3 metadata.sqlite <<< .schema ``` ### Episodes - `EpisodeId`: A string of digits that uniquely identifies the episode. - `TaskId`: A human readable name for the task corresponding to the behavior that generated the episode. - `DataPath`: The name of the episode file holding the data for this episode. - `EpisodeType`: A string describing the type of policy that generated the episode. Possible values are: - `EPISODE_ROBOT_AGENT`: The behavior policy is a learned or scripted controller. - `EPISODE_ROBOT_TELEOPERATION`: The behavior policy is a human teleoperating the robot. - `EPISODE_ROBOT_DAGGER`: The behavior policy is a mix of controller and human generated actions. - `Timestamp`: A unix timestamp recording when the episode was generated. ### EpisodeTags - `EpisodeId`: Foreign key into the `Episodes` table. - `Tag`: A human readable identifier for some aspect of the episode (e.g. which object set is used). ### RewardSequences - `EpisodeId`: Foreign key into the `Episodes` table. - `RewardSequenceId`: Distinguishes multiple rewards for the same episode. - `RewardTaskId`: A human readable name of the task for this reward signal. Typically the same as the corresponding `TaskId` in the `Episodes` table. - `Type`: A string describing the type of reward signal. Currently the only value is `REWARD_SKETCH`. - `Values`: A sequence of float32 values, packed as a binary blob. There is one float value for each frame of the episode, corresponding to the annotated reward. ### ArchiveFiles - `EpisodeId`: Foreign key into the `Episodes` table. - `ArchiveFile`: Name of the archive file containing the corresponding episode. ## Episodes Each episode file is a [tfrecords](https://www.tensorflow.org/tutorials/load_data/tfrecord) file containing a sequence of timesteps, encoded as [`tf.train.Example`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/example/example.proto) protos. Each episode file contains a single episode, and each timestep within an episode contains all of the observations and actions associated with a that timestep as a single `tf.train.Example`. Within each episode file the timesteps are temporally ordered, so reading a file from beginning to end will visit all of the timesteps from the episode in the order they occurred. Observations and actions occur at 10Hz. ## Timesteps Each timestep is a collection of observations and actions. Actions stored with a timestep correspond to actions taken in response to the observations they are stored with. For a description of the shapes and types of the timestep data, see the data loader in `sketchy.py`. # Dataset Metadata The following table is necessary for this dataset to be indexed by search engines such as Google Dataset Search.
property value
name Sketchy
url
sameAs https://github.com/deepmind/deepmind-research/tree/master/sketchy
description Data accompanying [Scaling data-driven robotics with reward sketching and batch reinforcement learning](https://arxiv.org/abs/1909.12200).
provider
property value
name DeepMind
sameAs https://en.wikipedia.org/wiki/DeepMind
citation https://identifiers.org/arxiv:1909.12200
================================================ FILE: sketchy/__init__.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ================================================ FILE: sketchy/dataset_example.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Example of loading sketchy data in tensorflow.""" from absl import app from absl import flags import matplotlib.pyplot as plt import tensorflow.compat.v2 as tf from sketchy import sketchy flags.DEFINE_boolean('show_images', False, 'Enable to show example images.') FLAGS = flags.FLAGS def main(argv): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') tf.enable_v2_behavior() # The example file contains only a few timesteps from a single episode. dataset = sketchy.load_frames('sketchy/example_data.tfrecords') dataset = dataset.prefetch(5) for example in dataset: print('---') for name, value in sorted(example.items()): print(name, value.dtype, value.shape) if FLAGS.show_images: plt.imshow(example['pixels/basket_front_left']) plt.show() if __name__ == '__main__': app.run(main) ================================================ FILE: sketchy/download.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Use this script to download the sketchy dataset. # # You will need to extract the archive files before using them. Each archive # (except for the last in each group) contains 100 episodes. if [ -z "$1" ]; then echo "Usage: $(basename "$0") download_folder" >&2 exit 1 fi DOWNLOAD_FOLDER="$1" NUM_PARALLEL_DOWNLOADS="4" # set the number of download workers DATA_URL="https://storage.googleapis.com/sketchy-data" function download_shards { # Usage: download_shards prefix num_shards local PREFIX="$1" local LIMIT="$(printf "%05d" "$2")" # Avoid leading zeros or this will be interpreted as an octal number. local MAX="$(("$2"-1))" ( for IDX in $(seq -f'%05.0f' 0 "$MAX"); do echo "${PREFIX}-${IDX}-of-${LIMIT}.tar.bz2" done ) | xargs -I{} -n1 -P"${NUM_PARALLEL_DOWNLOADS}" \ curl "${DATA_URL}/{}" --output "${DOWNLOAD_FOLDER}/{}" } # This is the metadata. This file is small, you always want it. curl "${DATA_URL}/metadata.sqlite" --output "${DOWNLOAD_FOLDER}/metadata.sqlite" # Download these files if you want all and only the episodes with an associated # reward sequence. # # sqlite3 metadata.sqlite <&2 exit 1 fi DOWNLOAD_FOLDER="$1" NUM_PARALLEL_WORKERS="$(grep processor /proc/cpuinfo | wc -l)" cd "$DOWNLOAD_FOLDER" find . -name '*.tar.bz2' -print0 \ | xargs -0 -n1 -P"$NUM_PARALLEL_WORKERS" tar xf ================================================ FILE: sketchy/metadata_schema.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Sqlalchemy schema for the metadata db.""" import sqlalchemy from sqlalchemy.ext import declarative Column = sqlalchemy.Column Integer = sqlalchemy.Integer String = sqlalchemy.String LargeBinary = sqlalchemy.LargeBinary ForeignKey = sqlalchemy.ForeignKey # pylint: disable=invalid-name # https://docs.sqlalchemy.org/en/13/orm/tutorial.html Base = declarative.declarative_base() EpisodeTag = sqlalchemy.Table( 'EpisodeTags', Base.metadata, Column( 'EpisodeId', String, ForeignKey('Episodes.EpisodeId'), primary_key=True), Column('Tag', String, ForeignKey('Tags.Name'), primary_key=True)) """Table relating episodes and tags. Attributes: EpisodeId: A string of digits that uniquely identifies the episode. Tag: Human readable tag name. """ class Episode(Base): """Table describing individual episodes. Attributes: EpisodeId: A string of digits that uniquely identifies the episode. TaskId: A human readable name for the task corresponding to the behavior that generated the episode. DataPath: The name of the episode file holding the data for this episode. Timestamp: A unix timestamp recording when the episode was generated. EpisodeType: A string describing the type of policy that generated the episode. Possible values are: - `EPISODE_ROBOT_AGENT`: The behavior policy is a learned or scripted controller. - `EPISODE_ROBOT_TELEOPERATION`: The behavior policy is a human teleoperating the robot. - `EPISODE_ROBOT_DAGGER`: The behavior policy is a mix of controller and human generated actions. Tags: A list of tags attached to this episode. Rewards: A list of `RewardSequence`s containing sketched rewards for this episode. """ __tablename__ = 'Episodes' EpisodeId = Column(String, primary_key=True) TaskId = Column(String) DataPath = Column(String) Timestamp = Column(Integer) EpisodeType = Column(String) Tags = sqlalchemy.orm.relationship( 'Tag', secondary=EpisodeTag, back_populates='Episodes') Rewards = sqlalchemy.orm.relationship( 'RewardSequence', backref='Episode') class Tag(Base): """Table of tags that can be attached to episodes. Attributes: Name: Human readable tag name. Episodes: The epsidoes that have been annotated with this tag. """ __tablename__ = 'Tags' Name = Column(String, primary_key=True) Episodes = sqlalchemy.orm.relationship( 'Episode', secondary=EpisodeTag, back_populates='Tags') class RewardSequence(Base): """Table describing reward sequences for episodes. Attributes: EpisodeId: Foreign key into the `Episodes` table. RewardSequenceId: Distinguishes multiple rewards for the same episode. RewardTaskId: A human readable name of the task for this reward signal. Typically the same as the corresponding `TaskId` in the `Episodes` table. Type: A string describing the type of reward signal. Currently the only value is `REWARD_SKETCH`. User: The name of the user who produced this reward sequence. Values: A sequence of float32 values, packed as a binary blob. There is one float value for each frame of the episode, corresponding to the annotated reward. """ __tablename__ = 'RewardSequences' EpisodeId = Column( 'EpisodeId', String, ForeignKey('Episodes.EpisodeId'), primary_key=True) RewardSequenceId = Column(String, primary_key=True) RewardTaskId = Column('RewardTaskId', String) Type = Column(String) User = Column(String) Values = Column(LargeBinary) class ArchiveFile(Base): """Table describing where episodes are stored in archives. This information is relevant if you want to download or extract a specific episode from the archives they are distributed in. Attributes: EpisodeId: Foreign key into the `Episodes` table. ArchiveFile: Name of the archive file containing the corresponding episode. """ __tablename__ = 'ArchiveFiles' EpisodeId = Column( 'EpisodeId', String, ForeignKey('Episodes.EpisodeId'), primary_key=True) ArchiveFile = Column(String) # pylint: enable=invalid-name ================================================ FILE: sketchy/requirements.txt ================================================ absl-py==0.9.0 astor==0.8.1 cachetools==4.0.0 certifi==2019.11.28 chardet==3.0.4 cycler==0.10.0 gast==0.2.2 google-auth==1.10.0 google-auth-oauthlib==0.4.1 google-pasta==0.1.8 grpcio==1.26.0 h5py==2.10.0 idna==2.8 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.0 kiwisolver==1.1.0 Markdown==3.1.1 matplotlib==3.1.2 numpy==1.18.1 oauthlib==3.1.0 opt-einsum==3.1.0 protobuf==3.11.2 pyasn1==0.4.8 pyasn1-modules==0.2.7 pyparsing==2.4.6 python-dateutil==2.8.1 requests==2.22.0 requests-oauthlib==1.3.0 rsa==4.0 six==1.13.0 SQLAlchemy==1.3.12 tensorboard==2.0.2 tensorflow==2.0.0 tensorflow-estimator==2.0.1 termcolor==1.1.0 urllib3==1.25.7 Werkzeug==0.16.0 wrapt==1.11.2 ================================================ FILE: sketchy/reward_example.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Example of loading rewards from the metadata file.""" from absl import app from absl import flags import numpy as np import sqlalchemy from sketchy import metadata_schema flags.DEFINE_string( 'metadata', '/tmp/metadata.sqlite', 'Path to metadata file.') FLAGS = flags.FLAGS def main(argv): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') engine = sqlalchemy.create_engine('sqlite:///' + FLAGS.metadata) session = sqlalchemy.orm.sessionmaker(bind=engine)() episodes = session.query(metadata_schema.Episode).join( metadata_schema.RewardSequence).limit(5) for episode in episodes: rewards = np.frombuffer(episode.Rewards[0].Values, dtype=np.float32) print('---') print(f'Episode: {episode.EpisodeId}') print(f'Episode file: {episode.DataPath}') print(f'Reward type: {episode.Rewards[0].Type}') print(f'Reward values: {rewards}') if __name__ == '__main__': app.run(main) ================================================ FILE: sketchy/run.sh ================================================ #!/bin/bash # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. python3 -m venv /tmp/sketchy_env source /tmp/sketchy_env/bin/activate pip install --upgrade pip pip install -r sketchy/requirements.txt python -m sketchy.dataset_example --noshow_images ================================================ FILE: sketchy/sketchy.py ================================================ # Copyright 2020 DeepMind Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Interface for loading sketchy data into tensorflow.""" import tensorflow.compat.v2 as tf def load_frames(filenames, num_parallel_reads=1, num_map_threads=None): if not num_map_threads: num_map_threads = num_parallel_reads dataset = tf.data.TFRecordDataset( filenames, num_parallel_reads=num_parallel_reads) return dataset.map(_parse_example, num_parallel_calls=num_map_threads) _FEATURES = { # Actions 'actions': tf.io.FixedLenFeature(shape=7, dtype=tf.float32), # Observations 'gripper/joints/velocity': tf.io.FixedLenFeature(shape=1, dtype=tf.float32), 'gripper/joints/torque': tf.io.FixedLenFeature(shape=1, dtype=tf.float32), 'gripper/grasp': tf.io.FixedLenFeature(shape=1, dtype=tf.int64), 'gripper/joints/angle': tf.io.FixedLenFeature(shape=1, dtype=tf.float32), 'sawyer/joints/velocity': tf.io.FixedLenFeature(shape=7, dtype=tf.float32), 'sawyer/pinch/pose': tf.io.FixedLenFeature(shape=7, dtype=tf.float32), 'sawyer/tcp/pose': tf.io.FixedLenFeature(shape=7, dtype=tf.float32), 'sawyer/tcp/effort': tf.io.FixedLenFeature(shape=6, dtype=tf.float32), 'sawyer/joints/torque': tf.io.FixedLenFeature(shape=7, dtype=tf.float32), 'sawyer/tcp/velocity': tf.io.FixedLenFeature(shape=6, dtype=tf.float32), 'sawyer/joints/angle': tf.io.FixedLenFeature(shape=7, dtype=tf.float32), 'wrist/torque': tf.io.FixedLenFeature(shape=3, dtype=tf.float32), 'wrist/force': tf.io.FixedLenFeature(shape=3, dtype=tf.float32), 'pixels/basket_front_left': tf.io.FixedLenFeature(shape=1, dtype=tf.string), 'pixels/basket_back_left': tf.io.FixedLenFeature(shape=1, dtype=tf.string), 'pixels/basket_front_right': tf.io.FixedLenFeature(shape=1, dtype=tf.string), 'pixels/royale_camera_driver_depth': tf.io.FixedLenFeature(shape=(171, 224, 1), dtype=tf.float32), 'pixels/royale_camera_driver_gray': tf.io.FixedLenFeature(shape=1, dtype=tf.string), 'pixels/usbcam0': tf.io.FixedLenFeature(shape=1, dtype=tf.string), 'pixels/usbcam1': tf.io.FixedLenFeature(shape=1, dtype=tf.string), } def _parse_example(example): return _decode_images(tf.io.parse_single_example(example, _FEATURES)) def _decode_images(record): for name, value in list(record.items()): if value.dtype == tf.string: record[name] = tf.io.decode_jpeg(value[0]) return record ================================================ FILE: synthetic_returns/README.md ================================================ # Code for Synthetic Returns This repository contains code for the arXiv preprint ["Synthetic Returns for Long-Term Credit Assignment"](https://arxiv.org/abs/2102.12425) by David Raposo, Sam Ritter, Adam Santoro, Greg Wayne, Theophane Weber, Matt Botvinick, Hado van Hasselt, and Francis Song. To cite this work: ``` @article{raposo2021synthetic, title={Rapid Task-Solving in Novel Environments}, author={Raposo, David and Ritter, Sam and Santoro, Adam and Wayne, Greg and Weber, Theophane and Botvinick, Matt and van Hasselt, Hado and Song, Francis}, journal={arXiv preprint arXiv:2102.12425}, year={2021} } ``` ### Agent core wrapper We implemented the Synthetic Returns module as a wrapper to a recurrent neural network (RNN), so it should be compatible with any Deep-RL agent with an arbitrary RNN core, whose inputs consist of batches of vectors. This could be an LSTM as in the example below, or a more sophisticated core as long as it implements an `hk.RNNCore`. ```python agent_core = hk.LSTM(128) ``` To build the SR wrapper, simply pass the existing agent core to the constructor, along with the SR configuration: ```python sr_config = { "memory_size": 128, "capacity": 300, "hidden_layers": (128, 128), "alpha": 0.3, "beta": 1.0, } sr_agent_core = hk.ResetCore( SyntheticReturnsCoreWrapper(core=agent_core, **sr_config)) ``` Typically, the SR wrapper should itself be wrapped in a `hk.ResetCore` in order to reset the core state in the beginning of a new episode. This will reset not only the episodic memory but also the original agent core that was passed to the SR wrapper constructor. ### Learner Consider the distributed setting, wherein a learner receives mini-batches of trajectories of length `T` produced by the actors. `trajectory` is a nested structure of tensors of size `[T,B,...]` (where `B` is the batch size) containing observations, agent states, rewards and step type indicators. We start by producing inputs to the SR core, which consist of tuples of current state embeddings and return targets. The current state embeddings can be produced by a ConvNet, for example. In our experiments we used the current step reward as target. Note that the current step reward correspond to the rewards in the trajectory shifted by one, relative to the observations: ```python observations = jax.tree_map(lambda x: x[:-1], trajectory.observation) vision_output = hk.BatchApply(vision_net)(observations) return_targets = trajectory.reward[1:] sr_core_inputs = (vision_output, return_targets) ``` For purposes of core resetting at the beginning of a new episode, we also need to pass an indicator of which steps correspond to the first step of an episode. ```python should_reset = jnp.equal( trajectory.step_type[:-1], int(dm_env.StepType.FIRST)) core_inputs = (sr_core_inputs, should_reset) ``` We can now produce an unroll using `hk.dynamic_unroll` and passing it the SR core, the core inputs we produced, and the initial state of the unroll, which corresponds to the agent state in the first step of the trajectory: ```python state = jax.tree_map(lambda t: t[0], trajectory.agent_state) core_output, state = hk.dynamic_unroll( sr_agent_core, core_inputs, state) ``` The SR wrapper produces 4 output tensors: the output of the agent core, the synthetic returns, the SR-augmented return, and the SR loss. The synthetic returns are taken into account when computing the augmented return and the SR loss. Therefore they are not needed anymore and can be discarded or used for logging purposes. The agent core outputs should be used, as usual, for producing a policy. In an actor-critic, policy gradient set-up, like IMPALA, we would produce policy logits and values: ```python policy_logits = hk.BatchApply(policy_net)(core_output.output) value = hk.BatchApply(baseline_net)(core_output.output) ``` Similarly, in a Q-learning setting we would use the agent core outputs to produce q-values. The SR-augmented returns should be used in place of the environment rewards for the policy updates (e.g. when computing the policy gradient and baseline losses): ```python rewards = core_output.augmented_return ``` Finally, the SR loss, summed over batch and time dimensions, should be added to the total learner loss to be minimized: ```python total_loss += jnp.sum(core_output.sr_loss) ``` ================================================ FILE: synthetic_returns/requirements.txt ================================================ dm-haiku>=0.0.3 jax>=0.2.8 ================================================ FILE: synthetic_returns/synthetic_returns.py ================================================ # Copyright 2021 DeepMind Technologies Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Episodic Memory and Synthetic Returns Core Wrapper modules.""" import collections import haiku as hk import jax import jax.numpy as jnp SRCoreWrapperOutput = collections.namedtuple( "SRCoreWrapperOutput", ["output", "synthetic_return", "augmented_return", "sr_loss"]) class EpisodicMemory(hk.RNNCore): """Episodic Memory module.""" def __init__(self, memory_size, capacity, name="episodic_memory"): """Constructor. Args: memory_size: Integer. The size of the vectors to be stored. capacity: Integer. The maximum number of memories to store before it becomes necessary to overwrite old memories. name: String. A name for this Haiku module instance. """ super().__init__(name=name) self._memory_size = memory_size self._capacity = capacity def __call__(self, inputs, prev_state): """Writes a new memory into the episodic memory. Args: inputs: A Tensor of shape ``[batch_size, memory_size]``. prev_state: The previous state of the episodic memory, which is a tuple with a (i) counter of shape ``[batch_size, 1]`` indicating how many memories have been written so far, and (ii) a tensor of shape ``[batch_size, capacity, memory_size]`` with the full content of the episodic memory. Returns: A tuple with (i) a tensor of shape ``[batch_size, capacity, memory_size]`` with the full content of the episodic memory, including the newly written memory, and (ii) the new state of the episodic memory. """ inputs = jax.lax.stop_gradient(inputs) counter, memories = prev_state counter_mod = jnp.mod(counter, self._capacity) slot_selector = jnp.expand_dims( jax.nn.one_hot(counter_mod, self._capacity), axis=2) memories = memories * (1 - slot_selector) + ( slot_selector * jnp.expand_dims(inputs, 1)) counter = counter + 1 return memories, (counter, memories) def initial_state(self, batch_size): """Creates the initial state of the episodic memory. Args: batch_size: Integer. The batch size of the episodic memory. Returns: A tuple with (i) a counter of shape ``[batch_size, 1]`` and (ii) a tensor of shape ``[batch_size, capacity, memory_size]`` with the full content of the episodic memory. """ if batch_size is None: shape = [] else: shape = [batch_size] counter = jnp.zeros(shape) memories = jnp.zeros(shape + [self._capacity, self._memory_size]) return (counter, memories) class SyntheticReturnsCoreWrapper(hk.RNNCore): """Synthetic Returns core wrapper.""" def __init__(self, core, memory_size, capacity, hidden_layers, alpha, beta, loss_func=(lambda x, y: 0.5 * jnp.square(x - y)), apply_core_to_input=False, name="synthetic_returns_wrapper"): """Constructor. Args: core: hk.RNNCore. The recurrent core of the agent. E.g. an LSTM. memory_size: Integer. The size of the vectors to be stored in the episodic memory. capacity: Integer. The maximum number of memories to store before it becomes necessary to overwrite old memories. hidden_layers: Tuple or list of integers, indicating the size of the hidden layers of the MLPs used to produce synthetic returns, current state bias, and gate. alpha: The multiplier of the synthetic returns term in the augmented return. beta: The multiplier of the environment returns term in the augmented return. loss_func: A function of two arguments (predictions and targets) to compute the SR loss. apply_core_to_input: Boolean. Whether to apply the core on the inputs. If true, the synthetic returns will be computed from the outputs of the RNN core passed to the constructor. If false, the RNN core will be applied only at the output of this wrapper, and the synthetic returns will be computed from the inputs. name: String. A name for this Haiku module instance. """ super().__init__(name=name) self._em = EpisodicMemory(memory_size, capacity) self._capacity = capacity hidden_layers = list(hidden_layers) self._synthetic_return = hk.nets.MLP(hidden_layers + [1]) self._bias = hk.nets.MLP(hidden_layers + [1]) self._gate = hk.Sequential([ hk.nets.MLP(hidden_layers + [1]), jax.nn.sigmoid, ]) self._apply_core_to_input = apply_core_to_input self._core = core self._alpha = alpha self._beta = beta self._loss = loss_func def initial_state(self, batch_size): return ( self._em.initial_state(batch_size), self._core.initial_state(batch_size) ) def __call__(self, inputs, prev_state): current_input, return_target = inputs em_state, core_state = prev_state (counter, memories) = em_state if self._apply_core_to_input: current_input, core_state = self._core(current_input, core_state) # Synthetic return for the current state synth_return = jnp.squeeze(self._synthetic_return(current_input), -1) # Current state bias term bias = self._bias(current_input) # Gate computed from current state gate = self._gate(current_input) # When counter > capacity, mask will be all ones mask = 1 - jnp.cumsum(jax.nn.one_hot(counter, self._capacity), axis=1) mask = jnp.expand_dims(mask, axis=2) # Synthetic returns for each state in memory past_synth_returns = hk.BatchApply(self._synthetic_return)(memories) # Sum of synthetic returns from previous states sr_sum = jnp.sum(past_synth_returns * mask, axis=1) prediction = jnp.squeeze(sr_sum * gate + bias, -1) sr_loss = self._loss(prediction, return_target) augmented_return = jax.lax.stop_gradient( self._alpha * synth_return + self._beta * return_target) # Write current state to memory _, em_state = self._em(current_input, em_state) if not self._apply_core_to_input: output, core_state = self._core(current_input, core_state) else: output = current_input output = SRCoreWrapperOutput( output=output, synthetic_return=synth_return, augmented_return=augmented_return, sr_loss=sr_loss, ) return output, (em_state, core_state) ================================================ FILE: tandem_dqn/README.md ================================================ [File too large to display: 3.0 KB] ================================================ FILE: tandem_dqn/agent.py ================================================ [File too large to display: 14.7 KB] ================================================ FILE: tandem_dqn/atari_data.py ================================================ [File too large to display: 4.0 KB] ================================================ FILE: tandem_dqn/gym_atari.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """dm_env environment wrapper around Gym Atari configured to be like Xitari. Gym Atari is built on the Arcade Learning Environment (ALE), whereas Xitari is an old fork of the ALE. """ # pylint: disable=g-bad-import-order from typing import Optional, Tuple import atari_py # pylint: disable=unused-import for gym to load Atari games. import dm_env from dm_env import specs import gym import numpy as np from tandem_dqn import atari_data _GYM_ID_SUFFIX = '-xitari-v1' _SA_SUFFIX = '-sa' def _game_id(game, sticky_actions): return game + (_SA_SUFFIX if sticky_actions else '') + _GYM_ID_SUFFIX def _register_atari_environments(): """Registers Atari environments in Gym to be as similar to Xitari as possible. Main difference from PongNoFrameSkip-v4, etc. is max_episode_steps is unset and only the usual 57 Atari games are registered. Additionally, sticky-actions variants of the environments are registered with an '-sa' suffix. """ for sticky_actions in [False, True]: for game in atari_data.ATARI_GAMES: repeat_action_probability = 0.25 if sticky_actions else 0.0 gym.envs.registration.register( id=_game_id(game, sticky_actions), entry_point='gym.envs.atari:AtariEnv', kwargs={ # Explicitly set all known arguments. 'game': game, 'mode': None, # Not necessarily the same as 0. 'difficulty': None, # Not necessarily the same as 0. 'obs_type': 'image', 'frameskip': 1, # Get every frame. 'repeat_action_probability': repeat_action_probability, 'full_action_space': False, }, max_episode_steps=None, # No time limit, handled in run loop. nondeterministic=False, # Xitari is deterministic. ) _register_atari_environments() class GymAtari(dm_env.Environment): """Gym Atari with a `dm_env.Environment` interface.""" def __init__(self, game, sticky_actions, seed): self._gym_env = gym.make(_game_id(game, sticky_actions)) self._gym_env.seed(seed) self._start_of_episode = True def reset(self) -> dm_env.TimeStep: """Resets the environment and starts a new episode.""" observation = self._gym_env.reset() lives = np.int32(self._gym_env.ale.lives()) timestep = dm_env.restart((observation, lives)) self._start_of_episode = False return timestep def step(self, action: np.int32) -> dm_env.TimeStep: """Updates the environment given an action and returns a timestep.""" # If the previous timestep was LAST then we call reset() on the Gym # environment, otherwise step(). Although Gym environments allow you to step # through episode boundaries (similar to dm_env) they emit a warning. if self._start_of_episode: step_type = dm_env.StepType.FIRST observation = self._gym_env.reset() discount = None reward = None done = False else: observation, reward, done, info = self._gym_env.step(action) if done: assert 'TimeLimit.truncated' not in info, 'Should never truncate.' step_type = dm_env.StepType.LAST discount = 0. else: step_type = dm_env.StepType.MID discount = 1. lives = np.int32(self._gym_env.ale.lives()) timestep = dm_env.TimeStep( step_type=step_type, observation=(observation, lives), reward=reward, discount=discount, ) self._start_of_episode = done return timestep def observation_spec(self) -> Tuple[specs.Array, specs.Array]: space = self._gym_env.observation_space return (specs.Array(shape=space.shape, dtype=space.dtype, name='rgb'), specs.Array(shape=(), dtype=np.int32, name='lives')) def action_spec(self) -> specs.DiscreteArray: space = self._gym_env.action_space return specs.DiscreteArray( num_values=space.n, dtype=np.int32, name='action') def close(self): self._gym_env.close() class RandomNoopsEnvironmentWrapper(dm_env.Environment): """Adds a random number of noop actions at the beginning of each episode.""" def __init__(self, environment: dm_env.Environment, max_noop_steps: int, min_noop_steps: int = 0, noop_action: int = 0, seed: Optional[int] = None): """Initializes the random noops environment wrapper.""" self._environment = environment if max_noop_steps < min_noop_steps: raise ValueError('max_noop_steps must be greater or equal min_noop_steps') self._min_noop_steps = min_noop_steps self._max_noop_steps = max_noop_steps self._noop_action = noop_action self._rng = np.random.RandomState(seed) def reset(self): """Begins new episode. This method resets the wrapped environment and applies a random number of noop actions before returning the last resulting observation as the first episode timestep. Intermediate timesteps emitted by the inner environment (including all rewards and discounts) are discarded. Returns: First episode timestep corresponding to the timestep after a random number of noop actions are applied to the inner environment. Raises: RuntimeError: if an episode end occurs while the inner environment is being stepped through with the noop action. """ return self._apply_random_noops(initial_timestep=self._environment.reset()) def step(self, action): """Steps environment given action. If beginning a new episode then random noops are applied as in `reset()`. Args: action: action to pass to environment conforming to action spec. Returns: `Timestep` from the inner environment unless beginning a new episode, in which case this is the timestep after a random number of noop actions are applied to the inner environment. """ timestep = self._environment.step(action) if timestep.first(): return self._apply_random_noops(initial_timestep=timestep) else: return timestep def _apply_random_noops(self, initial_timestep): assert initial_timestep.first() num_steps = self._rng.randint(self._min_noop_steps, self._max_noop_steps + 1) timestep = initial_timestep for _ in range(num_steps): timestep = self._environment.step(self._noop_action) if timestep.last(): raise RuntimeError('Episode ended while applying %s noop actions.' % num_steps) # We make sure to return a FIRST timestep, i.e. discard rewards & discounts. return dm_env.restart(timestep.observation) ## All methods except for reset and step redirect to the underlying env. def observation_spec(self): return self._environment.observation_spec() def action_spec(self): return self._environment.action_spec() def reward_spec(self): return self._environment.reward_spec() def discount_spec(self): return self._environment.discount_spec() def close(self): return self._environment.close() ================================================ FILE: tandem_dqn/losses.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Losses for TandemDQN.""" from typing import Any, Callable import chex import jax import jax.numpy as jnp import rlax from tandem_dqn import networks # Batch variants of double_q_learning and SARSA. batch_double_q_learning = jax.vmap(rlax.double_q_learning) batch_sarsa_learning = jax.vmap(rlax.sarsa) # Batch variant of quantile_q_learning with fixed tau input across batch. batch_quantile_q_learning = jax.vmap( rlax.quantile_q_learning, in_axes=(0, None, 0, 0, 0, 0, 0, None)) def _mc_learning( q_tm1: chex.Array, a_tm1: chex.Numeric, mc_return_tm1: chex.Array, ) -> chex.Numeric: """Calculates the MC return error.""" chex.assert_rank([q_tm1, a_tm1], [1, 0]) chex.assert_type([q_tm1, a_tm1], [float, int]) return mc_return_tm1 - q_tm1[a_tm1] # Batch variant of MC learning. batch_mc_learning = jax.vmap(_mc_learning) def _qr_loss(q_tm1, q_t, q_target_t, transitions, rng_key): """Calculates QR-Learning loss from network outputs and transitions.""" del q_t, rng_key # Unused. # Compute Q value distributions. huber_param = 1. quantiles = networks.make_quantiles() losses = batch_quantile_q_learning( q_tm1.q_dist, quantiles, transitions.a_tm1, transitions.r_t, transitions.discount_t, q_target_t.q_dist, # No double Q-learning here. q_target_t.q_dist, huber_param, ) loss = jnp.mean(losses) return loss def _sarsa_loss(q_tm1, q_t, transitions, rng_key): """Calculates SARSA loss from network outputs and transitions.""" del rng_key # Unused. grad_error_bound = 1. / 32 td_errors = batch_sarsa_learning( q_tm1.q_values, transitions.a_tm1, transitions.r_t, transitions.discount_t, q_t.q_values, transitions.a_t ) td_errors = rlax.clip_gradient(td_errors, -grad_error_bound, grad_error_bound) losses = rlax.l2_loss(td_errors) loss = jnp.mean(losses) return loss def _mc_loss(q_tm1, transitions, rng_key): """Calculates Monte-Carlo return loss, i.e. regression towards MC return.""" del rng_key # Unused. errors = batch_mc_learning(q_tm1.q_values, transitions.a_tm1, transitions.mc_return_tm1) loss = jnp.mean(rlax.l2_loss(errors)) return loss def _double_q_loss(q_tm1, q_t, q_target_t, transitions, rng_key): """Calculates Double Q-Learning loss from network outputs and transitions.""" del rng_key # Unused. grad_error_bound = 1. / 32 td_errors = batch_double_q_learning( q_tm1.q_values, transitions.a_tm1, transitions.r_t, transitions.discount_t, q_target_t.q_values, q_t.q_values, ) td_errors = rlax.clip_gradient(td_errors, -grad_error_bound, grad_error_bound) losses = rlax.l2_loss(td_errors) loss = jnp.mean(losses) return loss def _q_regression_loss(q_tm1, q_tm1_target): """Loss for regression of all action values towards targets.""" errors = q_tm1.q_values - jax.lax.stop_gradient(q_tm1_target.q_values) loss = jnp.mean(rlax.l2_loss(errors)) return loss def make_loss_fn(loss_type: str, active: bool) -> Callable[..., Any]: """Create active or passive loss function of given type.""" if active: primary = lambda x: x.active secondary = lambda x: x.passive else: primary = lambda x: x.passive secondary = lambda x: x.active def sarsa_loss_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """SARSA loss using own networks.""" del q_t # Unused. return _sarsa_loss(primary(q_tm1), primary(q_target_t), transitions, rng_key) def mc_loss_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """MonteCarlo loss.""" del q_t, q_target_t return _mc_loss(primary(q_tm1), transitions, rng_key) def double_q_loss_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """Regular DoubleQ loss using own networks.""" return _double_q_loss(primary(q_tm1), primary(q_t), primary(q_target_t), transitions, rng_key) def double_q_loss_v_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """DoubleQ loss using other network's (target) value function.""" return _double_q_loss(primary(q_tm1), primary(q_t), secondary(q_target_t), transitions, rng_key) def double_q_loss_p_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """DoubleQ loss using other network's (online) argmax policy.""" return _double_q_loss(primary(q_tm1), secondary(q_t), primary(q_target_t), transitions, rng_key) def double_q_loss_pv_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """DoubleQ loss using other network's argmax policy & target value fn.""" return _double_q_loss(primary(q_tm1), secondary(q_t), secondary(q_target_t), transitions, rng_key) # Pure regression. def q_regression_loss_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """Pure regression of q_tm1(self) towards q_tm1(other).""" del q_t, q_target_t, transitions, rng_key # Unused. return _q_regression_loss(primary(q_tm1), secondary(q_tm1)) # QR loss. def qr_loss_fn(q_tm1, q_t, q_target_t, transitions, rng_key): """QR-Q loss using own networks.""" return _qr_loss(primary(q_tm1), primary(q_t), primary(q_target_t), transitions, rng_key) if loss_type == 'double_q': return double_q_loss_fn elif loss_type == 'sarsa': return sarsa_loss_fn elif loss_type == 'mc_return': return mc_loss_fn elif loss_type == 'double_q_v': return double_q_loss_v_fn elif loss_type == 'double_q_p': return double_q_loss_p_fn elif loss_type == 'double_q_pv': return double_q_loss_pv_fn elif loss_type == 'q_regression': return q_regression_loss_fn elif loss_type == 'qr': return qr_loss_fn else: raise ValueError('Unknown loss "{}"'.format(loss_type)) ================================================ FILE: tandem_dqn/losses_test.py ================================================ [File too large to display: 3.5 KB] ================================================ FILE: tandem_dqn/networks.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """DQN agent network components and implementation.""" import typing from typing import Any, Callable, Tuple, Union import chex import haiku as hk import jax import jax.numpy as jnp import numpy as np Network = hk.Transformed Params = hk.Params NetworkFn = Callable[..., Any] class QNetworkOutputs(typing.NamedTuple): q_values: jnp.ndarray class QRNetworkOutputs(typing.NamedTuple): q_values: jnp.ndarray q_dist: jnp.ndarray NUM_QUANTILES = 201 def _dqn_default_initializer( num_input_units: int) -> hk.initializers.Initializer: """Default initialization scheme inherited from past implementations of DQN. This scheme was historically used to initialize all weights and biases in convolutional and linear layers of DQN-type agents' networks. It initializes each weight as an independent uniform sample from [`-c`, `c`], where `c = 1 / np.sqrt(num_input_units)`, and `num_input_units` is the number of input units affecting a single output unit in the given layer, i.e. the total number of inputs in the case of linear (dense) layers, and `num_input_channels * kernel_width * kernel_height` in the case of convolutional layers. Args: num_input_units: number of input units to a single output unit of the layer. Returns: Haiku weight initializer. """ max_val = np.sqrt(1 / num_input_units) return hk.initializers.RandomUniform(-max_val, max_val) def make_quantiles(): """Quantiles for QR-DQN.""" return (jnp.arange(0, NUM_QUANTILES) + 0.5) / float(NUM_QUANTILES) def conv( num_features: int, kernel_shape: Union[int, Tuple[int, int]], stride: Union[int, Tuple[int, int]], name=None, ) -> NetworkFn: """Convolutional layer with DQN's legacy weight initialization scheme.""" def net_fn(inputs): """Function representing conv layer with DQN's legacy initialization.""" num_input_units = inputs.shape[-1] * kernel_shape[0] * kernel_shape[1] initializer = _dqn_default_initializer(num_input_units) layer = hk.Conv2D( num_features, kernel_shape=kernel_shape, stride=stride, w_init=initializer, b_init=initializer, padding='VALID', name=name) return layer(inputs) return net_fn def linear(num_outputs: int, with_bias=True, name=None) -> NetworkFn: """Linear layer with DQN's legacy weight initialization scheme.""" def net_fn(inputs): """Function representing linear layer with DQN's legacy initialization.""" initializer = _dqn_default_initializer(inputs.shape[-1]) layer = hk.Linear( num_outputs, with_bias=with_bias, w_init=initializer, b_init=initializer, name=name) return layer(inputs) return net_fn def linear_with_shared_bias(num_outputs: int, name=None) -> NetworkFn: """Linear layer with single shared bias instead of one bias per output.""" def layer_fn(inputs): """Function representing a linear layer with single shared bias.""" initializer = _dqn_default_initializer(inputs.shape[-1]) bias_free_linear = hk.Linear( num_outputs, with_bias=False, w_init=initializer, name=name) linear_output = bias_free_linear(inputs) bias = hk.get_parameter('b', [1], inputs.dtype, init=initializer) bias = jnp.broadcast_to(bias, linear_output.shape) return linear_output + bias return layer_fn def dqn_torso() -> NetworkFn: """DQN convolutional torso. Includes scaling from [`0`, `255`] (`uint8`) to [`0`, `1`] (`float32`)`. Returns: Network function that `haiku.transform` can be called on. """ def net_fn(inputs): """Function representing convolutional torso for a DQN Q-network.""" network = hk.Sequential([ lambda x: x.astype(jnp.float32) / 255., conv(32, kernel_shape=(8, 8), stride=(4, 4), name='conv1'), jax.nn.relu, conv(64, kernel_shape=(4, 4), stride=(2, 2), name='conv2'), jax.nn.relu, conv(64, kernel_shape=(3, 3), stride=(1, 1), name='conv3'), jax.nn.relu, hk.Flatten(), ]) return network(inputs) return net_fn def dqn_value_head(num_actions: int, shared_bias: bool = False) -> NetworkFn: """Regular DQN Q-value head with single hidden layer.""" last_layer = linear_with_shared_bias if shared_bias else linear def net_fn(inputs): """Function representing value head for a DQN Q-network.""" network = hk.Sequential([ linear(512, name='linear1'), jax.nn.relu, last_layer(num_actions, name='output'), ]) return network(inputs) return net_fn def qr_atari_network(num_actions: int, quantiles: jnp.ndarray) -> NetworkFn: """QR-DQN network, expects `uint8` input.""" chex.assert_rank(quantiles, 1) num_quantiles = len(quantiles) def net_fn(inputs): """Function representing QR-DQN Q-network.""" network = hk.Sequential([ dqn_torso(), dqn_value_head(num_quantiles * num_actions), ]) network_output = network(inputs) q_dist = jnp.reshape(network_output, (-1, num_quantiles, num_actions)) q_values = jnp.mean(q_dist, axis=1) q_values = jax.lax.stop_gradient(q_values) return QRNetworkOutputs(q_dist=q_dist, q_values=q_values) return net_fn def double_dqn_atari_network(num_actions: int) -> NetworkFn: """DQN network with shared bias in final layer, expects `uint8` input.""" def net_fn(inputs): """Function representing DQN Q-network with shared bias output layer.""" network = hk.Sequential([ dqn_torso(), dqn_value_head(num_actions, shared_bias=True), ]) return QNetworkOutputs(q_values=network(inputs)) return net_fn def make_network(network_type: str, num_actions: int) -> Network: """Constructs network.""" if network_type == 'double_q': network_fn = double_dqn_atari_network(num_actions) elif network_type == 'qr': quantiles = make_quantiles() network_fn = qr_atari_network(num_actions, quantiles) else: raise ValueError('Unknown network "{}"'.format(network_type)) return hk.transform(network_fn) ================================================ FILE: tandem_dqn/parts.py ================================================ [File too large to display: 15.5 KB] ================================================ FILE: tandem_dqn/processors.py ================================================ # Copyright 2021 DeepMind Technologies Limited # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Composable timestep processing, for DQN Atari preprocessing. Aims: * Be self-contained. * Easy to have the preprocessing on the agent side or on the environment side. * Easy to swap out and modify parts of the processing. Conventions: * The term "processor" is used to refer to any callable that could also have a `reset()` function to clear any internal state. E.g. a plain function. Or an instance of a class with `__call__` method, with or without a `reset()` method. * `None` means no output when subsampling inputs. """ import collections from typing import Any, Callable, List, Iterable, Optional, Sequence, Text, Tuple import dm_env from dm_env import specs import numpy as np from PIL import Image Processor = Callable # Actually a callable that may also have a reset() method. Nest = Any # Recursive types are not yet supported by pytype. NamedTuple = Any StepType = dm_env.StepType def reset(processor: Processor[[Any], Any]) -> None: """Calls `reset()` on a `Processor` or function if the method exists.""" if hasattr(processor, 'reset'): processor.reset() identity = lambda v: v def trailing_zero_pad( length: int) -> Processor[[List[np.ndarray]], List[np.ndarray]]: """Adds trailing zero padding to array lists to ensure a minimum length.""" def trailing_zero_pad_fn(arrays): padding_length = length - len(arrays) if padding_length <= 0: return arrays zero = np.zeros_like(arrays[0]) return arrays + [zero] * padding_length return trailing_zero_pad_fn def none_to_zero_pad(values: List[Optional[NamedTuple]]) -> List[NamedTuple]: """Replaces `None`s in a list of named tuples with zeros of same structure.""" actual_values = [n for n in values if n is not None] if not actual_values: raise ValueError('Must have at least one value which is not None.') if len(actual_values) == len(values): return values example = actual_values[0] zero = type(example)(*(np.zeros_like(x) for x in example)) return [zero if v is None else v for v in values] def named_tuple_sequence_stack(values: Sequence[NamedTuple]) -> NamedTuple: """Converts a sequence of named tuples into a named tuple of tuples.""" # [T(1, 2), T(3, 4), T(5, 6)]. transposed = zip(*values) # ((1, 3, 5), (2, 4, 6)). return type(values[0])(*transposed) # T((1, 3, 5), (2, 4, 6)). class Deque: """Double ended queue with a maximum length and initial values.""" def __init__(self, max_length: int, initial_values=None): self._deque = collections.deque(maxlen=max_length) self._initial_values = initial_values or [] def reset(self) -> None: self._deque.clear() self._deque.extend(self._initial_values) def __call__(self, value: Any) -> collections.deque: self._deque.append(value) return self._deque class FixedPaddedBuffer: """Fixed size `None`-padded buffer which is cleared after it is filled. E.g. with `length = 3`, `initial_index = 2` and values `[0, 1, 2, 3, 4, 5, 6]` this will return `~~0`, `1~~`, `12~`, `123`, `4~~`, `45~`, `456`, where `~` represents `None`. Used to concatenate timesteps for action repeats. Action repeat requirements are: * Fixed size buffer of timesteps. * The `FIRST` timestep should return immediately to get the first action of the episode, as there is no preceding action to repeat. Prefix with padding. * For `MID` timesteps, the timestep buffer is periodically returned when full. * When a `LAST` timestep is encountered, the current buffer of timesteps is returned, suffixed with padding, as buffers should not cross episode boundaries. The requirements can be fulfilled by conditionally subsampling the output of this processor. """ def __init__(self, length: int, initial_index: int): self._length = length self._initial_index = initial_index % length self._index = self._initial_index self._buffer = [None] * self._length def reset(self) -> None: self._index = self._initial_index self._buffer = [None] * self._length def __call__(self, value: Any) -> Sequence[Any]: if self._index >= self._length: assert self._index == self._length self._index = 0 self._buffer = [None] * self._length self._buffer[self._index] = value self._index += 1 return self._buffer class ConditionallySubsample: """Conditionally passes through input, returning `None` otherwise.""" def __init__(self, condition: Processor[[Any], bool]): self._condition = condition def reset(self) -> None: reset(self._condition) def __call__(self, value: Any) -> Optional[Any]: return value if self._condition(value) else None class TimestepBufferCondition: """Returns `True` when an iterable of timesteps should be passed on. Specifically returns `True`: * If timesteps contain a `FIRST`. * If timesteps contain a `LAST`. * If number of steps passed since `FIRST` timestep modulo `period` is `0`. Returns `False` otherwise. Used for action repeats in Atari preprocessing. """ def __init__(self, period: int): self._period = period self._steps_since_first_timestep = None self._should_reset = False def reset(self): self._should_reset = False self._steps_since_first_timestep = None def __call__(self, timesteps: Iterable[dm_env.TimeStep]) -> bool: if self._should_reset: raise RuntimeError('Should have reset.') # Find the main step type, FIRST and LAST take precedence over MID. main_step_type = StepType.MID precedent_step_types = (StepType.FIRST, StepType.LAST) for timestep in timesteps: if timestep is None: continue if timestep.step_type in precedent_step_types: if main_step_type in precedent_step_types: raise RuntimeError('Expected at most one FIRST or LAST.') main_step_type = timestep.step_type # Must have FIRST timestep after a reset. if self._steps_since_first_timestep is None: if main_step_type != StepType.FIRST: raise RuntimeError('After reset first timestep should be FIRST.') # pytype: disable=unsupported-operands if main_step_type == StepType.FIRST: self._steps_since_first_timestep = 0 return True elif main_step_type == StepType.LAST: self._steps_since_first_timestep = None self._should_reset = True return True elif (self._steps_since_first_timestep + 1) % self._period == 0: self._steps_since_first_timestep += 1 return True else: self._steps_since_first_timestep += 1 return False # pytype: enable=unsupported-operands class ApplyToNamedTupleField: """Runs processors on a particular field of a named tuple.""" def __init__(self, field: Text, *processors: Processor[[Any], Any]): self._field = field self._processors = processors def reset(self) -> None: for processor in self._processors: reset(processor) def __call__(self, value: NamedTuple) -> NamedTuple: attr_value = getattr(value, self._field) for processor in self._processors: attr_value = processor(attr_value) return value._replace(**{self._field: attr_value}) class Maybe: """Wraps another processor so that `None` is returned when `None` is input.""" def __init__(self, processor: Processor[[Any], Any]): self._processor = processor def reset(self) -> None: reset(self._processor) def __call__(self, value: Optional[Any]) -> Optional[Any]: if value is None: return None else: return self._processor(value) class Sequential: """Chains together multiple processors.""" def __init__(self, *processors: Processor[[Any], Any]): self._processors = processors def reset(self) -> None: for processor in self._processors: reset(processor) def __call__(self, value: Any) -> Any: for processor in self._processors: value = processor(value) return value class ZeroDiscountOnLifeLoss: """Sets discount to zero on timestep if number of lives has decreased. This processor assumes observations to be tuples whose second entry is a scalar indicating the remaining number of lives. """ def __init__(self): self._num_lives_on_prev_step = None def reset(self) -> None: self._num_lives_on_prev_step = None def __call__(self, timestep: dm_env.TimeStep) -> dm_env.TimeStep: # We have a life loss when the timestep is a regular transition and lives # have decreased since the previous timestep. num_lives = timestep.observation[1] life_lost = timestep.mid() and (num_lives < self._num_lives_on_prev_step) self._num_lives_on_prev_step = num_lives return timestep._replace(discount=0.) if life_lost else timestep def reduce_step_type(step_types: Sequence[StepType], debug: bool = False) -> StepType: """Outputs a representative step type from an array of step types.""" # Zero padding will appear to be FIRST. Padding should only be seen before the # FIRST (e.g. 000F) or after LAST (e.g. ML00). if debug: np_step_types = np.array(step_types) output_step_type = StepType.MID for i, step_type in enumerate(step_types): if step_type == 0: # step_type not actually FIRST, but we do expect 000F. if debug and not (np_step_types == 0).all(): raise ValueError('Expected zero padding followed by FIRST.') output_step_type = StepType.FIRST break elif step_type == StepType.LAST: output_step_type = StepType.LAST if debug and not (np_step_types[i + 1:] == 0).all(): raise ValueError('Expected LAST to be followed by zero padding.') break else: if step_type != StepType.MID: raise ValueError('Expected MID if not FIRST or LAST.') return output_step_type def aggregate_rewards(rewards: Sequence[Optional[float]], debug: bool = False) -> Optional[float]: """Sums up rewards, assumes discount is 1.""" if None in rewards: if debug: np_rewards = np.array(rewards) if not (np_rewards[-1] is None and (np_rewards[:-1] == 0).all()): # Should only ever have [0, 0, 0, None] due to zero padding. raise ValueError('Should only have a None reward for FIRST.') return None else: # Faster than np.sum for a list of floats. return sum(rewards) def aggregate_discounts(discounts: Sequence[Optional[float]], debug: bool = False) -> Optional[float]: """Aggregates array of discounts into a scalar, expects `0`, `1` or `None`.""" if debug: np_discounts = np.array(discounts) if not np.isin(np_discounts, [0., 1., None]).all(): raise ValueError('All discounts should be 0 or 1, got: %s.' % np_discounts) if None in discounts: if debug: if not (np_discounts[-1] is None and (np_discounts[:-1] == 0).all()): # Should have [0, 0, 0, None] due to zero padding. raise ValueError('Should only have a None discount for FIRST.') return None else: # Faster than np.prod for a list of floats. result = 1 for d in discounts: result *= d return result def rgb2y(array: np.ndarray) -> np.ndarray: """Converts RGB image array into grayscale.""" if array.ndim != 3: raise ValueError('Input array should be 3D, got %s.' % array.ndim) output = np.tensordot(array, [0.299, 0.587, 1 - (0.299 + 0.587)], (-1, 0)) return output.astype(np.uint8) def resize(shape: Tuple[int, ...]) -> Processor[[np.ndarray], np.ndarray]: """Resizes array to the given shape.""" if len(shape) != 2: raise ValueError('Resize shape has to be 2D, given: %s.' % str(shape)) # Image.resize takes (width, height) as output_shape argument. image_shape = (shape[1], shape[0]) def resize_fn(array): image = Image.fromarray(array).resize(image_shape, Image.BILINEAR) return np.array(image, dtype=np.uint8) return resize_fn def select_rgb_observation(timestep: dm_env.TimeStep) -> dm_env.TimeStep: """Replaces an observation tuple by its first entry (the RGB observation).""" return timestep._replace(observation=timestep.observation[0]) def apply_additional_discount( additional_discount: float) -> Processor[[float], float]: """Returns a function that scales its non-`None` input by a constant.""" return lambda d: None if d is None else additional_discount * d def clip_reward(bound: float) -> Processor[[Optional[float]], Optional[float]]: """Returns a function that clips non-`None` inputs to (`-bound`, `bound`).""" def clip_reward_fn(reward): return None if reward is None else max(min(reward, bound), -bound) return clip_reward_fn def show(prefix: Text) -> Processor[[Any], Any]: """Prints value and passes through, for debugging.""" def show_fn(value): print('%s: %s' % (prefix, value)) return value return show_fn def atari( additional_discount: float = 0.99, max_abs_reward: Optional[float] = 1.0, resize_shape: Optional[Tuple[int, int]] = (84, 84), num_action_repeats: int = 4, num_pooled_frames: int = 2, zero_discount_on_life_loss: bool = True, num_stacked_frames: int = 4, grayscaling: bool = True, ) -> Processor[[dm_env.TimeStep], Optional[dm_env.TimeStep]]: """Standard DQN preprocessing on Atari.""" # This processor does the following to a sequence of timesteps. # # 1. Zeroes discount on loss of life. # 2. Repeats actions (previous action should be repeated if None is returned). # 3. Max pools action repeated observations. # 4. Grayscales observations. # 5. Resizes observations. # 6. Stacks observations. # 7. Clips rewards. # 8. Applies an additional discount. # # For more detail see the annotations in the processors below. # The FixedPaddedBuffer, ConditionallySubsample, none_to_zero_pad, stack and # max_pool on the observation collectively does this (step types: F = FIRST, # M = MID, L = LAST, ~ is None): # # Type: F | M M M M | M M L | F | # Frames: A | B C D E | F G H | I | # Output: max[0A]| ~ ~ ~ max[DE]| ~ ~ max[H0]|max[0I]| return Sequential( # When the number of lives decreases, set discount to 0. ZeroDiscountOnLifeLoss() if zero_discount_on_life_loss else identity, # Select the RGB observation as the main observation, dropping lives. select_rgb_observation, # obs: 1, 2, 3, 4, 5, 6, 7, 8, 9, ... # Write timesteps into a fixed-sized buffer padded with None. FixedPaddedBuffer(length=num_action_repeats, initial_index=-1), # obs: ~~~1, 2~~~, 23~~, 234~, 2345, 6~~~, 67~~, 678~, 6789, ... # Periodically return the deque of timesteps, when the current timestep is # FIRST, after that every 4 steps, and when the current timestep is LAST. ConditionallySubsample(TimestepBufferCondition(num_action_repeats)), # obs: ~~~1, ~, ~, ~, 2345, ~, ~, ~, 6789, ... # If None pass through, otherwise apply the processor. Maybe( Sequential( # Replace Nones with zero padding in each buffer. none_to_zero_pad, # obs: 0001, ~, ~, ~, 2345, ~, ~, ~, 6789, ... # Convert sequence of nests into a nest of sequences. named_tuple_sequence_stack, # Choose representative step type from an array of step types. ApplyToNamedTupleField('step_type', reduce_step_type), # Rewards: sum then clip. ApplyToNamedTupleField( 'reward', aggregate_rewards, clip_reward(max_abs_reward) if max_abs_reward else identity, ), # Discounts: take product and scale by an additional discount. ApplyToNamedTupleField( 'discount', aggregate_discounts, apply_additional_discount(additional_discount), ), # Observations: max pool, grayscale, resize, and stack. ApplyToNamedTupleField( 'observation', lambda obs: np.stack(obs[-num_pooled_frames:], axis=0), lambda obs: np.max(obs, axis=0), # obs: max[01], ~, ~, ~, max[45], ~, ~, ~, max[89], ... # obs: A, ~, ~, ~, B, ~, ~, ~, C, ... rgb2y if grayscaling else identity, resize(resize_shape) if resize_shape else identity, Deque(max_length=num_stacked_frames), # obs: A, ~, ~, ~, AB, ~, ~, ~, ABC, ~, ~, ~, ABCD, ~, ~, ~, # BCDE, ~, ~, ~, CDEF, ... list, trailing_zero_pad(length=num_stacked_frames), # obs: A000, ~, ~, ~, AB00, ~, ~, ~, ABC0, ~, ~, ~, ABCD, # ~, ~, ~, BCDE, ... lambda obs: np.stack(obs, axis=-1), ), )), ) class AtariEnvironmentWrapper(dm_env.Environment): """Python environment wrapper that provides DQN Atari preprocessing. This is a thin wrapper around the Atari processor. Expects underlying Atari environment to have interleaved pixels (HWC) and zero-indexed actions. """ def __init__( self, environment: dm_env.Environment, additional_discount: float = 0.99, max_abs_reward: Optional[float] = 1.0, resize_shape: Optional[Tuple[int, int]] = (84, 84), num_action_repeats: int = 4, num_pooled_frames: int = 2, zero_discount_on_life_loss: bool = True, num_stacked_frames: int = 4, grayscaling: bool = True, ): rgb_spec, unused_lives_spec = environment.observation_spec() if rgb_spec.shape[2] != 3: raise ValueError( 'This wrapper assumes interleaved pixel observations with shape ' '(height, width, channels).') if int(environment.action_spec().minimum) != 0: raise ValueError('This wrapper assumes zero-indexed actions.') self._environment = environment self._processor = atari( additional_discount=additional_discount, max_abs_reward=max_abs_reward, resize_shape=resize_shape, num_action_repeats=num_action_repeats, num_pooled_frames=num_pooled_frames, zero_discount_on_life_loss=zero_discount_on_life_loss, num_stacked_frames=num_stacked_frames, grayscaling=grayscaling, ) if grayscaling: self._observation_shape = resize_shape + (num_stacked_frames,) self._observation_spec_name = 'grayscale' else: self._observation_shape = resize_shape + (3, num_stacked_frames) self._observation_spec_name = 'RGB' self._reset_next_step = True def reset(self) -> dm_env.TimeStep: """Resets environment and provides the first processed timestep.""" reset(self._processor) timestep = self._environment.reset() processed_timestep = self._processor(timestep) assert processed_timestep is not None self._reset_next_step = False return processed_timestep def step(self, action: int) -> dm_env.TimeStep: """Steps up to `num_action_repeat` times, returns a processed timestep.""" # This implements the action repeat by repeatedly passing in the last action # until an actual timestep is returned by the processor. if self._reset_next_step: return self.reset() # Ignore action. processed_timestep = None while processed_timestep is None: timestep = self._environment.step(action) processed_timestep = self._processor(timestep) if timestep.last(): self._reset_next_step = True assert processed_timestep is not None return processed_timestep def action_spec(self) -> specs.DiscreteArray: return self._environment.action_spec() def observation_spec(self) -> specs.Array: return specs.Array( shape=self._observation_shape, dtype=np.uint8, name=self._observation_spec_name) class AtariSimpleActionEnvironmentWrapper(dm_env.Environment): """Python environment wrapper for Atari so it takes integer actions. Use this when processing is done on the agent side. """ def __init__(self, environment: dm_env.Environment): self._environment = environment if int(environment.action_spec()[0].minimum) != 0: raise ValueError( 'This wrapper assumes zero-indexed actions. Use the Atari setting ' 'zero_indexed_actions=\"true\" to get actions in this format.') def reset(self) -> dm_env.TimeStep: return self._environment.reset() def step(self, action: int) -> dm_env.TimeStep: return self._environment.step([np.array(action).reshape((1,))]) def action_spec(self) -> specs.DiscreteArray: action_spec = self._environment.action_spec()[0] return specs.DiscreteArray( num_values=action_spec.maximum.item() + 1, dtype=action_spec.dtype, name='action_spec') def observation_spec(self) -> specs.Array: return self._environment.observation_spec() ================================================ FILE: tandem_dqn/replay.py ================================================ [File too large to display: 5.6 KB] ================================================ FILE: tandem_dqn/requirements.txt ================================================ [File too large to display: 735 B] ================================================ FILE: tandem_dqn/run.sh ================================================ [File too large to display: 1.4 KB] ================================================ FILE: tandem_dqn/run_tandem.py ================================================ [File too large to display: 13.1 KB] ================================================ FILE: transporter/README.md ================================================ [File too large to display: 1.5 KB] ================================================ FILE: transporter/requirements.txt ================================================ [File too large to display: 393 B] ================================================ FILE: transporter/run.sh ================================================ [File too large to display: 758 B] ================================================ FILE: transporter/transporter.py ================================================ [File too large to display: 15.5 KB] ================================================ FILE: transporter/transporter_example.ipynb ================================================ [File too large to display: 334.0 KB] ================================================ FILE: transporter/transporter_test.py ================================================ [File too large to display: 6.6 KB] ================================================ FILE: tvt/README.md ================================================ [File too large to display: 7.3 KB] ================================================ FILE: tvt/batch_env.py ================================================ [File too large to display: 3.5 KB] ================================================ FILE: tvt/dmlab/README.md ================================================ [File too large to display: 2.6 KB] ================================================ FILE: tvt/dmlab/active_visual_match.lua ================================================ [File too large to display: 1.0 KB] ================================================ FILE: tvt/dmlab/image_utils.lua ================================================ [File too large to display: 1.3 KB] ================================================ FILE: tvt/dmlab/key_to_door.lua ================================================ [File too large to display: 954 B] ================================================ FILE: tvt/dmlab/key_to_door_bluekey.lua ================================================ [File too large to display: 983 B] ================================================ FILE: tvt/dmlab/key_to_door_factory.lua ================================================ [File too large to display: 13.9 KB] ================================================ FILE: tvt/dmlab/key_to_door_to_match.lua ================================================ [File too large to display: 1.2 KB] ================================================ FILE: tvt/dmlab/latent_information_acquisition.lua ================================================ [File too large to display: 1.0 KB] ================================================ FILE: tvt/dmlab/latent_information_acquisition_factory.lua ================================================ [File too large to display: 13.4 KB] ================================================ FILE: tvt/dmlab/passive_visual_match.lua ================================================ [File too large to display: 1.0 KB] ================================================ FILE: tvt/dmlab/two_keys_to_choose_factory.lua ================================================ [File too large to display: 15.3 KB] ================================================ FILE: tvt/dmlab/two_negative_keys.lua ================================================ [File too large to display: 922 B] ================================================ FILE: tvt/dmlab/visual_match_factory.lua ================================================ [File too large to display: 23.5 KB] ================================================ FILE: tvt/losses.py ================================================ [File too large to display: 5.3 KB] ================================================ FILE: tvt/main.py ================================================ [File too large to display: 9.9 KB] ================================================ FILE: tvt/memory.py ================================================ [File too large to display: 11.1 KB] ================================================ FILE: tvt/nest_utils.py ================================================ [File too large to display: 3.0 KB] ================================================ FILE: tvt/pycolab/README.md ================================================ [File too large to display: 1.2 KB] ================================================ FILE: tvt/pycolab/active_visual_match.py ================================================ [File too large to display: 5.3 KB] ================================================ FILE: tvt/pycolab/common.py ================================================ [File too large to display: 10.3 KB] ================================================ FILE: tvt/pycolab/env.py ================================================ [File too large to display: 3.7 KB] ================================================ FILE: tvt/pycolab/game.py ================================================ [File too large to display: 1.4 KB] ================================================ FILE: tvt/pycolab/human_player.py ================================================ [File too large to display: 2.0 KB] ================================================ FILE: tvt/pycolab/key_to_door.py ================================================ [File too large to display: 6.9 KB] ================================================ FILE: tvt/pycolab/objects.py ================================================ [File too large to display: 4.2 KB] ================================================ FILE: tvt/requirements.txt ================================================ [File too large to display: 96 B] ================================================ FILE: tvt/rma.py ================================================ [File too large to display: 20.2 KB] ================================================ FILE: tvt/run.sh ================================================ [File too large to display: 762 B] ================================================ FILE: tvt/tvt_rewards.py ================================================ [File too large to display: 9.7 KB] ================================================ FILE: unrestricted_advx/README.md ================================================ [File too large to display: 955 B] ================================================ FILE: unrestricted_advx/install_dependencies.sh ================================================ [File too large to display: 1.1 KB] ================================================ FILE: unrestricted_advx/main.py ================================================ [File too large to display: 2.0 KB] ================================================ FILE: unrestricted_advx/requirements.txt ================================================ [File too large to display: 68 B] ================================================ FILE: unrestricted_advx/run.sh ================================================ [File too large to display: 777 B] ================================================ FILE: unsupervised_adversarial_training/README.md ================================================ [File too large to display: 2.2 KB] ================================================ FILE: unsupervised_adversarial_training/quick_eval_cifar.py ================================================ [File too large to display: 5.5 KB] ================================================ FILE: unsupervised_adversarial_training/requirements.txt ================================================ [File too large to display: 171 B] ================================================ FILE: unsupervised_adversarial_training/run.sh ================================================ [File too large to display: 1.0 KB] ================================================ FILE: unsupervised_adversarial_training/save_example_images.py ================================================ [File too large to display: 2.6 KB] ================================================ FILE: unsupervised_adversarial_training/tiny_200K_idxs.txt ================================================ [File too large to display: 2.1 MB] ================================================ FILE: visr/README.md ================================================ [File too large to display: 1.2 KB] ================================================ FILE: visr/VISR_ICLR2020.ipynb ================================================ [File too large to display: 120.6 KB] ================================================ FILE: wikigraphs/README.md ================================================ [File too large to display: 10.8 KB] ================================================ FILE: wikigraphs/main.py ================================================ [File too large to display: 16.6 KB] ================================================ FILE: wikigraphs/requirements.txt ================================================ [File too large to display: 103 B] ================================================ FILE: wikigraphs/scripts/build_vocab.py ================================================ [File too large to display: 5.5 KB] ================================================ FILE: wikigraphs/scripts/compute_blue_score.py ================================================ [File too large to display: 3.7 KB] ================================================ FILE: wikigraphs/scripts/download.sh ================================================ [File too large to display: 2.8 KB] ================================================ FILE: wikigraphs/scripts/freebase_preprocess.py ================================================ [File too large to display: 4.0 KB] ================================================ FILE: wikigraphs/scripts/visualize_graph.py ================================================ [File too large to display: 5.1 KB] ================================================ FILE: wikigraphs/setup.py ================================================ [File too large to display: 1.7 KB] ================================================ FILE: wikigraphs/updaters.py ================================================ [File too large to display: 11.3 KB] ================================================ FILE: wikigraphs/utils.py ================================================ [File too large to display: 18.7 KB] ================================================ FILE: wikigraphs/wikigraphs/data/__init__.py ================================================ [File too large to display: 1.5 KB] ================================================ FILE: wikigraphs/wikigraphs/data/dataset.py ================================================ [File too large to display: 2.0 KB] ================================================ FILE: wikigraphs/wikigraphs/data/io_tools.py ================================================ [File too large to display: 5.5 KB] ================================================ FILE: wikigraphs/wikigraphs/data/paired_dataset.py ================================================ [File too large to display: 24.2 KB] ================================================ FILE: wikigraphs/wikigraphs/data/paired_dataset_test.py ================================================ [File too large to display: 9.9 KB] ================================================ FILE: wikigraphs/wikigraphs/data/tokenizers.py ================================================ [File too large to display: 6.6 KB] ================================================ FILE: wikigraphs/wikigraphs/data/tokenizers_test.py ================================================ [File too large to display: 2.9 KB] ================================================ FILE: wikigraphs/wikigraphs/data/tools.py ================================================ [File too large to display: 9.0 KB] ================================================ FILE: wikigraphs/wikigraphs/data/tools_test.py ================================================ [File too large to display: 6.3 KB] ================================================ FILE: wikigraphs/wikigraphs/data/wikitext.py ================================================ [File too large to display: 7.3 KB] ================================================ FILE: wikigraphs/wikigraphs/data/wikitext_test.py ================================================ [File too large to display: 3.0 KB] ================================================ FILE: wikigraphs/wikigraphs/model/__init__.py ================================================ [File too large to display: 1.5 KB] ================================================ FILE: wikigraphs/wikigraphs/model/embedding.py ================================================ [File too large to display: 14.1 KB] ================================================ FILE: wikigraphs/wikigraphs/model/graph_net.py ================================================ [File too large to display: 9.8 KB] ================================================ FILE: wikigraphs/wikigraphs/model/graph_net_test.py ================================================ [File too large to display: 10.4 KB] ================================================ FILE: wikigraphs/wikigraphs/model/sampler.py ================================================ [File too large to display: 12.6 KB] ================================================ FILE: wikigraphs/wikigraphs/model/sampler_test.py ================================================ [File too large to display: 5.1 KB] ================================================ FILE: wikigraphs/wikigraphs/model/transformer.py ================================================ [File too large to display: 18.7 KB] ================================================ FILE: wikigraphs/wikigraphs/model/transformer_block.py ================================================ [File too large to display: 20.6 KB] ================================================ FILE: wikigraphs/wikigraphs/model/transformer_test.py ================================================ [File too large to display: 12.6 KB]