aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2020-05-22 15:55:40 +0000
committerPeter Mikus <pmikus@cisco.com>2020-05-25 08:59:26 +0000
commit2820c4d81262fdbdb79548c21f1c657cc6213ed5 (patch)
tree5859ae982557385eb66cdc0b5fe59e7fd415d18f
parentdd41e6e33cec88898593b5fdc3064113d2cc3a81 (diff)
Infra: Ansible Nomad III
Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: I6c37287e79e48ba40a5dda497cc3614c367230aa
-rw-r--r--docs/lab/testbed_specifications.md24
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.13.yaml38
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.14.yaml38
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml14
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml39
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml39
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml40
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml40
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts6
-rw-r--r--resources/tools/testbed-setup/ansible/vault.yml1077
-rw-r--r--resources/tools/testbed-setup/ansible/vpp_device.yaml2
15 files changed, 894 insertions, 523 deletions
diff --git a/docs/lab/testbed_specifications.md b/docs/lab/testbed_specifications.md
index 975dff12a1..84a0387c45 100644
--- a/docs/lab/testbed_specifications.md
+++ b/docs/lab/testbed_specifications.md
@@ -240,6 +240,8 @@ Name | Comment
10.30.50.30 | s40-nomad
10.30.51.30 | s23-t35-sut2 screen -r /dev/ttyusb1
10.30.51.30 | s24-t35-sut3 screen -r /dev/ttyusb2
+10.30.50.32 | s42-nomad (formerly nomad1)
+10.30.50.33 | s43-nomad (formerly nomad2)
10.30.50.36 | s17-t33-sut1
10.30.50.37 | s18-t33-sut2
10.30.50.41 | s3-t21-sut1
@@ -271,8 +273,8 @@ n/a | s21-t34-sut2
10.30.55.11 | s29-t26-sut1
10.30.55.12 | s30-t35-sut1
10.30.55.13 | s31-t35-sut2
-10.30.55.14 | server-type-c4-1
-10.30.55.15 | server-type-c4-2
+10.30.55.14 | s46-nomad (formerly server-type-c4-1)
+10.30.55.15 | s47-nomad (formerly server-type-c4-2)
10.30.55.17 | s32-t14-sut1
10.30.55.18 | s33-t27-sut1
10.30.55.19 | s34-t27-tg1
@@ -299,8 +301,8 @@ Name | Comment
10.30.51.10 | s23-t35-sut2 (netgate-2)
10.30.51.11 | s24-t35-sut3 (netgate-3)
10.30.51.12 | softiron-1
-10.30.51.13 | nomad1arm
-10.30.51.14 | nomad2arm
+10.30.51.13 | s44-nomad (formerly nomad1arm)
+10.30.51.14 | s45-nomad (formerly nomad2arm)
10.30.51.15 | LF Reserved
10.30.51.16 | t1-tg1
10.30.51.17 | t1-sut1
@@ -314,8 +316,8 @@ Name | Comment
10.30.51.28 | s41-nomad
10.30.51.29 | s39-nomad
10.30.51.30 | s40-nomad
-10.30.51.32 | nomad1
-10.30.51.33 | nomad2
+10.30.51.32 | s42-nomad (formerly nomad1)
+10.30.51.33 | s43-nomad (formerly nomad2)
10.30.51.36 | s17-t33-sut1
10.30.51.37 | s18-t33-sut2
10.30.51.41 | s20-t34-sut1
@@ -344,14 +346,14 @@ Name | Comment
10.30.51.106-10.30.51.180 | FREE
10.30.51.181-10.30.51.254 | FREE
10.30.51.255 | Broadcast
-10.32.8.0 | network
-10.32.8.1 | Router
+10.32.8.0 | network
+10.32.8.1 | Router
10.32.8.10 | s28-t26t35-tg1
10.32.8.11 | s29-t26-sut1
10.32.8.12 | s30-t35-sut1
10.32.8.13 | s31-t35-sut2
-10.32.8.14 | server-type-c4-1
-10.32.8.15 | server-type-c4-2
+10.32.8.14 | s46-nomad (formerly server-type-c4-1)
+10.32.8.15 | s47-nomad (formerly server-type-c4-2)
10.32.8.17 | s32-t14-sut1
10.32.8.18 | s33-t27-sut1
10.32.8.19 | s34-t27-tg1
@@ -359,7 +361,7 @@ Name | Comment
10.32.8.21 | s36-t28-tg1
10.32.8.22 | s37-t29-sut1
10.32.8.23 | s38-t29-tg1
-10.32.8.255 | Broadcast
+10.32.8.255 | Broadcast
## Server Specifications
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.13.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.13.yaml
new file mode 100644
index 0000000000..2b9ea68cc3
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.13.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.13.yaml
+
+hostname: "s44-nomad"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v2_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v2_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v2_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "server"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_retry_servers: [ "10.30.51.32", "10.30.51.33", "10.30.51.14" ]
+nomad_servers: [ "10.30.51.13:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.14.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.14.yaml
new file mode 100644
index 0000000000..105ba4248f
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.14.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.14.yaml
+
+hostname: "s45-nomad"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v2_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v2_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v2_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "server"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_retry_servers: [ "10.30.51.32", "10.30.51.33", "10.30.51.13" ]
+nomad_servers: [ "10.30.51.13:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
index 9aaf2077d2..34e03fec7b 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
@@ -2,7 +2,7 @@
# file: host_vars/10.30.51.28.yaml
hostname: "s41-nomad"
-inventory_cimc_hostname: '10.30.50.28'
+inventory_cimc_hostname: "10.30.50.28"
# User management.
users:
@@ -19,14 +19,14 @@ users:
# Nomad settings.
nomad_certificates:
- - src: "{{ vault_s41_nomad_ca_file }}"
+ - src: "{{ vault_nomad_v2_ca_file }}"
dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_s41_nomad_cert_file }}"
+ - src: "{{ vault_nomad_v2_cert_file }}"
dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_s41_nomad_key_file }}"
+ - src: "{{ vault_nomad_v2_key_file }}"
dest: "{{ nomad_key_file }}"
nomad_datacenter: "yul1"
-nomad_name: "s41-nomad-{{ ansible_architecture }}"
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
index ca2c7ff5a6..53eea0d12d 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
@@ -19,14 +19,14 @@ users:
# Nomad settings.
nomad_certificates:
- - src: "{{ vault_s39_nomad_ca_file }}"
+ - src: "{{ vault_nomad_v1_ca_file }}"
dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_s39_nomad_cert_file }}"
+ - src: "{{ vault_nomad_v1_cert_file }}"
dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_s39_nomad_key_file }}"
+ - src: "{{ vault_nomad_v1_key_file }}"
dest: "{{ nomad_key_file }}"
nomad_datacenter: "yul1"
-nomad_name: "s39-nomad-{{ ansible_architecture }}"
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
nomad_node_class: "builder"
nomad_options:
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
index fe96d08bc0..bae348b9c6 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
@@ -1,8 +1,8 @@
----
+u---
# file: host_vars/10.30.51.30.yaml
hostname: "s40-nomad"
-inventory_cimc_hostname: '10.30.50.30'
+inventory_cimc_hostname: "10.30.50.30"
# User management.
users:
@@ -19,15 +19,15 @@ users:
# Nomad settings.
nomad_certificates:
- - src: "{{ vault_s40_nomad_ca_file }}"
+ - src: "{{ vault_nomad_v2_ca_file }}"
dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_s40_nomad_cert_file }}"
+ - src: "{{ vault_nomad_v2_cert_file }}"
dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_s40_nomad_key_file }}"
+ - src: "{{ vault_nomad_v2_key_file }}"
dest: "{{ nomad_key_file }}"
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "s40-nomad-{{ ansible_architecture }}"
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "both"
nomad_node_class: "builder"
nomad_options:
@@ -38,5 +38,3 @@ nomad_options:
fingerprint.network.disallow_link_local: true
nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-
-
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
new file mode 100644
index 0000000000..fe5c37935e
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
@@ -0,0 +1,39 @@
+---
+# file: host_vars/10.30.51.32.yaml
+
+hostname: "s42-nomad"
+inventory_cimc_hostname: "10.30.50.32"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v2_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v2_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v2_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_retry_servers: [ "10.30.51.33", "10.30.51.30" ]
+nomad_servers: [ "10.30.51.32:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
new file mode 100644
index 0000000000..ef8ced7262
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
@@ -0,0 +1,39 @@
+---
+# file: host_vars/10.30.51.33.yaml
+
+hostname: "s43-nomad"
+inventory_cimc_hostname: "10.30.50.33"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v2_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v2_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v2_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_retry_servers: [ "10.30.51.32", "10.30.51.30" ]
+nomad_servers: [ "10.30.51.33:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
index acad77c7ef..fb20386863 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
@@ -5,5 +5,24 @@ hostname: "s1-t11-sut1"
grub:
nr_hugepages: 65536
-inventory_ipmi_hostname: '10.30.50.47'
+inventory_ipmi_hostname: "10.30.50.47"
cpu_microarchitecture: "skylake"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v1_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v1_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v1_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_name: "s1-t11-sut1-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csit"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
index 86bcda5bc4..b707c2de2c 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
@@ -5,5 +5,24 @@ hostname: "s2-t12-sut1"
grub:
nr_hugepages: 65536
-inventory_ipmi_hostname: '10.30.50.48'
+inventory_ipmi_hostname: "10.30.50.48"
cpu_microarchitecture: "skylake"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v1_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v1_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v1_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_name: "s2-t12-sut1-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csit"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
new file mode 100644
index 0000000000..f1a4b6d6af
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
@@ -0,0 +1,40 @@
+---
+# file: host_vars/10.32.8.14.yaml
+
+hostname: "s46-nomad"
+inventory_ipmi_hostname: "10.30.55.14"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v3_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v3_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v3_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "s5ci"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
+nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
new file mode 100644
index 0000000000..ad993521fa
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
@@ -0,0 +1,40 @@
+---
+# file: host_vars/10.32.8.15.yaml
+
+hostname: "s47-nomad"
+inventory_ipmi_hostname: "10.30.55.15"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+
+# Nomad settings.
+nomad_certificates:
+ - src: "{{ vault_nomad_v3_ca_file }}"
+ dest: "{{ nomad_ca_file }}"
+ - src: "{{ vault_nomad_v3_cert_file }}"
+ dest: "{{ nomad_cert_file }}"
+ - src: "{{ vault_nomad_v3_key_file }}"
+ dest: "{{ nomad_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
+nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
index 52f0076082..ea3a6f58bf 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
@@ -50,3 +50,9 @@ all:
10.30.51.28: #s41-nomad - haswell
10.30.51.29: #s39-nomad - haswell
10.30.51.30: #s40-nomad - haswell
+ 10.30.51.32: #s42-nomad - ivy bridge
+ 10.30.51.33: #s43-nomad - ivy bridge
+ 10.30.51.13: #s44-nomad - arm
+ 10.30.51.14: #s45-nomad - arm
+ 10.32.8.14: #s46-nomad - skylake
+ 10.32.8.15: #s47-nomad - skylake
diff --git a/resources/tools/testbed-setup/ansible/vault.yml b/resources/tools/testbed-setup/ansible/vault.yml
index fd95965595..0d583e42d7 100644
--- a/resources/tools/testbed-setup/ansible/vault.yml
+++ b/resources/tools/testbed-setup/ansible/vault.yml
@@ -1,494 +1,585 @@
$ANSIBLE_VAULT;1.1;AES256
-36353431653863316330346433653430356332333666303435623562313930323864353038333331
-6135373262303030363431383134623539653933353630300a633662323839303764653833333062
-32366331333935323831396331313635663334663532613664633534633864646132313166333863
-6231306130336163660a383562643562343161336336303536633666353536646566306565626464
-65336337643437306664646231383530393836363061653639366665366361383163316235646230
-62316535353331623864386264646533393263326566626530353932323032313438363636393662
-62373937623162663235333430383334353035346333333135313864396263353631353563613238
-33623933366239343739323166323664626333313266633635633434383335303464353832336264
-36376235653465623430323634303135633833316565613161626638616463643462643662313830
-38653933353239393963396666313066396336613265303638633365626461373662623566636361
-37323762323663383561376233386639303639353835336335316539333638623438356364373061
-66303362653439383266373238643762376330396161636231386434653538353564633638313663
-38646539623438643934393562613138656262646539333735653932343530333863316339633465
-33336663633439363839393764306264343064613235333232616161366661646262383934623363
-36333937613034303131666636376137373536626665653737633130623331386265316536386134
-31376531303432643762663262383834343230633865343764636138326664393366396339343439
-31396437323836626138653137353537303836346563393938626265363164373732343635336435
-37666364643536333230663264313161363763353738323530373865396166643235313430346239
-38373637383631353232303561643238646636633032323039316464663864343264353638363464
-36313838383261303434363766333265376461616437356633383262636230333437336532323434
-32656665323430356338323866336332353237613638613330333130326665613135646238336234
-39646339646537646230623738356335343762303562396464383135386237363033626337353266
-36313939656161353737653630343636376137376637653834383537656235313438323636346463
-35383139376461346331373638313437653865613462646339626639633730666532313633326533
-32613965353838303835363463333363333735393765633237623964616365633264653730653563
-63373362336132313063356631646131663638383162646339306633356633396366383233363162
-64306364393833316132343063346531373265353333643263353130386232356364373366363465
-61363031356664343032363538323138663738353935323663323733313062303134363233326535
-31326461646463316561383832653731366165663837353266343935323665353065326137643066
-33636563386531326564333834386531643238303163336365306338333037326333353666643765
-35643365656630333164313936636432656531323564316266613161623739383937303464363239
-62336362643564656161386265303730643235343135323439656466383861646335373532383433
-66653661376631333436643239663730353532373837656630623665363734623132313138373939
-32346332633563636665343364623963623234373062346565333462306334363566666334656235
-30366430663264373330316565393434303966656430373633633336383339326635313539633532
-34663635383632396264333534653866303064303438316464646262333837343462633137363535
-34373465666362323130396633653036393834353232373833396435376535303037393133383563
-37633866353139653733366532666666373962306139366233323735383961306232356233393061
-36343163356339366634366562336236633937653039343062663032636530616666303739336535
-34366537326261623462623064373235656666386635623038616662343061646464333139633134
-36616361313630623438333861653535323464303533653961353631303031386136373965366334
-36646337373663366335636339643732303461343738396162663938343064353832323731643634
-39613862346531616164656332313466383133366162376235306565646238613637653335303463
-34326133353436646239643133316534623962323934363239383533373561343037623864666561
-30303063633431613830623434373135336561666135613032663662363738653464653138363330
-30653464313038363863323432353033633866616164346461653031313336306362393833656261
-34313436326561376330656462616431393637396632393165383630653437623562613863363161
-66303339376631313832353866323232666466633432326166376333313737656636313236336335
-64666139316338303630316635363330363234373663306234326535643838393933356235386330
-33383566393630636139646137386137633062663837656431313237666533336135636466356262
-64646161343162663735636131316635636463363735333661323939353765656134396338353132
-62393462313364386135373833663964623135343739633037336536373439353233316266333365
-63643065373762303965653661376334333135316362376430366166323635663966353630346163
-64633039356564666334383330653661383062346361653066363636383939363466646537623165
-62356436373430653530373630363736343139386434643364656164393938353666376535336336
-61346161333766363936303139393335346361613036393337646464386166396336383938303161
-31353030333466303865613066393237393837636265376333316666346139643565323839323931
-62363032646636653539653561343161336664373137643630303432653335353165313432303362
-39626138376335656630666438356235653135346437666166313964633762626234636632346130
-39363463376432653231613434633961343135313737666330613266346436323636633531373064
-62366665616561303839373837633538376466653133343037386563616530313161333937343066
-64633537393237666338663935366439353538613738316333663862646333666636633236396433
-35366465666261316130316537323034386565643432313264316264333863393163326561393562
-37313437386132623333623066663737623936373534373263326233623132316363383464663939
-62383637303830356234343864303161396135363233373332376238343630303539376131323362
-62633534643037303665643831323431633366373334376236316230653935396532313566323033
-30613061383331356461363933633762363439613138326632353065316465643461623762636439
-32366563643462353535373632353234383634636438653038626337313931633962316663366632
-38323162383234373232353964333730616239626463353233343361616231313138666265363238
-34333036333762633732343338373131313931653531303664323035613762626532313835363839
-34303530663639363965633234663861633139636534313163626165373337656330373666623561
-32653632613032333633336232383634616330656233383330303861373037643938323664613539
-37326132326566613266613838646235353537373438336431646433303262623036306133386533
-65376363653565353034346364633532366237643461653632356334656538666561366435656130
-37623937373863383830623766623462613638386161303338386466396564393039663361393838
-33326336623934643738396330643461386532393638373031646131333036653965303134393165
-31356632633638386233626562333266643035613061303164303236306664356633633630636634
-65353364353765346266623666326461396662316333363866383661333632303333623035373035
-66376237616265313034343337346563333461346338346266393933353034363662303533393134
-30376462396630333563633162363666393964333266366134643039343130633662343331636230
-33306437346637623731636361663931663762363263386230333237376234353837336265343465
-64343862613265653165633338373364353938336665393261316536663033643039376235653734
-64313361316536623762373864656336323730333230313536643930313038306539353063343530
-61333133313536303337643132363862346334323032336565313766623836633464376538656339
-31323365646430363230316139663937623837303031363766626334383766376462393234656535
-63303631373664393830323433326162306264373062366530346266393633646430373439346130
-65306265656238376239663337396533376337376438313736356365626566356566363466383762
-37373731393234393230626364383331323162333464383066623336306130343434383330636339
-65666633346266663962633564363862363737643733646433333239613837633531393564303232
-65316532643963613131366262316561396239323732383436376131363566663466306632306238
-66356566623761623664663066666466313238643031353433633135356238633366663536366563
-38303734383530663636326662626233373132313866613563366639303862313033313732646661
-62306462643065393563663938386537626133356263386365336663396165613664353461313465
-36303132653631646437303437393737383736316462613332656534646664613062623034363035
-64326265656166323966636163626230653738336366303237313139316338343530343461616561
-38623239616562656364633462623836313361383133393236373233356136353830633138656366
-61393238333931346436303735323534356331636366616531646632383237616131343963393430
-30333163353131643166643765656364623637646135323036613130303661326465373864333265
-31333030653437333130383939363532383336396166653136613665663338626136373463336632
-34613530646261616138646134363630303031616337653034613165623535343432393063633562
-62333938373730373762666164333533333964343833313165346162386566353162653530633163
-33356533303964646635646435346534363439373931643933653331393936323331353866363933
-32383139666161626430323132386263333438303731323636313362396133376438313839643763
-61643734333663626535666634366664663135613766616233663334303466336338373735306163
-35346533613332373261393835303935336232383331393937383666353736306365613439343034
-66613237653664303538653031393962346530623333666362643564646432633139346262643434
-66623837383932653262326266623435353939666334376465633938353335383534616363333534
-33643239636339366230343536613962343638613038313238336362346161346238373035396133
-38326332386361636563333234623737386166626466363936366533666361663631313165306639
-38336530363935343237356665623766653166373465356162373334316335623233613864356632
-33383132653066623734393638646163313634613736313364386331616565663037623064306334
-36326464336438623863396565653331323532343037333033386135373735666231326335383363
-63383238373930366436306563636138626262323937613538316639333530376337356565383436
-36653566363838663235663034643637363238393361323235633363393734623135316230633861
-36323337333837616661613139626362663064343530366530353266373865343136613961353361
-64336231623234643533356262343330396330333138316466656130306433323133306139393165
-63663135623531373732336439306363646263326663653431363662646566343135383336653933
-35346332373237373162613335623164333261663165653030383761633439636330613135636162
-36356236353266303435363238333539363735313933353131333638376533623937626334333033
-62373436663736353637363466303131316562653633386463653632356636303731376533373337
-62303763666535663832623837393662653533376234396337613262343762386163636636353231
-33336431656563333164653431326638613438623936646465616632633530643238373833353338
-61363364343962393238633863306363343331336436363835316163323838306433633366343032
-65376131323735343337666533396130343939303364363338343034656663303037353164663166
-38633834643033323635633263636433653265633862383539386637366536343335323136663164
-62326131636334323234643332663731656562363761623739346662383130336332636664353530
-64626430313936383963646531336633613531303032626437323531666363616339396135646664
-35353965616133666233633965316261383263613765626232326565353164326137643066316339
-32343162326536333830333832366631613861356361643434306262383264396563666135393735
-66623038396662646163363030336236626438366363376434653631376238383632326539633838
-33343134613164363238363133653038643133363038623962616634363563316236313961613435
-34363662666366346662366464326438396530313934656238393662376233366233646163323835
-34623762616138633439663038393631643839353563306335643037323937633862346630326563
-66616664636232393238343433333837313261666339366232613062313630326564316130333136
-64383963616637346130363738343564633833613837626431363334656665393038636534346663
-33353863663138336463386330323938356637393537376265616666616433353939306239323464
-31333132663461656561653165376533616131366165613564643263356132643030356134333733
-30366136633766363832393739626634313164303961356234656165623362353164343332663136
-33346535613933663931356134666131393762663932613234313931613239396261363766656466
-31316134356431313732313463666639393136353036376261666437613736383038333836636435
-31326634613063633063343431316265623961326163303437356136306234336533303633653966
-32376239343861663138633030653663316464623238333236336331346364393464323631383466
-39336338643838303564386261633662333833363430363434396532633335303162353837623036
-31316233343564386464336533646234656236626538323231373130656666346666336237656364
-39666234343261653235636534353538396465626264306437636366356666363736383461326166
-30646436613562326561346238643166663462623236356438376663646635326136346165373331
-32613332666638303939313761653336393765343835663162336165666630356665343865623531
-62323334643036383434633261393232316431643265613536636465303538343261363737656466
-66393766623539376163303364383665376365316131373831666239613361623463613636366433
-38383835653533366463666236393164623432323164623736626665376461383534393062386233
-37613261343433633963353733653838363836373261383163313238306565646536383262393132
-66343935323237333733316631633630303061376632353637653133346139643665663032633263
-35353662373066323239336366663164333833376163666265333831383763663033343461306265
-34383130653565313139626263373662633137353839666164613937323730616565336464663233
-38643064343264613938316632316261313237633661356439626338393335383463643739663036
-37316361626536316166643337613030353263643364643731353666346338633938356164363436
-64333133363738363132663234353930323263396437393265633634653436653661636666623361
-36626631383735333164343035633739666439656261393731323730613133343364343065633561
-39633733653562303962613130383765636231396434623835633065626533366130313234393765
-39626634396161333539653237656231396561636663346333636139303836356635663831326666
-34343038383962376230393438663238613430643031346636356136653763666435376634616538
-63386334653934353066626332613330383266653337393163373334343839613335313232386237
-33363665333963613063396232373931613064353339656632336462383334366432333239663032
-38616136323166326632616437326538373534353131383339626332383865313061623563663536
-33326363326138623032343330653439306461313436336131383835306461616234316536646263
-65623138616435383164646231663466313930326237336561623637626663353936386363613530
-65396534623363323235333566333331616133313231666232393938336561646239323438373737
-30653537663430313639333566663032336664613038363564633435633237353330613430366365
-64623064363231386631646463353566646537656439396139393632373939336237653337623461
-34376231643965653134316565626630636437376232366430376437333338393762356464623431
-33383965643537333436643137643339373237356435363066643732663866623239336530383837
-32346234373139636534613835363065303964656432373835356237376266386135353161326338
-33633934303665366565653764386565333966633739303235643339326130663635393135643533
-39313432383963306338353866393932633563613339616166383436613366336236663931323332
-37323831313061353062373963393035396330653165313136613862353364653136633132373035
-37633937633764383734313138643335393561313035376631363961333435636535323161346661
-64653339666364353066636366613333633336616239663838306230623663343737343862373062
-31373765366666363265376465336362643634356539366665343861356464393166396537383338
-36326361386437303231386332326539663030333134346437636630626162633863313461613639
-33643538373933613638383435326634313061653864343031653230626332326361333361646336
-62393839356366323632343065626361373134623133646161326632666435336163393932383939
-35313166333439656164346637376336613362303730366137383933366434646333393237663930
-37643665643364343331626335666233363564363664653966346133616531323938393136656132
-64353539333430636135316137636661356234383032613862623236653232333332336462323966
-64383662343339333834333462613635326331363037333630643232366336356463623734313335
-37653661613264626333393638336666303239653634393564363564643761396534393531323666
-38303630663636383134303534653839313265623635346536396536623266313637386537383135
-39663962393739663938366332653138303830393764633861363166343231336132643830316563
-61396366633937346139343063333661363865343638613734636363633134326537363961646538
-33353335613936626338353836373935656630373064626234633265393661366336323531346431
-33633963663665623539656130346262636464316666323261373163373531636135613936373364
-32323436353839653836343732303463333031313435333939373337393563653532383861366261
-66643934663938386562376534383534636566376163303831666437633733393838396233373166
-31653235343537653039353033346637326638393535306339306564616666613666373437393638
-63623335653137393037643964623837393666373532313666363638313733303837386166313765
-66363262333566333039343238323463313865313665343466626666333535303965353332666134
-37373134313439333231376361363136646138323439626265313463663936323637313663623564
-31393964663134386532316661316539376531336562626566323032343761393031653734346466
-39306334393433313333363434623032646532353166353031376532346233376364353039343339
-62303831356261396661653933643432383165356265336133633161626230653937663262386564
-61353033663837656563666265646237393234376134306461323934386537643761333138376531
-64666163303835376463346336353634663261653365336136323762323836336561663965303662
-36326333653734383961646232616131613434306239343931333334343039623937323334346337
-37323164636536356566643831363130396435613037333765316163633934383639313633363561
-31353162363234373133616133356661633666356530353564346338386464313035623363613838
-39363739656135626163616336303134393965333666373238366432666563306338393635393235
-31636331346433316635636437666533656238313031663730613566356634393431646235343939
-34383031326437663730306333653063333033656665383362346630346466323336353234376363
-63303937613963353562633531363330316662353766353934353230363632323039343166383239
-35373037313463306637343530323436616334653062326363363230333434393966313865623966
-36393332356638663963623130373263333737623734623339643665303232653034323663346438
-33653462373936303335383237323238646331643936353865363937323738376331333139373434
-33313734356539396338623438333136613430656632396333373536353364326631313530366461
-39303266333330626663303733383334386665366138646465633361316566366238323332333439
-66373361376463633538353665633161356634653265316136663736306562643366306663303564
-65363537303636646533333361333061623961633136633966373236326337393131663933383862
-35396230613538666632306434306364643736643265633564353438336465653433333630663631
-30626237653033643333323131316237353135363965353138396432316166326335326164303930
-62616466343665366363363861666539636439306537366231666165396239666539636531626432
-32393037386334666461316333306137363064366164336138633736623637613465376236333037
-37383732396232626430623233663739393738323433616531343765396234386365663837373366
-39353838326232363262396663396162646138306239303930313930386366363134373365313437
-62333431313233366161663731326165653537316331613761343831363231363161616231363530
-64373534363137353135323466663164333833336362643932383463326133656633323838323565
-36376331323537646234396366613264323934353632383936636332343130326335383730656435
-39306432326163613632363037376537353832613635353866376635613432636331336537356265
-63393830613461303239393131353631356139366431376665666238663038323737646164646262
-36366338623264613039326533303530353261363830663261666365646265393036636534636562
-33393939343539333837366464616261383638323139636136356137303338373938633764613463
-33623032643366343266323662666166386430343031373333346331336139386332373134636263
-64326634383130656361303535633332346631643262633961653632663931616165363239383231
-36396239663235643730366134353237323366613664623634386537633162316635323839323639
-33343039636332306630313532373137633664383962313361613763356535386665393637326165
-38376665653632313232656234393234643537326466373137326633646432396636313338303464
-62343965326537396533383935303436663838633863663064356639353830346136343031343831
-39656466643134336438663934636237306563333434323333326438633630353737393336663930
-61393138346438666239353339313462343135613133373466633965663836383765643562323461
-35623331633862623334666631386465366335373135626433623234663961613464346332633861
-37353562343265383438323039313362326234333736386665633265636466656233363763653630
-32636637663730663162613064306565623836376339643535353266363863363862363863623962
-37646536336663323532626634376366383764643330653861363161373538306135373838663764
-62366361616534383731353564306432396534386433653631303837386633626330363261383763
-30326162346137613732303634653533373363633763363762663037623139616535626566393964
-35363638386432393935656263336164386537616462653330343838646461363935353638313534
-36633237623234343638373562613939343736626465653938306364303232656261653234616139
-64663431633837636534353432323338313137353763623533363435343066666339623036323963
-38623739616464333335633362353936653937613735373033643463363532386561366532323338
-66643039623438323265663537353138353765623932343661643439313465313137666461366330
-33333836616235363430303934616232366330343239393538303762636662613234303834613261
-36383766663962356662646234663336373337333832393533373639376633366432303339333435
-33316430663234616334396634396533643739373536666636383365663933363731663634373935
-34343934306331323661386265626264636262326539383633303039386362303663623935646163
-65363537613462633438393864373764333838316430316463373230633866336236366536613130
-63333832326334383935363530353963626538613063663061313235396335353465346364336132
-65343832666237366138316463353232633336623030383061303836643561393038343233383434
-64346661373933623732356531643632616339306533383738666662396261626138643333383532
-66356235306333613765633037363162376564343766616139333534636333386332363261663933
-61613236636263303731386235356233656166396261313232333961663039383037613965343935
-31656332346539343830656634353539653636633333316564663432316339623866613165663762
-36333062633361323061623633366264326661396535636531663964393539613435643365376363
-64373432323630633832376135663066646130326436626162343534323133313066373062633866
-64313237363035623861343762333734313731643931396364643533653339363363326532376564
-34636334396365623732333037636435316339303538363836623861656436663831656266393334
-61383736613263373330396666373732386431396236616334663939343866663133336130386338
-61303634313032653961646437623166373637363562363866646431653539643738386634303131
-34363633333362333033653533663932373064313632613635613263356636383235613539376662
-34636230363738346637656561326465336631336264666338353331646439343330366262313338
-34656466653630323131323337383234343933383139646436386662353239633236623035646164
-61303737376634646435643439346435336561376632333065663863613964633230613834663336
-39393935643639643939636232643934613639656136636566313437333565313163333863666163
-31376339643133643334613238343261373066373566323262336363386231636537346634613362
-36383063323135313766383163393230663639656161376137376539356333643866303630323738
-38316361356666363534363936343163663766396634303663393063303139313661626138653634
-38643562633033343234626435656435646436633831646661343261643232613064633234626537
-66376639393533353064303538353863383638396333623363363535383566616334303034303332
-61366231386332376265373434356363303966313738356562366634323935396263633335313230
-34333361613066623664383534383163626339356539353666363265343065376236643636373263
-63313266316435323839333261366339386663346438656264316566336563623231613339333262
-38633266373831333136393166326332346538353339326661376137343965333338666437306134
-32323263323830626435663731643236366363616661386132353932353063336338353163626239
-33376363363532363631393231326633343666633832623839383934623739613539633332663366
-66396634316439323938666132616663643735346362653963323131343564346635323665653336
-31363235633566646138396431666461333037336437333962643963656461383835636139663662
-65373735656236356331323636306135626164353861396239633061326462393434653132323335
-65313663636130366436303632346235646363646531646239653134383431336562633064313230
-37353364663934363463396433623534366239333335613831633636323733666131613539633138
-36396138356465623230343362393061323362346533663433623636323963666630306131613463
-34643662333736636235633261663438653136336264356631363835366563303065353965346430
-31653566653733353263353430613135643038336133376263333562343861646366636465623935
-61633632623066353333623239366633363161336465343830376536653733616266643665613232
-36636436656366313961653465386365663165343531396536633037633865636133306364663539
-65386533376437656161663532653431666165633863623731643762356236333831343731373036
-35303164323035323439663963396361373063373536613363626334616138396430373964373933
-33636430306163643934666161386330383130633863386461663265653362326664356134623761
-34303864313930333265663031626563626138616334653836623231353835616562313366653462
-33363833663732376636386431303437363530323033346633336234646534663035326363313862
-64363133333834313836376362626632303333366331616262366538636662623633333334643532
-32636339396634643232363566633435323439623264643662303134303238303365353133366130
-34393937306235356637313538633130326434313231393362613965643263353431653830363363
-66666631616637383937376630343331363032623835616434643065356636373434343632343266
-38363763363364383830633538363031343632373136396261356666386635313237353935323539
-34613935633765386266373039366363663161373465396232353938336236393135306336363963
-64613134373834616637303435616139653531643736393937333163613831313864323837333332
-62663938356536656164306438346234636235343262323239636237366461353638663339336562
-36333232376565633436643261373638313034383634376632303832656535326636346531303037
-62656530646566303737373633373631376231316163376266666561303338343037336235643063
-64363462373663626137373531623539646536616133666631313837366364353763343463376637
-36626131383430333635616565613538613334363565613134373234326136633733356561626437
-63376634636339306661663933323637653138323638653731333332663634346633386537376634
-65353237393162643634316465333563653964343261373334643739356461363762656331373663
-35656463393965383964636362383339656261643933656130383262373763366230386466303738
-63663162656262626461663564346132353366303239653661343562333734343364626166336138
-66633631376439643831323566346132623734616134323562323531363138393162393232343661
-63376232323662306665396435386461363433303062313731373130663236353736316165353364
-39333933343465376538323164356339346463323765323064356433396233663031623261343664
-38346538663639313633393465343634333532333938316632663765613335616639653934653733
-37666338623437303266623931383363396330356237313139653230653462353931303636613166
-36343237306136616664303564656135343962633061643635333966616664373964646532313630
-37346166646431383737323165343434316330376431633831626266373163383065373466653039
-39313230616330353865303132373832643534633737363537646432346137653534623030373830
-36306339613534346666653964393861383831333633646161333832326531653731313563303230
-30313736353166303533653262333530646463626333316561346432663432316635613834646133
-39343331376331323461613864326338303165653464373132333237613234663531646565366634
-31623166396161353332636438623939613235353233343961653962373965373437616137643730
-64393139363264643738373036313838626631343763623964616136633437653736626334326336
-38643138383765663039353939303863643661333730323338333164633465393163376563323836
-34316239613765316631633861613665623430303662636330633239653132363964636663323462
-36363434316437643166373839626364376333353936376162363664633563363464363761313164
-61323534643964396463663135366630663866653935656161356165643132303962646564356164
-35626338663862666236326361663431376563613831663530323638313862323737343131626432
-65396533613430373066373537666233633936613632313234663730363535626538383530303733
-34646164386461346637316165613536663932616463363563663163316536383939626139383831
-35373965663733666634303430336239396235316463646133636139646166363234313632623163
-39303763656138643731303261393663333737633761376566373631663266633733663764623731
-65353865643932326433316339383932333964313462643835636531356435343130666566353631
-37353632323534363833626139663662383366383330643866336438333230323866323734666266
-61353831303837666339303362396432616665366461316266633036353961363261643133353065
-66323664373431643938343663666662633837353063356639653737373463386630663562323665
-61626335313231653830633366336264346539303630636334633037666264636164656366383661
-36353631356336643135636233316136333863393539313730623036303038626266313265363636
-63646365353232643965303931343033303236336532633236303834343663663135663339653030
-35633732333230383262663731656239346166316430376536356238383834393930373935373362
-36326530613338373466353331366561343636303038313037326431613262366566383135313832
-32653836633361386265663531656638373337663032323961346334333834393362326337336263
-61613666396565333235646634383330626134356532356133363531663731363331383533343738
-61653065326539393034393035363231626632363330616663383964653066373836363666333430
-61313865353464666435623031333063613465366637303065653762616664626163646436376561
-34623136646437643437323136366364343065316438346261323564356634616431363465623034
-30353238303436653738616232643634316631616466336333396438346133313961306236643139
-37373561363831393664376165636666396435386332303335636262306434353663366465313563
-66316663356264373530313136343531323261396634393438663162373734646466306339653562
-66333564656663333931396434336562663262383737613335366166383938643033366261616262
-33326537326433306161373062343637633331326638306666376336366463613864353565333062
-33633437363163633638373433343737386332386632333066366332623635653066326566313536
-31666236636462633133333335656435393534343335626636383730313462356262393962613630
-32333738366136366461663937366638313330343133366266366134346164353231663239333363
-37353166663932653365633635386263373363666530393439366430623864383630633539353232
-34366564383934323566663166616334616265653534303231613731356466393433643534653465
-63366330636361646263646563363963633362303139306564396666313864653064663764383331
-38653230613236636533636666346132613261623233333034346262613236353831656461346662
-65366636636537393331313531613964393263333566373331653232626530333332303232363761
-33633063613236333936326532316362306562653736303763323934396164363364613739323830
-38626233393563333232323931643564636434653036626266626365353135373439396563613033
-37306439363637336338636137663436653661306533386534323232653935663636326666356231
-38323761333238306565666362616635373339373430626564646264376262333733303861316661
-34366665626565656239643938666535303363373335316234303634323866373064313566396565
-61383366633264383237386236316463653534663834666234623638653233336565613830396263
-31396664646133393131646334393433633936396337333666323965373336323662646630306365
-38666361646333613462333031346434393035656437393932326231313739643337626131353462
-33373135336661343362386563643965616239653434653230323364386334396430323230396465
-36323030616535343833613534633933646135643265343763393039303664393336663665316631
-32626564646337326433616433656433626266323066626634643565396138353339303730303437
-64646331393339653130626132323136383132373763306461616433633735393338646165646261
-33643136656437303665373966356565363464623233353635633333393333623434646665313466
-61383836363439353064376363643464323230363336376438323437306562666336393766393434
-34656333316538313332393761353030376165353332396131666136376636323664313161316335
-30623330313635326437306366353234366231346364313235356161356233636561336564376166
-63613337643366666638383263306261396163386132386664626565323238623539653163373436
-34376562623536656137613466346237613735313239373439636338356637643162663633633832
-61303739626136383033306364653962333738393133656634393862323631646561646562643433
-66613862643137653731366363313439316232383364643038633230346264666432346334316362
-31393361373235636434326633393532646334333433306363303833383434376263636461363439
-34343733386165333365383737376465353631393333646461613030303561376662393833386263
-64346134633564353764306635303439393639313331613132613865613634623135623665343932
-61326433386230393830373838363534623333653535656365643335636239626463366335376439
-64373765626436353838663838663964623737363334323631356132366139646232323465333130
-64316130636663316537373962333539653637363165616237333837316330306534303731616337
-33336565353934363763306437646138656232366662613235353366343031663836613135396333
-37636130343531613536333462616163623435383336306437393139663464616165626464363331
-66386161383736393635396435383237313830373638353762393265376435356631333932303531
-62346234333764643539353465316363326632643034393739383736373532346438333536646534
-31303933313031373030313734333561646139353730303862386363663434646234383739333630
-35396338366536336631643439346264636361643065393730393062666431303534303130343139
-34656138626631396565333137366238396430643839353337313632396136313835306661613339
-62643666666532343031343538373462396537626335663461376265353762363331393636666562
-33366564323963333866343963333038313332396166636636323764623035303133613533393563
-35363930343035663865363130346234383532323930663736333835373135343138343531643636
-37353431333132613362383733363936613838613733326535326231393834353931616265623066
-65626539313831336464366462616263633066353736323531383163336532663536323435343030
-38373635643135333739376564396339316135343265646332653938396339626662653430313337
-37336630393263373232623735623162363661623864386361666237316330633031323836363034
-34376331646436313263626434376431393337353630626564616438623539323164373137623466
-63323265623962653731316663363135336430316562336537653730366665633039633538323933
-35643539663062643134373364653835393031393763303564346234393732313237616137363965
-63663832313438376462626437663138343762323436653732353932383834666134616665383463
-31363330306366663763323166663436643965306635663863333863333531353961623963636332
-34343933356361313166353932316432396665343739393238396663616462363865653034633464
-62633438326563346132376438356265353563303534303538666532313530303362636434643735
-35613136663239646230323435323365646232333862306130353831313766653735386333616566
-32363131323535643637663839343365363231343933613537373430633735663633303331663765
-37313165633163656136353764363336346363663030333061393939616539643233303966366566
-34343466646561323531623564633335663234313662623736633234636337663863303834656436
-32313234623364383932393239393261623961363537333734393434626234653562316130353530
-63303065636536666330313832623732373138353365666364303335396466343637323635316465
-38653962343037616665386334643932613531376461346536346362326633643036366465653036
-65316432373863633233653739653730393862653035376563383835393861326135363936333561
-36643435326465366431316332623534326134613632663536643262376464373339333233666161
-62326339313863633631626463636237663866653464356465336534616164316132386239316664
-31366331613732323132393966666463393132373735633634366666386233306639323933343335
-39353932353237346137633830623734633033626533313630356432663038646138313835626635
-32386562633566343065346439633838383631646132363762336631373934356431623365313337
-36633062653232303632316161393532633938323661653237646335393062666562663338663165
-39623230636264303337303861393863643864383936396161353630326531376237386265313031
-35663563633135393638626134353861346235313139383139616634633965616662646363333861
-38396466343232393639663164633939346630356534353030616233356139623362343563656437
-32356431356637356236376534336231333030626236383530383664613637656665313836653833
-38373461636234623332383864346231343430343961333062323538303461343739393638303534
-66333336326362363564343339343038326633653062626131336537376131643238613831616164
-36393931333166653131653339303139356330336237303630326331316265623737326337333266
-38373837633464313736646633353531613739653439626631616233363663326463323637643533
-66636562633461336630346162383838646332626365343337396463653863326666613338333030
-35376432613832303466376236366364326464376465633166613538303264353533626435343164
-32613539386533366336376363633634636233636332643237336564666161336332333939363939
-63613161373063303362613335393837373461623835396331303035383166366462633364633230
-66306430323033336361396163376262663134383161303062383963613832613631333363333537
-65666335633361343930303136383764353831343935653861626435323333346436653638656337
-35323161393436343964633164383831323333626136353239346664616434316262346133613535
-65373835646634376432363766333336653637313132663866383031356134636164346361336630
-62333130343365376364613739666634376639376362346665393033323061326135396132653333
-31656333616365646333326563626134333035323865633961633331643336376239333633613832
-34656134363035366431396165646663623465613633616234346336663364343566633530303339
-38663563626466656432323036363138656139373231643565333563306138366166656130616261
-37373937623634363861663861306533353265343037343037656339353361343733366131323362
-38353763376163663630363839353730313665633965643061373962363931393735643937303035
-64366531623234356364626466666266616331353839393666363666356333326331636338623430
-64613163613233333534333564376661376538373061633538356638653834336164323764633936
-37656162316163333761643938366263613933356135393364383864396165313934326631393432
-62306434376162396333343337333735396437333333363663363261656365363138623561373365
-38633733313135303035663639366338623831393639323939336363323835353932353837323366
-39353662633166623236663463636634333161323230633862303235623439346130333333333634
-37383262643763643062386336306636623234393837623039383033333638373438656631613037
-65323737616339656133313362386632653861663637373232373432316138646434353934323935
-33356239333833316332343264316664336563393461396664313136383434353361363764343534
-31616334346364616235653266626538336561373736636531386230343765646466643461383838
-32356536663237653564343934396461356238626336373965346437376433376332383332646262
-35643264333938323930383761353533333265623631636438366665643964396563653933636638
-35343736376630386331646237616663313135376134313135663936326463616230636230626336
-34393133643539653536386536633061363366396238346465316363343032656533396664396239
-62633438346366633864396437396663376361623766373333616665633061646664626236663665
-31313665383330366165336563663930376166643638373534663661613934393162356132383262
-31613066363335356561383638343136303965303234666131666136336432643766346337393930
-38373763656338343865653135343364656563383037616565396264323233303134656234366235
-65663164303134653639663062393530333135326561363438316166626238636338396264623538
-34306333326538373539633530363830666139666231386131653339393736306339363166343033
-61373765653762323739653764373062393137313036373634643331626237656162633436343239
-36323161356135323363303766323431633831303537653239636564373033663161303961626463
-62386564383365353563303666326535663965386363343434363863313936663937396130356534
-34633132613437323834393334666563346461613362653964313032313635623330396565333162
-63383531373638653464313035313435333861646635396562343866616266323033306338633361
-30646332363933313534333366313033303561373131323933393639353335343037653633633537
-64633835363931333638393032303566386336343563326230656537613539626330653230393465
-66373730356562316337613630653766353934353030373735383662636536333832626337613563
-63326635633666636563363339303863333837353863333666323266383065656564316462363432
-35653665396239373861323265303364393865353435623235636164636634346234653736346430
-31666661393565616161633933313666353034346235383566353639313733656461623831316465
-65343936306431666463396566653765323464353461343965393363613132383132356161333639
-36363134303765383630626238643439623430333236623665303366396662646535343233306130
-37663263356362636436306262633766636330363435646566353331643935393862343434343738
-38623637316239613030656434303739643262376230373464623561663366326564613931643632
-64326633366665396536616333303832633836303366353039386333636330353165343437386237
-33396333396434613832333265333136343134363261636565643637393962393265306437306236
-61643662643130316137313233366336633232333130346537366431363733633530316139356161
-62393233613034303938303637323036363166666130363665623931643532656231626339626664
-37396666353065333864373531386132323266333762633661343434633734353334666139343463
-30636432646665636130633337336636366234356631666361353163666432356666393263666162
-63303332333232383563636365663961613565323035366239383661336161373239306438613638
-64353461323435336362666331656337636133626630316531373561303863353431343162306537
-30623534363830643563336637373032633764616331303930653562323239336231333762326132
-38353339346564363430643063386132633161303037353331373866313366313665306232323231
-65386163393132626262343335353636663837386132643161656365626161343730623266616639
-31663533343266326437613165343838636535333137346366386138633561633537623066316239
-65613665306434343466393932643237616638356630613864363637646361363266643931663631
-66313463316266363833636136343934616339303634643134316563343666663031
+35366235646131333339643161653631353030396430376631623938643038656362323461393163
+3739343632323734376236396538616434653436303165390a626664636637373439333238373964
+65383037626638343730646337643336636266306538323830363730623438336463353536636132
+6330396333616237330a653461353862323863646266643063646663316661303265383131383630
+39633133346639376331363332623037303131383634343635393463303839313638393566623763
+61376463333837313230633333363066326232326436653038616238653365356133363162623530
+38396463663265376564343935393163366136373665303862316165373532303534303563646333
+63623066386436386364636661393532313061303066643866313761636561303837623065623534
+63636639373764363937653161326662646633643532646536336532376666383934666666396261
+65656233326264653137353661656261353236386531643939633030356236336330343262303565
+61636462393830623730656263636661623936363232616135323534613836303336663336663964
+64323139633266616333346335643334653333626538623030626433333132326532373736366361
+32343266373530666234343361613632656530323364383066653562313363376132326632343031
+66613561333433663062343165343764633939343635343638343834346131313062396665626337
+34623966663832393964396335363137353639613262356663323430616464323435373936396339
+38616233303432643131363466373231363036626432303136613032303962663465656638396335
+61336630346232313733323539643038316161333030626236386230643032646565613030323832
+61393463363739646637623365343063303366373630623133386239636337663537353938666363
+63643765633739393530396266333533306637393265393339336137363035363331663930636532
+37313932343034346539313931633231633861343235656366613566373539363436323335633562
+30366536323838623130306434643439333731663331366137323330366435656533386633633234
+61646331373562366538653863316363633966373832366162633262636130666234386630376538
+35616662323862613938383566373536616134653664653763366161363563396262386264326639
+36303264386239333030616531323965636664336265646432653934643661663663303735326566
+64653638646133666662306234643336643038393766346261653035633630396135373438343265
+39643266373338326564326137376232633063316131383839666662666165303634333262336137
+36363561666230323931343236656261383930326433376562633233626363313662633733626261
+33333038356331386462343164303037346233323065313861623865613030613963663962303064
+62646438346566656334663537663933306238623839353665633835626466396661643338333461
+37356530636463636139663436643961353964313731333334323730663361373530633464323335
+37323465336430393337633532663632353365613264396636623233303935386535643361313162
+61336333626538636466373032636331326435613135373438343838343734663863373766366533
+31663434353764333636363161613732663761373235393334306331333361313763313730306564
+31303135613234373366396466626137396533666365393330636136303361633066333137623336
+38353939643763643163313732613730656635306435633664396536636665316635666166643065
+64626366663539616131303461373139653531666462393862383636656631626666356661396163
+63366232376363326639643936656432313464626539646330383433396161616231316430656365
+30343830333038356134353730383963313934343333316261336263333730656461613763653366
+39363137663264363534336365323666336663323334643163616362303038663637396636373263
+39383165323330323436393439316138393064353931366232643963356134643365346264313831
+66383831653032346538313961353532303435663966646665336232633064353762333133616234
+37393031656462336337353630333135306639393361333566393832303864646664313733353339
+30643966633363653333346465316665663233373165346534623763333931623630613533366238
+64396363613538313362393837316334363731623333313736653465333366623362343838396439
+37333663656563333562613337653363653439376666353338656638613463333336323936393830
+65626237306537666639636533326631633732616164383533383139373534333363623933386366
+64663464643663636433356237656266323534643536613332653834333738373335343431646162
+35616365323366653935666165373565643462326363343931663963363938653063373030306565
+66303665343964393365373361356466326333653534383062613135643632303763326633613763
+64336433356635333133653031316332383830376437376232623762343230356461623566656366
+35616366303036353735663439306461376537653734626130373537616435383132366135396430
+36663234613830633830343762333062666466373564386435613565333630653639343262656534
+36613464353331323731656361373963663832653739343635333637646633313434306130353537
+63333634323039663161373134336165393162633465333137316132646134383439623639323963
+34663033353134313966663265346462366538333966383864663934383565636136363861303235
+31336634646461363939653337616662356437373131333461613730386662393138653239633461
+38333763653065633965313839343662613836393830323538326439393061653534316361636134
+39613735653437613537306364313165636633663963323331383463616263303739336330613265
+39313538386231663731356263343335653461643766663764623036626266383164646165333237
+34303162393639666365326362393532313036636235366165616538623362373638623131393066
+62633931623865343362383464346637323735393363373530323131333730313965363236326364
+63656433663234663066646664363761313734343635613264316266653939303930646135356137
+63626538613239393237643366623732646638643535643161353861653432346535383134633764
+32636562623737313937633338343065333566656638623062636635383966386431353062623632
+36623634643362356435623030373632333736303232626166653833323131383732636631626338
+36373434326433303735316530656166303365343031303563373465623637353165323461646332
+31663832326332313734373333336634323237336437363330356533343361356536343365633762
+66396165343430613765323864663235343437383536613131313664386266613035366337616465
+64666463666564363035613737663933303263373365323464383661616264633662323465613166
+39636132626463303861343764656133353665396534303437613737306665616663323138613037
+38376166623130306632343633363032346364633061363233643863663736343336343539363730
+61646363663839393435383765373632303937396337313637643964663235393165623139623833
+65333165373736323361353339396433656262316137656264366365633762323533313466623866
+36316339333239633566386466636361376533303130663064386166306332333363376531376462
+32656334666432343433653936343466366161653839653962376637396532656331376164613362
+37653361396630653566336231373031336661386364626239376465326461306137656465373666
+39616365386533363464613936613263656431336131626662333563316533633538373339333561
+32346163386665633766656161616634373934333063656163336533386465363937636431653564
+62303064383161313037386130346630666134393834353763306432333934356430613232373835
+38396138626336666438396461356161333132363332343234333036323636373764366238643264
+39343964323736303038613164336564343431663339336533646337373662316264343337363536
+61623365396637623866623465373339316664643263393038333437313862656631653432393462
+37383234363837343931306464326634666433376434323532333136666534333836643338656437
+36383130363033363837366437323565376238626632643038366237656364636431376331623462
+61633039353761346638666466393966643031623061373839373538613832326561303835386239
+65626461343031633237336439623963623034353264633539633231363230636564333634643137
+32373537643035313664333464323039346163376134376433616262643965613537373637323935
+66353031343662626438623930373262356465316630383461656339646638656664383030643532
+66303263356234316334623635383338353031326164633035303162636131336235333831663630
+35613933643538363330633563663338316434326261363734333633303963386564643265343066
+61386266643338303065383130633065303037376362363030376337326238303339653861656233
+33346430353164626463653230613033373631666365396137623065323937616437383235373333
+66653037616134303765653139373465363465346130366536613831613431306131353938306263
+34316661663263353566663861383239396538616439633434323139323136623837663065383834
+61636137393662613035656264386466303331343833353332346430623361366163393636613163
+32366139646263323063323134303365333234363833326339343030656431616462336466313634
+35633264363939353133636164626634366430626131643035303761613630653132323930393139
+33333164333166353736373439626633363361623439323438653936313934663839386639303630
+66653431393331306361373033643535353137626235633861376232316332316430386365346163
+32303830353433323834333037616530343832643136646239373738376235643762366266626362
+30303035643237316430373261313832366366353536363032646330613965363736386130613162
+64386666356339386536313562333762616163653534373431396636373732663331613463306631
+66346439646630333637623531633062626531346533393065636638343337313838313836376131
+37653230313934393236393736653837393465666132633330646432393163353733353536383065
+36396331353933613835316132303032656632633737636464386233376139373263643664613636
+63303433346433333238306333333839306361306236333565393630373866373963326139393762
+63343933383835616333376337366331353534613361306230633564343538333131303366323662
+66313866653463376434623339346466643435313666616666373236633336396434316438613135
+36306335383739663431653235333062616633653635383234393363633937346632636162646233
+33653137336662653762303234303137336130336630663762353938303536383566613639366162
+39653232303135376632316139623664383032643133386534343738373365646165666231646563
+34326132386463626536313238623630646637333362326232633163626237326161643730623165
+37313437633932316137376435363064643834363133326436376139353663313562653935333061
+31336461396530316665353662613939313566326661613432383662656130633866393236303431
+30613866303933646236623834623936333466326437333338653837386435393162663764653732
+37653835366137333464383630313039646335643631393332316536656631613762653932646234
+61653832623737663534653164313764306433643063663564636665343266366439613934613037
+34613032356634646233653437646338373965356561343266653562653533633039326561353862
+62383739366335316536663735393430623738366130353135353038323737636432363935353231
+61623563646637616332626638643761646364366361353363666133333466343535666530643235
+31636237316630316634653432363461616661613935613163313331376463653261313535653730
+64336533633065306231613165396332343664626632653636346533366138343832393435333632
+35323962393163333333633734613364656562393039376131346333623731346636373761623134
+35623565353332383237383264396638306434623261313166363131363834623466663062303834
+64663961333338396438333566373562666534616464623630656133373836393433643165363934
+66653966316439646334616665653362633338313632666534643135393331353238316633613630
+39383961356266363230343634366631623032386237363637653030643738393361633839353163
+62366538653031393136313034333466613930363137663732666534353863643034653531343332
+64616661393030356531626137643538353939626461623633626435656331363963356466356631
+30333335643835343130363762626336646630373238303438326531343539643932326665653862
+34326436623732643735666463623561366333646665323666333663396234346136306635643464
+63343239336433626537353633366362646631323864363236336232303331333462303530363839
+30623038653835666131376639366165653965323435343338663662336237343130666136663066
+31363166373834373132386161306161393766663466383064313633383936653164663937643736
+30663233373139396438363336613361623133373830346333326135303635376362656139633464
+32383239353931663132393537663037616338353533663138373036353638333732356431616432
+35626530303361626432663732333539346461633963333730663038616563356266323061613431
+64383330363866326632316339333034626664356239626537373835633830333562636334336461
+37323830346136346633616433663961643137336439623763633936363430323034616538663134
+31623233346664643439356337326333363230326366636538313535666466306338643166353964
+33626336663035386564663965393065643562373664643661366638626265636236363961613965
+32636366333063613064313433333737373564346636333939393635656134643237623038343932
+65353134333234376634333637333438333737383738383461653436613266636161336231333365
+63653538663566383338656632653261653361633233636666643335616462386339383030366165
+36366338646332326439613834376562643966666434376238396663636630303835303031333438
+61623863643439646365303937356133666461356464323236346436353239633866393032626534
+62303561336536643265313636663639383164366233303966613364356262636266376131323662
+34336234666632363338393866326332306164313032623131623834666137663138353235316137
+38363363646136313335353834656430326531363864353430366433656261393936393364363966
+62666166373266633163636636353632663464616333393630626531306663323134646166656430
+31393436306336653237633538363461373139363131363633626263376161643933373439343333
+35343562616364326162623038616339323266313762326331623036383337326164353261383532
+66643166376330313634393065666638623831393161653561633135626462303566653836303434
+66376235313766616465393866653961393430646634613563303362353632373032656532613333
+34616439363237366332386161326331663237393439336433386466376462393139656634323230
+63323366633136633439636363396234393966333731393661323737616466316535316334613964
+33366433313865666335353663373363646232326333643833383664656333396634316630393539
+38623132613338396566656632623934343965323231363732373563643936636239303634306136
+35323230353837633765323532306239346539613833353936626561653261626462653436666533
+31313065613137613437303564643961646630653038303465316233373831623532613236633763
+38623131316431316563366532326532626538343635623762653536663733363462303162636130
+37363331623764656430633237333661663061343663366364373833313065333137393230363134
+65376234313231333964343365626361346561653233313665633062313837356363636235303762
+64636532383834613064663363323561306339353038323839356133613539666235376635393234
+36383436643533383438373762656338613835343864383431326466666536333137623636633938
+33326565356566396463643238626465376339616262346365646533656630306137663362636234
+33333238666131386531393939363662326138306563613139313964343665373636346461336434
+33393535393336626437613836366664356637623937646337363935666632336131336237316631
+62623365343337663336626631656466303762323162653735313965343936373631373963383538
+34623836383731386164386162303635386630623366316238663034643035623234303238353163
+36393664303431303034353065383163396666333036303437373364393432376330616330306538
+33626530373266613862353538653566316464666337323939393463303463663234653466623036
+31313561366633636532356366376639393138383931323439316139313236326630346565613965
+37633134646661626139666566613261346334656563633735366365313939356164333332356164
+61646637653561613630356438613462643762633732313132323331343931346164633430373335
+31616339353739643636613061383630313532306636356534326138383331326233333631663735
+38303636663439626139346532363536376362316363373963383765316663396134373266613664
+66303737323763653765353630616166656130383739383034663438346663373934613331313832
+37373535376665616237313765363866356439383465656537383761663465653266353264316231
+33623564383138356264396134386264366430363539396431666633613733303031336134313734
+63393633326534636631306535383236313135363962303665646536376364316464626139386462
+32643831323238363966646531613636616339316331666434383838396565626136376364363133
+39393661336539656364653361386366326164663330633130303635363664363038643831643339
+63316131373935343530333961363165393936653735346662363531666533343963383839656631
+31313463353731306563313562623364623363346266396234326264663630653361313666303337
+32366463313466646439613562333066383834666336383763396531633139393132616130336631
+61386532653738653631656435346235303962626162393164633935613532333830363866633563
+37396639393535343934663536346266353233316261366633626437636130626234363163383137
+32323832306266376464303931653731653965303962303533303736346263333732316337306333
+32303132353061396333313433656632373239356532396435333338653261653166316266613538
+31626334333138356338623038346333333564333732646664626232623134376132366634363032
+35363737303339303862336536653463633234656138643865663262386462363636363530376532
+38373363363331353437656666396139343732613730626661633736303264376639663964633036
+37366630343266323037363035353763633161376634636333303565636564646163646430633939
+39353563343464613964313630353434616336373531396438333831623432316430346132333139
+35643932343938663464316365616338343933363362393637376263313366303465626338653234
+34336465376338313039333733356264643761653535363165616261333262613132303534353736
+61313130363634356239653162613566366632373931363537376137393834396331383636343061
+62666136326465643330323631343732386434656362386630366462643433393334616636393538
+38363939336336643465323732316365616662336532356230323932663733343937353631633736
+33616534653235333639656264643266303130386330643332623739653531636332383339623065
+33623064643939383632346163323734343366663139326665336462303162653662336535653264
+36613865306635613530333966663462303736366432386634323136643631616132343233633834
+32656436376165356665386663333161303232326239643666313637373531626163636631386134
+61313134643735613336343736396532663561383561613566346432323332316232393139623434
+64393730616466323336303637353236393363326530623230663764653364373564323338303766
+30376130613766643530633266316238306433366239306164323266363430303834666564323463
+34626364633938396534633737396530613430366166383138303237616531666361363835313230
+33306138323534346265626665313962343766333138366338376637313034363061643133623431
+35626166363439363735653038616362393464656563343034333266363030643432386337633136
+62393934383835643534343932333962323062376561376630343762616461363134386365623331
+30393462313636653161656261303638373163373761636534323536346534383863383063383963
+61633333323565313366623832343764613930346134323263326163363531373631316136633838
+39373633333039313265653065343733383938663262363735333730623531633838643937363135
+62626234373066383831396637326134396562343933353666663531623762653333336231303265
+36643165343839623339643663366666613866346162363835336334386139383632396134366366
+64663566336532653438316133356466343061633239656666306366313232313936306433623461
+65623131376164353635353738623536656335393531326161333937613362353232373135306430
+31623435343330396639393834643535616632353634653236313030653539333035313266303466
+65303761376534343165313137396264326662313433396436633035366564373632373866653263
+66386134316336396135373030343031343135346133313735613939653865366533663666633531
+61623763396530386662393636376462366164666637303334653738383463646563623937633463
+30663363316563623434656665656334663832316238326233633461333161323630346138313065
+35376439383939326365363434373438353136303131323364356162393236653164613661663536
+61326164633661383762323962393164396331356634396639393736393166373432363336626630
+31346433353862313265643135373437636537643337383435343231373532363465373964333331
+33393135646465323763346130623737616631313131643666636465636430393664373363636162
+37653965313839303063656661666532326630393132356635626666376638376331326161393835
+33383731656537336438643463313337316334663834393266643065633335613565346239626337
+31663635666438656431613565363063353964376565623336316162653131633631653739343836
+39336531626434613130353564643061343333333861346131316463333531373234303736326532
+62353735393631393434343763373062343536636665663133333336326131373531306237616466
+63393361643865383965353663623863306131393464636533396263316135323433373362356532
+61333365313538313333343862336236313035306133313565663434326662666163386461656636
+63623936626464646135393430373236313865313761346539393931663262386433633431336334
+38623961613764633134323930303639626237323962376331303662613832333738303831643163
+61333534323663363032373738333135643338303761313966616333353232656535636138396665
+30323335333565303561373939306238306439373538303463343534616164353566393336623935
+32666463653739313165353439613930313566376532323563313835626237316332393134656638
+37623864326638306334386534623035633937356439306634653237393839333065623866653365
+35653964623636626665376237323338353961363535373363323239356237393835656538363436
+62366438653536633562353863613434363830636339323630333938353234613461396638306231
+31326133373235353563353863396266623432353536313831633261333265373935303531653632
+35316432666237656563626138376365383036633736336339356665653864636133336432343737
+37666130396439643834653838353264616162383837363039633433353732393534333163336562
+38353062346430633632356330633035613038313262353761613562623963303236663365363164
+64623637343838643565383938653536656235666162613439663061323134353539383337643239
+66396131343530366131373432656138396132336133666438343633373939343563356136633636
+64306266363531373535313962316635653261366634383735343438353337653232666466633237
+31643935646434356335303833343835646161373138316133633938643564616634396332363535
+30326231316264666264333436623366643337653833393735303166643730663833343366653634
+36343430313239353738316330303065626135356437643463663736363732663634383235623265
+33633865346561623738303066363438343934333337343538326162303264646238626331386165
+38366330393466646632326262343137383662623936653365636334363634323330643536353930
+38646363633666376566623562356161376236396336346566303463643965323935623363383034
+38323335343737303637303233633431613764363538666665313933623231383463636136356439
+63643361366536323637316461383365376232323634326135353936373962353732656334626163
+64346361666666336436636263336133313266353466346535306234353261633332353731646337
+37623063666339383662613663396630643330393234336664306330363033346363303230633635
+38643862616135623165616530313539373131616230626661306139356134303731653934313166
+32326366393066613062316663666537326238626139376166616363616236613564626534393633
+63303264326331393637323936623734353064393437353130626531356464363262666663623138
+66363736646364343938343666303338653930376266333832396438383236313130613765636530
+34663234303339386532633562623838393635373965366263653464353835313436666638323439
+63363630366661303163393830663134643563346633396266653239623337353836336436323462
+30363130386435323264666335313937653230643336613665623963646236356130613539373738
+30336234356564383662326636333034326334393061346133656161383364336365643262663565
+32333561323135663364643836646135356637333639376463336232643936396330383764326535
+39646233643832343561383339306437336566613838333235643935323635383865646236393962
+38616633376263303534363838663435346131306635363962633539313334333561333765613035
+33373536393533666237333237303636643261313762343031646465653361636461623030653034
+35346662343366353664393437393536323263386534323562323361373037653063386661643137
+37376335373730356131663263653265376262373233363635326636653931333332643761356363
+38393731663338396435626137323031316335326332663265653566636664333933656134663836
+31623661616331613135653932646666306165653061643061363237613263323232393837326334
+38646338616166326435323631323733343861373533656635666535666635343137316238303334
+33373439653231666562343135623862393066316331616563643566663061313162323364613562
+33393337653637306264343833653462356237623137303034303438613265313139663433303837
+34666261616532393430623261316537393633623430626130363938376561373933653333373461
+34656138353231396261346234323834323833323866376138396131636532616534623161336362
+30363866396465646266666366333866613431346335663333393434363662643662383566363239
+61313738393539366630666265626531393537383032663339353266303632656438383565656336
+64616366636537326461393632623562653430353362626466376233343263616333306531666163
+37343134336633393638653465613130326431643563313538666131346265313035313036343031
+65666634356363636566613265316164623862303038373536646136643065643432366665626438
+66373434316165636362306261313430376635363134373430333665386635383439363763383762
+34663261323761666637373665306337323639386634393439386131313565326535393234373339
+65636633663362353436306234303938633131373633343264323338626362663331633935643061
+39653661306465346661313164353335326336306534383631343761376438306332613065313538
+36343934353230313564613938383731663261623661643764636231316339373330633533323166
+38646262363863306566323162306536633362313131356132636639303032343464313764343335
+64323363336638383630613331393365353766616630303163636531623639663331393034373664
+39303336333031643332363430383937363432306561396661306232373262343533666435646264
+63613561346465346266356462396565626666353436346363643266656166313862393766373538
+33303964623130666638373937386238396235303332616266336163623538666438313638363136
+31396436636233663961363935313063613463363564323833303235363436323236396561316266
+37646563336464356231633633623564643339613135616561376665393865316664323636633633
+38306434393162616363656337363533373961626231323564366264383138613965383936616665
+31303939333166393331663362356631646234643732383633643061613161383830666432646337
+31363862396465333363663238383165643431356362396561303832376132343838656436663364
+37393731373732616431363839656361623037326436643539306136646261636435363433326538
+33376161306135353032623865383965666535653832373065643638633338393130353361333635
+65323730353962326161353864383763316466666332613736363935633239393164646432643763
+61653134356236363532383061323134643730333263316430613530616433336138353334303336
+30376233313832666461336439643538303132623337636437653036613763323533616230356631
+33313862363630353939303638646431656639393134656464666439323632323937326165366435
+39346561656335353534306434633639366336356635373830316266306164663235383164313835
+66343831303932353962396364616462353030303536396538396639393931363030363065636531
+61306533396264313338303439356164386638653836646633373939653734626266303838326239
+63346539643832373663643464313064623938326132633464623363653138636361653831326339
+39656234303433393939313831663832653564633564633332393265653561383936386133323461
+63363235653835316537396135666136633132373838636438313062353030613164636466363734
+64663530616634633938346534306435663931333061313831313565653137623830663435366532
+31303361626362646431636633313733363661623135306331313138323939636138613733323039
+66613938303963393666323164313632396635643364363639623339353233373536326431303931
+34333035333838336564373833636238623633316631306466366666643265643364626363333662
+31666463633134373534613961656565646465323164343330323438343936636463323561646435
+36316364363662393864373334383039643762366133363562323534643733333263333232393431
+33663732363539313235303364323936663733316234613334363263363434333135623862333737
+33383065343533383335303063303966326431333464303837363464323532623331316339393734
+32656536373332636534636235623039373162613131303333663164373366373735646531393434
+34623765376639343336653530356134633463313535303232653130326631376430323932636266
+66373635353062333736316561613762386138643364363465323130333266316562323732363330
+39356136613937333938656565613765303430613039313835623130333232366465323261626132
+61333138366630623262326337373666326664356535333133373931613730366665396235346538
+30313564376132653339373663333533373838633835666330353335643636316634653438393663
+64653864333938313237646465636233373266316563393861633036646562303030326139613731
+64366439343633333364343362343932343039626563326633303630316633383164623634333338
+36313637393430363937656536663562343562336231636366663135626261306236363834626162
+33356432366365613161636364383237363338393637646430373662356436363739356666343236
+39346235636538353536333364343930616637386231373762353661363830316239623833663734
+36613666393837663033646432363632356534383435333665643666626334346334306236373061
+32396630343933303361623530353361346538346639306465616533623039363634396161376430
+33616633613437353763343433633366633331343839333433666532646630383564613861363435
+62393738393532666633333565353834616463313632343161393239633631636264376334353239
+62366639313132636265613434633339653537343635623037383034393037363931326139376263
+30346665323335613363346262633833393265396462326439356631323936303339633664363564
+38393530386530666630663238366437333463623062336162313833616438383831353366353534
+35393364616438643566393731646261383335636436346438633630306266646464313464393138
+32613137653139376139323263396336353261663636363235353762333536343436306133373864
+66346231636537313763303435343032306535616139356362333536636339303965363663373137
+38303832643264336536396232336562366261643864643462343662336164336439623431313763
+62663039643636366361656239306563306562386637623666373838363365653137323965616434
+33363934333161313036396132386130663866316635623931393366653834613535373835636330
+62636464666561373337316536653539306564363435323038366135626231623634353133663663
+66373562386265306166663539323962393231393830663234663634656635316135396134623461
+33616136353666393938633363313562306261366465626666643936666331393161633631313964
+38363165363465356634303630373435626364306361653638643038363066663935363365326662
+64633661376338306463626130663165636463393035663362636531316665646234653430386435
+35353535343136376635353465363665666363353361333032663462316133633262633264613666
+36323231613532613864626237363033623862326163646462383666386230386464313737636331
+32386564393636613639663165663261323261376364363230323934373463336133376431393039
+31383532616531383637306433303131363431626566343066386538643339313030653839383532
+62643163626637623839373134373566666135633361663932643536663130623363623737303137
+33623532313430663634386264343336363534616536613832313263663037626132343530653732
+66623132636437303266313539653238346238633834363232323937623538653934373830663564
+35323732353734656433353433663164343662623936616637363262653431383938666639636433
+38626366643131393164346261666166643563383839653465396161656333353032353634633963
+30636434386661333639316131643861656264356663353063623163643462373630343535373535
+65623238633863373136386131663861316663376665653466626434636466303930666438383232
+38303234346331363163383637393763643534623932373931326632663661376333636365663662
+34663030623362383163613839343634663762313466383533306239336464626563353731353234
+31633934636335303962343461633565326139613139346463643865613766616435313866323335
+37613530306332633661623231666437383433366333336165633633326165393463313764356365
+61343137326562333039316338353033336331663636366339366236356434393865353838323934
+31666562373238666635656632383738386164393661383133636331333130623734326132626236
+35613731643466366464316531346663323662643961316438666563393036666332366230353466
+32643739643136313139383662353066326335613930386632306337353534613564613836343061
+35613862313730333637386262623530383465323138363032626639666639623932643934363532
+32356661656634316534383863313739613862363737356333386265653730346631313538356461
+66343337313736383733383964393066666539383031353531336234653131613763666138633961
+33383139646639373836336137626662346336383536396237393366303630626337323965373039
+35343466373931626330303031623333316462396534383364663461653136383162346366626265
+31653432393063383734393835643335393263393234393462623561663461363732626331633463
+38303536313738393430633839373765376261643266633865336662303339396163636532636137
+35376236396361376262303834326331336439353865323834366166616334663266306635376563
+37323236643732333434613436656633666462333631616330356234653236383362636461373437
+33393963656433316161333939663933636231353138663464306463323135333834326534393839
+38633332386237373765616534633239303461633833666464623465363835343130343164633938
+61343263333033633166343764316132303834333064373437313762306263363438323061613738
+31646463306136396436306238393831396362396131353264366162326432313633306362373164
+38306464663066386539316436666564356562363238616332306562323965366364633834316333
+65303264643937643432303638313931623631396536663161313332656563653465306365623731
+39306263333265633639343931366231306565316135363162323464336532653631363739663664
+39373261383337613631353436373838396637663635336661306630633530363337336336623037
+30323664303430313832336261396639323866303539616539336530663732333864656235626133
+64636261373036626664306365373663323134343665306233303835313766326366363631316535
+35616235353663646364613165356534396535333063396537643338333063623834623663626639
+38366633396531323931623366666463633531306435396233613033323065613235316235646166
+31366638623039366466363863386665613061663533613138373364363931663764653561363833
+30656234653633663835646136333733333562643263386563663634663862313939383139356163
+36646165393931336230393566656237303363353566356137373436313336316532656332656364
+30386339363066386564343737373834316235313961343962353634393766633031636264363732
+65623833363465636466313564373164353231306139663262326331663030373735643130333235
+65333337653233326166353863346236633062636134303562393939623462316631623536646436
+61373862336334373239616631656434643737346561353463376335663232326134303066656364
+61353666333164613466366466393966323666386234373430363266623134333034353933313633
+63313866393633336661303334653237396632343836623538306665636235316565363739396138
+63653265353765626563306266656263336432383465383232343039303234623331623962356463
+65623336333831323936333262623938636562616634373738373837306264323362396564376333
+32353535396266373939343863636131633134326135333132323066383965313134663031326638
+36356135663363333932376330363465323134636532373061346536353335313662336231633235
+30346261633132343733363631633065333839316238386539356565376335343531623033303961
+32333665633465373637393436666331353166666438366262623339663139333064343233353964
+61313433323532666537333237306237383539316631326364333635663033313061323561343362
+31383436366165613266376335313364373538613631306335646637393030366239623938316164
+61633938653837383837376634633532323130653963633366363035343532356537323230393331
+37396232396363626639353735643735346230633733633162333164663634613665303938383237
+62623432306237343833316636353137646236333131306563653639353633353830663434313035
+63646131363334643461373565333837346533643665626264373935633830663034333061383835
+31383736393234383534326237373538333738623265386333623936343034616139306534303531
+35346135373863653064343331613966333732366361643030636231306462633764333330623135
+37636634356337303463313062393061363836306638663063643465376262393930663034343339
+63383239616537323938386636663536653038323662313831626132343436313331653032613734
+62643364393366356137636261366238343566613139343639393038306530346133386266313833
+61353137636538663939663666666437336437333466663333653633626463666632356361313861
+32306439633934386331666139663062396531316530323332656663383434643131626138346662
+65303133323733653264623838636231633666633236646333303437613361373136613435643930
+32626135386466316537666536303234613364393965383539653561356335653462633162326134
+63613064363834373162346135613464356538613634323937383236336365363165336466393362
+33636466336464623262376166626438353361656465333335306264623961313231613562356264
+30356536306365373061306265653364323934656662313563333035663865376334313333653238
+65353634343565336535663332333632663036353633613331366337333665333434656235653261
+30396330356466386334343931363763313364646135306162633131333230313238646264613865
+65386666333035343336653461376335333033383935633037663462363837323964626361623031
+32326564643533303330336338316235363964316237313631393736333539376635386533333266
+39316637663536333162303332346438643864303232306132643234633931376336353937353032
+31323064383761643561343637646137346561623831383733626232303262383931323137303364
+34656462393337376438326666303837376330373065653261383433393464383030333537313136
+65323765346238363863623239396163656564653062333861633836656363306263303763663938
+36396661643239613834363233323530646338656136306461316633373164646261623332343437
+38663632323234393237306363393131303833663935376334336435633538376461386233353362
+37633536366161306130623863626465316530663964323734323464626335303331633937313537
+39343463636135666563353463323038383762333636376339363537353636316136373138633961
+61336666653964323033643239363761346530356461646263333739323831323364373835376230
+66336561643834313334633761613138376335373236626435366266373363353030663863616333
+61366132336637646161366438313764356131333733363031653238313666663431376437653333
+63333635363534376433356166306232323261316133633861336631643566303465346366393062
+66633734656261356363613238633134623163643864623633663230376336346262663961383931
+37666230306263393439623133656339633532633763363131626361626166653930306235336334
+31333135326631373462343032393765363336303035663638396132613732363934303731313731
+65346136633439656236616463633930633931373064623836353861336330393737333465393033
+62313437616564343365303134346466663032316635646433366435316264613632343765663234
+66613064613131393861373632353235613364306632373838643234313961633664383232613931
+37653561313465346335663362393634613531353933613365666166646236353462373062356263
+35306338363962303764303834656631613363653564613037626262666165636661376539386134
+30366433663761396562383931623839316461386466333139633031343765316539353138323865
+32356662323136656362323231643632333336346339393137316236623235363737333435326664
+33626466346230353261653937373663393135666638346264646334356366656164313763383532
+34363139306165316632613861363962613135666264363138303336326135393561316165323338
+36393766643161303730333431643466663330636661633237306662643534656338653465346664
+36333632633936366532363264343330373964326231313131376462623961393837346432623034
+36353863623534666661363964343761396231613161353633646431653530353832663334316566
+62303639393166663833653465613566623263633562656330613838376436376632373339386461
+37303639646661616534386537666330346661346461373631336335333664383965643762366338
+38636139373939663738643336353866633433323031306139376635373238303232343362386438
+66663136383161346635626261333862333637373763386462336131306165303766316438316532
+36643363373866313237376631386561633436366332313162306338366430643839666636663265
+64393262643530336230353836346131633239366236623666343162383731616663633237306336
+34343430623931393535333939653765656266323464323266646361633036656633343638623530
+61616136656162616265613331393830336638316237316264383034363462666161373465396565
+33353363626232643264643333316135386234303536386530336235393462363564633062656632
+62663166383931366531333934613964353430316232613966316134333263636333656364363062
+36633030383836663133386630306337313236303033373366633432373739643635633538646265
+61633761353064626637323662326162663662333936323330666536333936613631666562363935
+34666330313630396632666539613938373361376634313533396439396132363036656564316361
+63633863656232393730613162376237363435343837386336313462643934633833653137323461
+63346431313134623061323661373931386335393764383866383531303934633234363961633261
+65656535623935633466376335363966643830343365346632353538333837333030313338653464
+33663439666165366366643236323766356365336534336563376462663930646530623238323336
+31613934626334333266663965336164333035326639346136386538303631646230623862303466
+30633933653937326566653533366334613162653234653862643038326237306564366339376636
+31393634383230333938376662373630656330326332333838333062343330303135363734663338
+63363933323039333538623666383236386634643930646331626631393038613333616535303462
+61303236626531393764333734363038393332386532393033656161636563393039323163373737
+32313261663130373866633733313034373963313831353766343834383563303238336565303037
+33626134326330373063646334346537383430393135323466376164363737306161373331616336
+62646566626630623339333762613435626435643338626239303337336234333632623639313330
+32333135626464666133383733393336613066383235303337346431343462393230623062313132
+36653937373135643036653335303965323930316636373632623737363161643533373837623535
+37653931333238636236663935643938373032656264323136656263303364356537636135303466
+38333330366261663038346366366665383961666164363435643632663434313838626634646239
+33363965386565653266383939353330383438616562643331626334353530616231323566663139
+66323665386232323063306666303737646461383736396162363230636434346361383564363435
+39333538343736343262336238333435663665626235663664616438393139353463393632616362
+30373465316464643131316330623465666334383130386462633537663330626163353065396464
+39376265376634376263313462333266643961643761373565663337363732343832633234613833
+61636162643938333539306439613361376535616636643764653533393635366561646238326539
+63333564646461653534393465313135396239343861356435396436373032353036326461666134
+31646638643937633864346361313837323034343163373765336132663162323537303732323838
+31633630616437343237393031346665386561353834373566343164663930666364666339636233
+65313062353162383165343261346231386233633261323535633163333836353665316230323965
+63366361356462376166373236303635663765393664643030626464353834633536613735366463
+64653738613563393562636663396637396666343764613765366436316630303932663132636634
+32623566393361336431353233643563383564316433353432313633336562393635373530366462
+38623534386238386534343336363966363436343234326463656466386230643761633538316538
+66666237663763613933333563653563386237656335393232376235613139396366616237376332
+35383734363063376632636465386366343530646161663362356331373439366134633839323130
+37333261323136666632636537366634346561666437356563383834623064356531636665373764
+36633637393434346136336434356265613434656230616437306361303032633932383266653237
+61393239376666653939303638643136396536393332653839386231373636356561643536643234
+63393839373334303536383161303662343866326439633032333634353331633466653831396561
+65306366653164313333623433366236653437613334306364633139326362336461343037343366
+33346561656132396366363836633934666661343435643561306235366661356638643133643631
+65666462396532373165663434623939306136643938633834373133396630353933396365326637
+65613562643233353434653964616262383561613964626433393863386663623838646632656166
+34653038313261366236326137396537313534663738333966613737346466666231323737396164
+34316664613238386665386538353761653862613739626237643337323333303838363236613532
+35343238393731393538316635613130633839623863663237633064333530656361626465366233
+63326365663638633436613264643330613566646139353965623638373563656466346632333464
+61643862663030613463343431333234363164353030303233336263643139323937373832353539
+66393232386437633837376137323433333836323833636462376536306536343730366661633836
+36366531346235366636346436643061313263643833383765306633396564656334363835613062
+35623034333665313537373833646232616636613239653136366232313036323634383961306235
+36323736663434366462353034633964396261653130303861633362353865663731313430313330
+30343834633363383932343466343838623837613136396366613938653263373331653530336162
+30326234343937373464653039303536313363633434303639373763663337643935646162393066
+61626433303564646136343864356263616563323730366361383136646636663339366436343461
+63623336616136643433353964313735323131656535353236613165356166646231623135323530
+39636539346566396262376637303263373737646266666132363632616563393137383137326536
+33646264663633393665333838646634303630313466633231363831366362356534626634633162
+32323930343333373038643336336563626333386635636664306438643034303361323265613330
+38643632383433383635333264656661353461363230373238313164613735333962326638313334
+63313432656531653366373534616261366366316535636437343537343764393236393439333434
+38633637316364616664336463393231636134653634396361326464643438373539323538353661
+32656331346138356537313237303064383537656464336536343831306165353634323962653563
+65643736323531373436626638313938393934366633333062626439303437383364323166366136
+31313365653039386563656439306133313330313736663836666131653731326638616232613237
+63396166363434343565386366623733353031376461343263663666636632616437316362303235
+66333037663538393139393161306565633266616532643538633838616334333365343437643465
+33363434316632356631353265363236396234383366383636393661343864356166363636303965
+61306135653564323465363863666161313638633530396339653362346634666630326239373433
+38363137313465306162326330333336366562663730623163656338333538333439613136623232
+61373165373565653637356562336535663932356537616166633062336663373063613037626630
+31623638313661383362323233383364346236623230343261336132656639386337663739623736
+39313665636365343934323538663064626266356631376239613234633732396132376233376338
+62646563633363363165353937316632353038623030313737616130326137633538366633626530
+38313139616132306263313761343334376134333036353235323930353937643865636136346438
+39393836396637653934626362616566316231623537303431303364323034353436333834613666
+37613137623630663261313762643431386538373233643961326663666437636336326566306137
+65376131386436313565343439646234666665336166393963356166306638373631366466666166
+39323333326139383533626231633038323235636364376661336533623537366537333336376266
+65376634393137343037323533653866636235303837653635306430393338626631353665366633
+30343762313439386666656338386233376235333837376562363063366533633735326163323732
+32313331383963323363333362326235623839333263626462313731666134316534323665313034
+33383664373963353661656361366465336530303762646331656266663961366338396361626533
+32383265316137353237306433323631396437616634613331646265633236373261663038626338
+36336362663961353665363462653534383136353232643632656437323065663238383338363766
+32633331626337366566633534356366373638666563323864636164353061333538613963376234
+31653931353663363066333364306366326662303538626231336161393537326133353963393132
+63333230363238613437386131313636326238383137323034633465376462333364343962633266
+33333965386535313266343964643036623463643161313061353261353366316630323863383130
+30366630326136363536626635353166613034363038323532326263363833333362303831663661
+33356463666236663636313037646333353862343833333436646136363232396634643665366439
+61346639336635623465323361616233616161386664366365633862393264313964653536386631
+37303833313930386464396333386432313964613435333933623832313131633339356561663163
+32316462376430666338333661353935646662663662346362663636653236393161383662656363
+37356236623261346433633734646539336162333263666333626562616637636263646233653339
+32343334343166373130303961306233613932313165383438643634613733316534393966663761
+32336235313731393630366133346464666238323538353265663435356264393231633632636263
+36646563353364303662383866323431633132643934633437383162336539366538636363656165
+62393837633839353939373965353665393765643262306130336665333738393137353338353963
+66363133306136636333353665373439633663333436666431643636643066343035616562643638
+66623735343732626431303835313162653765663836383130353663646533356238353065373861
+64653264666564313263386234306634316339643133303361316165636661633439313731316564
+32613464663735306566383233623061633862323838383561356339653861376232666462356430
+39316464376231623838353066333666393238633135396339653233326132363163383635353536
+35366663623237653666396638656566353136326237646638656661346262623461373466643963
+33363539316337363239343664376233313136616564633731383863326262646264343837363562
+39393463353135366335306536643136363136343365316633646338623761313639623033653038
+65373632633731313539346339663465366531333266633461623235663631643264356265623866
+38666564393635313935636266613333613566393565653939353766363030363131623636316331
+39353162633837636561393530666336383531326538386239393261646261363934366335646335
+36386335623530313363373165356164636430643866313763636262613033623562353231333539
+63323138623432383235393637623633663331633739373633336335303438363537653736646239
+33313531336139666562366635383962373334333939383766363932616261353733616461663239
+66313739373334326337396363363339613536643464663962646637396439663534376436336161
+33626237366661653861643030376665393861643131333165353837396665353766323137373232
+37663363373639656562353761663161626164646366336162353630333134626631356530666465
+39336339663431313562333537323131336566366461333933613165376232386266653939626239
+66363761343864386165346531383162386434366636623363623331633131376339336462633535
+32373362323438633736623066636238343432303733633964353261663265323131636139333662
+61663461386136333734363130373637373636663763346165313137613232336665616633616262
+64376465643163323763
diff --git a/resources/tools/testbed-setup/ansible/vpp_device.yaml b/resources/tools/testbed-setup/ansible/vpp_device.yaml
index 651ba4573a..8a99166f04 100644
--- a/resources/tools/testbed-setup/ansible/vpp_device.yaml
+++ b/resources/tools/testbed-setup/ansible/vpp_device.yaml
@@ -16,5 +16,7 @@
tags: vpp_device
- role: kernel_vm
tags: kernel_vm
+ - role: nomad
+ tags: nomad
- role: cleanup
tags: cleanup