<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>11486</bug_id>
          
          <creation_ts>2006-11-01 12:15:40 -0800</creation_ts>
          <short_desc>[S60] Thai text rendering fails when using HTTPS.</short_desc>
          <delta_ts>2011-03-21 11:52:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>420+</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Wei Liu">wei.liu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>47478</commentid>
    <comment_count>0</comment_count>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2006-11-01 12:15:40 -0800</bug_when>
    <thetext>A character is not rendered when HTTPS is used instead of HTTP. The URL content is the same,
only the protocol has changed.

To reproduce, create a web page and add the following anchors and click on the links.
&lt;A HREF=&quot;http://flashmobile.macromedia.com/cgi-bin/flashlite_loc1.cgi?output1=%E0%B9%81%E0%B8%9E%E0%B8%A5%E0%B8%95%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1&amp;output5=utf%2D8&quot;&gt;Thai test 1&lt;/A&gt; &lt;A HREF=&quot;https://flashmobile.macromedia.com/cgi-bin/flashlite_loc1.cgi?output1=%E0%B9%81%E0%B8%9E%E0%B8%A5%E0%B8%95%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1&amp;output5=utf%2D8&quot;&gt;Thai test 2&lt;/A&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47479</commentid>
    <comment_count>1</comment_count>
      <attachid>11334</attachid>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2006-11-01 12:43:37 -0800</bug_when>
    <thetext>Created attachment 11334
Handles imcomplete character broken into chunks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47481</commentid>
    <comment_count>2</comment_count>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2006-11-01 12:44:55 -0800</bug_when>
    <thetext>TSW Error ID: EHNI-6TSDDP </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47489</commentid>
    <comment_count>3</comment_count>
      <attachid>11336</attachid>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2006-11-01 13:52:29 -0800</bug_when>
    <thetext>Created attachment 11336
Handles incomplete character broken into different chunks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47491</commentid>
    <comment_count>4</comment_count>
      <attachid>11336</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2006-11-01 13:54:40 -0800</bug_when>
    <thetext>Comment on attachment 11336
Handles incomplete character broken into different chunks

r = me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47537</commentid>
    <comment_count>5</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2006-11-02 08:13:38 -0800</bug_when>
    <thetext>Completed: At revision: 17535  </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47565</commentid>
    <comment_count>6</comment_count>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2006-11-02 13:50:26 -0800</bug_when>
    <thetext>3.1m-&gt;r17536</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370602</commentid>
    <comment_count>7</comment_count>
    <who name="Joel Parks">joel.parks</who>
    <bug_when>2011-03-21 11:52:44 -0700</bug_when>
    <thetext>re-purposing InTSW keyword for use by QtWebkit team</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11334</attachid>
            <date>2006-11-01 12:43:37 -0800</date>
            <delta_ts>2006-11-01 13:51:12 -0800</delta_ts>
            <desc>Handles imcomplete character broken into chunks</desc>
            <filename>incomplete_char.patch</filename>
            <type>text/plain</type>
            <size>13743</size>
            <attacher name="Wei Liu">wei.liu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE3NTE5KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDIwIEBADQorMjAwNi0xMS0wMSAgdzNsaXUgIDx3ZWkubGl1QG5va2lhLmNv
bT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IDx5b25nanVuLnpoYW5nQG5va2lhLmNvbT4NCisg
ICAgICAgIERFU0M6IA0KKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE0ODYNCisgICAgICAgIFRoYWkgdGV4dCByZW5kZXJpbmcgZmFpbHMgd2hlbiB1c2lu
ZyBIVFRQUyANCisNCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hB
TkdFRA0KKw0KKyAgICAgICAgKiBrd3EvS1dRVGV4dENvZGVjLmNwcDoNCisgICAgICAgIChLV1FU
ZXh0RGVjb2Rlcjo6S1dRVGV4dERlY29kZXIpOg0KKyAgICAgICAgKFFUZXh0Q29kZWM6On5RVGV4
dENvZGVjKToNCisgICAgICAgIChRVGV4dENvZGVjOjptYWtlRGVjb2Rlcik6DQorICAgICAgICAo
UVRleHRDb2RlYzo6dG9Vbmljb2RlKToNCisgICAgICAgIChLV1FUZXh0RGVjb2Rlcjo6dG9Vbmlj
b2RlKToNCisgICAgICAgICoga3dxL0tXUVRleHRDb2RlYy5oOg0KKw0KIDIwMDYtMTAtMzEgIHNh
cmVlbiAgPHNoeWFtLnNhcmVlbkBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSA8
emJ1anRhc0BnbWFpbC5jb20+Lg0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUVRleHRDb2RlYy5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMuY3BwCShyZXZpc2lvbiAx
NzUxOSkNCisrKyBXZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMuY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtMzIsNiArMzIsMTAgQEANCiAjaW5jbHVkZSAiS1dRQ2hhcnNldERhdGEuYyINCiAjaW5jbHVk
ZSAiS1dRS0RlYnVnLmgiDQogDQorI2RlZmluZSBfREVCVUcxIDANCisjaWZkZWYgX0RFQlVHMQ0K
KyNpbmNsdWRlIDxmbG9nZ2VyLmg+DQorI2VuZGlmDQogI2RlZmluZSBCckRlZmF1bHRFbmMgS0No
YXJhY3RlclNldElkZW50aWZpZXJJc284ODU5MTsNCiAjZGVmaW5lIEJyRGVmYXVsdEVuY1N0ciAi
aXNvLTg4NTktMSI7DQogDQpAQCAtNDUsNyArNDksNyBAQCBjb25zdCBjaGFyIEJCID0gMHhiYjsN
CiBjbGFzcyBLV1FUZXh0RGVjb2RlciA6IHB1YmxpYyBRVGV4dERlY29kZXIgew0KIGZyaWVuZCBj
bGFzcyBRVGV4dENvZGVjOw0KIHB1YmxpYzoNCi0gICAgS1dRVGV4dERlY29kZXIoVFVpbnQgYUVu
YykgOiBpRW5jb2RpbmcoYUVuYykgIHt9DQorICAgIEtXUVRleHREZWNvZGVyKFRVaW50IGFFbmMp
IDogaUVuY29kaW5nKGFFbmMpICAgIHt9DQogICAgIH5LV1FUZXh0RGVjb2RlcigpICAgICAgICAg
ICAgICAgICB7fQ0KIA0KICAgICBRU3RyaW5nIHRvVW5pY29kZShjb25zdCBjaGFyICpjaHMsIGlu
dCBsZW4sIGJvb2wgZmx1c2gpOw0KQEAgLTU5LDYgKzYzLDggQEAgcHJpdmF0ZToNCiAgICAgUVN0
cmluZyBjb252ZXJ0TGF0aW4xKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNocywgaW50IGxlbik7DQog
ICAgIHN0YXRpYyBDQXJyYXlGaXg8Q0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6U0NoYXJhY3Rl
clNldD4qIGlBcnJheU9mQ2hhcmFjdGVyU2V0c0F2YWlsYWJsZTsNCiAgICAgVFVpbnQgaUVuY29k
aW5nOw0KKyAgICBUVWludDggKiByZW1haW5kZXJCdWY7DQorICAgIGludCByZW1haW5kZXJMZW47
DQogfTsNCiANCiBDQXJyYXlGaXg8Q0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6U0NoYXJhY3Rl
clNldD4qIEtXUVRleHREZWNvZGVyOjppQXJyYXlPZkNoYXJhY3RlclNldHNBdmFpbGFibGUgPSBO
VUxMOw0KQEAgLTg4LDYgKzk0LDkgQEAgc3RhdGljIGJvb2wgZW5jb2RpbmdOYW1lc0VxdWFsKGNv
bnN0IHZvaQ0KICAgICB9DQogfQ0KIA0KK1FUZXh0Q29kZWM6On5RVGV4dENvZGVjKCkNCit7IGRl
bGV0ZSBpUVRleHREZWNvZGVyOyB9DQorDQogYm9vbCB2YWxpZGF0ZVV0ZjgoY29uc3QgY2hhciog
Y2hzLCBpbnQgbGVuLCBpbnQmIHZhbGlkTXVsdGlCeXRlQ2hhcnMpDQogew0KICAgICAvLyB0ZXN0
IGlmIHRoaXMgcmVhbGx5IGlzIHV0ZjgNCkBAIC0yMjAsNyArMjI5LDcgQEAgY29uc3QgY2hhciAq
UVRleHRDb2RlYzo6bmFtZSgpIGNvbnN0DQogDQogUVRleHREZWNvZGVyICpRVGV4dENvZGVjOjpt
YWtlRGVjb2RlcigpIGNvbnN0DQogew0KLSAgICByZXR1cm4gbmV3IEtXUVRleHREZWNvZGVyKCBp
RW5jb2RpbmcgKTsNCisgICAgcmV0dXJuIGlRVGV4dERlY29kZXI/IGlRVGV4dERlY29kZXIgOiBu
ZXcgS1dRVGV4dERlY29kZXIoIGlFbmNvZGluZyApOw0KIH0NCiANCiBRQ1N0cmluZyBRVGV4dENv
ZGVjOjpmcm9tVW5pY29kZShjb25zdCBRU3RyaW5nICZxY3MpIGNvbnN0DQpAQCAtMjMwLDcgKzIz
OSw3IEBAIFFDU3RyaW5nIFFUZXh0Q29kZWM6OmZyb21Vbmljb2RlKGNvbnN0IFENCiANCiBRU3Ry
aW5nIFFUZXh0Q29kZWM6OnRvVW5pY29kZShjb25zdCBjaGFyICpjaHMsIGludCBsZW4pIGNvbnN0
DQogew0KLSAgICByZXR1cm4gS1dRVGV4dERlY29kZXIoIGlFbmNvZGluZyApLnRvVW5pY29kZShj
aHMsIGxlbiwgdHJ1ZSk7DQorICAgIHJldHVybiBtYWtlRGVjb2RlcigpLT50b1VuaWNvZGUoY2hz
LCBsZW4sIHRydWUpOw0KIH0NCiANCiBRU3RyaW5nIFFUZXh0Q29kZWM6OnRvVW5pY29kZShjb25z
dCBRQnl0ZUFycmF5ICZxYmEsIGludCBsZW4pIGNvbnN0DQpAQCAtMzA3LDY5ICszMTYsODQgQEAg
Ym9vbCBLV1FUZXh0RGVjb2Rlcjo6SXNDb252ZXJzaW9uU3VwcG9ydA0KICAgICByZXR1cm4gZmFs
c2U7DQogICAgIH0NCiANCi0gICAgLyoqDQorIC8qKg0KICAqIENvbnZlcnRzIHRoZSB0ZXh0IGJ1
ZmZlciBmcm9tIG9uZSBlbmNvZGluZyB0byBVbmljb2RlDQogICogSWYgdGhlIGluZGljYXRlZCBj
aGFyc2V0IGlzIG5vdCBzdXBwb3J0ZWQsIG9yIGl0cyBjb252ZXJ0ZXIgaXMgbm90IGF2YWlsYWJs
ZSwNCiAgKiBkbyB0aGUgY29udmVydGlvbiBmcm9tIGRlZmF1bHQgZW5jb2RpbmcgdG8gVW5pY29k
ZS4NCiAgKi8NCiBRU3RyaW5nIEtXUVRleHREZWNvZGVyOjp0b1VuaWNvZGUoY29uc3QgY2hhciAq
Y2hzLCBpbnQgbGVuLCBib29sIGZsdXNoKQ0KICAgICB7DQotICAgIC8vIG1ha2Ugc3VyZSB0aGUg
Y29udmVydGVyIGlzIGF2YWlsYWJsZQ0KIA0KLSAgaW50IGJvbUxlbmd0aCA9IDA7DQotICBUVWlu
dCBlbmNvZGluZyA9IGlFbmNvZGluZzsNCi0gIENDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXI6OlRF
bmRpYW5uZXNzIGVuZGlhbm5lc3MgPSBDQ252Q2hhcmFjdGVyU2V0Q29udmVydGVyOjpFTGl0dGxl
RW5kaWFuOw0KKyAgICBib29sIGxhc3RDaHVuayA9IChsZW4gPT0gMCk/IHRydWUgOiBmYWxzZTsN
CisgICAgaW50IGJvbUxlbmd0aCA9IDA7DQorICAgIEhCdWZDOCAqIGluSEJ1ZiA9IE5VTEw7ICAg
ICAvLyBidWZmZXIgdG8gaG9sZCBjb21iaW5hdGlvbiBvZiByZW1haW5kZXIgYW5kIG5leHQgY2h1
bmsNCisgICAgQ0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6VEVuZGlhbm5lc3MgZW5kaWFubmVz
cyA9IENDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXI6OkVMaXR0bGVFbmRpYW47DQogDQotICBpZiAo
bGVuID4gMiAmJiBjaHNbMF0gPT0gRkYgJiYgY2hzWzFdID09IEZFKSB7DQotICAgICAgICBlbmNv
ZGluZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyVW5pY29kZUxpdHRsZTsNCisgICAgaWYgKGxl
biA+IDIgJiYgY2hzWzBdID09IEZGICYmIGNoc1sxXSA9PSBGRSkNCisgICAgICAgIHsNCisgICAg
ICAgIGlFbmNvZGluZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyVW5pY29kZUxpdHRsZTsNCiAg
ICAgICAgIGJvbUxlbmd0aCA9IDI7DQotICAgIH0gZWxzZSBpZiAobGVuID4gMiAmJiBjaHNbMF0g
PT0gRkUgJiYgY2hzWzFdID09IEZGKSB7DQotICAgICAgICBlbmNvZGluZyA9IEtDaGFyYWN0ZXJT
ZXRJZGVudGlmaWVyVW5pY29kZUJpZzsNCi0gICAgZW5kaWFubmVzcyA9IENDbnZDaGFyYWN0ZXJT
ZXRDb252ZXJ0ZXI6OkVCaWdFbmRpYW47DQorICAgICAgICB9DQorICAgIGVsc2UgaWYgKGxlbiA+
IDIgJiYgY2hzWzBdID09IEZFICYmIGNoc1sxXSA9PSBGRikNCisgICAgICAgIHsNCisgICAgICAg
IGlFbmNvZGluZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyVW5pY29kZUJpZzsNCisgICAgICAg
IGVuZGlhbm5lc3MgPSBDQ252Q2hhcmFjdGVyU2V0Q29udmVydGVyOjpFQmlnRW5kaWFuOw0KICAg
ICAgICAgYm9tTGVuZ3RoID0gMjsNCi0gICAgfSBlbHNlIGlmIChsZW4gPiAzICYmIGNoc1swXSA9
PSBFRiAmJiBjaHNbMV0gPT0gQkIgJiYgY2hzWzJdID09IEJGKSB7DQotICAgICAgICBlbmNvZGlu
ZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyVXRmODsNCisgICAgICAgIH0NCisgICAgZWxzZSBp
ZiAobGVuID4gMyAmJiBjaHNbMF0gPT0gRUYgJiYgY2hzWzFdID09IEJCICYmIGNoc1syXSA9PSBC
RikNCisgICAgICAgIHsNCisgICAgICAgIGlFbmNvZGluZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlm
aWVyVXRmODsNCiAgICAgICAgIGJvbUxlbmd0aCA9IDM7DQotICAgIH0NCisgICAgICAgIH0NCiAN
CiAgICAgaWYgKCFJc0NvbnZlcnNpb25TdXBwb3J0ZWRMKCkpDQotICAgIHsNCi0gICAgaUVuY29k
aW5nID0gS0NoYXJhY3RlclNldElkZW50aWZpZXJJc284ODU5MTsNCi0gICAgfQ0KKyAgICAgICAg
ew0KKyAgICAgICAgaUVuY29kaW5nID0gS0NoYXJhY3RlclNldElkZW50aWZpZXJJc284ODU5MTsN
CisgICAgICAgIH0NCiANCiAgICAgLy8gY2hlY2sgaWYgaXQgcmVhbGx5IGxvb2tzIGxpa2UgdmFs
aWQgdXRmLTgNCi0gICAgaWYgKGlFbmNvZGluZyA9PSBLQ2hhcmFjdGVyU2V0SWRlbnRpZmllclV0
ZjggJiYgYm9tTGVuZ3RoPT0wKSB7DQorICAgIGlmIChpRW5jb2RpbmcgPT0gS0NoYXJhY3RlclNl
dElkZW50aWZpZXJVdGY4ICYmIGJvbUxlbmd0aD09MCkNCisgICAgICAgIHsNCiAgICAgICAgIGlu
dCB2YWxpZE11bHRpYnl0ZUNoYXJzOw0KICAgICAgICAgYm9vbCB2YWxpZFV0ZjggPSB2YWxpZGF0
ZVV0ZjgoY2hzLCBNaW4obGVuLDMyKjEwMjQpLHZhbGlkTXVsdGlieXRlQ2hhcnMpOw0KICAgICAg
ICAgLy8gaWYgdGhlcmUgYXJlIHZhbGlkIG11bHRpYnl0ZSBjaGFycyBpbiB0aGUgc3RyZWFtLCBi
ZXR0ZXIgc3RpY2sgd2l0aCB1dGYtOA0KICAgICAgICAgaWYgKCF2YWxpZFV0ZjggJiYgdmFsaWRN
dWx0aWJ5dGVDaGFyczwzKQ0KICAgICAgICAgICAgIGlFbmNvZGluZyA9IEtDaGFyYWN0ZXJTZXRJ
ZGVudGlmaWVySXNvODg1OTE7DQotICAgIH0NCisgICAgICAgIH0NCiANCiAgICAgaWYgKGlFbmNv
ZGluZyA9PSBLQ2hhcmFjdGVyU2V0SWRlbnRpZmllcklzbzg4NTkxKQ0KKyAgICAgICAgew0KICAg
ICAgICAgcmV0dXJuIGNvbnZlcnRMYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25l
ZCBjaGFyICo+KGNocyksIGxlbik7DQotICBlbHNlIGlmKGlFbmNvZGluZyA9PSBLQ2hhcmFjdGVy
U2V0SWRlbnRpZmllcldpbmRvdzEyNTAgfHwNCi0gICAgICBpRW5jb2RpbmcgPT0gS0NoYXJhY3Rl
clNldElkZW50aWZpZXJXaW5kb3cxMjUxIHx8DQotICAgICAgaUVuY29kaW5nID09IEtDaGFyYWN0
ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1MyB8fA0KLSAgICAgIGlFbmNvZGluZyA9PSBLQ2hhcmFj
dGVyU2V0SWRlbnRpZmllcldpbmRvdzEyNTYgfHwNCi0gICAgICBpRW5jb2RpbmcgPT0gS0NoYXJh
Y3RlclNldElkZW50aWZpZXJXaW5kb3cxMjU3DQotICAgICAgKSAvLyB3b3JrIGFyb3VuZCBmb3Ig
U3ltYmlhbiBjb252ZXJ0ZXIgaGFuZ2luZyB3aGVuIGNvbnZlcnRpbmcgd2luZG93cy0xMjV4IGNo
YXJzZXQNCi0gICAgew0KLSAgICByZXR1cm4gd2luZG93czEyNXhUb1VuaWNvZGUoIGNocywgbGVu
ICk7DQotICAgIH0NCisgICAgICAgIH0NCisgICAgZWxzZSBpZihpRW5jb2RpbmcgPT0gS0NoYXJh
Y3RlclNldElkZW50aWZpZXJXaW5kb3cxMjUwIHx8DQorICAgICAgICBpRW5jb2RpbmcgPT0gS0No
YXJhY3RlclNldElkZW50aWZpZXJXaW5kb3cxMjUxIHx8DQorICAgICAgICBpRW5jb2RpbmcgPT0g
S0NoYXJhY3RlclNldElkZW50aWZpZXJXaW5kb3cxMjUzIHx8DQorICAgICAgICBpRW5jb2Rpbmcg
PT0gS0NoYXJhY3RlclNldElkZW50aWZpZXJXaW5kb3cxMjU2IHx8DQorICAgICAgICBpRW5jb2Rp
bmcgPT0gS0NoYXJhY3RlclNldElkZW50aWZpZXJXaW5kb3cxMjU3DQorICAgICAgICApIC8vIHdv
cmsgYXJvdW5kIGZvciBTeW1iaWFuIGNvbnZlcnRlciBoYW5naW5nIHdoZW4gY29udmVydGluZyB3
aW5kb3dzLTEyNXggY2hhcnNldA0KKyAgICAgICAgew0KKyAgICAgICAgcmV0dXJuIHdpbmRvd3Mx
MjV4VG9Vbmljb2RlKCBjaHMsIGxlbiApOw0KKyAgICAgICAgfQ0KKw0KKyNpZiBfREVCVUcxDQor
ICAgIC8vIHByaW50IG91dCB0aGUgaW5jb21pbmcgYnVmZmVyIHRvIGEgZmlsZSBmb3IgZGVidWdn
aW5nIHB1cnBvc2UNCisgICAgaWYgKGxlbikNCisgICAgICAgIFJGaWxlTG9nZ2VyOjpIZXhEdW1w
KCBfTCgiQnJvd3NlciIpLCBfTCgidGV4dF9jaHVua3MudHh0IiksIEVGaWxlTG9nZ2luZ01vZGVB
cHBlbmQsDQorICAgICAgICBOVUxMLCBOVUxMLCAoY29uc3QgVFVpbnQ4KiljaHMsIGxlbiApOw0K
KyNlbmRpZiAvLyBfREVCVUcxDQogDQogICAgIENDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXIqIGNo
YXJDb252ID0gS1dRR2xvYmFsU2VydmljZXM6Okluc3RhbmNlTCgpLT5DaGFyQ29udigpOw0KICAg
ICBSRnMmIGZpbGVTZXNzaW9uID0gS1dRR2xvYmFsU2VydmljZXM6Okluc3RhbmNlTCgpLT5GaWxl
U2Vzc2lvbigpOw0KIA0KICAgICAvLyBjaGVjayBpZiB0aGUgdGFyZ2V0IGNoYXJzZXQgaXMgc3Vw
cG9ydGVkDQotICAgIGNoYXJDb252LT5QcmVwYXJlVG9Db252ZXJ0VG9PckZyb21MKCBlbmNvZGlu
ZywgKmlBcnJheU9mQ2hhcmFjdGVyU2V0c0F2YWlsYWJsZSwgZmlsZVNlc3Npb24gKTsNCisgICAg
Y2hhckNvbnYtPlByZXBhcmVUb0NvbnZlcnRUb09yRnJvbUwoIGlFbmNvZGluZywgKmlBcnJheU9m
Q2hhcmFjdGVyU2V0c0F2YWlsYWJsZSwgZmlsZVNlc3Npb24gKTsNCiAgICAgY2hhckNvbnYtPlNl
dERlZmF1bHRFbmRpYW5uZXNzT2ZGb3JlaWduQ2hhcmFjdGVycyggZW5kaWFubmVzcyApOw0KICAg
ICBUQnVmMTY8MzI+IHRtcEJ1ZjsNCiAgICAgVEJ1ZjE2PDMyPiBvdXRCdWY7DQogDQotICBsZW4g
PSBsZW4gLSBib21MZW5ndGggOw0KKyAgICBsZW4gPSBsZW4gLSBib21MZW5ndGggOw0KICAgICBU
UHRyQzggIGluQnVmKCAoY29uc3QgVFVpbnQ4KiljaHMgKyBib21MZW5ndGgsIGxlbiApOw0KLSAg
ICBUSW50IHN0YXRlPUNDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXI6OktTdGF0ZURlZmF1bHQ7DQor
ICAgIFRJbnQgc3RhdGUgPSBDQ252Q2hhcmFjdGVyU2V0Q29udmVydGVyOjpLU3RhdGVEZWZhdWx0
Ow0KIA0KICAgICAvLyBndWVzcyB0aGUgb3V0cHV0IHNpemUNCiAgICAgUVN0cmluZyByZXN1bHQ7
DQpAQCAtMzgwLDU4ICs0MDQsNzMgQEAgUVN0cmluZyBLV1FUZXh0RGVjb2Rlcjo6dG9Vbmljb2Rl
KGNvbnN0IA0KICAgICAvLyB0cnkgdG8gcmVzZXJ2ZSB0d2ljZSB0aGUgbGVuIG9mIGJ5dGVzIGlu
IG1lbW9yeSB0byBhdm9pZCBmcmVxdWVudCByZWFsbG9jYXRpb24NCiAgICAgLy8gcmVzZXJ2ZSBm
dW5jdGlvbiByZXNlcnZlcyAzKmxlbiBvZiBieXRlcyBpbiBtb21lcnksIHRvIGFjaGlldmUgMips
ZW4sIHRpbWVzIGZhY3RvciBvZiAyLzMNCiAgICAgcmVzdWx0LnJlc2VydmUoIGxlbioyLzMgKyAx
ICk7DQorDQorICAgIGlmIChyZW1haW5kZXJMZW4pDQorICAgICAgICB7DQorICAgICAgICBpbkhC
dWYgPSBIQnVmQzg6Ok5ld0wocmVtYWluZGVyTGVuICsgbGVuKTsNCisgICAgICAgIGluSEJ1Zi0+
RGVzKCkuQXBwZW5kKHJlbWFpbmRlckJ1ZiwgcmVtYWluZGVyTGVuKTsNCisgICAgICAgIGluSEJ1
Zi0+RGVzKCkuQXBwZW5kKChjb25zdCB1bnNpZ25lZCBjaGFyICopY2hzLCBsZW4pOw0KKyAgICAg
ICAgcmVtYWluZGVyTGVuID0gMDsNCisgICAgICAgIGluQnVmLlNldChpbkhCdWYtPkRlcygpKTsN
CisgICAgICAgIH0NCisNCiAgICAgZm9yKDs7KQ0KICAgICAgICAgew0KICAgICAgICAgVEludCBy
ZXAgPSAwOyAvLyBudW1iZXIgb2YgdW5jb252ZXJ0aWJsZSBjaGFyYWN0ZXJzDQogICAgICAgICBU
SW50IHJJbmR4ID0gMDsgLy8gaW5kZXggb2YgZmlyc3QgdW5jb252ZXJ0aWJsZSBjaGFyYWN0ZXIN
CiAgICAgICAgIFRJbnQgcmV0ID0gY2hhckNvbnYtPkNvbnZlcnRUb1VuaWNvZGUoIHRtcEJ1Ziwg
aW5CdWYsIHN0YXRlLCByZXAsIHJJbmR4ICk7DQogICAgICAgICBpZiAocmV0PT1DQ252Q2hhcmFj
dGVyU2V0Q29udmVydGVyOjpFRXJyb3JJbGxGb3JtZWRJbnB1dCApDQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlIGVycm9yIGlzIGNhdXNlZCBieSBpbmNvbXBsZXRl
IGNoYXJhY3RlciBhdCBlbmQgb2YgY2h1bmsNCisgICAgICAgICAgICBpZiAoaW5CdWYuTGVuZ3Ro
KCkgPCAzICYmICFsYXN0Q2h1bmspDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAg
ICAgcmVtYWluZGVyQnVmID0gKHVuc2lnbmVkIGNoYXIgKilpbkJ1Zi5QdHIoKTsNCisgICAgICAg
ICAgICAgICAgcmVtYWluZGVyTGVuID0gaW5CdWYuTGVuZ3RoKCk7DQorICAgICAgICAgICAgICAg
IH0NCiAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQogDQogICAgICAgICAvLyBj
b3B5IHJlc3VsdCB0byBvdXQgYnVmZmVyDQorICAgICAgICBUUHRyIG91dFB0ciggMCwgMCApOw0K
Kw0KKyAgICAgICAgLy8gdGhlcmUgaXMgc29tZSBpbGxlZ2FsL3VuY29udmVydGlibGUgY2hhcnMN
CisgICAgICAgIC8vIHRyeSB0byBjcmVhdGUgYSBidWZmZXIgd2l0aCBhbGwgMHhGRkZEIGNoYXJz
IHRyaW1tZWQNCisgICAgICAgIGlmIChyZXAgIT0gMCkNCisgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgaWYgKGluQnVmLkxlbmd0aCgpIDw9IDY0ICYmICFsYXN0Q2h1bmspDQorICAgICAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICAgICAgcmVtYWluZGVyQnVmID0gKHVuc2lnbmVkIGNoYXIg
KilpbkJ1Zi5QdHIoKTsNCisgICAgICAgICAgICAgICAgcmVtYWluZGVyTGVuID0gaW5CdWYuTGVu
Z3RoKCk7DQorICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgICAgICB9DQorICAg
ICAgICAgICAgZWxzZSBpZiAobGFzdENodW5rKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgICAgIHJlbWFpbmRlckxlbiA9IDA7DQorICAgICAgICAgICAgICAgIH0NCiANCi0gICAg
aWYocmV0ID09IC0xICkNCi0gICAgICB7DQotICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIHNpZmZp
Y2llbnQgY2hhcmFjdGVyIHRvIGJlIGNvbnZlcnRlZCB0byB1bmljb2RlLA0KLSAgICAgIC8vIGp1
c3QgYXBwZW5kIHRoZSByZXN0IHRvIHRoZSBjaGFyYWN0ZXJzIHRvIHRoZSByZXN1bHQgc3RyaW5n
Lg0KLSAgICAgIHJlc3VsdC5hcHBlbmQoIChjaGFyICopaW5CdWYuUHRyKCksIGluQnVmLkxlbmd0
aCgpICk7DQotICAgICAgfQ0KLSAgICBlbHNlDQotICAgICAgew0KLSAgICAgIC8vICMjIyBGSVhN
RSBOT0tJQTogaXMgaXQgY29ycmVjdCB0byByZW1vdmUgdGhlIHJlcGxhY2VtZW50IDB4RkZGRCBj
aGFycyBoZXJlPw0KLSAgICAgIC8vIE1heWJlIHdlIG5lZWQgdG8gcmVwbGFjZSBpdCB3aXRoIHNw
YWNlIGNoYXJhY3Rlcg0KLQ0KLSAgICAgIFRQdHIgb3V0UHRyKCAwLCAwICk7DQotDQotICAgICAg
Ly8gdGhlcmUgaXMgc29tZSBpbGxlZ2FsL3VuY29udmVydGlibGUgY2hhcnMNCi0gICAgICAvLyB0
cnkgdG8gY3JlYXRlIGEgYnVmZmVyIHdpdGggYWxsIDB4RkZGRCBjaGFycyB0cmltbWVkDQotICAg
ICAgaWYgKHJlcCAhPSAwICYmIHJJbmR4IDwgdG1wQnVmLkxlbmd0aCgpICkNCi0gICAgICAgIHsN
Ci0gICAgICAgIFRJbnQgaT1ySW5keDsNCi0gICAgICAgIC8vIGZpcnN0IGNvcHkgdGhlIHBhcnQg
b2YgYnVmZmVyIGJlZm9yZSB0aGUgZmlyc3QgMHhGRkZEIGNoYXINCi0gICAgICAgIG91dEJ1Zi5B
cHBlbmQodG1wQnVmLkxlZnQoaSsrKSk7DQotICAgICAgICByZXAtLTsNCi0gICAgICAgIC8vIHNl
YXJjaCBmb3IgbW9yZSBvY2N1cmFuY2Ugb2YgMHhGRkZEIGNoYXJzDQotICAgICAgICAvLyBhbmQg
YXBwZW5kIHZhbGlkIGNoYXJzIGJlZm9yZSB0aGUgbGFzdCAweEZGRkQgY2hhcg0KLSAgICAgICAg
Ly8gaWYgdGhlcmUgaXMgb25seSBvbmUgMHhGRkZEIGNoYXIsIHdvdWxkbid0IGVudGVyIHRoZSBs
b29wDQotICAgICAgICBmb3IoIDsgcmVwICYmIGk8dG1wQnVmLkxlbmd0aCgpOyBpKysgKQ0KLSAg
ICAgICAgICB7DQotICAgICAgICAgIGlmKCB0bXBCdWZbaV0gIT0gMHhGRkZEICkNCi0gICAgICAg
ICAgICBvdXRCdWYuQXBwZW5kKCB0bXBCdWZbaV0gKTsNCi0gICAgICAgICAgZWxzZQ0KLSAgICAg
ICAgICAgIHJlcC0tOw0KLSAgICAgICAgICB9DQotICAgICAgICAvLyBhcHBlbmQgdGhlIGNoYXJz
IGFmdGVyIGxhc3QgMHhGRkZEIGNoYXINCi0gICAgICAgIG91dEJ1Zi5BcHBlbmQodG1wQnVmLlJp
Z2h0KHRtcEJ1Zi5MZW5ndGgoKSAtIGkpKTsNCi0gICAgICAgIG91dFB0ci5TZXQoIChUVWludDE2
KilvdXRCdWYuUHRyKCksIG91dEJ1Zi5MZW5ndGgoKSwgb3V0QnVmLkxlbmd0aCgpICk7DQotICAg
ICAgICBvdXRCdWYuWmVybygpOw0KIA0KLSAgICAgICAgfQ0KLSAgICAgIGVsc2Ugb3V0UHRyLlNl
dCggKFRVaW50MTYqKXRtcEJ1Zi5QdHIoKSwgdG1wQnVmLkxlbmd0aCgpLCB0bXBCdWYuTGVuZ3Ro
KCkgICk7DQorICAgICAgICAgICAgVEludCBpPSAockluZHggLTEgKS8yOw0KKyAgICAgICAgICAg
IC8vIGZpcnN0IGNvcHkgdGhlIHBhcnQgb2YgYnVmZmVyIGJlZm9yZSB0aGUgZmlyc3QgMHhGRkZE
IGNoYXINCisgICAgICAgICAgICBvdXRCdWYuQXBwZW5kKHRtcEJ1Zi5MZWZ0KGkpKTsNCisgICAg
ICAgICAgICAvLyBzZWFyY2ggZm9yIG1vcmUgb2NjdXJhbmNlIG9mIDB4RkZGRCBjaGFycw0KKyAg
ICAgICAgICAgIC8vIGFuZCBhcHBlbmQgdmFsaWQgY2hhcnMgYmVmb3JlIHRoZSBsYXN0IDB4RkZG
RCBjaGFyDQorICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgb25seSBvbmUgMHhGRkZEIGNoYXIs
IHdvdWxkbid0IGVudGVyIHRoZSBsb29wDQorICAgICAgICAgICAgZm9yKCA7IHJlcCAmJiBpPHRt
cEJ1Zi5MZW5ndGgoKTsgaSsrICkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAg
ICBpZiggdG1wQnVmW2ldICE9IDB4RkZGRCApDQorICAgICAgICAgICAgICAgICAgICBvdXRCdWYu
QXBwZW5kKCB0bXBCdWZbaV0gKTsNCisgICAgICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAg
ICAgICAgICAgcmVwLS07DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAvLyBhcHBl
bmQgdGhlIGNoYXJzIGFmdGVyIGxhc3QgMHhGRkZEIGNoYXINCisgICAgICAgICAgICBvdXRCdWYu
QXBwZW5kKHRtcEJ1Zi5SaWdodCh0bXBCdWYuTGVuZ3RoKCkgLSBpKSk7DQorICAgICAgICAgICAg
b3V0UHRyLlNldCggKFRVaW50MTYqKW91dEJ1Zi5QdHIoKSwgb3V0QnVmLkxlbmd0aCgpLCBvdXRC
dWYuTGVuZ3RoKCkgKTsNCisgICAgICAgICAgICBvdXRCdWYuWmVybygpOw0KKyAgICAgICAgICAg
IH0NCisgICAgICAgIGVsc2Ugb3V0UHRyLlNldCggKFRVaW50MTYqKXRtcEJ1Zi5QdHIoKSwgdG1w
QnVmLkxlbmd0aCgpLCB0bXBCdWYuTGVuZ3RoKCkgKTsNCiANCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgYnVmZmVycyB0byBmaW5hbCByZXN1bHQsIHdpbGwgcmVpbmNyZWFzZSB0aGUgc2l6ZSBpbiBu
ZWVkZWQNCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIChjb25zdCBRQ2hhciopKG91dFB0ci5QdHIo
KSksIG91dFB0ci5MZW5ndGgoKSApOw0KLSAgICAgIH0NCiANCiAgICAgICAgIGlmKCByZXQgPT0g
MCAgfHwgcmV0ID09IC0xICkgYnJlYWs7DQogDQpAQCAtNDM5LDYgKzQ3OCw4IEBAIFFTdHJpbmcg
S1dRVGV4dERlY29kZXI6OnRvVW5pY29kZShjb25zdCANCiAgICAgICAgIH0NCiANCiAgICAgT09N
X1BPU1RfQ0hFQ0tfRkFJTEVEKCByZXR1cm4gcmVzdWx0OyApDQorDQorICAgIGRlbGV0ZSBpbkhC
dWY7DQogICAgIHJldHVybiByZXN1bHQ7DQogICAgIH0NCiANCkBAIC01MjksNyArNTcwLDcgQEAg
UVN0cmluZyBLV1FUZXh0RGVjb2Rlcjo6d2luZG93czEyNXhUb1VuaQ0KIA0KIHZvaWQgUVRleHRD
b2RlYzo6UHJlcGFyZUZvckV4aXQoKQ0KIHsNCi0gICAgQ0FycmF5Rml4PENDbnZDaGFyYWN0ZXJT
ZXRDb252ZXJ0ZXI6OlNDaGFyYWN0ZXJTZXQ+KiBhcnIgDQorICAgIENBcnJheUZpeDxDQ252Q2hh
cmFjdGVyU2V0Q29udmVydGVyOjpTQ2hhcmFjdGVyU2V0PiogYXJyDQogICAgICAgICAgICAgICAg
ID0gS1dRVGV4dERlY29kZXI6OmlBcnJheU9mQ2hhcmFjdGVyU2V0c0F2YWlsYWJsZTsNCiANCiAg
ICAgaWYoIGFyciApDQpJbmRleDogV2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMuaAkocmV2aXNpb24gMTc1MTkpDQorKysg
V2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLmgJKHdvcmtpbmcgY29weSkNCkBAIC00Miw2ICs0Miw3
IEBAIHB1YmxpYzoNCiAgICAgc3RhdGljIFFUZXh0Q29kZWMgKmNvZGVjRm9yTG9jYWxlKCk7DQog
DQogICAgIFFUZXh0Q29kZWMoIFRVaW50IGFFbmMsIEtXUUVuY29kaW5nRmxhZ3MgZiA9IE5vRW5j
b2RpbmdGbGFncyApIDogaUVuY29kaW5nKCBhRW5jICksIF9mbGFncyhmKSAgICAgICAgICB7fQ0K
KyAgICB+UVRleHRDb2RlYygpOw0KICAgICBjb25zdCBjaGFyICpuYW1lKCkgY29uc3Q7DQogICAg
IGJvb2wgdXNlc1Zpc3VhbE9yZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gX2ZsYWdzICYgVmlzdWFs
T3JkZXJpbmc7IH0NCiAgICAgYm9vbCBpc0phcGFuZXNlKCkgY29uc3QgeyByZXR1cm4gX2ZsYWdz
ICYgSXNKYXBhbmVzZTsgfQ0KQEAgLTYxLDggKzYyLDkgQEAgcHVibGljOg0KICAgICBzdGF0aWMg
dm9pZCBQcmVwYXJlRm9yRXhpdCgpOw0KIA0KIHByaXZhdGU6DQotCVRVaW50CQlpRW5jb2Rpbmc7
DQorICAgIFRVaW50ICAgICAgIGlFbmNvZGluZzsNCiAgICAgS1dRRW5jb2RpbmdGbGFncyBfZmxh
Z3M7DQorICAgIFFUZXh0RGVjb2RlciAqIGlRVGV4dERlY29kZXI7DQogfTsNCiANCiBpbmxpbmUg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IFFUZXh0Q29kZWMgJmEsIGNvbnN0IFFUZXh0Q29kZWMgJmIp
IHsgcmV0dXJuICEoYSA9PSBiKTsgfQ0KQEAgLTcxLDcgKzczLDcgQEAgY2xhc3MgUVRleHREZWNv
ZGVyDQogT09NX01PRElGSUVEDQogew0KIHB1YmxpYzoNCi0gICAgdmlydHVhbCB+UVRleHREZWNv
ZGVyKCkJCQkJCQkJCQkJCXt9DQorICAgIHZpcnR1YWwgflFUZXh0RGVjb2RlcigpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQ0KICAgICB2aXJ0dWFsIFFTdHJpbmcg
dG9Vbmljb2RlKGNvbnN0IGNoYXIgKiwgaW50LCBib29sIGZsdXNoID0gZmFsc2UpID0gMDsNCiB9
Ow0KIA0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11336</attachid>
            <date>2006-11-01 13:52:29 -0800</date>
            <delta_ts>2006-11-01 13:54:40 -0800</delta_ts>
            <desc>Handles incomplete character broken into different chunks</desc>
            <filename>incomplete_char.patch</filename>
            <type>text/plain</type>
            <size>14684</size>
            <attacher name="Wei Liu">wei.liu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE3NTIwKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDM5IEBADQorMjAwNi0xMS0wMSAgdzNsaXUgIDx3ZWkubGl1QG5va2lhLmNv
bT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IDx5b25nanVuLnpoYW5nQG5va2lhLmNvbT4NCisg
ICAgICAgIERFU0M6IA0KKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE0ODYNCisgICAgICAgIFRoYWkgdGV4dCByZW5kZXJpbmcgZmFpbHMgd2hlbiB1c2lu
ZyBIVFRQUyANCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdF
RA0KKw0KKyAgICAgICAgKiBDaGFuZ2VMb2c6DQorICAgICAgICAqIGt3cS9LV1FUZXh0Q29kZWMu
Y3BwOg0KKyAgICAgICAgKEtXUVRleHREZWNvZGVyOjpLV1FUZXh0RGVjb2Rlcik6DQorICAgICAg
ICAoS1dRVGV4dERlY29kZXI6On5LV1FUZXh0RGVjb2Rlcik6DQorICAgICAgICAoUVRleHRDb2Rl
Yzo6flFUZXh0Q29kZWMpOg0KKyAgICAgICAgKFFUZXh0Q29kZWM6Om1ha2VEZWNvZGVyKToNCisg
ICAgICAgIChRVGV4dENvZGVjOjp0b1VuaWNvZGUpOg0KKyAgICAgICAgKEtXUVRleHREZWNvZGVy
Ojp0b1VuaWNvZGUpOg0KKyAgICAgICAgKFFUZXh0Q29kZWM6OlByZXBhcmVGb3JFeGl0KToNCisg
ICAgICAgICoga3dxL0tXUVRleHRDb2RlYy5oOg0KKw0KKzIwMDYtMTEtMDEgIHczbGl1ICA8d2Vp
LmxpdUBub2tpYS5jb20+DQorDQorICAgICAgICBSZXZpZXdlZCBieSA8eW9uZ2p1bi56aGFuZ0Bu
b2tpYS5jb20+DQorICAgICAgICBERVNDOiANCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNDg2DQorICAgICAgICBUaGFpIHRleHQgcmVuZGVyaW5nIGZh
aWxzIHdoZW4gdXNpbmcgSFRUUFMgDQorDQorICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VT
IEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICoga3dxL0tXUVRleHRDb2RlYy5jcHA6DQor
ICAgICAgICAoS1dRVGV4dERlY29kZXI6OktXUVRleHREZWNvZGVyKToNCisgICAgICAgIChRVGV4
dENvZGVjOjp+UVRleHRDb2RlYyk6DQorICAgICAgICAoUVRleHRDb2RlYzo6bWFrZURlY29kZXIp
Og0KKyAgICAgICAgKFFUZXh0Q29kZWM6OnRvVW5pY29kZSk6DQorICAgICAgICAoS1dRVGV4dERl
Y29kZXI6OnRvVW5pY29kZSk6DQorICAgICAgICAqIGt3cS9LV1FUZXh0Q29kZWMuaDoNCisNCiAy
MDA2LTEwLTMxICBzYXJlZW4gIDxzaHlhbS5zYXJlZW5Abm9raWEuY29tPg0KIA0KICAgICAgICAg
UmV2aWV3ZWQgYnkgPHpidWp0YXNAZ21haWwuY29tPi4NCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FU
ZXh0Q29kZWMuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLmNw
cAkocmV2aXNpb24gMTc1MTkpDQorKysgV2ViQ29yZS9rd3EvS1dRVGV4dENvZGVjLmNwcAkod29y
a2luZyBjb3B5KQ0KQEAgLTMyLDYgKzMyLDEwIEBADQogI2luY2x1ZGUgIktXUUNoYXJzZXREYXRh
LmMiDQogI2luY2x1ZGUgIktXUUtEZWJ1Zy5oIg0KIA0KKyNkZWZpbmUgX0RFQlVHMSAwDQorI2lm
ZGVmIF9ERUJVRzENCisjaW5jbHVkZSA8ZmxvZ2dlci5oPg0KKyNlbmRpZg0KICNkZWZpbmUgQnJE
ZWZhdWx0RW5jIEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVySXNvODg1OTE7DQogI2RlZmluZSBCckRl
ZmF1bHRFbmNTdHIgImlzby04ODU5LTEiOw0KIA0KQEAgLTQ1LDEzICs0OSwxMyBAQCBjb25zdCBj
aGFyIEJCID0gMHhiYjsNCiBjbGFzcyBLV1FUZXh0RGVjb2RlciA6IHB1YmxpYyBRVGV4dERlY29k
ZXIgew0KIGZyaWVuZCBjbGFzcyBRVGV4dENvZGVjOw0KIHB1YmxpYzoNCi0gICAgS1dRVGV4dERl
Y29kZXIoVFVpbnQgYUVuYykgOiBpRW5jb2RpbmcoYUVuYykgIHt9DQotICAgIH5LV1FUZXh0RGVj
b2RlcigpICAgICAgICAgICAgICAgICB7fQ0KKyAgICBLV1FUZXh0RGVjb2RlcihUVWludCBhRW5j
KSA6IGlFbmNvZGluZyhhRW5jKSwgaVJlbWFpbmRlckJ1ZihOVUxMKSAgIHt9DQorICAgIH5LV1FU
ZXh0RGVjb2RlcigpICAgICAgICAgICAgICAgICB7IGRlbGV0ZSBpUmVtYWluZGVyQnVmOyB9DQog
DQogICAgIFFTdHJpbmcgdG9Vbmljb2RlKGNvbnN0IGNoYXIgKmNocywgaW50IGxlbiwgYm9vbCBm
bHVzaCk7DQogICAgIFFDU3RyaW5nIGZyb21Vbmljb2RlKGNvbnN0IFFTdHJpbmcgJik7DQogICAg
IGJvb2wgSXNDb252ZXJzaW9uU3VwcG9ydGVkTCgpOw0KLSAgUVN0cmluZyB3aW5kb3dzMTI1eFRv
VW5pY29kZSggY29uc3QgY2hhciAqY2hzLCBpbnQgbGVuICk7DQorICAgIFFTdHJpbmcgd2luZG93
czEyNXhUb1VuaWNvZGUoIGNvbnN0IGNoYXIgKmNocywgaW50IGxlbiApOw0KIA0KIHByaXZhdGU6
DQogICAgIEtXUVRleHREZWNvZGVyKGNvbnN0IEtXUVRleHREZWNvZGVyICYpOw0KQEAgLTU5LDYg
KzYzLDcgQEAgcHJpdmF0ZToNCiAgICAgUVN0cmluZyBjb252ZXJ0TGF0aW4xKGNvbnN0IHVuc2ln
bmVkIGNoYXIgKmNocywgaW50IGxlbik7DQogICAgIHN0YXRpYyBDQXJyYXlGaXg8Q0NudkNoYXJh
Y3RlclNldENvbnZlcnRlcjo6U0NoYXJhY3RlclNldD4qIGlBcnJheU9mQ2hhcmFjdGVyU2V0c0F2
YWlsYWJsZTsNCiAgICAgVFVpbnQgaUVuY29kaW5nOw0KKyAgICBIQnVmQzggKiBpUmVtYWluZGVy
QnVmOw0KIH07DQogDQogQ0FycmF5Rml4PENDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXI6OlNDaGFy
YWN0ZXJTZXQ+KiBLV1FUZXh0RGVjb2Rlcjo6aUFycmF5T2ZDaGFyYWN0ZXJTZXRzQXZhaWxhYmxl
ID0gTlVMTDsNCkBAIC04OCw2ICs5Myw5IEBAIHN0YXRpYyBib29sIGVuY29kaW5nTmFtZXNFcXVh
bChjb25zdCB2b2kNCiAgICAgfQ0KIH0NCiANCitRVGV4dENvZGVjOjp+UVRleHRDb2RlYygpDQor
eyBkZWxldGUgaVFUZXh0RGVjb2RlcjsgfQ0KKw0KIGJvb2wgdmFsaWRhdGVVdGY4KGNvbnN0IGNo
YXIqIGNocywgaW50IGxlbiwgaW50JiB2YWxpZE11bHRpQnl0ZUNoYXJzKQ0KIHsNCiAgICAgLy8g
dGVzdCBpZiB0aGlzIHJlYWxseSBpcyB1dGY4DQpAQCAtMjIwLDcgKzIyOCw3IEBAIGNvbnN0IGNo
YXIgKlFUZXh0Q29kZWM6Om5hbWUoKSBjb25zdA0KIA0KIFFUZXh0RGVjb2RlciAqUVRleHRDb2Rl
Yzo6bWFrZURlY29kZXIoKSBjb25zdA0KIHsNCi0gICAgcmV0dXJuIG5ldyBLV1FUZXh0RGVjb2Rl
ciggaUVuY29kaW5nICk7DQorICAgIHJldHVybiBpUVRleHREZWNvZGVyPyBpUVRleHREZWNvZGVy
IDogbmV3IEtXUVRleHREZWNvZGVyKCBpRW5jb2RpbmcgKTsNCiB9DQogDQogUUNTdHJpbmcgUVRl
eHRDb2RlYzo6ZnJvbVVuaWNvZGUoY29uc3QgUVN0cmluZyAmcWNzKSBjb25zdA0KQEAgLTIzMCw3
ICsyMzgsNyBAQCBRQ1N0cmluZyBRVGV4dENvZGVjOjpmcm9tVW5pY29kZShjb25zdCBRDQogDQog
UVN0cmluZyBRVGV4dENvZGVjOjp0b1VuaWNvZGUoY29uc3QgY2hhciAqY2hzLCBpbnQgbGVuKSBj
b25zdA0KIHsNCi0gICAgcmV0dXJuIEtXUVRleHREZWNvZGVyKCBpRW5jb2RpbmcgKS50b1VuaWNv
ZGUoY2hzLCBsZW4sIHRydWUpOw0KKyAgICByZXR1cm4gbWFrZURlY29kZXIoKS0+dG9Vbmljb2Rl
KGNocywgbGVuLCB0cnVlKTsNCiB9DQogDQogUVN0cmluZyBRVGV4dENvZGVjOjp0b1VuaWNvZGUo
Y29uc3QgUUJ5dGVBcnJheSAmcWJhLCBpbnQgbGVuKSBjb25zdA0KQEAgLTMwNyw2OSArMzE1LDg0
IEBAIGJvb2wgS1dRVGV4dERlY29kZXI6OklzQ29udmVyc2lvblN1cHBvcnQNCiAgICAgcmV0dXJu
IGZhbHNlOw0KICAgICB9DQogDQotICAgIC8qKg0KKyAvKioNCiAgKiBDb252ZXJ0cyB0aGUgdGV4
dCBidWZmZXIgZnJvbSBvbmUgZW5jb2RpbmcgdG8gVW5pY29kZQ0KICAqIElmIHRoZSBpbmRpY2F0
ZWQgY2hhcnNldCBpcyBub3Qgc3VwcG9ydGVkLCBvciBpdHMgY29udmVydGVyIGlzIG5vdCBhdmFp
bGFibGUsDQogICogZG8gdGhlIGNvbnZlcnRpb24gZnJvbSBkZWZhdWx0IGVuY29kaW5nIHRvIFVu
aWNvZGUuDQogICovDQogUVN0cmluZyBLV1FUZXh0RGVjb2Rlcjo6dG9Vbmljb2RlKGNvbnN0IGNo
YXIgKmNocywgaW50IGxlbiwgYm9vbCBmbHVzaCkNCiAgICAgew0KLSAgICAvLyBtYWtlIHN1cmUg
dGhlIGNvbnZlcnRlciBpcyBhdmFpbGFibGUNCiANCi0gIGludCBib21MZW5ndGggPSAwOw0KLSAg
VFVpbnQgZW5jb2RpbmcgPSBpRW5jb2Rpbmc7DQotICBDQ252Q2hhcmFjdGVyU2V0Q29udmVydGVy
OjpURW5kaWFubmVzcyBlbmRpYW5uZXNzID0gQ0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6RUxp
dHRsZUVuZGlhbjsNCisgICAgYm9vbCBsYXN0Q2h1bmsgPSAobGVuID09IDApPyB0cnVlIDogZmFs
c2U7DQorICAgIGludCBib21MZW5ndGggPSAwOw0KKyAgICBIQnVmQzggKiBpbkhCdWYgPSBOVUxM
OyAgICAgLy8gYnVmZmVyIHRvIGhvbGQgY29tYmluYXRpb24gb2YgcmVtYWluZGVyIGFuZCBuZXh0
IGNodW5rDQorICAgIENDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXI6OlRFbmRpYW5uZXNzIGVuZGlh
bm5lc3MgPSBDQ252Q2hhcmFjdGVyU2V0Q29udmVydGVyOjpFTGl0dGxlRW5kaWFuOw0KIA0KLSAg
aWYgKGxlbiA+IDIgJiYgY2hzWzBdID09IEZGICYmIGNoc1sxXSA9PSBGRSkgew0KLSAgICAgICAg
ZW5jb2RpbmcgPSBLQ2hhcmFjdGVyU2V0SWRlbnRpZmllclVuaWNvZGVMaXR0bGU7DQorICAgIGlm
IChsZW4gPiAyICYmIGNoc1swXSA9PSBGRiAmJiBjaHNbMV0gPT0gRkUpDQorICAgICAgICB7DQor
ICAgICAgICBpRW5jb2RpbmcgPSBLQ2hhcmFjdGVyU2V0SWRlbnRpZmllclVuaWNvZGVMaXR0bGU7
DQogICAgICAgICBib21MZW5ndGggPSAyOw0KLSAgICB9IGVsc2UgaWYgKGxlbiA+IDIgJiYgY2hz
WzBdID09IEZFICYmIGNoc1sxXSA9PSBGRikgew0KLSAgICAgICAgZW5jb2RpbmcgPSBLQ2hhcmFj
dGVyU2V0SWRlbnRpZmllclVuaWNvZGVCaWc7DQotICAgIGVuZGlhbm5lc3MgPSBDQ252Q2hhcmFj
dGVyU2V0Q29udmVydGVyOjpFQmlnRW5kaWFuOw0KKyAgICAgICAgfQ0KKyAgICBlbHNlIGlmIChs
ZW4gPiAyICYmIGNoc1swXSA9PSBGRSAmJiBjaHNbMV0gPT0gRkYpDQorICAgICAgICB7DQorICAg
ICAgICBpRW5jb2RpbmcgPSBLQ2hhcmFjdGVyU2V0SWRlbnRpZmllclVuaWNvZGVCaWc7DQorICAg
ICAgICBlbmRpYW5uZXNzID0gQ0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6RUJpZ0VuZGlhbjsN
CiAgICAgICAgIGJvbUxlbmd0aCA9IDI7DQotICAgIH0gZWxzZSBpZiAobGVuID4gMyAmJiBjaHNb
MF0gPT0gRUYgJiYgY2hzWzFdID09IEJCICYmIGNoc1syXSA9PSBCRikgew0KLSAgICAgICAgZW5j
b2RpbmcgPSBLQ2hhcmFjdGVyU2V0SWRlbnRpZmllclV0Zjg7DQorICAgICAgICB9DQorICAgIGVs
c2UgaWYgKGxlbiA+IDMgJiYgY2hzWzBdID09IEVGICYmIGNoc1sxXSA9PSBCQiAmJiBjaHNbMl0g
PT0gQkYpDQorICAgICAgICB7DQorICAgICAgICBpRW5jb2RpbmcgPSBLQ2hhcmFjdGVyU2V0SWRl
bnRpZmllclV0Zjg7DQogICAgICAgICBib21MZW5ndGggPSAzOw0KLSAgICB9DQorICAgICAgICB9
DQogDQogICAgIGlmICghSXNDb252ZXJzaW9uU3VwcG9ydGVkTCgpKQ0KLSAgICB7DQotICAgIGlF
bmNvZGluZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVySXNvODg1OTE7DQotICAgIH0NCisgICAg
ICAgIHsNCisgICAgICAgIGlFbmNvZGluZyA9IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVySXNvODg1
OTE7DQorICAgICAgICB9DQogDQogICAgIC8vIGNoZWNrIGlmIGl0IHJlYWxseSBsb29rcyBsaWtl
IHZhbGlkIHV0Zi04DQotICAgIGlmIChpRW5jb2RpbmcgPT0gS0NoYXJhY3RlclNldElkZW50aWZp
ZXJVdGY4ICYmIGJvbUxlbmd0aD09MCkgew0KKyAgICBpZiAoaUVuY29kaW5nID09IEtDaGFyYWN0
ZXJTZXRJZGVudGlmaWVyVXRmOCAmJiBib21MZW5ndGg9PTApDQorICAgICAgICB7DQogICAgICAg
ICBpbnQgdmFsaWRNdWx0aWJ5dGVDaGFyczsNCiAgICAgICAgIGJvb2wgdmFsaWRVdGY4ID0gdmFs
aWRhdGVVdGY4KGNocywgTWluKGxlbiwzMioxMDI0KSx2YWxpZE11bHRpYnl0ZUNoYXJzKTsNCiAg
ICAgICAgIC8vIGlmIHRoZXJlIGFyZSB2YWxpZCBtdWx0aWJ5dGUgY2hhcnMgaW4gdGhlIHN0cmVh
bSwgYmV0dGVyIHN0aWNrIHdpdGggdXRmLTgNCiAgICAgICAgIGlmICghdmFsaWRVdGY4ICYmIHZh
bGlkTXVsdGlieXRlQ2hhcnM8MykNCiAgICAgICAgICAgICBpRW5jb2RpbmcgPSBLQ2hhcmFjdGVy
U2V0SWRlbnRpZmllcklzbzg4NTkxOw0KLSAgICB9DQorICAgICAgICB9DQogDQogICAgIGlmIChp
RW5jb2RpbmcgPT0gS0NoYXJhY3RlclNldElkZW50aWZpZXJJc284ODU5MSkNCisgICAgICAgIHsN
CiAgICAgICAgIHJldHVybiBjb252ZXJ0TGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5z
aWduZWQgY2hhciAqPihjaHMpLCBsZW4pOw0KLSAgZWxzZSBpZihpRW5jb2RpbmcgPT0gS0NoYXJh
Y3RlclNldElkZW50aWZpZXJXaW5kb3cxMjUwIHx8DQotICAgICAgaUVuY29kaW5nID09IEtDaGFy
YWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1MSB8fA0KLSAgICAgIGlFbmNvZGluZyA9PSBLQ2hh
cmFjdGVyU2V0SWRlbnRpZmllcldpbmRvdzEyNTMgfHwNCi0gICAgICBpRW5jb2RpbmcgPT0gS0No
YXJhY3RlclNldElkZW50aWZpZXJXaW5kb3cxMjU2IHx8DQotICAgICAgaUVuY29kaW5nID09IEtD
aGFyYWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1Nw0KLSAgICAgICkgLy8gd29yayBhcm91bmQg
Zm9yIFN5bWJpYW4gY29udmVydGVyIGhhbmdpbmcgd2hlbiBjb252ZXJ0aW5nIHdpbmRvd3MtMTI1
eCBjaGFyc2V0DQotICAgIHsNCi0gICAgcmV0dXJuIHdpbmRvd3MxMjV4VG9Vbmljb2RlKCBjaHMs
IGxlbiApOw0KLSAgICB9DQorICAgICAgICB9DQorICAgIGVsc2UgaWYoaUVuY29kaW5nID09IEtD
aGFyYWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1MCB8fA0KKyAgICAgICAgaUVuY29kaW5nID09
IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1MSB8fA0KKyAgICAgICAgaUVuY29kaW5n
ID09IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1MyB8fA0KKyAgICAgICAgaUVuY29k
aW5nID09IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1NiB8fA0KKyAgICAgICAgaUVu
Y29kaW5nID09IEtDaGFyYWN0ZXJTZXRJZGVudGlmaWVyV2luZG93MTI1Nw0KKyAgICAgICAgKSAv
LyB3b3JrIGFyb3VuZCBmb3IgU3ltYmlhbiBjb252ZXJ0ZXIgaGFuZ2luZyB3aGVuIGNvbnZlcnRp
bmcgd2luZG93cy0xMjV4IGNoYXJzZXQNCisgICAgICAgIHsNCisgICAgICAgIHJldHVybiB3aW5k
b3dzMTI1eFRvVW5pY29kZSggY2hzLCBsZW4gKTsNCisgICAgICAgIH0NCisNCisjaWYgX0RFQlVH
MQ0KKyAgICAvLyBwcmludCBvdXQgdGhlIGluY29taW5nIGJ1ZmZlciB0byBhIGZpbGUgZm9yIGRl
YnVnZ2luZyBwdXJwb3NlDQorICAgIGlmIChsZW4pDQorICAgICAgICBSRmlsZUxvZ2dlcjo6SGV4
RHVtcCggX0woIkJyb3dzZXIiKSwgX0woInRleHRfY2h1bmtzLnR4dCIpLCBFRmlsZUxvZ2dpbmdN
b2RlQXBwZW5kLA0KKyAgICAgICAgTlVMTCwgTlVMTCwgKGNvbnN0IFRVaW50OCopY2hzLCBsZW4g
KTsNCisjZW5kaWYgLy8gX0RFQlVHMQ0KIA0KICAgICBDQ252Q2hhcmFjdGVyU2V0Q29udmVydGVy
KiBjaGFyQ29udiA9IEtXUUdsb2JhbFNlcnZpY2VzOjpJbnN0YW5jZUwoKS0+Q2hhckNvbnYoKTsN
CiAgICAgUkZzJiBmaWxlU2Vzc2lvbiA9IEtXUUdsb2JhbFNlcnZpY2VzOjpJbnN0YW5jZUwoKS0+
RmlsZVNlc3Npb24oKTsNCiANCiAgICAgLy8gY2hlY2sgaWYgdGhlIHRhcmdldCBjaGFyc2V0IGlz
IHN1cHBvcnRlZA0KLSAgICBjaGFyQ29udi0+UHJlcGFyZVRvQ29udmVydFRvT3JGcm9tTCggZW5j
b2RpbmcsICppQXJyYXlPZkNoYXJhY3RlclNldHNBdmFpbGFibGUsIGZpbGVTZXNzaW9uICk7DQor
ICAgIGNoYXJDb252LT5QcmVwYXJlVG9Db252ZXJ0VG9PckZyb21MKCBpRW5jb2RpbmcsICppQXJy
YXlPZkNoYXJhY3RlclNldHNBdmFpbGFibGUsIGZpbGVTZXNzaW9uICk7DQogICAgIGNoYXJDb252
LT5TZXREZWZhdWx0RW5kaWFubmVzc09mRm9yZWlnbkNoYXJhY3RlcnMoIGVuZGlhbm5lc3MgKTsN
CiAgICAgVEJ1ZjE2PDMyPiB0bXBCdWY7DQogICAgIFRCdWYxNjwzMj4gb3V0QnVmOw0KIA0KLSAg
bGVuID0gbGVuIC0gYm9tTGVuZ3RoIDsNCisgICAgbGVuID0gbGVuIC0gYm9tTGVuZ3RoIDsNCiAg
ICAgVFB0ckM4ICBpbkJ1ZiggKGNvbnN0IFRVaW50OCopY2hzICsgYm9tTGVuZ3RoLCBsZW4gKTsN
Ci0gICAgVEludCBzdGF0ZT1DQ252Q2hhcmFjdGVyU2V0Q29udmVydGVyOjpLU3RhdGVEZWZhdWx0
Ow0KKyAgICBUSW50IHN0YXRlID0gQ0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6S1N0YXRlRGVm
YXVsdDsNCiANCiAgICAgLy8gZ3Vlc3MgdGhlIG91dHB1dCBzaXplDQogICAgIFFTdHJpbmcgcmVz
dWx0Ow0KQEAgLTM4MCw1OCArNDAzLDY5IEBAIFFTdHJpbmcgS1dRVGV4dERlY29kZXI6OnRvVW5p
Y29kZShjb25zdCANCiAgICAgLy8gdHJ5IHRvIHJlc2VydmUgdHdpY2UgdGhlIGxlbiBvZiBieXRl
cyBpbiBtZW1vcnkgdG8gYXZvaWQgZnJlcXVlbnQgcmVhbGxvY2F0aW9uDQogICAgIC8vIHJlc2Vy
dmUgZnVuY3Rpb24gcmVzZXJ2ZXMgMypsZW4gb2YgYnl0ZXMgaW4gbW9tZXJ5LCB0byBhY2hpZXZl
IDIqbGVuLCB0aW1lcyBmYWN0b3Igb2YgMi8zDQogICAgIHJlc3VsdC5yZXNlcnZlKCBsZW4qMi8z
ICsgMSApOw0KKw0KKyAgICBpZiAoaVJlbWFpbmRlckJ1ZiAmJiBpUmVtYWluZGVyQnVmLT5MZW5n
dGgoKSkNCisgICAgICAgIHsNCisgICAgICAgIGluSEJ1ZiA9IEhCdWZDODo6TmV3TChpUmVtYWlu
ZGVyQnVmLT5MZW5ndGgoKSArIGxlbik7DQorICAgICAgICBpbkhCdWYtPkRlcygpLkFwcGVuZChp
UmVtYWluZGVyQnVmLT5EZXMoKSk7DQorICAgICAgICBpbkhCdWYtPkRlcygpLkFwcGVuZCgoY29u
c3QgdW5zaWduZWQgY2hhciAqKWNocywgbGVuKTsNCisgICAgICAgIGRlbGV0ZSBpUmVtYWluZGVy
QnVmOw0KKyAgICAgICAgaVJlbWFpbmRlckJ1ZiA9IE5VTEw7DQorICAgICAgICBpbkJ1Zi5TZXQo
aW5IQnVmLT5EZXMoKSk7DQorICAgICAgICB9DQorDQogICAgIGZvcig7OykNCiAgICAgICAgIHsN
CiAgICAgICAgIFRJbnQgcmVwID0gMDsgLy8gbnVtYmVyIG9mIHVuY29udmVydGlibGUgY2hhcmFj
dGVycw0KICAgICAgICAgVEludCBySW5keCA9IDA7IC8vIGluZGV4IG9mIGZpcnN0IHVuY29udmVy
dGlibGUgY2hhcmFjdGVyDQogICAgICAgICBUSW50IHJldCA9IGNoYXJDb252LT5Db252ZXJ0VG9V
bmljb2RlKCB0bXBCdWYsIGluQnVmLCBzdGF0ZSwgcmVwLCBySW5keCApOw0KICAgICAgICAgaWYg
KHJldD09Q0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6RUVycm9ySWxsRm9ybWVkSW5wdXQgKQ0K
KyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAvLyBpbiBjYXNlIHRoZSBlcnJvciBpcyBjYXVz
ZWQgYnkgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgYXQgZW5kIG9mIGNodW5rDQorICAgICAgICAgICAg
aWYgKGluQnVmLkxlbmd0aCgpIDwgMyAmJiAhbGFzdENodW5rKQ0KKyAgICAgICAgICAgICAgICB7
DQorICAgICAgICAgICAgICAgIGlSZW1haW5kZXJCdWYgPSBIQnVmQzg6Ok5ld0woaW5CdWYuTGVu
Z3RoKCkpOw0KKyAgICAgICAgICAgICAgICBpUmVtYWluZGVyQnVmLT5EZXMoKS5BcHBlbmQoaW5C
dWYpOw0KKyAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAg
ICAgfQ0KIA0KICAgICAgICAgLy8gY29weSByZXN1bHQgdG8gb3V0IGJ1ZmZlcg0KKyAgICAgICAg
VFB0ciBvdXRQdHIoIDAsIDAgKTsNCiANCi0gICAgaWYocmV0ID09IC0xICkNCi0gICAgICB7DQot
ICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIHNpZmZpY2llbnQgY2hhcmFjdGVyIHRvIGJlIGNvbnZl
cnRlZCB0byB1bmljb2RlLA0KLSAgICAgIC8vIGp1c3QgYXBwZW5kIHRoZSByZXN0IHRvIHRoZSBj
aGFyYWN0ZXJzIHRvIHRoZSByZXN1bHQgc3RyaW5nLg0KLSAgICAgIHJlc3VsdC5hcHBlbmQoIChj
aGFyICopaW5CdWYuUHRyKCksIGluQnVmLkxlbmd0aCgpICk7DQotICAgICAgfQ0KLSAgICBlbHNl
DQotICAgICAgew0KLSAgICAgIC8vICMjIyBGSVhNRSBOT0tJQTogaXMgaXQgY29ycmVjdCB0byBy
ZW1vdmUgdGhlIHJlcGxhY2VtZW50IDB4RkZGRCBjaGFycyBoZXJlPw0KLSAgICAgIC8vIE1heWJl
IHdlIG5lZWQgdG8gcmVwbGFjZSBpdCB3aXRoIHNwYWNlIGNoYXJhY3Rlcg0KLQ0KLSAgICAgIFRQ
dHIgb3V0UHRyKCAwLCAwICk7DQotDQotICAgICAgLy8gdGhlcmUgaXMgc29tZSBpbGxlZ2FsL3Vu
Y29udmVydGlibGUgY2hhcnMNCi0gICAgICAvLyB0cnkgdG8gY3JlYXRlIGEgYnVmZmVyIHdpdGgg
YWxsIDB4RkZGRCBjaGFycyB0cmltbWVkDQotICAgICAgaWYgKHJlcCAhPSAwICYmIHJJbmR4IDwg
dG1wQnVmLkxlbmd0aCgpICkNCi0gICAgICAgIHsNCi0gICAgICAgIFRJbnQgaT1ySW5keDsNCi0g
ICAgICAgIC8vIGZpcnN0IGNvcHkgdGhlIHBhcnQgb2YgYnVmZmVyIGJlZm9yZSB0aGUgZmlyc3Qg
MHhGRkZEIGNoYXINCi0gICAgICAgIG91dEJ1Zi5BcHBlbmQodG1wQnVmLkxlZnQoaSsrKSk7DQot
ICAgICAgICByZXAtLTsNCi0gICAgICAgIC8vIHNlYXJjaCBmb3IgbW9yZSBvY2N1cmFuY2Ugb2Yg
MHhGRkZEIGNoYXJzDQotICAgICAgICAvLyBhbmQgYXBwZW5kIHZhbGlkIGNoYXJzIGJlZm9yZSB0
aGUgbGFzdCAweEZGRkQgY2hhcg0KLSAgICAgICAgLy8gaWYgdGhlcmUgaXMgb25seSBvbmUgMHhG
RkZEIGNoYXIsIHdvdWxkbid0IGVudGVyIHRoZSBsb29wDQotICAgICAgICBmb3IoIDsgcmVwICYm
IGk8dG1wQnVmLkxlbmd0aCgpOyBpKysgKQ0KLSAgICAgICAgICB7DQotICAgICAgICAgIGlmKCB0
bXBCdWZbaV0gIT0gMHhGRkZEICkNCi0gICAgICAgICAgICBvdXRCdWYuQXBwZW5kKCB0bXBCdWZb
aV0gKTsNCi0gICAgICAgICAgZWxzZQ0KLSAgICAgICAgICAgIHJlcC0tOw0KLSAgICAgICAgICB9
DQotICAgICAgICAvLyBhcHBlbmQgdGhlIGNoYXJzIGFmdGVyIGxhc3QgMHhGRkZEIGNoYXINCi0g
ICAgICAgIG91dEJ1Zi5BcHBlbmQodG1wQnVmLlJpZ2h0KHRtcEJ1Zi5MZW5ndGgoKSAtIGkpKTsN
Ci0gICAgICAgIG91dFB0ci5TZXQoIChUVWludDE2KilvdXRCdWYuUHRyKCksIG91dEJ1Zi5MZW5n
dGgoKSwgb3V0QnVmLkxlbmd0aCgpICk7DQotICAgICAgICBvdXRCdWYuWmVybygpOw0KKyAgICAg
ICAgLy8gdGhlcmUgaXMgc29tZSBpbGxlZ2FsL3VuY29udmVydGlibGUgY2hhcnMNCisgICAgICAg
IC8vIHRyeSB0byBjcmVhdGUgYSBidWZmZXIgd2l0aCBhbGwgMHhGRkZEIGNoYXJzIHRyaW1tZWQN
CisgICAgICAgIGlmIChyZXAgIT0gMCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaWYg
KGluQnVmLkxlbmd0aCgpIDw9IDY0ICYmICFsYXN0Q2h1bmspDQorICAgICAgICAgICAgICAgIHsN
CisgICAgICAgICAgICAgICAgaVJlbWFpbmRlckJ1ZiA9IEhCdWZDODo6TmV3TChpbkJ1Zi5MZW5n
dGgoKSk7DQorICAgICAgICAgICAgICAgIGlSZW1haW5kZXJCdWYtPkRlcygpLkFwcGVuZChpbkJ1
Zik7DQorICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgICAgICB9DQogDQotICAg
ICAgICB9DQotICAgICAgZWxzZSBvdXRQdHIuU2V0KCAoVFVpbnQxNiopdG1wQnVmLlB0cigpLCB0
bXBCdWYuTGVuZ3RoKCksIHRtcEJ1Zi5MZW5ndGgoKSAgKTsNCisgICAgICAgICAgICBUSW50IGk9
IChySW5keCAtMSApLzI7DQorICAgICAgICAgICAgLy8gZmlyc3QgY29weSB0aGUgcGFydCBvZiBi
dWZmZXIgYmVmb3JlIHRoZSBmaXJzdCAweEZGRkQgY2hhcg0KKyAgICAgICAgICAgIG91dEJ1Zi5B
cHBlbmQodG1wQnVmLkxlZnQoaSkpOw0KKyAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgbW9yZSBv
Y2N1cmFuY2Ugb2YgMHhGRkZEIGNoYXJzDQorICAgICAgICAgICAgLy8gYW5kIGFwcGVuZCB2YWxp
ZCBjaGFycyBiZWZvcmUgdGhlIGxhc3QgMHhGRkZEIGNoYXINCisgICAgICAgICAgICAvLyBpZiB0
aGVyZSBpcyBvbmx5IG9uZSAweEZGRkQgY2hhciwgd291bGRuJ3QgZW50ZXIgdGhlIGxvb3ANCisg
ICAgICAgICAgICBmb3IoIDsgcmVwICYmIGk8dG1wQnVmLkxlbmd0aCgpOyBpKysgKQ0KKyAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGlmKCB0bXBCdWZbaV0gIT0gMHhGRkZEICkN
CisgICAgICAgICAgICAgICAgICAgIG91dEJ1Zi5BcHBlbmQoIHRtcEJ1ZltpXSApOw0KKyAgICAg
ICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgICAgICByZXAtLTsNCisgICAgICAgICAg
ICAgICAgfQ0KKyAgICAgICAgICAgIC8vIGFwcGVuZCB0aGUgY2hhcnMgYWZ0ZXIgbGFzdCAweEZG
RkQgY2hhcg0KKyAgICAgICAgICAgIG91dEJ1Zi5BcHBlbmQodG1wQnVmLlJpZ2h0KHRtcEJ1Zi5M
ZW5ndGgoKSAtIGkpKTsNCisgICAgICAgICAgICBvdXRQdHIuU2V0KCAoVFVpbnQxNiopb3V0QnVm
LlB0cigpLCBvdXRCdWYuTGVuZ3RoKCksIG91dEJ1Zi5MZW5ndGgoKSApOw0KKyAgICAgICAgICAg
IG91dEJ1Zi5aZXJvKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgZWxzZSBvdXRQdHIuU2V0
KCAoVFVpbnQxNiopdG1wQnVmLlB0cigpLCB0bXBCdWYuTGVuZ3RoKCksIHRtcEJ1Zi5MZW5ndGgo
KSApOw0KIA0KICAgICAgICAgLy8gYXBwZW5kIHRoZSBidWZmZXJzIHRvIGZpbmFsIHJlc3VsdCwg
d2lsbCByZWluY3JlYXNlIHRoZSBzaXplIGluIG5lZWRlZA0KICAgICAgICAgcmVzdWx0LmFwcGVu
ZCggKGNvbnN0IFFDaGFyKikob3V0UHRyLlB0cigpKSwgb3V0UHRyLkxlbmd0aCgpICk7DQotICAg
ICAgfQ0KIA0KICAgICAgICAgaWYoIHJldCA9PSAwICB8fCByZXQgPT0gLTEgKSBicmVhazsNCiAN
CkBAIC00MzksNiArNDczLDggQEAgUVN0cmluZyBLV1FUZXh0RGVjb2Rlcjo6dG9Vbmljb2RlKGNv
bnN0IA0KICAgICAgICAgfQ0KIA0KICAgICBPT01fUE9TVF9DSEVDS19GQUlMRUQoIHJldHVybiBy
ZXN1bHQ7ICkNCisNCisgICAgZGVsZXRlIGluSEJ1ZjsNCiAgICAgcmV0dXJuIHJlc3VsdDsNCiAg
ICAgfQ0KIA0KQEAgLTUyOSw3ICs1NjUsNyBAQCBRU3RyaW5nIEtXUVRleHREZWNvZGVyOjp3aW5k
b3dzMTI1eFRvVW5pDQogDQogdm9pZCBRVGV4dENvZGVjOjpQcmVwYXJlRm9yRXhpdCgpDQogew0K
LSAgICBDQXJyYXlGaXg8Q0NudkNoYXJhY3RlclNldENvbnZlcnRlcjo6U0NoYXJhY3RlclNldD4q
IGFyciANCisgICAgQ0FycmF5Rml4PENDbnZDaGFyYWN0ZXJTZXRDb252ZXJ0ZXI6OlNDaGFyYWN0
ZXJTZXQ+KiBhcnINCiAgICAgICAgICAgICAgICAgPSBLV1FUZXh0RGVjb2Rlcjo6aUFycmF5T2ZD
aGFyYWN0ZXJTZXRzQXZhaWxhYmxlOw0KIA0KICAgICBpZiggYXJyICkNCkluZGV4OiBXZWJDb3Jl
L2t3cS9LV1FUZXh0Q29kZWMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUva3dxL0tXUVRleHRD
b2RlYy5oCShyZXZpc2lvbiAxNzUxOSkNCisrKyBXZWJDb3JlL2t3cS9LV1FUZXh0Q29kZWMuaAko
d29ya2luZyBjb3B5KQ0KQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOg0KICAgICBzdGF0aWMgUVRl
eHRDb2RlYyAqY29kZWNGb3JMb2NhbGUoKTsNCiANCiAgICAgUVRleHRDb2RlYyggVFVpbnQgYUVu
YywgS1dRRW5jb2RpbmdGbGFncyBmID0gTm9FbmNvZGluZ0ZsYWdzICkgOiBpRW5jb2RpbmcoIGFF
bmMgKSwgX2ZsYWdzKGYpICAgICAgICAgIHt9DQorICAgIH5RVGV4dENvZGVjKCk7DQogICAgIGNv
bnN0IGNoYXIgKm5hbWUoKSBjb25zdDsNCiAgICAgYm9vbCB1c2VzVmlzdWFsT3JkZXJpbmcoKSBj
b25zdCB7IHJldHVybiBfZmxhZ3MgJiBWaXN1YWxPcmRlcmluZzsgfQ0KICAgICBib29sIGlzSmFw
YW5lc2UoKSBjb25zdCB7IHJldHVybiBfZmxhZ3MgJiBJc0phcGFuZXNlOyB9DQpAQCAtNjEsOCAr
NjIsOSBAQCBwdWJsaWM6DQogICAgIHN0YXRpYyB2b2lkIFByZXBhcmVGb3JFeGl0KCk7DQogDQog
cHJpdmF0ZToNCi0JVFVpbnQJCWlFbmNvZGluZzsNCisgICAgVFVpbnQgICAgICAgaUVuY29kaW5n
Ow0KICAgICBLV1FFbmNvZGluZ0ZsYWdzIF9mbGFnczsNCisgICAgUVRleHREZWNvZGVyICogaVFU
ZXh0RGVjb2RlcjsNCiB9Ow0KIA0KIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUVRleHRD
b2RlYyAmYSwgY29uc3QgUVRleHRDb2RlYyAmYikgeyByZXR1cm4gIShhID09IGIpOyB9DQpAQCAt
NzEsNyArNzMsNyBAQCBjbGFzcyBRVGV4dERlY29kZXINCiBPT01fTU9ESUZJRUQNCiB7DQogcHVi
bGljOg0KLSAgICB2aXJ0dWFsIH5RVGV4dERlY29kZXIoKQkJCQkJCQkJCQkJe30NCisgICAgdmly
dHVhbCB+UVRleHREZWNvZGVyKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHt9DQogICAgIHZpcnR1YWwgUVN0cmluZyB0b1VuaWNvZGUoY29uc3QgY2hhciAqLCBpbnQs
IGJvb2wgZmx1c2ggPSBmYWxzZSkgPSAwOw0KIH07DQogDQo=
</data>
<flag name="review"
          id="3937"
          type_id="1"
          status="+"
          setter="yongjun.zhang"
    />
          </attachment>
      

    </bug>

</bugzilla>