[Engine-devel] 转发:Re: function insertstorage_domain_static(uuid, ...) does not exist

--=-sinamail_alt_e6b3693f89c9291c9a8f11a12eaf9d51 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline IEp1YW4sCgpUaGFua3MgZm9yIHlvdXIgYW5zd2VyLiAgQ2FuIHlvdSBwcm92aWRlIG1vcmUgZGV0 YWlscyBvbiBob3cgSSBjYW4gZml4IHRoaXMgcHJvYmxlbT8gIEkgdGhpbmsgZW5naW5lLXNldHVw IGlzIGJ1aWx0IGZyb20gdGhlIG92aXJ0IGVuZ2luZSB3b3Jrc3BhY2UgYW5kICBJdCBzaG91bGQg Y2FsbCB0aGUgbmV3IGludGVyZmFjZSAgcHJvcGVybHkuICBJIGFtIGNvbmZ1c2VkIHdoeSBlbmdp bmUtc2V0dXAtLS0+aW5zdF9hZGRfaXNvX3N0b3JhZ2VfZG9tYWktLS0tPmluc2VydHN0b3JhZ2Vf ZG9tYWluX3N0YXRpYyB3YXMgbm90IHVwZGF0ZWQgYmFzZWQgb24gdGhlIG5ldyBpbnRlcmZhY2Ug bG9zaW5nIG9uZSBwYXJhbWV0ZXIuICBJcyB0aGF0IGEgYnVnIGluIHRoZSB3b3Jrc3BhY2UgaW50 cm9kdWNlZCBieSB0aGUgY29tbWl0PyANCgoNCg0KLS0tLS0g5Y6f5aeL6YKu5Lu2IC0tLS0tCuWP keS7tuS6uu+8mkp1YW4gSGVybmFuZGV6IDxqaGVybmFuZEByZWRoYXQuY29tPgrmlLbku7bkurrv vJpKdWFuIEhlcm5hbmRleiA8amhlcm5hbmRAcmVkaGF0LmNvbT4K5oqE6YCB5Lq677yaZW5naW5l LWRldmVsQG92aXJ0Lm9yZwrkuLvpopjvvJpSZTogW0VuZ2luZS1kZXZlbF0gZnVuY3Rpb24gaW5z ZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsIC4uLikgZG9lcyBub3QgZXhpc3QK5pel5pyf 77yaMjAxM+W5tDAz5pyIMDfml6UgMjDngrkwMOWIhgoNCgpPbiAwMy8wNy8yMDEzIDEyOjQzIFBN LCBCYXJhayBBenVsYXkgd3JvdGU6Cj4gU2h1LAo+Cj4gQSBmZXcgbm90ZXMuCj4KPiAxIC0geW91 IGFyZSB0cmluZyB0byBjcmVhdGUgaXNvIGRvbWFpbiBvbiAvCj4gICAgICAnc2VsZWN0ICAgKCdh YjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAnSVNPX0RPTUFJTicsICdlYWQy OTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLCAnbG9jYWxob3N0LmxvY2FsZG9tYWlu Oi9JU08nLCAwLCAwKScKPiAyIC0geW91ciBob3N0IG5hbWUgaXMgbG9jYWxob3N0LmxvY2FsZG9t YWluCj4KPiBCdXQgdGhvc2UgZG9lc24ndCBsb29rIGxpa2UgdGhlIHJlYWwgcHJvYmxlbSBoZXJl Lgo+Cj4gSSBhc3N1bWUgeW91IGFyZSBydW5uaW5nIGl0IG9uIEYxOCA/Cj4KPiBDYW4gd2UgZ2V0 IHRoZSBmdWxsIGluc3RhbGxhdGlvbiBsb2c/Cj4KPiBUaGFua3MKPiBCYXJhawpDb21taXQgNWNh MWVjMDMzN2Q5MjFmMTA1NzMyMWRhMjY4OGFkMmEwMTRiOGZmYiBhZGRlZCBhIHBhcmFtZXRlciB0 byB0aGUgCnN0b3JlZCBwcm9jZWR1cmUsIGJ1dCBlbmdpbmUtc2V0dXAgY2FsbHMgIGluc3RfYWRk X2lzb19zdG9yYWdlX2RvbWFpbiAKKGluIGluc3Rfc3Auc3FsKSB3aGljaCBpbiB0dXJuIGNhbGxz IGluc2VydHN0b3JhZ2VfZG9tYWluX3N0YXRpYywgYW5kIAp0aGF0IGNhbGwgaGFzbid0IGJlZW4g dXBkYXRlZC4KPgo+Cj4KPgo+Cj4KPgo+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KPj4g RnJvbTogIlNodSBNaW5nIiA8c2h1bWluZ0BsaW51eC52bmV0LmlibS5jb20+Cj4+IFRvOiBlbmdp bmUtZGV2ZWxAb3ZpcnQub3JnLCAiRG9yb24gRmVkaXVjayIgPGRmZWRpdWNrQHJlZGhhdC5jb20+ Cj4+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCA3LCAyMDEzIDc6Mzk6MjkgQU0KPj4gU3ViamVjdDog UmU6IFtFbmdpbmUtZGV2ZWxdIGZ1bmN0aW9uIGluc2VydHN0b3JhZ2VfZG9tYWluX3N0YXRpYyh1 dWlkLCAuLi4pIGRvZXMgbm90IGV4aXN0Cj4+Cj4+Cj4+Cj4+IERvcm9uLAo+Pgo+PiBEbyB5b3Ug Z2V0IGFueSBpZGVhIGFib3V0IGl0Pwo+Pgo+PiBzdGFydHVwXzAwMkBzaW5hLmNuIDoKPj4KPj4K Pj4KPj4gSGksCj4+Cj4+IEkgYnVpbHQgdGhlIG9WaXJ0IGVuZ2luZSBSUE0gcGFja2FnZXMgZnJv bSB0aGUgbGF0ZXN0IG9WaXJ0IGVuZ2luZQo+PiBzb3VyY2UgY29kZSBhbmQgc2V0dXAgYSB5dW0g aW5zdGFsbGF0aW9uIHNlcnZlciB3aXRoIHRoZXNlIHBhY2thZ2VzLgo+PiBJIGNhbiBzdWNjZXNz ZnVsbHkgaW5zdGFsbCB0aGUgUlBNIHBhY2thZ2VzIG9uIG15IG9WaXJ0IGVuZ2luZSB0ZXN0Cj4+ IHNlcnZlci4gQnV0IHdoZW4gdGhlICJlbmdpbmUtc2V0dXAiIGNvbW1hbmQgd2FzIHVzZWQgdG8g c2V0dXAgdGhlCj4+IGVuZ2luZSBzZXZlciwgdGhlIGZvbGxvd2luZyBlcnJvcnMgd2VyZSBlbmNv dW50ZXJlZCBmcm9tCj4+IGVuZ2luZS1zZXR1cCBsb2cuIEl0IHNlZW1zIHRoYXQgaW5zdF9hZGRf aXNvX3N0b3JhZ2VfZG9tYWluIHdhcyBub3QKPj4gY3JlYXRlZCBwcm9wZXJseSBmb3IgcHNxbC4g QW55IGNsdWUgdG8gdGhpcyBwcm9ibGVtPwo+Pgo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJV Rzo6bmZzdXRpbHM6OjE5Mjo6cm9vdDo6IEdlbmVyYXRpbmcgdW5pcXVlCj4+IHV1aWQKPj4gMjAx My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NTAxOjpyb290OjogcnVubmlu ZyBzcWwKPj4gcXVlcnkgJ3NlbGVjdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9kb21haW4KPj4gKCdh YjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAnSVNPX0RPTUFJTicsCj4+ICdl YWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLAo+PiAnbG9jYWxob3N0LmxvY2Fs ZG9tYWluOi9JU08nLCAwLCAwKScgb24gZGIgc2VydmVyOiAnbG9jYWxob3N0Jy4KPj4gMjAxMy0w My0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDU0Ojpyb290OjogRXhlY3V0aW5n Cj4+IGNvbW1hbmQgLS0+ICcvdXNyL2Jpbi9wc3FsIC1oIGxvY2FsaG9zdCAtcCA1NDMyIC1VIGVu Z2luZSAtZCBlbmdpbmUKPj4gLWMgc2VsZWN0IGluc3RfYWRkX2lzb19zdG9yYWdlX2RvbWFpbgo+ PiAoJ2FiMjJiNDE5LTYzODEtNGYwYS04YjQ2LWFhNzJjODFlZGJiNScsICdJU09fRE9NQUlOJywK Pj4gJ2VhZDI5MmVlLTE0ZGQtNDBmOS1iMDZiLWYyMjUwZjc1OTRhOScsCj4+ICdsb2NhbGhvc3Qu bG9jYWxkb21haW46L0lTTycsIDAsIDApJyBpbiB3b3JraW5nIGRpcmVjdG9yeSAnL3Jvb3QnCj4+ IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mjo6cm9vdDo6IG91 dHB1dCA9Cj4+IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mzo6 cm9vdDo6IHN0ZGVyciA9IEVSUk9SOgo+PiBOVU06NDI4ODMsIERFVEFJTFM6ZnVuY3Rpb24gaW5z ZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsCj4+IGNoYXJhY3RlciB2YXJ5aW5nLCBjaGFy YWN0ZXIgdmFyeWluZywgaW50ZWdlciwgaW50ZWdlciwgdW5rbm93biwKPj4gaW50ZWdlcikgZG9l cyBub3QgZXhpc3QKPj4KPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGls czo6NDk0Ojpyb290OjogcmV0Y29kZSA9IDEKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6RVJST1I6 OmVuZ2luZS1zZXR1cDo6MTgwOTo6cm9vdDo6IFRyYWNlYmFjawo+PiAobW9zdCByZWNlbnQgY2Fs bCBsYXN0KToKPj4gRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5lIDE4MDQsIGluIF9jb25m aWdOZnNTaGFyZQo+PiBfYWRkSXNvRG9tYWludG9EQihjb250cm9sbGVyLkNPTkZbInNkX3V1aWQi XSwKPj4gY29udHJvbGxlci5DT05GWyJJU09fRE9NQUlOX05BTUUiXSkKPj4gRmlsZSAiL2Jpbi9l bmdpbmUtc2V0dXAiLCBsaW5lIDE4NjAsIGluIF9hZGRJc29Eb21haW50b0RCCj4+IHV0aWxzLmV4 ZWNSZW1vdGVTcWxDb21tYW5kKGdldERiVXNlcigpLCBnZXREYkhvc3ROYW1lKCksIGdldERiUG9y dCgpLAo+PiBiYXNlZGVmcy5EQl9OQU1FLCBzcWxRdWVyeSwgVHJ1ZSwKPj4gb3V0cHV0X21lc3Nh Z2VzLkVSUl9GQUlMRURfSU5TRVJUX0lTT19ET01BSU4lKGJhc2VkZWZzLkRCX05BTUUpKQo+PiBG aWxlICIvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9zY3JpcHRzL2NvbW1vbl91dGlscy5weSIsIGxp bmUgNTEwLCBpbgo+PiBleGVjUmVtb3RlU3FsQ29tbWFuZAo+PiByZXR1cm4gZXhlY0NtZChjbWRM aXN0PWNtZCwgZmFpbE9uRXJyb3I9ZmFpbE9uRXJyb3IsIG1zZz1lcnJNc2csCj4+IGVudkRpY3Q9 Z2V0UGdFbnYoKSkKPj4gRmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9jb21t b25fdXRpbHMucHkiLCBsaW5lIDQ5NywgaW4KPj4gZXhlY0NtZAo+PiByYWlzZSBFeGNlcHRpb24o bXNnKQo+PiBFeGNlcHRpb246IEZhaWxlZCBpbnNlcnRpbmcgSVNPIGRvbWFpbiBpbnRvIGVuZ2lu ZSBkYgo+Pgo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6c2V0dXBfc2VxdWVuY2VzOjo2 Mjo6cm9vdDo6IFRyYWNlYmFjawo+PiAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKPj4gRmlsZSAi L3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9zZXR1cF9zZXF1ZW5jZXMucHkiLCBsaW5l IDYwLAo+PiBpbiBydW4KPj4gZnVuY3Rpb24oKQo+PiBGaWxlICIvYmluL2VuZ2luZS1zZXR1cCIs IGxpbmUgMTgxMCwgaW4gX2NvbmZpZ05mc1NoYXJlCj4+IHJhaXNlIEV4Y2VwdGlvbihvdXRwdXRf bWVzc2FnZXMuRVJSX0ZBSUxFRF9DRkdfTkZTX1NIQVJFKQo+PiBFeGNlcHRpb246IEZhaWxlZCB0 byBjb25maWd1cmUgTkZTIHNoYXJlIG9uIHRoaXMgaG9zdAo+Pgo+PiAyMDEzLTAzLTA1IDIwOjAy OjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTkyOjpyb290OjogKioqIFRoZQo+PiBmb2xsb3dp bmcgcGFyYW1zIHdlcmUgdXNlZCBhcyB1c2VyIGlucHV0Ogo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5 OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjoKPj4gb3ZlcnJpZGUtaHR0cGQtY29u ZmlnOiB5ZXMKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5 Nzo6cm9vdDo6IGh0dHAtcG9ydDogODAKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVu Z2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGh0dHBzLXBvcnQ6Cj4+IDQ0Mwo+PiAyMDEzLTAzLTA1 IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjoKPj4gcmFuZG9tLXBh c3N3b3Jkczogbm8KPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6 MTk5Nzo6cm9vdDo6IG1hYy1yYW5nZToKPj4gMDA6MUE6NEE6QTg6MDE6MDAtMDA6MUE6NEE6QTg6 MDE6RkYKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6 cm9vdDo6IGhvc3QtZnFkbjoKPj4gbG9jYWxob3N0LmxvY2FsZG9tYWluCj4+IDIwMTMtMDMtMDUg MjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBhdXRoLXBhc3M6Cj4+ ICoqKioqKioqCj4+IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5 OTc6OnJvb3Q6OiBvcmctbmFtZToKPj4gbG9jYWxkb21haW4KPj4gMjAxMy0wMy0wNSAyMDowMjox OTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6Cj4+IGFwcGxpY2F0aW9uLW1vZGU6 IHZpcnQKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6 cm9vdDo6Cj4+IGRlZmF1bHQtZGMtdHlwZTogTkZTCj4+IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRF QlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6Ogo+PiBkYi1yZW1vdGUtaW5zdGFsbDogbG9j YWwKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9v dDo6IGRiLWhvc3Q6Cj4+IGxvY2FsaG9zdAo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6 ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGItbG9jYWwtcGFzczoKPj4gKioqKioqKioKPj4g MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG5m cy1tcDogL0lTTwo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjox OTk3Ojpyb290OjoKPj4gaXNvLWRvbWFpbi1uYW1lOiBJU09fRE9NQUlOCj4+IDIwMTMtMDMtMDUg MjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBjb25maWctbmZzOgo+ PiB5ZXMKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6 cm9vdDo6Cj4+IGZpcmV3YWxsLW1hbmFnZXI6IGlwdGFibGVzCj4+IDIwMTMtMDMtMDUgMjA6MDI6 MTk6OkVSUk9SOjplbmdpbmUtc2V0dXA6OjI0MTM6OnJvb3Q6OiBUcmFjZWJhY2sKPj4gKG1vc3Qg cmVjZW50IGNhbGwgbGFzdCk6Cj4+IEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGluZSAyNDA3 LCBpbiA8bW9kdWxlPgo+PiBtYWluKGNvbmZGaWxlKQo+PiBGaWxlICIvYmluL2VuZ2luZS1zZXR1 cCIsIGxpbmUgMjE5MCwgaW4gbWFpbgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+PiBFbmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0IEVuZ2lu ZS1kZXZlbEBvdmlydC5vcmcKPj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2VuZ2luZS1kZXZlbAo+Pgo+PiAtLQo+PiAtLS0KPj4g6IiS5piOIFNodSBNaW5nCj4+IE9w ZW4gVmlydHVhbGl6YXRpb24gRW5naW5lZXJuaW5nOyBDU1RMLCBJQk0gQ29ycC4KPj4gVGVsOiA4 Ni0xMC04MjQ1MTYyNiAgVGllbGluZTogOTA1MTYyNiBFLW1haWw6IHNodW1pbmdAY24uaWJtLmNv bSBvcgo+PiBzaHVtaW5nQGxpbnV4LnZuZXQuaWJtLmNvbSBBZGRyZXNzOiAzL0YgUmluZyBCdWls ZGluZywgWmhvbmdHdWFuQ3VuCj4+IFNvZnR3YXJlIFBhcmssIEhhaWRpYW4gRGlzdHJpY3QsIEJl aWppbmcgMTAwMTkzLCBQUkMKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPj4gRW5naW5lLWRldmVsIG1haWxpbmcgbGlzdAo+PiBFbmdpbmUtZGV2ZWxA b3ZpcnQub3JnCj4+IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9lbmdp bmUtZGV2ZWwKPj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IEVuZ2luZS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBFbmdpbmUtZGV2ZWxAb3ZpcnQub3Jn Cj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbAo+ Ci0tIApEaXJlY2Npw7NuIENvbWVyY2lhbDogQy9Kb3NlIEJhcmRhc2FubyBCYW9zLCA5LCBFZGlm LiBHb3JiZWEgMywgcGxhbnRhIAozwrpELCAyODAxNiBNYWRyaWQsIFNwYWluCkluc2NyaXRhIGVu IGVsIFJlZy4gTWVyY2FudGlsIGRlIE1hZHJpZCDigJMgQy5JLkYuIEI4MjY1Nzk0MSAtIFJlZCBI YXQgUy5MLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpF bmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0CkVuZ2luZS1kZXZlbEBvdmlydC5vcmcKaHR0cDovL2xp c3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbAo= --=-sinamail_alt_e6b3693f89c9291c9a8f11a12eaf9d51 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline PGRpdj4mbmJzcDtKdWFuLDxicj48YnI+VGhhbmtzIGZvciB5b3VyIGFuc3dlci4mbmJzcDsgQ2Fu IHlvdSBwcm92aWRlIG1vcmUgZGV0YWlscyBvbiBob3cgSSBjYW4gZml4IHRoaXMgcHJvYmxlbT8m bmJzcDsgSSB0aGluayBlbmdpbmUtc2V0dXAgaXMgYnVpbHQgZnJvbSB0aGUgb3ZpcnQgZW5naW5l IHdvcmtzcGFjZSBhbmQmbmJzcDsgSXQgc2hvdWxkIGNhbGwgdGhlIG5ldyBpbnRlcmZhY2UmbmJz cDsgcHJvcGVybHkuJm5ic3A7IEkgYW0gY29uZnVzZWQgd2h5IGVuZ2luZS1zZXR1cC0tLSZndDtp bnN0X2FkZF9pc29fc3RvcmFnZV9kb21haS0tLS0mZ3Q7aW5zZXJ0c3RvcmFnZV9kb21haW5fc3Rh dGljIHdhcyBub3QgdXBkYXRlZCBiYXNlZCBvbiB0aGUgbmV3IGludGVyZmFjZSBsb3Npbmcgb25l IHBhcmFtZXRlci4mbmJzcDsgSXMgdGhhdCBhIGJ1ZyBpbiB0aGUgd29ya3NwYWNlIGludHJvZHVj ZWQgYnkgdGhlIGNvbW1pdD8gPC9kaXY+DQo8YnI+DQo8ZGl2IGlkPSJvcmlnYm9keSI+DQo8ZGl2 IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyI+LS0tLS0g5Y6f5aeL6YKu5Lu2IC0tLS0tPGJy PuWPkeS7tuS6uu+8mkp1YW4gSGVybmFuZGV6ICZsdDtqaGVybmFuZEByZWRoYXQuY29tJmd0Ozxi cj7mlLbku7bkurrvvJpKdWFuIEhlcm5hbmRleiAmbHQ7amhlcm5hbmRAcmVkaGF0LmNvbSZndDs8 YnI+5oqE6YCB5Lq677yaZW5naW5lLWRldmVsQG92aXJ0Lm9yZzxicj7kuLvpopjvvJpSZTogW0Vu Z2luZS1kZXZlbF0gZnVuY3Rpb24gaW5zZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsIC4u LikgZG9lcyBub3QgZXhpc3Q8YnI+5pel5pyf77yaMjAxM+W5tDAz5pyIMDfml6UgMjDngrkwMOWI hjxicj48L2Rpdj4NCjxicj5PbiAwMy8wNy8yMDEzIDEyOjQzIFBNLCBCYXJhayBBenVsYXkgd3Jv dGU6PGJyPiZndDsgU2h1LDxicj4mZ3Q7PGJyPiZndDsgQSBmZXcgbm90ZXMuPGJyPiZndDs8YnI+ Jmd0OyAxIC0geW91IGFyZSB0cmluZyB0byBjcmVhdGUgaXNvIGRvbWFpbiBvbiAvPGJyPiZndDsg ICAgICAnc2VsZWN0ICAgKCdhYjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAn SVNPX0RPTUFJTicsICdlYWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLCAnbG9j YWxob3N0LmxvY2FsZG9tYWluOi9JU08nLCAwLCAwKSc8YnI+Jmd0OyAyIC0geW91ciBob3N0IG5h bWUgaXMgbG9jYWxob3N0LmxvY2FsZG9tYWluPGJyPiZndDs8YnI+Jmd0OyBCdXQgdGhvc2UgZG9l c24ndCBsb29rIGxpa2UgdGhlIHJlYWwgcHJvYmxlbSBoZXJlLjxicj4mZ3Q7PGJyPiZndDsgSSBh c3N1bWUgeW91IGFyZSBydW5uaW5nIGl0IG9uIEYxOCA/PGJyPiZndDs8YnI+Jmd0OyBDYW4gd2Ug Z2V0IHRoZSBmdWxsIGluc3RhbGxhdGlvbiBsb2c/PGJyPiZndDs8YnI+Jmd0OyBUaGFua3M8YnI+ Jmd0OyBCYXJhazxicj5Db21taXQgNWNhMWVjMDMzN2Q5MjFmMTA1NzMyMWRhMjY4OGFkMmEwMTRi OGZmYiBhZGRlZCBhIHBhcmFtZXRlciB0byB0aGUgPGJyPnN0b3JlZCBwcm9jZWR1cmUsIGJ1dCBl bmdpbmUtc2V0dXAgY2FsbHMgIGluc3RfYWRkX2lzb19zdG9yYWdlX2RvbWFpbiA8YnI+KGluIGlu c3Rfc3Auc3FsKSB3aGljaCBpbiB0dXJuIGNhbGxzIGluc2VydHN0b3JhZ2VfZG9tYWluX3N0YXRp YywgYW5kIDxicj50aGF0IGNhbGwgaGFzbid0IGJlZW4gdXBkYXRlZC48YnI+Jmd0Ozxicj4mZ3Q7 PGJyPiZndDs8YnI+Jmd0Ozxicj4mZ3Q7PGJyPiZndDs8YnI+Jmd0Ozxicj4mZ3Q7IC0tLS0tIE9y aWdpbmFsIE1lc3NhZ2UgLS0tLS08YnI+Jmd0OyZndDsgRnJvbTogIlNodSBNaW5nIiAmbHQ7c2h1 bWluZ0BsaW51eC52bmV0LmlibS5jb20mZ3Q7PGJyPiZndDsmZ3Q7IFRvOiBlbmdpbmUtZGV2ZWxA b3ZpcnQub3JnLCAiRG9yb24gRmVkaXVjayIgJmx0O2RmZWRpdWNrQHJlZGhhdC5jb20mZ3Q7PGJy PiZndDsmZ3Q7IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCA3LCAyMDEzIDc6Mzk6MjkgQU08YnI+Jmd0 OyZndDsgU3ViamVjdDogUmU6IFtFbmdpbmUtZGV2ZWxdIGZ1bmN0aW9uIGluc2VydHN0b3JhZ2Vf ZG9tYWluX3N0YXRpYyh1dWlkLCAuLi4pIGRvZXMgbm90IGV4aXN0PGJyPiZndDsmZ3Q7PGJyPiZn dDsmZ3Q7PGJyPiZndDsmZ3Q7PGJyPiZndDsmZ3Q7IERvcm9uLDxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7 Jmd0OyBEbyB5b3UgZ2V0IGFueSBpZGVhIGFib3V0IGl0Pzxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0 OyBzdGFydHVwXzAwMkBzaW5hLmNuIDo8YnI+Jmd0OyZndDs8YnI+Jmd0OyZndDs8YnI+Jmd0OyZn dDs8YnI+Jmd0OyZndDsgSGksPGJyPiZndDsmZ3Q7PGJyPiZndDsmZ3Q7IEkgYnVpbHQgdGhlIG9W aXJ0IGVuZ2luZSBSUE0gcGFja2FnZXMgZnJvbSB0aGUgbGF0ZXN0IG9WaXJ0IGVuZ2luZTxicj4m Z3Q7Jmd0OyBzb3VyY2UgY29kZSBhbmQgc2V0dXAgYSB5dW0gaW5zdGFsbGF0aW9uIHNlcnZlciB3 aXRoIHRoZXNlIHBhY2thZ2VzLjxicj4mZ3Q7Jmd0OyBJIGNhbiBzdWNjZXNzZnVsbHkgaW5zdGFs bCB0aGUgUlBNIHBhY2thZ2VzIG9uIG15IG9WaXJ0IGVuZ2luZSB0ZXN0PGJyPiZndDsmZ3Q7IHNl cnZlci4gQnV0IHdoZW4gdGhlICJlbmdpbmUtc2V0dXAiIGNvbW1hbmQgd2FzIHVzZWQgdG8gc2V0 dXAgdGhlPGJyPiZndDsmZ3Q7IGVuZ2luZSBzZXZlciwgdGhlIGZvbGxvd2luZyBlcnJvcnMgd2Vy ZSBlbmNvdW50ZXJlZCBmcm9tPGJyPiZndDsmZ3Q7IGVuZ2luZS1zZXR1cCBsb2cuIEl0IHNlZW1z IHRoYXQgaW5zdF9hZGRfaXNvX3N0b3JhZ2VfZG9tYWluIHdhcyBub3Q8YnI+Jmd0OyZndDsgY3Jl YXRlZCBwcm9wZXJseSBmb3IgcHNxbC4gQW55IGNsdWUgdG8gdGhpcyBwcm9ibGVtPzxicj4mZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6bmZzdXRpbHM6OjE5 Mjo6cm9vdDo6IEdlbmVyYXRpbmcgdW5pcXVlPGJyPiZndDsmZ3Q7IHV1aWQ8YnI+Jmd0OyZndDsg MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NTAxOjpyb290OjogcnVu bmluZyBzcWw8YnI+Jmd0OyZndDsgcXVlcnkgJ3NlbGVjdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9k b21haW48YnI+Jmd0OyZndDsgKCdhYjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUn LCAnSVNPX0RPTUFJTicsPGJyPiZndDsmZ3Q7ICdlYWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1 MGY3NTk0YTknLDxicj4mZ3Q7Jmd0OyAnbG9jYWxob3N0LmxvY2FsZG9tYWluOi9JU08nLCAwLCAw KScgb24gZGIgc2VydmVyOiAnbG9jYWxob3N0Jy48YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDow MjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDU0Ojpyb290OjogRXhlY3V0aW5nPGJyPiZndDsm Z3Q7IGNvbW1hbmQgLS0mZ3Q7ICcvdXNyL2Jpbi9wc3FsIC1oIGxvY2FsaG9zdCAtcCA1NDMyIC1V IGVuZ2luZSAtZCBlbmdpbmU8YnI+Jmd0OyZndDsgLWMgc2VsZWN0IGluc3RfYWRkX2lzb19zdG9y YWdlX2RvbWFpbjxicj4mZ3Q7Jmd0OyAoJ2FiMjJiNDE5LTYzODEtNGYwYS04YjQ2LWFhNzJjODFl ZGJiNScsICdJU09fRE9NQUlOJyw8YnI+Jmd0OyZndDsgJ2VhZDI5MmVlLTE0ZGQtNDBmOS1iMDZi LWYyMjUwZjc1OTRhOScsPGJyPiZndDsmZ3Q7ICdsb2NhbGhvc3QubG9jYWxkb21haW46L0lTTycs IDAsIDApJyBpbiB3b3JraW5nIGRpcmVjdG9yeSAnL3Jvb3QnPGJyPiZndDsmZ3Q7IDIwMTMtMDMt MDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mjo6cm9vdDo6IG91dHB1dCA9PGJy PiZndDsmZ3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mzo6 cm9vdDo6IHN0ZGVyciA9IEVSUk9SOjxicj4mZ3Q7Jmd0OyBOVU06NDI4ODMsIERFVEFJTFM6ZnVu Y3Rpb24gaW5zZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsPGJyPiZndDsmZ3Q7IGNoYXJh Y3RlciB2YXJ5aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgaW50ZWdlciwgaW50ZWdlciwgdW5rbm93 biw8YnI+Jmd0OyZndDsgaW50ZWdlcikgZG9lcyBub3QgZXhpc3Q8YnI+Jmd0OyZndDs8YnI+Jmd0 OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDk0Ojpyb290 OjogcmV0Y29kZSA9IDE8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6RVJST1I6OmVu Z2luZS1zZXR1cDo6MTgwOTo6cm9vdDo6IFRyYWNlYmFjazxicj4mZ3Q7Jmd0OyAobW9zdCByZWNl bnQgY2FsbCBsYXN0KTo8YnI+Jmd0OyZndDsgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5l IDE4MDQsIGluIF9jb25maWdOZnNTaGFyZTxicj4mZ3Q7Jmd0OyBfYWRkSXNvRG9tYWludG9EQihj b250cm9sbGVyLkNPTkZbInNkX3V1aWQiXSw8YnI+Jmd0OyZndDsgY29udHJvbGxlci5DT05GWyJJ U09fRE9NQUlOX05BTUUiXSk8YnI+Jmd0OyZndDsgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBs aW5lIDE4NjAsIGluIF9hZGRJc29Eb21haW50b0RCPGJyPiZndDsmZ3Q7IHV0aWxzLmV4ZWNSZW1v dGVTcWxDb21tYW5kKGdldERiVXNlcigpLCBnZXREYkhvc3ROYW1lKCksIGdldERiUG9ydCgpLDxi cj4mZ3Q7Jmd0OyBiYXNlZGVmcy5EQl9OQU1FLCBzcWxRdWVyeSwgVHJ1ZSw8YnI+Jmd0OyZndDsg b3V0cHV0X21lc3NhZ2VzLkVSUl9GQUlMRURfSU5TRVJUX0lTT19ET01BSU4lKGJhc2VkZWZzLkRC X05BTUUpKTxicj4mZ3Q7Jmd0OyBGaWxlICIvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9zY3JpcHRz L2NvbW1vbl91dGlscy5weSIsIGxpbmUgNTEwLCBpbjxicj4mZ3Q7Jmd0OyBleGVjUmVtb3RlU3Fs Q29tbWFuZDxicj4mZ3Q7Jmd0OyByZXR1cm4gZXhlY0NtZChjbWRMaXN0PWNtZCwgZmFpbE9uRXJy b3I9ZmFpbE9uRXJyb3IsIG1zZz1lcnJNc2csPGJyPiZndDsmZ3Q7IGVudkRpY3Q9Z2V0UGdFbnYo KSk8YnI+Jmd0OyZndDsgRmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9jb21t b25fdXRpbHMucHkiLCBsaW5lIDQ5NywgaW48YnI+Jmd0OyZndDsgZXhlY0NtZDxicj4mZ3Q7Jmd0 OyByYWlzZSBFeGNlcHRpb24obXNnKTxicj4mZ3Q7Jmd0OyBFeGNlcHRpb246IEZhaWxlZCBpbnNl cnRpbmcgSVNPIGRvbWFpbiBpbnRvIGVuZ2luZSBkYjxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAy MDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6c2V0dXBfc2VxdWVuY2VzOjo2Mjo6cm9vdDo6IFRy YWNlYmFjazxicj4mZ3Q7Jmd0OyAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTo8YnI+Jmd0OyZndDsg RmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9zZXR1cF9zZXF1ZW5jZXMucHki LCBsaW5lIDYwLDxicj4mZ3Q7Jmd0OyBpbiBydW48YnI+Jmd0OyZndDsgZnVuY3Rpb24oKTxicj4m Z3Q7Jmd0OyBGaWxlICIvYmluL2VuZ2luZS1zZXR1cCIsIGxpbmUgMTgxMCwgaW4gX2NvbmZpZ05m c1NoYXJlPGJyPiZndDsmZ3Q7IHJhaXNlIEV4Y2VwdGlvbihvdXRwdXRfbWVzc2FnZXMuRVJSX0ZB SUxFRF9DRkdfTkZTX1NIQVJFKTxicj4mZ3Q7Jmd0OyBFeGNlcHRpb246IEZhaWxlZCB0byBjb25m aWd1cmUgTkZTIHNoYXJlIG9uIHRoaXMgaG9zdDxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAyMDEz LTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTkyOjpyb290OjogKioqIFRo ZTxicj4mZ3Q7Jmd0OyBmb2xsb3dpbmcgcGFyYW1zIHdlcmUgdXNlZCBhcyB1c2VyIGlucHV0Ojxi cj4mZ3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3 Ojpyb290Ojo8YnI+Jmd0OyZndDsgb3ZlcnJpZGUtaHR0cGQtY29uZmlnOiB5ZXM8YnI+Jmd0OyZn dDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6 IGh0dHAtcG9ydDogODA8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVu Z2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGh0dHBzLXBvcnQ6PGJyPiZndDsmZ3Q7IDQ0Mzxicj4m Z3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpy b290Ojo8YnI+Jmd0OyZndDsgcmFuZG9tLXBhc3N3b3Jkczogbm88YnI+Jmd0OyZndDsgMjAxMy0w My0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG1hYy1yYW5n ZTo8YnI+Jmd0OyZndDsgMDA6MUE6NEE6QTg6MDE6MDAtMDA6MUE6NEE6QTg6MDE6RkY8YnI+Jmd0 OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9v dDo6IGhvc3QtZnFkbjo8YnI+Jmd0OyZndDsgbG9jYWxob3N0LmxvY2FsZG9tYWluPGJyPiZndDsm Z3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6 OiBhdXRoLXBhc3M6PGJyPiZndDsmZ3Q7ICoqKioqKioqPGJyPiZndDsmZ3Q7IDIwMTMtMDMtMDUg MjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBvcmctbmFtZTo8YnI+ Jmd0OyZndDsgbG9jYWxkb21haW48YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVC VUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6PGJyPiZndDsmZ3Q7IGFwcGxpY2F0aW9uLW1v ZGU6IHZpcnQ8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1z ZXR1cDo6MTk5Nzo6cm9vdDo6PGJyPiZndDsmZ3Q7IGRlZmF1bHQtZGMtdHlwZTogTkZTPGJyPiZn dDsmZ3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJv b3Q6Ojxicj4mZ3Q7Jmd0OyBkYi1yZW1vdGUtaW5zdGFsbDogbG9jYWw8YnI+Jmd0OyZndDsgMjAx My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGRiLWhv c3Q6PGJyPiZndDsmZ3Q7IGxvY2FsaG9zdDxicj4mZ3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5 OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGItbG9jYWwtcGFzczo8YnI+Jmd0 OyZndDsgKioqKioqKio8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVu Z2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG5mcy1tcDogL0lTTzxicj4mZ3Q7Jmd0OyAyMDEzLTAz LTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290Ojo8YnI+Jmd0OyZn dDsgaXNvLWRvbWFpbi1uYW1lOiBJU09fRE9NQUlOPGJyPiZndDsmZ3Q7IDIwMTMtMDMtMDUgMjA6 MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBjb25maWctbmZzOjxicj4m Z3Q7Jmd0OyB5ZXM8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2lu ZS1zZXR1cDo6MTk5Nzo6cm9vdDo6PGJyPiZndDsmZ3Q7IGZpcmV3YWxsLW1hbmFnZXI6IGlwdGFi bGVzPGJyPiZndDsmZ3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkVSUk9SOjplbmdpbmUtc2V0dXA6 OjI0MTM6OnJvb3Q6OiBUcmFjZWJhY2s8YnI+Jmd0OyZndDsgKG1vc3QgcmVjZW50IGNhbGwgbGFz dCk6PGJyPiZndDsmZ3Q7IEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGluZSAyNDA3LCBpbiAm bHQ7bW9kdWxlJmd0Ozxicj4mZ3Q7Jmd0OyBtYWluKGNvbmZGaWxlKTxicj4mZ3Q7Jmd0OyBGaWxl ICIvYmluL2VuZ2luZS1zZXR1cCIsIGxpbmUgMjE5MCwgaW4gbWFpbjxicj4mZ3Q7Jmd0Ozxicj4m Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXzxicj4mZ3Q7Jmd0OyBFbmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0IEVuZ2luZS1k ZXZlbEBvdmlydC5vcmc8YnI+Jmd0OyZndDsgaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL2VuZ2luZS1kZXZlbDxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAtLTxicj4mZ3Q7 Jmd0OyAtLS08YnI+Jmd0OyZndDsg6IiS5piOIFNodSBNaW5nPGJyPiZndDsmZ3Q7IE9wZW4gVmly dHVhbGl6YXRpb24gRW5naW5lZXJuaW5nOyBDU1RMLCBJQk0gQ29ycC48YnI+Jmd0OyZndDsgVGVs OiA4Ni0xMC04MjQ1MTYyNiAgVGllbGluZTogOTA1MTYyNiBFLW1haWw6IHNodW1pbmdAY24uaWJt LmNvbSBvcjxicj4mZ3Q7Jmd0OyBzaHVtaW5nQGxpbnV4LnZuZXQuaWJtLmNvbSBBZGRyZXNzOiAz L0YgUmluZyBCdWlsZGluZywgWmhvbmdHdWFuQ3VuPGJyPiZndDsmZ3Q7IFNvZnR3YXJlIFBhcmss IEhhaWRpYW4gRGlzdHJpY3QsIEJlaWppbmcgMTAwMTkzLCBQUkM8YnI+Jmd0OyZndDsgX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+Jmd0OyZndDsgRW5n aW5lLWRldmVsIG1haWxpbmcgbGlzdDxicj4mZ3Q7Jmd0OyBFbmdpbmUtZGV2ZWxAb3ZpcnQub3Jn PGJyPiZndDsmZ3Q7IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9lbmdp bmUtZGV2ZWw8YnI+Jmd0OyZndDs8YnI+Jmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXzxicj4mZ3Q7IEVuZ2luZS1kZXZlbCBtYWlsaW5nIGxpc3Q8YnI+ Jmd0OyBFbmdpbmUtZGV2ZWxAb3ZpcnQub3JnPGJyPiZndDsgaHR0cDovL2xpc3RzLm92aXJ0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbDxicj4mZ3Q7PGJyPi0tIDxicj5EaXJlY2Np w7NuIENvbWVyY2lhbDogQy9Kb3NlIEJhcmRhc2FubyBCYW9zLCA5LCBFZGlmLiBHb3JiZWEgMywg cGxhbnRhIDxicj4zwrpELCAyODAxNiBNYWRyaWQsIFNwYWluPGJyPkluc2NyaXRhIGVuIGVsIFJl Zy4gTWVyY2FudGlsIGRlIE1hZHJpZCDigJMgQy5JLkYuIEI4MjY1Nzk0MSAtIFJlZCBIYXQgUy5M Ljxicj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxicj5F bmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0PGJyPkVuZ2luZS1kZXZlbEBvdmlydC5vcmc8YnI+aHR0 cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbDxicj48L2Rp dj4= --=-sinamail_alt_e6b3693f89c9291c9a8f11a12eaf9d51--

On 03/07/2013 04:25 PM, startup_002@sina.cn wrote:
Juan,
Thanks for your answer. Can you provide more details on how I can fix this problem? I think engine-setup is built from the ovirt engine workspace and It should call the new interface properly. I am confused why engine-setup--->inst_add_iso_storage_domai---->insertstorage_domain_static was not updated based on the new interface losing one parameter. Is that a bug in the workspace introduced by the commit?
Yes, I think it is a bug. To workaround it try to add the new parameter to the inst_sp.sql file. In line 31 you will see this: perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0); I think it can be fixed adding the new parameter as follows: perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0); This is just using the name of the storage domain as description. Once you have modified that file you will have to repeat the installation. If that solves the problem then we may need to apply the following patch to the source code: diff --git a/backend/manager/dbscripts/inst_sp.sql b/backend/manager/dbscripts/inst_sp.sql index 82e8502..a4dcd20 100644 --- a/backend/manager/dbscripts/inst_sp.sql +++ b/backend/manager/dbscripts/inst_sp.sql @@ -28,7 +28,7 @@ BEGIN -- Insert storage server connection info perform Insertstorage_server_connections(v_connection,cast(v_connection_id as varchar(250)),NULL,NULL,NULL,NULL,1,NULL,NULL,N -- Insert storage domain static info - perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0); + perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0); -- Insert storage domain dynamic info perform Insertstorage_domain_dynamic(v_available,v_storage_domain_id,v_used); end if; Would you mind submitting it to gerrit?
----- 原始邮件 ----- 发件人:Juan Hernandez <jhernand@redhat.com> 收件人:Juan Hernandez <jhernand@redhat.com> 抄送人:engine-devel@ovirt.org 主题:Re: [Engine-devel] function insertstorage_domain_static(uuid, ...) does not exist 日期:2013年03月07日 20点00分
Shu,
A few notes.
1 - you are tring to create iso domain on / 'select ('ab22b419-6381-4f0a-8b46-aa72c81edbb5', 'ISO_DOMAIN', 'ead292ee-14dd-40f9-b06b-f2250f7594a9', 'localhost.localdomain:/ISO', 0, 0)' 2 - your host name is localhost.localdomain
But those doesn't look like the real problem here.
I assume you are running it on F18 ?
Can we get the full installation log?
Thanks Barak Commit 5ca1ec0337d921f1057321da2688ad2a014b8ffb added a parameter to the stored procedure, but engine-setup calls inst_add_iso_storage_domain (in inst_sp.sql) which in turn calls insertstorage_domain_static, and
On 03/07/2013 12:43 PM, Barak Azulay wrote: that call hasn't been updated.
----- Original Message -----
From: "Shu Ming" <shuming@linux.vnet.ibm.com> To: engine-devel@ovirt.org, "Doron Fediuck" <dfediuck@redhat.com> Sent: Thursday, March 7, 2013 7:39:29 AM Subject: Re: [Engine-devel] function
insertstorage_domain_static(uuid, ...) does not exist
Doron,
Do you get any idea about it?
startup_002@sina.cn :
Hi,
I built the oVirt engine RPM packages from the latest oVirt engine source code and setup a yum installation server with these packages. I can successfully install the RPM packages on my oVirt engine test server. But when the "engine-setup" command was used to setup the engine sever, the following errors were encountered from engine-setup log. It seems that inst_add_iso_storage_domain was not created properly for psql. Any clue to this problem?
2013-03-05 20:02:19::DEBUG::nfsutils::192::root:: Generating unique uuid 2013-03-05 20:02:19::DEBUG::common_utils::501::root:: running sql query 'select inst_add_iso_storage_domain ('ab22b419-6381-4f0a-8b46-aa72c81edbb5', 'ISO_DOMAIN', 'ead292ee-14dd-40f9-b06b-f2250f7594a9', 'localhost.localdomain:/ISO', 0, 0)' on db server: 'localhost'. 2013-03-05 20:02:19::DEBUG::common_utils::454::root:: Executing command --> '/usr/bin/psql -h localhost -p 5432 -U engine -d engine -c select inst_add_iso_storage_domain ('ab22b419-6381-4f0a-8b46-aa72c81edbb5', 'ISO_DOMAIN', 'ead292ee-14dd-40f9-b06b-f2250f7594a9', 'localhost.localdomain:/ISO', 0, 0)' in working directory '/root' 2013-03-05 20:02:19::DEBUG::common_utils::492::root:: output = 2013-03-05 20:02:19::DEBUG::common_utils::493::root:: stderr = ERROR: NUM:42883, DETAILS:function insertstorage_domain_static(uuid, character varying, character varying, integer, integer, unknown, integer) does not exist
2013-03-05 20:02:19::DEBUG::common_utils::494::root:: retcode = 1 2013-03-05 20:02:19::ERROR::engine-setup::1809::root:: Traceback (most recent call last): File "/bin/engine-setup", line 1804, in _configNfsShare _addIsoDomaintoDB(controller.CONF["sd_uuid"], controller.CONF["ISO_DOMAIN_NAME"]) File "/bin/engine-setup", line 1860, in _addIsoDomaintoDB utils.execRemoteSqlCommand(getDbUser(), getDbHostName(), getDbPort(), basedefs.DB_NAME, sqlQuery, True, output_messages.ERR_FAILED_INSERT_ISO_DOMAIN%(basedefs.DB_NAME)) File "/usr/share/ovirt-engine/scripts/common_utils.py", line 510, in execRemoteSqlCommand return execCmd(cmdList=cmd, failOnError=failOnError, msg=errMsg, envDict=getPgEnv()) File "/usr/share/ovirt-engine/scripts/common_utils.py", line 497, in execCmd raise Exception(msg) Exception: Failed inserting ISO domain into engine db
2013-03-05 20:02:19::DEBUG::setup_sequences::62::root:: Traceback (most recent call last): File "/usr/share/ovirt-engine/scripts/setup_sequences.py", line 60, in run function() File "/bin/engine-setup", line 1810, in _configNfsShare raise Exception(output_messages.ERR_FAILED_CFG_NFS_SHARE) Exception: Failed to configure NFS share on this host
2013-03-05 20:02:19::DEBUG::engine-setup::1992::root:: *** The following params were used as user input: 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: override-httpd-config: yes 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: http-port: 80 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: https-port: 443 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: random-passwords: no 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: mac-range: 00:1A:4A:A8:01:00-00:1A:4A:A8:01:FF 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: host-fqdn: localhost.localdomain 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: auth-pass: ******** 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: org-name: localdomain 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: application-mode: virt 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: default-dc-type: NFS 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: db-remote-install: local 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: db-host: localhost 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: db-local-pass: ******** 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: nfs-mp: /ISO 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: iso-domain-name: ISO_DOMAIN 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: config-nfs: yes 2013-03-05 20:02:19::DEBUG::engine-setup::1997::root:: firewall-manager: iptables 2013-03-05 20:02:19::ERROR::engine-setup::2413::root:: Traceback (most recent call last): File "/bin/engine-setup", line 2407, in <module> main(confFile) File "/bin/engine-setup", line 2190, in main
_______________________________________________ Engine-devel mailing list Engine-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-devel
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.

Il 07/03/2013 16:40, Juan Hernandez ha scritto:
Yes, I think it is a bug. To workaround it try to add the new parameter to the inst_sp.sql file. In line 31 you will see this:
perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0);
I think it can be fixed adding the new parameter as follows:
perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0);
This is just using the name of the storage domain as description.
Once you have modified that file you will have to repeat the installation.
If that solves the problem then we may need to apply the following patch to the source code:
diff --git a/backend/manager/dbscripts/inst_sp.sql b/backend/manager/dbscripts/inst_sp.sql index 82e8502..a4dcd20 100644 --- a/backend/manager/dbscripts/inst_sp.sql +++ b/backend/manager/dbscripts/inst_sp.sql @@ -28,7 +28,7 @@ BEGIN -- Insert storage server connection info perform Insertstorage_server_connections(v_connection,cast(v_connection_id as varchar(250)),NULL,NULL,NULL,NULL,1,NULL,NULL,N -- Insert storage domain static info - perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0); + perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0); -- Insert storage domain dynamic info perform Insertstorage_domain_dynamic(v_available,v_storage_domain_id,v_used); end if;
Would you mind submitting it to gerrit?
Hi Juan, I've tried the fix you suggested while working on another bug and it worked for me. Has anybody already submitted the patch to gerrit? -- Sandro

On 03/08/2013 04:33 PM, Sandro Bonazzola wrote:
Il 07/03/2013 16:40, Juan Hernandez ha scritto:
Yes, I think it is a bug. To workaround it try to add the new parameter to the inst_sp.sql file. In line 31 you will see this:
perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0);
I think it can be fixed adding the new parameter as follows:
perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0);
This is just using the name of the storage domain as description.
Once you have modified that file you will have to repeat the installation.
If that solves the problem then we may need to apply the following patch to the source code:
diff --git a/backend/manager/dbscripts/inst_sp.sql b/backend/manager/dbscripts/inst_sp.sql index 82e8502..a4dcd20 100644 --- a/backend/manager/dbscripts/inst_sp.sql +++ b/backend/manager/dbscripts/inst_sp.sql @@ -28,7 +28,7 @@ BEGIN -- Insert storage server connection info perform Insertstorage_server_connections(v_connection,cast(v_connection_id as varchar(250)),NULL,NULL,NULL,NULL,1,NULL,NULL,N -- Insert storage domain static info - perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0); + perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0); -- Insert storage domain dynamic info perform Insertstorage_domain_dynamic(v_available,v_storage_domain_id,v_used); end if;
Would you mind submitting it to gerrit?
Hi Juan, I've tried the fix you suggested while working on another bug and it worked for me. Has anybody already submitted the patch to gerrit?
I think it hasn't been submitted, would you be so kind to submit it? -- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.

Il 08/03/2013 16:34, Juan Hernandez ha scritto:
On 03/08/2013 04:33 PM, Sandro Bonazzola wrote:
Il 07/03/2013 16:40, Juan Hernandez ha scritto:
Yes, I think it is a bug. To workaround it try to add the new parameter to the inst_sp.sql file. In line 31 you will see this:
perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0);
I think it can be fixed adding the new parameter as follows:
perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0);
This is just using the name of the storage domain as description.
Once you have modified that file you will have to repeat the installation.
If that solves the problem then we may need to apply the following patch to the source code:
diff --git a/backend/manager/dbscripts/inst_sp.sql b/backend/manager/dbscripts/inst_sp.sql index 82e8502..a4dcd20 100644 --- a/backend/manager/dbscripts/inst_sp.sql +++ b/backend/manager/dbscripts/inst_sp.sql @@ -28,7 +28,7 @@ BEGIN -- Insert storage server connection info perform Insertstorage_server_connections(v_connection,cast(v_connection_id as varchar(250)),NULL,NULL,NULL,NULL,1,NULL,NULL,N -- Insert storage domain static info - perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,1,2,'0',0); + perform Insertstorage_domain_static(v_storage_domain_id,cast(v_connection_id as varchar(250)),v_name,v_name,1,2,'0',0); -- Insert storage domain dynamic info perform Insertstorage_domain_dynamic(v_available,v_storage_domain_id,v_used); end if;
Would you mind submitting it to gerrit?
Hi Juan, I've tried the fix you suggested while working on another bug and it worked for me. Has anybody already submitted the patch to gerrit?
I think it hasn't been submitted, would you be so kind to submit it?
Sure, here itis: http://gerrit.ovirt.org/12881
participants (3)
-
Juan Hernandez
-
Sandro Bonazzola
-
startup_002@sina.cn