<?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>4862</bug_id>
          
          <creation_ts>2005-09-06 00:01:21 -0700</creation_ts>
          <short_desc>Incorrect layout of bidi overrides</short_desc>
          <delta_ts>2005-09-24 10:52:11 -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>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</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>
          
          <blocked>4898</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>18791</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2005-09-06 00:01:21 -0700</bug_when>
    <thetext>Summary: directional overrides, both in the form of unicode-bidi:bidi-override and in the form of Unicode 
directional overrides (LRO and RLO) are not handled properly, resulting in incorrect layout order.

To reproduce: open the testcase in Safari

Expected: all lines to be the same as the reference line. Firefox renders as expected.

Actual: in the CSS lines, &quot;fed&quot; and &quot;ihg&quot; appear instead of &quot;def&quot; and &quot;ghi&quot;, and in the Unicode line, &quot;fed&quot; 
appears instead of &quot;def&quot;. Similar problems on the Hebrew side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18792</commentid>
    <comment_count>1</comment_count>
      <attachid>3778</attachid>
    <who name="">mitz</who>
    <bug_when>2005-09-06 00:02:05 -0700</bug_when>
    <thetext>Created attachment 3778
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18805</commentid>
    <comment_count>2</comment_count>
      <attachid>3784</attachid>
    <who name="">mitz</who>
    <bug_when>2005-09-06 06:41:05 -0700</bug_when>
    <thetext>Created attachment 3784
testcase

Extended tescase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18807</commentid>
    <comment_count>3</comment_count>
      <attachid>3785</attachid>
    <who name="">mitz</who>
    <bug_when>2005-09-06 09:02:06 -0700</bug_when>
    <thetext>Created attachment 3785
patch for CG-rendered runs only

This patches the run-levels side of things, which resolves the issue for all
text that subsequently gets rendered by the CG codepath. (This makes the
testcase render as expected only if you apply the patch for bug 4844 along with
this patch).

The problem with ATSUI is that it applies its own bidi algorithm and there is
no API to disable it, so I think the best option is to do something similar to
what is already done with visually-ordered text, which is to embed the run in a
LRO/RLO - PDF pair. I think this will also require adding to RenderText objects
knowledge of their override state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18951</commentid>
    <comment_count>4</comment_count>
      <attachid>3792</attachid>
    <who name="">mitz</who>
    <bug_when>2005-09-06 23:29:16 -0700</bug_when>
    <thetext>Created attachment 3792
suggested patch

Went ahead and added bidi override state to BidiRun and InlineTextBox for the
sole purpose of letting WebTextRenderer know that it has to force ATSUI to
render in visual or reverse-visual order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18969</commentid>
    <comment_count>5</comment_count>
      <attachid>3792</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-09-07 02:32:57 -0700</bug_when>
    <thetext>Comment on attachment 3792
suggested patch

Looks good. r=me.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3778</attachid>
            <date>2005-09-06 00:02:05 -0700</date>
            <delta_ts>2005-09-06 06:41:05 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>bidi-override.html</filename>
            <type>text/html</type>
            <size>1566</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIgCiJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgo8aHRtbD4KPGhl
YWQ+CiAgICA8dGl0bGU+RGlyZWN0aW9uYWwgb3ZlcnJpZGVzPC90aXRsZT4KPC9oZWFkPgo8Ym9k
eT4KICAgIDx0YWJsZT4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1h
bGlnbjpyaWdodCI+UmVmZXJlbmNlOjwvdGQ+CiAgICAgICAgICAgIDx0ZD5hYmNkZWYmI3gwNWQw
OyYjeDA1ZDE7JiN4MDVkMjtnaGlqa2wKICAgICAgICAgICAgICAgICYjeDA1ZDY7JiN4MDVkNzsm
I3gwNWQ4OyYjeDA1ZDk7JiN4MDVkYjsmI3gwNWRjO2FiYyYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQy
OyYjeDA1ZDM7JiN4MDVkNDsmI3gwNWQ1OzwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+
CiAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+Q1NTLCBzaWJsaW5nczo8
L3RkPgogICAgICAgICAgICA8dGQ+YWJjPHNwYW4gc3R5bGU9ImRpcmVjdGlvbjpydGw7IHVuaWNv
ZGUtYmlkaTpiaWRpLW92ZXJyaWRlOyI+aWhnJiN4MDVkMDsmI3gwNWQxOyYjeDA1ZDI7ZmVkPC9z
cGFuPmprbAogICAgICAgICAgICAgICAgJiN4MDVkMDsmI3gwNWQxOyYjeDA1ZDI7PHNwYW4gc3R5
bGU9ImRpcmVjdGlvbjpsdHI7IHVuaWNvZGUtYmlkaTpiaWRpLW92ZXJyaWRlOyI+JiN4MDVkODsm
I3gwNWQ3OyYjeDA1ZDY7YWJjJiN4MDVkNTsmI3gwNWQ0OyYjeDA1ZDM7PC9zcGFuPiYjeDA1ZDk7
JiN4MDVkYjsmI3gwNWRjOzwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAg
ICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+Q1NTLCBjaGlsZHJlbjo8L3RkPgogICAg
ICAgICAgICA8dGQ+PHNwYW4+YWJjPHNwYW4gc3R5bGU9ImRpcmVjdGlvbjpydGw7IHVuaWNvZGUt
YmlkaTpiaWRpLW92ZXJyaWRlOyI+aWhnJiN4MDVkMDsmI3gwNWQxOyYjeDA1ZDI7ZmVkPC9zcGFu
PmprbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQy
OzxzcGFuIHN0eWxlPSJkaXJlY3Rpb246bHRyOyB1bmljb2RlLWJpZGk6YmlkaS1vdmVycmlkZTsi
PiYjeDA1ZDg7JiN4MDVkNzsmI3gwNWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gwNWQzOzwvc3Bh
bj4mI3gwNWQ5OyYjeDA1ZGI7JiN4MDVkYzs8L3NwYW4+PC90ZD4KICAgICAgICA8L3RyPgogICAg
ICAgIDx0cj4KICAgICAgICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij5Vbmljb2Rl
OjwvdGQ+CiAgICAgICAgICAgIDx0ZD5hYmMmI3gyMDJlO2loZyYjeDA1ZDA7JiN4MDVkMTsmI3gw
NWQyO2ZlZCYjeDIwMmM7amtsCiAgICAgICAgICAgICAgICAmI3gwNWQwOyYjeDA1ZDE7JiN4MDVk
MjsmI3gyMDJkOyYjeDA1ZDg7JiN4MDVkNzsmI3gwNWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gw
NWQzOyYjeDIwMmM7JiN4MDVkOTsmI3gwNWRiOyYjeDA1ZGM7PC90ZD4KICAgICAgICA8L3RyPgog
ICAgPC90YWJsZT4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3784</attachid>
            <date>2005-09-06 06:41:05 -0700</date>
            <delta_ts>2005-09-06 06:41:05 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>bidi-override_r2.html</filename>
            <type>text/html</type>
            <size>3609</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIgCiJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgo8aHRtbD4KPGhl
YWQ+CiAgICA8dGl0bGU+RGlyZWN0aW9uYWwgb3ZlcnJpZGVzPC90aXRsZT4KICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgdGFibGUge2JvcmRlci1zcGFjaW5nOjA7IGJvcmRlci1j
b2xsYXBzZTpjb2xsYXBzZTsgdGV4dC1hbGlnbjpjZW50ZXI7fQogICAgICAgIHRkIHtib3JkZXI6
IDFweCBzb2xpZCBncmVlbjsgcGFkZGluZzo0cHg7fQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9k
eT4KICAgIDxwPkFsbCByb3dzIHNob3VsZCBiZSBpZGVudGljYWwgdG8gdGhlIHJlZmVyZW5jZSBy
b3cuPC9wPgogICAgPHRhYmxlPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHN0eWxlPSJ0
ZXh0LWFsaWduOnJpZ2h0Ij5SZWZlcmVuY2U8L3RkPgogICAgICAgICAgICA8dGQ+YWJjZGVmJiN4
MDVkMDsmI3gwNWQxOyYjeDA1ZDI7Z2hpamtsCiAgICAgICAgICAgICAgICAmI3gwNWQ2OyYjeDA1
ZDc7JiN4MDVkODsmI3gwNWQ5OyYjeDA1ZGI7JiN4MDVkYzthYmMmI3gwNWQwOyYjeDA1ZDE7JiN4
MDVkMjsmI3gwNWQzOyYjeDA1ZDQ7JiN4MDVkNTs8L3RkPgogICAgICAgICAgICA8dGQgc3R5bGU9
ImRpcmVjdGlvbjpydGw7Ij5naGlqa2wmI3gwNWQwOyYjeDA1ZDE7JiN4MDVkMjthYmNkZWYKICAg
ICAgICAgICAgICAgICYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQyOyYjeDA1ZDM7JiN4MDVkNDsmI3gw
NWQ1O2FiYyYjeDA1ZDY7JiN4MDVkNzsmI3gwNWQ4OyYjeDA1ZDk7JiN4MDVkYjsmI3gwNWRjOzwv
dGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCBzdHlsZT0idGV4
dC1hbGlnbjpyaWdodCI+Q1NTLCBzaWJsaW5nczwvdGQ+CiAgICAgICAgICAgIDx0ZD5hYmM8c3Bh
biBzdHlsZT0iZGlyZWN0aW9uOnJ0bDsgdW5pY29kZS1iaWRpOmJpZGktb3ZlcnJpZGU7Ij5paGcm
I3gwNWQwOyYjeDA1ZDE7JiN4MDVkMjtmZWQ8L3NwYW4+amtsICYjeDA1ZDA7JiN4MDVkMTsmI3gw
NWQyOzxzcGFuIHN0eWxlPSJkaXJlY3Rpb246bHRyOyB1bmljb2RlLWJpZGk6YmlkaS1vdmVycmlk
ZTsiPiYjeDA1ZDg7JiN4MDVkNzsmI3gwNWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gwNWQzOzwv
c3Bhbj4mI3gwNWQ5OyYjeDA1ZGI7JiN4MDVkYzs8L3RkPgogICAgICAgICAgICA8dGQgc3R5bGU9
ImRpcmVjdGlvbjpydGw7Ij5hYmM8c3BhbiBzdHlsZT0iZGlyZWN0aW9uOnJ0bDsgdW5pY29kZS1i
aWRpOmJpZGktb3ZlcnJpZGU7Ij5paGcmI3gwNWQwOyYjeDA1ZDE7JiN4MDVkMjtmZWQ8L3NwYW4+
amtsICYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQyOzxzcGFuIHN0eWxlPSJkaXJlY3Rpb246bHRyOyB1
bmljb2RlLWJpZGk6YmlkaS1vdmVycmlkZTsiPiYjeDA1ZDg7JiN4MDVkNzsmI3gwNWQ2O2FiYyYj
eDA1ZDU7JiN4MDVkNDsmI3gwNWQzOzwvc3Bhbj4mI3gwNWQ5OyYjeDA1ZGI7JiN4MDVkYzs8L3Rk
PgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgc3R5bGU9InRleHQt
YWxpZ246cmlnaHQiPkNTUywgY2hpbGRyZW48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4+YWJj
PHNwYW4gc3R5bGU9ImRpcmVjdGlvbjpydGw7IHVuaWNvZGUtYmlkaTpiaWRpLW92ZXJyaWRlOyI+
aWhnJiN4MDVkMDsmI3gwNWQxOyYjeDA1ZDI7ZmVkPC9zcGFuPmprbDwvc3Bhbj4KICAgICAgICAg
ICAgICAgIDxzcGFuPiYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQyOzxzcGFuIHN0eWxlPSJkaXJlY3Rp
b246bHRyOyB1bmljb2RlLWJpZGk6YmlkaS1vdmVycmlkZTsiPiYjeDA1ZDg7JiN4MDVkNzsmI3gw
NWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gwNWQzOzwvc3Bhbj4mI3gwNWQ5OyYjeDA1ZGI7JiN4
MDVkYzs8L3NwYW4+PC90ZD4KICAgICAgICAgICAgPHRkIHN0eWxlPSJkaXJlY3Rpb246cnRsOyI+
PHNwYW4+YWJjPHNwYW4gc3R5bGU9ImRpcmVjdGlvbjpydGw7IHVuaWNvZGUtYmlkaTpiaWRpLW92
ZXJyaWRlOyI+aWhnJiN4MDVkMDsmI3gwNWQxOyYjeDA1ZDI7ZmVkPC9zcGFuPmprbDwvc3Bhbj4K
ICAgICAgICAgICAgICAgIDxzcGFuPiYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQyOzxzcGFuIHN0eWxl
PSJkaXJlY3Rpb246bHRyOyB1bmljb2RlLWJpZGk6YmlkaS1vdmVycmlkZTsiPiYjeDA1ZDg7JiN4
MDVkNzsmI3gwNWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gwNWQzOzwvc3Bhbj4mI3gwNWQ5OyYj
eDA1ZGI7JiN4MDVkYzs8L3NwYW4+PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAg
ICAgICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij5Vbmljb2RlPC90ZD4KICAgICAg
ICAgICAgPHRkPmFiYyYjeDIwMmU7aWhnJiN4MDVkMDsmI3gwNWQxOyYjeDA1ZDI7ZmVkJiN4MjAy
Yztqa2wKICAgICAgICAgICAgICAgICYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQyOyYjeDIwMmQ7JiN4
MDVkODsmI3gwNWQ3OyYjeDA1ZDY7YWJjJiN4MDVkNTsmI3gwNWQ0OyYjeDA1ZDM7JiN4MjAyYzsm
I3gwNWQ5OyYjeDA1ZGI7JiN4MDVkYzs8L3RkPgogICAgICAgICAgICA8dGQgc3R5bGU9ImRpcmVj
dGlvbjpydGw7Ij5hYmMmI3gyMDJlO2loZyYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQyO2ZlZCYjeDIw
MmM7amtsCiAgICAgICAgICAgICAgICAmI3gwNWQwOyYjeDA1ZDE7JiN4MDVkMjsmI3gyMDJkOyYj
eDA1ZDg7JiN4MDVkNzsmI3gwNWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gwNWQzOyYjeDIwMmM7
JiN4MDVkOTsmI3gwNWRiOyYjeDA1ZGM7PC90ZD4KICAgICAgICA8L3RyPgogICAgPC90YWJsZT4K
ICAgIDxwPlRoZSBDU1MgY29sdW1uIHNob3VsZCBiZSBpZGVudGljYWwgdG8gdGhlIHJlZmVyZW5j
ZSBjb2x1bW4uPC9wPgogICAgPHRhYmxlPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlJl
ZmVyZW5jZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5DU1M8L3RkPgogICAgICAgIDwvdHI+CiAgICAg
ICAgPHRyPgogICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8cD5hYmNkZWYmI3gwNWQw
OyYjeDA1ZDE7JiN4MDVkMjtnaGlqa2w8L3A+CiAgICAgICAgICAgICAgICA8cD4mI3gwNWQ2OyYj
eDA1ZDc7JiN4MDVkODsmI3gwNWQ5OyYjeDA1ZGI7JiN4MDVkYzthYmMmI3gwNWQwOyYjeDA1ZDE7
JiN4MDVkMjsmI3gwNWQzOyYjeDA1ZDQ7JiN4MDVkNTs8L3A+CiAgICAgICAgICAgIDwvdGQ+CiAg
ICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJkaXJlY3Rpb246cnRsOyB1
bmljb2RlLWJpZGk6YmlkaS1vdmVycmlkZTsiPmxramloZyYjeDA1ZDA7JiN4MDVkMTsmI3gwNWQy
O2ZlZGNiYTwvcD4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJkaXJlY3Rpb246bHRyOyB1bmlj
b2RlLWJpZGk6YmlkaS1vdmVycmlkZTsiPiYjeDA1ZGM7JiN4MDVkYjsmI3gwNWQ5OyYjeDA1ZDg7
JiN4MDVkNzsmI3gwNWQ2O2FiYyYjeDA1ZDU7JiN4MDVkNDsmI3gwNWQzOyYjeDA1ZDI7JiN4MDVk
MTsmI3gwNWQwOzwvcD4KICAgICAgICAgICAgPC90ZD4KICAgICAgICA8L3RyPgogICAgPC90YWJs
ZT4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3785</attachid>
            <date>2005-09-06 09:02:06 -0700</date>
            <delta_ts>2005-09-06 23:29:16 -0700</delta_ts>
            <desc>patch for CG-rendered runs only</desc>
            <filename>4862_patch_r1.txt</filename>
            <type>text/plain</type>
            <size>1444</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JpZGkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRpLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNDEKZGlmZiAtcCAtdSAtcjEuMTQxIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL2JpZGkuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRpLmNwcAk0IFNlcCAy
MDA1IDA3OjQyOjMxIC0wMDAwCTEuMTQxCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRp
LmNwcAk2IFNlcCAyMDA1IDE1OjMxOjQzIC0wMDAwCkBAIC05MjYsNiArOTI2LDggQEAgdm9pZCBS
ZW5kZXJCbG9jazo6YmlkaVJlb3JkZXJMaW5lKGNvbnN0IAogICAgICAgICAgICAgZGlyQ3VycmVu
dCA9IGMtPmRpcjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGRpckN1cnJlbnQgPSBi
aWRpLmN1cnJlbnQuZGlyZWN0aW9uKCk7CisgICAgICAgICAgICBpZiAoYmlkaS5jb250ZXh0LT5v
dmVycmlkZSAmJiBkaXJDdXJyZW50ICE9IFFDaGFyOjpEaXJSTEUgJiYgZGlyQ3VycmVudCAhPSBR
Q2hhcjo6RGlyTFJFICYmIGRpckN1cnJlbnQgIT0gUUNoYXI6OkRpclJMTyAmJiBkaXJDdXJyZW50
ICE9IFFDaGFyOjpEaXJMUk8gJiYgZGlyQ3VycmVudCAhPSBRQ2hhcjo6RGlyUERGKQorICAgICAg
ICAgICAgICAgIGRpckN1cnJlbnQgPSBiaWRpLmNvbnRleHQtPmRpcjsKICAgICAgICAgfQogCiAj
aWZuZGVmIFFUX05PX1VOSUNPREVUQUJMRVMKQEAgLTE0ODMsMTAgKzE0ODUsMTAgQEAgUVJlY3Qg
UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKAogCiAgICAgICAgIEJpZGlDb250ZXh0
ICpzdGFydEVtYmVkOwogICAgICAgICBpZiggc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSICkg
ewotICAgICAgICAgICAgc3RhcnRFbWJlZCA9IG5ldyBCaWRpQ29udGV4dCggMCwgUUNoYXI6OkRp
ckwgKTsKKyAgICAgICAgICAgIHN0YXJ0RW1iZWQgPSBuZXcgQmlkaUNvbnRleHQoIDAsIFFDaGFy
OjpEaXJMLCBOVUxMLCBzdHlsZSgpLT51bmljb2RlQmlkaSgpID09IE92ZXJyaWRlICk7CiAgICAg
ICAgICAgICBiaWRpLnN0YXR1cy5lb3IgPSBRQ2hhcjo6RGlyTDsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHN0YXJ0RW1iZWQgPSBuZXcgQmlkaUNvbnRleHQoIDEsIFFDaGFyOjpEaXJS
ICk7CisgICAgICAgICAgICBzdGFydEVtYmVkID0gbmV3IEJpZGlDb250ZXh0KCAxLCBRQ2hhcjo6
RGlyUiwgTlVMTCwgc3R5bGUoKS0+dW5pY29kZUJpZGkoKSA9PSBPdmVycmlkZSApOwogICAgICAg
ICAgICAgYmlkaS5zdGF0dXMuZW9yID0gUUNoYXI6OkRpclI7CiAgICAgICAgIH0KICAgICAgICAg
c3RhcnRFbWJlZC0+cmVmKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3792</attachid>
            <date>2005-09-06 23:29:16 -0700</date>
            <delta_ts>2005-09-07 02:32:57 -0700</delta_ts>
            <desc>suggested patch</desc>
            <filename>4862_patch_r2.txt</filename>
            <type>text/plain</type>
            <size>18803</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JpZGkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRpLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNDEKZGlmZiAtcCAtdSAtcjEuMTQxIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL2JpZGkuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRpLmNwcAk0IFNlcCAy
MDA1IDA3OjQyOjMxIC0wMDAwCTEuMTQxCisrKyBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRp
LmNwcAk3IFNlcCAyMDA1IDA2OjE5OjI0IC0wMDAwCkBAIC04NzksNyArODc5LDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6Y29tcHV0ZVZlcnRpY2FsUG9zaXRpbwogCiAgICAgICAgIC8vIFBvc2l0aW9u
IGlzIHVzZWQgdG8gcHJvcGVybHkgcG9zaXRpb24gYm90aCByZXBsYWNlZCBlbGVtZW50cyBhbmQK
ICAgICAgICAgLy8gdG8gdXBkYXRlIHRoZSBzdGF0aWMgbm9ybWFsIGZsb3cgeC95IG9mIHBvc2l0
aW9uZWQgZWxlbWVudHMuCi0gICAgICAgIHItPm9iai0+cG9zaXRpb24oci0+Ym94LCByLT5zdGFy
dCwgci0+c3RvcCAtIHItPnN0YXJ0LCByLT5sZXZlbCUyKTsKKyAgICAgICAgci0+b2JqLT5wb3Np
dGlvbihyLT5ib3gsIHItPnN0YXJ0LCByLT5zdG9wIC0gci0+c3RhcnQsIHItPmxldmVsJTIsIHIt
Pm92ZXJyaWRlKTsKICAgICB9CiB9CiAKQEAgLTkyNiw2ICs5MjYsOCBAQCB2b2lkIFJlbmRlckJs
b2NrOjpiaWRpUmVvcmRlckxpbmUoY29uc3QgCiAgICAgICAgICAgICBkaXJDdXJyZW50ID0gYy0+
ZGlyOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZGlyQ3VycmVudCA9IGJpZGkuY3Vy
cmVudC5kaXJlY3Rpb24oKTsKKyAgICAgICAgICAgIGlmIChiaWRpLmNvbnRleHQtPm92ZXJyaWRl
ICYmIGRpckN1cnJlbnQgIT0gUUNoYXI6OkRpclJMRSAmJiBkaXJDdXJyZW50ICE9IFFDaGFyOjpE
aXJMUkUgJiYgZGlyQ3VycmVudCAhPSBRQ2hhcjo6RGlyUkxPICYmIGRpckN1cnJlbnQgIT0gUUNo
YXI6OkRpckxSTyAmJiBkaXJDdXJyZW50ICE9IFFDaGFyOjpEaXJQREYpCisgICAgICAgICAgICAg
ICAgZGlyQ3VycmVudCA9IGJpZGkuY29udGV4dC0+ZGlyOwogICAgICAgICB9CiAKICNpZm5kZWYg
UVRfTk9fVU5JQ09ERVRBQkxFUwpAQCAtMTQ4MywxMCArMTQ4NSwxMCBAQCBRUmVjdCBSZW5kZXJC
bG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oCiAKICAgICAgICAgQmlkaUNvbnRleHQgKnN0YXJ0
RW1iZWQ7CiAgICAgICAgIGlmKCBzdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIgKSB7Ci0gICAg
ICAgICAgICBzdGFydEVtYmVkID0gbmV3IEJpZGlDb250ZXh0KCAwLCBRQ2hhcjo6RGlyTCApOwor
ICAgICAgICAgICAgc3RhcnRFbWJlZCA9IG5ldyBCaWRpQ29udGV4dCggMCwgUUNoYXI6OkRpckws
IE5VTEwsIHN0eWxlKCktPnVuaWNvZGVCaWRpKCkgPT0gT3ZlcnJpZGUgKTsKICAgICAgICAgICAg
IGJpZGkuc3RhdHVzLmVvciA9IFFDaGFyOjpEaXJMOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgc3RhcnRFbWJlZCA9IG5ldyBCaWRpQ29udGV4dCggMSwgUUNoYXI6OkRpclIgKTsKKyAg
ICAgICAgICAgIHN0YXJ0RW1iZWQgPSBuZXcgQmlkaUNvbnRleHQoIDEsIFFDaGFyOjpEaXJSLCBO
VUxMLCBzdHlsZSgpLT51bmljb2RlQmlkaSgpID09IE92ZXJyaWRlICk7CiAgICAgICAgICAgICBi
aWRpLnN0YXR1cy5lb3IgPSBRQ2hhcjo6RGlyUjsKICAgICAgICAgfQogICAgICAgICBzdGFydEVt
YmVkLT5yZWYoKTsKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL2JpZGkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlkaS5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXAgLXUgLXIxLjE1IFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL2JpZGkuaAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlkaS5oCTIgT2N0
IDIwMDMgMTg6NDY6MTggLTAwMDAJMS4xNQorKysgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlk
aS5oCTcgU2VwIDIwMDUgMDY6MTk6MjUgLTAwMDAKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNl
IGtodG1sIHsKIAogICAgIHN0cnVjdCBCaWRpUnVuIHsKIAlCaWRpUnVuKGludCBfc3RhcnQsIGlu
dCBfc3RvcCwgUmVuZGVyT2JqZWN0ICpfb2JqLCBCaWRpQ29udGV4dCAqY29udGV4dCwgUUNoYXI6
OkRpcmVjdGlvbiBkaXIpCi0JICAgIDogIHN0YXJ0KCBfc3RhcnQgKSwgc3RvcCggX3N0b3AgKSwg
b2JqKCBfb2JqICksIGJveCgwKSwgbmV4dFJ1bigwKQorCSAgICA6ICBzdGFydCggX3N0YXJ0ICks
IHN0b3AoIF9zdG9wICksIG9iaiggX29iaiApLCBib3goMCksIG92ZXJyaWRlKGNvbnRleHQtPm92
ZXJyaWRlKSwgbmV4dFJ1bigwKQogCXsKIAkgICAgaWYoZGlyID09IFFDaGFyOjpEaXJPTikgZGly
ID0gY29udGV4dC0+ZGlyOwogCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAJ
Ly8gZXhwbGljaXQgKyBpbXBsaWNpdCBsZXZlbHMgaGVyZQogCXVjaGFyIGxldmVsOworICAgICAg
ICBib29sIG92ZXJyaWRlIDogMTsKIAogICAgICAgICBib29sIGNvbXBhY3QgOiAxOwogICAgICAg
ICAKSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYm94
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNjUKZGlmZiAtcCAtdSAtcjEuMTY1IFdlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfYm94LmNwcAkzMCBBdWcgMjAwNSAwOTozMDoyMCAtMDAwMAkxLjE2NQorKysg
V2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2JveC5jcHAJNyBTZXAgMjAwNSAwNjoxOToy
OSAtMDAwMApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgUmVuZGVyQm94OjpkaXJ0eUxpbmVCb3hl
cyhib29sIGZ1bGwKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpwb3NpdGlvbihJbmxpbmVC
b3gqIGJveCwgaW50IGZyb20sIGludCBsZW4sIGJvb2wgcmV2ZXJzZSkKK3ZvaWQgUmVuZGVyQm94
Ojpwb3NpdGlvbihJbmxpbmVCb3gqIGJveCwgaW50IGZyb20sIGludCBsZW4sIGJvb2wgcmV2ZXJz
ZSwgYm9vbCBvdmVycmlkZSkKIHsKICAgICBpZiAoaXNQb3NpdGlvbmVkKCkpIHsKICAgICAgICAg
Ly8gQ2FjaGUgdGhlIHggcG9zaXRpb24gb25seSBpZiB3ZSB3ZXJlIGFuIElOTElORSB0eXBlIG9y
aWdpbmFsbHkuCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYm94LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRl
cl9ib3guaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NQpkaWZmIC1wIC11IC1yMS41NSBXZWJD
b3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYm94LmgKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9ib3guaAkyNyBBdWcgMjAwNSAwMDoxNDoyMSAtMDAwMAkxLjU1CisrKyBXZWJD
b3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfYm94LmgJNyBTZXAgMjAwNSAwNjoxOTozMCAtMDAw
MApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgLy8gc2hpZnRlZC4gLWR3aAogICAgIHZv
aWQgY2FsY0hvcml6b250YWxNYXJnaW5zKGNvbnN0IExlbmd0aCYgbWwsIGNvbnN0IExlbmd0aCYg
bXIsIGludCBjdyk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb24oSW5saW5lQm94KiBib3gs
IGludCBmcm9tLCBpbnQgbGVuLCBib29sIHJldmVyc2UpOworICAgIHZpcnR1YWwgdm9pZCBwb3Np
dGlvbihJbmxpbmVCb3gqIGJveCwgaW50IGZyb20sIGludCBsZW4sIGJvb2wgcmV2ZXJzZSwgYm9v
bCBvdmVycmlkZSk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJveGVzKGJvb2wg
ZnVsbExheW91dCwgYm9vbCBpc1Jvb3RMaW5lQm94PWZhbHNlKTsKIApJbmRleDogV2ViQ29yZS9r
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMTU1CmRpZmYgLXAgLXUgLXIxLjE1NSBXZWJDb3JlL2todG1sL3JlbmRlcmlu
Zy9yZW5kZXJfb2JqZWN0LmgKLS0tIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9vYmpl
Y3QuaAkyNyBBdWcgMjAwNSAwMDoxNDoyMSAtMDAwMAkxLjE1NQorKysgV2ViQ29yZS9raHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCTcgU2VwIDIwMDUgMDY6MTk6MzMgLTAwMDAKQEAgLTc0
MCw3ICs3NDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VzTGluZVdpZHRoKCkgY29uc3Q7CiAK
ICAgICAvLyBwb3NpdGlvbmluZyBvZiBpbmxpbmUgY2hpbGRyZW4gKGJpZGkpCi0gICAgdmlydHVh
bCB2b2lkIHBvc2l0aW9uKElubGluZUJveCosIGludCwgaW50LCBib29sKSB7fQorICAgIHZpcnR1
YWwgdm9pZCBwb3NpdGlvbihJbmxpbmVCb3gqLCBpbnQsIGludCwgYm9vbCwgYm9vbCkge30KIAog
ICAgIC8vIEFwcGxpZWQgYXMgYSAic2xvcCIgdG8gZGlydHkgcmVjdCBjaGVja3MgZHVyaW5nIHRo
ZSBvdXRsaW5lIHBhaW50aW5nIHBoYXNlJ3MgZGlydHktcmVjdCBjaGVja3MuCiAgICAgaW50IG1h
eGltYWxPdXRsaW5lU2l6ZShQYWludEFjdGlvbiBwKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUva2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQuY3BwLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjE5NgpkaWZmIC1wIC11IC1yMS4xOTYgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcv
cmVuZGVyX3RleHQuY3BwCi0tLSBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGV4dC5j
cHAJNCBTZXAgMjAwNSAwNzo0MjozMSAtMDAwMAkxLjE5NgorKysgV2ViQ29yZS9raHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX3RleHQuY3BwCTcgU2VwIDIwMDUgMDY6MTk6MzcgLTAwMDAKQEAgLTM4NCw3
ICszODQsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFJlbmRlck9iamVjdDo6CiAgICAg
ICAgICAgICBlbmRQb2ludCA9IG1fdHJ1bmNhdGlvbiAtIG1fc3RhcnQ7CiAgICAgICAgIGZvbnQt
PmRyYXdUZXh0KGkucCwgbV94ICsgdHgsIG1feSArIHR5ICsgbV9iYXNlbGluZSwgdGV4dE9iamVj
dCgpLT50YWJXaWR0aCgpLCB0ZXh0UG9zKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRP
YmplY3QoKS0+c3RyaW5nKCktPnMsIHRleHRPYmplY3QoKS0+c3RyaW5nKCktPmwsIG1fc3RhcnQs
IGVuZFBvaW50LAotICAgICAgICAgICAgICAgICAgICAgICBtX3RvQWRkLCBtX3JldmVyc2VkID8g
UVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIHN0eWxlVG9Vc2UtPnZpc3VhbGx5T3JkZXJl
ZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgbV90b0FkZCwgbV9yZXZlcnNlZCA/IFFQYWlu
dGVyOjpSVEwgOiBRUGFpbnRlcjo6TFRSLCBtX2Rpck92ZXJyaWRlIHx8IHN0eWxlVG9Vc2UtPnZp
c3VhbGx5T3JkZXJlZCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBpbnQgc1BvcywgZVBvczsK
ICAgICAgICAgc2VsZWN0aW9uU3RhcnRFbmQoc1BvcywgZVBvcyk7CkBAIC0zOTMsMTcgKzM5Mywx
NyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFJlbmRlck9iamVjdDo6CiAgICAgICAgICAg
ICBpZiAoc1BvcyA+PSBlUG9zKSB7CiAgICAgICAgICAgICAgICAgZm9udC0+ZHJhd1RleHQoaS5w
LCBtX3ggKyB0eCwgbV95ICsgdHkgKyBtX2Jhc2VsaW5lLCB0ZXh0T2JqZWN0KCktPnRhYldpZHRo
KCksIHRleHRQb3MoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T2JqZWN0
KCktPnN0cmluZygpLT5zLCB0ZXh0T2JqZWN0KCktPnN0cmluZygpLT5sLCBtX3N0YXJ0LCBtX2xl
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RvQWRkLCBtX3JldmVyc2VkID8g
UVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIHN0eWxlVG9Vc2UtPnZpc3VhbGx5T3JkZXJl
ZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RvQWRkLCBtX3JldmVyc2Vk
ID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIG1fZGlyT3ZlcnJpZGUgfHwgc3R5bGVU
b1VzZS0+dmlzdWFsbHlPcmRlcmVkKCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBpZiAoc1BvcyAtIDEgPj0gMCkgewogICAgICAgICAgICAgICAgICAgICBmb250LT5k
cmF3VGV4dChpLnAsIG1feCArIHR4LCBtX3kgKyB0eSArIG1fYmFzZWxpbmUsIHRleHRPYmplY3Qo
KS0+dGFiV2lkdGgoKSwgdGV4dFBvcygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0T2JqZWN0KCktPnN0cmluZygpLT5zLCB0ZXh0T2JqZWN0KCktPnN0cmluZygpLT5s
LCBtX3N0YXJ0LCBtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV90
b0FkZCwgbV9yZXZlcnNlZCA/IFFQYWludGVyOjpSVEwgOiBRUGFpbnRlcjo6TFRSLCBzdHlsZVRv
VXNlLT52aXN1YWxseU9yZGVyZWQoKSwgMCwgc1Bvcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fdG9BZGQsIG1fcmV2ZXJzZWQgPyBRUGFpbnRlcjo6UlRMIDogUVBhaW50
ZXI6OkxUUiwgbV9kaXJPdmVycmlkZSB8fCBzdHlsZVRvVXNlLT52aXN1YWxseU9yZGVyZWQoKSwg
MCwgc1Bvcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChlUG9zIDwg
bV9zdGFydCArIG1fbGVuKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvbnQtPmRyYXdUZXh0KGku
cCwgbV94ICsgdHgsIG1feSArIHR5ICsgbV9iYXNlbGluZSwgdGV4dE9iamVjdCgpLT50YWJXaWR0
aCgpLCB0ZXh0UG9zKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRP
YmplY3QoKS0+c3RyaW5nKCktPnMsIHRleHRPYmplY3QoKS0+c3RyaW5nKCktPmwsIG1fc3RhcnQs
IG1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RvQWRkLCBtX3Jl
dmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIHN0eWxlVG9Vc2UtPnZpc3Vh
bGx5T3JkZXJlZCgpLCBlUG9zLCAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fdG9BZGQsIG1fcmV2ZXJzZWQgPyBRUGFpbnRlcjo6UlRMIDogUVBhaW50ZXI6OkxUUiwg
bV9kaXJPdmVycmlkZSB8fCBzdHlsZVRvVXNlLT52aXN1YWxseU9yZGVyZWQoKSwgZVBvcywgLTEp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNDIwLDcg
KzQyMCw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUmVuZGVyT2JqZWN0OjoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25UZXh0U2hhZG93LT5jb2xvcik7CiAg
ICAgICAgICAgICBmb250LT5kcmF3VGV4dChpLnAsIG1feCArIHR4LCBtX3kgKyB0eSArIG1fYmFz
ZWxpbmUsIHRleHRPYmplY3QoKS0+dGFiV2lkdGgoKSwgdGV4dFBvcygpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGV4dE9iamVjdCgpLT5zdHJpbmcoKS0+cywgdGV4dE9iamVjdCgpLT5z
dHJpbmcoKS0+bCwgbV9zdGFydCwgbV9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3RvQWRkLCBtX3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIHN0eWxl
VG9Vc2UtPnZpc3VhbGx5T3JkZXJlZCgpLCBzUG9zLCBlUG9zKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fdG9BZGQsIG1fcmV2ZXJzZWQgPyBRUGFpbnRlcjo6UlRMIDogUVBhaW50ZXI6
OkxUUiwgbV9kaXJPdmVycmlkZSB8fCBzdHlsZVRvVXNlLT52aXN1YWxseU9yZGVyZWQoKSwgc1Bv
cywgZVBvcyk7CiAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uVGV4dFNoYWRvdykKICAgICAgICAg
ICAgICAgICBpLnAtPmNsZWFyU2hhZG93KCk7CiAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50U2VsZWN0aW9uKFFQYWluCiAgICAgaW50IGggPSBy
LT5zZWxlY3Rpb25IZWlnaHQoKTsKICAgICBmLT5kcmF3SGlnaGxpZ2h0Rm9yVGV4dChwLCBtX3gg
KyB0eCwgeSArIHR5LCBoLCB0ZXh0T2JqZWN0KCktPnRhYldpZHRoKCksIHRleHRQb3MoKSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE9iamVjdCgpLT5zdHItPnMsIHRleHRPYmpl
Y3QoKS0+c3RyLT5sLCBtX3N0YXJ0LCBtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3RvQWRkLCBtX3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIHN0
eWxlLT52aXN1YWxseU9yZGVyZWQoKSwgc1BvcywgZVBvcywgYyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV90b0FkZCwgbV9yZXZlcnNlZCA/IFFQYWludGVyOjpSVEwgOiBRUGFpbnRl
cjo6TFRSLCBtX2Rpck92ZXJyaWRlIHx8IHN0eWxlLT52aXN1YWxseU9yZGVyZWQoKSwgc1Bvcywg
ZVBvcywgYyk7CiAgICAgcC0+cmVzdG9yZSgpOwogfQogCkBAIC01NTAsNyArNTUwLDcgQEAgdm9p
ZCBJbmxpbmVUZXh0Qm94OjpwYWludE1hcmtlZFRleHRCYWNrZwogICAgIGludCB5ID0gci0+c2Vs
ZWN0aW9uVG9wKCk7CiAgICAgaW50IGggPSByLT5zZWxlY3Rpb25IZWlnaHQoKTsKICAgICBmLT5k
cmF3SGlnaGxpZ2h0Rm9yVGV4dChwLCBtX3ggKyB0eCwgeSArIHR5LCBoLCB0ZXh0T2JqZWN0KCkt
PnRhYldpZHRoKCksIHRleHRQb3MoKSwgdGV4dE9iamVjdCgpLT5zdHItPnMsIHRleHRPYmplY3Qo
KS0+c3RyLT5sLCBtX3N0YXJ0LCBtX2xlbiwKLSAgICAgICAgICAgIG1fdG9BZGQsIG1fcmV2ZXJz
ZWQgPyBRUGFpbnRlcjo6UlRMIDogUVBhaW50ZXI6OkxUUiwgc3R5bGUtPnZpc3VhbGx5T3JkZXJl
ZCgpLCBzUG9zLCBlUG9zLCBjKTsKKyAgICAgICAgICAgIG1fdG9BZGQsIG1fcmV2ZXJzZWQgPyBR
UGFpbnRlcjo6UlRMIDogUVBhaW50ZXI6OkxUUiwgbV9kaXJPdmVycmlkZSB8fCBzdHlsZS0+dmlz
dWFsbHlPcmRlcmVkKCksIHNQb3MsIGVQb3MsIGMpOwogICAgIHAtPnJlc3RvcmUoKTsKIH0KIApA
QCAtMTY3Niw3ICsxNjc2LDcgQEAgSW5saW5lQm94KiBSZW5kZXJUZXh0OjpjcmVhdGVJbmxpbmVC
b3goYgogICAgIHJldHVybiB0ZXh0Qm94OwogfQogCi12b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9u
KElubGluZUJveCogYm94LCBpbnQgZnJvbSwgaW50IGxlbiwgYm9vbCByZXZlcnNlKQordm9pZCBS
ZW5kZXJUZXh0Ojpwb3NpdGlvbihJbmxpbmVCb3gqIGJveCwgaW50IGZyb20sIGludCBsZW4sIGJv
b2wgcmV2ZXJzZSwgYm9vbCBvdmVycmlkZSkKIHsKICAgICBJbmxpbmVUZXh0Qm94ICpzID0gc3Rh
dGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KGJveCk7CiAgICAgCkBAIC0xNjk5LDYgKzE2OTksNyBA
QCB2b2lkIFJlbmRlclRleHQ6OnBvc2l0aW9uKElubGluZUJveCogYm94CiAjZW5kaWYKIAogICAg
IHMtPm1fcmV2ZXJzZWQgPSByZXZlcnNlOworICAgIHMtPm1fZGlyT3ZlcnJpZGUgPSBvdmVycmlk
ZSB8fCBzdHlsZSgpLT52aXN1YWxseU9yZGVyZWQoKTsKICAgICBzLT5tX3N0YXJ0ID0gZnJvbTsK
ICAgICBzLT5tX2xlbiA9IGxlbjsKIH0KSW5kZXg6IFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl90ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODcKZGlmZiAt
cCAtdSAtcjEuODcgV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQuaAotLS0gV2Vi
Q29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQuaAkxIFNlcCAyMDA1IDE2OjIxOjA1IC0w
MDAwCTEuODcKKysrIFdlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgJNyBTZXAg
MjAwNSAwNjoxOTozOSAtMDAwMApAQCAtMTQ5LDggKzE0OSw5IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICAgICAgICAvLyBkZW5vdGUgbm8gdHJ1bmNhdGlvbiAodGhlIHdob2xlIHJ1biBwYWlu
dHMpIGFuZCBmdWxsIHRydW5jYXRpb24gKG5vdGhpbmcgcGFpbnRzIGF0IGFsbCkuCiAKICAgICBi
b29sIG1fcmV2ZXJzZWQgOiAxOworICAgIGJvb2wgbV9kaXJPdmVycmlkZSA6IDE7CiAgICAgYm9v
bCBtX3RyZWF0QXNUZXh0IDogMTsgLy8gV2hldGhlciBvciBub3QgdG8gdHJlYXQgYSA8YnI+IGFz
IHRleHQgZm9yIHRoZSBwdXJwb3NlcyBvZiBsaW5lIGhlaWdodC4KLSAgICBpbnQgbV90b0FkZCA6
IDE0OyAvLyBmb3IganVzdGlmaWVkIHRleHQKKyAgICBpbnQgbV90b0FkZCA6IDEzOyAvLyBmb3Ig
anVzdGlmaWVkIHRleHQKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyVGV4dDsK
QEAgLTE5Niw3ICsxOTcsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgaW50IGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIHN0ci0+bDsgfQogICAgIFFDaGFyICp0ZXh0KCkgY29uc3QgeyByZXR1cm4g
c3RyLT5zOyB9CiAgICAgdW5zaWduZWQgaW50IHN0cmluZ0xlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IHN0ci0+bDsgfSAvLyBub24gdmlydHVhbCBpbXBsZW1lbnRhdGlvbiBvZiBsZW5ndGgoKQotICAg
IHZpcnR1YWwgdm9pZCBwb3NpdGlvbihJbmxpbmVCb3gqIGJveCwgaW50IGZyb20sIGludCBsZW4s
IGJvb2wgcmV2ZXJzZSk7CisgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uKElubGluZUJveCogYm94
LCBpbnQgZnJvbSwgaW50IGxlbiwgYm9vbCByZXZlcnNlLCBib29sIG92ZXJyaWRlKTsKIAogICAg
IHZpcnR1YWwgdW5zaWduZWQgaW50IHdpZHRoKHVuc2lnbmVkIGludCBmcm9tLCB1bnNpZ25lZCBp
bnQgbGVuLCBjb25zdCBGb250ICpmLCBpbnQgeHBvcykgY29uc3Q7CiAgICAgdmlydHVhbCB1bnNp
Z25lZCBpbnQgd2lkdGgodW5zaWduZWQgaW50IGZyb20sIHVuc2lnbmVkIGludCBsZW4sIGludCB4
cG9zLCBib29sIGZpcnN0TGluZSA9IGZhbHNlKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUva3dxL0tX
UVBhaW50ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UVBhaW50ZXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTM2CmRpZmYgLXAgLXUgLXIxLjEz
NiBXZWJDb3JlL2t3cS9LV1FQYWludGVyLm1tCi0tLSBXZWJDb3JlL2t3cS9LV1FQYWludGVyLm1t
CTUgU2VwIDIwMDUgMDQ6MDE6MjQgLTAwMDAJMS4xMzYKKysrIFdlYkNvcmUva3dxL0tXUVBhaW50
ZXIubW0JNyBTZXAgMjAwNSAwNjoxOTo0NCAtMDAwMApAQCAtNjMxLDcgKzYzMSw3IEBAIHZvaWQg
UVBhaW50ZXI6OmRyYXdUZXh0KGludCB4LCBpbnQgeSwgaW4KICAgICBzdHlsZS50ZXh0Q29sb3Ig
PSBuc0NvbG9yKGRhdGEtPnN0YXRlLnBlbi5jb2xvcigpKTsKICAgICBzdHlsZS5iYWNrZ3JvdW5k
Q29sb3IgPSBiYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpID8gbnNDb2xvcihiYWNrZ3JvdW5kQ29s
b3IpIDogbmlsOwogICAgIHN0eWxlLnJ0bCA9IGQgPT0gUlRMID8gdHJ1ZSA6IGZhbHNlOwotICAg
IHN0eWxlLnZpc3VhbGx5T3JkZXJlZCA9IHZpc3VhbGx5T3JkZXJlZDsKKyAgICBzdHlsZS5kaXJl
Y3Rpb25hbE92ZXJyaWRlID0gdmlzdWFsbHlPcmRlcmVkOwogICAgIHN0eWxlLmxldHRlclNwYWNp
bmcgPSBsZXR0ZXJTcGFjaW5nOwogICAgIHN0eWxlLndvcmRTcGFjaW5nID0gd29yZFNwYWNpbmc7
CiAgICAgc3R5bGUuc21hbGxDYXBzID0gc21hbGxDYXBzOwpAQCAtNjcwLDcgKzY3MCw3IEBAIHZv
aWQgUVBhaW50ZXI6OmRyYXdIaWdobGlnaHRGb3JUZXh0KGludCAKICAgICBzdHlsZS50ZXh0Q29s
b3IgPSBuc0NvbG9yKGRhdGEtPnN0YXRlLnBlbi5jb2xvcigpKTsKICAgICBzdHlsZS5iYWNrZ3Jv
dW5kQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpID8gbnNDb2xvcihiYWNrZ3JvdW5k
Q29sb3IpIDogbmlsOwogICAgIHN0eWxlLnJ0bCA9IGQgPT0gUlRMID8gdHJ1ZSA6IGZhbHNlOwot
ICAgIHN0eWxlLnZpc3VhbGx5T3JkZXJlZCA9IHZpc3VhbGx5T3JkZXJlZDsKKyAgICBzdHlsZS5k
aXJlY3Rpb25hbE92ZXJyaWRlID0gdmlzdWFsbHlPcmRlcmVkOwogICAgIHN0eWxlLmxldHRlclNw
YWNpbmcgPSBsZXR0ZXJTcGFjaW5nOwogICAgIHN0eWxlLndvcmRTcGFjaW5nID0gd29yZFNwYWNp
bmc7CiAgICAgc3R5bGUuc21hbGxDYXBzID0gc21hbGxDYXBzOwpJbmRleDogV2ViQ29yZS9rd3Ev
V2ViQ29yZVRleHRSZW5kZXJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9XZWJDb3JlVGV4dFJlbmRlcmVyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzUK
ZGlmZiAtcCAtdSAtcjEuMzUgV2ViQ29yZS9rd3EvV2ViQ29yZVRleHRSZW5kZXJlci5oCi0tLSBX
ZWJDb3JlL2t3cS9XZWJDb3JlVGV4dFJlbmRlcmVyLmgJMjkgSnVsIDIwMDUgMjM6NDI6NTUgLTAw
MDAJMS4zNQorKysgV2ViQ29yZS9rd3EvV2ViQ29yZVRleHRSZW5kZXJlci5oCTcgU2VwIDIwMDUg
MDY6MTk6NDUgLTAwMDAKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFdlYkNvcmVUZXh0U3R5bGUK
ICAgICBOU1N0cmluZyAqKmZhbWlsaWVzOwogICAgIHVuc2lnbmVkIHNtYWxsQ2FwcyA6IDE7CiAg
ICAgdW5zaWduZWQgcnRsIDogMTsKLSAgICB1bnNpZ25lZCB2aXN1YWxseU9yZGVyZWQgOiAxOwor
ICAgIHVuc2lnbmVkIGRpcmVjdGlvbmFsT3ZlcnJpZGUgOiAxOwogICAgIHVuc2lnbmVkIGFwcGx5
UnVuUm91bmRpbmcgOiAxOwogICAgIHVuc2lnbmVkIGFwcGx5V29yZFJvdW5kaW5nIDogMTsKICAg
ICB1bnNpZ25lZCBhdHRlbXB0Rm9udFN1YnN0aXR1dGlvbiA6IDE7CkluZGV4OiBXZWJDb3JlL2t3
cS9XZWJDb3JlVGV4dFJlbmRlcmVyRmFjdG9yeS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9rd3EvV2ViQ29yZVRleHRSZW5kZXJlckZhY3RvcnkubW0sdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMjQKZGlmZiAtcCAtdSAtcjEuMjQgV2ViQ29yZS9rd3EvV2ViQ29yZVRl
eHRSZW5kZXJlckZhY3RvcnkubW0KLS0tIFdlYkNvcmUva3dxL1dlYkNvcmVUZXh0UmVuZGVyZXJG
YWN0b3J5Lm1tCTI5IEp1bCAyMDA1IDIzOjQyOjU1IC0wMDAwCTEuMjQKKysrIFdlYkNvcmUva3dx
L1dlYkNvcmVUZXh0UmVuZGVyZXJGYWN0b3J5Lm1tCTcgU2VwIDIwMDUgMDY6MTk6NDUgLTAwMDAK
QEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBXZWJDb3JlSW5pdGlhbGl6ZUVtcHR5VGV4dFN0eWxlKFdl
YgogICAgIHN0eWxlLT50ZXh0Q29sb3IgPSBuaWw7CiAgICAgc3R5bGUtPmJhY2tncm91bmRDb2xv
ciA9IG5pbDsKICAgICBzdHlsZS0+cnRsID0gZmFsc2U7Ci0gICAgc3R5bGUtPnZpc3VhbGx5T3Jk
ZXJlZCA9IGZhbHNlOworICAgIHN0eWxlLT5kaXJlY3Rpb25hbE92ZXJyaWRlID0gZmFsc2U7CiAg
ICAgc3R5bGUtPmxldHRlclNwYWNpbmcgPSAwOwogICAgIHN0eWxlLT53b3JkU3BhY2luZyA9IDA7
CiAgICAgc3R5bGUtPnNtYWxsQ2FwcyA9IGZhbHNlOwpJbmRleDogV2ViS2l0L1dlYkNvcmVTdXBw
b3J0LnN1YnByb2ovV2ViVGV4dFJlbmRlcmVyLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1dlYktpdC9XZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYlRleHRSZW5kZXJlci5tLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjE4OQpkaWZmIC1wIC11IC1yMS4xODkgV2ViS2l0L1dlYkNvcmVT
dXBwb3J0LnN1YnByb2ovV2ViVGV4dFJlbmRlcmVyLm0KLS0tIFdlYktpdC9XZWJDb3JlU3VwcG9y
dC5zdWJwcm9qL1dlYlRleHRSZW5kZXJlci5tCTI1IEF1ZyAyMDA1IDIzOjQ2OjMwIC0wMDAwCTEu
MTg5CisrKyBXZWJLaXQvV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJUZXh0UmVuZGVyZXIubQk3
IFNlcCAyMDA1IDA2OjE5OjU0IC0wMDAwCkBAIC01NCw2ICs1NCw3IEBACiAjZGVmaW5lIFpFUk9f
V0lEVEhfU1BBQ0UgMHgyMDBCCiAjZGVmaW5lIFBPUF9ESVJFQ1RJT05BTF9GT1JNQVRUSU5HIDB4
MjAyQwogI2RlZmluZSBMRUZUX1RPX1JJR0hUX09WRVJSSURFIDB4MjAyRAorI2RlZmluZSBSSUdI
VF9UT19MRUZUX09WRVJSSURFIDB4MjAyRQogCiAvLyBNQVhfR0xZUEhfRVhQQU5TSU9OIGlzIHRo
ZSBtYXhpbXVtIG51bWJlcnMgb2YgZ2x5cGhzIHRoYXQgbWF5IGJlCiAvLyB1c2UgdG8gcmVwcmVz
ZW50IGEgc2luZ2xlIFVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE1NDYsNyArMTU0Nyw3IEBAIHN0
YXRpYyBjb25zdCBjaGFyICpqb2luaW5nTmFtZXNbXSA9IHsKIH0KIAogLy8gQmUgc3VyZSB0byBm
cmVlIHRoZSBydW4uY2hhcmFjdGVycyBhbGxvY2F0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KLXN0YXRp
YyBXZWJDb3JlVGV4dFJ1biByZXZlcnNlQ2hhcmFjdGVyc0luUnVuKGNvbnN0IFdlYkNvcmVUZXh0
UnVuICpydW4pCitzdGF0aWMgV2ViQ29yZVRleHRSdW4gYWRkRGlyZWN0aW9uYWxPdmVycmlkZShj
b25zdCBXZWJDb3JlVGV4dFJ1biAqcnVuLCBCT09MIHJ0bCkKIHsKICAgICBXZWJDb3JlVGV4dFJ1
biBzd2FwcGVkUnVuOwogICAgIApAQCAtMTU1NSw3ICsxNTU2LDcgQEAgc3RhdGljIFdlYkNvcmVU
ZXh0UnVuIHJldmVyc2VDaGFyYWN0ZXJzSQogICAgIHN3YXBwZWRSdW4uZnJvbSA9IChydW4tPmZy
b20gPT0gLTEgPyAwIDogcnVuLT5mcm9tKSArIDE7CiAgICAgc3dhcHBlZFJ1bi50byA9IChydW4t
PnRvID09IC0xID8gKGludClydW4tPmxlbmd0aCAtIDEgOiBydW4tPnRvICsgMSk7CiAgICAgc3dh
cHBlZFJ1bi5sZW5ndGggPSBydW4tPmxlbmd0aCsyOwotICAgIHN3YXBwZWRDaGFyYWN0ZXJzW3N3
YXBwZWRSdW4uZnJvbSAtIDFdID0gTEVGVF9UT19SSUdIVF9PVkVSUklERTsKKyAgICBzd2FwcGVk
Q2hhcmFjdGVyc1tzd2FwcGVkUnVuLmZyb20gLSAxXSA9IHJ0bCA/IFJJR0hUX1RPX0xFRlRfT1ZF
UlJJREUgOiBMRUZUX1RPX1JJR0hUX09WRVJSSURFOwogICAgIHN3YXBwZWRDaGFyYWN0ZXJzW3N3
YXBwZWRSdW4udG9dID0gUE9QX0RJUkVDVElPTkFMX0ZPUk1BVFRJTkc7CiAgICAgc3dhcHBlZFJ1
bi5jaGFyYWN0ZXJzID0gc3dhcHBlZENoYXJhY3RlcnM7CiAKQEAgLTE1OTYsOCArMTU5Nyw4IEBA
IHN0YXRpYyBXZWJDb3JlVGV4dFJ1biBhcHBseU1pcnJvcmluZ1RvUnUKICAgICBpZiAoc3R5bGUt
PmJhY2tncm91bmRDb2xvciA9PSBuaWwpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBpZiAo
c3R5bGUtPnZpc3VhbGx5T3JkZXJlZCkgewotICAgICAgICBzd2FwcGVkUnVuID0gcmV2ZXJzZUNo
YXJhY3RlcnNJblJ1bihydW4pOworICAgIGlmIChzdHlsZS0+ZGlyZWN0aW9uYWxPdmVycmlkZSkg
eworICAgICAgICBzd2FwcGVkUnVuID0gYWRkRGlyZWN0aW9uYWxPdmVycmlkZShydW4sIHN0eWxl
LT5ydGwpOwogICAgICAgICBhUnVuID0gJnN3YXBwZWRSdW47CiAgICAgfSBlbHNlIGlmIChzdHls
ZS0+cnRsICYmICFBVFNVTWlycm9ycykgewogICAgICAgICBzd2FwcGVkUnVuID0gYXBwbHlNaXJy
b3JpbmdUb1J1bihydW4pOwpAQCAtMTY0MSw3ICsxNjQyLDcgQEAgc3RhdGljIFdlYkNvcmVUZXh0
UnVuIGFwcGx5TWlycm9yaW5nVG9SdQogCiAgICAgZmxvYXQgeVBvcyA9IGdlb21ldHJ5LT51c2VG
b250TWV0cmljc0ZvclNlbGVjdGlvbllBbmRIZWlnaHQgPyBnZW9tZXRyeS0+cG9pbnQueSAtIFtz
ZWxmIGFzY2VudF0gOiBnZW9tZXRyeS0+c2VsZWN0aW9uWTsKICAgICBmbG9hdCBoZWlnaHQgPSBn
ZW9tZXRyeS0+dXNlRm9udE1ldHJpY3NGb3JTZWxlY3Rpb25ZQW5kSGVpZ2h0ID8gW3NlbGYgbGlu
ZVNwYWNpbmddIDogZ2VvbWV0cnktPnNlbGVjdGlvbkhlaWdodDsKLSAgICBpZiAoc3R5bGUtPnJ0
bCB8fCBzdHlsZS0+dmlzdWFsbHlPcmRlcmVkKXsKKyAgICBpZiAoc3R5bGUtPnJ0bCB8fCBzdHls
ZS0+ZGlyZWN0aW9uYWxPdmVycmlkZSl7CiAgICAgICAgIFdlYkNvcmVUZXh0UnVuIGNvbXBsZXRl
UnVuID0gKmFSdW47CiAgICAgICAgIGNvbXBsZXRlUnVuLmZyb20gPSAwOwogICAgICAgICBjb21w
bGV0ZVJ1bi50byA9IGFSdW4tPmxlbmd0aDsKQEAgLTE2NTQsNyArMTY1NSw3IEBAIHN0YXRpYyBX
ZWJDb3JlVGV4dFJ1biBhcHBseU1pcnJvcmluZ1RvUnUKIAogICAgIEFUU1VEaXNwb3NlVGV4dExh
eW91dCAobGF5b3V0KTsgLy8gSWdub3JlIHRoZSBlcnJvci4gIE5vdGhpbmcgd2UgY2FuIGRvIGFu
eXdheS4KIAotICAgIGlmIChzdHlsZS0+dmlzdWFsbHlPcmRlcmVkIHx8IChzdHlsZS0+cnRsICYm
ICFBVFNVTWlycm9ycykpCisgICAgaWYgKHN0eWxlLT5kaXJlY3Rpb25hbE92ZXJyaWRlIHx8IChz
dHlsZS0+cnRsICYmICFBVFNVTWlycm9ycykpCiAgICAgICAgIGZyZWUgKCh2b2lkICopc3dhcHBl
ZFJ1bi5jaGFyYWN0ZXJzKTsKIH0KIApAQCAtMTY3MSw4ICsxNjcyLDggQEAgc3RhdGljIFdlYkNv
cmVUZXh0UnVuIGFwcGx5TWlycm9yaW5nVG9SdQogICAgIGNvbnN0IFdlYkNvcmVUZXh0UnVuICph
UnVuID0gcnVuOwogICAgIFdlYkNvcmVUZXh0UnVuIHN3YXBwZWRSdW47CiAgICAgCi0gICAgaWYg
KHN0eWxlLT52aXN1YWxseU9yZGVyZWQpIHsKLSAgICAgICAgc3dhcHBlZFJ1biA9IHJldmVyc2VD
aGFyYWN0ZXJzSW5SdW4ocnVuKTsKKyAgICBpZiAoc3R5bGUtPmRpcmVjdGlvbmFsT3ZlcnJpZGUp
IHsKKyAgICAgICAgc3dhcHBlZFJ1biA9IGFkZERpcmVjdGlvbmFsT3ZlcnJpZGUocnVuLCBzdHls
ZS0+cnRsKTsKICAgICAgICAgYVJ1biA9ICZzd2FwcGVkUnVuOwogICAgIH0gZWxzZSBpZiAoc3R5
bGUtPnJ0bCAmJiAhQVRTVU1pcnJvcnMpIHsKICAgICAgICAgc3dhcHBlZFJ1biA9IGFwcGx5TWly
cm9yaW5nVG9SdW4ocnVuKTsKQEAgLTE3MTAsNyArMTcxMSw3IEBAIHN0YXRpYyBXZWJDb3JlVGV4
dFJ1biBhcHBseU1pcnJvcmluZ1RvUnUKIAogICAgIEFUU1VEaXNwb3NlVGV4dExheW91dCAobGF5
b3V0KTsgLy8gSWdub3JlIHRoZSBlcnJvci4gIE5vdGhpbmcgd2UgY2FuIGRvIGFueXdheS4KICAg
ICAKLSAgICBpZiAoc3R5bGUtPnZpc3VhbGx5T3JkZXJlZCB8fCAoc3R5bGUtPnJ0bCAmJiAhQVRT
VU1pcnJvcnMpKQorICAgIGlmIChzdHlsZS0+ZGlyZWN0aW9uYWxPdmVycmlkZSB8fCAoc3R5bGUt
PnJ0bCAmJiAhQVRTVU1pcnJvcnMpKQogICAgICAgICBmcmVlICgodm9pZCAqKXN3YXBwZWRSdW4u
Y2hhcmFjdGVycyk7CiB9CiAKQEAgLTE3MjgsOSArMTcyOSw5IEBAIHN0YXRpYyBXZWJDb3JlVGV4
dFJ1biBhcHBseU1pcnJvcmluZ1RvUnUKICAgICBjb25zdCBXZWJDb3JlVGV4dFJ1biAqYVJ1biA9
IHJ1bjsKICAgICBXZWJDb3JlVGV4dFJ1biBzd2FwcGVkUnVuOwogICAgIAotICAgIC8vIEVuY2xv
c2UgaW4gTFJPLVBERiB0byBmb3JjZSBBVFNVIHRvIHJlbmRlciB2aXN1YWxseS4KLSAgICBpZiAo
c3R5bGUtPnZpc3VhbGx5T3JkZXJlZCkgewotICAgICAgICBzd2FwcGVkUnVuID0gcmV2ZXJzZUNo
YXJhY3RlcnNJblJ1bihydW4pOworICAgIC8vIEVuY2xvc2UgaW4gTFJPL1JMTyAtIFBERiB0byBm
b3JjZSBBVFNVIHRvIHJlbmRlciB2aXN1YWxseS4KKyAgICBpZiAoc3R5bGUtPmRpcmVjdGlvbmFs
T3ZlcnJpZGUpIHsKKyAgICAgICAgc3dhcHBlZFJ1biA9IGFkZERpcmVjdGlvbmFsT3ZlcnJpZGUo
cnVuLCBzdHlsZS0+cnRsKTsKICAgICAgICAgYVJ1biA9ICZzd2FwcGVkUnVuOwogICAgIH0gZWxz
ZSBpZiAoc3R5bGUtPnJ0bCAmJiAhQVRTVU1pcnJvcnMpIHsKICAgICAgICAgc3dhcHBlZFJ1biA9
IGFwcGx5TWlycm9yaW5nVG9SdW4ocnVuKTsKQEAgLTE3NTMsNyArMTc1NCw3IEBAIHN0YXRpYyBX
ZWJDb3JlVGV4dFJ1biBhcHBseU1pcnJvcmluZ1RvUnUKICAgICAgICAKICAgICBBVFNVRGlzcG9z
ZVRleHRMYXlvdXQobGF5b3V0KTsKICAgICAKLSAgICBpZiAoc3R5bGUtPnZpc3VhbGx5T3JkZXJl
ZCB8fCAoc3R5bGUtPnJ0bCAmJiAhQVRTVU1pcnJvcnMpKSB7CisgICAgaWYgKHN0eWxlLT5kaXJl
Y3Rpb25hbE92ZXJyaWRlIHx8IChzdHlsZS0+cnRsICYmICFBVFNVTWlycm9ycykpIHsKICAgICAg
ICAgZnJlZSAoKHZvaWQgKilzd2FwcGVkUnVuLmNoYXJhY3RlcnMpOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="544"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>