Re: Text stuffing with Cairo/pycairo?
Warren Vick <[email protected]> Tue, 30 Apr 2019 20:34:11 +0000
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <DB8PR10MB2876A3C19926DFDCD52C3E53F93A0@DB8PR10MB2876.EURPRD10.PROD.OUTLOOK.COM> |
--===============0286507622== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_" --_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8gRXJpYywNCg0KSSB3YXMgYWJvdXQgdG8gZ2V0IHN0YXJ0ZWQgc28geW91ciByZXBseSBp cyBtb3N0IHRpbWVseSBhbmQgYXBwcmVjaWF0ZWQuDQoNCknigJltIGNvbXBldGVudCBpbiBDIGFu ZCBjYW4gc2VlIHdoYXQgeW914oCZcmUgZG9pbmcgaGVyZS4gSSBzaG91bGQgYmUgYWJsZSB0byBw b3J0IHRvIFB5dGhvbiBlYXNpbHkuDQoNClRoYW5rcyBhZ2Fpbi4NCg0KL1cNCg0KRnJvbTogY2Vj YXNob25AYW9sLmNvbSA8Y2VjYXNob25AYW9sLmNvbT4NClNlbnQ6IDMwIEFwcmlsIDIwMTkgMTg6 NDgNClRvOiBXYXJyZW4gVmljayA8d3ZpY2tAZXVyb3BhLnVrLmNvbT47IGNhaXJvQGNhaXJvZ3Jh cGhpY3Mub3JnDQpTdWJqZWN0OiBSZTogW2NhaXJvXSBUZXh0IHN0dWZmaW5nIHdpdGggQ2Fpcm8v cHljYWlybz8NCg0KDQpIaSBXYXJyZW4sDQoNCkhhdmUgeW91IG1hZGUgc29tZSBwcm9ncmVzcyB3 aXRoIHRoaXM/DQoNCldlbGwsIHlvdSBtaWdodCBuZWVkIHNvbWUgZm9udCBtZXRyaWNzIGFuZCBn ZXQgdGhlIHRyYW5zZm9ybXMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBkbyB0aGlzLiBUaGUgZm9s bG93aW5nIGlzIGluIEMgYnV0IGl0IG1pZ2h0IGJlIGhlbHBmdWwuIFByb2JhYmx5IG5lZWQgdG8g Y2hhbmdlIGEgZmV3IHRoaW5ncyBhcm91bmQgYnV0IGl0IGlzIGEgc3RhcnQuDQoNCkVyaWMNCg0K DQovL2djYyAtV2FsbCBjYWlyb190ZXh0X3NpemUuYyAtbyBjYWlyb190ZXh0X3NpemUgYHBrZy1j b25maWcgLS1jZmxhZ3MgLS1saWJzIGNhaXJvYCAtbG0NCg0KI2luY2x1ZGU8Y2Fpcm8uaD4NCiNp bmNsdWRlPGNhaXJvLXBkZi5oPg0KI2luY2x1ZGU8c3RkaW8uaD4NCiNpbmNsdWRlPG1hdGguaD4N Cg0Kc3RhdGljIHZvaWQgdGV4dF9pbl9ib3goY2Fpcm9fdCAqY3IsIGRvdWJsZSBjZW50ZXJfYm94 X3gsIGRvdWJsZSBjZW50ZXJfYm94X3ksIGRvdWJsZSBib3hfd2lkdGgsIGRvdWJsZSBib3hfaGVp Z2h0LCBkb3VibGUgcm90YXRlLCBjaGFyICpzdHJpbmcpOw0KDQppbnQgbWFpbigpDQogIHsNCiAg ICBkb3VibGUgd2lkdGg9NjAwLjA7DQogICAgZG91YmxlIGhlaWdodD02MDAuMDsNCiAgICBjaGFy ICpzdHJpbmcxPSJDZW50ZXIgU3RyaW5nIjsNCiAgICBjaGFyICpzdHJpbmcyPSJUcmFuc2xhdGUg U3RyaW5nc3Nzc3NzISI7DQogICAgY2hhciAqc3RyaW5nMz0iUm90YXRlIFN0cmluZyI7DQogICAg Y2hhciAqc3RyaW5nND0iSm95ISEhIjsNCg0KICAgIGNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZT1j YWlyb19wZGZfc3VyZmFjZV9jcmVhdGUoImNhaXJvX3Rlc3QxLnBkZiIsIHdpZHRoLCBoZWlnaHQp Ow0KICAgIGNhaXJvX3QgKmNyPWNhaXJvX2NyZWF0ZShzdXJmYWNlKTsNCg0KICAgIC8vUGFpbnQg YmFja2dyb3VuZC4NCiAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY3IsIDEuMCwgMS4wLCAxLjAs IDEuMCk7DQogICAgY2Fpcm9fcGFpbnQoY3IpOw0KDQogICAgLy9EcmF3IGZyb20gdGhlIGNlbnRl ciBvZiBzdXJmYWNlLiBHb29kIGZvciB0ZXN0aW5nIHRleHQgYW5kIGJveCBhbGlnbm1lbnQuDQog ICAgY2Fpcm9fdHJhbnNsYXRlKGNyLCB3aWR0aC8yLjAsIGhlaWdodC8yLjApOw0KICAgIC8vU2Nh bGUgdGhlIGRyYXdpbmcgaWYgbmVlZGVkLg0KICAgIGNhaXJvX3NjYWxlKGNyLCAxLjAsIDEuMCk7 DQoNCiAgICAvL0RyYXcgY2FydGVzaWFuIGNvb3JkaW5hdGVzLg0KICAgIGNhaXJvX3NldF9zb3Vy Y2VfcmdiYShjciwgMC4wLCAwLjAsIDAuMCwgMS4wKTsNCiAgICBjYWlyb19tb3ZlX3RvKGNyLCAt d2lkdGgvMi4wLCAwLjApOw0KICAgIGNhaXJvX2xpbmVfdG8oY3IsIHdpZHRoLzIuMCwgMC4wKTsN CiAgICBjYWlyb19zdHJva2UoY3IpOw0KICAgIGNhaXJvX21vdmVfdG8oY3IsIDAuMCwgLWhlaWdo dC8yLjApOw0KICAgIGNhaXJvX2xpbmVfdG8oY3IsIDAuMCwgaGVpZ2h0LzIuMCk7DQogICAgY2Fp cm9fc3Ryb2tlKGNyKTsNCg0KICAgIGNhaXJvX3NlbGVjdF9mb250X2ZhY2UoY3IsICJjb3VyaWVy IiwgQ0FJUk9fRk9OVF9TTEFOVF9OT1JNQUwsIENBSVJPX0ZPTlRfV0VJR0hUX0JPTEQpOw0KICAg IC8vU2luY2UgdGhlIGZvbnQgZ2V0cyBzY2FsZWQgdG8gdGhlIGJveCB0aGUgZGVmYXVsdCBmb250 IHNpemUgc2hvdWxkIGJlIGZpbmUuDQogICAgLy9jYWlyb19zZXRfZm9udF9zaXplKGNyLCAxMC4w KTsNCg0KICAgIC8vRHJhdyB0ZXh0IGF0IGNlbnRlci4NCiAgICB0ZXh0X2luX2JveChjciwgMC4w LCAwLjAsIDM1MC4wLCAxMDAuMCwgMC4wLCBzdHJpbmcxKTsNCg0KICAgIC8vVHJhbnNsYXRlIHRl eHQuDQogICAgdGV4dF9pbl9ib3goY3IsIC0xMjAuMCwgLTE1MC4wLCAzMDAuMCwgMzAuMCwgMC4w LCBzdHJpbmcyKTsNCg0KICAgIC8vUm90YXRlIHRleHQuDQogICAgdGV4dF9pbl9ib3goY3IsIDE1 MC4wLCAxNTAuMCwgMTIxLjAsIDUyLjAsIE1fUEkvNC4wLCBzdHJpbmczKTsNCg0KICAgIHRleHRf aW5fYm94KGNyLCAtMTUwLjAsIDE4NS4wLCAxMjEuMCwgNTIuMCwgLU1fUEkvNC4wLCBzdHJpbmc0 KTsNCg0KICAgIHRleHRfaW5fYm94KGNyLCAxNTAuMCwgLTE5MC4wLCAyMjUuMCwgNTIuMCwgLU1f UEkvNC4wLCBzdHJpbmc0KTsNCg0KICAgIHByaW50ZigiT3V0cHV0IHRvIGNhaXJvX3Rlc3QxLnBk ZlxuIik7DQoNCiAgICBjYWlyb19kZXN0cm95KGNyKTsNCiAgICBjYWlyb19zdXJmYWNlX2Rlc3Ry b3koc3VyZmFjZSk7DQoNCiAgICByZXR1cm4gMDsNCiAgfQ0Kc3RhdGljIHZvaWQgdGV4dF9pbl9i b3goY2Fpcm9fdCAqY3IsIGRvdWJsZSBjZW50ZXJfYm94X3gsIGRvdWJsZSBjZW50ZXJfYm94X3ks IGRvdWJsZSBib3hfd2lkdGgsIGRvdWJsZSBib3hfaGVpZ2h0LCBkb3VibGUgcm90YXRlLCBjaGFy ICpzdHJpbmcpDQogIHsNCiAgICBkb3VibGUgbW92ZV94PTAuMDsNCiAgICBkb3VibGUgbW92ZV95 PTAuMDsNCiAgICBkb3VibGUgc2NhbGVfeD0wLjA7DQogICAgZG91YmxlIHNjYWxlX3k9MC4wOw0K ICAgIGNhaXJvX3RleHRfZXh0ZW50c190IHRlOw0KICAgIGNhaXJvX2ZvbnRfZXh0ZW50c190IGZl Ow0KDQogICAgLy9HZXQgc29tZSBmb250IG1ldHJpY3MuDQogICAgY2Fpcm9fdGV4dF9leHRlbnRz KGNyLCBzdHJpbmcsICZ0ZSk7DQogICAgY2Fpcm9fZm9udF9leHRlbnRzKGNyLCAmZmUpOw0KICAg IG1vdmVfeD0tdGUud2lkdGgvMi4wLXRlLnhfYmVhcmluZzsNCiAgICBtb3ZlX3k9LXRlLmhlaWdo dC8yLjAtdGUueV9iZWFyaW5nOw0KICAgIC8vUGFkIHRoZSByZWN0YW5nbGUgYSBsaXR0bGUuDQog ICAgc2NhbGVfeD0tdGUud2lkdGgvMi4wLXRlLnhfYmVhcmluZy00LjA7DQogICAgc2NhbGVfeT0t dGUuaGVpZ2h0LzIuMC10ZS55X2JlYXJpbmcrZmUuZGVzY2VudDsNCg0KICAgIC8vT3JkZXIgdHJh bnNmb3JtcyBhbmQgZHJhdy4NCiAgICBjYWlyb19zYXZlKGNyKTsNCiAgICBjYWlyb190cmFuc2xh dGUoY3IsIGNlbnRlcl9ib3hfeCwgY2VudGVyX2JveF95KTsNCiAgICBjYWlyb19yb3RhdGUoY3Is IHJvdGF0ZSk7DQogICAgY2Fpcm9fc2NhbGUoY3IsIGJveF93aWR0aC9mYWJzKDIuMCptb3ZlX3gp LCBib3hfaGVpZ2h0L2ZhYnMoMi4wKm1vdmVfeSkpOw0KICAgIGNhaXJvX3NldF9zb3VyY2Vfcmdi YShjciwgMC4wLCAxLjAsIDAuMCwgMC40KTsNCiAgICBjYWlyb19yZWN0YW5nbGUoY3IsIC1mYWJz KHNjYWxlX3gpLCAtZmFicyhzY2FsZV95KSwgZmFicygyLjAqc2NhbGVfeCksIGZhYnMoMi4wKnNj YWxlX3kpKTsNCiAgICBjYWlyb19maWxsKGNyKTsNCiAgICBjYWlyb19zZXRfc291cmNlX3JnYmEo Y3IsIDAuMCwgMC4wLCAwLjAsIDEuMCk7DQogICAgY2Fpcm9fbW92ZV90byhjciwgbW92ZV94LCBt b3ZlX3kpOw0KICAgIGNhaXJvX3Nob3dfdGV4dChjciwgc3RyaW5nKTsNCiAgICBjYWlyb19yZXN0 b3JlKGNyKTsNCiAgfQ0KDQoNCg== --_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv cjojMDU2M0MxOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjoj OTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5tc29ub3JtYWwwLCBsaS5t c29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXttc28tc3R5bGUtbmFtZTptc29ub3JtYWw7DQoJ bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltc28tbWFyZ2lu LWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207DQoJZm9udC1zaXplOjExLjBwdDsN Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0K CXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs c2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1z dHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm Ow0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtz aXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0 O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48 IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNw aWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHht bD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBk YXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0K PGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0RjcyIj4NCjxkaXYg Y2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkhlbGxvIEVyaWMsPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1 YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkkgd2FzIGFib3V0 IHRvIGdldCBzdGFydGVkIHNvIHlvdXIgcmVwbHkgaXMgbW9zdCB0aW1lbHkgYW5kIGFwcHJlY2lh dGVkLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0 eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1 YWdlOkVOLVVTIj5J4oCZbSBjb21wZXRlbnQgaW4gQyBhbmQgY2FuIHNlZSB3aGF0IHlvdeKAmXJl IGRvaW5nIGhlcmUuIEkgc2hvdWxkIGJlIGFibGUgdG8gcG9ydCB0byBQeXRob24gZWFzaWx5Ljxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJt c28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVO LVVTIj5UaGFua3MgYWdhaW4uPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNw OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNv LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPi9XPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48 bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3Bh biBsYW5nPSJFTi1VUyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIj4gY2VjYXNo b25AYW9sLmNvbSAmbHQ7Y2VjYXNob25AYW9sLmNvbSZndDsNCjxicj4NCjxiPlNlbnQ6PC9iPiAz MCBBcHJpbCAyMDE5IDE4OjQ4PGJyPg0KPGI+VG86PC9iPiBXYXJyZW4gVmljayAmbHQ7d3ZpY2tA ZXVyb3BhLnVrLmNvbSZndDs7IGNhaXJvQGNhaXJvZ3JhcGhpY3Mub3JnPGJyPg0KPGI+U3ViamVj dDo8L2I+IFJlOiBbY2Fpcm9dIFRleHQgc3R1ZmZpbmcgd2l0aCBDYWlyby9weWNhaXJvPzxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEy LjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJp YWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PGJyPg0KSGkgV2FycmVuLDxicj4NCjxi cj4NCkhhdmUgeW91IG1hZGUgc29tZSBwcm9ncmVzcyB3aXRoIHRoaXM/PGJyPg0KPGJyPg0KV2Vs bCwgeW91IG1pZ2h0IG5lZWQgc29tZSBmb250IG1ldHJpY3MgYW5kIGdldCB0aGUgdHJhbnNmb3Jt cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRvIHRoaXMuIFRoZSBmb2xsb3dpbmcgaXMgaW4gQyBi dXQgaXQgbWlnaHQgYmUgaGVscGZ1bC4gUHJvYmFibHkgbmVlZCB0byBjaGFuZ2UgYSBmZXcgdGhp bmdzIGFyb3VuZCBidXQgaXQgaXMgYSBzdGFydC48YnI+DQo8YnI+DQpFcmljIDxicj4NCjxicj4N CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQovL2djYyAtV2FsbCBj YWlyb190ZXh0X3NpemUuYyAtbyBjYWlyb190ZXh0X3NpemUgYHBrZy1jb25maWcgLS1jZmxhZ3Mg LS1saWJzIGNhaXJvYCAtbG08YnI+DQo8YnI+DQojaW5jbHVkZSZsdDtjYWlyby5oJmd0Ozxicj4N CiNpbmNsdWRlJmx0O2NhaXJvLXBkZi5oJmd0Ozxicj4NCiNpbmNsdWRlJmx0O3N0ZGlvLmgmZ3Q7 PGJyPg0KI2luY2x1ZGUmbHQ7bWF0aC5oJmd0Ozxicj4NCjxicj4NCnN0YXRpYyB2b2lkIHRleHRf aW5fYm94KGNhaXJvX3QgKmNyLCBkb3VibGUgY2VudGVyX2JveF94LCBkb3VibGUgY2VudGVyX2Jv eF95LCBkb3VibGUgYm94X3dpZHRoLCBkb3VibGUgYm94X2hlaWdodCwgZG91YmxlIHJvdGF0ZSwg Y2hhciAqc3RyaW5nKTs8YnI+DQo8YnI+DQppbnQgbWFpbigpPGJyPg0KJm5ic3A7IHs8YnI+DQom bmJzcDsmbmJzcDsmbmJzcDsgZG91YmxlIHdpZHRoPTYwMC4wOzxicj4NCiZuYnNwOyZuYnNwOyZu YnNwOyBkb3VibGUgaGVpZ2h0PTYwMC4wOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjaGFyICpz dHJpbmcxPSZxdW90O0NlbnRlciBTdHJpbmcmcXVvdDs7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 IGNoYXIgKnN0cmluZzI9JnF1b3Q7VHJhbnNsYXRlIFN0cmluZ3Nzc3NzcyEmcXVvdDs7PGJyPg0K Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgKnN0cmluZzM9JnF1b3Q7Um90YXRlIFN0cmluZyZxdW90 Ozs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2hhciAqc3RyaW5nND0mcXVvdDtKb3khISEmcXVv dDs7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWly b19zdXJmYWNlX3QgKnN1cmZhY2U9Y2Fpcm9fcGRmX3N1cmZhY2VfY3JlYXRlKCZxdW90O2NhaXJv X3Rlc3QxLnBkZiZxdW90Oywgd2lkdGgsIGhlaWdodCk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 IGNhaXJvX3QgKmNyPWNhaXJvX2NyZWF0ZShzdXJmYWNlKTs8YnI+DQo8YnI+DQombmJzcDsmbmJz cDsmbmJzcDsgLy9QYWludCBiYWNrZ3JvdW5kLjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWly b19zZXRfc291cmNlX3JnYmEoY3IsIDEuMCwgMS4wLCAxLjAsIDEuMCk7PGJyPg0KJm5ic3A7Jm5i c3A7Jm5ic3A7IGNhaXJvX3BhaW50KGNyKTs8YnI+DQo8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsg Ly9EcmF3IGZyb20gdGhlIGNlbnRlciBvZiBzdXJmYWNlLiBHb29kIGZvciB0ZXN0aW5nIHRleHQg YW5kIGJveCBhbGlnbm1lbnQuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3RyYW5zbGF0 ZShjciwgd2lkdGgvMi4wLCBoZWlnaHQvMi4wKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgLy9T Y2FsZSB0aGUgZHJhd2luZyBpZiBuZWVkZWQuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJv X3NjYWxlKGNyLCAxLjAsIDEuMCk7PGJyPg0KPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IC8vRHJh dyBjYXJ0ZXNpYW4gY29vcmRpbmF0ZXMuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3Nl dF9zb3VyY2VfcmdiYShjciwgMC4wLCAwLjAsIDAuMCwgMS4wKTs8YnI+DQombmJzcDsmbmJzcDsm bmJzcDsgY2Fpcm9fbW92ZV90byhjciwgLXdpZHRoLzIuMCwgMC4wKTs8YnI+DQombmJzcDsmbmJz cDsmbmJzcDsgY2Fpcm9fbGluZV90byhjciwgd2lkdGgvMi4wLCAwLjApOzxicj4NCiZuYnNwOyZu YnNwOyZuYnNwOyBjYWlyb19zdHJva2UoY3IpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWly b19tb3ZlX3RvKGNyLCAwLjAsIC1oZWlnaHQvMi4wKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsg Y2Fpcm9fbGluZV90byhjciwgMC4wLCBoZWlnaHQvMi4wKTs8YnI+DQombmJzcDsmbmJzcDsmbmJz cDsgY2Fpcm9fc3Ryb2tlKGNyKTs8YnI+DQo8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9f c2VsZWN0X2ZvbnRfZmFjZShjciwgJnF1b3Q7Y291cmllciZxdW90OywgQ0FJUk9fRk9OVF9TTEFO VF9OT1JNQUwsIENBSVJPX0ZPTlRfV0VJR0hUX0JPTEQpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNw OyAvL1NpbmNlIHRoZSBmb250IGdldHMgc2NhbGVkIHRvIHRoZSBib3ggdGhlIGRlZmF1bHQgZm9u dCBzaXplIHNob3VsZCBiZSBmaW5lLjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyAvL2NhaXJvX3Nl dF9mb250X3NpemUoY3IsIDEwLjApOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyAvL0Ry YXcgdGV4dCBhdCBjZW50ZXIuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IHRleHRfaW5fYm94KGNy LCAwLjAsIDAuMCwgMzUwLjAsIDEwMC4wLCAwLjAsIHN0cmluZzEpOzxicj4NCjxicj4NCiZuYnNw OyZuYnNwOyZuYnNwOyAvL1RyYW5zbGF0ZSB0ZXh0Ljxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyB0 ZXh0X2luX2JveChjciwgLTEyMC4wLCAtMTUwLjAsIDMwMC4wLCAzMC4wLCAwLjAsIHN0cmluZzIp Ozxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyAvL1JvdGF0ZSB0ZXh0Ljxicj4NCiZuYnNw OyZuYnNwOyZuYnNwOyB0ZXh0X2luX2JveChjciwgMTUwLjAsIDE1MC4wLCAxMjEuMCwgNTIuMCwg TV9QSS80LjAsIHN0cmluZzMpOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyB0ZXh0X2lu X2JveChjciwgLTE1MC4wLCAxODUuMCwgMTIxLjAsIDUyLjAsIC1NX1BJLzQuMCwgc3RyaW5nNCk7 PGJyPg0KPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IHRleHRfaW5fYm94KGNyLCAxNTAuMCwgLTE5 MC4wLCAyMjUuMCwgNTIuMCwgLU1fUEkvNC4wLCBzdHJpbmc0KTs8YnI+DQombmJzcDsmbmJzcDsg PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IHByaW50ZigmcXVvdDtPdXRwdXQgdG8gY2Fpcm9fdGVz dDEucGRmXG4mcXVvdDspOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb19kZXN0 cm95KGNyKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1 cmZhY2UpOzxicj4NCjxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDs8YnI+DQombmJz cDsgfTxicj4NCnN0YXRpYyB2b2lkIHRleHRfaW5fYm94KGNhaXJvX3QgKmNyLCBkb3VibGUgY2Vu dGVyX2JveF94LCBkb3VibGUgY2VudGVyX2JveF95LCBkb3VibGUgYm94X3dpZHRoLCBkb3VibGUg Ym94X2hlaWdodCwgZG91YmxlIHJvdGF0ZSwgY2hhciAqc3RyaW5nKTxicj4NCiZuYnNwOyB7PGJy Pg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGRvdWJsZSBtb3ZlX3g9MC4wOzxicj4NCiZuYnNwOyZuYnNw OyZuYnNwOyBkb3VibGUgbW92ZV95PTAuMDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgZG91Ymxl IHNjYWxlX3g9MC4wOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBkb3VibGUgc2NhbGVfeT0wLjA7 PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3RleHRfZXh0ZW50c190IHRlOzxicj4NCiZu YnNwOyZuYnNwOyZuYnNwOyBjYWlyb19mb250X2V4dGVudHNfdCBmZTs8YnI+DQo8YnI+DQombmJz cDsmbmJzcDsmbmJzcDsgLy9HZXQgc29tZSBmb250IG1ldHJpY3MuPGJyPg0KJm5ic3A7Jm5ic3A7 Jm5ic3A7IGNhaXJvX3RleHRfZXh0ZW50cyhjciwgc3RyaW5nLCAmYW1wO3RlKTs8YnI+DQombmJz cDsmbmJzcDsmbmJzcDsgY2Fpcm9fZm9udF9leHRlbnRzKGNyLCAmYW1wO2ZlKTs8YnI+DQombmJz cDsmbmJzcDsmbmJzcDsgbW92ZV94PS10ZS53aWR0aC8yLjAtdGUueF9iZWFyaW5nOzxicj4NCiZu YnNwOyZuYnNwOyZuYnNwOyBtb3ZlX3k9LXRlLmhlaWdodC8yLjAtdGUueV9iZWFyaW5nOzxicj4N CiZuYnNwOyZuYnNwOyZuYnNwOyAvL1BhZCB0aGUgcmVjdGFuZ2xlIGEgbGl0dGxlLjxicj4NCiZu YnNwOyZuYnNwOyZuYnNwOyBzY2FsZV94PS10ZS53aWR0aC8yLjAtdGUueF9iZWFyaW5nLTQuMDs8 YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgc2NhbGVfeT0tdGUuaGVpZ2h0LzIuMC10ZS55X2JlYXJp bmcmIzQzO2ZlLmRlc2NlbnQ7PGJyPg0KJm5ic3A7Jm5ic3A7IDxicj4NCiZuYnNwOyZuYnNwOyZu YnNwOyAvL09yZGVyIHRyYW5zZm9ybXMgYW5kIGRyYXcuPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 IGNhaXJvX3NhdmUoY3IpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb190cmFuc2xhdGUo Y3IsIGNlbnRlcl9ib3hfeCwgY2VudGVyX2JveF95KTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsg Y2Fpcm9fcm90YXRlKGNyLCByb3RhdGUpOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb19z Y2FsZShjciwgYm94X3dpZHRoL2ZhYnMoMi4wKm1vdmVfeCksIGJveF9oZWlnaHQvZmFicygyLjAq bW92ZV95KSk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3NldF9zb3VyY2VfcmdiYShj ciwgMC4wLCAxLjAsIDAuMCwgMC40KTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fcmVj dGFuZ2xlKGNyLCAtZmFicyhzY2FsZV94KSwgLWZhYnMoc2NhbGVfeSksIGZhYnMoMi4wKnNjYWxl X3gpLCBmYWJzKDIuMCpzY2FsZV95KSk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX2Zp bGwoY3IpOyA8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fc2V0X3NvdXJjZV9yZ2JhKGNy LCAwLjAsIDAuMCwgMC4wLCAxLjApOzxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyBjYWlyb19tb3Zl X3RvKGNyLCBtb3ZlX3gsIG1vdmVfeSk7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IGNhaXJvX3No b3dfdGV4dChjciwgc3RyaW5nKTs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsgY2Fpcm9fcmVzdG9y ZShjcik7IDxicj4NCiZuYnNwOyB9PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2 Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PG86cD4m bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpw PiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_DB8PR10MB2876A3C19926DFDCD52C3E53F93A0DB8PR10MB2876EURP_-- --===============0286507622== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline LS0gCmNhaXJvIG1haWxpbmcgbGlzdApjYWlyb0BjYWlyb2dyYXBoaWNzLm9yZwpodHRwczovL2xp c3RzLmNhaXJvZ3JhcGhpY3Mub3JnL21haWxtYW4vbGlzdGluZm8vY2Fpcm8= --===============0286507622==--