From jpribeauville at axway.com Fri Jan 15 04:08:25 2016 Content-Type: multipart/mixed; boundary="===============6460809798696346867==" MIME-Version: 1.0 From: Jean-Pierre Ribeauville To: users at ovirt.org Subject: [ovirt-users] What's going on open channel devices when migrating the Guest ? Date: Fri, 15 Jan 2016 09:08:23 +0000 Message-ID: <1051EFB4D3A1704680C38CCAAC5836D292F028AE@WPTXMAIL2.ptx.axway.int> --===============6460809798696346867== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --_000_1051EFB4D3A1704680C38CCAAC5836D292F028AEWPTXMAIL2ptxaxw_ Content-Type: text/plain; charset=3D"iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, I'm using a channel device between host and guest to exchange datas every 2= =3D 0 seconds. On the Guest size , there is an open /dev/virtio file on which we read cont= =3D inuously what's sent by the host. My question is the following : When migrating the Guest to another host , and the migrating back to the f= =3D irst one , the Guest software doesn't receive anymore datas from the host unless I res= =3D tart the Guest software to re-open the /dev/virtio file. Is there any way to detect in the Guest that migration has been done so we = =3D have to reopen the file ? Any hint is welcome . Thanks for help. J.P. Ribeauville P: +33.(0).1.47.17.20.49 . Puteaux 3 Etage 5 Bureau 4 jpribeauville(a)axway.com http://www.axway.com P Pensez =3DE0 l'environnement avant d'imprimer. --_000_1051EFB4D3A1704680C38CCAAC5836D292F028AEWPTXMAIL2ptxaxw_ Content-Type: text/html; charset=3D"iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi,

 

I’m using a channel d= evic=3D e between host and guest to exchange datas every 20 seconds.

 

On the Guest size , there i= s an=3D open /dev/virtio file on which we read continuously what’s
sent by the host.

 

My question is the followin= g : =3D

When migrating the Guest to= ano=3D ther host ,  and the migrating back to the first one , 
the Guest software doesn’t receive anymore datas from the host unless= =3D I restart the Guest software to re-open the /dev/virtio file.

 

Is there any way to detect = in t=3D he Guest that migration has been done so we have to reopen  the file ?= =3D

 

Any hint is welcome .<= /o:p=3D >

 

Thanks for help.=

 

 

J.P. Ribeauville

 

P: +33.(0).1.47.17.= =3D 20.49

.

Pute= =3D aux 3 Etage 5  Bureau 4

 

=3D jpribeauville(a)axway.com=
http://ww= w.ax=3D way.com

 

 

P Pensez =3DE0 l’environnement avant d’= ;i=3D mprimer.<= =3D /span>

&nb= sp;<=3D /o:p>

 

--_000_1051EFB4D3A1704680C38CCAAC5836D292F028AEWPTXMAIL2ptxaxw_-- --===============6460809798696346867== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS1fMDAwXzEwNTFFRkI0RDNBMTcwNDY4MEMzOENDQUFDNTgzNkQyOTJGMDI4QUVXUFRYTUFJTDJw dHhheHdfCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGksCgpJJ20gdXNpbmcg YSBjaGFubmVsIGRldmljZSBiZXR3ZWVuIGhvc3QgYW5kIGd1ZXN0IHRvIGV4Y2hhbmdlIGRhdGFz IGV2ZXJ5IDI9CjAgc2Vjb25kcy4KCk9uIHRoZSBHdWVzdCBzaXplICwgdGhlcmUgaXMgYW4gb3Bl biAvZGV2L3ZpcnRpbyBmaWxlIG9uIHdoaWNoIHdlIHJlYWQgY29udD0KaW51b3VzbHkgd2hhdCdz CnNlbnQgYnkgdGhlIGhvc3QuCgpNeSBxdWVzdGlvbiBpcyB0aGUgZm9sbG93aW5nIDoKV2hlbiBt aWdyYXRpbmcgdGhlIEd1ZXN0IHRvIGFub3RoZXIgaG9zdCAsICBhbmQgdGhlIG1pZ3JhdGluZyBi YWNrIHRvIHRoZSBmPQppcnN0IG9uZSAsCnRoZSBHdWVzdCBzb2Z0d2FyZSBkb2Vzbid0IHJlY2Vp dmUgYW55bW9yZSBkYXRhcyBmcm9tIHRoZSBob3N0IHVubGVzcyBJIHJlcz0KdGFydCB0aGUgR3Vl c3Qgc29mdHdhcmUgdG8gcmUtb3BlbiB0aGUgL2Rldi92aXJ0aW8gZmlsZS4KCklzIHRoZXJlIGFu eSB3YXkgdG8gZGV0ZWN0IGluIHRoZSBHdWVzdCB0aGF0IG1pZ3JhdGlvbiBoYXMgYmVlbiBkb25l IHNvIHdlID0KaGF2ZSB0byByZW9wZW4gIHRoZSBmaWxlID8KCkFueSBoaW50IGlzIHdlbGNvbWUg LgoKVGhhbmtzIGZvciBoZWxwLgoKCkouUC4gUmliZWF1dmlsbGUKCgpQOiArMzMuKDApLjEuNDcu MTcuMjAuNDkKLgpQdXRlYXV4IDMgRXRhZ2UgNSAgQnVyZWF1IDQKCmpwcmliZWF1dmlsbGVAYXh3 YXkuY29tPG1haWx0bzpqcHJpYmVhdXZpbGxlQGF4d2F5LmNvbT4KaHR0cDovL3d3dy5heHdheS5j b208aHR0cDovL3d3dy5heHdheS5jb20vPgoKCgpQIFBlbnNleiA9RTAgbCdlbnZpcm9ubmVtZW50 IGF2YW50IGQnaW1wcmltZXIuCgoKCgotLV8wMDBfMTA1MUVGQjREM0ExNzA0NjgwQzM4Q0NBQUM1 ODM2RDI5MkYwMjhBRVdQVFhNQUlMMnB0eGF4d18KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNo YXJzZXQ9Imlzby04ODU5LTEiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmlu dGFibGUKCjxodG1sIHhtbG5zOnY9M0QidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHht bG5zOm89M0QidXJuOnNjaGVtYXMtbWljcj0Kb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiIHhtbG5z Onc9M0QidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgPQp4bWxuczptPTNE Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG1sbnM9 M0QiaHR0cDo9Ci8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KPGhlYWQ+CjxtZXRhIGh0dHAt ZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQvaHRtbDsgY2hhcnNldD0zRGlz by04ODU5LT0KMSI+CjxtZXRhIG5hbWU9M0QiR2VuZXJhdG9yIiBjb250ZW50PTNEIk1pY3Jvc29m dCBXb3JkIDE0IChmaWx0ZXJlZCBtZWRpdW0pIj4KPHN0eWxlPjwhLS0KLyogRm9udCBEZWZpbml0 aW9ucyAqLwpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsKCXBhbm9zZS0xOjIgMTUg NSAyIDIgMiA0IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OldlYmRpbmdzOwoJcGFu b3NlLTE6NSAzIDEgMiAxIDUgOSA2IDcgMzt9Ci8qIFN0eWxlIERlZmluaXRpb25zICovCnAuTXNv Tm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKCXttYXJnaW46MGNtOwoJbWFyZ2lu LWJvdHRvbTouMDAwMXB0OwoJZm9udC1zaXplOjExLjBwdDsKCWZvbnQtZmFtaWx5OiJDYWxpYnJp Iiwic2Fucy1zZXJpZiI7Cgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9CmE6bGluaywgc3Bh bi5Nc29IeXBlcmxpbmsKCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7Cgljb2xvcjpibHVlOwoJdGV4 dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xs b3dlZAoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsKCWNvbG9yOnB1cnBsZTsKCXRleHQtZGVjb3Jh dGlvbjp1bmRlcmxpbmU7fQpzcGFuLkVtYWlsU3R5bGUxNwoJe21zby1zdHlsZS10eXBlOnBlcnNv bmFsLWNvbXBvc2U7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOwoJY29sb3I6 d2luZG93dGV4dDt9Ci5Nc29DaHBEZWZhdWx0Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7 Cglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOwoJbXNvLWZhcmVhc3QtbGFuZ3Vh Z2U6RU4tVVM7fQpAcGFnZSBXb3JkU2VjdGlvbjEKCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsKCW1h cmdpbjo3MC44NXB0IDcwLjg1cHQgNzAuODVwdCA3MC44NXB0O30KZGl2LldvcmRTZWN0aW9uMQoJ e3BhZ2U6V29yZFNlY3Rpb24xO30KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4K PG86c2hhcGVkZWZhdWx0cyB2OmV4dD0zRCJlZGl0IiBzcGlkbWF4PTNEIjEwMjYiIC8+CjwveG1s PjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgo8bzpzaGFwZWxheW91dCB2OmV4 dD0zRCJlZGl0Ij4KPG86aWRtYXAgdjpleHQ9M0QiZWRpdCIgZGF0YT0zRCIxIiAvPgo8L286c2hh cGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+CjwvaGVhZD4KPGJvZHkgbGFuZz0zRCJGUiIgbGlu az0zRCJibHVlIiB2bGluaz0zRCJwdXJwbGUiPgo8ZGl2IGNsYXNzPTNEIldvcmRTZWN0aW9uMSI+ CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+SGksPG86cD48L286 cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMi PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48c3Bh biBsYW5nPTNEIkVOLVVTIj5JJiM4MjE3O20gdXNpbmcgYSBjaGFubmVsIGRldmljPQplIGJldHdl ZW4gaG9zdCBhbmQgZ3Vlc3QgdG8gZXhjaGFuZ2UgZGF0YXMgZXZlcnkgMjAgc2Vjb25kcy48bzpw PjwvbzpwPjwvc3A9CmFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBsYW5nPTNE IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1h bCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+T24gdGhlIEd1ZXN0IHNpemUgLCB0aGVyZSBpcyBhbj0K IG9wZW4gL2Rldi92aXJ0aW8gZmlsZSBvbiB3aGljaCB3ZSByZWFkIGNvbnRpbnVvdXNseSB3aGF0 JiM4MjE3O3MKPGJyPgpzZW50IGJ5IHRoZSBob3N0LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAg Y2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBsYW5nPTNEIkVOLVVTIj48bzpwPiZuYnNwOzwvbzpw Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+ TXkgcXVlc3Rpb24gaXMgdGhlIGZvbGxvd2luZyA6ID0KPG86cD48L286cD48L3NwYW4+PC9wPgo8 cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMiPldoZW4gbWlncmF0aW5n IHRoZSBHdWVzdCB0byBhbm89CnRoZXIgaG9zdCAsJm5ic3A7IGFuZCB0aGUgbWlncmF0aW5nIGJh Y2sgdG8gdGhlIGZpcnN0IG9uZSAsJm5ic3A7Cjxicj4KdGhlIEd1ZXN0IHNvZnR3YXJlIGRvZXNu JiM4MjE3O3QgcmVjZWl2ZSBhbnltb3JlIGRhdGFzIGZyb20gdGhlIGhvc3QgdW5sZXNzPQogSSBy ZXN0YXJ0IHRoZSBHdWVzdCBzb2Z0d2FyZSB0byByZS1vcGVuIHRoZSAvZGV2L3ZpcnRpbyBmaWxl LjxvOnA+PC9vOnA+PC89CnNwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxh bmc9M0QiRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNv Tm9ybWFsIj48c3BhbiBsYW5nPTNEIkVOLVVTIj5JcyB0aGVyZSBhbnkgd2F5IHRvIGRldGVjdCBp biB0PQpoZSBHdWVzdCB0aGF0IG1pZ3JhdGlvbiBoYXMgYmVlbiBkb25lIHNvIHdlIGhhdmUgdG8g cmVvcGVuICZuYnNwO3RoZSBmaWxlID89CjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9 M0QiTXNvTm9ybWFsIj48c3BhbiBsYW5nPTNEIkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh bj48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+QW55IGhp bnQgaXMgd2VsY29tZSAuPG86cD48L286cD0KPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05v cm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPgo8 cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMiPlRoYW5rcyBmb3IgaGVs cC48bzpwPjwvbzpwPjwvc3A9CmFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBs YW5nPTNEIkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+Cjx0YWJsZSBjbGFzcz0z RCJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPTNEIjAiIGNlbGxzcGFjaW5nPTNEIjAiIGNlbGxwYWRk aW5nPQo9M0QiMCI+Cjx0Ym9keT4KPHRyPgo8dGQgdmFsaWduPTNEInRvcCIgc3R5bGU9M0QicGFk ZGluZzowY20gNC41cHQgMGNtIDBjbSI+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PGI+PHNwYW4g bGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1zaXplOjkuMHB0O2Zvbj0KdC1mYW1pbHk6JnF1 b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojODg4ODg4O21zby1m YXJlYXN0PQotbGFuZ3VhZ2U6RlIiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvYj48L3A+Cjxw IGNsYXNzPTNEIk1zb05vcm1hbCI+PGI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9u dC1zaXplOjguNXB0O2Zvbj0KdC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1z ZXJpZiZxdW90Oztjb2xvcjojODg4ODg4O21zby1mYXJlYXN0PQotbGFuZ3VhZ2U6RlIiPkouUC4g UmliZWF1dmlsbGU8bzpwPjwvbzpwPjwvc3Bhbj48L2I+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3Jt YWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtc2l6ZTo4LjVwdDtmb250LWY9 CmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6Izcz NzM3Mzttc28tZmFyZWFzdC1sYT0Kbmd1YWdlOkZSIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48 L3A+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIHN0eWxlPTNEInBhZGRpbmc6Mi4yNXB0IDQuNXB0IDQu NXB0IDBjbSI+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gc3R5bGU9M0QiZm9udC1zaXpl OjguNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaT0KYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx dW90Oztjb2xvcjpyZWQ7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RlIiPlA6Cjwvc3Bhbj48c3BhbiBz dHlsZT0zRCJmb250LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1 b3Q7cz0KYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiM3MzczNzM7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6 RlIiPiYjNDM7MzMuKDApLjEuNDcuMTcuPQoyMC40OTwvc3Bhbj48c3BhbiBzdHlsZT0zRCJmb250 LXNpemU6OC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnE9CnVvdDtzYW5zLXNl cmlmJnF1b3Q7O2NvbG9yOiM3MzczNzM7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RlIiPjxvOnA+PC9v OnA+PC9zcD0KYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPTNEImZv bnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtBcmk9CmFsJnF1b3Q7LCZxdW90O3NhbnMt c2VyaWYmcXVvdDs7Y29sb3I6IzczNzM3Mzttc28tZmFyZWFzdC1sYW5ndWFnZTpGUiI+LjxvOj0K cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPTNE ImZvbnQtc2l6ZTo4LjVwdDtmb250LWZhbWlseTomcXVvdDtBcmk9CmFsJnF1b3Q7LCZxdW90O3Nh bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzczNzM3Mzttc28tZmFyZWFzdC1sYW5ndWFnZTpGUiI+UHV0 ZT0KYXV4IDMgRXRhZ2UgNSZuYnNwOyBCdXJlYXUgNDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAg Y2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0zRCJmb250LXNpemU6OC41cHQ7Zm9udC1m YW1pbHk6JnF1b3Q7QXJpPQphbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiM3 MzczNzM7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RlIiPjxvOnA9Cj4mbmJzcDs8L286cD48L3NwYW4+ PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjx1PjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxl PTNEImZvbnQtc2l6ZTo5LjBwdDtjb2w9Cm9yOnJlZDttc28tZmFyZWFzdC1sYW5ndWFnZTpGUiI+ PGEgaHJlZj0zRCJtYWlsdG86anByaWJlYXV2aWxsZUBheHdheS5jb20iPj0KPHNwYW4gbGFuZz0z RCJGUiIgc3R5bGU9M0QiY29sb3I6Ymx1ZSI+anByaWJlYXV2aWxsZUBheHdheS5jb208L3NwYW4+ PC9hPjwvPQpzcGFuPjwvdT48dT48c3BhbiBzdHlsZT0zRCJmb250LXNpemU6OS4wcHQ7Y29sb3I6 cmVkO21zby1mYXJlYXN0LWxhbmd1YWdlOkY9ClIiPjxicj4KPC9zcGFuPjwvdT48c3BhbiBzdHls ZT0zRCJmb250LXNpemU6OS4wcHQ7Y29sb3I6cmVkO21zby1mYXJlYXN0LWxhbmd1YWdlOkZSPQoi PjxhIGhyZWY9M0QiaHR0cDovL3d3dy5heHdheS5jb20vIj48c3BhbiBzdHlsZT0zRCJjb2xvcjpy ZWQiPmh0dHA6Ly93d3cuYXg9CndheS5jb208L3NwYW4+PC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwv cD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0zRCJmb250LXNpemU6OC41cHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7QXJpPQphbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2Nv bG9yOiM3MzczNzM7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RlIiPjxvOnA9Cj4mbmJzcDs8L286cD48 L3NwYW4+PC9wPgo8L3RkPgo8L3RyPgo8L3Rib2R5Pgo8L3RhYmxlPgo8cCBjbGFzcz0zRCJNc29O b3JtYWwiPjxzcGFuIHN0eWxlPTNEImRpc3BsYXk6bm9uZTttc28tZmFyZWFzdC1sYW5ndWFnZTpG UiI9Cj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+Cjx0YWJsZSBjbGFzcz0zRCJNc29Ob3Jt YWxUYWJsZSIgYm9yZGVyPTNEIjAiIGNlbGxzcGFjaW5nPTNEIjAiIGNlbGxwYWRkaW5nPQo9M0Qi MCI+Cjx0Ym9keT4KPHRyPgo8dGQgc3R5bGU9M0QicGFkZGluZzo0LjVwdCA0LjVwdCA0LjVwdCAw Y20iPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPTNEImZvbnQtc2l6ZToxOC4w cHQ7Zm9udC1mYW1pbHk6V2ViZGluZ3M9Cjtjb2xvcjojODg4ODg4O21zby1mYXJlYXN0LWxhbmd1 YWdlOkZSIj5QPC9zcGFuPjxzcGFuIHN0eWxlPTNEImZvbnQtc2l6ZTo4Lj0KMHB0O2ZvbnQtZmFt aWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6Izg4ODg4 ODttc28tPQpmYXJlYXN0LWxhbmd1YWdlOkZSIj4mbmJzcDtQZW5zZXogPUUwIGwmIzgyMTc7ZW52 aXJvbm5lbWVudCBhdmFudCBkJiM4MjE3O2k9Cm1wcmltZXIuPC9zcGFuPjxzcGFuIHN0eWxlPTNE ImZvbnQtc2l6ZTo4LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90Oz0KLCZxdW90O3Nh bnMtc2VyaWYmcXVvdDs7Y29sb3I6Izg4ODg4ODttc28tZmFyZWFzdC1sYW5ndWFnZTpGUiI+PG86 cD48L286cD48PQovc3Bhbj48L3A+CjwvdGQ+CjwvdHI+CjwvdGJvZHk+CjwvdGFibGU+CjxwIGNs YXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gc3R5bGU9M0QibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RlIi PjxvOnA+Jm5ic3A7PD0KL286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxv OnA+Jm5ic3A7PC9vOnA+PC9wPgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+CgotLV8wMDBfMTA1MUVG QjREM0ExNzA0NjgwQzM4Q0NBQUM1ODM2RDI5MkYwMjhBRVdQVFhNQUlMMnB0eGF4d18tLQo= --===============6460809798696346867==-- From vfeenstr at redhat.com Fri Jan 15 04:51:54 2016 Content-Type: multipart/mixed; boundary="===============2536433379126566189==" MIME-Version: 1.0 From: Vinzenz Feenstra To: users at ovirt.org Subject: Re: [ovirt-users] What's going on open channel devices when migrating the Guest ? Date: Fri, 15 Jan 2016 10:51:50 +0100 Message-ID: <90F5CE30-927A-48A3-AC82-97118A1325B4@redhat.com> In-Reply-To: 1051EFB4D3A1704680C38CCAAC5836D292F028AE@WPTXMAIL2.ptx.axway.int --===============2536433379126566189== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --Apple-Mail=3D_69325062-C30B-463A-AAA3-38735D2FCEEA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=3Dutf-8 > On Jan 15, 2016, at 10:08 AM, Jean-Pierre Ribeauville =3D wrote: >=3D20 > Hi, > =3D20 > I=3DE2=3D80=3D99m using a channel device between host and guest to exchan= ge =3D datas every 20 seconds. > =3D20 > On the Guest size , there is an open /dev/virtio file on which we read = =3D continuously what=3DE2=3D80=3D99s=3D20 > sent by the host. > =3D20 > My question is the following :=3D20 > When migrating the Guest to another host , and the migrating back to =3D the first one , =3D20 > the Guest software doesn=3DE2=3D80=3D99t receive anymore datas from the h= ost =3D unless I restart the Guest software to re-open the /dev/virtio file. > =3D20 > Is there any way to detect in the Guest that migration has been done =3D so we have to reopen the file ? Well you can look how we do it in the ovirt-guest-agent. But we=3DE2=3D80= =3D99re=3D not reopening the unix domain socket - We=3DE2=3D80=3D99re basically on re= ad =3D failure just rescheduling the read - That causes no problems after =3D migrations - it just continues=3D20 Our python code for that is here: =3D https://github.com/oVirt/ovirt-guest-agent/blob/master/ovirt-guest-agent/V= =3D irtIoChannel.py HTH > =3D20 > Any hint is welcome . > =3D20 > Thanks for help. > =3D20 > =3D20 > J.P. Ribeauville > =3D20 > P: +33.(0).1.47.17.20.49 > . > Puteaux 3 Etage 5 Bureau 4 > =3D20 > jpribeauville(a)axway.com > http://www.axway.com > =3D20 > P Pensez =3DC3=3DA0 l=3DE2=3D80=3D99environnement avant d=3DE2=3D80=3D99i= mprimer. > =3D20 > =3D20 > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users =3D --Apple-Mail=3D_69325062-C30B-463A-AAA3-38735D2FCEEA Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=3Dutf-8
On Jan 15, 2016, at 10:08 AM, Jean-Pierre Ribeauville <jpribeauville(a)axway.com> wrote:

Hi,<= o:p =3D class=3D3D"">
 
I=3D= E2=3D80=3D99=3D m using a channel device between host and guest to exchange datas every =3D 20 seconds.
 
On the Guest size , there = is =3D an open /dev/virtio file on which we read continuously what=3DE2=3D80=3D99s=  
sent by th= e =3D host.
 
My question is the followi= ng =3D : 
When migrating the Guest to another host =3D ,  and the migrating back to the first one ,  
the Guest = =3D software doesn=3DE2=3D80=3D99t receive anymore datas from the host unless I= =3D restart the Guest software to re-open the /dev/virtio file.
 
Is = =3D there any way to detect in the Guest that migration has been done so we =3D have to reopen  the file =3D ?

Wel= l=3D you can look how we do it in the ovirt-guest-agent. But we=3DE2=3D80=3D99r= e =3D not reopening the unix domain socket - We=3DE2=3D80=3D99re basically on rea= d =3D failure just rescheduling the read - That causes no problems after =3D migrations - it just continues 


HTH

 
Any = =3D hint is welcome .
 
Thanks for help.
 
 
J.P. Ribeauville
 
P: +33.(0).1.47.17.20.49
.
Puteaux 3 Etage =3D 5  Bureau 4
 
 

=
<= div =3D style=3D3D"margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: =3D Calibri, sans-serif;" class=3D3D"">P Pensez =3DC3=3DA= 0 =3D l=3DE2=3D80=3D99environnement avant d=3DE2=3D80=3D99imprimer.
 
 
_______________________________________________
Users mailing =3D list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users
=3D --Apple-Mail=3D_69325062-C30B-463A-AAA3-38735D2FCEEA-- --===============2536433379126566189== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tQXBwbGUtTWFpbD1fNjkzMjUwNjItQzMwQi00NjNBLUFBQTMtMzg3MzVEMkZDRUVBCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOwoJY2hhcnNldD11dGYtOAoKCj4gT24gSmFuIDE1LCAyMDE2LCBhdCAxMDowOCBBTSwg SmVhbi1QaWVycmUgUmliZWF1dmlsbGUgPQo8anByaWJlYXV2aWxsZUBheHdheS5jb20+IHdyb3Rl Ogo+PTIwCj4gSGksCj4gPTIwCj4gST1FMj04MD05OW0gdXNpbmcgYSBjaGFubmVsIGRldmljZSBi ZXR3ZWVuIGhvc3QgYW5kIGd1ZXN0IHRvIGV4Y2hhbmdlID0KZGF0YXMgZXZlcnkgMjAgc2Vjb25k cy4KPiA9MjAKPiBPbiB0aGUgR3Vlc3Qgc2l6ZSAsIHRoZXJlIGlzIGFuIG9wZW4gL2Rldi92aXJ0 aW8gZmlsZSBvbiB3aGljaCB3ZSByZWFkID0KY29udGludW91c2x5IHdoYXQ9RTI9ODA9OTlzPTIw Cj4gc2VudCBieSB0aGUgaG9zdC4KPiA9MjAKPiBNeSBxdWVzdGlvbiBpcyB0aGUgZm9sbG93aW5n IDo9MjAKPiBXaGVuIG1pZ3JhdGluZyB0aGUgR3Vlc3QgdG8gYW5vdGhlciBob3N0ICwgIGFuZCB0 aGUgbWlncmF0aW5nIGJhY2sgdG8gPQp0aGUgZmlyc3Qgb25lICwgPTIwCj4gdGhlIEd1ZXN0IHNv ZnR3YXJlIGRvZXNuPUUyPTgwPTk5dCByZWNlaXZlIGFueW1vcmUgZGF0YXMgZnJvbSB0aGUgaG9z dCA9CnVubGVzcyBJIHJlc3RhcnQgdGhlIEd1ZXN0IHNvZnR3YXJlIHRvIHJlLW9wZW4gdGhlIC9k ZXYvdmlydGlvIGZpbGUuCj4gPTIwCj4gSXMgdGhlcmUgYW55IHdheSB0byBkZXRlY3QgaW4gdGhl IEd1ZXN0IHRoYXQgbWlncmF0aW9uIGhhcyBiZWVuIGRvbmUgPQpzbyB3ZSBoYXZlIHRvIHJlb3Bl biAgdGhlIGZpbGUgPwoKV2VsbCB5b3UgY2FuIGxvb2sgaG93IHdlIGRvIGl0IGluIHRoZSBvdmly dC1ndWVzdC1hZ2VudC4gQnV0IHdlPUUyPTgwPTk5cmU9CiBub3QgcmVvcGVuaW5nIHRoZSB1bml4 IGRvbWFpbiBzb2NrZXQgLSBXZT1FMj04MD05OXJlIGJhc2ljYWxseSBvbiByZWFkID0KZmFpbHVy ZSBqdXN0IHJlc2NoZWR1bGluZyB0aGUgcmVhZCAtIFRoYXQgY2F1c2VzIG5vIHByb2JsZW1zIGFm dGVyID0KbWlncmF0aW9ucyAtIGl0IGp1c3QgY29udGludWVzPTIwCgpPdXIgcHl0aG9uIGNvZGUg Zm9yIHRoYXQgaXMgaGVyZTogPQpodHRwczovL2dpdGh1Yi5jb20vb1ZpcnQvb3ZpcnQtZ3Vlc3Qt YWdlbnQvYmxvYi9tYXN0ZXIvb3ZpcnQtZ3Vlc3QtYWdlbnQvVj0KaXJ0SW9DaGFubmVsLnB5CgpI VEgKCj4gPTIwCj4gQW55IGhpbnQgaXMgd2VsY29tZSAuCj4gPTIwCj4gVGhhbmtzIGZvciBoZWxw Lgo+ID0yMAo+ID0yMAo+IEouUC4gUmliZWF1dmlsbGUKPiA9MjAKPiBQOiArMzMuKDApLjEuNDcu MTcuMjAuNDkKPiAuCj4gUHV0ZWF1eCAzIEV0YWdlIDUgIEJ1cmVhdSA0Cj4gPTIwCj4ganByaWJl YXV2aWxsZUBheHdheS5jb20gPG1haWx0bzpqcHJpYmVhdXZpbGxlQGF4d2F5LmNvbT4KPiBodHRw Oi8vd3d3LmF4d2F5LmNvbSA8aHR0cDovL3d3dy5heHdheS5jb20vPgo+ID0yMAo+IFAgUGVuc2V6 ID1DMz1BMCBsPUUyPTgwPTk5ZW52aXJvbm5lbWVudCBhdmFudCBkPUUyPTgwPTk5aW1wcmltZXIu Cj4gPTIwCj4gPTIwCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBVc2VycyBtYWlsaW5nIGxpc3QKPiBVc2Vyc0BvdmlydC5vcmcgPG1haWx0bzpVc2Vy c0BvdmlydC5vcmc+Cj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3Vz ZXJzID0KPGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vycz4KCi0t QXBwbGUtTWFpbD1fNjkzMjUwNjItQzMwQi00NjNBLUFBQTMtMzg3MzVEMkZDRUVBCkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L2h0 bWw7CgljaGFyc2V0PXV0Zi04Cgo8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PTNEIkNvbnRl bnQtVHlwZSIgY29udGVudD0zRCJ0ZXh0L2h0bWwgPQpjaGFyc2V0PTNEdXRmLTgiPjwvaGVhZD48 Ym9keSBzdHlsZT0zRCJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7ID0KLXdlYmtpdC1uYnNwLW1vZGU6 IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgPQpjbGFzcz0z RCIiPjxiciBjbGFzcz0zRCIiPjxkaXY+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIiBjbGFzcz0z RCIiPjxkaXYgPQpjbGFzcz0zRCIiPk9uIEphbiAxNSwgMjAxNiwgYXQgMTA6MDggQU0sIEplYW4t UGllcnJlIFJpYmVhdXZpbGxlICZsdDs8YSA9CmhyZWY9M0QibWFpbHRvOmpwcmliZWF1dmlsbGVA YXh3YXkuY29tIiA9CmNsYXNzPTNEIiI+anByaWJlYXV2aWxsZUBheHdheS5jb208L2E+Jmd0OyB3 cm90ZTo8L2Rpdj48YnIgPQpjbGFzcz0zRCJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj48ZGl2 IGNsYXNzPTNEIiI+PGRpdiA9CmNsYXNzPTNEIldvcmRTZWN0aW9uMSIgc3R5bGU9M0QicGFnZTog V29yZFNlY3Rpb24xOyBmb250LWZhbWlseTogPQpIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJweDsg Zm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQ6IG5vcm1hbDsgPQpmb250LXdlaWdodDog bm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWdu OiA9CnN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUt c3BhY2U6IG5vcm1hbDsgPQp3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0 LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7Ij48ZGl2ID0Kc3R5bGU9M0QibWFyZ2luOiAwY20gMGNt IDAuMDAwMXB0OyBmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiA9CkNhbGlicmksIHNhbnMt c2VyaWY7IiBjbGFzcz0zRCIiPjxzcGFuIGxhbmc9M0QiRU4tVVMiIGNsYXNzPTNEIiI+SGksPG86 cCA9CmNsYXNzPTNEIiI+PC9vOnA+PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9M0QibWFyZ2luOiAw Y20gMGNtIDAuMDAwMXB0OyA9CmZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IENhbGlicmks IHNhbnMtc2VyaWY7IiBjbGFzcz0zRCIiPjxzcGFuID0KbGFuZz0zRCJFTi1VUyIgY2xhc3M9M0Qi Ij48bzpwIGNsYXNzPTNEIiI+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZGl2PjxkaXYgPQpzdHlsZT0z RCJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6 ID0KQ2FsaWJyaSwgc2Fucy1zZXJpZjsiIGNsYXNzPTNEIiI+PHNwYW4gbGFuZz0zRCJFTi1VUyIg Y2xhc3M9M0QiIj5JPUUyPTgwPTk5PQptIHVzaW5nIGEgY2hhbm5lbCBkZXZpY2UgYmV0d2VlbiBo b3N0IGFuZCBndWVzdCB0byBleGNoYW5nZSBkYXRhcyBldmVyeSA9CjIwIHNlY29uZHMuPG86cCBj bGFzcz0zRCIiPjwvbzpwPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMGNtID0K MGNtIDAuMDAwMXB0OyBmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5z LXNlcmlmOyIgPQpjbGFzcz0zRCIiPjxzcGFuIGxhbmc9M0QiRU4tVVMiIGNsYXNzPTNEIiI+PG86 cCA9CmNsYXNzPTNEIiI+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9M0QibWFy Z2luOiAwY20gMGNtID0KMC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IENh bGlicmksIHNhbnMtc2VyaWY7IiA9CmNsYXNzPTNEIiI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgY2xh c3M9M0QiIj5PbiB0aGUgR3Vlc3Qgc2l6ZSAsIHRoZXJlIGlzID0KYW4gb3BlbiAvZGV2L3ZpcnRp byBmaWxlIG9uIHdoaWNoIHdlIHJlYWQgY29udGludW91c2x5IHdoYXQ9RTI9ODA9OTlzPHNwYW49 CiBjbGFzcz0zRCJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xhc3M9 M0QiIj5zZW50IGJ5IHRoZSA9Cmhvc3QuPG86cCBjbGFzcz0zRCIiPjwvbzpwPjwvc3Bhbj48L2Rp dj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMGNtIDBjbSA9CjAuMDAwMXB0OyBmb250LXNpemU6IDEx cHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgPQpjbGFzcz0zRCIiPjxzcGFu IGxhbmc9M0QiRU4tVVMiIGNsYXNzPTNEIiI+PG86cCA9CmNsYXNzPTNEIiI+Jm5ic3A7PC9vOnA+ PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwY20gMGNtID0KMC4wMDAxcHQ7IGZv bnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IiA9CmNsYXNz PTNEIiI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgY2xhc3M9M0QiIj5NeSBxdWVzdGlvbiBpcyB0aGUg Zm9sbG93aW5nID0KOjxzcGFuIGNsYXNzPTNEIkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7 PC9zcGFuPjxvOnAgPQpjbGFzcz0zRCIiPjwvbzpwPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPTNE Im1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsgPQpmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5 OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgY2xhc3M9M0QiIj48c3BhbiA9Cmxhbmc9M0QiRU4tVVMi IGNsYXNzPTNEIiI+V2hlbiBtaWdyYXRpbmcgdGhlIEd1ZXN0IHRvIGFub3RoZXIgaG9zdCA9Ciwm bmJzcDsgYW5kIHRoZSBtaWdyYXRpbmcgYmFjayB0byB0aGUgZmlyc3Qgb25lICwmbmJzcDs8c3Bh biA9CmNsYXNzPTNEIkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxiciBjbGFz cz0zRCIiPnRoZSBHdWVzdCA9CnNvZnR3YXJlIGRvZXNuPUUyPTgwPTk5dCByZWNlaXZlIGFueW1v cmUgZGF0YXMgZnJvbSB0aGUgaG9zdCB1bmxlc3MgSSA9CnJlc3RhcnQgdGhlIEd1ZXN0IHNvZnR3 YXJlIHRvIHJlLW9wZW4gdGhlIC9kZXYvdmlydGlvIGZpbGUuPG86cCA9CmNsYXNzPTNEIiI+PC9v OnA+PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyA9 CmZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IiBjbGFz cz0zRCIiPjxzcGFuID0KbGFuZz0zRCJFTi1VUyIgY2xhc3M9M0QiIj48bzpwIGNsYXNzPTNEIiI+ Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZGl2PjxkaXYgPQpzdHlsZT0zRCJtYXJnaW46IDBjbSAwY20g MC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6ID0KQ2FsaWJyaSwgc2Fucy1z ZXJpZjsiIGNsYXNzPTNEIiI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgY2xhc3M9M0QiIj5JcyA9CnRo ZXJlIGFueSB3YXkgdG8gZGV0ZWN0IGluIHRoZSBHdWVzdCB0aGF0IG1pZ3JhdGlvbiBoYXMgYmVl biBkb25lIHNvIHdlID0KaGF2ZSB0byByZW9wZW4gJm5ic3A7dGhlIGZpbGUgPQo/PC9zcGFuPjwv ZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PjxiciBjbGFzcz0zRCIiPjwvZGl2Pjxk aXY+V2VsbD0KIHlvdSBjYW4gbG9vayBob3cgd2UgZG8gaXQgaW4gdGhlIG92aXJ0LWd1ZXN0LWFn ZW50LiBCdXQgd2U9RTI9ODA9OTlyZSA9Cm5vdCByZW9wZW5pbmcgdGhlIHVuaXggZG9tYWluIHNv Y2tldCAtIFdlPUUyPTgwPTk5cmUgYmFzaWNhbGx5IG9uIHJlYWQgPQpmYWlsdXJlIGp1c3QgcmVz Y2hlZHVsaW5nIHRoZSByZWFkIC0gVGhhdCBjYXVzZXMgbm8gcHJvYmxlbXMgYWZ0ZXIgPQptaWdy YXRpb25zIC0gaXQganVzdCBjb250aW51ZXMmbmJzcDs8L2Rpdj48ZGl2PjxiciA9CmNsYXNzPTNE IiI+PC9kaXY+PGRpdj5PdXIgcHl0aG9uIGNvZGUgZm9yIHRoYXQgaXMgaGVyZTombmJzcDs8YSA9 CmhyZWY9M0QiaHR0cHM6Ly9naXRodWIuY29tL29WaXJ0L292aXJ0LWd1ZXN0LWFnZW50L2Jsb2Iv bWFzdGVyL292aXJ0LWd1ZXN0PQotYWdlbnQvVmlydElvQ2hhbm5lbC5weSIgPQpjbGFzcz0zRCIi Pmh0dHBzOi8vZ2l0aHViLmNvbS9vVmlydC9vdmlydC1ndWVzdC1hZ2VudC9ibG9iL21hc3Rlci9v dmlydC1ndT0KZXN0LWFnZW50L1ZpcnRJb0NoYW5uZWwucHk8L2E+PC9kaXY+PGRpdj48YnIgPQpj bGFzcz0zRCIiPjwvZGl2PjxkaXY+SFRIPC9kaXY+PGJyIGNsYXNzPTNEIiI+PGJsb2NrcXVvdGUg dHlwZT0zRCJjaXRlIiA9CmNsYXNzPTNEIiI+PGRpdiBjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0Qi V29yZFNlY3Rpb24xIiBzdHlsZT0zRCJwYWdlOiA9CldvcmRTZWN0aW9uMTsgZm9udC1mYW1pbHk6 IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiA9Cm5vcm1hbDsgZm9udC12 YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiA9Cm5v cm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7 ID0KdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0 bzsgd29yZC1zcGFjaW5nOiA9CjBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyI+ PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBjbSAwY20gPQowLjAwMDFwdDsgZm9udC1zaXplOiAxMXB0 OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiID0KY2xhc3M9M0QiIj48c3BhbiBs YW5nPTNEIkVOLVVTIiBjbGFzcz0zRCIiPjxvOnAgPQpjbGFzcz0zRCIiPjwvbzpwPjwvc3Bhbj48 L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsgPQpmb250LXNpemU6 IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgY2xhc3M9M0QiIj48c3Bh biA9Cmxhbmc9M0QiRU4tVVMiIGNsYXNzPTNEIiI+PG86cCBjbGFzcz0zRCIiPiZuYnNwOzwvbzpw Pjwvc3Bhbj48L2Rpdj48ZGl2ID0Kc3R5bGU9M0QibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyBm b250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiA9CkNhbGlicmksIHNhbnMtc2VyaWY7IiBjbGFz cz0zRCIiPjxzcGFuIGxhbmc9M0QiRU4tVVMiIGNsYXNzPTNEIiI+QW55ID0KaGludCBpcyB3ZWxj b21lIC48bzpwIGNsYXNzPTNEIiI+PC9vOnA+PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9M0QibWFy Z2luOiA9CjBjbSAwY20gMC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IENh bGlicmksIHNhbnMtc2VyaWY7IiA9CmNsYXNzPTNEIiI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgY2xh c3M9M0QiIj48bzpwID0KY2xhc3M9M0QiIj4mbmJzcDs8L286cD48L3NwYW4+PC9kaXY+PGRpdiBz dHlsZT0zRCJtYXJnaW46IDBjbSAwY20gPQowLjAwMDFwdDsgZm9udC1zaXplOiAxMXB0OyBmb250 LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiID0KY2xhc3M9M0QiIj48c3BhbiBsYW5nPTNE IkVOLVVTIiBjbGFzcz0zRCIiPlRoYW5rcyBmb3IgaGVscC48bzpwID0KY2xhc3M9M0QiIj48L286 cD48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7ID0K Zm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiIGNsYXNz PTNEIiI+PHNwYW4gPQpsYW5nPTNEIkVOLVVTIiBjbGFzcz0zRCIiPjxvOnAgY2xhc3M9M0QiIj4m bmJzcDs8L286cD48L3NwYW4+PC9kaXY+PHRhYmxlID0KY2xhc3M9M0QiTXNvTm9ybWFsVGFibGUi IGJvcmRlcj0zRCIwIiBjZWxsc3BhY2luZz0zRCIwIiA9CmNlbGxwYWRkaW5nPTNEIjAiPjx0Ym9k eSBjbGFzcz0zRCIiPjx0ciBjbGFzcz0zRCIiPjx0ZCB2YWxpZ249M0QidG9wIiA9CnN0eWxlPTNE InBhZGRpbmc6IDBjbSA0LjVwdCAwY20gMGNtOyIgY2xhc3M9M0QiIj48ZGl2IHN0eWxlPTNEIm1h cmdpbjogPQowY20gMGNtIDAuMDAwMXB0OyBmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBD YWxpYnJpLCBzYW5zLXNlcmlmOyIgPQpjbGFzcz0zRCIiPjxiIGNsYXNzPTNEIiI+PHNwYW4gbGFu Zz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1zaXplOiA5cHQ7ID0KZm9udC1mYW1pbHk6IEFyaWFs LCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDEzNiwgMTM2LCAxMzYpOyIgPQpjbGFzcz0zRCIiPjxv OnAgY2xhc3M9M0QiIj4mbmJzcDs8L286cD48L3NwYW4+PC9iPjwvZGl2PjxkaXYgPQpzdHlsZT0z RCJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6 ID0KQ2FsaWJyaSwgc2Fucy1zZXJpZjsiIGNsYXNzPTNEIiI+PGIgY2xhc3M9M0QiIj48c3BhbiBs YW5nPTNEIkVOLVVTIiA9CnN0eWxlPTNEImZvbnQtc2l6ZTogOC41cHQ7IGZvbnQtZmFtaWx5OiBB cmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6ID0KcmdiKDEzNiwgMTM2LCAxMzYpOyIgY2xhc3M9M0Qi Ij5KLlAuIFJpYmVhdXZpbGxlPG86cCA9CmNsYXNzPTNEIiI+PC9vOnA+PC9zcGFuPjwvYj48L2Rp dj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMGNtIDBjbSA9CjAuMDAwMXB0OyBmb250LXNpemU6IDEx cHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgPQpjbGFzcz0zRCIiPjxzcGFu IGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtc2l6ZTogOC41cHQ7IGZvbnQtZmFtaWx5OiA9 CkFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDExNSwgMTE1LCAxMTUpOyIgY2xhc3M9M0Qi Ij48bzpwID0KY2xhc3M9M0QiIj4mbmJzcDs8L286cD48L3NwYW4+PC9kaXY+PC90ZD48L3RyPjx0 ciBjbGFzcz0zRCIiPjx0ZCA9CnN0eWxlPTNEInBhZGRpbmc6IDIuMjVwdCA0LjVwdCA0LjVwdCAw Y207IiBjbGFzcz0zRCIiPjxkaXYgPQpzdHlsZT0zRCJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7 IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6ID0KQ2FsaWJyaSwgc2Fucy1zZXJpZjsiIGNs YXNzPTNEIiI+PHNwYW4gc3R5bGU9M0QiZm9udC1zaXplOiA4LjVwdDsgPQpmb250LWZhbWlseTog QXJpYWwsIHNhbnMtc2VyaWY7IGNvbG9yOiByZWQ7IiBjbGFzcz0zRCIiPlA6PHNwYW4gPQpjbGFz cz0zRCJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gPQpz dHlsZT0zRCJmb250LXNpemU6IDguNXB0OyBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7 IGNvbG9yOiA9CnJnYigxMTUsIDExNSwgMTE1KTsiIGNsYXNzPTNEIiI+KzMzLigwKS4xLjQ3LjE3 LjIwLjQ5PC9zcGFuPjxzcGFuID0Kc3R5bGU9M0QiZm9udC1zaXplOiA4LjVwdDsgZm9udC1mYW1p bHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjogPQpyZ2IoMTE1LCAxMTUsIDExNSk7IiBjbGFz cz0zRCIiPjxvOnAgY2xhc3M9M0QiIj48L286cD48L3NwYW4+PC9kaXY+PGRpdiA9CnN0eWxlPTNE Im1hcmdpbjogMGNtIDBjbSAwLjAwMDFwdDsgZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTog PQpDYWxpYnJpLCBzYW5zLXNlcmlmOyIgY2xhc3M9M0QiIj48c3BhbiBzdHlsZT0zRCJmb250LXNp emU6IDguNXB0OyA9CmZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigx MTUsIDExNSwgMTE1KTsiID0KY2xhc3M9M0QiIj4uPG86cCBjbGFzcz0zRCIiPjwvbzpwPjwvc3Bh bj48L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMGNtID0KMGNtIDAuMDAwMXB0OyBmb250LXNp emU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgPQpjbGFzcz0zRCIi PjxzcGFuIHN0eWxlPTNEImZvbnQtc2l6ZTogOC41cHQ7IGZvbnQtZmFtaWx5OiBBcmlhbCwgPQpz YW5zLXNlcmlmOyBjb2xvcjogcmdiKDExNSwgMTE1LCAxMTUpOyIgY2xhc3M9M0QiIj5QdXRlYXV4 IDMgRXRhZ2UgPQo1Jm5ic3A7IEJ1cmVhdSA0PG86cCBjbGFzcz0zRCIiPjwvbzpwPjwvc3Bhbj48 L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogPQowY20gMGNtIDAuMDAwMXB0OyBmb250LXNpemU6 IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyIgPQpjbGFzcz0zRCIiPjxz cGFuIHN0eWxlPTNEImZvbnQtc2l6ZTogOC41cHQ7IGZvbnQtZmFtaWx5OiBBcmlhbCwgPQpzYW5z LXNlcmlmOyBjb2xvcjogcmdiKDExNSwgMTE1LCAxMTUpOyIgY2xhc3M9M0QiIj48bzpwID0KY2xh c3M9M0QiIj4mbmJzcDs8L286cD48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBj bSAwY20gPQowLjAwMDFwdDsgZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwg c2Fucy1zZXJpZjsiID0KY2xhc3M9M0QiIj48dSBjbGFzcz0zRCIiPjxzcGFuIGxhbmc9M0QiRU4t VVMiIHN0eWxlPTNEImZvbnQtc2l6ZTogOXB0OyA9CmNvbG9yOiByZWQ7IiBjbGFzcz0zRCIiPjxh IGhyZWY9M0QibWFpbHRvOmpwcmliZWF1dmlsbGVAYXh3YXkuY29tIiA9CnN0eWxlPTNEImNvbG9y OiBwdXJwbGU7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyIgY2xhc3M9M0QiIj48c3BhbiA9 Cmxhbmc9M0QiRlIiIHN0eWxlPTNEImNvbG9yOiBibHVlOyIgPQpjbGFzcz0zRCIiPmpwcmliZWF1 dmlsbGVAYXh3YXkuY29tPC9zcGFuPjwvYT48L3NwYW4+PC91Pjx1ID0KY2xhc3M9M0QiIj48c3Bh biBzdHlsZT0zRCJmb250LXNpemU6IDlwdDsgY29sb3I6IHJlZDsiIGNsYXNzPTNEIiI+PGJyID0K Y2xhc3M9M0QiIj48L3NwYW4+PC91PjxzcGFuIHN0eWxlPTNEImZvbnQtc2l6ZTogOXB0OyBjb2xv cjogcmVkOyIgPQpjbGFzcz0zRCIiPjxhIGhyZWY9M0QiaHR0cDovL3d3dy5heHdheS5jb20vIiBz dHlsZT0zRCJjb2xvcjogcHVycGxlOyA9CnRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyIgY2xh c3M9M0QiIj48c3BhbiBzdHlsZT0zRCJjb2xvcjogcmVkOyIgPQpjbGFzcz0zRCIiPmh0dHA6Ly93 d3cuYXh3YXkuY29tPC9zcGFuPjwvYT48bzpwID0KY2xhc3M9M0QiIj48L286cD48L3NwYW4+PC9k aXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBjbSAwY20gMC4wMDAxcHQ7ID0KZm9udC1zaXplOiAx MXB0OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiIGNsYXNzPTNEIiI+PHNwYW4g PQpzdHlsZT0zRCJmb250LXNpemU6IDguNXB0OyBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2Vy aWY7IGNvbG9yOiA9CnJnYigxMTUsIDExNSwgMTE1KTsiIGNsYXNzPTNEIiI+PG86cCA9CmNsYXNz PTNEIiI+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZGl2PjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+ PHAgPQpjbGFzcz0zRCJNc29Ob3JtYWwiIHN0eWxlPTNEIm1hcmdpbjogMGNtIDBjbSAwLjAwMDFw dDsgZm9udC1zaXplOiAxMXB0OyA9CmZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyI+ PC9wPjx0YWJsZSBjbGFzcz0zRCJNc29Ob3JtYWxUYWJsZSIgPQpib3JkZXI9M0QiMCIgY2VsbHNw YWNpbmc9M0QiMCIgY2VsbHBhZGRpbmc9M0QiMCI+PHRib2R5IGNsYXNzPTNEIiI+PHRyID0KY2xh c3M9M0QiIj48dGQgc3R5bGU9M0QicGFkZGluZzogNC41cHQgNC41cHQgNC41cHQgMGNtOyIgY2xh c3M9M0QiIj48ZGl2ID0Kc3R5bGU9M0QibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyBmb250LXNp emU6IDExcHQ7IGZvbnQtZmFtaWx5OiA9CkNhbGlicmksIHNhbnMtc2VyaWY7IiBjbGFzcz0zRCIi PjxzcGFuIHN0eWxlPTNEImZvbnQtc2l6ZTogMThwdDsgPQpmb250LWZhbWlseTogV2ViZGluZ3M7 IGNvbG9yOiByZ2IoMTM2LCAxMzYsIDEzNik7IiA9CmNsYXNzPTNEIiI+UDwvc3Bhbj48c3BhbiBz dHlsZT0zRCJmb250LXNpemU6IDhwdDsgZm9udC1mYW1pbHk6IEFyaWFsLCA9CnNhbnMtc2VyaWY7 IGNvbG9yOiByZ2IoMTM2LCAxMzYsIDEzNik7IiBjbGFzcz0zRCIiPiZuYnNwO1BlbnNleiA9QzM9 QTAgPQpsPUUyPTgwPTk5ZW52aXJvbm5lbWVudCBhdmFudCBkPUUyPTgwPTk5aW1wcmltZXIuPC9z cGFuPjxzcGFuID0Kc3R5bGU9M0QiZm9udC1zaXplOiA4cHQ7IGZvbnQtZmFtaWx5OiBBcmlhbCwg c2Fucy1zZXJpZjsgY29sb3I6IHJnYigxMzYsID0KMTM2LCAxMzYpOyIgY2xhc3M9M0QiIj48bzpw ID0KY2xhc3M9M0QiIj48L286cD48L3NwYW4+PC9kaXY+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJs ZT48ZGl2ID0Kc3R5bGU9M0QibWFyZ2luOiAwY20gMGNtIDAuMDAwMXB0OyBmb250LXNpemU6IDEx cHQ7IGZvbnQtZmFtaWx5OiA9CkNhbGlicmksIHNhbnMtc2VyaWY7IiBjbGFzcz0zRCIiPjxzcGFu IGNsYXNzPTNEIiI+PG86cCA9CmNsYXNzPTNEIiI+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZGl2Pjxk aXYgc3R5bGU9M0QibWFyZ2luOiAwY20gMGNtID0KMC4wMDAxcHQ7IGZvbnQtc2l6ZTogMTFwdDsg Zm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IiA9CmNsYXNzPTNEIiI+PG86cCBjbGFz cz0zRCIiPiZuYnNwOzwvbzpwPjwvZGl2PjwvZGl2PjxzcGFuID0Kc3R5bGU9M0QiZm9udC1mYW1p bHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7ID0KZm9u dC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBu b3JtYWw7ID0Kb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAw cHg7IHRleHQtdHJhbnNmb3JtOiA9Cm5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czog YXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7ID0KLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4 OyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lID0KIWltcG9ydGFudDsiID0KY2xhc3M9M0Qi Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzwvc3Bhbj48 YnIgPQpzdHlsZT0zRCJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZv bnQtc3R5bGU6IG5vcm1hbDsgPQpmb250LXZhcmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5v cm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgPQpvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWdu OiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06ID0Kbm9uZTsgd2hpdGUt c3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRvOyB3b3JkLXNwYWNpbmc6IDBweDsgPQotd2Via2l0 LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IiBjbGFzcz0zRCIiPjxzcGFuIHN0eWxlPTNEImZvbnQt ZmFtaWx5OiA9CkhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7 IGZvbnQtdmFyaWFudDogbm9ybWFsOyA9CmZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFj aW5nOiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246ID0Kc3RhcnQ7IHRleHQtaW5k ZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyA9Cndp ZG93czogYXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6 IDBweDsgZmxvYXQ6ID0Kbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IiBjbGFzcz0z RCIiPlVzZXJzIG1haWxpbmcgPQpsaXN0PC9zcGFuPjxiciBzdHlsZT0zRCJmb250LWZhbWlseTog SGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7ID0KZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZh cmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgPQpsZXR0ZXItc3BhY2luZzogbm9y bWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6ID0KMHB4 OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRv OyA9CndvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IiBj bGFzcz0zRCIiPjxhID0KaHJlZj0zRCJtYWlsdG86VXNlcnNAb3ZpcnQub3JnIiBzdHlsZT0zRCJj b2xvcjogcHVycGxlOyB0ZXh0LWRlY29yYXRpb246ID0KdW5kZXJsaW5lOyBmb250LWZhbWlseTog SGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgPQpmb250LXZh cmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1h bDsgPQpvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsg dGV4dC10cmFuc2Zvcm06ID0Kbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRv OyB3b3JkLXNwYWNpbmc6IDBweDsgPQotd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IiBj bGFzcz0zRCIiPlVzZXJzQG92aXJ0Lm9yZzwvYT48YnIgPQpzdHlsZT0zRCJmb250LWZhbWlseTog SGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgPQpmb250LXZh cmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1h bDsgPQpvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsg dGV4dC10cmFuc2Zvcm06ID0Kbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRv OyB3b3JkLXNwYWNpbmc6IDBweDsgPQotd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IiBj bGFzcz0zRCIiPjxhID0KaHJlZj0zRCJodHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlz dGluZm8vdXNlcnMiIHN0eWxlPTNEImNvbG9yOiA9CnB1cnBsZTsgdGV4dC1kZWNvcmF0aW9uOiB1 bmRlcmxpbmU7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogPQoxMnB4OyBmb250 LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFs OyA9CmxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246IHN0 YXJ0OyB0ZXh0LWluZGVudDogPQowcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFj ZTogbm9ybWFsOyB3aWRvd3M6IGF1dG87ID0Kd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4 dC1zdHJva2Utd2lkdGg6IDBweDsiID0KY2xhc3M9M0QiIj5odHRwOi8vbGlzdHMub3ZpcnQub3Jn L21haWxtYW4vbGlzdGluZm8vdXNlcnM8L2E+PC9kaXY+PC9ibG9ja3E9CnVvdGU+PC9kaXY+PGJy IGNsYXNzPTNEIiI+PC9ib2R5PjwvaHRtbD49CgotLUFwcGxlLU1haWw9XzY5MzI1MDYyLUMzMEIt NDYzQS1BQUEzLTM4NzM1RDJGQ0VFQS0tCg== --===============2536433379126566189==--