FW: Bug: Spice port changed!!!!!
by PaulCheung
--_a83b4ea2-88e9-4b9b-9848-90dc1c4b06a5_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
DQoKCgpEZWFyIFZpbnplbnosICAgDQpJIHRyeSBhIGxvdCBvZiB0aW1lcyAgYXMgeW91IHRvbGQg
bWUgdXNpbmcgUE9TVCAsICAgbm90IHdvcmsuIFRoZSB2bSBub3Qgc3RhcnQhDQoNCg0KY3VybCAt
ayAtdiAtdSAnYWRtaW5AaW50ZXJuYWw6cGFzc3dvcmQnIC1IICJDb250ZW50LXR5cGU6IGFwcGxp
Y2F0aW9uL2pzb24iIC1YIFBPU1QgaHR0cHM6Ly8xNzIuMTYuMS4xMTUvYXBpL3Ztcy83MTQyNjFj
NC0yMTM5LTQzMTUtOGQ4Yy04MDJiODk1YzZhZWEvc3RhcnQNCg0KZXJyb3I6DQpUVFAvMS4xIDQw
MCBCYWQgUmVxdWVzdDwgRGF0ZTogVGh1LCAyNSBTZXAgMjAxNCAwMTo0NDozNiBHTVQ8IENvbnRl
bnQtVHlwZTogYXBwbGljYXRpb24veG1sPCBDb250ZW50LUxlbmd0aDogNTAxNzwgVmFyeTogQWNj
ZXB0LUVuY29kaW5nPCBDb25uZWN0aW9uOiBjbG9zZTwNCg0KCg0KDQpTaW5jZXJlbHkgeW91cnMs
DQpQYXVsQ2hldW5nDQoNCg0KIHRlbDogMTgwLTg4ODItNzE3Mw0KDQoNCkRhdGU6IFR1ZSwgMjMg
U2VwIDIwMTQgMTI6MjI6NTcgKzAyMDANCkZyb206IHZmZWVuc3RyQHJlZGhhdC5jb20NClRvOiBl
cTIwMDhAbXNuLmNvbTsgdXNlcnNAb3ZpcnQub3JnDQpTdWJqZWN0OiBSZTogW292aXJ0LXVzZXJz
XSBCdWc6ICBTcGljZSBwb3J0IGNoYW5nZWQhISEhIQ0KDQoKICAKICAgIAogIAogIAogICAgT24g
MDkvMjMvMjAxNCAxMjoyMiBQTSwgVmluemVuegogICAgICBGZWVuc3RyYSB3cm90ZToNCgogICAg
CiAgICAKICAgICAgCiAgICAgIE9uIDA5LzIzLzIwMTQgMTA6MTUgQU0sIFBhdWxDaGV1bmcKICAg
ICAgICB3cm90ZToNCgogICAgICAKICAgICAgCiAgICAgICAgCiAgICAgICAgRGVhciBEYXZpZDoK
ICAgICAgICAgIA0KCiAgICAgICAgICAKICAgICAgICAgIFRoaXMgcHJvYmxlbSBoYXZlIGJlZW4g
c29sdmUhISEhISEhISEgICAgVXNpbmcgdGhlIHZtIElECiAgICAgICAgICAgIHRvIGZpbmQgdGhl
IHNwaWNlIHBvcnQhCiAgICAgICAgICANCgogICAgICAgICAgCiAgICAgICAgICANCgogICAgICAg
ICAgCiAgICAgICAgICAKICAgICAgICAgICAgIyEvYmluL2Jhc2gKICAgICAgICAgICAgY3VybCAt
ayAtdiAtdQogICAgICAgICAgICAgICAgICAnYWRtaW5AaW50ZXJuYWw6cGFzc3dvcmQhJyAtSCAi
Q29udGVudC10eXBlOgogICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi94bWwiIC1YIEdFVCBo
dHRwczovLzE3Mi4xNi4xLjExNS9hcGkvdm1zL2VhMjczNjUzLWIwODMtNDExNC05ZWQ0LWJiYjBi
YjVkMzhjMQogICAgICAgICAgICAgICAgICA+IC4vdm0uaW5mbwogICAgICAgICAgICBwMT0kKGNh
dCAuL3ZtLmluZm98Z3JlcCAnPHBvcnQ+JykKICAgICAgICAgICAgcDI9JChjYXQgLi92bS5pbmZv
fGdyZXAgJzxzZWN1cmVfcG9ydD4nKQogICAgICAgICAgICBwb3J0MT0ke3AxOjAtMTE6NH0KICAg
ICAgICAgICAgcG9ydDI9JHtwMjowLTE4OjR9CiAgICAgICAgICAgIHNwaWN5IC1oIDE3Mi4xNi4x
LjExNQogICAgICAgICAgICAgICAgICAtdyAxMjM0NTYgLXAgJHBvcnQxIC1zICRwb3J0MiAtZgog
ICAgICAgICAgICAgICAgICAtLXNwaWNlLWNhLWZpbGU9L2hvbWUvY3ViaWUvY2EuY3J0ID4vZGV2
L251bGwKICAgICAgICAgICAgICAgICAgMj4mMSAmCiAgICAgICAgICAKICAgICAgICAKICAgICAg
CiAgICAgIA0KCiAgICAgIFlvdSBjb3VsZCB0cnkgUE9TVCB3aXRoIGNvbnRlbnQgdHlwZTogYXBw
bGljYXRpb24vanNvbiBodHRwczovLzE3Mi4xNi4xLjExNS9hcGkvdm1zL2VhMjczNjUzLWIwODMt
NDExNC05ZWQ0LWJiYjBiYjVkMzhjMS9zdGFydAoKICAgICAgDQoKICAgIAogICAgT2ggSSBmb3Jn
b3QgdG8gYWRkOiBUaGUgYm9keSBzaG91bGQgYmUgc3VmZmljaWVudCBpZiBpdCBpcyAne30nIA0K
CiAgICAgDQoKICAgICAgSG9wZSB0aGF0IGhlbHBzLiA6LSkNCgogICAgICAKICAgICAgICAKICAg
ICAgICAgIAogICAgICAgICAgICANCgogICAgICAgICAgICAKICAgICAgICAgICAgDQoKICAgICAg
ICAgICAgCiAgICAgICAgICAKICAgICAgICAgIA0KCiAgICAgICAgICAKICAgICAgICAgIEl0IGlz
IGF3ZXNvbWUhICAgIEJ1dCBkb3UgeW91IGtub3cgd2hhdCBjb21tYW5kIGNhbgogICAgICAgICAg
ICAgIHN0YXJ0IHRoZSBWTSBpZiB0aGUgVk0gc3RvcC9wb3dlciBvZmYgICA/CiAgICAgICAgICAN
CgogICAgICAgICAgICANCgogICAgICAgICAgICAgDQoKICAgICAgICAgICAgICANCgogICAgICAg
ICAgICAgIFNpbmNlcmVseSB5b3VycywNCgogICAgICAgICAgICAgIFBhdWxDaGV1bmcNCgogICAg
ICAgICAgICAgIA0KCiAgICAgICAgICAgICAgDQoKICAgICAgICAgICAgICAgdGVsOiAxODAtODg4
Mi03MTczDQoKICAgICAgICAgICAgCiAgICAgICAgICAgIA0KCiAgICAgICAgICAgIA0KCiAgICAg
ICAgICAgID4gU3ViamVjdDogUmU6IFtvdmlydC11c2Vyc10gQnVnOiBTcGljZSBwb3J0CiAgICAg
ICAgICAgICAgY2hhbmdlZCEhISEhDQoKICAgICAgICAgICAgICA+IEZyb206IGRqYXNhQHJlZGhh
dC5jb20NCgogICAgICAgICAgICAgID4gVG86IGVxMjAwOEBtc24uY29tDQoKICAgICAgICAgICAg
ICA+IENDOiB1c2Vyc0BvdmlydC5vcmcNCgogICAgICAgICAgICAgID4gRGF0ZTogTW9uLCAyMiBT
ZXAgMjAxNCAxNDo0NDowMyArMDIwMA0KCiAgICAgICAgICAgICAgPiANCgogICAgICAgICAgICAg
ID4gUGF1bCwNCgogICAgICAgICAgICAgID4gDQoKICAgICAgICAgICAgICA+IFNob3J0IGFuc3dl
cjogeW91ciBhcHByb2FjaCB3aWxsIG5vdCB3b3JrLiBJCiAgICAgICAgICAgICAgbWVudGlvbmVk
IHRoZSBjdXN0b20gaG9va3MNCgogICAgICAgICAgICAgID4gYW5kIGVuZ2luZS1jb25maWcvVXNl
ckRlZmluZWRWTVByb3BlcnRpZXMgZm9yIGEKICAgICAgICAgICAgICByZWFzb24uIFBsZWFzZSBm
b2xsb3cgbXkNCgogICAgICAgICAgICAgID4gYWR2aWNlIGZpcnN0IGJlZm9yZSBhc2tpbmcgZnVy
dGhlciBhZHZpY2UuDQoKICAgICAgICAgICAgICA+IA0KCiAgICAgICAgICAgICAgPiANCgogICAg
ICAgICAgICAgID4gTG9uZ2VyIGFuc3dlcjogeW91ciBjaGFuZ2VzIHRvIHRoZSBsaWJ2aXJ0IGRv
bWFpbnMKICAgICAgICAgICAgICB3b3VsZCBhcHBseSBvbiBuZXh0DQoKICAgICAgICAgICAgICA+
IGRvbWFpbiBjb2xkIHN0YXJ0IGJ1dCB0aGF0IHdpbGwgbmV2ZXIgaGFwcGVuIGJlY2F1c2UKICAg
ICAgICAgICAgICB2ZHNtIGFsd2F5cyBjcmVhdGVzDQoKICAgICAgICAgICAgICA+IGxpYnZpcnQg
ZG9tYWlucyBhcyB0cmFuc2llbnQgb25lcyBzbyB0aGUgbGlidmlydAogICAgICAgICAgICAgIGRv
bWFpbiB3aWxsIGRpc2FwcGVhcg0KCiAgICAgICAgICAgICAgPiBvbiBndWVzdCBPUyBzaHV0ZG93
bi4gT24gbmV4dCBzdGFydCBvZiB0aGUgc2FtZSBvVmlydAogICAgICAgICAgICAgIFZNLCB2ZHNt
IHdpbGwNCgogICAgICAgICAgICAgID4gY3JlYXRlcyBhIG5ldyBkb21haW4gWE1MIHRoYXQgd2ls
bCBiZSB1c2VkIHRvIHN0YXJ0IGEKICAgICAgICAgICAgICBuZXcgbGlidmlydA0KCiAgICAgICAg
ICAgICAgPiB0cmFuc2llbnQgZG9tYWluLg0KCiAgICAgICAgICAgICAgPiANCgogICAgICAgICAg
ICAgID4gSW4gb3JkZXIgdG8gbWFrZSB0aGlzIG5ldyBsaWJ2aXJ0IGRvbWFpbiB1c2UgeW91cgog
ICAgICAgICAgICAgIGRlc2lyZWQgcGFyYW1ldGVycywNCgogICAgICAgICAgICAgID4geW91IGhh
dmUgdG8gZWRpdCB0aGUgWE1MIGJlZm9yZSBpdCBpcyB1c2VkIHRvIHN0YXJ0CiAgICAgICAgICAg
ICAgdGhlIGxpYnZpcnQgZG9tYWluDQoKICAgICAgICAgICAgICA+IGFuZCBiZWNhdXNlIHdlIGh1
bWFucyBhcmUgdG9vIHNsb3cgdG8gZG8gdGhhdCBhbmQgdG9vCiAgICAgICAgICAgICAgYW5ub3ll
ZCB0byBkbyB0aGF0DQoKICAgICAgICAgICAgICA+IG9uIGV2ZXJ5IFZNIHN0YXJ0LCB2ZHNtIGhv
b2tzIG1lY2hhbmlzbSB3YXMgZGV2aXNlZAogICAgICAgICAgICAgIGFuZCBhIHNjcmlwdCBpbg0K
CiAgICAgICAgICAgICAgPiBiZWZvcmVfdm1fc3RhcnQgY2FuIGRvIHRoYXQgY2hhbmdlcyBmb3Ig
eW91ICh3aXRoCiAgICAgICAgICAgICAgaW5wdXQgdmFyaWFibGVzDQoKICAgICAgICAgICAgICA+
IGRlZmluZWQgaW4gZW5naW5lLWNvbmZpZyBhbmQgc2V0IGluIFZNJ3MgY3VzdG9tCiAgICAgICAg
ICAgICAgcHJvcGVydGllcykuDQoKICAgICAgICAgICAgICA+IA0KCiAgICAgICAgICAgICAgPiAN
CgogICAgICAgICAgICAgID4gU28gYmFjayB0byBteSBvcmlnaW5hbCBzdWdnZXN0aW9uOiBkbyB5
b3Ugc3RpbGwgdGhpbmsKICAgICAgICAgICAgICB0aGF0IGl0IGlzIHdpc2UgdG8NCgogICAgICAg
ICAgICAgID4gdHJ5IG1ldGhvZCB0aGF0IGlzIG1vcmUgY29tcGxpY2F0ZWQgYW5kIGxlc3Mgc2Vj
dXJlCiAgICAgICAgICAgICAgdGhhbiB0aGUgY3VzdG9tDQoKICAgICAgICAgICAgICA+IGxhdW5j
aGVyIG1ldGhvZD8NCgogICAgICAgICAgICAgID4gDQoKICAgICAgICAgICAgICA+IA0KCiAgICAg
ICAgICAgICAgPiBSZWdhcmRzLA0KCiAgICAgICAgICAgICAgPiANCgogICAgICAgICAgICAgID4g
RGF2aWQNCgogICAgICAgICAgICAgID4gDQoKICAgICAgICAgICAgICA+IE9uIFBvLCAyMDE0LTA5
LTIyIGF0IDExOjExICswODAwLCBQYXVsQ2hldW5nIHdyb3RlOg0KCiAgICAgICAgICAgICAgPiA+
IERlYXIgRGF2aWQ6DQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoK
ICAgICAgICAgICAgICA+ID4gSSBhbSB0cnlpbmcgZmlndXJlIGl0IG91dCB1c2luZyBteSB3YXku
IFNvIEkKICAgICAgICAgICAgICB1c2VkICJ2aXJzaCBlZGl0IHZtIiwNCgogICAgICAgICAgICAg
ID4gPiBJIGNoYW5nZSB0aGUgcG9ydCB0aGUgNTk4MCAmIDU5ODEsIGJ1dCBzdGlsbAogICAgICAg
ICAgICAgIG5vdCB3b3JrISEhDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+
ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAg
ICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoKICAg
ICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4g
SSBmb3VuZCBhZnRlciB2aXJzaCBlZGl0LCB0aGVyZSBpcyBhIHhtbCBmaWxlCiAgICAgICAgICAg
ICAgaGVyZSAvZXRjL2xpYnZpcnQvcWVtdQ0KCiAgICAgICAgICAgICAgPiA+IHdoaWNoIEkgZWRp
dCB1c2luZyAidmlyc2ggZWRpdCB2bSIuDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAg
ICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gQW5kIEkgYWxzbyBydW4gdGhpcyBjb21tYW5k
IDogInZpcnNoIGRlZmluZQogICAgICAgICAgICAgIHZtLnhtbCIgDQoKICAgICAgICAgICAgICA+
ID4gDQoKICAgICAgICAgICAgICA+ID4gDQoKICAgICAgICAgICAgICA+ID4gYWxzbyBub3Qgd29y
ay4gQ2FuIHlvdSB0ZWxsIG1lIHdoZXJlIGlzIHRoZSBmaWxlCiAgICAgICAgICAgICAgSSBjYW4g
Zml4ZWQgdGhlDQoKICAgICAgICAgICAgICA+ID4gc3BpY2UgcG9ydC4NCgogICAgICAgICAgICAg
ID4gPiANCgogICAgICAgICAgICAgID4gPiANCgogICAgICAgICAgICAgID4gPiANCgogICAgICAg
ICAgICAgID4gPiANCgogICAgICAgICAgICAgID4gPiBTaW5jZXJlbHkgeW91cnMsDQoKICAgICAg
ICAgICAgICA+ID4gUGF1bENoZXVuZw0KCiAgICAgICAgICAgICAgPiA+IA0KCiAgICAgICAgICAg
ICAgPiA+IA0KCiAgICAgICAgICAgICAgPiA+IHRlbDogMTgwLTg4ODItNzE3Mw0KCiAgICAgICAg
ICAgICAgPiA+IA0KCiAgICAgICAgICAgICAgPiA+IA0KCiAgICAgICAgICAgICAgPiA+IA0KCiAg
ICAgICAgICAgICAgPiA+ID4gU3ViamVjdDogUmU6IFtvdmlydC11c2Vyc10gQnVnOiBTcGljZSBw
b3J0CiAgICAgICAgICAgICAgY2hhbmdlZCEhISEhDQoKICAgICAgICAgICAgICA+ID4gPiBGcm9t
OiBkamFzYUByZWRoYXQuY29tDQoKICAgICAgICAgICAgICA+ID4gPiBUbzogZXEyMDA4QG1zbi5j
b20NCgogICAgICAgICAgICAgID4gPiA+IENDOiB1c2Vyc0BvdmlydC5vcmcNCgogICAgICAgICAg
ICAgID4gPiA+IERhdGU6IFRodSwgMTggU2VwIDIwMTQgMTU6Mjc6NTAgKzAyMDANCgogICAgICAg
ICAgICAgID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gSGksDQoKICAgICAgICAgICAgICA+
ID4gPiANCgogICAgICAgICAgICAgID4gPiA+IDIpIGlzIG5vdCBhIGZpbGUsIGl0J3MgYSBrZXkg
aW4KICAgICAgICAgICAgICBlbmdpbmUtY29uZmlnDQoKICAgICAgICAgICAgICA+ID4gPiAzKSBp
cyBhIFZEU00gY3VzdG9tIGhvb2sgdGhhdCBuZWVkcyB0byBiZQogICAgICAgICAgICAgIGluIGFs
bCB0aGUgaHlwZXJ2aXNvcnMgaW4NCgogICAgICAgICAgICAgID4gPiBEQy9DbHVzdGVyDQoKICAg
ICAgICAgICAgICA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+IEZvbGxvdyB2ZHNtIGN1c3Rv
bSBob29rIGRvY3VtZW50YXRpb24gKEkKICAgICAgICAgICAgICBkb24ndCBoYXZlIGEgbGluayBm
cm9tIHRvcA0KCiAgICAgICAgICAgICAgPiA+IG9mIG15IGhlYWQgYnV0IHdlYiBvciBNTCBhcmNo
aXZlcyB3aWxsIHN1cmVseQogICAgICAgICAgICAgIGhlbHApLg0KCiAgICAgICAgICAgICAgPiA+
ID4gDQoKICAgICAgICAgICAgICA+ID4gPiBEYXZpZA0KCiAgICAgICAgICAgICAgPiA+ID4gDQoK
ICAgICAgICAgICAgICA+ID4gPiBPbiBUaHUsIDIwMTQtMDktMTggYXQgMTQ6NTEgKzA4MDAsCiAg
ICAgICAgICAgICAgUGF1bENoZXVuZyB3cm90ZToNCgogICAgICAgICAgICAgID4gPiA+ID4gRGVh
ciBEYXZpZCwNCgogICAgICAgICAgICAgID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+
IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiBUaGFuayB5b3UgZm9yIHlvdXIgaGVscCAuIFlvdXIg
YW5zd2VyCiAgICAgICAgICAgICAgaXMgdmVyeSBwcm9mZXNzaW9uYWwuDQoKICAgICAgICAgICAg
ICA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+
ID4gSSBzdGlsbCBjYW4ndCBub3QgZmluZCBhIHdheSB0byBzdGljawogICAgICAgICAgICAgIHdp
dGggc3RhdGljIHBvcnQgYXNzaWdubWVudHMNCgogICAgICAgICAgICAgID4gPiA+ID4gRm9yIEkg
ZG9uJ3QgdW5kZXJzdGFuZCB5b3UgdGVsbGluZyBtZQogICAgICAgICAgICAgICwgMiYzLCB3aGVy
ZSBJIGNhbiBmaW5kIHRoZQ0KCiAgICAgICAgICAgICAgPiA+ID4gPiBmaWxlIHRvIG1vZGlmeT8N
CgogICAgICAgICAgICAgID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+IA0KCiAgICAg
ICAgICAgICAgPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gDQoKICAgICAgICAgICAg
ICA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+
ID4gPiBIb3dldmVyLCBpZiB5b3UgX3JlYWxseV8gd2FudCB0bwogICAgICAgICAgICAgIHN0aWNr
IHdpdGggc3RhdGljIHBvcnQNCgogICAgICAgICAgICAgID4gPiBhc3NpZ25tZW50cywNCgogICAg
ICAgICAgICAgID4gPiA+ID4gZG8NCgogICAgICAgICAgICAgID4gPiA+ID4gPiB0aGUgZm9sbG93
aW5nOg0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IDEpIGRlc2lnbmF0ZSB0aGUgcG9ydCByYW5n
ZSBzbwogICAgICAgICAgICAgIHRoYXQgaXQgZG9lc24ndCBjb2xsaWRlIHdpdGgNCgogICAgICAg
ICAgICAgID4gPiBvdGhlcg0KCiAgICAgICAgICAgICAgPiA+ID4gPiByYW5nZXMNCgogICAgICAg
ICAgICAgID4gPiA+ID4gPiBpbiB1c2UgKGUuZy4gUkhFViB1c2VzIDU5MDAtNjAyMywKICAgICAg
ICAgICAgICBzbyA1ODAwLTU4OTkgY291bGQgYmUgc2FmZSkNCgogICAgICAgICAgICAgID4gPiA+
ID4gPiAyKSBhZGQgYSBjdXN0b20gVk0gcHJvcGVydGllcyB0bwogICAgICAgICAgICAgIHRoZSBl
bmdpbmUgZm9yIHNldHRpbmcgb2YgcG9ydA0KCiAgICAgICAgICAgICAgPiA+IGFuZA0KCiAgICAg
ICAgICAgICAgPiA+ID4gPiA+IHRscy1wb3J0DQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gMykg
YWRkIGEgdmRzbSBob29rIHRvCiAgICAgICAgICAgICAgYmVmb3JlX3ZtX3N0YXJ0IGRpcmVjdG9y
eSBvbiBlYWNoIGhvc3QNCgogICAgICAgICAgICAgID4gPiB0aGF0DQoKICAgICAgICAgICAgICA+
ID4gPiA+IHdpbGwNCgogICAgICAgICAgICAgID4gPiA+ID4gPiBhZGQgInBvcnQiIGFuZCAidGxz
UG9ydCIKICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRvIHRoZSBncmFwaGljcyBlbGVtZW50IG9m
DQoKICAgICAgICAgICAgICA+ID4gPiA+IGxpYnZpcnQNCgogICAgICAgICAgICAgID4gPiA+ID4g
PiBkb21haW4geG1sDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+
ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4g
DQoKICAgICAgICAgICAgICA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiANCgogICAg
ICAgICAgICAgID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+IFNpbmNlcmVseSB5b3Vy
cywNCgogICAgICAgICAgICAgID4gPiA+ID4gUGF1bENoZXVuZw0KCiAgICAgICAgICAgICAgPiA+
ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+IHRl
bDogMTgwLTg4ODItNzE3Mw0KCiAgICAgICAgICAgICAgPiA+ID4gPiANCgogICAgICAgICAgICAg
ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4g
PiA+IFN1YmplY3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIEJ1ZzoKICAgICAgICAgICAgICBTcGljZSBw
b3J0IGNoYW5nZWQhISEhIQ0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IEZyb206IGRqYXNhQHJl
ZGhhdC5jb20NCgogICAgICAgICAgICAgID4gPiA+ID4gPiBUbzogZXEyMDA4QG1zbi5jb20NCgog
ICAgICAgICAgICAgID4gPiA+ID4gPiBDQzogdXNlcnNAb3ZpcnQub3JnDQoKICAgICAgICAgICAg
ICA+ID4gPiA+ID4gRGF0ZTogV2VkLCAxNyBTZXAgMjAxNCAxMDo0MDo0MgogICAgICAgICAgICAg
ICswMjAwDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+
ID4gSGkgUGF1bCwNCgogICAgICAgICAgICAgID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4g
PiA+ID4gPiBUaGlzIGJlaGF2aW91ciBpcyBieSBkZXNpZ24uIEl0CiAgICAgICAgICAgICAgaXMg
YSBiYWQgaWRlYSB0byBvdmVycmlkZSBpdC4gQQ0KCiAgICAgICAgICAgICAgPiA+IGdvb2QNCgog
ICAgICAgICAgICAgID4gPiA+ID4gPiBhcHByb2FjaCB0byB5b3VyIHByb2JsZW0gd291bGQgYmUK
ICAgICAgICAgICAgICB0byB3cml0ZSBhIGxhdW5jaGVyIHNjcmlwdA0KCiAgICAgICAgICAgICAg
PiA+IHRoYXQNCgogICAgICAgICAgICAgID4gPiA+ID4gd291bGQ6DQoKICAgICAgICAgICAgICA+
ID4gPiA+ID4gMSkgY29ubmVjdCB0byB0aGUgUkVTVCBBUEkNCgogICAgICAgICAgICAgID4gPiA+
ID4gPiAyKSBnZXQgdGhlIFZNIGNvbm5lY3Rpb24gZGV0YWlscw0KCiAgICAgICAgICAgICAgPiA+
ID4gPiA+IDMpIGdldCBuZXcgVk0gdGlja2V0DQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gNCkg
d3JpdGUgdGhpcyBpbmZvIGRvd24gdG8gYQogICAgICAgICAgICAgIHRlbXBvcmFyeSAudnYgZmls
ZSBbM10NCgogICAgICAgICAgICAgID4gPiA+ID4gPiA1KSBsYXVuY2ggcmVtb3RlLXZpZXdlcg0K
CiAgICAgICAgICAgICAgPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IFNvbWUg
aW5mbyBob3cgdG8gdXNlIFJFU1QgQVBJIGlzCiAgICAgICAgICAgICAgZGVzY3JpYmVkIGhlcmUg
WzFdIGFuZCAudnYgZmlsZQ0KCiAgICAgICAgICAgICAgPiA+ID4gPiBmb3JtYXQNCgogICAgICAg
ICAgICAgID4gPiA+ID4gPiBpcyBkb2N1bWVudGVkIGluIHZpcnQtdmlld2VyCiAgICAgICAgICAg
ICAgc291cmNlcyBbMl0uIFBsZWFzZSBub3RlIHRoYXQgWzFdDQoKICAgICAgICAgICAgICA+ID4g
aXMgYQ0KCiAgICAgICAgICAgICAgPiA+ID4gPiBiaXQNCgogICAgICAgICAgICAgID4gPiA+ID4g
PiBvdXRkYXRlZDoNCgogICAgICAgICAgICAgID4gPiA+ID4gPiAqIHlvdSBjYW4gdXNlIEhUVFAg
aGVhZGVyCiAgICAgICAgICAgICAgImZpbHRlcjogdHJ1ZSIgdG8gYmUgYWJsZSB0byBsb2cgaW4g
YXMNCgogICAgICAgICAgICAgID4gPiA+ID4gbm9uLWFkbWluDQoKICAgICAgICAgICAgICA+ID4g
PiA+ID4gKiB5b3Ugb25seSBoYXZlIHRvIHVzZSBwYXNzd29yZAogICAgICAgICAgICAgIGxvZ2lu
IG9uY2Ugd2hlbiB5b3UgdXNlDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gInByZWZlcjogcGVy
c2lzdGVudC1hdXRoIiBIVFRQCiAgICAgICAgICAgICAgaGVhZGVyIGFuZCB5b3Ugc2VuZCB0aGUg
Y29va2llDQoKICAgICAgICAgICAgICA+ID4geW91DQoKICAgICAgICAgICAgICA+ID4gPiA+IGdv
dA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IGluIGEgcmVzcG9uc2UgdG8gZmlyc3QgcmVxdWVz
dC4NCgogICAgICAgICAgICAgID4gPiA+ID4gPiBJbiB0aGUgZnV0dXJlLCB0aGUgc3RlcHMgMi00
IHdpbGwKICAgICAgICAgICAgICBiZWNvbWUgYSBvbmUgc3RlcCBvZiBnZXR0aW5nIGENCgogICAg
ICAgICAgICAgID4gPiA+ID4gPiByZWFkeS10by11c2UgLnZ2IGZpbGUgZnJvbSB0aGUKICAgICAg
ICAgICAgICBBUEkgWzNdIGJ1dCB3ZSBhcmVuJ3QgdGhlcmUgeWV0Lg0KCiAgICAgICAgICAgICAg
PiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IFsxXQ0KCiAgICAgICAgICAgICAg
PiA+ID4gPg0KCiAgICAgICAgICAgICAgPiA+IGh0dHA6Ly93d3cub3ZpcnQub3JnL0hvd190b19D
b25uZWN0X3RvX1NQSUNFX0NvbnNvbGVfV2l0aG91dF9Qb3J0YWwNCgogICAgICAgICAgICAgID4g
PiA+ID4gPiBbMl0NCgogICAgICAgICAgICAgID4gPiA+ID4NCgogICAgICAgICAgICAgID4gPgog
ICAgICAgICAgICAgIGh0dHBzOi8vZ2l0LmZlZG9yYWhvc3RlZC5vcmcvY2dpdC92aXJ0LXZpZXdl
ci5naXQvdHJlZS9zcmMvdmlydC12aWV3ZXItZmlsZS5jI24zMA0KCiAgICAgICAgICAgICAgPiA+
ID4gPiA+IFszXSBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEx
Mjg3NjMNCgogICAgICAgICAgICAgID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4g
PiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiBIb3dldmVyLCBpZiB5b3UgX3JlYWxseV8gd2Fu
dCB0bwogICAgICAgICAgICAgIHN0aWNrIHdpdGggc3RhdGljIHBvcnQNCgogICAgICAgICAgICAg
ID4gPiBhc3NpZ25tZW50cywNCgogICAgICAgICAgICAgID4gPiA+ID4gZG8NCgogICAgICAgICAg
ICAgID4gPiA+ID4gPiB0aGUgZm9sbG93aW5nOg0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IDEp
IGRlc2lnbmF0ZSB0aGUgcG9ydCByYW5nZSBzbwogICAgICAgICAgICAgIHRoYXQgaXQgZG9lc24n
dCBjb2xsaWRlIHdpdGgNCgogICAgICAgICAgICAgID4gPiBvdGhlcg0KCiAgICAgICAgICAgICAg
PiA+ID4gPiByYW5nZXMNCgogICAgICAgICAgICAgID4gPiA+ID4gPiBpbiB1c2UgKGUuZy4gUkhF
ViB1c2VzIDU5MDAtNjAyMywKICAgICAgICAgICAgICBzbyA1ODAwLTU4OTkgY291bGQgYmUgc2Fm
ZSkNCgogICAgICAgICAgICAgID4gPiA+ID4gPiAyKSBhZGQgYSBjdXN0b20gVk0gcHJvcGVydGll
cyB0bwogICAgICAgICAgICAgIHRoZSBlbmdpbmUgZm9yIHNldHRpbmcgb2YgcG9ydA0KCiAgICAg
ICAgICAgICAgPiA+IGFuZA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IHRscy1wb3J0DQoKICAg
ICAgICAgICAgICA+ID4gPiA+ID4gMykgYWRkIGEgdmRzbSBob29rIHRvCiAgICAgICAgICAgICAg
YmVmb3JlX3ZtX3N0YXJ0IGRpcmVjdG9yeSBvbiBlYWNoIGhvc3QNCgogICAgICAgICAgICAgID4g
PiB0aGF0DQoKICAgICAgICAgICAgICA+ID4gPiA+IHdpbGwNCgogICAgICAgICAgICAgID4gPiA+
ID4gPiBhZGQgInBvcnQiIGFuZCAidGxzUG9ydCIKICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRv
IHRoZSBncmFwaGljcyBlbGVtZW50IG9mDQoKICAgICAgICAgICAgICA+ID4gPiA+IGxpYnZpcnQN
CgogICAgICAgICAgICAgID4gPiA+ID4gPiBkb21haW4geG1sDQoKICAgICAgICAgICAgICA+ID4g
PiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+
ID4gQmVzdCByZWdhcmRzLA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IA0KCiAgICAgICAgICAg
ICAgPiA+ID4gPiA+IERhdmlkDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gDQoKICAgICAgICAg
ICAgICA+ID4gPiA+ID4gT24gU3QsIDIwMTQtMDktMTcgYXQgMTA6NDEgKzA4MDAsCiAgICAgICAg
ICAgICAgUGF1bENoZXVuZyB3cm90ZToNCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IERlYXIg
YWxsLA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+
ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IEFmdGVyIHNodXRkb3duIHRoZSBWTSwg
dGhlbgogICAgICAgICAgICAgIHJlc3RhcnQgdGhlIFZNIHRoZSBWbSdzIHNwaWNlIHBvcnQNCgog
ICAgICAgICAgICAgID4gPiBpcw0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gY2hhbmdlZCEN
CgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4g
DQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+
IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4g
PiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+
ID4gQmVjYXVzZSBJIGhhdmUgMTAgdGVybWluYWwKICAgICAgICAgICAgICBBUk0tQm94IHJ1bm5p
bmcgc3BpY2UgY2xpZW50DQoKICAgICAgICAgICAgICA+ID4gY29ubmVjdGVkDQoKICAgICAgICAg
ICAgICA+ID4gPiA+IHRvDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiB0aGUgdm0sIGJ1dCBh
ZnRlciB0aGUgVk0KICAgICAgICAgICAgICBzaHV0ZG93biBhbmQgc3RhcnQgYWdhaW4sIHRoZSB2
bSBub3QNCgogICAgICAgICAgICAgID4gPiB0aGUNCgogICAgICAgICAgICAgID4gPiA+ID4gb25l
DQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiB3aGljZSB0aGUgb25lIGJlZm9yZS4NCgogICAg
ICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAg
ICAgICAgICAgICA+ID4gPiA+ID4gPiBJIHdpc2ggeW91IGNhbiBsZXQgdXMgaGF2ZSBhCiAgICAg
ICAgICAgICAgb3B0aW9uLCB0byBsZXQgdGhlIFZNIHdpdGggYQ0KCiAgICAgICAgICAgICAgPiA+
IGZpeGVkDQoKICAgICAgICAgICAgICA+ID4gPiA+IHNwaWNlDQoKICAgICAgICAgICAgICA+ID4g
PiA+ID4gPiBwb3J0LCBsaWtlOg0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gdm0xOiBzcGlj
ZSBwb3J0IDogNTkwMAogICAgICAgICAgICAgIHRsczo1OTAxDQoKICAgICAgICAgICAgICA+ID4g
PiA+ID4gPiB2bTI6IDU5MDIgNTkwMw0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAg
ICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IEFuZCBJ
IGhhdmUgYW5vdGhlcgogICAgICAgICAgICAgIHJlY29tbW9uZDogaGF2ZSBhIGZ1Y3Rpb24gdG8g
ZG8gdGhhdCA6DQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4g
PiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gaWYgdGhlIHZtIHNodXRkb3du
IGJ5IHVzZXIsCiAgICAgICAgICAgICAgaXQgd2lsbCBzdGFydCB0aGUgVk0gYXV0b21hdGljLg0K
CiAgICAgICAgICAgICAgPiA+IFRoYXQNCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IG1lYW5z
IHRoZSBWTSBjYW4gbm90IGJlCiAgICAgICAgICAgICAgc2h1dGRvd24hDQoKICAgICAgICAgICAg
ICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAg
ICAgPiA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAg
ICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAgICAgICAg
ICAgICA+ID4gPiA+ID4gPiBJIGhvcGUgeW91IGNhbiBoYXZlIHRoaXMgdHdvCiAgICAgICAgICAg
ICAgZnVjdGlvbiEgVGhhdCBtZWFucyBhIGxvdCB0bw0KCiAgICAgICAgICAgICAgPiA+IHRob3Nl
DQoKICAgICAgICAgICAgICA+ID4gPiA+IHdobw0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4g
YXJlIHVzaW5nIFRlcm1pbmFsIGJveCB1c2VyCiAgICAgICAgICAgICAgbGlrZSBtZS4NCgogICAg
ICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAg
ICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAg
ICAgICAgICAgICAgPiA+ID4gPiA+ID4gSSBhbSBzb3JyeSBmb3IgbXkgcG9vcgogICAgICAgICAg
ICAgIEVuZ2xpc2guIEJ1dCBJIGhvcGUgeW91IGFsbCBjYW4NCgogICAgICAgICAgICAgID4gPiB1
bmRlcnN0YW5kDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiB3aGF0IEkgYW0gc2F5aW5nLg0K
CiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiAN
CgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4g
DQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+
IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4g
PiANCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+
ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4g
PiA+IFNpbmNlcmVseSB5b3VycywNCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IFBhdWxDaGV1
bmcNCgogICAgICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+
ID4gDQoKICAgICAgICAgICAgICA+ID4gPiA+ID4gPiB0ZWw6IDE4MC04ODgyLTcxNzMNCgogICAg
ICAgICAgICAgID4gPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4KICAgICAg
ICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
CiAgICAgICAgICAgICAgPiA+ID4gPiA+ID4gVXNlcnMgbWFpbGluZyBsaXN0DQoKICAgICAgICAg
ICAgICA+ID4gPiA+ID4gPiBVc2Vyc0BvdmlydC5vcmcNCgogICAgICAgICAgICAgID4gPiA+ID4g
PiA+IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vycw0KCiAgICAg
ICAgICAgICAgPiA+ID4gPiA+IA0KCiAgICAgICAgICAgICAgPiA+ID4gPiA+IA0KCiAgICAgICAg
ICAgICAgPiA+ID4gPiANCgogICAgICAgICAgICAgID4gPiA+ID4KICAgICAgICAgICAgICBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KCiAgICAgICAgICAg
ICAgPiA+ID4gPiBVc2VycyBtYWlsaW5nIGxpc3QNCgogICAgICAgICAgICAgID4gPiA+ID4gVXNl
cnNAb3ZpcnQub3JnDQoKICAgICAgICAgICAgICA+ID4gPiA+IGh0dHA6Ly9saXN0cy5vdmlydC5v
cmcvbWFpbG1hbi9saXN0aW5mby91c2Vycw0KCiAgICAgICAgICAgICAgPiA+ID4gDQoKICAgICAg
ICAgICAgICA+ID4gPiANCgogICAgICAgICAgICAgID4gPiANCgogICAgICAgICAgICAgID4gPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KCiAgICAgICAg
ICAgICAgPiA+IFVzZXJzIG1haWxpbmcgbGlzdA0KCiAgICAgICAgICAgICAgPiA+IFVzZXJzQG92
aXJ0Lm9yZw0KCiAgICAgICAgICAgICAgPiA+IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1h
bi9saXN0aW5mby91c2Vycw0KCiAgICAgICAgICAgICAgPiANCgogICAgICAgICAgICAgID4gDQoK
ICAgICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAKICAgICAgICANCgogICAgICAgIAogICAg
ICAgIA0KCiAgICAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KVXNlcnMgbWFpbGluZyBsaXN0ClVzZXJzQG92aXJ0Lm9yZwpodHRwOi8vbGlzdHMub3Zp
cnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnMKCiAgICAgIAogICAgICANCgogICAgICANCgog
ICAgICAtLSAKUmVnYXJkcywKClZpbnplbnogRmVlbnN0cmEgfCBTZW5pb3IgU29mdHdhcmUgRW5n
aW5lZXIKUmVkSGF0IEVuZ2luZWVyaW5nIFZpcnR1YWxpemF0aW9uIFIgJiBEClBob25lOiArNDIw
IDUzMiAyOTQgNjI1CklSQzogdmZlZW5zdHIgb3IgZXZpbGlzc2ltbwoKQmV0dGVyIHRlY2hub2xv
Z3kuIEZhc3RlciBpbm5vdmF0aW9uLiBQb3dlcmVkIGJ5IGNvbW11bml0eSBjb2xsYWJvcmF0aW9u
LgpTZWUgaG93IGl0IHdvcmtzIGF0IHJlZGhhdC5jb20KICAgIAogICAgDQoKICAgIA0KCiAgICAt
LSAKUmVnYXJkcywKClZpbnplbnogRmVlbnN0cmEgfCBTZW5pb3IgU29mdHdhcmUgRW5naW5lZXIK
UmVkSGF0IEVuZ2luZWVyaW5nIFZpcnR1YWxpemF0aW9uIFIgJiBEClBob25lOiArNDIwIDUzMiAy
OTQgNjI1CklSQzogdmZlZW5zdHIgb3IgZXZpbGlzc2ltbwoKQmV0dGVyIHRlY2hub2xvZ3kuIEZh
c3RlciBpbm5vdmF0aW9uLiBQb3dlcmVkIGJ5IGNvbW11bml0eSBjb2xsYWJvcmF0aW9uLgpTZWUg
aG93IGl0IHdvcmtzIGF0IHJlZGhhdC5jb20gCQkgCSAgIAkJICAgCQkgCSAgIAkJICA=
--_a83b4ea2-88e9-4b9b-9848-90dc1c4b06a5_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: base64
PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT48IS0tDQouaG1tZXNzYWdlIFANCnsNCm1hcmdpbjowcHg7
DQpwYWRkaW5nOjBweA0KfQ0KYm9keS5obW1lc3NhZ2UNCnsNCmZvbnQtc2l6ZTogMTJwdDsNCmZv
bnQtZmFtaWx5Os6iyO3RxbraDQp9DQotLT48L3N0eWxlPjwvaGVhZD4NCjxib2R5IGNsYXNzPSdo
bW1lc3NhZ2UnPjxkaXYgZGlyPSdsdHInPjxkaXY+PGJyPgoKPHN0eWxlPjwhLS0KLkV4dGVybmFs
Q2xhc3MgLmVjeGhtbWVzc2FnZSBQIHsKcGFkZGluZzowcHg7Cn0KCi5FeHRlcm5hbENsYXNzIGJv
ZHkuZWN4aG1tZXNzYWdlIHsKZm9udC1zaXplOjEycHQ7CmZvbnQtZmFtaWx5Os6iyO3RxbraOwp9
CgotLT48L3N0eWxlPgo8ZGl2IGRpcj0ibHRyIj5EZWFyIFZpbnplbnosICZuYnNwOyZuYnNwOzxk
aXY+PGJyPjwvZGl2PjxkaXY+SSB0cnkgYSBsb3Qgb2YgdGltZXMgJm5ic3A7YXMgeW91IHRvbGQg
bWUgdXNpbmcgPGI+UE9TVCA8L2I+LCAmbmJzcDsgbm90IHdvcmsuIFRoZSB2bSBub3Qgc3RhcnQh
PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48ZGl2Pjxicj48L2Rpdj48
ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTJwdDsiPjxmb250IGNvbG9yPSIjOGMwMDk1Ij48
Yj5jdXJsIC1rIC12IC11ICdhZG1pbkBpbnRlcm5hbDpwYXNzd29yZCcgLUggIkNvbnRlbnQtdHlw
ZTogYXBwbGljYXRpb24vanNvbiIgLVggUE9TVCBodHRwczovLzE3Mi4xNi4xLjExNS9hcGkvdm1z
LzcxNDI2MWM0LTIxMzktNDMxNS04ZDhjLTgwMmI4OTVjNmFlYS9zdGFydDwvYj48L2ZvbnQ+PC9z
cGFuPjwvZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+ZXJyb3I6
PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48ZGl2Pjxmb250IHNpemU9IjEiPlRUUC8xLjEgNDAw
IEJhZCBSZXF1ZXN0PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgc2l6ZT0iMSI+Jmx0OyBEYXRlOiBU
aHUsIDI1IFNlcCAyMDE0IDAxOjQ0OjM2IEdNVDwvZm9udD48L2Rpdj48ZGl2Pjxmb250IHNpemU9
IjEiPiZsdDsgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWw8L2ZvbnQ+PC9kaXY+PGRpdj48
Zm9udCBzaXplPSIxIj4mbHQ7IENvbnRlbnQtTGVuZ3RoOiA1MDE3PC9mb250PjwvZGl2PjxkaXY+
PGZvbnQgc2l6ZT0iMSI+Jmx0OyBWYXJ5OiBBY2NlcHQtRW5jb2Rpbmc8L2ZvbnQ+PC9kaXY+PGRp
dj48Zm9udCBzaXplPSIxIj4mbHQ7IENvbm5lY3Rpb246IGNsb3NlPC9mb250PjwvZGl2PjxkaXY+
PGZvbnQgc2l6ZT0iMSI+Jmx0OzwvZm9udD48L2Rpdj48ZGl2Pjxicj48L2Rpdj48YnI+PGRpdj4K
PGJyPjxicj5TaW5jZXJlbHkgeW91cnMsPGJyPlBhdWxDaGV1bmc8YnI+PGJyPjxicj4mbmJzcDt0
ZWw6IDE4MC04ODgyLTcxNzM8YnI+PC9kaXY+PGJyPjxicj48ZGl2PjxociBpZD0iZWN4c3RvcFNw
ZWxsaW5nIj5EYXRlOiBUdWUsIDIzIFNlcCAyMDE0IDEyOjIyOjU3ICswMjAwPGJyPkZyb206IHZm
ZWVuc3RyQHJlZGhhdC5jb208YnI+VG86IGVxMjAwOEBtc24uY29tOyB1c2Vyc0BvdmlydC5vcmc8
YnI+U3ViamVjdDogUmU6IFtvdmlydC11c2Vyc10gQnVnOiAgU3BpY2UgcG9ydCBjaGFuZ2VkISEh
ISE8YnI+PGJyPgogIAogICAgCiAgCiAgCiAgICA8ZGl2IGNsYXNzPSJlY3htb3otY2l0ZS1wcmVm
aXgiPk9uIDA5LzIzLzIwMTQgMTI6MjIgUE0sIFZpbnplbnoKICAgICAgRmVlbnN0cmEgd3JvdGU6
PGJyPgogICAgPC9kaXY+CiAgICA8YmxvY2txdW90ZSBjaXRlPSJtaWQ6NTQyMTQ5REEuNjAwMDcw
OUByZWRoYXQuY29tIj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImVjeG1vei1jaXRlLXByZWZp
eCI+T24gMDkvMjMvMjAxNCAxMDoxNSBBTSwgUGF1bENoZXVuZwogICAgICAgIHdyb3RlOjxicj4K
ICAgICAgPC9kaXY+CiAgICAgIDxibG9ja3F1b3RlIGNpdGU9Im1pZDpCTFUxODAtVzQ5OTBDOEEz
Q0Q0MTc2NUJCQTE1M0JEQkIwMEBwaHguZ2JsIj4KICAgICAgICA8c3R5bGU+PCEtLQouRXh0ZXJu
YWxDbGFzcyAuZWN4aG1tZXNzYWdlIFAgewpwYWRkaW5nOjBweDsKfQoKLkV4dGVybmFsQ2xhc3Mg
Ym9keS5lY3hobW1lc3NhZ2Ugewpmb250LXNpemU6MTJwdDsKZm9udC1mYW1pbHk6zqLI7dHFuto7
Cn0KCgotLT48L3N0eWxlPgogICAgICAgIDxkaXYgZGlyPSJsdHIiPkRlYXIgRGF2aWQ6CiAgICAg
ICAgICA8ZGl2Pjxicj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj5UaGlzIHByb2Js
ZW0gaGF2ZSBiZWVuIHNvbHZlISEhISEhISEhICZuYnNwOyAmbmJzcDtVc2luZyB0aGUgdm0gSUQK
ICAgICAgICAgICAgdG8gZmluZCB0aGUgc3BpY2UgcG9ydCE8L2Rpdj4KICAgICAgICAgIDxkaXY+
PGJyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2Pjxicj4KICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdj48aT4jIS9iaW4vYmFzaDwvaT48L2Rp
dj4KICAgICAgICAgICAgPGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Ij48aT5jdXJs
IC1rIC12IC11CiAgICAgICAgICAgICAgICAgICdhZG1pbkBpbnRlcm5hbDpwYXNzd29yZCEnIC1I
ICJDb250ZW50LXR5cGU6CiAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uL3htbCIgLVggR0VU
IDxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHBzOi8vMTcyLjE2
LjEuMTE1L2FwaS92bXMvZWEyNzM2NTMtYjA4My00MTE0LTllZDQtYmJiMGJiNWQzOGMxIiB0YXJn
ZXQ9Il9ibGFuayI+aHR0cHM6Ly8xNzIuMTYuMS4xMTUvYXBpL3Ztcy9lYTI3MzY1My1iMDgzLTQx
MTQtOWVkNC1iYmIwYmI1ZDM4YzE8L2E+CiAgICAgICAgICAgICAgICAgICZndDsgLi92bS5pbmZv
PC9pPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdj48aT5wMT0kKGNhdCAuL3ZtLmluZm98
Z3JlcCAnJmx0O3BvcnQmZ3Q7Jyk8L2k+PC9kaXY+CiAgICAgICAgICAgIDxkaXY+PGk+cDI9JChj
YXQgLi92bS5pbmZvfGdyZXAgJyZsdDtzZWN1cmVfcG9ydCZndDsnKTwvaT48L2Rpdj4KICAgICAg
ICAgICAgPGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Ij48aT5wb3J0MT0ke3AxOjAt
MTE6NH08L2k+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2PjxpPnBvcnQyPSR7cDI6MC0x
ODo0fTwvaT48L2Rpdj4KICAgICAgICAgICAgPGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
cHQ7Ij48aT5zcGljeSAtaCAxNzIuMTYuMS4xMTUKICAgICAgICAgICAgICAgICAgLXcgMTIzNDU2
IC1wICRwb3J0MSAtcyAkcG9ydDIgLWYKICAgICAgICAgICAgICAgICAgLS1zcGljZS1jYS1maWxl
PS9ob21lL2N1YmllL2NhLmNydCAmZ3Q7L2Rldi9udWxsCiAgICAgICAgICAgICAgICAgIDImZ3Q7
JmFtcDsxICZhbXA7PC9pPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwv
ZGl2PgogICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgIDxicj4KICAgICAgWW91IGNvdWxkIHRyeSBQ
T1NUIHdpdGggY29udGVudCB0eXBlOiBhcHBsaWNhdGlvbi9qc29uIDxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTJwdDsiPjxpPjxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9
Imh0dHBzOi8vMTcyLjE2LjEuMTE1L2FwaS92bXMvZWEyNzM2NTMtYjA4My00MTE0LTllZDQtYmJi
MGJiNWQzOGMxIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly8xNzIuMTYuMS4xMTUvYXBpL3Ztcy9l
YTI3MzY1My1iMDgzLTQxMTQtOWVkNC1iYmIwYmI1ZDM4YzE8L2E+PC9pPjwvc3Bhbj4vc3RhcnQK
CiAgICAgIDxicj4KICAgIDwvYmxvY2txdW90ZT4KICAgIE9oIEkgZm9yZ290IHRvIGFkZDogVGhl
IGJvZHkgc2hvdWxkIGJlIHN1ZmZpY2llbnQgaWYgaXQgaXMgJ3t9JyA8YnI+CiAgICA8YmxvY2tx
dW90ZSBjaXRlPSJtaWQ6NTQyMTQ5REEuNjAwMDcwOUByZWRoYXQuY29tIj4gPGJyPgogICAgICBI
b3BlIHRoYXQgaGVscHMuIDotKTxicj4KICAgICAgPGJsb2NrcXVvdGUgY2l0ZT0ibWlkOkJMVTE4
MC1XNDk5MEM4QTNDRDQxNzY1QkJBMTUzQkRCQjAwQHBoeC5nYmwiPgogICAgICAgIDxkaXYgZGly
PSJsdHIiPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdj48YnI+CiAgICAgICAgICAg
IDwvZGl2PgogICAgICAgICAgICA8ZGl2Pjxicj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgIDxkaXY+PGJyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8
ZGl2Pkl0IGlzIGF3ZXNvbWUhICZuYnNwOyA8Yj4mbmJzcDtCdXQgZG91IHlvdSBrbm93IHdoYXQg
Y29tbWFuZCBjYW4KICAgICAgICAgICAgICBzdGFydCB0aGUgVk0gaWYgdGhlIFZNIHN0b3AvcG93
ZXIgb2ZmICZuYnNwOyA/PC9iPjwvZGl2PgogICAgICAgICAgPGRpdj48YnI+CiAgICAgICAgICAg
IDxicj4KICAgICAgICAgICAgPGRpdj4gPGJyPgogICAgICAgICAgICAgIDxicj4KICAgICAgICAg
ICAgICBTaW5jZXJlbHkgeW91cnMsPGJyPgogICAgICAgICAgICAgIFBhdWxDaGV1bmc8YnI+CiAg
ICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAmbmJzcDt0
ZWw6IDE4MC04ODgyLTcxNzM8YnI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8YnI+
CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPGRpdj4mZ3Q7IFN1YmplY3Q6IFJlOiBbb3Zp
cnQtdXNlcnNdIEJ1ZzogU3BpY2UgcG9ydAogICAgICAgICAgICAgIGNoYW5nZWQhISEhITxicj4K
ICAgICAgICAgICAgICAmZ3Q7IEZyb206IDxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmstYWJicmV2
aWF0ZWQiIGhyZWY9Im1haWx0bzpkamFzYUByZWRoYXQuY29tIj5kamFzYUByZWRoYXQuY29tPC9h
Pjxicj4KICAgICAgICAgICAgICAmZ3Q7IFRvOiA8YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWFi
YnJldmlhdGVkIiBocmVmPSJtYWlsdG86ZXEyMDA4QG1zbi5jb20iPmVxMjAwOEBtc24uY29tPC9h
Pjxicj4KICAgICAgICAgICAgICAmZ3Q7IENDOiA8YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWFi
YnJldmlhdGVkIiBocmVmPSJtYWlsdG86dXNlcnNAb3ZpcnQub3JnIj51c2Vyc0BvdmlydC5vcmc8
L2E+PGJyPgogICAgICAgICAgICAgICZndDsgRGF0ZTogTW9uLCAyMiBTZXAgMjAxNCAxNDo0NDow
MyArMDIwMDxicj4KICAgICAgICAgICAgICAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7IFBh
dWwsPGJyPgogICAgICAgICAgICAgICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgU2hvcnQg
YW5zd2VyOiB5b3VyIGFwcHJvYWNoIHdpbGwgbm90IHdvcmsuIEkKICAgICAgICAgICAgICBtZW50
aW9uZWQgdGhlIGN1c3RvbSBob29rczxicj4KICAgICAgICAgICAgICAmZ3Q7IGFuZCBlbmdpbmUt
Y29uZmlnL1VzZXJEZWZpbmVkVk1Qcm9wZXJ0aWVzIGZvciBhCiAgICAgICAgICAgICAgcmVhc29u
LiBQbGVhc2UgZm9sbG93IG15PGJyPgogICAgICAgICAgICAgICZndDsgYWR2aWNlIGZpcnN0IGJl
Zm9yZSBhc2tpbmcgZnVydGhlciBhZHZpY2UuPGJyPgogICAgICAgICAgICAgICZndDsgPGJyPgog
ICAgICAgICAgICAgICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgTG9uZ2VyIGFuc3dlcjog
eW91ciBjaGFuZ2VzIHRvIHRoZSBsaWJ2aXJ0IGRvbWFpbnMKICAgICAgICAgICAgICB3b3VsZCBh
cHBseSBvbiBuZXh0PGJyPgogICAgICAgICAgICAgICZndDsgZG9tYWluIGNvbGQgc3RhcnQgYnV0
IHRoYXQgd2lsbCBuZXZlciBoYXBwZW4gYmVjYXVzZQogICAgICAgICAgICAgIHZkc20gYWx3YXlz
IGNyZWF0ZXM8YnI+CiAgICAgICAgICAgICAgJmd0OyBsaWJ2aXJ0IGRvbWFpbnMgYXMgdHJhbnNp
ZW50IG9uZXMgc28gdGhlIGxpYnZpcnQKICAgICAgICAgICAgICBkb21haW4gd2lsbCBkaXNhcHBl
YXI8YnI+CiAgICAgICAgICAgICAgJmd0OyBvbiBndWVzdCBPUyBzaHV0ZG93bi4gT24gbmV4dCBz
dGFydCBvZiB0aGUgc2FtZSBvVmlydAogICAgICAgICAgICAgIFZNLCB2ZHNtIHdpbGw8YnI+CiAg
ICAgICAgICAgICAgJmd0OyBjcmVhdGVzIGEgbmV3IGRvbWFpbiBYTUwgdGhhdCB3aWxsIGJlIHVz
ZWQgdG8gc3RhcnQgYQogICAgICAgICAgICAgIG5ldyBsaWJ2aXJ0PGJyPgogICAgICAgICAgICAg
ICZndDsgdHJhbnNpZW50IGRvbWFpbi48YnI+CiAgICAgICAgICAgICAgJmd0OyA8YnI+CiAgICAg
ICAgICAgICAgJmd0OyBJbiBvcmRlciB0byBtYWtlIHRoaXMgbmV3IGxpYnZpcnQgZG9tYWluIHVz
ZSB5b3VyCiAgICAgICAgICAgICAgZGVzaXJlZCBwYXJhbWV0ZXJzLDxicj4KICAgICAgICAgICAg
ICAmZ3Q7IHlvdSBoYXZlIHRvIGVkaXQgdGhlIFhNTCBiZWZvcmUgaXQgaXMgdXNlZCB0byBzdGFy
dAogICAgICAgICAgICAgIHRoZSBsaWJ2aXJ0IGRvbWFpbjxicj4KICAgICAgICAgICAgICAmZ3Q7
IGFuZCBiZWNhdXNlIHdlIGh1bWFucyBhcmUgdG9vIHNsb3cgdG8gZG8gdGhhdCBhbmQgdG9vCiAg
ICAgICAgICAgICAgYW5ub3llZCB0byBkbyB0aGF0PGJyPgogICAgICAgICAgICAgICZndDsgb24g
ZXZlcnkgVk0gc3RhcnQsIHZkc20gaG9va3MgbWVjaGFuaXNtIHdhcyBkZXZpc2VkCiAgICAgICAg
ICAgICAgYW5kIGEgc2NyaXB0IGluPGJyPgogICAgICAgICAgICAgICZndDsgYmVmb3JlX3ZtX3N0
YXJ0IGNhbiBkbyB0aGF0IGNoYW5nZXMgZm9yIHlvdSAod2l0aAogICAgICAgICAgICAgIGlucHV0
IHZhcmlhYmxlczxicj4KICAgICAgICAgICAgICAmZ3Q7IGRlZmluZWQgaW4gZW5naW5lLWNvbmZp
ZyBhbmQgc2V0IGluIFZNJ3MgY3VzdG9tCiAgICAgICAgICAgICAgcHJvcGVydGllcykuPGJyPgog
ICAgICAgICAgICAgICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgPGJyPgogICAgICAgICAg
ICAgICZndDsgU28gYmFjayB0byBteSBvcmlnaW5hbCBzdWdnZXN0aW9uOiBkbyB5b3Ugc3RpbGwg
dGhpbmsKICAgICAgICAgICAgICB0aGF0IGl0IGlzIHdpc2UgdG88YnI+CiAgICAgICAgICAgICAg
Jmd0OyB0cnkgbWV0aG9kIHRoYXQgaXMgbW9yZSBjb21wbGljYXRlZCBhbmQgbGVzcyBzZWN1cmUK
ICAgICAgICAgICAgICB0aGFuIHRoZSBjdXN0b208YnI+CiAgICAgICAgICAgICAgJmd0OyBsYXVu
Y2hlciBtZXRob2Q/PGJyPgogICAgICAgICAgICAgICZndDsgPGJyPgogICAgICAgICAgICAgICZn
dDsgPGJyPgogICAgICAgICAgICAgICZndDsgUmVnYXJkcyw8YnI+CiAgICAgICAgICAgICAgJmd0
OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyBEYXZpZDxicj4KICAgICAgICAgICAgICAmZ3Q7IDxi
cj4KICAgICAgICAgICAgICAmZ3Q7IE9uIFBvLCAyMDE0LTA5LTIyIGF0IDExOjExICswODAwLCBQ
YXVsQ2hldW5nIHdyb3RlOjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgRGVhciBEYXZpZDo8
YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsg
PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyBJIGFtIHRyeWluZyBmaWd1cmUgaXQgb3V0IHVz
aW5nIG15IHdheS4gU28gSQogICAgICAgICAgICAgIHVzZWQgInZpcnNoIGVkaXQgdm0iLDxicj4K
ICAgICAgICAgICAgICAmZ3Q7ICZndDsgSSBjaGFuZ2UgdGhlIHBvcnQgdGhlIDU5ODAgJmFtcDsg
NTk4MSwgYnV0IHN0aWxsCiAgICAgICAgICAgICAgbm90IHdvcmshISE8YnI+CiAgICAgICAgICAg
ICAgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAg
ICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAg
ICAgICAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAg
ICAgICAgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgPGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IEkgZm91bmQgYWZ0
ZXIgdmlyc2ggZWRpdCwgdGhlcmUgaXMgYSB4bWwgZmlsZQogICAgICAgICAgICAgIGhlcmUgL2V0
Yy9saWJ2aXJ0L3FlbXU8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IHdoaWNoIEkgZWRpdCB1
c2luZyAidmlyc2ggZWRpdCB2bSIuPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YnI+CiAg
ICAgICAgICAgICAgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgQW5kIEkg
YWxzbyBydW4gdGhpcyBjb21tYW5kIDogInZpcnNoIGRlZmluZQogICAgICAgICAgICAgIHZtLnht
bCIgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAm
Z3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgYWxzbyBub3Qgd29yay4gQ2FuIHlvdSB0
ZWxsIG1lIHdoZXJlIGlzIHRoZSBmaWxlCiAgICAgICAgICAgICAgSSBjYW4gZml4ZWQgdGhlPGJy
PgogICAgICAgICAgICAgICZndDsgJmd0OyBzcGljZSBwb3J0Ljxicj4KICAgICAgICAgICAgICAm
Z3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAg
Jmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAg
ICZndDsgJmd0OyBTaW5jZXJlbHkgeW91cnMsPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyBQ
YXVsQ2hldW5nPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAg
Jmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgdGVsOiAxODAtODg4Mi03MTcz
PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7
IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0
OyAmZ3Q7IFN1YmplY3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIEJ1ZzogU3BpY2UgcG9ydAogICAgICAg
ICAgICAgIGNoYW5nZWQhISEhITxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyBGcm9t
OiA8YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86ZGph
c2FAcmVkaGF0LmNvbSI+ZGphc2FAcmVkaGF0LmNvbTwvYT48YnI+CiAgICAgICAgICAgICAgJmd0
OyAmZ3Q7ICZndDsgVG86IDxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhy
ZWY9Im1haWx0bzplcTIwMDhAbXNuLmNvbSI+ZXEyMDA4QG1zbi5jb208L2E+PGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyAmZ3Q7IENDOiA8YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWFiYnJl
dmlhdGVkIiBocmVmPSJtYWlsdG86dXNlcnNAb3ZpcnQub3JnIj51c2Vyc0BvdmlydC5vcmc8L2E+
PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7IERhdGU6IFRodSwgMTggU2VwIDIwMTQg
MTU6Mjc6NTAgKzAyMDA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAg
ICAgICAgICAgICZndDsgJmd0OyAmZ3Q7IEhpLDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsg
Jmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgMikgaXMgbm90IGEgZmlsZSwg
aXQncyBhIGtleSBpbgogICAgICAgICAgICAgIGVuZ2luZS1jb25maWc8YnI+CiAgICAgICAgICAg
ICAgJmd0OyAmZ3Q7ICZndDsgMykgaXMgYSBWRFNNIGN1c3RvbSBob29rIHRoYXQgbmVlZHMgdG8g
YmUKICAgICAgICAgICAgICBpbiBhbGwgdGhlIGh5cGVydmlzb3JzIGluPGJyPgogICAgICAgICAg
ICAgICZndDsgJmd0OyBEQy9DbHVzdGVyPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7
IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyBGb2xsb3cgdmRzbSBjdXN0b20gaG9v
ayBkb2N1bWVudGF0aW9uIChJCiAgICAgICAgICAgICAgZG9uJ3QgaGF2ZSBhIGxpbmsgZnJvbSB0
b3A8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IG9mIG15IGhlYWQgYnV0IHdlYiBvciBNTCBh
cmNoaXZlcyB3aWxsIHN1cmVseQogICAgICAgICAgICAgIGhlbHApLjxicj4KICAgICAgICAgICAg
ICAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgRGF2aWQ8
YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsg
Jmd0OyAmZ3Q7IE9uIFRodSwgMjAxNC0wOS0xOCBhdCAxNDo1MSArMDgwMCwKICAgICAgICAgICAg
ICBQYXVsQ2hldW5nIHdyb3RlOjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
IERlYXIgRGF2aWQsPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgog
ICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsg
Jmd0OyAmZ3Q7ICZndDsgVGhhbmsgeW91IGZvciB5b3VyIGhlbHAgLiBZb3VyIGFuc3dlcgogICAg
ICAgICAgICAgIGlzIHZlcnkgcHJvZmVzc2lvbmFsLjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4K
ICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IEkgc3RpbGwgY2FuJ3Qgbm90IGZpbmQg
YSB3YXkgdG8gc3RpY2sKICAgICAgICAgICAgICB3aXRoIHN0YXRpYyBwb3J0IGFzc2lnbm1lbnRz
PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgRm9yIEkgZG9uJ3QgdW5kZXJz
dGFuZCB5b3UgdGVsbGluZyBtZQogICAgICAgICAgICAgICwgMiZhbXA7Mywgd2hlcmUgSSBjYW4g
ZmluZCB0aGU8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyBmaWxlIHRvIG1v
ZGlmeT88YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAg
ICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAg
ICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7
ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IEhv
d2V2ZXIsIGlmIHlvdSBfcmVhbGx5XyB3YW50IHRvCiAgICAgICAgICAgICAgc3RpY2sgd2l0aCBz
dGF0aWMgcG9ydDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgYXNzaWdubWVudHMsPGJyPgog
ICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgZG88YnI+CiAgICAgICAgICAgICAgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IHRoZSBmb2xsb3dpbmc6PGJyPgogICAgICAgICAgICAgICZn
dDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAxKSBkZXNpZ25hdGUgdGhlIHBvcnQgcmFuZ2Ugc28KICAg
ICAgICAgICAgICB0aGF0IGl0IGRvZXNuJ3QgY29sbGlkZSB3aXRoPGJyPgogICAgICAgICAgICAg
ICZndDsgJmd0OyBvdGhlcjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IHJh
bmdlczxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgaW4gdXNlIChl
LmcuIFJIRVYgdXNlcyA1OTAwLTYwMjMsCiAgICAgICAgICAgICAgc28gNTgwMC01ODk5IGNvdWxk
IGJlIHNhZmUpPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAyKSBh
ZGQgYSBjdXN0b20gVk0gcHJvcGVydGllcyB0bwogICAgICAgICAgICAgIHRoZSBlbmdpbmUgZm9y
IHNldHRpbmcgb2YgcG9ydDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgYW5kPGJyPgogICAg
ICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyB0bHMtcG9ydDxicj4KICAgICAgICAg
ICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgMykgYWRkIGEgdmRzbSBob29rIHRvCiAgICAg
ICAgICAgICAgYmVmb3JlX3ZtX3N0YXJ0IGRpcmVjdG9yeSBvbiBlYWNoIGhvc3Q8YnI+CiAgICAg
ICAgICAgICAgJmd0OyAmZ3Q7IHRoYXQ8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyB3aWxsPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBhZGQg
InBvcnQiIGFuZCAidGxzUG9ydCIKICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRvIHRoZSBncmFw
aGljcyBlbGVtZW50IG9mPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgbGli
dmlydDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgZG9tYWluIHht
bDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAm
Z3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAg
ICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0
OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgog
ICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgU2luY2VyZWx5IHlvdXJzLDxicj4KICAg
ICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IFBhdWxDaGV1bmc8YnI+CiAgICAgICAgICAg
ICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyB0ZWw6IDE4MC04ODgy
LTcxNzM8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAg
ICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IFN1Ympl
Y3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIEJ1ZzoKICAgICAgICAgICAgICBTcGljZSBwb3J0IGNoYW5n
ZWQhISEhITxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgRnJvbTog
PGEgY2xhc3M9ImVjeG1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmRqYXNh
QHJlZGhhdC5jb20iPmRqYXNhQHJlZGhhdC5jb208L2E+PGJyPgogICAgICAgICAgICAgICZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyBUbzogPGEgY2xhc3M9ImVjeG1vei10eHQtbGluay1hYmJyZXZp
YXRlZCIgaHJlZj0ibWFpbHRvOmVxMjAwOEBtc24uY29tIj5lcTIwMDhAbXNuLmNvbTwvYT48YnI+
CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IENDOiA8YSBjbGFzcz0iZWN4
bW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86dXNlcnNAb3ZpcnQub3JnIj51
c2Vyc0BvdmlydC5vcmc8L2E+PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyBEYXRlOiBXZWQsIDE3IFNlcCAyMDE0IDEwOjQwOjQyCiAgICAgICAgICAgICAgKzAyMDA8
YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAg
ICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgSGkgUGF1bCw8YnI+CiAgICAgICAgICAgICAg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0
OyAmZ3Q7ICZndDsgVGhpcyBiZWhhdmlvdXIgaXMgYnkgZGVzaWduLiBJdAogICAgICAgICAgICAg
IGlzIGEgYmFkIGlkZWEgdG8gb3ZlcnJpZGUgaXQuIEE8YnI+CiAgICAgICAgICAgICAgJmd0OyAm
Z3Q7IGdvb2Q8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IGFwcHJv
YWNoIHRvIHlvdXIgcHJvYmxlbSB3b3VsZCBiZQogICAgICAgICAgICAgIHRvIHdyaXRlIGEgbGF1
bmNoZXIgc2NyaXB0PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyB0aGF0PGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgd291bGQ6PGJyPgogICAgICAgICAgICAgICZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyAxKSBjb25uZWN0IHRvIHRoZSBSRVNUIEFQSTxicj4KICAgICAg
ICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgMikgZ2V0IHRoZSBWTSBjb25uZWN0aW9u
IGRldGFpbHM8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDMpIGdl
dCBuZXcgVk0gdGlja2V0PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0
OyA0KSB3cml0ZSB0aGlzIGluZm8gZG93biB0byBhCiAgICAgICAgICAgICAgdGVtcG9yYXJ5IC52
diBmaWxlIFszXTxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgNSkg
bGF1bmNoIHJlbW90ZS12aWV3ZXI8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0
OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgU29tZSBp
bmZvIGhvdyB0byB1c2UgUkVTVCBBUEkgaXMKICAgICAgICAgICAgICBkZXNjcmliZWQgaGVyZSBb
MV0gYW5kIC52diBmaWxlPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgZm9y
bWF0PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBpcyBkb2N1bWVu
dGVkIGluIHZpcnQtdmlld2VyCiAgICAgICAgICAgICAgc291cmNlcyBbMl0uIFBsZWFzZSBub3Rl
IHRoYXQgWzFdPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyBpcyBhPGJyPgogICAgICAgICAg
ICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgYml0PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAm
Z3Q7ICZndDsgJmd0OyBvdXRkYXRlZDo8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyAmZ3Q7ICogeW91IGNhbiB1c2UgSFRUUCBoZWFkZXIKICAgICAgICAgICAgICAiZmlsdGVy
OiB0cnVlIiB0byBiZSBhYmxlIHRvIGxvZyBpbiBhczxicj4KICAgICAgICAgICAgICAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7IG5vbi1hZG1pbjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAm
Z3Q7ICZndDsgKiB5b3Ugb25seSBoYXZlIHRvIHVzZSBwYXNzd29yZAogICAgICAgICAgICAgIGxv
Z2luIG9uY2Ugd2hlbiB5b3UgdXNlPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAicHJlZmVyOiBwZXJzaXN0ZW50LWF1dGgiIEhUVFAKICAgICAgICAgICAgICBoZWFk
ZXIgYW5kIHlvdSBzZW5kIHRoZSBjb29raWU8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IHlv
dTxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IGdvdDxicj4KICAgICAgICAg
ICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgaW4gYSByZXNwb25zZSB0byBmaXJzdCByZXF1
ZXN0Ljxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgSW4gdGhlIGZ1
dHVyZSwgdGhlIHN0ZXBzIDItNCB3aWxsCiAgICAgICAgICAgICAgYmVjb21lIGEgb25lIHN0ZXAg
b2YgZ2V0dGluZyBhPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBy
ZWFkeS10by11c2UgLnZ2IGZpbGUgZnJvbSB0aGUKICAgICAgICAgICAgICBBUEkgWzNdIGJ1dCB3
ZSBhcmVuJ3QgdGhlcmUgeWV0Ljxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBbMV08YnI+
CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0Ozxicj4KICAgICAgICAgICAgICAmZ3Q7
ICZndDsgPGEgY2xhc3M9ImVjeG1vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cDovL3d3
dy5vdmlydC5vcmcvSG93X3RvX0Nvbm5lY3RfdG9fU1BJQ0VfQ29uc29sZV9XaXRob3V0X1BvcnRh
bCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93d3cub3ZpcnQub3JnL0hvd190b19Db25uZWN0X3Rv
X1NQSUNFX0NvbnNvbGVfV2l0aG91dF9Qb3J0YWw8L2E+PGJyPgogICAgICAgICAgICAgICZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyBbMl08YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsg
Jmd0Ozxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsKICAgICAgICAgICAgICA8YSBjbGFzcz0i
ZWN4bW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJodHRwczovL2dpdC5mZWRvcmFob3N0ZWQu
b3JnL2NnaXQvdmlydC12aWV3ZXIuZ2l0L3RyZWUvc3JjL3ZpcnQtdmlld2VyLWZpbGUuYyNuMzAi
IHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdC5mZWRvcmFob3N0ZWQub3JnL2NnaXQvdmlydC12
aWV3ZXIuZ2l0L3RyZWUvc3JjL3ZpcnQtdmlld2VyLWZpbGUuYyNuMzA8L2E+PGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBbM10gPGEgY2xhc3M9ImVjeG1vei10eHQt
bGluay1mcmVldGV4dCIgaHJlZj0iaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVn
LmNnaT9pZD0xMTI4NzYzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu
Y29tL3Nob3dfYnVnLmNnaT9pZD0xMTI4NzYzPC9hPjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IEhvd2V2ZXIs
IGlmIHlvdSBfcmVhbGx5XyB3YW50IHRvCiAgICAgICAgICAgICAgc3RpY2sgd2l0aCBzdGF0aWMg
cG9ydDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgYXNzaWdubWVudHMsPGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgZG88YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7IHRoZSBmb2xsb3dpbmc6PGJyPgogICAgICAgICAgICAgICZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAxKSBkZXNpZ25hdGUgdGhlIHBvcnQgcmFuZ2Ugc28KICAgICAgICAg
ICAgICB0aGF0IGl0IGRvZXNuJ3QgY29sbGlkZSB3aXRoPGJyPgogICAgICAgICAgICAgICZndDsg
Jmd0OyBvdGhlcjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IHJhbmdlczxi
cj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgaW4gdXNlIChlLmcuIFJI
RVYgdXNlcyA1OTAwLTYwMjMsCiAgICAgICAgICAgICAgc28gNTgwMC01ODk5IGNvdWxkIGJlIHNh
ZmUpPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAyKSBhZGQgYSBj
dXN0b20gVk0gcHJvcGVydGllcyB0bwogICAgICAgICAgICAgIHRoZSBlbmdpbmUgZm9yIHNldHRp
bmcgb2YgcG9ydDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgYW5kPGJyPgogICAgICAgICAg
ICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyB0bHMtcG9ydDxicj4KICAgICAgICAgICAgICAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgMykgYWRkIGEgdmRzbSBob29rIHRvCiAgICAgICAgICAg
ICAgYmVmb3JlX3ZtX3N0YXJ0IGRpcmVjdG9yeSBvbiBlYWNoIGhvc3Q8YnI+CiAgICAgICAgICAg
ICAgJmd0OyAmZ3Q7IHRoYXQ8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyB3
aWxsPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBhZGQgInBvcnQi
IGFuZCAidGxzUG9ydCIKICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRvIHRoZSBncmFwaGljcyBl
bGVtZW50IG9mPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgbGlidmlydDxi
cj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgZG9tYWluIHhtbDxicj4K
ICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAg
ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7IEJlc3QgcmVnYXJkcyw8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
RGF2aWQ8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAg
ICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgT24gU3QsIDIwMTQtMDktMTcgYXQg
MTA6NDEgKzA4MDAsCiAgICAgICAgICAgICAgUGF1bENoZXVuZyB3cm90ZTo8YnI+CiAgICAgICAg
ICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgRGVhciBhbGwsPGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7ICZndDsgQWZ0ZXIgc2h1dGRvd24gdGhlIFZNLCB0aGVuCiAgICAgICAg
ICAgICAgcmVzdGFydCB0aGUgVk0gdGhlIFZtJ3Mgc3BpY2UgcG9ydDxicj4KICAgICAgICAgICAg
ICAmZ3Q7ICZndDsgaXM8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
ICZndDsgY2hhbmdlZCE8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxi
cj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAg
ICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAg
ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0
OyAmZ3Q7IEJlY2F1c2UgSSBoYXZlIDEwIHRlcm1pbmFsCiAgICAgICAgICAgICAgQVJNLUJveCBy
dW5uaW5nIHNwaWNlIGNsaWVudDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgY29ubmVjdGVk
PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgdG88YnI+CiAgICAgICAgICAg
ICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgdGhlIHZtLCBidXQgYWZ0ZXIgdGhlIFZN
CiAgICAgICAgICAgICAgc2h1dGRvd24gYW5kIHN0YXJ0IGFnYWluLCB0aGUgdm0gbm90PGJyPgog
ICAgICAgICAgICAgICZndDsgJmd0OyB0aGU8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyBvbmU8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZn
dDsgd2hpY2UgdGhlIG9uZSBiZWZvcmUuPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
SSB3aXNoIHlvdSBjYW4gbGV0IHVzIGhhdmUgYQogICAgICAgICAgICAgIG9wdGlvbiwgdG8gbGV0
IHRoZSBWTSB3aXRoIGE8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IGZpeGVkPGJyPgogICAg
ICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgc3BpY2U8YnI+CiAgICAgICAgICAgICAgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgcG9ydCwgbGlrZTo8YnI+CiAgICAgICAgICAgICAg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgdm0xOiBzcGljZSBwb3J0IDogNTkwMAogICAg
ICAgICAgICAgIHRsczo1OTAxPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyAmZ3Q7IHZtMjogNTkwMiA1OTAzPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
QW5kIEkgaGF2ZSBhbm90aGVyCiAgICAgICAgICAgICAgcmVjb21tb25kOiBoYXZlIGEgZnVjdGlv
biB0byBkbyB0aGF0IDo8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxi
cj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBpZiB0aGUgdm0g
c2h1dGRvd24gYnkgdXNlciwKICAgICAgICAgICAgICBpdCB3aWxsIHN0YXJ0IHRoZSBWTSBhdXRv
bWF0aWMuPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyBUaGF0PGJyPgogICAgICAgICAgICAg
ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IG1lYW5zIHRoZSBWTSBjYW4gbm90IGJlCiAg
ICAgICAgICAgICAgc2h1dGRvd24hPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
Jmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJy
PgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAg
ICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IEkgaG9wZSB5b3UgY2FuIGhhdmUgdGhpcyB0d28KICAgICAg
ICAgICAgICBmdWN0aW9uISBUaGF0IG1lYW5zIGEgbG90IHRvPGJyPgogICAgICAgICAgICAgICZn
dDsgJmd0OyB0aG9zZTxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IHdobzxi
cj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBhcmUgdXNpbmcg
VGVybWluYWwgYm94IHVzZXIKICAgICAgICAgICAgICBsaWtlIG1lLjxicj4KICAgICAgICAgICAg
ICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
SSBhbSBzb3JyeSBmb3IgbXkgcG9vcgogICAgICAgICAgICAgIEVuZ2xpc2guIEJ1dCBJIGhvcGUg
eW91IGFsbCBjYW48YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7IHVuZGVyc3RhbmQ8YnI+CiAg
ICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgd2hhdCBJIGFtIHNheWlu
Zy48YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgog
ICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAg
ICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZn
dDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4K
ICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAg
ICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZn
dDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyBTaW5jZXJlbHkgeW91cnMsPGJyPgogICAgICAgICAgICAgICZn
dDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IFBhdWxDaGV1bmc8YnI+CiAgICAgICAgICAgICAg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgJmd0OyAm
Z3Q7ICZndDsgJmd0OyB0ZWw6IDE4MC04ODgyLTcxNzM8YnI+CiAgICAgICAgICAgICAgJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7CiAgICAgICAgICAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX188YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0
OyAmZ3Q7ICZndDsgVXNlcnMgbWFpbGluZyBsaXN0PGJyPgogICAgICAgICAgICAgICZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmstYWJicmV2aWF0
ZWQiIGhyZWY9Im1haWx0bzpVc2Vyc0BvdmlydC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT48YnI+
CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgPGEgY2xhc3M9ImVj
eG1vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWls
bWFuL2xpc3RpbmZvL3VzZXJzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2xpc3RzLm92aXJ0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzPC9hPjxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsg
Jmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0
OyA8YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgJmd0OyA8YnI+CiAgICAgICAgICAg
ICAgJmd0OyAmZ3Q7ICZndDsgJmd0OwogICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAm
Z3Q7ICZndDsgVXNlcnMgbWFpbGluZyBsaXN0PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyAm
Z3Q7ICZndDsgPGEgY2xhc3M9ImVjeG1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFp
bHRvOlVzZXJzQG92aXJ0Lm9yZyI+VXNlcnNAb3ZpcnQub3JnPC9hPjxicj4KICAgICAgICAgICAg
ICAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmstZnJlZXRleHQi
IGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VycyIgdGFy
Z2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vy
czwvYT48YnI+CiAgICAgICAgICAgICAgJmd0OyAmZ3Q7ICZndDsgPGJyPgogICAgICAgICAgICAg
ICZndDsgJmd0OyAmZ3Q7IDxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgPGJyPgogICAgICAg
ICAgICAgICZndDsgJmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXzxicj4KICAgICAgICAgICAgICAmZ3Q7ICZndDsgVXNlcnMgbWFpbGluZyBsaXN0PGJy
PgogICAgICAgICAgICAgICZndDsgJmd0OyA8YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWFiYnJl
dmlhdGVkIiBocmVmPSJtYWlsdG86VXNlcnNAb3ZpcnQub3JnIj5Vc2Vyc0BvdmlydC5vcmc8L2E+
PGJyPgogICAgICAgICAgICAgICZndDsgJmd0OyA8YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWZy
ZWV0ZXh0IiBocmVmPSJodHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNl
cnMiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGlu
Zm8vdXNlcnM8L2E+PGJyPgogICAgICAgICAgICAgICZndDsgPGJyPgogICAgICAgICAgICAgICZn
dDsgPGJyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2
PgogICAgICAgIDxicj4KICAgICAgICA8ZmllbGRzZXQgY2xhc3M9ImVjeG1pbWVBdHRhY2htZW50
SGVhZGVyIj48L2ZpZWxkc2V0PgogICAgICAgIDxicj4KICAgICAgICA8cHJlPl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClVzZXJzIG1haWxpbmcgbGlzdAo8
YSBjbGFzcz0iZWN4bW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86VXNlcnNA
b3ZpcnQub3JnIj5Vc2Vyc0BvdmlydC5vcmc8L2E+CjxhIGNsYXNzPSJlY3htb3otdHh0LWxpbmst
ZnJlZXRleHQiIGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91
c2VycyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0
aW5mby91c2VyczwvYT4KPC9wcmU+CiAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgPGJyPgogICAg
ICA8YnI+CiAgICAgIDxwcmUgY2xhc3M9ImVjeG1vei1zaWduYXR1cmUiPi0tIApSZWdhcmRzLAoK
VmluemVueiBGZWVuc3RyYSB8IFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcgpSZWRIYXQgRW5naW5l
ZXJpbmcgVmlydHVhbGl6YXRpb24gUiAmYW1wOyBEClBob25lOiArNDIwIDUzMiAyOTQgNjI1CklS
QzogdmZlZW5zdHIgb3IgZXZpbGlzc2ltbwoKQmV0dGVyIHRlY2hub2xvZ3kuIEZhc3RlciBpbm5v
dmF0aW9uLiBQb3dlcmVkIGJ5IGNvbW11bml0eSBjb2xsYWJvcmF0aW9uLgpTZWUgaG93IGl0IHdv
cmtzIGF0IHJlZGhhdC5jb208L3ByZT4KICAgIDwvYmxvY2txdW90ZT4KICAgIDxicj4KICAgIDxi
cj4KICAgIDxwcmUgY2xhc3M9ImVjeG1vei1zaWduYXR1cmUiPi0tIApSZWdhcmRzLAoKVmluemVu
eiBGZWVuc3RyYSB8IFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcgpSZWRIYXQgRW5naW5lZXJpbmcg
VmlydHVhbGl6YXRpb24gUiAmYW1wOyBEClBob25lOiArNDIwIDUzMiAyOTQgNjI1CklSQzogdmZl
ZW5zdHIgb3IgZXZpbGlzc2ltbwoKQmV0dGVyIHRlY2hub2xvZ3kuIEZhc3RlciBpbm5vdmF0aW9u
LiBQb3dlcmVkIGJ5IGNvbW11bml0eSBjb2xsYWJvcmF0aW9uLgpTZWUgaG93IGl0IHdvcmtzIGF0
IHJlZGhhdC5jb208L3ByZT48L2Rpdj48L2Rpdj4gCQkgCSAgIAkJICA8L2Rpdj48L2Rpdj4gCQkg
CSAgIAkJICA8L2Rpdj48L2JvZHk+DQo8L2h0bWw+
--_a83b4ea2-88e9-4b9b-9848-90dc1c4b06a5_--
10 years, 2 months
ipv6 FTP not enabled on resources ?
by R P Herrold
I get this message trying to mirror some content off
resources.ovirt.org
The following error was encountered while trying to retrieve
the URL: ftp://resources.ovirt.org/pub/ovirt-3.3/rpm/el6/
Connection to 2600:3c01::f03c:91ff:fe93:4b0d failed.
The system returned: (111) Connection refused
Is ip6tables not opened, or the anon. ftpd not listening on
ipv6? if not, could it please be enabled? It is not possible
to readily mirror content off through http ...
Thanks
-- Russ herrold
10 years, 2 months
Re: [ovirt-users] hosted engine setup on second host fails
by Itamar Heim
On Sep 23, 2014 7:03 PM, Stefan Wendler <stefan.wendler(a)tngtech.com> wrote:
>
> On 09/23/2014 17:01, Itamar Heim wrote:
> > On 09/23/2014 05:17 PM, Stefan Wendler wrote:
> >> On 09/22/2014 10:52, Stefan Wendler wrote:
> >>> On 09/19/2014 15:58, Itamar Heim wrote:
> >>>> On 09/19/2014 03:32 PM, Stefan Wendler wrote:
> >>>>> Hi there.
> >>>>>
> >>>>> I'm trying to install a hosted-engine on our second node (fist engine
> >>>>> runs on node1).
> >>>>>
> >>>>> But I always get the message:
> >>>>>
> >>>>> [ ERROR ] Cannot automatically add the host to the Default cluster:
> >>>>> Cannot add Host. Host with the same address already exists.
> >>>>>
> >>>>> I'm not entirely sure what I have to do when this message comes, so I
> >>>>> just press ENTER:
> >>>>>
> >>>>> #######
> >>>>> To continue make a selection from the options below:
> >>>>> (1) Continue setup - engine installation is complete
> >>>>> (2) Power off and restart the VM
> >>>>> (3) Abort setup
> >>>>>
> >>>>> (1, 2, 3)[1]:
> >>>>> ########
> >>>>>
> >>>>> Is there any other interaction required prior to selecting "1"?
> >>>>>
> >>>>> In the Web Gui I get the following message:
> >>>>>
> >>>>> X Adding new Host hosted_engine_2 to Cluster Default
> >>>>>
> >>>>> Here is the console output:
> >>>>>
> >>>>> # hosted-engine --deploy
> >>>>> [ INFO ] Stage: Initializing
> >>>>> Continuing will configure this host for serving as
> >>>>> hypervisor
> >>>>> and create a VM where you have to install oVirt Engine afterwards.
> >>>>> Are you sure you want to continue? (Yes, No)[Yes]:
> >>>>> [ INFO ] Generating a temporary VNC password.
> >>>>> [ INFO ] Stage: Environment setup
> >>>>> Configuration files: []
> >>>>> Log file:
> >>>>> /var/log/ovirt-hosted-engine-setup/ovirt-hosted-engine-setup-20140919141012-k2lag6.log
> >>>>>
> >>>>>
> >>>>> Version: otopi-1.2.3 (otopi-1.2.3-1.el6)
> >>>>> [ INFO ] Hardware supports virtualization
> >>>>> [ INFO ] Bridge ovirtmgmt already created
> >>>>> [ INFO ] Stage: Environment packages setup
> >>>>> [ INFO ] Stage: Programs detection
> >>>>> [ INFO ] Stage: Environment setup
> >>>>> [ INFO ] Stage: Environment customization
> >>>>>
> >>>>> --== STORAGE CONFIGURATION ==--
> >>>>>
> >>>>> During customization use CTRL-D to abort.
> >>>>> Please specify the storage you would like to use (nfs3,
> >>>>> nfs4)[nfs3]:
> >>>>> Please specify the full shared storage connection path
> >>>>> to use
> >>>>> (example: host:/path): <some address>:/volume1
> >>>>> The specified storage location already contains a data
> >>>>> domain.
> >>>>> Is this an additional host setup (Yes, No)[Yes]?
> >>>>> [ INFO ] Installing on additional host
> >>>>> Please specify the Host ID [Must be integer, default: 2]:
> >>>>> The Host ID is already known. Is this a re-deployment
> >>>>> on an
> >>>>> additional host that was previously set up (Yes, No)[Yes]?
> >>>>>
> >>>>> --== SYSTEM CONFIGURATION ==--
> >>>>>
> >>>>> [WARNING] A configuration file must be supplied to deploy Hosted
> >>>>> Engine
> >>>>> on an additional host.
> >>>>> The answer file may be fetched from the first host
> >>>>> using scp.
> >>>>> If you do not want to download it automatically you can
> >>>>> abort
> >>>>> the setup answering no to the following question.
> >>>>> Do you want to scp the answer file from the first host?
> >>>>> (Yes,
> >>>>> No)[Yes]:
> >>>>> Please provide the FQDN or IP of the first host:
> >>>>> <node1.domain>
> >>>>> Enter 'root' user password for host <node1.domain>:
> >>>>> [ INFO ] Answer file successfully downloaded
> >>>>>
> >>>>> --== NETWORK CONFIGURATION ==--
> >>>>>
> >>>>> The following CPU types are supported by this host:
> >>>>> - model_Westmere: Intel Westmere Family
> >>>>> - model_Nehalem: Intel Nehalem Family
> >>>>> - model_Penryn: Intel Penryn Family
> >>>>> - model_Conroe: Intel Conroe Family
> >>>>>
> >>>>> --== HOSTED ENGINE CONFIGURATION ==--
> >>>>>
> >>>>> Enter the name which will be used to identify this host
> >>>>> inside
> >>>>> the Administrator Portal [hosted_engine_2]:
> >>>>> Enter 'admin@internal' user password that will be used for
> >>>>> accessing the Administrator Portal:
> >>>>> Confirm 'admin@internal' user password:
> >>>>> [ INFO ] Stage: Setup validation
> >>>>>
> >>>>> --== CONFIGURATION PREVIEW ==--
> >>>>>
> >>>>> Engine FQDN : engine.domain
> >>>>> Bridge name : ovirtmgmt
> >>>>> SSH daemon port : 22
> >>>>> Gateway address : <some address>
> >>>>> Host name for web application : hosted_engine_2
> >>>>> Host ID : 2
> >>>>> Image size GB : 25
> >>>>> Storage connection : <some
> >>>>> address>:/volume1
> >>>>> Console type : vnc
> >>>>> Memory size MB : 8192
> >>>>> MAC address : 00:16:3e:3b:8d:66
> >>>>> Boot type : disk
> >>>>> Number of CPUs : 2
> >>>>> CPU Type : model_Westmere
> >>>>>
> >>>>> Please confirm installation settings (Yes, No)[No]: yes
> >>>>> [ ERROR ] Invalid value
> >>>>>
> >>>>> Please confirm installation settings (Yes, No)[No]: Yes
> >>>>> [ INFO ] Stage: Transaction setup
> >>>>> [ INFO ] Stage: Misc configuration
> >>>>> [ INFO ] Stage: Package installation
> >>>>> [ INFO ] Stage: Misc configuration
> >>>>> [ INFO ] Configuring libvirt
> >>>>> [ INFO ] Configuring VDSM
> >>>>> [ INFO ] Starting vdsmd
> >>>>> [ INFO ] Waiting for VDSM hardware info
> >>>>> [ INFO ] Waiting for VDSM hardware info
> >>>>> [ INFO ] Connecting Storage Domain
> >>>>> [ INFO ] Configuring VM
> >>>>> [ INFO ] Updating hosted-engine configuration
> >>>>> [ INFO ] Stage: Transaction commit
> >>>>> [ INFO ] Stage: Closing up
> >>>>> To continue make a selection from the options below:
> >>>>> (1) Continue setup - engine installation is complete
> >>>>> (2) Power off and restart the VM
> >>>>> (3) Abort setup
> >>>>>
> >>>>> (1, 2, 3)[1]:
> >>>>> [ INFO ] Engine replied: DB Up!Welcome to Health Status!
> >>>>> [ ERROR ] Cannot automatically add the host to the Default cluster:
> >>>>> Cannot add Host. Host with the same address already exists.
> >>>>> [ INFO ] Waiting for the host to become operational in the engine.
> >>>>> This
> >>>>> may take several minutes...
> >>>>> [ INFO ] Still waiting for VDSM host to become operational...
> >>>>> [ INFO ] Still waiting for VDSM host to become operational...
> >>>>>
> >>>>> And the stacktrace from the logs:
> >>>>>
> >>>>> 2014-09-19 14:14:07 DEBUG
> >>>>> otopi.plugins.ovirt_hosted_engine_setup.engine.add_host
> >>>>> add_host._closeup:438 Cannot add the host to the Default cluster
> >>>>> Traceback (most recent call last):
> >>>>> File
> >>>>> "/usr/share/ovirt-hosted-engine-setup/scripts/../plugins/ovirt-hosted-engine-setup/engine/add_host.py",
> >>>>>
> >>>>>
> >>>>> line 432, in _closeup
> >>>>> override_iptables=True,
> >>>>> File
> >>>>> "/usr/lib/python2.6/site-packages/ovirtsdk/infrastructure/brokers.py",
> >>>>> line 9779, in add
> >>>>> headers={"Expect":expect, "Correlation-Id":correlation_id}
> >>>>> File
> >>>>> "/usr/lib/python2.6/site-packages/ovirtsdk/infrastructure/proxy.py",
> >>>>> line 88, in add
> >>>>> return self.request('POST', url, body, headers)
> >>>>> File
> >>>>> "/usr/lib/python2.6/site-packages/ovirtsdk/infrastructure/proxy.py",
> >>>>> line 118, in request
> >>>>> persistent_auth=self._persistent_auth)
> >>>>> File
> >>>>> "/usr/lib/python2.6/site-packages/ovirtsdk/infrastructure/proxy.py",
> >>>>> line 140, in __doRequest
> >>>>> persistent_auth=persistent_auth
> >>>>> File
> >>>>> "/usr/lib/python2.6/site-packages/ovirtsdk/web/connection.py",
> >>>>> line 134, in doRequest
> >>>>> raise RequestError, response
> >>>>> RequestError:
> >>>>> status: 409
> >>>>> reason: Conflict
> >>>>> detail: Cannot add Host. Host with the same address already exists.
> >>>>> 2014-09-19 14:14:07 ERROR
> >>>>> otopi.plugins.ovirt_hosted_engine_setup.engine.add_host
> >>>>> add_host._closeup:445 Cannot automatically add the host to the Default
> >>>>> cluster:
> >>>>> Cannot add Host. Host with the same address already exists.
> >>>>>
> >>>>>
> >>>>> Cheers,
> >>>>> Stefan
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> Users mailing list
> >>>>> Users(a)ovirt.org
> >>>>> http://lists.ovirt.org/mailman/listinfo/users
> >>>>>
> >>>>
> >>>>
> >>>> what type of hardware is this? check the host uuid is not the same on
> >>>> both please.
> >>>> http://lists.ovirt.org/pipermail/users/2014-September/027278.html
> >>>
> >>> Hi,
> >>>
> >>> this is Supermicro Hardware. But the uuids differ. Anyway, I regenerated
> >>> the uuid on node2. But I first have to fix another problem. After a
> >>> reboot the first engine on node1 doesn't start because it says the
> >>> storage path cannot be found. arrgh
> >>>
> >>> I will investigate this and report my findings.
> >>>
> >>> Cheers,
> >>> Stefan
> >>>
> >>> _______________________________________________
> >>> Users mailing list
> >>> Users(a)ovirt.org
> >>> http://lists.ovirt.org/mailman/listinfo/users
> >>
> >> Well everything is up and running again but I still have the same
> >> problem. I did a uuidgen > /etc/vdsm/vdsm.id on ovirt node 2 and 3 even
> >> though the uuids were different already.
> >>
> >> What does ovirt mean by "Host with the same address already exists"?
> >> What HOST is it referring to?
> >>
> >> Greetings,
> >> Stefan
> >>
> >
> > oh, not same uuid, rather same host name (like ip address or dns name
> > used to access it)
> it - is the engine or the ovirt-node? The nodes have definitely
> different ip addresses and dns entries. This is verified.
>
> If it is the engine then I might have a problem understanding some
> things I Basically want one engine that runs on each node, if needed.
>
> Cheers
The hosts.
Didi/Sandro?
10 years, 2 months
[oVirt 3.4.3] How to unlock HA in Creator VMs
by Grzegorz Szypa
Hi experts.
How to unlock HA option in VMs creator, like in screen:
[image: Obraz w treści 1]
becouse I would configuring auto-start VMs after reboot/shutdown Physical
Server and configuring auto-suspeding VMs before
reboote/restart/shutdown.Physical Server
Is it possible?
Have anybody idea?
Regards,
Grzegorz Szypa
10 years, 2 months
Automating VM creation
by Andrey Tepin
Hello All,
I am trying to automate the procedure of creating VM from template. I am using python oVirt sdk.
My script not only creates but assigns IP to VM and performes runtime configuration.
All created VMs should have predefined static IP, thus i can't set ip in template.
So i need to somehow modify an ip address on VM's disk image. On RHEL ip is stored in file /etc/sysconfig/network-scripts/icfg-eth0.
My options are:
1). Connect to hypervisor via SSH and patch disk (assuming i know the offset of ip on disk image).
This will only work for RAW disk images.
2). Connect to hypervisor vis SSH, mount image using libguestfs utils (guestmount). This works on cow disks too.
Do i have any other options to modify VM files?
What is the best option in terms of security and relaiability?
Can i somehow mount disk images stored on hypervisor on another VM?
The last step of VM creation is to run it and perform configuration(for ex. ipa-client-install)
My script connects to VM using ssh and runs required commands.
Is there a better way to run commands on VM?
Regards
Andrey
10 years, 2 months
Cannon have a non-VLAN VM network and VLAN-tagged networks on one interface.
by Nathan Stratton
Why not? It works fine, all our hosts have ovirtmgmt without a vlan and all
other networks with a vlan. At least with RHEL, there is nothing wrong with
the following:
[root@virt02a network-scripts]# more ifcfg-cogent
TYPE=Bridge
DEVICE=cogent
VLAN=yes
BOOTPROTO=none
MTU=1500
[root@virt02a network-scripts]# more ifcfg-ovirtmgmt
TYPE=Bridge
DEVICE=ovirtmgmt
BOOTPROTO=none
IPADDR=10.71.1.15
NETMASK=255.255.255.0
GATEWAY=10.71.1.1
ONBOOT=yes
DEFROUTE=no
MTU=1500
[root@virt02a network-scripts]# more ifcfg-private
TYPE=Bridge
DEVICE=private
BOOTPROTO=none
IPADDR=10.71.0.15
NETMASK=255.255.255.0
GATEWAY=10.71.0.1
ONBOOT=yes
DEFROUTE=yes
MTU=9000
[root@virt02a network-scripts]# more ifcfg-cogent
TYPE=Bridge
DEVICE=cogent
VLAN=yes
BOOTPROTO=none
MTU=1500
[root@virt02a network-scripts]# more ifcfg-comcast
TYPE=Bridge
DEVICE=comcast
VLAN=yes
BOOTPROTO=none
MTU=1500
[root@virt02a network-scripts]# more ifcfg-eth2.100
DEVICE="eth2.100"
VLAN=yes
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=private
MTU=9000
[root@virt02a network-scripts]# more ifcfg-eth2.201
DEVICE="eth2.201"
VLAN=yes
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=cogent
[root@virt02a network-scripts]# more ifcfg-eth2.202
DEVICE="eth2.202"
VLAN=yes
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=comcast
[root@virt02a network-scripts]# more ifcfg-eth2
DEVICE="eth2"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=ovirtmgmt
MTU=9000
><>
nathan stratton | vp technology | broadsoft, inc | +1-240-404-6580 |
www.broadsoft.com
10 years, 2 months
the better way to update vdsm
by Nathanaël Blanchet
This is a multi-part message in MIME format.
--------------020207020907080505090303
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Hi all,
I'm about to update to 3.4.4 with the associated vdsm. Updating vdsm
with yum is trivial, but it usually breaks running vms on the host.
So these are the steps I follow each time:
* live migrating runnings vms to a another host in the cluster
* putting the host in maintenance
* updating vdsm
* activating the host
* getting back the vms
* and so on with the other hosts...
But sometimes it is not enough, I need to reinstall the host so as to
the host be able to successfully activate.
When getting back the vms on the initial host, I must do it manually to
load balance vms between the hosts and this is not very convinient.
So my question is : do I update in the right way, or is there any
recommendations that I didn't find anyway?
Thanks.
--------------020207020907080505090303
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi all,<br>
<br>
I'm about to update to 3.4.4 with the associated vdsm. Updating vdsm
with yum is trivial, but it usually breaks running vms on the host.<br>
So these are the steps I follow each time:<br>
<ul>
<li>live migrating runnings vms to a another host in the cluster</li>
<li>putting the host in maintenance</li>
<li>updating vdsm</li>
<li>activating the host</li>
<li>getting back the vms</li>
<li>and so on with the other hosts...<br>
</li>
</ul>
<p>But sometimes it is not enough, I need to reinstall the host so
as to the host be able to successfully activate.<br>
</p>
<p>When getting back the vms on the initial host, I must do it
manually to load balance vms between the hosts and this is not
very convinient.<br>
</p>
<p>So my question is : do I update in the right way, or is there any
recommendations that I didn't find anyway?<br>
</p>
<p>Thanks.<br>
</p>
</body>
</html>
--------------020207020907080505090303--
10 years, 2 months
OVIRT-3.5-TEST-DAY-3: Network Custom Properties
by Ido Barkan
------=_Part_35279276_1362727715.1411380773026
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Hi,
Following is a summery of testing the Network custom properties feature as detailed the link at the bottom.
setUp:
======
engine: F19
Hosts:
F20 (virtual)
REHL 6.5 (physical)
- in separate clusters
Network custom properties:
==========================
1. I have defined a custom property entry via 'engine-config' cli and verified it consisted.
* The property was defined with a validation regular expression
* note that this requires an engine restart.
2. Added a new network to the DC and set the new property with the new drop-down value of 'custom properties'.
- verified that violating the regular expression validation fails the network set up (client side validation).
- verified that a legal value is passed to the server using a custom hook at before_network_setup stage.
[hook code attached]
3. removed the value from the DB
-- verified it is no longer available in the set up networks custom properties drop down.
bridge options:
===============
1. changed the bridge options at the OS level (via editing /sys/class/net/<bridge>/bridge/<options>)
2. defined overrides in the logical level using the bridge_opts drop down value (key=value comma separated list)
--verified that the values are changed after setting up network
3. removed the logical level settings
-- verified that the values are set back to the original ones
ethtool options:
================
* note- testing this on a virtual host, or on a virtual NIC on a physical host is pretty useless. For the NIC driver
to be capable of actually allowing NIC changes you need a bare metal NIC.
1. installed the vdsm-hook-ethtool-options hook on a physical host
2. set up network with the following ethtool command line arguments added: "-s eth1 speed 100 autoneg off"
-- verified using ethtool that changes took place
3. set up network with the following ethtool command line arguments added: "-s eth1 autoneg on"
-- verified using ethtool that changes took place
feature page: http://www.ovirt.org/Features/Network_Custom_Properties
Thanks,
Ido
------=_Part_35279276_1362727715.1411380773026
Content-Type: text/x-python; name=print_hostonly.py
Content-Disposition: attachment; filename=print_hostonly.py
Content-Transfer-Encoding: base64
IyEvdXNyL2Jpbi9weXRob24KaW1wb3J0IG9zCmltcG9ydCBob29raW5nCgoKZGVmIG1haW4oKToK
ICAgIHNldHVwX25ldHNfY29uZmlnID0gaG9va2luZy5yZWFkX2pzb24oKQogICAgaG9va2luZy5s
b2coJ2tleXM6Jysgc3RyKHNldHVwX25ldHNfY29uZmlnLmtleXMoKSkpCiAgICBmb3IgbmV0d29y
aywgYXR0cnMgaW4gc2V0dXBfbmV0c19jb25maWdbJ3JlcXVlc3QnXVsnbmV0d29ya3MnXS5pdGVt
cygpOgogICAgICAgIGlmICdjdXN0b20nIGluIGF0dHJzIGFuZCAnaG9zdG9ubHknIGluIGF0dHJz
WydjdXN0b20nXToKICAgICAgICAgICAgdmFsdWUgPSBhdHRyc1snY3VzdG9tJ11bJ2hvc3Rvbmx5
J10KICAgICAgICBlbHNlOgogICAgICAgICAgICB2YWx1ZSA9ICdub3QgZm91bmQnCiAgICAgICAg
aG9va2luZy5sb2coJ1RFU1RJTkc6IHswfScuZm9ybWF0KHZhbHVlKSkKCmlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6CiAgICBtYWluKCk=
------=_Part_35279276_1362727715.1411380773026--
10 years, 2 months
oVirt mirror health report
by Jiri Belka
Hi,
oVirt mirrors are not really great, could you consider to make a health
status reporting - out of sync, broken,...?
This way you could remove bogus mirrors which would just make people
upset.
Inspiration: http://spacehopper.org/mirmon/
j.
10 years, 2 months
Can not configure with simple LDAP.
by Fumihide Tani
Hello,
I'm running oVirt Engine, OpenLDAP and BIND on same machine. and running oVirt
host (hypervisor) on another machine.
I tried to configure OpenLDAP using ovirt-engine-extension-aaa-ldap, but No
LDAP users can search and add from Web Admin Portal.
CentOS release 6.5 (Final)
ovirt-engine.noarch 3.5.0-0.0.master.20140821064931.gitb794d66.el6
ovirt-engine-extension-aaa-ldap.noarch
0.0.0-0.0.master.20140904095149.gitc7bd415.el6
openldap-clients.x86_64 2.4.23-34.el6_5.1
openldap-servers.x86_64 2.4.23-34.el6_5.1
cyrus-sasl-gssapi.x86_64 2.1.23-13.el6_3.1
bind.x86_64 32:9.8.2-0.23.rc1.el6_5.1
My setup procedures:
-------------------------------------------------------------------------------
# yum -y install openldap-servers openldap-clients
# yum -y install cyrus-sasl-gssapi
-------------------------------------------------------------------------------
# rm -rf /etc/openldap/slapd.d
# rm -rf /var/lib/ldap/*
-------------------------------------------------------------------------------
(Copy slapd.conf template)
# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
-------------------------------------------------------------------------------
# vi /etc/openldap/slapd.conf
....(snip)....
# remove comment out
moduleload memberof.la
....(snip)....
# modify value
by dn.exact="cn=Manager,dc=rxc05271,dc=com" read
....(snip)....
# add next two lines right under "database definitions"
authz-regexp "gidNumber=0\\\+uidNumber=0,cn=peercred,cn=external,cn=auth"
"cn=Manager,dc=rxc05271,dc=com"
....(snip)....
# modify value
suffix "dc=rxc05271,dc=com"
....(snip)....
# modify value
rootdn "cn=Manager,dc=rxc05271,dc=com"
....(snip)....
# remove comment out
rootpw secret
....(snip)....
# add next line to end of the file
overlay memberof
loglevel 4
-------------------------------------------------------------------------------
(Enabling SSL/TLS)
# vi /etc/sysconfig/ldap
SLAPD_LDAPS=yes
-------------------------------------------------------------------------------
(Enabling OpenLDAP log output)
# echo "local4.* /var/log/ldap.log" > /etc/rsyslog.d/ldaplog.conf
# service rsyslog restart
-------------------------------------------------------------------------------
# service slapd start
# chkconfig slapd on
-------------------------------------------------------------------------------
# vi ldapconfig.ldif
dn: dc=rxc05271,dc=com
objectClass: dcObject
objectClass: organization
dc: rxc05271
o: RXC05271
dn: ou=Groups,dc=rxc05271,dc=com
objectclass: organizationalUnit
ou: Groups
dn: ou=Users,dc=rxc05271,dc=com
objectclass: organizationalUnit
ou: Users
dn: uid=tani,ou=Users,dc=rxc05271,dc=com
objectclass: inetOrgPerson
objectclass: uidObject
uid: tani
cn: Tani
givenName: Fumihide
mail: tani(a)rxc05271.com
sn: 0
dn: cn=Power-Users,ou=Groups,dc=rxc05271,dc=com
objectclass: groupOfNames
cn: Power-Users
member: uid=tani,ou=Users,dc=rxc05271,dc=com
-------------------------------------------------------------------------------
# ldapadd -x -D "cn=Manager,dc=rxc05271,dc=com" -w secret -f ldapconfig.ldif
-------------------------------------------------------------------------------
# vi setsasl.ldif
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,noplain,minssf=1
-
-------------------------------------------------------------------------------
# ldapmodify -x -D "cn=Manager,dc=rxc05271,dc=com" -w secret -f setsasl.ldif
-------------------------------------------------------------------------------
# ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(uid=tani)" -b dc=rxc05271,dc=com memberOf
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
version: 1
dn: uid=tani,ou=Users,dc=rxc05271,dc=com
memberOf: cn=Power-Users,ou=Groups,dc=rxc05271,dc=com
-------------------------------------------------------------------------------
# yum install ovirt-engine-extension-aaa-ldap
-------------------------------------------------------------------------------
# vi /etc/ovirt-engine/extensions.d/authn-company.properties
ovirt.engine.extension.name = authn-company
ovirt.engine.extension.bindings.method = jbossmodule
ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine-extensions.aaa.ldap
ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engineextensions.aaa.ldap.AuthnExtension
ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn
ovirt.engine.aaa.authn.profile.name = rxc05271.com
ovirt.engine.aaa.authn.authz.plugin = authz-company
config.profile.file.1 = /etc/ovirt-engine/aaa/rxc05271.properties
-------------------------------------------------------------------------------
# vi /etc/ovirt-engine/aaa/rxc05271.properties
include = <openldap.properties>
vars.user = cn=Manager,dc=rxc05271,dc=com
vars.password = 12345678
vars.server = ldap.rxc05271.com
pool.default.ssl.startTLS = true
pool.default.ssl.truststore.file = /etc/openldap/certs/ldap.jks
pool.default.ssl.truststore.password = 12345678
pool.default.serverset.single.server = ${global:vars.server}
pool.default.auth.simple.bindDN = ${global:vars.user}
pool.default.auth.simple.password = ${global:vars.password}
-------------------------------------------------------------------------------
(Add DNS records)
# vi /var/named/rxc05271.com.db
(snip)
ldap IN A 192.168.0.5
_ldap._tcp.rxc05271.com. IN SRV 10 0 389 ovirt.rxc05271.com.
# vi /var/named/0.168.192.in-addr.arpa.db
(snip)
5 IN PTR ldap.rxc05271.com.
# service named restart
-------------------------------------------------------------------------------
# service ovirt-engine restart
-------------------------------------------------------------------------------
(ldap.log outputs after ovirt-engine restart)
[root@ovirt ~]# cat /var/log/ldap.log
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(18)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(19)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(21)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(23)
Sep 21 14:33:20 ovirt slapd[19276]: connection_get(22)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: ==> bdb_bind: dn: cn=Manager,dc=rxc05271,dc=com
Sep 21 14:33:25 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:25 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:25 ovirt slapd[19276]: ==> bdb_bind: dn: cn=Manager,dc=rxc05271,dc=com
Sep 21 14:33:25 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(18)
Sep 21 14:33:25 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(18)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(18)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(18)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(18)
Sep 21 14:33:25 ovirt slapd[19276]: ==> bdb_bind: dn: cn=Manager,dc=rxc05271,dc=com
Sep 21 14:33:25 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(19)
Sep 21 14:33:25 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(19)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(19)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(19)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(19)
Sep 21 14:33:25 ovirt slapd[19276]: ==> bdb_bind: dn: cn=Manager,dc=rxc05271,dc=com
Sep 21 14:33:25 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(15)
Sep 21 14:33:25 ovirt slapd[19276]: SRCH "" 0 0
Sep 21 14:33:25 ovirt slapd[19276]: 1 0 0
Sep 21 14:33:25 ovirt slapd[19276]: filter: (objectClass=*)
Sep 21 14:33:25 ovirt slapd[19276]: attrs:
Sep 21 14:33:25 ovirt slapd[19276]: *
Sep 21 14:33:25 ovirt slapd[19276]: +
Sep 21 14:33:25 ovirt slapd[19276]: altServer
Sep 21 14:33:25 ovirt slapd[19276]: changelog
Sep 21 14:33:25 ovirt slapd[19276]: firstChangeNumber
Sep 21 14:33:25 ovirt slapd[19276]: lastChangeNumber
Sep 21 14:33:25 ovirt slapd[19276]: lastPurgedChangeNumber
Sep 21 14:33:25 ovirt slapd[19276]: namingContexts
Sep 21 14:33:25 ovirt slapd[19276]: subschemaSubentry
Sep 21 14:33:25 ovirt slapd[19276]: supportedAuthPasswordSchemes
Sep 21 14:33:25 ovirt slapd[19276]: supportedControl
Sep 21 14:33:25 ovirt slapd[19276]: supportedExtension
Sep 21 14:33:25 ovirt slapd[19276]: supportedFeatures
Sep 21 14:33:25 ovirt slapd[19276]: supportedLDAPVersion
Sep 21 14:33:25 ovirt slapd[19276]: supportedSASLMechanisms
Sep 21 14:33:25 ovirt slapd[19276]: vendorName
Sep 21 14:33:25 ovirt slapd[19276]: vendorVersion
Sep 21 14:33:25 ovirt slapd[19276]:
Sep 21 14:33:25 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:25 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:25 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:26 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(21)
Sep 21 14:33:26 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(21)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(21)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(21)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(21)
Sep 21 14:33:26 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(22)
Sep 21 14:33:26 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(22)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(22)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(22)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(22)
Sep 21 14:33:26 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(23)
Sep 21 14:33:26 ovirt slapd[19276]: do_extended: oid=1.3.6.1.4.1.1466.20037
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(23)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(23)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(23)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(23)
Sep 21 14:33:26 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(20)
Sep 21 14:33:26 ovirt slapd[19276]: SRCH "" 0 0
Sep 21 14:33:26 ovirt slapd[19276]: 1 0 0
Sep 21 14:33:26 ovirt slapd[19276]: filter: (objectClass=*)
Sep 21 14:33:26 ovirt slapd[19276]: attrs:
Sep 21 14:33:26 ovirt slapd[19276]: *
Sep 21 14:33:26 ovirt slapd[19276]: +
Sep 21 14:33:26 ovirt slapd[19276]: altServer
Sep 21 14:33:26 ovirt slapd[19276]: changelog
Sep 21 14:33:26 ovirt slapd[19276]: firstChangeNumber
Sep 21 14:33:26 ovirt slapd[19276]: lastChangeNumber
Sep 21 14:33:26 ovirt slapd[19276]: lastPurgedChangeNumber
Sep 21 14:33:26 ovirt slapd[19276]: namingContexts
Sep 21 14:33:26 ovirt slapd[19276]: subschemaSubentry
Sep 21 14:33:26 ovirt slapd[19276]: supportedAuthPasswordSchemes
Sep 21 14:33:26 ovirt slapd[19276]: supportedControl
Sep 21 14:33:26 ovirt slapd[19276]: supportedExtension
Sep 21 14:33:26 ovirt slapd[19276]: supportedFeatures
Sep 21 14:33:26 ovirt slapd[19276]: supportedLDAPVersion
Sep 21 14:33:26 ovirt slapd[19276]: supportedSASLMechanisms
Sep 21 14:33:26 ovirt slapd[19276]: vendorName
Sep 21 14:33:26 ovirt slapd[19276]: vendorVersion
Sep 21 14:33:26 ovirt slapd[19276]:
Sep 21 14:33:26 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:26 ovirt slapd[19276]: connection_get(17)
Sep 21 14:33:26 ovirt slapd[19276]: SRCH "" 0 0
Sep 21 14:33:26 ovirt slapd[19276]: 0 0 0
Sep 21 14:33:26 ovirt slapd[19276]: filter: (&(objectClass=*))
Sep 21 14:33:26 ovirt slapd[19276]: attrs:
Sep 21 14:33:26 ovirt slapd[19276]: namingContexts
Sep 21 14:33:26 ovirt slapd[19276]:
Sep 21 14:33:26 ovirt slapd[19276]: send_ldap_result: err=0 matched="" text=""
-------------------------------------------------------------------------------
(engine.log outputs after ovirt-engine restart)
# cat /var/log/ovirt-engine/engine.log | grep extensions
2014-09-21 14:33:25,591 INFO [org.ovirt.engineextensions.aaa.ldap.Framework] (MSC service thread 1-15) Creating LDAP pool 'authz' for 'authn-company'
2014-09-21 14:33:25,962 INFO [org.ovirt.engineextensions.aaa.ldap.Framework] (MSC service thread 1-15) Creating LDAP pool 'authn' for 'authn-company'
2014-09-21 14:33:26,195 INFO [org.ovirt.engine.core.extensions.mgr.ExtensionsManager] (MSC service thread 1-15) Start of enabled extensions list
2014-09-21 14:33:26,196 INFO [org.ovirt.engine.core.extensions.mgr.ExtensionsManager] (MSC service thread 1-15) Instance name: 'builtin-authn-internal', Extension name: 'Internal Authn (Built-in)', Version: 'N/A', Notes: '', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0', File: 'N/A', Initialized: 'true'
2014-09-21 14:33:26,196 INFO [org.ovirt.engine.core.extensions.mgr.ExtensionsManager] (MSC service thread 1-15) Instance name: 'authn-company', Extension name: 'aaa.ldap.authn', Version: '0.0.0_master', Notes: 'Display name: ovirt-engine-extension-aaa-ldap-0.0.0-0.0.master.20140904095149.gitc7bd415.el6', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0', File: '/etc/ovirt-engine/extensions.d/authn-company.properties', Initialized: 'true'
2014-09-21 14:33:26,197 INFO [org.ovirt.engine.core.extensions.mgr.ExtensionsManager] (MSC service thread 1-15) Instance name: 'internal', Extension name: 'Internal Authz (Built-in)', Version: 'N/A', Notes: '', License: 'ASL 2.0', Home: 'http://www.ovirt.org', Author 'The oVirt Project', Build interface Version: '0', File: 'N/A', Initialized: 'true'
2014-09-21 14:33:26,197 INFO [org.ovirt.engine.core.extensions.mgr.ExtensionsManager] (MSC service thread 1-15) End of enabled extensions list
-------------------------------------------------------------------------------
I could not find out any erros in engine.log as well as ldap.log.
And I can not search add ldap users from Web Admin Portal.
Click "Users" tab, then click "Add".
I can select "internal (internal)" only on [Add Users and Groups] in "Search"
field.
I do not know where the cause is. I'm missing another settings required?
Thanks,
Fumihide Tani
10 years, 2 months