3.6 -> 4.0 upgrade fails on schema refresh

Hi, I'm upgrading to oVirt 4.0 from 3.6.7 and I didn't found any usable solution for this error and rollback: [ ERROR ] schema.sh: FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql [ ERROR ] Failed to execute stage 'Misc configuration': Engine schema refresh failed I see one bugreport but it doesn't clear it out for me, is this a known thing ? Thanks, Matt

I just found out that the file 04_00_0140_convert_memory_snapshots_to_disks.sql is not located in: /usr/share/ovirt-engine/dbscripts/upgrade/

OK some update on this. Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup. I still have that error and this is the loggingpart: CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed Any idea ? 2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/

Hi, We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth. Hope this helps. Regards. El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

Hi, This is a bit aggressive solution to remove all snapshots with the memory. Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue. Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static); Regards, Arik ----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

Hi Arik, El 2016-07-06 10:27, Arik Hadas escribió:
Hi,
This is a bit aggressive solution to remove all snapshots with the memory.
Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue.
Some of them were available when we did remove a storage backend, indeed. Some were newer, the problem is that I don't know which one actually failed since when this happened we were in a hurry and needed to upgrade ASAP.
Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static);
Thanks. We have another oVirt infrastructure and I see this query is returning one row. I'll report back when we upgrade this second infrastructure and provide some details. Regards.
Regards, Arik
----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

HI, Thanks for the solution, I actually get: postgres=# select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static); ERROR: relation "snapshots" does not exist LINE 1: ...ts.description as snapshot_name, snapshot_id from snapshots .. 2016-07-06 12:11 GMT+02:00 <nicolas@devels.es>:
Hi Arik,
El 2016-07-06 10:27, Arik Hadas escribió:
Hi,
This is a bit aggressive solution to remove all snapshots with the memory.
Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue.
Some of them were available when we did remove a storage backend, indeed. Some were newer, the problem is that I don't know which one actually failed since when this happened we were in a hurry and needed to upgrade ASAP.
Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static);
Thanks. We have another oVirt infrastructure and I see this query is returning one row. I'll report back when we upgrade this second infrastructure and provide some details.
Regards.
Regards, Arik
----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement
psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command:
--file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command:
--file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File
"/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

You need to do this in the 'engine' database instead of 'postgres'. El 2016-07-06 13:41, Matt . escribió:
HI,
Thanks for the solution, I actually get:
postgres=# select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static); ERROR: relation "snapshots" does not exist LINE 1: ...ts.description as snapshot_name, snapshot_id from snapshots ..
2016-07-06 12:11 GMT+02:00 <nicolas@devels.es>:
Hi Arik,
El 2016-07-06 10:27, Arik Hadas escribió:
Hi,
This is a bit aggressive solution to remove all snapshots with the memory.
Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue.
Some of them were available when we did remove a storage backend, indeed. Some were newer, the problem is that I don't know which one actually failed since when this happened we were in a hurry and needed to upgrade ASAP.
Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static);
Thanks. We have another oVirt infrastructure and I see this query is returning one row. I'll report back when we upgrade this second infrastructure and provide some details.
Regards.
Regards, Arik
----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement
psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command:
--file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command:
--file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File
"/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

OK, due some not having done PgSQL for a long time I didn't select the engine DB that well. Thanks, this is a good fix where I already noticed the same snapshot ID already by searching through the tables and looking what's going on there. 2016-07-06 14:41 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
HI,
Thanks for the solution, I actually get:
postgres=# select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static); ERROR: relation "snapshots" does not exist LINE 1: ...ts.description as snapshot_name, snapshot_id from snapshots ..
2016-07-06 12:11 GMT+02:00 <nicolas@devels.es>:
Hi Arik,
El 2016-07-06 10:27, Arik Hadas escribió:
Hi,
This is a bit aggressive solution to remove all snapshots with the memory.
Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue.
Some of them were available when we did remove a storage backend, indeed. Some were newer, the problem is that I don't know which one actually failed since when this happened we were in a hurry and needed to upgrade ASAP.
Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static);
Thanks. We have another oVirt infrastructure and I see this query is returning one row. I'll report back when we upgrade this second infrastructure and provide some details.
Regards.
Regards, Arik
----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement
psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command:
--file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command:
--file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File
"/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

--Apple-Mail-10E847C2-B4D5-4DF5-8A47-89232CDCAE00 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 DQoNCj4gT24gMDYgSnVsIDIwMTYsIGF0IDIzOjE1LCBNYXR0IC4gPHlhbWFrYXNpLjAxNEBnbWFp bC5jb20+IHdyb3RlOg0KPiANCj4gT0ssIGR1ZSBzb21lIG5vdCBoYXZpbmcgZG9uZSBQZ1NRTCBm b3IgYSBsb25nIHRpbWUgSSBkaWRuJ3Qgc2VsZWN0IHRoZQ0KPiBlbmdpbmUgREIgdGhhdCB3ZWxs Lg0KPiANCj4gVGhhbmtzLCB0aGlzIGlzIGEgZ29vZCBmaXggd2hlcmUgSSBhbHJlYWR5IG5vdGlj ZWQgdGhlIHNhbWUgc25hcHNob3QNCj4gSUQgYWxyZWFkeSBieSBzZWFyY2hpbmcgdGhyb3VnaCB0 aGUgdGFibGVzIGFuZCBsb29raW5nIHdoYXQncyBnb2luZyBvbg0KPiB0aGVyZS4NCj4gDQo+IA0K PiANCj4gMjAxNi0wNy0wNiAxNDo0MSBHTVQrMDI6MDAgTWF0dCAuIDx5YW1ha2FzaS4wMTRAZ21h aWwuY29tPjoNCj4+IEhJLA0KPj4gDQo+PiBUaGFua3MgZm9yIHRoZSBzb2x1dGlvbiwgSSBhY3R1 YWxseSBnZXQ6DQo+PiANCj4+IHBvc3RncmVzPSMgc2VsZWN0IHZtX25hbWUsIHNuYXBzaG90cy5k ZXNjcmlwdGlvbiBhcyBzbmFwc2hvdF9uYW1lLA0KPj4gc25hcHNob3RfaWQgZnJvbSBzbmFwc2hv dHMgam9pbiB2bV9zdGF0aWMgb24gdm1faWQ9dm1fZ3VpZCB3aGVyZQ0KPj4gQ0FTVChzcGxpdF9w YXJ0KG1lbW9yeV92b2x1bWUsICcsJywgMSkgQVMgVVVJRCkgbm90IGluIChzZWxlY3QgaWQgZnJv bQ0KPj4gc3RvcmFnZV9kb21haW5fc3RhdGljKTsNCj4+IEVSUk9SOiAgcmVsYXRpb24gInNuYXBz aG90cyIgZG9lcyBub3QgZXhpc3QNCj4+IExJTkUgMTogLi4udHMuZGVzY3JpcHRpb24gYXMgc25h cHNob3RfbmFtZSwgc25hcHNob3RfaWQgZnJvbSBzbmFwc2hvdHMgLi4NCj4+IA0KPj4gMjAxNi0w Ny0wNiAxMjoxMSBHTVQrMDI6MDAgIDxuaWNvbGFzQGRldmVscy5lcz46DQo+Pj4gSGkgQXJpaywN Cj4+PiANCj4+PiBFbCAyMDE2LTA3LTA2IDEwOjI3LCBBcmlrIEhhZGFzIGVzY3JpYmnDszoNCj4+ Pj4gDQo+Pj4+IEhpLA0KPj4+PiANCj4+Pj4gVGhpcyBpcyBhIGJpdCBhZ2dyZXNzaXZlIHNvbHV0 aW9uIHRvIHJlbW92ZSBhbGwgc25hcHNob3RzIHdpdGggdGhlIG1lbW9yeS4NCj4+Pj4gDQo+Pj4+ IENhbiB5b3UgY29uZmlybSB0aGF0IGEgc3RvcmFnZSBkb21haW4gdGhhdCB3YXMgYWN0aXZlIHdo aWxlIGNyZWF0aW5nDQo+Pj4+IHRoZSBzbmFwc2hvdCB3aXRoIG1lbW9yeSB3YXMgcmVtb3ZlZCBm cm9tIHRoZSBzeXN0ZW0/DQo+Pj4+IFRoaXMgaXMgc29tZXRoaW5nIHRoYXQgd2FzIG5vdCBjb3Zl cmVkIGFuZCBjb3VsZCBsZWFkIHRvIHRoZSByZXBvcnRlZA0KPj4+PiBpc3N1ZS4NCj4+PiANCj4+ PiBTb21lIG9mIHRoZW0gd2VyZSBhdmFpbGFibGUgd2hlbiB3ZSBkaWQgcmVtb3ZlIGEgc3RvcmFn ZSBiYWNrZW5kLCBpbmRlZWQuDQo+Pj4gU29tZSB3ZXJlIG5ld2VyLCB0aGUgcHJvYmxlbSBpcyB0 aGF0IEkgZG9uJ3Qga25vdyB3aGljaCBvbmUgYWN0dWFsbHkgZmFpbGVkDQo+Pj4gc2luY2Ugd2hl biB0aGlzIGhhcHBlbmVkIHdlIHdlcmUgaW4gYSBodXJyeSBhbmQgbmVlZGVkIHRvIHVwZ3JhZGUg QVNBUC4NCj4+PiANCj4+Pj4gVW50aWwgd2UgY29tZSB1cCB3aXRoIGEgcHJvcGVyIHNvbHV0aW9u LCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nDQoNCnRyYWNrZWQgYnkgaHR0cHM6Ly9idWd6aWxs YS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMzUzMjE5DQoNCj4+Pj4gcXVlcnkgdG8gaWRl bnRpZnkgdGhlIGV4YWN0IHByb2JsZW1hdGljIHNuYXBzaG90cyBhbmQgcmVtb3ZlIHRoZW0NCj4+ Pj4gYmVmb3JlIHVwZ3JhZGluZzoNCj4+Pj4gc2VsZWN0IHZtX25hbWUsIHNuYXBzaG90cy5kZXNj cmlwdGlvbiBhcyBzbmFwc2hvdF9uYW1lLCBzbmFwc2hvdF9pZA0KPj4+PiBmcm9tIHNuYXBzaG90 cyBqb2luIHZtX3N0YXRpYyBvbiB2bV9pZD12bV9ndWlkIHdoZXJlDQo+Pj4+IENBU1Qoc3BsaXRf cGFydChtZW1vcnlfdm9sdW1lLCAnLCcsIDEpIEFTIFVVSUQpIG5vdCBpbiAoc2VsZWN0IGlkIGZy b20NCj4+Pj4gc3RvcmFnZV9kb21haW5fc3RhdGljKTsNCj4+PiANCj4+PiBUaGFua3MuIFdlIGhh dmUgYW5vdGhlciBvVmlydCBpbmZyYXN0cnVjdHVyZSBhbmQgSSBzZWUgdGhpcyBxdWVyeSBpcw0K Pj4+IHJldHVybmluZyBvbmUgcm93LiBJJ2xsIHJlcG9ydCBiYWNrIHdoZW4gd2UgdXBncmFkZSB0 aGlzIHNlY29uZA0KPj4+IGluZnJhc3RydWN0dXJlIGFuZCBwcm92aWRlIHNvbWUgZGV0YWlscy4N Cj4+PiANCj4+PiBSZWdhcmRzLg0KPj4+IA0KPj4+IA0KPj4+PiBSZWdhcmRzLA0KPj4+PiBBcmlr DQo+Pj4+IA0KPj4+PiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tDQo+Pj4+PiANCj4+Pj4+ IEhpLA0KPj4+Pj4gDQo+Pj4+PiBXZSBoYXZlIGhhZCBhIHNpbWlsYXIgaXNzdWUgd2hlbiB1cGdy YWRpbmcsIGRpZ2dpbmcgaW50byBpdCB3ZSBmb3VuZCBvdXQNCj4+Pj4+IHRoYXQgdGhpcyB3YXMg Y2F1c2VkIGJ5IHNuYXBzaG90cyB0aGF0IGhhZCB0aGUgIlNhdmUgbWVtb3J5IiBvcHRpb24NCj4+ Pj4+IGVuYWJsZWQuIFdlIGZpbmFsbHkgZW5kZWQgdXAgZGVsZXRpbmcgYW55IHNuYXBzaG90IHRo YXQgaGFkIHRoaXMgb3B0aW9uDQo+Pj4+PiBlbmFibGVkIGFuZCB0aGVuIHdlIHRyaWVkIHRvIHVw Z3JhZGUsIHRoaXMgdGltZSB0aGUgcHJvY2VzcyB3ZW50IHNtb290aC4NCj4+Pj4+IA0KPj4+Pj4g SG9wZSB0aGlzIGhlbHBzLg0KPj4+Pj4gDQo+Pj4+PiBSZWdhcmRzLg0KPj4+Pj4gDQo+Pj4+PiBF bCAyMDE2LTA3LTA1IDE4OjQ5LCBNYXR0IC4gZXNjcmliacOzOg0KPj4+Pj4+IE9LIHNvbWUgdXBk YXRlIG9uIHRoaXMuDQo+Pj4+Pj4gDQo+Pj4+Pj4gUmVtb3ZlZCB0aGUgZGItbWlncmF0ZS1zY3Jp cHQgcGFja2FnZSBhbmQgcmVpbnN0YWxsZWQgb3ZpcnQtZW5naW5lIGFuZA0KPj4+Pj4+IG92aXJ0 LWVuZ2luZS1zZXR1cC4NCj4+Pj4+PiANCj4+Pj4+PiBJIHN0aWxsIGhhdmUgdGhhdCBlcnJvciBh bmQgdGhpcyBpcyB0aGUgbG9nZ2luZ3BhcnQ6DQo+Pj4+Pj4gDQo+Pj4+Pj4gQ09OVEVYVDogIFNR TCBzdGF0ZW1lbnQgIkRST1AgSU5ERVggIElGIEVYSVNUUw0KPj4+Pj4+IGlkeF92bV9zdGF0aWNf dGVtcGxhdGVfdmVyc2lvbl9uYW1lOyBDUkVBVEUgSU5ERVgNCj4+Pj4+PiBpZHhfdm1fc3RhdGlj X3RlbXBsYXRlX3ZlcnNpb25fbmFtJA0KPj4+Pj4+IFBML3BnU1FMIGZ1bmN0aW9uIGZuX2RiX2Ny ZWF0ZV9pbmRleChjaGFyYWN0ZXIgdmFyeWluZyxjaGFyYWN0ZXINCj4+Pj4+PiB2YXJ5aW5nLHRl eHQsdGV4dCkgbGluZSAxMiBhdCBFWEVDVVRFIHN0YXRlbWVudA0KPj4+Pj4+IA0KPj4+Pj4+IHBz cWw6L3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvZGJzY3JpcHRzL3VwZ3JhZGUvMDRfMDBfMDE0MF9j b252ZXJ0X21lbW9yeV9zbmFwc2hvdHNfdG9fZGlza3Muc3FsOjkzOg0KPj4+Pj4+IEVSUk9SOg0K Pj4+Pj4+IGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgImltYWdlX3N0b3JhZ2VfZG9tYWluX21h cCIgdmlvbGF0ZXMgZm9yZWlnbg0KPj4+Pj4+IGtleSBjb25zdHJhaW50DQo+Pj4+Pj4gImZrX2lt YWdlX3N0b3JhZ2VfZG9tYWluX21hcF9zdG9yYWdlX2RvbWFpbl9zdGF0aWMiDQo+Pj4+Pj4gREVU QUlMOiAgS2V5IChzdG9yYWdlX2RvbWFpbl9pZCk9KDAwNjU1MmIwLWNhZTMtNGNjYi05YmFhLWVl OGMzYjhlNDJjZikNCj4+Pj4+PiBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAic3RvcmFnZV9kb21h aW5fc3RhdGljIi4NCj4+Pj4+PiBGQVRBTDogQ2Fubm90IGV4ZWN1dGUgc3FsIGNvbW1hbmQ6DQo+ Pj4+Pj4gDQo+Pj4+Pj4gLS1maWxlPS91c3Ivc2hhcmUvb3ZpcnQtZW5naW5lL2Ric2NyaXB0cy91 cGdyYWRlLzA0XzAwXzAxNDBfY29udmVydF9tZW1vcnlfc25hcHNob3RzX3RvX2Rpc2tzLnNxbA0K Pj4+Pj4+IA0KPj4+Pj4+IDIwMTYtMDctMDUgMTk6NDA6MjkgRVJST1INCj4+Pj4+PiBvdG9waS5w bHVnaW5zLm92aXJ0X2VuZ2luZV9zZXR1cC5vdmlydF9lbmdpbmUuZGIuc2NoZW1hDQo+Pj4+Pj4g c2NoZW1hLl9taXNjOjMxMyBzY2hlbWEuc2g6IEZBVEFMOg0KPj4+Pj4+IHNxbCBjb21tYW5kOg0K Pj4+Pj4+IA0KPj4+Pj4+IC0tZmlsZT0vdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9kYnNjcmlwdHMv dXBncmFkZS8wNF8wMF8wMTQwX2NvbnZlcnRfbWVtb3J5X3NuYXBzaG90c190b19kaXNrcy5zcWwN Cj4+Pj4+PiAyMDE2LTA3LTA1IDE5OjQwOjI5IERFQlVHIG90b3BpLmNvbnRleHQgY29udGV4dC5f ZXhlY3V0ZU1ldGhvZDoxNDINCj4+Pj4+PiBtZXRob2QgZXhjZXB0aW9uDQo+Pj4+Pj4gVHJhY2Vi YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOg0KPj4+Pj4+ICBGaWxlICIvdXNyL2xpYi9weXRo b24yLjcvc2l0ZS1wYWNrYWdlcy9vdG9waS9jb250ZXh0LnB5IiwgbGluZSAxMzIsDQo+Pj4+Pj4g aW4gX2V4ZWN1dGVNZXRob2QNCj4+Pj4+PiAgICBtZXRob2RbJ21ldGhvZCddKCkNCj4+Pj4+PiAg RmlsZQ0KPj4+Pj4+IA0KPj4+Pj4+ICIvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9zZXR1cC9iaW4v Li4vcGx1Z2lucy9vdmlydC1lbmdpbmUtc2V0dXAvb3ZpcnQtZW5naW5lL2RiL3NjaGVtYS5weSIs DQo+Pj4+Pj4gbGluZSAzMTUsIGluIF9taXNjDQo+Pj4+Pj4gICAgcmFpc2UgUnVudGltZUVycm9y KF8oJ0VuZ2luZSBzY2hlbWEgcmVmcmVzaCBmYWlsZWQnKSkNCj4+Pj4+PiBSdW50aW1lRXJyb3I6 IEVuZ2luZSBzY2hlbWEgcmVmcmVzaCBmYWlsZWQNCj4+Pj4+PiANCj4+Pj4+PiBBbnkgaWRlYSA/ DQo+Pj4+Pj4gDQo+Pj4+Pj4gMjAxNi0wNy0wNSAxNToyNSBHTVQrMDI6MDAgTWF0dCAuIDx5YW1h a2FzaS4wMTRAZ21haWwuY29tPjoNCj4+Pj4+Pj4gSSBqdXN0IGZvdW5kIG91dCB0aGF0IHRoZSBm aWxlDQo+Pj4+Pj4+IA0KPj4+Pj4+PiAwNF8wMF8wMTQwX2NvbnZlcnRfbWVtb3J5X3NuYXBzaG90 c190b19kaXNrcy5zcWwNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGlzIG5vdCBsb2NhdGVkIGluOg0KPj4+ Pj4+PiANCj4+Pj4+Pj4gL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvZGJzY3JpcHRzL3VwZ3JhZGUv DQo+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N Cj4+Pj4+PiBVc2VycyBtYWlsaW5nIGxpc3QNCj4+Pj4+PiBVc2Vyc0BvdmlydC5vcmcNCj4+Pj4+ PiBodHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnMNCj4+Pj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4+PiBVc2Vy cyBtYWlsaW5nIGxpc3QNCj4+Pj4+IFVzZXJzQG92aXJ0Lm9yZw0KPj4+Pj4gaHR0cDovL2xpc3Rz Lm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzDQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IFVzZXJzIG1haWxpbmcgbGlzdA0KPiBVc2Vy c0BvdmlydC5vcmcNCj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3Vz ZXJzDQo= --Apple-Mail-10E847C2-B4D5-4DF5-8A47-89232CDCAE00 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPjwvaGVhZD48Ym9keSBkaXI9ImF1dG8iPjxkaXY+PC9kaXY+ PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+T24gMDYgSnVsIDIwMTYsIGF0IDIzOjE1LCBNYXR0IC4g Jmx0OzxhIGhyZWY9Im1haWx0bzp5YW1ha2FzaS4wMTRAZ21haWwuY29tIj55YW1ha2FzaS4wMTRA Z21haWwuY29tPC9hPiZndDsgd3JvdGU6PGJyPjxicj48L2Rpdj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48ZGl2PjxzcGFuPk9LLCBkdWUgc29tZSBub3QgaGF2aW5nIGRvbmUgUGdTUUwgZm9yIGEg bG9uZyB0aW1lIEkgZGlkbid0IHNlbGVjdCB0aGU8L3NwYW4+PGJyPjxzcGFuPmVuZ2luZSBEQiB0 aGF0IHdlbGwuPC9zcGFuPjxicj48c3Bhbj48L3NwYW4+PGJyPjxzcGFuPlRoYW5rcywgdGhpcyBp cyBhIGdvb2QgZml4IHdoZXJlIEkgYWxyZWFkeSBub3RpY2VkIHRoZSBzYW1lIHNuYXBzaG90PC9z cGFuPjxicj48c3Bhbj5JRCBhbHJlYWR5IGJ5IHNlYXJjaGluZyB0aHJvdWdoIHRoZSB0YWJsZXMg YW5kIGxvb2tpbmcgd2hhdCdzIGdvaW5nIG9uPC9zcGFuPjxicj48c3Bhbj50aGVyZS48L3NwYW4+ PGJyPjxzcGFuPjwvc3Bhbj48YnI+PHNwYW4+PC9zcGFuPjxicj48c3Bhbj48L3NwYW4+PGJyPjxz cGFuPjIwMTYtMDctMDYgMTQ6NDEgR01UKzAyOjAwIE1hdHQgLiAmbHQ7PGEgaHJlZj0ibWFpbHRv OnlhbWFrYXNpLjAxNEBnbWFpbC5jb20iPnlhbWFrYXNpLjAxNEBnbWFpbC5jb208L2E+Jmd0Ozo8 L3NwYW4+PGJyPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPkhJLDwvc3Bhbj48YnI+PC9i bG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9j a3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlRoYW5rcyBmb3IgdGhlIHNvbHV0 aW9uLCBJIGFjdHVhbGx5IGdldDo8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48c3Bhbj5wb3N0Z3Jlcz0jIHNlbGVjdCB2bV9uYW1lLCBzbmFwc2hvdHMuZGVzY3Jp cHRpb24gYXMgc25hcHNob3RfbmFtZSw8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90 ZSB0eXBlPSJjaXRlIj48c3Bhbj5zbmFwc2hvdF9pZCBmcm9tIHNuYXBzaG90cyBqb2luIHZtX3N0 YXRpYyBvbiB2bV9pZD12bV9ndWlkIHdoZXJlPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+Q0FTVChzcGxpdF9wYXJ0KG1lbW9yeV92b2x1bWUsICcs JywgMSkgQVMgVVVJRCkgbm90IGluIChzZWxlY3QgaWQgZnJvbTwvc3Bhbj48YnI+PC9ibG9ja3F1 b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPnN0b3JhZ2VfZG9tYWluX3N0YXRpYyk7 PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+RVJS T1I6ICZuYnNwO3JlbGF0aW9uICJzbmFwc2hvdHMiIGRvZXMgbm90IGV4aXN0PC9zcGFuPjxicj48 L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+TElORSAxOiAuLi50cy5k ZXNjcmlwdGlvbiBhcyBzbmFwc2hvdF9uYW1lLCBzbmFwc2hvdF9pZCBmcm9tIHNuYXBzaG90cyAu Ljwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwv c3Bhbj48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjIwMTYt MDctMDYgMTI6MTEgR01UKzAyOjAwICZuYnNwOyZsdDs8YSBocmVmPSJtYWlsdG86bmljb2xhc0Bk ZXZlbHMuZXMiPm5pY29sYXNAZGV2ZWxzLmVzPC9hPiZndDs6PC9zcGFuPjxicj48L2Jsb2NrcXVv dGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+ SGkgQXJpayw8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Js b2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPkVsIDIwMTYtMDctMDYgMTA6MjcsIEFyaWsgSGFkYXMgZXNjcmli acOzOjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPkhpLDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVv dGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5UaGlzIGlz IGEgYml0IGFnZ3Jlc3NpdmUgc29sdXRpb24gdG8gcmVtb3ZlIGFsbCBzbmFwc2hvdHMgd2l0aCB0 aGUgbWVtb3J5Ljwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5DYW4geW91IGNvbmZpcm0gdGhh dCBhIHN0b3JhZ2UgZG9tYWluIHRoYXQgd2FzIGFjdGl2ZSB3aGlsZSBjcmVhdGluZzwvc3Bhbj48 YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlw ZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+ PHNwYW4+dGhlIHNuYXBzaG90IHdpdGggbWVtb3J5IHdhcyByZW1vdmVkIGZyb20gdGhlIHN5c3Rl bT88L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxzcGFuPlRoaXMgaXMgc29tZXRoaW5nIHRoYXQgd2FzIG5vdCBjb3ZlcmVkIGFu ZCBjb3VsZCBsZWFkIHRvIHRoZSByZXBvcnRlZDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+aXNzdWUuPC9zcGFuPjxi cj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bh bj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5Tb21lIG9mIHRoZW0gd2VyZSBhdmFpbGFibGUg d2hlbiB3ZSBkaWQgcmVtb3ZlIGEgc3RvcmFnZSBiYWNrZW5kLCBpbmRlZWQuPC9zcGFuPjxicj48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlNvbWUgd2VyZSBuZXdlciwgdGhlIHByb2JsZW0gaXMgdGhh dCBJIGRvbid0IGtub3cgd2hpY2ggb25lIGFjdHVhbGx5IGZhaWxlZDwvc3Bhbj48YnI+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48c3Bhbj5zaW5jZSB3aGVuIHRoaXMgaGFwcGVuZWQgd2Ugd2VyZSBpbiBhIGh1 cnJ5IGFuZCBuZWVkZWQgdG8gdXBncmFkZSBBU0FQLjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSI+PHNwYW4+VW50aWwgd2UgY29tZSB1cCB3aXRoIGEgcHJvcGVyIHNvbHV0aW9uLCB5b3UgY2Fu IHVzZSB0aGUgZm9sbG93aW5nPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+dHJhY2tlZCBieSZu YnNwOzxhIGhyZWY9Imh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9 MTM1MzIxOSI+aHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMzUz MjE5PC9hPjxkaXY+PGJyPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxkaXY+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSI+PHNwYW4+cXVlcnkgdG8gaWRlbnRpZnkgdGhlIGV4YWN0IHByb2JsZW1hdGljIHNuYXBzaG90 cyBhbmQgcmVtb3ZlIHRoZW08L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9i bG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPmJlZm9yZSB1cGdyYWRpbmc6PC9zcGFuPjxi cj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 c3Bhbj5zZWxlY3Qgdm1fbmFtZSwgc25hcHNob3RzLmRlc2NyaXB0aW9uIGFzIHNuYXBzaG90X25h bWUsIHNuYXBzaG90X2lkPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5mcm9tIHNuYXBzaG90cyBqb2luIHZtX3N0YXRp YyBvbiB2bV9pZD12bV9ndWlkIHdoZXJlPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5DQVNUKHNwbGl0X3BhcnQobWVt b3J5X3ZvbHVtZSwgJywnLCAxKSBBUyBVVUlEKSBub3QgaW4gKHNlbGVjdCBpZCBmcm9tPC9zcGFu Pjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48c3Bhbj5zdG9yYWdlX2RvbWFpbl9zdGF0aWMpOzwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PHNwYW4+VGhhbmtzLiBXZSBoYXZlIGFub3RoZXIgb1ZpcnQgaW5mcmFzdHJ1Y3R1cmUg YW5kIEkgc2VlIHRoaXMgcXVlcnkgaXM8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+ cmV0dXJuaW5nIG9uZSByb3cuIEknbGwgcmVwb3J0IGJhY2sgd2hlbiB3ZSB1cGdyYWRlIHRoaXMg c2Vjb25kPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPmluZnJhc3RydWN0dXJlIGFu ZCBwcm92aWRlIHNvbWUgZGV0YWlscy48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+ PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlJlZ2FyZHMuPC9zcGFuPjxicj48L2Js b2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3Nw YW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+UmVn YXJkcyw8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPkFyaWs8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9 ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+LS0tLS0g T3JpZ2luYWwgTWVzc2FnZSAtLS0tLTwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNw YW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+SGks PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2Nr cXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFu Pjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+V2UgaGF2ZSBoYWQg YSBzaW1pbGFyIGlzc3VlIHdoZW4gdXBncmFkaW5nLCBkaWdnaW5nIGludG8gaXQgd2UgZm91bmQg b3V0PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+dGhh dCB0aGlzIHdhcyBjYXVzZWQgYnkgc25hcHNob3RzIHRoYXQgaGFkIHRoZSAiU2F2ZSBtZW1vcnki IG9wdGlvbjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+ PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFu PmVuYWJsZWQuIFdlIGZpbmFsbHkgZW5kZWQgdXAgZGVsZXRpbmcgYW55IHNuYXBzaG90IHRoYXQg aGFkIHRoaXMgb3B0aW9uPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSI+PHNwYW4+ZW5hYmxlZCBhbmQgdGhlbiB3ZSB0cmllZCB0byB1cGdyYWRlLCB0aGlzIHRpbWUg dGhlIHByb2Nlc3Mgd2VudCBzbW9vdGguPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PHNwYW4+SG9wZSB0aGlzIGhlbHBzLjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxzcGFuPlJlZ2FyZHMuPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PHNwYW4+RWwgMjAxNi0wNy0wNSAxODo0OSwgTWF0dCAuIGVzY3JpYmnDszo8L3NwYW4+ PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90 ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48c3Bhbj5PSyBzb21lIHVwZGF0ZSBvbiB0aGlzLjwvc3Bhbj48YnI+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlw ZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+UmVtb3ZlZCB0aGUgZGItbWln cmF0ZS1zY3JpcHQgcGFja2FnZSBhbmQgcmVpbnN0YWxsZWQgb3ZpcnQtZW5naW5lIGFuZDwvc3Bh bj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5vdmlydC1lbmdpbmUtc2V0dXAuPC9zcGFuPjxicj48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5JIHN0aWxs IGhhdmUgdGhhdCBlcnJvciBhbmQgdGhpcyBpcyB0aGUgbG9nZ2luZ3BhcnQ6PC9zcGFuPjxicj48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5DT05URVhU OiAmbmJzcDtTUUwgc3RhdGVtZW50ICJEUk9QIElOREVYICZuYnNwO0lGIEVYSVNUUzwvc3Bhbj48 YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2tx dW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5pZHhfdm1fc3RhdGljX3RlbXBsYXRlX3ZlcnNpb25fbmFt ZTsgQ1JFQVRFIElOREVYPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPmlkeF92bV9zdGF0 aWNfdGVtcGxhdGVfdmVyc2lvbl9uYW0kPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlBM L3BnU1FMIGZ1bmN0aW9uIGZuX2RiX2NyZWF0ZV9pbmRleChjaGFyYWN0ZXIgdmFyeWluZyxjaGFy YWN0ZXI8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+dmFyeWluZyx0ZXh0LHRleHQpIGxp bmUgMTIgYXQgRVhFQ1VURSBzdGF0ZW1lbnQ8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2Nr cXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+ PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2Nr cXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPnBzcWw6L3Vzci9zaGFyZS9vdmlydC1lbmdp bmUvZGJzY3JpcHRzL3VwZ3JhZGUvMDRfMDBfMDE0MF9jb252ZXJ0X21lbW9yeV9zbmFwc2hvdHNf dG9fZGlza3Muc3FsOjkzOjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2tx dW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5FUlJPUjo8L3Nw YW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+aW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAiaW1h Z2Vfc3RvcmFnZV9kb21haW5fbWFwIiB2aW9sYXRlcyBmb3JlaWduPC9zcGFuPjxicj48L2Jsb2Nr cXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9 ImNpdGUiPjxzcGFuPmtleSBjb25zdHJhaW50PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFu PiJma19pbWFnZV9zdG9yYWdlX2RvbWFpbl9tYXBfc3RvcmFnZV9kb21haW5fc3RhdGljIjwvc3Bh bj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5ERVRBSUw6ICZuYnNwO0tleSAoc3RvcmFnZV9kb21h aW5faWQpPSgwMDY1NTJiMC1jYWUzLTRjY2ItOWJhYS1lZThjM2I4ZTQyY2YpPC9zcGFuPjxicj48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPmlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJzdG9yYWdlX2RvbWFp bl9zdGF0aWMiLjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5GQVRBTDogQ2Fubm90IGV4 ZWN1dGUgc3FsIGNvbW1hbmQ6PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48 YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2tx dW90ZSB0eXBlPSJjaXRlIj48c3Bhbj4tLWZpbGU9L3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvZGJz Y3JpcHRzL3VwZ3JhZGUvMDRfMDBfMDE0MF9jb252ZXJ0X21lbW9yeV9zbmFwc2hvdHNfdG9fZGlz a3Muc3FsPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9 ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90 ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48c3Bhbj4yMDE2LTA3LTA1IDE5OjQwOjI5IEVSUk9SPC9zcGFuPjxicj48L2Jsb2NrcXVv dGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxzcGFuPm90b3BpLnBsdWdpbnMub3ZpcnRfZW5naW5lX3NldHVwLm92aXJ0X2VuZ2luZS5k Yi5zY2hlbWE8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlw ZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+c2NoZW1hLl9taXNjOjMxMyBz Y2hlbWEuc2g6IEZBVEFMOjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2tx dW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5zcWwgY29tbWFu ZDo8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+ PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxzcGFuPi0tZmlsZT0vdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9kYnNjcmlwdHMvdXBncmFkZS8w NF8wMF8wMTQwX2NvbnZlcnRfbWVtb3J5X3NuYXBzaG90c190b19kaXNrcy5zcWw8L3NwYW4+PGJy PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PHNwYW4+MjAxNi0wNy0wNSAxOTo0MDoyOSBERUJVRyBvdG9waS5jb250 ZXh0IGNvbnRleHQuX2V4ZWN1dGVNZXRob2Q6MTQyPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9i bG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9 ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxz cGFuPm1ldGhvZCBleGNlcHRpb248L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+ PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+VHJhY2Vi YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90 ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bh bj4gJm5ic3A7RmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvb3RvcGkvY29u dGV4dC5weSIsIGxpbmUgMTMyLDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5pbiBfZXhl Y3V0ZU1ldGhvZDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj4gJm5ic3A7Jm5ic3A7Jm5i c3A7bWV0aG9kWydtZXRob2QnXSgpPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9 ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPiAmbmJz cDtGaWxlPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9 ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90 ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48c3Bhbj4iL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2V0dXAvYmluLy4uL3BsdWdpbnMv b3ZpcnQtZW5naW5lLXNldHVwL292aXJ0LWVuZ2luZS9kYi9zY2hlbWEucHkiLDwvc3Bhbj48YnI+ PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxv Y2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90 ZSB0eXBlPSJjaXRlIj48c3Bhbj5saW5lIDMxNSwgaW4gX21pc2M8L3NwYW4+PGJyPjwvYmxvY2tx dW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PHNwYW4+ICZuYnNwOyZuYnNwOyZuYnNwO3JhaXNlIFJ1bnRpbWVFcnJvcihfKCdFbmdp bmUgc2NoZW1hIHJlZnJlc2ggZmFpbGVkJykpPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFu PlJ1bnRpbWVFcnJvcjogRW5naW5lIHNjaGVtYSByZWZyZXNoIGZhaWxlZDwvc3Bhbj48YnI+PC9i bG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2tx dW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9i bG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+QW55IGlkZWEg Pzwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlw ZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+ PHNwYW4+MjAxNi0wNy0wNSAxNToyNSBHTVQrMDI6MDAgTWF0dCAuICZsdDs8YSBocmVmPSJtYWls dG86eWFtYWthc2kuMDE0QGdtYWlsLmNvbSI+eWFtYWthc2kuMDE0QGdtYWlsLmNvbTwvYT4mZ3Q7 Ojwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5J IGp1c3QgZm91bmQgb3V0IHRoYXQgdGhlIGZpbGU8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjwvc3Bhbj48YnI+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+MDRfMDBf MDE0MF9jb252ZXJ0X21lbW9yeV9zbmFwc2hvdHNfdG9fZGlza3Muc3FsPC9zcGFuPjxicj48L2Js b2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1 b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBl PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3Nw YW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PjxzcGFuPmlzIG5vdCBsb2NhdGVkIGluOjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2tx dW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+ PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVv dGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2tx dW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj4vdXNyL3NoYXJl L292aXJ0LWVuZ2luZS9kYnNjcmlwdHMvdXBncmFkZS88L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxzcGFuPl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlVzZXJzIG1haWxpbmcgbGlz dDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48YSBocmVmPSJtYWlsdG86VXNlcnNAb3Zp cnQub3JnIj5Vc2Vyc0BvdmlydC5vcmc8L2E+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3Rl IHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFu PjxhIGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VycyI+ aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzPC9hPjwvc3Bhbj48 YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzwvc3Bhbj48YnI+ PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlVzZXJzIG1haWxpbmcgbGlz dDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9j a3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjxhIGhy ZWY9Im1haWx0bzpVc2Vyc0BvdmlydC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT48L3NwYW4+PGJy PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0 eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48YSBocmVmPSJodHRwOi8v bGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnMiPmh0dHA6Ly9saXN0cy5vdmly dC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VyczwvYT48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48 L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2Nr cXVvdGU+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Js b2NrcXVvdGU+PHNwYW4+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX188L3NwYW4+PGJyPjxzcGFuPlVzZXJzIG1haWxpbmcgbGlzdDwvc3Bhbj48YnI+PHNwYW4+ PGEgaHJlZj0ibWFpbHRvOlVzZXJzQG92aXJ0Lm9yZyI+VXNlcnNAb3ZpcnQub3JnPC9hPjwvc3Bh bj48YnI+PHNwYW4+PGEgaHJlZj0iaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3VzZXJzIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnM8 L2E+PC9zcGFuPjxicj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4= --Apple-Mail-10E847C2-B4D5-4DF5-8A47-89232CDCAE00--

El 2016-07-06 11:11, nicolas@devels.es escribió:
Hi Arik,
El 2016-07-06 10:27, Arik Hadas escribió:
Hi,
This is a bit aggressive solution to remove all snapshots with the memory.
Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue.
Some of them were available when we did remove a storage backend, indeed. Some were newer, the problem is that I don't know which one actually failed since when this happened we were in a hurry and needed to upgrade ASAP.
Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static);
Thanks. We have another oVirt infrastructure and I see this query is returning one row. I'll report back when we upgrade this second infrastructure and provide some details.
We've upgraded our second oVirt infrastructure as well, here are the steps: 1) I run the query you provided, it returned one row. 2) I tried upgrading to 4.0 without deleting that snapshot: it failed with the error below. 3) I deleted the snapshot 4) Now I tried upgrading again and everything went smoothly. I'd say this is the same issue, apparently. Thanks.
Regards.
Regards, Arik
----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

----- Original Message -----
El 2016-07-06 11:11, nicolas@devels.es escribió:
Hi Arik,
El 2016-07-06 10:27, Arik Hadas escribió:
Hi,
This is a bit aggressive solution to remove all snapshots with the memory.
Can you confirm that a storage domain that was active while creating the snapshot with memory was removed from the system? This is something that was not covered and could lead to the reported issue.
Some of them were available when we did remove a storage backend, indeed. Some were newer, the problem is that I don't know which one actually failed since when this happened we were in a hurry and needed to upgrade ASAP.
Until we come up with a proper solution, you can use the following query to identify the exact problematic snapshots and remove them before upgrading: select vm_name, snapshots.description as snapshot_name, snapshot_id from snapshots join vm_static on vm_id=vm_guid where CAST(split_part(memory_volume, ',', 1) AS UUID) not in (select id from storage_domain_static);
Thanks. We have another oVirt infrastructure and I see this query is returning one row. I'll report back when we upgrade this second infrastructure and provide some details.
We've upgraded our second oVirt infrastructure as well, here are the steps:
1) I run the query you provided, it returned one row. 2) I tried upgrading to 4.0 without deleting that snapshot: it failed with the error below. 3) I deleted the snapshot 4) Now I tried upgrading again and everything went smoothly.
I'd say this is the same issue, apparently.
Thanks.
Thanks for the update. I opened a bug for this issue [1]. We will probably just remove the memory from this kind of snapshots automatically during the upgrade. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1353219
Regards.
Regards, Arik
----- Original Message -----
Hi,
We have had a similar issue when upgrading, digging into it we found out that this was caused by snapshots that had the "Save memory" option enabled. We finally ended up deleting any snapshot that had this option enabled and then we tried to upgrade, this time the process went smooth.
Hope this helps.
Regards.
El 2016-07-05 18:49, Matt . escribió:
OK some update on this.
Removed the db-migrate-script package and reinstalled ovirt-engine and ovirt-engine-setup.
I still have that error and this is the loggingpart:
CONTEXT: SQL statement "DROP INDEX IF EXISTS idx_vm_static_template_version_name; CREATE INDEX idx_vm_static_template_version_nam$ PL/pgSQL function fn_db_create_index(character varying,character varying,text,text) line 12 at EXECUTE statement psql:/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql:93: ERROR: insert or update on table "image_storage_domain_map" violates foreign key constraint "fk_image_storage_domain_map_storage_domain_static" DETAIL: Key (storage_domain_id)=(006552b0-cae3-4ccb-9baa-ee8c3b8e42cf) is not present in table "storage_domain_static". FATAL: Cannot execute sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql
2016-07-05 19:40:29 ERROR otopi.plugins.ovirt_engine_setup.ovirt_engine.db.schema schema._misc:313 schema.sh: FATAL: sql command: --file=/usr/share/ovirt-engine/dbscripts/upgrade/04_00_0140_convert_memory_snapshots_to_disks.sql 2016-07-05 19:40:29 DEBUG otopi.context context._executeMethod:142 method exception Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod method['method']() File "/usr/share/ovirt-engine/setup/bin/../plugins/ovirt-engine-setup/ovirt-engine/db/schema.py", line 315, in _misc raise RuntimeError(_('Engine schema refresh failed')) RuntimeError: Engine schema refresh failed
Any idea ?
2016-07-05 15:25 GMT+02:00 Matt . <yamakasi.014@gmail.com>:
I just found out that the file
04_00_0140_convert_memory_snapshots_to_disks.sql
is not located in:
/usr/share/ovirt-engine/dbscripts/upgrade/
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
participants (4)
-
Arik Hadas
-
Matt .
-
Michal Skrivanek
-
nicolas@devels.es